hudini 0.19.0 → 0.21.0

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 (227) hide show
  1. package/README.md +1 -27
  2. package/dist/components/alert/alert.d.ts +161 -0
  3. package/dist/components/alert/alert.d.ts.map +1 -0
  4. package/dist/components/alert/alert.js +304 -0
  5. package/dist/components/alert/alert.js.map +1 -0
  6. package/dist/components/alert/alert.spec.d.ts +2 -0
  7. package/dist/components/alert/alert.spec.d.ts.map +1 -0
  8. package/dist/components/alert/alert.spec.js +235 -0
  9. package/dist/components/alert/alert.spec.js.map +1 -0
  10. package/dist/components/alert/index.d.ts +2 -0
  11. package/dist/components/alert/index.d.ts.map +1 -0
  12. package/dist/components/alert/index.js +2 -0
  13. package/dist/components/alert/index.js.map +1 -0
  14. package/dist/components/badge/badge.d.ts +94 -0
  15. package/dist/components/badge/badge.d.ts.map +1 -0
  16. package/dist/components/badge/badge.js +180 -0
  17. package/dist/components/badge/badge.js.map +1 -0
  18. package/dist/components/badge/badge.spec.d.ts +2 -0
  19. package/dist/components/badge/badge.spec.d.ts.map +1 -0
  20. package/dist/components/badge/badge.spec.js +197 -0
  21. package/dist/components/badge/badge.spec.js.map +1 -0
  22. package/dist/components/badge/index.d.ts +2 -0
  23. package/dist/components/badge/index.d.ts.map +1 -0
  24. package/dist/components/badge/index.js +2 -0
  25. package/dist/components/badge/index.js.map +1 -0
  26. package/dist/components/card/card.d.ts +11 -15
  27. package/dist/components/card/card.d.ts.map +1 -1
  28. package/dist/components/card/card.js +37 -59
  29. package/dist/components/card/card.js.map +1 -1
  30. package/dist/components/checkbox/checkbox.d.ts +153 -0
  31. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  32. package/dist/components/checkbox/checkbox.js +329 -0
  33. package/dist/components/checkbox/checkbox.js.map +1 -0
  34. package/dist/components/checkbox/checkbox.spec.d.ts +2 -0
  35. package/dist/components/checkbox/checkbox.spec.d.ts.map +1 -0
  36. package/dist/components/checkbox/checkbox.spec.js +346 -0
  37. package/dist/components/checkbox/checkbox.spec.js.map +1 -0
  38. package/dist/components/checkbox/index.d.ts +2 -0
  39. package/dist/components/checkbox/index.d.ts.map +1 -0
  40. package/dist/components/checkbox/index.js +2 -0
  41. package/dist/components/checkbox/index.js.map +1 -0
  42. package/dist/components/circular-progress/circular-progress.d.ts.map +1 -1
  43. package/dist/components/circular-progress/circular-progress.js +2 -1
  44. package/dist/components/circular-progress/circular-progress.js.map +1 -1
  45. package/dist/components/circular-progress/circular-progress.spec.js +2 -0
  46. package/dist/components/circular-progress/circular-progress.spec.js.map +1 -1
  47. package/dist/components/dock/dock.d.ts +115 -0
  48. package/dist/components/dock/dock.d.ts.map +1 -0
  49. package/dist/components/dock/dock.js +168 -0
  50. package/dist/components/dock/dock.js.map +1 -0
  51. package/dist/components/dock/dock.spec.d.ts +2 -0
  52. package/dist/components/dock/dock.spec.d.ts.map +1 -0
  53. package/dist/components/dock/dock.spec.js +178 -0
  54. package/dist/components/dock/dock.spec.js.map +1 -0
  55. package/dist/components/dock/index.d.ts +2 -0
  56. package/dist/components/dock/index.d.ts.map +1 -0
  57. package/dist/components/dock/index.js +2 -0
  58. package/dist/components/dock/index.js.map +1 -0
  59. package/dist/components/icon-button/icon-button.d.ts +18 -9
  60. package/dist/components/icon-button/icon-button.d.ts.map +1 -1
  61. package/dist/components/icon-button/icon-button.js +57 -101
  62. package/dist/components/icon-button/icon-button.js.map +1 -1
  63. package/dist/components/index.d.ts +10 -5
  64. package/dist/components/index.d.ts.map +1 -1
  65. package/dist/components/index.js +10 -5
  66. package/dist/components/index.js.map +1 -1
  67. package/dist/components/linear-progress/linear-progress.d.ts.map +1 -1
  68. package/dist/components/linear-progress/linear-progress.js +4 -4
  69. package/dist/components/linear-progress/linear-progress.js.map +1 -1
  70. package/dist/components/linear-progress/linear-progress.spec.js +2 -0
  71. package/dist/components/linear-progress/linear-progress.spec.js.map +1 -1
  72. package/dist/components/modal/index.d.ts +2 -0
  73. package/dist/components/modal/index.d.ts.map +1 -0
  74. package/dist/components/modal/index.js +2 -0
  75. package/dist/components/modal/index.js.map +1 -0
  76. package/dist/components/modal/modal.d.ts +193 -0
  77. package/dist/components/modal/modal.d.ts.map +1 -0
  78. package/dist/components/modal/modal.js +382 -0
  79. package/dist/components/modal/modal.js.map +1 -0
  80. package/dist/components/modal/modal.spec.d.ts +2 -0
  81. package/dist/components/modal/modal.spec.d.ts.map +1 -0
  82. package/dist/components/modal/modal.spec.js +360 -0
  83. package/dist/components/modal/modal.spec.js.map +1 -0
  84. package/dist/components/overlay/index.d.ts +2 -0
  85. package/dist/components/overlay/index.d.ts.map +1 -0
  86. package/dist/components/overlay/index.js +2 -0
  87. package/dist/components/overlay/index.js.map +1 -0
  88. package/dist/components/overlay/overlay.d.ts +75 -0
  89. package/dist/components/overlay/overlay.d.ts.map +1 -0
  90. package/dist/components/overlay/overlay.js +106 -0
  91. package/dist/components/overlay/overlay.js.map +1 -0
  92. package/dist/components/overlay/overlay.spec.d.ts +2 -0
  93. package/dist/components/overlay/overlay.spec.d.ts.map +1 -0
  94. package/dist/components/overlay/overlay.spec.js +135 -0
  95. package/dist/components/overlay/overlay.spec.js.map +1 -0
  96. package/dist/components/radial-progress/radial-progress.d.ts.map +1 -1
  97. package/dist/components/radial-progress/radial-progress.js +3 -2
  98. package/dist/components/radial-progress/radial-progress.js.map +1 -1
  99. package/dist/components/radio/index.d.ts +2 -0
  100. package/dist/components/radio/index.d.ts.map +1 -0
  101. package/dist/components/radio/index.js +2 -0
  102. package/dist/components/radio/index.js.map +1 -0
  103. package/dist/components/radio/radio.d.ts +157 -0
  104. package/dist/components/radio/radio.d.ts.map +1 -0
  105. package/dist/components/radio/radio.js +312 -0
  106. package/dist/components/radio/radio.js.map +1 -0
  107. package/dist/components/radio/radio.spec.d.ts +2 -0
  108. package/dist/components/radio/radio.spec.d.ts.map +1 -0
  109. package/dist/components/radio/radio.spec.js +353 -0
  110. package/dist/components/radio/radio.spec.js.map +1 -0
  111. package/dist/components/radio-group/index.d.ts +2 -0
  112. package/dist/components/radio-group/index.d.ts.map +1 -0
  113. package/dist/components/radio-group/index.js +2 -0
  114. package/dist/components/radio-group/index.js.map +1 -0
  115. package/dist/components/radio-group/radio-group.d.ts +122 -0
  116. package/dist/components/radio-group/radio-group.d.ts.map +1 -0
  117. package/dist/components/radio-group/radio-group.js +165 -0
  118. package/dist/components/radio-group/radio-group.js.map +1 -0
  119. package/dist/components/radio-group/radio-group.spec.d.ts +2 -0
  120. package/dist/components/radio-group/radio-group.spec.d.ts.map +1 -0
  121. package/dist/components/radio-group/radio-group.spec.js +205 -0
  122. package/dist/components/radio-group/radio-group.spec.js.map +1 -0
  123. package/dist/components/stack/index.d.ts +2 -0
  124. package/dist/components/stack/index.d.ts.map +1 -0
  125. package/dist/components/stack/index.js +2 -0
  126. package/dist/components/stack/index.js.map +1 -0
  127. package/dist/components/stack/stack.d.ts +118 -0
  128. package/dist/components/stack/stack.d.ts.map +1 -0
  129. package/dist/components/stack/stack.js +137 -0
  130. package/dist/components/stack/stack.js.map +1 -0
  131. package/dist/components/stack/stack.spec.d.ts +2 -0
  132. package/dist/components/stack/stack.spec.d.ts.map +1 -0
  133. package/dist/components/stack/stack.spec.js +116 -0
  134. package/dist/components/stack/stack.spec.js.map +1 -0
  135. package/dist/components/text/text.d.ts +21 -4
  136. package/dist/components/text/text.d.ts.map +1 -1
  137. package/dist/components/text/text.js +14 -14
  138. package/dist/components/text/text.js.map +1 -1
  139. package/dist/components/text-button/text-button.d.ts +77 -24
  140. package/dist/components/text-button/text-button.d.ts.map +1 -1
  141. package/dist/components/text-button/text-button.js +203 -104
  142. package/dist/components/text-button/text-button.js.map +1 -1
  143. package/dist/components/text-button/text-button.spec.js +97 -9
  144. package/dist/components/text-button/text-button.spec.js.map +1 -1
  145. package/dist/components/toggle/index.d.ts +2 -0
  146. package/dist/components/toggle/index.d.ts.map +1 -0
  147. package/dist/components/toggle/index.js +2 -0
  148. package/dist/components/toggle/index.js.map +1 -0
  149. package/dist/components/toggle/toggle.d.ts +149 -0
  150. package/dist/components/toggle/toggle.d.ts.map +1 -0
  151. package/dist/components/toggle/toggle.js +378 -0
  152. package/dist/components/toggle/toggle.js.map +1 -0
  153. package/dist/components/toggle/toggle.spec.d.ts +2 -0
  154. package/dist/components/toggle/toggle.spec.d.ts.map +1 -0
  155. package/dist/components/toggle/toggle.spec.js +353 -0
  156. package/dist/components/toggle/toggle.spec.js.map +1 -0
  157. package/dist/hudini.js +6523 -4980
  158. package/dist/hudini.min.js +1 -1
  159. package/dist/loaders/load-fonts.d.ts +29 -0
  160. package/dist/loaders/load-fonts.d.ts.map +1 -1
  161. package/dist/loaders/load-fonts.js +20 -1
  162. package/dist/loaders/load-fonts.js.map +1 -1
  163. package/dist/utils/button-style.d.ts +27 -0
  164. package/dist/utils/button-style.d.ts.map +1 -0
  165. package/dist/utils/button-style.js +37 -0
  166. package/dist/utils/button-style.js.map +1 -0
  167. package/dist/utils/index.d.ts +2 -0
  168. package/dist/utils/index.d.ts.map +1 -1
  169. package/dist/utils/index.js +2 -0
  170. package/dist/utils/index.js.map +1 -1
  171. package/dist/utils/number-to-rgb.d.ts +16 -0
  172. package/dist/utils/number-to-rgb.d.ts.map +1 -0
  173. package/dist/utils/number-to-rgb.js +20 -0
  174. package/dist/utils/number-to-rgb.js.map +1 -0
  175. package/package.json +2 -2
  176. package/dist/components/flat-icon-button/flat-icon-button.d.ts +0 -60
  177. package/dist/components/flat-icon-button/flat-icon-button.d.ts.map +0 -1
  178. package/dist/components/flat-icon-button/flat-icon-button.js +0 -279
  179. package/dist/components/flat-icon-button/flat-icon-button.js.map +0 -1
  180. package/dist/components/flat-icon-button/index.d.ts +0 -2
  181. package/dist/components/flat-icon-button/index.d.ts.map +0 -1
  182. package/dist/components/flat-icon-button/index.js +0 -2
  183. package/dist/components/flat-icon-button/index.js.map +0 -1
  184. package/dist/components/flat-section-header/flat-section-header.d.ts +0 -143
  185. package/dist/components/flat-section-header/flat-section-header.d.ts.map +0 -1
  186. package/dist/components/flat-section-header/flat-section-header.js +0 -275
  187. package/dist/components/flat-section-header/flat-section-header.js.map +0 -1
  188. package/dist/components/flat-section-header/flat-section-header.spec.d.ts +0 -2
  189. package/dist/components/flat-section-header/flat-section-header.spec.d.ts.map +0 -1
  190. package/dist/components/flat-section-header/flat-section-header.spec.js +0 -255
  191. package/dist/components/flat-section-header/flat-section-header.spec.js.map +0 -1
  192. package/dist/components/flat-section-header/index.d.ts +0 -2
  193. package/dist/components/flat-section-header/index.d.ts.map +0 -1
  194. package/dist/components/flat-section-header/index.js +0 -2
  195. package/dist/components/flat-section-header/index.js.map +0 -1
  196. package/dist/components/flat-text-button/flat-text-button.d.ts +0 -165
  197. package/dist/components/flat-text-button/flat-text-button.d.ts.map +0 -1
  198. package/dist/components/flat-text-button/flat-text-button.js +0 -325
  199. package/dist/components/flat-text-button/flat-text-button.js.map +0 -1
  200. package/dist/components/flat-text-button/flat-text-button.spec.d.ts +0 -2
  201. package/dist/components/flat-text-button/flat-text-button.spec.d.ts.map +0 -1
  202. package/dist/components/flat-text-button/flat-text-button.spec.js +0 -243
  203. package/dist/components/flat-text-button/flat-text-button.spec.js.map +0 -1
  204. package/dist/components/flat-text-button/index.d.ts +0 -2
  205. package/dist/components/flat-text-button/index.d.ts.map +0 -1
  206. package/dist/components/flat-text-button/index.js +0 -2
  207. package/dist/components/flat-text-button/index.js.map +0 -1
  208. package/dist/components/panel/index.d.ts +0 -2
  209. package/dist/components/panel/index.d.ts.map +0 -1
  210. package/dist/components/panel/index.js +0 -2
  211. package/dist/components/panel/index.js.map +0 -1
  212. package/dist/components/panel/panel.d.ts +0 -78
  213. package/dist/components/panel/panel.d.ts.map +0 -1
  214. package/dist/components/panel/panel.js +0 -192
  215. package/dist/components/panel/panel.js.map +0 -1
  216. package/dist/components/section-header/index.d.ts +0 -2
  217. package/dist/components/section-header/index.d.ts.map +0 -1
  218. package/dist/components/section-header/index.js +0 -2
  219. package/dist/components/section-header/index.js.map +0 -1
  220. package/dist/components/section-header/section-header.d.ts +0 -149
  221. package/dist/components/section-header/section-header.d.ts.map +0 -1
  222. package/dist/components/section-header/section-header.js +0 -292
  223. package/dist/components/section-header/section-header.js.map +0 -1
  224. package/dist/components/section-header/section-header.spec.d.ts +0 -2
  225. package/dist/components/section-header/section-header.spec.d.ts.map +0 -1
  226. package/dist/components/section-header/section-header.spec.js +0 -264
  227. package/dist/components/section-header/section-header.spec.js.map +0 -1
@@ -0,0 +1,378 @@
1
+ /* eslint-disable max-lines-per-function */
2
+ /* eslint-disable complexity */
3
+ /* eslint-disable max-lines */
4
+ import { IconText } from 'font-awesome-for-phaser';
5
+ import { Color, Duration, Ease, } from 'phaser-wind';
6
+ import { getPWFromScene } from '../../utils/get-pw-from-scene';
7
+ import { ContainerInteractive } from '../container-interactive';
8
+ import { Stack } from '../stack';
9
+ import { Text } from '../text';
10
+ const DEFAULT_SIZE_KEY = 'base';
11
+ const DEFAULT_ON_ICON = 'check';
12
+ const DEFAULT_OFF_ICON = 'xmark';
13
+ // Sizing constants (relative to `size`).
14
+ const HANDLE_PADDING_INSIDE_TRACK = 2;
15
+ const TRACK_PADDING_AROUND_HANDLE = 2;
16
+ const TRACK_ASPECT_RATIO = 2; // width = height * ratio
17
+ const TEXTURE_ANTIALIAS_MARGIN = 1;
18
+ const DEFAULT_LABEL_GAP = 8;
19
+ const DISABLED_ALPHA = 0.4;
20
+ /**
21
+ * Toggle — a daisyUI-style switch. Same API contract as {@link Checkbox},
22
+ * different look and feel: a pill-shaped track with a sliding handle that
23
+ * can carry an icon per state (with a cross-fade when the icons differ).
24
+ *
25
+ * @example
26
+ * new Toggle({
27
+ * scene, x, y,
28
+ * checked: true,
29
+ * label: 'Sound',
30
+ * color: 'green-500',
31
+ * });
32
+ *
33
+ * @example
34
+ * // Themed icons per state (e.g., dark-mode switcher)
35
+ * new Toggle({
36
+ * scene, x, y,
37
+ * label: 'Dark mode',
38
+ * onIcon: 'moon',
39
+ * offIcon: 'sun',
40
+ * color: 'indigo-600',
41
+ * offColor: 'yellow-400',
42
+ * });
43
+ */
44
+ export class Toggle extends ContainerInteractive {
45
+ /** The track (pill background) sprite. */
46
+ trackSprite;
47
+ /** The handle (circle) sprite. */
48
+ handleSprite;
49
+ /** Container that holds handle + icons and slides between the two positions. */
50
+ handleGroup;
51
+ /** Icon rendered when checked (invisible when unchecked). */
52
+ onIconText;
53
+ /** Icon rendered when unchecked (invisible when checked). */
54
+ offIconText;
55
+ /** Optional label text. */
56
+ labelText;
57
+ /** Invisible hit rect covering track + label. */
58
+ hitRect;
59
+ pw;
60
+ checkedState;
61
+ disabledState;
62
+ readOnlyState;
63
+ sizePx;
64
+ trackWidthPx;
65
+ trackHeightPx;
66
+ handleDiameterPx;
67
+ handleXOn;
68
+ handleXOff;
69
+ borderRadiusPx;
70
+ trackOnColorHex;
71
+ trackOffColorHex;
72
+ handleColorHex;
73
+ iconColorValue;
74
+ labelColorValue;
75
+ onIconKey;
76
+ offIconKey;
77
+ labelValue;
78
+ labelGap;
79
+ onChangeCb;
80
+ onClickCb;
81
+ constructor({ scene, x, y, checked = false, disabled = false, readOnly = false, name, label, onIcon, offIcon, iconColor = 'slate-700', color = 'green-500', offColor = 'slate-400', handleColor = 'white', labelColor = 'slate-800', size = DEFAULT_SIZE_KEY, borderRadius = 'full', labelGap = DEFAULT_LABEL_GAP, onChange, onClick, }) {
82
+ super({ scene, x, y });
83
+ this.pw = getPWFromScene(scene);
84
+ this.checkedState = checked;
85
+ this.disabledState = disabled;
86
+ this.readOnlyState = readOnly;
87
+ if (name !== undefined)
88
+ this.name = name;
89
+ this.labelValue = label;
90
+ // Default on/off icons; `null` explicitly disables one.
91
+ this.onIconKey =
92
+ onIcon === null ? undefined : onIcon ?? DEFAULT_ON_ICON;
93
+ this.offIconKey =
94
+ offIcon === null ? undefined : offIcon ?? DEFAULT_OFF_ICON;
95
+ this.labelGap = labelGap;
96
+ this.onChangeCb = onChange;
97
+ this.onClickCb = onClick;
98
+ this.sizePx =
99
+ typeof size === 'number'
100
+ ? size
101
+ : this.pw.fontSize.px(size ?? DEFAULT_SIZE_KEY);
102
+ this.handleDiameterPx = this.sizePx + HANDLE_PADDING_INSIDE_TRACK * 2;
103
+ this.trackHeightPx =
104
+ this.handleDiameterPx + TRACK_PADDING_AROUND_HANDLE * 2;
105
+ this.trackWidthPx = this.trackHeightPx * TRACK_ASPECT_RATIO;
106
+ this.handleXOff =
107
+ -this.trackWidthPx / 2 +
108
+ this.handleDiameterPx / 2 +
109
+ TRACK_PADDING_AROUND_HANDLE;
110
+ this.handleXOn = -this.handleXOff;
111
+ this.borderRadiusPx =
112
+ typeof borderRadius === 'number'
113
+ ? borderRadius
114
+ : this.pw.radius.px(borderRadius ?? 'full');
115
+ this.trackOnColorHex = Color.hex(color);
116
+ this.trackOffColorHex = Color.hex(offColor);
117
+ this.handleColorHex = Color.hex(handleColor);
118
+ this.iconColorValue = Color.rgb(iconColor);
119
+ this.labelColorValue = Color.rgb(labelColor);
120
+ this.createTrack(scene);
121
+ this.createHandle(scene);
122
+ this.createIcons(scene);
123
+ this.createLabel(scene);
124
+ this.createHitRect(scene);
125
+ this.setupContainer();
126
+ this.hitArea = this.hitRect;
127
+ this.applyInitialState();
128
+ this.applyDisabledVisual();
129
+ this.setupInteractivity();
130
+ this.syncSize();
131
+ }
132
+ // -------- public API --------
133
+ toggle() {
134
+ return this.setChecked(!this.checkedState);
135
+ }
136
+ setChecked(checked) {
137
+ if (this.checkedState === checked)
138
+ return this;
139
+ this.checkedState = checked;
140
+ this.animateToState(checked);
141
+ this.onChangeCb?.(checked, this.name === '' ? undefined : this.name);
142
+ return this;
143
+ }
144
+ isChecked() {
145
+ return this.checkedState;
146
+ }
147
+ getValue() {
148
+ return this.checkedState;
149
+ }
150
+ setDisabled(disabled) {
151
+ if (this.disabledState === disabled)
152
+ return this;
153
+ this.disabledState = disabled;
154
+ this.applyDisabledVisual();
155
+ return this;
156
+ }
157
+ disable() {
158
+ return this.setDisabled(true);
159
+ }
160
+ enable() {
161
+ return this.setDisabled(false);
162
+ }
163
+ isDisabled() {
164
+ return this.disabledState;
165
+ }
166
+ setReadOnly(readOnly) {
167
+ this.readOnlyState = readOnly;
168
+ return this;
169
+ }
170
+ isReadOnly() {
171
+ return this.readOnlyState;
172
+ }
173
+ onChange(cb) {
174
+ this.onChangeCb = cb;
175
+ return this;
176
+ }
177
+ onClick(cb) {
178
+ this.onClickCb = cb;
179
+ return this;
180
+ }
181
+ // -------- private --------
182
+ createTrack(scene) {
183
+ // Generate both textures upfront so switching between them is instant.
184
+ this.drawTrackTexture(scene, this.trackTextureKey(true), this.trackOnColorHex);
185
+ this.drawTrackTexture(scene, this.trackTextureKey(false), this.trackOffColorHex);
186
+ const initialKey = this.trackTextureKey(this.checkedState);
187
+ this.trackSprite = scene.add.sprite(0, 0, initialKey);
188
+ this.trackSprite.setOrigin(0.5, 0.5);
189
+ }
190
+ createHandle(scene) {
191
+ const handleKey = `toggle_handle_${this.handleColorHex}_${this.handleDiameterPx}`;
192
+ this.drawHandleTexture(scene, handleKey);
193
+ this.handleSprite = scene.add.sprite(0, 0, handleKey);
194
+ this.handleSprite.setOrigin(0.5, 0.5);
195
+ }
196
+ createIcons(scene) {
197
+ if (this.onIconKey) {
198
+ this.onIconText = new IconText({
199
+ scene,
200
+ x: 0,
201
+ y: 0,
202
+ icon: this.onIconKey,
203
+ size: this.sizePx,
204
+ style: { color: this.iconColorValue },
205
+ });
206
+ this.onIconText.setFontStyle('900');
207
+ this.onIconText.setOrigin(0.5, 0.5);
208
+ scene.add.existing(this.onIconText);
209
+ }
210
+ if (this.offIconKey) {
211
+ this.offIconText = new IconText({
212
+ scene,
213
+ x: 0,
214
+ y: 0,
215
+ icon: this.offIconKey,
216
+ size: this.sizePx,
217
+ style: { color: this.iconColorValue },
218
+ });
219
+ this.offIconText.setFontStyle('900');
220
+ this.offIconText.setOrigin(0.5, 0.5);
221
+ scene.add.existing(this.offIconText);
222
+ }
223
+ }
224
+ createLabel(scene) {
225
+ if (this.labelValue === undefined || this.labelValue === '')
226
+ return;
227
+ this.labelText = new Text({
228
+ scene,
229
+ x: 0,
230
+ y: 0,
231
+ text: this.labelValue,
232
+ size: this.sizePx,
233
+ fontFamily: 'Fredoka',
234
+ strokeThickness: 0,
235
+ strokeColor: 'rgba(0,0,0,0)',
236
+ });
237
+ this.labelText.setColor(this.labelColorValue);
238
+ this.labelText.setOrigin(0.5, 0.5);
239
+ }
240
+ createHitRect(scene) {
241
+ this.hitRect = scene.add.rectangle(0, 0, this.trackWidthPx, this.trackHeightPx, 0x000000, 0);
242
+ this.hitRect.setOrigin(0.5, 0.5);
243
+ }
244
+ setupContainer() {
245
+ // The handle group: handle sprite + both icons stacked at the same
246
+ // position. We translate this group between on/off X.
247
+ const groupChildren = [this.handleSprite];
248
+ if (this.onIconText)
249
+ groupChildren.push(this.onIconText);
250
+ if (this.offIconText)
251
+ groupChildren.push(this.offIconText);
252
+ this.handleGroup = this.scene.add.container(0, 0, groupChildren);
253
+ // Switch container: track + handle group.
254
+ const switchContainer = this.scene.add.container(0, 0, [
255
+ this.trackSprite,
256
+ this.handleGroup,
257
+ ]);
258
+ switchContainer.setSize(this.trackWidthPx, this.trackHeightPx);
259
+ // Outer: hit rect + horizontal Stack (switch + optional label).
260
+ const stackChildren = [switchContainer];
261
+ if (this.labelText)
262
+ stackChildren.push(this.labelText);
263
+ const contentStack = new Stack({
264
+ scene: this.scene,
265
+ x: 0,
266
+ y: 0,
267
+ direction: 'row',
268
+ align: 'center',
269
+ gap: this.labelGap,
270
+ children: stackChildren,
271
+ });
272
+ this.add([this.hitRect, contentStack]);
273
+ }
274
+ setupInteractivity() {
275
+ this.hitRect.setInteractive({ useHandCursor: true });
276
+ this.hitRect.on('pointerdown', () => {
277
+ if (this.disabledState || this.readOnlyState)
278
+ return;
279
+ this.onClickCb?.();
280
+ this.toggle();
281
+ });
282
+ }
283
+ syncSize() {
284
+ const labelBounds = this.labelText?.getBounds();
285
+ const labelWidth = labelBounds?.width ?? 0;
286
+ const labelHeight = labelBounds?.height ?? 0;
287
+ const totalWidth = this.trackWidthPx +
288
+ (this.labelText ? this.labelGap + labelWidth : 0);
289
+ const totalHeight = Math.max(this.trackHeightPx, labelHeight);
290
+ this.hitRect.setSize(totalWidth, totalHeight);
291
+ this.setSize(totalWidth, totalHeight);
292
+ }
293
+ applyInitialState() {
294
+ // Position the handle at the correct end and set icon visibility.
295
+ this.handleGroup.x = this.checkedState ? this.handleXOn : this.handleXOff;
296
+ if (this.onIconText)
297
+ this.onIconText.setAlpha(this.checkedState ? 1 : 0);
298
+ if (this.offIconText)
299
+ this.offIconText.setAlpha(this.checkedState ? 0 : 1);
300
+ }
301
+ applyDisabledVisual() {
302
+ const targetAlpha = this.disabledState ? DISABLED_ALPHA : 1;
303
+ this.trackSprite.setAlpha(targetAlpha);
304
+ this.handleSprite.setAlpha(targetAlpha);
305
+ if (this.onIconText && this.checkedState) {
306
+ this.onIconText.setAlpha(targetAlpha);
307
+ }
308
+ if (this.offIconText && !this.checkedState) {
309
+ this.offIconText.setAlpha(targetAlpha);
310
+ }
311
+ if (this.labelText)
312
+ this.labelText.setAlpha(targetAlpha);
313
+ }
314
+ animateToState(checked) {
315
+ // Swap the track texture instantly (color change).
316
+ this.trackSprite.setTexture(this.trackTextureKey(checked));
317
+ // Slide the handle.
318
+ this.scene.tweens.killTweensOf(this.handleGroup);
319
+ this.scene.tweens.add({
320
+ targets: this.handleGroup,
321
+ x: checked ? this.handleXOn : this.handleXOff,
322
+ duration: Duration.ms('200'),
323
+ ease: Ease.value('back-out'),
324
+ });
325
+ // Cross-fade icons if they differ. When only one is set, the other side
326
+ // fades in/out from 0.
327
+ const iconTargetAlpha = this.disabledState ? DISABLED_ALPHA : 1;
328
+ if (this.onIconText) {
329
+ this.scene.tweens.killTweensOf(this.onIconText);
330
+ this.scene.tweens.add({
331
+ targets: this.onIconText,
332
+ alpha: checked ? iconTargetAlpha : 0,
333
+ duration: Duration.ms('150'),
334
+ ease: Ease.value('sine-in-out'),
335
+ });
336
+ }
337
+ if (this.offIconText) {
338
+ this.scene.tweens.killTweensOf(this.offIconText);
339
+ this.scene.tweens.add({
340
+ targets: this.offIconText,
341
+ alpha: checked ? 0 : iconTargetAlpha,
342
+ duration: Duration.ms('150'),
343
+ ease: Ease.value('sine-in-out'),
344
+ });
345
+ }
346
+ }
347
+ trackTextureKey(on) {
348
+ const colorHex = on ? this.trackOnColorHex : this.trackOffColorHex;
349
+ return `toggle_track_${colorHex}_${this.borderRadiusPx}_${this.trackWidthPx}_${this.trackHeightPx}`;
350
+ }
351
+ drawTrackTexture(scene, textureKey, colorHex) {
352
+ if (scene.textures.exists(textureKey))
353
+ return;
354
+ const padding = TEXTURE_ANTIALIAS_MARGIN;
355
+ const textureWidth = this.trackWidthPx + padding * 2;
356
+ const textureHeight = this.trackHeightPx + padding * 2;
357
+ const graphics = scene.add.graphics();
358
+ const maxRadius = Math.floor(this.trackHeightPx / 2);
359
+ const radius = Math.min(this.borderRadiusPx, maxRadius);
360
+ graphics.fillStyle(colorHex, 1);
361
+ graphics.fillRoundedRect(padding, padding, this.trackWidthPx, this.trackHeightPx, radius);
362
+ graphics.generateTexture(textureKey, textureWidth, textureHeight);
363
+ graphics.destroy();
364
+ }
365
+ drawHandleTexture(scene, textureKey) {
366
+ if (scene.textures.exists(textureKey))
367
+ return;
368
+ const padding = TEXTURE_ANTIALIAS_MARGIN;
369
+ const textureSide = this.handleDiameterPx + padding * 2;
370
+ const graphics = scene.add.graphics();
371
+ graphics.fillStyle(this.handleColorHex, 1);
372
+ // Full circle via radius = diameter/2.
373
+ graphics.fillRoundedRect(padding, padding, this.handleDiameterPx, this.handleDiameterPx, this.handleDiameterPx / 2);
374
+ graphics.generateTexture(textureKey, textureSide, textureSide);
375
+ graphics.destroy();
376
+ }
377
+ }
378
+ //# sourceMappingURL=toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.js","sourceRoot":"","sources":["../../../src/components/toggle/toggle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=toggle.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.spec.d.ts","sourceRoot":"","sources":["../../../src/components/toggle/toggle.spec.ts"],"names":[],"mappings":""}