@almadar/std 16.210.0 → 16.212.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 (203) hide show
  1. package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +5 -2
  2. package/behaviors/lolo/infra/atoms/std-cache-aside.lolo +6 -0
  3. package/behaviors/lolo/infra/atoms/std-calendar-sync.lolo +8 -5
  4. package/behaviors/lolo/infra/atoms/std-cascade-on-delete.lolo +8 -1
  5. package/behaviors/lolo/infra/atoms/std-circuit-breaker.lolo +5 -3
  6. package/behaviors/lolo/infra/atoms/std-cross-reference.lolo +2 -0
  7. package/behaviors/lolo/infra/atoms/std-data-erasure.lolo +3 -0
  8. package/behaviors/lolo/infra/atoms/std-lifecycle.lolo +2 -0
  9. package/behaviors/lolo/infra/atoms/std-migration-job.lolo +12 -0
  10. package/behaviors/lolo/infra/atoms/std-mod-queue.lolo +1 -0
  11. package/behaviors/lolo/infra/atoms/std-notification-center.lolo +2 -0
  12. package/behaviors/lolo/infra/atoms/std-notify-on-event.lolo +5 -0
  13. package/behaviors/lolo/infra/atoms/std-reminder-scheduler.lolo +2 -0
  14. package/behaviors/lolo/infra/atoms/std-status-lifecycle.lolo +1 -0
  15. package/behaviors/lolo/ml/atoms/std-ml-classify.lolo +1 -0
  16. package/behaviors/lolo/ml/atoms/std-ml-infer.lolo +1 -0
  17. package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +1 -0
  18. package/behaviors/lolo/ui/core/atoms/std-board.lolo +6 -0
  19. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +10 -1
  20. package/behaviors/lolo/ui/core/atoms/std-calendar.lolo +6 -1
  21. package/behaviors/lolo/ui/core/atoms/std-confirmation.lolo +2 -0
  22. package/behaviors/lolo/ui/core/atoms/std-esign-request.lolo +2 -2
  23. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +2 -0
  24. package/behaviors/lolo/ui/core/atoms/std-gallery.lolo +8 -1
  25. package/behaviors/lolo/ui/core/atoms/std-graphs.lolo +1 -1
  26. package/behaviors/lolo/ui/core/atoms/std-list.lolo +8 -1
  27. package/behaviors/lolo/ui/core/atoms/std-modal.lolo +3 -1
  28. package/behaviors/lolo/ui/core/atoms/std-selection.lolo +8 -1
  29. package/behaviors/lolo/ui/core/atoms/std-stats.lolo +1 -1
  30. package/behaviors/lolo/ui/core/atoms/std-step-flow.lolo +4 -3
  31. package/behaviors/lolo/ui/core/atoms/std-tag-strip.lolo +1 -0
  32. package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +17 -4
  33. package/behaviors/lolo/ui/core/atoms/std-thread.lolo +33 -30
  34. package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +1 -1
  35. package/behaviors/lolo/ui/core/atoms/std-wizard.lolo +36 -0
  36. package/behaviors/lolo/ui/core/atoms/ui-badge.lolo +1 -1
  37. package/behaviors/lolo/ui/core/atoms/ui-button.lolo +1 -1
  38. package/behaviors/lolo/ui/core/atoms/ui-checkbox.lolo +22 -2
  39. package/behaviors/lolo/ui/core/atoms/ui-game-icon.lolo +1 -1
  40. package/behaviors/lolo/ui/core/atoms/ui-radio.lolo +1 -1
  41. package/behaviors/lolo/ui/core/atoms/ui-range-slider.lolo +1 -1
  42. package/behaviors/lolo/ui/core/atoms/ui-select.lolo +6 -2
  43. package/behaviors/lolo/ui/core/atoms/ui-switch.lolo +1 -1
  44. package/behaviors/lolo/ui/core/atoms/ui-text-highlight.lolo +1 -1
  45. package/behaviors/lolo/ui/core/atoms/ui-textarea.lolo +3 -1
  46. package/behaviors/lolo/ui/core/atoms/ui-time-slot-cell.lolo +1 -1
  47. package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +2 -2
  48. package/behaviors/lolo/ui/core/molecules/ui-command-palette.lolo +2 -2
  49. package/behaviors/lolo/ui/core/molecules/ui-date-range-picker.lolo +2 -2
  50. package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +2 -2
  51. package/behaviors/lolo/ui/core/molecules/ui-filter-group.lolo +1 -1
  52. package/behaviors/lolo/ui/core/molecules/ui-floating-toolbar.lolo +1 -1
  53. package/behaviors/lolo/ui/core/molecules/ui-import-preview-tree.lolo +1 -1
  54. package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +1 -1
  55. package/behaviors/lolo/ui/core/molecules/ui-number-stepper.lolo +1 -1
  56. package/behaviors/lolo/ui/core/molecules/ui-pagination.lolo +1 -1
  57. package/behaviors/lolo/ui/core/molecules/ui-popover.lolo +1 -1
  58. package/behaviors/lolo/ui/core/molecules/ui-relation-select.lolo +1 -1
  59. package/behaviors/lolo/ui/core/molecules/ui-rich-text-editor.lolo +1 -1
  60. package/behaviors/lolo/ui/core/molecules/ui-search-input.lolo +1 -1
  61. package/behaviors/lolo/ui/core/molecules/ui-sidebar.lolo +1 -1
  62. package/behaviors/lolo/ui/core/molecules/ui-star-rating.lolo +1 -1
  63. package/behaviors/lolo/ui/core/molecules/ui-tabs.lolo +2 -2
  64. package/behaviors/lolo/ui/core/molecules/ui-wizard-navigation.lolo +2 -2
  65. package/behaviors/lolo/ui/core/organisms/ui-split-pane.lolo +1 -1
  66. package/behaviors/lolo/ui/game/atoms/std-tutorial-overlay.lolo +6 -0
  67. package/behaviors/lolo/ui/game/atoms/ui-action-palette.lolo +1 -1
  68. package/behaviors/lolo/ui/game/atoms/ui-action-tile.lolo +1 -1
  69. package/behaviors/lolo/ui/game/atoms/ui-choice-button.lolo +1 -1
  70. package/behaviors/lolo/ui/game/atoms/ui-control-button.lolo +1 -1
  71. package/behaviors/lolo/ui/game/atoms/ui-control-grid.lolo +2 -2
  72. package/behaviors/lolo/ui/game/atoms/ui-dialogue-bubble.lolo +1 -1
  73. package/behaviors/lolo/ui/game/atoms/ui-draw-fx-layer.lolo +1 -1
  74. package/behaviors/lolo/ui/game/atoms/ui-draw-skinned-mesh.lolo +131 -0
  75. package/behaviors/lolo/ui/game/atoms/ui-draw-sprite-layer.lolo +1 -1
  76. package/behaviors/lolo/ui/game/atoms/ui-draw-sprite.lolo +1 -1
  77. package/behaviors/lolo/ui/game/atoms/ui-game-audio-toggle.lolo +2 -2
  78. package/behaviors/lolo/ui/game/atoms/ui-game-hud.lolo +5 -5
  79. package/behaviors/lolo/ui/game/atoms/ui-game-menu.lolo +1 -1
  80. package/behaviors/lolo/ui/game/atoms/ui-health-bar.lolo +2 -2
  81. package/behaviors/lolo/ui/game/atoms/ui-score-display.lolo +1 -1
  82. package/behaviors/lolo/ui/game/atoms/ui-sequence-bar.lolo +2 -2
  83. package/behaviors/lolo/ui/game/atoms/ui-stat-badge.lolo +2 -2
  84. package/behaviors/lolo/ui/game/atoms/ui-trait-slot.lolo +5 -5
  85. package/behaviors/lolo/ui/game/organisms/std-arcade-board-3d.lolo +10 -10
  86. package/behaviors/lolo/ui/game/organisms/std-crew-board-2d.lolo +10 -10
  87. package/behaviors/lolo/ui/game/organisms/std-dungeon-board-2d.lolo +36 -36
  88. package/behaviors/lolo/ui/game/organisms/std-market-board-3d.lolo +36 -36
  89. package/behaviors/lolo/ui/game/organisms/std-objective-board-3d.lolo +34 -34
  90. package/behaviors/lolo/ui/game/organisms/std-survival-board-3d.lolo +10 -10
  91. package/behaviors/lolo/ui/game/organisms/std-tactics-board-2d.lolo +12 -12
  92. package/behaviors/lolo/ui/game/organisms/std-tactics-board-3d.lolo +12 -12
  93. package/behaviors/lolo/ui/game/organisms/std-worldmap-board-2d.lolo +20 -20
  94. package/behaviors/registry/infra/atoms/std-approval-gate.orb +76 -27
  95. package/behaviors/registry/infra/atoms/std-cache-aside.orb +76 -32
  96. package/behaviors/registry/infra/atoms/std-calendar-sync.orb +51 -0
  97. package/behaviors/registry/infra/atoms/std-cascade-on-delete.orb +48 -0
  98. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +43 -14
  99. package/behaviors/registry/infra/atoms/std-cross-reference.orb +41 -15
  100. package/behaviors/registry/infra/atoms/std-data-erasure.orb +52 -0
  101. package/behaviors/registry/infra/atoms/std-lifecycle.orb +36 -0
  102. package/behaviors/registry/infra/atoms/std-migration-job.orb +108 -0
  103. package/behaviors/registry/infra/atoms/std-mod-queue.orb +20 -0
  104. package/behaviors/registry/infra/atoms/std-notification-center.orb +88 -24
  105. package/behaviors/registry/infra/atoms/std-notify-on-event.orb +82 -6
  106. package/behaviors/registry/infra/atoms/std-reminder-scheduler.orb +36 -0
  107. package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +20 -0
  108. package/behaviors/registry/ml/atoms/std-ml-classify.orb +18 -0
  109. package/behaviors/registry/ml/atoms/std-ml-infer.orb +18 -0
  110. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +20 -0
  111. package/behaviors/registry/ui/core/atoms/std-board.orb +58 -0
  112. package/behaviors/registry/ui/core/atoms/std-browse.orb +35 -1
  113. package/behaviors/registry/ui/core/atoms/std-calendar.orb +9 -1
  114. package/behaviors/registry/ui/core/atoms/std-confirmation.orb +44 -18
  115. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +44 -18
  116. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +19 -8
  117. package/behaviors/registry/ui/core/atoms/std-event-log.orb +26 -0
  118. package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +20 -9
  119. package/behaviors/registry/ui/core/atoms/std-gallery.orb +35 -1
  120. package/behaviors/registry/ui/core/atoms/std-graphs.orb +1 -0
  121. package/behaviors/registry/ui/core/atoms/std-list.orb +35 -1
  122. package/behaviors/registry/ui/core/atoms/std-modal.orb +52 -24
  123. package/behaviors/registry/ui/core/atoms/std-selection.orb +35 -1
  124. package/behaviors/registry/ui/core/atoms/std-stats.orb +1 -0
  125. package/behaviors/registry/ui/core/atoms/std-step-flow.orb +0 -3
  126. package/behaviors/registry/ui/core/atoms/std-tag-strip.orb +20 -0
  127. package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +58 -9
  128. package/behaviors/registry/ui/core/atoms/std-thread.orb +134 -40
  129. package/behaviors/registry/ui/core/atoms/std-version-history.orb +1 -0
  130. package/behaviors/registry/ui/core/atoms/std-wizard.orb +77 -0
  131. package/behaviors/registry/ui/core/atoms/ui-badge.orb +4 -1
  132. package/behaviors/registry/ui/core/atoms/ui-button.orb +4 -1
  133. package/behaviors/registry/ui/core/atoms/ui-checkbox.orb +78 -2
  134. package/behaviors/registry/ui/core/atoms/ui-game-icon.orb +4 -1
  135. package/behaviors/registry/ui/core/atoms/ui-radio.orb +1 -0
  136. package/behaviors/registry/ui/core/atoms/ui-range-slider.orb +1 -0
  137. package/behaviors/registry/ui/core/atoms/ui-select.orb +28 -0
  138. package/behaviors/registry/ui/core/atoms/ui-switch.orb +1 -0
  139. package/behaviors/registry/ui/core/atoms/ui-text-highlight.orb +1 -0
  140. package/behaviors/registry/ui/core/atoms/ui-textarea.orb +14 -0
  141. package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +1 -0
  142. package/behaviors/registry/ui/core/molecules/ui-code-block.orb +2 -0
  143. package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +2 -28
  144. package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +2 -0
  145. package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +2 -0
  146. package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +1 -0
  147. package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +1 -20
  148. package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +1 -14
  149. package/behaviors/registry/ui/core/molecules/ui-menu.orb +1 -24
  150. package/behaviors/registry/ui/core/molecules/ui-number-stepper.orb +1 -0
  151. package/behaviors/registry/ui/core/molecules/ui-pagination.orb +1 -0
  152. package/behaviors/registry/ui/core/molecules/ui-popover.orb +1 -0
  153. package/behaviors/registry/ui/core/molecules/ui-relation-select.orb +1 -0
  154. package/behaviors/registry/ui/core/molecules/ui-rich-text-editor.orb +1 -0
  155. package/behaviors/registry/ui/core/molecules/ui-search-input.orb +1 -0
  156. package/behaviors/registry/ui/core/molecules/ui-sidebar.orb +1 -0
  157. package/behaviors/registry/ui/core/molecules/ui-star-rating.orb +1 -0
  158. package/behaviors/registry/ui/core/molecules/ui-tabs.orb +8 -2
  159. package/behaviors/registry/ui/core/molecules/ui-wizard-navigation.orb +2 -0
  160. package/behaviors/registry/ui/core/organisms/ui-split-pane.orb +1 -0
  161. package/behaviors/registry/ui/game/atoms/std-tutorial-overlay.orb +44 -0
  162. package/behaviors/registry/ui/game/atoms/ui-action-palette.orb +4 -1
  163. package/behaviors/registry/ui/game/atoms/ui-action-tile.orb +4 -1
  164. package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +4 -1
  165. package/behaviors/registry/ui/game/atoms/ui-control-button.orb +4 -1
  166. package/behaviors/registry/ui/game/atoms/ui-control-grid.orb +8 -2
  167. package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +4 -1
  168. package/behaviors/registry/ui/game/atoms/ui-draw-fx-layer.orb +4 -1
  169. package/behaviors/registry/ui/game/atoms/ui-draw-skinned-mesh.orb +697 -0
  170. package/behaviors/registry/ui/game/atoms/ui-draw-sprite-layer.orb +4 -1
  171. package/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +4 -1
  172. package/behaviors/registry/ui/game/atoms/ui-game-audio-toggle.orb +8 -2
  173. package/behaviors/registry/ui/game/atoms/ui-game-hud.orb +20 -5
  174. package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +4 -1
  175. package/behaviors/registry/ui/game/atoms/ui-health-bar.orb +8 -2
  176. package/behaviors/registry/ui/game/atoms/ui-score-display.orb +4 -1
  177. package/behaviors/registry/ui/game/atoms/ui-sequence-bar.orb +4 -1
  178. package/behaviors/registry/ui/game/atoms/ui-stat-badge.orb +8 -2
  179. package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +9 -2
  180. package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +10 -30
  181. package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +10 -30
  182. package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +36 -108
  183. package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +36 -108
  184. package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +34 -102
  185. package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +10 -30
  186. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +12 -36
  187. package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +12 -36
  188. package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +20 -60
  189. package/dist/behaviors/exports-reader.js +3136 -2291
  190. package/dist/behaviors/functions/index.d.ts +148 -40
  191. package/dist/behaviors/functions/index.js +3134 -2290
  192. package/dist/behaviors/index.d.ts +1 -1
  193. package/dist/behaviors/index.js +3137 -2292
  194. package/dist/behaviors/query.js +3136 -2291
  195. package/dist/behaviors-embeddings.hash.json +3 -3
  196. package/dist/behaviors-embeddings.json +25 -21
  197. package/dist/behaviors-registry.json +2296 -1209
  198. package/dist/index.d.ts +1 -1
  199. package/dist/index.js +3137 -2292
  200. package/dist/knob-embeddings.hash.json +3 -3
  201. package/dist/knob-embeddings.json +1 -1
  202. package/dist/registry/factory-signatures.json +1 -1
  203. package/package.json +2 -2
@@ -342,6 +342,22 @@ orbital TagTaxonomyOrbital {
342
342
  type: stack
343
343
  })
344
344
  (emit LEVEL_RELOAD { tagId: @entity.id })
345
+ CLOSE -> loading
346
+ (render-ui modal null)
347
+ (render-ui main {
348
+ align: center
349
+ children: [{ type: spinner }, {
350
+ color: muted
351
+ content: "Loading…"
352
+ type: typography
353
+ variant: caption
354
+ }]
355
+ className: py-12
356
+ direction: vertical
357
+ gap: md
358
+ type: stack
359
+ })
360
+ (emit LEVEL_RELOAD { tagId: @entity.id })
345
361
  ;; Refetch the level the new tag landed on — its own parentId names it.
346
362
  TagCreated -> loading
347
363
  (render-ui modal null)
@@ -537,10 +553,7 @@ orbital TagTaxonomyOrbital {
537
553
  @description "Signals a tag has been chosen for further exploration."
538
554
  @synonyms "chosen, picked, activated, highlighted"
539
555
  @tier "domain"
540
- NEW_TAG
541
- @description "Opens the create-tag form (rendered only when allowEdit is on); the creation lands at the level currently open."
542
- @synonyms "add tag, create category, new category"
543
- @tier "domain"
556
+ ;; NEW_TAG is self-consumed via listens, never an external emit.
544
557
  COMMIT_TAG {
545
558
  data : TagCommit
546
559
  }
@@ -1,5 +1,5 @@
1
1
  app std-thread "1.3.0"
2
- "std-thread — forum-style nested replies with collapse + flat-mode toggle. Owns ThreadPost (persistent). flat:true covers 1:1 linear inquiry threads; flat:false renders forum-style nested. INIT fetches, scoped by @config.threadRootId when set (blank = every root, the default). REPLY persists a child post under @payload.parentId, stamped with the real @user identity. A consumer that mounts this as page comments forwards its own document-opened signal to SET_THREAD_ROOT { rootId }, which stamps the frame and refetches filtered by the payload; the after-create and after-select refetch arms keep filtering by @config.threadRootId, so a mutation re-widens the panel until the consumer re-fires SET_THREAD_ROOT. Layer 3 variants override `bodyContent` to deliver chat-bubble, email-threaded, or linear-comments UX while inheriting the same trait, state machine, emits, and listens. A non-empty sectionTitle switches the default bodyContent into titled-comments mode: header + post list + a standalone composer button (without it an empty thread has no REPLY emitter at all — the affordance only existed per-row)."
2
+ "std-thread — forum-style nested replies with collapse + flat-mode toggle. Owns ThreadPost (persistent). flat:true covers 1:1 linear inquiry threads; flat:false renders forum-style nested. INIT fetches, scoped by @config.threadRootId when set (blank = every root, the default). REPLY persists a child post under @payload.parentId, stamped with the real @user identity. A consumer that mounts this as page comments forwards its own document-opened signal to SET_THREAD_ROOT { rootId }, which stamps @entity.replyRootId (scratch — the persisted threadRootId column is written only by the reply persist create) and refetches filtered by the payload; a plain INIT re-entry now also falls back through @entity.replyRootId before @config.threadRootId, so it stays scoped to the last SET_THREAD_ROOT instead of re-widening — only the after-create/after-select refetches still scope directly off their own event payload. Layer 3 variants override `bodyContent` to deliver chat-bubble, email-threaded, or linear-comments UX while inheriting the same trait, state machine, emits, and listens. A non-empty sectionTitle switches the default bodyContent into titled-comments mode: header + post list + a standalone composer button (without it an empty thread has no REPLY emitter at all — the affordance only existed per-row)."
3
3
  orbital ThreadPostOrbital {
4
4
  ;; Forward relation: array of child ThreadPost IDs whose parentId === this.id.
5
5
  ;; Lowers to `type: "relation", cardinality: "many"` (orbital-lolo lower.rs).
@@ -40,7 +40,10 @@ orbital ThreadPostOrbital {
40
40
  voteCount : number @description "The number of votes associated with this item." @synonyms "votes, rating, score" = 0
41
41
  replyCount : number @description "The number of replies to this post." @synonyms "count, number of replies, child posts" = 0
42
42
  replies : [ThreadPost] @description "A list of child ThreadPost entities." @synonyms "children, descendants, sub-posts"
43
- focusedRow : Map string scalar @description "The currently selected or active row within the thread." @synonyms "selection, active, current" = {}
43
+ focusedRow : Map string scalar @intrinsic @description "The currently selected or active row within the thread." @synonyms "selection, active, current" = {}
44
+ replyDraft : string @intrinsic @description "Reply text being composed." = ""
45
+ replyParentId : string @intrinsic @description "Post the reply being composed answers." = ""
46
+ replyRootId : string @intrinsic @description "Thread root the reply being composed belongs to." = ""
44
47
  }
45
48
 
46
49
  trait ThreadPostBrowse -> @rebindable ThreadPost [interaction, collection] {
@@ -50,7 +53,7 @@ orbital ThreadPostOrbital {
50
53
  INIT -> loading
51
54
  (fetch ThreadPost {
52
55
  emit: { failure: ThreadPostLoadFailed, success: ThreadPostLoaded }
53
- filter: (or ["=", @config.threadRootId, ""] ["=", (object/get @entity threadRootId), @config.threadRootId])
56
+ filter: (or ["=", (str/default @entity.replyRootId @config.threadRootId), ""] ["=", (object/get @entity threadRootId), (str/default @entity.replyRootId @config.threadRootId)])
54
57
  include: (replies)
55
58
  })
56
59
  (render-ui main { size: sm, type: spinner })
@@ -63,7 +66,7 @@ orbital ThreadPostOrbital {
63
66
  variant: error
64
67
  })
65
68
  SET_THREAD_ROOT -> loading
66
- (set @entity.threadRootId ?rootId)
69
+ (set @entity.replyRootId ?rootId)
67
70
  (fetch ThreadPost {
68
71
  emit: { failure: ThreadPostLoadFailed, success: ThreadPostLoaded }
69
72
  filter: (or ["=", ?rootId, ""] ["=", (object/get @entity threadRootId), ?rootId])
@@ -76,7 +79,7 @@ orbital ThreadPostOrbital {
76
79
  INIT -> loading
77
80
  (fetch ThreadPost {
78
81
  emit: { failure: ThreadPostLoadFailed, success: ThreadPostLoaded }
79
- filter: (or ["=", @config.threadRootId, ""] ["=", (object/get @entity threadRootId), @config.threadRootId])
82
+ filter: (or ["=", (str/default @entity.replyRootId @config.threadRootId), ""] ["=", (object/get @entity threadRootId), (str/default @entity.replyRootId @config.threadRootId)])
80
83
  include: (replies)
81
84
  })
82
85
  (render-ui main { size: sm, type: spinner })
@@ -91,14 +94,14 @@ orbital ThreadPostOrbital {
91
94
  authorName: @user.name
92
95
  content: ?content
93
96
  parentId: (str/default ?parentNodeId ?parentId)
94
- threadRootId: (str/default ?parentNodeId (str/default @entity.threadRootId (str/default @config.threadRootId root)))
97
+ threadRootId: (str/default ?parentNodeId (str/default @entity.replyRootId (str/default @config.threadRootId root)))
95
98
  } {
96
99
  emit: { failure: ThreadPostCreateFailed, success: ThreadPostCreated }
97
100
  })
98
101
  ;; Reply with no text yet (e.g. an email "Reply" button) opens the composer.
99
102
  REPLY -> replying when ["=", (str/default ?content ""), ""]
100
- (set @entity.parentId (str/default ?parentNodeId ?parentId))
101
- (set @entity.threadRootId (str/default ?parentNodeId (str/default @entity.threadRootId (str/default @config.threadRootId root))))
103
+ (set @entity.replyParentId (str/default ?parentNodeId ?parentId))
104
+ (set @entity.replyRootId (str/default ?parentNodeId (str/default @entity.replyRootId (str/default @config.threadRootId root))))
102
105
  (render-ui main {
103
106
  children: [{
104
107
  content: "Write a reply"
@@ -138,8 +141,8 @@ orbital ThreadPostOrbital {
138
141
  ;; ?row.threadRootId; ThreadPostCreated's payload is the created row
139
142
  ;; itself (see the type alias above), no `row` wrapper exists.
140
143
  ThreadPostCreated -> browsing
141
- (set @entity.content "")
142
- (set @entity.parentId "")
144
+ (set @entity.replyDraft "")
145
+ (set @entity.replyParentId "")
143
146
  (fetch ThreadPost {
144
147
  emit: { failure: ThreadPostLoadFailed, success: ThreadPostLoaded }
145
148
  filter: (or ["=", ?threadRootId, ""] ["=", (object/get @entity threadRootId), ?threadRootId])
@@ -159,20 +162,20 @@ orbital ThreadPostOrbital {
159
162
  ;; submit button) fire the composer triad while the trait sits in
160
163
  ;; browsing — without these arms every such click is swallowed.
161
164
  EDIT_REPLY -> browsing
162
- (set @entity.content ?value)
163
- SUBMIT_REPLY -> browsing when (not ["=", (str/default @entity.content ""), ""])
165
+ (set @entity.replyDraft ?value)
166
+ SUBMIT_REPLY -> browsing when (not ["=", (str/default @entity.replyDraft ""), ""])
164
167
  (persist create ThreadPost {
165
168
  authorId: @user.id
166
169
  authorName: @user.name
167
- content: @entity.content
168
- parentId: (str/default @entity.parentId "")
169
- threadRootId: (str/default @entity.threadRootId (str/default @config.threadRootId root))
170
+ content: @entity.replyDraft
171
+ parentId: (str/default @entity.replyParentId "")
172
+ threadRootId: (str/default @entity.replyRootId (str/default @config.threadRootId root))
170
173
  } {
171
174
  emit: { failure: ThreadPostCreateFailed, success: ThreadPostCreated }
172
175
  })
173
176
  CANCEL_REPLY -> browsing
174
- (set @entity.content "")
175
- (set @entity.parentId "")
177
+ (set @entity.replyDraft "")
178
+ (set @entity.replyParentId "")
176
179
  ;; replying.SUBMIT_REPLY -> browsing lands here before the persist
177
180
  ;; resolves; a failure must be caught here too, not just replying's twin arm.
178
181
  ThreadPostCreateFailed -> browsing
@@ -190,7 +193,7 @@ orbital ThreadPostOrbital {
190
193
  variant: error
191
194
  })
192
195
  SET_THREAD_ROOT -> loading
193
- (set @entity.threadRootId ?rootId)
196
+ (set @entity.replyRootId ?rootId)
194
197
  (fetch ThreadPost {
195
198
  emit: { failure: ThreadPostLoadFailed, success: ThreadPostLoaded }
196
199
  filter: (or ["=", ?rootId, ""] ["=", (object/get @entity threadRootId), ?rootId])
@@ -201,25 +204,25 @@ orbital ThreadPostOrbital {
201
204
 
202
205
  state replying {
203
206
  EDIT_REPLY -> replying
204
- (set @entity.content ?value)
205
- SUBMIT_REPLY -> browsing when (not ["=", (str/default @entity.content ""), ""])
207
+ (set @entity.replyDraft ?value)
208
+ SUBMIT_REPLY -> browsing when (not ["=", (str/default @entity.replyDraft ""), ""])
206
209
  (persist create ThreadPost {
207
210
  authorId: @user.id
208
211
  authorName: @user.name
209
- content: @entity.content
210
- parentId: (str/default @entity.parentId "")
211
- threadRootId: (str/default @entity.threadRootId (str/default @config.threadRootId root))
212
+ content: @entity.replyDraft
213
+ parentId: (str/default @entity.replyParentId "")
214
+ threadRootId: (str/default @entity.replyRootId (str/default @config.threadRootId root))
212
215
  } {
213
216
  emit: { failure: ThreadPostCreateFailed, success: ThreadPostCreated }
214
217
  })
215
218
  CANCEL_REPLY -> browsing
216
- (set @entity.content "")
217
- (set @entity.parentId "")
219
+ (set @entity.replyDraft "")
220
+ (set @entity.replyParentId "")
218
221
  ;; Scoped to the row just created (?threadRootId, flat) — see the twin
219
222
  ;; arm in `browsing` for why.
220
223
  ThreadPostCreated -> browsing
221
- (set @entity.content "")
222
- (set @entity.parentId "")
224
+ (set @entity.replyDraft "")
225
+ (set @entity.replyParentId "")
223
226
  (fetch ThreadPost {
224
227
  emit: { failure: ThreadPostLoadFailed, success: ThreadPostLoaded }
225
228
  filter: (or ["=", ?threadRootId, ""] ["=", (object/get @entity threadRootId), ?threadRootId])
@@ -232,7 +235,7 @@ orbital ThreadPostOrbital {
232
235
  variant: error
233
236
  })
234
237
  SET_THREAD_ROOT -> loading
235
- (set @entity.threadRootId ?rootId)
238
+ (set @entity.replyRootId ?rootId)
236
239
  (fetch ThreadPost {
237
240
  emit: { failure: ThreadPostLoadFailed, success: ThreadPostLoaded }
238
241
  filter: (or ["=", ?rootId, ""] ["=", (object/get @entity threadRootId), ?rootId])
@@ -245,12 +248,12 @@ orbital ThreadPostOrbital {
245
248
  INIT -> loading
246
249
  (fetch ThreadPost {
247
250
  emit: { failure: ThreadPostLoadFailed, success: ThreadPostLoaded }
248
- filter: (or ["=", @config.threadRootId, ""] ["=", (object/get @entity threadRootId), @config.threadRootId])
251
+ filter: (or ["=", (str/default @entity.replyRootId @config.threadRootId), ""] ["=", (object/get @entity threadRootId), (str/default @entity.replyRootId @config.threadRootId)])
249
252
  include: (replies)
250
253
  })
251
254
  (render-ui main { size: sm, type: spinner })
252
255
  SET_THREAD_ROOT -> loading
253
- (set @entity.threadRootId ?rootId)
256
+ (set @entity.replyRootId ?rootId)
254
257
  (fetch ThreadPost {
255
258
  emit: { failure: ThreadPostLoadFailed, success: ThreadPostLoaded }
256
259
  filter: (or ["=", ?rootId, ""] ["=", (object/get @entity threadRootId), ?rootId])
@@ -18,7 +18,7 @@ orbital RevisionOrbital {
18
18
  authorName : string @description "The name of the user who made the change." @synonyms "user, contributor, owner"
19
19
  content : string @description "The snapshotted body of the revision — plain text or the rich-text HTML a document-look record carries. Rollback hands the whole row back to the host, which restores content onto the source document." @synonyms "text, body, data, value"
20
20
  summary : string @description "A brief explanation of the revision's changes." @synonyms "description, note, comment, explanation"
21
- searchTerm : string @description "The current search query the user submitted." @synonyms "query, term, q" = ""
21
+ searchTerm : string @intrinsic @description "The current search query the user submitted." @synonyms "query, term, q" = ""
22
22
  createdAt : string
23
23
  scopeKey : string @intrinsic @description "The parent document id the feed is currently scoped to, set by SHOW_HISTORY. Empty when browsing the unfiltered global feed." @synonyms "scope, filter key, document scope" = ""
24
24
  }
@@ -444,6 +444,42 @@ orbital WizardOrbital {
444
444
  }
445
445
 
446
446
  state completed {
447
+ WizardSaved -> completed
448
+ (render-ui main {
449
+ align: center
450
+ children: [{
451
+ name: check-circle
452
+ size: lg
453
+ type: icon
454
+ }, {
455
+ align: center
456
+ content: Complete
457
+ type: typography
458
+ variant: h2
459
+ }, {
460
+ align: center
461
+ color: muted
462
+ content: @entity.completionMessage
463
+ type: typography
464
+ variant: body
465
+ }, {
466
+ allowNavigation: false
467
+ currentStep: @entity.totalSteps
468
+ steps: @entity.wizardSteps
469
+ type: wizard-progress
470
+ }, {
471
+ action: RESTART
472
+ icon: rotate-ccw
473
+ label: "Start a new wizard"
474
+ type: button
475
+ variant: secondary
476
+ }]
477
+ direction: vertical
478
+ gap: lg
479
+ type: stack
480
+ })
481
+ WizardSaveFailed -> completed
482
+ (notify error (str/concat "Couldn't save the wizard — " ?error))
447
483
  RESTART -> loading
448
484
  (set @entity.currentStepIndex 0)
449
485
  (set @entity.completionMessage "")
@@ -9,7 +9,7 @@ orbital BadgeOrbital {
9
9
  style : "pixel" | "vector" | "hd" | "1-bit" | "isometric"
10
10
  variant : string
11
11
  dimension : "2d" | "3d"
12
- aspect : "1:1" | "16:9" | "5:7" | "8:1"
12
+ aspect : "1:1" | "16:9" | "5:7" | "8:1" | "4:1" | "5:3" | "1:2"
13
13
  atlas : asset
14
14
  sprite : string
15
15
  name : string
@@ -9,7 +9,7 @@ orbital ButtonOrbital {
9
9
  style : "pixel" | "vector" | "hd" | "1-bit" | "isometric"
10
10
  variant : string
11
11
  dimension : "2d" | "3d"
12
- aspect : "1:1" | "16:9" | "5:7" | "8:1"
12
+ aspect : "1:1" | "16:9" | "5:7" | "8:1" | "4:1" | "5:3" | "1:2"
13
13
  atlas : asset
14
14
  sprite : string
15
15
  name : string
@@ -3,6 +3,7 @@ app ui-checkbox "1.0.0"
3
3
  orbital CheckboxOrbital {
4
4
  entity CheckboxItem [runtime] {
5
5
  id : string!
6
+ checked : boolean @intrinsic
6
7
  }
7
8
 
8
9
  trait CheckboxRender -> @rebindable CheckboxItem [interaction, instance] {
@@ -10,9 +11,20 @@ orbital CheckboxOrbital {
10
11
 
11
12
  state idle {
12
13
  INIT -> idle
14
+ (set @entity.checked @config.checked)
13
15
  (render-ui main {
14
16
  className: @config.className
15
- checked: @config.checked
17
+ checked: @entity.checked
18
+ defaultChecked: @config.defaultChecked
19
+ label: @config.label
20
+ onChange: @config.onChange
21
+ type: checkbox
22
+ })
23
+ CHANGE -> idle
24
+ (set @entity.checked ?checked)
25
+ (render-ui main {
26
+ className: @config.className
27
+ checked: @entity.checked
16
28
  defaultChecked: @config.defaultChecked
17
29
  label: @config.label
18
30
  onChange: @config.onChange
@@ -21,11 +33,19 @@ orbital CheckboxOrbital {
21
33
  }
22
34
 
23
35
  emits {
24
- @config.onChange -> external { }
36
+ @config.onChange -> external {
37
+ checked : boolean!
38
+ }
25
39
  @description "onChange handler or declarative event key for trait dispatch"
26
40
  @tier "essential"
27
41
  }
28
42
 
43
+ listens {
44
+ CHANGE {
45
+ checked : boolean!
46
+ }
47
+ }
48
+
29
49
  config {
30
50
  className : string
31
51
  @label "Class Name"
@@ -9,7 +9,7 @@ orbital GameIconOrbital {
9
9
  style : "pixel" | "vector" | "hd" | "1-bit" | "isometric"
10
10
  variant : string
11
11
  dimension : "2d" | "3d"
12
- aspect : "1:1" | "16:9" | "5:7" | "8:1"
12
+ aspect : "1:1" | "16:9" | "5:7" | "8:1" | "4:1" | "5:3" | "1:2"
13
13
  atlas : asset
14
14
  sprite : string
15
15
  name : string
@@ -3,7 +3,7 @@ app ui-radio "1.0.0"
3
3
  orbital RadioOrbital {
4
4
  entity RadioItem [runtime] {
5
5
  id : string!
6
- value : string
6
+ value : string @intrinsic
7
7
  }
8
8
 
9
9
  trait RadioRender -> @rebindable RadioItem [interaction, instance] {
@@ -3,7 +3,7 @@ app ui-range-slider "1.0.0"
3
3
  orbital RangeSliderOrbital {
4
4
  entity RangeSliderItem [runtime] {
5
5
  id : string!
6
- value : number = 0
6
+ value : number @intrinsic = 0
7
7
  }
8
8
 
9
9
  trait RangeSliderRender -> @rebindable RangeSliderItem [interaction, instance] {
@@ -46,10 +46,14 @@ orbital SelectOrbital {
46
46
  }
47
47
  @description "Declarative event name for trait dispatch — emits `{ value }` on selection commit (same gestures as `onChange`)."
48
48
  @tier "essential"
49
- @config.onChange -> external { }
49
+ @config.onChange -> external {
50
+ value : string!
51
+ }
50
52
  @description "onChange handler (native ChangeEvent) or declarative event key for trait dispatch"
51
53
  @tier "essential"
52
- @config.onValueChange -> external { }
54
+ @config.onValueChange -> external {
55
+ value : string!
56
+ }
53
57
  @description "Value-based change: a React callback (internal use) OR a declarative event key that emits `{ value }` on the bus (render-ui / lolo authoring). Mirrors the `onChange` handler|event convention so it's an event-emitting prop, not a bare callback."
54
58
  @tier "essential"
55
59
  }
@@ -3,7 +3,7 @@ app ui-switch "1.0.0"
3
3
  orbital SwitchOrbital {
4
4
  entity SwitchItem [runtime] {
5
5
  id : string!
6
- checked : boolean
6
+ checked : boolean @intrinsic
7
7
  }
8
8
 
9
9
  trait SwitchRender -> @rebindable SwitchItem [interaction, instance] {
@@ -3,7 +3,7 @@ app ui-text-highlight "1.0.0"
3
3
  orbital TextHighlightOrbital {
4
4
  entity TextHighlightItem [runtime] {
5
5
  id : string!
6
- annotationId : string
6
+ annotationId : string @intrinsic
7
7
  }
8
8
 
9
9
  trait TextHighlightRender -> @rebindable TextHighlightItem [interaction, instance] {
@@ -25,7 +25,9 @@ orbital TextareaOrbital {
25
25
  @config.action -> external { }
26
26
  @description "Declarative event name for trait dispatch"
27
27
  @tier "essential"
28
- @config.onChange -> external { }
28
+ @config.onChange -> external {
29
+ value : string!
30
+ }
29
31
  @description "onChange handler or declarative event key for trait dispatch"
30
32
  @tier "essential"
31
33
  }
@@ -3,7 +3,7 @@ app ui-time-slot-cell "1.0.0"
3
3
  orbital TimeSlotCellOrbital {
4
4
  entity TimeSlotCellItem [runtime] {
5
5
  id : string!
6
- time : string = ""
6
+ time : string @intrinsic = ""
7
7
  }
8
8
 
9
9
  trait TimeSlotCellRender -> @rebindable TimeSlotCellItem [interaction, instance] {
@@ -27,8 +27,8 @@ orbital CodeBlockOrbital {
27
27
 
28
28
  entity CodeBlockItem [runtime] {
29
29
  id : string!
30
- code : string
31
- editorId : string
30
+ code : string @intrinsic
31
+ editorId : string @intrinsic
32
32
  }
33
33
 
34
34
  trait CodeBlockRender -> @rebindable CodeBlockItem [interaction, instance] {
@@ -28,7 +28,7 @@ orbital CommandPaletteOrbital {
28
28
 
29
29
  entity CommandPaletteItem [runtime] {
30
30
  id : string!
31
- open : boolean = false
31
+ open : boolean @intrinsic = false
32
32
  }
33
33
 
34
34
  trait CommandPaletteRender -> @rebindable CommandPaletteItem [interaction, instance] {
@@ -89,7 +89,7 @@ orbital CommandPaletteOrbital {
89
89
  @label "On Open Change"
90
90
  @description "Called to open/close the overlay (Escape, overlay click, or a selection)"
91
91
  @tier "presentation"
92
- commands : [CommandPaletteCommandsItem] = [{ id: "Id", label: "Label", icon: "circle", shortcut: "Shortcut", keywords: ["Item", "Item 2"], group: "Group", disabled: false, action: "INIT" }, { id: "Id 2", label: "Label 2", icon: "circle", shortcut: "Shortcut 2", keywords: ["Item", "Item 2"], group: "Group 2", disabled: true, action: "INIT" }]
92
+ commands : [CommandPaletteCommandsItem] = []
93
93
  @label "Commands"
94
94
  @description "Commands listed in the palette, filtered as the user types"
95
95
  @tier "presentation"
@@ -12,8 +12,8 @@ orbital DateRangePickerOrbital {
12
12
 
13
13
  entity DateRangePickerItem [runtime] {
14
14
  id : string!
15
- fromProp : string
16
- toProp : string
15
+ fromProp : string @intrinsic
16
+ toProp : string @intrinsic
17
17
  }
18
18
 
19
19
  trait DateRangePickerRender -> @rebindable DateRangePickerItem [interaction, instance] {
@@ -11,8 +11,8 @@ orbital DocumentPanelOrbital {
11
11
 
12
12
  entity DocumentPanelItem [runtime] {
13
13
  id : string!
14
- title : string
15
- value : string
14
+ title : string @intrinsic
15
+ value : string @intrinsic
16
16
  }
17
17
 
18
18
  trait DocumentPanelRender -> @rebindable DocumentPanelItem [interaction, instance] {
@@ -15,7 +15,7 @@ orbital FilterGroupOrbital {
15
15
 
16
16
  entity FilterGroupItem [runtime] {
17
17
  id : string!
18
- query : string
18
+ query : string @intrinsic
19
19
  }
20
20
 
21
21
  trait FilterGroupRender -> @rebindable FilterGroupItem [interaction, instance] {
@@ -32,7 +32,7 @@ orbital FloatingToolbarOrbital {
32
32
  }
33
33
 
34
34
  config {
35
- items : [FloatingToolbarItemsItem] = [{ id: "Id", icon: "circle", label: "Label", action: "INIT", active: false, disabled: false, testId: "Test Id" }, { id: "Id 2", icon: "circle", label: "Label 2", action: "INIT", active: true, disabled: true, testId: "Test Id 2" }]
35
+ items : [FloatingToolbarItemsItem] = []
36
36
  @label "Items"
37
37
  @description "Tool items rendered as icon buttons"
38
38
  @tier "presentation"
@@ -56,7 +56,7 @@ orbital ImportPreviewTreeOrbital {
56
56
  }
57
57
 
58
58
  config {
59
- units : [ImportPreviewTreeUnitsItem] = [{ ref: "Ref", targetEntity: "Target Entity", fields: {}, parentRef: "Parent Ref" }, { ref: "Ref 2", targetEntity: "Target Entity 2", fields: {}, parentRef: "Parent Ref 2" }]
59
+ units : [ImportPreviewTreeUnitsItem] = []
60
60
  @label "Units"
61
61
  @description "Staged units to preview"
62
62
  @tier "presentation"
@@ -39,7 +39,7 @@ orbital MenuOrbital {
39
39
  @label "Trigger"
40
40
  @description "Menu trigger element"
41
41
  @tier "presentation"
42
- items : [MenuItemsItem] = [{ id: "Id", label: "Label", icon: "circle", badge: "Badge", disabled: false, title: "Title", url: "Url", variant: default, subMenu: [] }, { id: "Id 2", label: "Label 2", icon: "circle", badge: "Badge 2", disabled: true, title: "Title 2", url: "Url 2", variant: danger, subMenu: [] }]
42
+ items : [MenuItemsItem] = []
43
43
  @label "Items"
44
44
  @description "Menu items"
45
45
  @tier "presentation"
@@ -3,7 +3,7 @@ app ui-number-stepper "1.0.0"
3
3
  orbital NumberStepperOrbital {
4
4
  entity NumberStepperItem [runtime] {
5
5
  id : string!
6
- value : number = 0
6
+ value : number @intrinsic = 0
7
7
  }
8
8
 
9
9
  trait NumberStepperRender -> @rebindable NumberStepperItem [interaction, instance] {
@@ -3,7 +3,7 @@ app ui-pagination "1.0.0"
3
3
  orbital PaginationOrbital {
4
4
  entity PaginationItem [runtime] {
5
5
  id : string!
6
- pageSize : number
6
+ pageSize : number @intrinsic
7
7
  }
8
8
 
9
9
  trait PaginationRender -> @rebindable PaginationItem [interaction, instance] {
@@ -3,7 +3,7 @@ app ui-popover "1.0.0"
3
3
  orbital PopoverOrbital {
4
4
  entity PopoverItem [runtime] {
5
5
  id : string!
6
- open : boolean
6
+ open : boolean @intrinsic
7
7
  }
8
8
 
9
9
  trait PopoverRender -> @rebindable PopoverItem [interaction, instance] {
@@ -10,7 +10,7 @@ orbital RelationSelectOrbital {
10
10
 
11
11
  entity RelationSelectItem [runtime] {
12
12
  id : string!
13
- value : string
13
+ value : string @intrinsic
14
14
  }
15
15
 
16
16
  trait RelationSelectRender -> @rebindable RelationSelectItem [interaction, instance] {
@@ -3,7 +3,7 @@ app ui-rich-text-editor "1.0.0"
3
3
  orbital RichTextEditorOrbital {
4
4
  entity RichTextEditorItem [runtime] {
5
5
  id : string!
6
- value : string
6
+ value : string @intrinsic
7
7
  }
8
8
 
9
9
  trait RichTextEditorRender -> @rebindable RichTextEditorItem [interaction, instance] {
@@ -3,7 +3,7 @@ app ui-search-input "1.0.0"
3
3
  orbital SearchInputOrbital {
4
4
  entity SearchInputItem [runtime] {
5
5
  id : string!
6
- value : string
6
+ value : string @intrinsic
7
7
  }
8
8
 
9
9
  trait SearchInputRender -> @rebindable SearchInputItem [interaction, instance] {
@@ -20,7 +20,7 @@ orbital SidebarOrbital {
20
20
 
21
21
  entity SidebarItem [runtime] {
22
22
  id : string!
23
- collapsed : boolean
23
+ collapsed : boolean @intrinsic
24
24
  }
25
25
 
26
26
  trait SidebarRender -> @rebindable SidebarItem [interaction, instance] {
@@ -3,7 +3,7 @@ app ui-star-rating "1.0.0"
3
3
  orbital StarRatingOrbital {
4
4
  entity StarRatingItem [runtime] {
5
5
  id : string!
6
- value : number = 0
6
+ value : number @intrinsic = 0
7
7
  }
8
8
 
9
9
  trait StarRatingRender -> @rebindable StarRatingItem [interaction, instance] {
@@ -21,7 +21,7 @@ orbital TabsOrbital {
21
21
  style : "pixel" | "vector" | "hd" | "1-bit" | "isometric"
22
22
  variant : string
23
23
  dimension : "2d" | "3d"
24
- aspect : "1:1" | "16:9" | "5:7" | "8:1"
24
+ aspect : "1:1" | "16:9" | "5:7" | "8:1" | "4:1" | "5:3" | "1:2"
25
25
  atlas : asset
26
26
  sprite : string
27
27
  name : string
@@ -47,7 +47,7 @@ orbital TabsOrbital {
47
47
  style : "pixel" | "vector" | "hd" | "1-bit" | "isometric"
48
48
  variant : string
49
49
  dimension : "2d" | "3d"
50
- aspect : "1:1" | "16:9" | "5:7" | "8:1"
50
+ aspect : "1:1" | "16:9" | "5:7" | "8:1" | "4:1" | "5:3" | "1:2"
51
51
  atlas : asset
52
52
  sprite : string
53
53
  name : string
@@ -3,8 +3,8 @@ app ui-wizard-navigation "1.0.0"
3
3
  orbital WizardNavigationOrbital {
4
4
  entity WizardNavigationItem [runtime] {
5
5
  id : string!
6
- currentStep : number = 1
7
- totalSteps : number = 1
6
+ currentStep : number @intrinsic = 1
7
+ totalSteps : number @intrinsic = 1
8
8
  }
9
9
 
10
10
  trait WizardNavigationRender -> @rebindable WizardNavigationItem [interaction, instance] {
@@ -3,7 +3,7 @@ app ui-split-pane "1.0.0"
3
3
  orbital SplitPaneOrbital {
4
4
  entity SplitPaneItem [runtime] {
5
5
  id : string!
6
- ratio : number
6
+ ratio : number @intrinsic
7
7
  }
8
8
 
9
9
  trait SplitPaneRender -> @rebindable SplitPaneItem [interaction, instance] {