@kurot/ui-runtime 0.2.0 → 0.2.2

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 (28) hide show
  1. package/README.md +17 -7
  2. package/dist/kurot/runtime/builtins/applyControlProperties.d.ts.map +1 -1
  3. package/dist/kurot/runtime/builtins/applyControlProperties.js +43 -3
  4. package/dist/kurot/runtime/builtins/applyControlProperties.js.map +1 -1
  5. package/dist/kurot/runtime/builtins/componentFactories.d.ts.map +1 -1
  6. package/dist/kurot/runtime/builtins/componentFactories.js +3 -1
  7. package/dist/kurot/runtime/builtins/componentFactories.js.map +1 -1
  8. package/dist/kurot/runtime/createKurotUI.d.ts.map +1 -1
  9. package/dist/kurot/runtime/createKurotUI.js +10 -3
  10. package/dist/kurot/runtime/createKurotUI.js.map +1 -1
  11. package/dist/kurot/runtime/index.d.ts +1 -1
  12. package/dist/kurot/runtime/index.d.ts.map +1 -1
  13. package/dist/kurot/runtime/materializeAppearance.d.ts.map +1 -1
  14. package/dist/kurot/runtime/materializeAppearance.js +23 -2
  15. package/dist/kurot/runtime/materializeAppearance.js.map +1 -1
  16. package/dist/kurot/runtime/materializeComponentInstance.d.ts.map +1 -1
  17. package/dist/kurot/runtime/materializeComponentInstance.js +6 -1
  18. package/dist/kurot/runtime/materializeComponentInstance.js.map +1 -1
  19. package/dist/kurot/runtime/materializeNode.d.ts.map +1 -1
  20. package/dist/kurot/runtime/materializeNode.js +2 -1
  21. package/dist/kurot/runtime/materializeNode.js.map +1 -1
  22. package/dist/kurot/runtime/states/createReusableComponentStateController.d.ts +7 -0
  23. package/dist/kurot/runtime/states/createReusableComponentStateController.d.ts.map +1 -0
  24. package/dist/kurot/runtime/states/createReusableComponentStateController.js +86 -0
  25. package/dist/kurot/runtime/states/createReusableComponentStateController.js.map +1 -0
  26. package/dist/kurot/runtime/types.d.ts +30 -1
  27. package/dist/kurot/runtime/types.d.ts.map +1 -1
  28. package/package.json +3 -3
package/README.md CHANGED
@@ -11,15 +11,17 @@ const result = createKurotUI(document, { assets });
11
11
  stage.addChild(result.root);
12
12
  ```
13
13
 
14
- The runtime supports `kui.Group`, `kui.Label`, `kui.Image`, `kui.Rect`, and
15
- `kui.Button`, including their audited inherited properties, children, layout
16
- descriptors, and nine-slice rectangles. Format-v2 component assets are expanded
17
- with parameter bindings, variants, part overrides, and projected Slot content.
18
- Appearance assets become native Kurot skins and states.
14
+ The runtime supports `kui.Group`, `kui.Label`, `kui.Image`, `kui.Rect`,
15
+ `kui.Button`, `kui.ToggleButton`, and `kui.ProgressBar`, including their audited
16
+ inherited properties, children, layout descriptors, and nine-slice rectangles.
17
+ ProgressBar appearances bind live thumb and label parts, so authored values
18
+ drive the real runtime clipping and label behavior. Reusable component assets
19
+ are expanded with parameter bindings, variants, part overrides, and projected
20
+ Slot content. Appearance assets become native Kurot skins and states, including
21
+ the selected appearance variant.
19
22
 
20
23
  Version 0.2 performs full-tree creation. It does not yet provide incremental
21
- reconciliation, dynamic reusable-component state activation, appearance-variant
22
- selection, bindings, actions, or transitions.
24
+ reconciliation, bindings, actions, or transitions.
23
25
 
24
26
  The result also provides a stable node lookup for editor selection and event
25
27
  wiring:
@@ -27,8 +29,16 @@ wiring:
27
29
  ```ts
28
30
  const startButton = result.instances.get('startButton');
29
31
  const internalLabel = result.instances.get('startButton/label');
32
+
33
+ const state = result.stateControllers.get('startButton');
34
+ state?.setState('disabled');
35
+ state?.clearState();
30
36
  ```
31
37
 
38
+ Reusable-component state controllers apply Contract state overrides at runtime
39
+ and restore the exact pre-state values when cleared. Controllers are isolated
40
+ per component instance; an unknown state throws `KurotUIRuntimeError`.
41
+
32
42
  Design tokens resolve from the supplied `UIAssetRegistry`. Resource references
33
43
  use their registered key by default; applications can provide
34
44
  `resolveResource(reference, definition)` to return the runtime value expected by
@@ -1 +1 @@
1
- {"version":3,"file":"applyControlProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyControlProperties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,GACV,OAAO,CAkBT"}
1
+ {"version":3,"file":"applyControlProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyControlProperties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,GACV,OAAO,CAWT"}
@@ -1,11 +1,19 @@
1
- import { Button } from '@kurot/ui';
1
+ import { Button, ProgressBar } from '@kurot/ui';
2
2
  import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
3
3
  /**
4
4
  * Applies one property owned by a built-in interactive control.
5
5
  */
6
6
  export function applyControlProperty(target, name, value, path) {
7
- if (!(target instanceof Button))
8
- return false;
7
+ if (target instanceof Button && applyButtonProperty(target, name, value, path)) {
8
+ return true;
9
+ }
10
+ if (target instanceof ProgressBar &&
11
+ applyProgressBarProperty(target, name, value, path)) {
12
+ return true;
13
+ }
14
+ return false;
15
+ }
16
+ function applyButtonProperty(target, name, value, path) {
9
17
  switch (name) {
10
18
  case 'icon':
11
19
  target.icon = requireString(value, path);
@@ -23,6 +31,27 @@ export function applyControlProperty(target, name, value, path) {
23
31
  return false;
24
32
  }
25
33
  }
34
+ function applyProgressBarProperty(target, name, value, path) {
35
+ switch (name) {
36
+ case 'direction':
37
+ target.direction = requireDirection(value, path);
38
+ return true;
39
+ case 'maximum':
40
+ target.maximum = requireNumber(value, path);
41
+ return true;
42
+ case 'minimum':
43
+ target.minimum = requireNumber(value, path);
44
+ return true;
45
+ case 'slideDuration':
46
+ target.slideDuration = requireNumber(value, path);
47
+ return true;
48
+ case 'value':
49
+ target.value = requireNumber(value, path);
50
+ return true;
51
+ default:
52
+ return false;
53
+ }
54
+ }
26
55
  function requireBoolean(value, path) {
27
56
  if (typeof value === 'boolean')
28
57
  return value;
@@ -33,6 +62,17 @@ function requireString(value, path) {
33
62
  return value;
34
63
  throw invalidValue('string', path);
35
64
  }
65
+ function requireDirection(value, path) {
66
+ if (value === 'btt' || value === 'ltr' || value === 'rtl' || value === 'ttb') {
67
+ return value;
68
+ }
69
+ throw invalidValue('btt, ltr, rtl, or ttb', path);
70
+ }
71
+ function requireNumber(value, path) {
72
+ if (typeof value === 'number' && Number.isFinite(value))
73
+ return value;
74
+ throw invalidValue('number', path);
75
+ }
36
76
  function invalidValue(type, path) {
37
77
  return new KurotUIRuntimeError('invalid-property', `Runtime property must be ${type}.`, path);
38
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"applyControlProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyControlProperties.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;GAEG;AACH,MAAM,UAAU,oBAAoB,CACnC,MAAqB,EACrB,IAAY,EACZ,KAAsB,EACtB,IAAY;IAEZ,IAAI,CAAC,CAAC,MAAM,YAAY,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,MAAM;YACV,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC;QACb,KAAK,OAAO;YACX,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACb,KAAK,UAAU;YACd,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACb,KAAK,QAAQ;YACZ,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACb;YACC,OAAO,KAAK,CAAC;IACf,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,KAAsB,EAAE,IAAY;IAC3D,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CAAC,KAAsB,EAAE,IAAY;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY;IAC/C,OAAO,IAAI,mBAAmB,CAC7B,kBAAkB,EAClB,4BAA4B,IAAI,GAAG,EACnC,IAAI,CACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"applyControlProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyControlProperties.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;GAEG;AACH,MAAM,UAAU,oBAAoB,CACnC,MAAqB,EACrB,IAAY,EACZ,KAAsB,EACtB,IAAY;IAEZ,IAAI,MAAM,YAAY,MAAM,IAAI,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QAChF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IACC,MAAM,YAAY,WAAW;QAC7B,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAClD,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAC3B,MAAc,EACd,IAAY,EACZ,KAAsB,EACtB,IAAY;IAEZ,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,MAAM;YACV,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC;QACb,KAAK,OAAO;YACX,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACb,KAAK,UAAU;YACd,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACb,KAAK,QAAQ;YACZ,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACb;YACC,OAAO,KAAK,CAAC;IACf,CAAC;AACF,CAAC;AAED,SAAS,wBAAwB,CAChC,MAAmB,EACnB,IAAY,EACZ,KAAsB,EACtB,IAAY;IAEZ,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,WAAW;YACf,MAAM,CAAC,SAAS,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACb,KAAK,SAAS;YACb,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACb,KAAK,SAAS;YACb,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACb,KAAK,eAAe;YACnB,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QACb,KAAK,OAAO;YACX,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACb;YACC,OAAO,KAAK,CAAC;IACf,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,KAAsB,EAAE,IAAY;IAC3D,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CAAC,KAAsB,EAAE,IAAY;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,gBAAgB,CACxB,KAAsB,EACtB,IAAY;IAEZ,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QAC9E,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,YAAY,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,aAAa,CAAC,KAAsB,EAAE,IAAY;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY;IAC/C,OAAO,IAAI,mBAAmB,CAC7B,kBAAkB,EAClB,4BAA4B,IAAI,GAAG,EACnC,IAAI,CACJ,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"componentFactories.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/componentFactories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAWjD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,aAAa,CAAC,GAAG,SAAS,CAEjF"}
1
+ {"version":3,"file":"componentFactories.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/componentFactories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAqBjD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,aAAa,CAAC,GAAG,SAAS,CAEjF"}
@@ -1,10 +1,12 @@
1
- import { Button, Group, Image, Label, Rect } from '@kurot/ui';
1
+ import { Button, Group, Image, Label, ProgressBar, Rect, ToggleButton, } from '@kurot/ui';
2
2
  const BUILT_IN_FACTORIES = {
3
3
  'kui.Button': () => new Button(),
4
4
  'kui.Group': () => new Group(),
5
5
  'kui.Image': () => new Image(),
6
6
  'kui.Label': () => new Label(),
7
+ 'kui.ProgressBar': () => new ProgressBar(),
7
8
  'kui.Rect': () => new Rect(),
9
+ 'kui.ToggleButton': () => new ToggleButton(),
8
10
  };
9
11
  /**
10
12
  * Returns the built-in factory for one canonical Kurot UI component type.
@@ -1 +1 @@
1
- {"version":3,"file":"componentFactories.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/componentFactories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE9D,MAAM,kBAAkB,GAAkD;IACzE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,EAAE;IAChC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE;IAC9B,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE;IAC9B,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE;IAC9B,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC7C,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"componentFactories.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/componentFactories.ts"],"names":[],"mappings":"AACA,OAAO,EACN,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,WAAW,EACX,IAAI,EACJ,YAAY,GACZ,MAAM,WAAW,CAAC;AAEnB,MAAM,kBAAkB,GAAkD;IACzE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,EAAE;IAChC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE;IAC9B,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE;IAC9B,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE;IAC9B,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,WAAW,EAAE;IAC1C,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;IAC5B,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,YAAY,EAAE;CAC5C,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC7C,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createKurotUI.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/createKurotUI.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,KAAK,EACX,oBAAoB,EAEpB,qBAAqB,EACrB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,aAAa,CAC5B,QAAQ,EAAE,UAAU,EACpB,OAAO,GAAE,oBAAyB,GAChC,qBAAqB,CAgCvB"}
1
+ {"version":3,"file":"createKurotUI.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/createKurotUI.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,KAAK,EACX,oBAAoB,EAEpB,qBAAqB,EACrB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,aAAa,CAC5B,QAAQ,EAAE,UAAU,EACpB,OAAO,GAAE,oBAAyB,GAChC,qBAAqB,CAqCvB"}
@@ -20,23 +20,30 @@ export function createKurotUI(document, options = {}) {
20
20
  assets,
21
21
  instances: new Map(),
22
22
  resolveResource: options.resolveResource ?? (reference => reference.key),
23
+ stateControllers: new Map(),
23
24
  types: new Map(),
24
25
  };
25
26
  const root = materializeNode(document.root, '$.root', '', context);
26
- return Object.freeze({ root, instances: context.instances });
27
+ return Object.freeze({
28
+ root,
29
+ instances: context.instances,
30
+ stateControllers: context.stateControllers,
31
+ });
27
32
  }
28
33
  function createRuntimeAssetRegistry(document, source) {
29
34
  const registry = new UIAssetRegistry();
30
35
  for (const asset of source?.listAssets() ?? []) {
31
- if (asset.id !== document.id)
36
+ if (asset.id !== document.id) {
32
37
  registry.registerAsset(asset);
38
+ }
33
39
  }
34
40
  registry.registerAsset(document);
35
41
  for (const resource of source?.listResources() ?? []) {
36
42
  registry.registerResource(resource);
37
43
  }
38
- for (const token of source?.listTokens() ?? [])
44
+ for (const token of source?.listTokens() ?? []) {
39
45
  registry.registerToken(token);
46
+ }
40
47
  return registry;
41
48
  }
42
49
  //# sourceMappingURL=createKurotUI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createKurotUI.js","sourceRoot":"","sources":["../../../src/kurot/runtime/createKurotUI.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,+BAA+B,EAC/B,eAAe,EACf,uBAAuB,EACvB,kBAAkB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAOvD;;GAEG;AACH,MAAM,UAAU,aAAa,CAC5B,QAAoB,EACpB,UAAgC,EAAE;IAElC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,mBAAmB,CAC5B,kBAAkB,EAClB,0CAA0C,EAC1C,GAAG,EACH,mBAAmB,CACnB,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,IAAI,+BAA+B,EAAE,CAAC;IACzE,MAAM,MAAM,GAAG,0BAA0B,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,mBAAmB,CAC5B,kBAAkB,EAClB,8CAA8C,EAC9C,GAAG,EACH,WAAW,CACX,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAA2B;QACvC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,MAAM;QACN,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;QACxE,KAAK,EAAE,IAAI,GAAG,EAAE;KAChB,CAAC;IACF,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,0BAA0B,CAClC,QAAoB,EACpB,MAAwB;IAExB,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE;YAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IACD,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;QACtD,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;QAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9E,OAAO,QAAQ,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"createKurotUI.js","sourceRoot":"","sources":["../../../src/kurot/runtime/createKurotUI.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,+BAA+B,EAC/B,eAAe,EACf,uBAAuB,EACvB,kBAAkB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAOvD;;GAEG;AACH,MAAM,UAAU,aAAa,CAC5B,QAAoB,EACpB,UAAgC,EAAE;IAElC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,mBAAmB,CAC5B,kBAAkB,EAClB,0CAA0C,EAC1C,GAAG,EACH,mBAAmB,CACnB,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,IAAI,+BAA+B,EAAE,CAAC;IACzE,MAAM,MAAM,GAAG,0BAA0B,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,mBAAmB,CAC5B,kBAAkB,EAClB,8CAA8C,EAC9C,GAAG,EACH,WAAW,CACX,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAA2B;QACvC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,MAAM;QACN,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;QACxE,gBAAgB,EAAE,IAAI,GAAG,EAAE;QAC3B,KAAK,EAAE,IAAI,GAAG,EAAE;KAChB,CAAC;IACF,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,MAAM,CAAC;QACpB,IAAI;QACJ,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;KAC1C,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAClC,QAAoB,EACpB,MAAwB;IAExB,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC;YAC9B,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;IACD,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;QACtD,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;QAChD,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export { createKurotUI } from './createKurotUI.js';
2
2
  export { KurotUIRuntimeError } from './KurotUIRuntimeError.js';
3
- export type { CreateKurotUIOptions, KurotUIComponentAdapter, KurotUIResourceResolver, KurotUICreationResult, KurotUIRuntimeErrorCode, } from './types.js';
3
+ export type { CreateKurotUIOptions, KurotUIComponentAdapter, KurotUIResourceResolver, KurotUICreationResult, KurotUIRuntimeErrorCode, KurotUIStateController, } from './types.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EACX,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,GACvB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EACX,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,GACtB,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"materializeAppearance.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/materializeAppearance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAc,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAI7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,GAC7B,IAAI,CAuBN"}
1
+ {"version":3,"file":"materializeAppearance.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/materializeAppearance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAc,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAK7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,GAC7B,IAAI,CAwBN"}
@@ -1,4 +1,5 @@
1
1
  import { Component, SetProperty, Skin, State } from '@kurot/ui';
2
+ import { applyRuntimeProperty } from './applyRuntimeProperty.js';
2
3
  import { materializeNode, qualifyNodeId } from './materializeNode.js';
3
4
  import { KurotUIRuntimeError } from './KurotUIRuntimeError.js';
4
5
  import { resolvePropertyValue } from './resolvePropertyValue.js';
@@ -14,6 +15,7 @@ export function applyAppearance(target, node, hostIdentity, path, context) {
14
15
  const appearance = requireAppearance(node.appearance.assetId, path, context);
15
16
  const scope = `${hostIdentity}@appearance:${appearance.id}`;
16
17
  const root = materializeNode(appearance.root, `$.assets[${JSON.stringify(appearance.id)}].root`, scope, context);
18
+ applyAppearanceVariant(node.appearance.variant, appearance, scope, context);
17
19
  const skin = new Skin();
18
20
  skin.elementsContent = [root];
19
21
  exposeAppearanceNodes(skin, appearance.root, scope, context);
@@ -21,10 +23,28 @@ export function applyAppearance(target, node, hostIdentity, path, context) {
21
23
  skin.states = createStates(appearance, context);
22
24
  target.skinName = skin;
23
25
  }
26
+ function applyAppearanceVariant(name, appearance, scope, context) {
27
+ if (name === undefined)
28
+ return;
29
+ const definition = appearance.contract.variants[name];
30
+ if (!definition)
31
+ return;
32
+ const path = `$.assets[${JSON.stringify(appearance.id)}].contract.variants.${name}`;
33
+ for (let index = 0; index < definition.overrides.length; index++) {
34
+ const override = definition.overrides[index];
35
+ const identity = qualifyNodeId(scope, override.targetId);
36
+ const target = context.instances.get(identity);
37
+ const type = context.types.get(identity);
38
+ if (!target || !type)
39
+ continue;
40
+ applyRuntimeProperty(target, type, override.property, override.value, `${path}.overrides[${index}].value`, context);
41
+ }
42
+ }
24
43
  function exposeAppearanceNodes(skin, node, scope, context) {
25
44
  const target = context.instances.get(qualifyNodeId(scope, node.id));
26
- if (target)
45
+ if (target) {
27
46
  setSkinValue(skin, node.id, target);
47
+ }
28
48
  for (const child of node.children) {
29
49
  exposeAppearanceNodes(skin, child, scope, context);
30
50
  }
@@ -34,8 +54,9 @@ function exposeParts(skin, appearance, scope, context) {
34
54
  for (const name of names) {
35
55
  const part = appearance.contract.parts[name];
36
56
  const target = context.instances.get(qualifyNodeId(scope, part.nodeId));
37
- if (target)
57
+ if (target) {
38
58
  setSkinValue(skin, name, target);
59
+ }
39
60
  }
40
61
  skin.skinParts = names;
41
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"materializeAppearance.js","sourceRoot":"","sources":["../../../src/kurot/runtime/materializeAppearance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"materializeAppearance.js","sourceRoot":"","sources":["../../../src/kurot/runtime/materializeAppearance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"materializeComponentInstance.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/materializeComponentInstance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAIX,MAAM,EACN,MAAM,oBAAoB,CAAC;AAU5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,wBAAgB,4BAA4B,CAC3C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,sBAAsB,GAC7B,aAAa,CAuBf"}
1
+ {"version":3,"file":"materializeComponentInstance.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/materializeComponentInstance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAIX,MAAM,EACN,MAAM,oBAAoB,CAAC;AAW5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,wBAAgB,4BAA4B,CAC3C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,sBAAsB,GAC7B,aAAa,CAoCf"}
@@ -2,6 +2,7 @@ import { applyRuntimeProperty } from './applyRuntimeProperty.js';
2
2
  import { applyAppearance } from './materializeAppearance.js';
3
3
  import { appendRuntimeChild, applyNodeProperties, materializeNode, qualifyNodeId, } from './materializeNode.js';
4
4
  import { KurotUIRuntimeError } from './KurotUIRuntimeError.js';
5
+ import { createReusableComponentStateController } from './states/createReusableComponentStateController.js';
5
6
  /**
6
7
  * Materializes one reusable component reference and its instance-local changes.
7
8
  */
@@ -18,8 +19,12 @@ export function materializeComponentInstance(node, path, parentScope, context) {
18
19
  applyOverrides(specification, source.contract, identity, path, context);
19
20
  projectSlots(specification, source, identity, parentScope, path, context);
20
21
  applyNodeProperties(root, node, path, context);
21
- if (node.appearance)
22
+ if (node.appearance) {
22
23
  applyAppearance(root, node, identity, path, context);
24
+ }
25
+ if (Object.keys(source.contract.states).length > 0) {
26
+ context.stateControllers.set(identity, createReusableComponentStateController(source.contract, identity, `$.assets[${JSON.stringify(source.id)}].contract`, context));
27
+ }
23
28
  return root;
24
29
  }
25
30
  function applyVariant(instance, contract, scope, path, context) {
@@ -1 +1 @@
1
- {"version":3,"file":"materializeComponentInstance.js","sourceRoot":"","sources":["../../../src/kurot/runtime/materializeComponentInstance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"materializeComponentInstance.js","sourceRoot":"","sources":["../../../src/kurot/runtime/materializeComponentInstance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"materializeNode.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/materializeNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAMjD,OAAO,KAAK,EACX,uBAAuB,EACvB,sBAAsB,EACtB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,sBAAsB,GAC7B,aAAa,CAiBf;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,GAC7B,IAAI,CAWN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,uBAAuB,GAC/B,IAAI,CAcN"}
1
+ {"version":3,"file":"materializeNode.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/materializeNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAMjD,OAAO,KAAK,EACX,uBAAuB,EACvB,sBAAsB,EACtB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,sBAAsB,GAC7B,aAAa,CAmBf;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,GAC7B,IAAI,CAWN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,uBAAuB,GAC/B,IAAI,CAcN"}
@@ -21,8 +21,9 @@ export function materializeNode(node, path, scope, context) {
21
21
  const child = materializeNode(node.children[index], childPath, scope, context);
22
22
  appendRuntimeChild(instance, child, node.type, childPath, adapter);
23
23
  }
24
- if (node.appearance)
24
+ if (node.appearance) {
25
25
  applyAppearance(instance, node, identity, path, context);
26
+ }
26
27
  return instance;
27
28
  }
28
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"materializeNode.js","sourceRoot":"","sources":["../../../src/kurot/runtime/materializeNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"materializeNode.js","sourceRoot":"","sources":["../../../src/kurot/runtime/materializeNode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { UIAssetContract } from '@kurot/ui-document';
2
+ import type { KurotUICreationContext, KurotUIStateController } from '../types.js';
3
+ /**
4
+ * Creates a state controller over one fully initialized reusable instance.
5
+ */
6
+ export declare function createReusableComponentStateController(contract: UIAssetContract, scope: string, contractPath: string, context: KurotUICreationContext): KurotUIStateController;
7
+ //# sourceMappingURL=createReusableComponentStateController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createReusableComponentStateController.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/states/createReusableComponentStateController.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,oBAAoB,CAAC;AAI9E,OAAO,KAAK,EACX,sBAAsB,EACtB,sBAAsB,EACtB,MAAM,aAAa,CAAC;AAQrB;;GAEG;AACH,wBAAgB,sCAAsC,CACrD,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,sBAAsB,GAC7B,sBAAsB,CAuDxB"}
@@ -0,0 +1,86 @@
1
+ import { applyRuntimeProperty } from '../applyRuntimeProperty.js';
2
+ import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
3
+ import { qualifyNodeId } from '../materializeNode.js';
4
+ /**
5
+ * Creates a state controller over one fully initialized reusable instance.
6
+ */
7
+ export function createReusableComponentStateController(contract, scope, contractPath, context) {
8
+ const states = Object.keys(contract.states).sort();
9
+ let currentState;
10
+ let backups = [];
11
+ return {
12
+ get currentState() {
13
+ return currentState;
14
+ },
15
+ states: Object.freeze(states),
16
+ setState(name) {
17
+ const definition = contract.states[name];
18
+ if (!definition) {
19
+ throw new KurotUIRuntimeError('unknown-state', `Reusable component state "${name}" is not declared.`, `${contractPath}.states`);
20
+ }
21
+ if (currentState === name)
22
+ return;
23
+ const previousState = currentState;
24
+ const previousDefinition = previousState
25
+ ? contract.states[previousState]
26
+ : undefined;
27
+ restoreProperties(backups);
28
+ backups = [];
29
+ currentState = undefined;
30
+ try {
31
+ backups = applyStateOverrides(definition.overrides, scope, `${contractPath}.states.${name}`, context);
32
+ currentState = name;
33
+ }
34
+ catch (error) {
35
+ if (previousState && previousDefinition) {
36
+ backups = applyStateOverrides(previousDefinition.overrides, scope, `${contractPath}.states.${previousState}`, context);
37
+ currentState = previousState;
38
+ }
39
+ throw error;
40
+ }
41
+ },
42
+ clearState() {
43
+ if (currentState === undefined)
44
+ return;
45
+ restoreProperties(backups);
46
+ backups = [];
47
+ currentState = undefined;
48
+ },
49
+ };
50
+ }
51
+ function applyStateOverrides(overrides, scope, path, context) {
52
+ const backups = new Map();
53
+ try {
54
+ for (let index = 0; index < overrides.length; index++) {
55
+ const override = overrides[index];
56
+ const identity = qualifyNodeId(scope, override.targetId);
57
+ const target = context.instances.get(identity);
58
+ const type = context.types.get(identity);
59
+ if (!target || !type)
60
+ continue;
61
+ const key = `${identity}\u0000${override.property}`;
62
+ if (!backups.has(key)) {
63
+ backups.set(key, {
64
+ property: override.property,
65
+ target,
66
+ value: Reflect.get(target, override.property),
67
+ });
68
+ }
69
+ applyRuntimeProperty(target, type, override.property, override.value, `${path}.overrides[${index}].value`, context);
70
+ }
71
+ }
72
+ catch (error) {
73
+ restoreProperties([...backups.values()]);
74
+ throw error;
75
+ }
76
+ return [...backups.values()];
77
+ }
78
+ function restoreProperties(backups) {
79
+ for (let index = backups.length - 1; index >= 0; index--) {
80
+ const backup = backups[index];
81
+ if (!backup)
82
+ continue;
83
+ Reflect.set(backup.target, backup.property, backup.value);
84
+ }
85
+ }
86
+ //# sourceMappingURL=createReusableComponentStateController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createReusableComponentStateController.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/states/createReusableComponentStateController.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { UIAssetRegistry, UIComponentRegistry, UIPropertyValue, UIResourceD
3
3
  /**
4
4
  * Stable runtime materialization failure categories.
5
5
  */
6
- export type KurotUIRuntimeErrorCode = 'component-construction-failed' | 'invalid-document' | 'invalid-layout' | 'invalid-property' | 'invalid-rectangle' | 'unsupported-appearance' | 'unsupported-children' | 'unsupported-component';
6
+ export type KurotUIRuntimeErrorCode = 'component-construction-failed' | 'invalid-document' | 'invalid-layout' | 'invalid-property' | 'invalid-rectangle' | 'unknown-state' | 'unsupported-appearance' | 'unsupported-children' | 'unsupported-component';
7
7
  /**
8
8
  * Runtime hooks for one project-defined component type.
9
9
  */
@@ -26,6 +26,27 @@ export interface KurotUIComponentAdapter {
26
26
  * Resolves one semantic resource reference to a runtime property value.
27
27
  */
28
28
  export type KurotUIResourceResolver = (reference: UIResourceReference, definition: UIResourceDefinition) => UIPropertyValue;
29
+ /**
30
+ * Dynamic state boundary for one expanded reusable component instance.
31
+ */
32
+ export interface KurotUIStateController {
33
+ /**
34
+ * State currently applied to the reusable component.
35
+ */
36
+ readonly currentState?: string;
37
+ /**
38
+ * Contract state names accepted by this controller in stable order.
39
+ */
40
+ readonly states: readonly string[];
41
+ /**
42
+ * Restores the active state and applies the requested contract state.
43
+ */
44
+ setState(name: string): void;
45
+ /**
46
+ * Removes the active state and restores the pre-state runtime values.
47
+ */
48
+ clearState(): void;
49
+ }
29
50
  /**
30
51
  * Runtime customization supplied for one materialization operation.
31
52
  */
@@ -60,6 +81,10 @@ export interface KurotUICreationResult {
60
81
  * use slash-qualified keys such as `action/label`.
61
82
  */
62
83
  readonly instances: ReadonlyMap<string, DisplayObject>;
84
+ /**
85
+ * Dynamic reusable-component state controllers keyed by instance node ID.
86
+ */
87
+ readonly stateControllers: ReadonlyMap<string, KurotUIStateController>;
63
88
  }
64
89
  /**
65
90
  * Internal state shared while recursively materializing one project asset graph.
@@ -81,6 +106,10 @@ export interface KurotUICreationContext {
81
106
  * Application resource resolver selected for this materialization.
82
107
  */
83
108
  readonly resolveResource: KurotUIResourceResolver;
109
+ /**
110
+ * Dynamic state controllers registered while reusable instances expand.
111
+ */
112
+ readonly stateControllers: Map<string, KurotUIStateController>;
84
113
  /**
85
114
  * Canonical component types keyed by runtime-qualified node identity.
86
115
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EACX,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAChC,+BAA+B,GAC/B,kBAAkB,GAClB,gBAAgB,GAChB,kBAAkB,GAClB,mBAAmB,GACnB,wBAAwB,GACxB,sBAAsB,GACtB,uBAAuB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,aAAa,CAAC;IAErC;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CACxB,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,KACR,OAAO,CAAC;IAEb;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CACtB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,MAAM,KACR,IAAI,CAAC;CACV;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CACrC,SAAS,EAAE,mBAAmB,EAC9B,UAAU,EAAE,oBAAoB,KAC5B,eAAe,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAEtE;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,uBAAuB,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAErE;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAE/C;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAElD;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EACX,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAChC,+BAA+B,GAC/B,kBAAkB,GAClB,gBAAgB,GAChB,kBAAkB,GAClB,mBAAmB,GACnB,eAAe,GACf,wBAAwB,GACxB,sBAAsB,GACtB,uBAAuB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,aAAa,CAAC;IAErC;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CACxB,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,KACR,OAAO,CAAC;IAEb;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CACtB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,MAAM,KACR,IAAI,CAAC;CACV;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CACrC,SAAS,EAAE,mBAAmB,EAC9B,UAAU,EAAE,oBAAoB,KAC5B,eAAe,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAEnC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;OAEG;IACH,UAAU,IAAI,IAAI,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAEtE;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,uBAAuB,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEvD;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CACvE;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAErE;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAE/C;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAElD;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAE/D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kurot/ui-runtime",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Runtime materialization layer for validated Kurot UI documents",
5
5
  "author": "Kelvin <kyia.x52@gmail.com>",
6
6
  "license": "MIT",
@@ -31,12 +31,12 @@
31
31
  "peerDependencies": {
32
32
  "@kurot/core": "^1.0.15",
33
33
  "@kurot/ui": "^1.1.7",
34
- "@kurot/ui-document": "^0.3.0"
34
+ "@kurot/ui-document": "^0.3.3"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@kurot/core": "^1.0.15",
38
38
  "@kurot/ui": "^1.1.7",
39
- "@kurot/ui-document": "^0.3.0",
39
+ "@kurot/ui-document": "^0.3.3",
40
40
  "@types/node": "^22.0.0",
41
41
  "happy-dom": "^20.8.9",
42
42
  "typescript": "^5.6.0",