@kurot/ui 1.1.12 → 2.1.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 (71) hide show
  1. package/README.md +76 -4
  2. package/dist/kurot/components/Button.d.ts +4 -3
  3. package/dist/kurot/components/Button.d.ts.map +1 -1
  4. package/dist/kurot/components/Button.js +20 -10
  5. package/dist/kurot/components/Button.js.map +1 -1
  6. package/dist/kurot/components/ComboBox.d.ts +32 -14
  7. package/dist/kurot/components/ComboBox.d.ts.map +1 -1
  8. package/dist/kurot/components/ComboBox.js +68 -38
  9. package/dist/kurot/components/ComboBox.js.map +1 -1
  10. package/dist/kurot/components/Component.d.ts +31 -13
  11. package/dist/kurot/components/Component.d.ts.map +1 -1
  12. package/dist/kurot/components/Component.js +40 -30
  13. package/dist/kurot/components/Component.js.map +1 -1
  14. package/dist/kurot/components/HSlider.d.ts +3 -3
  15. package/dist/kurot/components/HSlider.d.ts.map +1 -1
  16. package/dist/kurot/components/HSlider.js +16 -14
  17. package/dist/kurot/components/HSlider.js.map +1 -1
  18. package/dist/kurot/components/ItemRenderer.d.ts +9 -10
  19. package/dist/kurot/components/ItemRenderer.d.ts.map +1 -1
  20. package/dist/kurot/components/ItemRenderer.js +18 -20
  21. package/dist/kurot/components/ItemRenderer.js.map +1 -1
  22. package/dist/kurot/components/ListBase.d.ts +6 -2
  23. package/dist/kurot/components/ListBase.d.ts.map +1 -1
  24. package/dist/kurot/components/ListBase.js +6 -2
  25. package/dist/kurot/components/ListBase.js.map +1 -1
  26. package/dist/kurot/components/Panel.d.ts +3 -3
  27. package/dist/kurot/components/Panel.d.ts.map +1 -1
  28. package/dist/kurot/components/Panel.js +26 -23
  29. package/dist/kurot/components/Panel.js.map +1 -1
  30. package/dist/kurot/components/ProgressBar.d.ts +12 -5
  31. package/dist/kurot/components/ProgressBar.d.ts.map +1 -1
  32. package/dist/kurot/components/ProgressBar.js +43 -23
  33. package/dist/kurot/components/ProgressBar.js.map +1 -1
  34. package/dist/kurot/components/RadioButton.d.ts +3 -1
  35. package/dist/kurot/components/RadioButton.d.ts.map +1 -1
  36. package/dist/kurot/components/RadioButton.js +3 -1
  37. package/dist/kurot/components/RadioButton.js.map +1 -1
  38. package/dist/kurot/components/ScrollBarBase.d.ts +2 -0
  39. package/dist/kurot/components/ScrollBarBase.d.ts.map +1 -1
  40. package/dist/kurot/components/ScrollBarBase.js +11 -0
  41. package/dist/kurot/components/ScrollBarBase.js.map +1 -1
  42. package/dist/kurot/components/Scroller.d.ts +3 -3
  43. package/dist/kurot/components/Scroller.d.ts.map +1 -1
  44. package/dist/kurot/components/Scroller.js +38 -40
  45. package/dist/kurot/components/Scroller.js.map +1 -1
  46. package/dist/kurot/components/Skin.d.ts +1 -1
  47. package/dist/kurot/components/Skin.js +1 -1
  48. package/dist/kurot/components/SliderBase.d.ts +13 -4
  49. package/dist/kurot/components/SliderBase.d.ts.map +1 -1
  50. package/dist/kurot/components/SliderBase.js +28 -7
  51. package/dist/kurot/components/SliderBase.js.map +1 -1
  52. package/dist/kurot/components/TabBar.d.ts +2 -2
  53. package/dist/kurot/components/TabBar.d.ts.map +1 -1
  54. package/dist/kurot/components/TabBar.js +17 -15
  55. package/dist/kurot/components/TabBar.js.map +1 -1
  56. package/dist/kurot/components/TextInput.d.ts +2 -2
  57. package/dist/kurot/components/TextInput.d.ts.map +1 -1
  58. package/dist/kurot/components/TextInput.js +31 -31
  59. package/dist/kurot/components/TextInput.js.map +1 -1
  60. package/dist/kurot/components/VSlider.d.ts +3 -3
  61. package/dist/kurot/components/VSlider.d.ts.map +1 -1
  62. package/dist/kurot/components/VSlider.js +16 -14
  63. package/dist/kurot/components/VSlider.js.map +1 -1
  64. package/dist/kurot/components/ViewStack.d.ts +3 -1
  65. package/dist/kurot/components/ViewStack.d.ts.map +1 -1
  66. package/dist/kurot/components/ViewStack.js +3 -1
  67. package/dist/kurot/components/ViewStack.js.map +1 -1
  68. package/dist/kurot/components/index.d.ts +1 -1
  69. package/dist/kurot/components/index.d.ts.map +1 -1
  70. package/dist/kurot/components/index.js.map +1 -1
  71. package/package.json +1 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  UI component framework for [@kurot/core](https://github.com/kurot-engine/kurot/tree/main/packages/core). Migrated from Egret EUI, rewritten in modern TypeScript with clean class inheritance — no namespace hacks, no prototype manipulation.
4
4
 
5
- > **Stable (1.1.9).** Requires `@kurot/core@^1.0.12`. Targets ES2022 + evergreen browsers, same as core.
5
+ > **Current release: 2.1.0.** Requires `@kurot/core@^1.0.12`. Targets ES2022 + evergreen browsers, same as core.
6
6
 
7
7
  For the full list of changes in this release, see [CHANGELOG.md](./CHANGELOG.md).
8
8
 
@@ -77,24 +77,94 @@ invalidateProperties / invalidateSize / invalidateDisplayList
77
77
  ### Skin system
78
78
 
79
79
  ```ts
80
- import { Skin, State, SetProperty } from '@kurot/ui';
80
+ import { Rect, Skin, State, SetProperty } from '@kurot/ui';
81
81
 
82
82
  class MyButtonSkin extends Skin {
83
+ public bg: Rect;
84
+
83
85
  constructor() {
84
86
  super();
85
- this.skinParts = ['labelDisplay'];
87
+
88
+ this.bg = new Rect(120, 36, 0x6c5ce7);
89
+ this.skinParts = ['bg'];
90
+ this.elementsContent = [this.bg];
86
91
  this.states = [
87
92
  new State('up'),
88
93
  new State('down', [new SetProperty('bg', 'fillColor', 0x5a4bd1)]),
89
94
  new State('disabled', [new SetProperty('bg', 'fillColor', 0x636e72)]),
90
95
  ];
91
- // build visual children...
92
96
  }
93
97
  }
94
98
 
95
99
  btn.skinName = MyButtonSkin;
96
100
  ```
97
101
 
102
+ ### Typed skin parts and lifecycle
103
+
104
+ UI 2.0 attaches a skin atomically. The complete part set is available in
105
+ `onSkinReady()` and remains available through `onSkinRemoved()`. Accessing
106
+ `skinParts` outside that interval throws, which prevents code from silently
107
+ using a partial or stale skin.
108
+
109
+ The Kurot CLI generates `SkinPartsMap` entries and narrows the public
110
+ `skinParts` accessor on project classes. It resolves explicit string-literal
111
+ `skinName` assignments, configured reusable-component pairs, and unambiguous
112
+ `<ClassName>Skin` naming conventions. The runtime skin name remains the source
113
+ of truth whenever it is assigned explicitly:
114
+
115
+ ```ts
116
+ import { TouchEvent } from '@kurot/core';
117
+ import { Component } from '@kurot/ui';
118
+
119
+ export class ConfirmPanel extends Component {
120
+ public constructor() {
121
+ super();
122
+ this.skinName = 'game.ui.ConfirmPanelSkin';
123
+ }
124
+
125
+ protected override onSkinReady(): void {
126
+ super.onSkinReady();
127
+ this.skinParts.btnConfirm.addEventListener(
128
+ TouchEvent.TOUCH_TAP,
129
+ this.onConfirm,
130
+ );
131
+ this.skinParts.lblMessage.text = 'Continue?';
132
+ }
133
+
134
+ protected override onSkinRemoved(): void {
135
+ this.skinParts.btnConfirm.removeEventListener(
136
+ TouchEvent.TOUCH_TAP,
137
+ this.onConfirm,
138
+ );
139
+ super.onSkinRemoved();
140
+ }
141
+
142
+ private onConfirm = (): void => {
143
+ // Handle confirmation.
144
+ };
145
+ }
146
+ ```
147
+
148
+ Library code without CLI-generated host declarations can still select a shape
149
+ explicitly with `Component<'game.ui.ConfirmPanelSkin'>` or
150
+ `ItemRenderer<'game.ui.ConfirmItemSkin'>`. `skinParts` is the only public,
151
+ read-only part view, so component subclasses, mediators, and composition code
152
+ use the same API.
153
+
154
+ When a CLI project has exactly one compiled `<ClassName>Skin` candidate, the
155
+ generated host declaration also covers skins supplied externally by a Theme or
156
+ List. An `ItemRenderer` named `MultiplierIR` can therefore use
157
+ `this.skinParts` without repeating `ui.MultiplierIRSkin` in its base type.
158
+
159
+ Use `onSkinReady()` only for work that requires skin parts. Keep ordinary
160
+ one-time component initialization in `createChildren()`. Remove listeners and
161
+ other bindings created for a skin in `onSkinRemoved()` so replacing a skin
162
+ cannot retain stale objects.
163
+
164
+ The old incremental APIs `setSkinPart()`, `partAdded()`, and `partRemoved()`
165
+ were removed in 2.0. Skin part names are no longer copied onto the component as
166
+ dynamic properties; use `this.skinParts.<name>` during the ready lifecycle.
167
+
98
168
  ## Components
99
169
 
100
170
  ### Basic Controls
@@ -297,6 +367,8 @@ cross-framework ranking.
297
367
  | Component base | `namespace` + `mixin` | Standard class inheritance |
298
368
  | Layout state | Prototype-injected | `UIState` delegation |
299
369
  | EXML runtime | Built-in parser | Compile-time only (`@kurot/cli`) |
370
+ | Skin parts | Incremental dynamic fields | Atomic typed `skinParts` |
371
+ | Skin lifecycle | `partAdded` / `partRemoved` | `onSkinReady` / `onSkinRemoved` |
300
372
  | `thisObject` | Required in event listeners | Not needed — use arrow functions |
301
373
  | Virtual layout | Default on | Opt-in via `useVirtualLayout = true` |
302
374
  | i18n | Built-in | Not supported |
@@ -1,8 +1,8 @@
1
1
  import { Component } from './Component.js';
2
2
  import type { Texture } from '@kurot/core';
3
3
  import type { IDisplayText } from '../core/IDisplayText.js';
4
- import type { Image } from './Image.js';
5
- import type { Label } from './Label.js';
4
+ import { Image } from './Image.js';
5
+ import { Label } from './Label.js';
6
6
  /**
7
7
  * Button component with label, icon, and state management.
8
8
  *
@@ -34,8 +34,9 @@ export declare class Button extends Component implements IDisplayText {
34
34
  get touchCaptured(): boolean;
35
35
  get enabled(): boolean;
36
36
  set enabled(value: boolean);
37
- partAdded(partName: string, instance: unknown): void;
38
37
  $onRemoveFromStage(): void;
38
+ protected onSkinReady(): void;
39
+ protected onSkinRemoved(): void;
39
40
  /**
40
41
  * Return the current view state, layering the selected state on top of
41
42
  * the base up/down/disabled states.
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAS,OAAO,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC;;;;;;;GAOG;AACH,qBAAa,MAAO,SAAQ,SAAU,YAAW,YAAY;IAGrD,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,WAAW,CAAC,EAAE,KAAK,CAAC;IAE3B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,KAAK,CAAC,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO,CAAC,mBAAmB,CAAS;;IAYpC,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAK7B;IAED,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,IAAI,IAAI,MAAM,GAAG,OAAO,GAAG,SAAS,CAE9C;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,EAKlD;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAKjC;IAED,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,OAAO,EAE/B;IAED,IAAW,aAAa,IAAI,OAAO,CAElC;IAED,IAAoB,OAAO,IAAI,OAAO,CAErC;IAED,IAAoB,OAAO,CAAC,KAAK,EAAE,OAAO,EAIzC;IAIe,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IASpD,kBAAkB,IAAI,IAAI;IAK1C;;;;;;;;OAQG;cACgB,eAAe,IAAI,MAAM;IAoB5C;;;;OAIG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IAYhC,OAAO,CAAC,aAAa,CAUnB;IAEF,OAAO,CAAC,gBAAgB,CAQtB;IAEF,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,mBAAmB;CAK3B"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/Button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAS,OAAO,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC;;;;;;;GAOG;AACH,qBAAa,MAAO,SAAQ,SAAU,YAAW,YAAY;IAGrD,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,WAAW,CAAC,EAAE,KAAK,CAAC;IAE3B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,KAAK,CAAC,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAC,CAAQ;IAC5B,OAAO,CAAC,mBAAmB,CAAS;;IAYpC,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAK7B;IAED,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,IAAW,IAAI,IAAI,MAAM,GAAG,OAAO,GAAG,SAAS,CAE9C;IAED,IAAW,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,EAKlD;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,QAAQ,CAAC,KAAK,EAAE,OAAO,EAKjC;IAED,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED,IAAW,MAAM,CAAC,KAAK,EAAE,OAAO,EAE/B;IAED,IAAW,aAAa,IAAI,OAAO,CAElC;IAED,IAAoB,OAAO,IAAI,OAAO,CAErC;IAED,IAAoB,OAAO,CAAC,KAAK,EAAE,OAAO,EAIzC;IAIe,kBAAkB,IAAI,IAAI;cAOvB,WAAW,IAAI,IAAI;cAanB,aAAa,IAAI,IAAI;IAMxC;;;;;;;;OAQG;cACgB,eAAe,IAAI,MAAM;IAkB5C;;;;OAIG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IAYhC,OAAO,CAAC,aAAa,CAUnB;IAEF,OAAO,CAAC,gBAAgB,CAQtB;IAEF,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,mBAAmB;CAK3B"}
@@ -1,5 +1,7 @@
1
1
  import { Component } from './Component.js';
2
2
  import { Event, TouchEvent, DisplayObject } from '@kurot/core';
3
+ import { Image } from './Image.js';
4
+ import { Label } from './Label.js';
3
5
  import { PropertyEvent } from '../events/PropertyEvent.js';
4
6
  /**
5
7
  * Button component with label, icon, and state management.
@@ -77,19 +79,28 @@ export class Button extends Component {
77
79
  this.invalidateState();
78
80
  }
79
81
  // ── Override methods ──────────────────────────────────────────────────
80
- partAdded(partName, instance) {
81
- super.partAdded(partName, instance);
82
- if (partName === 'labelDisplay' && this.labelDisplay) {
83
- this.labelDisplay.text = this._label;
84
- }
85
- else if (partName === 'iconDisplay' && this.iconDisplay) {
86
- this.iconDisplay.source = this._icon;
87
- }
88
- }
89
82
  $onRemoveFromStage() {
90
83
  this._cancelTouchCapture();
91
84
  super.$onRemoveFromStage();
92
85
  }
86
+ // ── Protected methods ─────────────────────────────────────────────────
87
+ onSkinReady() {
88
+ super.onSkinReady();
89
+ const { labelDisplay, iconDisplay } = this.skinParts;
90
+ if (labelDisplay instanceof Label) {
91
+ this.labelDisplay = labelDisplay;
92
+ labelDisplay.text = this._label;
93
+ }
94
+ if (iconDisplay instanceof Image) {
95
+ this.iconDisplay = iconDisplay;
96
+ iconDisplay.source = this._icon;
97
+ }
98
+ }
99
+ onSkinRemoved() {
100
+ this.labelDisplay = undefined;
101
+ this.iconDisplay = undefined;
102
+ super.onSkinRemoved();
103
+ }
93
104
  /**
94
105
  * Return the current view state, layering the selected state on top of
95
106
  * the base up/down/disabled states.
@@ -118,7 +129,6 @@ export class Button extends Component {
118
129
  return selectedState;
119
130
  return state === 'disabled' ? 'disabled' : 'down';
120
131
  }
121
- // ── Protected methods ─────────────────────────────────────────────────
122
132
  /**
123
133
  * Called when the user taps the button (touch ends within the button bounds).
124
134
  * Subclasses should override this to perform the button action.
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/kurot/components/Button.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/kurot/components/Button.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ import { List } from './List.js';
3
3
  import { Scroller } from './Scroller.js';
4
4
  import type { ArrayCollection } from '../collections/ArrayCollection.js';
5
5
  import type { IDisplayText } from '../core/IDisplayText.js';
6
- import type { Button } from './Button.js';
7
- import type { Label } from './Label.js';
6
+ import { Button } from './Button.js';
7
+ import { Label } from './Label.js';
8
8
  /**
9
9
  * ComboBox — a drop-down selection component.
10
10
  *
@@ -37,16 +37,24 @@ export declare class ComboBox extends Component implements IDisplayText {
37
37
  private _dropDownParentIndex;
38
38
  private _dropDownLocalMatrix?;
39
39
  constructor();
40
- /** The data provider for the drop-down list items. */
40
+ /**
41
+ * The data provider for the drop-down list items.
42
+ */
41
43
  get dataProvider(): ArrayCollection | undefined;
42
44
  set dataProvider(value: ArrayCollection | undefined);
43
- /** Index of the currently selected item, or -1 if nothing is selected. */
45
+ /**
46
+ * Index of the currently selected item, or `-1` if nothing is selected.
47
+ */
44
48
  get selectedIndex(): number;
45
49
  set selectedIndex(value: number);
46
- /** The currently selected data item. */
50
+ /**
51
+ * The currently selected data item.
52
+ */
47
53
  get selectedItem(): unknown;
48
54
  set selectedItem(value: unknown);
49
- /** Whether the drop-down list is currently visible. */
55
+ /**
56
+ * Whether the drop-down list is currently visible.
57
+ */
50
58
  get isOpen(): boolean;
51
59
  set isOpen(value: boolean);
52
60
  /**
@@ -61,30 +69,40 @@ export declare class ComboBox extends Component implements IDisplayText {
61
69
  */
62
70
  get labelFunction(): ((item: unknown) => string) | undefined;
63
71
  set labelFunction(value: ((item: unknown) => string) | undefined);
64
- /** Placeholder text shown when no item is selected. */
72
+ /**
73
+ * Placeholder text shown when no item is selected.
74
+ */
65
75
  get prompt(): string;
66
76
  set prompt(value: string);
67
- /** The displayed text (selected item label or prompt). */
77
+ /**
78
+ * The displayed text, either the selected item label or the prompt.
79
+ */
68
80
  get text(): string;
69
81
  get textColor(): number;
70
82
  set textColor(value: number);
71
- protected getCurrentState(): string;
72
- partAdded(partName: string, instance: unknown): void;
73
- partRemoved(partName: string, instance: unknown): void;
74
83
  $onRemoveFromStage(): void;
75
84
  commitProperties(): void;
76
- /** Open the drop-down list. */
85
+ /**
86
+ * Open the drop-down list.
87
+ */
77
88
  open(): void;
78
- /** Close the drop-down list. */
89
+ /**
90
+ * Close the drop-down list.
91
+ */
79
92
  close(): void;
80
93
  /**
81
94
  * Convert a data item to a label string using `labelFunction` or `labelField`.
82
95
  */
83
96
  itemToLabel(item: unknown): string;
97
+ protected onSkinReady(): void;
98
+ protected onSkinRemoved(): void;
99
+ protected getCurrentState(): string;
84
100
  private _updateSelectedItem;
85
101
  private _updateLabel;
86
102
  private _updateDisplayOrder;
87
- /** Move only the popup to the stage so layout siblings cannot cover it. */
103
+ /**
104
+ * Move only the popup to the stage so layout siblings cannot cover it.
105
+ */
88
106
  private _moveDropDownToStage;
89
107
  private _restoreDropDownParent;
90
108
  private _onTriggerTap;
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/ComboBox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../../src/kurot/components/ComboBox.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import { TouchEvent, Event, DisplayObject } from '@kurot/core';
2
2
  import { Component } from './Component.js';
3
3
  import { List } from './List.js';
4
4
  import { Scroller } from './Scroller.js';
5
+ import { Button } from './Button.js';
6
+ import { Label } from './Label.js';
5
7
  /**
6
8
  * ComboBox — a drop-down selection component.
7
9
  *
@@ -41,7 +43,9 @@ export class ComboBox extends Component {
41
43
  this.addEventListener(TouchEvent.TOUCH_TAP, this._onTriggerTap);
42
44
  }
43
45
  // ── Getters / Setters ─────────────────────────────────────────────────
44
- /** The data provider for the drop-down list items. */
46
+ /**
47
+ * The data provider for the drop-down list items.
48
+ */
45
49
  get dataProvider() {
46
50
  return this._dataProvider;
47
51
  }
@@ -54,7 +58,9 @@ export class ComboBox extends Component {
54
58
  }
55
59
  this.invalidateProperties();
56
60
  }
57
- /** Index of the currently selected item, or -1 if nothing is selected. */
61
+ /**
62
+ * Index of the currently selected item, or `-1` if nothing is selected.
63
+ */
58
64
  get selectedIndex() {
59
65
  return this._selectedIndex;
60
66
  }
@@ -65,7 +71,9 @@ export class ComboBox extends Component {
65
71
  this._updateSelectedItem();
66
72
  this.invalidateState();
67
73
  }
68
- /** The currently selected data item. */
74
+ /**
75
+ * The currently selected data item.
76
+ */
69
77
  get selectedItem() {
70
78
  return this._selectedItem;
71
79
  }
@@ -81,7 +89,9 @@ export class ComboBox extends Component {
81
89
  this.invalidateState();
82
90
  }
83
91
  }
84
- /** Whether the drop-down list is currently visible. */
92
+ /**
93
+ * Whether the drop-down list is currently visible.
94
+ */
85
95
  get isOpen() {
86
96
  return this._isOpen;
87
97
  }
@@ -121,7 +131,9 @@ export class ComboBox extends Component {
121
131
  this._labelFunction = value;
122
132
  this._updateLabel();
123
133
  }
124
- /** Placeholder text shown when no item is selected. */
134
+ /**
135
+ * Placeholder text shown when no item is selected.
136
+ */
125
137
  get prompt() {
126
138
  return this._prompt;
127
139
  }
@@ -131,7 +143,9 @@ export class ComboBox extends Component {
131
143
  this.labelDisplay.text = value;
132
144
  }
133
145
  }
134
- /** The displayed text (selected item label or prompt). */
146
+ /**
147
+ * The displayed text, either the selected item label or the prompt.
148
+ */
135
149
  get text() {
136
150
  if (this.labelDisplay)
137
151
  return this.labelDisplay.text;
@@ -146,35 +160,6 @@ export class ComboBox extends Component {
146
160
  }
147
161
  }
148
162
  // ── Override methods ──────────────────────────────────────────────────
149
- getCurrentState() {
150
- if (!this.enabled)
151
- return 'disabled';
152
- if (this._isOpen)
153
- return 'open';
154
- return 'normal';
155
- }
156
- partAdded(partName, instance) {
157
- super.partAdded(partName, instance);
158
- if (partName === 'labelDisplay' && instance === this.labelDisplay) {
159
- this._updateLabel();
160
- }
161
- if (partName === 'list' && instance instanceof List) {
162
- instance.dataProvider = this._dataProvider;
163
- instance.addEventListener(Event.CHANGE, this._onListChange);
164
- }
165
- if (partName === 'dropDown' && instance instanceof Scroller) {
166
- instance.visible = this._isOpen;
167
- }
168
- }
169
- partRemoved(partName, instance) {
170
- if (partName === 'dropDown' && instance === this.dropDown) {
171
- this.close();
172
- }
173
- super.partRemoved(partName, instance);
174
- if (partName === 'list' && instance instanceof List) {
175
- instance.removeEventListener(Event.CHANGE, this._onListChange);
176
- }
177
- }
178
163
  $onRemoveFromStage() {
179
164
  this.close();
180
165
  super.$onRemoveFromStage();
@@ -187,11 +172,15 @@ export class ComboBox extends Component {
187
172
  }
188
173
  }
189
174
  // ── Public methods ────────────────────────────────────────────────────
190
- /** Open the drop-down list. */
175
+ /**
176
+ * Open the drop-down list.
177
+ */
191
178
  open() {
192
179
  this.isOpen = true;
193
180
  }
194
- /** Close the drop-down list. */
181
+ /**
182
+ * Close the drop-down list.
183
+ */
195
184
  close() {
196
185
  this.isOpen = false;
197
186
  }
@@ -213,6 +202,45 @@ export class ComboBox extends Component {
213
202
  }
214
203
  return String(item);
215
204
  }
205
+ // ── Protected methods ─────────────────────────────────────────────────
206
+ onSkinReady() {
207
+ super.onSkinReady();
208
+ const { labelDisplay, button, list, dropDown } = this.skinParts;
209
+ if (labelDisplay instanceof Label) {
210
+ this.labelDisplay = labelDisplay;
211
+ this._updateLabel();
212
+ }
213
+ if (button instanceof Button) {
214
+ this.button = button;
215
+ }
216
+ if (list instanceof List) {
217
+ this.list = list;
218
+ list.dataProvider = this._dataProvider;
219
+ list.addEventListener(Event.CHANGE, this._onListChange);
220
+ }
221
+ if (dropDown instanceof Scroller) {
222
+ this.dropDown = dropDown;
223
+ dropDown.visible = this._isOpen;
224
+ }
225
+ }
226
+ onSkinRemoved() {
227
+ if (this.dropDown) {
228
+ this.close();
229
+ }
230
+ this.list?.removeEventListener(Event.CHANGE, this._onListChange);
231
+ this.labelDisplay = undefined;
232
+ this.button = undefined;
233
+ this.list = undefined;
234
+ this.dropDown = undefined;
235
+ super.onSkinRemoved();
236
+ }
237
+ getCurrentState() {
238
+ if (!this.enabled)
239
+ return 'disabled';
240
+ if (this._isOpen)
241
+ return 'open';
242
+ return 'normal';
243
+ }
216
244
  // ── Private methods ───────────────────────────────────────────────────
217
245
  _updateSelectedItem() {
218
246
  if (this._dataProvider && this._selectedIndex >= 0 && this._selectedIndex < this._dataProvider.length) {
@@ -257,7 +285,9 @@ export class ComboBox extends Component {
257
285
  this._openParentIndex = -1;
258
286
  }
259
287
  }
260
- /** Move only the popup to the stage so layout siblings cannot cover it. */
288
+ /**
289
+ * Move only the popup to the stage so layout siblings cannot cover it.
290
+ */
261
291
  _moveDropDownToStage() {
262
292
  const dropDown = this.dropDown;
263
293
  const stage = this.stage;
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../../../src/kurot/components/ComboBox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../../../src/kurot/components/ComboBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAkC,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,QAAS,SAAQ,SAAS;IACtC,yEAAyE;IAElE,YAAY,CAAS;IACrB,MAAM,CAAU;IAChB,QAAQ,CAAY;IACpB,IAAI,CAAQ;IAEX,aAAa,CAAmB;IAChC,cAAc,GAAG,CAAC,CAAC,CAAC;IACpB,aAAa,CAAU;IACvB,WAAW,GAAG,OAAO,CAAC;IACtB,cAAc,CAA6B;IAC3C,OAAO,GAAG,KAAK,CAAC;IAChB,OAAO,GAAG,EAAE,CAAC;IACb,gBAAgB,GAAG,CAAC,CAAC,CAAC;IACtB,eAAe,CAA0B;IACzC,oBAAoB,GAAG,CAAC,CAAC,CAAC;IAC1B,oBAAoB,CAAU;IAEtC,yEAAyE;IAEzE;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACjE,CAAC;IAED,yEAAyE;IAEzE;;OAEG;IACH,IAAW,YAAY;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IAED,IAAW,YAAY,CAAC,KAAkC;QACzD,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK;YAAE,OAAO;QACzC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAW,aAAa;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IAED,IAAW,aAAa,CAAC,KAAa;QACrC,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK;YAAE,OAAO;QAC1C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAW,YAAY;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IAED,IAAW,YAAY,CAAC,KAAc;QACrC,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK;YAAE,OAAO;QACzC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,eAAe,EAAE,CAAC;QACxB,CAAC;IACF,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,IAAW,MAAM,CAAC,KAAc;QAC/B,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK;YAAE,OAAO;QACnC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;QAC/B,CAAC;IACF,CAAC;IAED;;;OAGG;IACH,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,IAAW,UAAU,CAAC,KAAa;QAClC,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK;YAAE,OAAO;QACvC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,IAAW,aAAa;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IAED,IAAW,aAAa,CAAC,KAA8C;QACtE,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK;YAAE,OAAO;QAC1C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,IAAW,MAAM,CAAC,KAAa;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC9C,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC;QAChC,CAAC;IACF,CAAC;IAED;;OAEG;IACH,IAAW,IAAI;QACd,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QACrD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7C,CAAC;IAED,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,YAAY,EAAE,SAAS,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,IAAW,SAAS,CAAC,KAAa;QACjC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC;QACrC,CAAC;IACF,CAAC;IAED,yEAAyE;IAEzD,kBAAkB;QACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEe,gBAAgB;QAC/B,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzB,4BAA4B;QAC5B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YAClE,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC/C,CAAC;IACF,CAAC;IAED,yEAAyE;IAEzE;;OAEG;IACI,IAAI;QACV,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,KAAK;QACX,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,IAAa;QAC/B,IAAI,IAAI,IAAI,IAAI;YAAE,OAAO,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,IAA+B,CAAC;QAC5C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC;YACjD,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,yEAAyE;IAEtD,WAAW;QAC7B,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAChE,IAAI,YAAY,YAAY,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;YACjC,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,CAAC;QACD,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,QAAQ,YAAY,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACjC,CAAC;IACF,CAAC;IAEkB,aAAa;QAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,KAAK,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEkB,eAAe;QACjC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,UAAU,CAAC;QACrC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC;QAChC,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,yEAAyE;IAEjE,mBAAmB;QAC1B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YACvG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAEO,YAAY;QACnB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAC/B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QACvC,CAAC;IACF,CAAC;IAEO,mBAAmB,CAAC,MAAe;QAC1C,IAAI,MAAM,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAAE,OAAO;QAClD,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAAE,OAAO;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,4DAA4D;QAC5D,IAAK,MAA0C,CAAC,MAAM;YAAE,OAAO;QAC/D,IAAI,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,CAAC;QAChC,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QAErE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC,KAAK,EAAE,CAAC;QAC9D,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7B,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzB,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,sBAAsB;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACzC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAElD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACrF,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;QACtC,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,aAAa,GAAG,CAAC,CAAQ,EAAQ,EAAE;QAC1C,iEAAiE;QACjE,qEAAqE;QACrE,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,YAAY,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5G,OAAO;QACR,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;IAC7B,CAAC,CAAC;IAEM,aAAa,GAAG,CAAC,EAAS,EAAQ,EAAE;QAC3C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;YAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC5B,CAAC;QACD,wBAAwB;QACxB,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC,CAAC;CACF"}
@@ -19,16 +19,28 @@ export interface ComponentEvents extends DisplayObjectEvents {
19
19
  [UIEvent.CLOSING]: UIEvent;
20
20
  [UIEvent.MOVE]: UIEvent;
21
21
  }
22
+ /**
23
+ * Project-generated skin part declarations augment this interface.
24
+ *
25
+ * Each key is a skin class name and each value is the exact set of parts
26
+ * exported by that skin.
27
+ */
28
+ export interface SkinPartsMap {
29
+ }
30
+ /**
31
+ * Resolve the generated skin parts for a skin class name.
32
+ */
33
+ export type SkinPartsOf<TSkin extends string> = TSkin extends keyof SkinPartsMap ? SkinPartsMap[TSkin] : Readonly<Record<string, unknown>>;
22
34
  /**
23
35
  * Base class for all skinnable UI components.
24
36
  *
25
37
  * Subclasses should:
26
38
  * 1. Override `getCurrentState()` to return the current view-state name.
27
- * 2. Override `partAdded()` to bind skin parts to component logic.
28
- * 3. Override `partRemoved()` to clean up skin part bindings.
39
+ * 2. Override `onSkinReady()` for setup that needs the complete skin.
40
+ * 3. Override `onSkinRemoved()` to clean up complete-skin bindings.
29
41
  * 4. Override `createChildren()` to perform one-time initialization.
30
42
  */
31
- export declare class Component extends Sprite implements IUIComponent, ILayoutTarget, IUIOwner {
43
+ export declare class Component<TSkin extends string = string> extends Sprite implements IUIComponent, ILayoutTarget, IUIOwner {
32
44
  readonly ui: UIState;
33
45
  skinNameExplicitlySet: boolean;
34
46
  private _hostComponentKey?;
@@ -39,6 +51,8 @@ export declare class Component extends Sprite implements IUIComponent, ILayoutTa
39
51
  private _explicitTouchChildren;
40
52
  private _explicitState;
41
53
  private _stateIsDirty;
54
+ private _skinReady;
55
+ private _skinParts;
42
56
  constructor();
43
57
  /**
44
58
  * Key used to look up the default skin in the active Theme.
@@ -117,12 +131,14 @@ export declare class Component extends Sprite implements IUIComponent, ILayoutTa
117
131
  set scrollH(_v: number);
118
132
  get scrollV(): number;
119
133
  set scrollV(_v: number);
120
- _applySkinName(skinName: string): void;
121
134
  /**
122
- * Bind a skin part instance to this component.
123
- * Called automatically when a skin is attached.
135
+ * Parts exported by the attached skin.
136
+ *
137
+ * Access is only valid after the skin has completed attachment. Generated
138
+ * declarations provide the exact part names and types for known skins.
124
139
  */
125
- setSkinPart(partName: string, instance: unknown): void;
140
+ get skinParts(): Readonly<SkinPartsOf<TSkin>>;
141
+ _applySkinName(skinName: string): void;
126
142
  /**
127
143
  * Whether the display object receives touch events.
128
144
  *
@@ -167,17 +183,19 @@ export declare class Component extends Sprite implements IUIComponent, ILayoutTa
167
183
  commitProperties(): void;
168
184
  measure(): void;
169
185
  updateDisplayList(w: number, h: number): void;
186
+ /**
187
+ * Whether all parts for the current skin have been attached.
188
+ */
189
+ protected get skinReady(): boolean;
170
190
  protected setSkin(skin: Skin | undefined): void;
171
191
  /**
172
- * Called when a skin part is added. Override to bind event listeners
173
- * or apply cached property values to the part.
192
+ * Called after the complete skin and all of its parts have been attached.
174
193
  */
175
- protected partAdded(_partName: string, _instance: unknown): void;
194
+ protected onSkinReady(): void;
176
195
  /**
177
- * Called when a skin part is removed. Override to clean up listeners
178
- * and cached references.
196
+ * Called before the current skin and its complete part set are detached.
179
197
  */
180
- protected partRemoved(_partName: string, _instance: unknown): void;
198
+ protected onSkinRemoved(): void;
181
199
  /**
182
200
  * Return the current view-state name. Override in subclasses.
183
201
  */