hudini 0.19.0 → 0.20.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 (98) hide show
  1. package/README.md +1 -27
  2. package/dist/components/badge/badge.d.ts +94 -0
  3. package/dist/components/badge/badge.d.ts.map +1 -0
  4. package/dist/components/badge/badge.js +180 -0
  5. package/dist/components/badge/badge.js.map +1 -0
  6. package/dist/components/badge/badge.spec.d.ts +2 -0
  7. package/dist/components/badge/badge.spec.d.ts.map +1 -0
  8. package/dist/components/badge/badge.spec.js +195 -0
  9. package/dist/components/badge/badge.spec.js.map +1 -0
  10. package/dist/components/badge/index.d.ts +2 -0
  11. package/dist/components/badge/index.d.ts.map +1 -0
  12. package/dist/components/badge/index.js +2 -0
  13. package/dist/components/badge/index.js.map +1 -0
  14. package/dist/components/icon-button/icon-button.d.ts +2 -8
  15. package/dist/components/icon-button/icon-button.d.ts.map +1 -1
  16. package/dist/components/icon-button/icon-button.js +10 -86
  17. package/dist/components/icon-button/icon-button.js.map +1 -1
  18. package/dist/components/index.d.ts +1 -4
  19. package/dist/components/index.d.ts.map +1 -1
  20. package/dist/components/index.js +1 -4
  21. package/dist/components/index.js.map +1 -1
  22. package/dist/components/panel/panel.d.ts +8 -8
  23. package/dist/components/panel/panel.d.ts.map +1 -1
  24. package/dist/components/panel/panel.js +29 -30
  25. package/dist/components/panel/panel.js.map +1 -1
  26. package/dist/components/text/text.d.ts +21 -4
  27. package/dist/components/text/text.d.ts.map +1 -1
  28. package/dist/components/text/text.js +14 -14
  29. package/dist/components/text/text.js.map +1 -1
  30. package/dist/components/text-button/text-button.d.ts +9 -18
  31. package/dist/components/text-button/text-button.d.ts.map +1 -1
  32. package/dist/components/text-button/text-button.js +38 -81
  33. package/dist/components/text-button/text-button.js.map +1 -1
  34. package/dist/components/text-button/text-button.spec.js +55 -9
  35. package/dist/components/text-button/text-button.spec.js.map +1 -1
  36. package/dist/hudini.js +2842 -4529
  37. package/dist/hudini.min.js +1 -1
  38. package/dist/loaders/load-fonts.d.ts +29 -0
  39. package/dist/loaders/load-fonts.d.ts.map +1 -1
  40. package/dist/loaders/load-fonts.js +20 -1
  41. package/dist/loaders/load-fonts.js.map +1 -1
  42. package/dist/utils/button-style.d.ts +16 -0
  43. package/dist/utils/button-style.d.ts.map +1 -0
  44. package/dist/utils/button-style.js +35 -0
  45. package/dist/utils/button-style.js.map +1 -0
  46. package/dist/utils/index.d.ts +2 -0
  47. package/dist/utils/index.d.ts.map +1 -1
  48. package/dist/utils/index.js +2 -0
  49. package/dist/utils/index.js.map +1 -1
  50. package/dist/utils/number-to-rgb.d.ts +16 -0
  51. package/dist/utils/number-to-rgb.d.ts.map +1 -0
  52. package/dist/utils/number-to-rgb.js +20 -0
  53. package/dist/utils/number-to-rgb.js.map +1 -0
  54. package/package.json +2 -2
  55. package/dist/components/flat-icon-button/flat-icon-button.d.ts +0 -60
  56. package/dist/components/flat-icon-button/flat-icon-button.d.ts.map +0 -1
  57. package/dist/components/flat-icon-button/flat-icon-button.js +0 -279
  58. package/dist/components/flat-icon-button/flat-icon-button.js.map +0 -1
  59. package/dist/components/flat-icon-button/index.d.ts +0 -2
  60. package/dist/components/flat-icon-button/index.d.ts.map +0 -1
  61. package/dist/components/flat-icon-button/index.js +0 -2
  62. package/dist/components/flat-icon-button/index.js.map +0 -1
  63. package/dist/components/flat-section-header/flat-section-header.d.ts +0 -143
  64. package/dist/components/flat-section-header/flat-section-header.d.ts.map +0 -1
  65. package/dist/components/flat-section-header/flat-section-header.js +0 -275
  66. package/dist/components/flat-section-header/flat-section-header.js.map +0 -1
  67. package/dist/components/flat-section-header/flat-section-header.spec.d.ts +0 -2
  68. package/dist/components/flat-section-header/flat-section-header.spec.d.ts.map +0 -1
  69. package/dist/components/flat-section-header/flat-section-header.spec.js +0 -255
  70. package/dist/components/flat-section-header/flat-section-header.spec.js.map +0 -1
  71. package/dist/components/flat-section-header/index.d.ts +0 -2
  72. package/dist/components/flat-section-header/index.d.ts.map +0 -1
  73. package/dist/components/flat-section-header/index.js +0 -2
  74. package/dist/components/flat-section-header/index.js.map +0 -1
  75. package/dist/components/flat-text-button/flat-text-button.d.ts +0 -165
  76. package/dist/components/flat-text-button/flat-text-button.d.ts.map +0 -1
  77. package/dist/components/flat-text-button/flat-text-button.js +0 -325
  78. package/dist/components/flat-text-button/flat-text-button.js.map +0 -1
  79. package/dist/components/flat-text-button/flat-text-button.spec.d.ts +0 -2
  80. package/dist/components/flat-text-button/flat-text-button.spec.d.ts.map +0 -1
  81. package/dist/components/flat-text-button/flat-text-button.spec.js +0 -243
  82. package/dist/components/flat-text-button/flat-text-button.spec.js.map +0 -1
  83. package/dist/components/flat-text-button/index.d.ts +0 -2
  84. package/dist/components/flat-text-button/index.d.ts.map +0 -1
  85. package/dist/components/flat-text-button/index.js +0 -2
  86. package/dist/components/flat-text-button/index.js.map +0 -1
  87. package/dist/components/section-header/index.d.ts +0 -2
  88. package/dist/components/section-header/index.d.ts.map +0 -1
  89. package/dist/components/section-header/index.js +0 -2
  90. package/dist/components/section-header/index.js.map +0 -1
  91. package/dist/components/section-header/section-header.d.ts +0 -149
  92. package/dist/components/section-header/section-header.d.ts.map +0 -1
  93. package/dist/components/section-header/section-header.js +0 -292
  94. package/dist/components/section-header/section-header.js.map +0 -1
  95. package/dist/components/section-header/section-header.spec.d.ts +0 -2
  96. package/dist/components/section-header/section-header.spec.d.ts.map +0 -1
  97. package/dist/components/section-header/section-header.spec.js +0 -264
  98. package/dist/components/section-header/section-header.spec.js.map +0 -1
@@ -1,264 +0,0 @@
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 color-variants
47
- vi.mock('../../utils/color-variants', () => ({
48
- getColorVariant: vi.fn(() => 0x000000), // Return black as number
49
- }));
50
- // Mock the Text component
51
- vi.mock('../text', () => {
52
- class MockText {
53
- text;
54
- style;
55
- constructor(params) {
56
- this.text = params.text;
57
- this.style = {
58
- fontSize: params.size ?? 22,
59
- fontFamily: params.fontFamily ?? 'Bebas Neue',
60
- };
61
- }
62
- setText(text) {
63
- this.text = text;
64
- return this;
65
- }
66
- setOrigin() {
67
- return this;
68
- }
69
- setFontSize(size) {
70
- this.style['fontSize'] = size;
71
- return this;
72
- }
73
- setFontFamily(family) {
74
- this.style['fontFamily'] = family;
75
- return this;
76
- }
77
- setColor(color) {
78
- this.style['color'] = color;
79
- return this;
80
- }
81
- getBounds() {
82
- const charWidth = 10;
83
- const lineHeight = parseInt(this.style['fontSize']) || 18;
84
- return {
85
- width: this.text.length * charWidth,
86
- height: lineHeight,
87
- };
88
- }
89
- }
90
- return { Text: MockText };
91
- });
92
- // Mock Phaser
93
- vi.mock('phaser', () => {
94
- class MockText {
95
- text;
96
- style;
97
- constructor(_x, _y, text, style) {
98
- this.text = text;
99
- this.style = style;
100
- }
101
- setText(text) {
102
- this.text = text;
103
- return this;
104
- }
105
- setOrigin() {
106
- return this;
107
- }
108
- setFontSize(size) {
109
- this.style['fontSize'] = size;
110
- return this;
111
- }
112
- setFontFamily(family) {
113
- this.style['fontFamily'] = family;
114
- return this;
115
- }
116
- setColor(color) {
117
- this.style['color'] = color;
118
- return this;
119
- }
120
- setStroke(color, thickness) {
121
- this.style['stroke'] = color;
122
- this.style['strokeThickness'] = thickness;
123
- return this;
124
- }
125
- getBounds() {
126
- const charWidth = 10;
127
- const lineHeight = parseInt(this.style['fontSize']) ?? 18;
128
- return {
129
- width: this.text.length * charWidth,
130
- height: lineHeight,
131
- };
132
- }
133
- }
134
- class MockSprite {
135
- // eslint-disable-next-line no-unused-vars
136
- constructor(_x, _y, _texture) { }
137
- setOrigin() {
138
- return this;
139
- }
140
- setTexture() {
141
- return this;
142
- }
143
- }
144
- class MockGraphics {
145
- clear() {
146
- return this;
147
- }
148
- fillStyle() {
149
- return this;
150
- }
151
- fillRoundedRect() {
152
- return this;
153
- }
154
- lineStyle() {
155
- return this;
156
- }
157
- strokeRoundedRect() {
158
- return this;
159
- }
160
- generateTexture() {
161
- return this;
162
- }
163
- destroy() {
164
- return this;
165
- }
166
- }
167
- class Container {
168
- scene;
169
- // eslint-disable-next-line no-unused-vars
170
- constructor(_scene, _x, _y) {
171
- this.scene = _scene;
172
- }
173
- add() {
174
- return this;
175
- }
176
- setInteractive() {
177
- return this;
178
- }
179
- on() {
180
- return this;
181
- }
182
- setScale() {
183
- return this;
184
- }
185
- }
186
- class Scene {
187
- add = {
188
- text: vi.fn((x, y, text, style) => new MockText(x, y, text, style)),
189
- sprite: vi.fn((x, y, texture) => new MockSprite(x, y, texture)),
190
- graphics: vi.fn(() => new MockGraphics()),
191
- };
192
- }
193
- class BasePlugin {
194
- constructor() { }
195
- }
196
- const GameObjects = { Container };
197
- const Plugins = { BasePlugin };
198
- return { GameObjects, Scene, Plugins };
199
- });
200
- import { SectionHeader } from './section-header';
201
- describe('SectionHeader', () => {
202
- it('should create a SectionHeader instance', () => {
203
- const scene = new Scene();
204
- const sectionHeader = new SectionHeader({
205
- scene,
206
- x: 100,
207
- y: 100,
208
- text: 'Section Title',
209
- });
210
- expect(sectionHeader).toBeInstanceOf(SectionHeader);
211
- });
212
- it('should create with custom properties', () => {
213
- const scene = new Scene();
214
- const sectionHeader = new SectionHeader({
215
- scene,
216
- x: 100,
217
- y: 100,
218
- text: 'Custom Header',
219
- fontSize: 'xl',
220
- font: 'display',
221
- backgroundColor: 'purple-600',
222
- textColor: 'white',
223
- borderRadius: 'lg',
224
- margin: '6',
225
- });
226
- expect(sectionHeader).toBeInstanceOf(SectionHeader);
227
- });
228
- it('should support method chaining for colors', () => {
229
- const scene = new Scene();
230
- const sectionHeader = new SectionHeader({
231
- scene,
232
- x: 100,
233
- y: 100,
234
- text: 'Test Header',
235
- });
236
- const result = sectionHeader
237
- .setTextColor('white')
238
- .setBackgroundColor('blue-600');
239
- expect(result).toBe(sectionHeader);
240
- });
241
- it('should handle borderRadius full correctly in constructor', () => {
242
- const scene = new Scene();
243
- const sectionHeader = new SectionHeader({
244
- scene,
245
- x: 100,
246
- y: 100,
247
- text: 'Full Radius Header',
248
- borderRadius: 'full',
249
- });
250
- expect(sectionHeader).toBeInstanceOf(SectionHeader);
251
- });
252
- it('should use default display font and bold style', () => {
253
- const scene = new Scene();
254
- const sectionHeader = new SectionHeader({
255
- scene,
256
- x: 100,
257
- y: 100,
258
- text: 'Default Style',
259
- });
260
- expect(sectionHeader).toBeInstanceOf(SectionHeader);
261
- expect(sectionHeader.headerText).toBeDefined();
262
- });
263
- });
264
- //# sourceMappingURL=section-header.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"section-header.spec.js","sourceRoot":"","sources":["../../../src/components/section-header/section-header.spec.ts"],"names":[],"mappings":"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"}