@joydle/ui 0.1.0 → 0.1.2

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 (108) hide show
  1. package/dist/controls/ActionButton.d.ts +10 -1
  2. package/dist/controls/ActionButton.d.ts.map +1 -1
  3. package/dist/controls/ActionButton.js +3 -3
  4. package/dist/controls/ActionButton.js.map +1 -1
  5. package/dist/controls/index.d.ts +1 -1
  6. package/dist/controls/index.d.ts.map +1 -1
  7. package/dist/controls/index.js.map +1 -1
  8. package/dist/deps.d.ts +11 -0
  9. package/dist/deps.d.ts.map +1 -0
  10. package/dist/deps.js +19 -0
  11. package/dist/deps.js.map +1 -0
  12. package/dist/fx/effects.d.ts +163 -0
  13. package/dist/fx/effects.d.ts.map +1 -0
  14. package/dist/fx/effects.js +337 -0
  15. package/dist/fx/effects.js.map +1 -0
  16. package/dist/fx/hooks.d.ts +100 -0
  17. package/dist/fx/hooks.d.ts.map +1 -0
  18. package/dist/fx/hooks.js +116 -0
  19. package/dist/fx/hooks.js.map +1 -0
  20. package/dist/fx/index.d.ts +15 -0
  21. package/dist/fx/index.d.ts.map +1 -0
  22. package/dist/fx/index.js +22 -0
  23. package/dist/fx/index.js.map +1 -0
  24. package/dist/hud/BottomHint.d.ts.map +1 -1
  25. package/dist/hud/BottomHint.js +1 -9
  26. package/dist/hud/BottomHint.js.map +1 -1
  27. package/dist/hud/ComboLabel.d.ts.map +1 -1
  28. package/dist/hud/ComboLabel.js +1 -9
  29. package/dist/hud/ComboLabel.js.map +1 -1
  30. package/dist/hud/Crosshair.d.ts +28 -0
  31. package/dist/hud/Crosshair.d.ts.map +1 -0
  32. package/dist/hud/Crosshair.js +93 -0
  33. package/dist/hud/Crosshair.js.map +1 -0
  34. package/dist/hud/EntityLabel.d.ts +46 -0
  35. package/dist/hud/EntityLabel.d.ts.map +1 -0
  36. package/dist/hud/EntityLabel.js +59 -0
  37. package/dist/hud/EntityLabel.js.map +1 -0
  38. package/dist/hud/FloatingNumbers.d.ts +43 -0
  39. package/dist/hud/FloatingNumbers.d.ts.map +1 -0
  40. package/dist/hud/FloatingNumbers.js +93 -0
  41. package/dist/hud/FloatingNumbers.js.map +1 -0
  42. package/dist/hud/HUD.d.ts +2 -0
  43. package/dist/hud/HUD.d.ts.map +1 -1
  44. package/dist/hud/HUD.js +11 -0
  45. package/dist/hud/HUD.js.map +1 -1
  46. package/dist/hud/Lives.d.ts +26 -5
  47. package/dist/hud/Lives.d.ts.map +1 -1
  48. package/dist/hud/Lives.js +30 -31
  49. package/dist/hud/Lives.js.map +1 -1
  50. package/dist/hud/Meter.d.ts +10 -1
  51. package/dist/hud/Meter.d.ts.map +1 -1
  52. package/dist/hud/Meter.js +3 -11
  53. package/dist/hud/Meter.js.map +1 -1
  54. package/dist/hud/ResourceDisplay.d.ts +30 -0
  55. package/dist/hud/ResourceDisplay.d.ts.map +1 -0
  56. package/dist/hud/ResourceDisplay.js +49 -0
  57. package/dist/hud/ResourceDisplay.js.map +1 -0
  58. package/dist/hud/Score.d.ts +12 -1
  59. package/dist/hud/Score.d.ts.map +1 -1
  60. package/dist/hud/Score.js +15 -12
  61. package/dist/hud/Score.js.map +1 -1
  62. package/dist/hud/StatDisplay.d.ts +33 -0
  63. package/dist/hud/StatDisplay.d.ts.map +1 -0
  64. package/dist/hud/StatDisplay.js +56 -0
  65. package/dist/hud/StatDisplay.js.map +1 -0
  66. package/dist/hud/Timer.d.ts.map +1 -1
  67. package/dist/hud/Timer.js +1 -9
  68. package/dist/hud/Timer.js.map +1 -1
  69. package/dist/hud/WaveLabel.d.ts.map +1 -1
  70. package/dist/hud/WaveLabel.js +1 -9
  71. package/dist/hud/WaveLabel.js.map +1 -1
  72. package/dist/hud/index.d.ts +8 -3
  73. package/dist/hud/index.d.ts.map +1 -1
  74. package/dist/hud/index.js +5 -0
  75. package/dist/hud/index.js.map +1 -1
  76. package/dist/index.d.ts +1 -0
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +2 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/screens/GameOverScreen.d.ts +12 -2
  81. package/dist/screens/GameOverScreen.d.ts.map +1 -1
  82. package/dist/screens/GameOverScreen.js +12 -11
  83. package/dist/screens/GameOverScreen.js.map +1 -1
  84. package/dist/screens/LoadingScreen.d.ts.map +1 -1
  85. package/dist/screens/LoadingScreen.js +1 -9
  86. package/dist/screens/LoadingScreen.js.map +1 -1
  87. package/dist/screens/LobbyScreen.d.ts.map +1 -1
  88. package/dist/screens/LobbyScreen.js +1 -9
  89. package/dist/screens/LobbyScreen.js.map +1 -1
  90. package/dist/screens/PauseOverlay.d.ts.map +1 -1
  91. package/dist/screens/PauseOverlay.js +1 -9
  92. package/dist/screens/PauseOverlay.js.map +1 -1
  93. package/dist/screens/TitleScreen.d.ts +9 -1
  94. package/dist/screens/TitleScreen.d.ts.map +1 -1
  95. package/dist/screens/TitleScreen.js +4 -11
  96. package/dist/screens/TitleScreen.js.map +1 -1
  97. package/dist/screens/index.d.ts +1 -0
  98. package/dist/screens/index.d.ts.map +1 -1
  99. package/dist/screens/index.js +1 -0
  100. package/dist/screens/index.js.map +1 -1
  101. package/dist/screens/primitives.d.ts +101 -0
  102. package/dist/screens/primitives.d.ts.map +1 -0
  103. package/dist/screens/primitives.js +239 -0
  104. package/dist/screens/primitives.js.map +1 -0
  105. package/dist/transitions/ScreenTransition.d.ts.map +1 -1
  106. package/dist/transitions/ScreenTransition.js +31 -40
  107. package/dist/transitions/ScreenTransition.js.map +1 -1
  108. package/package.json +13 -2
package/dist/hud/Score.js CHANGED
@@ -1,17 +1,9 @@
1
- import { jsx as _jsx } from "preact/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
2
2
  // ---------------------------------------------------------------------------
3
3
  // @joydle/ui — Score display with GSAP scale-pop on change
4
4
  // ---------------------------------------------------------------------------
5
5
  import { useRef, useEffect } from 'preact/hooks';
6
- // ---- GSAP helper ----------------------------------------------------------
7
- function getGsap() {
8
- try {
9
- return globalThis.gsap ?? require('gsap').default;
10
- }
11
- catch {
12
- return null;
13
- }
14
- }
6
+ import { getGsap } from '../deps.js';
15
7
  // ---- Formatter ------------------------------------------------------------
16
8
  const formatter = new Intl.NumberFormat('en-US');
17
9
  // ---- Styles ---------------------------------------------------------------
@@ -32,7 +24,7 @@ const SCORE_STYLE = {
32
24
  * <Score value={12500} />
33
25
  * ```
34
26
  */
35
- export function Score({ value }) {
27
+ export function Score({ value, icon, iconColor }) {
36
28
  const elRef = useRef(null);
37
29
  const prevRef = useRef(value);
38
30
  const tweenRef = useRef(null);
@@ -69,6 +61,17 @@ export function Score({ value }) {
69
61
  }
70
62
  };
71
63
  }, []);
72
- return (_jsx("span", { ref: elRef, class: "joydle-score", style: SCORE_STYLE, children: formatter.format(value) }));
64
+ // Resolve icon
65
+ const renderIcon = () => {
66
+ if (!icon)
67
+ return null;
68
+ const ic = iconColor ?? 'var(--joydle-gold, #ffd700)';
69
+ if (typeof icon === 'function') {
70
+ const IconComp = icon;
71
+ return (_jsx("span", { style: { lineHeight: 0, marginRight: 4, display: 'inline-flex', alignItems: 'center' }, children: _jsx(IconComp, { size: 18, color: ic, fill: ic, strokeWidth: 2 }) }));
72
+ }
73
+ return null;
74
+ };
75
+ return (_jsxs("span", { ref: elRef, class: "joydle-score", style: { ...SCORE_STYLE, display: 'inline-flex', alignItems: 'center' }, children: [renderIcon(), formatter.format(value)] }));
73
76
  }
74
77
  //# sourceMappingURL=Score.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Score.js","sourceRoot":"","sources":["../../src/hud/Score.tsx"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,4DAA4D;AAC5D,8EAA8E;AAE9E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGjD,8EAA8E;AAE9E,SAAS,OAAO;IACd,IAAI,CAAC;QACH,OAAQ,UAAkB,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AASD,8EAA8E;AAE9E,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAEjD,8EAA8E;AAE9E,MAAM,WAAW,GAAoC;IACnD,KAAK,EAAE,6BAA6B;IACpC,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,QAAQ;CACrB,CAAC;AAEF,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,KAAK,CAAC,EAAE,KAAK,EAAc;IACzC,MAAM,KAAK,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,CAAS,KAAK,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAM,IAAI,CAAC,CAAC;IAEnC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,EAAE;YAAE,OAAO;QAEhB,4CAA4C;QAC5C,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK;YAAE,OAAO;QACtC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QAExB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,wDAAwD;QACxD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAC5B,EAAE,EACF,EAAE,KAAK,EAAE,GAAG,EAAE,EACd;YACE,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,eAAe;YACrB,UAAU;gBACR,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,CAAC;SACF,CACF,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,sBAAsB;IACtB,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,eAAM,GAAG,EAAE,KAAK,EAAE,KAAK,EAAC,cAAc,EAAC,KAAK,EAAE,WAAW,YACtD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GACnB,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Score.js","sourceRoot":"","sources":["../../src/hud/Score.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { ComponentType, JSX } from 'preact';
2
+ export interface StatDisplayProps {
3
+ label: string;
4
+ value: string | number;
5
+ /** CSS color literal or var(). Default: var(--joydle-text, #fff) */
6
+ color?: string;
7
+ /** Optional icon component — receives { size, color } */
8
+ icon?: ComponentType<{
9
+ size?: number;
10
+ color?: string;
11
+ }>;
12
+ /** Visual size tier. Default: 'md' */
13
+ size?: 'sm' | 'md' | 'lg';
14
+ /** Show a horizontal fill bar below the value. */
15
+ bar?: {
16
+ current: number;
17
+ max: number;
18
+ };
19
+ /** Add a glow text-shadow matching the color. Default: false */
20
+ glow?: boolean;
21
+ /** Text alignment. Default: 'left' */
22
+ align?: 'left' | 'right' | 'center';
23
+ }
24
+ /**
25
+ * Compact label + value display for HUDs. Covers ~80% of game stat widgets.
26
+ *
27
+ * ```tsx
28
+ * <StatDisplay label="SYNC" value="87.2%" color="#FF6A00" glow />
29
+ * <StatDisplay label="WAVE" value={wave} bar={{ current: wave, max: 10 }} />
30
+ * ```
31
+ */
32
+ export declare function StatDisplay({ label, value, color, icon: Icon, size, bar, glow, align, }: StatDisplayProps): JSX.Element;
33
+ //# sourceMappingURL=StatDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatDisplay.d.ts","sourceRoot":"","sources":["../../src/hud/StatDisplay.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAIjD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,sCAAsC;IACtC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,kDAAkD;IAClD,GAAG,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,gEAAgE;IAChE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;CACrC;AAYD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,KAAkC,EAClC,IAAI,EAAE,IAAI,EACV,IAAW,EACX,GAAG,EACH,IAAY,EACZ,KAAc,GACf,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAsEhC"}
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
2
+ // ---- Size map -------------------------------------------------------------
3
+ const SIZES = {
4
+ sm: { label: '0.6rem', value: '0.85rem' },
5
+ md: { label: '0.7rem', value: '1.1rem' },
6
+ lg: { label: '0.8rem', value: '1.4rem' },
7
+ };
8
+ // ---- Component ------------------------------------------------------------
9
+ /**
10
+ * Compact label + value display for HUDs. Covers ~80% of game stat widgets.
11
+ *
12
+ * ```tsx
13
+ * <StatDisplay label="SYNC" value="87.2%" color="#FF6A00" glow />
14
+ * <StatDisplay label="WAVE" value={wave} bar={{ current: wave, max: 10 }} />
15
+ * ```
16
+ */
17
+ export function StatDisplay({ label, value, color = 'var(--joydle-text, #fff)', icon: Icon, size = 'md', bar, glow = false, align = 'left', }) {
18
+ const s = SIZES[size] ?? SIZES.md;
19
+ const shadow = glow ? `0 0 8px ${color}` : 'none';
20
+ const barPct = bar ? Math.max(0, Math.min(1, bar.current / Math.max(1, bar.max))) * 100 : 0;
21
+ return (_jsxs("div", { class: "joydle-stat-display", style: {
22
+ display: 'inline-flex',
23
+ flexDirection: 'column',
24
+ alignItems: align === 'center' ? 'center' : align === 'right' ? 'flex-end' : 'flex-start',
25
+ gap: 2,
26
+ userSelect: 'none',
27
+ }, children: [_jsx("span", { style: {
28
+ fontSize: s.label,
29
+ letterSpacing: '0.08em',
30
+ color: 'var(--joydle-text-dim, rgba(255,255,255,0.4))',
31
+ textTransform: 'uppercase',
32
+ lineHeight: 1,
33
+ }, children: label }), _jsxs("span", { style: {
34
+ display: 'inline-flex',
35
+ alignItems: 'center',
36
+ gap: 4,
37
+ fontSize: s.value,
38
+ fontWeight: 700,
39
+ color,
40
+ textShadow: shadow,
41
+ lineHeight: 1,
42
+ }, children: [Icon && (_jsx(Icon, { size: parseInt(s.value) * 1.1, color: color })), value] }), bar && (_jsx("div", { style: {
43
+ width: '100%',
44
+ height: 3,
45
+ background: 'rgba(255,255,255,0.1)',
46
+ borderRadius: 2,
47
+ overflow: 'hidden',
48
+ }, children: _jsx("div", { style: {
49
+ width: `${barPct}%`,
50
+ height: '100%',
51
+ background: color,
52
+ boxShadow: glow ? `0 0 4px ${color}` : 'none',
53
+ transition: 'width 0.2s ease',
54
+ } }) }))] }));
55
+ }
56
+ //# sourceMappingURL=StatDisplay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatDisplay.js","sourceRoot":"","sources":["../../src/hud/StatDisplay.tsx"],"names":[],"mappings":";AAyBA,8EAA8E;AAE9E,MAAM,KAAK,GAAqD;IAC9D,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;IACzC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACxC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;CACzC,CAAC;AAEF,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,KAAK,GAAG,0BAA0B,EAClC,IAAI,EAAE,IAAI,EACV,IAAI,GAAG,IAAI,EACX,GAAG,EACH,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,MAAM,GACG;IACjB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAClD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5F,OAAO,CACL,eACE,KAAK,EAAC,qBAAqB,EAC3B,KAAK,EAAE;YACL,OAAO,EAAE,aAAa;YACtB,aAAa,EAAE,QAAQ;YACvB,UAAU,EACR,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;YAC/E,GAAG,EAAE,CAAC;YACN,UAAU,EAAE,MAAM;SACnB,aAED,eACE,KAAK,EAAE;oBACL,QAAQ,EAAE,CAAC,CAAC,KAAK;oBACjB,aAAa,EAAE,QAAQ;oBACvB,KAAK,EAAE,+CAA+C;oBACtD,aAAa,EAAE,WAAW;oBAC1B,UAAU,EAAE,CAAC;iBACd,YAEA,KAAK,GACD,EAEP,gBACE,KAAK,EAAE;oBACL,OAAO,EAAE,aAAa;oBACtB,UAAU,EAAE,QAAQ;oBACpB,GAAG,EAAE,CAAC;oBACN,QAAQ,EAAE,CAAC,CAAC,KAAK;oBACjB,UAAU,EAAE,GAAG;oBACf,KAAK;oBACL,UAAU,EAAE,MAAM;oBAClB,UAAU,EAAE,CAAC;iBACd,aAEA,IAAI,IAAI,CACP,KAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,GAAI,CACtD,EACA,KAAK,IACD,EAEN,GAAG,IAAI,CACN,cACE,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,CAAC;oBACT,UAAU,EAAE,uBAAuB;oBACnC,YAAY,EAAE,CAAC;oBACf,QAAQ,EAAE,QAAQ;iBACnB,YAED,cACE,KAAK,EAAE;wBACL,KAAK,EAAE,GAAG,MAAM,GAAG;wBACnB,MAAM,EAAE,MAAM;wBACd,UAAU,EAAE,KAAK;wBACjB,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM;wBAC7C,UAAU,EAAE,iBAAiB;qBAC9B,GACD,GACE,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Timer.d.ts","sourceRoot":"","sources":["../../src/hud/Timer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAclC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,GAAG,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAsCD;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,EACpB,OAAO,EACP,MAAe,EACf,OAAO,GACR,EAAE,UAAU,GAAG,GAAG,CAAC,OAAO,CAiE1B"}
1
+ {"version":3,"file":"Timer.d.ts","sourceRoot":"","sources":["../../src/hud/Timer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAKlC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,GAAG,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAsCD;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,EACpB,OAAO,EACP,MAAe,EACf,OAAO,GACR,EAAE,UAAU,GAAG,GAAG,CAAC,OAAO,CAiE1B"}
package/dist/hud/Timer.js CHANGED
@@ -3,15 +3,7 @@ import { jsx as _jsx } from "preact/jsx-runtime";
3
3
  // @joydle/ui — Countdown / elapsed timer with GSAP pulse-red warning
4
4
  // ---------------------------------------------------------------------------
5
5
  import { useRef, useEffect } from 'preact/hooks';
6
- // ---- GSAP helper ----------------------------------------------------------
7
- function getGsap() {
8
- try {
9
- return globalThis.gsap ?? require('gsap').default;
10
- }
11
- catch {
12
- return null;
13
- }
14
- }
6
+ import { getGsap } from '../deps.js';
15
7
  // ---- Formatters -----------------------------------------------------------
16
8
  function formatTime(seconds, format) {
17
9
  const total = Math.max(0, Math.floor(seconds));
@@ -1 +1 @@
1
- {"version":3,"file":"Timer.js","sourceRoot":"","sources":["../../src/hud/Timer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Timer.js","sourceRoot":"","sources":["../../src/hud/Timer.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WaveLabel.d.ts","sourceRoot":"","sources":["../../src/hud/WaveLabel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAclC,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;CACf;AAeD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAiDhE"}
1
+ {"version":3,"file":"WaveLabel.d.ts","sourceRoot":"","sources":["../../src/hud/WaveLabel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAKlC,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;CACf;AAeD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAiDhE"}
@@ -3,15 +3,7 @@ import { jsx as _jsx } from "preact/jsx-runtime";
3
3
  // @joydle/ui — Wave / round label with GSAP slide-in on change
4
4
  // ---------------------------------------------------------------------------
5
5
  import { useRef, useEffect } from 'preact/hooks';
6
- // ---- GSAP helper ----------------------------------------------------------
7
- function getGsap() {
8
- try {
9
- return globalThis.gsap ?? require('gsap').default;
10
- }
11
- catch {
12
- return null;
13
- }
14
- }
6
+ import { getGsap } from '../deps.js';
15
7
  // ---- Styles ---------------------------------------------------------------
16
8
  const LABEL_STYLE = {
17
9
  color: 'var(--joydle-primary, #00f5ff)',
@@ -1 +1 @@
1
- {"version":3,"file":"WaveLabel.js","sourceRoot":"","sources":["../../src/hud/WaveLabel.tsx"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGjD,8EAA8E;AAE9E,SAAS,OAAO;IACd,IAAI,CAAC;QACH,OAAQ,UAAkB,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AASD,8EAA8E;AAE9E,MAAM,WAAW,GAAoC;IACnD,KAAK,EAAE,gCAAgC;IACvC,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,QAAQ;CACrB,CAAC;AAEF,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAkB;IACjD,MAAM,KAAK,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,CAAS,KAAK,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAM,IAAI,CAAC,CAAC;IAEnC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,EAAE;YAAE,OAAO;QAEhB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,wDAAwD;QACxD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAC5B,EAAE,EACF,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACtB;YACE,CAAC,EAAE,CAAC;YACJ,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,GAAG;YACb,IAAI,EAAE,YAAY;YAClB,UAAU;gBACR,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,CAAC;SACF,CACF,CAAC;QAEF,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;IAC1B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,sBAAsB;IACtB,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,eAAM,GAAG,EAAE,KAAK,EAAE,KAAK,EAAC,aAAa,EAAC,KAAK,EAAE,WAAW,YACrD,KAAK,GACD,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"WaveLabel.js","sourceRoot":"","sources":["../../src/hud/WaveLabel.tsx"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AASrC,8EAA8E;AAE9E,MAAM,WAAW,GAAoC;IACnD,KAAK,EAAE,gCAAgC;IACvC,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,QAAQ;CACrB,CAAC;AAEF,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAkB;IACjD,MAAM,KAAK,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,CAAS,KAAK,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAM,IAAI,CAAC,CAAC;IAEnC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,EAAE;YAAE,OAAO;QAEhB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,wDAAwD;QACxD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAC5B,EAAE,EACF,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACtB;YACE,CAAC,EAAE,CAAC;YACJ,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,GAAG;YACb,IAAI,EAAE,YAAY;YAClB,UAAU;gBACR,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,CAAC;SACF,CACF,CAAC;QAEF,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;IAC1B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,sBAAsB;IACtB,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,eAAM,GAAG,EAAE,KAAK,EAAE,KAAK,EAAC,aAAa,EAAC,KAAK,EAAE,WAAW,YACrD,KAAK,GACD,CACR,CAAC;AACJ,CAAC"}
@@ -1,10 +1,15 @@
1
1
  export { HUD, type HUDProps } from './HUD.js';
2
- export { Score, type ScoreProps } from './Score.js';
3
- export { Lives, type LivesProps, type LivesIcon } from './Lives.js';
4
- export { Meter, type MeterProps } from './Meter.js';
2
+ export { Score, type ScoreProps, type ScoreIconProp } from './Score.js';
3
+ export { Lives, type LivesProps, type LivesIcon, type LivesIconProp } from './Lives.js';
4
+ export { Meter, type MeterProps, type MeterIconProp } from './Meter.js';
5
5
  export { ComboLabel, type ComboLabelProps } from './ComboLabel.js';
6
6
  export { WaveLabel, type WaveLabelProps } from './WaveLabel.js';
7
7
  export { Timer, type TimerProps, type TimerFormat } from './Timer.js';
8
8
  export { MiniMap, type MiniMapProps, type MiniMapEntity, type MiniMapBounds, } from './MiniMap.js';
9
9
  export { BottomHint, type BottomHintProps } from './BottomHint.js';
10
+ export { StatDisplay, type StatDisplayProps } from './StatDisplay.js';
11
+ export { Crosshair, type CrosshairProps, type CrosshairStyle } from './Crosshair.js';
12
+ export { EntityLabel, type EntityLabelProps, type EntityLabelEntity } from './EntityLabel.js';
13
+ export { ResourceDisplay, type ResourceDisplayProps } from './ResourceDisplay.js';
14
+ export { FloatingNumbers, type FloatingNumbersProps, type FloatNum, useFloatingNumbers, } from './FloatingNumbers.js';
10
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hud/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EACL,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hud/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EACL,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,kBAAkB,GACnB,MAAM,sBAAsB,CAAC"}
package/dist/hud/index.js CHANGED
@@ -10,4 +10,9 @@ export { WaveLabel } from './WaveLabel.js';
10
10
  export { Timer } from './Timer.js';
11
11
  export { MiniMap, } from './MiniMap.js';
12
12
  export { BottomHint } from './BottomHint.js';
13
+ export { StatDisplay } from './StatDisplay.js';
14
+ export { Crosshair } from './Crosshair.js';
15
+ export { EntityLabel } from './EntityLabel.js';
16
+ export { ResourceDisplay } from './ResourceDisplay.js';
17
+ export { FloatingNumbers, useFloatingNumbers, } from './FloatingNumbers.js';
13
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hud/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E,OAAO,EAAE,GAAG,EAAiB,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAmB,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,KAAK,EAAmC,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,KAAK,EAAmB,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAqC,MAAM,YAAY,CAAC;AACtE,OAAO,EACL,OAAO,GAIR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hud/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E,OAAO,EAAE,GAAG,EAAiB,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAuC,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,KAAK,EAAuD,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,KAAK,EAAuC,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAqC,MAAM,YAAY,CAAC;AACtE,OAAO,EACL,OAAO,GAIR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAyB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,SAAS,EAA4C,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAiD,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EACL,eAAe,EAGf,kBAAkB,GACnB,MAAM,sBAAsB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { configure } from './deps';
1
2
  export * from './core/index';
2
3
  export * from './theme/index';
3
4
  export * from './hud/index';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAIjC,OAAO,EAAE,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAE,gBAAgB,IAAI,yBAAyB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAIjC,OAAO,EAAE,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAE,gBAAgB,IAAI,yBAAyB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gCAAgC,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  // ---------------------------------------------------------------------------
2
2
  // @joydle/ui — main barrel
3
3
  // ---------------------------------------------------------------------------
4
+ // Dependency injection
5
+ export { configure } from './deps';
4
6
  export * from './core/index';
5
7
  export * from './theme/index';
6
8
  export * from './hud/index';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAEjC,gEAAgE;AAChE,oDAAoD;AACpD,OAAO,EAAE,iBAAiB,EAA+C,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAE,gBAAgB,IAAI,yBAAyB,EAA8B,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E,uBAAuB;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAEjC,gEAAgE;AAChE,oDAAoD;AACpD,OAAO,EAAE,iBAAiB,EAA+C,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAE,gBAAgB,IAAI,yBAAyB,EAA8B,MAAM,gCAAgC,CAAC"}
@@ -3,6 +3,8 @@ export type GameOverEntrance = 'cascade' | 'zoom' | 'fade';
3
3
  export interface GameOverScreenProps {
4
4
  /** Final score value. */
5
5
  score: number;
6
+ /** Optional subtitle text below the title. */
7
+ subtitle?: string;
6
8
  /** Optional metric strings (e.g. "Time: 1:23", "Combo: 5x"). */
7
9
  metrics?: string[];
8
10
  /** Previous best score -- triggers "NEW BEST!" when score exceeds it. */
@@ -11,8 +13,16 @@ export interface GameOverScreenProps {
11
13
  onRetry: () => void;
12
14
  /** Override title text (default: `"GAME OVER"`). */
13
15
  title?: string;
14
- /** Override retry button label (default: `"PLAY AGAIN"`). */
16
+ /** Override retry button label (default: `"PLAY AGAIN"`). Alias: `buttonLabel`. */
15
17
  retryLabel?: string;
18
+ /** Alias for `retryLabel`. */
19
+ buttonLabel?: string;
20
+ /** Per-element inline style overrides. */
21
+ style?: {
22
+ title?: Record<string, string | number>;
23
+ subtitle?: Record<string, string | number>;
24
+ button?: Record<string, string | number>;
25
+ };
16
26
  /** Entrance animation delay in seconds (default: `0.4`). */
17
27
  delay?: number;
18
28
  /** Entrance animation style (default: `"cascade"`). */
@@ -32,5 +42,5 @@ export interface GameOverScreenProps {
32
42
  * />
33
43
  * ```
34
44
  */
35
- export declare function GameOverScreen({ score, metrics, bestScore, onRetry, title, retryLabel, delay, entrance, screen: _screen, }: GameOverScreenProps): JSX.Element;
45
+ export declare function GameOverScreen({ score, subtitle, metrics, bestScore, onRetry, title, retryLabel, buttonLabel, style: styleProp, delay, entrance, screen: _screen, }: GameOverScreenProps): JSX.Element;
36
46
  //# sourceMappingURL=GameOverScreen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GameOverScreen.d.ts","sourceRoot":"","sources":["../../src/screens/GameOverScreen.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AA2IlC,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyHD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,OAAO,EACP,SAAS,EACT,OAAO,EACP,KAAmB,EACnB,UAAyB,EACzB,KAAW,EACX,QAAoB,EACpB,MAAM,EAAE,OAAO,GAChB,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAgGnC"}
1
+ {"version":3,"file":"GameOverScreen.d.ts","sourceRoot":"","sources":["../../src/screens/GameOverScreen.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AA0IlC,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;KAC1C,CAAC;IACF,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyHD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,OAAO,EACP,KAAmB,EACnB,UAAU,EACV,WAAW,EACX,KAAK,EAAE,SAAS,EAChB,KAAW,EACX,QAAoB,EACpB,MAAM,EAAE,OAAO,GAChB,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAwGnC"}
@@ -3,15 +3,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
3
3
  // @joydle/ui — Game over screen with score countup and cascade entrance
4
4
  // ---------------------------------------------------------------------------
5
5
  import { useRef, useEffect } from 'preact/hooks';
6
- // ---- GSAP helper ----------------------------------------------------------
7
- function getGsap() {
8
- try {
9
- return globalThis.gsap ?? require('gsap').default;
10
- }
11
- catch {
12
- return null;
13
- }
14
- }
6
+ import { ScreenFrame } from './primitives.js';
7
+ import { getGsap } from '../deps.js';
15
8
  // ---- Style injection ------------------------------------------------------
16
9
  const GAME_OVER_CSS = `
17
10
  .joydle-gameover {
@@ -57,6 +50,13 @@ const GAME_OVER_CSS = `
57
50
  text-shadow: 0 0 var(--joydle-glow-blur, 0) var(--joydle-danger, #ff4444);
58
51
  }
59
52
 
53
+ .joydle-gameover__subtitle {
54
+ font-size: clamp(0.9rem, 2vw, 1.2rem);
55
+ color: var(--joydle-text-dim, rgba(255,255,255,0.5));
56
+ margin: 4px 0 0;
57
+ letter-spacing: 0.08em;
58
+ }
59
+
60
60
  .joydle-gameover__score {
61
61
  font-size: clamp(2.5rem, 8vw, 5rem);
62
62
  font-weight: 900;
@@ -205,7 +205,8 @@ function runFadeEntrance(els, delay, score) {
205
205
  * />
206
206
  * ```
207
207
  */
208
- export function GameOverScreen({ score, metrics, bestScore, onRetry, title = 'GAME OVER', retryLabel = 'PLAY AGAIN', delay = 0.4, entrance = 'cascade', screen: _screen, }) {
208
+ export function GameOverScreen({ score, subtitle, metrics, bestScore, onRetry, title = 'GAME OVER', retryLabel, buttonLabel, style: styleProp, delay = 0.4, entrance = 'cascade', screen: _screen, }) {
209
+ const effectiveRetryLabel = buttonLabel ?? retryLabel ?? 'PLAY AGAIN';
209
210
  injectStyle();
210
211
  const overlayRef = useRef(null);
211
212
  const titleRef = useRef(null);
@@ -250,6 +251,6 @@ export function GameOverScreen({ score, metrics, bestScore, onRetry, title = 'GA
250
251
  };
251
252
  // eslint-disable-next-line react-hooks/exhaustive-deps
252
253
  }, [entrance, delay, score]);
253
- return (_jsxs("div", { class: "joydle-gameover", ref: overlayRef, children: [_jsx("div", { class: "joydle-gameover__backdrop" }), _jsxs("div", { class: "joydle-gameover__content", children: [_jsx("h1", { class: "joydle-gameover__title", ref: titleRef, children: title }), _jsx("div", { class: "joydle-gameover__score", ref: scoreRef, children: "0" }), isNewBest && (_jsx("div", { class: "joydle-gameover__new-best", ref: newBestRef, children: "NEW BEST!" })), showBest && (_jsxs("p", { class: "joydle-gameover__best", ref: bestRef, children: ["BEST: ", bestScore.toLocaleString()] })), metrics && metrics.length > 0 && (_jsx("div", { class: "joydle-gameover__metrics", ref: metricsRef, children: metrics.map((m, i) => (_jsx("span", { class: "joydle-gameover__metric", children: m }, i))) })), _jsx("button", { class: "joydle-gameover__retry-btn", ref: buttonRef, onClick: onRetry, type: "button", children: retryLabel })] })] }));
254
+ return (_jsxs(ScreenFrame, { screen: _screen, children: [_jsx("div", { class: "joydle-gameover__backdrop" }), _jsxs("div", { class: "joydle-gameover__content", ref: overlayRef, children: [_jsx("h1", { class: "joydle-gameover__title", ref: titleRef, style: styleProp?.title, children: title }), subtitle && (_jsx("p", { class: "joydle-gameover__subtitle", style: styleProp?.subtitle, children: subtitle })), _jsx("div", { class: "joydle-gameover__score", ref: scoreRef, children: "0" }), isNewBest && (_jsx("div", { class: "joydle-gameover__new-best", ref: newBestRef, children: "NEW BEST!" })), showBest && (_jsxs("p", { class: "joydle-gameover__best", ref: bestRef, children: ["BEST: ", bestScore.toLocaleString()] })), metrics && metrics.length > 0 && (_jsx("div", { class: "joydle-gameover__metrics", ref: metricsRef, children: metrics.map((m, i) => (_jsx("span", { class: "joydle-gameover__metric", children: m }, i))) })), _jsx("button", { class: "joydle-gameover__retry-btn", ref: buttonRef, onClick: onRetry, type: "button", style: styleProp?.button, children: effectiveRetryLabel })] })] }));
254
255
  }
255
256
  //# sourceMappingURL=GameOverScreen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GameOverScreen.js","sourceRoot":"","sources":["../../src/screens/GameOverScreen.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GameOverScreen.js","sourceRoot":"","sources":["../../src/screens/GameOverScreen.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingScreen.d.ts","sourceRoot":"","sources":["../../src/screens/LoadingScreen.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAiGlC,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,KAAoB,EACpB,MAAM,EAAE,OAAO,GAChB,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAuClC"}
1
+ {"version":3,"file":"LoadingScreen.d.ts","sourceRoot":"","sources":["../../src/screens/LoadingScreen.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAwFlC,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,KAAoB,EACpB,MAAM,EAAE,OAAO,GAChB,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAuClC"}
@@ -3,15 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
3
3
  // @joydle/ui — Loading screen with animated progress bar
4
4
  // ---------------------------------------------------------------------------
5
5
  import { useRef, useEffect } from 'preact/hooks';
6
- // ---- GSAP helper ----------------------------------------------------------
7
- function getGsap() {
8
- try {
9
- return globalThis.gsap ?? require('gsap').default;
10
- }
11
- catch {
12
- return null;
13
- }
14
- }
6
+ import { getGsap } from '../deps.js';
15
7
  // ---- Style injection ------------------------------------------------------
16
8
  const LOADING_CSS = `
17
9
  .joydle-loading {
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingScreen.js","sourceRoot":"","sources":["../../src/screens/LoadingScreen.tsx"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,0DAA0D;AAC1D,8EAA8E;AAE9E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGjD,8EAA8E;AAE9E,SAAS,OAAO;IACd,IAAI,CAAC;QACH,OAAQ,UAAkB,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,8EAA8E;AAE9E,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEnB,CAAC;AAEF,IAAI,aAAa,GAAG,KAAK,CAAC;AAC1B,SAAS,WAAW;IAClB,IAAI,aAAa;QAAE,OAAO;IAC1B,aAAa,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3C,EAAE,CAAC,WAAW,GAAG,WAAW,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAaD,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,QAAQ,EACR,KAAK,GAAG,YAAY,EACpB,MAAM,EAAE,OAAO,GACI;IACnB,WAAW,EAAE,CAAC;IAEd,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAElD,4BAA4B;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;IAEtC,gBAAgB;IAChB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,EAAE;YAAE,OAAO;QAEhB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAElF,OAAO,GAAG,EAAE;YACV,EAAE,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,eAAK,KAAK,EAAC,gBAAgB,EAAC,GAAG,EAAE,YAAY,aAC3C,YAAG,KAAK,EAAC,uBAAuB,YAAE,KAAK,GAAK,EAE5C,cAAK,KAAK,EAAC,2BAA2B,YACpC,cACE,KAAK,EAAC,0BAA0B,EAChC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,GAC3B,GACE,EAEN,aAAG,KAAK,EAAC,yBAAyB,aAAE,GAAG,SAAM,IACzC,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"LoadingScreen.js","sourceRoot":"","sources":["../../src/screens/LoadingScreen.tsx"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,0DAA0D;AAC1D,8EAA8E;AAE9E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,8EAA8E;AAE9E,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEnB,CAAC;AAEF,IAAI,aAAa,GAAG,KAAK,CAAC;AAC1B,SAAS,WAAW;IAClB,IAAI,aAAa;QAAE,OAAO;IAC1B,aAAa,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3C,EAAE,CAAC,WAAW,GAAG,WAAW,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAaD,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,QAAQ,EACR,KAAK,GAAG,YAAY,EACpB,MAAM,EAAE,OAAO,GACI;IACnB,WAAW,EAAE,CAAC;IAEd,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAElD,4BAA4B;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;IAEtC,gBAAgB;IAChB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,EAAE;YAAE,OAAO;QAEhB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAElF,OAAO,GAAG,EAAE;YACV,EAAE,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,eAAK,KAAK,EAAC,gBAAgB,EAAC,GAAG,EAAE,YAAY,aAC3C,YAAG,KAAK,EAAC,uBAAuB,YAAE,KAAK,GAAK,EAE5C,cAAK,KAAK,EAAC,2BAA2B,YACpC,cACE,KAAK,EAAC,0BAA0B,EAChC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,GAC3B,GACE,EAEN,aAAG,KAAK,EAAC,yBAAyB,aAAE,GAAG,SAAM,IACzC,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"LobbyScreen.d.ts","sourceRoot":"","sources":["../../src/screens/LobbyScreen.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AA6NlC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,SAAS,EACT,OAAO,EACP,OAAO,EACP,UAAU,EACV,MAAM,EAAE,OAAO,GAChB,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA0FhC"}
1
+ {"version":3,"file":"LobbyScreen.d.ts","sourceRoot":"","sources":["../../src/screens/LobbyScreen.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAoNlC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,SAAS,EACT,OAAO,EACP,OAAO,EACP,UAAU,EACV,MAAM,EAAE,OAAO,GAChB,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA0FhC"}
@@ -3,15 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
3
3
  // @joydle/ui — Multiplayer lobby screen
4
4
  // ---------------------------------------------------------------------------
5
5
  import { useRef, useEffect } from 'preact/hooks';
6
- // ---- GSAP helper ----------------------------------------------------------
7
- function getGsap() {
8
- try {
9
- return globalThis.gsap ?? require('gsap').default;
10
- }
11
- catch {
12
- return null;
13
- }
14
- }
6
+ import { getGsap } from '../deps.js';
15
7
  // ---- Style injection ------------------------------------------------------
16
8
  const LOBBY_CSS = `
17
9
  .joydle-lobby {
@@ -1 +1 @@
1
- {"version":3,"file":"LobbyScreen.js","sourceRoot":"","sources":["../../src/screens/LobbyScreen.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LobbyScreen.js","sourceRoot":"","sources":["../../src/screens/LobbyScreen.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PauseOverlay.d.ts","sourceRoot":"","sources":["../../src/screens/PauseOverlay.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AA8GlC,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAmB,EACnB,SAAS,EACT,MAAM,EAAE,OAAO,GAChB,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CA+DjC"}
1
+ {"version":3,"file":"PauseOverlay.d.ts","sourceRoot":"","sources":["../../src/screens/PauseOverlay.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAqGlC,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAmB,EACnB,SAAS,EACT,MAAM,EAAE,OAAO,GAChB,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CA+DjC"}
@@ -3,15 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
3
3
  // @joydle/ui — Pause overlay with blur backdrop
4
4
  // ---------------------------------------------------------------------------
5
5
  import { useRef, useEffect } from 'preact/hooks';
6
- // ---- GSAP helper ----------------------------------------------------------
7
- function getGsap() {
8
- try {
9
- return globalThis.gsap ?? require('gsap').default;
10
- }
11
- catch {
12
- return null;
13
- }
14
- }
6
+ import { getGsap } from '../deps.js';
15
7
  // ---- Style injection ------------------------------------------------------
16
8
  const PAUSE_CSS = `
17
9
  .joydle-pause {
@@ -1 +1 @@
1
- {"version":3,"file":"PauseOverlay.js","sourceRoot":"","sources":["../../src/screens/PauseOverlay.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PauseOverlay.js","sourceRoot":"","sources":["../../src/screens/PauseOverlay.tsx"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,iDAAiD;AACjD,8EAA8E;AAE9E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,8EAA8E;AAE9E,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFjB,CAAC;AAEF,IAAI,aAAa,GAAG,KAAK,CAAC;AAC1B,SAAS,WAAW;IAClB,IAAI,aAAa;QAAE,OAAO;IAC1B,aAAa,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3C,EAAE,CAAC,WAAW,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAeD,8EAA8E;AAE9E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAW,GAAG,KAAK,EACnB,SAAS,EACT,MAAM,EAAE,OAAO,GACG;IAClB,WAAW,EAAE,CAAC;IAEd,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEhD,gBAAgB;IAChB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,EAAE;YAAE,OAAO;QAEhB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAElF,OAAO,GAAG,EAAE;YACV,EAAE,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,kBAAkB;IAClB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,CAAC,CAAgB,EAAE,EAAE;YACrC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACvB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,QAAQ,EAAE,CAAC;YACb,CAAC;QACH,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,eAAK,KAAK,EAAC,cAAc,EAAC,GAAG,EAAE,UAAU,aACvC,aAAI,KAAK,EAAC,qBAAqB,uBAAY,EAE3C,eAAK,KAAK,EAAC,uBAAuB,aAChC,iBACE,KAAK,EAAC,6CAA6C,EACnD,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAC,QAAQ,uBAGN,EAER,WAAW,IAAI,SAAS,IAAI,CAC3B,iBACE,KAAK,EAAC,8CAA8C,EACpD,OAAO,EAAE,SAAS,EAClB,IAAI,EAAC,QAAQ,wBAGN,CACV,IACG,EAEN,YAAG,KAAK,EAAC,oBAAoB,oCAAwB,IACjD,CACP,CAAC;AACJ,CAAC"}
@@ -9,12 +9,20 @@ export interface TitleScreenProps {
9
9
  hint?: string;
10
10
  /** Callback when the play button is clicked. */
11
11
  onPlay: () => void;
12
+ /** Override button label (default: `"PLAY"`). */
13
+ buttonLabel?: string;
12
14
  /** Best score to display (shown only when > 0). */
13
15
  bestScore?: number;
14
16
  /** Entrance animation style (default: `"stagger"`). */
15
17
  entrance?: TitleEntrance;
16
18
  /** Optional background slot rendered behind the overlay. */
17
19
  backgroundSlot?: ComponentChildren;
20
+ /** Per-element inline style overrides. */
21
+ style?: {
22
+ title?: Record<string, string | number>;
23
+ subtitle?: Record<string, string | number>;
24
+ button?: Record<string, string | number>;
25
+ };
18
26
  /** Screen identifier for ScreenManager matching. */
19
27
  screen?: string;
20
28
  }
@@ -26,5 +34,5 @@ export interface TitleScreenProps {
26
34
  * <TitleScreen title={<>KAOS <accent>NET</accent></>} onPlay={start} />
27
35
  * ```
28
36
  */
29
- export declare function TitleScreen({ title, subtitle, hint, onPlay, bestScore, entrance, backgroundSlot, screen: _screen, }: TitleScreenProps): JSX.Element;
37
+ export declare function TitleScreen({ title, subtitle, hint, onPlay, buttonLabel, bestScore, entrance, backgroundSlot, style: styleProp, screen: _screen, }: TitleScreenProps): JSX.Element;
30
38
  //# sourceMappingURL=TitleScreen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TitleScreen.d.ts","sourceRoot":"","sources":["../../src/screens/TitleScreen.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AA0JrD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAC;IAClC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmJD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,SAAS,EACT,QAAoB,EACpB,cAAc,EACd,MAAM,EAAE,OAAO,GAChB,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAyFhC"}
1
+ {"version":3,"file":"TitleScreen.d.ts","sourceRoot":"","sources":["../../src/screens/TitleScreen.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAkJrD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAC;IAClC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,0CAA0C;IAC1C,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;KAC1C,CAAC;IACF,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmJD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,WAAW,EACX,SAAS,EACT,QAAoB,EACpB,cAAc,EACd,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,OAAO,GAChB,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA8FhC"}