folder rename
This commit is contained in:
@@ -0,0 +1,157 @@
|
||||
// =============================================================================
|
||||
// Fusion Plating — Logistics backend styles
|
||||
// Copyright 2026 Nexa Systems Inc.
|
||||
// License OPL-1 (Odoo Proprietary License v1.0)
|
||||
//
|
||||
// THEME AWARENESS
|
||||
// ---------------
|
||||
// Matches the core fusion_plating module approach: no hardcoded backgrounds
|
||||
// or text colours. All surface colours come from Odoo / Bootstrap CSS custom
|
||||
// properties so the components render correctly in BOTH light and dark mode:
|
||||
//
|
||||
// background: var(--bs-body-bg)
|
||||
// surface: var(--o-view-background-color)
|
||||
// foreground: var(--bs-body-color)
|
||||
// muted text: var(--bs-secondary-color)
|
||||
// border: var(--bs-border-color)
|
||||
// primary: var(--o-action)
|
||||
//
|
||||
// Semantic status colours use color-mix() against the Bootstrap tokens so
|
||||
// badges adapt to light / dark automatically.
|
||||
// =============================================================================
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Local helper — tint a badge against a semantic colour var
|
||||
// -----------------------------------------------------------------------------
|
||||
@mixin fpl-tint($color-var, $amount: 12%) {
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Vehicle kanban — state-aware card with a left-border accent
|
||||
// -----------------------------------------------------------------------------
|
||||
.o_fp_vehicle_kanban {
|
||||
|
||||
.o_fp_vehicle_card {
|
||||
border-left-width: 4px;
|
||||
|
||||
&[data-state="available"] {
|
||||
border-left-color: var(--bs-success);
|
||||
}
|
||||
&[data-state="in_use"] {
|
||||
border-left-color: var(--bs-info, var(--o-action));
|
||||
}
|
||||
&[data-state="maintenance"] {
|
||||
border-left-color: var(--bs-warning);
|
||||
}
|
||||
&[data-state="out_of_service"] {
|
||||
border-left-color: var(--bs-secondary-color);
|
||||
}
|
||||
}
|
||||
|
||||
.o_fp_badge {
|
||||
display: inline-block;
|
||||
padding: 2px 8px;
|
||||
font-size: 0.72rem;
|
||||
font-weight: 500;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.02em;
|
||||
border-radius: 999px;
|
||||
|
||||
&[data-state="available"] {
|
||||
@include fpl-tint(--bs-success);
|
||||
}
|
||||
&[data-state="in_use"] {
|
||||
@include fpl-tint(--bs-info);
|
||||
}
|
||||
&[data-state="maintenance"] {
|
||||
@include fpl-tint(--bs-warning);
|
||||
}
|
||||
&[data-state="out_of_service"] {
|
||||
@include fpl-tint(--bs-secondary-color);
|
||||
}
|
||||
&[data-state="tdg"] {
|
||||
@include fpl-tint(--bs-danger);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Pickup / Delivery kanbans — share the TDG badge styling
|
||||
// -----------------------------------------------------------------------------
|
||||
.o_fp_pickup_kanban,
|
||||
.o_fp_delivery_kanban {
|
||||
|
||||
.o_fp_badge {
|
||||
display: inline-block;
|
||||
padding: 2px 8px;
|
||||
font-size: 0.72rem;
|
||||
font-weight: 500;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.02em;
|
||||
border-radius: 999px;
|
||||
|
||||
&[data-state="tdg"] {
|
||||
@include fpl-tint(--bs-danger);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Route stop — inline status dot (used when rendered outside a kanban)
|
||||
// -----------------------------------------------------------------------------
|
||||
.o_fp_route_stop {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
color: var(--bs-body-color);
|
||||
|
||||
.o_fp_route_stop_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);
|
||||
|
||||
&[data-status="pending"] {
|
||||
background-color: var(--bs-secondary-color);
|
||||
box-shadow: 0 0 0 2px color-mix(in srgb, var(--bs-secondary-color) 25%, transparent);
|
||||
}
|
||||
&[data-status="arrived"] {
|
||||
background-color: var(--bs-warning);
|
||||
box-shadow: 0 0 0 2px color-mix(in srgb, var(--bs-warning) 25%, transparent);
|
||||
}
|
||||
&[data-status="completed"] {
|
||||
background-color: var(--bs-success);
|
||||
box-shadow: 0 0 0 2px color-mix(in srgb, var(--bs-success) 25%, transparent);
|
||||
}
|
||||
&[data-status="skipped"] {
|
||||
background-color: var(--bs-danger);
|
||||
box-shadow: 0 0 0 2px color-mix(in srgb, var(--bs-danger) 25%, transparent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Proof of Delivery — signature capture surface
|
||||
// -----------------------------------------------------------------------------
|
||||
.o_fp_pod_signature_box {
|
||||
background-color: var(--o-view-background-color, var(--bs-body-bg));
|
||||
border: 1px dashed var(--bs-border-color);
|
||||
border-radius: 10px;
|
||||
padding: 12px;
|
||||
min-height: 160px;
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
max-height: 150px;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user