@almadar/std 16.252.0 → 16.253.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/agent/atoms/std-agent-suggestions.lolo +16 -2
- package/behaviors/lolo/ui/learning/atoms/std-learn-generate.lolo +6 -4
- package/behaviors/registry/agent/atoms/std-agent-context.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-memory.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-planner.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-proposal.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-session.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-suggestions.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-tool-call.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-trace.orb +1 -1
- package/behaviors/registry/agent/organisms/std-agent-assistant.orb +1 -1
- package/behaviors/registry/infra/atoms/std-analytics.orb +1 -1
- package/behaviors/registry/infra/atoms/std-approval-gate.orb +1 -1
- package/behaviors/registry/infra/atoms/std-audit-capture.orb +1 -1
- package/behaviors/registry/infra/atoms/std-cache-aside.orb +1 -1
- package/behaviors/registry/infra/atoms/std-calendar-sync.orb +1 -1
- package/behaviors/registry/infra/atoms/std-cascade-on-delete.orb +1 -1
- package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +1 -1
- package/behaviors/registry/infra/atoms/std-cross-reference.orb +1 -1
- package/behaviors/registry/infra/atoms/std-data-erasure.orb +1 -1
- package/behaviors/registry/infra/atoms/std-data-import.orb +1 -1
- package/behaviors/registry/infra/atoms/std-global-search.orb +1 -1
- package/behaviors/registry/infra/atoms/std-knowledge-loop.orb +1 -1
- package/behaviors/registry/infra/atoms/std-lifecycle.orb +1 -1
- package/behaviors/registry/infra/atoms/std-migration-job.orb +1 -1
- package/behaviors/registry/infra/atoms/std-mod-queue.orb +1 -1
- package/behaviors/registry/infra/atoms/std-notification-center.orb +1 -1
- package/behaviors/registry/infra/atoms/std-notification-preferences.orb +1 -1
- package/behaviors/registry/infra/atoms/std-notify-on-event.orb +1 -1
- package/behaviors/registry/infra/atoms/std-page-search.orb +1 -1
- package/behaviors/registry/infra/atoms/std-page-watch.orb +1 -1
- package/behaviors/registry/infra/atoms/std-permission-matrix.orb +1 -1
- package/behaviors/registry/infra/atoms/std-rate-limiter.orb +1 -1
- package/behaviors/registry/infra/atoms/std-reminder-scheduler.orb +1 -1
- package/behaviors/registry/infra/atoms/std-review-cycle.orb +1 -1
- package/behaviors/registry/infra/atoms/std-row-access-control.orb +1 -1
- package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +1 -1
- package/behaviors/registry/infra/organisms/std-status-lifecycle-control.orb +1 -1
- package/behaviors/registry/ml/atoms/std-data-collector.orb +1 -1
- package/behaviors/registry/ml/atoms/std-graph-builder.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-classify.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-infer.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-label-capture.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-posterior.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-similarity.orb +1 -1
- package/behaviors/registry/ml/atoms/std-tokenizer.orb +1 -1
- package/behaviors/registry/ml/atoms/std-weight-validator.orb +1 -1
- package/behaviors/registry/ml/organisms/std-escalating-decision.orb +1 -1
- package/behaviors/registry/ml/organisms/std-knowledge-tracing.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/std-avl-cosmic-zoom.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-avl-glyph.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-avl-transition-detail.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-behavior-view.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/ui-module-card.orb +1 -1
- package/behaviors/registry/ui/avl/organisms/ui-flow-canvas.orb +1 -1
- package/behaviors/registry/ui/avl/organisms/ui-layers-panel.orb +1 -1
- package/behaviors/registry/ui/avl/organisms/ui-orb-inspector.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-app-layout.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-app-search.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-behavior-catalog.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-behavior-tour.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-board.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-book-reader.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-browse.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-calendar.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-card-grid.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-confirmation.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-detail-layout.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-doc-page.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-esign-request.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-event-log.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-export.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-file-store.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-filter.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-gallery.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-gantt-schedule.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-geosearch.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-graphs.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-hero.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-home.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-import.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-language-picker.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-media-section.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-modal-editor.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-modal.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-notification-panel.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-panel-launcher.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-pricing.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-proof.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-prose.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-rating-review.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-record-detail.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-recurrence.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-related.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-saved-search.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-scatter.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-scoped-list.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-selection.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-site-footer.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-site-header.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-slide-deck.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-stat-band.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-stats.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-step-flow.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-steps.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-tabs.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-tag-strip.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-thread.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-tree.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-version-history.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-wizard.orb +1 -1
- package/behaviors/registry/ui/core/atoms/std-workspace-layout.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-animated-graphic.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-animated-reveal.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-aside.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-atlas-image.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-atlas-panel.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-avatar.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-badge.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-box.orb +1 -1
- 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-center.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-checkbox.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-conditional-wrapper.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-confetti-effect.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-day-cell.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-dialog.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-divider.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-filter-pill.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-flip-container.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-game-icon.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-hstack.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-icon.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-image.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 +1 -1
- package/behaviors/registry/ui/core/atoms/ui-label.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-law-reference-tooltip.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-overlay.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-pattern-tile.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-presence.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-progress-bar.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-radio.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-range-slider.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-section-header.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-select.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-spacer.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-sparkline.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-spinner.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-stack.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-status-dot.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-branch.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-connection.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-flow.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-grid.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-lobe.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-mesh.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-morph.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-node.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-pulse.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-ring.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-shield.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-svg-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 +1 -1
- package/behaviors/registry/ui/core/atoms/ui-textarea.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-theme-toggle.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-trend-indicator.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-typewriter-text.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-typography.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-video-embed.orb +1 -1
- package/behaviors/registry/ui/core/atoms/ui-vstack.orb +1 -1
- package/behaviors/registry/ui/core/molecules/std-stat-rows.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-accordion.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-activation-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-activity-rail.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-agent-activity-feed.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-agent-activity-row.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-agent-chat-feed.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-alert.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-animated-counter.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-bloom-quiz-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-branching-logic-builder.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-calendar-grid.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-carousel.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-change-list.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-chart-legend.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-chart.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-code-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-commit-row.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-connection-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-container.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-content-renderer.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-data-list.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-date-range-selector.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-doc-breadcrumb.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-doc-pagination.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-doc-search.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-doc-sidebar.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-doc-toc.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-document-details.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-drawer.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-edge-decoration.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-empty-state.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-error-boundary.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-error-state.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-feature-card.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-feature-grid.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-file-tree.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-flex.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-flip-card.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-form-field.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-form-layout.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-form-section-header.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-fx-overlay.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-gantt.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-geometric-pattern.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-gradient-divider.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-graph-view.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-grid.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-header.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-icon-button.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-import-progress.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-input-group.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-jazari-state-machine.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-lightbox.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-line-chart.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-loading-state.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-map-view.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-markdown-content.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-matrix-question.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-menu.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-meter.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-modal.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-navigation.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-notification.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-number-stepper.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-option-constraint-group.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-orbital-visualization.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-page-header.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-page-transition.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-pagination.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-popover.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-positioned-canvas.orb +1 -1
- 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 +1 -1
- package/behaviors/registry/ui/core/molecules/ui-quiz-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-reflection-block.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-relation-select.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-repeatable-form-section.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-reply-tree.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-rich-text-editor.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-scaled-diagram.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-search-input.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-section.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-side-panel.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-sidebar.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-signature-pad.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-simple-grid.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-skeleton.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-social-proof.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-sortable-list.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-split.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-star-rating.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-stat-display.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-table-view.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-tabs.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-tag-input.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-tooltip.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-top-nav-item.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-upload-drop-zone.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-version-diff.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-violation-alert.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-vote-stack.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-wizard-container.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-wizard-navigation.orb +1 -1
- package/behaviors/registry/ui/core/molecules/ui-wizard-progress.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-chat-bar.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-code-runner-panel.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-dashboard-grid.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-dock-layout.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-drawer-slot.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-form-section.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-form.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-master-detail-layout.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-modal-slot.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-runtime-debugger.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-split-pane.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +1 -1
- package/behaviors/registry/ui/core/organisms/ui-state-machine-view.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/organisms/ui-toast-slot.orb +1 -1
- package/behaviors/registry/ui/core/templates/ui-auth-layout.orb +1 -1
- package/behaviors/registry/ui/core/templates/ui-counter-template.orb +1 -1
- package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +1 -1
- package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-arcade-play.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-area-fill.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-audio-cue.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-camera-rig.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-chase-ai.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-choice-gate.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-coef-pad.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-curve-fog.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-fx-narrative.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-fx-particles.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-fx-trail.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-gate-lock.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-gather.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-gold.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-grid-tactics.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-hero-nav.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-lives.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-loop-lock.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-market-flow.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-motion-body.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-objective-reach.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-pad-lock.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-patience.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-patrol-hazard.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-pickup.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-platformer-body.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-production.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-score.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-tutorial-autodemo.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-tutorial-overlay.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-velocity-gate.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-xp.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-zone-card.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-action-palette.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-action-tile.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-canvas-2d.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-canvas.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-control-button.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-control-grid.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-fx-layer.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-group.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-mesh.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-shape-layer.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-shape.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-skinned-mesh.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-sprite-layer.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-text-layer.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-text.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-game-audio-cue.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-game-audio-toggle.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-game-hud.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-health-bar.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-score-display.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-sequence-bar.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-stat-badge.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-state-graph.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-state-json-view.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-timer-display.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-platformer-board-2d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +1 -1
- package/behaviors/registry/ui/game/templates/ui-game-shell.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-arrangement.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-classify.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-compare.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-coupled-sim.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-derivation.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-diagram.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-doser.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-estimate.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-fx-cues.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-generate.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-goal-seek.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-grid-sim.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-hotspot.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-live-sim.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-measure.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-param-explorer.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-perturb.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-predict.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-sample-accumulator.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-sandbox.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-scatter-fit.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-scenario.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-sim-3d.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-slope-probe.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-speed-drill.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-tour-3d.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-trace-player.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-transport.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-tree.orb +1 -1
- package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +1 -1
- 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 +1 -1
- 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/dist/behaviors-embeddings.hash.json +1 -1
- package/dist/behaviors-embeddings.json +1 -1
- package/dist/knob-embeddings.hash.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"std-record-detail","version":"1.0.0","description":"std-record-detail — single primitive: detail-panel. Owns the fetch-one-record state machine (loading → viewing → error, with RETRY), the record counterpart to std-browse's collection machine. Consumers configure fields/sections/actions and the title/subtitle/status bindings; the atom fetches by the id (or, for slug-routed records, the slug) carried on INIT and renders the panel. `detailLook` (panel default / slide-over / page / document) selects the render body, exactly as std-browse's browseLook selects a collection shape. The `document` look is for records whose shape IS a document (wiki page, note, article): the pure writing surface — a big inline-editable title with the rich-text body DIRECTLY beneath it, Edit/Done and the actions menu tucked into the header corner — where clicking the body drops a cursor in, every typing pause autosaves (CONTENT_SAVED, which the host persists QUIETLY — no refetch, or the editor unmounts mid-keystroke), and Done emits CONTENT_COMMITTED (the host refetches and snapshots version history on this one). Metadata never sits between the title and the words: compose the sibling RecordItemDetails trait beside the doc for a Gutenberg-style settings rail. A row minted blank by a document-first create arrives with draft=1 on INIT and opens straight in the editor. Pair with std-detail-layout for the back + breadcrumb chrome — that atom owns navigation, this one owns the record — exactly as a list page pairs std-browse with std-app-layout.","orbitals":[{"name":"RecordItemOrbital","id":"orb_D62JFM7QMNVTAYGGHXC4Q1TPF2","entity":{"name":"RecordItem","id":"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD","persistence":"runtime","fields":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true,"description":"The record's title or identifier.","synonyms":"title, label, heading"},{"name":"description","type":"string","description":"A textual explanation or summary of the record.","synonyms":"summary, details, notes"},{"name":"status","type":"string","default":"active","values":["active","inactive","pending"],"description":"The record's current state.","synonyms":"state, condition, stage"},{"name":"slug","type":"string","default":"","description":"URL-friendly identifier, for records opened by address instead of id.","synonyms":"permalink, url key, address"},{"name":"content","type":"string","default":"","description":"The record's rich-text body as HTML, edited in place by the document look.","synonyms":"body, text, document, article body"},{"name":"coverUrl","type":"string","default":"","intrinsic":true,"description":"The document look's cover/hero image URL, stamped from the loaded row's coverField."},{"name":"iconName","type":"string","default":"","intrinsic":true,"description":"The document look's icon name, stamped from the loaded row's iconField."},{"name":"loadedRow","type":"relation","relation":{"entity":"RecordItem","entityId":"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD","cardinality":"one"},"intrinsic":true,"description":"The full row exactly as last fetched (relations hydrated when config.include asks). The details drawer binds it, and hosts that need it (e.g. a settings modal) stash it from RecordItemLoaded — the document panel itself takes only scalar props and emits scalar payloads ({ id, title })."},{"name":"openDraft","type":"string","default":"","intrinsic":true,"description":"Set from the navigate payload when the surface was opened on a record that was JUST minted blank; read once the row loads to decide whether the document body opens authoring (draft) or read-only. Absent on a refresh or a normal open, so the draft entry never repeats.","synonyms":"new document, just created, draft open"},{"name":"createdAt","type":"string"}]},"traits":[{"name":"RecordItemDetail","id":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2","entityRebindable":true,"entityContract":{"requires":[],"provides":["content","coverUrl","description","iconName","loadedRow","name","openDraft","slug"]},"effectRow":[{"kind":"emit","resource":"CONTENT_COMMITTED"},{"kind":"emit","resource":"CONTENT_SAVED"},{"kind":"fetch","resource":"RecordItem"},{"kind":"render-ui","resource":"main"},{"kind":"set","resource":"@entity.content"},{"kind":"set","resource":"@entity.coverUrl"},{"kind":"set","resource":"@entity.description"},{"kind":"set","resource":"@entity.iconName"},{"kind":"set","resource":"@entity.id"},{"kind":"set","resource":"@entity.loadedRow"},{"kind":"set","resource":"@entity.name"},{"kind":"set","resource":"@entity.openDraft"},{"kind":"set","resource":"@entity.slug"}],"category":"interaction","linkedEntity":"RecordItem","linkedEntityId":"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD","entityRefIds":{"RecordItem":"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD"},"emits":[{"event":"RecordItemLoaded","eventId":"evt_FPH68D3PD1V6GVG63QF84JW93M","description":"Signals that the record has been successfully loaded.","synonyms":"loaded, received, ready, fetched","tier":"internal","scope":"internal","payloadSchema":[{"name":"data","type":"object","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"},{"name":"totalCount","type":"number"}]},{"event":"RecordItemSlugLoaded","eventId":"evt_YEWF935T5NX2TR12CY1ZRK39W2","description":"A slug-routed record finished loading; the payload is a collection whose first element is the record. Composing traits that need the loaded row (comments scoping, status controls) listen to this.","synonyms":"loaded by address, slug resolved, record found","tier":"internal","scope":"internal","payloadSchema":[{"name":"data","type":"[object]","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"},{"name":"totalCount","type":"number"}]},{"event":"RecordItemLoadFailed","eventId":"evt_NRMDTB7A7VN3XZQYCRY9H63F1J","description":"Indicates a failure to load the record.","synonyms":"error, failed, problem, unsuccessful","tier":"internal","scope":"internal","payloadSchema":[{"name":"error","type":"string"},{"name":"code","type":"string"}]},{"event":"EDIT","eventId":"evt_Q71EWZ1166GK39MB35MJ64TRPZ","description":"Signals a request to edit the record being viewed.","synonyms":"modify, update, change","tier":"domain","scope":"external","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"row","type":"object","required":true,"properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}]},{"event":"DELETE","eventId":"evt_P75FR56YQSFBWKV4J746V68P70","description":"Signals a request to remove the record being viewed.","synonyms":"remove, discard, delete, archive","tier":"domain","scope":"external","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"row","type":"object","required":true,"properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}]},{"event":"CONTENT_SAVED","eventId":"evt_WFN58WD80PM0BEBTE5J4DWQX27","description":"The document look's autosave stream: fired at every typing pause while editing, and once more on Done. This atom never persists — the composing organism routes CONTENT_SAVED into a QUIET persist (one that does not refetch or repaint this surface, or the editor unmounts mid-keystroke).","synonyms":"autosave, saved, persist content, draft saved","tier":"domain","scope":"external","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"content","type":"string"}]},{"event":"CONTENT_COMMITTED","eventId":"evt_78T54X4GEC87632251KVSZYDHX","description":"The author finished the document editing session (pressed Done). Hosts refetch the row, repaint, and snapshot version history on THIS event — never on the CONTENT_SAVED autosave stream.","synonyms":"done, finished editing, commit, snapshot","tier":"domain","scope":"external","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"content","type":"string"}]},{"event":"TITLE_COMMITTED","eventId":"evt_W147V9JAJG5984G8HNAMYZYB8F","description":"The viewer renamed the record in place by editing the document title; carries the committed title and the row id for a partial persist.","synonyms":"rename, retitle, change title, edit title","tier":"domain","scope":"external","payloadSchema":[{"name":"title","type":"string"},{"name":"id","type":"string"}]},{"event":"EDIT_CONTENT","eventId":"evt_NJM1ADF3ZDHZPGZNVWT5WD8NPC","description":"The viewer clicked the document body (or its Edit button) to start an editing session.","synonyms":"edit, start editing, click to edit","tier":"presentation"},{"event":"DONE_EDITING","eventId":"evt_KR80XKMD6D6K6HTE1M7RT1PY5M","description":"The viewer pressed Done to end the document editing session.","synonyms":"done, finish, stop editing","tier":"presentation"}],"stateMachine":{"states":[{"name":"idle","isInitial":true},{"name":"loading"},{"name":"editing"},{"name":"viewing"},{"name":"error"}],"events":[{"key":"INIT","id":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","name":"Initialize","description":"Opens the detail surface for one record: by id, or by slug for address-routed records (the internal re-fetch after an update still carries id). `draft` is set only by a document-first create's navigate, and opens the document look's body straight in the editor.","synonyms":"open record, view record, show details, drill in","tier":"domain","payloadSchema":[{"name":"id","type":"string"},{"name":"slug","type":"string"},{"name":"draft","type":"string"}],"listened":true},{"key":"CONTENT_SAVED","id":"evt_WFN58WD80PM0BEBTE5J4DWQX27","name":"Content Saved","description":"The document look's autosave stream: fired at every typing pause while editing, and once more on Done. This atom never persists — the composing organism routes CONTENT_SAVED into a QUIET persist (one that does not refetch or repaint this surface, or the editor unmounts mid-keystroke).","synonyms":"autosave, saved, persist content, draft saved","tier":"domain","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"content","type":"string"}]},{"key":"CONTENT_COMMITTED","id":"evt_78T54X4GEC87632251KVSZYDHX","name":"Content Committed","description":"The author finished the document editing session (pressed Done). Hosts refetch the row, repaint, and snapshot version history on THIS event — never on the CONTENT_SAVED autosave stream.","synonyms":"done, finished editing, commit, snapshot","tier":"domain","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"content","type":"string"}]},{"key":"TITLE_COMMITTED","id":"evt_W147V9JAJG5984G8HNAMYZYB8F","name":"Title Committed","description":"The viewer renamed the record in place by editing the document title; carries the committed title and the row id for a partial persist.","synonyms":"rename, retitle, change title, edit title","tier":"domain","payloadSchema":[{"name":"title","type":"string"},{"name":"id","type":"string"}],"listened":true},{"key":"OPEN_VIEW","id":"evt_MQPJGHZCRSPCCKFRVWT84PHNJW","name":"Open View","description":"A row was opened from a list; shows that record in this surface.","synonyms":"open record, view row, show details, drill in, expand","tier":"domain","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"row","type":"object","required":true,"properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}],"listened":true},{"key":"RecordItemLoaded","id":"evt_FPH68D3PD1V6GVG63QF84JW93M","name":"RecordItem loaded","description":"Signals that the record has been successfully loaded.","synonyms":"loaded, received, ready, fetched","tier":"internal","payloadSchema":[{"name":"data","type":"object","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"},{"name":"totalCount","type":"number"}]},{"key":"RecordItemSlugLoaded","id":"evt_YEWF935T5NX2TR12CY1ZRK39W2","name":"RecordItem slug loaded","description":"A slug-routed record finished loading; the payload is a collection whose first element is the record. Composing traits that need the loaded row (comments scoping, status controls) listen to this.","synonyms":"loaded by address, slug resolved, record found","tier":"internal","payloadSchema":[{"name":"data","type":"[object]","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"},{"name":"totalCount","type":"number"}]},{"key":"RecordItemLoadFailed","id":"evt_NRMDTB7A7VN3XZQYCRY9H63F1J","name":"RecordItem load failed","description":"Indicates a failure to load the record.","synonyms":"error, failed, problem, unsuccessful","tier":"internal","payloadSchema":[{"name":"error","type":"string"},{"name":"code","type":"string"}],"listened":true},{"key":"CONTENT_CHANGE","id":"evt_988JHGKHDDRPPWHHEH415BBRRM","name":"Content Change","description":"The rich text surface reported an edit (already debounced to typing pauses by the component).","synonyms":"typing, content changed, body edited","tier":"domain","payloadSchema":[{"name":"value","type":"string"}],"listened":true},{"key":"DONE_EDITING","id":"evt_KR80XKMD6D6K6HTE1M7RT1PY5M","name":"Done Editing","description":"The viewer pressed Done to end the document editing session.","synonyms":"done, finish, stop editing","tier":"presentation","listened":true},{"key":"CLOSE_VIEW","id":"evt_7991ZR3GKGR9R9F4999HWABKTK","name":"Close View","description":"Closes the record surface and returns it to blank.","synonyms":"close, dismiss, back to list","tier":"domain","listened":true},{"key":"EDIT_CONTENT","id":"evt_NJM1ADF3ZDHZPGZNVWT5WD8NPC","name":"Edit Content","description":"The viewer clicked the document body (or its Edit button) to start an editing session.","synonyms":"edit, start editing, click to edit","tier":"presentation","listened":true},{"key":"RETRY","id":"evt_GRQDPS35N3JTHP49GZ8N9WC6NM","name":"Retry","description":"Re-runs the fetch after a failed load.","synonyms":"try again, reload, refresh","tier":"domain","listened":true},{"key":"EDIT","id":"evt_Q71EWZ1166GK39MB35MJ64TRPZ","name":"Edit","description":"Signals a request to edit the record being viewed.","synonyms":"modify, update, change","tier":"domain","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"row","type":"object","required":true,"properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}]},{"key":"DELETE","id":"evt_P75FR56YQSFBWKV4J746V68P70","name":"Delete","description":"Signals a request to remove the record being viewed.","synonyms":"remove, discard, delete, archive","tier":"domain","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"row","type":"object","required":true,"properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}]}],"transitions":[{"from":"idle","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["=","@config.openOn","init"],["!=",["str/default","@payload.id",""],""]],"effects":[["set","@entity.id","@payload.id"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@payload.id","include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"idle","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["=","@config.openOn","init"],["=",["str/default","@payload.id",""],""],["!=",["str/default","@payload.slug",""],""]],"effects":[["set","@entity.slug","@payload.slug"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"filter":["=",["object/get","@entity","slug"],"@payload.slug"],"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemSlugLoaded"},"include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"idle","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["=","@config.openOn","init"],["=",["str/default","@payload.id",""],""],["=",["str/default","@payload.slug",""],""]],"effects":[["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@payload.id","include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"idle","to":"idle","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["=","@config.openOn","event"],"effects":[["render-ui","main",null]]},{"from":"idle","to":"idle","event":"CONTENT_SAVED","eventId":"evt_WFN58WD80PM0BEBTE5J4DWQX27"},{"from":"idle","to":"idle","event":"CONTENT_COMMITTED","eventId":"evt_78T54X4GEC87632251KVSZYDHX"},{"from":"idle","to":"idle","event":"TITLE_COMMITTED","eventId":"evt_W147V9JAJG5984G8HNAMYZYB8F"},{"from":"idle","to":"loading","event":"OPEN_VIEW","eventId":"evt_MQPJGHZCRSPCCKFRVWT84PHNJW","effects":[["set","@entity.id","@payload.id"],["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@payload.id","include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"loading","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["!=",["str/default","@payload.id",""],""],"effects":[["set","@entity.id","@payload.id"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@payload.id","include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"loading","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["=",["str/default","@payload.id",""],""],["!=",["str/default","@payload.slug",""],""]],"effects":[["set","@entity.slug","@payload.slug"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"filter":["=",["object/get","@entity","slug"],"@payload.slug"],"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemSlugLoaded"},"include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"loading","to":"editing","event":"RecordItemLoaded","eventId":"evt_FPH68D3PD1V6GVG63QF84JW93M","guard":["and",["=","@config.detailLook","document"],["=",["str/default",["object/get","@entity","openDraft"],""],"1"]],"effects":[["set","@entity.loadedRow",["object/merge","@payload.data",{}]],["set","@entity.id",["object/get","@payload.data","id"]],["set","@entity.name",["if",[">",["array/len","@config.titleFields"],0],["str/join",["array/map","@config.titleFields",["fn","f",["str/default",["object/get","@payload.data","@f"],""]]]," "],["object/get","@payload.data","@config.titleField"]]],["set","@entity.description",["str/default",["object/get","@payload.data","@config.subtitleField"],""]],["set","@entity.content",["object/get","@payload.data","@config.contentField"]],["set","@entity.coverUrl",["str/default",["object/get","@payload.data","@config.coverField"],""]],["set","@entity.iconName",["str/default",["object/get","@payload.data","@config.iconField"],""]],["render-ui","main","@config.documentEditingContent"]]},{"from":"loading","to":"viewing","event":"RecordItemLoaded","eventId":"evt_FPH68D3PD1V6GVG63QF84JW93M","guard":["or",["!=","@config.detailLook","document"],["!=",["str/default",["object/get","@entity","openDraft"],""],"1"]],"effects":[["set","@entity.loadedRow",["object/merge","@payload.data",{}]],["set","@entity.id",["object/get","@payload.data","id"]],["set","@entity.name",["if",[">",["array/len","@config.titleFields"],0],["str/join",["array/map","@config.titleFields",["fn","f",["str/default",["object/get","@payload.data","@f"],""]]]," "],["object/get","@payload.data","@config.titleField"]]],["set","@entity.description",["str/default",["object/get","@payload.data","@config.subtitleField"],""]],["set","@entity.content",["object/get","@payload.data","@config.contentField"]],["set","@entity.coverUrl",["str/default",["object/get","@payload.data","@config.coverField"],""]],["set","@entity.iconName",["str/default",["object/get","@payload.data","@config.iconField"],""]],["if",["=","@config.detailLook","document"],["render-ui","main","@config.documentBodyContent"],["if",["=","@config.detailLook","slide-over"],["render-ui","main","@config.slideOverBodyContent"],["if",["=","@config.detailLook","page"],["render-ui","main","@config.pageBodyContent"],["render-ui","main","@config.bodyContent"]]]]]},{"from":"loading","to":"editing","event":"RecordItemSlugLoaded","eventId":"evt_YEWF935T5NX2TR12CY1ZRK39W2","guard":["and",[">",["array/len","@payload.data"],0],["=","@config.detailLook","document"],["=",["str/default",["object/get","@entity","openDraft"],""],"1"]],"effects":[["set","@entity.loadedRow",["array/first","@payload.data"]],["set","@entity.id",["object/get",["array/first","@payload.data"],"id"]],["set","@entity.name",["if",[">",["array/len","@config.titleFields"],0],["str/join",["array/map","@config.titleFields",["fn","f",["str/default",["object/get",["array/first","@payload.data"],"@f"],""]]]," "],["object/get",["array/first","@payload.data"],"@config.titleField"]]],["set","@entity.description",["str/default",["object/get",["array/first","@payload.data"],"@config.subtitleField"],""]],["set","@entity.content",["object/get",["array/first","@payload.data"],"@config.contentField"]],["set","@entity.coverUrl",["str/default",["object/get",["array/first","@payload.data"],"@config.coverField"],""]],["set","@entity.iconName",["str/default",["object/get",["array/first","@payload.data"],"@config.iconField"],""]],["render-ui","main","@config.documentEditingContent"]]},{"from":"loading","to":"viewing","event":"RecordItemSlugLoaded","eventId":"evt_YEWF935T5NX2TR12CY1ZRK39W2","guard":["and",[">",["array/len","@payload.data"],0],["or",["!=","@config.detailLook","document"],["!=",["str/default",["object/get","@entity","openDraft"],""],"1"]]],"effects":[["set","@entity.loadedRow",["array/first","@payload.data"]],["set","@entity.id",["object/get",["array/first","@payload.data"],"id"]],["set","@entity.name",["if",[">",["array/len","@config.titleFields"],0],["str/join",["array/map","@config.titleFields",["fn","f",["str/default",["object/get",["array/first","@payload.data"],"@f"],""]]]," "],["object/get",["array/first","@payload.data"],"@config.titleField"]]],["set","@entity.description",["str/default",["object/get",["array/first","@payload.data"],"@config.subtitleField"],""]],["set","@entity.content",["object/get",["array/first","@payload.data"],"@config.contentField"]],["set","@entity.coverUrl",["str/default",["object/get",["array/first","@payload.data"],"@config.coverField"],""]],["set","@entity.iconName",["str/default",["object/get",["array/first","@payload.data"],"@config.iconField"],""]],["if",["=","@config.detailLook","document"],["render-ui","main","@config.documentBodyContent"],["if",["=","@config.detailLook","slide-over"],["render-ui","main","@config.slideOverBodyContent"],["if",["=","@config.detailLook","page"],["render-ui","main","@config.pageBodyContent"],["render-ui","main","@config.bodyContent"]]]]]},{"from":"loading","to":"error","event":"RecordItemSlugLoaded","eventId":"evt_YEWF935T5NX2TR12CY1ZRK39W2","guard":["=",["array/len","@payload.data"],0],"effects":[["render-ui","main",{"description":"No record matches this address.","icon":"search-x","title":"Not found","type":"empty-state"}]]},{"from":"loading","to":"error","event":"RecordItemLoadFailed","eventId":"evt_NRMDTB7A7VN3XZQYCRY9H63F1J","effects":[["render-ui","main",{"message":"@payload.error","title":"Couldn't load this record","type":"alert","variant":"error"}]]},{"from":"editing","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["!=",["str/default","@payload.id",""],""],["!=","@payload.id","@entity.id"]],"effects":[["set","@entity.id","@payload.id"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@payload.id","include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"editing","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["=",["str/default","@payload.id",""],""],["!=",["str/default","@payload.slug",""],""],["!=","@payload.slug","@entity.slug"]],"effects":[["set","@entity.slug","@payload.slug"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"filter":["=",["object/get","@entity","slug"],"@payload.slug"],"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemSlugLoaded"},"include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"editing","to":"editing","event":"CONTENT_CHANGE","eventId":"evt_988JHGKHDDRPPWHHEH415BBRRM","effects":[["set","@entity.content","@payload.value"],["set","@entity.loadedRow",["object/set","@entity.loadedRow","@config.contentField","@payload.value"]],["emit","CONTENT_SAVED",{"id":"@entity.id","content":"@entity.content"}]]},{"from":"editing","to":"editing","event":"TITLE_COMMITTED","eventId":"evt_W147V9JAJG5984G8HNAMYZYB8F","effects":[["set","@entity.name","@payload.title"],["set","@entity.loadedRow",["object/set","@entity.loadedRow","@config.titleField","@payload.title"]]]},{"from":"editing","to":"viewing","event":"DONE_EDITING","eventId":"evt_KR80XKMD6D6K6HTE1M7RT1PY5M","effects":[["emit","CONTENT_SAVED",{"id":"@entity.id","content":"@entity.content"}],["emit","CONTENT_COMMITTED",{"id":"@entity.id","content":"@entity.content"}],["render-ui","main","@config.documentBodyContent"]]},{"from":"editing","to":"idle","event":"CLOSE_VIEW","eventId":"evt_7991ZR3GKGR9R9F4999HWABKTK","effects":[["emit","CONTENT_SAVED",{"id":"@entity.id","content":"@entity.content"}],["render-ui","main",null]]},{"from":"viewing","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["!=",["str/default","@payload.id",""],""],"effects":[["set","@entity.id","@payload.id"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@payload.id","include":"@config.include"}]]},{"from":"viewing","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["=",["str/default","@payload.id",""],""],["!=",["str/default","@payload.slug",""],""]],"effects":[["set","@entity.slug","@payload.slug"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"filter":["=",["object/get","@entity","slug"],"@payload.slug"],"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemSlugLoaded"},"include":"@config.include"}]]},{"from":"viewing","to":"viewing","event":"RecordItemLoaded","eventId":"evt_FPH68D3PD1V6GVG63QF84JW93M","effects":[["set","@entity.loadedRow",["object/merge","@payload.data",{}]],["set","@entity.id",["object/get","@payload.data","id"]],["set","@entity.name",["if",[">",["array/len","@config.titleFields"],0],["str/join",["array/map","@config.titleFields",["fn","f",["str/default",["object/get","@payload.data","@f"],""]]]," "],["object/get","@payload.data","@config.titleField"]]],["set","@entity.description",["str/default",["object/get","@payload.data","@config.subtitleField"],""]],["set","@entity.content",["object/get","@payload.data","@config.contentField"]],["set","@entity.coverUrl",["str/default",["object/get","@payload.data","@config.coverField"],""]],["set","@entity.iconName",["str/default",["object/get","@payload.data","@config.iconField"],""]],["if",["=","@config.detailLook","document"],["render-ui","main","@config.documentBodyContent"],["if",["=","@config.detailLook","slide-over"],["render-ui","main","@config.slideOverBodyContent"],["if",["=","@config.detailLook","page"],["render-ui","main","@config.pageBodyContent"],["render-ui","main","@config.bodyContent"]]]]]},{"from":"viewing","to":"viewing","event":"RecordItemSlugLoaded","eventId":"evt_YEWF935T5NX2TR12CY1ZRK39W2","guard":[">",["array/len","@payload.data"],0],"effects":[["set","@entity.loadedRow",["array/first","@payload.data"]],["set","@entity.id",["object/get",["array/first","@payload.data"],"id"]],["set","@entity.name",["if",[">",["array/len","@config.titleFields"],0],["str/join",["array/map","@config.titleFields",["fn","f",["str/default",["object/get",["array/first","@payload.data"],"@f"],""]]]," "],["object/get",["array/first","@payload.data"],"@config.titleField"]]],["set","@entity.description",["str/default",["object/get",["array/first","@payload.data"],"@config.subtitleField"],""]],["set","@entity.content",["object/get",["array/first","@payload.data"],"@config.contentField"]],["set","@entity.coverUrl",["str/default",["object/get",["array/first","@payload.data"],"@config.coverField"],""]],["set","@entity.iconName",["str/default",["object/get",["array/first","@payload.data"],"@config.iconField"],""]],["if",["=","@config.detailLook","document"],["render-ui","main","@config.documentBodyContent"],["if",["=","@config.detailLook","slide-over"],["render-ui","main","@config.slideOverBodyContent"],["if",["=","@config.detailLook","page"],["render-ui","main","@config.pageBodyContent"],["render-ui","main","@config.bodyContent"]]]]]},{"from":"viewing","to":"error","event":"RecordItemSlugLoaded","eventId":"evt_YEWF935T5NX2TR12CY1ZRK39W2","guard":["=",["array/len","@payload.data"],0],"effects":[["render-ui","main",{"description":"No record matches this address.","icon":"search-x","title":"Not found","type":"empty-state"}]]},{"from":"viewing","to":"editing","event":"EDIT_CONTENT","eventId":"evt_NJM1ADF3ZDHZPGZNVWT5WD8NPC","guard":["=","@config.detailLook","document"],"effects":[["render-ui","main","@config.documentEditingContent"]]},{"from":"viewing","to":"viewing","event":"TITLE_COMMITTED","eventId":"evt_W147V9JAJG5984G8HNAMYZYB8F","effects":[["set","@entity.name","@payload.title"],["set","@entity.loadedRow",["object/set","@entity.loadedRow","@config.titleField","@payload.title"]]]},{"from":"viewing","to":"error","event":"RecordItemLoadFailed","eventId":"evt_NRMDTB7A7VN3XZQYCRY9H63F1J","effects":[["render-ui","main",{"message":"@payload.error","title":"Couldn't load this record","type":"alert","variant":"error"}]]},{"from":"viewing","to":"idle","event":"CLOSE_VIEW","eventId":"evt_7991ZR3GKGR9R9F4999HWABKTK","effects":[["render-ui","main",null]]},{"from":"error","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["!=",["str/default","@payload.id",""],""],"effects":[["set","@entity.id","@payload.id"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@payload.id","include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"error","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["=",["str/default","@payload.id",""],""],["!=",["str/default","@payload.slug",""],""]],"effects":[["set","@entity.slug","@payload.slug"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"filter":["=",["object/get","@entity","slug"],"@payload.slug"],"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemSlugLoaded"},"include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"error","to":"loading","event":"RETRY","eventId":"evt_GRQDPS35N3JTHP49GZ8N9WC6NM","effects":[["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@entity.id","include":"@config.include"}],["render-ui","main","@config.loadingContent"]]}]},"config":{"totals":{"type":"[RecordFieldSpec]","default":[],"label":"Which fields are the totals?","description":"Record fields shown under the line items in order (e.g. subtotal, tax, total); the last is emphasised.","synonyms":"totals, subtotal, grand total, amount due","tier":"presentation","items":{"type":"object","properties":{"variant":{"name":"variant","type":"string","required":false,"values":["h3","h4","body","caption","badge","small","progress"]},"key":{"name":"key","type":"string","required":true},"colorMap":{"name":"colorMap","type":"object","required":false,"items":{"type":"string","values":["default","primary","secondary","success","warning","danger","error","info","neutral","destructive"]}},"labels":{"name":"labels","type":"object","required":false,"items":{"type":"string"}},"format":{"name":"format","type":"string","required":false,"values":["date","currency","number","boolean","percent"]},"header":{"name":"header","type":"string","required":false}}}},"maxInlineActions":{"type":"number","default":3,"label":"How many actions before collapsing?","description":"Actions beyond this count collapse into a '⋯' overflow menu.","synonyms":"inline actions limit, overflow threshold","tier":"presentation"},"pageBodyContent":{"type":"render-ui","default":{"children":[{"actions":["if","@config.showActions",["array/filter","@config.actions",["fn","action",["or",["=",["array/len",["object/get","@action","roles",[]]],0],["array/includes",["object/get","@action","roles",[]],"@config.viewerRole"]]]],[]],"entity":"@entity.loadedRow","fields":"@config.fields","closeEvent":"@config.closeEvent","initialData":"@entity.loadedRow","maxInlineActions":"@config.maxInlineActions","sections":"@config.sections","showActions":"@config.showActions","subtitle":"@entity.description","title":"@entity.name","look":"@config.recordLook","avatarField":"@config.avatarField","coverField":"@config.coverField","mediaField":"@config.mediaField","stageField":"@config.stageField","stages":"@config.stages","latitudeField":"@config.latitudeField","longitudeField":"@config.longitudeField","lineItems":["object/get","@entity.loadedRow","@config.lineItemsField"],"lineItemColumns":"@config.lineItemColumns","totals":"@config.totals","thread":["object/get","@entity.loadedRow","@config.threadField"],"tabs":"@config.tabs","type":"detail-panel"}],"className":"w-full max-w-4xl","direction":"vertical","gap":"lg","type":"stack"},"label":"Page look body","description":"Render-ui SExpr rendered after the record loads when detailLook = page: a full record page, width-capped so field rows do not stretch past a readable measure (Almadar_UI_Beauty.md §3).","tier":"internal"},"iconField":{"type":"string","default":"","label":"Which field is the document icon?","description":"Name of the field on the loaded record whose icon name renders beside the document title (e.g. icon). Empty = no icon, the default.","synonyms":"icon field, glyph field","tier":"presentation"},"stages":{"type":"[RecordStage]","default":[],"label":"What is the lifecycle, in order?","description":"The workflow look's stepper: one { value, label } per stage, value matching stageField's enum.","synonyms":"lifecycle, pipeline stages, steps, phases","tier":"presentation","items":{"type":"object","properties":{"value":{"name":"value","type":"string","required":true},"label":{"name":"label","type":"string","required":true}}}},"documentBodyContent":{"type":"render-ui","default":{"actions":["array/filter","@config.actions",["fn","action",["or",["=",["array/len",["object/get","@action","roles",[]]],0],["array/includes",["object/get","@action","roles",[]],"@config.viewerRole"]]]],"coverImage":"@entity.coverUrl","icon":"@entity.iconName","editEvent":["if","@config.allowEdit","EDIT_CONTENT",null],"editLabel":"@config.editLabel","id":"@entity.id","maxInlineActions":"@config.maxInlineActions","placeholder":"@config.placeholder","subtitle":"@entity.description","title":"@entity.name","titleCommitEvent":["if","@config.allowEdit","TITLE_COMMITTED",null],"type":"document-panel","value":"@entity.content","className":"w-full"},"label":"Document look body (reading)","description":"Render-ui SExpr for detailLook = document while reading: the pure writing surface — editable title with the rich-text body DIRECTLY beneath it, Edit and the actions menu tucked into the header corner. Metadata never sits between title and content; compose the sibling RecordItemDetails trait beside this one for the settings rail. Binds only @entity fields, never ?data, because it is also painted by arms whose payload is not the record.","tier":"internal"},"allowEdit":{"type":"boolean","default":true,"label":"Allow editing the document?","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.","synonyms":"read only document, viewer mode, can edit, editing allowed","tier":"policy"},"titleFields":{"type":"[string]","default":[],"label":"Which fields make up the title, in order?","description":"For records whose name is split across fields (firstName + lastName): the listed fields' values joined with spaces become the title, and override titleField. Empty = titleField alone, the default.","synonyms":"full name, name parts, composite title, first and last name","tier":"presentation","items":{"type":"string"}},"avatarField":{"type":"string","default":"","label":"Which field is the avatar?","description":"Name of the image field shown as the profile look's avatar; the title supplies initials when it is empty.","synonyms":"photo field, avatar field, picture field","tier":"presentation"},"stageField":{"type":"string","default":"","label":"Which field is the lifecycle stage?","description":"Name of the field holding the record's current stage; the workflow look marks it on the stepper.","synonyms":"stage field, status field, phase field, step field","tier":"presentation"},"loadingContent":{"type":"render-ui","default":{"type":"skeleton","variant":"detail"},"label":"Loading placeholder","description":"Shown while the record loads, shaped like what replaces it so the page does not jump: the detail skeleton for the panel/slide-over/page looks; a document-look consumer sets { type: skeleton, variant: text, rows: 8 }.","tier":"internal"},"doneLabel":{"type":"string","default":"Done","label":"Done button label","description":"Label of the button that ends the document editing session; work is already autosaved when it is pressed.","tier":"presentation"},"coverField":{"type":"string","default":"","label":"Which field is the cover image?","description":"Name of the image-typed field on the loaded record painted as the hero banner of the document look and of the profile record look (e.g. coverImage, heroImage). Empty = no banner, the default.","synonyms":"cover field, hero image field, banner field","tier":"presentation"},"openOn":{"type":"string","default":"init","label":"When does this surface load?","description":"init = a routed detail page; the record loads as soon as the page mounts (the default). event = an overlay that stays blank until a row-click OPEN_VIEW hands it an id, which is what a list-embedded slide-over needs — mounting an init-loading surface on a list page would fetch a record it has no id for.","synonyms":"open on click, slide over, row click, blank until opened, list embedded","tier":"policy","values":["init","event"]},"recordLook":{"type":"string","default":"panel","label":"Record look","description":"How the record itself is arranged inside the panel/slide-over/page frame, so not every app reads as an admin form. panel = labelled field grid (default); profile = a person or member: avatar + cover hero (avatarField, coverField); showcase = image-first product or listing with a gallery (mediaField); workflow = a lifecycle stepper over the record (stageField, stages); map = a place: location map hero (latitudeField, longitudeField); ledger = an invoice/order document: line items then totals (lineItemsField, lineItemColumns, totals); conversation = a ticket or thread: the messages beside the record facts (threadField); workspace = a hub record with tabs (tabs). Regions with no data simply do not render. A region fed by a separate trait (replies with their composer, editable order lines, activity history) is composed by overriding the body and passing detail-panel's threadContent / lineItemsContent / activityContent.","synonyms":"record style, profile page, product page, listing page, invoice view, ticket view, timeline view, tabbed record, location page","tier":"presentation","values":["panel","profile","showcase","workflow","map","ledger","conversation","workspace"]},"viewerRole":{"type":"string","default":"","label":"Viewer's role","description":"The signed-in viewer's role that each action's `roles` is checked against. Bind it explicitly at the call site (e.g. `viewerRole: @user.role`) in an app whose identity carries a role; left empty, only actions with no `roles` show.","tier":"policy"},"tabs":{"type":"[RecordTab]","default":[],"label":"Which tabs follow the overview?","description":"The workspace look's tabs after Overview: each lists field names, or composes a related trait as content (e.g. a company's deals list).","synonyms":"tabs, record tabs, sub pages, related lists","tier":"presentation","items":{"type":"object","properties":{"content":{"name":"content","type":"string","required":false},"fields":{"name":"fields","type":"array","required":false,"items":{"type":"string"}},"id":{"name":"id","type":"string","required":true},"label":{"name":"label","type":"string","required":true}}}},"detailLook":{"type":"string","default":"panel","label":"Detail look","description":"Visual treatment for the record surface. panel = an inline detail-panel in the page flow (bodyContent); slide-over = the same panel as a right-hand drawer over the list behind it (slideOverBodyContent); page = a full-width record page with roomier spacing (pageBodyContent); document = a wiki-page/note/article surface — big editable title over a rich-text body, no labelled field rows, click-to-edit with autosave (documentBodyContent / documentEditingContent). Selecting a look swaps which body tree renders after the record loads; any body may still be overridden directly at the call site.","synonyms":"detail style, drawer, slide over, full page, document, wiki page, note, article","tier":"presentation","values":["panel","slide-over","page","document"]},"documentEditingContent":{"type":"render-ui","default":{"actions":["array/filter","@config.actions",["fn","action",["or",["=",["array/len",["object/get","@action","roles",[]]],0],["array/includes",["object/get","@action","roles",[]],"@config.viewerRole"]]]],"coverImage":"@entity.coverUrl","icon":"@entity.iconName","autosaveHint":"@config.autosaveHint","contentChangeEvent":"CONTENT_CHANGE","doneEvent":"DONE_EDITING","doneLabel":"@config.doneLabel","editing":true,"id":"@entity.id","maxInlineActions":"@config.maxInlineActions","placeholder":"@config.placeholder","subtitle":"@entity.description","title":"@entity.name","titleCommitEvent":"TITLE_COMMITTED","type":"document-panel","value":"@entity.content","className":"w-full"},"label":"Document look body (editing)","description":"Render-ui SExpr for detailLook = document during an editing session: the same surface with the body live and the header corner showing the autosave hint + Done. Binds only @entity fields, never ?data.","tier":"internal"},"contentField":{"type":"string","default":"content","label":"Which field holds the document body?","description":"Name of the field on the loaded record that carries the rich-text HTML body the document look renders and edits (e.g. content, body, articleText).","synonyms":"body field, content field, document field","tier":"presentation"},"subtitleField":{"type":"string","default":"description","label":"Which field is the subtitle?","description":"Name of the field shown under the title (e.g. company, category). Set to \"\" for no subtitle at all — the right choice for the document look, whose metadata lives in the properties strip, not a second line.","synonyms":"subtitle field, secondary field, subheading, no subtitle","tier":"presentation"},"placeholder":{"type":"string","default":"Start writing…","label":"Placeholder text","description":"Placeholder shown in the document body when it is empty.","tier":"presentation"},"sections":{"type":"[RecordSection]","default":[],"label":"How should the fields be grouped?","description":"Optional titled groups over `fields`, e.g. [{title: Contact, fields: [email, phone]}]. Group into sections of 3-5 once a record carries more than about seven fields — a flat list past that is the cognitive-load problem Almadar_UX.md §1.4 (Miller) describes. Empty = one ungrouped list, the default.","synonyms":"field groups, grouped fields, panel sections, fieldsets","tier":"presentation","items":{"type":"object","properties":{"title":{"name":"title","type":"string","required":true},"fields":{"name":"fields","type":"array","required":false,"items":{"type":"string"}}}}},"lineItemsField":{"type":"string","default":"","label":"Which relation holds the line items?","description":"Name of the hydrated relation (list it in include) whose rows the ledger look tables.","synonyms":"line items field, order lines, invoice lines, child rows","tier":"presentation"},"lineItemColumns":{"type":"[LineItemColumn]","default":[],"label":"Which line-item columns?","description":"Columns of the ledger look's line-items table.","tier":"presentation","items":{"type":"object","properties":{"format":{"name":"format","type":"string","required":false,"values":["badge","date","currency","number","percent","boolean"]},"align":{"name":"align","type":"string","required":false,"values":["left","center","right"]},"header":{"name":"header","type":"string","required":false},"key":{"name":"key","type":"string","required":true}}}},"slideOverBodyContent":{"type":"render-ui","default":{"children":[{"actions":["if","@config.showActions",["array/filter","@config.actions",["fn","action",["or",["=",["array/len",["object/get","@action","roles",[]]],0],["array/includes",["object/get","@action","roles",[]],"@config.viewerRole"]]]],[]],"entity":"@entity.loadedRow","fields":"@config.fields","closeEvent":"@config.closeEvent","initialData":"@entity.loadedRow","maxInlineActions":"@config.maxInlineActions","sections":"@config.sections","showActions":"@config.showActions","slideOver":true,"subtitle":"@entity.description","title":"@entity.name","look":"@config.recordLook","avatarField":"@config.avatarField","coverField":"@config.coverField","mediaField":"@config.mediaField","stageField":"@config.stageField","stages":"@config.stages","latitudeField":"@config.latitudeField","longitudeField":"@config.longitudeField","lineItems":["object/get","@entity.loadedRow","@config.lineItemsField"],"lineItemColumns":"@config.lineItemColumns","totals":"@config.totals","thread":["object/get","@entity.loadedRow","@config.threadField"],"tabs":"@config.tabs","type":"detail-panel"}],"direction":"vertical","gap":"none","type":"stack"},"label":"Slide-over look body","description":"Render-ui SExpr rendered after the record loads when detailLook = slide-over: the same panel as a right-hand drawer, so the list behind stays in place. Use when the record is a glance, not a workspace.","tier":"internal"},"autosaveHint":{"type":"string","default":"Saves as you type","label":"Autosave hint","description":"Muted caption next to the Done button telling the author their work persists on its own.","tier":"presentation"},"closeEvent":{"type":"event","default":"","label":"Which action closes the record?","description":"The `actions` entry whose event matches renders as the panel's close (×) button. Empty = no close button (a routed detail page navigates back instead).","synonyms":"close event, dismiss event, close button","tier":"presentation"},"actions":{"type":"[RecordAction]","default":[{"event":"EDIT","label":"Edit","variant":"secondary"},{"event":"DELETE","label":"Delete","variant":"danger"}],"label":"What actions can users take on this record?","description":"Buttons on the panel header. One primary at most; the rest collapse past maxInlineActions.","synonyms":"record actions, detail actions, panel buttons","tier":"presentation","items":{"type":"object","properties":{"icon":{"name":"icon","type":"string","required":false},"when":{"name":"when","type":"SExpr","required":false},"roles":{"name":"roles","type":"array","required":false,"items":{"type":"string"}},"label":{"name":"label","type":"string","required":true},"variant":{"name":"variant","type":"string","required":false,"values":["primary","secondary","ghost","danger"]},"event":{"name":"event","type":"event","required":true}}}},"threadField":{"type":"string","default":"","label":"Which relation holds the thread?","description":"Name of the hydrated relation (list it in include) whose messages the conversation look shows.","synonyms":"messages field, replies field, comments field, thread field","tier":"presentation"},"editLabel":{"type":"string","default":"Edit","label":"Edit button label","description":"Label of the quiet button above the document body that starts an editing session (the body itself is also clickable).","tier":"presentation"},"bodyContent":{"type":"render-ui","default":{"children":[{"actions":["if","@config.showActions",["array/filter","@config.actions",["fn","action",["or",["=",["array/len",["object/get","@action","roles",[]]],0],["array/includes",["object/get","@action","roles",[]],"@config.viewerRole"]]]],[]],"entity":"@entity.loadedRow","fields":"@config.fields","closeEvent":"@config.closeEvent","initialData":"@entity.loadedRow","maxInlineActions":"@config.maxInlineActions","sections":"@config.sections","showActions":"@config.showActions","subtitle":"@entity.description","title":"@entity.name","look":"@config.recordLook","avatarField":"@config.avatarField","coverField":"@config.coverField","mediaField":"@config.mediaField","stageField":"@config.stageField","stages":"@config.stages","latitudeField":"@config.latitudeField","longitudeField":"@config.longitudeField","lineItems":["object/get","@entity.loadedRow","@config.lineItemsField"],"lineItemColumns":"@config.lineItemColumns","totals":"@config.totals","thread":["object/get","@entity.loadedRow","@config.threadField"],"tabs":"@config.tabs","type":"detail-panel"}],"direction":"vertical","gap":"lg","type":"stack"},"label":"Body content tree","description":"Render-ui SExpr rendered after the record loads when detailLook = panel (the default). See slideOverBodyContent/pageBodyContent for the other looks; any may be overridden directly while inheriting the same trait, state machine, emits, and listens.","tier":"internal"},"latitudeField":{"type":"string","default":"","label":"Which field is the latitude?","description":"Name of the latitude field the map look pins.","tier":"presentation"},"include":{"type":"[string]","default":[],"label":"Which relation fields to hydrate?","description":"Entity relation field names to hydrate on fetch, so panel fields can use dot-paths like owner.name. Empty = no hydration, the default.","synonyms":"relation hydration, populate relations, joined fields","tier":"internal","items":{"type":"string"}},"mediaField":{"type":"string","default":"","label":"Which field holds the images?","description":"Name of the field the showcase look leads with: one image URL, a list of URLs, or a list of { src, caption }.","synonyms":"gallery field, photos field, images field, media field","tier":"presentation"},"showActions":{"type":"boolean","default":true,"label":"Show the action buttons?","description":"Set false for a read-only record view; a panel with actions nothing listens to is a dead affordance.","synonyms":"read only, hide actions, view only","tier":"presentation"},"longitudeField":{"type":"string","default":"","label":"Which field is the longitude?","description":"Name of the longitude field the map look pins.","tier":"presentation"},"fields":{"type":"[RecordFieldSpec]","default":[{"header":"Name","key":"name","variant":"h4"},{"header":"Description","key":"description","variant":"body"},{"header":"Status","key":"status","variant":"badge"},{"format":"date","header":"Created","key":"createdAt"}],"label":"Which fields appear in the record panel?","description":"Each entry maps one entity field to a labelled row in the panel. Unlike a list row, a detail panel SHOULD label every field — the value stands alone here with no column header or repeated row position to name it.","synonyms":"detail fields, record fields, panel fields, shown fields","tier":"presentation","items":{"type":"object","properties":{"key":{"name":"key","type":"string","required":true},"format":{"name":"format","type":"string","required":false,"values":["date","currency","number","boolean","percent"]},"variant":{"name":"variant","type":"string","required":false,"values":["h3","h4","body","caption","badge","small","progress"]},"colorMap":{"name":"colorMap","type":"object","required":false,"items":{"type":"string","values":["default","primary","secondary","success","warning","danger","error","info","neutral","destructive"]}},"labels":{"name":"labels","type":"object","required":false,"items":{"type":"string"}},"header":{"name":"header","type":"string","required":false}}}},"titleField":{"type":"string","default":"name","label":"Which field is the record's title?","description":"Name of the field on the loaded record shown as the panel title (e.g. contactName, subject, title).","synonyms":"title field, heading field, name field, label field","tier":"presentation"}},"scope":"instance"},{"name":"RecordItemDetails","id":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX","entityRebindable":true,"entityContract":{"requires":[],"provides":["loadedRow"]},"effectRow":[{"kind":"emit","resource":"META_SAVED"},{"kind":"render-ui","resource":"drawer"},{"kind":"set","resource":"@entity.loadedRow"}],"category":"interaction","linkedEntity":"RecordItem","linkedEntityId":"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD","entityRefIds":{"RecordItem":"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD"},"emits":[{"event":"META_SAVED","eventId":"evt_KDAYHGH0P9GB4T4BYJVHZ1V2M2","description":"A property in the settings rail committed in place; patch carries the row id plus the one changed field, ready to hand straight to a persist update. Quiet contract: the host persists without refetching or repainting the open document.","synonyms":"property saved, metadata changed, field committed, update property","tier":"domain","scope":"external","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"patch","type":"object","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}]},{"event":"RELATION_OPEN","eventId":"evt_AF4RKV2PXDBEPG8TW57QTAT5YN","description":"A relation chip in the details drawer was clicked (a tag, the author, the category); id is the linked row's id. Hosts route it to the linked record's own surface — a navigate, a scoped overlay, a filtered list.","synonyms":"open relation, linked record clicked, tag clicked, chip clicked","tier":"domain","scope":"external","payloadSchema":[{"name":"field","type":"string","required":true},{"name":"id","type":"string","required":true},{"name":"name","type":"string"}]}],"stateMachine":{"states":[{"name":"idle","isInitial":true},{"name":"showing"}],"events":[{"key":"INIT","id":"evt_SYY3N9KKF3SQHQ4BH30VZWHRP0","name":"Initialize"},{"key":"SHOW_DETAILS","id":"evt_CANA4G5697K4KMZPYYQXWHZ8PP","name":"Show Details","description":"The document finished loading; stash the row the details drawer will show. Hosts route the doc trait's RecordItemLoaded (or SlugLoaded first element) here.","synonyms":"record loaded, show metadata, populate details","tier":"domain","payloadSchema":[{"name":"data","type":"object","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}],"listened":true},{"key":"OPEN_DETAILS","id":"evt_EK7RE9BSEAWQ5EYJWSC0FHC00D","name":"Open Details","description":"Open the details drawer. Hosts route the document's Details action (e.g. Doc.VIEW_INFO) here.","synonyms":"show info, open details, document info, page info","tier":"presentation","payloadSchema":[{"name":"id","type":"string"}],"listened":true},{"key":"META_SAVED","id":"evt_KDAYHGH0P9GB4T4BYJVHZ1V2M2","name":"Meta Saved","description":"A property in the settings rail committed in place; patch carries the row id plus the one changed field, ready to hand straight to a persist update. Quiet contract: the host persists without refetching or repainting the open document.","synonyms":"property saved, metadata changed, field committed, update property","tier":"domain","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"patch","type":"object","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}]},{"key":"CLOSE","id":"evt_R6ZWTZFMJET976XE2ZETG7SAGP","name":"Close","description":"Close the details drawer; the drawer chrome's X / backdrop dismiss emits this.","synonyms":"dismiss, close drawer, hide details","tier":"presentation","payloadSchema":[{"name":"id","type":"string"}],"listened":true},{"key":"META_CHANGE","id":"evt_W9R9JYBCSXPCYMKY41KV88DSPN","name":"Meta Change","description":"A property in the rail committed (switch toggled, select changed, text blurred).","synonyms":"property changed, metadata edited, field committed","tier":"domain","payloadSchema":[{"name":"id","type":"string"},{"name":"patch","type":"object","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}],"listened":true},{"key":"RELATION_OPEN","id":"evt_AF4RKV2PXDBEPG8TW57QTAT5YN","name":"Relation Open","description":"A relation chip in the details drawer was clicked (a tag, the author, the category); id is the linked row's id. Hosts route it to the linked record's own surface — a navigate, a scoped overlay, a filtered list.","synonyms":"open relation, linked record clicked, tag clicked, chip clicked","tier":"domain","payloadSchema":[{"name":"field","type":"string","required":true},{"name":"id","type":"string","required":true},{"name":"name","type":"string"}]}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_SYY3N9KKF3SQHQ4BH30VZWHRP0"},{"from":"idle","to":"idle","event":"SHOW_DETAILS","eventId":"evt_CANA4G5697K4KMZPYYQXWHZ8PP","effects":[["set","@entity.loadedRow",["object/merge","@payload.data",{}]]]},{"from":"idle","to":"showing","event":"OPEN_DETAILS","eventId":"evt_EK7RE9BSEAWQ5EYJWSC0FHC00D","effects":[["render-ui","drawer","@config.detailsContent"]]},{"from":"idle","to":"idle","event":"META_SAVED","eventId":"evt_KDAYHGH0P9GB4T4BYJVHZ1V2M2"},{"from":"showing","to":"showing","event":"SHOW_DETAILS","eventId":"evt_CANA4G5697K4KMZPYYQXWHZ8PP","effects":[["set","@entity.loadedRow",["object/merge","@payload.data",{}]],["render-ui","drawer","@config.detailsContent"]]},{"from":"showing","to":"showing","event":"OPEN_DETAILS","eventId":"evt_EK7RE9BSEAWQ5EYJWSC0FHC00D","effects":[["render-ui","drawer","@config.detailsContent"]]},{"from":"showing","to":"idle","event":"CLOSE","eventId":"evt_R6ZWTZFMJET976XE2ZETG7SAGP","effects":[["render-ui","drawer",null]]},{"from":"showing","to":"idle","event":"INIT","eventId":"evt_SYY3N9KKF3SQHQ4BH30VZWHRP0","effects":[["render-ui","drawer",null]]},{"from":"showing","to":"showing","event":"META_CHANGE","eventId":"evt_W9R9JYBCSXPCYMKY41KV88DSPN","effects":[["emit","META_SAVED",{"id":"@payload.id","patch":"@payload.patch"}]]}]},"config":{"metaFields":{"type":"[MetaFieldSpec]","default":[],"label":"Which metadata properties appear in the details drawer?","description":"The record's metadata shown as read-only INFO in the details drawer (Updated, address, status, …). Editing metadata is a normal action under the document's menu, not an inline affordance here.","synonyms":"properties, metadata fields, document info, page info, front matter","tier":"presentation","items":{"type":"object","properties":{"options":{"name":"options","type":"array","required":false,"items":{"type":"string"}},"icon":{"name":"icon","type":"string","required":false},"kind":{"name":"kind","type":"string","required":false,"values":["text","boolean","select","readonly"]},"label":{"name":"label","type":"string","required":false},"key":{"name":"key","type":"string","required":true},"format":{"name":"format","type":"string","required":false,"values":["date","currency","number","boolean","percent"]}}}},"detailsTitle":{"type":"string","default":"Details","label":"Details drawer heading","description":"Heading of the settings card (e.g. Details, Page info, Document settings).","tier":"presentation"},"detailsContent":{"type":"render-ui","default":{"entity":"@entity.loadedRow","fields":"@config.metaFields","relationEvent":"RELATION_OPEN","title":"@config.detailsTitle","type":"document-details"},"label":"Details drawer content tree","description":"Render-ui SExpr painted into the drawer slot on OPEN_DETAILS; binds the row stashed by SHOW_DETAILS. Info-only by default — no metaCommitEvent, so every row displays rather than edits (editing rides the document's actions menu). Override at the call site to extend the panel or to opt into in-place commits via metaCommitEvent: META_CHANGE.","tier":"internal"}},"scope":"instance"}],"pages":[{"name":"RecordItemDetailPage","id":"pag_N4GBQNZ1CQGPBHZ5NSKDJ3XQRG","path":"/recorditems","traits":[{"ref":"RecordItemDetail","refId":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},{"ref":"RecordItemDetails","refId":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"}]}],"types":{"LineItemColumn":[{"name":"key","type":"string","required":true},{"name":"header","type":"string"},{"name":"align","type":"string","values":["left","center","right"]},{"name":"format","type":"string","values":["badge","date","currency","number","percent","boolean"]}],"MetaFieldSpec":[{"name":"key","type":"string","required":true},{"name":"label","type":"string"},{"name":"kind","type":"string","values":["text","boolean","select","readonly"]},{"name":"options","type":"[string]"},{"name":"icon","type":"string"},{"name":"format","type":"string","values":["date","currency","number","boolean","percent"]}],"RecordAction":[{"name":"label","type":"string","required":true},{"name":"event","type":"event","required":true},{"name":"icon","type":"string"},{"name":"variant","type":"string","values":["primary","secondary","ghost","danger"]},{"name":"roles","type":"[string]"},{"name":"when","type":"SExpr"}],"RecordFieldSpec":[{"name":"key","type":"string","required":true},{"name":"header","type":"string"},{"name":"format","type":"string","values":["date","currency","number","boolean","percent"]},{"name":"variant","type":"string","values":["h3","h4","body","caption","badge","small","progress"]},{"name":"colorMap","type":"Map<string,BadgeColor>"},{"name":"labels","type":"Map<string,string>"}],"RecordSection":[{"name":"title","type":"string","required":true},{"name":"fields","type":"[string]"}],"RecordStage":[{"name":"value","type":"string","required":true},{"name":"label","type":"string","required":true}],"RecordTab":[{"name":"id","type":"string","required":true},{"name":"label","type":"string","required":true},{"name":"fields","type":"[string]"},{"name":"content","type":"render-ui"}]}}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD":{"id":"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD","kind":"entity","bakedName":"RecordItem","curName":"RecordItem","renames":[],"owner":"workspace"},"evt_78T54X4GEC87632251KVSZYDHX":{"id":"evt_78T54X4GEC87632251KVSZYDHX","kind":"event","bakedName":"CONTENT_COMMITTED","curName":"CONTENT_COMMITTED","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_7991ZR3GKGR9R9F4999HWABKTK":{"id":"evt_7991ZR3GKGR9R9F4999HWABKTK","kind":"event","bakedName":"CLOSE_VIEW","curName":"CLOSE_VIEW","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_988JHGKHDDRPPWHHEH415BBRRM":{"id":"evt_988JHGKHDDRPPWHHEH415BBRRM","kind":"event","bakedName":"CONTENT_CHANGE","curName":"CONTENT_CHANGE","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ":{"id":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_AF4RKV2PXDBEPG8TW57QTAT5YN":{"id":"evt_AF4RKV2PXDBEPG8TW57QTAT5YN","kind":"event","bakedName":"RELATION_OPEN","curName":"RELATION_OPEN","renames":[],"owner":"workspace","parent":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"},"evt_CANA4G5697K4KMZPYYQXWHZ8PP":{"id":"evt_CANA4G5697K4KMZPYYQXWHZ8PP","kind":"event","bakedName":"SHOW_DETAILS","curName":"SHOW_DETAILS","renames":[],"owner":"workspace","parent":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"},"evt_EK7RE9BSEAWQ5EYJWSC0FHC00D":{"id":"evt_EK7RE9BSEAWQ5EYJWSC0FHC00D","kind":"event","bakedName":"OPEN_DETAILS","curName":"OPEN_DETAILS","renames":[],"owner":"workspace","parent":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"},"evt_FPH68D3PD1V6GVG63QF84JW93M":{"id":"evt_FPH68D3PD1V6GVG63QF84JW93M","kind":"event","bakedName":"RecordItemLoaded","curName":"RecordItemLoaded","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_GRQDPS35N3JTHP49GZ8N9WC6NM":{"id":"evt_GRQDPS35N3JTHP49GZ8N9WC6NM","kind":"event","bakedName":"RETRY","curName":"RETRY","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_KDAYHGH0P9GB4T4BYJVHZ1V2M2":{"id":"evt_KDAYHGH0P9GB4T4BYJVHZ1V2M2","kind":"event","bakedName":"META_SAVED","curName":"META_SAVED","renames":[],"owner":"workspace","parent":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"},"evt_KR80XKMD6D6K6HTE1M7RT1PY5M":{"id":"evt_KR80XKMD6D6K6HTE1M7RT1PY5M","kind":"event","bakedName":"DONE_EDITING","curName":"DONE_EDITING","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_MQPJGHZCRSPCCKFRVWT84PHNJW":{"id":"evt_MQPJGHZCRSPCCKFRVWT84PHNJW","kind":"event","bakedName":"OPEN_VIEW","curName":"OPEN_VIEW","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_NJM1ADF3ZDHZPGZNVWT5WD8NPC":{"id":"evt_NJM1ADF3ZDHZPGZNVWT5WD8NPC","kind":"event","bakedName":"EDIT_CONTENT","curName":"EDIT_CONTENT","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_NRMDTB7A7VN3XZQYCRY9H63F1J":{"id":"evt_NRMDTB7A7VN3XZQYCRY9H63F1J","kind":"event","bakedName":"RecordItemLoadFailed","curName":"RecordItemLoadFailed","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_P75FR56YQSFBWKV4J746V68P70":{"id":"evt_P75FR56YQSFBWKV4J746V68P70","kind":"event","bakedName":"DELETE","curName":"DELETE","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_Q71EWZ1166GK39MB35MJ64TRPZ":{"id":"evt_Q71EWZ1166GK39MB35MJ64TRPZ","kind":"event","bakedName":"EDIT","curName":"EDIT","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_R6ZWTZFMJET976XE2ZETG7SAGP":{"id":"evt_R6ZWTZFMJET976XE2ZETG7SAGP","kind":"event","bakedName":"CLOSE","curName":"CLOSE","renames":[],"owner":"workspace","parent":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"},"evt_SYY3N9KKF3SQHQ4BH30VZWHRP0":{"id":"evt_SYY3N9KKF3SQHQ4BH30VZWHRP0","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"},"evt_W147V9JAJG5984G8HNAMYZYB8F":{"id":"evt_W147V9JAJG5984G8HNAMYZYB8F","kind":"event","bakedName":"TITLE_COMMITTED","curName":"TITLE_COMMITTED","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_W9R9JYBCSXPCYMKY41KV88DSPN":{"id":"evt_W9R9JYBCSXPCYMKY41KV88DSPN","kind":"event","bakedName":"META_CHANGE","curName":"META_CHANGE","renames":[],"owner":"workspace","parent":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"},"evt_WFN58WD80PM0BEBTE5J4DWQX27":{"id":"evt_WFN58WD80PM0BEBTE5J4DWQX27","kind":"event","bakedName":"CONTENT_SAVED","curName":"CONTENT_SAVED","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_YEWF935T5NX2TR12CY1ZRK39W2":{"id":"evt_YEWF935T5NX2TR12CY1ZRK39W2","kind":"event","bakedName":"RecordItemSlugLoaded","curName":"RecordItemSlugLoaded","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"orb_D62JFM7QMNVTAYGGHXC4Q1TPF2":{"id":"orb_D62JFM7QMNVTAYGGHXC4Q1TPF2","kind":"orbital","bakedName":"RecordItemOrbital","curName":"RecordItemOrbital","renames":[],"owner":"workspace"},"pag_N4GBQNZ1CQGPBHZ5NSKDJ3XQRG":{"id":"pag_N4GBQNZ1CQGPBHZ5NSKDJ3XQRG","kind":"page","bakedName":"RecordItemDetailPage","curName":"RecordItemDetailPage","renames":[],"owner":"workspace"},"trt_4WTTPVSV2JXH98P5FS7PHZ94M2":{"id":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2","kind":"trait","bakedName":"RecordItemDetail","curName":"RecordItemDetail","renames":[],"owner":"workspace"},"trt_FZKXZ64PW1BE0ZH926QP0HCXVX":{"id":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX","kind":"trait","bakedName":"RecordItemDetails","curName":"RecordItemDetails","renames":[],"owner":"workspace"}}}}
|
|
1
|
+
{"name":"std-record-detail","version":"1.0.0","description":"std-record-detail — single primitive: detail-panel. Owns the fetch-one-record state machine (loading → viewing → error, with RETRY), the record counterpart to std-browse's collection machine. Consumers configure fields/sections/actions and the title/subtitle/status bindings; the atom fetches by the id (or, for slug-routed records, the slug) carried on INIT and renders the panel. `detailLook` (panel default / slide-over / page / document) selects the render body, exactly as std-browse's browseLook selects a collection shape. The `document` look is for records whose shape IS a document (wiki page, note, article): the pure writing surface — a big inline-editable title with the rich-text body DIRECTLY beneath it, Edit/Done and the actions menu tucked into the header corner — where clicking the body drops a cursor in, every typing pause autosaves (CONTENT_SAVED, which the host persists QUIETLY — no refetch, or the editor unmounts mid-keystroke), and Done emits CONTENT_COMMITTED (the host refetches and snapshots version history on this one). Metadata never sits between the title and the words: compose the sibling RecordItemDetails trait beside the doc for a Gutenberg-style settings rail. A row minted blank by a document-first create arrives with draft=1 on INIT and opens straight in the editor. Pair with std-detail-layout for the back + breadcrumb chrome — that atom owns navigation, this one owns the record — exactly as a list page pairs std-browse with std-app-layout.","orbitals":[{"name":"RecordItemOrbital","id":"orb_D62JFM7QMNVTAYGGHXC4Q1TPF2","entity":{"name":"RecordItem","id":"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD","persistence":"runtime","fields":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true,"description":"The record's title or identifier.","synonyms":"title, label, heading"},{"name":"description","type":"string","description":"A textual explanation or summary of the record.","synonyms":"summary, details, notes"},{"name":"status","type":"string","default":"active","values":["active","inactive","pending"],"description":"The record's current state.","synonyms":"state, condition, stage"},{"name":"slug","type":"string","default":"","description":"URL-friendly identifier, for records opened by address instead of id.","synonyms":"permalink, url key, address"},{"name":"content","type":"string","default":"","description":"The record's rich-text body as HTML, edited in place by the document look.","synonyms":"body, text, document, article body"},{"name":"coverUrl","type":"string","default":"","intrinsic":true,"description":"The document look's cover/hero image URL, stamped from the loaded row's coverField."},{"name":"iconName","type":"string","default":"","intrinsic":true,"description":"The document look's icon name, stamped from the loaded row's iconField."},{"name":"loadedRow","type":"relation","relation":{"entity":"RecordItem","entityId":"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD","cardinality":"one"},"intrinsic":true,"description":"The full row exactly as last fetched (relations hydrated when config.include asks). The details drawer binds it, and hosts that need it (e.g. a settings modal) stash it from RecordItemLoaded — the document panel itself takes only scalar props and emits scalar payloads ({ id, title })."},{"name":"openDraft","type":"string","default":"","intrinsic":true,"description":"Set from the navigate payload when the surface was opened on a record that was JUST minted blank; read once the row loads to decide whether the document body opens authoring (draft) or read-only. Absent on a refresh or a normal open, so the draft entry never repeats.","synonyms":"new document, just created, draft open"},{"name":"createdAt","type":"string"}]},"traits":[{"name":"RecordItemDetail","id":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2","entityRebindable":true,"entityContract":{"requires":[],"provides":["content","coverUrl","description","iconName","loadedRow","name","openDraft","slug"]},"effectRow":[{"kind":"emit","resource":"CONTENT_COMMITTED"},{"kind":"emit","resource":"CONTENT_SAVED"},{"kind":"fetch","resource":"RecordItem"},{"kind":"render-ui","resource":"main"},{"kind":"set","resource":"@entity.content"},{"kind":"set","resource":"@entity.coverUrl"},{"kind":"set","resource":"@entity.description"},{"kind":"set","resource":"@entity.iconName"},{"kind":"set","resource":"@entity.id"},{"kind":"set","resource":"@entity.loadedRow"},{"kind":"set","resource":"@entity.name"},{"kind":"set","resource":"@entity.openDraft"},{"kind":"set","resource":"@entity.slug"}],"category":"interaction","linkedEntity":"RecordItem","linkedEntityId":"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD","entityRefIds":{"RecordItem":"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD"},"emits":[{"event":"RecordItemLoaded","eventId":"evt_FPH68D3PD1V6GVG63QF84JW93M","description":"Signals that the record has been successfully loaded.","synonyms":"loaded, received, ready, fetched","tier":"internal","scope":"internal","payloadSchema":[{"name":"data","type":"object","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"},{"name":"totalCount","type":"number"}]},{"event":"RecordItemSlugLoaded","eventId":"evt_YEWF935T5NX2TR12CY1ZRK39W2","description":"A slug-routed record finished loading; the payload is a collection whose first element is the record. Composing traits that need the loaded row (comments scoping, status controls) listen to this.","synonyms":"loaded by address, slug resolved, record found","tier":"internal","scope":"internal","payloadSchema":[{"name":"data","type":"[object]","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"},{"name":"totalCount","type":"number"}]},{"event":"RecordItemLoadFailed","eventId":"evt_NRMDTB7A7VN3XZQYCRY9H63F1J","description":"Indicates a failure to load the record.","synonyms":"error, failed, problem, unsuccessful","tier":"internal","scope":"internal","payloadSchema":[{"name":"error","type":"string"},{"name":"code","type":"string"}]},{"event":"EDIT","eventId":"evt_Q71EWZ1166GK39MB35MJ64TRPZ","description":"Signals a request to edit the record being viewed.","synonyms":"modify, update, change","tier":"domain","scope":"external","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"row","type":"object","required":true,"properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}]},{"event":"DELETE","eventId":"evt_P75FR56YQSFBWKV4J746V68P70","description":"Signals a request to remove the record being viewed.","synonyms":"remove, discard, delete, archive","tier":"domain","scope":"external","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"row","type":"object","required":true,"properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}]},{"event":"CONTENT_SAVED","eventId":"evt_WFN58WD80PM0BEBTE5J4DWQX27","description":"The document look's autosave stream: fired at every typing pause while editing, and once more on Done. This atom never persists — the composing organism routes CONTENT_SAVED into a QUIET persist (one that does not refetch or repaint this surface, or the editor unmounts mid-keystroke).","synonyms":"autosave, saved, persist content, draft saved","tier":"domain","scope":"external","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"content","type":"string"}]},{"event":"CONTENT_COMMITTED","eventId":"evt_78T54X4GEC87632251KVSZYDHX","description":"The author finished the document editing session (pressed Done). Hosts refetch the row, repaint, and snapshot version history on THIS event — never on the CONTENT_SAVED autosave stream.","synonyms":"done, finished editing, commit, snapshot","tier":"domain","scope":"external","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"content","type":"string"}]},{"event":"TITLE_COMMITTED","eventId":"evt_W147V9JAJG5984G8HNAMYZYB8F","description":"The viewer renamed the record in place by editing the document title; carries the committed title and the row id for a partial persist.","synonyms":"rename, retitle, change title, edit title","tier":"domain","scope":"external","payloadSchema":[{"name":"title","type":"string"},{"name":"id","type":"string"}]},{"event":"EDIT_CONTENT","eventId":"evt_NJM1ADF3ZDHZPGZNVWT5WD8NPC","description":"The viewer clicked the document body (or its Edit button) to start an editing session.","synonyms":"edit, start editing, click to edit","tier":"presentation"},{"event":"DONE_EDITING","eventId":"evt_KR80XKMD6D6K6HTE1M7RT1PY5M","description":"The viewer pressed Done to end the document editing session.","synonyms":"done, finish, stop editing","tier":"presentation"}],"stateMachine":{"states":[{"name":"idle","isInitial":true},{"name":"loading"},{"name":"editing"},{"name":"viewing"},{"name":"error"}],"events":[{"key":"INIT","id":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","name":"Initialize","description":"Opens the detail surface for one record: by id, or by slug for address-routed records (the internal re-fetch after an update still carries id). `draft` is set only by a document-first create's navigate, and opens the document look's body straight in the editor.","synonyms":"open record, view record, show details, drill in","tier":"domain","payloadSchema":[{"name":"id","type":"string"},{"name":"slug","type":"string"},{"name":"draft","type":"string"}],"listened":true},{"key":"CONTENT_SAVED","id":"evt_WFN58WD80PM0BEBTE5J4DWQX27","name":"Content Saved","description":"The document look's autosave stream: fired at every typing pause while editing, and once more on Done. This atom never persists — the composing organism routes CONTENT_SAVED into a QUIET persist (one that does not refetch or repaint this surface, or the editor unmounts mid-keystroke).","synonyms":"autosave, saved, persist content, draft saved","tier":"domain","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"content","type":"string"}]},{"key":"CONTENT_COMMITTED","id":"evt_78T54X4GEC87632251KVSZYDHX","name":"Content Committed","description":"The author finished the document editing session (pressed Done). Hosts refetch the row, repaint, and snapshot version history on THIS event — never on the CONTENT_SAVED autosave stream.","synonyms":"done, finished editing, commit, snapshot","tier":"domain","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"content","type":"string"}]},{"key":"TITLE_COMMITTED","id":"evt_W147V9JAJG5984G8HNAMYZYB8F","name":"Title Committed","description":"The viewer renamed the record in place by editing the document title; carries the committed title and the row id for a partial persist.","synonyms":"rename, retitle, change title, edit title","tier":"domain","payloadSchema":[{"name":"title","type":"string"},{"name":"id","type":"string"}],"listened":true},{"key":"OPEN_VIEW","id":"evt_MQPJGHZCRSPCCKFRVWT84PHNJW","name":"Open View","description":"A row was opened from a list; shows that record in this surface.","synonyms":"open record, view row, show details, drill in, expand","tier":"domain","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"row","type":"object","required":true,"properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}],"listened":true},{"key":"RecordItemLoaded","id":"evt_FPH68D3PD1V6GVG63QF84JW93M","name":"RecordItem loaded","description":"Signals that the record has been successfully loaded.","synonyms":"loaded, received, ready, fetched","tier":"internal","payloadSchema":[{"name":"data","type":"object","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"},{"name":"totalCount","type":"number"}]},{"key":"RecordItemSlugLoaded","id":"evt_YEWF935T5NX2TR12CY1ZRK39W2","name":"RecordItem slug loaded","description":"A slug-routed record finished loading; the payload is a collection whose first element is the record. Composing traits that need the loaded row (comments scoping, status controls) listen to this.","synonyms":"loaded by address, slug resolved, record found","tier":"internal","payloadSchema":[{"name":"data","type":"[object]","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"},{"name":"totalCount","type":"number"}]},{"key":"RecordItemLoadFailed","id":"evt_NRMDTB7A7VN3XZQYCRY9H63F1J","name":"RecordItem load failed","description":"Indicates a failure to load the record.","synonyms":"error, failed, problem, unsuccessful","tier":"internal","payloadSchema":[{"name":"error","type":"string"},{"name":"code","type":"string"}],"listened":true},{"key":"CONTENT_CHANGE","id":"evt_988JHGKHDDRPPWHHEH415BBRRM","name":"Content Change","description":"The rich text surface reported an edit (already debounced to typing pauses by the component).","synonyms":"typing, content changed, body edited","tier":"domain","payloadSchema":[{"name":"value","type":"string"}],"listened":true},{"key":"DONE_EDITING","id":"evt_KR80XKMD6D6K6HTE1M7RT1PY5M","name":"Done Editing","description":"The viewer pressed Done to end the document editing session.","synonyms":"done, finish, stop editing","tier":"presentation","listened":true},{"key":"CLOSE_VIEW","id":"evt_7991ZR3GKGR9R9F4999HWABKTK","name":"Close View","description":"Closes the record surface and returns it to blank.","synonyms":"close, dismiss, back to list","tier":"domain","listened":true},{"key":"EDIT_CONTENT","id":"evt_NJM1ADF3ZDHZPGZNVWT5WD8NPC","name":"Edit Content","description":"The viewer clicked the document body (or its Edit button) to start an editing session.","synonyms":"edit, start editing, click to edit","tier":"presentation","listened":true},{"key":"RETRY","id":"evt_GRQDPS35N3JTHP49GZ8N9WC6NM","name":"Retry","description":"Re-runs the fetch after a failed load.","synonyms":"try again, reload, refresh","tier":"domain","listened":true},{"key":"EDIT","id":"evt_Q71EWZ1166GK39MB35MJ64TRPZ","name":"Edit","description":"Signals a request to edit the record being viewed.","synonyms":"modify, update, change","tier":"domain","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"row","type":"object","required":true,"properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}]},{"key":"DELETE","id":"evt_P75FR56YQSFBWKV4J746V68P70","name":"Delete","description":"Signals a request to remove the record being viewed.","synonyms":"remove, discard, delete, archive","tier":"domain","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"row","type":"object","required":true,"properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}]}],"transitions":[{"from":"idle","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["=","@config.openOn","init"],["!=",["str/default","@payload.id",""],""]],"effects":[["set","@entity.id","@payload.id"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@payload.id","include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"idle","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["=","@config.openOn","init"],["=",["str/default","@payload.id",""],""],["!=",["str/default","@payload.slug",""],""]],"effects":[["set","@entity.slug","@payload.slug"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"filter":["=",["object/get","@entity","slug"],"@payload.slug"],"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemSlugLoaded"},"include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"idle","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["=","@config.openOn","init"],["=",["str/default","@payload.id",""],""],["=",["str/default","@payload.slug",""],""]],"effects":[["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@payload.id","include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"idle","to":"idle","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["=","@config.openOn","event"],"effects":[["render-ui","main",null]]},{"from":"idle","to":"idle","event":"CONTENT_SAVED","eventId":"evt_WFN58WD80PM0BEBTE5J4DWQX27"},{"from":"idle","to":"idle","event":"CONTENT_COMMITTED","eventId":"evt_78T54X4GEC87632251KVSZYDHX"},{"from":"idle","to":"idle","event":"TITLE_COMMITTED","eventId":"evt_W147V9JAJG5984G8HNAMYZYB8F"},{"from":"idle","to":"loading","event":"OPEN_VIEW","eventId":"evt_MQPJGHZCRSPCCKFRVWT84PHNJW","effects":[["set","@entity.id","@payload.id"],["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@payload.id","include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"loading","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["!=",["str/default","@payload.id",""],""],"effects":[["set","@entity.id","@payload.id"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@payload.id","include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"loading","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["=",["str/default","@payload.id",""],""],["!=",["str/default","@payload.slug",""],""]],"effects":[["set","@entity.slug","@payload.slug"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"filter":["=",["object/get","@entity","slug"],"@payload.slug"],"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemSlugLoaded"},"include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"loading","to":"editing","event":"RecordItemLoaded","eventId":"evt_FPH68D3PD1V6GVG63QF84JW93M","guard":["and",["=","@config.detailLook","document"],["=",["str/default",["object/get","@entity","openDraft"],""],"1"]],"effects":[["set","@entity.loadedRow",["object/merge","@payload.data",{}]],["set","@entity.id",["object/get","@payload.data","id"]],["set","@entity.name",["if",[">",["array/len","@config.titleFields"],0],["str/join",["array/map","@config.titleFields",["fn","f",["str/default",["object/get","@payload.data","@f"],""]]]," "],["object/get","@payload.data","@config.titleField"]]],["set","@entity.description",["str/default",["object/get","@payload.data","@config.subtitleField"],""]],["set","@entity.content",["object/get","@payload.data","@config.contentField"]],["set","@entity.coverUrl",["str/default",["object/get","@payload.data","@config.coverField"],""]],["set","@entity.iconName",["str/default",["object/get","@payload.data","@config.iconField"],""]],["render-ui","main","@config.documentEditingContent"]]},{"from":"loading","to":"viewing","event":"RecordItemLoaded","eventId":"evt_FPH68D3PD1V6GVG63QF84JW93M","guard":["or",["!=","@config.detailLook","document"],["!=",["str/default",["object/get","@entity","openDraft"],""],"1"]],"effects":[["set","@entity.loadedRow",["object/merge","@payload.data",{}]],["set","@entity.id",["object/get","@payload.data","id"]],["set","@entity.name",["if",[">",["array/len","@config.titleFields"],0],["str/join",["array/map","@config.titleFields",["fn","f",["str/default",["object/get","@payload.data","@f"],""]]]," "],["object/get","@payload.data","@config.titleField"]]],["set","@entity.description",["str/default",["object/get","@payload.data","@config.subtitleField"],""]],["set","@entity.content",["object/get","@payload.data","@config.contentField"]],["set","@entity.coverUrl",["str/default",["object/get","@payload.data","@config.coverField"],""]],["set","@entity.iconName",["str/default",["object/get","@payload.data","@config.iconField"],""]],["if",["=","@config.detailLook","document"],["render-ui","main","@config.documentBodyContent"],["if",["=","@config.detailLook","slide-over"],["render-ui","main","@config.slideOverBodyContent"],["if",["=","@config.detailLook","page"],["render-ui","main","@config.pageBodyContent"],["render-ui","main","@config.bodyContent"]]]]]},{"from":"loading","to":"editing","event":"RecordItemSlugLoaded","eventId":"evt_YEWF935T5NX2TR12CY1ZRK39W2","guard":["and",[">",["array/len","@payload.data"],0],["=","@config.detailLook","document"],["=",["str/default",["object/get","@entity","openDraft"],""],"1"]],"effects":[["set","@entity.loadedRow",["array/first","@payload.data"]],["set","@entity.id",["object/get",["array/first","@payload.data"],"id"]],["set","@entity.name",["if",[">",["array/len","@config.titleFields"],0],["str/join",["array/map","@config.titleFields",["fn","f",["str/default",["object/get",["array/first","@payload.data"],"@f"],""]]]," "],["object/get",["array/first","@payload.data"],"@config.titleField"]]],["set","@entity.description",["str/default",["object/get",["array/first","@payload.data"],"@config.subtitleField"],""]],["set","@entity.content",["object/get",["array/first","@payload.data"],"@config.contentField"]],["set","@entity.coverUrl",["str/default",["object/get",["array/first","@payload.data"],"@config.coverField"],""]],["set","@entity.iconName",["str/default",["object/get",["array/first","@payload.data"],"@config.iconField"],""]],["render-ui","main","@config.documentEditingContent"]]},{"from":"loading","to":"viewing","event":"RecordItemSlugLoaded","eventId":"evt_YEWF935T5NX2TR12CY1ZRK39W2","guard":["and",[">",["array/len","@payload.data"],0],["or",["!=","@config.detailLook","document"],["!=",["str/default",["object/get","@entity","openDraft"],""],"1"]]],"effects":[["set","@entity.loadedRow",["array/first","@payload.data"]],["set","@entity.id",["object/get",["array/first","@payload.data"],"id"]],["set","@entity.name",["if",[">",["array/len","@config.titleFields"],0],["str/join",["array/map","@config.titleFields",["fn","f",["str/default",["object/get",["array/first","@payload.data"],"@f"],""]]]," "],["object/get",["array/first","@payload.data"],"@config.titleField"]]],["set","@entity.description",["str/default",["object/get",["array/first","@payload.data"],"@config.subtitleField"],""]],["set","@entity.content",["object/get",["array/first","@payload.data"],"@config.contentField"]],["set","@entity.coverUrl",["str/default",["object/get",["array/first","@payload.data"],"@config.coverField"],""]],["set","@entity.iconName",["str/default",["object/get",["array/first","@payload.data"],"@config.iconField"],""]],["if",["=","@config.detailLook","document"],["render-ui","main","@config.documentBodyContent"],["if",["=","@config.detailLook","slide-over"],["render-ui","main","@config.slideOverBodyContent"],["if",["=","@config.detailLook","page"],["render-ui","main","@config.pageBodyContent"],["render-ui","main","@config.bodyContent"]]]]]},{"from":"loading","to":"error","event":"RecordItemSlugLoaded","eventId":"evt_YEWF935T5NX2TR12CY1ZRK39W2","guard":["=",["array/len","@payload.data"],0],"effects":[["render-ui","main",{"description":"No record matches this address.","icon":"search-x","title":"Not found","type":"empty-state"}]]},{"from":"loading","to":"error","event":"RecordItemLoadFailed","eventId":"evt_NRMDTB7A7VN3XZQYCRY9H63F1J","effects":[["render-ui","main",{"message":"@payload.error","title":"Couldn't load this record","type":"alert","variant":"error"}]]},{"from":"editing","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["!=",["str/default","@payload.id",""],""],["!=","@payload.id","@entity.id"]],"effects":[["set","@entity.id","@payload.id"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@payload.id","include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"editing","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["=",["str/default","@payload.id",""],""],["!=",["str/default","@payload.slug",""],""],["!=","@payload.slug","@entity.slug"]],"effects":[["set","@entity.slug","@payload.slug"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"filter":["=",["object/get","@entity","slug"],"@payload.slug"],"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemSlugLoaded"},"include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"editing","to":"editing","event":"CONTENT_CHANGE","eventId":"evt_988JHGKHDDRPPWHHEH415BBRRM","effects":[["set","@entity.content","@payload.value"],["set","@entity.loadedRow",["object/set","@entity.loadedRow","@config.contentField","@payload.value"]],["emit","CONTENT_SAVED",{"id":"@entity.id","content":"@entity.content"}]]},{"from":"editing","to":"editing","event":"TITLE_COMMITTED","eventId":"evt_W147V9JAJG5984G8HNAMYZYB8F","effects":[["set","@entity.name","@payload.title"],["set","@entity.loadedRow",["object/set","@entity.loadedRow","@config.titleField","@payload.title"]]]},{"from":"editing","to":"viewing","event":"DONE_EDITING","eventId":"evt_KR80XKMD6D6K6HTE1M7RT1PY5M","effects":[["emit","CONTENT_SAVED",{"id":"@entity.id","content":"@entity.content"}],["emit","CONTENT_COMMITTED",{"id":"@entity.id","content":"@entity.content"}],["render-ui","main","@config.documentBodyContent"]]},{"from":"editing","to":"idle","event":"CLOSE_VIEW","eventId":"evt_7991ZR3GKGR9R9F4999HWABKTK","effects":[["emit","CONTENT_SAVED",{"id":"@entity.id","content":"@entity.content"}],["render-ui","main",null]]},{"from":"viewing","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["!=",["str/default","@payload.id",""],""],"effects":[["set","@entity.id","@payload.id"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@payload.id","include":"@config.include"}]]},{"from":"viewing","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["=",["str/default","@payload.id",""],""],["!=",["str/default","@payload.slug",""],""]],"effects":[["set","@entity.slug","@payload.slug"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"filter":["=",["object/get","@entity","slug"],"@payload.slug"],"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemSlugLoaded"},"include":"@config.include"}]]},{"from":"viewing","to":"viewing","event":"RecordItemLoaded","eventId":"evt_FPH68D3PD1V6GVG63QF84JW93M","effects":[["set","@entity.loadedRow",["object/merge","@payload.data",{}]],["set","@entity.id",["object/get","@payload.data","id"]],["set","@entity.name",["if",[">",["array/len","@config.titleFields"],0],["str/join",["array/map","@config.titleFields",["fn","f",["str/default",["object/get","@payload.data","@f"],""]]]," "],["object/get","@payload.data","@config.titleField"]]],["set","@entity.description",["str/default",["object/get","@payload.data","@config.subtitleField"],""]],["set","@entity.content",["object/get","@payload.data","@config.contentField"]],["set","@entity.coverUrl",["str/default",["object/get","@payload.data","@config.coverField"],""]],["set","@entity.iconName",["str/default",["object/get","@payload.data","@config.iconField"],""]],["if",["=","@config.detailLook","document"],["render-ui","main","@config.documentBodyContent"],["if",["=","@config.detailLook","slide-over"],["render-ui","main","@config.slideOverBodyContent"],["if",["=","@config.detailLook","page"],["render-ui","main","@config.pageBodyContent"],["render-ui","main","@config.bodyContent"]]]]]},{"from":"viewing","to":"viewing","event":"RecordItemSlugLoaded","eventId":"evt_YEWF935T5NX2TR12CY1ZRK39W2","guard":[">",["array/len","@payload.data"],0],"effects":[["set","@entity.loadedRow",["array/first","@payload.data"]],["set","@entity.id",["object/get",["array/first","@payload.data"],"id"]],["set","@entity.name",["if",[">",["array/len","@config.titleFields"],0],["str/join",["array/map","@config.titleFields",["fn","f",["str/default",["object/get",["array/first","@payload.data"],"@f"],""]]]," "],["object/get",["array/first","@payload.data"],"@config.titleField"]]],["set","@entity.description",["str/default",["object/get",["array/first","@payload.data"],"@config.subtitleField"],""]],["set","@entity.content",["object/get",["array/first","@payload.data"],"@config.contentField"]],["set","@entity.coverUrl",["str/default",["object/get",["array/first","@payload.data"],"@config.coverField"],""]],["set","@entity.iconName",["str/default",["object/get",["array/first","@payload.data"],"@config.iconField"],""]],["if",["=","@config.detailLook","document"],["render-ui","main","@config.documentBodyContent"],["if",["=","@config.detailLook","slide-over"],["render-ui","main","@config.slideOverBodyContent"],["if",["=","@config.detailLook","page"],["render-ui","main","@config.pageBodyContent"],["render-ui","main","@config.bodyContent"]]]]]},{"from":"viewing","to":"error","event":"RecordItemSlugLoaded","eventId":"evt_YEWF935T5NX2TR12CY1ZRK39W2","guard":["=",["array/len","@payload.data"],0],"effects":[["render-ui","main",{"description":"No record matches this address.","icon":"search-x","title":"Not found","type":"empty-state"}]]},{"from":"viewing","to":"editing","event":"EDIT_CONTENT","eventId":"evt_NJM1ADF3ZDHZPGZNVWT5WD8NPC","guard":["=","@config.detailLook","document"],"effects":[["render-ui","main","@config.documentEditingContent"]]},{"from":"viewing","to":"viewing","event":"TITLE_COMMITTED","eventId":"evt_W147V9JAJG5984G8HNAMYZYB8F","effects":[["set","@entity.name","@payload.title"],["set","@entity.loadedRow",["object/set","@entity.loadedRow","@config.titleField","@payload.title"]]]},{"from":"viewing","to":"error","event":"RecordItemLoadFailed","eventId":"evt_NRMDTB7A7VN3XZQYCRY9H63F1J","effects":[["render-ui","main",{"message":"@payload.error","title":"Couldn't load this record","type":"alert","variant":"error"}]]},{"from":"viewing","to":"idle","event":"CLOSE_VIEW","eventId":"evt_7991ZR3GKGR9R9F4999HWABKTK","effects":[["render-ui","main",null]]},{"from":"error","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["!=",["str/default","@payload.id",""],""],"effects":[["set","@entity.id","@payload.id"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@payload.id","include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"error","to":"loading","event":"INIT","eventId":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","guard":["and",["=",["str/default","@payload.id",""],""],["!=",["str/default","@payload.slug",""],""]],"effects":[["set","@entity.slug","@payload.slug"],["set","@entity.openDraft",["str/default","@payload.draft",""]],["fetch","RecordItem",{"filter":["=",["object/get","@entity","slug"],"@payload.slug"],"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemSlugLoaded"},"include":"@config.include"}],["render-ui","main","@config.loadingContent"]]},{"from":"error","to":"loading","event":"RETRY","eventId":"evt_GRQDPS35N3JTHP49GZ8N9WC6NM","effects":[["fetch","RecordItem",{"emit":{"failure":"RecordItemLoadFailed","success":"RecordItemLoaded"},"id":"@entity.id","include":"@config.include"}],["render-ui","main","@config.loadingContent"]]}]},"config":{"include":{"type":"[string]","default":[],"label":"Which relation fields to hydrate?","description":"Entity relation field names to hydrate on fetch, so panel fields can use dot-paths like owner.name. Empty = no hydration, the default.","synonyms":"relation hydration, populate relations, joined fields","tier":"internal","items":{"type":"string"}},"avatarField":{"type":"string","default":"","label":"Which field is the avatar?","description":"Name of the image field shown as the profile look's avatar; the title supplies initials when it is empty.","synonyms":"photo field, avatar field, picture field","tier":"presentation"},"threadField":{"type":"string","default":"","label":"Which relation holds the thread?","description":"Name of the hydrated relation (list it in include) whose messages the conversation look shows.","synonyms":"messages field, replies field, comments field, thread field","tier":"presentation"},"latitudeField":{"type":"string","default":"","label":"Which field is the latitude?","description":"Name of the latitude field the map look pins.","tier":"presentation"},"maxInlineActions":{"type":"number","default":3,"label":"How many actions before collapsing?","description":"Actions beyond this count collapse into a '⋯' overflow menu.","synonyms":"inline actions limit, overflow threshold","tier":"presentation"},"titleFields":{"type":"[string]","default":[],"label":"Which fields make up the title, in order?","description":"For records whose name is split across fields (firstName + lastName): the listed fields' values joined with spaces become the title, and override titleField. Empty = titleField alone, the default.","synonyms":"full name, name parts, composite title, first and last name","tier":"presentation","items":{"type":"string"}},"allowEdit":{"type":"boolean","default":true,"label":"Allow editing the document?","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.","synonyms":"read only document, viewer mode, can edit, editing allowed","tier":"policy"},"actions":{"type":"[RecordAction]","default":[{"event":"EDIT","label":"Edit","variant":"secondary"},{"event":"DELETE","label":"Delete","variant":"danger"}],"label":"What actions can users take on this record?","description":"Buttons on the panel header. One primary at most; the rest collapse past maxInlineActions.","synonyms":"record actions, detail actions, panel buttons","tier":"presentation","items":{"type":"object","properties":{"event":{"name":"event","type":"event","required":true},"label":{"name":"label","type":"string","required":true},"roles":{"name":"roles","type":"array","required":false,"items":{"type":"string"}},"variant":{"name":"variant","type":"string","required":false,"values":["primary","secondary","ghost","danger"]},"icon":{"name":"icon","type":"string","required":false},"when":{"name":"when","type":"SExpr","required":false}}}},"placeholder":{"type":"string","default":"Start writing…","label":"Placeholder text","description":"Placeholder shown in the document body when it is empty.","tier":"presentation"},"pageBodyContent":{"type":"render-ui","default":{"children":[{"actions":["if","@config.showActions",["array/filter","@config.actions",["fn","action",["or",["=",["array/len",["object/get","@action","roles",[]]],0],["array/includes",["object/get","@action","roles",[]],"@config.viewerRole"]]]],[]],"entity":"@entity.loadedRow","fields":"@config.fields","closeEvent":"@config.closeEvent","initialData":"@entity.loadedRow","maxInlineActions":"@config.maxInlineActions","sections":"@config.sections","showActions":"@config.showActions","subtitle":"@entity.description","title":"@entity.name","look":"@config.recordLook","avatarField":"@config.avatarField","coverField":"@config.coverField","mediaField":"@config.mediaField","stageField":"@config.stageField","stages":"@config.stages","latitudeField":"@config.latitudeField","longitudeField":"@config.longitudeField","lineItems":["object/get","@entity.loadedRow","@config.lineItemsField"],"lineItemColumns":"@config.lineItemColumns","totals":"@config.totals","thread":["object/get","@entity.loadedRow","@config.threadField"],"tabs":"@config.tabs","type":"detail-panel"}],"className":"w-full max-w-4xl","direction":"vertical","gap":"lg","type":"stack"},"label":"Page look body","description":"Render-ui SExpr rendered after the record loads when detailLook = page: a full record page, width-capped so field rows do not stretch past a readable measure (Almadar_UI_Beauty.md §3).","tier":"internal"},"showActions":{"type":"boolean","default":true,"label":"Show the action buttons?","description":"Set false for a read-only record view; a panel with actions nothing listens to is a dead affordance.","synonyms":"read only, hide actions, view only","tier":"presentation"},"stages":{"type":"[RecordStage]","default":[],"label":"What is the lifecycle, in order?","description":"The workflow look's stepper: one { value, label } per stage, value matching stageField's enum.","synonyms":"lifecycle, pipeline stages, steps, phases","tier":"presentation","items":{"type":"object","properties":{"label":{"name":"label","type":"string","required":true},"value":{"name":"value","type":"string","required":true}}}},"viewerRole":{"type":"string","default":"","label":"Viewer's role","description":"The signed-in viewer's role that each action's `roles` is checked against. Bind it explicitly at the call site (e.g. `viewerRole: @user.role`) in an app whose identity carries a role; left empty, only actions with no `roles` show.","tier":"policy"},"autosaveHint":{"type":"string","default":"Saves as you type","label":"Autosave hint","description":"Muted caption next to the Done button telling the author their work persists on its own.","tier":"presentation"},"coverField":{"type":"string","default":"","label":"Which field is the cover image?","description":"Name of the image-typed field on the loaded record painted as the hero banner of the document look and of the profile record look (e.g. coverImage, heroImage). Empty = no banner, the default.","synonyms":"cover field, hero image field, banner field","tier":"presentation"},"lineItemColumns":{"type":"[LineItemColumn]","default":[],"label":"Which line-item columns?","description":"Columns of the ledger look's line-items table.","tier":"presentation","items":{"type":"object","properties":{"key":{"name":"key","type":"string","required":true},"align":{"name":"align","type":"string","required":false,"values":["left","center","right"]},"header":{"name":"header","type":"string","required":false},"format":{"name":"format","type":"string","required":false,"values":["badge","date","currency","number","percent","boolean"]}}}},"doneLabel":{"type":"string","default":"Done","label":"Done button label","description":"Label of the button that ends the document editing session; work is already autosaved when it is pressed.","tier":"presentation"},"detailLook":{"type":"string","default":"panel","label":"Detail look","description":"Visual treatment for the record surface. panel = an inline detail-panel in the page flow (bodyContent); slide-over = the same panel as a right-hand drawer over the list behind it (slideOverBodyContent); page = a full-width record page with roomier spacing (pageBodyContent); document = a wiki-page/note/article surface — big editable title over a rich-text body, no labelled field rows, click-to-edit with autosave (documentBodyContent / documentEditingContent). Selecting a look swaps which body tree renders after the record loads; any body may still be overridden directly at the call site.","synonyms":"detail style, drawer, slide over, full page, document, wiki page, note, article","tier":"presentation","values":["panel","slide-over","page","document"]},"openOn":{"type":"string","default":"init","label":"When does this surface load?","description":"init = a routed detail page; the record loads as soon as the page mounts (the default). event = an overlay that stays blank until a row-click OPEN_VIEW hands it an id, which is what a list-embedded slide-over needs — mounting an init-loading surface on a list page would fetch a record it has no id for.","synonyms":"open on click, slide over, row click, blank until opened, list embedded","tier":"policy","values":["init","event"]},"loadingContent":{"type":"render-ui","default":{"type":"skeleton","variant":"detail"},"label":"Loading placeholder","description":"Shown while the record loads, shaped like what replaces it so the page does not jump: the detail skeleton for the panel/slide-over/page looks; a document-look consumer sets { type: skeleton, variant: text, rows: 8 }.","tier":"internal"},"bodyContent":{"type":"render-ui","default":{"children":[{"actions":["if","@config.showActions",["array/filter","@config.actions",["fn","action",["or",["=",["array/len",["object/get","@action","roles",[]]],0],["array/includes",["object/get","@action","roles",[]],"@config.viewerRole"]]]],[]],"entity":"@entity.loadedRow","fields":"@config.fields","closeEvent":"@config.closeEvent","initialData":"@entity.loadedRow","maxInlineActions":"@config.maxInlineActions","sections":"@config.sections","showActions":"@config.showActions","subtitle":"@entity.description","title":"@entity.name","look":"@config.recordLook","avatarField":"@config.avatarField","coverField":"@config.coverField","mediaField":"@config.mediaField","stageField":"@config.stageField","stages":"@config.stages","latitudeField":"@config.latitudeField","longitudeField":"@config.longitudeField","lineItems":["object/get","@entity.loadedRow","@config.lineItemsField"],"lineItemColumns":"@config.lineItemColumns","totals":"@config.totals","thread":["object/get","@entity.loadedRow","@config.threadField"],"tabs":"@config.tabs","type":"detail-panel"}],"direction":"vertical","gap":"lg","type":"stack"},"label":"Body content tree","description":"Render-ui SExpr rendered after the record loads when detailLook = panel (the default). See slideOverBodyContent/pageBodyContent for the other looks; any may be overridden directly while inheriting the same trait, state machine, emits, and listens.","tier":"internal"},"subtitleField":{"type":"string","default":"description","label":"Which field is the subtitle?","description":"Name of the field shown under the title (e.g. company, category). Set to \"\" for no subtitle at all — the right choice for the document look, whose metadata lives in the properties strip, not a second line.","synonyms":"subtitle field, secondary field, subheading, no subtitle","tier":"presentation"},"titleField":{"type":"string","default":"name","label":"Which field is the record's title?","description":"Name of the field on the loaded record shown as the panel title (e.g. contactName, subject, title).","synonyms":"title field, heading field, name field, label field","tier":"presentation"},"fields":{"type":"[RecordFieldSpec]","default":[{"header":"Name","key":"name","variant":"h4"},{"header":"Description","key":"description","variant":"body"},{"header":"Status","key":"status","variant":"badge"},{"format":"date","header":"Created","key":"createdAt"}],"label":"Which fields appear in the record panel?","description":"Each entry maps one entity field to a labelled row in the panel. Unlike a list row, a detail panel SHOULD label every field — the value stands alone here with no column header or repeated row position to name it.","synonyms":"detail fields, record fields, panel fields, shown fields","tier":"presentation","items":{"type":"object","properties":{"header":{"name":"header","type":"string","required":false},"colorMap":{"name":"colorMap","type":"object","required":false,"items":{"type":"string","values":["default","primary","secondary","success","warning","danger","error","info","neutral","destructive"]}},"key":{"name":"key","type":"string","required":true},"format":{"name":"format","type":"string","required":false,"values":["date","currency","number","boolean","percent"]},"labels":{"name":"labels","type":"object","required":false,"items":{"type":"string"}},"variant":{"name":"variant","type":"string","required":false,"values":["h3","h4","body","caption","badge","small","progress"]}}}},"mediaField":{"type":"string","default":"","label":"Which field holds the images?","description":"Name of the field the showcase look leads with: one image URL, a list of URLs, or a list of { src, caption }.","synonyms":"gallery field, photos field, images field, media field","tier":"presentation"},"sections":{"type":"[RecordSection]","default":[],"label":"How should the fields be grouped?","description":"Optional titled groups over `fields`, e.g. [{title: Contact, fields: [email, phone]}]. Group into sections of 3-5 once a record carries more than about seven fields — a flat list past that is the cognitive-load problem Almadar_UX.md §1.4 (Miller) describes. Empty = one ungrouped list, the default.","synonyms":"field groups, grouped fields, panel sections, fieldsets","tier":"presentation","items":{"type":"object","properties":{"fields":{"name":"fields","type":"array","required":false,"items":{"type":"string"}},"title":{"name":"title","type":"string","required":true}}}},"lineItemsField":{"type":"string","default":"","label":"Which relation holds the line items?","description":"Name of the hydrated relation (list it in include) whose rows the ledger look tables.","synonyms":"line items field, order lines, invoice lines, child rows","tier":"presentation"},"documentEditingContent":{"type":"render-ui","default":{"actions":["array/filter","@config.actions",["fn","action",["or",["=",["array/len",["object/get","@action","roles",[]]],0],["array/includes",["object/get","@action","roles",[]],"@config.viewerRole"]]]],"coverImage":"@entity.coverUrl","icon":"@entity.iconName","autosaveHint":"@config.autosaveHint","contentChangeEvent":"CONTENT_CHANGE","doneEvent":"DONE_EDITING","doneLabel":"@config.doneLabel","editing":true,"id":"@entity.id","maxInlineActions":"@config.maxInlineActions","placeholder":"@config.placeholder","subtitle":"@entity.description","title":"@entity.name","titleCommitEvent":"TITLE_COMMITTED","type":"document-panel","value":"@entity.content","className":"w-full"},"label":"Document look body (editing)","description":"Render-ui SExpr for detailLook = document during an editing session: the same surface with the body live and the header corner showing the autosave hint + Done. Binds only @entity fields, never ?data.","tier":"internal"},"contentField":{"type":"string","default":"content","label":"Which field holds the document body?","description":"Name of the field on the loaded record that carries the rich-text HTML body the document look renders and edits (e.g. content, body, articleText).","synonyms":"body field, content field, document field","tier":"presentation"},"slideOverBodyContent":{"type":"render-ui","default":{"children":[{"actions":["if","@config.showActions",["array/filter","@config.actions",["fn","action",["or",["=",["array/len",["object/get","@action","roles",[]]],0],["array/includes",["object/get","@action","roles",[]],"@config.viewerRole"]]]],[]],"entity":"@entity.loadedRow","fields":"@config.fields","closeEvent":"@config.closeEvent","initialData":"@entity.loadedRow","maxInlineActions":"@config.maxInlineActions","sections":"@config.sections","showActions":"@config.showActions","slideOver":true,"subtitle":"@entity.description","title":"@entity.name","look":"@config.recordLook","avatarField":"@config.avatarField","coverField":"@config.coverField","mediaField":"@config.mediaField","stageField":"@config.stageField","stages":"@config.stages","latitudeField":"@config.latitudeField","longitudeField":"@config.longitudeField","lineItems":["object/get","@entity.loadedRow","@config.lineItemsField"],"lineItemColumns":"@config.lineItemColumns","totals":"@config.totals","thread":["object/get","@entity.loadedRow","@config.threadField"],"tabs":"@config.tabs","type":"detail-panel"}],"direction":"vertical","gap":"none","type":"stack"},"label":"Slide-over look body","description":"Render-ui SExpr rendered after the record loads when detailLook = slide-over: the same panel as a right-hand drawer, so the list behind stays in place. Use when the record is a glance, not a workspace.","tier":"internal"},"editLabel":{"type":"string","default":"Edit","label":"Edit button label","description":"Label of the quiet button above the document body that starts an editing session (the body itself is also clickable).","tier":"presentation"},"closeEvent":{"type":"event","default":"","label":"Which action closes the record?","description":"The `actions` entry whose event matches renders as the panel's close (×) button. Empty = no close button (a routed detail page navigates back instead).","synonyms":"close event, dismiss event, close button","tier":"presentation"},"recordLook":{"type":"string","default":"panel","label":"Record look","description":"How the record itself is arranged inside the panel/slide-over/page frame, so not every app reads as an admin form. panel = labelled field grid (default); profile = a person or member: avatar + cover hero (avatarField, coverField); showcase = image-first product or listing with a gallery (mediaField); workflow = a lifecycle stepper over the record (stageField, stages); map = a place: location map hero (latitudeField, longitudeField); ledger = an invoice/order document: line items then totals (lineItemsField, lineItemColumns, totals); conversation = a ticket or thread: the messages beside the record facts (threadField); workspace = a hub record with tabs (tabs). Regions with no data simply do not render. A region fed by a separate trait (replies with their composer, editable order lines, activity history) is composed by overriding the body and passing detail-panel's threadContent / lineItemsContent / activityContent.","synonyms":"record style, profile page, product page, listing page, invoice view, ticket view, timeline view, tabbed record, location page","tier":"presentation","values":["panel","profile","showcase","workflow","map","ledger","conversation","workspace"]},"longitudeField":{"type":"string","default":"","label":"Which field is the longitude?","description":"Name of the longitude field the map look pins.","tier":"presentation"},"tabs":{"type":"[RecordTab]","default":[],"label":"Which tabs follow the overview?","description":"The workspace look's tabs after Overview: each lists field names, or composes a related trait as content (e.g. a company's deals list).","synonyms":"tabs, record tabs, sub pages, related lists","tier":"presentation","items":{"type":"object","properties":{"fields":{"name":"fields","type":"array","required":false,"items":{"type":"string"}},"label":{"name":"label","type":"string","required":true},"id":{"name":"id","type":"string","required":true},"content":{"name":"content","type":"string","required":false}}}},"totals":{"type":"[RecordFieldSpec]","default":[],"label":"Which fields are the totals?","description":"Record fields shown under the line items in order (e.g. subtotal, tax, total); the last is emphasised.","synonyms":"totals, subtotal, grand total, amount due","tier":"presentation","items":{"type":"object","properties":{"colorMap":{"name":"colorMap","type":"object","required":false,"items":{"type":"string","values":["default","primary","secondary","success","warning","danger","error","info","neutral","destructive"]}},"labels":{"name":"labels","type":"object","required":false,"items":{"type":"string"}},"header":{"name":"header","type":"string","required":false},"format":{"name":"format","type":"string","required":false,"values":["date","currency","number","boolean","percent"]},"variant":{"name":"variant","type":"string","required":false,"values":["h3","h4","body","caption","badge","small","progress"]},"key":{"name":"key","type":"string","required":true}}}},"documentBodyContent":{"type":"render-ui","default":{"actions":["array/filter","@config.actions",["fn","action",["or",["=",["array/len",["object/get","@action","roles",[]]],0],["array/includes",["object/get","@action","roles",[]],"@config.viewerRole"]]]],"coverImage":"@entity.coverUrl","icon":"@entity.iconName","editEvent":["if","@config.allowEdit","EDIT_CONTENT",null],"editLabel":"@config.editLabel","id":"@entity.id","maxInlineActions":"@config.maxInlineActions","placeholder":"@config.placeholder","subtitle":"@entity.description","title":"@entity.name","titleCommitEvent":["if","@config.allowEdit","TITLE_COMMITTED",null],"type":"document-panel","value":"@entity.content","className":"w-full"},"label":"Document look body (reading)","description":"Render-ui SExpr for detailLook = document while reading: the pure writing surface — editable title with the rich-text body DIRECTLY beneath it, Edit and the actions menu tucked into the header corner. Metadata never sits between title and content; compose the sibling RecordItemDetails trait beside this one for the settings rail. Binds only @entity fields, never ?data, because it is also painted by arms whose payload is not the record.","tier":"internal"},"stageField":{"type":"string","default":"","label":"Which field is the lifecycle stage?","description":"Name of the field holding the record's current stage; the workflow look marks it on the stepper.","synonyms":"stage field, status field, phase field, step field","tier":"presentation"},"iconField":{"type":"string","default":"","label":"Which field is the document icon?","description":"Name of the field on the loaded record whose icon name renders beside the document title (e.g. icon). Empty = no icon, the default.","synonyms":"icon field, glyph field","tier":"presentation"}},"scope":"instance"},{"name":"RecordItemDetails","id":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX","entityRebindable":true,"entityContract":{"requires":[],"provides":["loadedRow"]},"effectRow":[{"kind":"emit","resource":"META_SAVED"},{"kind":"render-ui","resource":"drawer"},{"kind":"set","resource":"@entity.loadedRow"}],"category":"interaction","linkedEntity":"RecordItem","linkedEntityId":"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD","entityRefIds":{"RecordItem":"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD"},"emits":[{"event":"META_SAVED","eventId":"evt_KDAYHGH0P9GB4T4BYJVHZ1V2M2","description":"A property in the settings rail committed in place; patch carries the row id plus the one changed field, ready to hand straight to a persist update. Quiet contract: the host persists without refetching or repainting the open document.","synonyms":"property saved, metadata changed, field committed, update property","tier":"domain","scope":"external","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"patch","type":"object","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}]},{"event":"RELATION_OPEN","eventId":"evt_AF4RKV2PXDBEPG8TW57QTAT5YN","description":"A relation chip in the details drawer was clicked (a tag, the author, the category); id is the linked row's id. Hosts route it to the linked record's own surface — a navigate, a scoped overlay, a filtered list.","synonyms":"open relation, linked record clicked, tag clicked, chip clicked","tier":"domain","scope":"external","payloadSchema":[{"name":"field","type":"string","required":true},{"name":"id","type":"string","required":true},{"name":"name","type":"string"}]}],"stateMachine":{"states":[{"name":"idle","isInitial":true},{"name":"showing"}],"events":[{"key":"INIT","id":"evt_SYY3N9KKF3SQHQ4BH30VZWHRP0","name":"Initialize"},{"key":"SHOW_DETAILS","id":"evt_CANA4G5697K4KMZPYYQXWHZ8PP","name":"Show Details","description":"The document finished loading; stash the row the details drawer will show. Hosts route the doc trait's RecordItemLoaded (or SlugLoaded first element) here.","synonyms":"record loaded, show metadata, populate details","tier":"domain","payloadSchema":[{"name":"data","type":"object","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}],"listened":true},{"key":"OPEN_DETAILS","id":"evt_EK7RE9BSEAWQ5EYJWSC0FHC00D","name":"Open Details","description":"Open the details drawer. Hosts route the document's Details action (e.g. Doc.VIEW_INFO) here.","synonyms":"show info, open details, document info, page info","tier":"presentation","payloadSchema":[{"name":"id","type":"string"}],"listened":true},{"key":"META_SAVED","id":"evt_KDAYHGH0P9GB4T4BYJVHZ1V2M2","name":"Meta Saved","description":"A property in the settings rail committed in place; patch carries the row id plus the one changed field, ready to hand straight to a persist update. Quiet contract: the host persists without refetching or repainting the open document.","synonyms":"property saved, metadata changed, field committed, update property","tier":"domain","payloadSchema":[{"name":"id","type":"string","required":true},{"name":"patch","type":"object","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}]},{"key":"CLOSE","id":"evt_R6ZWTZFMJET976XE2ZETG7SAGP","name":"Close","description":"Close the details drawer; the drawer chrome's X / backdrop dismiss emits this.","synonyms":"dismiss, close drawer, hide details","tier":"presentation","payloadSchema":[{"name":"id","type":"string"}],"listened":true},{"key":"META_CHANGE","id":"evt_W9R9JYBCSXPCYMKY41KV88DSPN","name":"Meta Change","description":"A property in the rail committed (switch toggled, select changed, text blurred).","synonyms":"property changed, metadata edited, field committed","tier":"domain","payloadSchema":[{"name":"id","type":"string"},{"name":"patch","type":"object","properties":[{"name":"id","type":"string","required":true},{"name":"name","type":"string","required":true},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"slug","type":"string"},{"name":"content","type":"string"},{"name":"coverUrl","type":"string"},{"name":"iconName","type":"string"},{"name":"loadedRow","type":"RecordItem"},{"name":"openDraft","type":"string"},{"name":"createdAt","type":"string"}],"entity":"RecordItem"}],"listened":true},{"key":"RELATION_OPEN","id":"evt_AF4RKV2PXDBEPG8TW57QTAT5YN","name":"Relation Open","description":"A relation chip in the details drawer was clicked (a tag, the author, the category); id is the linked row's id. Hosts route it to the linked record's own surface — a navigate, a scoped overlay, a filtered list.","synonyms":"open relation, linked record clicked, tag clicked, chip clicked","tier":"domain","payloadSchema":[{"name":"field","type":"string","required":true},{"name":"id","type":"string","required":true},{"name":"name","type":"string"}]}],"transitions":[{"from":"idle","to":"idle","event":"INIT","eventId":"evt_SYY3N9KKF3SQHQ4BH30VZWHRP0"},{"from":"idle","to":"idle","event":"SHOW_DETAILS","eventId":"evt_CANA4G5697K4KMZPYYQXWHZ8PP","effects":[["set","@entity.loadedRow",["object/merge","@payload.data",{}]]]},{"from":"idle","to":"showing","event":"OPEN_DETAILS","eventId":"evt_EK7RE9BSEAWQ5EYJWSC0FHC00D","effects":[["render-ui","drawer","@config.detailsContent"]]},{"from":"idle","to":"idle","event":"META_SAVED","eventId":"evt_KDAYHGH0P9GB4T4BYJVHZ1V2M2"},{"from":"showing","to":"showing","event":"SHOW_DETAILS","eventId":"evt_CANA4G5697K4KMZPYYQXWHZ8PP","effects":[["set","@entity.loadedRow",["object/merge","@payload.data",{}]],["render-ui","drawer","@config.detailsContent"]]},{"from":"showing","to":"showing","event":"OPEN_DETAILS","eventId":"evt_EK7RE9BSEAWQ5EYJWSC0FHC00D","effects":[["render-ui","drawer","@config.detailsContent"]]},{"from":"showing","to":"idle","event":"CLOSE","eventId":"evt_R6ZWTZFMJET976XE2ZETG7SAGP","effects":[["render-ui","drawer",null]]},{"from":"showing","to":"idle","event":"INIT","eventId":"evt_SYY3N9KKF3SQHQ4BH30VZWHRP0","effects":[["render-ui","drawer",null]]},{"from":"showing","to":"showing","event":"META_CHANGE","eventId":"evt_W9R9JYBCSXPCYMKY41KV88DSPN","effects":[["emit","META_SAVED",{"id":"@payload.id","patch":"@payload.patch"}]]}]},"config":{"detailsContent":{"type":"render-ui","default":{"entity":"@entity.loadedRow","fields":"@config.metaFields","relationEvent":"RELATION_OPEN","title":"@config.detailsTitle","type":"document-details"},"label":"Details drawer content tree","description":"Render-ui SExpr painted into the drawer slot on OPEN_DETAILS; binds the row stashed by SHOW_DETAILS. Info-only by default — no metaCommitEvent, so every row displays rather than edits (editing rides the document's actions menu). Override at the call site to extend the panel or to opt into in-place commits via metaCommitEvent: META_CHANGE.","tier":"internal"},"detailsTitle":{"type":"string","default":"Details","label":"Details drawer heading","description":"Heading of the settings card (e.g. Details, Page info, Document settings).","tier":"presentation"},"metaFields":{"type":"[MetaFieldSpec]","default":[],"label":"Which metadata properties appear in the details drawer?","description":"The record's metadata shown as read-only INFO in the details drawer (Updated, address, status, …). Editing metadata is a normal action under the document's menu, not an inline affordance here.","synonyms":"properties, metadata fields, document info, page info, front matter","tier":"presentation","items":{"type":"object","properties":{"label":{"name":"label","type":"string","required":false},"kind":{"name":"kind","type":"string","required":false,"values":["text","boolean","select","readonly"]},"options":{"name":"options","type":"array","required":false,"items":{"type":"string"}},"key":{"name":"key","type":"string","required":true},"icon":{"name":"icon","type":"string","required":false},"format":{"name":"format","type":"string","required":false,"values":["date","currency","number","boolean","percent"]}}}}},"scope":"instance"}],"pages":[{"name":"RecordItemDetailPage","id":"pag_N4GBQNZ1CQGPBHZ5NSKDJ3XQRG","path":"/recorditems","traits":[{"ref":"RecordItemDetail","refId":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},{"ref":"RecordItemDetails","refId":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"}]}],"types":{"LineItemColumn":[{"name":"key","type":"string","required":true},{"name":"header","type":"string"},{"name":"align","type":"string","values":["left","center","right"]},{"name":"format","type":"string","values":["badge","date","currency","number","percent","boolean"]}],"MetaFieldSpec":[{"name":"key","type":"string","required":true},{"name":"label","type":"string"},{"name":"kind","type":"string","values":["text","boolean","select","readonly"]},{"name":"options","type":"[string]"},{"name":"icon","type":"string"},{"name":"format","type":"string","values":["date","currency","number","boolean","percent"]}],"RecordAction":[{"name":"label","type":"string","required":true},{"name":"event","type":"event","required":true},{"name":"icon","type":"string"},{"name":"variant","type":"string","values":["primary","secondary","ghost","danger"]},{"name":"roles","type":"[string]"},{"name":"when","type":"SExpr"}],"RecordFieldSpec":[{"name":"key","type":"string","required":true},{"name":"header","type":"string"},{"name":"format","type":"string","values":["date","currency","number","boolean","percent"]},{"name":"variant","type":"string","values":["h3","h4","body","caption","badge","small","progress"]},{"name":"colorMap","type":"Map<string,BadgeColor>"},{"name":"labels","type":"Map<string,string>"}],"RecordSection":[{"name":"title","type":"string","required":true},{"name":"fields","type":"[string]"}],"RecordStage":[{"name":"value","type":"string","required":true},{"name":"label","type":"string","required":true}],"RecordTab":[{"name":"id","type":"string","required":true},{"name":"label","type":"string","required":true},{"name":"fields","type":"[string]"},{"name":"content","type":"render-ui"}]}}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD":{"id":"ent_2XJ7SVM27F13QRA1Y3JMQGYEGD","kind":"entity","bakedName":"RecordItem","curName":"RecordItem","renames":[],"owner":"workspace"},"evt_78T54X4GEC87632251KVSZYDHX":{"id":"evt_78T54X4GEC87632251KVSZYDHX","kind":"event","bakedName":"CONTENT_COMMITTED","curName":"CONTENT_COMMITTED","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_7991ZR3GKGR9R9F4999HWABKTK":{"id":"evt_7991ZR3GKGR9R9F4999HWABKTK","kind":"event","bakedName":"CLOSE_VIEW","curName":"CLOSE_VIEW","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_988JHGKHDDRPPWHHEH415BBRRM":{"id":"evt_988JHGKHDDRPPWHHEH415BBRRM","kind":"event","bakedName":"CONTENT_CHANGE","curName":"CONTENT_CHANGE","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ":{"id":"evt_ADBHXBCV8FDM7W8S24DZ76YPDJ","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_AF4RKV2PXDBEPG8TW57QTAT5YN":{"id":"evt_AF4RKV2PXDBEPG8TW57QTAT5YN","kind":"event","bakedName":"RELATION_OPEN","curName":"RELATION_OPEN","renames":[],"owner":"workspace","parent":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"},"evt_CANA4G5697K4KMZPYYQXWHZ8PP":{"id":"evt_CANA4G5697K4KMZPYYQXWHZ8PP","kind":"event","bakedName":"SHOW_DETAILS","curName":"SHOW_DETAILS","renames":[],"owner":"workspace","parent":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"},"evt_EK7RE9BSEAWQ5EYJWSC0FHC00D":{"id":"evt_EK7RE9BSEAWQ5EYJWSC0FHC00D","kind":"event","bakedName":"OPEN_DETAILS","curName":"OPEN_DETAILS","renames":[],"owner":"workspace","parent":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"},"evt_FPH68D3PD1V6GVG63QF84JW93M":{"id":"evt_FPH68D3PD1V6GVG63QF84JW93M","kind":"event","bakedName":"RecordItemLoaded","curName":"RecordItemLoaded","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_GRQDPS35N3JTHP49GZ8N9WC6NM":{"id":"evt_GRQDPS35N3JTHP49GZ8N9WC6NM","kind":"event","bakedName":"RETRY","curName":"RETRY","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_KDAYHGH0P9GB4T4BYJVHZ1V2M2":{"id":"evt_KDAYHGH0P9GB4T4BYJVHZ1V2M2","kind":"event","bakedName":"META_SAVED","curName":"META_SAVED","renames":[],"owner":"workspace","parent":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"},"evt_KR80XKMD6D6K6HTE1M7RT1PY5M":{"id":"evt_KR80XKMD6D6K6HTE1M7RT1PY5M","kind":"event","bakedName":"DONE_EDITING","curName":"DONE_EDITING","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_MQPJGHZCRSPCCKFRVWT84PHNJW":{"id":"evt_MQPJGHZCRSPCCKFRVWT84PHNJW","kind":"event","bakedName":"OPEN_VIEW","curName":"OPEN_VIEW","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_NJM1ADF3ZDHZPGZNVWT5WD8NPC":{"id":"evt_NJM1ADF3ZDHZPGZNVWT5WD8NPC","kind":"event","bakedName":"EDIT_CONTENT","curName":"EDIT_CONTENT","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_NRMDTB7A7VN3XZQYCRY9H63F1J":{"id":"evt_NRMDTB7A7VN3XZQYCRY9H63F1J","kind":"event","bakedName":"RecordItemLoadFailed","curName":"RecordItemLoadFailed","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_P75FR56YQSFBWKV4J746V68P70":{"id":"evt_P75FR56YQSFBWKV4J746V68P70","kind":"event","bakedName":"DELETE","curName":"DELETE","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_Q71EWZ1166GK39MB35MJ64TRPZ":{"id":"evt_Q71EWZ1166GK39MB35MJ64TRPZ","kind":"event","bakedName":"EDIT","curName":"EDIT","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_R6ZWTZFMJET976XE2ZETG7SAGP":{"id":"evt_R6ZWTZFMJET976XE2ZETG7SAGP","kind":"event","bakedName":"CLOSE","curName":"CLOSE","renames":[],"owner":"workspace","parent":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"},"evt_SYY3N9KKF3SQHQ4BH30VZWHRP0":{"id":"evt_SYY3N9KKF3SQHQ4BH30VZWHRP0","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"},"evt_W147V9JAJG5984G8HNAMYZYB8F":{"id":"evt_W147V9JAJG5984G8HNAMYZYB8F","kind":"event","bakedName":"TITLE_COMMITTED","curName":"TITLE_COMMITTED","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_W9R9JYBCSXPCYMKY41KV88DSPN":{"id":"evt_W9R9JYBCSXPCYMKY41KV88DSPN","kind":"event","bakedName":"META_CHANGE","curName":"META_CHANGE","renames":[],"owner":"workspace","parent":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX"},"evt_WFN58WD80PM0BEBTE5J4DWQX27":{"id":"evt_WFN58WD80PM0BEBTE5J4DWQX27","kind":"event","bakedName":"CONTENT_SAVED","curName":"CONTENT_SAVED","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"evt_YEWF935T5NX2TR12CY1ZRK39W2":{"id":"evt_YEWF935T5NX2TR12CY1ZRK39W2","kind":"event","bakedName":"RecordItemSlugLoaded","curName":"RecordItemSlugLoaded","renames":[],"owner":"workspace","parent":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2"},"orb_D62JFM7QMNVTAYGGHXC4Q1TPF2":{"id":"orb_D62JFM7QMNVTAYGGHXC4Q1TPF2","kind":"orbital","bakedName":"RecordItemOrbital","curName":"RecordItemOrbital","renames":[],"owner":"workspace"},"pag_N4GBQNZ1CQGPBHZ5NSKDJ3XQRG":{"id":"pag_N4GBQNZ1CQGPBHZ5NSKDJ3XQRG","kind":"page","bakedName":"RecordItemDetailPage","curName":"RecordItemDetailPage","renames":[],"owner":"workspace"},"trt_4WTTPVSV2JXH98P5FS7PHZ94M2":{"id":"trt_4WTTPVSV2JXH98P5FS7PHZ94M2","kind":"trait","bakedName":"RecordItemDetail","curName":"RecordItemDetail","renames":[],"owner":"workspace"},"trt_FZKXZ64PW1BE0ZH926QP0HCXVX":{"id":"trt_FZKXZ64PW1BE0ZH926QP0HCXVX","kind":"trait","bakedName":"RecordItemDetails","curName":"RecordItemDetails","renames":[],"owner":"workspace"}}}}
|