@almadar/std 16.173.0 → 16.175.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 (220) hide show
  1. package/behaviors/lolo/infra/atoms/std-cross-reference.lolo +2 -4
  2. package/behaviors/lolo/ui/core/atoms/std-board.lolo +5 -9
  3. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +8 -1
  4. package/behaviors/lolo/ui/core/atoms/std-esign-flow.lolo +2 -2
  5. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +3 -7
  6. package/behaviors/lolo/ui/core/atoms/std-form-advanced.lolo +1 -1
  7. package/behaviors/lolo/ui/core/atoms/std-image-upload-multi.lolo +1 -1
  8. package/behaviors/lolo/ui/core/atoms/std-list.lolo +3 -3
  9. package/behaviors/lolo/ui/core/atoms/std-modal.lolo +2 -2
  10. package/behaviors/lolo/ui/core/atoms/std-multi-party-flow.lolo +2 -4
  11. package/behaviors/lolo/ui/core/atoms/std-rating-review.lolo +5 -13
  12. package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +3 -7
  13. package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +1 -1
  14. package/behaviors/lolo/ui/core/atoms/std-signature-capture.lolo +2 -2
  15. package/behaviors/lolo/ui/core/atoms/std-step-flow.lolo +2 -4
  16. package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +1 -1
  17. package/behaviors/lolo/ui/core/atoms/std-thread.lolo +2 -2
  18. package/behaviors/lolo/ui/core/atoms/std-vote.lolo +2 -2
  19. package/behaviors/lolo/ui/core/atoms/std-wizard.lolo +3 -7
  20. package/behaviors/lolo/ui/core/atoms/ui-atlas-image.lolo +1 -1
  21. package/behaviors/lolo/ui/core/atoms/ui-atlas-panel.lolo +1 -1
  22. package/behaviors/lolo/ui/core/atoms/ui-center.lolo +1 -1
  23. package/behaviors/lolo/ui/core/atoms/ui-hstack.lolo +1 -1
  24. package/behaviors/lolo/ui/core/atoms/ui-icon.lolo +1 -1
  25. package/behaviors/lolo/ui/core/atoms/ui-stack.lolo +1 -1
  26. package/behaviors/lolo/ui/core/atoms/ui-typography.lolo +1 -1
  27. package/behaviors/lolo/ui/core/atoms/ui-vstack.lolo +1 -1
  28. package/behaviors/lolo/ui/core/molecules/ui-content-renderer.lolo +1 -1
  29. package/behaviors/lolo/ui/core/molecules/ui-form-layout.lolo +1 -1
  30. package/behaviors/lolo/ui/core/molecules/ui-grid.lolo +1 -1
  31. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +4 -9
  32. package/behaviors/lolo/ui/core/organisms/ui-chat-bar.lolo +1 -1
  33. package/behaviors/lolo/ui/core/organisms/ui-dashboard-grid.lolo +1 -1
  34. package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +1 -1
  35. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +1 -1
  36. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +1 -1
  37. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +1 -1
  38. package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +9 -3
  39. package/behaviors/lolo/ui/core/organisms/ui-form.lolo +9 -3
  40. package/behaviors/lolo/ui/core/organisms/ui-master-detail.lolo +1 -1
  41. package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +1 -1
  42. package/behaviors/lolo/ui/core/organisms/ui-segment-renderer.lolo +7 -1
  43. package/behaviors/lolo/ui/core/organisms/ui-stat-card.lolo +1 -1
  44. package/behaviors/lolo/ui/core/organisms/ui-subagent-trace-panel.lolo +1 -1
  45. package/behaviors/lolo/ui/game/atoms/ui-action-tile.lolo +1 -1
  46. package/behaviors/lolo/ui/game/atoms/ui-draw-shape-layer.lolo +41 -9
  47. package/behaviors/lolo/ui/game/atoms/ui-draw-shape.lolo +40 -8
  48. package/behaviors/lolo/ui/game/atoms/ui-draw-sprite-layer.lolo +13 -3
  49. package/behaviors/lolo/ui/game/atoms/ui-draw-sprite.lolo +12 -2
  50. package/behaviors/lolo/ui/game/atoms/ui-draw-text-layer.lolo +3 -3
  51. package/behaviors/lolo/ui/game/atoms/ui-draw-text.lolo +2 -2
  52. package/behaviors/lolo/ui/game/organisms/std-tactics-board-3d.lolo +32 -2
  53. package/behaviors/lolo/ui/learning/atoms/std-learn-classify.lolo +133 -23
  54. package/behaviors/lolo/ui/learning/atoms/std-learn-compare.lolo +397 -0
  55. package/behaviors/lolo/ui/learning/atoms/std-learn-coupled-sim.lolo +537 -0
  56. package/behaviors/lolo/ui/learning/atoms/std-learn-derivation.lolo +428 -0
  57. package/behaviors/lolo/ui/learning/atoms/std-learn-doser.lolo +520 -0
  58. package/behaviors/lolo/ui/learning/atoms/std-learn-estimate.lolo +419 -0
  59. package/behaviors/lolo/ui/learning/atoms/std-learn-goal-seek.lolo +591 -0
  60. package/behaviors/lolo/ui/learning/atoms/std-learn-grid-sim.lolo +425 -0
  61. package/behaviors/lolo/ui/learning/atoms/std-learn-hotspot.lolo +398 -0
  62. package/behaviors/lolo/ui/learning/atoms/std-learn-measure.lolo +325 -0
  63. package/behaviors/lolo/ui/learning/atoms/std-learn-perturb.lolo +494 -0
  64. package/behaviors/lolo/ui/learning/atoms/std-learn-predict.lolo +408 -0
  65. package/behaviors/lolo/ui/learning/atoms/std-learn-scatter-fit.lolo +805 -0
  66. package/behaviors/lolo/ui/learning/atoms/std-learn-scenario.lolo +307 -0
  67. package/behaviors/lolo/ui/learning/atoms/std-learn-sim-3d.lolo +318 -0
  68. package/behaviors/lolo/ui/learning/atoms/std-learn-speed-drill.lolo +336 -0
  69. package/behaviors/lolo/ui/learning/atoms/std-learn-tour-3d.lolo +409 -0
  70. package/behaviors/lolo/ui/learning/atoms/std-learn-transport.lolo +186 -0
  71. package/behaviors/lolo/ui/learning/atoms/std-learn-tree.lolo +522 -0
  72. package/behaviors/lolo/ui/learning/atoms/ui-algo-graph-canvas.lolo +192 -0
  73. package/behaviors/lolo/ui/learning/atoms/ui-algorithm-canvas.lolo +111 -2
  74. package/behaviors/lolo/ui/learning/atoms/ui-biology-canvas.lolo +193 -5
  75. package/behaviors/lolo/ui/learning/atoms/ui-chemistry-canvas.lolo +173 -5
  76. package/behaviors/lolo/ui/learning/atoms/ui-learning-canvas.lolo +48 -1
  77. package/behaviors/lolo/ui/learning/atoms/ui-math-canvas.lolo +141 -1
  78. package/behaviors/lolo/ui/learning/atoms/ui-physics-canvas.lolo +242 -5
  79. package/behaviors/lolo/ui/marketing/organisms/ui-book-viewer.lolo +1 -1
  80. package/behaviors/lolo/ui/marketing/organisms/ui-case-study-organism.lolo +1 -1
  81. package/behaviors/lolo/ui/marketing/organisms/ui-feature-grid-organism.lolo +1 -1
  82. package/behaviors/lolo/ui/marketing/organisms/ui-hero-organism.lolo +1 -1
  83. package/behaviors/lolo/ui/marketing/organisms/ui-pricing-organism.lolo +1 -1
  84. package/behaviors/lolo/ui/marketing/organisms/ui-showcase-organism.lolo +1 -1
  85. package/behaviors/lolo/ui/marketing/organisms/ui-stats-organism.lolo +1 -1
  86. package/behaviors/lolo/ui/marketing/organisms/ui-step-flow-organism.lolo +1 -1
  87. package/behaviors/lolo/ui/marketing/organisms/ui-team-organism.lolo +1 -1
  88. package/behaviors/registry/agent/atoms/std-agent-session.orb +22 -1
  89. package/behaviors/registry/agent/atoms/std-agent-tool-call.orb +38 -2
  90. package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +38 -2
  91. package/behaviors/registry/agent/organisms/std-agent-rabit.orb +23 -1
  92. package/behaviors/registry/infra/atoms/std-approval-gate.orb +8 -16
  93. package/behaviors/registry/infra/atoms/std-cache-aside.orb +31 -62
  94. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +16 -32
  95. package/behaviors/registry/infra/atoms/std-cross-reference.orb +32 -4
  96. package/behaviors/registry/infra/atoms/std-data-erasure.orb +8 -16
  97. package/behaviors/registry/infra/atoms/std-mod-queue.orb +8 -16
  98. package/behaviors/registry/infra/atoms/std-rate-limiter.orb +14 -28
  99. package/behaviors/registry/infra/atoms/std-row-access-control.orb +30 -2
  100. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +1 -2
  101. package/behaviors/registry/ui/core/atoms/std-board.orb +19 -5
  102. package/behaviors/registry/ui/core/atoms/std-browse.orb +29 -7
  103. package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +1 -2
  104. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +3 -5
  105. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +3 -6
  106. package/behaviors/registry/ui/core/atoms/std-event-log.orb +17 -3
  107. package/behaviors/registry/ui/core/atoms/std-export.orb +2 -4
  108. package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +1 -1
  109. package/behaviors/registry/ui/core/atoms/std-gallery.orb +9 -18
  110. package/behaviors/registry/ui/core/atoms/std-graphs.orb +15 -1
  111. package/behaviors/registry/ui/core/atoms/std-import.orb +2 -4
  112. package/behaviors/registry/ui/core/atoms/std-list.orb +4 -6
  113. package/behaviors/registry/ui/core/atoms/std-modal.orb +2 -2
  114. package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +16 -2
  115. package/behaviors/registry/ui/core/atoms/std-pagination.orb +15 -1
  116. package/behaviors/registry/ui/core/atoms/std-rating-review.orb +19 -5
  117. package/behaviors/registry/ui/core/atoms/std-recurrence.orb +17 -3
  118. package/behaviors/registry/ui/core/atoms/std-rich-editor.orb +15 -1
  119. package/behaviors/registry/ui/core/atoms/std-scatter.orb +15 -1
  120. package/behaviors/registry/ui/core/atoms/std-signature-capture.orb +2 -2
  121. package/behaviors/registry/ui/core/atoms/std-stats.orb +15 -1
  122. package/behaviors/registry/ui/core/atoms/std-step-flow.orb +16 -2
  123. package/behaviors/registry/ui/core/atoms/std-thread.orb +2 -2
  124. package/behaviors/registry/ui/core/atoms/std-vote.orb +2 -2
  125. package/behaviors/registry/ui/core/atoms/std-wizard.orb +17 -3
  126. package/behaviors/registry/ui/core/atoms/ui-atlas-image.orb +4 -1
  127. package/behaviors/registry/ui/core/atoms/ui-atlas-panel.orb +4 -1
  128. package/behaviors/registry/ui/core/atoms/ui-center.orb +4 -1
  129. package/behaviors/registry/ui/core/atoms/ui-hstack.orb +4 -1
  130. package/behaviors/registry/ui/core/atoms/ui-icon.orb +4 -1
  131. package/behaviors/registry/ui/core/atoms/ui-stack.orb +4 -1
  132. package/behaviors/registry/ui/core/atoms/ui-typography.orb +4 -1
  133. package/behaviors/registry/ui/core/atoms/ui-vstack.orb +4 -1
  134. package/behaviors/registry/ui/core/molecules/ui-accordion.orb +3 -3
  135. package/behaviors/registry/ui/core/molecules/ui-content-renderer.orb +4 -1
  136. package/behaviors/registry/ui/core/molecules/ui-form-layout.orb +4 -1
  137. package/behaviors/registry/ui/core/molecules/ui-grid.orb +4 -1
  138. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +4 -39
  139. package/behaviors/registry/ui/core/molecules/ui-tabs.orb +2 -2
  140. package/behaviors/registry/ui/core/molecules/ui-wizard-container.orb +1 -1
  141. package/behaviors/registry/ui/core/organisms/ui-chat-bar.orb +4 -1
  142. package/behaviors/registry/ui/core/organisms/ui-dashboard-grid.orb +5 -2
  143. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +5 -2
  144. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +4 -1
  145. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +4 -1
  146. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +4 -1
  147. package/behaviors/registry/ui/core/organisms/ui-form-section.orb +34 -2
  148. package/behaviors/registry/ui/core/organisms/ui-form.orb +34 -2
  149. package/behaviors/registry/ui/core/organisms/ui-master-detail.orb +4 -1
  150. package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +4 -1
  151. package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +24 -2
  152. package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +4 -1
  153. package/behaviors/registry/ui/core/organisms/ui-subagent-trace-panel.orb +4 -1
  154. package/behaviors/registry/ui/core/organisms/ui-tabbed-container.orb +1 -1
  155. package/behaviors/registry/ui/core/organisms/ui-ui-slot-renderer.orb +1 -1
  156. package/behaviors/registry/ui/game/atoms/std-fx-particles.orb +35 -1
  157. package/behaviors/registry/ui/game/atoms/ui-action-tile.orb +4 -1
  158. package/behaviors/registry/ui/game/atoms/ui-draw-shape-layer.orb +183 -13
  159. package/behaviors/registry/ui/game/atoms/ui-draw-shape.orb +104 -9
  160. package/behaviors/registry/ui/game/atoms/ui-draw-sprite-layer.orb +56 -2
  161. package/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +36 -4
  162. package/behaviors/registry/ui/game/atoms/ui-draw-text-layer.orb +21 -2
  163. package/behaviors/registry/ui/game/atoms/ui-draw-text.orb +19 -4
  164. package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +173 -2
  165. package/behaviors/registry/ui/learning/atoms/std-learn-classify.orb +1288 -197
  166. package/behaviors/registry/ui/learning/atoms/std-learn-compare.orb +2814 -0
  167. package/behaviors/registry/ui/learning/atoms/std-learn-coupled-sim.orb +3183 -0
  168. package/behaviors/registry/ui/learning/atoms/std-learn-derivation.orb +2512 -0
  169. package/behaviors/registry/ui/learning/atoms/std-learn-doser.orb +3678 -0
  170. package/behaviors/registry/ui/learning/atoms/std-learn-estimate.orb +2394 -0
  171. package/behaviors/registry/ui/learning/atoms/std-learn-goal-seek.orb +3951 -0
  172. package/behaviors/registry/ui/learning/atoms/std-learn-grid-sim.orb +3458 -0
  173. package/behaviors/registry/ui/learning/atoms/std-learn-hotspot.orb +2646 -0
  174. package/behaviors/registry/ui/learning/atoms/std-learn-measure.orb +1979 -0
  175. package/behaviors/registry/ui/learning/atoms/std-learn-perturb.orb +2994 -0
  176. package/behaviors/registry/ui/learning/atoms/std-learn-predict.orb +2682 -0
  177. package/behaviors/registry/ui/learning/atoms/std-learn-scatter-fit.orb +6539 -0
  178. package/behaviors/registry/ui/learning/atoms/std-learn-scenario.orb +1842 -0
  179. package/behaviors/registry/ui/learning/atoms/std-learn-sim-3d.orb +1648 -0
  180. package/behaviors/registry/ui/learning/atoms/std-learn-speed-drill.orb +2307 -0
  181. package/behaviors/registry/ui/learning/atoms/std-learn-tour-3d.orb +3118 -0
  182. package/behaviors/registry/ui/learning/atoms/std-learn-transport.orb +986 -0
  183. package/behaviors/registry/ui/learning/atoms/std-learn-tree.orb +3333 -0
  184. package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +716 -0
  185. package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +679 -5
  186. package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +962 -18
  187. package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +919 -30
  188. package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +372 -1
  189. package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +936 -16
  190. package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +1328 -43
  191. package/behaviors/registry/ui/marketing/atoms/std-marketing-article.orb +1 -2
  192. package/behaviors/registry/ui/marketing/atoms/std-marketing-footer.orb +1 -2
  193. package/behaviors/registry/ui/marketing/atoms/std-marketing-split.orb +1 -2
  194. package/behaviors/registry/ui/marketing/atoms/std-marketing-stats.orb +1 -2
  195. package/behaviors/registry/ui/marketing/atoms/std-marketing-steps.orb +1 -2
  196. package/behaviors/registry/ui/marketing/atoms/std-marketing-team.orb +1 -2
  197. package/behaviors/registry/ui/marketing/organisms/ui-book-viewer.orb +4 -1
  198. package/behaviors/registry/ui/marketing/organisms/ui-case-study-organism.orb +4 -1
  199. package/behaviors/registry/ui/marketing/organisms/ui-feature-grid-organism.orb +4 -1
  200. package/behaviors/registry/ui/marketing/organisms/ui-hero-organism.orb +4 -1
  201. package/behaviors/registry/ui/marketing/organisms/ui-pricing-organism.orb +4 -1
  202. package/behaviors/registry/ui/marketing/organisms/ui-showcase-organism.orb +4 -1
  203. package/behaviors/registry/ui/marketing/organisms/ui-stats-organism.orb +4 -1
  204. package/behaviors/registry/ui/marketing/organisms/ui-step-flow-organism.orb +4 -1
  205. package/behaviors/registry/ui/marketing/organisms/ui-team-organism.orb +4 -1
  206. package/dist/behaviors/exports-reader.js +3704 -2189
  207. package/dist/behaviors/functions/index.d.ts +2638 -254
  208. package/dist/behaviors/functions/index.js +3648 -2190
  209. package/dist/behaviors/index.d.ts +1 -1
  210. package/dist/behaviors/index.js +3705 -2190
  211. package/dist/behaviors/query.js +3704 -2189
  212. package/dist/behaviors-embeddings.hash.json +3 -3
  213. package/dist/behaviors-embeddings.json +289 -213
  214. package/dist/behaviors-registry.json +7900 -587
  215. package/dist/index.d.ts +1 -1
  216. package/dist/index.js +3705 -2190
  217. package/dist/knob-embeddings.hash.json +3 -3
  218. package/dist/knob-embeddings.json +1 -1
  219. package/dist/registry/factory-signatures.json +1 -1
  220. package/package.json +2 -2
@@ -173,7 +173,7 @@ orbital EntityTableOrbital {
173
173
  @label "Total Count"
174
174
  @description "Total number of items"
175
175
  @tier "presentation"
176
- activeFilters : json = {}
176
+ activeFilters : Map string string = {}
177
177
  @label "Active Filters"
178
178
  @description "Active filters"
179
179
  @tier "presentation"
@@ -17,7 +17,7 @@ orbital FormSectionOrbital {
17
17
  min : number
18
18
  max : number
19
19
  pattern : string
20
- validation : json
20
+ validation : FormSectionFieldsItemValidation
21
21
  readonly : boolean
22
22
  disabled : boolean
23
23
  }
@@ -30,6 +30,9 @@ orbital FormSectionOrbital {
30
30
  displayField : string
31
31
  cardinality : "one" | "many"
32
32
  }
33
+ type FormSectionFieldsItemValidation = {
34
+ enum : [string]
35
+ }
33
36
  type FormSectionError = {
34
37
  message : string!
35
38
  name : string
@@ -86,7 +89,7 @@ orbital FormSectionOrbital {
86
89
  min : number
87
90
  max : number
88
91
  pattern : string
89
- validation : json
92
+ validation : FormSectionSectionsItemFieldsItemValidation
90
93
  readonly : boolean
91
94
  disabled : boolean
92
95
  }
@@ -99,6 +102,9 @@ orbital FormSectionOrbital {
99
102
  displayField : string
100
103
  cardinality : "one" | "many"
101
104
  }
105
+ type FormSectionSectionsItemFieldsItemValidation = {
106
+ enum : [string]
107
+ }
102
108
  type FormSectionFIELDCHANGEChange = {
103
109
  fieldId : string!
104
110
  value : json!
@@ -233,7 +239,7 @@ orbital FormSectionOrbital {
233
239
  @label "Mode"
234
240
  @description "Form mode — 'create' for new records, 'edit' for updating existing. Accepts `string` so schema-driven callers (whose `config.mode` is typed as `string` per the trait's declared config block) compile cleanly. The runtime treats anything other than 'edit' as 'create'."
235
241
  @tier "presentation"
236
- fields : [FormSectionFieldsItem] = [{ name: "Name", field: "Field", label: "Label", type: "Type", inputType: "Input Type", placeholder: "Placeholder", required: false, options: [{ value: "Value", label: "Label" }, { value: "Value 2", label: "Label 2" }], values: ["Item", "Item 2"], relation: { entity: "Entity", displayField: "Display Field", cardinality: one }, min: 1, max: 1, pattern: "Pattern", readonly: false, disabled: false }, { name: "Name 2", field: "Field 2", label: "Label 2", type: "Type 2", inputType: "Input Type 2", placeholder: "Placeholder 2", required: true, options: [{ value: "Value", label: "Label" }, { value: "Value 2", label: "Label 2" }], values: ["Item", "Item 2"], relation: { entity: "Entity 2", displayField: "Display Field 2", cardinality: many }, min: 2, max: 2, pattern: "Pattern 2", readonly: true, disabled: true }]
242
+ fields : [FormSectionFieldsItem] = [{ name: "Name", field: "Field", label: "Label", type: "Type", inputType: "Input Type", placeholder: "Placeholder", required: false, options: [{ value: "Value", label: "Label" }, { value: "Value 2", label: "Label 2" }], values: ["Item", "Item 2"], relation: { entity: "Entity", displayField: "Display Field", cardinality: one }, min: 1, max: 1, pattern: "Pattern", validation: { enum: ["Item", "Item 2"] }, readonly: false, disabled: false }, { name: "Name 2", field: "Field 2", label: "Label 2", type: "Type 2", inputType: "Input Type 2", placeholder: "Placeholder 2", required: true, options: [{ value: "Value", label: "Label" }, { value: "Value 2", label: "Label 2" }], values: ["Item", "Item 2"], relation: { entity: "Entity 2", displayField: "Display Field 2", cardinality: many }, min: 2, max: 2, pattern: "Pattern 2", validation: { enum: ["Item", "Item 2"] }, readonly: true, disabled: true }]
237
243
  @label "Fields"
238
244
  @description "Fields definition (schema format) - accepts readonly for generated const arrays"
239
245
  @tier "presentation"
@@ -17,7 +17,7 @@ orbital FormOrbital {
17
17
  min : number
18
18
  max : number
19
19
  pattern : string
20
- validation : json
20
+ validation : FormFieldsItemValidation
21
21
  readonly : boolean
22
22
  disabled : boolean
23
23
  }
@@ -30,6 +30,9 @@ orbital FormOrbital {
30
30
  displayField : string
31
31
  cardinality : "one" | "many"
32
32
  }
33
+ type FormFieldsItemValidation = {
34
+ enum : [string]
35
+ }
33
36
  type FormError = {
34
37
  message : string!
35
38
  name : string
@@ -86,7 +89,7 @@ orbital FormOrbital {
86
89
  min : number
87
90
  max : number
88
91
  pattern : string
89
- validation : json
92
+ validation : FormSectionsItemFieldsItemValidation
90
93
  readonly : boolean
91
94
  disabled : boolean
92
95
  }
@@ -99,6 +102,9 @@ orbital FormOrbital {
99
102
  displayField : string
100
103
  cardinality : "one" | "many"
101
104
  }
105
+ type FormSectionsItemFieldsItemValidation = {
106
+ enum : [string]
107
+ }
102
108
  type FormFIELDCHANGEChange = {
103
109
  fieldId : string!
104
110
  value : json!
@@ -233,7 +239,7 @@ orbital FormOrbital {
233
239
  @label "Mode"
234
240
  @description "Form mode — 'create' for new records, 'edit' for updating existing. Accepts `string` so schema-driven callers (whose `config.mode` is typed as `string` per the trait's declared config block) compile cleanly. The runtime treats anything other than 'edit' as 'create'."
235
241
  @tier "presentation"
236
- fields : [FormFieldsItem] = [{ name: "Name", field: "Field", label: "Label", type: "Type", inputType: "Input Type", placeholder: "Placeholder", required: false, options: [{ value: "Value", label: "Label" }, { value: "Value 2", label: "Label 2" }], values: ["Item", "Item 2"], relation: { entity: "Entity", displayField: "Display Field", cardinality: one }, min: 1, max: 1, pattern: "Pattern", readonly: false, disabled: false }, { name: "Name 2", field: "Field 2", label: "Label 2", type: "Type 2", inputType: "Input Type 2", placeholder: "Placeholder 2", required: true, options: [{ value: "Value", label: "Label" }, { value: "Value 2", label: "Label 2" }], values: ["Item", "Item 2"], relation: { entity: "Entity 2", displayField: "Display Field 2", cardinality: many }, min: 2, max: 2, pattern: "Pattern 2", readonly: true, disabled: true }]
242
+ fields : [FormFieldsItem] = [{ name: "Name", field: "Field", label: "Label", type: "Type", inputType: "Input Type", placeholder: "Placeholder", required: false, options: [{ value: "Value", label: "Label" }, { value: "Value 2", label: "Label 2" }], values: ["Item", "Item 2"], relation: { entity: "Entity", displayField: "Display Field", cardinality: one }, min: 1, max: 1, pattern: "Pattern", validation: { enum: ["Item", "Item 2"] }, readonly: false, disabled: false }, { name: "Name 2", field: "Field 2", label: "Label 2", type: "Type 2", inputType: "Input Type 2", placeholder: "Placeholder 2", required: true, options: [{ value: "Value", label: "Label" }, { value: "Value 2", label: "Label 2" }], values: ["Item", "Item 2"], relation: { entity: "Entity 2", displayField: "Display Field 2", cardinality: many }, min: 2, max: 2, pattern: "Pattern 2", validation: { enum: ["Item", "Item 2"] }, readonly: true, disabled: true }]
237
243
  @label "Fields"
238
244
  @description "Fields definition (schema format) - accepts readonly for generated const arrays"
239
245
  @tier "presentation"
@@ -103,7 +103,7 @@ orbital MasterDetailOrbital {
103
103
  @label "Total Count"
104
104
  @description "Total number of items"
105
105
  @tier "presentation"
106
- activeFilters : json = {}
106
+ activeFilters : Map string string = {}
107
107
  @label "Active Filters"
108
108
  @description "Active filters"
109
109
  @tier "presentation"
@@ -135,7 +135,7 @@ orbital MediaGalleryOrbital {
135
135
  @label "Total Count"
136
136
  @description "Total number of items"
137
137
  @tier "presentation"
138
- activeFilters : json = {}
138
+ activeFilters : Map string string = {}
139
139
  @label "Active Filters"
140
140
  @description "Active filters"
141
141
  @tier "presentation"
@@ -1,6 +1,12 @@
1
1
  app ui-segment-renderer "1.0.0"
2
2
  "SegmentRenderer — UI factory (1:1 with the @almadar/ui segment-renderer pattern)."
3
3
  orbital SegmentRendererOrbital {
4
+ type SegmentRendererUserProgress = {
5
+ activationResponse : string
6
+ reflectionNotes : [string]
7
+ bloomAnswered : Map string boolean
8
+ }
9
+
4
10
  entity SegmentRendererItem [runtime] {
5
11
  id : string!
6
12
  }
@@ -32,7 +38,7 @@ orbital SegmentRendererOrbital {
32
38
  @label "Container Class Name"
33
39
  @description "CSS classes for the outer wrapping div"
34
40
  @tier "presentation"
35
- userProgress : json = {}
41
+ userProgress : SegmentRendererUserProgress
36
42
  @label "User Progress"
37
43
  @description "User progress for restoring activation/reflection state"
38
44
  @tier "presentation"
@@ -141,7 +141,7 @@ orbital StatCardOrbital {
141
141
  @label "Total Count"
142
142
  @description "Total number of items"
143
143
  @tier "presentation"
144
- activeFilters : json = {}
144
+ activeFilters : Map string string = {}
145
145
  @label "Active Filters"
146
146
  @description "Active filters"
147
147
  @tier "presentation"
@@ -108,7 +108,7 @@ orbital SubagentTracePanelOrbital {
108
108
  @label "Total Count"
109
109
  @description "Total number of items"
110
110
  @tier "presentation"
111
- activeFilters : json = {}
111
+ activeFilters : Map string string = {}
112
112
  @label "Active Filters"
113
113
  @description "Active filters"
114
114
  @tier "presentation"
@@ -102,7 +102,7 @@ orbital ActionTileOrbital {
102
102
  @label "Total Count"
103
103
  @description "Total number of items"
104
104
  @tier "presentation"
105
- activeFilters : json = {}
105
+ activeFilters : Map string string = {}
106
106
  @label "Active Filters"
107
107
  @description "Active filters"
108
108
  @tier "presentation"
@@ -12,7 +12,7 @@ orbital DrawShapeLayerOrbital {
12
12
  radiusY : number
13
13
  offsetX : number
14
14
  offsetY : number
15
- points : [json]
15
+ points : [DrawShapeLayerItemsItemPointsItem]
16
16
  d : string
17
17
  fill : string
18
18
  gradient : DrawShapeLayerItemsItemGradient
@@ -25,7 +25,7 @@ orbital DrawShapeLayerOrbital {
25
25
  blendMode : "source-over" | "lighter" | "multiply" | "screen" | "overlay" | "darken" | "lighten" | "color-dodge" | "color-burn" | "hard-light" | "soft-light" | "difference" | "exclusion" | "hue" | "saturation" | "color" | "luminosity" | "source-atop" | "destination-over" | "destination-out" | "xor"
26
26
  blur : number
27
27
  rotate : number
28
- pivot : json
28
+ pivot : DrawShapeLayerItemsItemPivot
29
29
  shadow : DrawShapeLayerItemsItemShadow
30
30
  animation : DrawShapeLayerItemsItemAnimation
31
31
  opacity : number
@@ -35,15 +35,31 @@ orbital DrawShapeLayerOrbital {
35
35
  y : number!
36
36
  z : number
37
37
  }
38
+ type DrawShapeLayerItemsItemPointsItem = {
39
+ x : number!
40
+ y : number!
41
+ }
38
42
  type DrawShapeLayerItemsItemGradient = {
39
43
  kind : "linear" | "radial" | "conic"!
40
- from : json
41
- to : json
42
- center : json
44
+ from : DrawShapeLayerItemsItemGradientFrom
45
+ to : DrawShapeLayerItemsItemGradientTo
46
+ center : DrawShapeLayerItemsItemGradientCenter
43
47
  radius : number
44
48
  angle : number
45
49
  stops : [json]!
46
50
  }
51
+ type DrawShapeLayerItemsItemGradientFrom = {
52
+ x : number!
53
+ y : number!
54
+ }
55
+ type DrawShapeLayerItemsItemGradientTo = {
56
+ x : number!
57
+ y : number!
58
+ }
59
+ type DrawShapeLayerItemsItemGradientCenter = {
60
+ x : number!
61
+ y : number!
62
+ }
47
63
  type DrawShapeLayerItemsItemFillPattern = {
48
64
  kind : "noise" | "image"!
49
65
  url : string
@@ -53,13 +69,29 @@ orbital DrawShapeLayerOrbital {
53
69
  }
54
70
  type DrawShapeLayerItemsItemStrokeGradient = {
55
71
  kind : "linear" | "radial" | "conic"!
56
- from : json
57
- to : json
58
- center : json
72
+ from : DrawShapeLayerItemsItemStrokeGradientFrom
73
+ to : DrawShapeLayerItemsItemStrokeGradientTo
74
+ center : DrawShapeLayerItemsItemStrokeGradientCenter
59
75
  radius : number
60
76
  angle : number
61
77
  stops : [json]!
62
78
  }
79
+ type DrawShapeLayerItemsItemStrokeGradientFrom = {
80
+ x : number!
81
+ y : number!
82
+ }
83
+ type DrawShapeLayerItemsItemStrokeGradientTo = {
84
+ x : number!
85
+ y : number!
86
+ }
87
+ type DrawShapeLayerItemsItemStrokeGradientCenter = {
88
+ x : number!
89
+ y : number!
90
+ }
91
+ type DrawShapeLayerItemsItemPivot = {
92
+ x : number!
93
+ y : number!
94
+ }
63
95
  type DrawShapeLayerItemsItemShadow = {
64
96
  color : string!
65
97
  blur : number!
@@ -107,7 +139,7 @@ orbital DrawShapeLayerOrbital {
107
139
  }
108
140
 
109
141
  config {
110
- items : [DrawShapeLayerItemsItem] = [{ type: "Type", shape: cell, position: { x: 1, y: 1, z: 1 }, width: 1, height: 1, radiusX: 1, radiusY: 1, offsetX: 1, offsetY: 1, points: [], d: "D", fill: "Fill", gradient: { kind: linear, radius: 1, angle: 1, stops: [] }, fillPattern: { kind: noise, url: "Url", scale: 1, alpha: 1, color: "Color" }, stroke: "Stroke", strokeWidth: 1, strokeGradient: { kind: linear, radius: 1, angle: 1, stops: [] }, strokeDash: [1, 2], strokeDashOffset: 1, blendMode: "source-over", blur: 1, rotate: 1, shadow: { color: "Color", blur: 1 }, animation: { durationMs: 1, loop: false, keyframes: [{ at: 1, offsetX: 1, offsetY: 1, rotate: 1, opacity: 1, radiusX: 1, radiusY: 1, width: 1, height: 1, strokeWidth: 1, strokeDashOffset: 1, blur: 1, fill: "Fill", stroke: "Stroke", shadow: { color: "Color", blur: 1 } }, { at: 2, offsetX: 2, offsetY: 2, rotate: 2, opacity: 2, radiusX: 2, radiusY: 2, width: 2, height: 2, strokeWidth: 2, strokeDashOffset: 2, blur: 2, fill: "Fill 2", stroke: "Stroke 2", shadow: { color: "Color 2", blur: 2 } }] }, opacity: 1 }, { type: "Type 2", shape: rect, position: { x: 2, y: 2, z: 2 }, width: 2, height: 2, radiusX: 2, radiusY: 2, offsetX: 2, offsetY: 2, points: [], d: "D 2", fill: "Fill 2", gradient: { kind: radial, radius: 2, angle: 2, stops: [] }, fillPattern: { kind: image, url: "Url 2", scale: 2, alpha: 2, color: "Color 2" }, stroke: "Stroke 2", strokeWidth: 2, strokeGradient: { kind: radial, radius: 2, angle: 2, stops: [] }, strokeDash: [1, 2], strokeDashOffset: 2, blendMode: lighter, blur: 2, rotate: 2, shadow: { color: "Color 2", blur: 2 }, animation: { durationMs: 2, loop: true, keyframes: [{ at: 1, offsetX: 1, offsetY: 1, rotate: 1, opacity: 1, radiusX: 1, radiusY: 1, width: 1, height: 1, strokeWidth: 1, strokeDashOffset: 1, blur: 1, fill: "Fill", stroke: "Stroke", shadow: { color: "Color", blur: 1 } }, { at: 2, offsetX: 2, offsetY: 2, rotate: 2, opacity: 2, radiusX: 2, radiusY: 2, width: 2, height: 2, strokeWidth: 2, strokeDashOffset: 2, blur: 2, fill: "Fill 2", stroke: "Stroke 2", shadow: { color: "Color 2", blur: 2 } }] }, opacity: 2 }]
142
+ items : [DrawShapeLayerItemsItem] = [{ type: "Type", shape: cell, position: { x: 1, y: 1, z: 1 }, width: 1, height: 1, radiusX: 1, radiusY: 1, offsetX: 1, offsetY: 1, points: [{ x: 1, y: 1 }, { x: 2, y: 2 }], d: "D", fill: "Fill", gradient: { kind: linear, from: { x: 1, y: 1 }, to: { x: 1, y: 1 }, center: { x: 1, y: 1 }, radius: 1, angle: 1, stops: [] }, fillPattern: { kind: noise, url: "Url", scale: 1, alpha: 1, color: "Color" }, stroke: "Stroke", strokeWidth: 1, strokeGradient: { kind: linear, from: { x: 1, y: 1 }, to: { x: 1, y: 1 }, center: { x: 1, y: 1 }, radius: 1, angle: 1, stops: [] }, strokeDash: [1, 2], strokeDashOffset: 1, blendMode: "source-over", blur: 1, rotate: 1, pivot: { x: 1, y: 1 }, shadow: { color: "Color", blur: 1 }, animation: { durationMs: 1, loop: false, keyframes: [{ at: 1, offsetX: 1, offsetY: 1, rotate: 1, opacity: 1, radiusX: 1, radiusY: 1, width: 1, height: 1, strokeWidth: 1, strokeDashOffset: 1, blur: 1, fill: "Fill", stroke: "Stroke", shadow: { color: "Color", blur: 1 } }, { at: 2, offsetX: 2, offsetY: 2, rotate: 2, opacity: 2, radiusX: 2, radiusY: 2, width: 2, height: 2, strokeWidth: 2, strokeDashOffset: 2, blur: 2, fill: "Fill 2", stroke: "Stroke 2", shadow: { color: "Color 2", blur: 2 } }] }, opacity: 1 }, { type: "Type 2", shape: rect, position: { x: 2, y: 2, z: 2 }, width: 2, height: 2, radiusX: 2, radiusY: 2, offsetX: 2, offsetY: 2, points: [{ x: 1, y: 1 }, { x: 2, y: 2 }], d: "D 2", fill: "Fill 2", gradient: { kind: radial, from: { x: 2, y: 2 }, to: { x: 2, y: 2 }, center: { x: 2, y: 2 }, radius: 2, angle: 2, stops: [] }, fillPattern: { kind: image, url: "Url 2", scale: 2, alpha: 2, color: "Color 2" }, stroke: "Stroke 2", strokeWidth: 2, strokeGradient: { kind: radial, from: { x: 2, y: 2 }, to: { x: 2, y: 2 }, center: { x: 2, y: 2 }, radius: 2, angle: 2, stops: [] }, strokeDash: [1, 2], strokeDashOffset: 2, blendMode: lighter, blur: 2, rotate: 2, pivot: { x: 2, y: 2 }, shadow: { color: "Color 2", blur: 2 }, animation: { durationMs: 2, loop: true, keyframes: [{ at: 1, offsetX: 1, offsetY: 1, rotate: 1, opacity: 1, radiusX: 1, radiusY: 1, width: 1, height: 1, strokeWidth: 1, strokeDashOffset: 1, blur: 1, fill: "Fill", stroke: "Stroke", shadow: { color: "Color", blur: 1 } }, { at: 2, offsetX: 2, offsetY: 2, rotate: 2, opacity: 2, radiusX: 2, radiusY: 2, width: 2, height: 2, strokeWidth: 2, strokeDashOffset: 2, blur: 2, fill: "Fill 2", stroke: "Stroke 2", shadow: { color: "Color 2", blur: 2 } }] }, opacity: 2 }]
111
143
  @label "Items"
112
144
  @description "items prop"
113
145
  @tier "presentation"
@@ -6,15 +6,31 @@ orbital DrawShapeOrbital {
6
6
  y : number!
7
7
  z : number
8
8
  }
9
+ type DrawShapePointsItem = {
10
+ x : number!
11
+ y : number!
12
+ }
9
13
  type DrawShapeGradient = {
10
14
  kind : "linear" | "radial" | "conic"!
11
- from : json
12
- to : json
13
- center : json
15
+ from : DrawShapeGradientFrom
16
+ to : DrawShapeGradientTo
17
+ center : DrawShapeGradientCenter
14
18
  radius : number
15
19
  angle : number
16
20
  stops : [json]!
17
21
  }
22
+ type DrawShapeGradientFrom = {
23
+ x : number!
24
+ y : number!
25
+ }
26
+ type DrawShapeGradientTo = {
27
+ x : number!
28
+ y : number!
29
+ }
30
+ type DrawShapeGradientCenter = {
31
+ x : number!
32
+ y : number!
33
+ }
18
34
  type DrawShapeFillPattern = {
19
35
  kind : "noise" | "image"!
20
36
  url : string
@@ -24,13 +40,29 @@ orbital DrawShapeOrbital {
24
40
  }
25
41
  type DrawShapeStrokeGradient = {
26
42
  kind : "linear" | "radial" | "conic"!
27
- from : json
28
- to : json
29
- center : json
43
+ from : DrawShapeStrokeGradientFrom
44
+ to : DrawShapeStrokeGradientTo
45
+ center : DrawShapeStrokeGradientCenter
30
46
  radius : number
31
47
  angle : number
32
48
  stops : [json]!
33
49
  }
50
+ type DrawShapeStrokeGradientFrom = {
51
+ x : number!
52
+ y : number!
53
+ }
54
+ type DrawShapeStrokeGradientTo = {
55
+ x : number!
56
+ y : number!
57
+ }
58
+ type DrawShapeStrokeGradientCenter = {
59
+ x : number!
60
+ y : number!
61
+ }
62
+ type DrawShapePivot = {
63
+ x : number!
64
+ y : number!
65
+ }
34
66
  type DrawShapeShadow = {
35
67
  color : string!
36
68
  blur : number!
@@ -139,7 +171,7 @@ orbital DrawShapeOrbital {
139
171
  @label "Offset Y"
140
172
  @description "offsetY prop"
141
173
  @tier "presentation"
142
- points : [json] = []
174
+ points : [DrawShapePointsItem] = []
143
175
  @label "Points"
144
176
  @description "Poly vertices as world-unit offsets relative to the cell's projected top-left."
145
177
  @tier "presentation"
@@ -191,7 +223,7 @@ orbital DrawShapeOrbital {
191
223
  @label "Rotate"
192
224
  @description "Rotation in radians (painter units, same as `draw-group`), about `pivot`."
193
225
  @tier "presentation"
194
- pivot : json = {}
226
+ pivot : DrawShapePivot
195
227
  @label "Pivot"
196
228
  @description "Rotation pivot in world units relative to the cell's projected top-left; default `{x:0.5, y:0.5}` (cell center)."
197
229
  @tier "presentation"
@@ -8,13 +8,13 @@ orbital DrawSpriteLayerOrbital {
8
8
  anchor : json
9
9
  width : number
10
10
  height : number
11
- frame : json
11
+ frame : DrawSpriteLayerItemsItemFrame
12
12
  animation : string
13
13
  loop : boolean
14
14
  flipX : boolean
15
15
  rotation : number
16
16
  opacity : number
17
- shadow : json
17
+ shadow : DrawSpriteLayerItemsItemShadow
18
18
  }
19
19
  type DrawSpriteLayerItemsItemPosition = {
20
20
  x : number!
@@ -35,6 +35,16 @@ orbital DrawSpriteLayerOrbital {
35
35
  name : string
36
36
  thumbnailUrl : string
37
37
  }
38
+ type DrawSpriteLayerItemsItemFrame = {
39
+ x : number!
40
+ y : number!
41
+ w : number!
42
+ h : number!
43
+ }
44
+ type DrawSpriteLayerItemsItemShadow = {
45
+ color : string!
46
+ blur : number!
47
+ }
38
48
 
39
49
  entity DrawSpriteLayerItem [runtime] {
40
50
  id : string!
@@ -52,7 +62,7 @@ orbital DrawSpriteLayerOrbital {
52
62
  }
53
63
 
54
64
  config {
55
- items : [DrawSpriteLayerItemsItem] = [{ type: "Type", position: { x: 1, y: 1, z: 1 }, asset: { url: "https://almadar-kflow-assets.web.app/shared/ui-roguelike-board/default/units/player.png", role: "npc", category: "asset", animations: ["idle", "walk", "attack", "hit", "death"], style: "pixel", dimension: "2d", aspect: "1:1", name: "asset", thumbnailUrl: "" }, width: 1, height: 1, animation: "Animation", loop: false, flipX: false, rotation: 1, opacity: 1 }, { type: "Type 2", position: { x: 2, y: 2, z: 2 }, asset: { url: "https://almadar-kflow-assets.web.app/shared/ui-roguelike-board/default/units/player.png", role: "npc", category: "asset", animations: ["idle", "walk", "attack", "hit", "death"], style: "pixel", dimension: "2d", aspect: "1:1", name: "asset", thumbnailUrl: "" }, width: 2, height: 2, animation: "Animation 2", loop: true, flipX: true, rotation: 2, opacity: 2 }]
65
+ items : [DrawSpriteLayerItemsItem] = [{ type: "Type", position: { x: 1, y: 1, z: 1 }, asset: { url: "https://almadar-kflow-assets.web.app/shared/ui-roguelike-board/default/units/player.png", role: "npc", category: "asset", animations: ["idle", "walk", "attack", "hit", "death"], style: "pixel", dimension: "2d", aspect: "1:1", name: "asset", thumbnailUrl: "" }, width: 1, height: 1, frame: { x: 1, y: 1, w: 1, h: 1 }, animation: "Animation", loop: false, flipX: false, rotation: 1, opacity: 1, shadow: { color: "Color", blur: 1 } }, { type: "Type 2", position: { x: 2, y: 2, z: 2 }, asset: { url: "https://almadar-kflow-assets.web.app/shared/ui-roguelike-board/default/units/player.png", role: "npc", category: "asset", animations: ["idle", "walk", "attack", "hit", "death"], style: "pixel", dimension: "2d", aspect: "1:1", name: "asset", thumbnailUrl: "" }, width: 2, height: 2, frame: { x: 2, y: 2, w: 2, h: 2 }, animation: "Animation 2", loop: true, flipX: true, rotation: 2, opacity: 2, shadow: { color: "Color 2", blur: 2 } }]
56
66
  @label "Items"
57
67
  @description "Sprites painted in array order; z-ordering is the caller's responsibility."
58
68
  @tier "presentation"
@@ -20,6 +20,16 @@ orbital DrawSpriteOrbital {
20
20
  name : string
21
21
  thumbnailUrl : string
22
22
  }
23
+ type DrawSpriteFrame = {
24
+ x : number!
25
+ y : number!
26
+ w : number!
27
+ h : number!
28
+ }
29
+ type DrawSpriteShadow = {
30
+ color : string!
31
+ blur : number!
32
+ }
23
33
 
24
34
  entity DrawSpriteItem [runtime] {
25
35
  id : string!
@@ -68,7 +78,7 @@ orbital DrawSpriteOrbital {
68
78
  @label "Height"
69
79
  @description "Draw height in world units (fractions of `projector.tileWidth`). Omitted → one cell on tile grids (`flat`/`iso`/`hex`); native source px on `free`/`side`."
70
80
  @tier "presentation"
71
- frame : json = {}
81
+ frame : DrawSpriteFrame
72
82
  @label "Frame"
73
83
  @description "Explicit atlas sub-rect override (px); omitted → resolved from `asset.atlas`/`asset.sprite`."
74
84
  @tier "presentation"
@@ -92,7 +102,7 @@ orbital DrawSpriteOrbital {
92
102
  @label "Opacity"
93
103
  @description "0..1 opacity."
94
104
  @tier "presentation"
95
- shadow : json = {}
105
+ shadow : DrawSpriteShadow
96
106
  @label "Shadow"
97
107
  @description "Drop shadow (e.g. a team-colored glow)."
98
108
  @tier "presentation"
@@ -10,8 +10,8 @@ orbital DrawTextLayerOrbital {
10
10
  offsetY : number
11
11
  color : string!
12
12
  font : string
13
- align : json
14
- baseline : json
13
+ align : "center" | "end" | "left" | "right" | "start"
14
+ baseline : "alphabetic" | "bottom" | "hanging" | "ideographic" | "middle" | "top"
15
15
  opacity : number
16
16
  }
17
17
  type DrawTextLayerItemsItemPosition = {
@@ -36,7 +36,7 @@ orbital DrawTextLayerOrbital {
36
36
  }
37
37
 
38
38
  config {
39
- items : [DrawTextLayerItemsItem] = [{ type: "Type", text: "Text", position: { x: 1, y: 1, z: 1 }, offsetX: 1, offsetY: 1, color: "Color", font: "Font", opacity: 1 }, { type: "Type 2", text: "Text 2", position: { x: 2, y: 2, z: 2 }, offsetX: 2, offsetY: 2, color: "Color 2", font: "Font 2", opacity: 2 }]
39
+ items : [DrawTextLayerItemsItem] = [{ type: "Type", text: "Text", position: { x: 1, y: 1, z: 1 }, offsetX: 1, offsetY: 1, color: "Color", font: "Font", align: center, baseline: alphabetic, opacity: 1 }, { type: "Type 2", text: "Text 2", position: { x: 2, y: 2, z: 2 }, offsetX: 2, offsetY: 2, color: "Color 2", font: "Font 2", align: end, baseline: bottom, opacity: 2 }]
40
40
  @label "Items"
41
41
  @description "items prop"
42
42
  @tier "presentation"
@@ -60,11 +60,11 @@ orbital DrawTextOrbital {
60
60
  @label "Font"
61
61
  @description "font prop"
62
62
  @tier "presentation"
63
- align : json = {}
63
+ align : "center" | "end" | "left" | "right" | "start" = center
64
64
  @label "Align"
65
65
  @description "align prop"
66
66
  @tier "presentation"
67
- baseline : json = {}
67
+ baseline : "alphabetic" | "bottom" | "hanging" | "ideographic" | "middle" | "top" = alphabetic
68
68
  @label "Baseline"
69
69
  @description "baseline prop"
70
70
  @tier "presentation"
@@ -1,6 +1,36 @@
1
1
  app std-tactics-board-3d "1.0.0"
2
2
  "3D player-controlled grid-tactics board FRAME: composes grid-tactics (units authority) + fx-particles + round-flow + a player-intent/render trait onto one shared GameState. Games consume this molecule and supply only theme/assets/units via config."
3
3
  orbital TacticsBoard3DOrbital {
4
+ type SceneLight = {
5
+ intensity : number
6
+ color : string
7
+ position : [number]
8
+ }
9
+ type SceneHemiLight = {
10
+ intensity : number
11
+ color : string
12
+ groundColor : string
13
+ }
14
+ type ScenePointLight = {
15
+ intensity : number
16
+ color : string
17
+ position : [number]!
18
+ distance : number
19
+ decay : number
20
+ }
21
+ type Lighting3D = {
22
+ ambient : SceneLight
23
+ directional : SceneLight
24
+ hemisphere : SceneHemiLight
25
+ points : [ScenePointLight]
26
+ environment : "room" | "none"
27
+ toneMapping : "aces" | "none"
28
+ }
29
+ type Post3D = {
30
+ bloom : { intensity : number threshold : number smoothing : number }
31
+ vignette : { offset : number darkness : number }
32
+ }
33
+
4
34
  uses Tactics from "std/behaviors/std-grid-tactics"
5
35
  uses Particles from "std/behaviors/std-fx-particles"
6
36
  uses Round from "std/behaviors/std-round-flow"
@@ -305,11 +335,11 @@ orbital TacticsBoard3DOrbital {
305
335
  @label "Mesh Unit Scale"
306
336
  @description "Uniform scale applied to volumetric (meshAssetArt draw-group) units."
307
337
  @tier "presentation"
308
- lighting : json = {}
338
+ lighting : Lighting3D = {}
309
339
  @label "Lighting"
310
340
  @description "3D scene light rig as data — ambient/directional/hemisphere/points + environment ('room' | 'none') for PBR reflections. Empty → the standard fixed rig."
311
341
  @tier "presentation"
312
- post : json = {}
342
+ post : Post3D = {}
313
343
  @label "Post Effects"
314
344
  @description "3D post-processing stack — bloom and vignette. Empty → no post pass."
315
345
  @tier "presentation"