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
37 lines
1.1 KiB
TypeScript
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;
|
|
};
|