WFDASH-WEBAPP/src/lib/theme-types.ts
SJCoetz 7f924ccc45 refactor: switch hardcoded UI colors to semantic theme tokens
Overhaul the app's color system by replacing all hardcoded Tailwind color classes with semantic theme variables to ensure consistent theming across all components, pages, and tests.

Additional changes:
- Add assigned date support for order item status updates: add `assignedDate` field to the order item status PATCH API, implement server-side normalization/validation, and add corresponding tests
- Refactor purchase order PDF workflows to use the consolidated `purchase_orders.documents` field instead of the legacy separate `purchase_order_pdfs` collection
- Fix quote number parsing and formatting to support both dashed (Q-YYYY-MM-NNN) and dashless (QYYYYMMNNN) formats
- Rename `driver_pool` item status to `collection_pool` across the codebase
- Add null handling for order item quantities and pricing to display "—" for missing values
- Improve filter tab styling: make mobile tabs scrollable, prevent text wrapping, hide scrollbar
- Add new utility scripts, API routes, migrations, and polish small UI/UX fixes including tsconfig updates and theme hook improvements
2026-07-07 17:22:03 +02:00

37 lines
1.1 KiB
TypeScript

/**
* Theme type contract.
*
* Kept in its own file so the picker and the registry can import a pure
* type without dragging in CSS side effects.
*/
export type ThemeCategory = "standard" | "dark";
export type ThemeDefinition = {
id: string;
label: string;
tagline: string;
/** Hex used for the picker preview swatch */
accent: string;
/** Soft hex for hover wash + chip backgrounds */
accentSoft: string;
/** Accent when the theme is in dark mode (some themes need a brighter accent in dark) */
accentOnDark: string;
/** Light-mode surface swatch */
surface: string;
/** Dark-mode surface swatch */
surfaceDark: string;
/** Light-mode foreground swatch */
ink: string;
/** Dark-mode foreground swatch */
inkDark: string;
/** CSS-var name for the heading font (registered in app/layout.tsx) */
fontHeading: string;
/** CSS-var name for the body font */
fontBody: string;
/** Base border-radius (in rem) */
radius: string;
/** Free-form label for "inspired by ___" — shown in the picker */
reference: string;
/** `standard` themes default to light; `dark` themes default to dark mode */
category: ThemeCategory;
};