@kurot/ui-runtime 0.1.0 → 0.2.1

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 (76) hide show
  1. package/README.md +24 -4
  2. package/dist/kurot/runtime/applyRuntimeProperty.d.ts +8 -0
  3. package/dist/kurot/runtime/applyRuntimeProperty.d.ts.map +1 -0
  4. package/dist/kurot/runtime/applyRuntimeProperty.js +18 -0
  5. package/dist/kurot/runtime/applyRuntimeProperty.js.map +1 -0
  6. package/dist/kurot/runtime/builtins/applyComponentProperties.d.ts.map +1 -0
  7. package/dist/kurot/runtime/builtins/applyComponentProperties.js +114 -0
  8. package/dist/kurot/runtime/builtins/applyComponentProperties.js.map +1 -0
  9. package/dist/kurot/runtime/builtins/applyContainerProperties.d.ts +7 -0
  10. package/dist/kurot/runtime/builtins/applyContainerProperties.d.ts.map +1 -0
  11. package/dist/kurot/runtime/builtins/applyContainerProperties.js +51 -0
  12. package/dist/kurot/runtime/builtins/applyContainerProperties.js.map +1 -0
  13. package/dist/kurot/runtime/builtins/applyControlProperties.d.ts +7 -0
  14. package/dist/kurot/runtime/builtins/applyControlProperties.d.ts.map +1 -0
  15. package/dist/kurot/runtime/builtins/applyControlProperties.js +39 -0
  16. package/dist/kurot/runtime/builtins/applyControlProperties.js.map +1 -0
  17. package/dist/kurot/runtime/builtins/applyDisplayProperties.d.ts.map +1 -0
  18. package/dist/kurot/runtime/{applyDisplayProperties.js → builtins/applyDisplayProperties.js} +1 -1
  19. package/dist/kurot/runtime/builtins/applyDisplayProperties.js.map +1 -0
  20. package/dist/kurot/runtime/builtins/applyTextProperties.d.ts +7 -0
  21. package/dist/kurot/runtime/builtins/applyTextProperties.d.ts.map +1 -0
  22. package/dist/kurot/runtime/builtins/applyTextProperties.js +77 -0
  23. package/dist/kurot/runtime/builtins/applyTextProperties.js.map +1 -0
  24. package/dist/kurot/runtime/{componentFactories.d.ts → builtins/componentFactories.d.ts} +1 -1
  25. package/dist/kurot/runtime/builtins/componentFactories.d.ts.map +1 -0
  26. package/dist/kurot/runtime/{componentFactories.js → builtins/componentFactories.js} +1 -1
  27. package/dist/kurot/runtime/builtins/componentFactories.js.map +1 -0
  28. package/dist/kurot/runtime/createKurotUI.d.ts.map +1 -1
  29. package/dist/kurot/runtime/createKurotUI.js +28 -51
  30. package/dist/kurot/runtime/createKurotUI.js.map +1 -1
  31. package/dist/kurot/runtime/descriptors/createLayout.d.ts.map +1 -0
  32. package/dist/kurot/runtime/{createLayout.js → descriptors/createLayout.js} +1 -1
  33. package/dist/kurot/runtime/descriptors/createLayout.js.map +1 -0
  34. package/dist/kurot/runtime/descriptors/createRectangle.d.ts.map +1 -0
  35. package/dist/kurot/runtime/{createRectangle.js → descriptors/createRectangle.js} +1 -1
  36. package/dist/kurot/runtime/descriptors/createRectangle.js.map +1 -0
  37. package/dist/kurot/runtime/index.d.ts +1 -1
  38. package/dist/kurot/runtime/index.d.ts.map +1 -1
  39. package/dist/kurot/runtime/materializeAppearance.d.ts +8 -0
  40. package/dist/kurot/runtime/materializeAppearance.d.ts.map +1 -0
  41. package/dist/kurot/runtime/materializeAppearance.js +83 -0
  42. package/dist/kurot/runtime/materializeAppearance.js.map +1 -0
  43. package/dist/kurot/runtime/materializeComponentInstance.d.ts +8 -0
  44. package/dist/kurot/runtime/materializeComponentInstance.d.ts.map +1 -0
  45. package/dist/kurot/runtime/materializeComponentInstance.js +110 -0
  46. package/dist/kurot/runtime/materializeComponentInstance.js.map +1 -0
  47. package/dist/kurot/runtime/materializeNode.d.ts +20 -0
  48. package/dist/kurot/runtime/materializeNode.d.ts.map +1 -0
  49. package/dist/kurot/runtime/materializeNode.js +77 -0
  50. package/dist/kurot/runtime/materializeNode.js.map +1 -0
  51. package/dist/kurot/runtime/resolvePropertyValue.d.ts +7 -0
  52. package/dist/kurot/runtime/resolvePropertyValue.d.ts.map +1 -0
  53. package/dist/kurot/runtime/resolvePropertyValue.js +41 -0
  54. package/dist/kurot/runtime/resolvePropertyValue.js.map +1 -0
  55. package/dist/kurot/runtime/states/createReusableComponentStateController.d.ts +7 -0
  56. package/dist/kurot/runtime/states/createReusableComponentStateController.d.ts.map +1 -0
  57. package/dist/kurot/runtime/states/createReusableComponentStateController.js +86 -0
  58. package/dist/kurot/runtime/states/createReusableComponentStateController.js.map +1 -0
  59. package/dist/kurot/runtime/types.d.ts +65 -5
  60. package/dist/kurot/runtime/types.d.ts.map +1 -1
  61. package/package.json +4 -4
  62. package/dist/kurot/runtime/applyComponentProperties.d.ts.map +0 -1
  63. package/dist/kurot/runtime/applyComponentProperties.js +0 -205
  64. package/dist/kurot/runtime/applyComponentProperties.js.map +0 -1
  65. package/dist/kurot/runtime/applyDisplayProperties.d.ts.map +0 -1
  66. package/dist/kurot/runtime/applyDisplayProperties.js.map +0 -1
  67. package/dist/kurot/runtime/componentFactories.d.ts.map +0 -1
  68. package/dist/kurot/runtime/componentFactories.js.map +0 -1
  69. package/dist/kurot/runtime/createLayout.d.ts.map +0 -1
  70. package/dist/kurot/runtime/createLayout.js.map +0 -1
  71. package/dist/kurot/runtime/createRectangle.d.ts.map +0 -1
  72. package/dist/kurot/runtime/createRectangle.js.map +0 -1
  73. /package/dist/kurot/runtime/{applyComponentProperties.d.ts → builtins/applyComponentProperties.d.ts} +0 -0
  74. /package/dist/kurot/runtime/{applyDisplayProperties.d.ts → builtins/applyDisplayProperties.d.ts} +0 -0
  75. /package/dist/kurot/runtime/{createLayout.d.ts → descriptors/createLayout.d.ts} +0 -0
  76. /package/dist/kurot/runtime/{createRectangle.d.ts → descriptors/createRectangle.d.ts} +0 -0
package/README.md CHANGED
@@ -7,21 +7,41 @@ document semantics into the component library.
7
7
  ```ts
8
8
  import { createKurotUI } from '@kurot/ui-runtime';
9
9
 
10
- const result = createKurotUI(document);
10
+ const result = createKurotUI(document, { assets });
11
11
  stage.addChild(result.root);
12
12
  ```
13
13
 
14
- The initial runtime supports `kui.Group`, `kui.Label`, `kui.Image`, `kui.Rect`,
15
- and `kui.Button`, including their audited inherited properties, children,
16
- layout descriptors, and nine-slice rectangles.
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. Reusable component assets are expanded
17
+ with parameter bindings, variants, part overrides, and projected Slot content.
18
+ Appearance assets become native Kurot skins and states, including the selected
19
+ appearance variant.
20
+
21
+ Version 0.2 performs full-tree creation. It does not yet provide incremental
22
+ reconciliation, bindings, actions, or transitions.
17
23
 
18
24
  The result also provides a stable node lookup for editor selection and event
19
25
  wiring:
20
26
 
21
27
  ```ts
22
28
  const startButton = result.instances.get('startButton');
29
+ const internalLabel = result.instances.get('startButton/label');
30
+
31
+ const state = result.stateControllers.get('startButton');
32
+ state?.setState('disabled');
33
+ state?.clearState();
23
34
  ```
24
35
 
36
+ Reusable-component state controllers apply Contract state overrides at runtime
37
+ and restore the exact pre-state values when cleared. Controllers are isolated
38
+ per component instance; an unknown state throws `KurotUIRuntimeError`.
39
+
40
+ Design tokens resolve from the supplied `UIAssetRegistry`. Resource references
41
+ use their registered key by default; applications can provide
42
+ `resolveResource(reference, definition)` to return the runtime value expected by
43
+ their resource system.
44
+
25
45
  Project component types are added by extending a foundation
26
46
  `UIComponentRegistry` and supplying a matching runtime adapter. Invalid
27
47
  documents, unsupported values, and missing adapters throw
@@ -0,0 +1,8 @@
1
+ import type { DisplayObject } from '@kurot/core';
2
+ import type { UIPropertyValue } from '@kurot/ui-document';
3
+ import type { KurotUICreationContext } from './types.js';
4
+ /**
5
+ * Applies one resolved semantic property to an existing runtime object.
6
+ */
7
+ export declare function applyRuntimeProperty(target: DisplayObject, type: string, name: string, value: UIPropertyValue, path: string, context: KurotUICreationContext): void;
8
+ //# sourceMappingURL=applyRuntimeProperty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyRuntimeProperty.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/applyRuntimeProperty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,GAC7B,IAAI,CAcN"}
@@ -0,0 +1,18 @@
1
+ import { applyComponentProperty } from './builtins/applyComponentProperties.js';
2
+ import { applyDisplayProperty } from './builtins/applyDisplayProperties.js';
3
+ import { KurotUIRuntimeError } from './KurotUIRuntimeError.js';
4
+ import { resolvePropertyValue } from './resolvePropertyValue.js';
5
+ /**
6
+ * Applies one resolved semantic property to an existing runtime object.
7
+ */
8
+ export function applyRuntimeProperty(target, type, name, value, path, context) {
9
+ const resolved = resolvePropertyValue(value, path, context);
10
+ const adapter = context.adapters[type];
11
+ const handled = applyDisplayProperty(target, name, resolved, path) ||
12
+ applyComponentProperty(target, name, resolved, path) ||
13
+ adapter?.applyProperty?.(target, name, resolved, path) === true;
14
+ if (!handled) {
15
+ throw new KurotUIRuntimeError('invalid-property', `Runtime property "${name}" is not supported by ${type}.`, path);
16
+ }
17
+ }
18
+ //# sourceMappingURL=applyRuntimeProperty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyRuntimeProperty.js","sourceRoot":"","sources":["../../../src/kurot/runtime/applyRuntimeProperty.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE;;GAEG;AACH,MAAM,UAAU,oBAAoB,CACnC,MAAqB,EACrB,IAAY,EACZ,IAAY,EACZ,KAAsB,EACtB,IAAY,EACZ,OAA+B;IAE/B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,OAAO,GACZ,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;QAClD,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;QACpD,OAAO,EAAE,aAAa,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;IACjE,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,mBAAmB,CAC5B,kBAAkB,EAClB,qBAAqB,IAAI,yBAAyB,IAAI,GAAG,EACzD,IAAI,CACJ,CAAC;IACH,CAAC;AACF,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyComponentProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyComponentProperties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQ1D;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,GACV,OAAO,CAiBT"}
@@ -0,0 +1,114 @@
1
+ import { Component, Image, Rect } from '@kurot/ui';
2
+ import { createRectangle } from '../descriptors/createRectangle.js';
3
+ import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
4
+ import { applyContainerProperty } from './applyContainerProperties.js';
5
+ import { applyControlProperty } from './applyControlProperties.js';
6
+ import { applyTextProperty } from './applyTextProperties.js';
7
+ /**
8
+ * Applies one property declared directly by a built-in Kurot UI component.
9
+ */
10
+ export function applyComponentProperty(target, name, value, path) {
11
+ if (target instanceof Component && applySkinnableProperty(target, name, value, path)) {
12
+ return true;
13
+ }
14
+ if (applyContainerProperty(target, name, value, path)) {
15
+ return true;
16
+ }
17
+ if (applyTextProperty(target, name, value, path)) {
18
+ return true;
19
+ }
20
+ if (target instanceof Image && applyImageProperty(target, name, value, path)) {
21
+ return true;
22
+ }
23
+ if (target instanceof Rect && applyRectProperty(target, name, value, path)) {
24
+ return true;
25
+ }
26
+ return applyControlProperty(target, name, value, path);
27
+ }
28
+ function applySkinnableProperty(target, name, value, path) {
29
+ switch (name) {
30
+ case 'currentState':
31
+ target.currentState = requireString(value, path);
32
+ return true;
33
+ case 'enabled':
34
+ target.enabled = requireBoolean(value, path);
35
+ return true;
36
+ case 'hostComponentKey':
37
+ target.hostComponentKey = requireString(value, path);
38
+ return true;
39
+ case 'skinName':
40
+ target.skinName = requireString(value, path);
41
+ return true;
42
+ default:
43
+ return false;
44
+ }
45
+ }
46
+ function applyImageProperty(target, name, value, path) {
47
+ switch (name) {
48
+ case 'fillMode':
49
+ target.fillMode = requireFillMode(value, path);
50
+ return true;
51
+ case 'scale9Grid':
52
+ target.scale9Grid = createRectangle(value, path);
53
+ return true;
54
+ case 'smoothing':
55
+ target.smoothing = requireBoolean(value, path);
56
+ return true;
57
+ case 'source':
58
+ target.source = requireString(value, path);
59
+ return true;
60
+ default:
61
+ return false;
62
+ }
63
+ }
64
+ function applyRectProperty(target, name, value, path) {
65
+ switch (name) {
66
+ case 'ellipseHeight':
67
+ target.ellipseHeight = requireNumber(value, path);
68
+ return true;
69
+ case 'ellipseWidth':
70
+ target.ellipseWidth = requireNumber(value, path);
71
+ return true;
72
+ case 'fillAlpha':
73
+ target.fillAlpha = requireNumber(value, path);
74
+ return true;
75
+ case 'fillColor':
76
+ target.fillColor = requireNumber(value, path);
77
+ return true;
78
+ case 'strokeAlpha':
79
+ target.strokeAlpha = requireNumber(value, path);
80
+ return true;
81
+ case 'strokeColor':
82
+ target.strokeColor = requireNumber(value, path);
83
+ return true;
84
+ case 'strokeWeight':
85
+ target.strokeWeight = requireNumber(value, path);
86
+ return true;
87
+ default:
88
+ return false;
89
+ }
90
+ }
91
+ function requireBoolean(value, path) {
92
+ if (typeof value === 'boolean')
93
+ return value;
94
+ throw invalidValue('boolean', path);
95
+ }
96
+ function requireNumber(value, path) {
97
+ if (typeof value === 'number' && Number.isFinite(value))
98
+ return value;
99
+ throw invalidValue('number', path);
100
+ }
101
+ function requireString(value, path) {
102
+ if (typeof value === 'string')
103
+ return value;
104
+ throw invalidValue('string', path);
105
+ }
106
+ function requireFillMode(value, path) {
107
+ if (value === 'clip' || value === 'repeat' || value === 'scale')
108
+ return value;
109
+ throw invalidValue('clip, repeat, or scale', path);
110
+ }
111
+ function invalidValue(type, path) {
112
+ return new KurotUIRuntimeError('invalid-property', `Runtime property must be ${type}.`, path);
113
+ }
114
+ //# sourceMappingURL=applyComponentProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyComponentProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyComponentProperties.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { DisplayObject } from '@kurot/core';
2
+ import type { UIPropertyValue } from '@kurot/ui-document';
3
+ /**
4
+ * Applies one property owned by a built-in container component.
5
+ */
6
+ export declare function applyContainerProperty(target: DisplayObject, name: string, value: UIPropertyValue, path: string): boolean;
7
+ //# sourceMappingURL=applyContainerProperties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyContainerProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyContainerProperties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,GACV,OAAO,CAwBT"}
@@ -0,0 +1,51 @@
1
+ import { Group } from '@kurot/ui';
2
+ import { createLayout } from '../descriptors/createLayout.js';
3
+ import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
4
+ /**
5
+ * Applies one property owned by a built-in container component.
6
+ */
7
+ export function applyContainerProperty(target, name, value, path) {
8
+ if (!(target instanceof Group))
9
+ return false;
10
+ switch (name) {
11
+ case 'currentState':
12
+ target.currentState = requireString(value, path);
13
+ return true;
14
+ case 'layout':
15
+ target.layout = createLayout(value, path);
16
+ return true;
17
+ case 'scrollEnabled':
18
+ target.scrollEnabled = requireBoolean(value, path);
19
+ return true;
20
+ case 'scrollH':
21
+ target.scrollH = requireNumber(value, path);
22
+ return true;
23
+ case 'scrollV':
24
+ target.scrollV = requireNumber(value, path);
25
+ return true;
26
+ case 'touchThrough':
27
+ target.touchThrough = requireBoolean(value, path);
28
+ return true;
29
+ default:
30
+ return false;
31
+ }
32
+ }
33
+ function requireBoolean(value, path) {
34
+ if (typeof value === 'boolean')
35
+ return value;
36
+ throw invalidValue('boolean', path);
37
+ }
38
+ function requireNumber(value, path) {
39
+ if (typeof value === 'number' && Number.isFinite(value))
40
+ return value;
41
+ throw invalidValue('number', path);
42
+ }
43
+ function requireString(value, path) {
44
+ if (typeof value === 'string')
45
+ return value;
46
+ throw invalidValue('string', path);
47
+ }
48
+ function invalidValue(type, path) {
49
+ return new KurotUIRuntimeError('invalid-property', `Runtime property must be ${type}.`, path);
50
+ }
51
+ //# sourceMappingURL=applyContainerProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyContainerProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyContainerProperties.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACrC,MAAqB,EACrB,IAAY,EACZ,KAAsB,EACtB,IAAY;IAEZ,IAAI,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,cAAc;YAClB,MAAM,CAAC,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACb,KAAK,QAAQ;YACZ,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACb,KAAK,eAAe;YACnB,MAAM,CAAC,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACnD,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,cAAc;YAClB,MAAM,CAAC,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAClD,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,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,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"}
@@ -0,0 +1,7 @@
1
+ import type { DisplayObject } from '@kurot/core';
2
+ import type { UIPropertyValue } from '@kurot/ui-document';
3
+ /**
4
+ * Applies one property owned by a built-in interactive control.
5
+ */
6
+ export declare function applyControlProperty(target: DisplayObject, name: string, value: UIPropertyValue, path: string): boolean;
7
+ //# sourceMappingURL=applyControlProperties.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,39 @@
1
+ import { Button } from '@kurot/ui';
2
+ import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
3
+ /**
4
+ * Applies one property owned by a built-in interactive control.
5
+ */
6
+ export function applyControlProperty(target, name, value, path) {
7
+ if (!(target instanceof Button))
8
+ return false;
9
+ switch (name) {
10
+ case 'icon':
11
+ target.icon = requireString(value, path);
12
+ return true;
13
+ case 'label':
14
+ target.label = requireString(value, path);
15
+ return true;
16
+ case 'selected':
17
+ target.selected = requireBoolean(value, path);
18
+ return true;
19
+ case 'toggle':
20
+ target.toggle = requireBoolean(value, path);
21
+ return true;
22
+ default:
23
+ return false;
24
+ }
25
+ }
26
+ function requireBoolean(value, path) {
27
+ if (typeof value === 'boolean')
28
+ return value;
29
+ throw invalidValue('boolean', path);
30
+ }
31
+ function requireString(value, path) {
32
+ if (typeof value === 'string')
33
+ return value;
34
+ throw invalidValue('string', path);
35
+ }
36
+ function invalidValue(type, path) {
37
+ return new KurotUIRuntimeError('invalid-property', `Runtime property must be ${type}.`, path);
38
+ }
39
+ //# sourceMappingURL=applyControlProperties.js.map
@@ -0,0 +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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyDisplayProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyDisplayProperties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA0B,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,GACV,OAAO,CAiET"}
@@ -1,6 +1,6 @@
1
1
  import { DisplayObjectContainer } from '@kurot/core';
2
2
  import { isUIComponent } from '@kurot/ui';
3
- import { KurotUIRuntimeError } from './KurotUIRuntimeError.js';
3
+ import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
4
4
  /**
5
5
  * Applies one inherited display or UI-layout property when recognized.
6
6
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyDisplayProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyDisplayProperties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;GAEG;AACH,MAAM,UAAU,oBAAoB,CACnC,MAAqB,EACrB,IAAY,EACZ,KAAsB,EACtB,IAAY;IAEZ,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,OAAO;YACX,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACb,KAAK,eAAe;YACnB,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QACb,KAAK,eAAe;YACnB,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QACb,KAAK,WAAW;YACf,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACb,KAAK,eAAe;YACnB,MAAM,CAAC,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;QACb,KAAK,QAAQ;YACZ,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACb,KAAK,MAAM;YACV,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC;QACb,KAAK,UAAU;YACd,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC;QACb,KAAK,QAAQ;YACZ,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACb,KAAK,QAAQ;YACZ,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACb,KAAK,OAAO;YACX,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACb,KAAK,OAAO;YACX,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACb,KAAK,kBAAkB;YACtB,MAAM,CAAC,gBAAgB,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;QACb,KAAK,MAAM;YACV,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC;QACb,KAAK,cAAc;YAClB,MAAM,CAAC,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QACb,KAAK,SAAS;YACb,MAAM,CAAC,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC;QACb,KAAK,OAAO;YACX,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACb,KAAK,GAAG;YACP,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACb,KAAK,GAAG;YACP,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QACb,KAAK,QAAQ;YACZ,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACb;YACC,OAAO,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CACvB,MAAqB,EACrB,IAAY,EACZ,KAAsB,EACtB,IAAY;IAEZ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,QAAQ;YACZ,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC;QACb,KAAK,kBAAkB;YACtB,MAAM,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC;QACb,KAAK,iBAAiB;YACrB,MAAM,CAAC,eAAe,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;QACb,KAAK,eAAe;YACnB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC3E,OAAO,IAAI,CAAC;QACb,KAAK,MAAM;YACV,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC;QACb,KAAK,WAAW;YACf,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACb,KAAK,UAAU;YACd,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC;QACb,KAAK,WAAW;YACf,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACb,KAAK,UAAU;YACd,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC;QACb,KAAK,eAAe;YACnB,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QACb,KAAK,cAAc;YAClB,MAAM,CAAC,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACb,KAAK,OAAO;YACX,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACb,KAAK,KAAK;YACT,MAAM,CAAC,GAAG,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACb,KAAK,eAAe;YACnB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC3E,OAAO,IAAI,CAAC;QACb,KAAK,gBAAgB;YACpB,MAAM,CAAC,cAAc,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QACb;YACC,OAAO,KAAK,CAAC;IACf,CAAC;AACF,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAqB,EAAE,IAAY;IAC5D,IAAI,MAAM,YAAY,sBAAsB;QAAE,OAAO,MAAM,CAAC;IAC5D,MAAM,IAAI,mBAAmB,CAC5B,kBAAkB,EAClB,+CAA+C,EAC/C,IAAI,CACJ,CAAC;AACH,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,iBAAiB,CAAC,KAAsB,EAAE,IAAY;IAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACzE,MAAM,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;AAC9C,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,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"}
@@ -0,0 +1,7 @@
1
+ import type { DisplayObject } from '@kurot/core';
2
+ import type { UIPropertyValue } from '@kurot/ui-document';
3
+ /**
4
+ * Applies one property owned by a built-in text component.
5
+ */
6
+ export declare function applyTextProperty(target: DisplayObject, name: string, value: UIPropertyValue, path: string): boolean;
7
+ //# sourceMappingURL=applyTextProperties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyTextProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyTextProperties.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,iBAAiB,CAChC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,GACV,OAAO,CAmDT"}
@@ -0,0 +1,77 @@
1
+ import { Label } from '@kurot/ui';
2
+ import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
3
+ /**
4
+ * Applies one property owned by a built-in text component.
5
+ */
6
+ export function applyTextProperty(target, name, value, path) {
7
+ if (!(target instanceof Label))
8
+ return false;
9
+ switch (name) {
10
+ case 'bold':
11
+ target.bold = requireBoolean(value, path);
12
+ return true;
13
+ case 'displayAsPassword':
14
+ target.displayAsPassword = requireBoolean(value, path);
15
+ return true;
16
+ case 'fontFamily':
17
+ target.fontFamily = requireString(value, path);
18
+ return true;
19
+ case 'italic':
20
+ target.italic = requireBoolean(value, path);
21
+ return true;
22
+ case 'lineSpacing':
23
+ target.lineSpacing = requireNumber(value, path);
24
+ return true;
25
+ case 'maxChars':
26
+ target.maxChars = requireNumber(value, path);
27
+ return true;
28
+ case 'multiline':
29
+ target.multiline = requireBoolean(value, path);
30
+ return true;
31
+ case 'size':
32
+ target.size = requireNumber(value, path);
33
+ return true;
34
+ case 'stroke':
35
+ target.stroke = requireNumber(value, path);
36
+ return true;
37
+ case 'strokeColor':
38
+ target.strokeColor = requireNumber(value, path);
39
+ return true;
40
+ case 'text':
41
+ target.text = requireString(value, path);
42
+ return true;
43
+ case 'textAlign':
44
+ target.textAlign = requireString(value, path);
45
+ return true;
46
+ case 'textColor':
47
+ target.textColor = requireNumber(value, path);
48
+ return true;
49
+ case 'verticalAlign':
50
+ target.verticalAlign = requireString(value, path);
51
+ return true;
52
+ case 'wordWrap':
53
+ target.wordWrap = requireBoolean(value, path);
54
+ return true;
55
+ default:
56
+ return false;
57
+ }
58
+ }
59
+ function requireBoolean(value, path) {
60
+ if (typeof value === 'boolean')
61
+ return value;
62
+ throw invalidValue('boolean', path);
63
+ }
64
+ function requireNumber(value, path) {
65
+ if (typeof value === 'number' && Number.isFinite(value))
66
+ return value;
67
+ throw invalidValue('number', path);
68
+ }
69
+ function requireString(value, path) {
70
+ if (typeof value === 'string')
71
+ return value;
72
+ throw invalidValue('string', path);
73
+ }
74
+ function invalidValue(type, path) {
75
+ return new KurotUIRuntimeError('invalid-property', `Runtime property must be ${type}.`, path);
76
+ }
77
+ //# sourceMappingURL=applyTextProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyTextProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyTextProperties.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { DisplayObject } from '@kurot/core';
2
2
  /**
3
- * Returns the built-in factory for one canonical Kurot UI type.
3
+ * Returns the built-in factory for one canonical Kurot UI component type.
4
4
  */
5
5
  export declare function getBuiltInFactory(type: string): (() => DisplayObject) | undefined;
6
6
  //# sourceMappingURL=componentFactories.d.ts.map
@@ -0,0 +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"}
@@ -7,7 +7,7 @@ const BUILT_IN_FACTORIES = {
7
7
  'kui.Rect': () => new Rect(),
8
8
  };
9
9
  /**
10
- * Returns the built-in factory for one canonical Kurot UI type.
10
+ * Returns the built-in factory for one canonical Kurot UI component type.
11
11
  */
12
12
  export function getBuiltInFactory(type) {
13
13
  return BUILT_IN_FACTORIES[type];
@@ -0,0 +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 +1 @@
1
- {"version":3,"file":"createKurotUI.d.ts","sourceRoot":"","sources":["../../../src/kurot/runtime/createKurotUI.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,oBAAoB,CAAC;AAK7D,OAAO,KAAK,EACX,oBAAoB,EAGpB,qBAAqB,EACrB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,aAAa,CAC5B,QAAQ,EAAE,UAAU,EACpB,OAAO,GAAE,oBAAyB,GAChC,qBAAqB,CA4BvB"}
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"}
@@ -1,9 +1,6 @@
1
- import { Group } from '@kurot/ui';
2
- import { createKurotUIFoundationRegistry, validateUIDocument, validateUIDocumentComponents, } from '@kurot/ui-document';
3
- import { applyComponentProperty } from './applyComponentProperties.js';
4
- import { applyDisplayProperty } from './applyDisplayProperties.js';
5
- import { getBuiltInFactory } from './componentFactories.js';
1
+ import { createKurotUIFoundationRegistry, UIAssetRegistry, validateUIAssetRegistry, validateUIDocument, } from '@kurot/ui-document';
6
2
  import { KurotUIRuntimeError } from './KurotUIRuntimeError.js';
3
+ import { materializeNode } from './materializeNode.js';
7
4
  /**
8
5
  * Validates and materializes a semantic UI document into Kurot display objects.
9
6
  */
@@ -12,61 +9,41 @@ export function createKurotUI(document, options = {}) {
12
9
  if (documentDiagnostics.length > 0) {
13
10
  throw new KurotUIRuntimeError('invalid-document', 'UIDocument failed structural validation.', '$', documentDiagnostics);
14
11
  }
15
- const registry = options.registry ?? createKurotUIFoundationRegistry();
16
- const componentDiagnostics = validateUIDocumentComponents(document, registry);
17
- if (componentDiagnostics.length > 0) {
18
- throw new KurotUIRuntimeError('invalid-document', 'UIDocument failed component validation.', '$', componentDiagnostics);
12
+ const components = options.registry ?? createKurotUIFoundationRegistry();
13
+ const assets = createRuntimeAssetRegistry(document, options.assets);
14
+ const diagnostics = validateUIAssetRegistry(assets, components);
15
+ if (diagnostics.length > 0) {
16
+ throw new KurotUIRuntimeError('invalid-document', 'UI asset registry failed project validation.', '$', diagnostics);
19
17
  }
20
18
  const context = {
21
19
  adapters: options.adapters ?? {},
20
+ assets,
22
21
  instances: new Map(),
22
+ resolveResource: options.resolveResource ?? (reference => reference.key),
23
+ stateControllers: new Map(),
24
+ types: new Map(),
23
25
  };
24
- const root = createNode(document.root, '$.root', context);
25
- return Object.freeze({ root, instances: context.instances });
26
+ const root = materializeNode(document.root, '$.root', '', context);
27
+ return Object.freeze({
28
+ root,
29
+ instances: context.instances,
30
+ stateControllers: context.stateControllers,
31
+ });
26
32
  }
27
- function createNode(node, path, context) {
28
- const adapter = context.adapters[node.type];
29
- const instance = createInstance(node, path, adapter);
30
- context.instances.set(node.id, instance);
31
- for (const name of Object.keys(node.properties).sort()) {
32
- const value = node.properties[name];
33
- const propertyPath = `${path}.properties.${name}`;
34
- const handled = applyDisplayProperty(instance, name, value, propertyPath) ||
35
- applyComponentProperty(instance, name, value, propertyPath) ||
36
- adapter?.applyProperty?.(instance, name, value, propertyPath) === true;
37
- if (!handled) {
38
- throw new KurotUIRuntimeError('invalid-property', `Runtime property "${name}" is not supported by ${node.type}.`, propertyPath);
33
+ function createRuntimeAssetRegistry(document, source) {
34
+ const registry = new UIAssetRegistry();
35
+ for (const asset of source?.listAssets() ?? []) {
36
+ if (asset.id !== document.id) {
37
+ registry.registerAsset(asset);
39
38
  }
40
39
  }
41
- for (let index = 0; index < node.children.length; index++) {
42
- const childPath = `${path}.children[${index}]`;
43
- const child = createNode(node.children[index], childPath, context);
44
- appendChild(instance, child, node.type, childPath, adapter);
40
+ registry.registerAsset(document);
41
+ for (const resource of source?.listResources() ?? []) {
42
+ registry.registerResource(resource);
45
43
  }
46
- return instance;
47
- }
48
- function createInstance(node, path, adapter) {
49
- const factory = adapter?.create ?? getBuiltInFactory(node.type);
50
- if (!factory) {
51
- throw new KurotUIRuntimeError('unsupported-component', `No runtime adapter is registered for component type "${node.type}".`, `${path}.type`);
52
- }
53
- try {
54
- return factory();
55
- }
56
- catch (error) {
57
- const detail = error instanceof Error ? ` ${error.message}` : '';
58
- throw new KurotUIRuntimeError('component-construction-failed', `Failed to construct component type "${node.type}".${detail}`, `${path}.type`);
59
- }
60
- }
61
- function appendChild(parent, child, parentType, path, adapter) {
62
- if (adapter?.appendChild) {
63
- adapter.appendChild(parent, child, path);
64
- return;
65
- }
66
- if (parent instanceof Group) {
67
- parent.addChild(child);
68
- return;
44
+ for (const token of source?.listTokens() ?? []) {
45
+ registry.registerToken(token);
69
46
  }
70
- throw new KurotUIRuntimeError('unsupported-children', `Runtime component "${parentType}" cannot attach document children.`, path);
47
+ return registry;
71
48
  }
72
49
  //# sourceMappingURL=createKurotUI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createKurotUI.js","sourceRoot":"","sources":["../../../src/kurot/runtime/createKurotUI.ts"],"names":[],"mappings":"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"}
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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLayout.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/descriptors/createLayout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAGN,UAAU,EAIV,MAAM,WAAW,CAAC;AAGnB;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAmC7E"}