pi-kiosk-shared 2.2.4 → 2.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,6 +9,8 @@ export interface SessionMetadataCollect {
9
9
  promisedPickupAt?: string;
10
10
  pickupWindowEndAt?: string;
11
11
  };
12
+ /** Required when sales point is self-collect-only (Appendix D/F). */
13
+ selfCollectConfirmedAtKiosk?: boolean;
12
14
  }
13
15
  export interface SessionMetadataCheckoutMode {
14
16
  channel: CommerceChannel;
@@ -1 +1 @@
1
- {"version":3,"file":"sessionMetadataV3.d.ts","sourceRoot":"","sources":["../../src/checkout/sessionMetadataV3.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,OAAO,CAAC;AAE5C,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,aAAa,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GACzB,sBAAsB,GACtB,uBAAuB,GACvB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,cAAc,GACd,eAAe,GACf,YAAY,CAAC;AAEjB,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE;QACP,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,EAAE,iBAAiB,CAAC;IAChC,iBAAiB,EAAE,mBAAmB,CAAC;CACxC;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,uBAAuB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,IAAI,CAAC,EAAE,mBAAmB,CAAC;CAC5B;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,yBAAyB,CAMtF"}
1
+ {"version":3,"file":"sessionMetadataV3.d.ts","sourceRoot":"","sources":["../../src/checkout/sessionMetadataV3.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,OAAO,CAAC;AAE5C,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,aAAa,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GACzB,sBAAsB,GACtB,uBAAuB,GACvB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,cAAc,GACd,eAAe,GACf,YAAY,CAAC;AAEjB,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE;QACP,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,qEAAqE;IACrE,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,EAAE,iBAAiB,CAAC;IAChC,iBAAiB,EAAE,mBAAmB,CAAC;CACxC;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,uBAAuB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,IAAI,CAAC,EAAE,mBAAmB,CAAC;CAC5B;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,yBAAyB,CAMtF"}
@@ -1 +1 @@
1
- {"version":3,"file":"sessionMetadataV3.js","sourceRoot":"","sources":["../../src/checkout/sessionMetadataV3.ts"],"names":[],"mappings":"AAgDA,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAmC,CAAC,OAAO,KAAK,CAAC,CACnD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sessionMetadataV3.js","sourceRoot":"","sources":["../../src/checkout/sessionMetadataV3.ts"],"names":[],"mappings":"AAkDA,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAmC,CAAC,OAAO,KAAK,CAAC,CACnD,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { type ReactNode } from 'react';
2
- import { type EffectiveTheme, type ThemeApi, type ThemePreference } from './themeContract.js';
3
- export type { EffectiveTheme, ThemeApi, ThemePreference };
2
+ import { type EffectiveTheme, type ThemeApi, type ThemeApplyOptions, type ThemePreference } from './themeContract.js';
3
+ export type { EffectiveTheme, ThemeApi, ThemeApplyOptions, ThemePreference };
4
4
  export { THEME_STORAGE_KEYS, applyInitialTheme, createThemeApi, setTheme, type ThemeAppId, } from './themeContract.js';
5
5
  export interface ThemeContextValue {
6
6
  preference: ThemePreference;
@@ -10,12 +10,14 @@ export interface ThemeContextValue {
10
10
  export interface ThemeProviderProps {
11
11
  /** Per-app key from `THEME_STORAGE_KEYS` (e.g. `rpapp-customer-theme`). */
12
12
  storageKey: string;
13
+ /** When true, explicit `light` preference adds `.light` to override system dark media. */
14
+ lightOverrideEnabled?: boolean;
13
15
  children: ReactNode;
14
16
  }
15
17
  /**
16
18
  * React bridge for DECISION-2 C-Hybrid dark mode.
17
19
  * Wrap the app (or subtree) and read/update theme via `useTheme()`.
18
20
  */
19
- export declare function ThemeProvider({ storageKey, children }: ThemeProviderProps): JSX.Element;
21
+ export declare function ThemeProvider({ storageKey, lightOverrideEnabled, children, }: ThemeProviderProps): JSX.Element;
20
22
  export declare function useTheme(): ThemeContextValue;
21
23
  //# sourceMappingURL=ThemeProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,eAAe,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;CAC3C;AAID,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAkCvF;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C"}
1
+ {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC;AAC7E,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,eAAe,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;CAC3C;AAID,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,0FAA0F;IAC1F,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,UAAU,EACV,oBAA4B,EAC5B,QAAQ,GACT,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAqClC;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C"}
@@ -7,8 +7,8 @@ const ThemeContext = createContext(null);
7
7
  * React bridge for DECISION-2 C-Hybrid dark mode.
8
8
  * Wrap the app (or subtree) and read/update theme via `useTheme()`.
9
9
  */
10
- export function ThemeProvider({ storageKey, children }) {
11
- const api = useMemo(() => createThemeApi(storageKey), [storageKey]);
10
+ export function ThemeProvider({ storageKey, lightOverrideEnabled = false, children, }) {
11
+ const api = useMemo(() => createThemeApi(storageKey, { lightOverrideEnabled }), [storageKey, lightOverrideEnabled]);
12
12
  const [preference, setPreference] = useState(() => api.getThemePreference());
13
13
  const [effectiveTheme, setEffectiveTheme] = useState(() => api.getEffectiveTheme());
14
14
  const syncFromApi = useCallback(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.js","sourceRoot":"","sources":["../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,GAET,MAAM,OAAO,CAAC;AACf,OAAO,EACL,cAAc,GAIf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,QAAQ,GAET,MAAM,oBAAoB,CAAC;AAQ5B,MAAM,YAAY,GAAG,aAAa,CAA2B,IAAI,CAAC,CAAC;AAQnE;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAsB;IACxE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAkB,GAAG,EAAE,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC9F,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAiB,GAAG,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEpG,MAAM,WAAW,GAAG,WAAW,CAAC,GAAS,EAAE;QACzC,aAAa,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACxC,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC7C,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACxB,WAAW,EAAE,CAAC;QACd,OAAO,GAAG,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IAEvB,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,IAAqB,EAAQ,EAAE;QAC9B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnB,WAAW,EAAE,CAAC;IAChB,CAAC,EACD,CAAC,GAAG,EAAE,WAAW,CAAC,CACnB,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,UAAU;QACV,cAAc;QACd,QAAQ,EAAE,kBAAkB;KAC7B,CAAC,EACF,CAAC,UAAU,EAAE,cAAc,EAAE,kBAAkB,CAAC,CACjD,CAAC;IAEF,OAAO,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAyB,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"ThemeProvider.js","sourceRoot":"","sources":["../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,GAET,MAAM,OAAO,CAAC;AACf,OAAO,EACL,cAAc,GAKf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,QAAQ,GAET,MAAM,oBAAoB,CAAC;AAQ5B,MAAM,YAAY,GAAG,aAAa,CAA2B,IAAI,CAAC,CAAC;AAUnE;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,UAAU,EACV,oBAAoB,GAAG,KAAK,EAC5B,QAAQ,GACW;IACnB,MAAM,GAAG,GAAG,OAAO,CACjB,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAC1D,CAAC,UAAU,EAAE,oBAAoB,CAAC,CACnC,CAAC;IACF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAkB,GAAG,EAAE,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC9F,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAiB,GAAG,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEpG,MAAM,WAAW,GAAG,WAAW,CAAC,GAAS,EAAE;QACzC,aAAa,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACxC,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC7C,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACxB,WAAW,EAAE,CAAC;QACd,OAAO,GAAG,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IAEvB,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,IAAqB,EAAQ,EAAE;QAC9B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnB,WAAW,EAAE,CAAC;IAChB,CAAC,EACD,CAAC,GAAG,EAAE,WAAW,CAAC,CACnB,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,UAAU;QACV,cAAc;QACd,QAAQ,EAAE,kBAAkB;KAC7B,CAAC,EACF,CAAC,UAAU,EAAE,cAAc,EAAE,kBAAkB,CAAC,CACjD,CAAC;IAEF,OAAO,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAyB,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -22,11 +22,15 @@ export interface ThemeApi {
22
22
  /** Re-sync when OS preference changes while preference is `system`. */
23
23
  subscribeToSystemTheme: (onChange?: () => void) => () => void;
24
24
  }
25
+ export interface ThemeApplyOptions {
26
+ /** When true, explicit `light` preference adds `.light` to override system dark media. */
27
+ readonly lightOverrideEnabled?: boolean;
28
+ }
25
29
  /**
26
30
  * Imperative theme controller for a single app surface.
27
31
  * Call `applyInitialTheme()` before the first React paint to avoid flash.
28
32
  */
29
- export declare function createThemeApi(storageKey: string): ThemeApi;
33
+ export declare function createThemeApi(storageKey: string, options?: ThemeApplyOptions): ThemeApi;
30
34
  /** Convenience for boot scripts that only need the initial `.dark` sync. */
31
35
  export declare function applyInitialTheme(storageKey: string): void;
32
36
  /** Convenience for imperative toggles outside React. */
@@ -1 +1 @@
1
- {"version":3,"file":"themeContract.d.ts","sourceRoot":"","sources":["../../src/theme/themeContract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1D,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9C,qFAAqF;AACrF,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAEzD,MAAM,WAAW,QAAQ;IACvB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC1C,kBAAkB,EAAE,MAAM,eAAe,CAAC;IAC1C,iBAAiB,EAAE,MAAM,cAAc,CAAC;IACxC,uEAAuE;IACvE,sBAAsB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;CAC/D;AAsCD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAmD3D;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAE1D;AAED,wDAAwD;AACxD,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAExE"}
1
+ {"version":3,"file":"themeContract.d.ts","sourceRoot":"","sources":["../../src/theme/themeContract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1D,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9C,qFAAqF;AACrF,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAEzD,MAAM,WAAW,QAAQ;IACvB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC1C,kBAAkB,EAAE,MAAM,eAAe,CAAC;IAC1C,iBAAiB,EAAE,MAAM,cAAc,CAAC;IACxC,uEAAuE;IACvE,sBAAsB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;CAC/D;AA0BD,MAAM,WAAW,iBAAiB;IAChC,0FAA0F;IAC1F,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CACzC;AAwBD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,QAAQ,CAuDV;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAE1D;AAED,wDAAwD;AACxD,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAExE"}
@@ -34,23 +34,26 @@ function readStoredPreference(storageKey) {
34
34
  }
35
35
  return 'system';
36
36
  }
37
- function applyClass(theme) {
37
+ function applyThemeClasses(preference, effective, options) {
38
38
  if (typeof document === 'undefined') {
39
39
  return;
40
40
  }
41
41
  const root = document.documentElement;
42
- if (theme === 'dark') {
43
- root.classList.add('dark');
42
+ const lightOverrideEnabled = options?.lightOverrideEnabled === true;
43
+ root.classList.remove('dark', 'light');
44
+ if (lightOverrideEnabled && preference === 'light') {
45
+ root.classList.add('light');
46
+ return;
44
47
  }
45
- else {
46
- root.classList.remove('dark');
48
+ if (preference === 'dark' || effective === 'dark') {
49
+ root.classList.add('dark');
47
50
  }
48
51
  }
49
52
  /**
50
53
  * Imperative theme controller for a single app surface.
51
54
  * Call `applyInitialTheme()` before the first React paint to avoid flash.
52
55
  */
53
- export function createThemeApi(storageKey) {
56
+ export function createThemeApi(storageKey, options) {
54
57
  const getThemePreference = () => readStoredPreference(storageKey);
55
58
  const getEffectiveTheme = () => {
56
59
  const pref = getThemePreference();
@@ -59,8 +62,11 @@ export function createThemeApi(storageKey) {
59
62
  }
60
63
  return pref;
61
64
  };
65
+ const syncDomClasses = () => {
66
+ applyThemeClasses(getThemePreference(), getEffectiveTheme(), options);
67
+ };
62
68
  const applyInitialTheme = () => {
63
- applyClass(getEffectiveTheme());
69
+ syncDomClasses();
64
70
  };
65
71
  const setTheme = (pref) => {
66
72
  try {
@@ -71,7 +77,7 @@ export function createThemeApi(storageKey) {
71
77
  catch {
72
78
  /* ignore */
73
79
  }
74
- applyClass(getEffectiveTheme());
80
+ syncDomClasses();
75
81
  };
76
82
  const subscribeToSystemTheme = (onChange) => {
77
83
  if (typeof window === 'undefined') {
@@ -83,7 +89,7 @@ export function createThemeApi(storageKey) {
83
89
  }
84
90
  const listener = () => {
85
91
  if (getThemePreference() === 'system') {
86
- applyClass(getEffectiveTheme());
92
+ syncDomClasses();
87
93
  onChange?.();
88
94
  }
89
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"themeContract.js","sourceRoot":"","sources":["../../src/theme/themeContract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"themeContract.js","sourceRoot":"","sources":["../../src/theme/themeContract.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/ui/Card/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAsExD,KAAK,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAM7D,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,IAAI;uBALI,WAAW;sBACZ,OAAO;wBACL,OAAO;kDAyC5B,CAAC"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/ui/Card/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAsExD,KAAK,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAM7D,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,IAAI;uBALI,WAAW;sBACZ,OAAO;wBACL,OAAO;kDA+C5B,CAAC"}
@@ -65,18 +65,18 @@ const kioskCustomerCard = tv({
65
65
  elevated: false,
66
66
  },
67
67
  });
68
- export const Card = forwardRef(({ className, surface = 'customer', padded, elevated, ...rest }, ref) => {
68
+ export const Card = forwardRef(({ className, surface = 'customer', padded, elevated, children, ...rest }, ref) => {
69
69
  if (surface === 'admin') {
70
- return (_jsx("div", { ref: ref, className: adminCard({ padded, elevated, className }), ...rest }));
70
+ return (_jsx("div", { ref: ref, className: adminCard({ padded, elevated, className }), ...rest, children: _jsx("div", { className: "rp-card-container-inner", children: children }) }));
71
71
  }
72
72
  if (surface === 'pickup') {
73
- return (_jsx("div", { ref: ref, className: pickupCard({ padded, elevated, className }), ...rest }));
73
+ return (_jsx("div", { ref: ref, className: pickupCard({ padded, elevated, className }), ...rest, children: _jsx("div", { className: "rp-card-container-inner", children: children }) }));
74
74
  }
75
75
  return (_jsx("div", { ref: ref, className: kioskCustomerCard({
76
76
  padded,
77
77
  elevated,
78
78
  className,
79
- }), ...rest }));
79
+ }), ...rest, children: _jsx("div", { className: "rp-card-container-inner", children: children }) }));
80
80
  });
81
81
  Card.displayName = 'Card';
82
82
  //# sourceMappingURL=Card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../src/ui/Card/Card.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAuB,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,EAAE,EAAqB,MAAM,cAAc,CAAC;AAErD,MAAM,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE;QACJ,mBAAmB;QACnB,mDAAmD;QACnD,0DAA0D;QAC1D,WAAW;KACZ,CAAC,IAAI,CAAC,GAAG,CAAC;IACX,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,KAAK;SACb;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,kCAAkC;YACxC,KAAK,EAAE,EAAE;SACV;KACF;IACD,eAAe,EAAE;QACf,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,EAAE;QACJ,mBAAmB;QACnB,+DAA+D;QAC/D,6BAA6B;KAC9B,CAAC,IAAI,CAAC,GAAG,CAAC;IACX,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,KAAK;SACb;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,gCAAgC;YACtC,KAAK,EAAE,EAAE;SACV;KACF;IACD,eAAe,EAAE;QACf,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC3B,IAAI,EAAE;QACJ,mBAAmB;QACnB,sDAAsD;QACtD,0DAA0D;KAC3D,CAAC,IAAI,CAAC,GAAG,CAAC;IACX,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,KAAK;SACb;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,gCAAgC;YACtC,KAAK,EAAE,EAAE;SACV;KACF;IACD,eAAe,EAAE;QACf,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC,CAAC;AAcH,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAC5B,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;IACtE,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAEjD,CAAC,KACE,IAAI,GACR,CACH,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAElD,CAAC,KACE,IAAI,GACR,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,iBAAiB,CAAC;YAC3B,MAAM;YACN,QAAQ;YACR,SAAS;SAC4C,CAAC,KACpD,IAAI,GACR,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AACF,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../src/ui/Card/Card.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAuB,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,EAAE,EAAqB,MAAM,cAAc,CAAC;AAErD,MAAM,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE;QACJ,mBAAmB;QACnB,mDAAmD;QACnD,0DAA0D;QAC1D,WAAW;KACZ,CAAC,IAAI,CAAC,GAAG,CAAC;IACX,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,KAAK;SACb;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,kCAAkC;YACxC,KAAK,EAAE,EAAE;SACV;KACF;IACD,eAAe,EAAE;QACf,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,EAAE;QACJ,mBAAmB;QACnB,+DAA+D;QAC/D,6BAA6B;KAC9B,CAAC,IAAI,CAAC,GAAG,CAAC;IACX,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,KAAK;SACb;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,gCAAgC;YACtC,KAAK,EAAE,EAAE;SACV;KACF;IACD,eAAe,EAAE;QACf,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC3B,IAAI,EAAE;QACJ,mBAAmB;QACnB,sDAAsD;QACtD,0DAA0D;KAC3D,CAAC,IAAI,CAAC,GAAG,CAAC;IACX,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,KAAK;SACb;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,gCAAgC;YACtC,KAAK,EAAE,EAAE;SACV;KACF;IACD,eAAe,EAAE;QACf,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC,CAAC;AAcH,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAC5B,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;IAChF,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAEjD,CAAC,KACE,IAAI,YAER,cAAK,SAAS,EAAC,yBAAyB,YAAE,QAAQ,GAAO,GACrD,CACP,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAElD,CAAC,KACE,IAAI,YAER,cAAK,SAAS,EAAC,yBAAyB,YAAE,QAAQ,GAAO,GACrD,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,iBAAiB,CAAC;YAC3B,MAAM;YACN,QAAQ;YACR,SAAS;SAC4C,CAAC,KACpD,IAAI,YAER,cAAK,SAAS,EAAC,yBAAyB,YAAE,QAAQ,GAAO,GACrD,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AACF,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-kiosk-shared",
3
- "version": "2.2.4",
3
+ "version": "2.2.5",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "description": "Shared types, API contracts, and error classes for Pi Kiosk system",
@@ -11,6 +11,7 @@ test('theme.css and admin-theme.css exist and export @theme tokens', () => {
11
11
  const admin = readFileSync(join(tokensDir, 'admin-theme.css'), 'utf8');
12
12
  assert.match(theme, /@theme/);
13
13
  assert.match(theme, /--color-surface/);
14
+ assert.match(theme, /\.light/);
14
15
  assert.match(admin, /--color-an-bg/);
15
16
  assert.match(admin, /--color-rail-sidebar-bg/);
16
17
  });
@@ -0,0 +1,13 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { join, dirname } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { test } from 'node:test';
5
+ import assert from 'node:assert/strict';
6
+
7
+ const tokensDir = join(dirname(fileURLToPath(import.meta.url)), '..');
8
+
9
+ test('theme.css defines explicit .light override block', () => {
10
+ const theme = readFileSync(join(tokensDir, 'theme.css'), 'utf8');
11
+ assert.match(theme, /\.light\s*\{/);
12
+ assert.match(theme, /\.light[\s\S]*--color-surface:\s*#ffffff/);
13
+ });
@@ -30,6 +30,9 @@
30
30
  .rp-card-container {
31
31
  container-type: inline-size;
32
32
  container-name: rp-card;
33
+ }
34
+
35
+ .rp-card-container-inner {
33
36
  --rp-card-content-gap: 0.5rem;
34
37
  }
35
38
 
@@ -49,19 +52,19 @@
49
52
  }
50
53
 
51
54
  /* Shared Card density — CQ layout (not cosmetic) with viewport fallback */
52
- .rp-card-container > * + * {
55
+ .rp-card-container-inner > * + * {
53
56
  margin-block-start: var(--rp-card-content-gap);
54
57
  }
55
58
 
56
59
  @supports (container-type: inline-size) {
57
60
  @container rp-card (min-width: 20rem) {
58
- .rp-card-container {
61
+ .rp-card-container-inner {
59
62
  --rp-card-content-gap: 0.75rem;
60
63
  }
61
64
  }
62
65
 
63
66
  @container rp-card (min-width: 28rem) {
64
- .rp-card-container {
67
+ .rp-card-container-inner {
65
68
  --rp-card-content-gap: 1rem;
66
69
  }
67
70
  }
@@ -69,13 +72,13 @@
69
72
 
70
73
  @supports not (container-type: inline-size) {
71
74
  @media (min-width: 640px) {
72
- .rp-card-container {
75
+ .rp-card-container-inner {
73
76
  --rp-card-content-gap: 0.75rem;
74
77
  }
75
78
  }
76
79
 
77
80
  @media (min-width: 1024px) {
78
- .rp-card-container {
81
+ .rp-card-container-inner {
79
82
  --rp-card-content-gap: 1rem;
80
83
  }
81
84
  }
@@ -103,3 +103,35 @@
103
103
  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.28), 0 4px 12px rgba(0, 0, 0, 0.2);
104
104
  --shadow-popover: 0 6px 24px rgba(0, 0, 0, 0.36);
105
105
  }
106
+
107
+ /**
108
+ * Explicit light override — wins over `@media (prefers-color-scheme: dark)` when
109
+ * user selects Light while OS is dark (Theme Contract / customer_theme_light_fix_v1).
110
+ */
111
+ .light {
112
+ color-scheme: light;
113
+ --color-surface: #ffffff;
114
+ --color-surface-muted: #f8fafc;
115
+ --color-surface-elevated: #ffffff;
116
+ --color-surface-hover: #f1f5f9;
117
+ --color-on-surface: #0f172a;
118
+ --color-on-surface-muted: #475569;
119
+ --color-on-surface-disabled: #94a3b8;
120
+ --color-primary: #0f172a;
121
+ --color-primary-foreground: #f8fafc;
122
+ --color-accent: var(--brand-consumer-accent);
123
+ --color-accent-foreground: var(--brand-consumer-accent-foreground);
124
+ --color-accent-hover: #001a33;
125
+ --color-success: #16a34a;
126
+ --color-success-foreground: #ecfdf5;
127
+ --color-danger: #dc2626;
128
+ --color-danger-foreground: #fef2f2;
129
+ --color-warning: #d97706;
130
+ --color-warning-foreground: #fffbeb;
131
+ --color-border: #e2e8f0;
132
+ --color-border-strong: #cbd5e1;
133
+ --color-focus-ring: var(--brand-consumer-accent);
134
+ --color-disabled-opacity: 0.55;
135
+ --shadow-card: 0 1px 2px rgba(15, 23, 42, 0.06), 0 4px 12px rgba(15, 23, 42, 0.04);
136
+ --shadow-popover: 0 6px 24px rgba(15, 23, 42, 0.12);
137
+ }