phaser-wind 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 (62) hide show
  1. package/README.md +24 -0
  2. package/dist/components/column/column.d.ts +88 -0
  3. package/dist/components/column/column.d.ts.map +1 -0
  4. package/dist/components/column/column.js +143 -0
  5. package/dist/components/column/column.js.map +1 -0
  6. package/dist/components/column/column.spec.d.ts +2 -0
  7. package/dist/components/column/column.spec.d.ts.map +1 -0
  8. package/dist/components/column/column.spec.js +114 -0
  9. package/dist/components/column/column.spec.js.map +1 -0
  10. package/dist/components/column/index.d.ts +2 -0
  11. package/dist/components/column/index.d.ts.map +1 -0
  12. package/dist/components/column/index.js +2 -0
  13. package/dist/components/column/index.js.map +1 -0
  14. package/dist/components/index.d.ts +4 -0
  15. package/dist/components/index.d.ts.map +1 -0
  16. package/dist/components/index.js +4 -0
  17. package/dist/components/index.js.map +1 -0
  18. package/dist/components/layout/index.d.ts +2 -0
  19. package/dist/components/layout/index.d.ts.map +1 -0
  20. package/dist/components/layout/index.js +2 -0
  21. package/dist/components/layout/index.js.map +1 -0
  22. package/dist/components/layout/layout-utils.d.ts +13 -0
  23. package/dist/components/layout/layout-utils.d.ts.map +1 -0
  24. package/dist/components/layout/layout-utils.js +96 -0
  25. package/dist/components/layout/layout-utils.js.map +1 -0
  26. package/dist/components/layout/layout-utils.spec.d.ts +2 -0
  27. package/dist/components/layout/layout-utils.spec.d.ts.map +1 -0
  28. package/dist/components/layout/layout-utils.spec.js +70 -0
  29. package/dist/components/layout/layout-utils.spec.js.map +1 -0
  30. package/dist/components/row/index.d.ts +2 -0
  31. package/dist/components/row/index.d.ts.map +1 -0
  32. package/dist/components/row/index.js +2 -0
  33. package/dist/components/row/index.js.map +1 -0
  34. package/dist/components/row/row.d.ts +87 -0
  35. package/dist/components/row/row.d.ts.map +1 -0
  36. package/dist/components/row/row.js +146 -0
  37. package/dist/components/row/row.js.map +1 -0
  38. package/dist/components/row/row.spec.d.ts +2 -0
  39. package/dist/components/row/row.spec.d.ts.map +1 -0
  40. package/dist/components/row/row.spec.js +114 -0
  41. package/dist/components/row/row.spec.js.map +1 -0
  42. package/dist/core/color.d.ts +2 -0
  43. package/dist/core/color.d.ts.map +1 -1
  44. package/dist/core/color.js +15 -2
  45. package/dist/core/color.js.map +1 -1
  46. package/dist/core/color.spec.js +19 -2
  47. package/dist/core/color.spec.js.map +1 -1
  48. package/dist/index.d.ts +1 -0
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +1 -0
  51. package/dist/index.js.map +1 -1
  52. package/dist/phaser-wind.js +410 -6
  53. package/dist/phaser-wind.min.js +1 -1
  54. package/dist/test-setup.d.ts +2 -0
  55. package/dist/test-setup.d.ts.map +1 -0
  56. package/dist/test-setup.js +35 -0
  57. package/dist/test-setup.js.map +1 -0
  58. package/package.json +1 -1
  59. package/dist/components/column.d.ts +0 -2
  60. package/dist/components/column.d.ts.map +0 -1
  61. package/dist/components/column.js +0 -2
  62. package/dist/components/column.js.map +0 -1
@@ -0,0 +1,70 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { DEFAULT_GAP, getDisplayHeightOf, getDisplayWidthOf, getNormalizedOriginOf, } from './layout-utils';
3
+ // Helper to satisfy typing without importing Phaser types in tests
4
+ const asGO = (o) => o;
5
+ describe('layout-utils', () => {
6
+ it('DEFAULT_GAP should be 8', () => {
7
+ expect(DEFAULT_GAP).toBe(8);
8
+ });
9
+ describe('getDisplayWidthOf', () => {
10
+ it('prefers displayWidth when present', () => {
11
+ const obj = asGO({ displayWidth: 120, width: 200, getBounds: () => ({ width: 300 }) });
12
+ expect(getDisplayWidthOf(obj)).toBe(120);
13
+ });
14
+ it('falls back to width when displayWidth is absent', () => {
15
+ const obj = asGO({ width: 200, getBounds: () => ({ width: 300 }) });
16
+ expect(getDisplayWidthOf(obj)).toBe(200);
17
+ });
18
+ it('falls back to getBounds().width when both displayWidth and width are absent', () => {
19
+ const obj = asGO({ getBounds: () => ({ width: 300 }) });
20
+ expect(getDisplayWidthOf(obj)).toBe(300);
21
+ });
22
+ it('returns 0 when nothing is available', () => {
23
+ const obj = asGO({});
24
+ expect(getDisplayWidthOf(obj)).toBe(0);
25
+ });
26
+ });
27
+ describe('getDisplayHeightOf', () => {
28
+ it('prefers displayHeight when present', () => {
29
+ const obj = asGO({ displayHeight: 110, height: 210, getBounds: () => ({ height: 310 }) });
30
+ expect(getDisplayHeightOf(obj)).toBe(110);
31
+ });
32
+ it('falls back to height when displayHeight is absent', () => {
33
+ const obj = asGO({ height: 210, getBounds: () => ({ height: 310 }) });
34
+ expect(getDisplayHeightOf(obj)).toBe(210);
35
+ });
36
+ it('falls back to getBounds().height when both displayHeight and height are absent', () => {
37
+ const obj = asGO({ getBounds: () => ({ height: 310 }) });
38
+ expect(getDisplayHeightOf(obj)).toBe(310);
39
+ });
40
+ it('returns 0 when nothing is available', () => {
41
+ const obj = asGO({});
42
+ expect(getDisplayHeightOf(obj)).toBe(0);
43
+ });
44
+ });
45
+ describe('getNormalizedOriginOf', () => {
46
+ it('returns originX/Y when provided', () => {
47
+ const obj = asGO({ originX: 0.2, originY: 0.8, displayWidth: 100, displayHeight: 100 });
48
+ expect(getNormalizedOriginOf(obj)).toEqual({ x: 0.2, y: 0.8 });
49
+ });
50
+ it('computes from displayOriginX/Y over displayWidth/Height when originX/Y absent', () => {
51
+ const obj = asGO({ displayOriginX: 25, displayOriginY: 50, displayWidth: 100, displayHeight: 200 });
52
+ // x = 25/100 = 0.25, y = 50/200 = 0.25
53
+ expect(getNormalizedOriginOf(obj)).toEqual({ x: 0.25, y: 0.25 });
54
+ });
55
+ it('defaults to 0.5 when origins are missing and size is zero', () => {
56
+ const obj = asGO({ displayOriginX: 10, displayOriginY: 10, displayWidth: 0, displayHeight: 0 });
57
+ expect(getNormalizedOriginOf(obj)).toEqual({ x: 0.5, y: 0.5 });
58
+ });
59
+ it('uses mixed fallbacks per axis independently', () => {
60
+ const obj = asGO({
61
+ originX: 0.1, // should take precedence on X
62
+ displayOriginY: 30,
63
+ displayHeight: 120, // Y should be 30/120 = 0.25
64
+ displayWidth: 400,
65
+ });
66
+ expect(getNormalizedOriginOf(obj)).toEqual({ x: 0.1, y: 0.25 });
67
+ });
68
+ });
69
+ });
70
+ //# sourceMappingURL=layout-utils.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-utils.spec.js","sourceRoot":"","sources":["../../../src/components/layout/layout-utils.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './row';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/row/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './row';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/row/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
@@ -0,0 +1,87 @@
1
+ import { GameObjects, Scene } from 'phaser';
2
+ /** Vertical alignment options for row items */
3
+ export type VerticalAlign = 'top' | 'center' | 'bottom';
4
+ /** Parameters for creating a Row container */
5
+ export type RowParams = {
6
+ /** The scene this row belongs to */
7
+ scene: Scene;
8
+ /** X coordinate of the row */
9
+ x: number;
10
+ /** Y coordinate of the row */
11
+ y: number;
12
+ /** Gap between elements in pixels */
13
+ gap?: number;
14
+ /** Vertical alignment of elements */
15
+ align?: VerticalAlign;
16
+ /** Initial child elements */
17
+ children?: GameObjects.GameObject[];
18
+ /** Horizontal origin point of the row */
19
+ horizontalOrigin?: 'left' | 'center' | 'right';
20
+ };
21
+ /**
22
+ * Row is a layout container that arranges children horizontally with a gap.
23
+ * The container position (x, y) represents the center of the whole row.
24
+ */
25
+ export declare class Row extends GameObjects.Container {
26
+ /** Gap between elements in pixels */
27
+ private gap;
28
+ /** Vertical alignment of elements */
29
+ private align;
30
+ /** Horizontal origin point of the row */
31
+ private horizontalOrigin;
32
+ /**
33
+ * Creates a new Row container
34
+ * @param params Configuration parameters for the row
35
+ */
36
+ constructor({ scene, x, y, gap, align, children, horizontalOrigin, }: RowParams);
37
+ /**
38
+ * Sets the gap between elements and updates layout
39
+ * @param gap Gap size in pixels
40
+ */
41
+ setGap(gap: number): void;
42
+ /**
43
+ * Sets the vertical alignment and updates layout
44
+ * @param align New vertical alignment
45
+ */
46
+ setAlign(align: VerticalAlign): void;
47
+ /**
48
+ * Adds a single child to the row
49
+ * @param child GameObject to add
50
+ * @param relayout Whether to update layout after adding
51
+ * @returns This row instance for chaining
52
+ */
53
+ addChild(child: GameObjects.GameObject, relayout?: boolean): this;
54
+ /**
55
+ * Adds multiple children to the row
56
+ * @param children Array of GameObjects to add
57
+ * @param relayout Whether to update layout after adding
58
+ * @returns This row instance for chaining
59
+ */
60
+ addChildren(children: GameObjects.GameObject[], relayout?: boolean): this;
61
+ /**
62
+ * Recomputes children's positions and updates this container size
63
+ */
64
+ layout(): void;
65
+ /**
66
+ * Gets the display width of a game object
67
+ * @param child GameObject to measure
68
+ * @returns Display width in pixels
69
+ */
70
+ getDisplayWidth(child: GameObjects.GameObject): number;
71
+ /**
72
+ * Gets the display height of a game object
73
+ * @param child GameObject to measure
74
+ * @returns Display height in pixels
75
+ */
76
+ getDisplayHeight(child: GameObjects.GameObject): number;
77
+ /**
78
+ * Gets the normalized origin point of a game object
79
+ * @param child GameObject to get origin from
80
+ * @returns Object with normalized x,y coordinates of the origin point
81
+ */
82
+ getNormalizedOrigin(child: GameObjects.GameObject): {
83
+ x: number;
84
+ y: number;
85
+ };
86
+ }
87
+ //# sourceMappingURL=row.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row.d.ts","sourceRoot":"","sources":["../../../src/components/row/row.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAS5C,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExD,8CAA8C;AAC9C,MAAM,MAAM,SAAS,GAAG;IACtB,oCAAoC;IACpC,KAAK,EAAE,KAAK,CAAC;IACb,8BAA8B;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,8BAA8B;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,qCAAqC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC;IACpC,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CAChD,CAAC;AAEF;;;GAGG;AACH,qBAAa,GAAI,SAAQ,WAAW,CAAC,SAAS;IAC5C,qCAAqC;IACrC,OAAO,CAAC,GAAG,CAAS;IACpB,qCAAqC;IACrC,OAAO,CAAC,KAAK,CAAgB;IAC7B,yCAAyC;IACzC,OAAO,CAAC,gBAAgB,CAA8B;IAEtD;;;OAGG;gBACS,EACV,KAAK,EACL,CAAC,EACD,CAAC,EACD,GAAiB,EACjB,KAAgB,EAChB,QAAa,EACb,gBAA2B,GAC5B,EAAE,SAAS;IAcZ;;;OAGG;IACI,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKhC;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAK3C;;;;;OAKG;IACI,QAAQ,CACb,KAAK,EAAE,WAAW,CAAC,UAAU,EAC7B,QAAQ,GAAE,OAAc,GACvB,IAAI;IAQP;;;;;OAKG;IACI,WAAW,CAChB,QAAQ,EAAE,WAAW,CAAC,UAAU,EAAE,EAClC,QAAQ,GAAE,OAAc,GACvB,IAAI;IAMP;;OAEG;IACI,MAAM,IAAI,IAAI;IAyDrB;;;;OAIG;IACI,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,GAAG,MAAM;IAI7D;;;;OAIG;IACI,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,GAAG,MAAM;IAI9D;;;;OAIG;IACI,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,GAAG;QACzD,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX;CAGF"}
@@ -0,0 +1,146 @@
1
+ /* eslint-disable max-lines-per-function */
2
+ /* eslint-disable complexity */
3
+ import { GameObjects } from 'phaser';
4
+ import { DEFAULT_GAP, getDisplayHeightOf, getDisplayWidthOf, getNormalizedOriginOf, } from '../layout/layout-utils';
5
+ /**
6
+ * Row is a layout container that arranges children horizontally with a gap.
7
+ * The container position (x, y) represents the center of the whole row.
8
+ */
9
+ export class Row extends GameObjects.Container {
10
+ /** Gap between elements in pixels */
11
+ gap;
12
+ /** Vertical alignment of elements */
13
+ align;
14
+ /** Horizontal origin point of the row */
15
+ horizontalOrigin;
16
+ /**
17
+ * Creates a new Row container
18
+ * @param params Configuration parameters for the row
19
+ */
20
+ constructor({ scene, x, y, gap = DEFAULT_GAP, align = 'center', children = [], horizontalOrigin = 'center', }) {
21
+ super(scene, x, y);
22
+ this.gap = gap;
23
+ this.align = align;
24
+ this.horizontalOrigin = horizontalOrigin;
25
+ if (children.length > 0) {
26
+ this.add(children);
27
+ }
28
+ this.layout();
29
+ }
30
+ /**
31
+ * Sets the gap between elements and updates layout
32
+ * @param gap Gap size in pixels
33
+ */
34
+ setGap(gap) {
35
+ this.gap = gap;
36
+ this.layout();
37
+ }
38
+ /**
39
+ * Sets the vertical alignment and updates layout
40
+ * @param align New vertical alignment
41
+ */
42
+ setAlign(align) {
43
+ this.align = align;
44
+ this.layout();
45
+ }
46
+ /**
47
+ * Adds a single child to the row
48
+ * @param child GameObject to add
49
+ * @param relayout Whether to update layout after adding
50
+ * @returns This row instance for chaining
51
+ */
52
+ addChild(child, relayout = true) {
53
+ this.add(child);
54
+ if (relayout) {
55
+ this.layout();
56
+ }
57
+ return this;
58
+ }
59
+ /**
60
+ * Adds multiple children to the row
61
+ * @param children Array of GameObjects to add
62
+ * @param relayout Whether to update layout after adding
63
+ * @returns This row instance for chaining
64
+ */
65
+ addChildren(children, relayout = true) {
66
+ if (children.length > 0)
67
+ this.add(children);
68
+ if (relayout)
69
+ this.layout();
70
+ return this;
71
+ }
72
+ /**
73
+ * Recomputes children's positions and updates this container size
74
+ */
75
+ layout() {
76
+ const children = this.list;
77
+ if (children.length === 0) {
78
+ this.setSize(0, 0);
79
+ return;
80
+ }
81
+ // Measure sizes and origins
82
+ const entries = children.map(child => ({
83
+ child,
84
+ width: this.getDisplayWidth(child),
85
+ height: this.getDisplayHeight(child),
86
+ origin: this.getNormalizedOrigin(child),
87
+ }));
88
+ const maxHeight = entries.reduce((m, s) => Math.max(m, s.height), 0);
89
+ const totalWidth = entries.reduce((sum, s) => sum + s.width, 0) +
90
+ this.gap * (entries.length - 1);
91
+ // Determine left of content based on horizontalOrigin
92
+ const contentLeftX = this.horizontalOrigin === 'left'
93
+ ? 0
94
+ : this.horizontalOrigin === 'center'
95
+ ? -totalWidth / 2
96
+ : -totalWidth;
97
+ // Walk left to right, aligning considering each child's origin
98
+ let cursorLeftX = contentLeftX;
99
+ for (const { child, width, height, origin } of entries) {
100
+ // Vertical alignment: align top/bottom edges or centers correctly using origin
101
+ let y = 0;
102
+ if (this.align === 'top') {
103
+ // place child's top edge at content top
104
+ y = -maxHeight / 2 + origin.y * height;
105
+ }
106
+ else if (this.align === 'bottom') {
107
+ // place child's bottom edge at content bottom
108
+ y = maxHeight / 2 - (1 - origin.y) * height;
109
+ }
110
+ else {
111
+ // center alignment
112
+ y = (origin.y - 0.5) * height;
113
+ }
114
+ // Horizontal position so that child's left is at cursorLeftX
115
+ const x = cursorLeftX + origin.x * width;
116
+ child.setPosition(x, y);
117
+ cursorLeftX += width + this.gap;
118
+ }
119
+ this.setSize(totalWidth, maxHeight);
120
+ }
121
+ /**
122
+ * Gets the display width of a game object
123
+ * @param child GameObject to measure
124
+ * @returns Display width in pixels
125
+ */
126
+ getDisplayWidth(child) {
127
+ return getDisplayWidthOf(child);
128
+ }
129
+ /**
130
+ * Gets the display height of a game object
131
+ * @param child GameObject to measure
132
+ * @returns Display height in pixels
133
+ */
134
+ getDisplayHeight(child) {
135
+ return getDisplayHeightOf(child);
136
+ }
137
+ /**
138
+ * Gets the normalized origin point of a game object
139
+ * @param child GameObject to get origin from
140
+ * @returns Object with normalized x,y coordinates of the origin point
141
+ */
142
+ getNormalizedOrigin(child) {
143
+ return getNormalizedOriginOf(child);
144
+ }
145
+ }
146
+ //# sourceMappingURL=row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row.js","sourceRoot":"","sources":["../../../src/components/row/row.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=row.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row.spec.d.ts","sourceRoot":"","sources":["../../../src/components/row/row.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,114 @@
1
+ /* eslint-disable no-magic-numbers */
2
+ /* eslint-disable max-lines-per-function */
3
+ import { Scene } from 'phaser';
4
+ import { beforeEach, describe, expect, it } from 'vitest';
5
+ import { Row } from './row';
6
+ class TestChild {
7
+ displayWidth;
8
+ width;
9
+ displayHeight;
10
+ height;
11
+ originX;
12
+ originY;
13
+ displayOriginX;
14
+ displayOriginY;
15
+ lastPosition = null;
16
+ constructor(params = {}) {
17
+ Object.assign(this, params);
18
+ }
19
+ setPosition(x, y) {
20
+ this.lastPosition = { x, y };
21
+ }
22
+ getBounds() {
23
+ return {
24
+ width: this.width ?? this.displayWidth ?? 0,
25
+ height: this.height ?? this.displayHeight ?? 0,
26
+ };
27
+ }
28
+ }
29
+ let scene;
30
+ beforeEach(() => {
31
+ scene = new Scene();
32
+ });
33
+ describe('Row layout', () => {
34
+ it('centers children by default with horizontalOrigin center', () => {
35
+ const a = new TestChild({ displayWidth: 100, displayHeight: 50 });
36
+ const b = new TestChild({ displayWidth: 200, displayHeight: 100 });
37
+ const row = new Row({ scene, x: 0, y: 0, gap: 10, align: 'center', horizontalOrigin: 'center', children: [] });
38
+ row.addChildren([a, b]);
39
+ // totalWidth = 100 + 200 + 10 = 310; contentLeft = -155
40
+ expect(a.lastPosition).toEqual({ x: -155 + 0.5 * 100, y: 0 }); // -105, 0
41
+ expect(b.lastPosition).toEqual({ x: -45 + 0.5 * 200, y: 0 }); // 55, 0
42
+ // width = totalWidth; height = max child height
43
+ expect(row.width).toBe(310);
44
+ expect(row.height).toBe(100);
45
+ });
46
+ it('align top positions children at content top edge', () => {
47
+ const a = new TestChild({ displayWidth: 100, displayHeight: 50 });
48
+ const b = new TestChild({ displayWidth: 200, displayHeight: 100 });
49
+ const row = new Row({ scene, x: 0, y: 0, gap: 10, align: 'top', horizontalOrigin: 'center', children: [a, b] });
50
+ // maxHeight = 100
51
+ expect(a.lastPosition?.y).toBe(-50 + 0.5 * 50); // -25
52
+ expect(b.lastPosition?.y).toBe(-50 + 0.5 * 100); // 0
53
+ expect(row.width).toBe(310);
54
+ expect(row.height).toBe(100);
55
+ });
56
+ it('align bottom positions children at content bottom edge', () => {
57
+ const a = new TestChild({ displayWidth: 100, displayHeight: 50 });
58
+ const b = new TestChild({ displayWidth: 200, displayHeight: 100 });
59
+ new Row({ scene, x: 0, y: 0, gap: 10, align: 'bottom', horizontalOrigin: 'center', children: [a, b] });
60
+ expect(a.lastPosition?.y).toBe(50 - (1 - 0.5) * 50); // 25
61
+ expect(b.lastPosition?.y).toBe(50 - (1 - 0.5) * 100); // 0
62
+ });
63
+ it('horizontalOrigin left places content starting at x=0', () => {
64
+ const a = new TestChild({ displayWidth: 100, displayHeight: 50 });
65
+ const b = new TestChild({ displayWidth: 200, displayHeight: 100 });
66
+ const row = new Row({ scene, x: 0, y: 0, gap: 10, align: 'center', horizontalOrigin: 'left', children: [a, b] });
67
+ expect(a.lastPosition?.x).toBe(0 + 0.5 * 100); // 50
68
+ expect(b.lastPosition?.x).toBe(110 + 0.5 * 200); // 210
69
+ expect(row.width).toBe(310);
70
+ expect(row.height).toBe(100);
71
+ });
72
+ it('respects per-child origin when computing alignment and positions', () => {
73
+ const a = new TestChild({ displayWidth: 100, displayHeight: 50, originX: 0.0, originY: 0.0 });
74
+ const b = new TestChild({ displayWidth: 200, displayHeight: 100, originX: 1.0, originY: 1.0 });
75
+ // totalWidth = 310; left = 0 (horizontalOrigin left); maxHeight = 100
76
+ new Row({ scene, x: 0, y: 0, gap: 10, align: 'top', horizontalOrigin: 'left', children: [a, b] });
77
+ // a: x = 0 + 0*100 = 0; y = -50 + 0*50 = -50
78
+ expect(a.lastPosition).toEqual({ x: 0, y: -50 });
79
+ // cursor = 0 + 100 + 10 = 110; b: x = 110 + 1*200 = 310; y = -50 + 1*100 = 50
80
+ expect(b.lastPosition).toEqual({ x: 310, y: 50 });
81
+ });
82
+ it('setGap and setAlign trigger relayout', () => {
83
+ const a = new TestChild({ displayWidth: 100, displayHeight: 50 });
84
+ const b = new TestChild({ displayWidth: 200, displayHeight: 100 });
85
+ const row = new Row({ scene, x: 0, y: 0, children: [a, b] }); // default gap=8, align=center, horizontalOrigin=center
86
+ // Initial container width with gap=8
87
+ const initialWidth = row.width;
88
+ row.setGap(20); // triggers layout
89
+ const afterWidth = row.width;
90
+ expect(afterWidth).toBe(initialWidth + (20 - 8));
91
+ row.setAlign('top');
92
+ // For align top, y positions as computed earlier with maxHeight=100
93
+ expect(a.lastPosition?.y).toBe(-50 + 0.5 * 50); // -25
94
+ expect(b.lastPosition?.y).toBe(-50 + 0.5 * 100); // 0
95
+ });
96
+ it('addChild/addChildren optionally avoid relayout when requested', () => {
97
+ const a = new TestChild({ displayWidth: 100, displayHeight: 50 });
98
+ const b = new TestChild({ displayWidth: 200, displayHeight: 100 });
99
+ const row = new Row({ scene, x: 0, y: 0, children: [a] });
100
+ // b added without relayout
101
+ row.addChild(b, false);
102
+ const before = b.lastPosition;
103
+ expect(before).toBeNull();
104
+ // layout computes positions
105
+ row.layout();
106
+ expect(b.lastPosition).not.toBeNull();
107
+ });
108
+ it('empty row has size 0,0', () => {
109
+ const row = new Row({ scene, x: 0, y: 0, children: [] });
110
+ expect(row.width).toBe(0);
111
+ expect(row.height).toBe(0);
112
+ });
113
+ });
114
+ //# sourceMappingURL=row.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row.spec.js","sourceRoot":"","sources":["../../../src/components/row/row.spec.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,8 @@ export type Color<T = BaseThemeConfig['colors']> = {
38
38
  rgb(color: ColorToken | keyof T): string;
39
39
  /** Get hex number representation of a color */
40
40
  hex(color: ColorToken | keyof T): number;
41
+ /** Is valid color token */
42
+ isValidColorToken(color: string): boolean;
41
43
  /** Get RGB string for black color */
42
44
  black(): string;
43
45
  /** Get RGB string for white color */
@@ -1 +1 @@
1
- {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/core/color.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,OAAO,CAAC;AAE5C;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAChB,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,EAAE,GACF,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CAAC;AAER;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,GAAG,QAAQ,IAAI,QAAQ,EAAE,GAAG,OAAO,GAAG,OAAO,CAAC;AAiDvE;;;GAGG;AACH;;;;;;;;;GASG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI;IACjD,+CAA+C;IAC/C,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;IACzC,+CAA+C;IAC/C,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;IAEzC,qCAAqC;IACrC,KAAK,IAAI,MAAM,CAAC;IAChB,qCAAqC;IACrC,KAAK,IAAI,MAAM,CAAC;IAChB,0DAA0D;IAC1D,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC/B,yDAAyD;IACzD,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC9B,yDAAyD;IACzD,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC9B,4DAA4D;IAC5D,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC,0DAA0D;IAC1D,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC/B,wDAAwD;IACxD,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7B,2DAA2D;IAC3D,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAChC,0DAA0D;IAC1D,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC/B,2DAA2D;IAC3D,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAChC,yDAAyD;IACzD,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC9B,0DAA0D;IAC1D,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC/B,4DAA4D;IAC5D,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC,yDAAyD;IACzD,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC9B,yDAAyD;IACzD,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC9B,wDAAwD;IACxD,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7B,yDAAyD;IACzD,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC9B,2DAA2D;IAC3D,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAChC,2DAA2D;IAC3D,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAChC,2DAA2D;IAC3D,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAChC,4DAA4D;IAC5D,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC,yDAAyD;IACzD,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC9B,yDAAyD;IACzD,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAE9B,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAClC,yDAAyD;IACzD,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC,yDAAyD;IACzD,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC,4DAA4D;IAC5D,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAClC,wDAAwD;IACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAChC,2DAA2D;IAC3D,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACnC,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAClC,2DAA2D;IAC3D,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACnC,yDAAyD;IACzD,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAClC,4DAA4D;IAC5D,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACpC,yDAAyD;IACzD,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC,yDAAyD;IACzD,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC,wDAAwD;IACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAChC,yDAAyD;IACzD,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC,2DAA2D;IAC3D,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACnC,2DAA2D;IAC3D,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACnC,2DAA2D;IAC3D,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACnC,4DAA4D;IAC5D,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACpC,yDAAyD;IACzD,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC,yDAAyD;IACzD,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC,qCAAqC;IACrC,QAAQ,IAAI,MAAM,CAAC;IACnB,qCAAqC;IACrC,QAAQ,IAAI,MAAM,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,EACvD,aAAa,CAAC,KACb,KAAK,CAAC,CAAC,CAqJT,CAAC;AAEF;;;;;;GAMG;AAEH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAEjB,CAAC"}
1
+ {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/core/color.ts"],"names":[],"mappings":"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"}
@@ -87,7 +87,7 @@ export const createColor = (themeColors) => {
87
87
  if (colorFromTheme) {
88
88
  return rgb(colorFromTheme);
89
89
  }
90
- const parts = color.split('-');
90
+ const parts = color?.split('-') ?? [];
91
91
  if (parts.length === 2) {
92
92
  const colorKey = parts[0];
93
93
  const shade = parts[1];
@@ -109,6 +109,18 @@ export const createColor = (themeColors) => {
109
109
  }
110
110
  return colorValue;
111
111
  };
112
+ const isValidColorToken = (color) => {
113
+ if (color === 'black' || color === 'white') {
114
+ return true;
115
+ }
116
+ const parts = color.split('-');
117
+ if (parts.length === 2) {
118
+ const colorKey = parts[0];
119
+ const shade = parts[1];
120
+ return colorKey in palette && shade in palette[colorKey];
121
+ }
122
+ return false;
123
+ };
112
124
  /**
113
125
  * Get hex number representation of a color
114
126
  * @param color - Color token, theme color key or valid color string
@@ -124,7 +136,7 @@ export const createColor = (themeColors) => {
124
136
  if (colorFromTheme) {
125
137
  return hex(colorFromTheme);
126
138
  }
127
- const parts = color.split('-');
139
+ const parts = color?.split('-') ?? [];
128
140
  if (parts.length === 2) {
129
141
  const colorKey = parts[0];
130
142
  const shade = parts[1];
@@ -146,6 +158,7 @@ export const createColor = (themeColors) => {
146
158
  const api = {
147
159
  rgb,
148
160
  hex,
161
+ isValidColorToken,
149
162
  black: () => rgb('black'),
150
163
  white: () => rgb('white'),
151
164
  slate: (shade) => rgb(`slate-${shade}`),
@@ -1 +1 @@
1
- {"version":3,"file":"color.js","sourceRoot":"","sources":["../../src/core/color.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../../src/core/color.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,mDAAmD;AACnD,MAAM,SAAS,GAAG,gCAAgC,CAAC;AA8CnD;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAU,EAAE;IACtD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,GAAG,GAAG,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,GAAG,GAAG,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,GAAG,GAAG,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAU,EAAE;IACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;IAEhC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,yBAAyB,GAAG,CAAC,UAAkB,EAAU,EAAE;IAC/D,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC,CAAC;AA4HF;;;;GAIG;AACH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,WAAc,EACJ,EAAE;IACZ;;;;OAIG;IACH,MAAM,iBAAiB,GAAG,CAAC,GAAyB,EAAqB,EAAE;QACzE,IAAI,WAAW,IAAI,GAAG,IAAK,WAAsB,EAAE,CAAC;YAClD,OAAO,WAAW,CAAC,GAAc,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,GAAG,GAAG,CAAC,KAA2B,EAAU,EAAE;QAClD,2DAA2D;QAC3D,6DAA6D;QAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAA6B,CAAC,CAAC;QACxE,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,GAAG,CAAC,cAA4B,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,KAAK,GAAI,KAA4B,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAa,CAAC;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAa,CAAC;YACnC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,YAAY,CAAC,KAAe,CAAC,EAAE,CAAC;oBAClC,OAAO,KAAe,CAAC;gBACzB,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,IAAI,KAAK,aAAa,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,KAA0B,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,YAAY,CAAC,KAAe,CAAC,EAAE,CAAC;gBAClC,OAAO,KAAe,CAAC;YACzB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAe,aAAa,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAW,EAAE;QACnD,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAI,KAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAa,CAAC;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAa,CAAC;YACnC,OAAO,QAAQ,IAAI,OAAO,IAAI,KAAK,IAAK,OAAO,CAAC,QAAgC,CAA8B,CAAC;QACjH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,GAAG,GAAG,CAAC,KAA2B,EAAU,EAAE;QAClD,oBAAoB;QACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAA6B,CAAC,CAAC;QACxE,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,GAAG,CAAC,cAA4B,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,KAAK,GAAI,KAA4B,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAa,CAAC;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAa,CAAC;YACnC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,YAAY,CAAC,KAAe,CAAC,EAAE,CAAC;oBAClC,OAAO,yBAAyB,CAAC,KAAe,CAAC,CAAC;gBACpD,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,IAAI,KAAK,aAAa,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,yBAAyB,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,cAAc,GAAG,OAAO,CAAC,KAA0B,CAAW,CAAC;QACrE,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;YACjC,OAAO,yBAAyB,CAAC,cAAc,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAe,aAAa,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,MAAM,GAAG,GAAa;QACpB,GAAG;QACH,GAAG;QACH,iBAAiB;QAEjB,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;QACzB,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;QACzB,KAAK,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,EAAE,CAAC;QACjD,IAAI,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QAC/C,IAAI,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QAC/C,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC;QACrD,KAAK,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,EAAE,CAAC;QACjD,GAAG,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC;QAC7C,MAAM,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC;QACnD,KAAK,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,EAAE,CAAC;QACjD,MAAM,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC;QACnD,IAAI,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QAC/C,KAAK,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,EAAE,CAAC;QACjD,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC;QACrD,IAAI,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QAC/C,IAAI,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QAC/C,GAAG,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC;QAC7C,IAAI,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QAC/C,MAAM,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC;QACnD,MAAM,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC;QACnD,MAAM,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC;QACnD,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC;QACrD,IAAI,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QAC/C,IAAI,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QAE/C,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;QAC5B,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;QAC5B,QAAQ,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,EAAE,CAAC;QACpD,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QAClD,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QAClD,UAAU,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC;QACxD,QAAQ,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,EAAE,CAAC;QACpD,MAAM,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC;QAChD,SAAS,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC;QACtD,QAAQ,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,EAAE,CAAC;QACpD,SAAS,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC;QACtD,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QAClD,QAAQ,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,EAAE,CAAC;QACpD,UAAU,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC;QACxD,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QAClD,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QAClD,MAAM,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC;QAChD,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QAClD,SAAS,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC;QACtD,SAAS,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC;QACtD,SAAS,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC;QACtD,UAAU,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC;QACxD,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;QAClD,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;KACnD,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,wCAAwC;AACxC,MAAM,CAAC,MAAM,KAAK,GAAiC,WAAW,CAE5D,EAA2B,CAAC,CAAC"}
@@ -107,8 +107,25 @@ describe('ColorPicker', () => {
107
107
  primary: 'red-500',
108
108
  secondary: 'slate-50',
109
109
  });
110
- expect(color.rgb('primary')).toBe('rgb(239, 68, 68)');
111
- expect(color.rgb('secondary')).toBe('rgb(248, 250, 252)');
110
+ expect(color.rgb('primary')).toBe(RED_500_RGB);
111
+ expect(color.rgb('secondary')).toBe(SLATE_50_RGB);
112
+ });
113
+ });
114
+ describe('isValidColorToken method', () => {
115
+ it('should return true for valid color token', () => {
116
+ expect(color.isValidColorToken('red-500')).toBe(true);
117
+ expect(color.isValidColorToken('slate-50')).toBe(true);
118
+ expect(color.isValidColorToken('black')).toBe(true);
119
+ expect(color.isValidColorToken('white')).toBe(true);
120
+ });
121
+ it('should return false for invalid color token', () => {
122
+ expect(color.isValidColorToken('invalid-color')).toBe(false);
123
+ expect(color.isValidColorToken('red-999')).toBe(false);
124
+ expect(color.isValidColorToken('purples-500')).toBe(false);
125
+ expect(color.isValidColorToken('rgb(239, 68, 68)')).toBe(false);
126
+ expect(color.isValidColorToken('rgba(239, 68, 68, 1)')).toBe(false);
127
+ expect(color.isValidColorToken('oklch(40% 0.268 34.568)')).toBe(false);
128
+ expect(color.isValidColorToken('#000000')).toBe(false);
112
129
  });
113
130
  });
114
131
  describe('default Color constant (no theme)', () => {