folder rename

This commit is contained in:
gsinghpal
2026-04-16 20:53:53 -04:00
parent 3f3ddcbab4
commit 7c7ef06057
634 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,304 @@
// =============================================================================
// Fusion Plating -- Customer Portal styles
// Copyright 2026 Nexa Systems Inc.
// License OPL-1 (Odoo Proprietary License v1.0)
//
// THEME AWARENESS
// ---------------
// This stylesheet ships with the website / portal frontend bundle. It NEVER
// hardcodes hex values. Every colour comes from a Bootstrap CSS custom
// property so the portal renders correctly in BOTH light and dark themes
// without any duplication:
//
// surface: var(--bs-body-bg)
// muted: var(--bs-secondary-bg)
// foreground: var(--bs-body-color)
// muted text: var(--bs-secondary-color)
// border: var(--bs-border-color)
// success: var(--bs-success)
// info: var(--bs-info)
// warning: var(--bs-warning)
// danger: var(--bs-danger)
//
// Status tints use color-mix() against a theme token so a green dot is darker
// on a light background and brighter on a dark background -- one rule, two
// looks. We never use @media (prefers-color-scheme) or .o_dark overrides.
// =============================================================================
// -----------------------------------------------------------------------------
// Local helper -- tint a semantic colour onto the current surface
// -----------------------------------------------------------------------------
@mixin fp-portal-tint($color-var, $amount: 14%) {
background-color: color-mix(in srgb, var(#{$color-var}) #{$amount}, transparent);
color: var(#{$color-var});
border: 1px solid color-mix(in srgb, var(#{$color-var}) 35%, transparent);
}
// -----------------------------------------------------------------------------
// Generic portal card surface for plating-specific blocks
// -----------------------------------------------------------------------------
.o_fp_portal_card {
background-color: var(--bs-body-bg);
color: var(--bs-body-color);
border: 1px solid var(--bs-border-color);
border-radius: 10px;
transition: border-color 120ms ease, box-shadow 120ms ease;
&:hover {
border-color: color-mix(in srgb, var(--bs-primary) 40%, var(--bs-border-color));
}
h6 {
color: var(--bs-secondary-color);
}
}
// -----------------------------------------------------------------------------
// Dashboard layout
// -----------------------------------------------------------------------------
.o_fp_dashboard {
.o_fp_dashboard_card {
border: 1px solid var(--bs-border-color);
border-radius: 10px;
overflow: hidden;
transition: border-color 120ms ease, box-shadow 120ms ease;
&:hover {
border-color: color-mix(in srgb, var(--bs-primary) 40%, var(--bs-border-color));
box-shadow: 0 2px 12px color-mix(in srgb, var(--bs-primary) 8%, transparent);
}
.card-header {
background-color: var(--bs-body-bg);
border-bottom: 1px solid var(--bs-border-color);
padding: 0.75rem 1rem;
h6 {
color: var(--bs-body-color);
font-weight: 600;
font-size: 0.9rem;
}
}
.card-body {
background-color: var(--bs-body-bg);
}
.table {
margin-bottom: 0;
font-size: 0.875rem;
thead th {
border-bottom-width: 1px;
font-weight: 600;
font-size: 0.78rem;
text-transform: uppercase;
letter-spacing: 0.03em;
color: var(--bs-secondary-color);
padding: 0.5rem 1rem;
}
tbody td {
padding: 0.5rem 1rem;
vertical-align: middle;
border-bottom: 1px solid var(--bs-border-color);
}
tbody tr:last-child td {
border-bottom: none;
}
}
}
}
// -----------------------------------------------------------------------------
// Segmented progress bar (Receiving / In Progress / Shipping)
// -----------------------------------------------------------------------------
.o_fp_seg_progress {
border-radius: 5px;
overflow: hidden;
background: var(--bs-secondary-bg);
> div {
transition: opacity 300ms ease;
}
}
// -----------------------------------------------------------------------------
// Job state -- small coloured dot used in the jobs list table
// -----------------------------------------------------------------------------
.o_fp_portal_status_dot {
display: inline-block;
width: 10px;
height: 10px;
border-radius: 50%;
background-color: var(--bs-secondary-color);
box-shadow: 0 0 0 2px color-mix(in srgb, var(--bs-secondary-color) 25%, transparent);
vertical-align: middle;
&[data-state="received"] {
background-color: var(--bs-info);
box-shadow: 0 0 0 2px color-mix(in srgb, var(--bs-info) 25%, transparent);
}
&[data-state="in_progress"] {
background-color: var(--bs-primary);
box-shadow: 0 0 0 2px color-mix(in srgb, var(--bs-primary) 25%, transparent);
}
&[data-state="quality_check"] {
background-color: var(--bs-warning);
box-shadow: 0 0 0 2px color-mix(in srgb, var(--bs-warning) 25%, transparent);
}
&[data-state="ready_to_ship"] {
background-color: var(--bs-secondary-color);
box-shadow: 0 0 0 2px color-mix(in srgb, var(--bs-secondary-color) 25%, transparent);
}
&[data-state="shipped"],
&[data-state="complete"] {
background-color: var(--bs-success);
box-shadow: 0 0 0 2px color-mix(in srgb, var(--bs-success) 25%, transparent);
}
}
// -----------------------------------------------------------------------------
// Job progress bar -- wraps Bootstrap .progress with state-aware fill colour
// (kept for backwards compatibility on job detail page)
// -----------------------------------------------------------------------------
.o_fp_portal_progress {
.progress {
background-color: color-mix(in srgb, var(--bs-secondary-color) 18%, transparent);
border: 1px solid var(--bs-border-color);
border-radius: 999px;
overflow: hidden;
}
.progress-bar {
background-color: var(--bs-primary);
color: var(--bs-body-bg);
font-weight: 600;
font-size: 0.72rem;
line-height: 14px;
}
&[data-state="received"] .progress-bar {
background-color: var(--bs-info);
}
&[data-state="quality_check"] .progress-bar {
background-color: var(--bs-warning);
}
&[data-state="ready_to_ship"] .progress-bar {
background-color: color-mix(in srgb, var(--bs-success) 70%, var(--bs-warning));
}
&[data-state="shipped"] .progress-bar,
&[data-state="complete"] .progress-bar {
background-color: var(--bs-success);
}
}
// -----------------------------------------------------------------------------
// RFQ Form -- Part row card
// -----------------------------------------------------------------------------
.o_fp_part_row {
background-color: var(--bs-body-bg);
border: 1px solid var(--bs-border-color);
border-radius: 8px;
padding: 1rem;
margin-bottom: 0.75rem;
position: relative;
transition: border-color 120ms ease;
&:hover {
border-color: color-mix(in srgb, var(--bs-primary) 35%, var(--bs-border-color));
}
.o_fp_part_row_header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 0.75rem;
.o_fp_part_num {
font-weight: 600;
color: var(--bs-body-color);
}
}
.o_fp_remove_part {
color: var(--bs-danger);
cursor: pointer;
opacity: 0.7;
transition: opacity 120ms ease;
&:hover {
opacity: 1;
}
}
}
// -----------------------------------------------------------------------------
// Drag-drop file upload zone
// -----------------------------------------------------------------------------
.o_fp_file_drop_zone {
border: 2px dashed var(--bs-border-color);
border-radius: 8px;
padding: 1.5rem;
text-align: center;
color: var(--bs-secondary-color);
cursor: pointer;
transition: border-color 150ms ease, background-color 150ms ease;
&:hover,
&.o_fp_drag_over {
border-color: var(--bs-primary);
background-color: color-mix(in srgb, var(--bs-primary) 6%, transparent);
}
i {
font-size: 2rem;
margin-bottom: 0.5rem;
display: block;
}
}
// -----------------------------------------------------------------------------
// Portal form general
// -----------------------------------------------------------------------------
.o_fp_portal_form {
.form-label {
font-weight: 500;
font-size: 0.875rem;
color: var(--bs-body-color);
}
}
// -----------------------------------------------------------------------------
// Tab styling for quote request filter tabs
// -----------------------------------------------------------------------------
.nav-tabs {
.nav-link {
font-size: 0.875rem;
font-weight: 500;
}
}
// -----------------------------------------------------------------------------
// Jobs list -- card-based layout
// -----------------------------------------------------------------------------
.o_fp_jobs_list {
.o_fp_portal_card {
.card-body {
padding: 1rem;
}
}
}