hudini 0.6.0 → 0.7.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.
@@ -2,5 +2,6 @@ export * from './circular-progress';
2
2
  export * from './column';
3
3
  export * from './icon-button';
4
4
  export * from './flat-icon-button';
5
+ export * from './linear-progress';
5
6
  export * from './row';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,OAAO,CAAC"}
@@ -2,5 +2,6 @@ export * from './circular-progress';
2
2
  export * from './column';
3
3
  export * from './icon-button';
4
4
  export * from './flat-icon-button';
5
+ export * from './linear-progress';
5
6
  export * from './row';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,OAAO,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './linear-progress';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/linear-progress/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './linear-progress';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/linear-progress/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,93 @@
1
+ import { GameObjects, Scene } from 'phaser';
2
+ import { type ColorToken, type RadiusKey } from 'phaser-wind';
3
+ export type LinearProgressParams = {
4
+ /** The scene this progress bar belongs to */
5
+ scene: Scene;
6
+ /** X coordinate of the progress bar */
7
+ x: number;
8
+ /** Y coordinate of the progress bar */
9
+ y: number;
10
+ /** Width of the progress bar in pixels */
11
+ width: number;
12
+ /** Height of the progress bar in pixels */
13
+ height: number;
14
+ /** Background color of the progress bar track */
15
+ backgroundColor?: ColorToken;
16
+ /** Color of the progress bar fill */
17
+ progressColor?: ColorToken;
18
+ /** Border radius in px (number) or a Phaser Wind radius token (string). Defaults to 'default'.
19
+ * Note: The effective radius is automatically limited to half of the smallest dimension to prevent visual artifacts. */
20
+ borderRadius?: RadiusKey | number;
21
+ /** Initial progress value (0-100) */
22
+ progress?: number;
23
+ /** Whether this is an indeterminate progress bar */
24
+ indeterminate?: boolean;
25
+ /** Duration of the indeterminate animation in milliseconds */
26
+ indeterminateAnimationDuration?: number;
27
+ };
28
+ export declare class LinearProgress extends GameObjects.Container {
29
+ backgroundProgressBar: GameObjects.Graphics;
30
+ progressBar: GameObjects.Graphics;
31
+ private pw;
32
+ private progressWidth;
33
+ private progressHeight;
34
+ private borderRadiusPx;
35
+ private backgroundColor;
36
+ private progressColor;
37
+ private currentProgress;
38
+ private isIndeterminate;
39
+ private indeterminateAnimation?;
40
+ private indeterminateAnimationDuration;
41
+ constructor({ scene, x, y, width, height, backgroundColor, progressColor, borderRadius, progress, indeterminate, indeterminateAnimationDuration, }: LinearProgressParams);
42
+ /**
43
+ * Sets the progress value (0-100)
44
+ * @param progress Progress value between 0 and 100
45
+ * @param animate Whether to animate the change (default: true)
46
+ */
47
+ setProgress(progress: number, animate?: boolean): this;
48
+ /**
49
+ * Gets the current progress value
50
+ * @returns Current progress value (0-100)
51
+ */
52
+ getProgress(): number;
53
+ /**
54
+ * Sets whether the progress bar is indeterminate
55
+ * @param indeterminate Whether to show indeterminate animation
56
+ */
57
+ setIndeterminate(indeterminate: boolean): this;
58
+ /**
59
+ * Sets the border radius of the progress bar
60
+ * @param borderRadius Border radius in px (number) or a Phaser Wind radius token (string)
61
+ * Note: The effective radius is automatically limited to half of the smallest dimension to prevent visual artifacts.
62
+ */
63
+ setBorderRadius(borderRadius: RadiusKey | number): this;
64
+ /**
65
+ * Sets the background color of the progress bar
66
+ * @param color Background color token
67
+ */
68
+ setBackgroundColor(color: ColorToken): this;
69
+ /**
70
+ * Sets the progress color of the progress bar
71
+ * @param color Progress color token
72
+ */
73
+ setProgressColor(color: ColorToken): this;
74
+ /**
75
+ * Destroys the component and cleans up animations
76
+ */
77
+ destroy(): void;
78
+ private createBackgroundSprite;
79
+ private createProgressSprite;
80
+ private setupContainer;
81
+ private calculateProgressDimensions;
82
+ private updateProgressBar;
83
+ private startIndeterminateAnimation;
84
+ private stopIndeterminateAnimation;
85
+ private recreateSprites;
86
+ /**
87
+ * Calculates the effective border radius, ensuring it doesn't exceed
88
+ * half of the smallest dimension to prevent visual artifacts
89
+ * @returns Limited border radius in pixels
90
+ */
91
+ private getEffectiveBorderRadius;
92
+ }
93
+ //# sourceMappingURL=linear-progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linear-progress.d.ts","sourceRoot":"","sources":["../../../src/components/linear-progress/linear-progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAIrB,MAAM,MAAM,oBAAoB,GAAG;IACjC,6CAA6C;IAC7C,KAAK,EAAE,KAAK,CAAC;IACb,uCAAuC;IACvC,CAAC,EAAE,MAAM,CAAC;IACV,uCAAuC;IACvC,CAAC,EAAE,MAAM,CAAC;IACV,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,qCAAqC;IACrC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B;4HACwH;IACxH,YAAY,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAClC,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8DAA8D;IAC9D,8BAA8B,CAAC,EAAE,MAAM,CAAC;CACzC,CAAC;AAKF,qBAAa,cAAe,SAAQ,WAAW,CAAC,SAAS;IAChD,qBAAqB,EAAG,WAAW,CAAC,QAAQ,CAAC;IAC7C,WAAW,EAAG,WAAW,CAAC,QAAQ,CAAC;IAE1C,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,sBAAsB,CAAC,CAAkC;IACjE,OAAO,CAAC,8BAA8B,CAAS;gBAEnC,EACV,KAAK,EACL,CAAC,EACD,CAAC,EACD,KAAK,EACL,MAAM,EACN,eAA4B,EAC5B,aAA0B,EAC1B,YAAwB,EACxB,QAAY,EACZ,aAAqB,EACrB,8BAAiE,GAClE,EAAE,oBAAoB;IA2BvB;;;;OAIG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,OAAc,GAAG,IAAI;IA8BnE;;;OAGG;IACI,WAAW,IAAI,MAAM;IAI5B;;;OAGG;IACI,gBAAgB,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI;IAkBrD;;;;OAIG;IACI,eAAe,CAAC,YAAY,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI;IAe9D;;;OAGG;IACI,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAUlD;;;OAGG;IACI,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAUhD;;OAEG;IACa,OAAO,IAAI,IAAI;IAK/B,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,2BAA2B;IAMnC,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,2BAA2B;IA0BnC,OAAO,CAAC,0BAA0B;IAOlC,OAAO,CAAC,eAAe;IAmBvB;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;CAIjC"}
@@ -0,0 +1,231 @@
1
+ import { GameObjects } from 'phaser';
2
+ import { Color, } from 'phaser-wind';
3
+ import { getPWFromScene } from '../../utils/get-pw-from-scene';
4
+ const A_HUNDRED = 100;
5
+ const INDETERMINATE_ANIMATION_DURATION = 1500; // 1.5 seconds
6
+ export class LinearProgress extends GameObjects.Container {
7
+ backgroundProgressBar;
8
+ progressBar;
9
+ pw;
10
+ progressWidth;
11
+ progressHeight;
12
+ borderRadiusPx;
13
+ backgroundColor;
14
+ progressColor;
15
+ currentProgress;
16
+ isIndeterminate;
17
+ indeterminateAnimation;
18
+ indeterminateAnimationDuration;
19
+ constructor({ scene, x, y, width, height, backgroundColor = 'gray-200', progressColor = 'blue-500', borderRadius = 'default', progress = 0, indeterminate = false, indeterminateAnimationDuration = INDETERMINATE_ANIMATION_DURATION, }) {
20
+ super(scene, x, y);
21
+ this.pw = getPWFromScene(scene);
22
+ this.progressWidth = width;
23
+ this.progressHeight = height;
24
+ this.backgroundColor = backgroundColor;
25
+ this.progressColor = progressColor;
26
+ this.currentProgress = Math.max(0, Math.min(A_HUNDRED, progress));
27
+ this.isIndeterminate = indeterminate;
28
+ this.indeterminateAnimationDuration = indeterminateAnimationDuration;
29
+ this.borderRadiusPx =
30
+ typeof borderRadius === 'number'
31
+ ? borderRadius
32
+ : this.pw.radius.px(borderRadius);
33
+ this.createBackgroundSprite();
34
+ this.createProgressSprite();
35
+ this.setupContainer();
36
+ if (this.isIndeterminate) {
37
+ this.startIndeterminateAnimation();
38
+ }
39
+ else {
40
+ this.updateProgressBar();
41
+ }
42
+ }
43
+ /**
44
+ * Sets the progress value (0-100)
45
+ * @param progress Progress value between 0 and 100
46
+ * @param animate Whether to animate the change (default: true)
47
+ */
48
+ setProgress(progress, animate = true) {
49
+ if (this.isIndeterminate) {
50
+ return this;
51
+ }
52
+ const newProgress = Math.max(0, Math.min(A_HUNDRED, progress));
53
+ if (this.currentProgress === newProgress) {
54
+ return this;
55
+ }
56
+ if (animate) {
57
+ const target = { value: this.currentProgress };
58
+ this.scene.tweens.add({
59
+ targets: target,
60
+ value: newProgress,
61
+ duration: 300,
62
+ ease: 'Power2',
63
+ onUpdate: () => {
64
+ this.currentProgress = target.value;
65
+ this.updateProgressBar();
66
+ },
67
+ });
68
+ }
69
+ else {
70
+ this.currentProgress = newProgress;
71
+ this.updateProgressBar();
72
+ }
73
+ return this;
74
+ }
75
+ /**
76
+ * Gets the current progress value
77
+ * @returns Current progress value (0-100)
78
+ */
79
+ getProgress() {
80
+ return this.currentProgress;
81
+ }
82
+ /**
83
+ * Sets whether the progress bar is indeterminate
84
+ * @param indeterminate Whether to show indeterminate animation
85
+ */
86
+ setIndeterminate(indeterminate) {
87
+ if (this.isIndeterminate === indeterminate) {
88
+ return this;
89
+ }
90
+ this.isIndeterminate = indeterminate;
91
+ if (this.isIndeterminate) {
92
+ this.stopIndeterminateAnimation();
93
+ this.startIndeterminateAnimation();
94
+ }
95
+ else {
96
+ this.stopIndeterminateAnimation();
97
+ this.updateProgressBar();
98
+ }
99
+ return this;
100
+ }
101
+ /**
102
+ * Sets the border radius of the progress bar
103
+ * @param borderRadius Border radius in px (number) or a Phaser Wind radius token (string)
104
+ * Note: The effective radius is automatically limited to half of the smallest dimension to prevent visual artifacts.
105
+ */
106
+ setBorderRadius(borderRadius) {
107
+ const newRadiusPx = typeof borderRadius === 'number'
108
+ ? borderRadius
109
+ : this.pw.radius.px(borderRadius);
110
+ if (this.borderRadiusPx === newRadiusPx) {
111
+ return this;
112
+ }
113
+ this.borderRadiusPx = newRadiusPx;
114
+ this.recreateSprites();
115
+ return this;
116
+ }
117
+ /**
118
+ * Sets the background color of the progress bar
119
+ * @param color Background color token
120
+ */
121
+ setBackgroundColor(color) {
122
+ if (this.backgroundColor === color) {
123
+ return this;
124
+ }
125
+ this.backgroundColor = color;
126
+ this.recreateSprites();
127
+ return this;
128
+ }
129
+ /**
130
+ * Sets the progress color of the progress bar
131
+ * @param color Progress color token
132
+ */
133
+ setProgressColor(color) {
134
+ if (this.progressColor === color) {
135
+ return this;
136
+ }
137
+ this.progressColor = color;
138
+ this.recreateSprites();
139
+ return this;
140
+ }
141
+ /**
142
+ * Destroys the component and cleans up animations
143
+ */
144
+ destroy() {
145
+ this.stopIndeterminateAnimation();
146
+ super.destroy();
147
+ }
148
+ createBackgroundSprite() {
149
+ const bgGraphic = this.scene.add.graphics();
150
+ bgGraphic.fillStyle(Color.hex(this.backgroundColor), 1);
151
+ bgGraphic.fillRoundedRect(-this.progressWidth / 2, -this.progressHeight / 2, this.progressWidth, this.progressHeight, this.getEffectiveBorderRadius());
152
+ this.backgroundProgressBar = bgGraphic;
153
+ }
154
+ createProgressSprite() {
155
+ const progressBar = this.scene.add.graphics();
156
+ progressBar.fillStyle(Color.hex(this.progressColor), 1);
157
+ progressBar.fillRoundedRect(-this.progressWidth / 2, -this.progressHeight / 2, this.progressWidth, this.progressHeight, this.getEffectiveBorderRadius());
158
+ this.progressBar = progressBar;
159
+ }
160
+ setupContainer() {
161
+ this.add([this.backgroundProgressBar, this.progressBar]);
162
+ }
163
+ calculateProgressDimensions() {
164
+ const progressWidth = (this.progressWidth * this.currentProgress) / A_HUNDRED;
165
+ const leftOffset = (progressWidth - this.progressWidth) / 2;
166
+ return { progressWidth, leftOffset };
167
+ }
168
+ updateProgressBar(force = false) {
169
+ if (this.isIndeterminate && !force) {
170
+ return;
171
+ }
172
+ const { progressWidth, leftOffset } = this.calculateProgressDimensions();
173
+ this.progressBar.setScale(progressWidth / this.progressWidth, 1);
174
+ this.progressBar.setX(leftOffset);
175
+ }
176
+ startIndeterminateAnimation() {
177
+ if (!this.isIndeterminate) {
178
+ return;
179
+ }
180
+ this.currentProgress = 40;
181
+ this.updateProgressBar(true);
182
+ const { progressWidth } = this.calculateProgressDimensions();
183
+ // Calculate the movement range: the bar should move within the background bounds
184
+ // The bar center can move from left edge + half bar width to right edge - half bar width
185
+ const maxX = (this.progressWidth / 2) - (progressWidth / 2);
186
+ const minX = -(this.progressWidth / 2) + (progressWidth / 2);
187
+ // Start from the left
188
+ this.progressBar.setX(minX);
189
+ this.indeterminateAnimation = this.scene.tweens.add({
190
+ targets: this.progressBar,
191
+ x: maxX,
192
+ duration: this.indeterminateAnimationDuration,
193
+ ease: 'Sine.easeInOut',
194
+ yoyo: true,
195
+ repeat: -1,
196
+ });
197
+ }
198
+ stopIndeterminateAnimation() {
199
+ if (this.indeterminateAnimation) {
200
+ this.indeterminateAnimation.destroy();
201
+ this.indeterminateAnimation = undefined;
202
+ }
203
+ }
204
+ recreateSprites() {
205
+ // Remove old sprites
206
+ this.remove([this.backgroundProgressBar, this.progressBar]);
207
+ this.backgroundProgressBar.destroy();
208
+ this.progressBar.destroy();
209
+ // Create new sprites with updated properties
210
+ this.createBackgroundSprite();
211
+ this.createProgressSprite();
212
+ this.setupContainer();
213
+ // Restore state
214
+ if (this.isIndeterminate) {
215
+ this.startIndeterminateAnimation();
216
+ }
217
+ else {
218
+ this.updateProgressBar();
219
+ }
220
+ }
221
+ /**
222
+ * Calculates the effective border radius, ensuring it doesn't exceed
223
+ * half of the smallest dimension to prevent visual artifacts
224
+ * @returns Limited border radius in pixels
225
+ */
226
+ getEffectiveBorderRadius() {
227
+ const maxRadius = Math.min(this.progressWidth, this.progressHeight) / 2;
228
+ return Math.min(this.borderRadiusPx, maxRadius);
229
+ }
230
+ }
231
+ //# sourceMappingURL=linear-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linear-progress.js","sourceRoot":"","sources":["../../../src/components/linear-progress/linear-progress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=linear-progress.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linear-progress.spec.d.ts","sourceRoot":"","sources":["../../../src/components/linear-progress/linear-progress.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,288 @@
1
+ /* eslint-disable no-magic-numbers */
2
+ /* eslint-disable max-lines-per-function */
3
+ import { Scene } from 'phaser';
4
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
5
+ // Mock Phaser to avoid canvas dependency in runtime
6
+ vi.mock('phaser', () => {
7
+ class Scene {
8
+ add = {
9
+ graphics: () => ({
10
+ fillStyle: vi.fn(),
11
+ fillRoundedRect: vi.fn(),
12
+ generateTexture: vi.fn(),
13
+ destroy: vi.fn(),
14
+ setScale: vi.fn(),
15
+ setX: vi.fn(),
16
+ }),
17
+ sprite: vi.fn(() => ({
18
+ setOrigin: vi.fn(),
19
+ setScale: vi.fn(),
20
+ setX: vi.fn(),
21
+ destroy: vi.fn(),
22
+ })),
23
+ };
24
+ textures = {
25
+ exists: vi.fn(() => false),
26
+ };
27
+ tweens = {
28
+ add: vi.fn(() => ({
29
+ destroy: vi.fn(),
30
+ })),
31
+ };
32
+ constructor() {
33
+ // Ensure textures is properly bound to this instance
34
+ this.textures = {
35
+ exists: vi.fn(() => false),
36
+ };
37
+ this.tweens = {
38
+ add: vi.fn(() => ({
39
+ destroy: vi.fn(),
40
+ })),
41
+ };
42
+ }
43
+ }
44
+ class Container {
45
+ list = [];
46
+ x;
47
+ y;
48
+ width = 0;
49
+ height = 0;
50
+ scene;
51
+ constructor(scene, x, y) {
52
+ this.scene = scene;
53
+ this.x = x;
54
+ this.y = y;
55
+ }
56
+ add(child) {
57
+ if (Array.isArray(child)) {
58
+ this.list.push(...child);
59
+ }
60
+ else {
61
+ this.list.push(child);
62
+ }
63
+ return this;
64
+ }
65
+ remove(child) {
66
+ if (Array.isArray(child)) {
67
+ child.forEach(c => {
68
+ const index = this.list.indexOf(c);
69
+ if (index !== -1)
70
+ this.list.splice(index, 1);
71
+ });
72
+ }
73
+ else {
74
+ const index = this.list.indexOf(child);
75
+ if (index !== -1)
76
+ this.list.splice(index, 1);
77
+ }
78
+ return this;
79
+ }
80
+ destroy() {
81
+ this.list = [];
82
+ }
83
+ }
84
+ const GameObjects = { Container };
85
+ return { GameObjects, Scene };
86
+ });
87
+ // Mock the getPWFromScene utility
88
+ vi.mock('../../utils/get-pw-from-scene', () => ({
89
+ getPWFromScene: () => ({
90
+ radius: {
91
+ px: (key) => {
92
+ const radiusMap = {
93
+ none: 0,
94
+ sm: 2,
95
+ default: 4,
96
+ md: 6,
97
+ lg: 8,
98
+ xl: 12,
99
+ '2xl': 16,
100
+ '3xl': 24,
101
+ full: 9999,
102
+ };
103
+ return radiusMap[key] ?? 4;
104
+ },
105
+ },
106
+ }),
107
+ }));
108
+ // Mock Color utility
109
+ vi.mock('phaser-wind', () => ({
110
+ Color: {
111
+ hex: vi.fn(() => 0x000000),
112
+ },
113
+ }));
114
+ import { LinearProgress } from './linear-progress';
115
+ describe('LinearProgress', () => {
116
+ let linearProgress;
117
+ let scene;
118
+ beforeEach(() => {
119
+ vi.clearAllMocks();
120
+ scene = new Scene();
121
+ });
122
+ describe('constructor', () => {
123
+ it('should create a linear progress bar with default parameters', () => {
124
+ linearProgress = new LinearProgress({
125
+ scene,
126
+ x: 100,
127
+ y: 100,
128
+ width: 200,
129
+ height: 8,
130
+ });
131
+ expect(linearProgress).toBeInstanceOf(LinearProgress);
132
+ expect(linearProgress.getProgress()).toBe(0);
133
+ });
134
+ it('should create a linear progress bar with custom parameters', () => {
135
+ linearProgress = new LinearProgress({
136
+ scene,
137
+ x: 100,
138
+ y: 100,
139
+ width: 300,
140
+ height: 12,
141
+ backgroundColor: 'gray-300',
142
+ progressColor: 'green-500',
143
+ borderRadius: 'lg',
144
+ progress: 50,
145
+ });
146
+ expect(linearProgress).toBeInstanceOf(LinearProgress);
147
+ expect(linearProgress.getProgress()).toBe(50);
148
+ });
149
+ it('should create an indeterminate progress bar', () => {
150
+ linearProgress = new LinearProgress({
151
+ scene,
152
+ x: 100,
153
+ y: 100,
154
+ width: 200,
155
+ height: 8,
156
+ indeterminate: true,
157
+ });
158
+ expect(linearProgress).toBeInstanceOf(LinearProgress);
159
+ expect(scene.tweens.add).toHaveBeenCalled();
160
+ });
161
+ it('should create indeterminate progress bar with correct positioning bounds', () => {
162
+ const width = 300;
163
+ linearProgress = new LinearProgress({
164
+ scene,
165
+ x: 100,
166
+ y: 100,
167
+ width,
168
+ height: 8,
169
+ indeterminate: true,
170
+ });
171
+ // Verify that tween was called with correct positioning
172
+ expect(scene.tweens.add).toHaveBeenCalled();
173
+ const tweenCall = vi.mocked(scene.tweens.add).mock.calls[0]?.[0];
174
+ // The indeterminate bar should move within bounds
175
+ // Bar width is 40% of total width = 120px
176
+ // Max X should be (300/2) - (120/2) = 150 - 60 = 90
177
+ // Min X should be -(300/2) + (120/2) = -150 + 60 = -90
178
+ expect(tweenCall.x).toBe(90); // maxX position
179
+ });
180
+ });
181
+ describe('setProgress', () => {
182
+ beforeEach(() => {
183
+ linearProgress = new LinearProgress({
184
+ scene,
185
+ x: 100,
186
+ y: 100,
187
+ width: 200,
188
+ height: 8,
189
+ });
190
+ });
191
+ it('should set progress value within valid range', () => {
192
+ linearProgress.setProgress(75, false);
193
+ expect(linearProgress.getProgress()).toBe(75);
194
+ });
195
+ it('should clamp progress value to 0-100 range', () => {
196
+ linearProgress.setProgress(-10, false);
197
+ expect(linearProgress.getProgress()).toBe(0);
198
+ linearProgress.setProgress(150, false);
199
+ expect(linearProgress.getProgress()).toBe(100);
200
+ });
201
+ it('should animate progress change by default', () => {
202
+ linearProgress.setProgress(50);
203
+ expect(scene.tweens.add).toHaveBeenCalled();
204
+ });
205
+ it('should not change progress for indeterminate progress bar', () => {
206
+ linearProgress.setIndeterminate(true);
207
+ const initialProgress = linearProgress.getProgress();
208
+ linearProgress.setProgress(75);
209
+ expect(linearProgress.getProgress()).toBe(initialProgress);
210
+ });
211
+ });
212
+ describe('setIndeterminate', () => {
213
+ beforeEach(() => {
214
+ linearProgress = new LinearProgress({
215
+ scene,
216
+ x: 100,
217
+ y: 100,
218
+ width: 200,
219
+ height: 8,
220
+ });
221
+ });
222
+ it('should start indeterminate animation when set to true', () => {
223
+ linearProgress.setIndeterminate(true);
224
+ expect(scene.tweens.add).toHaveBeenCalled();
225
+ });
226
+ it('should stop indeterminate animation when set to false', () => {
227
+ linearProgress.setIndeterminate(true);
228
+ const tweenMock = { destroy: vi.fn() };
229
+ vi.mocked(scene.tweens.add).mockReturnValue(tweenMock);
230
+ linearProgress.setIndeterminate(false);
231
+ // Animation should be stopped when switching back to determinate
232
+ });
233
+ });
234
+ describe('setBorderRadius', () => {
235
+ beforeEach(() => {
236
+ linearProgress = new LinearProgress({
237
+ scene,
238
+ x: 100,
239
+ y: 100,
240
+ width: 200,
241
+ height: 8,
242
+ });
243
+ });
244
+ it('should accept numeric border radius', () => {
245
+ expect(() => linearProgress.setBorderRadius(10)).not.toThrow();
246
+ });
247
+ it('should accept string border radius token', () => {
248
+ expect(() => linearProgress.setBorderRadius('lg')).not.toThrow();
249
+ });
250
+ });
251
+ describe('color setters', () => {
252
+ beforeEach(() => {
253
+ linearProgress = new LinearProgress({
254
+ scene,
255
+ x: 100,
256
+ y: 100,
257
+ width: 200,
258
+ height: 8,
259
+ });
260
+ });
261
+ it('should set background color', () => {
262
+ expect(() => linearProgress.setBackgroundColor('red-200')).not.toThrow();
263
+ });
264
+ it('should set progress color', () => {
265
+ expect(() => linearProgress.setProgressColor('blue-600')).not.toThrow();
266
+ });
267
+ });
268
+ describe('destroy', () => {
269
+ beforeEach(() => {
270
+ linearProgress = new LinearProgress({
271
+ scene,
272
+ x: 100,
273
+ y: 100,
274
+ width: 200,
275
+ height: 8,
276
+ indeterminate: true,
277
+ indeterminateAnimationDuration: 1000,
278
+ });
279
+ });
280
+ it('should clean up animations when destroyed', () => {
281
+ const tweenMock = { destroy: vi.fn() };
282
+ vi.mocked(scene.tweens.add).mockReturnValue(tweenMock);
283
+ linearProgress.destroy();
284
+ // Should clean up any running animations
285
+ });
286
+ });
287
+ });
288
+ //# sourceMappingURL=linear-progress.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linear-progress.spec.js","sourceRoot":"","sources":["../../../src/components/linear-progress/linear-progress.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hudini",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "🎩 Magical Phaser UI components - Reusable HUD elements for game development. Is magic, like a wizard",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",