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.
- package/dist/checkout/sessionMetadataV3.d.ts +2 -0
- package/dist/checkout/sessionMetadataV3.d.ts.map +1 -1
- package/dist/checkout/sessionMetadataV3.js.map +1 -1
- package/dist/theme/ThemeProvider.d.ts +5 -3
- package/dist/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/theme/ThemeProvider.js +2 -2
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/themeContract.d.ts +5 -1
- package/dist/theme/themeContract.d.ts.map +1 -1
- package/dist/theme/themeContract.js +15 -9
- package/dist/theme/themeContract.js.map +1 -1
- package/dist/ui/Card/Card.d.ts.map +1 -1
- package/dist/ui/Card/Card.js +4 -4
- package/dist/ui/Card/Card.js.map +1 -1
- package/package.json +1 -1
- package/src/tokens/__tests__/theme-exports.test.mjs +1 -0
- package/src/tokens/__tests__/theme-light-override.test.mjs +13 -0
- package/src/tokens/responsive.css +8 -5
- package/src/tokens/theme.css +32 -0
|
@@ -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;
|
|
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":"
|
|
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;
|
|
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,
|
|
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;
|
|
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
|
|
37
|
+
function applyThemeClasses(preference, effective, options) {
|
|
38
38
|
if (typeof document === 'undefined') {
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
41
|
const root = document.documentElement;
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
46
|
-
root.classList.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAAA;;;;;GAKG;AAMH,qFAAqF;AACrF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,KAAK,EAAE,mBAAmB;IAC1B,QAAQ,EAAE,sBAAsB;IAChC,KAAK,EAAE,mBAAmB;IAC1B,MAAM,EAAE,oBAAoB;CACpB,CAAC;AAaX,SAAS,kBAAkB;IACzB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC,8BAA8B,CAAC,CAAC,OAAO;QAChE,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB;IAC9C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1D,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;
|
|
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;
|
|
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"}
|
package/dist/ui/Card/Card.js
CHANGED
|
@@ -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
|
package/dist/ui/Card/Card.js.map
CHANGED
|
@@ -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;
|
|
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
|
@@ -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
|
}
|
package/src/tokens/theme.css
CHANGED
|
@@ -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
|
+
}
|