pi-kiosk-shared 2.2.2 → 2.2.4

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.
Files changed (45) hide show
  1. package/dist/responsive/breakpoints.d.ts +73 -0
  2. package/dist/responsive/breakpoints.d.ts.map +1 -0
  3. package/dist/responsive/breakpoints.js +40 -0
  4. package/dist/responsive/breakpoints.js.map +1 -0
  5. package/dist/responsive/index.d.ts +3 -0
  6. package/dist/responsive/index.d.ts.map +1 -0
  7. package/dist/responsive/index.js +3 -0
  8. package/dist/responsive/index.js.map +1 -0
  9. package/dist/responsive/useResponsiveTier.d.ts +6 -0
  10. package/dist/responsive/useResponsiveTier.d.ts.map +1 -0
  11. package/dist/responsive/useResponsiveTier.js +33 -0
  12. package/dist/responsive/useResponsiveTier.js.map +1 -0
  13. package/dist/tenant-entitlements/applyTenantScopeToSimpleStates.d.ts.map +1 -1
  14. package/dist/tenant-entitlements/applyTenantScopeToSimpleStates.js +4 -0
  15. package/dist/tenant-entitlements/applyTenantScopeToSimpleStates.js.map +1 -1
  16. package/dist/ui/Card/Card.d.ts.map +1 -1
  17. package/dist/ui/Card/Card.js +3 -0
  18. package/dist/ui/Card/Card.js.map +1 -1
  19. package/dist/ui/LanguageToggle/LanguageToggle.d.ts +8 -4
  20. package/dist/ui/LanguageToggle/LanguageToggle.d.ts.map +1 -1
  21. package/dist/ui/LanguageToggle/LanguageToggle.js +13 -135
  22. package/dist/ui/LanguageToggle/LanguageToggle.js.map +1 -1
  23. package/dist/ui/LocaleFlags/LocaleFlagToggle.d.ts +15 -0
  24. package/dist/ui/LocaleFlags/LocaleFlagToggle.d.ts.map +1 -0
  25. package/dist/ui/LocaleFlags/LocaleFlagToggle.js +140 -0
  26. package/dist/ui/LocaleFlags/LocaleFlagToggle.js.map +1 -0
  27. package/dist/ui/LocaleFlags/flagSvgs.d.ts +8 -0
  28. package/dist/ui/LocaleFlags/flagSvgs.d.ts.map +1 -0
  29. package/dist/ui/LocaleFlags/flagSvgs.js +10 -0
  30. package/dist/ui/LocaleFlags/flagSvgs.js.map +1 -0
  31. package/dist/ui/LocaleFlags/index.d.ts +4 -0
  32. package/dist/ui/LocaleFlags/index.d.ts.map +1 -0
  33. package/dist/ui/LocaleFlags/index.js +4 -0
  34. package/dist/ui/LocaleFlags/index.js.map +1 -0
  35. package/dist/ui/LocaleFlags/localeFlagRegistry.d.ts +16 -0
  36. package/dist/ui/LocaleFlags/localeFlagRegistry.d.ts.map +1 -0
  37. package/dist/ui/LocaleFlags/localeFlagRegistry.js +45 -0
  38. package/dist/ui/LocaleFlags/localeFlagRegistry.js.map +1 -0
  39. package/dist/ui/index.d.ts +2 -1
  40. package/dist/ui/index.d.ts.map +1 -1
  41. package/dist/ui/index.js +1 -0
  42. package/dist/ui/index.js.map +1 -1
  43. package/package.json +7 -1
  44. package/src/tokens/responsive.css +82 -0
  45. package/src/tokens/theme.css +2 -0
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Cross-surface responsive breakpoint SSOT (Tailwind v4 Option A defaults).
3
+ * wide (1440) is test-viewport only — see TEST_VIEWPORTS.wide, not BREAKPOINTS.
4
+ */
5
+ export declare const RESPONSIVE_CONTRACT_VERSION = "1.0.0";
6
+ export declare const BREAKPOINTS: {
7
+ readonly sm: 640;
8
+ readonly md: 768;
9
+ readonly lg: 1024;
10
+ readonly xl: 1280;
11
+ readonly '2xl': 1536;
12
+ };
13
+ export type BreakpointToken = keyof typeof BREAKPOINTS;
14
+ /** Semantic density tiers — not 1:1 with Tailwind tokens. */
15
+ export declare const RESPONSIVE_TIER_BOUNDS: {
16
+ readonly compact: {
17
+ readonly maxWidth: number;
18
+ };
19
+ readonly comfortable: {
20
+ readonly minWidth: 768;
21
+ readonly maxWidth: number;
22
+ };
23
+ readonly expanded: {
24
+ readonly minWidth: 1024;
25
+ };
26
+ };
27
+ /** Alias for RESPONSIVE_TIER_BOUNDS — preferred import name in shell code. */
28
+ export declare const RESPONSIVE_TIERS: {
29
+ readonly compact: {
30
+ readonly maxWidth: number;
31
+ };
32
+ readonly comfortable: {
33
+ readonly minWidth: 768;
34
+ readonly maxWidth: number;
35
+ };
36
+ readonly expanded: {
37
+ readonly minWidth: 1024;
38
+ };
39
+ };
40
+ export type ResponsiveTier = keyof typeof RESPONSIVE_TIER_BOUNDS;
41
+ /** Playwright / acceptance matrix viewports (wide is PO mockup tier only). */
42
+ export declare const TEST_VIEWPORTS: {
43
+ readonly phoneSmall: {
44
+ readonly width: 320;
45
+ readonly height: 568;
46
+ };
47
+ readonly phone: {
48
+ readonly width: 390;
49
+ readonly height: 844;
50
+ };
51
+ readonly phoneLandscape: {
52
+ readonly width: 844;
53
+ readonly height: 390;
54
+ };
55
+ readonly tablet: {
56
+ readonly width: 768;
57
+ readonly height: 1024;
58
+ };
59
+ readonly tabletLandscape: {
60
+ readonly width: 1024;
61
+ readonly height: 768;
62
+ };
63
+ readonly desktop: {
64
+ readonly width: 1280;
65
+ readonly height: 900;
66
+ };
67
+ readonly wide: {
68
+ readonly width: 1440;
69
+ readonly height: 900;
70
+ };
71
+ };
72
+ export declare function tierFromWidth(widthPx: number): ResponsiveTier;
73
+ //# sourceMappingURL=breakpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breakpoints.d.ts","sourceRoot":"","sources":["../../src/responsive/breakpoints.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,2BAA2B,UAAU,CAAC;AAEnD,eAAO,MAAM,WAAW;;;;;;CAMd,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,WAAW,CAAC;AAEvD,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB;;;;;;;;;;;CAIzB,CAAC;AAEX,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB;;;;;;;;;;;CAAyB,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAEjE,8EAA8E;AAC9E,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQjB,CAAC;AAEX,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAQ7D"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Cross-surface responsive breakpoint SSOT (Tailwind v4 Option A defaults).
3
+ * wide (1440) is test-viewport only — see TEST_VIEWPORTS.wide, not BREAKPOINTS.
4
+ */
5
+ export const RESPONSIVE_CONTRACT_VERSION = '1.0.0';
6
+ export const BREAKPOINTS = {
7
+ sm: 640,
8
+ md: 768,
9
+ lg: 1024,
10
+ xl: 1280,
11
+ '2xl': 1536,
12
+ };
13
+ /** Semantic density tiers — not 1:1 with Tailwind tokens. */
14
+ export const RESPONSIVE_TIER_BOUNDS = {
15
+ compact: { maxWidth: BREAKPOINTS.md - 1 },
16
+ comfortable: { minWidth: BREAKPOINTS.md, maxWidth: BREAKPOINTS.lg - 1 },
17
+ expanded: { minWidth: BREAKPOINTS.lg },
18
+ };
19
+ /** Alias for RESPONSIVE_TIER_BOUNDS — preferred import name in shell code. */
20
+ export const RESPONSIVE_TIERS = RESPONSIVE_TIER_BOUNDS;
21
+ /** Playwright / acceptance matrix viewports (wide is PO mockup tier only). */
22
+ export const TEST_VIEWPORTS = {
23
+ phoneSmall: { width: 320, height: 568 },
24
+ phone: { width: 390, height: 844 },
25
+ phoneLandscape: { width: 844, height: 390 },
26
+ tablet: { width: 768, height: 1024 },
27
+ tabletLandscape: { width: 1024, height: 768 },
28
+ desktop: { width: 1280, height: 900 },
29
+ wide: { width: 1440, height: 900 },
30
+ };
31
+ export function tierFromWidth(widthPx) {
32
+ if (widthPx >= RESPONSIVE_TIER_BOUNDS.expanded.minWidth) {
33
+ return 'expanded';
34
+ }
35
+ if (widthPx >= RESPONSIVE_TIER_BOUNDS.comfortable.minWidth) {
36
+ return 'comfortable';
37
+ }
38
+ return 'compact';
39
+ }
40
+ //# sourceMappingURL=breakpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breakpoints.js","sourceRoot":"","sources":["../../src/responsive/breakpoints.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,OAAO,CAAC;AAEnD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,IAAI;CACH,CAAC;AAIX,6DAA6D;AAC7D,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,EAAE;IACzC,WAAW,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,EAAE;IACvE,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,EAAE;CAC9B,CAAC;AAEX,8EAA8E;AAC9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAIvD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACvC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAClC,cAAc,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC3C,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACpC,eAAe,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IAC7C,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IACrC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;CAC1B,CAAC;AAEX,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,IAAI,OAAO,IAAI,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACxD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,OAAO,IAAI,sBAAsB,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC3D,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { BREAKPOINTS, RESPONSIVE_CONTRACT_VERSION, RESPONSIVE_TIER_BOUNDS, RESPONSIVE_TIERS, TEST_VIEWPORTS, tierFromWidth, type BreakpointToken, type ResponsiveTier, } from './breakpoints.js';
2
+ export { useResponsiveTier } from './useResponsiveTier.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/responsive/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,2BAA2B,EAC3B,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { BREAKPOINTS, RESPONSIVE_CONTRACT_VERSION, RESPONSIVE_TIER_BOUNDS, RESPONSIVE_TIERS, TEST_VIEWPORTS, tierFromWidth, } from './breakpoints.js';
2
+ export { useResponsiveTier } from './useResponsiveTier.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/responsive/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,2BAA2B,EAC3B,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,aAAa,GAGd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type ResponsiveTier } from './breakpoints.js';
2
+ /**
3
+ * Shell-only runtime tier helper (SSR-safe). Do not branch feature layout on this.
4
+ */
5
+ export declare function useResponsiveTier(): ResponsiveTier;
6
+ //# sourceMappingURL=useResponsiveTier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResponsiveTier.d.ts","sourceRoot":"","sources":["../../src/responsive/useResponsiveTier.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAWnF;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAqBlD"}
@@ -0,0 +1,33 @@
1
+ import { useEffect, useState } from 'react';
2
+ import { BREAKPOINTS, tierFromWidth } from './breakpoints.js';
3
+ const DEFAULT_TIER = 'compact';
4
+ function readTierFromWindow() {
5
+ if (typeof window === 'undefined') {
6
+ return DEFAULT_TIER;
7
+ }
8
+ return tierFromWidth(window.innerWidth);
9
+ }
10
+ /**
11
+ * Shell-only runtime tier helper (SSR-safe). Do not branch feature layout on this.
12
+ */
13
+ export function useResponsiveTier() {
14
+ const [tier, setTier] = useState(DEFAULT_TIER);
15
+ useEffect(() => {
16
+ const update = () => {
17
+ setTier(readTierFromWindow());
18
+ };
19
+ update();
20
+ const mqMd = window.matchMedia(`(min-width: ${String(BREAKPOINTS.md)}px)`);
21
+ const mqLg = window.matchMedia(`(min-width: ${String(BREAKPOINTS.lg)}px)`);
22
+ mqMd.addEventListener('change', update);
23
+ mqLg.addEventListener('change', update);
24
+ window.addEventListener('resize', update);
25
+ return () => {
26
+ mqMd.removeEventListener('change', update);
27
+ mqLg.removeEventListener('change', update);
28
+ window.removeEventListener('resize', update);
29
+ };
30
+ }, []);
31
+ return tier;
32
+ }
33
+ //# sourceMappingURL=useResponsiveTier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResponsiveTier.js","sourceRoot":"","sources":["../../src/responsive/useResponsiveTier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAuB,MAAM,kBAAkB,CAAC;AAEnF,MAAM,YAAY,GAAmB,SAAS,CAAC;AAE/C,SAAS,kBAAkB;IACzB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAiB,YAAY,CAAC,CAAC;IAE/D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,GAAS,EAAE;YACxB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC;QACF,MAAM,EAAE,CAAC;QACT,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1C,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC3C,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"applyTenantScopeToSimpleStates.d.ts","sourceRoot":"","sources":["../../src/tenant-entitlements/applyTenantScopeToSimpleStates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAMvF,wFAAwF;AACxF,eAAO,MAAM,8BAA8B,0CAGQ,CAAC;AAEpD,mGAAmG;AACnG,eAAO,MAAM,8BAA8B,gDAGQ,CAAC;AAEpD,mHAAmH;AACnH,eAAO,MAAM,iCAAiC,+EAGK,CAAC;AAEpD,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAM9F,uFAAuF;AACvF,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,sBAAsB,GAAG,SAAS,GAAG,OAAO,CAExG;AAED,sFAAsF;AACtF,wBAAgB,+BAA+B,IAAI,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,CAe9G;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,mBAAmB,GAAG,QAAQ,IAAI,4BAA4B,CAExH;AAaD,qGAAqG;AACrG,eAAO,MAAM,wCAAwC,mCAEF,CAAC;AAEpD,MAAM,MAAM,kCAAkC,GAC5C,CAAC,OAAO,wCAAwC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,qBAAqB,GAAG,OAAO,CAExF;AAmBD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,mBAAmB,EAC7B,eAAe,EAAE,qBAAqB,EACtC,aAAa,EAAE,kBAAkB,GAChC,OAAO,CAgBT;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,EACpE,KAAK,CAAC,EAAE;IACN,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;CAC3C,GACA,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,CAQ9D;AAiED,4FAA4F;AAC5F,wBAAgB,8BAA8B,CAC5C,eAAe,EAAE,qBAAqB,EACtC,YAAY,EAAE,kBAAkB,EAChC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,GACrE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,CAQ9D;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,GACnE,qBAAqB,CAavB;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,GACnE,kBAAkB,CAapB"}
1
+ {"version":3,"file":"applyTenantScopeToSimpleStates.d.ts","sourceRoot":"","sources":["../../src/tenant-entitlements/applyTenantScopeToSimpleStates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAMvF,wFAAwF;AACxF,eAAO,MAAM,8BAA8B,0CAGQ,CAAC;AAEpD,mGAAmG;AACnG,eAAO,MAAM,8BAA8B,gDAGQ,CAAC;AAEpD,mHAAmH;AACnH,eAAO,MAAM,iCAAiC,+EAGK,CAAC;AAEpD,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAM9F,uFAAuF;AACvF,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,sBAAsB,GAAG,SAAS,GAAG,OAAO,CAExG;AAED,sFAAsF;AACtF,wBAAgB,+BAA+B,IAAI,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,CAmB9G;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,mBAAmB,GAAG,QAAQ,IAAI,4BAA4B,CAExH;AAaD,qGAAqG;AACrG,eAAO,MAAM,wCAAwC,mCAEF,CAAC;AAEpD,MAAM,MAAM,kCAAkC,GAC5C,CAAC,OAAO,wCAAwC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,qBAAqB,GAAG,OAAO,CAExF;AAmBD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,mBAAmB,EAC7B,eAAe,EAAE,qBAAqB,EACtC,aAAa,EAAE,kBAAkB,GAChC,OAAO,CAgBT;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,EACpE,KAAK,CAAC,EAAE;IACN,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;CAC3C,GACA,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,CAQ9D;AAiED,4FAA4F;AAC5F,wBAAgB,8BAA8B,CAC5C,eAAe,EAAE,qBAAqB,EACtC,YAAY,EAAE,kBAAkB,EAChC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,GACrE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,CAQ9D;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,GACnE,qBAAqB,CAavB;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC,GACnE,kBAAkB,CAapB"}
@@ -28,6 +28,10 @@ export function isRuntimeActiveSimpleEntitlementState(state) {
28
28
  export function buildDefaultTenantScopeBaseline() {
29
29
  return {
30
30
  sales_point_management: ON,
31
+ payment_rails_strategy: ON,
32
+ payment_reconciliation: ON,
33
+ payments_hub_ui: ON,
34
+ bank_inbox_claims_api: ON,
31
35
  order_pickup_infrastructure: ON,
32
36
  fulfillment_queue: ON,
33
37
  pickup_points: ON,
@@ -1 +1 @@
1
- {"version":3,"file":"applyTenantScopeToSimpleStates.js","sourceRoot":"","sources":["../../src/tenant-entitlements/applyTenantScopeToSimpleStates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"applyTenantScopeToSimpleStates.js","sourceRoot":"","sources":["../../src/tenant-entitlements/applyTenantScopeToSimpleStates.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;AAmExD,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;kDAyC5B,CAAC"}
@@ -3,6 +3,7 @@ import { forwardRef } from 'react';
3
3
  import { tv } from '../tvShim.js';
4
4
  const adminCard = tv({
5
5
  base: [
6
+ 'rp-card-container',
6
7
  'rounded-lg border border-[var(--color-an-border)]',
7
8
  'bg-[var(--color-an-surface)] text-[var(--color-an-text)]',
8
9
  'shadow-sm',
@@ -24,6 +25,7 @@ const adminCard = tv({
24
25
  });
25
26
  const pickupCard = tv({
26
27
  base: [
28
+ 'rp-card-container',
27
29
  'rounded-[var(--radius-xl)] bg-[var(--color-surface-elevated)]',
28
30
  'shadow-[var(--shadow-card)]',
29
31
  ].join(' '),
@@ -44,6 +46,7 @@ const pickupCard = tv({
44
46
  });
45
47
  const kioskCustomerCard = tv({
46
48
  base: [
49
+ 'rp-card-container',
47
50
  'rounded-xl border bg-[var(--color-surface-elevated)]',
48
51
  'border-[var(--color-border)] shadow-[var(--shadow-card)]',
49
52
  ].join(' '),
@@ -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,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,+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,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,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,10 +1,14 @@
1
- export type LanguageToggleSurface = 'admin' | 'kiosk' | 'customer';
2
- export type LanguageToggleNamespace = 'admin' | 'kiosk' | 'customer';
3
- export type LanguageTogglePlacement = 'floating' | 'inline' | 'header';
1
+ import { type LocaleFlagOption, type LocaleFlagTogglePlacement, type LocaleFlagToggleSurface } from '../LocaleFlags/index.js';
2
+ export type LanguageToggleSurface = LocaleFlagToggleSurface;
3
+ export type LanguageToggleNamespace = 'admin' | 'kiosk' | 'customer' | 'pickup';
4
+ export type LanguageTogglePlacement = LocaleFlagTogglePlacement;
4
5
  export interface LanguageToggleProps {
5
6
  readonly surface: LanguageToggleSurface;
6
7
  readonly i18nNamespace: LanguageToggleNamespace;
7
8
  readonly placement?: LanguageTogglePlacement;
9
+ /** Extra locale flags appended after defaults; same `code` overrides a default entry. */
10
+ readonly locales?: readonly LocaleFlagOption[];
11
+ readonly dataTestId?: string;
8
12
  }
9
- export declare function LanguageToggle({ surface, i18nNamespace, placement, }: LanguageToggleProps): JSX.Element;
13
+ export declare function LanguageToggle({ surface, i18nNamespace, placement, locales, dataTestId, }: LanguageToggleProps): JSX.Element;
10
14
  //# sourceMappingURL=LanguageToggle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LanguageToggle.d.ts","sourceRoot":"","sources":["../../../src/ui/LanguageToggle/LanguageToggle.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AACnE,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AACrE,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAwHvE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,uBAAuB,CAAC;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,uBAAuB,CAAC;CAC9C;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,aAAa,EACb,SAAsB,GACvB,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAsDnC"}
1
+ {"version":3,"file":"LanguageToggle.d.ts","sourceRoot":"","sources":["../../../src/ui/LanguageToggle/LanguageToggle.tsx"],"names":[],"mappings":"AAEA,OAAO,EAOL,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAC5D,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAChF,MAAM,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,uBAAuB,CAAC;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,uBAAuB,CAAC;IAC7C,yFAAyF;IACzF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,aAAa,EACb,SAAsB,EACtB,OAAO,EACP,UAAU,GACX,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAkCnC"}
@@ -1,143 +1,21 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect } from 'react';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useMemo } from 'react';
3
3
  import { useTranslation } from 'react-i18next';
4
- import { tv } from '../tvShim.js';
5
- const toggle = tv({
6
- slots: {
7
- group: 'inline-flex max-w-full shrink-0 items-stretch overflow-hidden',
8
- btn: 'm-0 cursor-pointer border-none font-semibold transition-colors',
9
- divider: 'w-px self-stretch bg-[var(--color-border)]',
10
- },
11
- variants: {
12
- surface: {
13
- admin: {
14
- btn: 'px-4 py-2 text-sm text-[var(--color-text-secondary,#475569)] hover:bg-[var(--color-surface-muted,#f1f5f9)] hover:text-[var(--color-text-primary,#0f172a)]',
15
- divider: 'bg-[var(--color-border,#e2e8f0)]',
16
- },
17
- kiosk: {
18
- btn: 'px-8 py-4 text-sm text-[var(--color-on-surface-muted,#475569)] hover:bg-[var(--color-surface-muted,#f1f5f9)] hover:text-[var(--color-on-surface,#0f172a)]',
19
- divider: 'bg-[var(--color-border,#e2e8f0)]',
20
- },
21
- customer: {
22
- btn: 'px-3 py-1.5 text-sm text-[var(--color-on-surface-muted)] hover:bg-[var(--color-surface-muted)] hover:text-[var(--color-on-surface)]',
23
- divider: 'bg-[var(--color-border)]',
24
- },
25
- },
26
- placement: {
27
- floating: {},
28
- inline: {
29
- group: [
30
- 'rounded-md border border-[var(--color-rail-card-border,var(--color-border,#e2e8f0))]',
31
- 'bg-[var(--color-surface-elevated,#fff)] shadow-sm',
32
- ].join(' '),
33
- btn: 'px-2.5 py-1.5 text-xs',
34
- },
35
- header: {
36
- group: [
37
- 'rounded-full border border-[var(--color-rail-card-border,#e2e8f0)]',
38
- 'bg-slate-50 p-0.5 shadow-none',
39
- ].join(' '),
40
- btn: 'rounded-full px-2.5 py-1 text-xs font-medium text-slate-600 hover:text-slate-900',
41
- divider: 'hidden',
42
- },
43
- },
44
- },
45
- compoundVariants: [
46
- {
47
- surface: 'admin',
48
- placement: 'floating',
49
- class: {
50
- group: [
51
- 'fixed top-[var(--spacing-4,1rem)] right-[var(--spacing-4,1rem)] z-[10001]',
52
- 'rounded-[var(--radius-lg,0.5rem)] border border-[var(--color-border,#e2e8f0)]',
53
- 'bg-[var(--color-surface-elevated,#fff)] shadow-[var(--shadow-md,0_4px_6px_-1px_rgb(0_0_0_/_0.1))]',
54
- ].join(' '),
55
- },
56
- },
57
- {
58
- surface: 'kiosk',
59
- placement: 'floating',
60
- class: {
61
- group: [
62
- 'fixed top-[var(--spacing-10)] right-[var(--spacing-10)] z-[var(--z-modal-backdrop)]',
63
- 'rounded-[var(--radius-xl)] border border-[var(--color-border,#e2e8f0)]',
64
- 'bg-[var(--color-surface-elevated,#fff)] shadow-[var(--shadow-lg)]',
65
- ].join(' '),
66
- },
67
- },
68
- {
69
- surface: 'customer',
70
- placement: 'floating',
71
- class: {
72
- group: [
73
- 'fixed top-2.5 right-2.5 z-50 rounded-xl border border-[var(--color-border)]',
74
- 'bg-[var(--color-surface-elevated)] shadow-lg',
75
- ].join(' '),
76
- },
77
- },
78
- ],
79
- defaultVariants: {
80
- surface: 'customer',
81
- placement: 'floating',
82
- },
83
- });
84
- const activeBtn = tv({
85
- variants: {
86
- surface: {
87
- admin: 'bg-[var(--color-primary,#6366f1)] text-white hover:bg-[var(--color-primary-hover,#4f46e5)] hover:text-white',
88
- kiosk: 'bg-[var(--color-accent,#2563eb)] text-[var(--color-accent-foreground,#fff)] hover:opacity-95',
89
- customer: 'bg-[var(--color-accent)] text-[var(--color-accent-foreground)] hover:opacity-90',
90
- },
91
- placement: {
92
- floating: {},
93
- inline: {},
94
- header: {},
95
- },
96
- },
97
- compoundVariants: [
98
- {
99
- surface: 'admin',
100
- placement: 'header',
101
- class: 'bg-white text-slate-900 shadow-sm hover:bg-white hover:text-slate-900',
102
- },
103
- ],
104
- defaultVariants: {
105
- surface: 'customer',
106
- placement: 'floating',
107
- },
108
- });
109
- function normalizeLocale(lng) {
110
- if (lng == null || lng === '') {
111
- return 'cs';
112
- }
113
- return lng.startsWith('en') ? 'en' : 'cs';
114
- }
115
- export function LanguageToggle({ surface, i18nNamespace, placement = 'floating', }) {
4
+ import { DEFAULT_LOCALE_FLAGS, LocaleFlagToggle, buildLocaleLabelKey, mergeLocaleFlags, resolveActiveLocaleCode, resolveDocumentLang, } from '../LocaleFlags/index.js';
5
+ export function LanguageToggle({ surface, i18nNamespace, placement = 'floating', locales, dataTestId, }) {
116
6
  const { t, i18n } = useTranslation(i18nNamespace);
117
- const active = normalizeLocale(i18n.language);
118
- const slots = toggle({ surface, placement });
7
+ const availableLocales = useMemo(() => (locales ? mergeLocaleFlags(DEFAULT_LOCALE_FLAGS, locales) : DEFAULT_LOCALE_FLAGS), [locales]);
8
+ const activeLocale = resolveActiveLocaleCode(i18n.language, availableLocales);
119
9
  useEffect(() => {
120
- document.documentElement.lang = active === 'en' ? 'en' : 'cs';
121
- }, [active]);
122
- const select = (locale) => {
123
- if (locale === active) {
10
+ document.documentElement.lang = resolveDocumentLang(activeLocale, availableLocales);
11
+ }, [activeLocale, availableLocales]);
12
+ const select = (code) => {
13
+ if (code === activeLocale) {
124
14
  return;
125
15
  }
126
- void i18n.changeLanguage(locale);
127
- };
128
- const btnClass = (locale) => {
129
- const base = slots.btn();
130
- if (active === locale) {
131
- return [base, activeBtn({ surface, placement })].join(' ');
132
- }
133
- return [base, 'bg-transparent'].join(' ');
16
+ void i18n.changeLanguage(code);
134
17
  };
135
- const csLabel = placement === 'header' ? t('shell.language.csShort', { defaultValue: 'CS' }) : t('shell.language.cs');
136
- const enLabel = placement === 'header' ? t('shell.language.enShort', { defaultValue: 'EN' }) : t('shell.language.en');
137
- return (_jsxs("div", { className: slots.group(), role: "group", "aria-label": t('shell.language.groupLabel'), children: [_jsx("button", { type: "button", className: btnClass('cs'), "aria-pressed": active === 'cs', onClick: () => {
138
- select('cs');
139
- }, children: csLabel }), placement === 'header' ? null : _jsx("span", { className: slots.divider(), "aria-hidden": "true" }), _jsx("button", { type: "button", className: btnClass('en'), "aria-pressed": active === 'en', onClick: () => {
140
- select('en');
141
- }, children: enLabel })] }));
18
+ const getLabel = (code) => t(buildLocaleLabelKey(code), { defaultValue: code.toUpperCase() });
19
+ return (_jsx(LocaleFlagToggle, { locales: availableLocales, activeLocale: activeLocale, onSelect: select, getLabel: getLabel, groupLabel: t('shell.language.groupLabel', { defaultValue: 'Interface language' }), surface: surface, placement: placement, dataTestId: dataTestId }));
142
20
  }
143
21
  //# sourceMappingURL=LanguageToggle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LanguageToggle.js","sourceRoot":"","sources":["../../../src/ui/LanguageToggle/LanguageToggle.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LanguageToggle.js","sourceRoot":"","sources":["../../../src/ui/LanguageToggle/LanguageToggle.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,GAIpB,MAAM,yBAAyB,CAAC;AAejC,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,EACP,aAAa,EACb,SAAS,GAAG,UAAU,EACtB,OAAO,EACP,UAAU,GACU;IACpB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,EACxF,CAAC,OAAO,CAAC,CACV,CAAC;IACF,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAE9E,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,mBAAmB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IACtF,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAErC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAQ,EAAE;QACpC,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAU,EAAE,CACxC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAErE,OAAO,CACL,KAAC,gBAAgB,IACf,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,CAAC,CAAC,2BAA2B,EAAE,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC,EAClF,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,GACtB,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { LocaleFlagOption } from './localeFlagRegistry.js';
2
+ export type LocaleFlagToggleSurface = 'admin' | 'kiosk' | 'customer' | 'pickup';
3
+ export type LocaleFlagTogglePlacement = 'floating' | 'inline' | 'header';
4
+ export interface LocaleFlagToggleProps {
5
+ readonly locales: readonly LocaleFlagOption[];
6
+ readonly activeLocale: string;
7
+ readonly onSelect: (code: string) => void;
8
+ readonly getLabel: (code: string) => string;
9
+ readonly groupLabel: string;
10
+ readonly surface?: LocaleFlagToggleSurface;
11
+ readonly placement?: LocaleFlagTogglePlacement;
12
+ readonly dataTestId?: string;
13
+ }
14
+ export declare function LocaleFlagToggle({ locales, activeLocale, onSelect, getLabel, groupLabel, surface, placement, dataTestId, }: LocaleFlagToggleProps): JSX.Element;
15
+ //# sourceMappingURL=LocaleFlagToggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocaleFlagToggle.d.ts","sourceRoot":"","sources":["../../../src/ui/LocaleFlags/LocaleFlagToggle.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAChF,MAAM,MAAM,yBAAyB,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAkIzE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,OAAoB,EACpB,SAAsB,EACtB,UAAU,GACX,EAAE,qBAAqB,GAAG,GAAG,CAAC,OAAO,CAiCrC"}
@@ -0,0 +1,140 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { tv } from '../tvShim.js';
3
+ const flagGroup = tv({
4
+ base: 'inline-flex max-w-full shrink-0 items-center',
5
+ variants: {
6
+ placement: {
7
+ floating: 'gap-2',
8
+ inline: [
9
+ 'gap-1.5 rounded-md border border-[var(--color-rail-card-border,var(--color-border,#e2e8f0))]',
10
+ 'bg-[var(--color-surface-elevated,#fff)] p-1 shadow-sm',
11
+ ].join(' '),
12
+ header: [
13
+ 'gap-1.5 rounded-full border border-[var(--color-rail-card-border,#e2e8f0)]',
14
+ 'bg-slate-50 p-1 shadow-none',
15
+ ].join(' '),
16
+ },
17
+ surface: {
18
+ admin: '',
19
+ kiosk: '',
20
+ customer: '',
21
+ pickup: '',
22
+ },
23
+ },
24
+ compoundVariants: [
25
+ {
26
+ surface: 'admin',
27
+ placement: 'floating',
28
+ class: [
29
+ 'fixed top-[var(--spacing-4,1rem)] right-[var(--spacing-4,1rem)] z-[10001]',
30
+ 'rounded-[var(--radius-lg,0.5rem)] border border-[var(--color-border,#e2e8f0)]',
31
+ 'bg-[var(--color-surface-elevated,#fff)] p-1.5 shadow-[var(--shadow-md,0_4px_6px_-1px_rgb(0_0_0_/_0.1))]',
32
+ ].join(' '),
33
+ },
34
+ {
35
+ surface: 'kiosk',
36
+ placement: 'floating',
37
+ class: [
38
+ 'fixed top-[var(--spacing-10)] right-[var(--spacing-10)] z-[var(--z-modal-backdrop)]',
39
+ 'rounded-[var(--radius-xl)] border border-[var(--color-border,#e2e8f0)]',
40
+ 'bg-[var(--color-surface-elevated,#fff)] p-2 shadow-[var(--shadow-lg)]',
41
+ ].join(' '),
42
+ },
43
+ {
44
+ surface: 'customer',
45
+ placement: 'floating',
46
+ class: [
47
+ 'fixed top-2.5 right-2.5 z-50 rounded-xl border border-[var(--color-border)]',
48
+ 'bg-[var(--color-surface-elevated)] p-1.5 shadow-lg',
49
+ ].join(' '),
50
+ },
51
+ {
52
+ surface: 'pickup',
53
+ placement: 'floating',
54
+ class: [
55
+ 'fixed top-2.5 right-2.5 z-50 rounded-xl border border-[var(--color-border,#e2e8f0)]',
56
+ 'bg-[var(--color-surface-elevated,#fff)] p-1.5 shadow-lg',
57
+ ].join(' '),
58
+ },
59
+ ],
60
+ defaultVariants: {
61
+ placement: 'floating',
62
+ surface: 'customer',
63
+ },
64
+ });
65
+ const flagButton = tv({
66
+ base: [
67
+ 'inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full',
68
+ 'border-2 border-transparent transition-all duration-150',
69
+ 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2',
70
+ ].join(' '),
71
+ variants: {
72
+ placement: {
73
+ floating: 'h-10 w-10',
74
+ inline: 'h-8 w-8',
75
+ header: 'h-8 w-8',
76
+ },
77
+ pressed: {
78
+ true: 'opacity-100 shadow-sm',
79
+ false: 'opacity-75 hover:scale-105 hover:opacity-100',
80
+ },
81
+ surface: {
82
+ admin: 'focus-visible:outline-[var(--color-an-primary,#6366f1)]',
83
+ kiosk: 'focus-visible:outline-[var(--color-accent,#2563eb)]',
84
+ customer: 'focus-visible:outline-[var(--color-accent)]',
85
+ pickup: 'focus-visible:outline-[var(--color-accent,#2563eb)]',
86
+ },
87
+ },
88
+ compoundVariants: [
89
+ {
90
+ surface: 'admin',
91
+ pressed: true,
92
+ class: 'border-[var(--color-an-primary,#6366f1)] ring-2 ring-[var(--color-an-primary,#6366f1)]/25',
93
+ },
94
+ {
95
+ surface: 'kiosk',
96
+ pressed: true,
97
+ class: 'border-[var(--color-accent,#2563eb)] ring-2 ring-[var(--color-accent,#2563eb)]/25',
98
+ },
99
+ {
100
+ surface: 'customer',
101
+ pressed: true,
102
+ class: 'border-[var(--color-accent)] ring-2 ring-[var(--color-accent)]/25',
103
+ },
104
+ {
105
+ surface: 'pickup',
106
+ pressed: true,
107
+ class: 'border-[var(--color-accent,#2563eb)] ring-2 ring-[var(--color-accent,#2563eb)]/25',
108
+ },
109
+ ],
110
+ defaultVariants: {
111
+ placement: 'floating',
112
+ pressed: false,
113
+ surface: 'customer',
114
+ },
115
+ });
116
+ const flagSize = tv({
117
+ variants: {
118
+ placement: {
119
+ floating: 'h-10 w-10',
120
+ inline: 'h-8 w-8',
121
+ header: 'h-8 w-8',
122
+ },
123
+ },
124
+ defaultVariants: {
125
+ placement: 'floating',
126
+ },
127
+ });
128
+ export function LocaleFlagToggle({ locales, activeLocale, onSelect, getLabel, groupLabel, surface = 'customer', placement = 'floating', dataTestId, }) {
129
+ return (_jsx("div", { className: flagGroup({ surface, placement }), role: "group", "aria-label": groupLabel, "data-testid": dataTestId, children: locales.map((locale) => {
130
+ const Flag = locale.Flag;
131
+ const isActive = locale.code === activeLocale;
132
+ const label = getLabel(locale.code);
133
+ return (_jsx("button", { type: "button", className: flagButton({ surface, placement, pressed: isActive }), "aria-pressed": isActive, "aria-label": label, title: label, onClick: () => {
134
+ if (!isActive) {
135
+ onSelect(locale.code);
136
+ }
137
+ }, children: _jsx(Flag, { className: flagSize({ placement }) }) }, locale.code));
138
+ }) }));
139
+ }
140
+ //# sourceMappingURL=LocaleFlagToggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocaleFlagToggle.js","sourceRoot":"","sources":["../../../src/ui/LocaleFlags/LocaleFlagToggle.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type ComponentType } from 'react';
2
+ export interface LocaleFlagSvgProps {
3
+ readonly className?: string;
4
+ }
5
+ export declare function CzechFlagSvg({ className }: LocaleFlagSvgProps): JSX.Element;
6
+ export declare function EnglishFlagSvg({ className }: LocaleFlagSvgProps): JSX.Element;
7
+ export type LocaleFlagSvgComponent = ComponentType<LocaleFlagSvgProps>;
8
+ //# sourceMappingURL=flagSvgs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flagSvgs.d.ts","sourceRoot":"","sources":["../../../src/ui/LocaleFlags/flagSvgs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAKD,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAe3E;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAiB7E;AAED,MAAM,MAAM,sBAAsB,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ const CS_FLAG_CLIP_ID = 'locale-flag-clip-cs';
3
+ const EN_FLAG_CLIP_ID = 'locale-flag-clip-en';
4
+ export function CzechFlagSvg({ className }) {
5
+ return (_jsxs("svg", { viewBox: "0 0 32 32", className: className, "aria-hidden": "true", children: [_jsx("defs", { children: _jsx("clipPath", { id: CS_FLAG_CLIP_ID, children: _jsx("circle", { cx: "16", cy: "16", r: "16" }) }) }), _jsxs("g", { clipPath: `url(#${CS_FLAG_CLIP_ID})`, children: [_jsx("rect", { width: "32", height: "16", fill: "#ffffff" }), _jsx("rect", { y: "16", width: "32", height: "16", fill: "#d7141a" }), _jsx("path", { d: "M0 0 L18 16 L0 32 Z", fill: "#11457e" })] })] }));
6
+ }
7
+ export function EnglishFlagSvg({ className }) {
8
+ return (_jsxs("svg", { viewBox: "0 0 32 32", className: className, "aria-hidden": "true", children: [_jsx("defs", { children: _jsx("clipPath", { id: EN_FLAG_CLIP_ID, children: _jsx("circle", { cx: "16", cy: "16", r: "16" }) }) }), _jsxs("g", { clipPath: `url(#${EN_FLAG_CLIP_ID})`, children: [_jsx("rect", { width: "32", height: "32", fill: "#012169" }), _jsx("path", { d: "M0 0 L32 32 M32 0 L0 32", stroke: "#ffffff", strokeWidth: "6" }), _jsx("path", { d: "M0 0 L32 32 M32 0 L0 32", stroke: "#c8102e", strokeWidth: "3" }), _jsx("path", { d: "M16 0 V32 M0 16 H32", stroke: "#ffffff", strokeWidth: "10" }), _jsx("path", { d: "M16 0 V32 M0 16 H32", stroke: "#c8102e", strokeWidth: "6" })] })] }));
9
+ }
10
+ //# sourceMappingURL=flagSvgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flagSvgs.js","sourceRoot":"","sources":["../../../src/ui/LocaleFlags/flagSvgs.tsx"],"names":[],"mappings":";AAMA,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAC9C,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,MAAM,UAAU,YAAY,CAAC,EAAE,SAAS,EAAsB;IAC5D,OAAO,CACL,eAAK,OAAO,EAAC,WAAW,EAAC,SAAS,EAAE,SAAS,iBAAc,MAAM,aAC/D,yBACE,mBAAU,EAAE,EAAE,eAAe,YAC3B,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,GAAG,GACxB,GACN,EACP,aAAG,QAAQ,EAAE,QAAQ,eAAe,GAAG,aACrC,eAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,GAAG,EAC9C,eAAM,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,GAAG,EACrD,eAAM,CAAC,EAAC,qBAAqB,EAAC,IAAI,EAAC,SAAS,GAAG,IAC7C,IACA,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAE,SAAS,EAAsB;IAC9D,OAAO,CACL,eAAK,OAAO,EAAC,WAAW,EAAC,SAAS,EAAE,SAAS,iBAAc,MAAM,aAC/D,yBACE,mBAAU,EAAE,EAAE,eAAe,YAC3B,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,GAAG,GACxB,GACN,EACP,aAAG,QAAQ,EAAE,QAAQ,eAAe,GAAG,aACrC,eAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,GAAG,EAC9C,eAAM,CAAC,EAAC,yBAAyB,EAAC,MAAM,EAAC,SAAS,EAAC,WAAW,EAAC,GAAG,GAAG,EACrE,eAAM,CAAC,EAAC,yBAAyB,EAAC,MAAM,EAAC,SAAS,EAAC,WAAW,EAAC,GAAG,GAAG,EACrE,eAAM,CAAC,EAAC,qBAAqB,EAAC,MAAM,EAAC,SAAS,EAAC,WAAW,EAAC,IAAI,GAAG,EAClE,eAAM,CAAC,EAAC,qBAAqB,EAAC,MAAM,EAAC,SAAS,EAAC,WAAW,EAAC,GAAG,GAAG,IAC/D,IACA,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { CzechFlagSvg, EnglishFlagSvg, type LocaleFlagSvgComponent, type LocaleFlagSvgProps } from './flagSvgs.js';
2
+ export { DEFAULT_LOCALE_FLAGS, buildLocaleLabelKey, mergeLocaleFlags, resolveActiveLocaleCode, resolveDocumentLang, type LocaleFlagOption, } from './localeFlagRegistry.js';
3
+ export { LocaleFlagToggle, type LocaleFlagTogglePlacement, type LocaleFlagToggleProps, type LocaleFlagToggleSurface, } from './LocaleFlagToggle.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/LocaleFlags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnH,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,gBAAgB,EAChB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { CzechFlagSvg, EnglishFlagSvg } from './flagSvgs.js';
2
+ export { DEFAULT_LOCALE_FLAGS, buildLocaleLabelKey, mergeLocaleFlags, resolveActiveLocaleCode, resolveDocumentLang, } from './localeFlagRegistry.js';
3
+ export { LocaleFlagToggle, } from './LocaleFlagToggle.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/LocaleFlags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAwD,MAAM,eAAe,CAAC;AACnH,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,GAEpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,gBAAgB,GAIjB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type LocaleFlagSvgComponent } from './flagSvgs.js';
2
+ export interface LocaleFlagOption {
3
+ /** i18n language code passed to `i18n.changeLanguage` (e.g. `cs`, `en`). */
4
+ readonly code: string;
5
+ readonly Flag: LocaleFlagSvgComponent;
6
+ /** When omitted, matches `lng === code` or `lng.startsWith(code)`. */
7
+ readonly matchesLanguage?: (lng: string) => boolean;
8
+ /** Value for `document.documentElement.lang` when this locale is active. */
9
+ readonly documentLang?: string;
10
+ }
11
+ export declare const DEFAULT_LOCALE_FLAGS: readonly LocaleFlagOption[];
12
+ export declare function mergeLocaleFlags(base: readonly LocaleFlagOption[], extra: readonly LocaleFlagOption[]): readonly LocaleFlagOption[];
13
+ export declare function resolveActiveLocaleCode(lng: string | undefined, locales: readonly LocaleFlagOption[]): string;
14
+ export declare function resolveDocumentLang(localeCode: string, locales: readonly LocaleFlagOption[]): string;
15
+ export declare function buildLocaleLabelKey(code: string): string;
16
+ //# sourceMappingURL=localeFlagRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localeFlagRegistry.d.ts","sourceRoot":"","sources":["../../../src/ui/LocaleFlags/localeFlagRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE1F,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,sEAAsE;IACtE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACpD,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAMD,eAAO,MAAM,oBAAoB,EAAE,SAAS,gBAAgB,EAalD,CAAC;AAEX,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,SAAS,gBAAgB,EAAE,EACjC,KAAK,EAAE,SAAS,gBAAgB,EAAE,GACjC,SAAS,gBAAgB,EAAE,CAS7B;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,MAAM,CAUR;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,MAAM,CAGR;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD"}
@@ -0,0 +1,45 @@
1
+ import { CzechFlagSvg, EnglishFlagSvg } from './flagSvgs.js';
2
+ function defaultMatchesLanguage(code, lng) {
3
+ return lng === code || lng.startsWith(`${code}-`) || lng.startsWith(code);
4
+ }
5
+ export const DEFAULT_LOCALE_FLAGS = [
6
+ {
7
+ code: 'cs',
8
+ Flag: CzechFlagSvg,
9
+ matchesLanguage: (lng) => defaultMatchesLanguage('cs', lng),
10
+ documentLang: 'cs',
11
+ },
12
+ {
13
+ code: 'en',
14
+ Flag: EnglishFlagSvg,
15
+ matchesLanguage: (lng) => defaultMatchesLanguage('en', lng),
16
+ documentLang: 'en',
17
+ },
18
+ ];
19
+ export function mergeLocaleFlags(base, extra) {
20
+ const merged = new Map();
21
+ for (const option of base) {
22
+ merged.set(option.code, option);
23
+ }
24
+ for (const option of extra) {
25
+ merged.set(option.code, option);
26
+ }
27
+ return [...merged.values()];
28
+ }
29
+ export function resolveActiveLocaleCode(lng, locales) {
30
+ if (lng != null && lng !== '') {
31
+ const matched = locales.find((option) => option.matchesLanguage ? option.matchesLanguage(lng) : defaultMatchesLanguage(option.code, lng));
32
+ if (matched) {
33
+ return matched.code;
34
+ }
35
+ }
36
+ return locales[0]?.code ?? 'cs';
37
+ }
38
+ export function resolveDocumentLang(localeCode, locales) {
39
+ const option = locales.find((entry) => entry.code === localeCode);
40
+ return option?.documentLang ?? localeCode;
41
+ }
42
+ export function buildLocaleLabelKey(code) {
43
+ return `shell.language.${code}`;
44
+ }
45
+ //# sourceMappingURL=localeFlagRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localeFlagRegistry.js","sourceRoot":"","sources":["../../../src/ui/LocaleFlags/localeFlagRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAA+B,MAAM,eAAe,CAAC;AAY1F,SAAS,sBAAsB,CAAC,IAAY,EAAE,GAAW;IACvD,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAgC;IAC/D;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,YAAY;QAClB,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC;QAC3D,YAAY,EAAE,IAAI;KACnB;IACD;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,cAAc;QACpB,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC;QAC3D,YAAY,EAAE,IAAI;KACnB;CACO,CAAC;AAEX,MAAM,UAAU,gBAAgB,CAC9B,IAAiC,EACjC,KAAkC;IAElC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IACnD,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,GAAuB,EACvB,OAAoC;IAEpC,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACtC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAChG,CAAC;QACF,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,OAAoC;IAEpC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAClE,OAAO,MAAM,EAAE,YAAY,IAAI,UAAU,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,kBAAkB,IAAI,EAAE,CAAC;AAClC,CAAC"}
@@ -4,7 +4,8 @@
4
4
  export { Button, type ButtonProps } from './Button/Button.js';
5
5
  export { Card, type CardProps } from './Card/Card.js';
6
6
  export { FormField, type FormFieldProps } from './FormField/FormField.js';
7
- export { LanguageToggle, type LanguageToggleProps, type LanguageToggleNamespace, type LanguageToggleSurface, } from './LanguageToggle/LanguageToggle.js';
7
+ export { LanguageToggle, type LanguageToggleProps, type LanguageToggleNamespace, type LanguageToggleSurface, type LanguageTogglePlacement, } from './LanguageToggle/LanguageToggle.js';
8
+ export { CzechFlagSvg, EnglishFlagSvg, DEFAULT_LOCALE_FLAGS, LocaleFlagToggle, buildLocaleLabelKey, mergeLocaleFlags, resolveActiveLocaleCode, resolveDocumentLang, type LocaleFlagOption, type LocaleFlagSvgComponent, type LocaleFlagSvgProps, type LocaleFlagTogglePlacement, type LocaleFlagToggleProps, type LocaleFlagToggleSurface, } from './LocaleFlags/index.js';
8
9
  export { useTurnstileAuth, type UseTurnstileAuthResult } from './Turnstile/useTurnstileAuth.js';
9
10
  export { TurnstileWidget, type TurnstileWidgetProps } from './Turnstile/TurnstileWidget.js';
10
11
  export { useTurnstileExecute, type UseTurnstileExecuteResult } from './Turnstile/useTurnstileExecute.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACzG,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,GACjC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACzG,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,GACjC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC"}
package/dist/ui/index.js CHANGED
@@ -5,6 +5,7 @@ export { Button } from './Button/Button.js';
5
5
  export { Card } from './Card/Card.js';
6
6
  export { FormField } from './FormField/FormField.js';
7
7
  export { LanguageToggle, } from './LanguageToggle/LanguageToggle.js';
8
+ export { CzechFlagSvg, EnglishFlagSvg, DEFAULT_LOCALE_FLAGS, LocaleFlagToggle, buildLocaleLabelKey, mergeLocaleFlags, resolveActiveLocaleCode, resolveDocumentLang, } from './LocaleFlags/index.js';
8
9
  export { useTurnstileAuth } from './Turnstile/useTurnstileAuth.js';
9
10
  export { TurnstileWidget } from './Turnstile/TurnstileWidget.js';
10
11
  export { useTurnstileExecute } from './Turnstile/useTurnstileExecute.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAoB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAkB,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAuB,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EACL,cAAc,GAIf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAA+B,MAAM,iCAAiC,CAAC;AAChG,OAAO,EAAE,eAAe,EAA6B,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAkC,MAAM,oCAAoC,CAAC;AACzG,OAAO,EACL,sBAAsB,GAEvB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,GAI3B,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAoB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAkB,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAuB,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EACL,cAAc,GAKf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,GAOpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAA+B,MAAM,iCAAiC,CAAC;AAChG,OAAO,EAAE,eAAe,EAA6B,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAkC,MAAM,oCAAoC,CAAC;AACzG,OAAO,EACL,sBAAsB,GAEvB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,GAI3B,MAAM,yBAAyB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-kiosk-shared",
3
- "version": "2.2.2",
3
+ "version": "2.2.4",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "description": "Shared types, API contracts, and error classes for Pi Kiosk system",
@@ -122,6 +122,12 @@
122
122
  },
123
123
  "./theme.css": "./src/tokens/theme.css",
124
124
  "./admin-theme.css": "./src/tokens/admin-theme.css",
125
+ "./responsive.css": "./src/tokens/responsive.css",
126
+ "./responsive": {
127
+ "types": "./dist/responsive/index.d.ts",
128
+ "import": "./dist/responsive/index.js",
129
+ "require": "./dist/responsive/index.js"
130
+ },
125
131
  "./ui": {
126
132
  "types": "./dist/ui/index.d.ts",
127
133
  "import": "./dist/ui/index.js",
@@ -0,0 +1,82 @@
1
+ /**
2
+ * pi-kiosk-shared responsive contract — custom media aliases (Tailwind v4 Option A).
3
+ * Import after theme.css. wide (1440) is NOT a token here — test viewport only.
4
+ *
5
+ * Breakpoint block generated from breakpoints.ts — run: npm run generate:responsive-css -- --write
6
+ * Drift: gate:responsive-css-generation + gate:responsive-breakpoint-drift
7
+ */
8
+ :root {
9
+ --rp-breakpoint-sm: 640px;
10
+ --rp-breakpoint-md: 768px;
11
+ --rp-breakpoint-lg: 1024px;
12
+ --rp-breakpoint-xl: 1280px;
13
+ --rp-breakpoint-2xl: 1536px;
14
+ }
15
+
16
+ @custom-media --rp-sm-up (min-width: 640px);
17
+ @custom-media --rp-md-up (min-width: 768px);
18
+ @custom-media --rp-lg-up (min-width: 1024px);
19
+ @custom-media --rp-xl-up (min-width: 1280px);
20
+ @custom-media --rp-2xl-up (min-width: 1536px);
21
+ @custom-media --rp-max-lg (max-width: 1023px);
22
+
23
+ /* Container query naming tokens */
24
+ :root {
25
+ --rp-container-card: rp-card;
26
+ --rp-container-kpi: rp-kpi;
27
+ --rp-container-table: rp-table;
28
+ }
29
+
30
+ .rp-card-container {
31
+ container-type: inline-size;
32
+ container-name: rp-card;
33
+ --rp-card-content-gap: 0.5rem;
34
+ }
35
+
36
+ .rp-kpi-container {
37
+ container-type: inline-size;
38
+ container-name: rp-kpi;
39
+ }
40
+
41
+ .rp-table-container {
42
+ container-type: inline-size;
43
+ container-name: rp-table;
44
+ }
45
+
46
+ .rp-drawer-body {
47
+ container-type: inline-size;
48
+ container-name: rp-drawer-body;
49
+ }
50
+
51
+ /* Shared Card density — CQ layout (not cosmetic) with viewport fallback */
52
+ .rp-card-container > * + * {
53
+ margin-block-start: var(--rp-card-content-gap);
54
+ }
55
+
56
+ @supports (container-type: inline-size) {
57
+ @container rp-card (min-width: 20rem) {
58
+ .rp-card-container {
59
+ --rp-card-content-gap: 0.75rem;
60
+ }
61
+ }
62
+
63
+ @container rp-card (min-width: 28rem) {
64
+ .rp-card-container {
65
+ --rp-card-content-gap: 1rem;
66
+ }
67
+ }
68
+ }
69
+
70
+ @supports not (container-type: inline-size) {
71
+ @media (min-width: 640px) {
72
+ .rp-card-container {
73
+ --rp-card-content-gap: 0.75rem;
74
+ }
75
+ }
76
+
77
+ @media (min-width: 1024px) {
78
+ .rp-card-container {
79
+ --rp-card-content-gap: 1rem;
80
+ }
81
+ }
82
+ }
@@ -29,6 +29,8 @@
29
29
  --color-border: #e2e8f0;
30
30
  --color-border-strong: #cbd5e1;
31
31
  --color-focus-ring: var(--brand-consumer-accent);
32
+ --color-qr-render-dark: #000000;
33
+ --color-qr-render-light: #ffffff;
32
34
  --color-disabled-opacity: 0.55;
33
35
  --radius-sm: 0.375rem;
34
36
  --radius-md: 0.5rem;