hudini 0.17.2 → 0.18.1

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 (105) hide show
  1. package/dist/components/card/card.d.ts +34 -9
  2. package/dist/components/card/card.d.ts.map +1 -1
  3. package/dist/components/card/card.js +118 -49
  4. package/dist/components/card/card.js.map +1 -1
  5. package/dist/components/card/card.spec.js +28 -1
  6. package/dist/components/card/card.spec.js.map +1 -1
  7. package/dist/components/circular-progress/circular-progress.d.ts +4 -4
  8. package/dist/components/circular-progress/circular-progress.d.ts.map +1 -1
  9. package/dist/components/circular-progress/circular-progress.js +9 -8
  10. package/dist/components/circular-progress/circular-progress.js.map +1 -1
  11. package/dist/components/circular-progress/circular-progress.spec.js +4 -4
  12. package/dist/components/circular-progress/circular-progress.spec.js.map +1 -1
  13. package/dist/components/container-interactive/container-interactive.d.ts +65 -0
  14. package/dist/components/container-interactive/container-interactive.d.ts.map +1 -0
  15. package/dist/components/container-interactive/container-interactive.js +99 -0
  16. package/dist/components/container-interactive/container-interactive.js.map +1 -0
  17. package/dist/components/container-interactive/index.d.ts +2 -0
  18. package/dist/components/container-interactive/index.d.ts.map +1 -0
  19. package/dist/components/container-interactive/index.js +2 -0
  20. package/dist/components/container-interactive/index.js.map +1 -0
  21. package/dist/components/flat-icon-button/flat-icon-button.d.ts +3 -0
  22. package/dist/components/flat-icon-button/flat-icon-button.d.ts.map +1 -1
  23. package/dist/components/flat-icon-button/flat-icon-button.js +111 -20
  24. package/dist/components/flat-icon-button/flat-icon-button.js.map +1 -1
  25. package/dist/components/flat-section-header/flat-section-header.d.ts +143 -0
  26. package/dist/components/flat-section-header/flat-section-header.d.ts.map +1 -0
  27. package/dist/components/flat-section-header/flat-section-header.js +275 -0
  28. package/dist/components/flat-section-header/flat-section-header.js.map +1 -0
  29. package/dist/components/flat-section-header/flat-section-header.spec.d.ts +2 -0
  30. package/dist/components/flat-section-header/flat-section-header.spec.d.ts.map +1 -0
  31. package/dist/components/flat-section-header/flat-section-header.spec.js +255 -0
  32. package/dist/components/flat-section-header/flat-section-header.spec.js.map +1 -0
  33. package/dist/components/flat-section-header/index.d.ts +2 -0
  34. package/dist/components/flat-section-header/index.d.ts.map +1 -0
  35. package/dist/components/flat-section-header/index.js +2 -0
  36. package/dist/components/flat-section-header/index.js.map +1 -0
  37. package/dist/components/flat-text-button/flat-text-button.d.ts +165 -0
  38. package/dist/components/flat-text-button/flat-text-button.d.ts.map +1 -0
  39. package/dist/components/flat-text-button/flat-text-button.js +325 -0
  40. package/dist/components/flat-text-button/flat-text-button.js.map +1 -0
  41. package/dist/components/flat-text-button/flat-text-button.spec.d.ts +2 -0
  42. package/dist/components/flat-text-button/flat-text-button.spec.d.ts.map +1 -0
  43. package/dist/components/flat-text-button/flat-text-button.spec.js +243 -0
  44. package/dist/components/flat-text-button/flat-text-button.spec.js.map +1 -0
  45. package/dist/components/flat-text-button/index.d.ts +2 -0
  46. package/dist/components/flat-text-button/index.d.ts.map +1 -0
  47. package/dist/components/flat-text-button/index.js +2 -0
  48. package/dist/components/flat-text-button/index.js.map +1 -0
  49. package/dist/components/icon-button/icon-button.d.ts +11 -3
  50. package/dist/components/icon-button/icon-button.d.ts.map +1 -1
  51. package/dist/components/icon-button/icon-button.js +126 -71
  52. package/dist/components/icon-button/icon-button.js.map +1 -1
  53. package/dist/components/index.d.ts +4 -0
  54. package/dist/components/index.d.ts.map +1 -1
  55. package/dist/components/index.js +4 -0
  56. package/dist/components/index.js.map +1 -1
  57. package/dist/components/panel/panel.d.ts +0 -1
  58. package/dist/components/panel/panel.d.ts.map +1 -1
  59. package/dist/components/panel/panel.js +7 -10
  60. package/dist/components/panel/panel.js.map +1 -1
  61. package/dist/components/section-header/section-header.d.ts +33 -39
  62. package/dist/components/section-header/section-header.d.ts.map +1 -1
  63. package/dist/components/section-header/section-header.js +124 -155
  64. package/dist/components/section-header/section-header.js.map +1 -1
  65. package/dist/components/section-header/section-header.spec.js +57 -17
  66. package/dist/components/section-header/section-header.spec.js.map +1 -1
  67. package/dist/components/text/index.d.ts +2 -0
  68. package/dist/components/text/index.d.ts.map +1 -0
  69. package/dist/components/text/index.js +2 -0
  70. package/dist/components/text/index.js.map +1 -0
  71. package/dist/components/text/text.d.ts +45 -0
  72. package/dist/components/text/text.d.ts.map +1 -0
  73. package/dist/components/text/text.js +35 -0
  74. package/dist/components/text/text.js.map +1 -0
  75. package/dist/components/text-button/text-button.d.ts +26 -23
  76. package/dist/components/text-button/text-button.d.ts.map +1 -1
  77. package/dist/components/text-button/text-button.js +114 -88
  78. package/dist/components/text-button/text-button.js.map +1 -1
  79. package/dist/components/text-button/text-button.spec.js +108 -9
  80. package/dist/components/text-button/text-button.spec.js.map +1 -1
  81. package/dist/hudini.js +4220 -467
  82. package/dist/hudini.min.js +1 -1
  83. package/dist/index.d.ts +1 -0
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +1 -0
  86. package/dist/index.js.map +1 -1
  87. package/dist/loaders/index.d.ts +2 -0
  88. package/dist/loaders/index.d.ts.map +1 -0
  89. package/dist/loaders/index.js +2 -0
  90. package/dist/loaders/index.js.map +1 -0
  91. package/dist/loaders/load-fonts.d.ts +8 -0
  92. package/dist/loaders/load-fonts.d.ts.map +1 -0
  93. package/dist/loaders/load-fonts.js +41 -0
  94. package/dist/loaders/load-fonts.js.map +1 -0
  95. package/dist/test-setup.js +8 -2
  96. package/dist/test-setup.js.map +1 -1
  97. package/dist/utils/color-variants.d.ts +43 -0
  98. package/dist/utils/color-variants.d.ts.map +1 -0
  99. package/dist/utils/color-variants.js +72 -0
  100. package/dist/utils/color-variants.js.map +1 -0
  101. package/dist/utils/index.d.ts +1 -0
  102. package/dist/utils/index.d.ts.map +1 -1
  103. package/dist/utils/index.js +1 -0
  104. package/dist/utils/index.js.map +1 -1
  105. package/package.json +3 -3
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Parameters for creating a {@link Text} object.
3
+ */
4
+ export type TextParams = {
5
+ /**
6
+ * The Phaser scene where the text will be added.
7
+ */
8
+ scene: Phaser.Scene;
9
+ /**
10
+ * The X coordinate for the text object.
11
+ */
12
+ x: number;
13
+ /**
14
+ * The Y coordinate for the text object.
15
+ */
16
+ y: number;
17
+ /**
18
+ * The displayed string for the text object.
19
+ */
20
+ text: string;
21
+ /**
22
+ * (Optional) Font size in pixels.
23
+ * @defaultValue 16
24
+ */
25
+ size?: number;
26
+ /**
27
+ * (Optional) The font family to use.
28
+ * @defaultValue 'monospace'
29
+ */
30
+ fontFamily?: string;
31
+ };
32
+ /**
33
+ * A simple customizable text component using Phaser's GameObjects.Text.
34
+ *
35
+ * Applies default shadow, stroke, and color styles.
36
+ */
37
+ export declare class Text extends Phaser.GameObjects.Text {
38
+ /**
39
+ * Creates a new {@link Text} object.
40
+ *
41
+ * @param params - Parameters for the text object.
42
+ */
43
+ constructor({ scene, x, y, text, size, fontFamily, }: TextParams);
44
+ }
45
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/components/text/text.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;IACpB;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IACV;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IACV;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,IAAK,SAAQ,MAAM,CAAC,WAAW,CAAC,IAAI;IAC/C;;;;OAIG;gBACS,EACV,KAAK,EACL,CAAC,EACD,CAAC,EACD,IAAI,EACJ,IAAwB,EACxB,UAAyB,GAC1B,EAAE,UAAU;CAgBd"}
@@ -0,0 +1,35 @@
1
+ import { Color } from 'hudini';
2
+ /**
3
+ * The default font size for the Text component.
4
+ * @constant
5
+ */
6
+ const DEFAULT_FONT_SIZE = 22;
7
+ /**
8
+ * A simple customizable text component using Phaser's GameObjects.Text.
9
+ *
10
+ * Applies default shadow, stroke, and color styles.
11
+ */
12
+ export class Text extends Phaser.GameObjects.Text {
13
+ /**
14
+ * Creates a new {@link Text} object.
15
+ *
16
+ * @param params - Parameters for the text object.
17
+ */
18
+ constructor({ scene, x, y, text, size = DEFAULT_FONT_SIZE, fontFamily = 'Bebas Neue', }) {
19
+ super(scene, x, y, text, {
20
+ font: `${size}px "${fontFamily}"`,
21
+ color: Color.white(),
22
+ stroke: Color.black(),
23
+ strokeThickness: 2,
24
+ shadow: {
25
+ offsetX: 0,
26
+ offsetY: 3,
27
+ color: Color.black(),
28
+ blur: 0,
29
+ stroke: true,
30
+ fill: true,
31
+ },
32
+ });
33
+ }
34
+ }
35
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/components/text/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B;;;GAGG;AACH,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAkC7B;;;;GAIG;AACH,MAAM,OAAO,IAAK,SAAQ,MAAM,CAAC,WAAW,CAAC,IAAI;IAC/C;;;;OAIG;IACH,YAAY,EACV,KAAK,EACL,CAAC,EACD,CAAC,EACD,IAAI,EACJ,IAAI,GAAG,iBAAiB,EACxB,UAAU,GAAG,YAAY,GACd;QACX,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;YACvB,IAAI,EAAE,GAAG,IAAI,OAAO,UAAU,GAAG;YACjC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;YACpB,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE;YACrB,eAAe,EAAE,CAAC;YAClB,MAAM,EAAE;gBACN,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;gBACpB,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,IAAI;aACX;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
1
  import { GameObjects, Scene } from 'phaser';
2
2
  import { type ColorKey, type FontKey, type FontSizeKey, type RadiusKey, type SpacingKey } from 'phaser-wind';
3
+ import { ContainerInteractive } from '../container-interactive';
3
4
  /**
4
5
  * Parameters for creating a TextButton.
5
6
  */
@@ -24,7 +25,7 @@ export type TextButtonParams = {
24
25
  /**
25
26
  * Background color. Defaults to 'blue'.
26
27
  */
27
- backgroundColor?: ColorKey | string;
28
+ color?: ColorKey | string;
28
29
  /**
29
30
  * Text color. Defaults to 'white'.
30
31
  */
@@ -35,10 +36,10 @@ export type TextButtonParams = {
35
36
  */
36
37
  borderRadius?: RadiusKey | number;
37
38
  /**
38
- * Margin/padding in px (number) or a Phaser Wind spacing token (string).
39
+ * Padding in px (number) or a Phaser Wind spacing token (string).
39
40
  * Defaults to 'md'.
40
41
  */
41
- margin?: SpacingKey | number;
42
+ padding?: SpacingKey | number;
42
43
  /**
43
44
  * Callback function for click event.
44
45
  */
@@ -48,26 +49,28 @@ export type TextButtonParams = {
48
49
  * A customizable text button component for Phaser, supporting auto-sizing,
49
50
  * design tokens, and interactive effects.
50
51
  */
51
- export declare class TextButton extends GameObjects.Container {
52
+ export declare class TextButton extends ContainerInteractive<Phaser.GameObjects.Sprite> {
52
53
  /** The background sprite of the button. */
53
54
  backgroundSprite: GameObjects.Sprite;
54
- /** The shadow sprite of the button. */
55
- shadowSprite: GameObjects.Sprite;
55
+ /** The white border sprite of the button. */
56
+ whiteBorderSprite: GameObjects.Sprite;
56
57
  /** The text object of the button. */
57
58
  buttonText: GameObjects.Text;
58
59
  private pw;
59
60
  private fontSizePx;
60
- private marginPx;
61
+ private paddingPx;
61
62
  private borderRadiusPx;
62
- private backgroundColorValue;
63
+ private colorButton;
64
+ private lightColorButton;
65
+ private darkColorButton;
63
66
  private textColorValue;
64
- private fontValue;
67
+ private fontFamily;
65
68
  private textValue;
66
69
  /**
67
70
  * Creates a new TextButton instance.
68
71
  * @param params TextButtonParams
69
72
  */
70
- constructor({ scene, x, y, text, fontSize, font, backgroundColor, textColor, borderRadius, margin, onClick, }: TextButtonParams);
73
+ constructor({ scene, x, y, text, fontSize, font, color, textColor, borderRadius, padding, onClick, }: TextButtonParams);
71
74
  /**
72
75
  * Sets the button text.
73
76
  * @param text The new text.
@@ -91,7 +94,7 @@ export declare class TextButton extends GameObjects.Container {
91
94
  * @param color Color as token or CSS string.
92
95
  * @returns This TextButton instance.
93
96
  */
94
- setBackgroundColor(color: ColorKey | string): this;
97
+ setColor(color: ColorKey | string): this;
95
98
  /**
96
99
  * Sets the text color.
97
100
  * @param color Color as token or CSS string.
@@ -105,21 +108,21 @@ export declare class TextButton extends GameObjects.Container {
105
108
  */
106
109
  setBorderRadius(borderRadius: RadiusKey | number): this;
107
110
  /**
108
- * Sets the margin (padding).
109
- * @param margin Margin in px or token.
111
+ * Sets the padding.
112
+ * @param padding Padding in px or token.
110
113
  * @returns This TextButton instance.
111
114
  */
112
- setMargin(margin: SpacingKey | number): this;
115
+ setPadding(padding: SpacingKey | number): this;
113
116
  /**
114
117
  * Creates the button text GameObject.
115
118
  * @param scene Phaser scene.
116
119
  */
117
120
  private createButtonText;
118
121
  /**
119
- * Creates the shadow sprite for the button.
122
+ * Creates the white border sprite for the button.
120
123
  * @param scene Phaser scene.
121
124
  */
122
- private createShadowSprite;
125
+ private createWhiteBorderSprite;
123
126
  /**
124
127
  * Creates the background sprite for the button.
125
128
  * @param scene Phaser scene.
@@ -135,17 +138,22 @@ export declare class TextButton extends GameObjects.Container {
135
138
  */
136
139
  private getButtonDimensions;
137
140
  /**
138
- * Creates a texture for the button's shadow.
141
+ * Creates a texture for the button's white border.
139
142
  * @param scene Phaser scene.
140
143
  * @returns The texture key.
141
144
  */
142
- private createShadowTexture;
145
+ private createWhiteBorderTexture;
143
146
  /**
144
147
  * Creates a texture for the button's background.
145
148
  * @param scene Phaser scene.
146
149
  * @returns The texture key.
147
150
  */
148
151
  private createBackgroundTexture;
152
+ /**
153
+ * Draws gradient using white/black overlays on CSS color.
154
+ * Uses a mask to ensure overlays respect the button's rounded corners.
155
+ */
156
+ private drawCssColorGradient;
149
157
  /**
150
158
  * Adds the button's visual elements to the container.
151
159
  */
@@ -155,10 +163,5 @@ export declare class TextButton extends GameObjects.Container {
155
163
  * @param onClick Optional click callback.
156
164
  */
157
165
  private setupInteractivity;
158
- /**
159
- * Gets the interactive sprite of the icon button
160
- * @returns The interactive sprite
161
- */
162
- get interactive(): Pick<GameObjects.Sprite, 'on' | 'off' | 'setInteractive' | 'setInteractive' | 'once'>;
163
166
  }
164
167
  //# sourceMappingURL=text-button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text-button.d.ts","sourceRoot":"","sources":["../../../src/components/text-button/text-button.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-button.d.ts","sourceRoot":"","sources":["../../../src/components/text-button/text-button.ts"],"names":[],"mappings":"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"}
@@ -1,39 +1,50 @@
1
- import { GameObjects } from 'phaser';
2
1
  import { Color, } from 'phaser-wind';
2
+ import { getColorVariant } from '../../utils/color-variants';
3
3
  import { getPWFromScene } from '../../utils/get-pw-from-scene';
4
+ import { ContainerInteractive } from '../container-interactive';
5
+ import { Text } from '../text';
4
6
  const durations = {
5
- click: 100,
6
- hover: 150,
7
+ click: 60,
8
+ hover: 100,
7
9
  };
8
10
  const HOVER_SCALE = 1.05;
9
- const CLICK_OFFSET = 2;
10
- const SHADOW_OFFSET = 4;
11
- const SHADOW_OPACITY = 0.15;
11
+ const POINTER_DOWN_SCALE = 0.95;
12
+ const TOKEN_LIGHTER_DIFF = -100;
13
+ const TOKEN_DARKER_DIFF = 100;
14
+ const COLOR_LIGHTER_AMOUNT = 30;
15
+ const COLOR_DARKER_AMOUNT = -30;
16
+ // Border constants
17
+ const BLACK_BORDER_THICKNESS = 2;
18
+ const WHITE_BORDER_EXTRA_PIXELS_PER_SIDE = 3;
19
+ const WHITE_BORDER_TOTAL_EXTRA_PIXELS = WHITE_BORDER_EXTRA_PIXELS_PER_SIDE * 2; // 6 pixels total
20
+ const WHITE_BORDER_RADIUS_EXTRA = 2;
12
21
  /**
13
22
  * A customizable text button component for Phaser, supporting auto-sizing,
14
23
  * design tokens, and interactive effects.
15
24
  */
16
- export class TextButton extends GameObjects.Container {
25
+ export class TextButton extends ContainerInteractive {
17
26
  /** The background sprite of the button. */
18
27
  backgroundSprite;
19
- /** The shadow sprite of the button. */
20
- shadowSprite;
28
+ /** The white border sprite of the button. */
29
+ whiteBorderSprite;
21
30
  /** The text object of the button. */
22
31
  buttonText;
23
32
  pw;
24
33
  fontSizePx;
25
- marginPx;
34
+ paddingPx;
26
35
  borderRadiusPx;
27
- backgroundColorValue;
36
+ colorButton;
37
+ lightColorButton;
38
+ darkColorButton;
28
39
  textColorValue;
29
- fontValue;
40
+ fontFamily;
30
41
  textValue;
31
42
  /**
32
43
  * Creates a new TextButton instance.
33
44
  * @param params TextButtonParams
34
45
  */
35
- constructor({ scene, x, y, text, fontSize = 'base', font, backgroundColor = 'blue', textColor = 'white', borderRadius = 'md', margin = '4', onClick, }) {
36
- super(scene, x, y);
46
+ constructor({ scene, x, y, text, fontSize = 'lg', font, color = 'blue-500', textColor = 'white', borderRadius = 'md', padding = '4', onClick, }) {
47
+ super({ scene, x, y });
37
48
  this.pw = getPWFromScene(scene);
38
49
  // Store values
39
50
  this.textValue = text;
@@ -41,27 +52,26 @@ export class TextButton extends GameObjects.Container {
41
52
  typeof fontSize === 'number'
42
53
  ? fontSize
43
54
  : this.pw.fontSize.px(fontSize ?? 'md');
44
- this.marginPx =
45
- typeof margin === 'number'
46
- ? margin
47
- : this.pw.spacing.px(margin ?? '4');
55
+ this.paddingPx =
56
+ typeof padding === 'number'
57
+ ? padding
58
+ : this.pw.spacing.px(padding ?? '4');
48
59
  this.borderRadiusPx =
49
60
  typeof borderRadius === 'number'
50
61
  ? borderRadius
51
62
  : this.pw.radius.px(borderRadius ?? 'md');
52
- this.backgroundColorValue = Color.rgb(backgroundColor);
63
+ this.colorButton = Color.rgb(color);
64
+ this.lightColorButton = getColorVariant(color, TOKEN_LIGHTER_DIFF, COLOR_LIGHTER_AMOUNT);
65
+ this.darkColorButton = getColorVariant(color, TOKEN_DARKER_DIFF, COLOR_DARKER_AMOUNT);
53
66
  this.textColorValue = Color.rgb(textColor);
54
- this.fontValue =
55
- typeof font === 'string'
56
- ? font
57
- : this.pw.font.family(font ?? 'primary');
67
+ this.fontFamily = font ? (typeof font === 'string' ? font : this.pw.font.family(font)) : 'Bebas Neue';
58
68
  this.createButtonText(scene);
59
- this.createShadowSprite(scene);
69
+ this.createWhiteBorderSprite(scene);
60
70
  this.createBackgroundSprite(scene);
61
71
  this.setupContainer();
62
72
  this.setupInteractivity(onClick);
73
+ this.hitArea = this.backgroundSprite;
63
74
  }
64
- // API Methods
65
75
  /**
66
76
  * Sets the button text.
67
77
  * @param text The new text.
@@ -93,11 +103,11 @@ export class TextButton extends GameObjects.Container {
93
103
  * @returns This TextButton instance.
94
104
  */
95
105
  setFont(font) {
96
- this.fontValue =
106
+ this.fontFamily =
97
107
  typeof font === 'string'
98
108
  ? font
99
109
  : this.pw.font.family(font ?? 'primary');
100
- this.buttonText.setFontFamily(this.fontValue);
110
+ this.buttonText.setFontFamily(this.fontFamily);
101
111
  this.regenerateSprites();
102
112
  return this;
103
113
  }
@@ -106,8 +116,10 @@ export class TextButton extends GameObjects.Container {
106
116
  * @param color Color as token or CSS string.
107
117
  * @returns This TextButton instance.
108
118
  */
109
- setBackgroundColor(color) {
110
- this.backgroundColorValue = Color.rgb(color);
119
+ setColor(color) {
120
+ this.colorButton = Color.rgb(color);
121
+ this.lightColorButton = getColorVariant(color, TOKEN_LIGHTER_DIFF, COLOR_LIGHTER_AMOUNT);
122
+ this.darkColorButton = getColorVariant(color, TOKEN_DARKER_DIFF, COLOR_DARKER_AMOUNT);
111
123
  this.regenerateSprites();
112
124
  return this;
113
125
  }
@@ -135,15 +147,15 @@ export class TextButton extends GameObjects.Container {
135
147
  return this;
136
148
  }
137
149
  /**
138
- * Sets the margin (padding).
139
- * @param margin Margin in px or token.
150
+ * Sets the padding.
151
+ * @param padding Padding in px or token.
140
152
  * @returns This TextButton instance.
141
153
  */
142
- setMargin(margin) {
143
- this.marginPx =
144
- typeof margin === 'number'
145
- ? margin
146
- : this.pw.spacing.px(margin ?? '4');
154
+ setPadding(padding) {
155
+ this.paddingPx =
156
+ typeof padding === 'number'
157
+ ? padding
158
+ : this.pw.spacing.px(padding ?? '4');
147
159
  this.regenerateSprites();
148
160
  return this;
149
161
  }
@@ -152,21 +164,24 @@ export class TextButton extends GameObjects.Container {
152
164
  * @param scene Phaser scene.
153
165
  */
154
166
  createButtonText(scene) {
155
- this.buttonText = scene.add.text(0, 0, this.textValue, {
156
- fontSize: `${this.fontSizePx}px`,
157
- fontFamily: this.fontValue,
158
- color: this.textColorValue,
167
+ this.buttonText = new Text({
168
+ scene,
169
+ x: 0,
170
+ y: 0,
171
+ text: this.textValue,
172
+ size: this.fontSizePx,
173
+ fontFamily: this.fontFamily,
159
174
  });
160
175
  this.buttonText.setOrigin(0.5, 0.5);
161
176
  }
162
177
  /**
163
- * Creates the shadow sprite for the button.
178
+ * Creates the white border sprite for the button.
164
179
  * @param scene Phaser scene.
165
180
  */
166
- createShadowSprite(scene) {
167
- const shadowTexture = this.createShadowTexture(scene);
168
- this.shadowSprite = scene.add.sprite(0, SHADOW_OFFSET, shadowTexture);
169
- this.shadowSprite.setOrigin(0.5, 0.5);
181
+ createWhiteBorderSprite(scene) {
182
+ const whiteBorderTexture = this.createWhiteBorderTexture(scene);
183
+ this.whiteBorderSprite = scene.add.sprite(0, 0, whiteBorderTexture);
184
+ this.whiteBorderSprite.setOrigin(0.5, 0.5);
170
185
  }
171
186
  /**
172
187
  * Creates the background sprite for the button.
@@ -184,9 +199,9 @@ export class TextButton extends GameObjects.Container {
184
199
  // Update text bounds after text/font changes
185
200
  this.buttonText.setText(this.textValue);
186
201
  // Regenerate textures
187
- const shadowTexture = this.createShadowTexture(this.scene);
202
+ const whiteBorderTexture = this.createWhiteBorderTexture(this.scene);
188
203
  const backgroundTexture = this.createBackgroundTexture(this.scene);
189
- this.shadowSprite.setTexture(shadowTexture);
204
+ this.whiteBorderSprite.setTexture(whiteBorderTexture);
190
205
  this.backgroundSprite.setTexture(backgroundTexture);
191
206
  }
192
207
  /**
@@ -195,29 +210,32 @@ export class TextButton extends GameObjects.Container {
195
210
  */
196
211
  getButtonDimensions() {
197
212
  const textBounds = this.buttonText.getBounds();
198
- const width = textBounds.width + this.marginPx * 2;
199
- const height = textBounds.height + this.marginPx * 2;
213
+ const width = textBounds.width + this.paddingPx * 2;
214
+ const height = textBounds.height + this.paddingPx * 2;
200
215
  return { width, height };
201
216
  }
202
217
  /**
203
- * Creates a texture for the button's shadow.
218
+ * Creates a texture for the button's white border.
204
219
  * @param scene Phaser scene.
205
220
  * @returns The texture key.
206
221
  */
207
- createShadowTexture(scene) {
222
+ createWhiteBorderTexture(scene) {
208
223
  const { width, height } = this.getButtonDimensions();
209
- const textureKey = `textButton_shadow_${this.backgroundColorValue}_${this.borderRadiusPx}_${width}_${height}`;
210
- // Add some padding for shadow
211
- const shadowPadding = 8;
212
- const textureWidth = width + shadowPadding * 2;
213
- const textureHeight = height + shadowPadding * 2;
224
+ const textureKey = `textButton_whiteBorder_${this.borderRadiusPx}_${width}_${height}`;
225
+ // White border is larger on each side
226
+ const borderWidth = width + WHITE_BORDER_TOTAL_EXTRA_PIXELS;
227
+ const borderHeight = height + WHITE_BORDER_TOTAL_EXTRA_PIXELS;
228
+ // Add some padding for texture
229
+ const padding = 8;
230
+ const textureWidth = borderWidth + padding * 2;
231
+ const textureHeight = borderHeight + padding * 2;
214
232
  const graphics = scene.add.graphics();
215
- // Limit radius to maximum possible for the button dimensions
216
- const maxRadius = Math.min(width / 2, height / 2);
217
- const effectiveRadius = Math.min(this.borderRadiusPx, maxRadius);
218
- // Shadow
219
- graphics.fillStyle(Color.hex('black'), SHADOW_OPACITY);
220
- graphics.fillRoundedRect(shadowPadding, shadowPadding + SHADOW_OFFSET, width, height, effectiveRadius);
233
+ const maxRadius = Math.floor(Math.min(borderWidth / 2, borderHeight / 2));
234
+ const effectiveRadius = Math.min(this.borderRadiusPx + WHITE_BORDER_RADIUS_EXTRA, maxRadius);
235
+ const finalRadius = Math.max(0, effectiveRadius);
236
+ // White border (outer)
237
+ graphics.fillStyle(Color.hex('white'), 1);
238
+ graphics.fillRoundedRect(padding, padding, borderWidth, borderHeight, finalRadius);
221
239
  graphics.generateTexture(textureKey, textureWidth, textureHeight);
222
240
  graphics.destroy();
223
241
  return textureKey;
@@ -229,27 +247,46 @@ export class TextButton extends GameObjects.Container {
229
247
  */
230
248
  createBackgroundTexture(scene) {
231
249
  const { width, height } = this.getButtonDimensions();
232
- const textureKey = `textButton_bg_${this.backgroundColorValue}_${this.borderRadiusPx}_${width}_${height}`;
250
+ const textureKey = `textButton_bg_${this.colorButton}_${this.borderRadiusPx}_${width}_${height}`;
233
251
  // Add some padding for texture
234
252
  const padding = 8;
235
253
  const textureWidth = width + padding * 2;
236
254
  const textureHeight = height + padding * 2;
237
255
  const graphics = scene.add.graphics();
238
- // Limit radius to maximum possible for the button dimensions
239
- const maxRadius = Math.min(width / 2, height / 2);
256
+ const maxRadius = Math.floor(Math.min(width / 2, height / 2));
240
257
  const effectiveRadius = Math.min(this.borderRadiusPx, maxRadius);
241
- // Main background
242
- graphics.fillStyle(Color.hex(this.backgroundColorValue), 1);
243
- graphics.fillRoundedRect(padding, padding, width, height, effectiveRadius);
258
+ const finalRadius = Math.max(0, effectiveRadius);
259
+ this.drawCssColorGradient(graphics, padding, width, height, finalRadius);
244
260
  graphics.generateTexture(textureKey, textureWidth, textureHeight);
245
261
  graphics.destroy();
246
262
  return textureKey;
247
263
  }
264
+ /**
265
+ * Draws gradient using white/black overlays on CSS color.
266
+ * Uses a mask to ensure overlays respect the button's rounded corners.
267
+ */
268
+ drawCssColorGradient(graphics, padding, width, height, effectiveRadius) {
269
+ // Main background
270
+ graphics.fillStyle(Color.hex(this.colorButton), 1);
271
+ graphics.fillRoundedRect(padding, padding, width, height, effectiveRadius);
272
+ const PERCENT_HEIGHT = 0.15;
273
+ const overlayHeight = height * PERCENT_HEIGHT;
274
+ const topOverlayRadius = Math.min(effectiveRadius, overlayHeight / 2);
275
+ graphics.fillStyle(this.lightColorButton, 1);
276
+ graphics.fillRoundedRect(padding, padding, width, overlayHeight, topOverlayRadius);
277
+ // Bottom darker overlay
278
+ const bottomOverlayRadius = Math.min(effectiveRadius, overlayHeight / 2);
279
+ graphics.fillStyle(this.darkColorButton, 1);
280
+ graphics.fillRoundedRect(padding, padding + height - overlayHeight, width, overlayHeight, bottomOverlayRadius);
281
+ // Black stroke border
282
+ graphics.lineStyle(BLACK_BORDER_THICKNESS, Color.hex('black'), 1);
283
+ graphics.strokeRoundedRect(padding, padding, width, height, effectiveRadius);
284
+ }
248
285
  /**
249
286
  * Adds the button's visual elements to the container.
250
287
  */
251
288
  setupContainer() {
252
- this.add([this.shadowSprite, this.backgroundSprite, this.buttonText]);
289
+ this.add([this.whiteBorderSprite, this.backgroundSprite, this.buttonText]);
253
290
  }
254
291
  /**
255
292
  * Sets up interactivity for the button, including hover and click effects.
@@ -261,52 +298,41 @@ export class TextButton extends GameObjects.Container {
261
298
  this.backgroundSprite.on('pointerover', () => {
262
299
  this.scene.tweens.add({
263
300
  targets: this,
301
+ duration: durations.hover,
264
302
  scaleX: HOVER_SCALE,
265
303
  scaleY: HOVER_SCALE,
266
- duration: durations.hover,
267
304
  ease: 'Back.easeOut',
268
305
  });
269
306
  });
270
307
  this.backgroundSprite.on('pointerout', () => {
271
308
  this.scene.tweens.add({
272
309
  targets: this,
310
+ duration: durations.hover,
273
311
  scaleX: 1,
274
312
  scaleY: 1,
275
- duration: durations.hover,
276
313
  ease: 'Back.easeOut',
277
314
  });
278
315
  });
279
316
  // Click effects
280
317
  this.backgroundSprite.on('pointerdown', () => {
281
318
  this.scene.tweens.add({
282
- targets: [this.backgroundSprite, this.buttonText],
283
- y: CLICK_OFFSET,
319
+ targets: [this.whiteBorderSprite, this.backgroundSprite, this.buttonText],
320
+ scaleX: POINTER_DOWN_SCALE,
321
+ scaleY: POINTER_DOWN_SCALE,
284
322
  duration: durations.click,
285
323
  ease: 'Linear',
286
324
  });
287
325
  });
288
326
  this.backgroundSprite.on('pointerup', () => {
289
327
  this.scene.tweens.add({
290
- targets: [this.backgroundSprite, this.buttonText],
291
- y: 0,
328
+ targets: [this.whiteBorderSprite, this.backgroundSprite, this.buttonText],
329
+ scaleX: 1,
330
+ scaleY: 1,
292
331
  duration: durations.click,
293
332
  ease: 'Linear',
294
333
  });
295
334
  onClick?.();
296
335
  });
297
336
  }
298
- /**
299
- * Gets the interactive sprite of the icon button
300
- * @returns The interactive sprite
301
- */
302
- get interactive() {
303
- const { on, off, setInteractive, once } = this.backgroundSprite;
304
- return {
305
- on: on.bind(this.backgroundSprite),
306
- off: off.bind(this.backgroundSprite),
307
- setInteractive: setInteractive.bind(this.backgroundSprite),
308
- once: once.bind(this.backgroundSprite),
309
- };
310
- }
311
337
  }
312
338
  //# sourceMappingURL=text-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text-button.js","sourceRoot":"","sources":["../../../src/components/text-button/text-button.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-button.js","sourceRoot":"","sources":["../../../src/components/text-button/text-button.ts"],"names":[],"mappings":"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"}