@almadar/std 16.193.0 → 16.195.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.
- package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +12 -10
- package/behaviors/lolo/infra/atoms/std-circuit-breaker.lolo +1 -1
- package/behaviors/lolo/infra/atoms/std-cross-reference.lolo +5 -5
- package/behaviors/lolo/infra/atoms/std-data-erasure.lolo +3 -7
- package/behaviors/lolo/infra/atoms/std-mod-queue.lolo +3 -7
- package/behaviors/lolo/infra/atoms/std-notification-center.lolo +8 -6
- package/behaviors/lolo/infra/atoms/std-status-lifecycle.lolo +5 -9
- package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +3 -3
- package/behaviors/lolo/ui/core/atoms/std-app-search.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/std-billable-hour.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/std-board.lolo +30 -4
- package/behaviors/lolo/ui/core/atoms/std-browse.lolo +2 -2
- package/behaviors/lolo/ui/core/atoms/std-calendar.lolo +2 -2
- package/behaviors/lolo/ui/core/atoms/std-date-range.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/std-detail-layout.lolo +3 -3
- package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +3 -3
- package/behaviors/lolo/ui/core/atoms/std-file-store.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/std-filter.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/std-form-advanced.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/std-geosearch.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/std-graphs.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/std-image-upload-multi.lolo +3 -7
- package/behaviors/lolo/ui/core/atoms/std-modal.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/std-pagination.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/std-rating-review.lolo +5 -5
- package/behaviors/lolo/ui/core/atoms/std-record-detail.lolo +13 -2
- package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +3 -3
- package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +3 -7
- package/behaviors/lolo/ui/core/atoms/std-scatter.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/std-search.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/std-signature-capture.lolo +3 -7
- package/behaviors/lolo/ui/core/atoms/std-tag-strip.lolo +11 -12
- package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +5 -7
- package/behaviors/lolo/ui/core/atoms/std-thread.lolo +91 -28
- package/behaviors/lolo/ui/core/atoms/std-tree.lolo +2 -2
- package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +5 -9
- package/behaviors/lolo/ui/core/atoms/std-vote.lolo +3 -7
- package/behaviors/lolo/ui/core/atoms/std-wizard.lolo +3 -3
- package/behaviors/lolo/ui/core/atoms/ui-avatar.lolo +2 -2
- package/behaviors/lolo/ui/core/atoms/ui-badge.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-box.lolo +2 -2
- package/behaviors/lolo/ui/core/atoms/ui-button.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-card.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-checkbox.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-day-cell.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-filter-pill.lolo +4 -4
- package/behaviors/lolo/ui/core/atoms/ui-flip-container.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-hstack.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-infinite-scroll-sentinel.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-input.lolo +3 -3
- package/behaviors/lolo/ui/core/atoms/ui-overlay.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-radio.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-range-slider.lolo +2 -2
- package/behaviors/lolo/ui/core/atoms/ui-select.lolo +3 -3
- package/behaviors/lolo/ui/core/atoms/ui-stack.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-switch.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-text-highlight.lolo +5 -5
- package/behaviors/lolo/ui/core/atoms/ui-textarea.lolo +2 -2
- package/behaviors/lolo/ui/core/atoms/ui-time-slot-cell.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-typewriter-text.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-vstack.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-accordion.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-alert.lolo +3 -3
- package/behaviors/lolo/ui/core/molecules/ui-branching-logic-builder.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-breadcrumb.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-calendar-grid.lolo +6 -6
- package/behaviors/lolo/ui/core/molecules/ui-carousel.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-confirm-dialog.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +3 -3
- package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +7 -7
- package/behaviors/lolo/ui/core/molecules/ui-date-range-picker.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-date-range-selector.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-document-details.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +5 -5
- package/behaviors/lolo/ui/core/molecules/ui-drawer.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-emoji-picker.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-empty-state.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-error-state.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-file-tree.lolo +3 -3
- package/behaviors/lolo/ui/core/molecules/ui-filter-group.lolo +4 -4
- package/behaviors/lolo/ui/core/molecules/ui-flip-card.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-floating-action-button.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-form-section-header.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-graph-canvas.lolo +5 -5
- package/behaviors/lolo/ui/core/molecules/ui-graph-view.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-header.lolo +4 -4
- package/behaviors/lolo/ui/core/molecules/ui-import-preview-tree.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-import-source-picker.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-input-group.lolo +3 -3
- package/behaviors/lolo/ui/core/molecules/ui-lightbox.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-likert-scale.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-map-view.lolo +4 -4
- package/behaviors/lolo/ui/core/molecules/ui-matrix-question.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-modal.lolo +3 -3
- package/behaviors/lolo/ui/core/molecules/ui-notification.lolo +4 -4
- package/behaviors/lolo/ui/core/molecules/ui-number-stepper.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-option-constraint-group.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-orbital-visualization.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-page-header.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-pagination.lolo +4 -4
- package/behaviors/lolo/ui/core/molecules/ui-popover.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-positioned-canvas.lolo +4 -4
- package/behaviors/lolo/ui/core/molecules/ui-progress-dots.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-pull-to-refresh.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-qr-scanner.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-relation-select.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-repeatable-form-section.lolo +3 -3
- package/behaviors/lolo/ui/core/molecules/ui-reply-tree.lolo +8 -8
- package/behaviors/lolo/ui/core/molecules/ui-rich-text-editor.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-search-input.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-side-panel.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-sidebar.lolo +3 -3
- package/behaviors/lolo/ui/core/molecules/ui-signature-pad.lolo +3 -3
- package/behaviors/lolo/ui/core/molecules/ui-sortable-list.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-star-rating.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-swipeable-row.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +4 -4
- package/behaviors/lolo/ui/core/molecules/ui-tabs.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-tag-input.lolo +3 -3
- package/behaviors/lolo/ui/core/molecules/ui-upload-drop-zone.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-version-diff.lolo +6 -6
- package/behaviors/lolo/ui/core/molecules/ui-violation-alert.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-vote-stack.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-wizard-container.lolo +5 -5
- package/behaviors/lolo/ui/core/molecules/ui-wizard-navigation.lolo +6 -6
- package/behaviors/lolo/ui/core/molecules/ui-wizard-progress.lolo +2 -2
- package/behaviors/lolo/ui/core/organisms/ui-detail-panel.lolo +1 -1
- package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +1 -1
- package/behaviors/lolo/ui/core/organisms/ui-form-section.lolo +3 -3
- package/behaviors/lolo/ui/core/organisms/ui-form.lolo +3 -3
- package/behaviors/lolo/ui/core/organisms/ui-media-gallery.lolo +1 -1
- package/behaviors/lolo/ui/core/organisms/ui-subagent-trace-panel.lolo +1 -1
- package/behaviors/lolo/ui/core/organisms/ui-tabbed-container.lolo +1 -1
- package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +1 -1
- package/behaviors/lolo/ui/core/templates/ui-counter-template.lolo +6 -6
- package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +6 -6
- package/behaviors/lolo/ui/game/atoms/ui-canvas-2d.lolo +4 -4
- package/behaviors/lolo/ui/game/atoms/ui-canvas.lolo +5 -5
- package/behaviors/lolo/ui/game/atoms/ui-choice-button.lolo +2 -2
- package/behaviors/lolo/ui/game/atoms/ui-control-button.lolo +4 -4
- package/behaviors/lolo/ui/game/atoms/ui-control-grid.lolo +4 -4
- package/behaviors/lolo/ui/game/atoms/ui-game-menu.lolo +1 -1
- package/behaviors/lolo/ui/game/atoms/ui-sequence-bar.lolo +4 -4
- package/behaviors/lolo/ui/game/atoms/ui-state-graph.lolo +1 -1
- package/behaviors/lolo/ui/game/atoms/ui-trait-slot.lolo +7 -7
- package/behaviors/lolo/ui/game/organisms/std-tactics-board-2d.lolo +1 -1
- package/behaviors/lolo/ui/learning/atoms/ui-algo-graph-canvas.lolo +2 -2
- package/behaviors/lolo/ui/learning/atoms/ui-algorithm-canvas.lolo +1 -1
- package/behaviors/lolo/ui/learning/atoms/ui-biology-canvas.lolo +1 -1
- package/behaviors/lolo/ui/learning/atoms/ui-chemistry-canvas.lolo +1 -1
- package/behaviors/lolo/ui/learning/atoms/ui-learning-canvas.lolo +2 -2
- package/behaviors/lolo/ui/learning/atoms/ui-math-canvas.lolo +1 -1
- package/behaviors/lolo/ui/learning/atoms/ui-physics-canvas.lolo +1 -1
- package/behaviors/registry/infra/atoms/std-approval-gate.orb +154 -70
- package/behaviors/registry/infra/atoms/std-cache-aside.orb +64 -63
- package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +20 -92
- package/behaviors/registry/infra/atoms/std-cross-reference.orb +9 -8
- package/behaviors/registry/infra/atoms/std-data-erasure.orb +119 -60
- package/behaviors/registry/infra/atoms/std-mod-queue.orb +209 -64
- package/behaviors/registry/infra/atoms/std-notification-center.orb +25 -37
- package/behaviors/registry/infra/atoms/std-rate-limiter.orb +14 -28
- package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +10 -17
- package/behaviors/registry/infra/organisms/std-status-lifecycle-control.orb +1 -2
- package/behaviors/registry/ml/organisms/std-escalating-decision.orb +5 -10
- package/behaviors/registry/ml/organisms/std-knowledge-tracing.orb +2 -4
- package/behaviors/registry/ui/core/atoms/std-app-layout.orb +5 -3
- package/behaviors/registry/ui/core/atoms/std-app-search.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +51 -2
- package/behaviors/registry/ui/core/atoms/std-board.orb +74 -3
- package/behaviors/registry/ui/core/atoms/std-browse.orb +3 -2
- package/behaviors/registry/ui/core/atoms/std-calendar.orb +2 -2
- package/behaviors/registry/ui/core/atoms/std-confirmation.orb +27 -1
- package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +1 -2
- package/behaviors/registry/ui/core/atoms/std-date-range.orb +2 -1
- package/behaviors/registry/ui/core/atoms/std-detail-layout.orb +3 -3
- package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +104 -6
- package/behaviors/registry/ui/core/atoms/std-esign-request.orb +3 -6
- package/behaviors/registry/ui/core/atoms/std-event-log.orb +3 -2
- package/behaviors/registry/ui/core/atoms/std-export.orb +2 -4
- package/behaviors/registry/ui/core/atoms/std-file-store.orb +92 -4
- package/behaviors/registry/ui/core/atoms/std-filter.orb +2 -1
- package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +4 -84
- package/behaviors/registry/ui/core/atoms/std-gallery.orb +29 -1
- package/behaviors/registry/ui/core/atoms/std-geosearch.orb +2 -1
- package/behaviors/registry/ui/core/atoms/std-graphs.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +81 -48
- package/behaviors/registry/ui/core/atoms/std-import.orb +2 -4
- package/behaviors/registry/ui/core/atoms/std-list.orb +58 -2
- package/behaviors/registry/ui/core/atoms/std-modal.orb +59 -3
- package/behaviors/registry/ui/core/atoms/std-pagination.orb +2 -1
- package/behaviors/registry/ui/core/atoms/std-rating-review.orb +158 -8
- package/behaviors/registry/ui/core/atoms/std-record-detail.orb +283 -7
- package/behaviors/registry/ui/core/atoms/std-recurrence.orb +3 -2
- package/behaviors/registry/ui/core/atoms/std-saved-search.orb +72 -43
- package/behaviors/registry/ui/core/atoms/std-scatter.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-search.orb +2 -1
- package/behaviors/registry/ui/core/atoms/std-signature-capture.orb +63 -39
- package/behaviors/registry/ui/core/atoms/std-tag-strip.orb +139 -97
- package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +57 -40
- package/behaviors/registry/ui/core/atoms/std-thread.orb +296 -109
- package/behaviors/registry/ui/core/atoms/std-tree.orb +20 -2
- package/behaviors/registry/ui/core/atoms/std-version-history.orb +147 -58
- package/behaviors/registry/ui/core/atoms/std-vote.orb +4 -29
- package/behaviors/registry/ui/core/atoms/std-wizard.orb +3 -2
- package/behaviors/registry/ui/core/atoms/ui-avatar.orb +2 -2
- package/behaviors/registry/ui/core/atoms/ui-badge.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-box.orb +2 -2
- package/behaviors/registry/ui/core/atoms/ui-button.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-card.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-checkbox.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-day-cell.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-filter-pill.orb +5 -4
- package/behaviors/registry/ui/core/atoms/ui-flip-container.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-hstack.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-infinite-scroll-sentinel.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-input.orb +3 -3
- package/behaviors/registry/ui/core/atoms/ui-overlay.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-radio.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-range-slider.orb +2 -2
- package/behaviors/registry/ui/core/atoms/ui-select.orb +3 -3
- package/behaviors/registry/ui/core/atoms/ui-stack.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-switch.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-text-highlight.orb +5 -5
- package/behaviors/registry/ui/core/atoms/ui-textarea.orb +2 -2
- package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-typewriter-text.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-vstack.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-accordion.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-alert.orb +3 -3
- package/behaviors/registry/ui/core/molecules/ui-branching-logic-builder.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-calendar-grid.orb +6 -6
- package/behaviors/registry/ui/core/molecules/ui-carousel.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-code-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +3 -3
- package/behaviors/registry/ui/core/molecules/ui-data-list.orb +7 -7
- package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-date-range-selector.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-document-details.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +5 -5
- package/behaviors/registry/ui/core/molecules/ui-drawer.orb +3 -2
- package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-empty-state.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-error-state.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-file-tree.orb +3 -3
- package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +4 -4
- package/behaviors/registry/ui/core/molecules/ui-flip-card.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-form-section-header.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +5 -5
- package/behaviors/registry/ui/core/molecules/ui-graph-view.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-header.orb +4 -4
- package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-input-group.orb +3 -3
- package/behaviors/registry/ui/core/molecules/ui-lightbox.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-map-view.orb +4 -4
- package/behaviors/registry/ui/core/molecules/ui-matrix-question.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-modal.orb +4 -3
- package/behaviors/registry/ui/core/molecules/ui-notification.orb +4 -4
- package/behaviors/registry/ui/core/molecules/ui-number-stepper.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-option-constraint-group.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-orbital-visualization.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-page-header.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-pagination.orb +5 -4
- package/behaviors/registry/ui/core/molecules/ui-popover.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-positioned-canvas.orb +4 -4
- package/behaviors/registry/ui/core/molecules/ui-progress-dots.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-pull-to-refresh.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-qr-scanner.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-relation-select.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-repeatable-form-section.orb +3 -3
- package/behaviors/registry/ui/core/molecules/ui-reply-tree.orb +8 -8
- package/behaviors/registry/ui/core/molecules/ui-rich-text-editor.orb +3 -2
- package/behaviors/registry/ui/core/molecules/ui-search-input.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-side-panel.orb +3 -2
- package/behaviors/registry/ui/core/molecules/ui-sidebar.orb +3 -3
- package/behaviors/registry/ui/core/molecules/ui-signature-pad.orb +3 -3
- package/behaviors/registry/ui/core/molecules/ui-sortable-list.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-star-rating.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-table-view.orb +4 -4
- package/behaviors/registry/ui/core/molecules/ui-tabs.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-tag-input.orb +3 -3
- package/behaviors/registry/ui/core/molecules/ui-upload-drop-zone.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-version-diff.orb +6 -6
- package/behaviors/registry/ui/core/molecules/ui-violation-alert.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-vote-stack.orb +2 -2
- package/behaviors/registry/ui/core/molecules/ui-wizard-container.orb +5 -5
- package/behaviors/registry/ui/core/molecules/ui-wizard-navigation.orb +6 -6
- package/behaviors/registry/ui/core/molecules/ui-wizard-progress.orb +2 -2
- package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-form-section.orb +3 -3
- package/behaviors/registry/ui/core/organisms/ui-form.orb +3 -3
- package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-subagent-trace-panel.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-tabbed-container.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-timeline.orb +1 -1
- package/behaviors/registry/ui/core/templates/ui-counter-template.orb +6 -6
- package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +6 -6
- package/behaviors/registry/ui/game/atoms/ui-canvas-2d.orb +4 -4
- package/behaviors/registry/ui/game/atoms/ui-canvas.orb +5 -5
- package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +2 -2
- package/behaviors/registry/ui/game/atoms/ui-control-button.orb +4 -4
- package/behaviors/registry/ui/game/atoms/ui-control-grid.orb +4 -4
- package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-sequence-bar.orb +4 -4
- package/behaviors/registry/ui/game/atoms/ui-state-graph.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +8 -7
- package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +4 -8
- package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +3 -6
- package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +5 -10
- package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +4 -8
- package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +4 -8
- package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +4 -8
- package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +7 -13
- package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +4 -8
- package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +3 -6
- package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +2 -2
- package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +2 -2
- package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +1 -1
- package/behaviors/registry/ui/marketing/atoms/std-marketing-article.orb +1 -2
- package/behaviors/registry/ui/marketing/atoms/std-marketing-footer.orb +1 -2
- package/behaviors/registry/ui/marketing/atoms/std-marketing-split.orb +1 -2
- package/behaviors/registry/ui/marketing/atoms/std-marketing-stats.orb +1 -2
- package/behaviors/registry/ui/marketing/atoms/std-marketing-steps.orb +1 -2
- package/behaviors/registry/ui/marketing/atoms/std-marketing-team.orb +1 -2
- package/canonical-operators.json +37 -23
- package/dist/behaviors/exports-reader.js +2326 -885
- package/dist/behaviors/functions/index.d.ts +109 -45
- package/dist/behaviors/functions/index.js +2326 -885
- package/dist/behaviors/index.d.ts +1 -1
- package/dist/behaviors/index.js +2326 -885
- package/dist/behaviors/query.js +2326 -885
- package/dist/behaviors-embeddings.hash.json +3 -3
- package/dist/behaviors-embeddings.json +7 -7
- package/dist/behaviors-registry.json +11 -9
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2326 -885
- package/dist/knob-embeddings.hash.json +3 -3
- package/dist/knob-embeddings.json +1 -1
- package/dist/registry/factory-signatures.json +1 -1
- package/package.json +2 -2
|
@@ -70,6 +70,12 @@ orbital RecordItemOrbital {
|
|
|
70
70
|
include: @config.include
|
|
71
71
|
})
|
|
72
72
|
(render-ui main { rows: 4, type: skeleton })
|
|
73
|
+
;; Event-opened overlay (openOn: event): stays blank until OPEN_VIEW,
|
|
74
|
+
;; but renders the blank EXPLICITLY — an embedded @trait.X reference to
|
|
75
|
+
;; a trait with no indexed content is flagged by the compiled client's
|
|
76
|
+
;; render probe (trait_bindings_resolved).
|
|
77
|
+
INIT -> idle when ["=", @config.openOn, "event"]
|
|
78
|
+
(render-ui main null)
|
|
73
79
|
;; self-loops on the external emits so the validator sees in-atom
|
|
74
80
|
;; listeners — the real consumers are the composing organism's
|
|
75
81
|
;; persistor (CONTENT_SAVED, TITLE_COMMITTED) and its refetch /
|
|
@@ -535,6 +541,11 @@ orbital RecordItemOrbital {
|
|
|
535
541
|
@label "Edit button label"
|
|
536
542
|
@description "Label of the quiet button above the document body that starts an editing session (the body itself is also clickable)."
|
|
537
543
|
@tier "presentation"
|
|
544
|
+
allowEdit : boolean = true
|
|
545
|
+
@label "Allow editing the document?"
|
|
546
|
+
@description "When false the document look is a pure read surface: no header Edit button, no click-to-edit body, no click-to-rename title. Hosts pass a role condition here so read-only viewers get the page without its authoring affordances; the entity's own access predicates stay the enforcement floor."
|
|
547
|
+
@synonyms "read only document, viewer mode, can edit, editing allowed"
|
|
548
|
+
@tier "policy"
|
|
538
549
|
doneLabel : string = "Done"
|
|
539
550
|
@label "Done button label"
|
|
540
551
|
@description "Label of the button that ends the document editing session; work is already autosaved when it is pressed."
|
|
@@ -613,14 +624,14 @@ orbital RecordItemOrbital {
|
|
|
613
624
|
actions: @config.actions
|
|
614
625
|
coverImage: @entity.coverUrl
|
|
615
626
|
icon: @entity.iconName
|
|
616
|
-
editEvent: EDIT_CONTENT
|
|
627
|
+
editEvent: (if @config.allowEdit EDIT_CONTENT null)
|
|
617
628
|
editLabel: @config.editLabel
|
|
618
629
|
id: @entity.id
|
|
619
630
|
maxInlineActions: @config.maxInlineActions
|
|
620
631
|
placeholder: @config.placeholder
|
|
621
632
|
subtitle: @entity.description
|
|
622
633
|
title: @entity.name
|
|
623
|
-
titleCommitEvent: TITLE_COMMITTED
|
|
634
|
+
titleCommitEvent: (if @config.allowEdit TITLE_COMMITTED null)
|
|
624
635
|
type: document-panel
|
|
625
636
|
value: @entity.content
|
|
626
637
|
className: "w-full"
|
|
@@ -8,7 +8,7 @@ orbital RecurrenceOrbital {
|
|
|
8
8
|
|
|
9
9
|
type RecurrenceLoadFailed = Event { error : string, code : string } "Fired when fetch fails"
|
|
10
10
|
|
|
11
|
-
type RecurrenceSaved = Event
|
|
11
|
+
type RecurrenceSaved = Event @entity "Fired when a recurrence rule has been persisted"
|
|
12
12
|
|
|
13
13
|
type RecurrenceSaveFailed = Event { error : string, code : string } "Fired when persist fails"
|
|
14
14
|
|
|
@@ -441,7 +441,7 @@ orbital RecurrenceOrbital {
|
|
|
441
441
|
@description "Indicates failure to load recurrence rule data."
|
|
442
442
|
@synonyms "load error, failed load, data error"
|
|
443
443
|
@tier "internal"
|
|
444
|
-
RecurrenceSaved
|
|
444
|
+
RecurrenceSaved
|
|
445
445
|
@description "Indicates the recurrence rule has been successfully saved."
|
|
446
446
|
@synonyms "saved, updated, persisted"
|
|
447
447
|
@tier "domain"
|
|
@@ -513,7 +513,7 @@ orbital RecurrenceOrbital {
|
|
|
513
513
|
@description "Indicates failure to load recurrence rule data."
|
|
514
514
|
@synonyms "load error, failed load, data error"
|
|
515
515
|
@tier "internal"
|
|
516
|
-
RecurrenceSaved
|
|
516
|
+
RecurrenceSaved
|
|
517
517
|
@description "Indicates the recurrence rule has been successfully saved."
|
|
518
518
|
@synonyms "saved, updated, persisted"
|
|
519
519
|
@tier "domain"
|
|
@@ -5,7 +5,7 @@ orbital SavedSearchOrbital {
|
|
|
5
5
|
|
|
6
6
|
type SavedSearchLoadFailed = Event { error : string, code : string } "Fired when the saved-search collection fails to load"
|
|
7
7
|
|
|
8
|
-
type SavedSearchUpdated = Event
|
|
8
|
+
type SavedSearchUpdated = Event SavedSearch "Fired after a saved-search row's update persists (toggle alert / rename / change frequency)"
|
|
9
9
|
|
|
10
10
|
type SavedSearchDeleted = Event { id : string! } "Fired after a saved-search row is deleted"
|
|
11
11
|
|
|
@@ -280,9 +280,7 @@ orbital SavedSearchOrbital {
|
|
|
280
280
|
@description "Indicates a failure to load saved search data."
|
|
281
281
|
@synonyms "error, failure, load error"
|
|
282
282
|
@tier "internal"
|
|
283
|
-
SavedSearchUpdated
|
|
284
|
-
row : SavedSearch
|
|
285
|
-
}
|
|
283
|
+
SavedSearchUpdated
|
|
286
284
|
@description "Indicates a saved search has been modified and persisted."
|
|
287
285
|
@synonyms "modified, changed, updated, persisted"
|
|
288
286
|
@tier "presentation"
|
|
@@ -347,9 +345,7 @@ orbital SavedSearchOrbital {
|
|
|
347
345
|
@description "Indicates failure to load saved search data."
|
|
348
346
|
@synonyms "error, failure, load error"
|
|
349
347
|
@tier "internal"
|
|
350
|
-
SavedSearchUpdated
|
|
351
|
-
row : SavedSearch
|
|
352
|
-
}
|
|
348
|
+
SavedSearchUpdated
|
|
353
349
|
@description "A saved search's details have been modified."
|
|
354
350
|
@synonyms "modified, changed, updated"
|
|
355
351
|
@tier "presentation"
|
|
@@ -118,7 +118,7 @@ orbital ScatterItemOrbital {
|
|
|
118
118
|
@label "Chart height"
|
|
119
119
|
@description "Pixel height of the rendered scatter plot"
|
|
120
120
|
@tier "presentation"
|
|
121
|
-
drillEvent :
|
|
121
|
+
drillEvent : event = ""
|
|
122
122
|
@label "Drill event"
|
|
123
123
|
@description "Event emitted when the user clicks a data point"
|
|
124
124
|
@tier "internal"
|
|
@@ -48,7 +48,7 @@ orbital SearchResultOrbital {
|
|
|
48
48
|
@label "Placeholder text"
|
|
49
49
|
@description "Hint text shown inside the empty search input"
|
|
50
50
|
@tier "presentation"
|
|
51
|
-
event :
|
|
51
|
+
event : event = SEARCH
|
|
52
52
|
@label "Search event"
|
|
53
53
|
@description "Event emitted when the user submits a query"
|
|
54
54
|
@tier "internal"
|
|
@@ -5,7 +5,7 @@ orbital SignatureCaptureOrbital {
|
|
|
5
5
|
|
|
6
6
|
type SignatureLoadFailed = Event { error : string, code : string } "Fired when the prior-signature load fails"
|
|
7
7
|
|
|
8
|
-
type SignatureSubmitted = Event
|
|
8
|
+
type SignatureSubmitted = Event Signature "Fired after a signature persists successfully"
|
|
9
9
|
|
|
10
10
|
type SignatureSubmitFailed = Event { error : string, code : string } "Fired when persisting a signature fails"
|
|
11
11
|
|
|
@@ -278,9 +278,7 @@ orbital SignatureCaptureOrbital {
|
|
|
278
278
|
@description "Indicates the signature data could not be loaded."
|
|
279
279
|
@synonyms "load error, failed load, data error"
|
|
280
280
|
@tier "internal"
|
|
281
|
-
SignatureSubmitted
|
|
282
|
-
row : Signature
|
|
283
|
-
}
|
|
281
|
+
SignatureSubmitted
|
|
284
282
|
@description "Indicates a signature has been successfully captured and submitted."
|
|
285
283
|
@synonyms "signed, finalized, completed"
|
|
286
284
|
@tier "domain"
|
|
@@ -323,9 +321,7 @@ orbital SignatureCaptureOrbital {
|
|
|
323
321
|
@description "Indicates the signature data could not be loaded."
|
|
324
322
|
@synonyms "error, failure, problem, unsuccessful"
|
|
325
323
|
@tier "internal"
|
|
326
|
-
SignatureSubmitted
|
|
327
|
-
row : Signature
|
|
328
|
-
}
|
|
324
|
+
SignatureSubmitted
|
|
329
325
|
@description "Indicates a signature has been successfully submitted."
|
|
330
326
|
@synonyms "saved, finalized, confirmed"
|
|
331
327
|
@tier "domain"
|
|
@@ -8,7 +8,7 @@ orbital TagStripOrbital {
|
|
|
8
8
|
|
|
9
9
|
type TagStripRemoveOptions = Event { data : [StripTag] } "The shared tag store loaded to resolve the remaining names on remove"
|
|
10
10
|
|
|
11
|
-
type TagStripTagCreated = Event
|
|
11
|
+
type TagStripTagCreated = Event StripTag "A typed tag name had no existing row; one was created in the shared taxonomy"
|
|
12
12
|
|
|
13
13
|
type TagStripLoadFailed = Event { error : string, code : string } "The tag store fetch or create failed"
|
|
14
14
|
|
|
@@ -52,12 +52,12 @@ orbital TagStripOrbital {
|
|
|
52
52
|
})
|
|
53
53
|
TagStripOptions -> ready
|
|
54
54
|
(render-ui main {
|
|
55
|
-
children: [(if ["
|
|
55
|
+
children: [(if (or @config.readOnly ["=", @config.title, ""]) null {
|
|
56
56
|
color: muted
|
|
57
57
|
content: @config.title
|
|
58
58
|
type: typography
|
|
59
59
|
variant: caption
|
|
60
|
-
}
|
|
60
|
+
}), (if @config.readOnly null {
|
|
61
61
|
addEvent: ADD_TAG
|
|
62
62
|
helperText: @config.helperText
|
|
63
63
|
placeholder: @config.placeholder
|
|
@@ -65,7 +65,7 @@ orbital TagStripOrbital {
|
|
|
65
65
|
type: tag-input
|
|
66
66
|
value: (array/map (array/filter ?data (fn t (array/includes @entity.docTagIds (object/get @t id)))) (fn t (object/get @t name)))
|
|
67
67
|
variant: secondary
|
|
68
|
-
}, (if ["=", (array/len (array/filter ?data (fn t (if (array/includes @entity.docTagIds (object/get @t id)) false true)))), 0] null {
|
|
68
|
+
}), (if (or @config.readOnly ["=", (array/len (array/filter ?data (fn t (if (array/includes @entity.docTagIds (object/get @t id)) false true)))), 0]) null {
|
|
69
69
|
children: (array/map (array/filter ?data (fn t (if (array/includes @entity.docTagIds (object/get @t id)) false true))) (fn t {
|
|
70
70
|
action: ADD_TAG
|
|
71
71
|
actionPayload: { tag: @t.name }
|
|
@@ -230,10 +230,7 @@ orbital TagStripOrbital {
|
|
|
230
230
|
}
|
|
231
231
|
@description "The shared tag store loaded to resolve the remaining names on remove."
|
|
232
232
|
@tier "internal"
|
|
233
|
-
TagStripTagCreated
|
|
234
|
-
id : string
|
|
235
|
-
row : StripTag
|
|
236
|
-
}
|
|
233
|
+
TagStripTagCreated
|
|
237
234
|
@description "A typed name had no existing tag; a fresh row was created in the shared taxonomy."
|
|
238
235
|
@tier "internal"
|
|
239
236
|
TagStripLoadFailed {
|
|
@@ -280,10 +277,7 @@ orbital TagStripOrbital {
|
|
|
280
277
|
}
|
|
281
278
|
@description "Remove-resolve fetch resolved."
|
|
282
279
|
@tier "internal"
|
|
283
|
-
TagStripTagCreated
|
|
284
|
-
id : string
|
|
285
|
-
row : StripTag
|
|
286
|
-
}
|
|
280
|
+
TagStripTagCreated
|
|
287
281
|
@description "The taxonomy row for a typed name persisted; attach its id."
|
|
288
282
|
@tier "internal"
|
|
289
283
|
TagStripLoadFailed {
|
|
@@ -299,6 +293,11 @@ orbital TagStripOrbital {
|
|
|
299
293
|
@label "Strip caption"
|
|
300
294
|
@description "Small caption above the chips; empty hides it"
|
|
301
295
|
@tier "presentation"
|
|
296
|
+
readOnly : boolean = false
|
|
297
|
+
@label "Read-only?"
|
|
298
|
+
@description "When true the strip renders nothing — no add input, no remove, no suggestion chips. Hosts pass a role condition here so read-only viewers rely on the record's read-only rails (which keep showing the tags) instead of an editing surface."
|
|
299
|
+
@synonyms "read only tags, viewer mode, no tag editing, hide tag input"
|
|
300
|
+
@tier "policy"
|
|
302
301
|
placeholder : string = "Add a tag…"
|
|
303
302
|
@label "Input placeholder"
|
|
304
303
|
@description "Placeholder in the type-to-add input"
|
|
@@ -7,6 +7,8 @@ orbital TagTaxonomyOrbital {
|
|
|
7
7
|
|
|
8
8
|
type TagSelected = Event { tagId : string! } "Fired when a tag is selected to drill into its children"
|
|
9
9
|
|
|
10
|
+
type TagCreated = Event Tag "Fired after a new tag row persists — the payload IS the created row (flat: ?id, ?name, ?parentId)"
|
|
11
|
+
|
|
10
12
|
type TagCommit = { name : string!, parentId : string }
|
|
11
13
|
|
|
12
14
|
entity Tag [persistent: tags] {
|
|
@@ -357,7 +359,7 @@ orbital TagTaxonomyOrbital {
|
|
|
357
359
|
type: stack
|
|
358
360
|
})
|
|
359
361
|
(fetch Tag {
|
|
360
|
-
filter: ["=", (object/get @entity parentId), (str/default
|
|
362
|
+
filter: ["=", (object/get @entity parentId), (str/default ?parentId "")]
|
|
361
363
|
emit: { failure: TagLoadFailed, success: TagLoaded }
|
|
362
364
|
})
|
|
363
365
|
TagCreateFailed -> creating
|
|
@@ -555,9 +557,7 @@ orbital TagTaxonomyOrbital {
|
|
|
555
557
|
@description "Internal hop that refetches the open level after the new-category form closes (a fetch filter cannot read trait state, so the level travels by payload)."
|
|
556
558
|
@synonyms "reload level, refresh"
|
|
557
559
|
@tier "internal"
|
|
558
|
-
TagCreated
|
|
559
|
-
row : Tag
|
|
560
|
-
}
|
|
560
|
+
TagCreated
|
|
561
561
|
@description "A new tag row persisted; the open level refetches to show it."
|
|
562
562
|
@synonyms "created, added"
|
|
563
563
|
@tier "internal"
|
|
@@ -616,9 +616,7 @@ orbital TagTaxonomyOrbital {
|
|
|
616
616
|
@description "Refetch the open level."
|
|
617
617
|
@synonyms "reload level, refresh"
|
|
618
618
|
@tier "internal"
|
|
619
|
-
TagCreated
|
|
620
|
-
row : Tag
|
|
621
|
-
}
|
|
619
|
+
TagCreated
|
|
622
620
|
@description "A new tag row persisted."
|
|
623
621
|
@synonyms "created, added"
|
|
624
622
|
@tier "internal"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
app std-thread "1.3.0"
|
|
2
|
-
"std-thread — forum-style nested replies with collapse + flat-mode toggle. Owns ThreadPost (persistent). flat:true covers 1:1 linear inquiry threads; flat:false renders forum-style nested. INIT fetches, scoped by @config.threadRootId when set (blank = every root, the default). REPLY persists a child post under @payload.parentId, stamped with the real @user identity. A consumer that mounts this as page comments forwards its own document-opened signal to SET_THREAD_ROOT { rootId }, which stamps the frame and refetches filtered by the payload; the after-create and after-select refetch arms keep filtering by @config.threadRootId, so a mutation re-widens the panel until the consumer re-fires SET_THREAD_ROOT. Layer 3 variants override `bodyContent` to deliver chat-bubble, email-threaded, or linear-comments UX while inheriting the same trait, state machine, emits, and listens."
|
|
2
|
+
"std-thread — forum-style nested replies with collapse + flat-mode toggle. Owns ThreadPost (persistent). flat:true covers 1:1 linear inquiry threads; flat:false renders forum-style nested. INIT fetches, scoped by @config.threadRootId when set (blank = every root, the default). REPLY persists a child post under @payload.parentId, stamped with the real @user identity. A consumer that mounts this as page comments forwards its own document-opened signal to SET_THREAD_ROOT { rootId }, which stamps the frame and refetches filtered by the payload; the after-create and after-select refetch arms keep filtering by @config.threadRootId, so a mutation re-widens the panel until the consumer re-fires SET_THREAD_ROOT. Layer 3 variants override `bodyContent` to deliver chat-bubble, email-threaded, or linear-comments UX while inheriting the same trait, state machine, emits, and listens. A non-empty sectionTitle switches the default bodyContent into titled-comments mode: header + post list + a standalone composer button (without it an empty thread has no REPLY emitter at all — the affordance only existed per-row)."
|
|
3
3
|
orbital ThreadPostOrbital {
|
|
4
4
|
;; Forward relation: array of child ThreadPost IDs whose parentId === this.id.
|
|
5
5
|
;; Lowers to `type: "relation", cardinality: "many"` (orbital-lolo lower.rs).
|
|
@@ -15,7 +15,15 @@ orbital ThreadPostOrbital {
|
|
|
15
15
|
|
|
16
16
|
type ThreadPostLoadFailed = Event { error : string, code : string } "Fired when the thread-post collection fails to load"
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
;; Bare entity alias, not { row: ThreadPost } — `persist create`'s success
|
|
19
|
+
;; emit is the created row itself (flat), matching @almadar/runtime's
|
|
20
|
+
;; EffectExecutor.ts (`successPayload = persisted ?? data`, emitted
|
|
21
|
+
;; directly) AND orbital-core's executor.rs (`executed_with_value(effect,
|
|
22
|
+
;; value)`), verified live 2026-08-30: a wrapped declaration validates and
|
|
23
|
+
;; compiles clean but silently returns undefined for every `?row.<field>`
|
|
24
|
+
;; access — no validator connects a persist-emit's declared shape to what
|
|
25
|
+
;; the effect that fires it actually produces.
|
|
26
|
+
type ThreadPostCreated = Event ThreadPost "Fired after a new thread-post persists successfully"
|
|
19
27
|
|
|
20
28
|
type ThreadPostCreateFailed = Event { error : string, code : string } "Fired when a new thread-post fails to persist"
|
|
21
29
|
|
|
@@ -97,7 +105,7 @@ orbital ThreadPostOrbital {
|
|
|
97
105
|
type: typography
|
|
98
106
|
variant: h4
|
|
99
107
|
}, {
|
|
100
|
-
|
|
108
|
+
onChange: EDIT_REPLY
|
|
101
109
|
placeholder: "Your reply…"
|
|
102
110
|
type: textarea
|
|
103
111
|
}, {
|
|
@@ -121,19 +129,50 @@ orbital ThreadPostOrbital {
|
|
|
121
129
|
gap: md
|
|
122
130
|
type: stack
|
|
123
131
|
})
|
|
132
|
+
;; Scoped to the row just created, not @config.threadRootId — a runtime-
|
|
133
|
+
;; scoped consumer (SET_THREAD_ROOT-driven, e.g. std-wiki's WikiComments)
|
|
134
|
+
;; never sets config.threadRootId, so that filter was permanently blank/
|
|
135
|
+
;; unfiltered here and every document's posts bled together on refetch.
|
|
136
|
+
;; ?threadRootId is the FLAT field on ThreadPostCreated's payload (the
|
|
137
|
+
;; row's own scope, per the create effect's fallback chain) — NOT
|
|
138
|
+
;; ?row.threadRootId; ThreadPostCreated's payload is the created row
|
|
139
|
+
;; itself (see the type alias above), no `row` wrapper exists.
|
|
124
140
|
ThreadPostCreated -> browsing
|
|
141
|
+
(set @entity.content "")
|
|
142
|
+
(set @entity.parentId "")
|
|
125
143
|
(fetch ThreadPost {
|
|
126
144
|
emit: { failure: ThreadPostLoadFailed, success: ThreadPostLoaded }
|
|
127
|
-
filter: (or ["=",
|
|
145
|
+
filter: (or ["=", ?threadRootId, ""] ["=", (object/get @entity threadRootId), ?threadRootId])
|
|
128
146
|
include: (replies)
|
|
129
147
|
})
|
|
148
|
+
;; SELECT's payload IS { id, row } (caller-constructed, unlike the
|
|
149
|
+
;; persist-auto-emitted ThreadPostCreated) — ?row.threadRootId is
|
|
150
|
+
;; correct here.
|
|
130
151
|
SELECT -> loading
|
|
131
152
|
(set @entity.focusedRow ?row)
|
|
132
153
|
(fetch ThreadPost {
|
|
133
154
|
emit: { failure: ThreadPostLoadFailed, success: ThreadPostLoaded }
|
|
134
|
-
filter: (or ["=",
|
|
155
|
+
filter: (or ["=", ?row.threadRootId, ""] ["=", (object/get @entity threadRootId), ?row.threadRootId])
|
|
135
156
|
include: (replies)
|
|
136
157
|
})
|
|
158
|
+
;; Inline composers (bodyContent overrides with their own textarea +
|
|
159
|
+
;; submit button) fire the composer triad while the trait sits in
|
|
160
|
+
;; browsing — without these arms every such click is swallowed.
|
|
161
|
+
EDIT_REPLY -> browsing
|
|
162
|
+
(set @entity.content ?value)
|
|
163
|
+
SUBMIT_REPLY -> browsing when (not ["=", (str/default @entity.content ""), ""])
|
|
164
|
+
(persist create ThreadPost {
|
|
165
|
+
authorId: @user.id
|
|
166
|
+
authorName: @user.name
|
|
167
|
+
content: @entity.content
|
|
168
|
+
parentId: (str/default @entity.parentId "")
|
|
169
|
+
threadRootId: (str/default @entity.threadRootId (str/default @config.threadRootId root))
|
|
170
|
+
} {
|
|
171
|
+
emit: { failure: ThreadPostCreateFailed, success: ThreadPostCreated }
|
|
172
|
+
})
|
|
173
|
+
CANCEL_REPLY -> browsing
|
|
174
|
+
(set @entity.content "")
|
|
175
|
+
(set @entity.parentId "")
|
|
137
176
|
;; replying.SUBMIT_REPLY -> browsing lands here before the persist
|
|
138
177
|
;; resolves; a failure must be caught here too, not just replying's twin arm.
|
|
139
178
|
ThreadPostCreateFailed -> browsing
|
|
@@ -163,19 +202,27 @@ orbital ThreadPostOrbital {
|
|
|
163
202
|
state replying {
|
|
164
203
|
EDIT_REPLY -> replying
|
|
165
204
|
(set @entity.content ?value)
|
|
166
|
-
SUBMIT_REPLY -> browsing
|
|
167
|
-
(persist create ThreadPost
|
|
205
|
+
SUBMIT_REPLY -> browsing when (not ["=", (str/default @entity.content ""), ""])
|
|
206
|
+
(persist create ThreadPost {
|
|
207
|
+
authorId: @user.id
|
|
208
|
+
authorName: @user.name
|
|
209
|
+
content: @entity.content
|
|
210
|
+
parentId: (str/default @entity.parentId "")
|
|
211
|
+
threadRootId: (str/default @entity.threadRootId (str/default @config.threadRootId root))
|
|
212
|
+
} {
|
|
168
213
|
emit: { failure: ThreadPostCreateFailed, success: ThreadPostCreated }
|
|
169
214
|
})
|
|
170
215
|
CANCEL_REPLY -> browsing
|
|
171
216
|
(set @entity.content "")
|
|
172
217
|
(set @entity.parentId "")
|
|
218
|
+
;; Scoped to the row just created (?threadRootId, flat) — see the twin
|
|
219
|
+
;; arm in `browsing` for why.
|
|
173
220
|
ThreadPostCreated -> browsing
|
|
174
221
|
(set @entity.content "")
|
|
175
222
|
(set @entity.parentId "")
|
|
176
223
|
(fetch ThreadPost {
|
|
177
224
|
emit: { failure: ThreadPostLoadFailed, success: ThreadPostLoaded }
|
|
178
|
-
filter: (or ["=",
|
|
225
|
+
filter: (or ["=", ?threadRootId, ""] ["=", (object/get @entity threadRootId), ?threadRootId])
|
|
179
226
|
include: (replies)
|
|
180
227
|
})
|
|
181
228
|
ThreadPostCreateFailed -> replying
|
|
@@ -234,10 +281,8 @@ orbital ThreadPostOrbital {
|
|
|
234
281
|
@description "Indicates a reply has been modified."
|
|
235
282
|
@synonyms "update, change, modify"
|
|
236
283
|
@tier "presentation"
|
|
237
|
-
SUBMIT_REPLY
|
|
238
|
-
|
|
239
|
-
}
|
|
240
|
-
@description "Signals a new reply has been successfully submitted."
|
|
284
|
+
SUBMIT_REPLY
|
|
285
|
+
@description "Signals the composed draft should be persisted as a new post — the draft is read from the entity frame (@entity.content), so bare buttons can emit it."
|
|
241
286
|
@synonyms "post, send, add, publish"
|
|
242
287
|
@tier "domain"
|
|
243
288
|
CANCEL_REPLY
|
|
@@ -257,10 +302,8 @@ orbital ThreadPostOrbital {
|
|
|
257
302
|
@description "Indicates a failure to load a thread post."
|
|
258
303
|
@synonyms "load error, fetch failed, retrieval failed"
|
|
259
304
|
@tier "internal"
|
|
260
|
-
ThreadPostCreated
|
|
261
|
-
row :
|
|
262
|
-
}
|
|
263
|
-
@description "A new post has been added to the thread."
|
|
305
|
+
ThreadPostCreated
|
|
306
|
+
@description "A new post has been added to the thread — payload is the created ThreadPost row itself (flat: ?id, ?threadRootId, ?authorId, ?content, …), not wrapped under a row field."
|
|
264
307
|
@synonyms "new post, added, created"
|
|
265
308
|
@tier "domain"
|
|
266
309
|
ThreadPostCreateFailed {
|
|
@@ -294,10 +337,8 @@ orbital ThreadPostOrbital {
|
|
|
294
337
|
@description "A reply is being modified."
|
|
295
338
|
@synonyms "update, change, revise"
|
|
296
339
|
@tier "presentation"
|
|
297
|
-
SUBMIT_REPLY
|
|
298
|
-
|
|
299
|
-
}
|
|
300
|
-
@description "A new reply has been submitted and is awaiting processing."
|
|
340
|
+
SUBMIT_REPLY
|
|
341
|
+
@description "A new reply has been submitted and is awaiting processing — the draft is read from the entity frame (@entity.content), no payload required."
|
|
301
342
|
@synonyms "post, send, add, submit"
|
|
302
343
|
@tier "domain"
|
|
303
344
|
CANCEL_REPLY
|
|
@@ -317,10 +358,8 @@ orbital ThreadPostOrbital {
|
|
|
317
358
|
@description "Indicates a failure to load a thread post."
|
|
318
359
|
@synonyms "error, failure, load failed"
|
|
319
360
|
@tier "internal"
|
|
320
|
-
ThreadPostCreated
|
|
321
|
-
row :
|
|
322
|
-
}
|
|
323
|
-
@description "A new post has been added to the thread."
|
|
361
|
+
ThreadPostCreated
|
|
362
|
+
@description "A new post has been added to the thread — payload is the created ThreadPost row itself (flat: ?id, ?threadRootId, ?authorId, ?content, …), not wrapped under a row field."
|
|
324
363
|
@synonyms "new post, added, created"
|
|
325
364
|
@tier "domain"
|
|
326
365
|
ThreadPostCreateFailed {
|
|
@@ -356,9 +395,15 @@ orbital ThreadPostOrbital {
|
|
|
356
395
|
@label "recipientName"
|
|
357
396
|
@description "Header/recipient label for chat-style threads."
|
|
358
397
|
@tier "presentation"
|
|
359
|
-
sectionTitle : string =
|
|
398
|
+
sectionTitle : string = ""
|
|
360
399
|
@label "sectionTitle"
|
|
361
|
-
@description "Section header for
|
|
400
|
+
@description "Section header rendered by the default bodyContent when non-empty, along with a standalone composer button — the only REPLY affordance an empty thread has. Blank (the default) keeps the bare post list for embedded threads that bring their own chrome (chat rails, custom comment sections)."
|
|
401
|
+
@synonyms "header, comments title, discussion title"
|
|
402
|
+
@tier "presentation"
|
|
403
|
+
composerLabel : string = "Add comment"
|
|
404
|
+
@label "composerLabel"
|
|
405
|
+
@description "Label of the standalone composer button rendered under the post list when sectionTitle is non-empty."
|
|
406
|
+
@synonyms "reply label, comment button, add comment"
|
|
362
407
|
@tier "presentation"
|
|
363
408
|
emailAuthorBinding : string = @item.authorName
|
|
364
409
|
@label "emailAuthorBinding"
|
|
@@ -413,7 +458,15 @@ orbital ThreadPostOrbital {
|
|
|
413
458
|
@description "Reply binding for the reply body."
|
|
414
459
|
@tier "presentation"
|
|
415
460
|
bodyContent : render-ui = {
|
|
416
|
-
children: [{
|
|
461
|
+
children: [(if ["!=", @config.sectionTitle, ""] {
|
|
462
|
+
content: @config.sectionTitle
|
|
463
|
+
type: typography
|
|
464
|
+
variant: h4
|
|
465
|
+
} {
|
|
466
|
+
children: []
|
|
467
|
+
gap: none
|
|
468
|
+
type: stack
|
|
469
|
+
}), {
|
|
417
470
|
entity: ?data
|
|
418
471
|
fields: [{
|
|
419
472
|
label: Author
|
|
@@ -437,7 +490,17 @@ orbital ThreadPostOrbital {
|
|
|
437
490
|
look: @config.tableLook
|
|
438
491
|
type: data-list
|
|
439
492
|
variant: card
|
|
440
|
-
}]
|
|
493
|
+
}, (if ["!=", @config.sectionTitle, ""] {
|
|
494
|
+
action: REPLY
|
|
495
|
+
icon: message-square
|
|
496
|
+
label: @config.composerLabel
|
|
497
|
+
type: button
|
|
498
|
+
variant: secondary
|
|
499
|
+
} {
|
|
500
|
+
children: []
|
|
501
|
+
gap: none
|
|
502
|
+
type: stack
|
|
503
|
+
})]
|
|
441
504
|
direction: vertical
|
|
442
505
|
gap: md
|
|
443
506
|
type: stack
|
|
@@ -113,7 +113,7 @@ orbital TreeNodeOrbital {
|
|
|
113
113
|
type: file-tree
|
|
114
114
|
}]
|
|
115
115
|
direction: vertical
|
|
116
|
-
gap: md
|
|
116
|
+
gap: (if ["=", @config.look, "rail"] none md)
|
|
117
117
|
type: stack
|
|
118
118
|
})
|
|
119
119
|
TreeNodeLoadFailed -> error
|
|
@@ -265,7 +265,7 @@ orbital TreeNodeOrbital {
|
|
|
265
265
|
type: file-tree
|
|
266
266
|
}]
|
|
267
267
|
direction: vertical
|
|
268
|
-
gap: md
|
|
268
|
+
gap: (if ["=", @config.look, "rail"] none md)
|
|
269
269
|
type: stack
|
|
270
270
|
})
|
|
271
271
|
TreeNodeLoadFailed -> error
|
|
@@ -5,7 +5,7 @@ orbital RevisionOrbital {
|
|
|
5
5
|
|
|
6
6
|
type RevisionLoadFailed = Event { error : string, code : string } "Fired when the revision collection fails to load"
|
|
7
7
|
|
|
8
|
-
type RevisionRolledBack = Event
|
|
8
|
+
type RevisionRolledBack = Event Revision "Fired after a rollback persists successfully on the source document"
|
|
9
9
|
|
|
10
10
|
type RevisionRollbackFailed = Event { error : string, code : string } "Fired when a rollback fails to persist"
|
|
11
11
|
|
|
@@ -98,9 +98,9 @@ orbital RevisionOrbital {
|
|
|
98
98
|
type: stack
|
|
99
99
|
})
|
|
100
100
|
RevisionRolledBack -> loading
|
|
101
|
-
(set @entity.scopeKey (object/get
|
|
101
|
+
(set @entity.scopeKey (object/get @payload @config.scopeField ""))
|
|
102
102
|
(fetch Revision {
|
|
103
|
-
filter: (or ["=", @config.scopeField, ""] ["=", (object/get
|
|
103
|
+
filter: (or ["=", @config.scopeField, ""] ["=", (object/get @payload @config.scopeField ""), ""] ["=", (object/get @entity @config.scopeField), (object/get @payload @config.scopeField "")])
|
|
104
104
|
emit: { failure: RevisionLoadFailed, success: RevisionLoaded }
|
|
105
105
|
})
|
|
106
106
|
RevisionRollbackFailed -> error
|
|
@@ -532,9 +532,7 @@ orbital RevisionOrbital {
|
|
|
532
532
|
@description "Indicates a failure to load revision data."
|
|
533
533
|
@synonyms "error, fail, problem, unsuccessful"
|
|
534
534
|
@tier "internal"
|
|
535
|
-
RevisionRolledBack
|
|
536
|
-
row : Revision
|
|
537
|
-
}
|
|
535
|
+
RevisionRolledBack
|
|
538
536
|
@description "Indicates a revision has been successfully restored to a previous state."
|
|
539
537
|
@synonyms "restored, reverted, undone"
|
|
540
538
|
@tier "presentation"
|
|
@@ -593,9 +591,7 @@ orbital RevisionOrbital {
|
|
|
593
591
|
@description "Indicates a failure to retrieve revision data."
|
|
594
592
|
@synonyms "error, failure, problem, fetch failed"
|
|
595
593
|
@tier "internal"
|
|
596
|
-
RevisionRolledBack
|
|
597
|
-
row : Revision
|
|
598
|
-
}
|
|
594
|
+
RevisionRolledBack
|
|
599
595
|
@description "Indicates a revision has been successfully reverted."
|
|
600
596
|
@synonyms "reverted, undone, restored"
|
|
601
597
|
@tier "internal"
|
|
@@ -5,7 +5,7 @@ orbital VoteOrbital {
|
|
|
5
5
|
|
|
6
6
|
type VoteLoadFailed = Event { error : string, code : string } "Fired when the vote collection fails to load"
|
|
7
7
|
|
|
8
|
-
type VoteCasted = Event
|
|
8
|
+
type VoteCasted = Event @entity "Fired after a vote persists successfully"
|
|
9
9
|
|
|
10
10
|
type VoteCastFailed = Event { error : string, code : string } "Fired when persisting a vote fails"
|
|
11
11
|
|
|
@@ -180,9 +180,7 @@ orbital VoteOrbital {
|
|
|
180
180
|
@description "Indicates that loading a vote failed."
|
|
181
181
|
@synonyms "load error, failed load, fetch failure"
|
|
182
182
|
@tier "internal"
|
|
183
|
-
VoteCasted -> external
|
|
184
|
-
row : Vote
|
|
185
|
-
}
|
|
183
|
+
VoteCasted -> external
|
|
186
184
|
@description "Indicates a vote has been successfully recorded."
|
|
187
185
|
@synonyms "voted, vote-submitted, vote-changed"
|
|
188
186
|
@tier "domain"
|
|
@@ -223,9 +221,7 @@ orbital VoteOrbital {
|
|
|
223
221
|
@description "Indicates a failure to load vote data."
|
|
224
222
|
@synonyms "error, failed, problem, issue"
|
|
225
223
|
@tier "internal"
|
|
226
|
-
VoteCasted
|
|
227
|
-
row : Vote
|
|
228
|
-
}
|
|
224
|
+
VoteCasted
|
|
229
225
|
@description "A vote has been successfully recorded."
|
|
230
226
|
@synonyms "voted, tallied, updated"
|
|
231
227
|
@tier "domain"
|
|
@@ -9,7 +9,7 @@ orbital WizardOrbital {
|
|
|
9
9
|
|
|
10
10
|
type WizardLoadFailed = Event { error : string, code : string } "Fired when fetch fails"
|
|
11
11
|
|
|
12
|
-
type WizardSaved = Event
|
|
12
|
+
type WizardSaved = Event @entity "Fired when a wizard step has been persisted"
|
|
13
13
|
|
|
14
14
|
type WizardSaveFailed = Event { error : string, code : string } "Fired when persist fails"
|
|
15
15
|
|
|
@@ -511,7 +511,7 @@ orbital WizardOrbital {
|
|
|
511
511
|
@description "Indicates the wizard failed to load initial data."
|
|
512
512
|
@synonyms "load error, initialization failure"
|
|
513
513
|
@tier "internal"
|
|
514
|
-
WizardSaved
|
|
514
|
+
WizardSaved
|
|
515
515
|
@description "Indicates successful data submission within the wizard."
|
|
516
516
|
@synonyms "saved, submitted, confirmed"
|
|
517
517
|
@tier "domain"
|
|
@@ -558,7 +558,7 @@ orbital WizardOrbital {
|
|
|
558
558
|
@description "Indicates the wizard failed to load its initial data."
|
|
559
559
|
@synonyms "load error, initialization failure, failed load"
|
|
560
560
|
@tier "internal"
|
|
561
|
-
WizardSaved
|
|
561
|
+
WizardSaved
|
|
562
562
|
@description "Data submission from the current step has completed."
|
|
563
563
|
@synonyms "submit, save, confirm, send"
|
|
564
564
|
@tier "domain"
|
|
@@ -77,11 +77,11 @@ orbital AvatarOrbital {
|
|
|
77
77
|
@label "Class Name"
|
|
78
78
|
@description "Additional CSS classes"
|
|
79
79
|
@tier "presentation"
|
|
80
|
-
onClick :
|
|
80
|
+
onClick : event = "CLICK"
|
|
81
81
|
@label "On Click"
|
|
82
82
|
@description "Click handler"
|
|
83
83
|
@tier "presentation"
|
|
84
|
-
action :
|
|
84
|
+
action : event = "ACTION"
|
|
85
85
|
@label "Action"
|
|
86
86
|
@description "Declarative event name — emits UI:{action} via eventBus on click"
|
|
87
87
|
@tier "presentation"
|
|
@@ -68,7 +68,7 @@ orbital BadgeOrbital {
|
|
|
68
68
|
@label "Icon Asset"
|
|
69
69
|
@description "Asset image rendered as the badge icon; takes precedence over icon when provided."
|
|
70
70
|
@tier "presentation"
|
|
71
|
-
onRemove :
|
|
71
|
+
onRemove : event = ""
|
|
72
72
|
@label "On Remove"
|
|
73
73
|
@description "When set, renders a small X button on the right of the badge that invokes this handler — turns the badge into a removable chip. Used by the TagInput molecule and other 'list of removable values' surfaces."
|
|
74
74
|
@tier "presentation"
|
|
@@ -115,7 +115,7 @@ orbital BoxOrbital {
|
|
|
115
115
|
@label "Position"
|
|
116
116
|
@description "Position"
|
|
117
117
|
@tier "presentation"
|
|
118
|
-
action :
|
|
118
|
+
action : event = "ACTION"
|
|
119
119
|
@label "Action"
|
|
120
120
|
@description "Declarative event name — emits UI:{action} via eventBus on click"
|
|
121
121
|
@tier "presentation"
|
|
@@ -123,7 +123,7 @@ orbital BoxOrbital {
|
|
|
123
123
|
@label "Action Payload"
|
|
124
124
|
@description "Payload to include with the action event"
|
|
125
125
|
@tier "presentation"
|
|
126
|
-
hoverEvent :
|
|
126
|
+
hoverEvent : event = "HOVER"
|
|
127
127
|
@label "Hover Event"
|
|
128
128
|
@description "Declarative hover event — emits UI:{hoverEvent} with { hovered: true/false } on mouseEnter/mouseLeave"
|
|
129
129
|
@tier "presentation"
|