@almadar/std 16.253.0 → 16.254.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 (457) hide show
  1. package/behaviors/lolo/agent/atoms/std-agent-pool.lolo +355 -0
  2. package/behaviors/lolo/agent/evals/eval-agent-builder.lolo +152 -0
  3. package/behaviors/lolo/agent/organisms/std-agent-builder.lolo +320 -26
  4. package/behaviors/lolo-behavior-contracts.json +1 -1
  5. package/behaviors/registry/agent/atoms/std-agent-context.orb +1 -1
  6. package/behaviors/registry/agent/atoms/std-agent-fix-loop.orb +1 -1
  7. package/behaviors/registry/agent/atoms/std-agent-memory.orb +1 -1
  8. package/behaviors/registry/agent/atoms/std-agent-planner.orb +1 -1
  9. package/behaviors/registry/agent/atoms/std-agent-pool.orb +1 -0
  10. package/behaviors/registry/agent/atoms/std-agent-proposal.orb +1 -1
  11. package/behaviors/registry/agent/atoms/std-agent-session.orb +1 -1
  12. package/behaviors/registry/agent/atoms/std-agent-suggestions.orb +1 -1
  13. package/behaviors/registry/agent/atoms/std-agent-tool-call.orb +1 -1
  14. package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +1 -1
  15. package/behaviors/registry/agent/atoms/std-agent-trace.orb +1 -1
  16. package/behaviors/registry/agent/evals/eval-agent-builder.orb +1 -0
  17. package/behaviors/registry/agent/organisms/std-agent-assistant.orb +1 -1
  18. package/behaviors/registry/agent/organisms/std-agent-builder.orb +1 -1
  19. package/behaviors/registry/infra/atoms/std-analytics.orb +1 -1
  20. package/behaviors/registry/infra/atoms/std-approval-gate.orb +1 -1
  21. package/behaviors/registry/infra/atoms/std-audit-capture.orb +1 -1
  22. package/behaviors/registry/infra/atoms/std-cache-aside.orb +1 -1
  23. package/behaviors/registry/infra/atoms/std-calendar-sync.orb +1 -1
  24. package/behaviors/registry/infra/atoms/std-cascade-on-delete.orb +1 -1
  25. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +1 -1
  26. package/behaviors/registry/infra/atoms/std-cross-reference.orb +1 -1
  27. package/behaviors/registry/infra/atoms/std-data-erasure.orb +1 -1
  28. package/behaviors/registry/infra/atoms/std-data-import.orb +1 -1
  29. package/behaviors/registry/infra/atoms/std-global-search.orb +1 -1
  30. package/behaviors/registry/infra/atoms/std-knowledge-loop.orb +1 -1
  31. package/behaviors/registry/infra/atoms/std-lifecycle.orb +1 -1
  32. package/behaviors/registry/infra/atoms/std-migration-job.orb +1 -1
  33. package/behaviors/registry/infra/atoms/std-mod-queue.orb +1 -1
  34. package/behaviors/registry/infra/atoms/std-notification-center.orb +1 -1
  35. package/behaviors/registry/infra/atoms/std-notification-preferences.orb +1 -1
  36. package/behaviors/registry/infra/atoms/std-notify-on-event.orb +1 -1
  37. package/behaviors/registry/infra/atoms/std-page-search.orb +1 -1
  38. package/behaviors/registry/infra/atoms/std-page-watch.orb +1 -1
  39. package/behaviors/registry/infra/atoms/std-permission-matrix.orb +1 -1
  40. package/behaviors/registry/infra/atoms/std-rate-limiter.orb +1 -1
  41. package/behaviors/registry/infra/atoms/std-reminder-scheduler.orb +1 -1
  42. package/behaviors/registry/infra/atoms/std-review-cycle.orb +1 -1
  43. package/behaviors/registry/infra/atoms/std-row-access-control.orb +1 -1
  44. package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +1 -1
  45. package/behaviors/registry/infra/organisms/std-status-lifecycle-control.orb +1 -1
  46. package/behaviors/registry/ml/atoms/std-data-collector.orb +1 -1
  47. package/behaviors/registry/ml/atoms/std-graph-builder.orb +1 -1
  48. package/behaviors/registry/ml/atoms/std-ml-classify.orb +1 -1
  49. package/behaviors/registry/ml/atoms/std-ml-infer.orb +1 -1
  50. package/behaviors/registry/ml/atoms/std-ml-label-capture.orb +1 -1
  51. package/behaviors/registry/ml/atoms/std-ml-lookup.orb +1 -1
  52. package/behaviors/registry/ml/atoms/std-ml-posterior.orb +1 -1
  53. package/behaviors/registry/ml/atoms/std-ml-similarity.orb +1 -1
  54. package/behaviors/registry/ml/atoms/std-tokenizer.orb +1 -1
  55. package/behaviors/registry/ml/atoms/std-weight-validator.orb +1 -1
  56. package/behaviors/registry/ml/organisms/std-escalating-decision.orb +1 -1
  57. package/behaviors/registry/ml/organisms/std-knowledge-tracing.orb +1 -1
  58. package/behaviors/registry/ui/avl/atoms/std-avl-cosmic-zoom.orb +1 -1
  59. package/behaviors/registry/ui/avl/atoms/ui-avl-glyph.orb +1 -1
  60. package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +1 -1
  61. package/behaviors/registry/ui/avl/atoms/ui-avl-transition-detail.orb +1 -1
  62. package/behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb +1 -1
  63. package/behaviors/registry/ui/avl/atoms/ui-behavior-view.orb +1 -1
  64. package/behaviors/registry/ui/avl/atoms/ui-module-card.orb +1 -1
  65. package/behaviors/registry/ui/avl/organisms/ui-flow-canvas.orb +1 -1
  66. package/behaviors/registry/ui/avl/organisms/ui-layers-panel.orb +1 -1
  67. package/behaviors/registry/ui/avl/organisms/ui-orb-inspector.orb +1 -1
  68. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +1 -1
  69. package/behaviors/registry/ui/core/atoms/std-app-search.orb +1 -1
  70. package/behaviors/registry/ui/core/atoms/std-behavior-catalog.orb +1 -1
  71. package/behaviors/registry/ui/core/atoms/std-behavior-tour.orb +1 -1
  72. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +1 -1
  73. package/behaviors/registry/ui/core/atoms/std-board.orb +1 -1
  74. package/behaviors/registry/ui/core/atoms/std-book-reader.orb +1 -1
  75. package/behaviors/registry/ui/core/atoms/std-browse.orb +1 -1
  76. package/behaviors/registry/ui/core/atoms/std-calendar.orb +1 -1
  77. package/behaviors/registry/ui/core/atoms/std-card-grid.orb +1 -1
  78. package/behaviors/registry/ui/core/atoms/std-confirmation.orb +1 -1
  79. package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +1 -1
  80. package/behaviors/registry/ui/core/atoms/std-date-range.orb +1 -1
  81. package/behaviors/registry/ui/core/atoms/std-detail-layout.orb +1 -1
  82. package/behaviors/registry/ui/core/atoms/std-doc-page.orb +1 -1
  83. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +1 -1
  84. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +1 -1
  85. package/behaviors/registry/ui/core/atoms/std-event-log.orb +1 -1
  86. package/behaviors/registry/ui/core/atoms/std-export.orb +1 -1
  87. package/behaviors/registry/ui/core/atoms/std-file-store.orb +1 -1
  88. package/behaviors/registry/ui/core/atoms/std-filter.orb +1 -1
  89. package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +1 -1
  90. package/behaviors/registry/ui/core/atoms/std-gallery.orb +1 -1
  91. package/behaviors/registry/ui/core/atoms/std-gantt-schedule.orb +1 -1
  92. package/behaviors/registry/ui/core/atoms/std-geosearch.orb +1 -1
  93. package/behaviors/registry/ui/core/atoms/std-graphs.orb +1 -1
  94. package/behaviors/registry/ui/core/atoms/std-hero.orb +1 -1
  95. package/behaviors/registry/ui/core/atoms/std-home.orb +1 -1
  96. package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +1 -1
  97. package/behaviors/registry/ui/core/atoms/std-import.orb +1 -1
  98. package/behaviors/registry/ui/core/atoms/std-language-picker.orb +1 -1
  99. package/behaviors/registry/ui/core/atoms/std-media-section.orb +1 -1
  100. package/behaviors/registry/ui/core/atoms/std-modal-editor.orb +1 -1
  101. package/behaviors/registry/ui/core/atoms/std-modal.orb +1 -1
  102. package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +1 -1
  103. package/behaviors/registry/ui/core/atoms/std-notification-panel.orb +1 -1
  104. package/behaviors/registry/ui/core/atoms/std-panel-launcher.orb +1 -1
  105. package/behaviors/registry/ui/core/atoms/std-pricing.orb +1 -1
  106. package/behaviors/registry/ui/core/atoms/std-proof.orb +1 -1
  107. package/behaviors/registry/ui/core/atoms/std-prose.orb +1 -1
  108. package/behaviors/registry/ui/core/atoms/std-rating-review.orb +1 -1
  109. package/behaviors/registry/ui/core/atoms/std-record-detail.orb +1 -1
  110. package/behaviors/registry/ui/core/atoms/std-recurrence.orb +1 -1
  111. package/behaviors/registry/ui/core/atoms/std-related.orb +1 -1
  112. package/behaviors/registry/ui/core/atoms/std-role-gate.orb +1 -1
  113. package/behaviors/registry/ui/core/atoms/std-saved-search.orb +1 -1
  114. package/behaviors/registry/ui/core/atoms/std-scatter.orb +1 -1
  115. package/behaviors/registry/ui/core/atoms/std-scoped-list.orb +1 -1
  116. package/behaviors/registry/ui/core/atoms/std-selection.orb +1 -1
  117. package/behaviors/registry/ui/core/atoms/std-site-footer.orb +1 -1
  118. package/behaviors/registry/ui/core/atoms/std-site-header.orb +1 -1
  119. package/behaviors/registry/ui/core/atoms/std-slide-deck.orb +1 -1
  120. package/behaviors/registry/ui/core/atoms/std-stat-band.orb +1 -1
  121. package/behaviors/registry/ui/core/atoms/std-stats.orb +1 -1
  122. package/behaviors/registry/ui/core/atoms/std-step-flow.orb +1 -1
  123. package/behaviors/registry/ui/core/atoms/std-steps.orb +1 -1
  124. package/behaviors/registry/ui/core/atoms/std-tabs.orb +1 -1
  125. package/behaviors/registry/ui/core/atoms/std-tag-strip.orb +1 -1
  126. package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +1 -1
  127. package/behaviors/registry/ui/core/atoms/std-thread.orb +1 -1
  128. package/behaviors/registry/ui/core/atoms/std-tree.orb +1 -1
  129. package/behaviors/registry/ui/core/atoms/std-version-history.orb +1 -1
  130. package/behaviors/registry/ui/core/atoms/std-wizard.orb +1 -1
  131. package/behaviors/registry/ui/core/atoms/std-workspace-layout.orb +1 -1
  132. package/behaviors/registry/ui/core/atoms/ui-animated-graphic.orb +1 -1
  133. package/behaviors/registry/ui/core/atoms/ui-animated-reveal.orb +1 -1
  134. package/behaviors/registry/ui/core/atoms/ui-aside.orb +1 -1
  135. package/behaviors/registry/ui/core/atoms/ui-atlas-image.orb +1 -1
  136. package/behaviors/registry/ui/core/atoms/ui-atlas-panel.orb +1 -1
  137. package/behaviors/registry/ui/core/atoms/ui-avatar.orb +1 -1
  138. package/behaviors/registry/ui/core/atoms/ui-badge.orb +1 -1
  139. package/behaviors/registry/ui/core/atoms/ui-box.orb +1 -1
  140. package/behaviors/registry/ui/core/atoms/ui-button.orb +1 -1
  141. package/behaviors/registry/ui/core/atoms/ui-card.orb +1 -1
  142. package/behaviors/registry/ui/core/atoms/ui-center.orb +1 -1
  143. package/behaviors/registry/ui/core/atoms/ui-checkbox.orb +1 -1
  144. package/behaviors/registry/ui/core/atoms/ui-conditional-wrapper.orb +1 -1
  145. package/behaviors/registry/ui/core/atoms/ui-confetti-effect.orb +1 -1
  146. package/behaviors/registry/ui/core/atoms/ui-day-cell.orb +1 -1
  147. package/behaviors/registry/ui/core/atoms/ui-dialog.orb +1 -1
  148. package/behaviors/registry/ui/core/atoms/ui-divider.orb +1 -1
  149. package/behaviors/registry/ui/core/atoms/ui-filter-pill.orb +1 -1
  150. package/behaviors/registry/ui/core/atoms/ui-flip-container.orb +1 -1
  151. package/behaviors/registry/ui/core/atoms/ui-game-icon.orb +1 -1
  152. package/behaviors/registry/ui/core/atoms/ui-hstack.orb +1 -1
  153. package/behaviors/registry/ui/core/atoms/ui-icon.orb +1 -1
  154. package/behaviors/registry/ui/core/atoms/ui-image.orb +1 -1
  155. package/behaviors/registry/ui/core/atoms/ui-infinite-scroll-sentinel.orb +1 -1
  156. package/behaviors/registry/ui/core/atoms/ui-input.orb +1 -1
  157. package/behaviors/registry/ui/core/atoms/ui-label.orb +1 -1
  158. package/behaviors/registry/ui/core/atoms/ui-law-reference-tooltip.orb +1 -1
  159. package/behaviors/registry/ui/core/atoms/ui-overlay.orb +1 -1
  160. package/behaviors/registry/ui/core/atoms/ui-pattern-tile.orb +1 -1
  161. package/behaviors/registry/ui/core/atoms/ui-presence.orb +1 -1
  162. package/behaviors/registry/ui/core/atoms/ui-progress-bar.orb +1 -1
  163. package/behaviors/registry/ui/core/atoms/ui-radio.orb +1 -1
  164. package/behaviors/registry/ui/core/atoms/ui-range-slider.orb +1 -1
  165. package/behaviors/registry/ui/core/atoms/ui-section-header.orb +1 -1
  166. package/behaviors/registry/ui/core/atoms/ui-select.orb +1 -1
  167. package/behaviors/registry/ui/core/atoms/ui-spacer.orb +1 -1
  168. package/behaviors/registry/ui/core/atoms/ui-sparkline.orb +1 -1
  169. package/behaviors/registry/ui/core/atoms/ui-spinner.orb +1 -1
  170. package/behaviors/registry/ui/core/atoms/ui-stack.orb +1 -1
  171. package/behaviors/registry/ui/core/atoms/ui-status-dot.orb +1 -1
  172. package/behaviors/registry/ui/core/atoms/ui-svg-branch.orb +1 -1
  173. package/behaviors/registry/ui/core/atoms/ui-svg-connection.orb +1 -1
  174. package/behaviors/registry/ui/core/atoms/ui-svg-flow.orb +1 -1
  175. package/behaviors/registry/ui/core/atoms/ui-svg-grid.orb +1 -1
  176. package/behaviors/registry/ui/core/atoms/ui-svg-lobe.orb +1 -1
  177. package/behaviors/registry/ui/core/atoms/ui-svg-mesh.orb +1 -1
  178. package/behaviors/registry/ui/core/atoms/ui-svg-morph.orb +1 -1
  179. package/behaviors/registry/ui/core/atoms/ui-svg-node.orb +1 -1
  180. package/behaviors/registry/ui/core/atoms/ui-svg-pulse.orb +1 -1
  181. package/behaviors/registry/ui/core/atoms/ui-svg-ring.orb +1 -1
  182. package/behaviors/registry/ui/core/atoms/ui-svg-shield.orb +1 -1
  183. package/behaviors/registry/ui/core/atoms/ui-svg-stack.orb +1 -1
  184. package/behaviors/registry/ui/core/atoms/ui-switch.orb +1 -1
  185. package/behaviors/registry/ui/core/atoms/ui-text-highlight.orb +1 -1
  186. package/behaviors/registry/ui/core/atoms/ui-textarea.orb +1 -1
  187. package/behaviors/registry/ui/core/atoms/ui-theme-toggle.orb +1 -1
  188. package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +1 -1
  189. package/behaviors/registry/ui/core/atoms/ui-trend-indicator.orb +1 -1
  190. package/behaviors/registry/ui/core/atoms/ui-typewriter-text.orb +1 -1
  191. package/behaviors/registry/ui/core/atoms/ui-typography.orb +1 -1
  192. package/behaviors/registry/ui/core/atoms/ui-video-embed.orb +1 -1
  193. package/behaviors/registry/ui/core/atoms/ui-vstack.orb +1 -1
  194. package/behaviors/registry/ui/core/molecules/std-stat-rows.orb +1 -1
  195. package/behaviors/registry/ui/core/molecules/ui-accordion.orb +1 -1
  196. package/behaviors/registry/ui/core/molecules/ui-activation-block.orb +1 -1
  197. package/behaviors/registry/ui/core/molecules/ui-activity-rail.orb +1 -1
  198. package/behaviors/registry/ui/core/molecules/ui-agent-activity-feed.orb +1 -1
  199. package/behaviors/registry/ui/core/molecules/ui-agent-activity-row.orb +1 -1
  200. package/behaviors/registry/ui/core/molecules/ui-agent-chat-feed.orb +1 -1
  201. package/behaviors/registry/ui/core/molecules/ui-alert.orb +1 -1
  202. package/behaviors/registry/ui/core/molecules/ui-animated-counter.orb +1 -1
  203. package/behaviors/registry/ui/core/molecules/ui-bloom-quiz-block.orb +1 -1
  204. package/behaviors/registry/ui/core/molecules/ui-branching-logic-builder.orb +1 -1
  205. package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +1 -1
  206. package/behaviors/registry/ui/core/molecules/ui-calendar-grid.orb +1 -1
  207. package/behaviors/registry/ui/core/molecules/ui-carousel.orb +1 -1
  208. package/behaviors/registry/ui/core/molecules/ui-change-list.orb +1 -1
  209. package/behaviors/registry/ui/core/molecules/ui-chart-legend.orb +1 -1
  210. package/behaviors/registry/ui/core/molecules/ui-chart.orb +1 -1
  211. package/behaviors/registry/ui/core/molecules/ui-code-block.orb +1 -1
  212. package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +1 -1
  213. package/behaviors/registry/ui/core/molecules/ui-commit-row.orb +1 -1
  214. package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +1 -1
  215. package/behaviors/registry/ui/core/molecules/ui-connection-block.orb +1 -1
  216. package/behaviors/registry/ui/core/molecules/ui-container.orb +1 -1
  217. package/behaviors/registry/ui/core/molecules/ui-content-renderer.orb +1 -1
  218. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +1 -1
  219. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +1 -1
  220. package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +1 -1
  221. package/behaviors/registry/ui/core/molecules/ui-date-range-selector.orb +1 -1
  222. package/behaviors/registry/ui/core/molecules/ui-doc-breadcrumb.orb +1 -1
  223. package/behaviors/registry/ui/core/molecules/ui-doc-pagination.orb +1 -1
  224. package/behaviors/registry/ui/core/molecules/ui-doc-search.orb +1 -1
  225. package/behaviors/registry/ui/core/molecules/ui-doc-sidebar.orb +1 -1
  226. package/behaviors/registry/ui/core/molecules/ui-doc-toc.orb +1 -1
  227. package/behaviors/registry/ui/core/molecules/ui-document-details.orb +1 -1
  228. package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +1 -1
  229. package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +1 -1
  230. package/behaviors/registry/ui/core/molecules/ui-drawer.orb +1 -1
  231. package/behaviors/registry/ui/core/molecules/ui-edge-decoration.orb +1 -1
  232. package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +1 -1
  233. package/behaviors/registry/ui/core/molecules/ui-empty-state.orb +1 -1
  234. package/behaviors/registry/ui/core/molecules/ui-error-boundary.orb +1 -1
  235. package/behaviors/registry/ui/core/molecules/ui-error-state.orb +1 -1
  236. package/behaviors/registry/ui/core/molecules/ui-feature-card.orb +1 -1
  237. package/behaviors/registry/ui/core/molecules/ui-feature-grid.orb +1 -1
  238. package/behaviors/registry/ui/core/molecules/ui-file-tree.orb +1 -1
  239. package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +1 -1
  240. package/behaviors/registry/ui/core/molecules/ui-flex.orb +1 -1
  241. package/behaviors/registry/ui/core/molecules/ui-flip-card.orb +1 -1
  242. package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +1 -1
  243. package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +1 -1
  244. package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +1 -1
  245. package/behaviors/registry/ui/core/molecules/ui-form-field.orb +1 -1
  246. package/behaviors/registry/ui/core/molecules/ui-form-layout.orb +1 -1
  247. package/behaviors/registry/ui/core/molecules/ui-form-section-header.orb +1 -1
  248. package/behaviors/registry/ui/core/molecules/ui-fx-overlay.orb +1 -1
  249. package/behaviors/registry/ui/core/molecules/ui-gantt.orb +1 -1
  250. package/behaviors/registry/ui/core/molecules/ui-geometric-pattern.orb +1 -1
  251. package/behaviors/registry/ui/core/molecules/ui-gradient-divider.orb +1 -1
  252. package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +1 -1
  253. package/behaviors/registry/ui/core/molecules/ui-graph-view.orb +1 -1
  254. package/behaviors/registry/ui/core/molecules/ui-grid.orb +1 -1
  255. package/behaviors/registry/ui/core/molecules/ui-header.orb +1 -1
  256. package/behaviors/registry/ui/core/molecules/ui-icon-button.orb +1 -1
  257. package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +1 -1
  258. package/behaviors/registry/ui/core/molecules/ui-import-progress.orb +1 -1
  259. package/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +1 -1
  260. package/behaviors/registry/ui/core/molecules/ui-input-group.orb +1 -1
  261. package/behaviors/registry/ui/core/molecules/ui-jazari-state-machine.orb +1 -1
  262. package/behaviors/registry/ui/core/molecules/ui-lightbox.orb +1 -1
  263. package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +1 -1
  264. package/behaviors/registry/ui/core/molecules/ui-line-chart.orb +1 -1
  265. package/behaviors/registry/ui/core/molecules/ui-loading-state.orb +1 -1
  266. package/behaviors/registry/ui/core/molecules/ui-map-view.orb +1 -1
  267. package/behaviors/registry/ui/core/molecules/ui-markdown-content.orb +1 -1
  268. package/behaviors/registry/ui/core/molecules/ui-matrix-question.orb +1 -1
  269. package/behaviors/registry/ui/core/molecules/ui-menu.orb +1 -1
  270. package/behaviors/registry/ui/core/molecules/ui-meter.orb +1 -1
  271. package/behaviors/registry/ui/core/molecules/ui-modal.orb +1 -1
  272. package/behaviors/registry/ui/core/molecules/ui-navigation.orb +1 -1
  273. package/behaviors/registry/ui/core/molecules/ui-notification.orb +1 -1
  274. package/behaviors/registry/ui/core/molecules/ui-number-stepper.orb +1 -1
  275. package/behaviors/registry/ui/core/molecules/ui-option-constraint-group.orb +1 -1
  276. package/behaviors/registry/ui/core/molecules/ui-orbital-visualization.orb +1 -1
  277. package/behaviors/registry/ui/core/molecules/ui-page-header.orb +1 -1
  278. package/behaviors/registry/ui/core/molecules/ui-page-transition.orb +1 -1
  279. package/behaviors/registry/ui/core/molecules/ui-pagination.orb +1 -1
  280. package/behaviors/registry/ui/core/molecules/ui-popover.orb +1 -1
  281. package/behaviors/registry/ui/core/molecules/ui-positioned-canvas.orb +1 -1
  282. package/behaviors/registry/ui/core/molecules/ui-progress-dots.orb +1 -1
  283. package/behaviors/registry/ui/core/molecules/ui-pull-to-refresh.orb +1 -1
  284. package/behaviors/registry/ui/core/molecules/ui-qr-scanner.orb +1 -1
  285. package/behaviors/registry/ui/core/molecules/ui-quiz-block.orb +1 -1
  286. package/behaviors/registry/ui/core/molecules/ui-reflection-block.orb +1 -1
  287. package/behaviors/registry/ui/core/molecules/ui-relation-select.orb +1 -1
  288. package/behaviors/registry/ui/core/molecules/ui-repeatable-form-section.orb +1 -1
  289. package/behaviors/registry/ui/core/molecules/ui-reply-tree.orb +1 -1
  290. package/behaviors/registry/ui/core/molecules/ui-rich-text-editor.orb +1 -1
  291. package/behaviors/registry/ui/core/molecules/ui-scaled-diagram.orb +1 -1
  292. package/behaviors/registry/ui/core/molecules/ui-search-input.orb +1 -1
  293. package/behaviors/registry/ui/core/molecules/ui-section.orb +1 -1
  294. package/behaviors/registry/ui/core/molecules/ui-side-panel.orb +1 -1
  295. package/behaviors/registry/ui/core/molecules/ui-sidebar.orb +1 -1
  296. package/behaviors/registry/ui/core/molecules/ui-signature-pad.orb +1 -1
  297. package/behaviors/registry/ui/core/molecules/ui-simple-grid.orb +1 -1
  298. package/behaviors/registry/ui/core/molecules/ui-skeleton.orb +1 -1
  299. package/behaviors/registry/ui/core/molecules/ui-social-proof.orb +1 -1
  300. package/behaviors/registry/ui/core/molecules/ui-sortable-list.orb +1 -1
  301. package/behaviors/registry/ui/core/molecules/ui-split.orb +1 -1
  302. package/behaviors/registry/ui/core/molecules/ui-star-rating.orb +1 -1
  303. package/behaviors/registry/ui/core/molecules/ui-stat-display.orb +1 -1
  304. package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +1 -1
  305. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +1 -1
  306. package/behaviors/registry/ui/core/molecules/ui-tabs.orb +1 -1
  307. package/behaviors/registry/ui/core/molecules/ui-tag-input.orb +1 -1
  308. package/behaviors/registry/ui/core/molecules/ui-tooltip.orb +1 -1
  309. package/behaviors/registry/ui/core/molecules/ui-top-nav-item.orb +1 -1
  310. package/behaviors/registry/ui/core/molecules/ui-upload-drop-zone.orb +1 -1
  311. package/behaviors/registry/ui/core/molecules/ui-version-diff.orb +1 -1
  312. package/behaviors/registry/ui/core/molecules/ui-violation-alert.orb +1 -1
  313. package/behaviors/registry/ui/core/molecules/ui-vote-stack.orb +1 -1
  314. package/behaviors/registry/ui/core/molecules/ui-wizard-container.orb +1 -1
  315. package/behaviors/registry/ui/core/molecules/ui-wizard-navigation.orb +1 -1
  316. package/behaviors/registry/ui/core/molecules/ui-wizard-progress.orb +1 -1
  317. package/behaviors/registry/ui/core/organisms/ui-chat-bar.orb +1 -1
  318. package/behaviors/registry/ui/core/organisms/ui-code-runner-panel.orb +1 -1
  319. package/behaviors/registry/ui/core/organisms/ui-dashboard-grid.orb +1 -1
  320. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +1 -1
  321. package/behaviors/registry/ui/core/organisms/ui-dock-layout.orb +1 -1
  322. package/behaviors/registry/ui/core/organisms/ui-drawer-slot.orb +1 -1
  323. package/behaviors/registry/ui/core/organisms/ui-form-section.orb +1 -1
  324. package/behaviors/registry/ui/core/organisms/ui-form.orb +1 -1
  325. package/behaviors/registry/ui/core/organisms/ui-master-detail-layout.orb +1 -1
  326. package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +1 -1
  327. package/behaviors/registry/ui/core/organisms/ui-modal-slot.orb +1 -1
  328. package/behaviors/registry/ui/core/organisms/ui-runtime-debugger.orb +1 -1
  329. package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +1 -1
  330. package/behaviors/registry/ui/core/organisms/ui-split-pane.orb +1 -1
  331. package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +1 -1
  332. package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +1 -1
  333. package/behaviors/registry/ui/core/organisms/ui-subagent-trace-panel.orb +1 -1
  334. package/behaviors/registry/ui/core/organisms/ui-tabbed-container.orb +1 -1
  335. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +1 -1
  336. package/behaviors/registry/ui/core/organisms/ui-toast-slot.orb +1 -1
  337. package/behaviors/registry/ui/core/templates/ui-auth-layout.orb +1 -1
  338. package/behaviors/registry/ui/core/templates/ui-counter-template.orb +1 -1
  339. package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +1 -1
  340. package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +1 -1
  341. package/behaviors/registry/ui/game/atoms/std-arcade-play.orb +1 -1
  342. package/behaviors/registry/ui/game/atoms/std-area-fill.orb +1 -1
  343. package/behaviors/registry/ui/game/atoms/std-audio-cue.orb +1 -1
  344. package/behaviors/registry/ui/game/atoms/std-camera-rig.orb +1 -1
  345. package/behaviors/registry/ui/game/atoms/std-chase-ai.orb +1 -1
  346. package/behaviors/registry/ui/game/atoms/std-choice-gate.orb +1 -1
  347. package/behaviors/registry/ui/game/atoms/std-coef-pad.orb +1 -1
  348. package/behaviors/registry/ui/game/atoms/std-curve-fog.orb +1 -1
  349. package/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +1 -1
  350. package/behaviors/registry/ui/game/atoms/std-fx-narrative.orb +1 -1
  351. package/behaviors/registry/ui/game/atoms/std-fx-particles.orb +1 -1
  352. package/behaviors/registry/ui/game/atoms/std-fx-trail.orb +1 -1
  353. package/behaviors/registry/ui/game/atoms/std-gate-lock.orb +1 -1
  354. package/behaviors/registry/ui/game/atoms/std-gather.orb +1 -1
  355. package/behaviors/registry/ui/game/atoms/std-gold.orb +1 -1
  356. package/behaviors/registry/ui/game/atoms/std-grid-tactics.orb +1 -1
  357. package/behaviors/registry/ui/game/atoms/std-hero-nav.orb +1 -1
  358. package/behaviors/registry/ui/game/atoms/std-lives.orb +1 -1
  359. package/behaviors/registry/ui/game/atoms/std-loop-lock.orb +1 -1
  360. package/behaviors/registry/ui/game/atoms/std-market-flow.orb +1 -1
  361. package/behaviors/registry/ui/game/atoms/std-motion-body.orb +1 -1
  362. package/behaviors/registry/ui/game/atoms/std-objective-reach.orb +1 -1
  363. package/behaviors/registry/ui/game/atoms/std-pad-lock.orb +1 -1
  364. package/behaviors/registry/ui/game/atoms/std-patience.orb +1 -1
  365. package/behaviors/registry/ui/game/atoms/std-patrol-hazard.orb +1 -1
  366. package/behaviors/registry/ui/game/atoms/std-pickup.orb +1 -1
  367. package/behaviors/registry/ui/game/atoms/std-platformer-body.orb +1 -1
  368. package/behaviors/registry/ui/game/atoms/std-production.orb +1 -1
  369. package/behaviors/registry/ui/game/atoms/std-score.orb +1 -1
  370. package/behaviors/registry/ui/game/atoms/std-tutorial-autodemo.orb +1 -1
  371. package/behaviors/registry/ui/game/atoms/std-tutorial-overlay.orb +1 -1
  372. package/behaviors/registry/ui/game/atoms/std-velocity-gate.orb +1 -1
  373. package/behaviors/registry/ui/game/atoms/std-xp.orb +1 -1
  374. package/behaviors/registry/ui/game/atoms/std-zone-card.orb +1 -1
  375. package/behaviors/registry/ui/game/atoms/ui-action-palette.orb +1 -1
  376. package/behaviors/registry/ui/game/atoms/ui-action-tile.orb +1 -1
  377. package/behaviors/registry/ui/game/atoms/ui-canvas-2d.orb +1 -1
  378. package/behaviors/registry/ui/game/atoms/ui-canvas.orb +1 -1
  379. package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +1 -1
  380. package/behaviors/registry/ui/game/atoms/ui-control-button.orb +1 -1
  381. package/behaviors/registry/ui/game/atoms/ui-control-grid.orb +1 -1
  382. package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +1 -1
  383. package/behaviors/registry/ui/game/atoms/ui-draw-fx-layer.orb +1 -1
  384. package/behaviors/registry/ui/game/atoms/ui-draw-group.orb +1 -1
  385. package/behaviors/registry/ui/game/atoms/ui-draw-mesh.orb +1 -1
  386. package/behaviors/registry/ui/game/atoms/ui-draw-shape-layer.orb +1 -1
  387. package/behaviors/registry/ui/game/atoms/ui-draw-shape.orb +1 -1
  388. package/behaviors/registry/ui/game/atoms/ui-draw-skinned-mesh.orb +1 -1
  389. package/behaviors/registry/ui/game/atoms/ui-draw-sprite-layer.orb +1 -1
  390. package/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +1 -1
  391. package/behaviors/registry/ui/game/atoms/ui-draw-text-layer.orb +1 -1
  392. package/behaviors/registry/ui/game/atoms/ui-draw-text.orb +1 -1
  393. package/behaviors/registry/ui/game/atoms/ui-game-audio-cue.orb +1 -1
  394. package/behaviors/registry/ui/game/atoms/ui-game-audio-toggle.orb +1 -1
  395. package/behaviors/registry/ui/game/atoms/ui-game-hud.orb +1 -1
  396. package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +1 -1
  397. package/behaviors/registry/ui/game/atoms/ui-health-bar.orb +1 -1
  398. package/behaviors/registry/ui/game/atoms/ui-score-display.orb +1 -1
  399. package/behaviors/registry/ui/game/atoms/ui-sequence-bar.orb +1 -1
  400. package/behaviors/registry/ui/game/atoms/ui-stat-badge.orb +1 -1
  401. package/behaviors/registry/ui/game/atoms/ui-state-graph.orb +1 -1
  402. package/behaviors/registry/ui/game/atoms/ui-state-json-view.orb +1 -1
  403. package/behaviors/registry/ui/game/atoms/ui-timer-display.orb +1 -1
  404. package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +1 -1
  405. package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +1 -1
  406. package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +1 -1
  407. package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +1 -1
  408. package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +1 -1
  409. package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +1 -1
  410. package/behaviors/registry/ui/game/organisms/std-platformer-board-2d.orb +1 -1
  411. package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +1 -1
  412. package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +1 -1
  413. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +1 -1
  414. package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +1 -1
  415. package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +1 -1
  416. package/behaviors/registry/ui/game/templates/ui-game-shell.orb +1 -1
  417. package/behaviors/registry/ui/learning/atoms/std-learn-arrangement.orb +1 -1
  418. package/behaviors/registry/ui/learning/atoms/std-learn-classify.orb +1 -1
  419. package/behaviors/registry/ui/learning/atoms/std-learn-compare.orb +1 -1
  420. package/behaviors/registry/ui/learning/atoms/std-learn-coupled-sim.orb +1 -1
  421. package/behaviors/registry/ui/learning/atoms/std-learn-derivation.orb +1 -1
  422. package/behaviors/registry/ui/learning/atoms/std-learn-diagram.orb +1 -1
  423. package/behaviors/registry/ui/learning/atoms/std-learn-doser.orb +1 -1
  424. package/behaviors/registry/ui/learning/atoms/std-learn-estimate.orb +1 -1
  425. package/behaviors/registry/ui/learning/atoms/std-learn-fx-cues.orb +1 -1
  426. package/behaviors/registry/ui/learning/atoms/std-learn-generate.orb +1 -1
  427. package/behaviors/registry/ui/learning/atoms/std-learn-goal-seek.orb +1 -1
  428. package/behaviors/registry/ui/learning/atoms/std-learn-grid-sim.orb +1 -1
  429. package/behaviors/registry/ui/learning/atoms/std-learn-hotspot.orb +1 -1
  430. package/behaviors/registry/ui/learning/atoms/std-learn-live-sim.orb +1 -1
  431. package/behaviors/registry/ui/learning/atoms/std-learn-measure.orb +1 -1
  432. package/behaviors/registry/ui/learning/atoms/std-learn-param-explorer.orb +1 -1
  433. package/behaviors/registry/ui/learning/atoms/std-learn-perturb.orb +1 -1
  434. package/behaviors/registry/ui/learning/atoms/std-learn-predict.orb +1 -1
  435. package/behaviors/registry/ui/learning/atoms/std-learn-sample-accumulator.orb +1 -1
  436. package/behaviors/registry/ui/learning/atoms/std-learn-sandbox.orb +1 -1
  437. package/behaviors/registry/ui/learning/atoms/std-learn-scatter-fit.orb +1 -1
  438. package/behaviors/registry/ui/learning/atoms/std-learn-scenario.orb +1 -1
  439. package/behaviors/registry/ui/learning/atoms/std-learn-sim-3d.orb +1 -1
  440. package/behaviors/registry/ui/learning/atoms/std-learn-slope-probe.orb +1 -1
  441. package/behaviors/registry/ui/learning/atoms/std-learn-speed-drill.orb +1 -1
  442. package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +1 -1
  443. package/behaviors/registry/ui/learning/atoms/std-learn-tour-3d.orb +1 -1
  444. package/behaviors/registry/ui/learning/atoms/std-learn-trace-player.orb +1 -1
  445. package/behaviors/registry/ui/learning/atoms/std-learn-transport.orb +1 -1
  446. package/behaviors/registry/ui/learning/atoms/std-learn-tree.orb +1 -1
  447. package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +1 -1
  448. package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +1 -1
  449. package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +1 -1
  450. package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +1 -1
  451. package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +1 -1
  452. package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +1 -1
  453. package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +1 -1
  454. package/dist/behaviors-embeddings.hash.json +2 -2
  455. package/dist/behaviors-embeddings.json +1 -1
  456. package/dist/knob-embeddings.hash.json +2 -2
  457. package/package.json +2 -2
@@ -1 +1 @@
1
- {"name":"std-gantt-schedule","version":"1.0.0","description":"std-gantt-schedule — GENERIC view-only Gantt/timeline atom: fetches a task collection on INIT and renders it as bars on a day-scale axis via the gantt pattern, with group headers, dependency arrows, and a today marker. Fully rebindable: a host overrides the linked entity and points the field-mapping configs (labelField/startField/endField/durationField/statusField/groupField) at its own columns; clicking a bar emits the config-named onBarClick event with the row id. No drag-edit, no zoom — schedule viewing only.","orbitals":[{"name":"GanttScheduleOrbital","id":"orb_9EB3TKCNDPAPV2YPQ04PP61KH5","entity":{"name":"Task","id":"ent_4CSH2V8J1590JR1PVET0FGPDMN","persistence":"runtime","fields":[{"name":"id","type":"string","required":true},{"name":"title","type":"string","default":"","description":"task label shown on the bar","synonyms":"name, label, summary, subject"},{"name":"start","type":"datetime","description":"task start timestamp the bar is placed from","synonyms":"starts, begins, start date, from"},{"name":"end","type":"datetime","description":"task end timestamp the bar is placed to; when absent, duration days are used","synonyms":"finish, due, end date, until"},{"name":"status","type":"string","default":"pending","values":["pending","active","complete","blocked"],"description":"task lifecycle status, drives bar colour","synonyms":"state, stage, phase"},{"name":"group","type":"string","default":"","description":"group/section the task renders under a header row for","synonyms":"team, swimlane, section, project"}]},"traits":[{"name":"TaskGanttSchedule","id":"trt_91HN82Q0S9GCMQBENJCQBFD7C0","entityRebindable":true,"entityContract":{"requires":[],"provides":[]},"effectRow":[{"kind":"fetch","resource":"Task"},{"kind":"render-ui","resource":"main"}],"category":"interaction","linkedEntity":"Task","linkedEntityId":"ent_4CSH2V8J1590JR1PVET0FGPDMN","entityRefIds":{"Task":"ent_4CSH2V8J1590JR1PVET0FGPDMN"},"emits":[{"event":"TaskLoaded","eventId":"evt_HFG1S19X8XYMEK0ZGM011CPS4V","description":"Indicates that schedule tasks have been successfully retrieved.","synonyms":"loaded, fetched, retrieved, populated","tier":"internal","scope":"internal","payloadSchema":[{"name":"data","type":"[object]","properties":[{"name":"id","type":"string","required":true},{"name":"title","type":"string"},{"name":"start","type":"datetime"},{"name":"end","type":"datetime"},{"name":"status","type":"string","values":["pending","active","complete","blocked"]},{"name":"group","type":"string"}],"entity":"Task"}]},{"event":"TaskLoadFailed","eventId":"evt_56D8M18X93EMHXGVKSWE6N51VQ","description":"Indicates a failure to load schedule tasks.","synonyms":"error, failed, problem, loading issue","tier":"internal","scope":"internal","payloadSchema":[{"name":"error","type":"string"},{"name":"code","type":"string"}]},{"event":"@config.onBarClick","eventId":"evt_YHPJ6BCMN6AAKCVJ4QC979K93B","description":"Emitted when a gantt bar is clicked; { id } carries the clicked task row's id.","tier":"presentation","scope":"external","payloadSchema":[{"name":"id","type":"string"}],"definerKnob":"onBarClick"}],"stateMachine":{"states":[{"name":"loading","isInitial":true},{"name":"chart"},{"name":"error"}],"events":[{"key":"INIT","id":"evt_FBXH0FRP6WB3EF0VZ0T1K1G332","name":"Initialize"},{"key":"TaskLoaded","id":"evt_HFG1S19X8XYMEK0ZGM011CPS4V","name":"Task loaded","description":"Indicates that schedule tasks have been successfully retrieved.","synonyms":"loaded, fetched, retrieved, populated","tier":"internal","payloadSchema":[{"name":"data","type":"[object]","properties":[{"name":"id","type":"string","required":true},{"name":"title","type":"string"},{"name":"start","type":"datetime"},{"name":"end","type":"datetime"},{"name":"status","type":"string","values":["pending","active","complete","blocked"]},{"name":"group","type":"string"}],"entity":"Task"}]},{"key":"TaskLoadFailed","id":"evt_56D8M18X93EMHXGVKSWE6N51VQ","name":"Task load failed","description":"Indicates a failure to load schedule tasks.","synonyms":"error, failed, problem, loading issue","tier":"internal","payloadSchema":[{"name":"error","type":"string"},{"name":"code","type":"string"}]},{"key":"RETRY","id":"evt_ZJDVV67P2WV1EA0K9F8AG2D7XP","name":"Retry"},{"key":"@config.onBarClick","id":"evt_YHPJ6BCMN6AAKCVJ4QC979K93B","name":"@config.on bar click","description":"Emitted when a gantt bar is clicked; { id } carries the clicked task row's id.","tier":"presentation","payloadSchema":[{"name":"id","type":"string"}]}],"transitions":[{"from":"loading","to":"loading","event":"INIT","eventId":"evt_FBXH0FRP6WB3EF0VZ0T1K1G332","effects":[["fetch","Task",{"emit":{"failure":"TaskLoadFailed","success":"TaskLoaded"},"include":"@config.include"}],["render-ui","main",{"type":"stack","direction":"vertical","gap":"lg","children":[{"type":"skeleton","variant":"header"},{"type":"skeleton","variant":"card"}]}]]},{"from":"loading","to":"chart","event":"TaskLoaded","eventId":"evt_HFG1S19X8XYMEK0ZGM011CPS4V","effects":[["render-ui","main",{"children":[{"align":"center","children":[{"name":"gantt-chart","size":"xl","type":"icon"},{"content":"@config.title","type":"typography","variant":"h2"}],"direction":"horizontal","gap":"sm","type":"stack"},{"barClickEvent":"@config.onBarClick","dayWidth":"@config.dayWidth","durationField":"@config.durationField","endField":"@config.endField","groupField":"@config.groupField","links":"@config.links","rangeEnd":"@config.rangeEnd","rangeStart":"@config.rangeStart","showToday":"@config.showToday","startField":"@config.startField","statusField":"@config.statusField","statusColorMap":"@config.statusColorMap","tasks":"@payload.data","titleField":"@config.labelField","type":"gantt"}],"direction":"vertical","gap":"lg","type":"stack"}]]},{"from":"loading","to":"error","event":"TaskLoadFailed","eventId":"evt_56D8M18X93EMHXGVKSWE6N51VQ","effects":[["render-ui","main",{"align":"center","children":[{"color":"error","name":"alert-triangle","size":"lg","type":"icon"},{"content":"Failed to load","type":"typography","variant":"h3"},{"color":"muted","content":"@payload.error","type":"typography","variant":"body"},{"action":"RETRY","icon":"rotate-ccw","label":"Retry","type":"button","variant":"primary"}],"className":"py-12","direction":"vertical","gap":"md","type":"stack"}]]},{"from":"chart","to":"loading","event":"INIT","eventId":"evt_FBXH0FRP6WB3EF0VZ0T1K1G332","effects":[["fetch","Task",{"emit":{"failure":"TaskLoadFailed","success":"TaskLoaded"},"include":"@config.include"}],["render-ui","main",{"type":"stack","direction":"vertical","gap":"lg","children":[{"type":"skeleton","variant":"header"},{"type":"skeleton","variant":"card"}]}]]},{"from":"error","to":"loading","event":"INIT","eventId":"evt_FBXH0FRP6WB3EF0VZ0T1K1G332","effects":[["fetch","Task",{"emit":{"failure":"TaskLoadFailed","success":"TaskLoaded"},"include":"@config.include"}],["render-ui","main",{"type":"stack","direction":"vertical","gap":"lg","children":[{"type":"skeleton","variant":"header"},{"type":"skeleton","variant":"card"}]}]]},{"from":"error","to":"loading","event":"RETRY","eventId":"evt_ZJDVV67P2WV1EA0K9F8AG2D7XP","effects":[["fetch","Task",{"emit":{"failure":"TaskLoadFailed","success":"TaskLoaded"},"include":"@config.include"}],["render-ui","main",{"type":"stack","direction":"vertical","gap":"lg","children":[{"type":"skeleton","variant":"header"},{"type":"skeleton","variant":"card"}]}]]}]},"config":{"statusField":{"type":"string","default":"status","label":"Status field","description":"Row column holding each bar's status value.","synonyms":"status column, state field, stage field","tier":"presentation"},"include":{"type":"[string]","default":[],"label":"Which relation fields to hydrate?","description":"Entity relation field names to hydrate on fetch, so field mappings can use dot-paths like assignee.name. Empty = no hydration, the default.","synonyms":"relation hydration, populate relations, joined fields","tier":"internal","items":{"type":"string"}},"startField":{"type":"string","default":"start","label":"Start field","description":"Row column holding the start timestamp each bar is placed from (e.g. startTime, startsAt, beginsAt).","synonyms":"start column, from field, begin field","tier":"presentation"},"durationField":{"type":"string","default":"","label":"Duration field","description":"Row column holding the task length in days, used when the row has no end value. Empty = bars always read endField.","synonyms":"duration column, length field, days field","tier":"presentation"},"dayWidth":{"type":"number","default":28,"label":"Day width","description":"Pixels per day on the time axis.","tier":"presentation"},"showToday":{"type":"boolean","default":true,"label":"Show today marker","description":"Paint the today marker line when today falls inside the visible range.","tier":"presentation"},"onBarClick":{"type":"event","default":"","label":"On bar click","description":"Event emitted when a bar is clicked: UI:{onBarClick} with { id } carrying the clicked row's id. Empty means bars are not clickable.","synonyms":"bar click, task click, select task, open task","tier":"presentation"},"rangeEnd":{"type":"string","default":"","label":"Range end","description":"Last visible day (ISO date). Empty (default) = 2 days after the latest task end.","synonyms":"window end, axis end, to date","tier":"presentation"},"labelField":{"type":"string","default":"title","label":"Label field","description":"Row column holding the bar label. Rebound hosts point this at their own column (e.g. name, summary).","synonyms":"title field, label column, name field","tier":"presentation"},"rangeStart":{"type":"string","default":"","label":"Range start","description":"First visible day (ISO date). Empty (default) = 2 days before the earliest task.","synonyms":"window start, axis start, from date","tier":"presentation"},"title":{"type":"string","default":"Schedule","label":"Title","description":"Header text shown above the gantt chart.","tier":"presentation"},"groupField":{"type":"string","default":"","label":"Group field","description":"Row column rows are grouped under header rows by (e.g. team, project). Empty (default) = flat list, no group headers.","synonyms":"group column, swimlane field, section field","tier":"presentation"},"links":{"type":"[GanttLinkSpec]","default":[],"label":"Dependency links","description":"Dependency arrows between task ids ({ from, to }); the host derives them from its own relation field and passes them here.","synonyms":"dependencies, dependency arrows, precedences","tier":"presentation","items":{"type":"object","properties":{"to":{"name":"to","type":"string","required":true},"from":{"name":"from","type":"string","required":true}}}},"endField":{"type":"string","default":"end","label":"End field","description":"Row column holding the end timestamp each bar is placed to. When a row has no end, durationField (days) is used instead.","synonyms":"end column, due field, finish field","tier":"presentation"},"statusColorMap":{"type":"Map<string,BarColor>","default":{},"label":"Bar colour per status","description":"Bar colour for each exact status value, e.g. {blocked: danger, complete: success}. Unmapped statuses are primary bars.","synonyms":"status colours, bar colours, colour map","tier":"presentation","items":{"type":"string","values":["default","primary","secondary","success","warning","danger","error","info","neutral","destructive"]}}},"scope":"collection"}],"pages":[{"name":"TaskGanttSchedulePage","id":"pag_KFKNM6MEYT7FD4G8SDM8WZRJB1","path":"/tasks/gantt","traits":[{"ref":"TaskGanttSchedule","refId":"trt_91HN82Q0S9GCMQBENJCQBFD7C0"}]}],"types":{"GanttLinkSpec":[{"name":"from","type":"string","required":true},{"name":"to","type":"string","required":true}]}}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_4CSH2V8J1590JR1PVET0FGPDMN":{"id":"ent_4CSH2V8J1590JR1PVET0FGPDMN","kind":"entity","bakedName":"Task","curName":"Task","renames":[],"owner":"workspace"},"evt_56D8M18X93EMHXGVKSWE6N51VQ":{"id":"evt_56D8M18X93EMHXGVKSWE6N51VQ","kind":"event","bakedName":"TaskLoadFailed","curName":"TaskLoadFailed","renames":[],"owner":"workspace","parent":"trt_91HN82Q0S9GCMQBENJCQBFD7C0"},"evt_FBXH0FRP6WB3EF0VZ0T1K1G332":{"id":"evt_FBXH0FRP6WB3EF0VZ0T1K1G332","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_91HN82Q0S9GCMQBENJCQBFD7C0"},"evt_HFG1S19X8XYMEK0ZGM011CPS4V":{"id":"evt_HFG1S19X8XYMEK0ZGM011CPS4V","kind":"event","bakedName":"TaskLoaded","curName":"TaskLoaded","renames":[],"owner":"workspace","parent":"trt_91HN82Q0S9GCMQBENJCQBFD7C0"},"evt_YHPJ6BCMN6AAKCVJ4QC979K93B":{"id":"evt_YHPJ6BCMN6AAKCVJ4QC979K93B","kind":"event","bakedName":"@config.onBarClick","curName":"@config.onBarClick","renames":[],"owner":"workspace","parent":"trt_91HN82Q0S9GCMQBENJCQBFD7C0"},"evt_ZJDVV67P2WV1EA0K9F8AG2D7XP":{"id":"evt_ZJDVV67P2WV1EA0K9F8AG2D7XP","kind":"event","bakedName":"RETRY","curName":"RETRY","renames":[],"owner":"workspace","parent":"trt_91HN82Q0S9GCMQBENJCQBFD7C0"},"orb_9EB3TKCNDPAPV2YPQ04PP61KH5":{"id":"orb_9EB3TKCNDPAPV2YPQ04PP61KH5","kind":"orbital","bakedName":"GanttScheduleOrbital","curName":"GanttScheduleOrbital","renames":[],"owner":"workspace"},"pag_KFKNM6MEYT7FD4G8SDM8WZRJB1":{"id":"pag_KFKNM6MEYT7FD4G8SDM8WZRJB1","kind":"page","bakedName":"TaskGanttSchedulePage","curName":"TaskGanttSchedulePage","renames":[],"owner":"workspace"},"trt_91HN82Q0S9GCMQBENJCQBFD7C0":{"id":"trt_91HN82Q0S9GCMQBENJCQBFD7C0","kind":"trait","bakedName":"TaskGanttSchedule","curName":"TaskGanttSchedule","renames":[],"owner":"workspace"}}}}
1
+ {"name":"std-gantt-schedule","version":"1.0.0","description":"std-gantt-schedule — GENERIC view-only Gantt/timeline atom: fetches a task collection on INIT and renders it as bars on a day-scale axis via the gantt pattern, with group headers, dependency arrows, and a today marker. Fully rebindable: a host overrides the linked entity and points the field-mapping configs (labelField/startField/endField/durationField/statusField/groupField) at its own columns; clicking a bar emits the config-named onBarClick event with the row id. No drag-edit, no zoom — schedule viewing only.","orbitals":[{"name":"GanttScheduleOrbital","id":"orb_9EB3TKCNDPAPV2YPQ04PP61KH5","entity":{"name":"Task","id":"ent_4CSH2V8J1590JR1PVET0FGPDMN","persistence":"runtime","fields":[{"name":"id","type":"string","required":true},{"name":"title","type":"string","default":"","description":"task label shown on the bar","synonyms":"name, label, summary, subject"},{"name":"start","type":"datetime","description":"task start timestamp the bar is placed from","synonyms":"starts, begins, start date, from"},{"name":"end","type":"datetime","description":"task end timestamp the bar is placed to; when absent, duration days are used","synonyms":"finish, due, end date, until"},{"name":"status","type":"string","default":"pending","values":["pending","active","complete","blocked"],"description":"task lifecycle status, drives bar colour","synonyms":"state, stage, phase"},{"name":"group","type":"string","default":"","description":"group/section the task renders under a header row for","synonyms":"team, swimlane, section, project"}]},"traits":[{"name":"TaskGanttSchedule","id":"trt_91HN82Q0S9GCMQBENJCQBFD7C0","entityRebindable":true,"entityContract":{"requires":[],"provides":[]},"effectRow":[{"kind":"fetch","resource":"Task"},{"kind":"render-ui","resource":"main"}],"category":"interaction","linkedEntity":"Task","linkedEntityId":"ent_4CSH2V8J1590JR1PVET0FGPDMN","entityRefIds":{"Task":"ent_4CSH2V8J1590JR1PVET0FGPDMN"},"emits":[{"event":"TaskLoaded","eventId":"evt_HFG1S19X8XYMEK0ZGM011CPS4V","description":"Indicates that schedule tasks have been successfully retrieved.","synonyms":"loaded, fetched, retrieved, populated","tier":"internal","scope":"internal","payloadSchema":[{"name":"data","type":"[object]","properties":[{"name":"id","type":"string","required":true},{"name":"title","type":"string"},{"name":"start","type":"datetime"},{"name":"end","type":"datetime"},{"name":"status","type":"string","values":["pending","active","complete","blocked"]},{"name":"group","type":"string"}],"entity":"Task"}]},{"event":"TaskLoadFailed","eventId":"evt_56D8M18X93EMHXGVKSWE6N51VQ","description":"Indicates a failure to load schedule tasks.","synonyms":"error, failed, problem, loading issue","tier":"internal","scope":"internal","payloadSchema":[{"name":"error","type":"string"},{"name":"code","type":"string"}]},{"event":"@config.onBarClick","eventId":"evt_YHPJ6BCMN6AAKCVJ4QC979K93B","description":"Emitted when a gantt bar is clicked; { id } carries the clicked task row's id.","tier":"presentation","scope":"external","payloadSchema":[{"name":"id","type":"string"}],"definerKnob":"onBarClick"}],"stateMachine":{"states":[{"name":"loading","isInitial":true},{"name":"chart"},{"name":"error"}],"events":[{"key":"INIT","id":"evt_FBXH0FRP6WB3EF0VZ0T1K1G332","name":"Initialize"},{"key":"TaskLoaded","id":"evt_HFG1S19X8XYMEK0ZGM011CPS4V","name":"Task loaded","description":"Indicates that schedule tasks have been successfully retrieved.","synonyms":"loaded, fetched, retrieved, populated","tier":"internal","payloadSchema":[{"name":"data","type":"[object]","properties":[{"name":"id","type":"string","required":true},{"name":"title","type":"string"},{"name":"start","type":"datetime"},{"name":"end","type":"datetime"},{"name":"status","type":"string","values":["pending","active","complete","blocked"]},{"name":"group","type":"string"}],"entity":"Task"}]},{"key":"TaskLoadFailed","id":"evt_56D8M18X93EMHXGVKSWE6N51VQ","name":"Task load failed","description":"Indicates a failure to load schedule tasks.","synonyms":"error, failed, problem, loading issue","tier":"internal","payloadSchema":[{"name":"error","type":"string"},{"name":"code","type":"string"}]},{"key":"RETRY","id":"evt_ZJDVV67P2WV1EA0K9F8AG2D7XP","name":"Retry"},{"key":"@config.onBarClick","id":"evt_YHPJ6BCMN6AAKCVJ4QC979K93B","name":"@config.on bar click","description":"Emitted when a gantt bar is clicked; { id } carries the clicked task row's id.","tier":"presentation","payloadSchema":[{"name":"id","type":"string"}]}],"transitions":[{"from":"loading","to":"loading","event":"INIT","eventId":"evt_FBXH0FRP6WB3EF0VZ0T1K1G332","effects":[["fetch","Task",{"emit":{"failure":"TaskLoadFailed","success":"TaskLoaded"},"include":"@config.include"}],["render-ui","main",{"type":"stack","direction":"vertical","gap":"lg","children":[{"type":"skeleton","variant":"header"},{"type":"skeleton","variant":"card"}]}]]},{"from":"loading","to":"chart","event":"TaskLoaded","eventId":"evt_HFG1S19X8XYMEK0ZGM011CPS4V","effects":[["render-ui","main",{"children":[{"align":"center","children":[{"name":"gantt-chart","size":"xl","type":"icon"},{"content":"@config.title","type":"typography","variant":"h2"}],"direction":"horizontal","gap":"sm","type":"stack"},{"barClickEvent":"@config.onBarClick","dayWidth":"@config.dayWidth","durationField":"@config.durationField","endField":"@config.endField","groupField":"@config.groupField","links":"@config.links","rangeEnd":"@config.rangeEnd","rangeStart":"@config.rangeStart","showToday":"@config.showToday","startField":"@config.startField","statusField":"@config.statusField","statusColorMap":"@config.statusColorMap","tasks":"@payload.data","titleField":"@config.labelField","type":"gantt"}],"direction":"vertical","gap":"lg","type":"stack"}]]},{"from":"loading","to":"error","event":"TaskLoadFailed","eventId":"evt_56D8M18X93EMHXGVKSWE6N51VQ","effects":[["render-ui","main",{"align":"center","children":[{"color":"error","name":"alert-triangle","size":"lg","type":"icon"},{"content":"Failed to load","type":"typography","variant":"h3"},{"color":"muted","content":"@payload.error","type":"typography","variant":"body"},{"action":"RETRY","icon":"rotate-ccw","label":"Retry","type":"button","variant":"primary"}],"className":"py-12","direction":"vertical","gap":"md","type":"stack"}]]},{"from":"chart","to":"loading","event":"INIT","eventId":"evt_FBXH0FRP6WB3EF0VZ0T1K1G332","effects":[["fetch","Task",{"emit":{"failure":"TaskLoadFailed","success":"TaskLoaded"},"include":"@config.include"}],["render-ui","main",{"type":"stack","direction":"vertical","gap":"lg","children":[{"type":"skeleton","variant":"header"},{"type":"skeleton","variant":"card"}]}]]},{"from":"error","to":"loading","event":"INIT","eventId":"evt_FBXH0FRP6WB3EF0VZ0T1K1G332","effects":[["fetch","Task",{"emit":{"failure":"TaskLoadFailed","success":"TaskLoaded"},"include":"@config.include"}],["render-ui","main",{"type":"stack","direction":"vertical","gap":"lg","children":[{"type":"skeleton","variant":"header"},{"type":"skeleton","variant":"card"}]}]]},{"from":"error","to":"loading","event":"RETRY","eventId":"evt_ZJDVV67P2WV1EA0K9F8AG2D7XP","effects":[["fetch","Task",{"emit":{"failure":"TaskLoadFailed","success":"TaskLoaded"},"include":"@config.include"}],["render-ui","main",{"type":"stack","direction":"vertical","gap":"lg","children":[{"type":"skeleton","variant":"header"},{"type":"skeleton","variant":"card"}]}]]}]},"config":{"labelField":{"type":"string","default":"title","label":"Label field","description":"Row column holding the bar label. Rebound hosts point this at their own column (e.g. name, summary).","synonyms":"title field, label column, name field","tier":"presentation"},"links":{"type":"[GanttLinkSpec]","default":[],"label":"Dependency links","description":"Dependency arrows between task ids ({ from, to }); the host derives them from its own relation field and passes them here.","synonyms":"dependencies, dependency arrows, precedences","tier":"presentation","items":{"type":"object","properties":{"to":{"name":"to","type":"string","required":true},"from":{"name":"from","type":"string","required":true}}}},"endField":{"type":"string","default":"end","label":"End field","description":"Row column holding the end timestamp each bar is placed to. When a row has no end, durationField (days) is used instead.","synonyms":"end column, due field, finish field","tier":"presentation"},"startField":{"type":"string","default":"start","label":"Start field","description":"Row column holding the start timestamp each bar is placed from (e.g. startTime, startsAt, beginsAt).","synonyms":"start column, from field, begin field","tier":"presentation"},"statusField":{"type":"string","default":"status","label":"Status field","description":"Row column holding each bar's status value.","synonyms":"status column, state field, stage field","tier":"presentation"},"include":{"type":"[string]","default":[],"label":"Which relation fields to hydrate?","description":"Entity relation field names to hydrate on fetch, so field mappings can use dot-paths like assignee.name. Empty = no hydration, the default.","synonyms":"relation hydration, populate relations, joined fields","tier":"internal","items":{"type":"string"}},"rangeStart":{"type":"string","default":"","label":"Range start","description":"First visible day (ISO date). Empty (default) = 2 days before the earliest task.","synonyms":"window start, axis start, from date","tier":"presentation"},"groupField":{"type":"string","default":"","label":"Group field","description":"Row column rows are grouped under header rows by (e.g. team, project). Empty (default) = flat list, no group headers.","synonyms":"group column, swimlane field, section field","tier":"presentation"},"statusColorMap":{"type":"Map<string,BarColor>","default":{},"label":"Bar colour per status","description":"Bar colour for each exact status value, e.g. {blocked: danger, complete: success}. Unmapped statuses are primary bars.","synonyms":"status colours, bar colours, colour map","tier":"presentation","items":{"type":"string","values":["default","primary","secondary","success","warning","danger","error","info","neutral","destructive"]}},"rangeEnd":{"type":"string","default":"","label":"Range end","description":"Last visible day (ISO date). Empty (default) = 2 days after the latest task end.","synonyms":"window end, axis end, to date","tier":"presentation"},"durationField":{"type":"string","default":"","label":"Duration field","description":"Row column holding the task length in days, used when the row has no end value. Empty = bars always read endField.","synonyms":"duration column, length field, days field","tier":"presentation"},"showToday":{"type":"boolean","default":true,"label":"Show today marker","description":"Paint the today marker line when today falls inside the visible range.","tier":"presentation"},"title":{"type":"string","default":"Schedule","label":"Title","description":"Header text shown above the gantt chart.","tier":"presentation"},"dayWidth":{"type":"number","default":28,"label":"Day width","description":"Pixels per day on the time axis.","tier":"presentation"},"onBarClick":{"type":"event","default":"","label":"On bar click","description":"Event emitted when a bar is clicked: UI:{onBarClick} with { id } carrying the clicked row's id. Empty means bars are not clickable.","synonyms":"bar click, task click, select task, open task","tier":"presentation"}},"scope":"collection"}],"pages":[{"name":"TaskGanttSchedulePage","id":"pag_KFKNM6MEYT7FD4G8SDM8WZRJB1","path":"/tasks/gantt","traits":[{"ref":"TaskGanttSchedule","refId":"trt_91HN82Q0S9GCMQBENJCQBFD7C0"}]}],"types":{"GanttLinkSpec":[{"name":"from","type":"string","required":true},{"name":"to","type":"string","required":true}]}}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_4CSH2V8J1590JR1PVET0FGPDMN":{"id":"ent_4CSH2V8J1590JR1PVET0FGPDMN","kind":"entity","bakedName":"Task","curName":"Task","renames":[],"owner":"workspace"},"evt_56D8M18X93EMHXGVKSWE6N51VQ":{"id":"evt_56D8M18X93EMHXGVKSWE6N51VQ","kind":"event","bakedName":"TaskLoadFailed","curName":"TaskLoadFailed","renames":[],"owner":"workspace","parent":"trt_91HN82Q0S9GCMQBENJCQBFD7C0"},"evt_FBXH0FRP6WB3EF0VZ0T1K1G332":{"id":"evt_FBXH0FRP6WB3EF0VZ0T1K1G332","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_91HN82Q0S9GCMQBENJCQBFD7C0"},"evt_HFG1S19X8XYMEK0ZGM011CPS4V":{"id":"evt_HFG1S19X8XYMEK0ZGM011CPS4V","kind":"event","bakedName":"TaskLoaded","curName":"TaskLoaded","renames":[],"owner":"workspace","parent":"trt_91HN82Q0S9GCMQBENJCQBFD7C0"},"evt_YHPJ6BCMN6AAKCVJ4QC979K93B":{"id":"evt_YHPJ6BCMN6AAKCVJ4QC979K93B","kind":"event","bakedName":"@config.onBarClick","curName":"@config.onBarClick","renames":[],"owner":"workspace","parent":"trt_91HN82Q0S9GCMQBENJCQBFD7C0"},"evt_ZJDVV67P2WV1EA0K9F8AG2D7XP":{"id":"evt_ZJDVV67P2WV1EA0K9F8AG2D7XP","kind":"event","bakedName":"RETRY","curName":"RETRY","renames":[],"owner":"workspace","parent":"trt_91HN82Q0S9GCMQBENJCQBFD7C0"},"orb_9EB3TKCNDPAPV2YPQ04PP61KH5":{"id":"orb_9EB3TKCNDPAPV2YPQ04PP61KH5","kind":"orbital","bakedName":"GanttScheduleOrbital","curName":"GanttScheduleOrbital","renames":[],"owner":"workspace"},"pag_KFKNM6MEYT7FD4G8SDM8WZRJB1":{"id":"pag_KFKNM6MEYT7FD4G8SDM8WZRJB1","kind":"page","bakedName":"TaskGanttSchedulePage","curName":"TaskGanttSchedulePage","renames":[],"owner":"workspace"},"trt_91HN82Q0S9GCMQBENJCQBFD7C0":{"id":"trt_91HN82Q0S9GCMQBENJCQBFD7C0","kind":"trait","bakedName":"TaskGanttSchedule","curName":"TaskGanttSchedule","renames":[],"owner":"workspace"}}}}
@@ -1 +1 @@
1
- {"name":"std-geosearch","version":"1.0.0","description":"std-geosearch — location-aware search variant: search-input + map-view + range-slider for radius. Owns a GeoSearchResult runtime entity; GEO_SEARCH persists @payload.searchTerm/lat/lng/radiusKm so cross-trait listeners can route them into geo-aware data atoms.","orbitals":[{"name":"GeoSearchResultOrbital","id":"orb_VHE40JAXRNEWANFNHTWBPJF70R","uses":[{"from":"std/behaviors/ui-search-input","as":"UiSearchInput"},{"from":"std/behaviors/ui-map-view","as":"UiMapView"},{"from":"std/behaviors/ui-range-slider","as":"UiRangeSlider"},{"from":"std/behaviors/ui-stack","as":"UiStack"}],"entity":{"name":"GeoSearchResult","id":"ent_GHXEEA7Q66VK31CN4708C6FN7V","persistence":"runtime","fields":[{"name":"id","type":"string","required":true},{"name":"searchTerm","type":"string","description":"The user's search query string.","synonyms":"query, text, input"},{"name":"centerLat","type":"number","description":"Latitude coordinate of the search center.","synonyms":"lat, y, north"},{"name":"centerLng","type":"number","description":"The longitude coordinate of the search center.","synonyms":"longitude, lng"},{"name":"radiusKm","type":"number","default":10,"description":"The search radius in kilometers.","synonyms":"range, distance, extent"},{"name":"boundsNorth","type":"number","description":"Northern boundary coordinate of the search area.","synonyms":"north, upper, top"},{"name":"boundsSouth","type":"number","description":"Southern boundary coordinate of the search area.","synonyms":"south, bottom, lowerBoundary"},{"name":"boundsEast","type":"number","description":"The eastern boundary coordinate of the search area.","synonyms":"east, right, longitude"},{"name":"boundsWest","type":"number","description":"Western boundary coordinate of the search area.","synonyms":"west, longitude, x"}]},"traits":[{"name":"GeoSearchResultSearch","id":"trt_KJNHDCWK849M25AZVSBFSGTCYD","effectRow":[{"kind":"render-ui","resource":"main"},{"kind":"set","resource":"@entity.centerLat"},{"kind":"set","resource":"@entity.centerLng"},{"kind":"set","resource":"@entity.radiusKm"},{"kind":"set","resource":"@entity.searchTerm"}],"category":"interaction","linkedEntity":"GeoSearchResult","linkedEntityId":"ent_GHXEEA7Q66VK31CN4708C6FN7V","entityRefIds":{"GeoSearchResult":"ent_GHXEEA7Q66VK31CN4708C6FN7V"},"emits":[{"event":"GEO_SEARCH","eventId":"evt_E96G9N6CWK6E9NP7TTQ6XQGXXS","description":"Indicates a search request with location parameters.","synonyms":"search, locate, find, query","tier":"domain","payloadSchema":[{"name":"searchTerm","type":"string","required":true},{"name":"lat","type":"number","required":true},{"name":"lng","type":"number","required":true},{"name":"radiusKm","type":"number","required":true},{"name":"value","type":"number"}]}],"stateMachine":{"states":[{"name":"idle","isInitial":true}],"events":[{"key":"INIT","id":"evt_GW0E2JEDFA6QN4EWP39H04BX4T","name":"Initialize"},{"key":"GEO_SEARCH","id":"evt_E96G9N6CWK6E9NP7TTQ6XQGXXS","name":"Geo Search","description":"Indicates a search request with location parameters.","synonyms":"search, locate, find, query","tier":"domain","payloadSchema":[{"name":"searchTerm","type":"string","required":true},{"name":"lat","type":"number","required":true},{"name":"lng","type":"number","required":true},{"name":"radiusKm","type":"number","required":true},{"name":"value","type":"number"}],"listened":true}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_GW0E2JEDFA6QN4EWP39H04BX4T","effects":[["set","@entity.radiusKm","@config.defaultRadiusKm"],["render-ui","main",{"children":[{"event":"@config.event","placeholder":"@config.placeholder","type":"search-input"},{"centerLat":"@entity.centerLat","centerLng":"@entity.centerLng","height":"240px","markers":[],"type":"map-view","zoom":12},{"action":"GEO_SEARCH","max":100,"min":1,"showTooltip":true,"step":1,"type":"range-slider","value":"@entity.radiusKm"}],"direction":"vertical","gap":"md","type":"stack"}]]},{"from":"idle","to":"idle","event":"GEO_SEARCH","eventId":"evt_E96G9N6CWK6E9NP7TTQ6XQGXXS","effects":[["set","@entity.searchTerm","@payload.searchTerm"],["set","@entity.centerLat","@payload.lat"],["set","@entity.centerLng","@payload.lng"],["set","@entity.radiusKm","@payload.radiusKm"],["render-ui","main",{"children":[{"event":"@config.event","placeholder":"@config.placeholder","type":"search-input"},{"centerLat":"@entity.centerLat","centerLng":"@entity.centerLng","height":"240px","markers":[],"type":"map-view","zoom":12},{"action":"GEO_SEARCH","max":100,"min":1,"showTooltip":true,"step":1,"type":"range-slider","value":"@entity.radiusKm"}],"direction":"vertical","gap":"md","type":"stack"}]]}]},"config":{"defaultRadiusKm":{"type":"number","default":10,"label":"Default radius (km)","description":"Initial search radius around the chosen center","tier":"presentation"},"event":{"type":"event","default":"GEO_SEARCH","label":"Search event","description":"Event emitted when the user runs a geo search","tier":"internal","refId":"evt_E96G9N6CWK6E9NP7TTQ6XQGXXS"},"placeholder":{"type":"string","default":"Search nearby…","label":"Search placeholder","description":"Hint text in the location search input","tier":"presentation"}},"scope":"instance"}],"pages":[{"name":"GeoSearchResultSearchPage","id":"pag_TXWFFT9J22S11B8TZT9VKRDTXX","path":"/geosearchresults/search","traits":[{"ref":"GeoSearchResultSearch","refId":"trt_KJNHDCWK849M25AZVSBFSGTCYD"}]}]}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_GHXEEA7Q66VK31CN4708C6FN7V":{"id":"ent_GHXEEA7Q66VK31CN4708C6FN7V","kind":"entity","bakedName":"GeoSearchResult","curName":"GeoSearchResult","renames":[],"owner":"workspace"},"evt_E96G9N6CWK6E9NP7TTQ6XQGXXS":{"id":"evt_E96G9N6CWK6E9NP7TTQ6XQGXXS","kind":"event","bakedName":"GEO_SEARCH","curName":"GEO_SEARCH","renames":[],"owner":"workspace","parent":"trt_KJNHDCWK849M25AZVSBFSGTCYD"},"evt_GW0E2JEDFA6QN4EWP39H04BX4T":{"id":"evt_GW0E2JEDFA6QN4EWP39H04BX4T","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_KJNHDCWK849M25AZVSBFSGTCYD"},"orb_VHE40JAXRNEWANFNHTWBPJF70R":{"id":"orb_VHE40JAXRNEWANFNHTWBPJF70R","kind":"orbital","bakedName":"GeoSearchResultOrbital","curName":"GeoSearchResultOrbital","renames":[],"owner":"workspace"},"pag_TXWFFT9J22S11B8TZT9VKRDTXX":{"id":"pag_TXWFFT9J22S11B8TZT9VKRDTXX","kind":"page","bakedName":"GeoSearchResultSearchPage","curName":"GeoSearchResultSearchPage","renames":[],"owner":"workspace"},"trt_KJNHDCWK849M25AZVSBFSGTCYD":{"id":"trt_KJNHDCWK849M25AZVSBFSGTCYD","kind":"trait","bakedName":"GeoSearchResultSearch","curName":"GeoSearchResultSearch","renames":[],"owner":"workspace"}}}}
1
+ {"name":"std-geosearch","version":"1.0.0","description":"std-geosearch — location-aware search variant: search-input + map-view + range-slider for radius. Owns a GeoSearchResult runtime entity; GEO_SEARCH persists @payload.searchTerm/lat/lng/radiusKm so cross-trait listeners can route them into geo-aware data atoms.","orbitals":[{"name":"GeoSearchResultOrbital","id":"orb_VHE40JAXRNEWANFNHTWBPJF70R","uses":[{"from":"std/behaviors/ui-search-input","as":"UiSearchInput"},{"from":"std/behaviors/ui-map-view","as":"UiMapView"},{"from":"std/behaviors/ui-range-slider","as":"UiRangeSlider"},{"from":"std/behaviors/ui-stack","as":"UiStack"}],"entity":{"name":"GeoSearchResult","id":"ent_GHXEEA7Q66VK31CN4708C6FN7V","persistence":"runtime","fields":[{"name":"id","type":"string","required":true},{"name":"searchTerm","type":"string","description":"The user's search query string.","synonyms":"query, text, input"},{"name":"centerLat","type":"number","description":"Latitude coordinate of the search center.","synonyms":"lat, y, north"},{"name":"centerLng","type":"number","description":"The longitude coordinate of the search center.","synonyms":"longitude, lng"},{"name":"radiusKm","type":"number","default":10,"description":"The search radius in kilometers.","synonyms":"range, distance, extent"},{"name":"boundsNorth","type":"number","description":"Northern boundary coordinate of the search area.","synonyms":"north, upper, top"},{"name":"boundsSouth","type":"number","description":"Southern boundary coordinate of the search area.","synonyms":"south, bottom, lowerBoundary"},{"name":"boundsEast","type":"number","description":"The eastern boundary coordinate of the search area.","synonyms":"east, right, longitude"},{"name":"boundsWest","type":"number","description":"Western boundary coordinate of the search area.","synonyms":"west, longitude, x"}]},"traits":[{"name":"GeoSearchResultSearch","id":"trt_KJNHDCWK849M25AZVSBFSGTCYD","effectRow":[{"kind":"render-ui","resource":"main"},{"kind":"set","resource":"@entity.centerLat"},{"kind":"set","resource":"@entity.centerLng"},{"kind":"set","resource":"@entity.radiusKm"},{"kind":"set","resource":"@entity.searchTerm"}],"category":"interaction","linkedEntity":"GeoSearchResult","linkedEntityId":"ent_GHXEEA7Q66VK31CN4708C6FN7V","entityRefIds":{"GeoSearchResult":"ent_GHXEEA7Q66VK31CN4708C6FN7V"},"emits":[{"event":"GEO_SEARCH","eventId":"evt_E96G9N6CWK6E9NP7TTQ6XQGXXS","description":"Indicates a search request with location parameters.","synonyms":"search, locate, find, query","tier":"domain","payloadSchema":[{"name":"searchTerm","type":"string","required":true},{"name":"lat","type":"number","required":true},{"name":"lng","type":"number","required":true},{"name":"radiusKm","type":"number","required":true},{"name":"value","type":"number"}]}],"stateMachine":{"states":[{"name":"idle","isInitial":true}],"events":[{"key":"INIT","id":"evt_GW0E2JEDFA6QN4EWP39H04BX4T","name":"Initialize"},{"key":"GEO_SEARCH","id":"evt_E96G9N6CWK6E9NP7TTQ6XQGXXS","name":"Geo Search","description":"Indicates a search request with location parameters.","synonyms":"search, locate, find, query","tier":"domain","payloadSchema":[{"name":"searchTerm","type":"string","required":true},{"name":"lat","type":"number","required":true},{"name":"lng","type":"number","required":true},{"name":"radiusKm","type":"number","required":true},{"name":"value","type":"number"}],"listened":true}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_GW0E2JEDFA6QN4EWP39H04BX4T","effects":[["set","@entity.radiusKm","@config.defaultRadiusKm"],["render-ui","main",{"children":[{"event":"@config.event","placeholder":"@config.placeholder","type":"search-input"},{"centerLat":"@entity.centerLat","centerLng":"@entity.centerLng","height":"240px","markers":[],"type":"map-view","zoom":12},{"action":"GEO_SEARCH","max":100,"min":1,"showTooltip":true,"step":1,"type":"range-slider","value":"@entity.radiusKm"}],"direction":"vertical","gap":"md","type":"stack"}]]},{"from":"idle","to":"idle","event":"GEO_SEARCH","eventId":"evt_E96G9N6CWK6E9NP7TTQ6XQGXXS","effects":[["set","@entity.searchTerm","@payload.searchTerm"],["set","@entity.centerLat","@payload.lat"],["set","@entity.centerLng","@payload.lng"],["set","@entity.radiusKm","@payload.radiusKm"],["render-ui","main",{"children":[{"event":"@config.event","placeholder":"@config.placeholder","type":"search-input"},{"centerLat":"@entity.centerLat","centerLng":"@entity.centerLng","height":"240px","markers":[],"type":"map-view","zoom":12},{"action":"GEO_SEARCH","max":100,"min":1,"showTooltip":true,"step":1,"type":"range-slider","value":"@entity.radiusKm"}],"direction":"vertical","gap":"md","type":"stack"}]]}]},"config":{"event":{"type":"event","default":"GEO_SEARCH","label":"Search event","description":"Event emitted when the user runs a geo search","tier":"internal","refId":"evt_E96G9N6CWK6E9NP7TTQ6XQGXXS"},"defaultRadiusKm":{"type":"number","default":10,"label":"Default radius (km)","description":"Initial search radius around the chosen center","tier":"presentation"},"placeholder":{"type":"string","default":"Search nearby…","label":"Search placeholder","description":"Hint text in the location search input","tier":"presentation"}},"scope":"instance"}],"pages":[{"name":"GeoSearchResultSearchPage","id":"pag_TXWFFT9J22S11B8TZT9VKRDTXX","path":"/geosearchresults/search","traits":[{"ref":"GeoSearchResultSearch","refId":"trt_KJNHDCWK849M25AZVSBFSGTCYD"}]}]}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_GHXEEA7Q66VK31CN4708C6FN7V":{"id":"ent_GHXEEA7Q66VK31CN4708C6FN7V","kind":"entity","bakedName":"GeoSearchResult","curName":"GeoSearchResult","renames":[],"owner":"workspace"},"evt_E96G9N6CWK6E9NP7TTQ6XQGXXS":{"id":"evt_E96G9N6CWK6E9NP7TTQ6XQGXXS","kind":"event","bakedName":"GEO_SEARCH","curName":"GEO_SEARCH","renames":[],"owner":"workspace","parent":"trt_KJNHDCWK849M25AZVSBFSGTCYD"},"evt_GW0E2JEDFA6QN4EWP39H04BX4T":{"id":"evt_GW0E2JEDFA6QN4EWP39H04BX4T","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_KJNHDCWK849M25AZVSBFSGTCYD"},"orb_VHE40JAXRNEWANFNHTWBPJF70R":{"id":"orb_VHE40JAXRNEWANFNHTWBPJF70R","kind":"orbital","bakedName":"GeoSearchResultOrbital","curName":"GeoSearchResultOrbital","renames":[],"owner":"workspace"},"pag_TXWFFT9J22S11B8TZT9VKRDTXX":{"id":"pag_TXWFFT9J22S11B8TZT9VKRDTXX","kind":"page","bakedName":"GeoSearchResultSearchPage","curName":"GeoSearchResultSearchPage","renames":[],"owner":"workspace"},"trt_KJNHDCWK849M25AZVSBFSGTCYD":{"id":"trt_KJNHDCWK849M25AZVSBFSGTCYD","kind":"trait","bakedName":"GeoSearchResultSearch","curName":"GeoSearchResultSearch","renames":[],"owner":"workspace"}}}}
@@ -1 +1 @@
1
- {"name":"std-graphs","version":"2.0.0","description":"std-graphs — embeddable chart atom. ITEMS_LOADED keeps the rows whose @config.filterField equals @config.filterValue (blank = all), groups them by @config.categoryField, or (timeAxis=true) by the @config.period bucket of @config.timeField — rows without a time value (or, by category, without a category value) have no bucket to land in and are left out — and aggregates per bucket. Multi-series rendering via @config.series (preformatted ChartSeries shape). Histograms via chartType=histogram pass pre-binned @payload.data through unchanged. Stacked / 100% stacked bars via @config.stack. Post-process sort + limit. Clicking a data point emits UI:@config.drillEvent with { label, value, seriesLabel? }. Drop into a dashboard alongside std-stats / std-browse.","orbitals":[{"name":"GraphItemOrbital","id":"orb_6WKFQDBPEZV7FVE6E055TQRGBX","entity":{"name":"GraphItem","id":"ent_CH2BVH8WM4EA20H1YBGW6XH0BT","persistence":"runtime","fields":[{"name":"id","type":"string","required":true},{"name":"status","type":"string","default":""},{"name":"chartData","type":"array","default":[{"label":"Active","value":6},{"label":"Pending","value":3},{"label":"Inactive","value":1}],"items":{"type":"object","properties":{"value":{"name":"value","type":"number","required":true},"label":{"name":"label","type":"string","required":true}}},"intrinsic":true,"description":"The data points used to render the chart.","synonyms":"data, values, points"}]},"traits":[{"name":"GraphItemGraph","id":"trt_H829K2T8PJ4B9FA6KE2A55WT7Z","entityRebindable":true,"entityContract":{"requires":[],"provides":["chartData"]},"effectRow":[{"kind":"render-ui","resource":"main"},{"kind":"set","resource":"@entity.chartData"}],"category":"interaction","linkedEntity":"GraphItem","linkedEntityId":"ent_CH2BVH8WM4EA20H1YBGW6XH0BT","entityRefIds":{"GraphItem":"ent_CH2BVH8WM4EA20H1YBGW6XH0BT"},"stateMachine":{"states":[{"name":"idle","isInitial":true}],"events":[{"key":"INIT","id":"evt_X7VJX2KF36QHKAW15AZ6DRPFH3","name":"Initialize"},{"key":"ITEMS_LOADED","id":"evt_6D0R28J6NP3AVDBT8QN6CA43HZ","name":"Items Loaded","description":"Data has been retrieved and processed for display.","synonyms":"data ready, update, refresh, loaded","tier":"domain","payloadSchema":[{"name":"data","type":"[@entity(rowEntity)]"},{"name":"totalCount","type":"number"}],"listened":true}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_X7VJX2KF36QHKAW15AZ6DRPFH3","effects":[["render-ui","main",{"chartType":"@config.chartType","data":["array/map","@entity.chartData",["fn","p",{"label":["object/get","@config.categoryLabels","@p.label","@p.label"],"value":"@p.value"}]],"drillEvent":"@config.drillEvent","height":"@config.height","series":"@config.series","showLegend":"@config.showLegend","showValues":"@config.showValues","stack":"@config.stack","subtitle":"@config.subtitle","timeAxis":"@config.timeAxis","period":"@config.period","title":"@config.title","type":"@config.viewPattern"}]]},{"from":"idle","to":"idle","event":"ITEMS_LOADED","eventId":"evt_6D0R28J6NP3AVDBT8QN6CA43HZ","effects":[["let",[["rows",["if",["=","@config.filterField",""],"@payload.data",["array/filter","@payload.data",["fn","row",["=",["object/get","@row","@config.filterField"],"@config.filterValue"]]]]]],["set","@entity.chartData",["if",["=","@config.chartType","histogram"],["array/map","@rows",["fn","p",{"label":["object/get","@p","label"],"value":["object/get","@p","value"]}]],["array/map",["object/entries",["if","@config.timeAxis",["array/groupBy",["array/map",["array/filter","@rows",["fn","row",["validate/required",["object/get","@row","@config.timeField"]]]],["fn","row",["object/set","@row","periodStart",["time/startOf",["time/parse",["object/get","@row","@config.timeField"]],"@config.period"]]]],"periodStart"],["array/groupBy",["array/filter","@rows",["fn","row",["validate/required",["object/get","@row","@config.categoryField"]]]],"@config.categoryField"]]],["fn","entry",{"label":["object/get","@entry","0"],"value":["if",["=","@config.aggregation","sum"],["array/sum",["object/get","@entry","1"],"@config.valueField"],["if",["=","@config.aggregation","avg"],["array/avg",["object/get","@entry","1"],"@config.valueField"],["if",["=","@config.aggregation","min"],["array/min",["object/get","@entry","1"],"@config.valueField"],["if",["=","@config.aggregation","max"],["array/max",["object/get","@entry","1"],"@config.valueField"],["array/len",["object/get","@entry","1"]]]]]]}]]]]],["set","@entity.chartData",["if","@config.timeAxis",["array/sort","@entity.chartData","label","asc"],"@entity.chartData"]],["set","@entity.chartData",["if",["!=","@config.sortField","none"],["array/sort","@entity.chartData","@config.sortField","@config.sortDir"],"@entity.chartData"]],["set","@entity.chartData",["if",[">","@config.limit",0],["array/take","@entity.chartData","@config.limit"],"@entity.chartData"]],["render-ui","main",{"chartType":"@config.chartType","data":["array/map","@entity.chartData",["fn","p",{"label":["object/get","@config.categoryLabels","@p.label","@p.label"],"value":"@p.value"}]],"drillEvent":"@config.drillEvent","height":"@config.height","series":"@config.series","showLegend":"@config.showLegend","showValues":"@config.showValues","stack":"@config.stack","subtitle":"@config.subtitle","timeAxis":"@config.timeAxis","period":"@config.period","title":"@config.title","type":"@config.viewPattern"}]]}]},"config":{"subtitle":{"type":"string","default":"Counts per category","label":"Subtitle","description":"Secondary line below the title","synonyms":"secondary header below the title. user phrases: 'with subtitle X' / 'set subtitle to X' -> X","tier":"presentation"},"showLegend":{"type":"boolean","default":true,"label":"Show legend","description":"Display the series legend","synonyms":"true shows the color key. user phrases: 'show legend' / 'show the legend' / 'show key' / 'with legend' / 'with a legend' -> true; 'hide legend' / 'no legend' / 'without legend' / 'remove legend' -> false","tier":"presentation"},"categoryField":{"type":"string","default":"status","label":"Group / categorize / bucket / split by field","description":"Entity field whose values become the chart's category buckets. Set this when the user voices 'group by X' / 'categorize by X' / 'bucket by X' / 'split by X' / 'break down by X' for any non-time field X (for time-units, set period + timeAxis=true instead).","synonyms":"regroup / rebucket / categorize / breakdown by / split by / segment by. user phrases: 'group by status' -> categoryField=status; 'group by region' / 'by region' -> categoryField=region; 'group by category' / 'by category' -> categoryField=category; 'group by product' / 'by product' -> categoryField=product; 'group by month' / 'by month' -> categoryField=month (when explicitly requested as a category, not a time bucket); 'split by X' / 'break down by X' / 'segment by X' / 'bucket by X' -> categoryField=X","tier":"presentation"},"drillEvent":{"type":"event","default":"","label":"Drill event","description":"Event emitted when a user clicks a chart point","synonyms":"click-through navigation event. user phrases: 'on click navigate to X' / 'drill into X' / 'when clicked open X' -> X event name","tier":"internal"},"title":{"type":"string","default":"Distribution","label":"Title","description":"Heading shown above the chart","synonyms":"the chart's header text. user phrases: 'rename to X' / 'title it X' / 'change the title to X' / 'call it X' -> X","tier":"presentation"},"showValues":{"type":"boolean","default":false,"label":"Show values","description":"Render the numeric value on top of each data point","synonyms":"user phrases: 'show values' / 'show numbers on bars' / 'with data labels' / 'label the bars' -> true; 'hide values' / 'no labels' -> false","tier":"presentation"},"series":{"type":"[SeriesSpec]","default":[],"label":"Series","description":"Pre-formatted multi-series spec for stacked or layered charts","synonyms":"multiple lines / bars per category. user phrases: 'compare X and Y' -> add two series entries","tier":"presentation","items":{"type":"object","properties":{"dashed":{"name":"dashed","type":"boolean","required":false},"color":{"name":"color","type":"string","required":false},"name":{"name":"name","type":"string","required":true},"data":{"name":"data","type":"array","required":true,"items":{"type":"object","properties":{"value":{"name":"value","type":"number","required":true},"label":{"name":"label","type":"string","required":true}}}}}}},"valueField":{"type":"string","default":"","label":"Value field","description":"Numeric field aggregated per bucket (blank = row count)","synonyms":"the numeric column to aggregate. empty string counts rows. user phrases: 'sum revenue' -> valueField=revenue + aggregation=sum","tier":"presentation"},"timeField":{"type":"string","default":"date","label":"Date field","description":"Entity field used as the time axis when timeAxis is on","synonyms":"the date / timestamp / created-at column. set when timeAxis=true","tier":"presentation"},"period":{"type":"string","default":"month","label":"Group by month / quarter / week / day / year","description":"Group by month, quarter, week, day, or year — the calendar bucket the chart groups data into. Set ALONGSIDE timeAxis=true whenever the user says 'group by <time-unit>' or 'by <time-unit>' or 'rebucket to <time-unit>' or 'instead of <other-time-unit>'.","synonyms":"regroup / rebucket / change bucket / group differently. user phrases: 'group by month' / 'by month' / 'monthly' / 'monthly buckets' / 'switch to monthly' / 'instead of quarter' -> month; 'group by quarter' / 'by quarter' / 'quarterly' -> quarter; 'group by week' / 'by week' / 'weekly' / 'weekly buckets' -> week; 'group by day' / 'by day' / 'daily' / 'daily buckets' -> day; 'group by year' / 'by year' / 'yearly' / 'annually' -> year. Whenever the user voices 'group by <time-unit>' BOTH period AND timeAxis=true should be set.","tier":"presentation","values":["day","week","month","quarter","year"]},"categoryLabels":{"type":"Map<string,string>","default":{},"label":"Category labels","description":"Display name for each category key (such as a stage key to its translated name); read only when rendering, so the names may be translated. A key without an entry shows as itself","tier":"presentation","items":{"type":"string"}},"filterField":{"type":"string","default":"","label":"Only count rows where field","description":"Row field a row must match to be charted (blank = every row), compared with filterValue — e.g. status + paid charts paid invoices only","synonyms":"only include, where, filter by, restrict to. user phrases: 'only paid invoices' -> filterField=status + filterValue=paid; 'just the open deals' -> filterField=status + filterValue=open","tier":"presentation"},"chartType":{"type":"string","default":"bar","label":"Chart type","description":"Visual format for the rendered chart","synonyms":"bar = vertical bars, line = connected line, pie = pie chart, donut = pie with hole, area = filled area chart, histogram = frequency distribution, scatter = XY scatter. user phrases: 'switch to donut' / 'make it a donut' / 'as a donut chart' -> donut; 'use a pie chart' -> pie; 'show as line' / 'line chart' -> line; 'as bars' / 'bar chart' -> bar","tier":"presentation","values":["bar","line","pie","area","donut","histogram","scatter"]},"sortField":{"type":"string","default":"none","label":"Sort by","description":"Order points by value, label, or leave unsorted","synonyms":"user phrases: 'sort by value' / 'order by amount' -> value; 'sort alphabetically' / 'sort by name' -> label; 'no sort' / 'leave order' -> none","tier":"presentation","values":["value","label","none"]},"limit":{"type":"number","default":0,"label":"Top N","description":"Keep only the first N points after sorting (0 = all)","synonyms":"user phrases: 'top 5' -> 5; 'top 10' -> 10; 'first 3' -> 3; 'all' / 'no limit' -> 0; 'show all' -> 0","tier":"presentation"},"height":{"type":"number","default":280,"label":"Chart height","description":"Pixel height of the rendered chart","synonyms":"vertical size in pixels. user phrases: 'taller' / 'make it taller' / 'increase height' / 'bigger vertically' -> larger number (e.g. 300, 400); 'shorter' / 'smaller' -> smaller; 'set height to 300' / '300px tall' -> 300","tier":"presentation"},"viewPattern":{"type":"pattern","default":"chart","label":"Render pattern","description":"UI pattern used to draw the chart","synonyms":"internal pattern selector. user prompts rarely target this directly — pattern selection is upstream","tier":"internal"},"sortDir":{"type":"string","default":"desc","label":"Sort direction","description":"Ascending or descending order for the sort field","synonyms":"asc = ascending = lowest-to-highest = low-to-high = smallest-first. desc = descending = highest-to-lowest = high-to-low = largest-first. user phrases: 'highest to lowest' / 'largest first' / 'descending' -> desc; 'lowest to highest' / 'smallest first' / 'ascending' -> asc","tier":"presentation","values":["asc","desc"]},"aggregation":{"type":"string","default":"count","label":"Aggregation","description":"How values within a bucket combine into one number","synonyms":"user phrases: 'count' / 'how many' -> count; 'total' / 'sum of' -> sum; 'average' / 'mean' -> avg; 'minimum' / 'lowest' -> min; 'maximum' / 'highest' -> max","tier":"presentation","values":["count","sum","avg","min","max"]},"stack":{"type":"string","default":"none","label":"Stacking","description":"Stack bars, normalize to 100%, or render side-by-side","synonyms":"user phrases: 'side by side' / 'grouped' -> none; 'stacked' / 'stack the bars' -> stack; 'percent stacked' / '100% stacked' / 'normalized' -> normalize","tier":"presentation","values":["none","stack","normalize"]},"timeAxis":{"type":"boolean","default":false,"label":"Time axis","description":"Group by timeField bucketed by period instead of categoryField","synonyms":"true means group by date / month / time. user phrases: 'group by month / week / year / date' -> set timeAxis=true; 'group by status / category' -> timeAxis=false","tier":"presentation"},"filterValue":{"type":"string","default":"","label":"Equals","description":"The value filterField must equal for a row to be charted","synonyms":"the kept value. user phrases: 'only paid' -> paid; 'just active ones' -> active","tier":"presentation"},"rowEntity":{"type":"entity","default":"GraphItem","label":"Entity of the rows","description":"The entity whose rows ITEMS_LOADED delivers; categoryField, timeField, filterField and valueField name fields of it","synonyms":"source entity, rows of, data entity","tier":"internal","refId":"ent_CH2BVH8WM4EA20H1YBGW6XH0BT"}},"scope":"instance"}],"pages":[{"name":"GraphItemGraphPage","id":"pag_M7H148WYQHFBRY366GHFAZJ06V","path":"/graphitems","traits":[{"ref":"GraphItemGraph","refId":"trt_H829K2T8PJ4B9FA6KE2A55WT7Z"}]}],"types":{"ChartPoint":[{"name":"label","type":"string","required":true},{"name":"value","type":"number","required":true}],"SeriesSpec":[{"name":"name","type":"string","required":true},{"name":"data","type":"[object]","required":true,"properties":[{"name":"label","type":"string","required":true},{"name":"value","type":"number","required":true}]},{"name":"color","type":"string"},{"name":"dashed","type":"boolean"}]}}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_CH2BVH8WM4EA20H1YBGW6XH0BT":{"id":"ent_CH2BVH8WM4EA20H1YBGW6XH0BT","kind":"entity","bakedName":"GraphItem","curName":"GraphItem","renames":[],"owner":"workspace"},"evt_6D0R28J6NP3AVDBT8QN6CA43HZ":{"id":"evt_6D0R28J6NP3AVDBT8QN6CA43HZ","kind":"event","bakedName":"ITEMS_LOADED","curName":"ITEMS_LOADED","renames":[],"owner":"workspace","parent":"trt_H829K2T8PJ4B9FA6KE2A55WT7Z"},"evt_X7VJX2KF36QHKAW15AZ6DRPFH3":{"id":"evt_X7VJX2KF36QHKAW15AZ6DRPFH3","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_H829K2T8PJ4B9FA6KE2A55WT7Z"},"orb_6WKFQDBPEZV7FVE6E055TQRGBX":{"id":"orb_6WKFQDBPEZV7FVE6E055TQRGBX","kind":"orbital","bakedName":"GraphItemOrbital","curName":"GraphItemOrbital","renames":[],"owner":"workspace"},"pag_M7H148WYQHFBRY366GHFAZJ06V":{"id":"pag_M7H148WYQHFBRY366GHFAZJ06V","kind":"page","bakedName":"GraphItemGraphPage","curName":"GraphItemGraphPage","renames":[],"owner":"workspace"},"trt_H829K2T8PJ4B9FA6KE2A55WT7Z":{"id":"trt_H829K2T8PJ4B9FA6KE2A55WT7Z","kind":"trait","bakedName":"GraphItemGraph","curName":"GraphItemGraph","renames":[],"owner":"workspace"}}}}
1
+ {"name":"std-graphs","version":"2.0.0","description":"std-graphs — embeddable chart atom. ITEMS_LOADED keeps the rows whose @config.filterField equals @config.filterValue (blank = all), groups them by @config.categoryField, or (timeAxis=true) by the @config.period bucket of @config.timeField — rows without a time value (or, by category, without a category value) have no bucket to land in and are left out — and aggregates per bucket. Multi-series rendering via @config.series (preformatted ChartSeries shape). Histograms via chartType=histogram pass pre-binned @payload.data through unchanged. Stacked / 100% stacked bars via @config.stack. Post-process sort + limit. Clicking a data point emits UI:@config.drillEvent with { label, value, seriesLabel? }. Drop into a dashboard alongside std-stats / std-browse.","orbitals":[{"name":"GraphItemOrbital","id":"orb_6WKFQDBPEZV7FVE6E055TQRGBX","entity":{"name":"GraphItem","id":"ent_CH2BVH8WM4EA20H1YBGW6XH0BT","persistence":"runtime","fields":[{"name":"id","type":"string","required":true},{"name":"status","type":"string","default":""},{"name":"chartData","type":"array","default":[{"label":"Active","value":6},{"label":"Pending","value":3},{"label":"Inactive","value":1}],"items":{"type":"object","properties":{"value":{"name":"value","type":"number","required":true},"label":{"name":"label","type":"string","required":true}}},"intrinsic":true,"description":"The data points used to render the chart.","synonyms":"data, values, points"}]},"traits":[{"name":"GraphItemGraph","id":"trt_H829K2T8PJ4B9FA6KE2A55WT7Z","entityRebindable":true,"entityContract":{"requires":[],"provides":["chartData"]},"effectRow":[{"kind":"render-ui","resource":"main"},{"kind":"set","resource":"@entity.chartData"}],"category":"interaction","linkedEntity":"GraphItem","linkedEntityId":"ent_CH2BVH8WM4EA20H1YBGW6XH0BT","entityRefIds":{"GraphItem":"ent_CH2BVH8WM4EA20H1YBGW6XH0BT"},"stateMachine":{"states":[{"name":"idle","isInitial":true}],"events":[{"key":"INIT","id":"evt_X7VJX2KF36QHKAW15AZ6DRPFH3","name":"Initialize"},{"key":"ITEMS_LOADED","id":"evt_6D0R28J6NP3AVDBT8QN6CA43HZ","name":"Items Loaded","description":"Data has been retrieved and processed for display.","synonyms":"data ready, update, refresh, loaded","tier":"domain","payloadSchema":[{"name":"data","type":"[@entity(rowEntity)]"},{"name":"totalCount","type":"number"}],"listened":true}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_X7VJX2KF36QHKAW15AZ6DRPFH3","effects":[["render-ui","main",{"chartType":"@config.chartType","data":["array/map","@entity.chartData",["fn","p",{"label":["object/get","@config.categoryLabels","@p.label","@p.label"],"value":"@p.value"}]],"drillEvent":"@config.drillEvent","height":"@config.height","series":"@config.series","showLegend":"@config.showLegend","showValues":"@config.showValues","stack":"@config.stack","subtitle":"@config.subtitle","timeAxis":"@config.timeAxis","period":"@config.period","title":"@config.title","type":"@config.viewPattern"}]]},{"from":"idle","to":"idle","event":"ITEMS_LOADED","eventId":"evt_6D0R28J6NP3AVDBT8QN6CA43HZ","effects":[["let",[["rows",["if",["=","@config.filterField",""],"@payload.data",["array/filter","@payload.data",["fn","row",["=",["object/get","@row","@config.filterField"],"@config.filterValue"]]]]]],["set","@entity.chartData",["if",["=","@config.chartType","histogram"],["array/map","@rows",["fn","p",{"label":["object/get","@p","label"],"value":["object/get","@p","value"]}]],["array/map",["object/entries",["if","@config.timeAxis",["array/groupBy",["array/map",["array/filter","@rows",["fn","row",["validate/required",["object/get","@row","@config.timeField"]]]],["fn","row",["object/set","@row","periodStart",["time/startOf",["time/parse",["object/get","@row","@config.timeField"]],"@config.period"]]]],"periodStart"],["array/groupBy",["array/filter","@rows",["fn","row",["validate/required",["object/get","@row","@config.categoryField"]]]],"@config.categoryField"]]],["fn","entry",{"label":["object/get","@entry","0"],"value":["if",["=","@config.aggregation","sum"],["array/sum",["object/get","@entry","1"],"@config.valueField"],["if",["=","@config.aggregation","avg"],["array/avg",["object/get","@entry","1"],"@config.valueField"],["if",["=","@config.aggregation","min"],["array/min",["object/get","@entry","1"],"@config.valueField"],["if",["=","@config.aggregation","max"],["array/max",["object/get","@entry","1"],"@config.valueField"],["array/len",["object/get","@entry","1"]]]]]]}]]]]],["set","@entity.chartData",["if","@config.timeAxis",["array/sort","@entity.chartData","label","asc"],"@entity.chartData"]],["set","@entity.chartData",["if",["!=","@config.sortField","none"],["array/sort","@entity.chartData","@config.sortField","@config.sortDir"],"@entity.chartData"]],["set","@entity.chartData",["if",[">","@config.limit",0],["array/take","@entity.chartData","@config.limit"],"@entity.chartData"]],["render-ui","main",{"chartType":"@config.chartType","data":["array/map","@entity.chartData",["fn","p",{"label":["object/get","@config.categoryLabels","@p.label","@p.label"],"value":"@p.value"}]],"drillEvent":"@config.drillEvent","height":"@config.height","series":"@config.series","showLegend":"@config.showLegend","showValues":"@config.showValues","stack":"@config.stack","subtitle":"@config.subtitle","timeAxis":"@config.timeAxis","period":"@config.period","title":"@config.title","type":"@config.viewPattern"}]]}]},"config":{"categoryField":{"type":"string","default":"status","label":"Group / categorize / bucket / split by field","description":"Entity field whose values become the chart's category buckets. Set this when the user voices 'group by X' / 'categorize by X' / 'bucket by X' / 'split by X' / 'break down by X' for any non-time field X (for time-units, set period + timeAxis=true instead).","synonyms":"regroup / rebucket / categorize / breakdown by / split by / segment by. user phrases: 'group by status' -> categoryField=status; 'group by region' / 'by region' -> categoryField=region; 'group by category' / 'by category' -> categoryField=category; 'group by product' / 'by product' -> categoryField=product; 'group by month' / 'by month' -> categoryField=month (when explicitly requested as a category, not a time bucket); 'split by X' / 'break down by X' / 'segment by X' / 'bucket by X' -> categoryField=X","tier":"presentation"},"chartType":{"type":"string","default":"bar","label":"Chart type","description":"Visual format for the rendered chart","synonyms":"bar = vertical bars, line = connected line, pie = pie chart, donut = pie with hole, area = filled area chart, histogram = frequency distribution, scatter = XY scatter. user phrases: 'switch to donut' / 'make it a donut' / 'as a donut chart' -> donut; 'use a pie chart' -> pie; 'show as line' / 'line chart' -> line; 'as bars' / 'bar chart' -> bar","tier":"presentation","values":["bar","line","pie","area","donut","histogram","scatter"]},"period":{"type":"string","default":"month","label":"Group by month / quarter / week / day / year","description":"Group by month, quarter, week, day, or year — the calendar bucket the chart groups data into. Set ALONGSIDE timeAxis=true whenever the user says 'group by <time-unit>' or 'by <time-unit>' or 'rebucket to <time-unit>' or 'instead of <other-time-unit>'.","synonyms":"regroup / rebucket / change bucket / group differently. user phrases: 'group by month' / 'by month' / 'monthly' / 'monthly buckets' / 'switch to monthly' / 'instead of quarter' -> month; 'group by quarter' / 'by quarter' / 'quarterly' -> quarter; 'group by week' / 'by week' / 'weekly' / 'weekly buckets' -> week; 'group by day' / 'by day' / 'daily' / 'daily buckets' -> day; 'group by year' / 'by year' / 'yearly' / 'annually' -> year. Whenever the user voices 'group by <time-unit>' BOTH period AND timeAxis=true should be set.","tier":"presentation","values":["day","week","month","quarter","year"]},"height":{"type":"number","default":280,"label":"Chart height","description":"Pixel height of the rendered chart","synonyms":"vertical size in pixels. user phrases: 'taller' / 'make it taller' / 'increase height' / 'bigger vertically' -> larger number (e.g. 300, 400); 'shorter' / 'smaller' -> smaller; 'set height to 300' / '300px tall' -> 300","tier":"presentation"},"rowEntity":{"type":"entity","default":"GraphItem","label":"Entity of the rows","description":"The entity whose rows ITEMS_LOADED delivers; categoryField, timeField, filterField and valueField name fields of it","synonyms":"source entity, rows of, data entity","tier":"internal","refId":"ent_CH2BVH8WM4EA20H1YBGW6XH0BT"},"limit":{"type":"number","default":0,"label":"Top N","description":"Keep only the first N points after sorting (0 = all)","synonyms":"user phrases: 'top 5' -> 5; 'top 10' -> 10; 'first 3' -> 3; 'all' / 'no limit' -> 0; 'show all' -> 0","tier":"presentation"},"filterField":{"type":"string","default":"","label":"Only count rows where field","description":"Row field a row must match to be charted (blank = every row), compared with filterValue — e.g. status + paid charts paid invoices only","synonyms":"only include, where, filter by, restrict to. user phrases: 'only paid invoices' -> filterField=status + filterValue=paid; 'just the open deals' -> filterField=status + filterValue=open","tier":"presentation"},"valueField":{"type":"string","default":"","label":"Value field","description":"Numeric field aggregated per bucket (blank = row count)","synonyms":"the numeric column to aggregate. empty string counts rows. user phrases: 'sum revenue' -> valueField=revenue + aggregation=sum","tier":"presentation"},"showValues":{"type":"boolean","default":false,"label":"Show values","description":"Render the numeric value on top of each data point","synonyms":"user phrases: 'show values' / 'show numbers on bars' / 'with data labels' / 'label the bars' -> true; 'hide values' / 'no labels' -> false","tier":"presentation"},"title":{"type":"string","default":"Distribution","label":"Title","description":"Heading shown above the chart","synonyms":"the chart's header text. user phrases: 'rename to X' / 'title it X' / 'change the title to X' / 'call it X' -> X","tier":"presentation"},"showLegend":{"type":"boolean","default":true,"label":"Show legend","description":"Display the series legend","synonyms":"true shows the color key. user phrases: 'show legend' / 'show the legend' / 'show key' / 'with legend' / 'with a legend' -> true; 'hide legend' / 'no legend' / 'without legend' / 'remove legend' -> false","tier":"presentation"},"viewPattern":{"type":"pattern","default":"chart","label":"Render pattern","description":"UI pattern used to draw the chart","synonyms":"internal pattern selector. user prompts rarely target this directly — pattern selection is upstream","tier":"internal"},"stack":{"type":"string","default":"none","label":"Stacking","description":"Stack bars, normalize to 100%, or render side-by-side","synonyms":"user phrases: 'side by side' / 'grouped' -> none; 'stacked' / 'stack the bars' -> stack; 'percent stacked' / '100% stacked' / 'normalized' -> normalize","tier":"presentation","values":["none","stack","normalize"]},"filterValue":{"type":"string","default":"","label":"Equals","description":"The value filterField must equal for a row to be charted","synonyms":"the kept value. user phrases: 'only paid' -> paid; 'just active ones' -> active","tier":"presentation"},"sortDir":{"type":"string","default":"desc","label":"Sort direction","description":"Ascending or descending order for the sort field","synonyms":"asc = ascending = lowest-to-highest = low-to-high = smallest-first. desc = descending = highest-to-lowest = high-to-low = largest-first. user phrases: 'highest to lowest' / 'largest first' / 'descending' -> desc; 'lowest to highest' / 'smallest first' / 'ascending' -> asc","tier":"presentation","values":["asc","desc"]},"timeAxis":{"type":"boolean","default":false,"label":"Time axis","description":"Group by timeField bucketed by period instead of categoryField","synonyms":"true means group by date / month / time. user phrases: 'group by month / week / year / date' -> set timeAxis=true; 'group by status / category' -> timeAxis=false","tier":"presentation"},"drillEvent":{"type":"event","default":"","label":"Drill event","description":"Event emitted when a user clicks a chart point","synonyms":"click-through navigation event. user phrases: 'on click navigate to X' / 'drill into X' / 'when clicked open X' -> X event name","tier":"internal"},"sortField":{"type":"string","default":"none","label":"Sort by","description":"Order points by value, label, or leave unsorted","synonyms":"user phrases: 'sort by value' / 'order by amount' -> value; 'sort alphabetically' / 'sort by name' -> label; 'no sort' / 'leave order' -> none","tier":"presentation","values":["value","label","none"]},"subtitle":{"type":"string","default":"Counts per category","label":"Subtitle","description":"Secondary line below the title","synonyms":"secondary header below the title. user phrases: 'with subtitle X' / 'set subtitle to X' -> X","tier":"presentation"},"series":{"type":"[SeriesSpec]","default":[],"label":"Series","description":"Pre-formatted multi-series spec for stacked or layered charts","synonyms":"multiple lines / bars per category. user phrases: 'compare X and Y' -> add two series entries","tier":"presentation","items":{"type":"object","properties":{"name":{"name":"name","type":"string","required":true},"dashed":{"name":"dashed","type":"boolean","required":false},"color":{"name":"color","type":"string","required":false},"data":{"name":"data","type":"array","required":true,"items":{"type":"object","properties":{"label":{"name":"label","type":"string","required":true},"value":{"name":"value","type":"number","required":true}}}}}}},"timeField":{"type":"string","default":"date","label":"Date field","description":"Entity field used as the time axis when timeAxis is on","synonyms":"the date / timestamp / created-at column. set when timeAxis=true","tier":"presentation"},"aggregation":{"type":"string","default":"count","label":"Aggregation","description":"How values within a bucket combine into one number","synonyms":"user phrases: 'count' / 'how many' -> count; 'total' / 'sum of' -> sum; 'average' / 'mean' -> avg; 'minimum' / 'lowest' -> min; 'maximum' / 'highest' -> max","tier":"presentation","values":["count","sum","avg","min","max"]},"categoryLabels":{"type":"Map<string,string>","default":{},"label":"Category labels","description":"Display name for each category key (such as a stage key to its translated name); read only when rendering, so the names may be translated. A key without an entry shows as itself","tier":"presentation","items":{"type":"string"}}},"scope":"instance"}],"pages":[{"name":"GraphItemGraphPage","id":"pag_M7H148WYQHFBRY366GHFAZJ06V","path":"/graphitems","traits":[{"ref":"GraphItemGraph","refId":"trt_H829K2T8PJ4B9FA6KE2A55WT7Z"}]}],"types":{"ChartPoint":[{"name":"label","type":"string","required":true},{"name":"value","type":"number","required":true}],"SeriesSpec":[{"name":"name","type":"string","required":true},{"name":"data","type":"[object]","required":true,"properties":[{"name":"label","type":"string","required":true},{"name":"value","type":"number","required":true}]},{"name":"color","type":"string"},{"name":"dashed","type":"boolean"}]}}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_CH2BVH8WM4EA20H1YBGW6XH0BT":{"id":"ent_CH2BVH8WM4EA20H1YBGW6XH0BT","kind":"entity","bakedName":"GraphItem","curName":"GraphItem","renames":[],"owner":"workspace"},"evt_6D0R28J6NP3AVDBT8QN6CA43HZ":{"id":"evt_6D0R28J6NP3AVDBT8QN6CA43HZ","kind":"event","bakedName":"ITEMS_LOADED","curName":"ITEMS_LOADED","renames":[],"owner":"workspace","parent":"trt_H829K2T8PJ4B9FA6KE2A55WT7Z"},"evt_X7VJX2KF36QHKAW15AZ6DRPFH3":{"id":"evt_X7VJX2KF36QHKAW15AZ6DRPFH3","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_H829K2T8PJ4B9FA6KE2A55WT7Z"},"orb_6WKFQDBPEZV7FVE6E055TQRGBX":{"id":"orb_6WKFQDBPEZV7FVE6E055TQRGBX","kind":"orbital","bakedName":"GraphItemOrbital","curName":"GraphItemOrbital","renames":[],"owner":"workspace"},"pag_M7H148WYQHFBRY366GHFAZJ06V":{"id":"pag_M7H148WYQHFBRY366GHFAZJ06V","kind":"page","bakedName":"GraphItemGraphPage","curName":"GraphItemGraphPage","renames":[],"owner":"workspace"},"trt_H829K2T8PJ4B9FA6KE2A55WT7Z":{"id":"trt_H829K2T8PJ4B9FA6KE2A55WT7Z","kind":"trait","bakedName":"GraphItemGraph","curName":"GraphItemGraph","renames":[],"owner":"workspace"}}}}
@@ -1 +1 @@
1
- {"name":"std-hero","version":"1.0.0","description":"std-hero — the headline block at the top of a page, or a call-to-action banner further down. Optional eyebrow badge, headline, supporting text, up to two link actions, an optional copyable command, optional media below or beside the copy, and an optional backdrop scene behind it all. `look: banner` turns it into a contained call-to-action card. Links follow `href` (in-app path, #anchor, or absolute URL); each click also emits CTA_PRIMARY / CTA_SECONDARY with the href. Pick for landing, product, pricing and campaign pages.","orbitals":[{"name":"HeroOrbital","id":"orb_MBVGQYB2XGHEREFB3H81M35D5A","entity":{"name":"HeroView","id":"ent_BT65XAWW27E13PYJCA8MV78FZ2","persistence":"runtime","fields":[{"name":"id","type":"string","required":true}]},"traits":[{"name":"HeroRender","id":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE","entityRebindable":true,"entityContract":{"requires":[],"provides":[]},"effectRow":[{"kind":"emit","resource":"CTA_PRIMARY"},{"kind":"emit","resource":"CTA_SECONDARY"},{"kind":"render-ui","resource":"main"}],"category":"interaction","linkedEntity":"HeroView","linkedEntityId":"ent_BT65XAWW27E13PYJCA8MV78FZ2","entityRefIds":{"HeroView":"ent_BT65XAWW27E13PYJCA8MV78FZ2"},"emits":[{"event":"CTA_PRIMARY","eventId":"evt_5QJNA2NH65RK2QS626SSGZ1MZA","description":"The primary action was clicked; carries its href.","synonyms":"primary cta, main button, get started click","tier":"domain","scope":"external","payloadSchema":[{"name":"href","type":"string"}]},{"event":"CTA_SECONDARY","eventId":"evt_KD0A42KSQ3WVHHF36VPCP62HYB","description":"The secondary action was clicked; carries its href.","synonyms":"secondary cta, second button, learn more click","tier":"domain","scope":"external","payloadSchema":[{"name":"href","type":"string"}]}],"stateMachine":{"states":[{"name":"idle","isInitial":true}],"events":[{"key":"INIT","id":"evt_CSQY5ZHP19V0MM9S697TVHQF1W","name":"Initialize"},{"key":"HERO_PRIMARY","id":"evt_7CMXAJP2QH1BRRH4443ZAP4RJJ","name":"Hero Primary","description":"Primary action button click.","tier":"internal","payloadSchema":[{"name":"href","type":"string"}],"listened":true},{"key":"HERO_SECONDARY","id":"evt_MPTJAPZFZBQZNTJDKARF1KKFP5","name":"Hero Secondary","description":"Secondary action button click.","tier":"internal","payloadSchema":[{"name":"href","type":"string"}],"listened":true},{"key":"CTA_PRIMARY","id":"evt_5QJNA2NH65RK2QS626SSGZ1MZA","name":"Cta Primary","description":"The primary action was clicked; carries its href.","synonyms":"primary cta, main button, get started click","tier":"domain","payloadSchema":[{"name":"href","type":"string"}]},{"key":"CTA_SECONDARY","id":"evt_KD0A42KSQ3WVHHF36VPCP62HYB","name":"Cta Secondary","description":"The secondary action was clicked; carries its href.","synonyms":"secondary cta, second button, learn more click","tier":"domain","payloadSchema":[{"name":"href","type":"string"}]}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_CSQY5ZHP19V0MM9S697TVHQF1W","effects":[["if",["==","@config.mediaPosition","side"],["render-ui","main","@config.sideContent"],["render-ui","main","@config.stackedContent"]]]},{"from":"idle","to":"idle","event":"HERO_PRIMARY","eventId":"evt_7CMXAJP2QH1BRRH4443ZAP4RJJ","effects":[["emit","CTA_PRIMARY",{"href":"@payload.href"}]]},{"from":"idle","to":"idle","event":"HERO_SECONDARY","eventId":"evt_MPTJAPZFZBQZNTJDKARF1KKFP5","effects":[["emit","CTA_SECONDARY",{"href":"@payload.href"}]]}]},"config":{"alignment":{"type":"string","default":"center","label":"Alignment","description":"Center the copy, or align it to the start edge","tier":"presentation","values":["center","start"]},"edgeColor":{"type":"string","default":"background","label":"Edge fill","description":"The surface of the neighbouring section, which fills the cut","tier":"presentation","values":["background","muted","surface","gradient","inverse"]},"texture":{"type":"boolean","default":false,"label":"Texture","description":"Lay the theme's texture over the block","tier":"presentation"},"copyContent":{"type":"render-ui","default":{"type":"stack","direction":"vertical","gap":"lg","align":["if",["==","@config.alignment","center"],"center","start"],"children":[{"type":"badge","label":"@config.eyebrow","variant":"primary","size":"md"},{"type":"typography","content":"@config.headline","variant":["if",["==","@config.look","hero"],"h1","h2"],"weight":"bold","align":["if",["==","@config.alignment","center"],"center","left"],"className":"tracking-tight text-balance"},{"type":"typography","content":"@config.lede","variant":"large","color":["if",["==","@config.look","header"],"primary","muted"],"align":["if",["==","@config.alignment","center"],"center","left"],"className":["if",["==","@config.lede",""],"hidden","max-w-2xl text-pretty"]},{"type":"stack","direction":"horizontal","gap":"md","wrap":true,"justify":["if",["==","@config.alignment","center"],"center","start"],"className":["if",["==","@config.primaryLabel",""],["if",["==","@config.secondaryLabel",""],"hidden","pt-2"],"pt-2"],"children":[{"type":"button","label":"@config.primaryLabel","href":"@config.primaryHref","variant":"primary","size":"lg","action":"HERO_PRIMARY","actionPayload":{"href":"@config.primaryHref"},"className":["if",["==","@config.primaryLabel",""],"hidden",""]},{"type":"button","label":"@config.secondaryLabel","href":"@config.secondaryHref","variant":"secondary","size":"lg","action":"HERO_SECONDARY","actionPayload":{"href":"@config.secondaryHref"},"className":["if",["==","@config.secondaryLabel",""],"hidden",""]}]},{"type":"box","fullWidth":true,"className":["if",["==","@config.command",""],"hidden","max-w-xl"],"children":[{"type":"code-block","code":"@config.command","language":"bash","showLanguageBadge":false,"showCopyButton":true}]}]},"label":"Copy block","tier":"internal"},"headline":{"type":"string","default":"Build what you mean","label":"Headline","description":"Main headline","synonyms":"title, heading","tier":"presentation"},"height":{"type":"string","default":"auto","label":"Height","description":"auto fits the copy; tall fills most of the screen with the copy centred, for a hero over a backdrop scene","tier":"presentation","values":["auto","tall"]},"mediaSrc":{"type":"string","default":"","label":"Media image","description":"Screenshot or illustration URL; empty hides it","synonyms":"hero image, screenshot, picture","tier":"presentation"},"lede":{"type":"string","default":"","label":"Supporting text","description":"One or two sentences under the headline; empty hides it","synonyms":"subtitle, subheading, description, tagline","tier":"presentation"},"illustration":{"type":"string","default":"","label":"Illustration","description":"Inline SVG shown beside or below the copy instead of the media image; empty uses the media image","synonyms":"artwork, graphic, drawing, svg","tier":"presentation"},"backgroundPosition":{"type":"string","default":"center","label":"Background photo focus","description":"Which part of the photo stays visible when it is cropped","tier":"presentation","values":["center","top","bottom","left","right"]},"primaryHref":{"type":"string","default":"#","label":"Primary action link","description":"In-app path, #anchor, or absolute URL","tier":"presentation"},"backdropContent":{"type":"render-ui","default":{"type":"box","className":"hidden"},"label":"Backdrop","description":"A scene behind the whole block, such as an animated canvas; it fills the block, never takes clicks, and the copy stays on top. Empty by default.","tier":"presentation"},"surface":{"type":"string","default":"plain","label":"Surface","description":"Background behind the block: plain, muted, a soft theme gradient (accent), inverted colors (inverse), or a photo (image, set Background photo)","tier":"presentation","values":["plain","muted","accent","inverse","image"]},"secondaryHref":{"type":"string","default":"","label":"Secondary action link","description":"In-app path, #anchor, or absolute URL","tier":"presentation"},"command":{"type":"string","default":"","label":"Command","description":"A shell command shown in a copyable code box under the actions, e.g. an install one-liner; empty hides it","synonyms":"install command, cli, terminal snippet","tier":"presentation"},"secondaryLabel":{"type":"string","default":"","label":"Secondary action label","description":"Empty hides the secondary action","tier":"presentation"},"sideContent":{"type":"render-ui","default":{"type":"box","paddingY":["if",["==","@config.look","hero"],"2xl",["if",["==","@config.look","banner"],"xl","lg"]],"bg":["if",["==","@config.surface","muted"],"muted",["if",["==","@config.surface","accent"],"gradient",["if",["or",["==","@config.surface","inverse"],["==","@config.surface","image"]],"inverse","transparent"]]],"rounded":["if",["==","@config.look","header"],"2xl","none"],"edgeTop":"@config.edgeTop","edgeBottom":"@config.edgeBottom","edgeColor":"@config.edgeColor","texture":"@config.texture","fullWidth":true,"position":"relative","overflow":"hidden","className":["if",["==","@config.height","tall"],"flex min-h-[80vh] items-center",""],"children":[{"type":"box","position":"absolute","className":"inset-0 pointer-events-none","aria-hidden":true,"children":[{"type":"image","src":"@config.backgroundSrc","alt":"","fit":"cover","position":"@config.backgroundPosition","priority":["==","@config.look","hero"],"className":"h-full"},{"type":"box","className":["if",["==","@config.surface","image"],"band-scrim","hidden"]},"@config.backdropContent"]},{"type":"box","position":"relative","fullWidth":true,"children":[{"type":"container","size":"xl","maxWidth":"xl","padding":"lg","children":[{"type":"box","padding":["if",["==","@config.look","banner"],"xl","none"],"rounded":["if",["==","@config.look","banner"],"2xl","none"],"border":["and",["==","@config.look","banner"],["==","@config.surface","plain"]],"bg":["if",["and",["==","@config.look","banner"],["==","@config.surface","plain"]],"muted","transparent"],"children":[{"type":"split","ratio":"1:1","gap":"xl","align":"center","children":["@config.copyContent",["if",["==","@config.illustration",""],"@config.mediaContent","@config.illustrationContent"]]}]}]}]}]},"label":"Side-by-side body","tier":"internal"},"mediaContent":{"type":"render-ui","default":{"type":"image","src":"@config.mediaSrc","alt":"@config.mediaAlt","rounded":"xl","bordered":true,"loading":"eager"},"label":"Media block","tier":"internal"},"look":{"type":"string","default":"hero","label":"Look","description":"hero = full-width page opener with an h1; banner = contained call-to-action with an h2, drawn as a card on a plain band, and straight on the band when `surface` colors it; header = compact opener at the top of an app page","synonyms":"cta banner, call to action, callout, page header, masthead","tier":"presentation","values":["hero","banner","header"]},"stackedContent":{"type":"render-ui","default":{"type":"box","paddingY":["if",["==","@config.look","hero"],"2xl",["if",["==","@config.look","banner"],"xl","lg"]],"bg":["if",["==","@config.surface","muted"],"muted",["if",["==","@config.surface","accent"],"gradient",["if",["or",["==","@config.surface","inverse"],["==","@config.surface","image"]],"inverse","transparent"]]],"rounded":["if",["==","@config.look","header"],"2xl","none"],"edgeTop":"@config.edgeTop","edgeBottom":"@config.edgeBottom","edgeColor":"@config.edgeColor","texture":"@config.texture","fullWidth":true,"position":"relative","overflow":"hidden","className":["if",["==","@config.height","tall"],"flex min-h-[80vh] items-center",""],"children":[{"type":"box","position":"absolute","className":"inset-0 pointer-events-none","aria-hidden":true,"children":[{"type":"image","src":"@config.backgroundSrc","alt":"","fit":"cover","position":"@config.backgroundPosition","priority":["==","@config.look","hero"],"className":"h-full"},{"type":"box","className":["if",["==","@config.surface","image"],"band-scrim","hidden"]},"@config.backdropContent"]},{"type":"box","position":"relative","fullWidth":true,"children":[{"type":"container","size":"xl","maxWidth":"xl","padding":"lg","children":[{"type":"box","padding":["if",["==","@config.look","banner"],"xl","none"],"rounded":["if",["==","@config.look","banner"],"2xl","none"],"border":["and",["==","@config.look","banner"],["==","@config.surface","plain"]],"bg":["if",["and",["==","@config.look","banner"],["==","@config.surface","plain"]],"muted","transparent"],"children":[{"type":"stack","direction":"vertical","gap":"2xl","align":["if",["==","@config.alignment","center"],"center","stretch"],"children":["@config.copyContent",["if",["==","@config.illustration",""],"@config.mediaContent","@config.illustrationContent"]]}]}]}]}]},"label":"Stacked body","tier":"internal"},"edgeBottom":{"type":"string","default":"none","label":"Bottom edge","description":"Shape cut into the bottom of the block; curve uses the theme's shape","tier":"presentation","values":["none","curve","wave","arc","tilt","step","scallop"]},"mediaPosition":{"type":"string","default":"below","label":"Media position","description":"Below the copy, or beside it on wide screens","tier":"presentation","values":["below","side"]},"backgroundSrc":{"type":"string","default":"","label":"Background photo","description":"Photo URL filling the block behind the copy when the surface is image","synonyms":"background image, hero photo, cover photo","tier":"presentation"},"primaryLabel":{"type":"string","default":"Get started","label":"Primary action label","description":"Empty hides the primary action","tier":"presentation"},"edgeTop":{"type":"string","default":"none","label":"Top edge","description":"Shape cut into the top of the block; curve uses the theme's shape","tier":"presentation","values":["none","curve","wave","arc","tilt","step","scallop"]},"illustrationContent":{"type":"render-ui","default":{"type":"animated-graphic","svgContent":"@config.illustration","animation":"draw","animate":true,"width":"100%","height":["if",["==","@config.look","header"],200,380],"alt":""},"label":"Illustration block","tier":"internal"},"mediaAlt":{"type":"string","default":"","label":"Media alt text","tier":"presentation"},"eyebrow":{"type":"string","default":"","label":"Eyebrow","description":"Small badge above the headline; empty hides it","synonyms":"tag, kicker, label above title","tier":"presentation"}},"scope":"instance"}],"pages":[{"name":"HeroPage","id":"pag_06PK8H7JWJSE93JJV2DWRYZ268","path":"/hero","traits":[{"ref":"HeroRender","refId":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE"}]}]}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_BT65XAWW27E13PYJCA8MV78FZ2":{"id":"ent_BT65XAWW27E13PYJCA8MV78FZ2","kind":"entity","bakedName":"HeroView","curName":"HeroView","renames":[],"owner":"workspace"},"evt_5QJNA2NH65RK2QS626SSGZ1MZA":{"id":"evt_5QJNA2NH65RK2QS626SSGZ1MZA","kind":"event","bakedName":"CTA_PRIMARY","curName":"CTA_PRIMARY","renames":[],"owner":"workspace","parent":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE"},"evt_7CMXAJP2QH1BRRH4443ZAP4RJJ":{"id":"evt_7CMXAJP2QH1BRRH4443ZAP4RJJ","kind":"event","bakedName":"HERO_PRIMARY","curName":"HERO_PRIMARY","renames":[],"owner":"workspace","parent":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE"},"evt_CSQY5ZHP19V0MM9S697TVHQF1W":{"id":"evt_CSQY5ZHP19V0MM9S697TVHQF1W","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE"},"evt_KD0A42KSQ3WVHHF36VPCP62HYB":{"id":"evt_KD0A42KSQ3WVHHF36VPCP62HYB","kind":"event","bakedName":"CTA_SECONDARY","curName":"CTA_SECONDARY","renames":[],"owner":"workspace","parent":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE"},"evt_MPTJAPZFZBQZNTJDKARF1KKFP5":{"id":"evt_MPTJAPZFZBQZNTJDKARF1KKFP5","kind":"event","bakedName":"HERO_SECONDARY","curName":"HERO_SECONDARY","renames":[],"owner":"workspace","parent":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE"},"orb_MBVGQYB2XGHEREFB3H81M35D5A":{"id":"orb_MBVGQYB2XGHEREFB3H81M35D5A","kind":"orbital","bakedName":"HeroOrbital","curName":"HeroOrbital","renames":[],"owner":"workspace"},"pag_06PK8H7JWJSE93JJV2DWRYZ268":{"id":"pag_06PK8H7JWJSE93JJV2DWRYZ268","kind":"page","bakedName":"HeroPage","curName":"HeroPage","renames":[],"owner":"workspace"},"trt_BZYJF0H7DAKPNEAKEZREQGKFVE":{"id":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE","kind":"trait","bakedName":"HeroRender","curName":"HeroRender","renames":[],"owner":"workspace"}}}}
1
+ {"name":"std-hero","version":"1.0.0","description":"std-hero — the headline block at the top of a page, or a call-to-action banner further down. Optional eyebrow badge, headline, supporting text, up to two link actions, an optional copyable command, optional media below or beside the copy, and an optional backdrop scene behind it all. `look: banner` turns it into a contained call-to-action card. Links follow `href` (in-app path, #anchor, or absolute URL); each click also emits CTA_PRIMARY / CTA_SECONDARY with the href. Pick for landing, product, pricing and campaign pages.","orbitals":[{"name":"HeroOrbital","id":"orb_MBVGQYB2XGHEREFB3H81M35D5A","entity":{"name":"HeroView","id":"ent_BT65XAWW27E13PYJCA8MV78FZ2","persistence":"runtime","fields":[{"name":"id","type":"string","required":true}]},"traits":[{"name":"HeroRender","id":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE","entityRebindable":true,"entityContract":{"requires":[],"provides":[]},"effectRow":[{"kind":"emit","resource":"CTA_PRIMARY"},{"kind":"emit","resource":"CTA_SECONDARY"},{"kind":"render-ui","resource":"main"}],"category":"interaction","linkedEntity":"HeroView","linkedEntityId":"ent_BT65XAWW27E13PYJCA8MV78FZ2","entityRefIds":{"HeroView":"ent_BT65XAWW27E13PYJCA8MV78FZ2"},"emits":[{"event":"CTA_PRIMARY","eventId":"evt_5QJNA2NH65RK2QS626SSGZ1MZA","description":"The primary action was clicked; carries its href.","synonyms":"primary cta, main button, get started click","tier":"domain","scope":"external","payloadSchema":[{"name":"href","type":"string"}]},{"event":"CTA_SECONDARY","eventId":"evt_KD0A42KSQ3WVHHF36VPCP62HYB","description":"The secondary action was clicked; carries its href.","synonyms":"secondary cta, second button, learn more click","tier":"domain","scope":"external","payloadSchema":[{"name":"href","type":"string"}]}],"stateMachine":{"states":[{"name":"idle","isInitial":true}],"events":[{"key":"INIT","id":"evt_CSQY5ZHP19V0MM9S697TVHQF1W","name":"Initialize"},{"key":"HERO_PRIMARY","id":"evt_7CMXAJP2QH1BRRH4443ZAP4RJJ","name":"Hero Primary","description":"Primary action button click.","tier":"internal","payloadSchema":[{"name":"href","type":"string"}],"listened":true},{"key":"HERO_SECONDARY","id":"evt_MPTJAPZFZBQZNTJDKARF1KKFP5","name":"Hero Secondary","description":"Secondary action button click.","tier":"internal","payloadSchema":[{"name":"href","type":"string"}],"listened":true},{"key":"CTA_PRIMARY","id":"evt_5QJNA2NH65RK2QS626SSGZ1MZA","name":"Cta Primary","description":"The primary action was clicked; carries its href.","synonyms":"primary cta, main button, get started click","tier":"domain","payloadSchema":[{"name":"href","type":"string"}]},{"key":"CTA_SECONDARY","id":"evt_KD0A42KSQ3WVHHF36VPCP62HYB","name":"Cta Secondary","description":"The secondary action was clicked; carries its href.","synonyms":"secondary cta, second button, learn more click","tier":"domain","payloadSchema":[{"name":"href","type":"string"}]}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_CSQY5ZHP19V0MM9S697TVHQF1W","effects":[["if",["==","@config.mediaPosition","side"],["render-ui","main","@config.sideContent"],["render-ui","main","@config.stackedContent"]]]},{"from":"idle","to":"idle","event":"HERO_PRIMARY","eventId":"evt_7CMXAJP2QH1BRRH4443ZAP4RJJ","effects":[["emit","CTA_PRIMARY",{"href":"@payload.href"}]]},{"from":"idle","to":"idle","event":"HERO_SECONDARY","eventId":"evt_MPTJAPZFZBQZNTJDKARF1KKFP5","effects":[["emit","CTA_SECONDARY",{"href":"@payload.href"}]]}]},"config":{"lede":{"type":"string","default":"","label":"Supporting text","description":"One or two sentences under the headline; empty hides it","synonyms":"subtitle, subheading, description, tagline","tier":"presentation"},"headline":{"type":"string","default":"Build what you mean","label":"Headline","description":"Main headline","synonyms":"title, heading","tier":"presentation"},"primaryLabel":{"type":"string","default":"Get started","label":"Primary action label","description":"Empty hides the primary action","tier":"presentation"},"stackedContent":{"type":"render-ui","default":{"type":"box","paddingY":["if",["==","@config.look","hero"],"2xl",["if",["==","@config.look","banner"],"xl","lg"]],"bg":["if",["==","@config.surface","muted"],"muted",["if",["==","@config.surface","accent"],"gradient",["if",["or",["==","@config.surface","inverse"],["==","@config.surface","image"]],"inverse","transparent"]]],"rounded":["if",["==","@config.look","header"],"2xl","none"],"edgeTop":"@config.edgeTop","edgeBottom":"@config.edgeBottom","edgeColor":"@config.edgeColor","texture":"@config.texture","fullWidth":true,"position":"relative","overflow":"hidden","className":["if",["==","@config.height","tall"],"flex min-h-[80vh] items-center",""],"children":[{"type":"box","position":"absolute","className":"inset-0 pointer-events-none","aria-hidden":true,"children":[{"type":"image","src":"@config.backgroundSrc","alt":"","fit":"cover","position":"@config.backgroundPosition","priority":["==","@config.look","hero"],"className":"h-full"},{"type":"box","className":["if",["==","@config.surface","image"],"band-scrim","hidden"]},"@config.backdropContent"]},{"type":"box","position":"relative","fullWidth":true,"children":[{"type":"container","size":"xl","maxWidth":"xl","padding":"lg","children":[{"type":"box","padding":["if",["==","@config.look","banner"],"xl","none"],"rounded":["if",["==","@config.look","banner"],"2xl","none"],"border":["and",["==","@config.look","banner"],["==","@config.surface","plain"]],"bg":["if",["and",["==","@config.look","banner"],["==","@config.surface","plain"]],"muted","transparent"],"children":[{"type":"stack","direction":"vertical","gap":"2xl","align":["if",["==","@config.alignment","center"],"center","stretch"],"children":["@config.copyContent",["if",["==","@config.illustration",""],"@config.mediaContent","@config.illustrationContent"]]}]}]}]}]},"label":"Stacked body","tier":"internal"},"backgroundSrc":{"type":"string","default":"","label":"Background photo","description":"Photo URL filling the block behind the copy when the surface is image","synonyms":"background image, hero photo, cover photo","tier":"presentation"},"copyContent":{"type":"render-ui","default":{"type":"stack","direction":"vertical","gap":"lg","align":["if",["==","@config.alignment","center"],"center","start"],"children":[{"type":"badge","label":"@config.eyebrow","variant":"primary","size":"md"},{"type":"typography","content":"@config.headline","variant":["if",["==","@config.look","hero"],"h1","h2"],"weight":"bold","align":["if",["==","@config.alignment","center"],"center","left"],"className":"tracking-tight text-balance"},{"type":"typography","content":"@config.lede","variant":"large","color":["if",["==","@config.look","header"],"primary","muted"],"align":["if",["==","@config.alignment","center"],"center","left"],"className":["if",["==","@config.lede",""],"hidden","max-w-2xl text-pretty"]},{"type":"stack","direction":"horizontal","gap":"md","wrap":true,"justify":["if",["==","@config.alignment","center"],"center","start"],"className":["if",["==","@config.primaryLabel",""],["if",["==","@config.secondaryLabel",""],"hidden","pt-2"],"pt-2"],"children":[{"type":"button","label":"@config.primaryLabel","href":"@config.primaryHref","variant":"primary","size":"lg","action":"HERO_PRIMARY","actionPayload":{"href":"@config.primaryHref"},"className":["if",["==","@config.primaryLabel",""],"hidden",""]},{"type":"button","label":"@config.secondaryLabel","href":"@config.secondaryHref","variant":"secondary","size":"lg","action":"HERO_SECONDARY","actionPayload":{"href":"@config.secondaryHref"},"className":["if",["==","@config.secondaryLabel",""],"hidden",""]}]},{"type":"box","fullWidth":true,"className":["if",["==","@config.command",""],"hidden","max-w-xl"],"children":[{"type":"code-block","code":"@config.command","language":"bash","showLanguageBadge":false,"showCopyButton":true}]}]},"label":"Copy block","tier":"internal"},"illustration":{"type":"string","default":"","label":"Illustration","description":"Inline SVG shown beside or below the copy instead of the media image; empty uses the media image","synonyms":"artwork, graphic, drawing, svg","tier":"presentation"},"mediaSrc":{"type":"string","default":"","label":"Media image","description":"Screenshot or illustration URL; empty hides it","synonyms":"hero image, screenshot, picture","tier":"presentation"},"edgeBottom":{"type":"string","default":"none","label":"Bottom edge","description":"Shape cut into the bottom of the block; curve uses the theme's shape","tier":"presentation","values":["none","curve","wave","arc","tilt","step","scallop"]},"edgeTop":{"type":"string","default":"none","label":"Top edge","description":"Shape cut into the top of the block; curve uses the theme's shape","tier":"presentation","values":["none","curve","wave","arc","tilt","step","scallop"]},"alignment":{"type":"string","default":"center","label":"Alignment","description":"Center the copy, or align it to the start edge","tier":"presentation","values":["center","start"]},"texture":{"type":"boolean","default":false,"label":"Texture","description":"Lay the theme's texture over the block","tier":"presentation"},"mediaContent":{"type":"render-ui","default":{"type":"image","src":"@config.mediaSrc","alt":"@config.mediaAlt","rounded":"xl","bordered":true,"loading":"eager"},"label":"Media block","tier":"internal"},"backgroundPosition":{"type":"string","default":"center","label":"Background photo focus","description":"Which part of the photo stays visible when it is cropped","tier":"presentation","values":["center","top","bottom","left","right"]},"mediaAlt":{"type":"string","default":"","label":"Media alt text","tier":"presentation"},"look":{"type":"string","default":"hero","label":"Look","description":"hero = full-width page opener with an h1; banner = contained call-to-action with an h2, drawn as a card on a plain band, and straight on the band when `surface` colors it; header = compact opener at the top of an app page","synonyms":"cta banner, call to action, callout, page header, masthead","tier":"presentation","values":["hero","banner","header"]},"height":{"type":"string","default":"auto","label":"Height","description":"auto fits the copy; tall fills most of the screen with the copy centred, for a hero over a backdrop scene","tier":"presentation","values":["auto","tall"]},"edgeColor":{"type":"string","default":"background","label":"Edge fill","description":"The surface of the neighbouring section, which fills the cut","tier":"presentation","values":["background","muted","surface","gradient","inverse"]},"secondaryHref":{"type":"string","default":"","label":"Secondary action link","description":"In-app path, #anchor, or absolute URL","tier":"presentation"},"secondaryLabel":{"type":"string","default":"","label":"Secondary action label","description":"Empty hides the secondary action","tier":"presentation"},"primaryHref":{"type":"string","default":"#","label":"Primary action link","description":"In-app path, #anchor, or absolute URL","tier":"presentation"},"sideContent":{"type":"render-ui","default":{"type":"box","paddingY":["if",["==","@config.look","hero"],"2xl",["if",["==","@config.look","banner"],"xl","lg"]],"bg":["if",["==","@config.surface","muted"],"muted",["if",["==","@config.surface","accent"],"gradient",["if",["or",["==","@config.surface","inverse"],["==","@config.surface","image"]],"inverse","transparent"]]],"rounded":["if",["==","@config.look","header"],"2xl","none"],"edgeTop":"@config.edgeTop","edgeBottom":"@config.edgeBottom","edgeColor":"@config.edgeColor","texture":"@config.texture","fullWidth":true,"position":"relative","overflow":"hidden","className":["if",["==","@config.height","tall"],"flex min-h-[80vh] items-center",""],"children":[{"type":"box","position":"absolute","className":"inset-0 pointer-events-none","aria-hidden":true,"children":[{"type":"image","src":"@config.backgroundSrc","alt":"","fit":"cover","position":"@config.backgroundPosition","priority":["==","@config.look","hero"],"className":"h-full"},{"type":"box","className":["if",["==","@config.surface","image"],"band-scrim","hidden"]},"@config.backdropContent"]},{"type":"box","position":"relative","fullWidth":true,"children":[{"type":"container","size":"xl","maxWidth":"xl","padding":"lg","children":[{"type":"box","padding":["if",["==","@config.look","banner"],"xl","none"],"rounded":["if",["==","@config.look","banner"],"2xl","none"],"border":["and",["==","@config.look","banner"],["==","@config.surface","plain"]],"bg":["if",["and",["==","@config.look","banner"],["==","@config.surface","plain"]],"muted","transparent"],"children":[{"type":"split","ratio":"1:1","gap":"xl","align":"center","children":["@config.copyContent",["if",["==","@config.illustration",""],"@config.mediaContent","@config.illustrationContent"]]}]}]}]}]},"label":"Side-by-side body","tier":"internal"},"eyebrow":{"type":"string","default":"","label":"Eyebrow","description":"Small badge above the headline; empty hides it","synonyms":"tag, kicker, label above title","tier":"presentation"},"backdropContent":{"type":"render-ui","default":{"type":"box","className":"hidden"},"label":"Backdrop","description":"A scene behind the whole block, such as an animated canvas; it fills the block, never takes clicks, and the copy stays on top. Empty by default.","tier":"presentation"},"illustrationContent":{"type":"render-ui","default":{"type":"animated-graphic","svgContent":"@config.illustration","animation":"draw","animate":true,"width":"100%","height":["if",["==","@config.look","header"],200,380],"alt":""},"label":"Illustration block","tier":"internal"},"surface":{"type":"string","default":"plain","label":"Surface","description":"Background behind the block: plain, muted, a soft theme gradient (accent), inverted colors (inverse), or a photo (image, set Background photo)","tier":"presentation","values":["plain","muted","accent","inverse","image"]},"mediaPosition":{"type":"string","default":"below","label":"Media position","description":"Below the copy, or beside it on wide screens","tier":"presentation","values":["below","side"]},"command":{"type":"string","default":"","label":"Command","description":"A shell command shown in a copyable code box under the actions, e.g. an install one-liner; empty hides it","synonyms":"install command, cli, terminal snippet","tier":"presentation"}},"scope":"instance"}],"pages":[{"name":"HeroPage","id":"pag_06PK8H7JWJSE93JJV2DWRYZ268","path":"/hero","traits":[{"ref":"HeroRender","refId":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE"}]}]}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_BT65XAWW27E13PYJCA8MV78FZ2":{"id":"ent_BT65XAWW27E13PYJCA8MV78FZ2","kind":"entity","bakedName":"HeroView","curName":"HeroView","renames":[],"owner":"workspace"},"evt_5QJNA2NH65RK2QS626SSGZ1MZA":{"id":"evt_5QJNA2NH65RK2QS626SSGZ1MZA","kind":"event","bakedName":"CTA_PRIMARY","curName":"CTA_PRIMARY","renames":[],"owner":"workspace","parent":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE"},"evt_7CMXAJP2QH1BRRH4443ZAP4RJJ":{"id":"evt_7CMXAJP2QH1BRRH4443ZAP4RJJ","kind":"event","bakedName":"HERO_PRIMARY","curName":"HERO_PRIMARY","renames":[],"owner":"workspace","parent":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE"},"evt_CSQY5ZHP19V0MM9S697TVHQF1W":{"id":"evt_CSQY5ZHP19V0MM9S697TVHQF1W","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE"},"evt_KD0A42KSQ3WVHHF36VPCP62HYB":{"id":"evt_KD0A42KSQ3WVHHF36VPCP62HYB","kind":"event","bakedName":"CTA_SECONDARY","curName":"CTA_SECONDARY","renames":[],"owner":"workspace","parent":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE"},"evt_MPTJAPZFZBQZNTJDKARF1KKFP5":{"id":"evt_MPTJAPZFZBQZNTJDKARF1KKFP5","kind":"event","bakedName":"HERO_SECONDARY","curName":"HERO_SECONDARY","renames":[],"owner":"workspace","parent":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE"},"orb_MBVGQYB2XGHEREFB3H81M35D5A":{"id":"orb_MBVGQYB2XGHEREFB3H81M35D5A","kind":"orbital","bakedName":"HeroOrbital","curName":"HeroOrbital","renames":[],"owner":"workspace"},"pag_06PK8H7JWJSE93JJV2DWRYZ268":{"id":"pag_06PK8H7JWJSE93JJV2DWRYZ268","kind":"page","bakedName":"HeroPage","curName":"HeroPage","renames":[],"owner":"workspace"},"trt_BZYJF0H7DAKPNEAKEZREQGKFVE":{"id":"trt_BZYJF0H7DAKPNEAKEZREQGKFVE","kind":"trait","bakedName":"HeroRender","curName":"HeroRender","renames":[],"owner":"workspace"}}}}
@@ -1 +1 @@
1
- {"name":"std-home","version":"1.0.0","description":"std-home — the home page of an app: a welcome header, then an actionable overview gathered from the app's other pages. `homeLook` picks one of five layouts. Every look puts the headline figures directly under the greeting. For staff running the business: command (then actions, sections and shortcut tiles), briefing (then sections in the main column with actions and shortcut links in a side rail), launchpad (then big shortcut tiles before the sections). For customers: spotlight (a photo or gradient hero with a curved edge, then actions, shortcut tiles and their own items) and concierge (a centred greeting, then a grid of shortcut tiles and their items). Everything is actionable: `shortcuts` are links to other pages, `actions` are the organism's own operation triggers (open a create form, start a flow), and `sections` are lists whose rows act. When there are no sections yet the page shows an empty state that still offers every shortcut. Pick as the first page of any back office or customer experience.","orbitals":[{"name":"HomeOrbital","id":"orb_RRSM4C3N2ZTHFRFJBNBDTQ9FKQ","uses":[{"from":"std/behaviors/std-hero","as":"Hero"}],"entity":{"name":"HomeView","id":"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC","persistence":"runtime","fields":[{"name":"id","type":"string","required":true}]},"traits":[{"ref":"Hero.traits.HeroRender","id":"trt_SB0EBD408Q04BNE8A8P46C8N8J","name":"HomeHeader","linkedEntity":"HomeView","linkedEntityId":"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC","config":{"lede":{"type":"unknown","default":"@config.summary"},"headline":{"type":"unknown","default":"@config.greeting"},"alignment":{"type":"unknown","default":"start"},"primaryHref":{"type":"unknown","default":"@config.primaryActionHref"},"surface":{"type":"unknown","default":"plain"},"look":{"type":"unknown","default":"header"},"primaryLabel":{"type":"unknown","default":"@config.primaryActionLabel"},"texture":{"type":"unknown","default":true}}},{"ref":"Hero.traits.HeroRender","id":"trt_VDPRN8YCSE6CQ3ZFSJ4WZMFRNQ","name":"HomeHero","linkedEntity":"HomeView","linkedEntityId":"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC","config":{"edgeBottom":{"type":"unknown","default":"curve"},"primaryLabel":{"type":"unknown","default":"@config.primaryActionLabel"},"surface":{"type":"unknown","default":"@config.heroSurface"},"mediaPosition":{"type":"unknown","default":"side"},"primaryHref":{"type":"unknown","default":"@config.primaryActionHref"},"backgroundPosition":{"type":"unknown","default":"@config.backgroundPosition"},"look":{"type":"unknown","default":"hero"},"lede":{"type":"unknown","default":"@config.summary"},"edgeColor":{"type":"unknown","default":"background"},"backgroundSrc":{"type":"unknown","default":"@config.backgroundSrc"},"alignment":{"type":"unknown","default":"start"},"headline":{"type":"unknown","default":"@config.greeting"},"illustration":{"type":"unknown","default":"@config.illustration"}}},{"ref":"Hero.traits.HeroRender","id":"trt_2V8980WY3RF1W6M8K7QSVHK887","name":"HomeWelcome","linkedEntity":"HomeView","linkedEntityId":"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC","config":{"primaryLabel":{"type":"unknown","default":"@config.primaryActionLabel"},"surface":{"type":"unknown","default":"accent"},"look":{"type":"unknown","default":"banner"},"illustration":{"type":"unknown","default":"@config.illustration"},"primaryHref":{"type":"unknown","default":"@config.primaryActionHref"},"headline":{"type":"unknown","default":"@config.greeting"},"alignment":{"type":"unknown","default":"center"},"lede":{"type":"unknown","default":"@config.summary"}}},{"name":"HomeRender","id":"trt_J96FENH223H11JH8NEKT812Q5K","entityRebindable":true,"entityContract":{"requires":[],"provides":[]},"effectRow":[{"kind":"render-ui","resource":"main"}],"category":"interaction","linkedEntity":"HomeView","linkedEntityId":"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC","entityRefIds":{"HomeView":"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC"},"traitEmbedIds":{"HomeWelcome":"trt_2V8980WY3RF1W6M8K7QSVHK887","HomeHeader":"trt_SB0EBD408Q04BNE8A8P46C8N8J","HomeHero":"trt_VDPRN8YCSE6CQ3ZFSJ4WZMFRNQ"},"stateMachine":{"states":[{"name":"idle","isInitial":true}],"events":[{"key":"INIT","id":"evt_TVEV29BFNQQTVPBXDN5Z5DNQX4","name":"Initialize"}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_TVEV29BFNQQTVPBXDN5Z5DNQX4","effects":[["if",["==","@config.homeLook","briefing"],["render-ui","main","@config.briefingContent"],["if",["==","@config.homeLook","launchpad"],["render-ui","main","@config.launchpadContent"],["if",["==","@config.homeLook","spotlight"],["render-ui","main","@config.spotlightContent"],["if",["==","@config.homeLook","concierge"],["render-ui","main","@config.conciergeContent"],["render-ui","main","@config.commandContent"]]]]]]}]},"config":{"heroSurface":{"type":"string","default":"accent","label":"Hero background","description":"spotlight only: accent = the theme's gradient; image = the hero photo under a scrim","tier":"presentation","values":["accent","image"]},"summary":{"type":"string","default":"","label":"Summary","description":"One sentence under the greeting; empty hides it","tier":"presentation"},"shortcutList":{"type":"render-ui","default":{"type":"stack","direction":"vertical","gap":"xs","className":["if",["==",["array/len","@config.shortcuts"],0],"hidden",""],"children":["array/map","@config.shortcuts",["fn","s",{"type":"button","label":["object/get","@s","label",""],"href":["object/get","@s","href","#"],"icon":["object/get","@s","icon","arrow-right"],"variant":["if",["object/get","@s","primary",false],"primary","ghost"],"size":"md"}]]},"label":"Shortcut list","tier":"internal"},"backgroundSrc":{"type":"string","default":"","label":"Hero photo","description":"spotlight only: photo URL behind the greeting when the hero background is image","synonyms":"hero image, cover photo, background image","tier":"presentation"},"sectionColumn":{"type":"render-ui","default":{"type":"box","fullWidth":true,"children":[{"type":"empty-state","icon":"layout-dashboard","title":"@config.emptyTitle","description":"@config.emptyDescription","className":["if",["==",["array/len","@config.sections"],0],"","hidden"]},{"type":"stack","direction":"vertical","gap":"lg","className":["if",["==",["array/len","@config.sections"],0],"hidden",""],"children":"@config.sections"}]},"label":"Sections column","tier":"internal"},"spotlightContent":{"type":"render-ui","default":{"type":"stack","direction":"vertical","gap":"lg","children":["@trait.HomeHero","@config.kpiRow","@config.actionRow","@config.shortcutTiles","@config.sectionGrid"]},"label":"Spotlight layout","tier":"internal"},"shortcuts":{"type":"[HomeShortcut]","default":[],"label":"Shortcuts","description":"Links to the pages people go to most: label, href, optional icon, one-line description, button label and whether it is the primary one","synonyms":"quick links, go to, jump to, navigation tiles","tier":"domain","items":{"type":"object","properties":{"label":{"name":"label","type":"string","required":true},"description":{"name":"description","type":"string","required":false},"primary":{"name":"primary","type":"boolean","required":false},"actionLabel":{"name":"actionLabel","type":"string","required":false},"icon":{"name":"icon","type":"string","required":false},"href":{"name":"href","type":"string","required":true}}}},"kpis":{"type":"[trait]","default":[],"label":"Headline figures","description":"Stat tiles summarising the app, most important first (keep to about five); each entry is a @trait reference","synonyms":"kpis, metrics, stats, numbers","tier":"domain","items":{"type":"trait"}},"emptyTitle":{"type":"string","default":"Nothing here yet","label":"Empty title","description":"Shown in place of the sections while there are none","tier":"presentation"},"sections":{"type":"[trait]","default":[],"label":"Overview sections","description":"Short actionable lists and panels gathered from the app's pages (needs attention, recent, upcoming); each entry is a @trait reference","synonyms":"widgets, panels, recent, upcoming, activity, needs attention","tier":"domain","items":{"type":"trait"}},"homeLook":{"type":"string","default":"command","label":"Home look","description":"Figures always sit right under the greeting. Staff: command = then actions and sections; briefing = then sections in the main column with actions and shortcut links in a side rail; launchpad = then big shortcut tiles. Customers: spotlight = photo or gradient hero, then actions, tiles and their items; concierge = centred greeting, then shortcut tiles.","synonyms":"dashboard style, home layout, overview layout, admin home, customer home","tier":"presentation","values":["command","briefing","launchpad","spotlight","concierge"]},"conciergeContent":{"type":"render-ui","default":{"type":"stack","direction":"vertical","gap":"lg","children":["@trait.HomeWelcome","@config.kpiRow","@config.shortcutTiles","@config.actionRow","@config.sectionGrid"]},"label":"Concierge layout","tier":"internal"},"shortcutTiles":{"type":"render-ui","default":{"type":"simple-grid","minChildWidth":"220px","gap":"md","className":["if",["==",["array/len","@config.shortcuts"],0],"hidden",""],"children":["array/map","@config.shortcuts",["fn","s",{"type":"card","padding":"lg","children":[{"type":"stack","direction":"vertical","gap":"sm","align":"start","children":[{"type":"icon","name":["object/get","@s","icon","arrow-right"],"size":"lg","color":"primary"},{"type":"typography","variant":"h4","content":["object/get","@s","label",""]},{"type":"typography","variant":"body2","color":"muted","content":["object/get","@s","description",""]},{"type":"button","label":["object/get","@s","actionLabel","Open"],"href":["object/get","@s","href","#"],"variant":["if",["object/get","@s","primary",false],"primary","secondary"],"size":"sm","iconRight":"arrow-right"}]}]}]]},"label":"Shortcut tiles","tier":"internal"},"kpiRow":{"type":"render-ui","default":{"type":"simple-grid","minChildWidth":"180px","gap":"md","className":["if",["==",["array/len","@config.kpis"],0],"hidden",""],"children":"@config.kpis"},"label":"Figures row","tier":"internal"},"greeting":{"type":"string","default":"Welcome back","label":"Greeting","description":"Headline at the top of the home page","synonyms":"welcome, title, headline","tier":"presentation"},"launchpadContent":{"type":"render-ui","default":{"type":"stack","direction":"vertical","gap":"lg","children":["@trait.HomeHeader","@config.kpiRow","@config.actionRow","@config.shortcutTiles","@config.sectionGrid"]},"label":"Launchpad layout","tier":"internal"},"commandContent":{"type":"render-ui","default":{"type":"stack","direction":"vertical","gap":"lg","children":["@trait.HomeHeader","@config.kpiRow","@config.actionRow","@config.sectionGrid","@config.shortcutTiles"]},"label":"Command layout","tier":"internal"},"actionRow":{"type":"render-ui","default":{"type":"stack","direction":"horizontal","gap":"sm","wrap":true,"className":["if",["==",["array/len","@config.actions"],0],"hidden",""],"children":"@config.actions"},"label":"Action row","tier":"internal"},"primaryActionHref":{"type":"string","default":"","label":"Main action link","description":"Page the main action opens (in-app path or #anchor)","tier":"presentation"},"illustration":{"type":"string","default":"","label":"Illustration","description":"spotlight and concierge: inline SVG beside the greeting; empty hides it","tier":"presentation"},"actions":{"type":"[trait]","default":[],"label":"Actions","description":"The organism's own operation triggers, such as a button that opens a create form; each entry is a @trait reference","synonyms":"quick actions, create, new, start","tier":"domain","items":{"type":"trait"}},"sectionGrid":{"type":"render-ui","default":{"type":"box","fullWidth":true,"children":[{"type":"empty-state","icon":"layout-dashboard","title":"@config.emptyTitle","description":"@config.emptyDescription","className":["if",["==",["array/len","@config.sections"],0],"","hidden"]},{"type":"simple-grid","minChildWidth":"360px","gap":"lg","className":["if",["==",["array/len","@config.sections"],0],"hidden",""],"children":"@config.sections"}]},"label":"Sections grid","tier":"internal"},"emptyDescription":{"type":"string","default":"Start with one of the shortcuts above.","label":"Empty description","description":"Tells people what will appear here and how to start","tier":"presentation"},"briefingContent":{"type":"render-ui","default":{"type":"stack","direction":"vertical","gap":"lg","children":["@trait.HomeHeader","@config.kpiRow",{"type":"split","ratio":"2:1","gap":"lg","align":"start","children":["@config.sectionColumn",{"type":"stack","direction":"vertical","gap":"lg","children":["@config.actionRow","@config.shortcutList"]}]}]},"label":"Briefing layout","tier":"internal"},"primaryActionLabel":{"type":"string","default":"","label":"Main action","description":"Label of the one most important thing to do next, shown in the header; empty hides it","synonyms":"cta, primary button, get started","tier":"presentation"},"backgroundPosition":{"type":"string","default":"center","label":"Hero photo focus","description":"Which part of the photo stays visible when it is cropped","tier":"presentation","values":["center","top","bottom","left","right"]}},"scope":"instance"}],"pages":[{"name":"HomePage","id":"pag_2DG1FQ9M9JT4SB1MZB7W1HFFP8","path":"/home","traits":[{"ref":"HomeRender","refId":"trt_J96FENH223H11JH8NEKT812Q5K"}]}],"types":{"HomeShortcut":[{"name":"label","type":"string","required":true},{"name":"href","type":"string","required":true},{"name":"icon","type":"string"},{"name":"description","type":"string"},{"name":"actionLabel","type":"string"},{"name":"primary","type":"boolean"}]}}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC":{"id":"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC","kind":"entity","bakedName":"HomeView","curName":"HomeView","renames":[],"owner":"workspace"},"evt_TVEV29BFNQQTVPBXDN5Z5DNQX4":{"id":"evt_TVEV29BFNQQTVPBXDN5Z5DNQX4","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_J96FENH223H11JH8NEKT812Q5K"},"orb_RRSM4C3N2ZTHFRFJBNBDTQ9FKQ":{"id":"orb_RRSM4C3N2ZTHFRFJBNBDTQ9FKQ","kind":"orbital","bakedName":"HomeOrbital","curName":"HomeOrbital","renames":[],"owner":"workspace"},"pag_2DG1FQ9M9JT4SB1MZB7W1HFFP8":{"id":"pag_2DG1FQ9M9JT4SB1MZB7W1HFFP8","kind":"page","bakedName":"HomePage","curName":"HomePage","renames":[],"owner":"workspace"},"trt_2V8980WY3RF1W6M8K7QSVHK887":{"id":"trt_2V8980WY3RF1W6M8K7QSVHK887","kind":"trait","bakedName":"HomeWelcome","curName":"HomeWelcome","renames":[],"owner":"workspace"},"trt_J96FENH223H11JH8NEKT812Q5K":{"id":"trt_J96FENH223H11JH8NEKT812Q5K","kind":"trait","bakedName":"HomeRender","curName":"HomeRender","renames":[],"owner":"workspace"},"trt_SB0EBD408Q04BNE8A8P46C8N8J":{"id":"trt_SB0EBD408Q04BNE8A8P46C8N8J","kind":"trait","bakedName":"HomeHeader","curName":"HomeHeader","renames":[],"owner":"workspace"},"trt_VDPRN8YCSE6CQ3ZFSJ4WZMFRNQ":{"id":"trt_VDPRN8YCSE6CQ3ZFSJ4WZMFRNQ","kind":"trait","bakedName":"HomeHero","curName":"HomeHero","renames":[],"owner":"workspace"}}}}
1
+ {"name":"std-home","version":"1.0.0","description":"std-home — the home page of an app: a welcome header, then an actionable overview gathered from the app's other pages. `homeLook` picks one of five layouts. Every look puts the headline figures directly under the greeting. For staff running the business: command (then actions, sections and shortcut tiles), briefing (then sections in the main column with actions and shortcut links in a side rail), launchpad (then big shortcut tiles before the sections). For customers: spotlight (a photo or gradient hero with a curved edge, then actions, shortcut tiles and their own items) and concierge (a centred greeting, then a grid of shortcut tiles and their items). Everything is actionable: `shortcuts` are links to other pages, `actions` are the organism's own operation triggers (open a create form, start a flow), and `sections` are lists whose rows act. When there are no sections yet the page shows an empty state that still offers every shortcut. Pick as the first page of any back office or customer experience.","orbitals":[{"name":"HomeOrbital","id":"orb_RRSM4C3N2ZTHFRFJBNBDTQ9FKQ","uses":[{"from":"std/behaviors/std-hero","as":"Hero"}],"entity":{"name":"HomeView","id":"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC","persistence":"runtime","fields":[{"name":"id","type":"string","required":true}]},"traits":[{"ref":"Hero.traits.HeroRender","id":"trt_SB0EBD408Q04BNE8A8P46C8N8J","name":"HomeHeader","linkedEntity":"HomeView","linkedEntityId":"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC","config":{"primaryHref":{"type":"unknown","default":"@config.primaryActionHref"},"surface":{"type":"unknown","default":"plain"},"look":{"type":"unknown","default":"header"},"lede":{"type":"unknown","default":"@config.summary"},"alignment":{"type":"unknown","default":"start"},"headline":{"type":"unknown","default":"@config.greeting"},"texture":{"type":"unknown","default":true},"primaryLabel":{"type":"unknown","default":"@config.primaryActionLabel"}}},{"ref":"Hero.traits.HeroRender","id":"trt_VDPRN8YCSE6CQ3ZFSJ4WZMFRNQ","name":"HomeHero","linkedEntity":"HomeView","linkedEntityId":"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC","config":{"primaryHref":{"type":"unknown","default":"@config.primaryActionHref"},"headline":{"type":"unknown","default":"@config.greeting"},"mediaPosition":{"type":"unknown","default":"side"},"illustration":{"type":"unknown","default":"@config.illustration"},"primaryLabel":{"type":"unknown","default":"@config.primaryActionLabel"},"surface":{"type":"unknown","default":"@config.heroSurface"},"lede":{"type":"unknown","default":"@config.summary"},"alignment":{"type":"unknown","default":"start"},"edgeBottom":{"type":"unknown","default":"curve"},"edgeColor":{"type":"unknown","default":"background"},"backgroundSrc":{"type":"unknown","default":"@config.backgroundSrc"},"backgroundPosition":{"type":"unknown","default":"@config.backgroundPosition"},"look":{"type":"unknown","default":"hero"}}},{"ref":"Hero.traits.HeroRender","id":"trt_2V8980WY3RF1W6M8K7QSVHK887","name":"HomeWelcome","linkedEntity":"HomeView","linkedEntityId":"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC","config":{"alignment":{"type":"unknown","default":"center"},"lede":{"type":"unknown","default":"@config.summary"},"look":{"type":"unknown","default":"banner"},"headline":{"type":"unknown","default":"@config.greeting"},"primaryLabel":{"type":"unknown","default":"@config.primaryActionLabel"},"primaryHref":{"type":"unknown","default":"@config.primaryActionHref"},"illustration":{"type":"unknown","default":"@config.illustration"},"surface":{"type":"unknown","default":"accent"}}},{"name":"HomeRender","id":"trt_J96FENH223H11JH8NEKT812Q5K","entityRebindable":true,"entityContract":{"requires":[],"provides":[]},"effectRow":[{"kind":"render-ui","resource":"main"}],"category":"interaction","linkedEntity":"HomeView","linkedEntityId":"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC","entityRefIds":{"HomeView":"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC"},"traitEmbedIds":{"HomeHeader":"trt_SB0EBD408Q04BNE8A8P46C8N8J","HomeHero":"trt_VDPRN8YCSE6CQ3ZFSJ4WZMFRNQ","HomeWelcome":"trt_2V8980WY3RF1W6M8K7QSVHK887"},"stateMachine":{"states":[{"name":"idle","isInitial":true}],"events":[{"key":"INIT","id":"evt_TVEV29BFNQQTVPBXDN5Z5DNQX4","name":"Initialize"}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_TVEV29BFNQQTVPBXDN5Z5DNQX4","effects":[["if",["==","@config.homeLook","briefing"],["render-ui","main","@config.briefingContent"],["if",["==","@config.homeLook","launchpad"],["render-ui","main","@config.launchpadContent"],["if",["==","@config.homeLook","spotlight"],["render-ui","main","@config.spotlightContent"],["if",["==","@config.homeLook","concierge"],["render-ui","main","@config.conciergeContent"],["render-ui","main","@config.commandContent"]]]]]]}]},"config":{"emptyDescription":{"type":"string","default":"Start with one of the shortcuts above.","label":"Empty description","description":"Tells people what will appear here and how to start","tier":"presentation"},"actions":{"type":"[trait]","default":[],"label":"Actions","description":"The organism's own operation triggers, such as a button that opens a create form; each entry is a @trait reference","synonyms":"quick actions, create, new, start","tier":"domain","items":{"type":"trait"}},"sectionGrid":{"type":"render-ui","default":{"type":"box","fullWidth":true,"children":[{"type":"empty-state","icon":"layout-dashboard","title":"@config.emptyTitle","description":"@config.emptyDescription","className":["if",["==",["array/len","@config.sections"],0],"","hidden"]},{"type":"simple-grid","minChildWidth":"360px","gap":"lg","className":["if",["==",["array/len","@config.sections"],0],"hidden",""],"children":"@config.sections"}]},"label":"Sections grid","tier":"internal"},"sections":{"type":"[trait]","default":[],"label":"Overview sections","description":"Short actionable lists and panels gathered from the app's pages (needs attention, recent, upcoming); each entry is a @trait reference","synonyms":"widgets, panels, recent, upcoming, activity, needs attention","tier":"domain","items":{"type":"trait"}},"backgroundPosition":{"type":"string","default":"center","label":"Hero photo focus","description":"Which part of the photo stays visible when it is cropped","tier":"presentation","values":["center","top","bottom","left","right"]},"shortcutList":{"type":"render-ui","default":{"type":"stack","direction":"vertical","gap":"xs","className":["if",["==",["array/len","@config.shortcuts"],0],"hidden",""],"children":["array/map","@config.shortcuts",["fn","s",{"type":"button","label":["object/get","@s","label",""],"href":["object/get","@s","href","#"],"icon":["object/get","@s","icon","arrow-right"],"variant":["if",["object/get","@s","primary",false],"primary","ghost"],"size":"md"}]]},"label":"Shortcut list","tier":"internal"},"backgroundSrc":{"type":"string","default":"","label":"Hero photo","description":"spotlight only: photo URL behind the greeting when the hero background is image","synonyms":"hero image, cover photo, background image","tier":"presentation"},"homeLook":{"type":"string","default":"command","label":"Home look","description":"Figures always sit right under the greeting. Staff: command = then actions and sections; briefing = then sections in the main column with actions and shortcut links in a side rail; launchpad = then big shortcut tiles. Customers: spotlight = photo or gradient hero, then actions, tiles and their items; concierge = centred greeting, then shortcut tiles.","synonyms":"dashboard style, home layout, overview layout, admin home, customer home","tier":"presentation","values":["command","briefing","launchpad","spotlight","concierge"]},"shortcuts":{"type":"[HomeShortcut]","default":[],"label":"Shortcuts","description":"Links to the pages people go to most: label, href, optional icon, one-line description, button label and whether it is the primary one","synonyms":"quick links, go to, jump to, navigation tiles","tier":"domain","items":{"type":"object","properties":{"actionLabel":{"name":"actionLabel","type":"string","required":false},"icon":{"name":"icon","type":"string","required":false},"label":{"name":"label","type":"string","required":true},"href":{"name":"href","type":"string","required":true},"description":{"name":"description","type":"string","required":false},"primary":{"name":"primary","type":"boolean","required":false}}}},"launchpadContent":{"type":"render-ui","default":{"type":"stack","direction":"vertical","gap":"lg","children":["@trait.HomeHeader","@config.kpiRow","@config.actionRow","@config.shortcutTiles","@config.sectionGrid"]},"label":"Launchpad layout","tier":"internal"},"conciergeContent":{"type":"render-ui","default":{"type":"stack","direction":"vertical","gap":"lg","children":["@trait.HomeWelcome","@config.kpiRow","@config.shortcutTiles","@config.actionRow","@config.sectionGrid"]},"label":"Concierge layout","tier":"internal"},"greeting":{"type":"string","default":"Welcome back","label":"Greeting","description":"Headline at the top of the home page","synonyms":"welcome, title, headline","tier":"presentation"},"shortcutTiles":{"type":"render-ui","default":{"type":"simple-grid","minChildWidth":"220px","gap":"md","className":["if",["==",["array/len","@config.shortcuts"],0],"hidden",""],"children":["array/map","@config.shortcuts",["fn","s",{"type":"card","padding":"lg","children":[{"type":"stack","direction":"vertical","gap":"sm","align":"start","children":[{"type":"icon","name":["object/get","@s","icon","arrow-right"],"size":"lg","color":"primary"},{"type":"typography","variant":"h4","content":["object/get","@s","label",""]},{"type":"typography","variant":"body2","color":"muted","content":["object/get","@s","description",""]},{"type":"button","label":["object/get","@s","actionLabel","Open"],"href":["object/get","@s","href","#"],"variant":["if",["object/get","@s","primary",false],"primary","secondary"],"size":"sm","iconRight":"arrow-right"}]}]}]]},"label":"Shortcut tiles","tier":"internal"},"illustration":{"type":"string","default":"","label":"Illustration","description":"spotlight and concierge: inline SVG beside the greeting; empty hides it","tier":"presentation"},"sectionColumn":{"type":"render-ui","default":{"type":"box","fullWidth":true,"children":[{"type":"empty-state","icon":"layout-dashboard","title":"@config.emptyTitle","description":"@config.emptyDescription","className":["if",["==",["array/len","@config.sections"],0],"","hidden"]},{"type":"stack","direction":"vertical","gap":"lg","className":["if",["==",["array/len","@config.sections"],0],"hidden",""],"children":"@config.sections"}]},"label":"Sections column","tier":"internal"},"briefingContent":{"type":"render-ui","default":{"type":"stack","direction":"vertical","gap":"lg","children":["@trait.HomeHeader","@config.kpiRow",{"type":"split","ratio":"2:1","gap":"lg","align":"start","children":["@config.sectionColumn",{"type":"stack","direction":"vertical","gap":"lg","children":["@config.actionRow","@config.shortcutList"]}]}]},"label":"Briefing layout","tier":"internal"},"heroSurface":{"type":"string","default":"accent","label":"Hero background","description":"spotlight only: accent = the theme's gradient; image = the hero photo under a scrim","tier":"presentation","values":["accent","image"]},"spotlightContent":{"type":"render-ui","default":{"type":"stack","direction":"vertical","gap":"lg","children":["@trait.HomeHero","@config.kpiRow","@config.actionRow","@config.shortcutTiles","@config.sectionGrid"]},"label":"Spotlight layout","tier":"internal"},"kpis":{"type":"[trait]","default":[],"label":"Headline figures","description":"Stat tiles summarising the app, most important first (keep to about five); each entry is a @trait reference","synonyms":"kpis, metrics, stats, numbers","tier":"domain","items":{"type":"trait"}},"primaryActionLabel":{"type":"string","default":"","label":"Main action","description":"Label of the one most important thing to do next, shown in the header; empty hides it","synonyms":"cta, primary button, get started","tier":"presentation"},"kpiRow":{"type":"render-ui","default":{"type":"simple-grid","minChildWidth":"180px","gap":"md","className":["if",["==",["array/len","@config.kpis"],0],"hidden",""],"children":"@config.kpis"},"label":"Figures row","tier":"internal"},"emptyTitle":{"type":"string","default":"Nothing here yet","label":"Empty title","description":"Shown in place of the sections while there are none","tier":"presentation"},"commandContent":{"type":"render-ui","default":{"type":"stack","direction":"vertical","gap":"lg","children":["@trait.HomeHeader","@config.kpiRow","@config.actionRow","@config.sectionGrid","@config.shortcutTiles"]},"label":"Command layout","tier":"internal"},"actionRow":{"type":"render-ui","default":{"type":"stack","direction":"horizontal","gap":"sm","wrap":true,"className":["if",["==",["array/len","@config.actions"],0],"hidden",""],"children":"@config.actions"},"label":"Action row","tier":"internal"},"summary":{"type":"string","default":"","label":"Summary","description":"One sentence under the greeting; empty hides it","tier":"presentation"},"primaryActionHref":{"type":"string","default":"","label":"Main action link","description":"Page the main action opens (in-app path or #anchor)","tier":"presentation"}},"scope":"instance"}],"pages":[{"name":"HomePage","id":"pag_2DG1FQ9M9JT4SB1MZB7W1HFFP8","path":"/home","traits":[{"ref":"HomeRender","refId":"trt_J96FENH223H11JH8NEKT812Q5K"}]}],"types":{"HomeShortcut":[{"name":"label","type":"string","required":true},{"name":"href","type":"string","required":true},{"name":"icon","type":"string"},{"name":"description","type":"string"},{"name":"actionLabel","type":"string"},{"name":"primary","type":"boolean"}]}}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC":{"id":"ent_49QAPMSJZ1SFGMZ7KJTMG59WVC","kind":"entity","bakedName":"HomeView","curName":"HomeView","renames":[],"owner":"workspace"},"evt_TVEV29BFNQQTVPBXDN5Z5DNQX4":{"id":"evt_TVEV29BFNQQTVPBXDN5Z5DNQX4","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_J96FENH223H11JH8NEKT812Q5K"},"orb_RRSM4C3N2ZTHFRFJBNBDTQ9FKQ":{"id":"orb_RRSM4C3N2ZTHFRFJBNBDTQ9FKQ","kind":"orbital","bakedName":"HomeOrbital","curName":"HomeOrbital","renames":[],"owner":"workspace"},"pag_2DG1FQ9M9JT4SB1MZB7W1HFFP8":{"id":"pag_2DG1FQ9M9JT4SB1MZB7W1HFFP8","kind":"page","bakedName":"HomePage","curName":"HomePage","renames":[],"owner":"workspace"},"trt_2V8980WY3RF1W6M8K7QSVHK887":{"id":"trt_2V8980WY3RF1W6M8K7QSVHK887","kind":"trait","bakedName":"HomeWelcome","curName":"HomeWelcome","renames":[],"owner":"workspace"},"trt_J96FENH223H11JH8NEKT812Q5K":{"id":"trt_J96FENH223H11JH8NEKT812Q5K","kind":"trait","bakedName":"HomeRender","curName":"HomeRender","renames":[],"owner":"workspace"},"trt_SB0EBD408Q04BNE8A8P46C8N8J":{"id":"trt_SB0EBD408Q04BNE8A8P46C8N8J","kind":"trait","bakedName":"HomeHeader","curName":"HomeHeader","renames":[],"owner":"workspace"},"trt_VDPRN8YCSE6CQ3ZFSJ4WZMFRNQ":{"id":"trt_VDPRN8YCSE6CQ3ZFSJ4WZMFRNQ","kind":"trait","bakedName":"HomeHero","curName":"HomeHero","renames":[],"owner":"workspace"}}}}