@kurot/ui-runtime 0.1.0 → 0.2.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 (72) hide show
  1. package/README.md +16 -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 +24 -54
  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 +62 -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 +105 -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 +76 -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/types.d.ts +36 -5
  56. package/dist/kurot/runtime/types.d.ts.map +1 -1
  57. package/package.json +4 -4
  58. package/dist/kurot/runtime/applyComponentProperties.d.ts.map +0 -1
  59. package/dist/kurot/runtime/applyComponentProperties.js +0 -205
  60. package/dist/kurot/runtime/applyComponentProperties.js.map +0 -1
  61. package/dist/kurot/runtime/applyDisplayProperties.d.ts.map +0 -1
  62. package/dist/kurot/runtime/applyDisplayProperties.js.map +0 -1
  63. package/dist/kurot/runtime/componentFactories.d.ts.map +0 -1
  64. package/dist/kurot/runtime/componentFactories.js.map +0 -1
  65. package/dist/kurot/runtime/createLayout.d.ts.map +0 -1
  66. package/dist/kurot/runtime/createLayout.js.map +0 -1
  67. package/dist/kurot/runtime/createRectangle.d.ts.map +0 -1
  68. package/dist/kurot/runtime/createRectangle.js.map +0 -1
  69. /package/dist/kurot/runtime/{applyComponentProperties.d.ts → builtins/applyComponentProperties.d.ts} +0 -0
  70. /package/dist/kurot/runtime/{applyDisplayProperties.d.ts → builtins/applyDisplayProperties.d.ts} +0 -0
  71. /package/dist/kurot/runtime/{createLayout.d.ts → descriptors/createLayout.d.ts} +0 -0
  72. /package/dist/kurot/runtime/{createRectangle.d.ts → descriptors/createRectangle.d.ts} +0 -0
package/README.md CHANGED
@@ -7,21 +7,33 @@ 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. 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.
19
+
20
+ 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.
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');
23
30
  ```
24
31
 
32
+ Design tokens resolve from the supplied `UIAssetRegistry`. Resource references
33
+ use their registered key by default; applications can provide
34
+ `resolveResource(reference, definition)` to return the runtime value expected by
35
+ their resource system.
36
+
25
37
  Project component types are added by extending a foundation
26
38
  `UIComponentRegistry` and supplying a matching runtime adapter. Invalid
27
39
  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":"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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 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,CAgCvB"}
@@ -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,34 @@ 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
+ types: new Map(),
23
24
  };
24
- const root = createNode(document.root, '$.root', context);
25
+ const root = materializeNode(document.root, '$.root', '', context);
25
26
  return Object.freeze({ root, instances: context.instances });
26
27
  }
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);
39
- }
40
- }
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);
45
- }
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;
69
- }
70
- throw new KurotUIRuntimeError('unsupported-children', `Runtime component "${parentType}" cannot attach document children.`, path);
28
+ function createRuntimeAssetRegistry(document, source) {
29
+ const registry = new UIAssetRegistry();
30
+ for (const asset of source?.listAssets() ?? []) {
31
+ if (asset.id !== document.id)
32
+ registry.registerAsset(asset);
33
+ }
34
+ registry.registerAsset(document);
35
+ for (const resource of source?.listResources() ?? []) {
36
+ registry.registerResource(resource);
37
+ }
38
+ for (const token of source?.listTokens() ?? [])
39
+ registry.registerToken(token);
40
+ return registry;
71
41
  }
72
42
  //# 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,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"}
@@ -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"}
@@ -1,5 +1,5 @@
1
1
  import { BasicLayout, HorizontalLayout, LinearLayoutBase, TileLayout, VerticalLayout, } from '@kurot/ui';
2
- import { KurotUIRuntimeError } from './KurotUIRuntimeError.js';
2
+ import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
3
3
  /**
4
4
  * Creates and configures a Kurot layout from a canonical layout descriptor.
5
5
  */