hudini 0.7.0 → 0.9.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 (29) hide show
  1. package/dist/components/index.d.ts +3 -1
  2. package/dist/components/index.d.ts.map +1 -1
  3. package/dist/components/index.js +3 -1
  4. package/dist/components/index.js.map +1 -1
  5. package/dist/components/section-header/index.d.ts +2 -0
  6. package/dist/components/section-header/index.d.ts.map +1 -0
  7. package/dist/components/section-header/index.js +2 -0
  8. package/dist/components/section-header/index.js.map +1 -0
  9. package/dist/components/section-header/section-header.d.ts +155 -0
  10. package/dist/components/section-header/section-header.d.ts.map +1 -0
  11. package/dist/components/section-header/section-header.js +323 -0
  12. package/dist/components/section-header/section-header.js.map +1 -0
  13. package/dist/components/section-header/section-header.spec.d.ts +2 -0
  14. package/dist/components/section-header/section-header.spec.d.ts.map +1 -0
  15. package/dist/components/section-header/section-header.spec.js +224 -0
  16. package/dist/components/section-header/section-header.spec.js.map +1 -0
  17. package/dist/components/text-button/index.d.ts +2 -0
  18. package/dist/components/text-button/index.d.ts.map +1 -0
  19. package/dist/components/text-button/index.js +2 -0
  20. package/dist/components/text-button/index.js.map +1 -0
  21. package/dist/components/text-button/text-button.d.ts +52 -0
  22. package/dist/components/text-button/text-button.d.ts.map +1 -0
  23. package/dist/components/text-button/text-button.js +217 -0
  24. package/dist/components/text-button/text-button.js.map +1 -0
  25. package/dist/components/text-button/text-button.spec.d.ts +2 -0
  26. package/dist/components/text-button/text-button.spec.d.ts.map +1 -0
  27. package/dist/components/text-button/text-button.spec.js +196 -0
  28. package/dist/components/text-button/text-button.spec.js.map +1 -0
  29. package/package.json +1 -1
@@ -0,0 +1,224 @@
1
+ /* eslint-disable no-magic-numbers */
2
+ /* eslint-disable max-lines-per-function */
3
+ import { Scene } from 'phaser';
4
+ import { describe, expect, it, vi } from 'vitest';
5
+ // Mock phaser-wind
6
+ vi.mock('phaser-wind', () => ({
7
+ Color: {
8
+ rgb: vi.fn((color) => `rgb-${color}`),
9
+ hex: vi.fn((color) => `hex-${color}`),
10
+ },
11
+ }));
12
+ // Mock the getPWFromScene utility
13
+ vi.mock('../../utils/get-pw-from-scene', () => ({
14
+ getPWFromScene: vi.fn(() => ({
15
+ fontSize: {
16
+ px: vi.fn((size) => {
17
+ const sizes = { xs: 12, sm: 14, md: 16, lg: 18, xl: 20 };
18
+ return sizes[size] || 18;
19
+ }),
20
+ },
21
+ spacing: {
22
+ px: vi.fn((spacing) => {
23
+ const spacings = { xs: 4, sm: 8, md: 12, lg: 16, xl: 20 };
24
+ return spacings[spacing] || 16;
25
+ }),
26
+ },
27
+ radius: {
28
+ px: vi.fn((radius) => {
29
+ const radiuses = { none: 0, sm: 4, md: 8, lg: 12, xl: 16, full: 9999 };
30
+ return radiuses[radius] || 8;
31
+ }),
32
+ },
33
+ font: {
34
+ family: vi.fn((font) => {
35
+ const fonts = {
36
+ primary: 'Inter, sans-serif',
37
+ secondary: 'Roboto, Arial, sans-serif',
38
+ monospace: 'Courier, monospace',
39
+ display: 'Poppins, Inter, sans-serif',
40
+ };
41
+ return (fonts[font] || 'Poppins, Inter, sans-serif');
42
+ }),
43
+ },
44
+ })),
45
+ }));
46
+ // Mock Phaser
47
+ vi.mock('phaser', () => {
48
+ class MockText {
49
+ text;
50
+ style;
51
+ constructor(_x, _y, text, style) {
52
+ this.text = text;
53
+ this.style = style;
54
+ }
55
+ setText(text) {
56
+ this.text = text;
57
+ return this;
58
+ }
59
+ setOrigin() {
60
+ return this;
61
+ }
62
+ setFontSize(size) {
63
+ this.style['fontSize'] = size;
64
+ return this;
65
+ }
66
+ setFontFamily(family) {
67
+ this.style['fontFamily'] = family;
68
+ return this;
69
+ }
70
+ setColor(color) {
71
+ this.style['color'] = color;
72
+ return this;
73
+ }
74
+ setStroke(color, thickness) {
75
+ this.style['stroke'] = color;
76
+ this.style['strokeThickness'] = thickness;
77
+ return this;
78
+ }
79
+ getBounds() {
80
+ const charWidth = 10;
81
+ const lineHeight = parseInt(this.style['fontSize']) ?? 18;
82
+ return {
83
+ width: this.text.length * charWidth,
84
+ height: lineHeight,
85
+ };
86
+ }
87
+ }
88
+ class MockSprite {
89
+ // eslint-disable-next-line no-unused-vars
90
+ constructor(_x, _y, _texture) { }
91
+ setOrigin() {
92
+ return this;
93
+ }
94
+ setTexture() {
95
+ return this;
96
+ }
97
+ }
98
+ class MockGraphics {
99
+ clear() {
100
+ return this;
101
+ }
102
+ fillStyle() {
103
+ return this;
104
+ }
105
+ fillRoundedRect() {
106
+ return this;
107
+ }
108
+ generateTexture() {
109
+ return this;
110
+ }
111
+ destroy() {
112
+ return this;
113
+ }
114
+ }
115
+ class Container {
116
+ // eslint-disable-next-line no-unused-vars
117
+ constructor(_scene, _x, _y) { }
118
+ add() {
119
+ return this;
120
+ }
121
+ setInteractive() {
122
+ return this;
123
+ }
124
+ on() {
125
+ return this;
126
+ }
127
+ setScale() {
128
+ return this;
129
+ }
130
+ }
131
+ class Scene {
132
+ add = {
133
+ text: vi.fn((x, y, text, style) => new MockText(x, y, text, style)),
134
+ sprite: vi.fn((x, y, texture) => new MockSprite(x, y, texture)),
135
+ graphics: vi.fn(() => new MockGraphics()),
136
+ };
137
+ }
138
+ class BasePlugin {
139
+ constructor() { }
140
+ }
141
+ const GameObjects = { Container };
142
+ const Plugins = { BasePlugin };
143
+ return { GameObjects, Scene, Plugins };
144
+ });
145
+ import { SectionHeader } from './section-header';
146
+ describe('SectionHeader', () => {
147
+ it('should create a SectionHeader instance', () => {
148
+ const scene = new Scene();
149
+ const sectionHeader = new SectionHeader({
150
+ scene,
151
+ x: 100,
152
+ y: 100,
153
+ text: 'Section Title',
154
+ });
155
+ expect(sectionHeader).toBeInstanceOf(SectionHeader);
156
+ });
157
+ it('should create with custom properties', () => {
158
+ const scene = new Scene();
159
+ const sectionHeader = new SectionHeader({
160
+ scene,
161
+ x: 100,
162
+ y: 100,
163
+ text: 'Custom Header',
164
+ textSize: 'xl',
165
+ font: 'display',
166
+ backgroundColor: 'purple-600',
167
+ textColor: 'white',
168
+ strokeColor: 'purple-800',
169
+ borderRadius: 'lg',
170
+ margin: '6',
171
+ });
172
+ expect(sectionHeader).toBeInstanceOf(SectionHeader);
173
+ });
174
+ it('should support method chaining for colors', () => {
175
+ const scene = new Scene();
176
+ const sectionHeader = new SectionHeader({
177
+ scene,
178
+ x: 100,
179
+ y: 100,
180
+ text: 'Test Header',
181
+ });
182
+ const result = sectionHeader
183
+ .setTextColor('white')
184
+ .setStrokeColor('gray-800');
185
+ expect(result).toBe(sectionHeader);
186
+ });
187
+ it('should handle borderRadius full correctly in constructor', () => {
188
+ const scene = new Scene();
189
+ const sectionHeader = new SectionHeader({
190
+ scene,
191
+ x: 100,
192
+ y: 100,
193
+ text: 'Full Radius Header',
194
+ borderRadius: 'full',
195
+ });
196
+ expect(sectionHeader).toBeInstanceOf(SectionHeader);
197
+ });
198
+ it('should handle stroke color customization', () => {
199
+ const scene = new Scene();
200
+ const sectionHeader = new SectionHeader({
201
+ scene,
202
+ x: 100,
203
+ y: 100,
204
+ text: 'Stroke Test',
205
+ strokeColor: 'red-800',
206
+ });
207
+ expect(sectionHeader).toBeInstanceOf(SectionHeader);
208
+ // Test setStrokeColor
209
+ const result = sectionHeader.setStrokeColor('blue-900');
210
+ expect(result).toBe(sectionHeader);
211
+ });
212
+ it('should use default display font and bold style', () => {
213
+ const scene = new Scene();
214
+ const sectionHeader = new SectionHeader({
215
+ scene,
216
+ x: 100,
217
+ y: 100,
218
+ text: 'Default Style',
219
+ });
220
+ expect(sectionHeader).toBeInstanceOf(SectionHeader);
221
+ expect(sectionHeader.headerText).toBeDefined();
222
+ });
223
+ });
224
+ //# sourceMappingURL=section-header.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section-header.spec.js","sourceRoot":"","sources":["../../../src/components/section-header/section-header.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './text-button';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/text-button/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './text-button';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/text-button/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { GameObjects, Scene } from 'phaser';
2
+ import { type ColorKey, type FontKey, type FontSizeKey, type RadiusKey, type SpacingKey } from 'phaser-wind';
3
+ export type TextButtonParams = {
4
+ scene: Scene;
5
+ x: number;
6
+ y: number;
7
+ text: string;
8
+ /** Font size in px (number) or a Phaser Wind font size token (string). Defaults to 'md'. */
9
+ textSize?: FontSizeKey | number;
10
+ /** Font family. Defaults to 'sans'. */
11
+ font?: FontKey | string;
12
+ /** Background color. Defaults to 'blue'. */
13
+ backgroundColor?: ColorKey | string;
14
+ /** Text color. Defaults to 'white'. */
15
+ textColor?: ColorKey | string;
16
+ /** Border radius in px (number) or a Phaser Wind radius token (string). Defaults to 'md'. */
17
+ borderRadius?: RadiusKey | number;
18
+ /** Margin/padding in px (number) or a Phaser Wind spacing token (string). Defaults to 'md'. */
19
+ margin?: SpacingKey | number;
20
+ onClick?: () => void;
21
+ };
22
+ export declare class TextButton extends GameObjects.Container {
23
+ backgroundSprite: GameObjects.Sprite;
24
+ shadowSprite: GameObjects.Sprite;
25
+ buttonText: GameObjects.Text;
26
+ private pw;
27
+ private textSizePx;
28
+ private marginPx;
29
+ private borderRadiusPx;
30
+ private backgroundColorValue;
31
+ private textColorValue;
32
+ private fontValue;
33
+ private textValue;
34
+ constructor({ scene, x, y, text, textSize, font, backgroundColor, textColor, borderRadius, margin, onClick, }: TextButtonParams);
35
+ setText(text: string): this;
36
+ setTextSize(textSize: FontSizeKey | number): this;
37
+ setFont(font: FontKey | string): this;
38
+ setBackgroundColor(color: ColorKey | string): this;
39
+ setTextColor(color: ColorKey | string): this;
40
+ setBorderRadius(borderRadius: RadiusKey | number): this;
41
+ setMargin(margin: SpacingKey | number): this;
42
+ private createButtonText;
43
+ private createShadowSprite;
44
+ private createBackgroundSprite;
45
+ private regenerateSprites;
46
+ private getButtonDimensions;
47
+ private createShadowTexture;
48
+ private createBackgroundTexture;
49
+ private setupContainer;
50
+ private setupInteractivity;
51
+ }
52
+ //# sourceMappingURL=text-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-button.d.ts","sourceRoot":"","sources":["../../../src/components/text-button/text-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AAIrB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAChC,uCAAuC;IACvC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,4CAA4C;IAC5C,eAAe,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACpC,uCAAuC;IACvC,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC9B,6FAA6F;IAC7F,YAAY,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAClC,+FAA+F;IAC/F,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAYF,qBAAa,UAAW,SAAQ,WAAW,CAAC,SAAS;IAC5C,gBAAgB,EAAG,WAAW,CAAC,MAAM,CAAC;IACtC,YAAY,EAAG,WAAW,CAAC,MAAM,CAAC;IAClC,UAAU,EAAG,WAAW,CAAC,IAAI,CAAC;IAErC,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,oBAAoB,CAAU;IACtC,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,SAAS,CAAU;gBAEf,EACV,KAAK,EACL,CAAC,EACD,CAAC,EACD,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,eAAwB,EACxB,SAAmB,EACnB,YAAmB,EACnB,MAAY,EACZ,OAAO,GACR,EAAE,gBAAgB;IAkCZ,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO3B,WAAW,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAUjD,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAUrC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI;IAMlD,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI;IAM5C,eAAe,CAAC,YAAY,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI;IASvD,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IASnD,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,uBAAuB;IAyB/B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,kBAAkB;CA4C3B"}
@@ -0,0 +1,217 @@
1
+ import { GameObjects } from 'phaser';
2
+ import { Color, } from 'phaser-wind';
3
+ import { getPWFromScene } from '../../utils/get-pw-from-scene';
4
+ const durations = {
5
+ click: 100,
6
+ hover: 150,
7
+ };
8
+ const HOVER_SCALE = 1.05;
9
+ const CLICK_OFFSET = 2;
10
+ const SHADOW_OFFSET = 4;
11
+ const SHADOW_OPACITY = 0.15;
12
+ export class TextButton extends GameObjects.Container {
13
+ backgroundSprite;
14
+ shadowSprite;
15
+ buttonText;
16
+ pw;
17
+ textSizePx;
18
+ marginPx;
19
+ borderRadiusPx;
20
+ backgroundColorValue;
21
+ textColorValue;
22
+ fontValue;
23
+ textValue;
24
+ constructor({ scene, x, y, text, textSize, font, backgroundColor = 'blue', textColor = 'white', borderRadius = 'md', margin = '4', onClick, }) {
25
+ super(scene, x, y);
26
+ this.pw = getPWFromScene(scene);
27
+ // Store values
28
+ this.textValue = text;
29
+ this.textSizePx =
30
+ typeof textSize === 'number'
31
+ ? textSize
32
+ : this.pw.fontSize.px(textSize ?? 'md');
33
+ this.marginPx =
34
+ typeof margin === 'number'
35
+ ? margin
36
+ : this.pw.spacing.px(margin ?? '4');
37
+ this.borderRadiusPx =
38
+ typeof borderRadius === 'number'
39
+ ? borderRadius
40
+ : this.pw.radius.px(borderRadius ?? 'md');
41
+ this.backgroundColorValue = Color.rgb(backgroundColor);
42
+ this.textColorValue = Color.rgb(textColor);
43
+ this.fontValue =
44
+ typeof font === 'string'
45
+ ? font
46
+ : this.pw.font.family(font ?? 'primary');
47
+ this.createButtonText(scene);
48
+ this.createShadowSprite(scene);
49
+ this.createBackgroundSprite(scene);
50
+ this.setupContainer();
51
+ this.setupInteractivity(onClick);
52
+ }
53
+ // API Methods
54
+ setText(text) {
55
+ this.textValue = text;
56
+ this.buttonText.setText(text);
57
+ this.regenerateSprites();
58
+ return this;
59
+ }
60
+ setTextSize(textSize) {
61
+ this.textSizePx =
62
+ typeof textSize === 'number'
63
+ ? textSize
64
+ : this.pw.fontSize.px(textSize ?? 'md');
65
+ this.buttonText.setFontSize(this.textSizePx);
66
+ this.regenerateSprites();
67
+ return this;
68
+ }
69
+ setFont(font) {
70
+ this.fontValue =
71
+ typeof font === 'string'
72
+ ? font
73
+ : this.pw.font.family(font ?? 'primary');
74
+ this.buttonText.setFontFamily(this.fontValue);
75
+ this.regenerateSprites();
76
+ return this;
77
+ }
78
+ setBackgroundColor(color) {
79
+ this.backgroundColorValue = Color.rgb(color);
80
+ this.regenerateSprites();
81
+ return this;
82
+ }
83
+ setTextColor(color) {
84
+ this.textColorValue = Color.rgb(color);
85
+ this.buttonText.setColor(this.textColorValue);
86
+ return this;
87
+ }
88
+ setBorderRadius(borderRadius) {
89
+ this.borderRadiusPx =
90
+ typeof borderRadius === 'number'
91
+ ? borderRadius
92
+ : this.pw.radius.px(borderRadius ?? 'md');
93
+ this.regenerateSprites();
94
+ return this;
95
+ }
96
+ setMargin(margin) {
97
+ this.marginPx =
98
+ typeof margin === 'number'
99
+ ? margin
100
+ : this.pw.spacing.px(margin ?? '4');
101
+ this.regenerateSprites();
102
+ return this;
103
+ }
104
+ createButtonText(scene) {
105
+ this.buttonText = scene.add.text(0, 0, this.textValue, {
106
+ fontSize: `${this.textSizePx}px`,
107
+ fontFamily: this.fontValue,
108
+ color: this.textColorValue,
109
+ });
110
+ this.buttonText.setOrigin(0.5, 0.5);
111
+ }
112
+ createShadowSprite(scene) {
113
+ const shadowTexture = this.createShadowTexture(scene);
114
+ this.shadowSprite = scene.add.sprite(0, SHADOW_OFFSET, shadowTexture);
115
+ this.shadowSprite.setOrigin(0.5, 0.5);
116
+ }
117
+ createBackgroundSprite(scene) {
118
+ const backgroundTexture = this.createBackgroundTexture(scene);
119
+ this.backgroundSprite = scene.add.sprite(0, 0, backgroundTexture);
120
+ this.backgroundSprite.setOrigin(0.5, 0.5);
121
+ }
122
+ regenerateSprites() {
123
+ // Update text bounds after text/font changes
124
+ this.buttonText.setText(this.textValue);
125
+ // Regenerate textures
126
+ const shadowTexture = this.createShadowTexture(this.scene);
127
+ const backgroundTexture = this.createBackgroundTexture(this.scene);
128
+ this.shadowSprite.setTexture(shadowTexture);
129
+ this.backgroundSprite.setTexture(backgroundTexture);
130
+ }
131
+ getButtonDimensions() {
132
+ const textBounds = this.buttonText.getBounds();
133
+ const width = textBounds.width + this.marginPx * 2;
134
+ const height = textBounds.height + this.marginPx * 2;
135
+ return { width, height };
136
+ }
137
+ createShadowTexture(scene) {
138
+ const { width, height } = this.getButtonDimensions();
139
+ const textureKey = `textButton_shadow_${this.backgroundColorValue}_${this.borderRadiusPx}_${width}_${height}`;
140
+ // Add some padding for shadow
141
+ const shadowPadding = 8;
142
+ const textureWidth = width + shadowPadding * 2;
143
+ const textureHeight = height + shadowPadding * 2;
144
+ const graphics = scene.add.graphics();
145
+ // Limit radius to maximum possible for the button dimensions
146
+ const maxRadius = Math.min(width / 2, height / 2);
147
+ const effectiveRadius = Math.min(this.borderRadiusPx, maxRadius);
148
+ // Shadow
149
+ graphics.fillStyle(Color.hex('black'), SHADOW_OPACITY);
150
+ graphics.fillRoundedRect(shadowPadding, shadowPadding + SHADOW_OFFSET, width, height, effectiveRadius);
151
+ graphics.generateTexture(textureKey, textureWidth, textureHeight);
152
+ graphics.destroy();
153
+ return textureKey;
154
+ }
155
+ createBackgroundTexture(scene) {
156
+ const { width, height } = this.getButtonDimensions();
157
+ const textureKey = `textButton_bg_${this.backgroundColorValue}_${this.borderRadiusPx}_${width}_${height}`;
158
+ // Add some padding for texture
159
+ const padding = 8;
160
+ const textureWidth = width + padding * 2;
161
+ const textureHeight = height + padding * 2;
162
+ const graphics = scene.add.graphics();
163
+ // Limit radius to maximum possible for the button dimensions
164
+ const maxRadius = Math.min(width / 2, height / 2);
165
+ const effectiveRadius = Math.min(this.borderRadiusPx, maxRadius);
166
+ // Main background
167
+ graphics.fillStyle(Color.hex(this.backgroundColorValue), 1);
168
+ graphics.fillRoundedRect(padding, padding, width, height, effectiveRadius);
169
+ graphics.generateTexture(textureKey, textureWidth, textureHeight);
170
+ graphics.destroy();
171
+ return textureKey;
172
+ }
173
+ setupContainer() {
174
+ this.add([this.shadowSprite, this.backgroundSprite, this.buttonText]);
175
+ }
176
+ setupInteractivity(onClick) {
177
+ this.backgroundSprite.setInteractive({ useHandCursor: true });
178
+ // Hover effects
179
+ this.backgroundSprite.on('pointerover', () => {
180
+ this.scene.tweens.add({
181
+ targets: this,
182
+ scaleX: HOVER_SCALE,
183
+ scaleY: HOVER_SCALE,
184
+ duration: durations.hover,
185
+ ease: 'Back.easeOut',
186
+ });
187
+ });
188
+ this.backgroundSprite.on('pointerout', () => {
189
+ this.scene.tweens.add({
190
+ targets: this,
191
+ scaleX: 1,
192
+ scaleY: 1,
193
+ duration: durations.hover,
194
+ ease: 'Back.easeOut',
195
+ });
196
+ });
197
+ // Click effects
198
+ this.backgroundSprite.on('pointerdown', () => {
199
+ this.scene.tweens.add({
200
+ targets: [this.backgroundSprite, this.buttonText],
201
+ y: CLICK_OFFSET,
202
+ duration: durations.click,
203
+ ease: 'Linear',
204
+ });
205
+ });
206
+ this.backgroundSprite.on('pointerup', () => {
207
+ this.scene.tweens.add({
208
+ targets: [this.backgroundSprite, this.buttonText],
209
+ y: 0,
210
+ duration: durations.click,
211
+ ease: 'Linear',
212
+ });
213
+ onClick?.();
214
+ });
215
+ }
216
+ }
217
+ //# sourceMappingURL=text-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-button.js","sourceRoot":"","sources":["../../../src/components/text-button/text-button.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=text-button.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-button.spec.d.ts","sourceRoot":"","sources":["../../../src/components/text-button/text-button.spec.ts"],"names":[],"mappings":""}