@almadar/std 16.236.0 → 16.238.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 (583) hide show
  1. package/behaviors/behaviors-registry.json +57874 -1895
  2. package/behaviors/lolo/agent/atoms/std-agent-context.lolo +65 -134
  3. package/behaviors/lolo/agent/atoms/std-agent-memory.lolo +162 -112
  4. package/behaviors/lolo/agent/atoms/std-agent-session.lolo +239 -115
  5. package/behaviors/lolo/agent/atoms/std-agent-tool-loop.lolo +96 -90
  6. package/behaviors/lolo/agent/atoms/std-agent-trace.lolo +133 -40
  7. package/behaviors/lolo/agent/organisms/std-agent-assistant.lolo +137 -0
  8. package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +7 -0
  9. package/behaviors/lolo/infra/atoms/std-cache-aside.lolo +4 -17
  10. package/behaviors/lolo/infra/atoms/std-migration-job.lolo +2 -2
  11. package/behaviors/lolo/infra/atoms/std-notification-preferences.lolo +26 -13
  12. package/behaviors/lolo/infra/atoms/std-permission-matrix.lolo +5 -0
  13. package/behaviors/lolo/ui/avl/atoms/ui-avl-glyph.lolo +90 -0
  14. package/behaviors/lolo/ui/avl/atoms/ui-avl-state-machine.lolo +90 -0
  15. package/behaviors/lolo/ui/avl/atoms/ui-behavior-view.lolo +80 -0
  16. package/behaviors/lolo/ui/avl/atoms/ui-module-card.lolo +80 -0
  17. package/behaviors/lolo/ui/core/atoms/std-billable-hour.lolo +12 -21
  18. package/behaviors/lolo/ui/core/atoms/std-board.lolo +5 -32
  19. package/behaviors/lolo/ui/core/atoms/std-book-reader.lolo +19 -11
  20. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +42 -7
  21. package/behaviors/lolo/ui/core/atoms/std-calendar.lolo +4 -16
  22. package/behaviors/lolo/ui/core/atoms/std-detail-layout.lolo +3 -1
  23. package/behaviors/lolo/ui/core/atoms/std-esign-flow.lolo +21 -13
  24. package/behaviors/lolo/ui/core/atoms/std-esign-request.lolo +12 -2
  25. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +44 -10
  26. package/behaviors/lolo/ui/core/atoms/std-file-store.lolo +35 -72
  27. package/behaviors/lolo/ui/core/atoms/std-gantt-schedule.lolo +29 -14
  28. package/behaviors/lolo/ui/core/atoms/std-image-upload-multi.lolo +8 -22
  29. package/behaviors/lolo/ui/core/atoms/std-list.lolo +28 -13
  30. package/behaviors/lolo/ui/core/atoms/std-multi-party-flow.lolo +52 -14
  31. package/behaviors/lolo/ui/core/atoms/std-prose.lolo +7 -1
  32. package/behaviors/lolo/ui/core/atoms/std-rating-review.lolo +23 -8
  33. package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +139 -19
  34. package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +28 -20
  35. package/behaviors/lolo/ui/core/atoms/std-related.lolo +36 -25
  36. package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +20 -21
  37. package/behaviors/lolo/ui/core/atoms/std-scoped-list.lolo +143 -0
  38. package/behaviors/lolo/ui/core/atoms/std-selection.lolo +34 -14
  39. package/behaviors/lolo/ui/core/atoms/std-signature-capture.lolo +1 -13
  40. package/behaviors/lolo/ui/core/atoms/std-slide-deck.lolo +2 -2
  41. package/behaviors/lolo/ui/core/atoms/std-step-flow.lolo +4 -16
  42. package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +24 -80
  43. package/behaviors/lolo/ui/core/atoms/std-thread.lolo +92 -31
  44. package/behaviors/lolo/ui/core/atoms/std-tree.lolo +18 -22
  45. package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +43 -83
  46. package/behaviors/lolo/ui/core/atoms/std-vote.lolo +2 -39
  47. package/behaviors/lolo/ui/core/atoms/std-wizard.lolo +20 -10
  48. package/behaviors/lolo/ui/core/atoms/ui-animated-graphic.lolo +90 -0
  49. package/behaviors/lolo/ui/core/atoms/ui-animated-reveal.lolo +90 -0
  50. package/behaviors/lolo/ui/core/atoms/ui-aside.lolo +90 -0
  51. package/behaviors/lolo/ui/core/atoms/ui-atlas-image.lolo +16 -0
  52. package/behaviors/lolo/ui/core/atoms/ui-atlas-panel.lolo +16 -0
  53. package/behaviors/lolo/ui/core/atoms/ui-avatar.lolo +91 -1
  54. package/behaviors/lolo/ui/core/atoms/ui-badge.lolo +90 -0
  55. package/behaviors/lolo/ui/core/atoms/ui-box.lolo +98 -13
  56. package/behaviors/lolo/ui/core/atoms/ui-button.lolo +90 -0
  57. package/behaviors/lolo/ui/core/atoms/ui-card.lolo +91 -1
  58. package/behaviors/lolo/ui/core/atoms/ui-center.lolo +90 -0
  59. package/behaviors/lolo/ui/core/atoms/ui-checkbox.lolo +112 -0
  60. package/behaviors/lolo/ui/core/atoms/ui-confetti-effect.lolo +90 -0
  61. package/behaviors/lolo/ui/core/atoms/ui-day-cell.lolo +90 -0
  62. package/behaviors/lolo/ui/core/atoms/ui-dialog.lolo +90 -0
  63. package/behaviors/lolo/ui/core/atoms/ui-divider.lolo +90 -0
  64. package/behaviors/lolo/ui/core/atoms/ui-filter-pill.lolo +90 -0
  65. package/behaviors/lolo/ui/core/atoms/ui-flip-container.lolo +90 -0
  66. package/behaviors/lolo/ui/core/atoms/ui-game-icon.lolo +90 -0
  67. package/behaviors/lolo/ui/core/atoms/ui-hstack.lolo +90 -10
  68. package/behaviors/lolo/ui/core/atoms/ui-icon.lolo +90 -0
  69. package/behaviors/lolo/ui/core/atoms/ui-image.lolo +90 -0
  70. package/behaviors/lolo/ui/core/atoms/ui-infinite-scroll-sentinel.lolo +90 -0
  71. package/behaviors/lolo/ui/core/atoms/ui-input.lolo +11 -1
  72. package/behaviors/lolo/ui/core/atoms/ui-label.lolo +91 -1
  73. package/behaviors/lolo/ui/core/atoms/ui-law-reference-tooltip.lolo +90 -0
  74. package/behaviors/lolo/ui/core/atoms/ui-overlay.lolo +90 -0
  75. package/behaviors/lolo/ui/core/atoms/ui-pattern-tile.lolo +90 -0
  76. package/behaviors/lolo/ui/core/atoms/ui-presence.lolo +90 -0
  77. package/behaviors/lolo/ui/core/atoms/ui-progress-bar.lolo +91 -1
  78. package/behaviors/lolo/ui/core/atoms/ui-radio.lolo +106 -0
  79. package/behaviors/lolo/ui/core/atoms/ui-range-slider.lolo +122 -0
  80. package/behaviors/lolo/ui/core/atoms/ui-section-header.lolo +90 -0
  81. package/behaviors/lolo/ui/core/atoms/ui-select.lolo +95 -0
  82. package/behaviors/lolo/ui/core/atoms/ui-spacer.lolo +90 -0
  83. package/behaviors/lolo/ui/core/atoms/ui-sparkline.lolo +90 -0
  84. package/behaviors/lolo/ui/core/atoms/ui-spinner.lolo +90 -0
  85. package/behaviors/lolo/ui/core/atoms/ui-stack.lolo +90 -10
  86. package/behaviors/lolo/ui/core/atoms/ui-status-dot.lolo +90 -0
  87. package/behaviors/lolo/ui/core/atoms/ui-svg-branch.lolo +90 -0
  88. package/behaviors/lolo/ui/core/atoms/ui-svg-connection.lolo +90 -0
  89. package/behaviors/lolo/ui/core/atoms/ui-svg-flow.lolo +90 -0
  90. package/behaviors/lolo/ui/core/atoms/ui-svg-grid.lolo +90 -0
  91. package/behaviors/lolo/ui/core/atoms/ui-svg-lobe.lolo +90 -0
  92. package/behaviors/lolo/ui/core/atoms/ui-svg-mesh.lolo +90 -0
  93. package/behaviors/lolo/ui/core/atoms/ui-svg-morph.lolo +90 -0
  94. package/behaviors/lolo/ui/core/atoms/ui-svg-node.lolo +90 -0
  95. package/behaviors/lolo/ui/core/atoms/ui-svg-pulse.lolo +90 -0
  96. package/behaviors/lolo/ui/core/atoms/ui-svg-ring.lolo +90 -0
  97. package/behaviors/lolo/ui/core/atoms/ui-svg-shield.lolo +90 -0
  98. package/behaviors/lolo/ui/core/atoms/ui-svg-stack.lolo +90 -0
  99. package/behaviors/lolo/ui/core/atoms/ui-switch.lolo +106 -0
  100. package/behaviors/lolo/ui/core/atoms/ui-text-highlight.lolo +122 -0
  101. package/behaviors/lolo/ui/core/atoms/ui-textarea.lolo +100 -0
  102. package/behaviors/lolo/ui/core/atoms/ui-theme-toggle.lolo +90 -0
  103. package/behaviors/lolo/ui/core/atoms/ui-time-slot-cell.lolo +142 -0
  104. package/behaviors/lolo/ui/core/atoms/ui-trend-indicator.lolo +91 -1
  105. package/behaviors/lolo/ui/core/atoms/ui-typewriter-text.lolo +90 -0
  106. package/behaviors/lolo/ui/core/atoms/ui-typography.lolo +96 -6
  107. package/behaviors/lolo/ui/core/atoms/ui-vstack.lolo +90 -10
  108. package/behaviors/lolo/ui/core/molecules/ui-accordion.lolo +90 -0
  109. package/behaviors/lolo/ui/core/molecules/ui-activation-block.lolo +90 -0
  110. package/behaviors/lolo/ui/core/molecules/ui-alert.lolo +95 -0
  111. package/behaviors/lolo/ui/core/molecules/ui-animated-counter.lolo +91 -1
  112. package/behaviors/lolo/ui/core/molecules/ui-bloom-quiz-block.lolo +90 -0
  113. package/behaviors/lolo/ui/core/molecules/ui-branching-logic-builder.lolo +90 -0
  114. package/behaviors/lolo/ui/core/molecules/ui-breadcrumb.lolo +90 -0
  115. package/behaviors/lolo/ui/core/molecules/ui-calendar-grid.lolo +122 -0
  116. package/behaviors/lolo/ui/core/molecules/ui-carousel.lolo +90 -0
  117. package/behaviors/lolo/ui/core/molecules/ui-change-list.lolo +90 -0
  118. package/behaviors/lolo/ui/core/molecules/ui-chart-legend.lolo +90 -0
  119. package/behaviors/lolo/ui/core/molecules/ui-chart.lolo +93 -3
  120. package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +202 -0
  121. package/behaviors/lolo/ui/core/molecules/ui-command-palette.lolo +110 -4
  122. package/behaviors/lolo/ui/core/molecules/ui-commit-row.lolo +123 -1
  123. package/behaviors/lolo/ui/core/molecules/ui-confirm-dialog.lolo +90 -0
  124. package/behaviors/lolo/ui/core/molecules/ui-connection-block.lolo +90 -0
  125. package/behaviors/lolo/ui/core/molecules/ui-container.lolo +92 -2
  126. package/behaviors/lolo/ui/core/molecules/ui-content-renderer.lolo +97 -7
  127. package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +144 -4
  128. package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +132 -3
  129. package/behaviors/lolo/ui/core/molecules/ui-date-range-picker.lolo +109 -3
  130. package/behaviors/lolo/ui/core/molecules/ui-date-range-selector.lolo +90 -0
  131. package/behaviors/lolo/ui/core/molecules/ui-doc-breadcrumb.lolo +90 -0
  132. package/behaviors/lolo/ui/core/molecules/ui-doc-pagination.lolo +90 -0
  133. package/behaviors/lolo/ui/core/molecules/ui-doc-search.lolo +90 -0
  134. package/behaviors/lolo/ui/core/molecules/ui-doc-sidebar.lolo +90 -0
  135. package/behaviors/lolo/ui/core/molecules/ui-doc-toc.lolo +90 -0
  136. package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +139 -0
  137. package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +122 -0
  138. package/behaviors/lolo/ui/core/molecules/ui-document-viewer.lolo +90 -0
  139. package/behaviors/lolo/ui/core/molecules/ui-drawer.lolo +90 -0
  140. package/behaviors/lolo/ui/core/molecules/ui-edge-decoration.lolo +10 -0
  141. package/behaviors/lolo/ui/core/molecules/ui-emoji-picker.lolo +91 -1
  142. package/behaviors/lolo/ui/core/molecules/ui-empty-state.lolo +91 -1
  143. package/behaviors/lolo/ui/core/molecules/ui-error-boundary.lolo +10 -0
  144. package/behaviors/lolo/ui/core/molecules/ui-error-state.lolo +90 -0
  145. package/behaviors/lolo/ui/core/molecules/ui-feature-card.lolo +91 -1
  146. package/behaviors/lolo/ui/core/molecules/ui-feature-grid.lolo +90 -0
  147. package/behaviors/lolo/ui/core/molecules/ui-file-tree.lolo +90 -0
  148. package/behaviors/lolo/ui/core/molecules/ui-filter-group.lolo +122 -0
  149. package/behaviors/lolo/ui/core/molecules/ui-flex.lolo +90 -0
  150. package/behaviors/lolo/ui/core/molecules/ui-flip-card.lolo +90 -0
  151. package/behaviors/lolo/ui/core/molecules/ui-floating-action-button.lolo +91 -1
  152. package/behaviors/lolo/ui/core/molecules/ui-floating-toolbar.lolo +90 -0
  153. package/behaviors/lolo/ui/core/molecules/ui-form-actions.lolo +90 -0
  154. package/behaviors/lolo/ui/core/molecules/ui-form-field.lolo +90 -0
  155. package/behaviors/lolo/ui/core/molecules/ui-form-layout.lolo +96 -6
  156. package/behaviors/lolo/ui/core/molecules/ui-form-section-header.lolo +90 -0
  157. package/behaviors/lolo/ui/core/molecules/ui-fx-overlay.lolo +90 -0
  158. package/behaviors/lolo/ui/core/molecules/ui-gantt.lolo +131 -1
  159. package/behaviors/lolo/ui/core/molecules/ui-geometric-pattern.lolo +10 -0
  160. package/behaviors/lolo/ui/core/molecules/ui-gradient-divider.lolo +90 -0
  161. package/behaviors/lolo/ui/core/molecules/ui-graph-canvas.lolo +95 -0
  162. package/behaviors/lolo/ui/core/molecules/ui-graph-view.lolo +90 -0
  163. package/behaviors/lolo/ui/core/molecules/ui-grid.lolo +95 -5
  164. package/behaviors/lolo/ui/core/molecules/ui-header.lolo +90 -0
  165. package/behaviors/lolo/ui/core/molecules/ui-icon-button.lolo +90 -0
  166. package/behaviors/lolo/ui/core/molecules/ui-import-preview-tree.lolo +93 -2
  167. package/behaviors/lolo/ui/core/molecules/ui-import-progress.lolo +90 -0
  168. package/behaviors/lolo/ui/core/molecules/ui-import-source-picker.lolo +90 -0
  169. package/behaviors/lolo/ui/core/molecules/ui-input-group.lolo +91 -1
  170. package/behaviors/lolo/ui/core/molecules/ui-jazari-state-machine.lolo +90 -0
  171. package/behaviors/lolo/ui/core/molecules/ui-lightbox.lolo +90 -0
  172. package/behaviors/lolo/ui/core/molecules/ui-likert-scale.lolo +91 -1
  173. package/behaviors/lolo/ui/core/molecules/ui-line-chart.lolo +90 -0
  174. package/behaviors/lolo/ui/core/molecules/ui-loading-state.lolo +90 -0
  175. package/behaviors/lolo/ui/core/molecules/ui-map-view.lolo +90 -0
  176. package/behaviors/lolo/ui/core/molecules/ui-markdown-content.lolo +90 -0
  177. package/behaviors/lolo/ui/core/molecules/ui-matrix-question.lolo +90 -0
  178. package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +91 -0
  179. package/behaviors/lolo/ui/core/molecules/ui-meter.lolo +90 -0
  180. package/behaviors/lolo/ui/core/molecules/ui-modal.lolo +90 -0
  181. package/behaviors/lolo/ui/core/molecules/ui-navigation.lolo +90 -0
  182. package/behaviors/lolo/ui/core/molecules/ui-notification.lolo +91 -1
  183. package/behaviors/lolo/ui/core/molecules/ui-number-stepper.lolo +122 -0
  184. package/behaviors/lolo/ui/core/molecules/ui-option-constraint-group.lolo +90 -0
  185. package/behaviors/lolo/ui/core/molecules/ui-orbital-visualization.lolo +90 -0
  186. package/behaviors/lolo/ui/core/molecules/ui-page-header.lolo +90 -0
  187. package/behaviors/lolo/ui/core/molecules/ui-page-transition.lolo +90 -0
  188. package/behaviors/lolo/ui/core/molecules/ui-pagination.lolo +106 -0
  189. package/behaviors/lolo/ui/core/molecules/ui-popover.lolo +106 -0
  190. package/behaviors/lolo/ui/core/molecules/ui-positioned-canvas.lolo +122 -0
  191. package/behaviors/lolo/ui/core/molecules/ui-progress-dots.lolo +90 -0
  192. package/behaviors/lolo/ui/core/molecules/ui-pull-to-refresh.lolo +90 -0
  193. package/behaviors/lolo/ui/core/molecules/ui-qr-scanner.lolo +90 -0
  194. package/behaviors/lolo/ui/core/molecules/ui-quiz-block.lolo +90 -0
  195. package/behaviors/lolo/ui/core/molecules/ui-reflection-block.lolo +90 -0
  196. package/behaviors/lolo/ui/core/molecules/ui-relation-select.lolo +106 -0
  197. package/behaviors/lolo/ui/core/molecules/ui-repeatable-form-section.lolo +90 -0
  198. package/behaviors/lolo/ui/core/molecules/ui-reply-tree.lolo +122 -0
  199. package/behaviors/lolo/ui/core/molecules/ui-rich-text-editor.lolo +106 -0
  200. package/behaviors/lolo/ui/core/molecules/ui-scaled-diagram.lolo +90 -0
  201. package/behaviors/lolo/ui/core/molecules/ui-search-input.lolo +106 -0
  202. package/behaviors/lolo/ui/core/molecules/ui-section.lolo +90 -0
  203. package/behaviors/lolo/ui/core/molecules/ui-side-panel.lolo +90 -0
  204. package/behaviors/lolo/ui/core/molecules/ui-sidebar.lolo +106 -0
  205. package/behaviors/lolo/ui/core/molecules/ui-signature-pad.lolo +90 -0
  206. package/behaviors/lolo/ui/core/molecules/ui-simple-grid.lolo +90 -0
  207. package/behaviors/lolo/ui/core/molecules/ui-skeleton.lolo +93 -3
  208. package/behaviors/lolo/ui/core/molecules/ui-social-proof.lolo +90 -0
  209. package/behaviors/lolo/ui/core/molecules/ui-sortable-list.lolo +122 -0
  210. package/behaviors/lolo/ui/core/molecules/ui-split.lolo +90 -0
  211. package/behaviors/lolo/ui/core/molecules/ui-star-rating.lolo +122 -0
  212. package/behaviors/lolo/ui/core/molecules/ui-stat-display.lolo +90 -0
  213. package/behaviors/lolo/ui/core/molecules/ui-swipeable-row.lolo +138 -0
  214. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +140 -3
  215. package/behaviors/lolo/ui/core/molecules/ui-tabs.lolo +90 -0
  216. package/behaviors/lolo/ui/core/molecules/ui-tag-input.lolo +90 -0
  217. package/behaviors/lolo/ui/core/molecules/ui-tooltip.lolo +90 -0
  218. package/behaviors/lolo/ui/core/molecules/ui-top-nav-item.lolo +90 -0
  219. package/behaviors/lolo/ui/core/molecules/ui-upload-drop-zone.lolo +90 -0
  220. package/behaviors/lolo/ui/core/molecules/ui-version-diff.lolo +90 -0
  221. package/behaviors/lolo/ui/core/molecules/ui-violation-alert.lolo +91 -1
  222. package/behaviors/lolo/ui/core/molecules/ui-vote-stack.lolo +91 -1
  223. package/behaviors/lolo/ui/core/molecules/ui-wizard-container.lolo +90 -0
  224. package/behaviors/lolo/ui/core/molecules/ui-wizard-navigation.lolo +138 -0
  225. package/behaviors/lolo/ui/core/molecules/ui-wizard-progress.lolo +90 -0
  226. package/behaviors/lolo/ui/core/organisms/ui-chat-bar.lolo +91 -1
  227. package/behaviors/lolo/ui/core/organisms/ui-code-runner-panel.lolo +90 -0
  228. package/behaviors/lolo/ui/core/organisms/ui-dashboard-grid.lolo +91 -1
  229. package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +355 -6
  230. package/behaviors/lolo/ui/core/organisms/ui-dock-layout.lolo +90 -0
  231. package/behaviors/lolo/ui/core/organisms/ui-drawer-slot.lolo +10 -0
  232. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +152 -8
  233. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +162 -7
  234. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +142 -1
  235. package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +141 -1
  236. package/behaviors/lolo/ui/core/organisms/ui-form.lolo +141 -1
  237. package/behaviors/lolo/ui/core/organisms/ui-master-detail-layout.lolo +90 -0
  238. package/behaviors/lolo/ui/core/organisms/ui-master-detail.lolo +123 -1
  239. package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +137 -1
  240. package/behaviors/lolo/ui/core/organisms/ui-modal-slot.lolo +10 -0
  241. package/behaviors/lolo/ui/core/organisms/ui-runtime-debugger.lolo +90 -0
  242. package/behaviors/lolo/ui/core/organisms/ui-segment-renderer.lolo +90 -0
  243. package/behaviors/lolo/ui/core/organisms/ui-split-pane.lolo +106 -0
  244. package/behaviors/lolo/ui/core/organisms/ui-stat-card.lolo +130 -2
  245. package/behaviors/lolo/ui/core/organisms/ui-state-machine-view.lolo +92 -2
  246. package/behaviors/lolo/ui/core/organisms/ui-subagent-trace-panel.lolo +91 -1
  247. package/behaviors/lolo/ui/core/organisms/ui-tabbed-container.lolo +90 -0
  248. package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +152 -2
  249. package/behaviors/lolo/ui/core/organisms/ui-toast-slot.lolo +91 -1
  250. package/behaviors/lolo/ui/core/templates/ui-auth-layout.lolo +81 -1
  251. package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +92 -2
  252. package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +1 -1
  253. package/behaviors/lolo/ui/core/templates/ui-generic-app-template.lolo +90 -0
  254. package/behaviors/lolo/ui/game/.hand-authored.json +2 -2
  255. package/behaviors/lolo/ui/game/atoms/ui-action-palette.lolo +90 -0
  256. package/behaviors/lolo/ui/game/atoms/ui-action-tile.lolo +91 -1
  257. package/behaviors/lolo/ui/game/atoms/ui-canvas-2d.lolo +95 -0
  258. package/behaviors/lolo/ui/game/atoms/ui-canvas.lolo +91 -1
  259. package/behaviors/lolo/ui/game/atoms/ui-choice-button.lolo +91 -1
  260. package/behaviors/lolo/ui/game/atoms/ui-control-button.lolo +90 -0
  261. package/behaviors/lolo/ui/game/atoms/ui-control-grid.lolo +90 -0
  262. package/behaviors/lolo/ui/game/atoms/ui-dialogue-bubble.lolo +92 -2
  263. package/behaviors/lolo/ui/game/atoms/ui-draw-mesh.lolo +1 -1
  264. package/behaviors/lolo/ui/game/atoms/ui-draw-shape.lolo +2 -2
  265. package/behaviors/lolo/ui/game/atoms/ui-draw-sprite.lolo +1 -1
  266. package/behaviors/lolo/ui/game/atoms/ui-draw-text.lolo +3 -3
  267. package/behaviors/lolo/ui/game/atoms/ui-game-audio-toggle.lolo +90 -0
  268. package/behaviors/lolo/ui/game/atoms/ui-game-hud.lolo +90 -0
  269. package/behaviors/lolo/ui/game/atoms/ui-game-menu.lolo +91 -1
  270. package/behaviors/lolo/ui/game/atoms/ui-health-bar.lolo +90 -0
  271. package/behaviors/lolo/ui/game/atoms/ui-score-display.lolo +91 -1
  272. package/behaviors/lolo/ui/game/atoms/ui-sequence-bar.lolo +90 -0
  273. package/behaviors/lolo/ui/game/atoms/ui-stat-badge.lolo +90 -0
  274. package/behaviors/lolo/ui/game/atoms/ui-state-graph.lolo +90 -0
  275. package/behaviors/lolo/ui/game/atoms/ui-state-json-view.lolo +90 -0
  276. package/behaviors/lolo/ui/game/atoms/ui-trait-slot.lolo +123 -1
  277. package/behaviors/lolo/ui/learning/atoms/ui-algo-graph-canvas.lolo +90 -0
  278. package/behaviors/lolo/ui/learning/atoms/ui-algorithm-canvas.lolo +106 -0
  279. package/behaviors/lolo/ui/learning/atoms/ui-biology-canvas.lolo +106 -0
  280. package/behaviors/lolo/ui/learning/atoms/ui-chemistry-canvas.lolo +106 -0
  281. package/behaviors/lolo/ui/learning/atoms/ui-learning-canvas.lolo +112 -0
  282. package/behaviors/lolo/ui/learning/atoms/ui-math-canvas.lolo +106 -0
  283. package/behaviors/lolo/ui/learning/atoms/ui-physics-canvas.lolo +106 -0
  284. package/behaviors/lolo-behavior-contracts.json +1 -1
  285. package/behaviors/registry/agent/atoms/std-agent-context.orb +299 -826
  286. package/behaviors/registry/agent/atoms/std-agent-memory.orb +858 -643
  287. package/behaviors/registry/agent/atoms/std-agent-session.orb +833 -770
  288. package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +505 -707
  289. package/behaviors/registry/agent/atoms/std-agent-trace.orb +680 -195
  290. package/behaviors/registry/agent/organisms/std-agent-assistant.orb +594 -0
  291. package/behaviors/registry/factory-signatures.json +1 -1
  292. package/behaviors/registry/infra/atoms/std-approval-gate.orb +70 -0
  293. package/behaviors/registry/infra/atoms/std-cache-aside.orb +172 -299
  294. package/behaviors/registry/infra/atoms/std-migration-job.orb +26 -1
  295. package/behaviors/registry/infra/atoms/std-notification-preferences.orb +57 -14
  296. package/behaviors/registry/infra/atoms/std-permission-matrix.orb +9 -0
  297. package/behaviors/registry/ui/avl/atoms/ui-avl-glyph.orb +236 -0
  298. package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +236 -0
  299. package/behaviors/registry/ui/avl/atoms/ui-behavior-view.orb +215 -0
  300. package/behaviors/registry/ui/avl/atoms/ui-module-card.orb +215 -0
  301. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +26 -18
  302. package/behaviors/registry/ui/core/atoms/std-board.orb +10 -34
  303. package/behaviors/registry/ui/core/atoms/std-book-reader.orb +32 -13
  304. package/behaviors/registry/ui/core/atoms/std-browse.orb +312 -20
  305. package/behaviors/registry/ui/core/atoms/std-calendar.orb +8 -19
  306. package/behaviors/registry/ui/core/atoms/std-detail-layout.orb +3 -1
  307. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +48 -11
  308. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +28 -4
  309. package/behaviors/registry/ui/core/atoms/std-event-log.orb +86 -14
  310. package/behaviors/registry/ui/core/atoms/std-file-store.orb +68 -59
  311. package/behaviors/registry/ui/core/atoms/std-gantt-schedule.orb +69 -12
  312. package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +16 -16
  313. package/behaviors/registry/ui/core/atoms/std-list.orb +59 -11
  314. package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +115 -14
  315. package/behaviors/registry/ui/core/atoms/std-prose.orb +14 -1
  316. package/behaviors/registry/ui/core/atoms/std-rating-review.orb +79 -8
  317. package/behaviors/registry/ui/core/atoms/std-record-detail.orb +693 -69
  318. package/behaviors/registry/ui/core/atoms/std-recurrence.orb +112 -28
  319. package/behaviors/registry/ui/core/atoms/std-related.orb +82 -21
  320. package/behaviors/registry/ui/core/atoms/std-saved-search.orb +82 -18
  321. package/behaviors/registry/ui/core/atoms/std-scoped-list.orb +993 -0
  322. package/behaviors/registry/ui/core/atoms/std-selection.orb +101 -12
  323. package/behaviors/registry/ui/core/atoms/std-signature-capture.orb +2 -16
  324. package/behaviors/registry/ui/core/atoms/std-slide-deck.orb +2 -0
  325. package/behaviors/registry/ui/core/atoms/std-step-flow.orb +8 -8
  326. package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +48 -64
  327. package/behaviors/registry/ui/core/atoms/std-thread.orb +863 -141
  328. package/behaviors/registry/ui/core/atoms/std-tree.orb +40 -18
  329. package/behaviors/registry/ui/core/atoms/std-version-history.orb +87 -69
  330. package/behaviors/registry/ui/core/atoms/std-vote.orb +4 -54
  331. package/behaviors/registry/ui/core/atoms/std-wizard.orb +70 -10
  332. package/behaviors/registry/ui/core/atoms/ui-animated-graphic.orb +236 -0
  333. package/behaviors/registry/ui/core/atoms/ui-animated-reveal.orb +236 -0
  334. package/behaviors/registry/ui/core/atoms/ui-aside.orb +236 -0
  335. package/behaviors/registry/ui/core/atoms/ui-atlas-image.orb +29 -0
  336. package/behaviors/registry/ui/core/atoms/ui-atlas-panel.orb +29 -0
  337. package/behaviors/registry/ui/core/atoms/ui-avatar.orb +236 -1
  338. package/behaviors/registry/ui/core/atoms/ui-badge.orb +236 -0
  339. package/behaviors/registry/ui/core/atoms/ui-box.orb +231 -10
  340. package/behaviors/registry/ui/core/atoms/ui-button.orb +236 -0
  341. package/behaviors/registry/ui/core/atoms/ui-card.orb +236 -1
  342. package/behaviors/registry/ui/core/atoms/ui-center.orb +236 -0
  343. package/behaviors/registry/ui/core/atoms/ui-checkbox.orb +260 -0
  344. package/behaviors/registry/ui/core/atoms/ui-confetti-effect.orb +236 -0
  345. package/behaviors/registry/ui/core/atoms/ui-day-cell.orb +236 -0
  346. package/behaviors/registry/ui/core/atoms/ui-dialog.orb +236 -0
  347. package/behaviors/registry/ui/core/atoms/ui-divider.orb +236 -0
  348. package/behaviors/registry/ui/core/atoms/ui-filter-pill.orb +236 -0
  349. package/behaviors/registry/ui/core/atoms/ui-flip-container.orb +236 -0
  350. package/behaviors/registry/ui/core/atoms/ui-game-icon.orb +236 -0
  351. package/behaviors/registry/ui/core/atoms/ui-hstack.orb +225 -3
  352. package/behaviors/registry/ui/core/atoms/ui-icon.orb +236 -0
  353. package/behaviors/registry/ui/core/atoms/ui-image.orb +236 -0
  354. package/behaviors/registry/ui/core/atoms/ui-infinite-scroll-sentinel.orb +236 -0
  355. package/behaviors/registry/ui/core/atoms/ui-input.orb +21 -1
  356. package/behaviors/registry/ui/core/atoms/ui-label.orb +237 -1
  357. package/behaviors/registry/ui/core/atoms/ui-law-reference-tooltip.orb +236 -0
  358. package/behaviors/registry/ui/core/atoms/ui-overlay.orb +236 -0
  359. package/behaviors/registry/ui/core/atoms/ui-pattern-tile.orb +236 -0
  360. package/behaviors/registry/ui/core/atoms/ui-presence.orb +236 -0
  361. package/behaviors/registry/ui/core/atoms/ui-progress-bar.orb +236 -1
  362. package/behaviors/registry/ui/core/atoms/ui-radio.orb +252 -0
  363. package/behaviors/registry/ui/core/atoms/ui-range-slider.orb +268 -0
  364. package/behaviors/registry/ui/core/atoms/ui-section-header.orb +236 -0
  365. package/behaviors/registry/ui/core/atoms/ui-select.orb +243 -0
  366. package/behaviors/registry/ui/core/atoms/ui-spacer.orb +236 -0
  367. package/behaviors/registry/ui/core/atoms/ui-sparkline.orb +236 -0
  368. package/behaviors/registry/ui/core/atoms/ui-spinner.orb +236 -0
  369. package/behaviors/registry/ui/core/atoms/ui-stack.orb +225 -3
  370. package/behaviors/registry/ui/core/atoms/ui-status-dot.orb +236 -0
  371. package/behaviors/registry/ui/core/atoms/ui-svg-branch.orb +236 -0
  372. package/behaviors/registry/ui/core/atoms/ui-svg-connection.orb +236 -0
  373. package/behaviors/registry/ui/core/atoms/ui-svg-flow.orb +236 -0
  374. package/behaviors/registry/ui/core/atoms/ui-svg-grid.orb +236 -0
  375. package/behaviors/registry/ui/core/atoms/ui-svg-lobe.orb +236 -0
  376. package/behaviors/registry/ui/core/atoms/ui-svg-mesh.orb +236 -0
  377. package/behaviors/registry/ui/core/atoms/ui-svg-morph.orb +236 -0
  378. package/behaviors/registry/ui/core/atoms/ui-svg-node.orb +236 -0
  379. package/behaviors/registry/ui/core/atoms/ui-svg-pulse.orb +236 -0
  380. package/behaviors/registry/ui/core/atoms/ui-svg-ring.orb +236 -0
  381. package/behaviors/registry/ui/core/atoms/ui-svg-shield.orb +236 -0
  382. package/behaviors/registry/ui/core/atoms/ui-svg-stack.orb +236 -0
  383. package/behaviors/registry/ui/core/atoms/ui-switch.orb +252 -0
  384. package/behaviors/registry/ui/core/atoms/ui-text-highlight.orb +268 -0
  385. package/behaviors/registry/ui/core/atoms/ui-textarea.orb +250 -0
  386. package/behaviors/registry/ui/core/atoms/ui-theme-toggle.orb +236 -0
  387. package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +384 -0
  388. package/behaviors/registry/ui/core/atoms/ui-trend-indicator.orb +236 -1
  389. package/behaviors/registry/ui/core/atoms/ui-typewriter-text.orb +236 -0
  390. package/behaviors/registry/ui/core/atoms/ui-typography.orb +236 -6
  391. package/behaviors/registry/ui/core/atoms/ui-vstack.orb +225 -3
  392. package/behaviors/registry/ui/core/molecules/ui-accordion.orb +236 -0
  393. package/behaviors/registry/ui/core/molecules/ui-activation-block.orb +236 -0
  394. package/behaviors/registry/ui/core/molecules/ui-alert.orb +243 -0
  395. package/behaviors/registry/ui/core/molecules/ui-animated-counter.orb +237 -1
  396. package/behaviors/registry/ui/core/molecules/ui-bloom-quiz-block.orb +236 -0
  397. package/behaviors/registry/ui/core/molecules/ui-branching-logic-builder.orb +236 -0
  398. package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +236 -0
  399. package/behaviors/registry/ui/core/molecules/ui-calendar-grid.orb +268 -0
  400. package/behaviors/registry/ui/core/molecules/ui-carousel.orb +236 -0
  401. package/behaviors/registry/ui/core/molecules/ui-change-list.orb +236 -0
  402. package/behaviors/registry/ui/core/molecules/ui-chart-legend.orb +236 -0
  403. package/behaviors/registry/ui/core/molecules/ui-chart.orb +236 -3
  404. package/behaviors/registry/ui/core/molecules/ui-code-block.orb +348 -0
  405. package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +254 -4
  406. package/behaviors/registry/ui/core/molecules/ui-commit-row.orb +268 -1
  407. package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +236 -0
  408. package/behaviors/registry/ui/core/molecules/ui-connection-block.orb +236 -0
  409. package/behaviors/registry/ui/core/molecules/ui-container.orb +236 -2
  410. package/behaviors/registry/ui/core/molecules/ui-content-renderer.orb +241 -7
  411. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +387 -2
  412. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +351 -1
  413. package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +253 -3
  414. package/behaviors/registry/ui/core/molecules/ui-date-range-selector.orb +236 -0
  415. package/behaviors/registry/ui/core/molecules/ui-doc-breadcrumb.orb +236 -0
  416. package/behaviors/registry/ui/core/molecules/ui-doc-pagination.orb +236 -0
  417. package/behaviors/registry/ui/core/molecules/ui-doc-search.orb +236 -0
  418. package/behaviors/registry/ui/core/molecules/ui-doc-sidebar.orb +236 -0
  419. package/behaviors/registry/ui/core/molecules/ui-doc-toc.orb +236 -0
  420. package/behaviors/registry/ui/core/molecules/ui-document-details.orb +296 -0
  421. package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +268 -0
  422. package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +236 -0
  423. package/behaviors/registry/ui/core/molecules/ui-drawer.orb +236 -0
  424. package/behaviors/registry/ui/core/molecules/ui-edge-decoration.orb +21 -0
  425. package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +236 -1
  426. package/behaviors/registry/ui/core/molecules/ui-empty-state.orb +236 -1
  427. package/behaviors/registry/ui/core/molecules/ui-error-boundary.orb +21 -0
  428. package/behaviors/registry/ui/core/molecules/ui-error-state.orb +236 -0
  429. package/behaviors/registry/ui/core/molecules/ui-feature-card.orb +236 -1
  430. package/behaviors/registry/ui/core/molecules/ui-feature-grid.orb +236 -0
  431. package/behaviors/registry/ui/core/molecules/ui-file-tree.orb +236 -0
  432. package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +268 -0
  433. package/behaviors/registry/ui/core/molecules/ui-flex.orb +236 -0
  434. package/behaviors/registry/ui/core/molecules/ui-flip-card.orb +236 -0
  435. package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +236 -1
  436. package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +236 -0
  437. package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +236 -0
  438. package/behaviors/registry/ui/core/molecules/ui-form-field.orb +236 -0
  439. package/behaviors/registry/ui/core/molecules/ui-form-layout.orb +241 -6
  440. package/behaviors/registry/ui/core/molecules/ui-form-section-header.orb +236 -0
  441. package/behaviors/registry/ui/core/molecules/ui-fx-overlay.orb +236 -0
  442. package/behaviors/registry/ui/core/molecules/ui-gantt.orb +296 -1
  443. package/behaviors/registry/ui/core/molecules/ui-geometric-pattern.orb +21 -0
  444. package/behaviors/registry/ui/core/molecules/ui-gradient-divider.orb +236 -0
  445. package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +243 -0
  446. package/behaviors/registry/ui/core/molecules/ui-graph-view.orb +236 -0
  447. package/behaviors/registry/ui/core/molecules/ui-grid.orb +236 -5
  448. package/behaviors/registry/ui/core/molecules/ui-header.orb +236 -0
  449. package/behaviors/registry/ui/core/molecules/ui-icon-button.orb +236 -0
  450. package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +245 -2
  451. package/behaviors/registry/ui/core/molecules/ui-import-progress.orb +236 -0
  452. package/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +236 -0
  453. package/behaviors/registry/ui/core/molecules/ui-input-group.orb +236 -1
  454. package/behaviors/registry/ui/core/molecules/ui-jazari-state-machine.orb +236 -0
  455. package/behaviors/registry/ui/core/molecules/ui-lightbox.orb +236 -0
  456. package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +237 -1
  457. package/behaviors/registry/ui/core/molecules/ui-line-chart.orb +236 -0
  458. package/behaviors/registry/ui/core/molecules/ui-loading-state.orb +236 -0
  459. package/behaviors/registry/ui/core/molecules/ui-map-view.orb +236 -0
  460. package/behaviors/registry/ui/core/molecules/ui-markdown-content.orb +236 -0
  461. package/behaviors/registry/ui/core/molecules/ui-matrix-question.orb +236 -0
  462. package/behaviors/registry/ui/core/molecules/ui-menu.orb +253 -0
  463. package/behaviors/registry/ui/core/molecules/ui-meter.orb +236 -0
  464. package/behaviors/registry/ui/core/molecules/ui-modal.orb +236 -0
  465. package/behaviors/registry/ui/core/molecules/ui-navigation.orb +236 -0
  466. package/behaviors/registry/ui/core/molecules/ui-notification.orb +237 -1
  467. package/behaviors/registry/ui/core/molecules/ui-number-stepper.orb +268 -0
  468. package/behaviors/registry/ui/core/molecules/ui-option-constraint-group.orb +236 -0
  469. package/behaviors/registry/ui/core/molecules/ui-orbital-visualization.orb +236 -0
  470. package/behaviors/registry/ui/core/molecules/ui-page-header.orb +236 -0
  471. package/behaviors/registry/ui/core/molecules/ui-page-transition.orb +236 -0
  472. package/behaviors/registry/ui/core/molecules/ui-pagination.orb +252 -0
  473. package/behaviors/registry/ui/core/molecules/ui-popover.orb +252 -0
  474. package/behaviors/registry/ui/core/molecules/ui-positioned-canvas.orb +268 -0
  475. package/behaviors/registry/ui/core/molecules/ui-progress-dots.orb +236 -0
  476. package/behaviors/registry/ui/core/molecules/ui-pull-to-refresh.orb +236 -0
  477. package/behaviors/registry/ui/core/molecules/ui-qr-scanner.orb +236 -0
  478. package/behaviors/registry/ui/core/molecules/ui-quiz-block.orb +236 -0
  479. package/behaviors/registry/ui/core/molecules/ui-reflection-block.orb +236 -0
  480. package/behaviors/registry/ui/core/molecules/ui-relation-select.orb +252 -0
  481. package/behaviors/registry/ui/core/molecules/ui-repeatable-form-section.orb +236 -0
  482. package/behaviors/registry/ui/core/molecules/ui-reply-tree.orb +268 -0
  483. package/behaviors/registry/ui/core/molecules/ui-rich-text-editor.orb +252 -0
  484. package/behaviors/registry/ui/core/molecules/ui-scaled-diagram.orb +236 -0
  485. package/behaviors/registry/ui/core/molecules/ui-search-input.orb +252 -0
  486. package/behaviors/registry/ui/core/molecules/ui-section.orb +236 -0
  487. package/behaviors/registry/ui/core/molecules/ui-side-panel.orb +236 -0
  488. package/behaviors/registry/ui/core/molecules/ui-sidebar.orb +252 -0
  489. package/behaviors/registry/ui/core/molecules/ui-signature-pad.orb +236 -0
  490. package/behaviors/registry/ui/core/molecules/ui-simple-grid.orb +236 -0
  491. package/behaviors/registry/ui/core/molecules/ui-skeleton.orb +242 -2
  492. package/behaviors/registry/ui/core/molecules/ui-social-proof.orb +236 -0
  493. package/behaviors/registry/ui/core/molecules/ui-sortable-list.orb +268 -0
  494. package/behaviors/registry/ui/core/molecules/ui-split.orb +236 -0
  495. package/behaviors/registry/ui/core/molecules/ui-star-rating.orb +268 -0
  496. package/behaviors/registry/ui/core/molecules/ui-stat-display.orb +236 -0
  497. package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +284 -0
  498. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +425 -3
  499. package/behaviors/registry/ui/core/molecules/ui-tabs.orb +236 -0
  500. package/behaviors/registry/ui/core/molecules/ui-tag-input.orb +236 -0
  501. package/behaviors/registry/ui/core/molecules/ui-tooltip.orb +236 -0
  502. package/behaviors/registry/ui/core/molecules/ui-top-nav-item.orb +236 -0
  503. package/behaviors/registry/ui/core/molecules/ui-upload-drop-zone.orb +236 -0
  504. package/behaviors/registry/ui/core/molecules/ui-version-diff.orb +236 -0
  505. package/behaviors/registry/ui/core/molecules/ui-violation-alert.orb +236 -1
  506. package/behaviors/registry/ui/core/molecules/ui-vote-stack.orb +236 -1
  507. package/behaviors/registry/ui/core/molecules/ui-wizard-container.orb +236 -0
  508. package/behaviors/registry/ui/core/molecules/ui-wizard-navigation.orb +284 -0
  509. package/behaviors/registry/ui/core/molecules/ui-wizard-progress.orb +236 -0
  510. package/behaviors/registry/ui/core/organisms/ui-chat-bar.orb +236 -1
  511. package/behaviors/registry/ui/core/organisms/ui-code-runner-panel.orb +236 -0
  512. package/behaviors/registry/ui/core/organisms/ui-dashboard-grid.orb +236 -1
  513. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +1281 -16
  514. package/behaviors/registry/ui/core/organisms/ui-dock-layout.orb +236 -0
  515. package/behaviors/registry/ui/core/organisms/ui-drawer-slot.orb +21 -0
  516. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +489 -27
  517. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +444 -19
  518. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +410 -0
  519. package/behaviors/registry/ui/core/organisms/ui-form-section.orb +312 -1
  520. package/behaviors/registry/ui/core/organisms/ui-form.orb +312 -1
  521. package/behaviors/registry/ui/core/organisms/ui-master-detail-layout.orb +236 -0
  522. package/behaviors/registry/ui/core/organisms/ui-master-detail.orb +268 -1
  523. package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +288 -1
  524. package/behaviors/registry/ui/core/organisms/ui-modal-slot.orb +21 -0
  525. package/behaviors/registry/ui/core/organisms/ui-runtime-debugger.orb +236 -0
  526. package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +236 -0
  527. package/behaviors/registry/ui/core/organisms/ui-split-pane.orb +252 -0
  528. package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +326 -2
  529. package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +236 -2
  530. package/behaviors/registry/ui/core/organisms/ui-subagent-trace-panel.orb +236 -1
  531. package/behaviors/registry/ui/core/organisms/ui-tabbed-container.orb +236 -0
  532. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +306 -5
  533. package/behaviors/registry/ui/core/organisms/ui-toast-slot.orb +236 -1
  534. package/behaviors/registry/ui/core/templates/ui-auth-layout.orb +215 -1
  535. package/behaviors/registry/ui/core/templates/ui-counter-template.orb +236 -2
  536. package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +0 -1
  537. package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +236 -0
  538. package/behaviors/registry/ui/game/atoms/ui-action-palette.orb +236 -0
  539. package/behaviors/registry/ui/game/atoms/ui-action-tile.orb +236 -1
  540. package/behaviors/registry/ui/game/atoms/ui-canvas-2d.orb +243 -0
  541. package/behaviors/registry/ui/game/atoms/ui-canvas.orb +236 -1
  542. package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +237 -1
  543. package/behaviors/registry/ui/game/atoms/ui-control-button.orb +236 -0
  544. package/behaviors/registry/ui/game/atoms/ui-control-grid.orb +236 -0
  545. package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +237 -2
  546. package/behaviors/registry/ui/game/atoms/ui-draw-mesh.orb +0 -1
  547. package/behaviors/registry/ui/game/atoms/ui-draw-shape.orb +0 -2
  548. package/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +0 -1
  549. package/behaviors/registry/ui/game/atoms/ui-draw-text.orb +0 -3
  550. package/behaviors/registry/ui/game/atoms/ui-game-audio-toggle.orb +236 -0
  551. package/behaviors/registry/ui/game/atoms/ui-game-hud.orb +236 -0
  552. package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +237 -1
  553. package/behaviors/registry/ui/game/atoms/ui-health-bar.orb +236 -0
  554. package/behaviors/registry/ui/game/atoms/ui-score-display.orb +236 -1
  555. package/behaviors/registry/ui/game/atoms/ui-sequence-bar.orb +236 -0
  556. package/behaviors/registry/ui/game/atoms/ui-stat-badge.orb +236 -0
  557. package/behaviors/registry/ui/game/atoms/ui-state-graph.orb +236 -0
  558. package/behaviors/registry/ui/game/atoms/ui-state-json-view.orb +236 -0
  559. package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +268 -1
  560. package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +236 -0
  561. package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +252 -0
  562. package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +252 -0
  563. package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +252 -0
  564. package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +260 -0
  565. package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +252 -0
  566. package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +252 -0
  567. package/dist/behaviors/exports-reader.js +15164 -7081
  568. package/dist/behaviors/functions/index.d.ts +4293 -362
  569. package/dist/behaviors/functions/index.js +15134 -7043
  570. package/dist/behaviors/index.d.ts +1 -1
  571. package/dist/behaviors/index.js +15165 -7082
  572. package/dist/behaviors/query.js +15164 -7081
  573. package/dist/behaviors-embeddings.hash.json +3 -3
  574. package/dist/behaviors-embeddings.json +37 -33
  575. package/dist/behaviors-registry.json +57874 -1895
  576. package/dist/index.d.ts +1 -1
  577. package/dist/index.js +15165 -7082
  578. package/dist/knob-embeddings.hash.json +3 -3
  579. package/dist/knob-embeddings.json +14971 -255
  580. package/dist/registry/factory-signatures.json +1 -1
  581. package/package.json +4 -4
  582. package/behaviors/lolo/agent/organisms/std-agent-rabit.lolo +0 -301
  583. package/behaviors/registry/agent/organisms/std-agent-rabit.orb +0 -2181
@@ -44,8 +44,10 @@ orbital MultiPartyFlowOrbital {
44
44
  emit: { failure: FlowLoadFailed, success: FlowLoaded }
45
45
  })
46
46
  (render-ui main {
47
- title: "Loading transaction…"
48
- type: loading-state
47
+ type: stack
48
+ direction: vertical
49
+ gap: lg
50
+ children: [{ type: skeleton, variant: header }, { type: skeleton, variant: card }]
49
51
  })
50
52
  FlowLoaded -> awaiting
51
53
  (set @entity.currentPartyIndex 0)
@@ -259,6 +261,10 @@ orbital MultiPartyFlowOrbital {
259
261
  }, {
260
262
  entity: @entity.audit
261
263
  fields: (title description timestamp status)
264
+ titleField: "title"
265
+ descriptionField: "description"
266
+ dateField: "timestamp"
267
+ statusField: "status"
262
268
  look: @config.timelineLook
263
269
  type: timeline
264
270
  }, { type: divider }, {
@@ -508,6 +514,10 @@ orbital MultiPartyFlowOrbital {
508
514
  }, {
509
515
  entity: @entity.audit
510
516
  fields: (title description timestamp status)
517
+ titleField: "title"
518
+ descriptionField: "description"
519
+ dateField: "timestamp"
520
+ statusField: "status"
511
521
  look: @config.timelineLook
512
522
  type: timeline
513
523
  }, { type: divider }, {
@@ -671,6 +681,10 @@ orbital MultiPartyFlowOrbital {
671
681
  }, {
672
682
  entity: @entity.audit
673
683
  fields: (title description timestamp status)
684
+ titleField: "title"
685
+ descriptionField: "description"
686
+ dateField: "timestamp"
687
+ statusField: "status"
674
688
  look: @config.timelineLook
675
689
  type: timeline
676
690
  }]
@@ -827,6 +841,10 @@ orbital MultiPartyFlowOrbital {
827
841
  }, {
828
842
  entity: @entity.audit
829
843
  fields: (title description timestamp status)
844
+ titleField: "title"
845
+ descriptionField: "description"
846
+ dateField: "timestamp"
847
+ statusField: "status"
830
848
  look: @config.timelineLook
831
849
  type: timeline
832
850
  }, {
@@ -845,8 +863,10 @@ orbital MultiPartyFlowOrbital {
845
863
  emit: { failure: FlowLoadFailed, success: FlowLoaded }
846
864
  })
847
865
  (render-ui main {
848
- title: "Returning…"
849
- type: loading-state
866
+ type: stack
867
+ direction: vertical
868
+ gap: lg
869
+ children: [{ type: skeleton, variant: header }, { type: skeleton, variant: card }]
850
870
  })
851
871
  }
852
872
 
@@ -905,6 +925,10 @@ orbital MultiPartyFlowOrbital {
905
925
  }, {
906
926
  entity: @entity.audit
907
927
  fields: (title description timestamp status)
928
+ titleField: "title"
929
+ descriptionField: "description"
930
+ dateField: "timestamp"
931
+ statusField: "status"
908
932
  look: @config.timelineLook
909
933
  type: timeline
910
934
  }, {
@@ -923,8 +947,10 @@ orbital MultiPartyFlowOrbital {
923
947
  emit: { failure: FlowLoadFailed, success: FlowLoaded }
924
948
  })
925
949
  (render-ui main {
926
- title: "Returning…"
927
- type: loading-state
950
+ type: stack
951
+ direction: vertical
952
+ gap: lg
953
+ children: [{ type: skeleton, variant: header }, { type: skeleton, variant: card }]
928
954
  })
929
955
  }
930
956
 
@@ -989,6 +1015,10 @@ orbital MultiPartyFlowOrbital {
989
1015
  }, {
990
1016
  entity: @entity.audit
991
1017
  fields: (title description timestamp status)
1018
+ titleField: "title"
1019
+ descriptionField: "description"
1020
+ dateField: "timestamp"
1021
+ statusField: "status"
992
1022
  look: @config.timelineLook
993
1023
  type: timeline
994
1024
  }, {
@@ -1056,8 +1086,10 @@ orbital MultiPartyFlowOrbital {
1056
1086
  emit: { failure: FlowLoadFailed, success: FlowLoaded }
1057
1087
  })
1058
1088
  (render-ui main {
1059
- title: "Starting new transaction…"
1060
- type: loading-state
1089
+ type: stack
1090
+ direction: vertical
1091
+ gap: lg
1092
+ children: [{ type: skeleton, variant: header }, { type: skeleton, variant: card }]
1061
1093
  })
1062
1094
  }
1063
1095
 
@@ -1067,8 +1099,10 @@ orbital MultiPartyFlowOrbital {
1067
1099
  emit: { failure: FlowLoadFailed, success: FlowLoaded }
1068
1100
  })
1069
1101
  (render-ui main {
1070
- title: "Starting new transaction…"
1071
- type: loading-state
1102
+ type: stack
1103
+ direction: vertical
1104
+ gap: lg
1105
+ children: [{ type: skeleton, variant: header }, { type: skeleton, variant: card }]
1072
1106
  })
1073
1107
  }
1074
1108
 
@@ -1078,8 +1112,10 @@ orbital MultiPartyFlowOrbital {
1078
1112
  emit: { failure: FlowLoadFailed, success: FlowLoaded }
1079
1113
  })
1080
1114
  (render-ui main {
1081
- title: "Starting new transaction…"
1082
- type: loading-state
1115
+ type: stack
1116
+ direction: vertical
1117
+ gap: lg
1118
+ children: [{ type: skeleton, variant: header }, { type: skeleton, variant: card }]
1083
1119
  })
1084
1120
  }
1085
1121
 
@@ -1089,8 +1125,10 @@ orbital MultiPartyFlowOrbital {
1089
1125
  emit: { failure: FlowLoadFailed, success: FlowLoaded }
1090
1126
  })
1091
1127
  (render-ui main {
1092
- title: "Retrying…"
1093
- type: loading-state
1128
+ type: stack
1129
+ direction: vertical
1130
+ gap: lg
1131
+ children: [{ type: skeleton, variant: header }, { type: skeleton, variant: card }]
1094
1132
  })
1095
1133
  }
1096
1134
 
@@ -33,7 +33,8 @@ orbital ProseOrbital {
33
33
  }, {
34
34
  type: typography
35
35
  content: @config.heading
36
- variant: h2
36
+ variant: @config.headingLevel
37
+ size: "3xl"
37
38
  weight: bold
38
39
  className: (if (== @config.heading "") hidden "tracking-tight text-balance")
39
40
  }, {
@@ -62,6 +63,11 @@ orbital ProseOrbital {
62
63
  @description "Empty hides it"
63
64
  @synonyms "title"
64
65
  @tier "presentation"
66
+ headingLevel : "h1" | "h2" = h2
67
+ @label "Heading level"
68
+ @description "h1 when this text is the page's main content (its title names the page); h2 when it is one section among others"
69
+ @synonyms "page title, heading rank, outline level"
70
+ @tier "presentation"
65
71
  meta : string = ""
66
72
  @label "Meta line"
67
73
  @description "Date, author or reading time under the heading; empty hides it"
@@ -38,8 +38,10 @@ orbital RatingReviewOrbital {
38
38
  emit: { failure: ReviewsLoadFailed, success: ReviewsLoaded }
39
39
  })
40
40
  (render-ui main {
41
- title: "Loading reviews…"
42
- type: loading-state
41
+ type: stack
42
+ direction: vertical
43
+ gap: lg
44
+ children: [{ type: skeleton, variant: header }, { type: skeleton, variant: card }, { type: skeleton, variant: list, rows: 6 }]
43
45
  })
44
46
  ReviewsLoaded -> viewing
45
47
  (set @entity.reviewsSource (array/map ?data (fn row {
@@ -252,8 +254,10 @@ orbital RatingReviewOrbital {
252
254
  emit: { failure: ReviewsLoadFailed, success: ReviewsLoaded }
253
255
  })
254
256
  (render-ui main {
255
- title: "Refreshing reviews…"
256
- type: loading-state
257
+ type: stack
258
+ direction: vertical
259
+ gap: lg
260
+ children: [{ type: skeleton, variant: header }, { type: skeleton, variant: card }, { type: skeleton, variant: list, rows: 6 }]
257
261
  })
258
262
  ReviewSaveFailed -> error
259
263
  (set @entity.errorMessage ?error)
@@ -299,6 +303,7 @@ orbital RatingReviewOrbital {
299
303
  }, {
300
304
  action: RATE_DRAFT
301
305
  max: 5
306
+ label: "Your rating"
302
307
  type: star-rating
303
308
  value: @entity.draftRating
304
309
  }, {
@@ -1102,6 +1107,7 @@ orbital RatingReviewOrbital {
1102
1107
  }, {
1103
1108
  action: RATE_DRAFT
1104
1109
  max: 5
1110
+ label: "Your rating"
1105
1111
  type: star-rating
1106
1112
  value: @entity.draftRating
1107
1113
  }, {
@@ -1202,8 +1208,10 @@ orbital RatingReviewOrbital {
1202
1208
  emit: { failure: ReviewsLoadFailed, success: ReviewsLoaded }
1203
1209
  })
1204
1210
  (render-ui main {
1205
- title: "Refreshing reviews…"
1206
- type: loading-state
1211
+ type: stack
1212
+ direction: vertical
1213
+ gap: lg
1214
+ children: [{ type: skeleton, variant: header }, { type: skeleton, variant: card }, { type: skeleton, variant: list, rows: 6 }]
1207
1215
  })
1208
1216
  }
1209
1217
 
@@ -1213,8 +1221,10 @@ orbital RatingReviewOrbital {
1213
1221
  emit: { failure: ReviewsLoadFailed, success: ReviewsLoaded }
1214
1222
  })
1215
1223
  (render-ui main {
1216
- title: "Retrying…"
1217
- type: loading-state
1224
+ type: stack
1225
+ direction: vertical
1226
+ gap: lg
1227
+ children: [{ type: skeleton, variant: header }, { type: skeleton, variant: card }, { type: skeleton, variant: list, rows: 6 }]
1218
1228
  })
1219
1229
  }
1220
1230
 
@@ -1423,6 +1433,7 @@ orbital RatingReviewOrbital {
1423
1433
  }, {
1424
1434
  action: RATE_DRAFT
1425
1435
  max: @config.maxStars
1436
+ label: "Your rating"
1426
1437
  type: star-rating
1427
1438
  value: @entity.draftRating
1428
1439
  }, {
@@ -1453,6 +1464,7 @@ orbital RatingReviewOrbital {
1453
1464
  }, {
1454
1465
  action: RATE_DRAFT
1455
1466
  max: @config.maxStars
1467
+ label: "Your rating"
1456
1468
  type: star-rating
1457
1469
  value: @entity.draftRating
1458
1470
  }, {
@@ -1503,6 +1515,7 @@ orbital RatingReviewOrbital {
1503
1515
  }, {
1504
1516
  action: RATE_DRAFT
1505
1517
  max: @config.maxStars
1518
+ label: "Your rating"
1506
1519
  type: star-rating
1507
1520
  value: 0
1508
1521
  }, {
@@ -1569,6 +1582,7 @@ orbital RatingReviewOrbital {
1569
1582
  }, {
1570
1583
  action: RATE_DRAFT
1571
1584
  max: @config.maxStars
1585
+ label: "Your rating"
1572
1586
  type: star-rating
1573
1587
  value: 0
1574
1588
  }, {
@@ -1601,6 +1615,7 @@ orbital RatingReviewOrbital {
1601
1615
  }, {
1602
1616
  action: RATE_DRAFT
1603
1617
  max: @config.maxStars
1618
+ label: "Your rating"
1604
1619
  type: star-rating
1605
1620
  value: 0
1606
1621
  }, {
@@ -3,9 +3,13 @@ app std-record-detail "1.0.0"
3
3
  ;; @capabilities "record detail, single record view, entity detail panel, drill-down record, show one record, record profile, detail page, view details, document editor, wiki page, note taking, article body, rich text editing, write and edit content"
4
4
  orbital RecordItemOrbital {
5
5
  type RecordAction = { label : string!, event : event!, icon : string, variant : primary | secondary | ghost | danger, roles : [string], when : SExpr }
6
- type RecordFieldSpec = { key : string!, header : string, format : date | currency | number | boolean | percent }
6
+ type BadgeColor = "default" | "primary" | "secondary" | "success" | "warning" | "danger" | "error" | "info" | "neutral" | "destructive"
7
+ type RecordFieldSpec = { key : string!, header : string, format : date | currency | number | boolean | percent, variant : h3 | h4 | body | caption | badge | small | progress, colorMap : Map string BadgeColor, labels : Map string string }
7
8
  type MetaFieldSpec = { key : string!, label : string, kind : text | boolean | select | readonly, options : [string], icon : string, format : date | currency | number | boolean | percent }
8
9
  type RecordSection = { title : string!, fields : [string] }
10
+ type RecordStage = { value : string!, label : string! }
11
+ type RecordTab = { id : string!, label : string!, fields : [string], content : render-ui }
12
+ type LineItemColumn = { key : string!, header : string, align : left | center | right, format : badge | date | currency | number | percent | boolean }
9
13
 
10
14
  type RecordItemLoaded = Event { data : RecordItem, totalCount : number } "Fired when the single record finishes loading; payload.data holds the record. totalCount is accepted so a fetch emitter shared with collection atoms still validates."
11
15
 
@@ -45,7 +49,7 @@ orbital RecordItemOrbital {
45
49
  id: ?id
46
50
  include: @config.include
47
51
  })
48
- (render-ui main { rows: 4, type: skeleton })
52
+ (render-ui main @config.loadingContent)
49
53
  ;; Slug-routed open (/things/:slug): no id on the payload, so fetch by
50
54
  ;; the slug field instead. Filtered rather than by-id, so the success
51
55
  ;; payload is a collection — its own event keeps the two shapes honest.
@@ -57,7 +61,7 @@ orbital RecordItemOrbital {
57
61
  emit: { failure: RecordItemLoadFailed, success: RecordItemSlugLoaded }
58
62
  include: @config.include
59
63
  })
60
- (render-ui main { rows: 4, type: skeleton })
64
+ (render-ui main @config.loadingContent)
61
65
  ;; Fallback: an init-opened surface whose INIT carried neither key —
62
66
  ;; fetch by the (missing) id so the failure surfaces as the error
63
67
  ;; state's alert + Retry instead of a silent blank page. This is the
@@ -69,7 +73,7 @@ orbital RecordItemOrbital {
69
73
  id: ?id
70
74
  include: @config.include
71
75
  })
72
- (render-ui main { rows: 4, type: skeleton })
76
+ (render-ui main @config.loadingContent)
73
77
  ;; Event-opened overlay (openOn: event): stays blank until OPEN_VIEW,
74
78
  ;; but renders the blank EXPLICITLY — an embedded @trait.X reference to
75
79
  ;; a trait with no indexed content is flagged by the compiled client's
@@ -101,7 +105,7 @@ orbital RecordItemOrbital {
101
105
  id: ?id
102
106
  include: @config.include
103
107
  })
104
- (render-ui main { rows: 4, type: skeleton })
108
+ (render-ui main @config.loadingContent)
105
109
  }
106
110
 
107
111
  state loading {
@@ -115,7 +119,7 @@ orbital RecordItemOrbital {
115
119
  })
116
120
  ;; Skeleton, not a blank frame: the hand-authored detail traits this
117
121
  ;; atom replaces rendered nothing until the record arrived.
118
- (render-ui main { rows: 4, type: skeleton })
122
+ (render-ui main @config.loadingContent)
119
123
  INIT -> loading when (and ["=", (str/default ?id ""), ""] ["!=", (str/default ?slug ""), ""])
120
124
  (set @entity.slug ?slug)
121
125
  (set @entity.openDraft (str/default ?draft ""))
@@ -124,7 +128,7 @@ orbital RecordItemOrbital {
124
128
  emit: { failure: RecordItemLoadFailed, success: RecordItemSlugLoaded }
125
129
  include: @config.include
126
130
  })
127
- (render-ui main { rows: 4, type: skeleton })
131
+ (render-ui main @config.loadingContent)
128
132
  ;; A record minted blank by a document-first create arrives with
129
133
  ;; draft=1 and lands straight in the editor — a distinct target state,
130
134
  ;; not a flag on the render, so the machine stays honest about being
@@ -133,7 +137,7 @@ orbital RecordItemOrbital {
133
137
  ;; (object/merge … {}) is a type adapter only: type_compat lacks "declared object accepts a named row type" (ledgered)
134
138
  (set @entity.loadedRow (object/merge ?data {}))
135
139
  (set @entity.id (object/get ?data id))
136
- (set @entity.name (object/get ?data @config.titleField))
140
+ (set @entity.name (if [">", (array/len @config.titleFields), 0] (str/join (array/map @config.titleFields (fn f (str/default (object/get ?data @f) ""))) " ") (object/get ?data @config.titleField)))
137
141
  (set @entity.description (str/default (object/get ?data @config.subtitleField) ""))
138
142
  (set @entity.content (object/get ?data @config.contentField))
139
143
  (set @entity.coverUrl (str/default (object/get ?data @config.coverField) ""))
@@ -143,7 +147,7 @@ orbital RecordItemOrbital {
143
147
  ;; (object/merge … {}) is a type adapter only: type_compat lacks "declared object accepts a named row type" (ledgered)
144
148
  (set @entity.loadedRow (object/merge ?data {}))
145
149
  (set @entity.id (object/get ?data id))
146
- (set @entity.name (object/get ?data @config.titleField))
150
+ (set @entity.name (if [">", (array/len @config.titleFields), 0] (str/join (array/map @config.titleFields (fn f (str/default (object/get ?data @f) ""))) " ") (object/get ?data @config.titleField)))
147
151
  (set @entity.description (str/default (object/get ?data @config.subtitleField) ""))
148
152
  (set @entity.content (object/get ?data @config.contentField))
149
153
  (set @entity.coverUrl (str/default (object/get ?data @config.coverField) ""))
@@ -158,7 +162,7 @@ orbital RecordItemOrbital {
158
162
  RecordItemSlugLoaded -> editing when (and [">", (array/len ?data), 0] ["=", (str/default (object/get @entity openDraft) ""), "1"])
159
163
  (set @entity.loadedRow (array/first ?data))
160
164
  (set @entity.id (object/get (array/first ?data) id))
161
- (set @entity.name (object/get (array/first ?data) @config.titleField))
165
+ (set @entity.name (if [">", (array/len @config.titleFields), 0] (str/join (array/map @config.titleFields (fn f (str/default (object/get (array/first ?data) @f) ""))) " ") (object/get (array/first ?data) @config.titleField)))
162
166
  (set @entity.description (str/default (object/get (array/first ?data) @config.subtitleField) ""))
163
167
  (set @entity.content (object/get (array/first ?data) @config.contentField))
164
168
  (set @entity.coverUrl (str/default (object/get (array/first ?data) @config.coverField) ""))
@@ -167,7 +171,7 @@ orbital RecordItemOrbital {
167
171
  RecordItemSlugLoaded -> viewing when (and [">", (array/len ?data), 0] ["!=", (str/default (object/get @entity openDraft) ""), "1"])
168
172
  (set @entity.loadedRow (array/first ?data))
169
173
  (set @entity.id (object/get (array/first ?data) id))
170
- (set @entity.name (object/get (array/first ?data) @config.titleField))
174
+ (set @entity.name (if [">", (array/len @config.titleFields), 0] (str/join (array/map @config.titleFields (fn f (str/default (object/get (array/first ?data) @f) ""))) " ") (object/get (array/first ?data) @config.titleField)))
171
175
  (set @entity.description (str/default (object/get (array/first ?data) @config.subtitleField) ""))
172
176
  (set @entity.content (object/get (array/first ?data) @config.contentField))
173
177
  (set @entity.coverUrl (str/default (object/get (array/first ?data) @config.coverField) ""))
@@ -204,7 +208,7 @@ orbital RecordItemOrbital {
204
208
  id: ?id
205
209
  include: @config.include
206
210
  })
207
- (render-ui main { rows: 4, type: skeleton })
211
+ (render-ui main @config.loadingContent)
208
212
  INIT -> loading when (and ["=", (str/default ?id ""), ""] ["!=", (str/default ?slug ""), ""] ["!=", ?slug, @entity.slug])
209
213
  (set @entity.slug ?slug)
210
214
  (set @entity.openDraft (str/default ?draft ""))
@@ -213,7 +217,7 @@ orbital RecordItemOrbital {
213
217
  emit: { failure: RecordItemLoadFailed, success: RecordItemSlugLoaded }
214
218
  include: @config.include
215
219
  })
216
- (render-ui main { rows: 4, type: skeleton })
220
+ (render-ui main @config.loadingContent)
217
221
  CONTENT_CHANGE -> editing
218
222
  (set @entity.content ?value)
219
223
  (set @entity.loadedRow (object/set @entity.loadedRow @config.contentField ?value))
@@ -258,7 +262,7 @@ orbital RecordItemOrbital {
258
262
  ;; (object/merge … {}) is a type adapter only: type_compat lacks "declared object accepts a named row type" (ledgered)
259
263
  (set @entity.loadedRow (object/merge ?data {}))
260
264
  (set @entity.id (object/get ?data id))
261
- (set @entity.name (object/get ?data @config.titleField))
265
+ (set @entity.name (if [">", (array/len @config.titleFields), 0] (str/join (array/map @config.titleFields (fn f (str/default (object/get ?data @f) ""))) " ") (object/get ?data @config.titleField)))
262
266
  (set @entity.description (str/default (object/get ?data @config.subtitleField) ""))
263
267
  (set @entity.content (object/get ?data @config.contentField))
264
268
  (set @entity.coverUrl (str/default (object/get ?data @config.coverField) ""))
@@ -273,7 +277,7 @@ orbital RecordItemOrbital {
273
277
  RecordItemSlugLoaded -> viewing when [">", (array/len ?data), 0]
274
278
  (set @entity.loadedRow (array/first ?data))
275
279
  (set @entity.id (object/get (array/first ?data) id))
276
- (set @entity.name (object/get (array/first ?data) @config.titleField))
280
+ (set @entity.name (if [">", (array/len @config.titleFields), 0] (str/join (array/map @config.titleFields (fn f (str/default (object/get (array/first ?data) @f) ""))) " ") (object/get (array/first ?data) @config.titleField)))
277
281
  (set @entity.description (str/default (object/get (array/first ?data) @config.subtitleField) ""))
278
282
  (set @entity.content (object/get (array/first ?data) @config.contentField))
279
283
  (set @entity.coverUrl (str/default (object/get (array/first ?data) @config.coverField) ""))
@@ -310,7 +314,7 @@ orbital RecordItemOrbital {
310
314
  id: ?id
311
315
  include: @config.include
312
316
  })
313
- (render-ui main { rows: 4, type: skeleton })
317
+ (render-ui main @config.loadingContent)
314
318
  INIT -> loading when (and ["=", (str/default ?id ""), ""] ["!=", (str/default ?slug ""), ""])
315
319
  (set @entity.slug ?slug)
316
320
  (set @entity.openDraft (str/default ?draft ""))
@@ -319,7 +323,7 @@ orbital RecordItemOrbital {
319
323
  emit: { failure: RecordItemLoadFailed, success: RecordItemSlugLoaded }
320
324
  include: @config.include
321
325
  })
322
- (render-ui main { rows: 4, type: skeleton })
326
+ (render-ui main @config.loadingContent)
323
327
  ;; The hand-authored traits sent a failed load back to `loading` with no
324
328
  ;; effect, so the page stayed blank forever with no way out. RETRY is the
325
329
  ;; way out.
@@ -329,7 +333,7 @@ orbital RecordItemOrbital {
329
333
  id: @entity.id
330
334
  include: @config.include
331
335
  })
332
- (render-ui main { rows: 4, type: skeleton })
336
+ (render-ui main @config.loadingContent)
333
337
  }
334
338
 
335
339
  emits {
@@ -448,12 +452,15 @@ orbital RecordItemOrbital {
448
452
  fields : [RecordFieldSpec] = [{
449
453
  header: Name
450
454
  key: name
455
+ variant: h4
451
456
  }, {
452
457
  header: Description
453
458
  key: description
459
+ variant: body
454
460
  }, {
455
461
  header: Status
456
462
  key: status
463
+ variant: badge
457
464
  }, {
458
465
  format: date
459
466
  header: Created
@@ -463,6 +470,11 @@ orbital RecordItemOrbital {
463
470
  @description "Each entry maps one entity field to a labelled row in the panel. Unlike a list row, a detail panel SHOULD label every field — the value stands alone here with no column header or repeated row position to name it."
464
471
  @synonyms "detail fields, record fields, panel fields, shown fields"
465
472
  @tier "presentation"
473
+ closeEvent : event = ""
474
+ @label "Which action closes the record?"
475
+ @description "The `actions` entry whose event matches renders as the panel's close (×) button. Empty = no close button (a routed detail page navigates back instead)."
476
+ @synonyms "close event, dismiss event, close button"
477
+ @tier "presentation"
466
478
  sections : [RecordSection] = []
467
479
  @label "How should the fields be grouped?"
468
480
  @description "Optional titled groups over `fields`, e.g. [{title: Contact, fields: [email, phone]}]. Group into sections of 3-5 once a record carries more than about seven fields — a flat list past that is the cognitive-load problem Almadar_UX.md §1.4 (Miller) describes. Empty = one ungrouped list, the default."
@@ -506,6 +518,11 @@ orbital RecordItemOrbital {
506
518
  @description "Name of the field on the loaded record shown as the panel title (e.g. contactName, subject, title)."
507
519
  @synonyms "title field, heading field, name field, label field"
508
520
  @tier "presentation"
521
+ titleFields : [string] = []
522
+ @label "Which fields make up the title, in order?"
523
+ @description "For records whose name is split across fields (firstName + lastName): the listed fields' values joined with spaces become the title, and override titleField. Empty = titleField alone, the default."
524
+ @synonyms "full name, name parts, composite title, first and last name"
525
+ @tier "presentation"
509
526
  subtitleField : string = description
510
527
  @label "Which field is the subtitle?"
511
528
  @description "Name of the field shown under the title (e.g. company, category). Set to \"\" for no subtitle at all — the right choice for the document look, whose metadata lives in the properties strip, not a second line."
@@ -526,6 +543,63 @@ orbital RecordItemOrbital {
526
543
  @description "Visual treatment for the record surface. panel = an inline detail-panel in the page flow (bodyContent); slide-over = the same panel as a right-hand drawer over the list behind it (slideOverBodyContent); page = a full-width record page with roomier spacing (pageBodyContent); document = a wiki-page/note/article surface — big editable title over a rich-text body, no labelled field rows, click-to-edit with autosave (documentBodyContent / documentEditingContent). Selecting a look swaps which body tree renders after the record loads; any body may still be overridden directly at the call site."
527
544
  @synonyms "detail style, drawer, slide over, full page, document, wiki page, note, article"
528
545
  @tier "presentation"
546
+ recordLook : "panel" | "profile" | "showcase" | "workflow" | "map" | "ledger" | "conversation" | "workspace" = panel
547
+ @label "Record look"
548
+ @description "How the record itself is arranged inside the panel/slide-over/page frame, so not every app reads as an admin form. panel = labelled field grid (default); profile = a person or member: avatar + cover hero (avatarField, coverField); showcase = image-first product or listing with a gallery (mediaField); workflow = a lifecycle stepper over the record (stageField, stages); map = a place: location map hero (latitudeField, longitudeField); ledger = an invoice/order document: line items then totals (lineItemsField, lineItemColumns, totals); conversation = a ticket or thread: the messages beside the record facts (threadField); workspace = a hub record with tabs (tabs). Regions with no data simply do not render. A region fed by a separate trait (replies with their composer, editable order lines, activity history) is composed by overriding the body and passing detail-panel's threadContent / lineItemsContent / activityContent."
549
+ @synonyms "record style, profile page, product page, listing page, invoice view, ticket view, timeline view, tabbed record, location page"
550
+ @tier "presentation"
551
+ avatarField : string = ""
552
+ @label "Which field is the avatar?"
553
+ @description "Name of the image field shown as the profile look's avatar; the title supplies initials when it is empty."
554
+ @synonyms "photo field, avatar field, picture field"
555
+ @tier "presentation"
556
+ mediaField : string = ""
557
+ @label "Which field holds the images?"
558
+ @description "Name of the field the showcase look leads with: one image URL, a list of URLs, or a list of { src, caption }."
559
+ @synonyms "gallery field, photos field, images field, media field"
560
+ @tier "presentation"
561
+ stageField : string = ""
562
+ @label "Which field is the lifecycle stage?"
563
+ @description "Name of the field holding the record's current stage; the workflow look marks it on the stepper."
564
+ @synonyms "stage field, status field, phase field, step field"
565
+ @tier "presentation"
566
+ stages : [RecordStage] = []
567
+ @label "What is the lifecycle, in order?"
568
+ @description "The workflow look's stepper: one { value, label } per stage, value matching stageField's enum."
569
+ @synonyms "lifecycle, pipeline stages, steps, phases"
570
+ @tier "presentation"
571
+ latitudeField : string = ""
572
+ @label "Which field is the latitude?"
573
+ @description "Name of the latitude field the map look pins."
574
+ @tier "presentation"
575
+ longitudeField : string = ""
576
+ @label "Which field is the longitude?"
577
+ @description "Name of the longitude field the map look pins."
578
+ @tier "presentation"
579
+ lineItemsField : string = ""
580
+ @label "Which relation holds the line items?"
581
+ @description "Name of the hydrated relation (list it in include) whose rows the ledger look tables."
582
+ @synonyms "line items field, order lines, invoice lines, child rows"
583
+ @tier "presentation"
584
+ lineItemColumns : [LineItemColumn] = []
585
+ @label "Which line-item columns?"
586
+ @description "Columns of the ledger look's line-items table."
587
+ @tier "presentation"
588
+ totals : [RecordFieldSpec] = []
589
+ @label "Which fields are the totals?"
590
+ @description "Record fields shown under the line items in order (e.g. subtotal, tax, total); the last is emphasised."
591
+ @synonyms "totals, subtotal, grand total, amount due"
592
+ @tier "presentation"
593
+ threadField : string = ""
594
+ @label "Which relation holds the thread?"
595
+ @description "Name of the hydrated relation (list it in include) whose messages the conversation look shows."
596
+ @synonyms "messages field, replies field, comments field, thread field"
597
+ @tier "presentation"
598
+ tabs : [RecordTab] = []
599
+ @label "Which tabs follow the overview?"
600
+ @description "The workspace look's tabs after Overview: each lists field names, or composes a related trait as content (e.g. a company's deals list)."
601
+ @synonyms "tabs, record tabs, sub pages, related lists"
602
+ @tier "presentation"
529
603
  contentField : string = content
530
604
  @label "Which field holds the document body?"
531
605
  @description "Name of the field on the loaded record that carries the rich-text HTML body the document look renders and edits (e.g. content, body, articleText)."
@@ -533,7 +607,7 @@ orbital RecordItemOrbital {
533
607
  @tier "presentation"
534
608
  coverField : string = ""
535
609
  @label "Which field is the cover image?"
536
- @description "Name of the image-typed field on the loaded record painted as the document look's full-bleed hero banner (e.g. coverImage, heroImage). Empty = no banner, the default."
610
+ @description "Name of the image-typed field on the loaded record painted as the hero banner of the document look and of the profile record look (e.g. coverImage, heroImage). Empty = no banner, the default."
537
611
  @synonyms "cover field, hero image field, banner field"
538
612
  @tier "presentation"
539
613
  iconField : string = ""
@@ -562,17 +636,35 @@ orbital RecordItemOrbital {
562
636
  @label "Placeholder text"
563
637
  @description "Placeholder shown in the document body when it is empty."
564
638
  @tier "presentation"
639
+ loadingContent : render-ui = { type: skeleton, variant: detail }
640
+ @label "Loading placeholder"
641
+ @description "Shown while the record loads, shaped like what replaces it so the page does not jump: the detail skeleton for the panel/slide-over/page looks; a document-look consumer sets { type: skeleton, variant: text, rows: 8 }."
642
+ @tier "internal"
565
643
  bodyContent : render-ui = {
566
644
  children: [{
567
645
  actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
568
646
  entity: @entity.loadedRow
569
647
  fields: @config.fields
648
+ closeEvent: @config.closeEvent
570
649
  initialData: @entity.loadedRow
571
650
  maxInlineActions: @config.maxInlineActions
572
651
  sections: @config.sections
573
652
  showActions: @config.showActions
574
653
  subtitle: @entity.description
575
654
  title: @entity.name
655
+ look: @config.recordLook
656
+ avatarField: @config.avatarField
657
+ coverField: @config.coverField
658
+ mediaField: @config.mediaField
659
+ stageField: @config.stageField
660
+ stages: @config.stages
661
+ latitudeField: @config.latitudeField
662
+ longitudeField: @config.longitudeField
663
+ lineItems: (object/get @entity.loadedRow @config.lineItemsField)
664
+ lineItemColumns: @config.lineItemColumns
665
+ totals: @config.totals
666
+ thread: (object/get @entity.loadedRow @config.threadField)
667
+ tabs: @config.tabs
576
668
  type: detail-panel
577
669
  }]
578
670
  direction: vertical
@@ -587,6 +679,7 @@ orbital RecordItemOrbital {
587
679
  actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
588
680
  entity: @entity.loadedRow
589
681
  fields: @config.fields
682
+ closeEvent: @config.closeEvent
590
683
  initialData: @entity.loadedRow
591
684
  maxInlineActions: @config.maxInlineActions
592
685
  sections: @config.sections
@@ -594,6 +687,19 @@ orbital RecordItemOrbital {
594
687
  slideOver: true
595
688
  subtitle: @entity.description
596
689
  title: @entity.name
690
+ look: @config.recordLook
691
+ avatarField: @config.avatarField
692
+ coverField: @config.coverField
693
+ mediaField: @config.mediaField
694
+ stageField: @config.stageField
695
+ stages: @config.stages
696
+ latitudeField: @config.latitudeField
697
+ longitudeField: @config.longitudeField
698
+ lineItems: (object/get @entity.loadedRow @config.lineItemsField)
699
+ lineItemColumns: @config.lineItemColumns
700
+ totals: @config.totals
701
+ thread: (object/get @entity.loadedRow @config.threadField)
702
+ tabs: @config.tabs
597
703
  type: detail-panel
598
704
  }]
599
705
  direction: vertical
@@ -608,12 +714,26 @@ orbital RecordItemOrbital {
608
714
  actions: (array/filter @config.actions (fn action (or (= (array/len (object/get @action roles [])) 0) (array/includes (object/get @action roles []) @config.viewerRole))))
609
715
  entity: @entity.loadedRow
610
716
  fields: @config.fields
717
+ closeEvent: @config.closeEvent
611
718
  initialData: @entity.loadedRow
612
719
  maxInlineActions: @config.maxInlineActions
613
720
  sections: @config.sections
614
721
  showActions: @config.showActions
615
722
  subtitle: @entity.description
616
723
  title: @entity.name
724
+ look: @config.recordLook
725
+ avatarField: @config.avatarField
726
+ coverField: @config.coverField
727
+ mediaField: @config.mediaField
728
+ stageField: @config.stageField
729
+ stages: @config.stages
730
+ latitudeField: @config.latitudeField
731
+ longitudeField: @config.longitudeField
732
+ lineItems: (object/get @entity.loadedRow @config.lineItemsField)
733
+ lineItemColumns: @config.lineItemColumns
734
+ totals: @config.totals
735
+ thread: (object/get @entity.loadedRow @config.threadField)
736
+ tabs: @config.tabs
617
737
  type: detail-panel
618
738
  }]
619
739
  className: "w-full max-w-4xl"