@kurot/ui-runtime 0.2.2 → 0.3.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 (115) hide show
  1. package/README.md +40 -14
  2. package/dist/kurot/runtime/applyRuntimeProperty.d.ts.map +1 -1
  3. package/dist/kurot/runtime/applyRuntimeProperty.js +16 -7
  4. package/dist/kurot/runtime/applyRuntimeProperty.js.map +1 -1
  5. package/dist/kurot/runtime/builtins/applyBuiltInProperties.d.ts +6 -0
  6. package/dist/kurot/runtime/builtins/applyBuiltInProperties.d.ts.map +1 -0
  7. package/dist/kurot/runtime/builtins/applyBuiltInProperties.js +61 -0
  8. package/dist/kurot/runtime/builtins/applyBuiltInProperties.js.map +1 -0
  9. package/dist/kurot/runtime/builtins/applyButtonProperties.d.ts +6 -0
  10. package/dist/kurot/runtime/builtins/applyButtonProperties.d.ts.map +1 -0
  11. package/dist/kurot/runtime/builtins/applyButtonProperties.js +43 -0
  12. package/dist/kurot/runtime/builtins/applyButtonProperties.js.map +1 -0
  13. package/dist/kurot/runtime/builtins/applyComponentProperties.d.ts +3 -4
  14. package/dist/kurot/runtime/builtins/applyComponentProperties.d.ts.map +1 -1
  15. package/dist/kurot/runtime/builtins/applyComponentProperties.js +2 -97
  16. package/dist/kurot/runtime/builtins/applyComponentProperties.js.map +1 -1
  17. package/dist/kurot/runtime/builtins/applyDisplayObjectProperties.d.ts +6 -0
  18. package/dist/kurot/runtime/builtins/applyDisplayObjectProperties.d.ts.map +1 -0
  19. package/dist/kurot/runtime/builtins/{applyDisplayProperties.js → applyDisplayObjectProperties.js} +3 -68
  20. package/dist/kurot/runtime/builtins/applyDisplayObjectProperties.js.map +1 -0
  21. package/dist/kurot/runtime/builtins/applyEditableTextProperties.d.ts +6 -0
  22. package/dist/kurot/runtime/builtins/applyEditableTextProperties.d.ts.map +1 -0
  23. package/dist/kurot/runtime/builtins/applyEditableTextProperties.js +41 -0
  24. package/dist/kurot/runtime/builtins/applyEditableTextProperties.js.map +1 -0
  25. package/dist/kurot/runtime/builtins/applyGroupProperties.d.ts +6 -0
  26. package/dist/kurot/runtime/builtins/applyGroupProperties.d.ts.map +1 -0
  27. package/dist/kurot/runtime/builtins/{applyContainerProperties.js → applyGroupProperties.js} +3 -14
  28. package/dist/kurot/runtime/builtins/applyGroupProperties.js.map +1 -0
  29. package/dist/kurot/runtime/builtins/applyImageProperties.d.ts +6 -0
  30. package/dist/kurot/runtime/builtins/applyImageProperties.d.ts.map +1 -0
  31. package/dist/kurot/runtime/builtins/applyImageProperties.js +44 -0
  32. package/dist/kurot/runtime/builtins/applyImageProperties.js.map +1 -0
  33. package/dist/kurot/runtime/builtins/applyLabelProperties.d.ts +6 -0
  34. package/dist/kurot/runtime/builtins/applyLabelProperties.d.ts.map +1 -0
  35. package/dist/kurot/runtime/builtins/{applyTextProperties.js → applyLabelProperties.js} +3 -6
  36. package/dist/kurot/runtime/builtins/applyLabelProperties.js.map +1 -0
  37. package/dist/kurot/runtime/builtins/applyProgressBarProperties.d.ts +6 -0
  38. package/dist/kurot/runtime/builtins/applyProgressBarProperties.d.ts.map +1 -0
  39. package/dist/kurot/runtime/builtins/applyProgressBarProperties.js +40 -0
  40. package/dist/kurot/runtime/builtins/applyProgressBarProperties.js.map +1 -0
  41. package/dist/kurot/runtime/builtins/applyRectProperties.d.ts +6 -0
  42. package/dist/kurot/runtime/builtins/applyRectProperties.d.ts.map +1 -0
  43. package/dist/kurot/runtime/builtins/applyRectProperties.js +40 -0
  44. package/dist/kurot/runtime/builtins/applyRectProperties.js.map +1 -0
  45. package/dist/kurot/runtime/builtins/applyTextInputProperties.d.ts +6 -0
  46. package/dist/kurot/runtime/builtins/applyTextInputProperties.d.ts.map +1 -0
  47. package/dist/kurot/runtime/builtins/applyTextInputProperties.js +55 -0
  48. package/dist/kurot/runtime/builtins/applyTextInputProperties.js.map +1 -0
  49. package/dist/kurot/runtime/builtins/applyUIComponentProperties.d.ts +9 -0
  50. package/dist/kurot/runtime/builtins/applyUIComponentProperties.d.ts.map +1 -0
  51. package/dist/kurot/runtime/builtins/applyUIComponentProperties.js +80 -0
  52. package/dist/kurot/runtime/builtins/applyUIComponentProperties.js.map +1 -0
  53. package/dist/kurot/runtime/builtins/componentFactories.d.ts.map +1 -1
  54. package/dist/kurot/runtime/builtins/componentFactories.js +3 -1
  55. package/dist/kurot/runtime/builtins/componentFactories.js.map +1 -1
  56. package/dist/kurot/runtime/createKurotUI.d.ts.map +1 -1
  57. package/dist/kurot/runtime/createKurotUI.js +29 -1
  58. package/dist/kurot/runtime/createKurotUI.js.map +1 -1
  59. package/dist/kurot/runtime/descriptors/createLayout.d.ts +1 -2
  60. package/dist/kurot/runtime/descriptors/createLayout.d.ts.map +1 -1
  61. package/dist/kurot/runtime/descriptors/createLayout.js +8 -6
  62. package/dist/kurot/runtime/descriptors/createLayout.js.map +1 -1
  63. package/dist/kurot/runtime/descriptors/createRectangle.d.ts +1 -2
  64. package/dist/kurot/runtime/descriptors/createRectangle.d.ts.map +1 -1
  65. package/dist/kurot/runtime/descriptors/createRectangle.js.map +1 -1
  66. package/dist/kurot/runtime/dynamics/activateRuntimeContract.d.ts +7 -0
  67. package/dist/kurot/runtime/dynamics/activateRuntimeContract.d.ts.map +1 -0
  68. package/dist/kurot/runtime/dynamics/activateRuntimeContract.js +11 -0
  69. package/dist/kurot/runtime/dynamics/activateRuntimeContract.js.map +1 -0
  70. package/dist/kurot/runtime/dynamics/createDataController.d.ts +7 -0
  71. package/dist/kurot/runtime/dynamics/createDataController.d.ts.map +1 -0
  72. package/dist/kurot/runtime/dynamics/createDataController.js +68 -0
  73. package/dist/kurot/runtime/dynamics/createDataController.js.map +1 -0
  74. package/dist/kurot/runtime/dynamics/registerSemanticActions.d.ts +7 -0
  75. package/dist/kurot/runtime/dynamics/registerSemanticActions.d.ts.map +1 -0
  76. package/dist/kurot/runtime/dynamics/registerSemanticActions.js +42 -0
  77. package/dist/kurot/runtime/dynamics/registerSemanticActions.js.map +1 -0
  78. package/dist/kurot/runtime/index.d.ts +2 -1
  79. package/dist/kurot/runtime/index.d.ts.map +1 -1
  80. package/dist/kurot/runtime/index.js +1 -0
  81. package/dist/kurot/runtime/index.js.map +1 -1
  82. package/dist/kurot/runtime/materializeAppearance.d.ts.map +1 -1
  83. package/dist/kurot/runtime/materializeAppearance.js +8 -1
  84. package/dist/kurot/runtime/materializeAppearance.js.map +1 -1
  85. package/dist/kurot/runtime/materializeComponentInstance.d.ts.map +1 -1
  86. package/dist/kurot/runtime/materializeComponentInstance.js +24 -11
  87. package/dist/kurot/runtime/materializeComponentInstance.js.map +1 -1
  88. package/dist/kurot/runtime/resolvePropertyValue.d.ts +1 -1
  89. package/dist/kurot/runtime/resolvePropertyValue.d.ts.map +1 -1
  90. package/dist/kurot/runtime/resolvePropertyValue.js +6 -3
  91. package/dist/kurot/runtime/resolvePropertyValue.js.map +1 -1
  92. package/dist/kurot/runtime/resources/createKurotUIResourceAdapters.d.ts +6 -0
  93. package/dist/kurot/runtime/resources/createKurotUIResourceAdapters.d.ts.map +1 -0
  94. package/dist/kurot/runtime/resources/createKurotUIResourceAdapters.js +16 -0
  95. package/dist/kurot/runtime/resources/createKurotUIResourceAdapters.js.map +1 -0
  96. package/dist/kurot/runtime/transitions/TransitionSetProperty.d.ts +21 -0
  97. package/dist/kurot/runtime/transitions/TransitionSetProperty.d.ts.map +1 -0
  98. package/dist/kurot/runtime/transitions/TransitionSetProperty.js +93 -0
  99. package/dist/kurot/runtime/transitions/TransitionSetProperty.js.map +1 -0
  100. package/dist/kurot/runtime/types.d.ts +92 -8
  101. package/dist/kurot/runtime/types.d.ts.map +1 -1
  102. package/package.json +3 -3
  103. package/dist/kurot/runtime/builtins/applyContainerProperties.d.ts +0 -7
  104. package/dist/kurot/runtime/builtins/applyContainerProperties.d.ts.map +0 -1
  105. package/dist/kurot/runtime/builtins/applyContainerProperties.js.map +0 -1
  106. package/dist/kurot/runtime/builtins/applyControlProperties.d.ts +0 -7
  107. package/dist/kurot/runtime/builtins/applyControlProperties.d.ts.map +0 -1
  108. package/dist/kurot/runtime/builtins/applyControlProperties.js +0 -79
  109. package/dist/kurot/runtime/builtins/applyControlProperties.js.map +0 -1
  110. package/dist/kurot/runtime/builtins/applyDisplayProperties.d.ts +0 -7
  111. package/dist/kurot/runtime/builtins/applyDisplayProperties.d.ts.map +0 -1
  112. package/dist/kurot/runtime/builtins/applyDisplayProperties.js.map +0 -1
  113. package/dist/kurot/runtime/builtins/applyTextProperties.d.ts +0 -7
  114. package/dist/kurot/runtime/builtins/applyTextProperties.d.ts.map +0 -1
  115. package/dist/kurot/runtime/builtins/applyTextProperties.js.map +0 -1
package/README.md CHANGED
@@ -11,17 +11,22 @@ 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`,
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.
22
-
23
- Version 0.2 performs full-tree creation. It does not yet provide incremental
24
- reconciliation, bindings, actions, or transitions.
14
+ The runtime supports `kui.Group`, `kui.Label`, `kui.EditableText`, `kui.Image`,
15
+ `kui.Rect`, `kui.Button`, `kui.ToggleButton`, `kui.ProgressBar`, and
16
+ `kui.TextInput`, including their audited inherited properties, children, layout
17
+ descriptors, and nine-slice rectangles. ProgressBar appearances bind live thumb
18
+ and label parts. TextInput appearances bind a real EditableText `textDisplay`
19
+ and Label `promptDisplay`, preserving native focus, text entry, restrictions,
20
+ and prompt states. Reusable component assets are expanded with parameter
21
+ bindings, variants, part overrides, and projected Slot content. Appearance
22
+ assets become native Kurot skins and states, including the selected appearance
23
+ variant.
24
+
25
+ Version 0.3 completes the first bounded visual-semantics slice. Contract data
26
+ fields drive declared one-way property bindings, semantic actions expose
27
+ declared `tap` and `change` events, and numeric appearance overrides may use
28
+ bounded transitions. The package still performs full-tree creation; incremental
29
+ preview reconciliation belongs to the next phase.
25
30
 
26
31
  The result also provides a stable node lookup for editor selection and event
27
32
  wiring:
@@ -33,6 +38,9 @@ const internalLabel = result.instances.get('startButton/label');
33
38
  const state = result.stateControllers.get('startButton');
34
39
  state?.setState('disabled');
35
40
  state?.clearState();
41
+
42
+ result.data.setValue('balanceText', '$1,250.00');
43
+ result.dispose();
36
44
  ```
37
45
 
38
46
  Reusable-component state controllers apply Contract state overrides at runtime
@@ -40,9 +48,27 @@ and restore the exact pre-state values when cleared. Controllers are isolated
40
48
  per component instance; an unknown state throws `KurotUIRuntimeError`.
41
49
 
42
50
  Design tokens resolve from the supplied `UIAssetRegistry`. Resource references
43
- use their registered key by default; applications can provide
44
- `resolveResource(reference, definition)` to return the runtime value expected by
45
- their resource system.
51
+ use their registered key by default. Applications may replace the adapter for
52
+ each semantic category without adding resource-system behavior to the document
53
+ model:
54
+
55
+ ```ts
56
+ const result = createKurotUI(document, {
57
+ assets,
58
+ resourceAdapters: {
59
+ image: reference => resource.getRes(reference.key),
60
+ font: reference => fontFamilies[reference.key],
61
+ spine: reference => spineAssets[reference.key],
62
+ animation: reference => animations[reference.key],
63
+ },
64
+ onAction: action => controller.handle(action.action),
65
+ });
66
+ ```
67
+
68
+ Image and sprite-frame references can feed built-in `Image` properties. Spine
69
+ and animation remain project component boundaries: their category adapters
70
+ resolve the registered resource, while a project component adapter owns the
71
+ corresponding runtime object.
46
72
 
47
73
  Project component types are added by extending a foundation
48
74
  `UIComponentRegistry` and supplying a matching runtime adapter. Invalid
@@ -1 +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"}
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;AAI1D,OAAO,KAAK,EAEX,sBAAsB,EACtB,MAAM,YAAY,CAAC;AAEpB;;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,CAiBN"}
@@ -1,5 +1,4 @@
1
- import { applyComponentProperty } from './builtins/applyComponentProperties.js';
2
- import { applyDisplayProperty } from './builtins/applyDisplayProperties.js';
1
+ import { applyBuiltInProperty } from './builtins/applyBuiltInProperties.js';
3
2
  import { KurotUIRuntimeError } from './KurotUIRuntimeError.js';
4
3
  import { resolvePropertyValue } from './resolvePropertyValue.js';
5
4
  /**
@@ -7,12 +6,22 @@ import { resolvePropertyValue } from './resolvePropertyValue.js';
7
6
  */
8
7
  export function applyRuntimeProperty(target, type, name, value, path, context) {
9
8
  const resolved = resolvePropertyValue(value, path, context);
9
+ if (applyBuiltInProperty(target, name, resolved, path)) {
10
+ return;
11
+ }
10
12
  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);
13
+ if (applyAdapterProperty(adapter, target, name, resolved, path)) {
14
+ return;
15
+ }
16
+ throw new KurotUIRuntimeError('invalid-property', `Runtime property "${name}" is not supported by ${type}.`, path);
17
+ }
18
+ function applyAdapterProperty(adapter, target, name, value, path) {
19
+ if (adapter === undefined) {
20
+ return false;
21
+ }
22
+ if (adapter.applyProperty === undefined) {
23
+ return false;
16
24
  }
25
+ return adapter.applyProperty(target, name, value, path);
17
26
  }
18
27
  //# sourceMappingURL=applyRuntimeProperty.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"applyRuntimeProperty.js","sourceRoot":"","sources":["../../../src/kurot/runtime/applyRuntimeProperty.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAMjE;;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;IAE5D,IAAI,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;QACxD,OAAO;IACR,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;QACjE,OAAO;IACR,CAAC;IAED,MAAM,IAAI,mBAAmB,CAC5B,kBAAkB,EAClB,qBAAqB,IAAI,yBAAyB,IAAI,GAAG,EACzD,IAAI,CACJ,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC5B,OAA4C,EAC5C,MAAqB,EACrB,IAAY,EACZ,KAAc,EACd,IAAY;IAEZ,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,OAAO,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { DisplayObject } from '@kurot/core';
2
+ /**
3
+ * Routes one property to the matching built-in component layer.
4
+ */
5
+ export declare function applyBuiltInProperty(target: DisplayObject, name: string, value: unknown, path: string): boolean;
6
+ //# sourceMappingURL=applyBuiltInProperties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyBuiltInProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyBuiltInProperties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAyBjD;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GACV,OAAO,CAiCT"}
@@ -0,0 +1,61 @@
1
+ import { Button, Component, EditableText, Group, Image, Label, ProgressBar, Rect, TextInput, isUIComponent, } from '@kurot/ui';
2
+ import { applyButtonProperty } from './applyButtonProperties.js';
3
+ import { applyComponentProperty } from './applyComponentProperties.js';
4
+ import { applyEditableTextProperty } from './applyEditableTextProperties.js';
5
+ import { applyDisplayObjectProperty } from './applyDisplayObjectProperties.js';
6
+ import { applyGroupProperty } from './applyGroupProperties.js';
7
+ import { applyImageProperty } from './applyImageProperties.js';
8
+ import { applyLabelProperty } from './applyLabelProperties.js';
9
+ import { applyProgressBarProperty } from './applyProgressBarProperties.js';
10
+ import { applyRectProperty } from './applyRectProperties.js';
11
+ import { applyTextInputProperty } from './applyTextInputProperties.js';
12
+ import { applyUIComponentProperty } from './applyUIComponentProperties.js';
13
+ /**
14
+ * Routes one property to the matching built-in component layer.
15
+ */
16
+ export function applyBuiltInProperty(target, name, value, path) {
17
+ if (applyDisplayObjectProperty(target, name, value, path))
18
+ return true;
19
+ if (isUIComponent(target)) {
20
+ if (applyUIComponentProperty(target, name, value, path))
21
+ return true;
22
+ }
23
+ if (target instanceof Component) {
24
+ if (applyComponentProperty(target, name, value, path))
25
+ return true;
26
+ }
27
+ if (target instanceof Group) {
28
+ if (applyGroupProperty(target, name, value, path))
29
+ return true;
30
+ }
31
+ if (target instanceof Label) {
32
+ if (applyLabelProperty(target, name, value, path))
33
+ return true;
34
+ }
35
+ if (target instanceof EditableText) {
36
+ if (applyEditableTextProperty(target, name, value, path))
37
+ return true;
38
+ }
39
+ if (target instanceof TextInput) {
40
+ if (applyTextInputProperty(target, name, value, path))
41
+ return true;
42
+ }
43
+ if (target instanceof Image) {
44
+ if (applyImageProperty(target, name, value, path))
45
+ return true;
46
+ }
47
+ if (target instanceof Rect) {
48
+ if (applyRectProperty(target, name, value, path))
49
+ return true;
50
+ }
51
+ if (target instanceof Button) {
52
+ if (applyButtonProperty(target, name, value, path))
53
+ return true;
54
+ }
55
+ if (target instanceof ProgressBar) {
56
+ if (applyProgressBarProperty(target, name, value, path))
57
+ return true;
58
+ }
59
+ return false;
60
+ }
61
+ //# sourceMappingURL=applyBuiltInProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyBuiltInProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyBuiltInProperties.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Button } from '@kurot/ui';
2
+ /**
3
+ * Applies one property declared by Button and inherited by its subclasses.
4
+ */
5
+ export declare function applyButtonProperty(target: Button, name: string, value: unknown, path: string): boolean;
6
+ //# sourceMappingURL=applyButtonProperties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyButtonProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyButtonProperties.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GACV,OAAO,CAiBT"}
@@ -0,0 +1,43 @@
1
+ import { Texture } from '@kurot/core';
2
+ import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
3
+ /**
4
+ * Applies one property declared by Button and inherited by its subclasses.
5
+ */
6
+ export function applyButtonProperty(target, name, value, path) {
7
+ switch (name) {
8
+ case 'icon':
9
+ target.icon = requireImageSource(value, path);
10
+ return true;
11
+ case 'label':
12
+ target.label = requireString(value, path);
13
+ return true;
14
+ case 'selected':
15
+ target.selected = requireBoolean(value, path);
16
+ return true;
17
+ case 'toggle':
18
+ target.toggle = requireBoolean(value, path);
19
+ return true;
20
+ default:
21
+ return false;
22
+ }
23
+ }
24
+ function requireBoolean(value, path) {
25
+ if (typeof value === 'boolean')
26
+ return value;
27
+ throw invalidValue('boolean', path);
28
+ }
29
+ function requireString(value, path) {
30
+ if (typeof value === 'string')
31
+ return value;
32
+ throw invalidValue('string', path);
33
+ }
34
+ function requireImageSource(value, path) {
35
+ if (typeof value === 'string' || value instanceof Texture) {
36
+ return value;
37
+ }
38
+ throw invalidValue('a string or Texture', path);
39
+ }
40
+ function invalidValue(type, path) {
41
+ return new KurotUIRuntimeError('invalid-property', `Runtime property must be ${type}.`, path);
42
+ }
43
+ //# sourceMappingURL=applyButtonProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyButtonProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyButtonProperties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAClC,MAAc,EACd,IAAY,EACZ,KAAc,EACd,IAAY;IAEZ,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,MAAM;YACV,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,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,KAAc,EAAE,IAAY;IACnD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,IAAY;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,IAAY;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,YAAY,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AACjD,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,7 +1,6 @@
1
- import type { DisplayObject } from '@kurot/core';
2
- import type { UIPropertyValue } from '@kurot/ui-document';
1
+ import { Component } from '@kurot/ui';
3
2
  /**
4
- * Applies one property declared directly by a built-in Kurot UI component.
3
+ * Applies one property declared directly by Component.
5
4
  */
6
- export declare function applyComponentProperty(target: DisplayObject, name: string, value: UIPropertyValue, path: string): boolean;
5
+ export declare function applyComponentProperty(target: Component, name: string, value: unknown, path: string): boolean;
7
6
  //# sourceMappingURL=applyComponentProperties.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"applyComponentProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyComponentProperties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GACV,OAAO,CAQT"}
@@ -1,89 +1,12 @@
1
- import { Component, Image, Rect } from '@kurot/ui';
2
- import { createRectangle } from '../descriptors/createRectangle.js';
3
1
  import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
4
- import { applyContainerProperty } from './applyContainerProperties.js';
5
- import { applyControlProperty } from './applyControlProperties.js';
6
- import { applyTextProperty } from './applyTextProperties.js';
7
2
  /**
8
- * Applies one property declared directly by a built-in Kurot UI component.
3
+ * Applies one property declared directly by Component.
9
4
  */
10
5
  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
6
  switch (name) {
30
- case 'currentState':
31
- target.currentState = requireString(value, path);
32
- return true;
33
7
  case 'enabled':
34
8
  target.enabled = requireBoolean(value, path);
35
9
  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
10
  default:
88
11
  return false;
89
12
  }
@@ -91,24 +14,6 @@ function applyRectProperty(target, name, value, path) {
91
14
  function requireBoolean(value, path) {
92
15
  if (typeof value === 'boolean')
93
16
  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);
17
+ throw new KurotUIRuntimeError('invalid-property', 'Runtime property must be boolean.', path);
113
18
  }
114
19
  //# sourceMappingURL=applyComponentProperties.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"applyComponentProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyComponentProperties.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACrC,MAAqB,EACrB,IAAY,EACZ,KAAsB,EACtB,IAAY;IAEZ,IAAI,MAAM,YAAY,SAAS,IAAI,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QACtF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,MAAM,YAAY,KAAK,IAAI,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,MAAM,YAAY,IAAI,IAAI,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,sBAAsB,CAC9B,MAAiB,EACjB,IAAY,EACZ,KAAsB,EACtB,IAAY;IAEZ,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,SAAS;YACb,MAAM,CAAC,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC;QACb,KAAK,kBAAkB;YACtB,MAAM,CAAC,gBAAgB,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;QACb,KAAK,UAAU;YACd,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC;QACb;YACC,OAAO,KAAK,CAAC;IACf,CAAC;AACF,CAAC;AAED,SAAS,kBAAkB,CAC1B,MAAa,EACb,IAAY,EACZ,KAAsB,EACtB,IAAY;IAEZ,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,UAAU;YACd,MAAM,CAAC,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC;QACb,KAAK,YAAY;YAChB,MAAM,CAAC,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACb,KAAK,WAAW;YACf,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/C,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,KAAK,CAAC;IACf,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CACzB,MAAY,EACZ,IAAY,EACZ,KAAsB,EACtB,IAAY;IAEZ,QAAQ,IAAI,EAAE,CAAC;QACd,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,WAAW;YACf,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACb,KAAK,WAAW;YACf,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACb,KAAK,aAAa;YACjB,MAAM,CAAC,WAAW,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC;QACb,KAAK,aAAa;YACjB,MAAM,CAAC,WAAW,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC;QACb,KAAK,cAAc;YAClB,MAAM,CAAC,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjD,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,eAAe,CAAC,KAAsB,EAAE,IAAY;IAC5D,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,YAAY,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;AACpD,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":"applyComponentProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyComponentProperties.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACrC,MAAiB,EACjB,IAAY,EACZ,KAAc,EACd,IAAY;IAEZ,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,SAAS;YACb,MAAM,CAAC,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC;QACb;YACC,OAAO,KAAK,CAAC;IACf,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,IAAY;IACnD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,IAAI,mBAAmB,CAC5B,kBAAkB,EAClB,mCAAmC,EACnC,IAAI,CACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { DisplayObject } from '@kurot/core';
2
+ /**
3
+ * Applies one property declared by kurot.DisplayObject.
4
+ */
5
+ export declare function applyDisplayObjectProperty(target: DisplayObject, name: string, value: unknown, path: string): boolean;
6
+ //# sourceMappingURL=applyDisplayObjectProperties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyDisplayObjectProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyDisplayObjectProperties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD;;GAEG;AACH,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GACV,OAAO,CAiET"}
@@ -1,10 +1,8 @@
1
- import { DisplayObjectContainer } from '@kurot/core';
2
- import { isUIComponent } from '@kurot/ui';
3
1
  import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
4
2
  /**
5
- * Applies one inherited display or UI-layout property when recognized.
3
+ * Applies one property declared by kurot.DisplayObject.
6
4
  */
7
- export function applyDisplayProperty(target, name, value, path) {
5
+ export function applyDisplayObjectProperty(target, name, value, path) {
8
6
  switch (name) {
9
7
  case 'alpha':
10
8
  target.alpha = requireNumber(value, path);
@@ -66,78 +64,15 @@ export function applyDisplayProperty(target, name, value, path) {
66
64
  case 'zIndex':
67
65
  target.zIndex = requireNumber(value, path);
68
66
  return true;
69
- default:
70
- return applyUIProperty(target, name, value, path);
71
- }
72
- }
73
- function applyUIProperty(target, name, value, path) {
74
- if (!isUIComponent(target))
75
- return false;
76
- switch (name) {
77
- case 'bottom':
78
- target.bottom = requireConstraint(value, path);
79
- return true;
80
- case 'horizontalCenter':
81
- target.horizontalCenter = requireConstraint(value, path);
82
- return true;
83
- case 'includeInLayout':
84
- target.includeInLayout = requireBoolean(value, path);
85
- return true;
86
- case 'isRenderGroup':
87
- requireContainer(target, path).isRenderGroup = requireBoolean(value, path);
88
- return true;
89
- case 'left':
90
- target.left = requireConstraint(value, path);
91
- return true;
92
- case 'maxHeight':
93
- target.maxHeight = requireNumber(value, path);
94
- return true;
95
- case 'maxWidth':
96
- target.maxWidth = requireNumber(value, path);
97
- return true;
98
- case 'minHeight':
99
- target.minHeight = requireNumber(value, path);
100
- return true;
101
- case 'minWidth':
102
- target.minWidth = requireNumber(value, path);
103
- return true;
104
- case 'percentHeight':
105
- target.percentHeight = requireNumber(value, path);
106
- return true;
107
- case 'percentWidth':
108
- target.percentWidth = requireNumber(value, path);
109
- return true;
110
- case 'right':
111
- target.right = requireConstraint(value, path);
112
- return true;
113
- case 'top':
114
- target.top = requireConstraint(value, path);
115
- return true;
116
- case 'touchChildren':
117
- requireContainer(target, path).touchChildren = requireBoolean(value, path);
118
- return true;
119
- case 'verticalCenter':
120
- target.verticalCenter = requireConstraint(value, path);
121
- return true;
122
67
  default:
123
68
  return false;
124
69
  }
125
70
  }
126
- function requireContainer(target, path) {
127
- if (target instanceof DisplayObjectContainer)
128
- return target;
129
- throw new KurotUIRuntimeError('invalid-property', 'Property requires a display-object container.', path);
130
- }
131
71
  function requireBoolean(value, path) {
132
72
  if (typeof value === 'boolean')
133
73
  return value;
134
74
  throw invalidValue('boolean', path);
135
75
  }
136
- function requireConstraint(value, path) {
137
- if (typeof value === 'number' || typeof value === 'string')
138
- return value;
139
- throw invalidValue('number or string', path);
140
- }
141
76
  function requireNumber(value, path) {
142
77
  if (typeof value === 'number' && Number.isFinite(value))
143
78
  return value;
@@ -151,4 +86,4 @@ function requireString(value, path) {
151
86
  function invalidValue(type, path) {
152
87
  return new KurotUIRuntimeError('invalid-property', `Runtime property must be ${type}.`, path);
153
88
  }
154
- //# sourceMappingURL=applyDisplayProperties.js.map
89
+ //# sourceMappingURL=applyDisplayObjectProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyDisplayObjectProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyDisplayObjectProperties.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { EditableText } from '@kurot/ui';
2
+ /**
3
+ * Applies one property declared directly by EditableText.
4
+ */
5
+ export declare function applyEditableTextProperty(target: EditableText, name: string, value: unknown, path: string): boolean;
6
+ //# sourceMappingURL=applyEditableTextProperties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyEditableTextProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyEditableTextProperties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC;;GAEG;AACH,wBAAgB,yBAAyB,CACxC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GACV,OAAO,CAiBT"}
@@ -0,0 +1,41 @@
1
+ import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
2
+ /**
3
+ * Applies one property declared directly by EditableText.
4
+ */
5
+ export function applyEditableTextProperty(target, name, value, path) {
6
+ switch (name) {
7
+ case 'inputType':
8
+ target.inputType = requireInputType(value, path);
9
+ return true;
10
+ case 'prompt':
11
+ target.prompt = requireString(value, path);
12
+ return true;
13
+ case 'promptColor':
14
+ target.promptColor = requireNumber(value, path);
15
+ return true;
16
+ case 'restrict':
17
+ target.restrict = requireString(value, path);
18
+ return true;
19
+ default:
20
+ return false;
21
+ }
22
+ }
23
+ function requireInputType(value, path) {
24
+ if (value === 'text')
25
+ return value;
26
+ throw invalidValue('text', path);
27
+ }
28
+ function requireNumber(value, path) {
29
+ if (typeof value === 'number' && Number.isFinite(value))
30
+ return value;
31
+ throw invalidValue('number', path);
32
+ }
33
+ function requireString(value, path) {
34
+ if (typeof value === 'string')
35
+ return value;
36
+ throw invalidValue('string', path);
37
+ }
38
+ function invalidValue(type, path) {
39
+ return new KurotUIRuntimeError('invalid-property', `Runtime property must be ${type}.`, path);
40
+ }
41
+ //# sourceMappingURL=applyEditableTextProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyEditableTextProperties.js","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyEditableTextProperties.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACxC,MAAoB,EACpB,IAAY,EACZ,KAAc,EACd,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,QAAQ;YACZ,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC;QACb,KAAK,aAAa;YACjB,MAAM,CAAC,WAAW,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC;QACb,KAAK,UAAU;YACd,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO,IAAI,CAAC;QACb;YACC,OAAO,KAAK,CAAC;IACf,CAAC;AACF,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,IAAY;IACrD,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,IAAY;IAClD,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,KAAc,EAAE,IAAY;IAClD,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,6 @@
1
+ import { Group } from '@kurot/ui';
2
+ /**
3
+ * Applies one property declared directly by Group.
4
+ */
5
+ export declare function applyGroupProperty(target: Group, name: string, value: unknown, path: string): boolean;
6
+ //# sourceMappingURL=applyGroupProperties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyGroupProperties.d.ts","sourceRoot":"","sources":["../../../../src/kurot/runtime/builtins/applyGroupProperties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAIlC;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,KAAK,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GACV,OAAO,CAoBT"}
@@ -1,16 +1,10 @@
1
- import { Group } from '@kurot/ui';
2
1
  import { createLayout } from '../descriptors/createLayout.js';
3
2
  import { KurotUIRuntimeError } from '../KurotUIRuntimeError.js';
4
3
  /**
5
- * Applies one property owned by a built-in container component.
4
+ * Applies one property declared directly by Group.
6
5
  */
7
- export function applyContainerProperty(target, name, value, path) {
8
- if (!(target instanceof Group))
9
- return false;
6
+ export function applyGroupProperty(target, name, value, path) {
10
7
  switch (name) {
11
- case 'currentState':
12
- target.currentState = requireString(value, path);
13
- return true;
14
8
  case 'layout':
15
9
  target.layout = createLayout(value, path);
16
10
  return true;
@@ -40,12 +34,7 @@ function requireNumber(value, path) {
40
34
  return value;
41
35
  throw invalidValue('number', path);
42
36
  }
43
- function requireString(value, path) {
44
- if (typeof value === 'string')
45
- return value;
46
- throw invalidValue('string', path);
47
- }
48
37
  function invalidValue(type, path) {
49
38
  return new KurotUIRuntimeError('invalid-property', `Runtime property must be ${type}.`, path);
50
39
  }
51
- //# sourceMappingURL=applyContainerProperties.js.map
40
+ //# sourceMappingURL=applyGroupProperties.js.map