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.
- package/README.md +1 -27
- package/dist/components/alert/alert.d.ts +161 -0
- package/dist/components/alert/alert.d.ts.map +1 -0
- package/dist/components/alert/alert.js +304 -0
- package/dist/components/alert/alert.js.map +1 -0
- package/dist/components/alert/alert.spec.d.ts +2 -0
- package/dist/components/alert/alert.spec.d.ts.map +1 -0
- package/dist/components/alert/alert.spec.js +235 -0
- package/dist/components/alert/alert.spec.js.map +1 -0
- package/dist/components/alert/index.d.ts +2 -0
- package/dist/components/alert/index.d.ts.map +1 -0
- package/dist/components/alert/index.js +2 -0
- package/dist/components/alert/index.js.map +1 -0
- package/dist/components/badge/badge.d.ts +94 -0
- package/dist/components/badge/badge.d.ts.map +1 -0
- package/dist/components/badge/badge.js +180 -0
- package/dist/components/badge/badge.js.map +1 -0
- package/dist/components/badge/badge.spec.d.ts +2 -0
- package/dist/components/badge/badge.spec.d.ts.map +1 -0
- package/dist/components/badge/badge.spec.js +197 -0
- package/dist/components/badge/badge.spec.js.map +1 -0
- package/dist/components/badge/index.d.ts +2 -0
- package/dist/components/badge/index.d.ts.map +1 -0
- package/dist/components/badge/index.js +2 -0
- package/dist/components/badge/index.js.map +1 -0
- package/dist/components/card/card.d.ts +11 -15
- package/dist/components/card/card.d.ts.map +1 -1
- package/dist/components/card/card.js +37 -59
- package/dist/components/card/card.js.map +1 -1
- package/dist/components/checkbox/checkbox.d.ts +153 -0
- package/dist/components/checkbox/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox/checkbox.js +329 -0
- package/dist/components/checkbox/checkbox.js.map +1 -0
- package/dist/components/checkbox/checkbox.spec.d.ts +2 -0
- package/dist/components/checkbox/checkbox.spec.d.ts.map +1 -0
- package/dist/components/checkbox/checkbox.spec.js +346 -0
- package/dist/components/checkbox/checkbox.spec.js.map +1 -0
- package/dist/components/checkbox/index.d.ts +2 -0
- package/dist/components/checkbox/index.d.ts.map +1 -0
- package/dist/components/checkbox/index.js +2 -0
- package/dist/components/checkbox/index.js.map +1 -0
- package/dist/components/circular-progress/circular-progress.d.ts.map +1 -1
- package/dist/components/circular-progress/circular-progress.js +2 -1
- package/dist/components/circular-progress/circular-progress.js.map +1 -1
- package/dist/components/circular-progress/circular-progress.spec.js +2 -0
- package/dist/components/circular-progress/circular-progress.spec.js.map +1 -1
- package/dist/components/dock/dock.d.ts +115 -0
- package/dist/components/dock/dock.d.ts.map +1 -0
- package/dist/components/dock/dock.js +168 -0
- package/dist/components/dock/dock.js.map +1 -0
- package/dist/components/dock/dock.spec.d.ts +2 -0
- package/dist/components/dock/dock.spec.d.ts.map +1 -0
- package/dist/components/dock/dock.spec.js +178 -0
- package/dist/components/dock/dock.spec.js.map +1 -0
- package/dist/components/dock/index.d.ts +2 -0
- package/dist/components/dock/index.d.ts.map +1 -0
- package/dist/components/dock/index.js +2 -0
- package/dist/components/dock/index.js.map +1 -0
- package/dist/components/icon-button/icon-button.d.ts +18 -9
- package/dist/components/icon-button/icon-button.d.ts.map +1 -1
- package/dist/components/icon-button/icon-button.js +57 -101
- package/dist/components/icon-button/icon-button.js.map +1 -1
- package/dist/components/index.d.ts +10 -5
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +10 -5
- package/dist/components/index.js.map +1 -1
- package/dist/components/linear-progress/linear-progress.d.ts.map +1 -1
- package/dist/components/linear-progress/linear-progress.js +4 -4
- package/dist/components/linear-progress/linear-progress.js.map +1 -1
- package/dist/components/linear-progress/linear-progress.spec.js +2 -0
- package/dist/components/linear-progress/linear-progress.spec.js.map +1 -1
- package/dist/components/modal/index.d.ts +2 -0
- package/dist/components/modal/index.d.ts.map +1 -0
- package/dist/components/modal/index.js +2 -0
- package/dist/components/modal/index.js.map +1 -0
- package/dist/components/modal/modal.d.ts +193 -0
- package/dist/components/modal/modal.d.ts.map +1 -0
- package/dist/components/modal/modal.js +382 -0
- package/dist/components/modal/modal.js.map +1 -0
- package/dist/components/modal/modal.spec.d.ts +2 -0
- package/dist/components/modal/modal.spec.d.ts.map +1 -0
- package/dist/components/modal/modal.spec.js +360 -0
- package/dist/components/modal/modal.spec.js.map +1 -0
- package/dist/components/overlay/index.d.ts +2 -0
- package/dist/components/overlay/index.d.ts.map +1 -0
- package/dist/components/overlay/index.js +2 -0
- package/dist/components/overlay/index.js.map +1 -0
- package/dist/components/overlay/overlay.d.ts +75 -0
- package/dist/components/overlay/overlay.d.ts.map +1 -0
- package/dist/components/overlay/overlay.js +106 -0
- package/dist/components/overlay/overlay.js.map +1 -0
- package/dist/components/overlay/overlay.spec.d.ts +2 -0
- package/dist/components/overlay/overlay.spec.d.ts.map +1 -0
- package/dist/components/overlay/overlay.spec.js +135 -0
- package/dist/components/overlay/overlay.spec.js.map +1 -0
- package/dist/components/radial-progress/radial-progress.d.ts.map +1 -1
- package/dist/components/radial-progress/radial-progress.js +3 -2
- package/dist/components/radial-progress/radial-progress.js.map +1 -1
- package/dist/components/radio/index.d.ts +2 -0
- package/dist/components/radio/index.d.ts.map +1 -0
- package/dist/components/radio/index.js +2 -0
- package/dist/components/radio/index.js.map +1 -0
- package/dist/components/radio/radio.d.ts +157 -0
- package/dist/components/radio/radio.d.ts.map +1 -0
- package/dist/components/radio/radio.js +312 -0
- package/dist/components/radio/radio.js.map +1 -0
- package/dist/components/radio/radio.spec.d.ts +2 -0
- package/dist/components/radio/radio.spec.d.ts.map +1 -0
- package/dist/components/radio/radio.spec.js +353 -0
- package/dist/components/radio/radio.spec.js.map +1 -0
- package/dist/components/radio-group/index.d.ts +2 -0
- package/dist/components/radio-group/index.d.ts.map +1 -0
- package/dist/components/radio-group/index.js +2 -0
- package/dist/components/radio-group/index.js.map +1 -0
- package/dist/components/radio-group/radio-group.d.ts +122 -0
- package/dist/components/radio-group/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group/radio-group.js +165 -0
- package/dist/components/radio-group/radio-group.js.map +1 -0
- package/dist/components/radio-group/radio-group.spec.d.ts +2 -0
- package/dist/components/radio-group/radio-group.spec.d.ts.map +1 -0
- package/dist/components/radio-group/radio-group.spec.js +205 -0
- package/dist/components/radio-group/radio-group.spec.js.map +1 -0
- package/dist/components/stack/index.d.ts +2 -0
- package/dist/components/stack/index.d.ts.map +1 -0
- package/dist/components/stack/index.js +2 -0
- package/dist/components/stack/index.js.map +1 -0
- package/dist/components/stack/stack.d.ts +118 -0
- package/dist/components/stack/stack.d.ts.map +1 -0
- package/dist/components/stack/stack.js +137 -0
- package/dist/components/stack/stack.js.map +1 -0
- package/dist/components/stack/stack.spec.d.ts +2 -0
- package/dist/components/stack/stack.spec.d.ts.map +1 -0
- package/dist/components/stack/stack.spec.js +116 -0
- package/dist/components/stack/stack.spec.js.map +1 -0
- package/dist/components/text/text.d.ts +21 -4
- package/dist/components/text/text.d.ts.map +1 -1
- package/dist/components/text/text.js +14 -14
- package/dist/components/text/text.js.map +1 -1
- package/dist/components/text-button/text-button.d.ts +77 -24
- package/dist/components/text-button/text-button.d.ts.map +1 -1
- package/dist/components/text-button/text-button.js +203 -104
- package/dist/components/text-button/text-button.js.map +1 -1
- package/dist/components/text-button/text-button.spec.js +97 -9
- package/dist/components/text-button/text-button.spec.js.map +1 -1
- package/dist/components/toggle/index.d.ts +2 -0
- package/dist/components/toggle/index.d.ts.map +1 -0
- package/dist/components/toggle/index.js +2 -0
- package/dist/components/toggle/index.js.map +1 -0
- package/dist/components/toggle/toggle.d.ts +149 -0
- package/dist/components/toggle/toggle.d.ts.map +1 -0
- package/dist/components/toggle/toggle.js +378 -0
- package/dist/components/toggle/toggle.js.map +1 -0
- package/dist/components/toggle/toggle.spec.d.ts +2 -0
- package/dist/components/toggle/toggle.spec.d.ts.map +1 -0
- package/dist/components/toggle/toggle.spec.js +353 -0
- package/dist/components/toggle/toggle.spec.js.map +1 -0
- package/dist/hudini.js +6523 -4980
- package/dist/hudini.min.js +1 -1
- package/dist/loaders/load-fonts.d.ts +29 -0
- package/dist/loaders/load-fonts.d.ts.map +1 -1
- package/dist/loaders/load-fonts.js +20 -1
- package/dist/loaders/load-fonts.js.map +1 -1
- package/dist/utils/button-style.d.ts +27 -0
- package/dist/utils/button-style.d.ts.map +1 -0
- package/dist/utils/button-style.js +37 -0
- package/dist/utils/button-style.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/number-to-rgb.d.ts +16 -0
- package/dist/utils/number-to-rgb.d.ts.map +1 -0
- package/dist/utils/number-to-rgb.js +20 -0
- package/dist/utils/number-to-rgb.js.map +1 -0
- package/package.json +2 -2
- package/dist/components/flat-icon-button/flat-icon-button.d.ts +0 -60
- package/dist/components/flat-icon-button/flat-icon-button.d.ts.map +0 -1
- package/dist/components/flat-icon-button/flat-icon-button.js +0 -279
- package/dist/components/flat-icon-button/flat-icon-button.js.map +0 -1
- package/dist/components/flat-icon-button/index.d.ts +0 -2
- package/dist/components/flat-icon-button/index.d.ts.map +0 -1
- package/dist/components/flat-icon-button/index.js +0 -2
- package/dist/components/flat-icon-button/index.js.map +0 -1
- package/dist/components/flat-section-header/flat-section-header.d.ts +0 -143
- package/dist/components/flat-section-header/flat-section-header.d.ts.map +0 -1
- package/dist/components/flat-section-header/flat-section-header.js +0 -275
- package/dist/components/flat-section-header/flat-section-header.js.map +0 -1
- package/dist/components/flat-section-header/flat-section-header.spec.d.ts +0 -2
- package/dist/components/flat-section-header/flat-section-header.spec.d.ts.map +0 -1
- package/dist/components/flat-section-header/flat-section-header.spec.js +0 -255
- package/dist/components/flat-section-header/flat-section-header.spec.js.map +0 -1
- package/dist/components/flat-section-header/index.d.ts +0 -2
- package/dist/components/flat-section-header/index.d.ts.map +0 -1
- package/dist/components/flat-section-header/index.js +0 -2
- package/dist/components/flat-section-header/index.js.map +0 -1
- package/dist/components/flat-text-button/flat-text-button.d.ts +0 -165
- package/dist/components/flat-text-button/flat-text-button.d.ts.map +0 -1
- package/dist/components/flat-text-button/flat-text-button.js +0 -325
- package/dist/components/flat-text-button/flat-text-button.js.map +0 -1
- package/dist/components/flat-text-button/flat-text-button.spec.d.ts +0 -2
- package/dist/components/flat-text-button/flat-text-button.spec.d.ts.map +0 -1
- package/dist/components/flat-text-button/flat-text-button.spec.js +0 -243
- package/dist/components/flat-text-button/flat-text-button.spec.js.map +0 -1
- package/dist/components/flat-text-button/index.d.ts +0 -2
- package/dist/components/flat-text-button/index.d.ts.map +0 -1
- package/dist/components/flat-text-button/index.js +0 -2
- package/dist/components/flat-text-button/index.js.map +0 -1
- package/dist/components/panel/index.d.ts +0 -2
- package/dist/components/panel/index.d.ts.map +0 -1
- package/dist/components/panel/index.js +0 -2
- package/dist/components/panel/index.js.map +0 -1
- package/dist/components/panel/panel.d.ts +0 -78
- package/dist/components/panel/panel.d.ts.map +0 -1
- package/dist/components/panel/panel.js +0 -192
- package/dist/components/panel/panel.js.map +0 -1
- package/dist/components/section-header/index.d.ts +0 -2
- package/dist/components/section-header/index.d.ts.map +0 -1
- package/dist/components/section-header/index.js +0 -2
- package/dist/components/section-header/index.js.map +0 -1
- package/dist/components/section-header/section-header.d.ts +0 -149
- package/dist/components/section-header/section-header.d.ts.map +0 -1
- package/dist/components/section-header/section-header.js +0 -292
- package/dist/components/section-header/section-header.js.map +0 -1
- package/dist/components/section-header/section-header.spec.d.ts +0 -2
- package/dist/components/section-header/section-header.spec.d.ts.map +0 -1
- package/dist/components/section-header/section-header.spec.js +0 -264
- package/dist/components/section-header/section-header.spec.js.map +0 -1
|
@@ -0,0 +1,197 @@
|
|
|
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
|
+
vi.mock('hudini', () => ({
|
|
6
|
+
Color: {
|
|
7
|
+
rgb: vi.fn((color) => `rgb-${color}`),
|
|
8
|
+
hex: vi.fn((color) => `hex-${color}`),
|
|
9
|
+
black: vi.fn(() => 'rgb(0, 0, 0)'),
|
|
10
|
+
white: vi.fn(() => 'rgb(255, 255, 255)'),
|
|
11
|
+
},
|
|
12
|
+
Opacity: {
|
|
13
|
+
value: vi.fn(() => 0.9),
|
|
14
|
+
},
|
|
15
|
+
}));
|
|
16
|
+
vi.mock('phaser-wind', () => ({
|
|
17
|
+
Duration: { ms: vi.fn(() => 100), seconds: vi.fn(() => 0.1), css: vi.fn(() => '100ms') },
|
|
18
|
+
Ease: { value: vi.fn(() => 'Linear') },
|
|
19
|
+
Color: {
|
|
20
|
+
rgb: vi.fn((color) => `rgb-${color}`),
|
|
21
|
+
hex: vi.fn((color) => `hex-${color}`),
|
|
22
|
+
shift: vi.fn((token) => token),
|
|
23
|
+
isValidColorToken: vi.fn(() => false),
|
|
24
|
+
},
|
|
25
|
+
Opacity: {
|
|
26
|
+
value: vi.fn(() => 0.6),
|
|
27
|
+
percent: vi.fn(() => 60),
|
|
28
|
+
css: vi.fn(() => '60%'),
|
|
29
|
+
},
|
|
30
|
+
isColorKey: vi.fn(() => false),
|
|
31
|
+
palette: {
|
|
32
|
+
red: {}, blue: {}, green: {}, purple: {}, amber: {},
|
|
33
|
+
slate: {}, gray: {}, zinc: {}, neutral: {}, stone: {},
|
|
34
|
+
orange: {}, yellow: {}, lime: {}, emerald: {}, teal: {},
|
|
35
|
+
cyan: {}, sky: {}, indigo: {}, violet: {}, fuchsia: {},
|
|
36
|
+
pink: {}, rose: {},
|
|
37
|
+
black: '#000',
|
|
38
|
+
white: '#fff',
|
|
39
|
+
},
|
|
40
|
+
PHASER_WIND_KEY: 'PhaserWind',
|
|
41
|
+
SceneWithPhaserWind: class SceneWithPhaserWind {
|
|
42
|
+
},
|
|
43
|
+
}));
|
|
44
|
+
vi.mock('../../utils/get-pw-from-scene', () => ({
|
|
45
|
+
getPWFromScene: vi.fn(() => ({
|
|
46
|
+
fontSize: {
|
|
47
|
+
px: vi.fn((size) => {
|
|
48
|
+
const sizes = { xs: 12, sm: 14, md: 16, lg: 18, xl: 20 };
|
|
49
|
+
return sizes[size] || 18;
|
|
50
|
+
}),
|
|
51
|
+
},
|
|
52
|
+
spacing: {
|
|
53
|
+
px: vi.fn((spacing) => {
|
|
54
|
+
const spacings = { xs: 4, sm: 8, md: 12, lg: 16, xl: 20 };
|
|
55
|
+
return spacings[spacing] || 16;
|
|
56
|
+
}),
|
|
57
|
+
},
|
|
58
|
+
radius: {
|
|
59
|
+
px: vi.fn((radius) => {
|
|
60
|
+
const radiuses = { none: 0, sm: 4, md: 8, lg: 12, xl: 16, full: 9999 };
|
|
61
|
+
return radiuses[radius] || 8;
|
|
62
|
+
}),
|
|
63
|
+
},
|
|
64
|
+
font: {
|
|
65
|
+
family: vi.fn((font) => {
|
|
66
|
+
const fonts = {
|
|
67
|
+
primary: 'Inter, sans-serif',
|
|
68
|
+
secondary: 'Roboto, Arial, sans-serif',
|
|
69
|
+
monospace: 'Courier, monospace',
|
|
70
|
+
display: 'Poppins, Inter, sans-serif',
|
|
71
|
+
};
|
|
72
|
+
return fonts[font] || 'Fredoka';
|
|
73
|
+
}),
|
|
74
|
+
},
|
|
75
|
+
})),
|
|
76
|
+
}));
|
|
77
|
+
vi.mock('../text', () => {
|
|
78
|
+
class MockText {
|
|
79
|
+
text;
|
|
80
|
+
style;
|
|
81
|
+
constructor(params) {
|
|
82
|
+
this.text = params.text;
|
|
83
|
+
this.style = {
|
|
84
|
+
fontSize: params.size ?? 22,
|
|
85
|
+
fontFamily: params.fontFamily ?? 'Fredoka',
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
setText(text) {
|
|
89
|
+
this.text = text;
|
|
90
|
+
return this;
|
|
91
|
+
}
|
|
92
|
+
setOrigin() { return this; }
|
|
93
|
+
setFontSize(size) { this.style['fontSize'] = size; return this; }
|
|
94
|
+
setFontFamily(family) { this.style['fontFamily'] = family; return this; }
|
|
95
|
+
setColor(color) { this.style['color'] = color; return this; }
|
|
96
|
+
getBounds() {
|
|
97
|
+
const charWidth = 10;
|
|
98
|
+
const lineHeight = parseInt(this.style['fontSize']) || 18;
|
|
99
|
+
return {
|
|
100
|
+
width: this.text.length * charWidth,
|
|
101
|
+
height: lineHeight,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return { Text: MockText };
|
|
106
|
+
});
|
|
107
|
+
vi.mock('phaser', () => {
|
|
108
|
+
class MockSprite {
|
|
109
|
+
width = 0;
|
|
110
|
+
height = 0;
|
|
111
|
+
// eslint-disable-next-line no-unused-vars
|
|
112
|
+
constructor(_x, _y, _texture) { }
|
|
113
|
+
setOrigin() { return this; }
|
|
114
|
+
setTexture() { return this; }
|
|
115
|
+
setSize(width, height) {
|
|
116
|
+
this.width = width;
|
|
117
|
+
this.height = height;
|
|
118
|
+
return this;
|
|
119
|
+
}
|
|
120
|
+
on() { return this; }
|
|
121
|
+
}
|
|
122
|
+
class MockGraphics {
|
|
123
|
+
fillStyle() { return this; }
|
|
124
|
+
fillRoundedRect() { return this; }
|
|
125
|
+
generateTexture() { return this; }
|
|
126
|
+
destroy() { return this; }
|
|
127
|
+
}
|
|
128
|
+
class Container {
|
|
129
|
+
scene;
|
|
130
|
+
// eslint-disable-next-line no-unused-vars
|
|
131
|
+
constructor(_scene, _x, _y) {
|
|
132
|
+
this.scene = _scene;
|
|
133
|
+
}
|
|
134
|
+
add() { return this; }
|
|
135
|
+
setSize() { return this; }
|
|
136
|
+
on() { return this; }
|
|
137
|
+
}
|
|
138
|
+
class Scene {
|
|
139
|
+
add = {
|
|
140
|
+
sprite: vi.fn((x, y, texture) => new MockSprite(x, y, texture)),
|
|
141
|
+
graphics: vi.fn(() => new MockGraphics()),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
class BasePlugin {
|
|
145
|
+
constructor() { }
|
|
146
|
+
}
|
|
147
|
+
const GameObjects = { Container };
|
|
148
|
+
const Plugins = { BasePlugin };
|
|
149
|
+
return { GameObjects, Scene, Plugins };
|
|
150
|
+
});
|
|
151
|
+
import { Badge } from './badge';
|
|
152
|
+
describe('Badge', () => {
|
|
153
|
+
it('should create a Badge instance', () => {
|
|
154
|
+
const scene = new Scene();
|
|
155
|
+
const badge = new Badge({ scene, x: 100, y: 100, text: 'New' });
|
|
156
|
+
expect(badge).toBeInstanceOf(Badge);
|
|
157
|
+
});
|
|
158
|
+
it('should create with custom properties', () => {
|
|
159
|
+
const scene = new Scene();
|
|
160
|
+
const badge = new Badge({
|
|
161
|
+
scene,
|
|
162
|
+
x: 100,
|
|
163
|
+
y: 100,
|
|
164
|
+
text: 'Custom',
|
|
165
|
+
fontSize: 'xl',
|
|
166
|
+
font: 'display',
|
|
167
|
+
color: 'purple-600',
|
|
168
|
+
textColor: 'white',
|
|
169
|
+
borderRadius: 'lg',
|
|
170
|
+
padding: '6',
|
|
171
|
+
});
|
|
172
|
+
expect(badge).toBeInstanceOf(Badge);
|
|
173
|
+
});
|
|
174
|
+
it('should support method chaining for colors', () => {
|
|
175
|
+
const scene = new Scene();
|
|
176
|
+
const badge = new Badge({ scene, x: 0, y: 0, text: 'X' });
|
|
177
|
+
const result = badge.setTextColor('white').setColor('blue-600');
|
|
178
|
+
expect(result).toBe(badge);
|
|
179
|
+
});
|
|
180
|
+
it('should handle borderRadius full correctly', () => {
|
|
181
|
+
const scene = new Scene();
|
|
182
|
+
const badge = new Badge({
|
|
183
|
+
scene,
|
|
184
|
+
x: 0,
|
|
185
|
+
y: 0,
|
|
186
|
+
text: 'Full',
|
|
187
|
+
borderRadius: 'full',
|
|
188
|
+
});
|
|
189
|
+
expect(badge).toBeInstanceOf(Badge);
|
|
190
|
+
});
|
|
191
|
+
it('should expose the internal text object', () => {
|
|
192
|
+
const scene = new Scene();
|
|
193
|
+
const badge = new Badge({ scene, x: 0, y: 0, text: 'Hi' });
|
|
194
|
+
expect(badge.badgeText).toBeDefined();
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
//# sourceMappingURL=badge.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.spec.js","sourceRoot":"","sources":["../../../src/components/badge/badge.spec.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,2CAA2C;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IACvB,KAAK,EAAE;QACL,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC;QAC7C,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC;QAC7C,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC;QAClC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC;KACzC;IACD,OAAO,EAAE;QACP,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;KACxB;CACF,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5B,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE;IACxF,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE;IACtC,KAAK,EAAE;QACL,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC;QAC7C,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC;QAC7C,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC;QACtC,iBAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;KACtC;IACD,OAAO,EAAE;QACP,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;QACvB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QACxB,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;KACxB;IACD,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IAC9B,OAAO,EAAE;QACP,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;QACnD,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;QACrD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QACvD,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;QACtD,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QAClB,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM;KACd;IACD,eAAe,EAAE,YAAY;IAC7B,mBAAmB,EAAE,MAAM,mBAAmB;KAAI;CACnD,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9C,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3B,QAAQ,EAAE;YACR,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE;gBACzB,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBACzD,OAAO,KAAK,CAAC,IAA0B,CAAC,IAAI,EAAE,CAAC;YACjD,CAAC,CAAC;SACH;QACD,OAAO,EAAE;YACP,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,OAAe,EAAE,EAAE;gBAC5B,MAAM,QAAQ,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;gBAC1D,OAAO,QAAQ,CAAC,OAAgC,CAAC,IAAI,EAAE,CAAC;YAC1D,CAAC,CAAC;SACH;QACD,MAAM,EAAE;YACN,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE;gBAC3B,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACvE,OAAO,QAAQ,CAAC,MAA+B,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC,CAAC;SACH;QACD,IAAI,EAAE;YACJ,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE;gBAC7B,MAAM,KAAK,GAAG;oBACZ,OAAO,EAAE,mBAAmB;oBAC5B,SAAS,EAAE,2BAA2B;oBACtC,SAAS,EAAE,oBAAoB;oBAC/B,OAAO,EAAE,4BAA4B;iBACtC,CAAC;gBACF,OAAO,KAAK,CAAC,IAA0B,CAAC,IAAI,SAAS,CAAC;YACxD,CAAC,CAAC;SACH;KACF,CAAC,CAAC;CACJ,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;IACtB,MAAM,QAAQ;QACJ,IAAI,CAAS;QACb,KAAK,CAAkC;QAE/C,YAAY,MAAkG;YAC5G,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG;gBACX,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;gBAC3B,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,SAAS;aAC3C,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,IAAY;YAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,SAAS,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;QAClC,WAAW,CAAC,IAAY,IAAU,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QAC/E,aAAa,CAAC,MAAc,IAAU,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QACvF,QAAQ,CAAC,KAAa,IAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QAE3E,SAAS;YACP,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAW,CAAC,IAAI,EAAE,CAAC;YACpE,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS;gBACnC,MAAM,EAAE,UAAU;aACnB,CAAC;QACJ,CAAC;KACF;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;IACrB,MAAM,UAAU;QACP,KAAK,GAAG,CAAC,CAAC;QACV,MAAM,GAAG,CAAC,CAAC;QAClB,0CAA0C;QAC1C,YAAY,EAAU,EAAE,EAAU,EAAE,QAAgB,IAAI,CAAC;QACzD,SAAS,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;QAClC,UAAU,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,KAAa,EAAE,MAAc;YACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,EAAE,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;KAC5B;IAED,MAAM,YAAY;QAChB,SAAS,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;QAClC,eAAe,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;QACxC,eAAe,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;QACxC,OAAO,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;KACjC;IAED,MAAM,SAAS;QACb,KAAK,CAAQ;QACb,0CAA0C;QAC1C,YAAY,MAAa,EAAE,EAAU,EAAE,EAAU;YAC/C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACtB,CAAC;QACD,GAAG,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;QAC5B,OAAO,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;QAChC,EAAE,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;KAC5B;IAED,MAAM,KAAK;QACT,GAAG,GAAG;YACJ,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,OAAe,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YACvF,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC;SAC1C,CAAC;KACH;IAED,MAAM,UAAU;QAAG,gBAAgB,CAAC;KAAE;IAEtC,MAAM,WAAW,GAAG,EAAE,SAAS,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,EAAE,UAAU,EAAE,CAAC;IAC/B,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;YACtB,KAAK;YACL,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,YAAY;YACnB,SAAS,EAAE,OAAO;YAClB,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,GAAG;SACb,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;YACtB,KAAK;YACL,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/badge/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/badge/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
|
|
@@ -25,8 +25,6 @@ export type CardParams = {
|
|
|
25
25
|
* A flexible card component that adapts to its child content size
|
|
26
26
|
*/
|
|
27
27
|
export declare class Card extends ContainerInteractive<Phaser.GameObjects.Sprite> {
|
|
28
|
-
/** The white border sprite of the card. */
|
|
29
|
-
whiteBorderSprite: GameObjects.Sprite;
|
|
30
28
|
/** The background sprite of the card. */
|
|
31
29
|
backgroundSprite: GameObjects.Sprite;
|
|
32
30
|
/** The child component contained within the card */
|
|
@@ -41,6 +39,15 @@ export declare class Card extends ContainerInteractive<Phaser.GameObjects.Sprite
|
|
|
41
39
|
private backgroundColorValue;
|
|
42
40
|
/** Whether we have an explicit size set (width and height provided) */
|
|
43
41
|
private hasExplicitSize;
|
|
42
|
+
/**
|
|
43
|
+
* Cached explicit width/height. We can't rely on `this.width` / `this.height`
|
|
44
|
+
* during initial sprite creation because `ContainerInteractive` proxies them
|
|
45
|
+
* through `hitArea`, which isn't assigned yet in the constructor. Reading
|
|
46
|
+
* `this.width` before `hitArea` is set returns 0, so we keep the requested
|
|
47
|
+
* dimensions here and consult them in {@link getCardDimensions}.
|
|
48
|
+
*/
|
|
49
|
+
private explicitWidth;
|
|
50
|
+
private explicitHeight;
|
|
44
51
|
/**
|
|
45
52
|
* Creates a new Card
|
|
46
53
|
* @param params Configuration parameters for the card
|
|
@@ -89,18 +96,13 @@ export declare class Card extends ContainerInteractive<Phaser.GameObjects.Sprite
|
|
|
89
96
|
* @returns this for chaining
|
|
90
97
|
*/
|
|
91
98
|
setChild(child: GameObjects.GameObject): this;
|
|
92
|
-
/**
|
|
93
|
-
* Creates the white border sprite for the card.
|
|
94
|
-
* @param scene Phaser scene.
|
|
95
|
-
*/
|
|
96
|
-
private createWhiteBorderSprite;
|
|
97
99
|
/**
|
|
98
100
|
* Creates the background sprite for the card.
|
|
99
101
|
* @param scene Phaser scene.
|
|
100
102
|
*/
|
|
101
103
|
private createBackgroundSprite;
|
|
102
104
|
/**
|
|
103
|
-
* Regenerates the background
|
|
105
|
+
* Regenerates the background texture based on current state.
|
|
104
106
|
*/
|
|
105
107
|
private regenerateSprites;
|
|
106
108
|
/**
|
|
@@ -139,13 +141,7 @@ export declare class Card extends ContainerInteractive<Phaser.GameObjects.Sprite
|
|
|
139
141
|
*/
|
|
140
142
|
private getCardDimensions;
|
|
141
143
|
/**
|
|
142
|
-
* Creates a texture for the card's
|
|
143
|
-
* @param scene Phaser scene.
|
|
144
|
-
* @returns The texture key.
|
|
145
|
-
*/
|
|
146
|
-
private createWhiteBorderTexture;
|
|
147
|
-
/**
|
|
148
|
-
* Creates a texture for the card's background.
|
|
144
|
+
* Creates a texture for the card's background: a flat filled rounded rect.
|
|
149
145
|
* @param scene Phaser scene.
|
|
150
146
|
* @returns The texture key.
|
|
151
147
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/components/card/card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,UAAU,EAGhB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,MAAM,UAAU,GAAG;IACvB,0CAA0C;IAC1C,KAAK,EAAE,KAAK,CAAC;IACb,6BAA6B;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,6BAA6B;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,yDAAyD;IACzD,eAAe,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACpC,6FAA6F;IAC7F,YAAY,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAClC,8FAA8F;IAC9F,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC7B,sDAAsD;IACtD,KAAK,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC;IAC/B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;
|
|
1
|
+
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/components/card/card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,UAAU,EAGhB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,MAAM,UAAU,GAAG;IACvB,0CAA0C;IAC1C,KAAK,EAAE,KAAK,CAAC;IACb,6BAA6B;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,6BAA6B;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,yDAAyD;IACzD,eAAe,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACpC,6FAA6F;IAC7F,YAAY,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAClC,8FAA8F;IAC9F,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC7B,sDAAsD;IACtD,KAAK,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC;IAC/B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAUF;;GAEG;AACH,qBAAa,IAAK,SAAQ,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;IACvE,yCAAyC;IAClC,gBAAgB,EAAG,WAAW,CAAC,MAAM,CAAC;IAC7C,oDAAoD;IAC7C,KAAK,EAAE,WAAW,CAAC,UAAU,GAAG,SAAS,CAAC;IAEjD,yCAAyC;IACzC,OAAO,CAAC,EAAE,CAAuB;IACjC,4BAA4B;IAC5B,OAAO,CAAC,QAAQ,CAAU;IAC1B,8BAA8B;IAC9B,OAAO,CAAC,cAAc,CAAU;IAChC,6BAA6B;IAC7B,OAAO,CAAC,oBAAoB,CAAU;IAEtC,uEAAuE;IACvE,OAAO,CAAC,eAAe,CAAkB;IACzC;;;;;;OAMG;IACH,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,cAAc,CAAqB;IAE3C;;;OAGG;gBACS,EACV,KAAK,EACL,CAAC,EACD,CAAC,EACD,eAAyB,EACzB,YAAmB,EACnB,MAAY,EACZ,KAAK,EACL,KAAK,EACL,MAAM,GACP,EAAE,UAAU;IAqCb;;;;;OAKG;IACa,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAa5D;;;;OAIG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKpC;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKtC;;;;OAIG;IACI,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI;IAMzD;;;;OAIG;IACI,eAAe,CAAC,YAAY,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI;IAS9D;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IASnD;;;;OAIG;IACI,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,GAAG,IAAI;IAepD;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAM9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACI,MAAM,IAAI,IAAI;IA2CrB;;;OAGG;IACH,OAAO,CAAC,cAAc;IA+BtB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;CAsBhC"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { Color, getDisplayHeightOf, getDisplayWidthOf } from 'phaser-wind';
|
|
2
2
|
import { getPWFromScene } from '../../utils/get-pw-from-scene';
|
|
3
3
|
import { ContainerInteractive } from '../container-interactive';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Extra transparent margin around the drawn card inside its texture, just
|
|
6
|
+
* enough so the anti-aliased rounded-corner fill isn't clipped at the edge.
|
|
7
|
+
* The container itself is resized to the *visual* box, so this margin never
|
|
8
|
+
* leaks into layout measurements.
|
|
9
|
+
*/
|
|
10
|
+
const TEXTURE_ANTIALIAS_MARGIN = 1;
|
|
10
11
|
/**
|
|
11
12
|
* A flexible card component that adapts to its child content size
|
|
12
13
|
*/
|
|
13
14
|
export class Card extends ContainerInteractive {
|
|
14
|
-
/** The white border sprite of the card. */
|
|
15
|
-
whiteBorderSprite;
|
|
16
15
|
/** The background sprite of the card. */
|
|
17
16
|
backgroundSprite;
|
|
18
17
|
/** The child component contained within the card */
|
|
@@ -27,6 +26,15 @@ export class Card extends ContainerInteractive {
|
|
|
27
26
|
backgroundColorValue;
|
|
28
27
|
/** Whether we have an explicit size set (width and height provided) */
|
|
29
28
|
hasExplicitSize = false;
|
|
29
|
+
/**
|
|
30
|
+
* Cached explicit width/height. We can't rely on `this.width` / `this.height`
|
|
31
|
+
* during initial sprite creation because `ContainerInteractive` proxies them
|
|
32
|
+
* through `hitArea`, which isn't assigned yet in the constructor. Reading
|
|
33
|
+
* `this.width` before `hitArea` is set returns 0, so we keep the requested
|
|
34
|
+
* dimensions here and consult them in {@link getCardDimensions}.
|
|
35
|
+
*/
|
|
36
|
+
explicitWidth;
|
|
37
|
+
explicitHeight;
|
|
30
38
|
/**
|
|
31
39
|
* Creates a new Card
|
|
32
40
|
* @param params Configuration parameters for the card
|
|
@@ -48,11 +56,19 @@ export class Card extends ContainerInteractive {
|
|
|
48
56
|
this.child = child;
|
|
49
57
|
// Check if explicit size was provided
|
|
50
58
|
this.hasExplicitSize = width !== undefined && height !== undefined;
|
|
51
|
-
|
|
52
|
-
this.
|
|
59
|
+
this.explicitWidth = width;
|
|
60
|
+
this.explicitHeight = height;
|
|
61
|
+
// Create sprite and setup container
|
|
53
62
|
this.createBackgroundSprite(scene);
|
|
54
63
|
this.setupContainer();
|
|
55
64
|
this.hitArea = this.backgroundSprite;
|
|
65
|
+
// Now that hitArea is set, publish the explicit dimensions through the
|
|
66
|
+
// proxy so that consumers reading `card.width` / `card.height` (Row,
|
|
67
|
+
// Column, Stack, ...) see the real box, not 0.
|
|
68
|
+
if (this.hasExplicitSize) {
|
|
69
|
+
this.backgroundSprite.width = this.explicitWidth;
|
|
70
|
+
this.backgroundSprite.height = this.explicitHeight;
|
|
71
|
+
}
|
|
56
72
|
}
|
|
57
73
|
/**
|
|
58
74
|
* Override setSize to regenerate sprites when size changes
|
|
@@ -63,6 +79,8 @@ export class Card extends ContainerInteractive {
|
|
|
63
79
|
setSize(width, height) {
|
|
64
80
|
// Mark that we now have explicit size
|
|
65
81
|
this.hasExplicitSize = true;
|
|
82
|
+
this.explicitWidth = width;
|
|
83
|
+
this.explicitHeight = height;
|
|
66
84
|
// Set size directly on the container to avoid recursion
|
|
67
85
|
this.width = width;
|
|
68
86
|
this.height = height;
|
|
@@ -140,15 +158,6 @@ export class Card extends ContainerInteractive {
|
|
|
140
158
|
this.layout();
|
|
141
159
|
return this;
|
|
142
160
|
}
|
|
143
|
-
/**
|
|
144
|
-
* Creates the white border sprite for the card.
|
|
145
|
-
* @param scene Phaser scene.
|
|
146
|
-
*/
|
|
147
|
-
createWhiteBorderSprite(scene) {
|
|
148
|
-
const whiteBorderTexture = this.createWhiteBorderTexture(scene);
|
|
149
|
-
this.whiteBorderSprite = scene.add.sprite(0, 0, whiteBorderTexture);
|
|
150
|
-
this.whiteBorderSprite.setOrigin(0.5, 0.5);
|
|
151
|
-
}
|
|
152
161
|
/**
|
|
153
162
|
* Creates the background sprite for the card.
|
|
154
163
|
* @param scene Phaser scene.
|
|
@@ -159,20 +168,17 @@ export class Card extends ContainerInteractive {
|
|
|
159
168
|
this.backgroundSprite.setOrigin(0.5, 0.5);
|
|
160
169
|
}
|
|
161
170
|
/**
|
|
162
|
-
* Regenerates the background
|
|
171
|
+
* Regenerates the background texture based on current state.
|
|
163
172
|
*/
|
|
164
173
|
regenerateSprites() {
|
|
165
|
-
// Regenerate textures
|
|
166
|
-
const whiteBorderTexture = this.createWhiteBorderTexture(this.scene);
|
|
167
174
|
const backgroundTexture = this.createBackgroundTexture(this.scene);
|
|
168
|
-
this.whiteBorderSprite.setTexture(whiteBorderTexture);
|
|
169
175
|
this.backgroundSprite.setTexture(backgroundTexture);
|
|
170
176
|
}
|
|
171
177
|
/**
|
|
172
178
|
* Sets up the container with background and child
|
|
173
179
|
*/
|
|
174
180
|
setupContainer() {
|
|
175
|
-
this.add([this.
|
|
181
|
+
this.add([this.backgroundSprite]);
|
|
176
182
|
if (this.child) {
|
|
177
183
|
this.add([this.child]);
|
|
178
184
|
}
|
|
@@ -283,8 +289,11 @@ export class Card extends ContainerInteractive {
|
|
|
283
289
|
let width = 0;
|
|
284
290
|
let height = 0;
|
|
285
291
|
if (this.hasExplicitSize) {
|
|
286
|
-
|
|
287
|
-
|
|
292
|
+
// Prefer the cached constructor/setSize dims — `this.width`/`this.height`
|
|
293
|
+
// depend on `hitArea` being wired, which is not the case on the initial
|
|
294
|
+
// texture generation call during `super`/constructor time.
|
|
295
|
+
width = this.explicitWidth ?? this.width;
|
|
296
|
+
height = this.explicitHeight ?? this.height;
|
|
288
297
|
}
|
|
289
298
|
else if (this.child) {
|
|
290
299
|
const { w: cw, h: ch } = this.measureChild(this.child);
|
|
@@ -299,53 +308,22 @@ export class Card extends ContainerInteractive {
|
|
|
299
308
|
return { width, height };
|
|
300
309
|
}
|
|
301
310
|
/**
|
|
302
|
-
* Creates a texture for the card's
|
|
303
|
-
* @param scene Phaser scene.
|
|
304
|
-
* @returns The texture key.
|
|
305
|
-
*/
|
|
306
|
-
createWhiteBorderTexture(scene) {
|
|
307
|
-
const { width, height } = this.getCardDimensions();
|
|
308
|
-
const textureKey = `card_whiteBorder_${this.borderRadiusPx}_${width}_${height}`;
|
|
309
|
-
// White border is larger on each side
|
|
310
|
-
const borderWidth = width + WHITE_BORDER_TOTAL_EXTRA_PIXELS;
|
|
311
|
-
const borderHeight = height + WHITE_BORDER_TOTAL_EXTRA_PIXELS;
|
|
312
|
-
// Add some padding for texture
|
|
313
|
-
const padding = 8;
|
|
314
|
-
const textureWidth = borderWidth + padding * 2;
|
|
315
|
-
const textureHeight = borderHeight + padding * 2;
|
|
316
|
-
const graphics = scene.add.graphics();
|
|
317
|
-
const maxRadius = Math.floor(Math.min(borderWidth / 2, borderHeight / 2));
|
|
318
|
-
const effectiveRadius = Math.min(this.borderRadiusPx + WHITE_BORDER_RADIUS_EXTRA, maxRadius);
|
|
319
|
-
const finalRadius = Math.max(0, effectiveRadius);
|
|
320
|
-
// White border (outer)
|
|
321
|
-
graphics.fillStyle(Color.hex('white'), 1);
|
|
322
|
-
graphics.fillRoundedRect(padding, padding, borderWidth, borderHeight, finalRadius);
|
|
323
|
-
graphics.generateTexture(textureKey, textureWidth, textureHeight);
|
|
324
|
-
graphics.destroy();
|
|
325
|
-
return textureKey;
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* Creates a texture for the card's background.
|
|
311
|
+
* Creates a texture for the card's background: a flat filled rounded rect.
|
|
329
312
|
* @param scene Phaser scene.
|
|
330
313
|
* @returns The texture key.
|
|
331
314
|
*/
|
|
332
315
|
createBackgroundTexture(scene) {
|
|
333
316
|
const { width, height } = this.getCardDimensions();
|
|
334
317
|
const textureKey = `card_bg_${this.backgroundColorValue}_${this.borderRadiusPx}_${width}_${height}`;
|
|
335
|
-
|
|
336
|
-
const padding = 8;
|
|
318
|
+
const padding = TEXTURE_ANTIALIAS_MARGIN;
|
|
337
319
|
const textureWidth = width + padding * 2;
|
|
338
320
|
const textureHeight = height + padding * 2;
|
|
339
321
|
const graphics = scene.add.graphics();
|
|
340
322
|
const maxRadius = Math.floor(Math.min(width / 2, height / 2));
|
|
341
323
|
const effectiveRadius = Math.min(this.borderRadiusPx, maxRadius);
|
|
342
324
|
const finalRadius = Math.max(0, effectiveRadius);
|
|
343
|
-
// Draw background with white fill and black stroke
|
|
344
325
|
graphics.fillStyle(Color.hex(this.backgroundColorValue), 1);
|
|
345
326
|
graphics.fillRoundedRect(padding, padding, width, height, finalRadius);
|
|
346
|
-
// Black stroke border
|
|
347
|
-
graphics.lineStyle(BLACK_BORDER_THICKNESS, Color.hex('black'), 1);
|
|
348
|
-
graphics.strokeRoundedRect(padding, padding, width, height, finalRadius);
|
|
349
327
|
graphics.generateTexture(textureKey, textureWidth, textureHeight);
|
|
350
328
|
graphics.destroy();
|
|
351
329
|
return textureKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/components/card/card.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EAKL,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAuBhE
|
|
1
|
+
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/components/card/card.ts"],"names":[],"mappings":"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"}
|