@almadar/std 16.254.0 → 16.255.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-pool.lolo +10 -10
- package/behaviors/lolo/agent/evals/eval-agent-builder.lolo +15 -8
- package/behaviors/lolo/agent/organisms/std-agent-builder.lolo +6 -5
- package/behaviors/registry/agent/atoms/std-agent-context.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-fix-loop.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-planner.orb +1 -1
- package/behaviors/registry/agent/atoms/std-agent-pool.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/evals/eval-agent-builder.orb +1 -1
- package/behaviors/registry/agent/organisms/std-agent-assistant.orb +1 -1
- package/behaviors/registry/agent/organisms/std-agent-builder.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-exact-check.orb +1 -1
- package/behaviors/registry/ml/atoms/std-ml-infer.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-date-range.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-role-gate.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-search.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-modal-editor","version":"0.1.0","description":"UI substrate: modal keyboard editing over any editable CodeBlock. The topology is fixed (NORMAL / INSERT / VISUAL / OPERATOR_PENDING / COMMAND) and every binding is config: mode-entry keys, motions, operators, ex-commands, the digit table that accumulates a repeat count, and the per-mode captured-key table the host's keyboard router reads. Vim ships as the default flavor; a Kakoune/Helix binding is the same topology with different config, never a fork. Emits are the mechanical vocabulary an editable CodeBlock listens to (SET_MODE / MOTION / OPERATE / INSERT_TEXT) plus one neutral EX_COMMAND for a buffered ':' line — std names no host command; a realization maps EX_COMMAND.name onto its own host vocabulary. A bare EDITOR_FOCUS listen lets every state re-announce its SET_MODE (block caret in NORMAL/VISUAL/OPERATOR_PENDING/COMMAND, bar in INSERT) when the host focuses a different editor surface.","orbitals":[{"name":"ModalEditorOrbital","id":"orb_HAM3QYASQACVNA87FFPK3ZZHQF","entity":{"name":"EditorMode","id":"ent_XGQ92348RS4CCYPWAGN26NV02X","persistence":"runtime","fields":[{"name":"id","type":"string","required":true},{"name":"editorId","type":"string","default":""},{"name":"count","type":"number","default":0},{"name":"operator","type":"string","default":""},{"name":"operatorKey","type":"string","default":""},{"name":"cmdline","type":"string","default":""},{"name":"lastOperator","type":"string","default":""},{"name":"lastMotion","type":"string","default":""},{"name":"lastCount","type":"number","default":0}]},"traits":[{"name":"Modes","id":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21","entityRebindable":true,"entityContract":{"requires":[],"provides":["cmdline","count","editorId","lastCount","lastMotion","lastOperator","operator","operatorKey"]},"effectRow":[{"kind":"emit","resource":"EX_COMMAND"},{"kind":"emit","resource":"INSERT_TEXT"},{"kind":"emit","resource":"MOTION"},{"kind":"emit","resource":"OPERATE"},{"kind":"emit","resource":"SET_MODE"},{"kind":"set","resource":"@entity.cmdline"},{"kind":"set","resource":"@entity.count"},{"kind":"set","resource":"@entity.editorId"},{"kind":"set","resource":"@entity.lastCount"},{"kind":"set","resource":"@entity.lastMotion"},{"kind":"set","resource":"@entity.lastOperator"},{"kind":"set","resource":"@entity.operator"},{"kind":"set","resource":"@entity.operatorKey"}],"category":"lifecycle","linkedEntity":"EditorMode","linkedEntityId":"ent_XGQ92348RS4CCYPWAGN26NV02X","entityRefIds":{"EditorMode":"ent_XGQ92348RS4CCYPWAGN26NV02X"},"emits":[{"event":"SET_MODE","eventId":"evt_85SENYFTYDXF6PPZQX0K74YTMW","description":"Mode + caret instruction for the editor surface (bar | block), with the keys the mode captures (from `keymap`), so an editor with `onKey` captures exactly those. Also the fact a realization reads to drive a mode indicator.","tier":"primary","scope":"external","payloadSchema":[{"name":"editorId","type":"string"},{"name":"mode","type":"string"},{"name":"caret","type":"string"},{"name":"keys","type":"[string]"}]},{"event":"MOTION","eventId":"evt_R3W9ABDJA8S543NZA31JS879GR","description":"Move the caret (or extend the selection in VISUAL) by a closed motion name, `count` times.","tier":"primary","scope":"external","payloadSchema":[{"name":"editorId","type":"string"},{"name":"motion","type":"string"},{"name":"count","type":"number"}]},{"event":"OPERATE","eventId":"evt_DC0K50H01FG0QW3N49KE1AMWZG","description":"Apply a config-declared operator (delete | yank | change | put | put-before | undo | redo | join | toggle-case | indent | dedent | replace) over the range a motion describes; `line` for doubled operators, `selection` in VISUAL, and a fixed `right` placeholder for the point operators (put | put-before | undo | redo) which the editor ignores.","tier":"primary","scope":"external","payloadSchema":[{"name":"editorId","type":"string"},{"name":"operator","type":"string"},{"name":"motion","type":"string"},{"name":"count","type":"number"}]},{"event":"INSERT_TEXT","eventId":"evt_N4CAM152RSHCCWHWPKYC71HJQY","description":"Insert literal text at the caret (e.g. the newline `o`/`O` insert before entering INSERT, or the replacement char `r` inserts).","tier":"secondary","scope":"external","payloadSchema":[{"name":"editorId","type":"string"},{"name":"text","type":"string"}]},{"event":"EX_COMMAND","eventId":"evt_PXKXHQFEWQQEBJ80QNE2Y3F3TE","description":"A buffered ':' line resolved through config.exCommands. `name` is a neutral config-declared string; a realization maps it onto its host's command vocabulary.","tier":"secondary","scope":"external","payloadSchema":[{"name":"editorId","type":"string"},{"name":"name","type":"string"}]}],"stateMachine":{"states":[{"name":"NORMAL","isInitial":true},{"name":"INSERT"},{"name":"VISUAL"},{"name":"OPERATOR_PENDING"},{"name":"COMMAND"}],"events":[{"key":"INIT","id":"evt_C285CPJDYP6ZB7AK26AYTJS4PJ","name":"Initialize"},{"key":"KEY","id":"evt_87H254S0X2GEH77J3WH8ZZWXZC","name":"Key","description":"One physical keydown, delivered by the host's keyboard router. The host decides preventDefault from config.keymap; the command line accepts only keys config.keymap captures in COMMAND.","payloadSchema":[{"name":"editorId","type":"string"},{"name":"key","type":"string"},{"name":"code","type":"string"},{"name":"ctrl","type":"boolean"},{"name":"alt","type":"boolean"},{"name":"shift","type":"boolean"},{"name":"meta","type":"boolean"},{"name":"repeat","type":"boolean"}],"listened":true},{"key":"EDITOR_FOCUS","id":"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5","name":"Editor Focus","description":"The host focused a different editor surface. Every state re-emits its own SET_MODE so the newly focused editor's mode indicator and caret style start correct.","payloadSchema":[{"name":"editorId","type":"string"}],"listened":true},{"key":"SET_MODE","id":"evt_85SENYFTYDXF6PPZQX0K74YTMW","name":"Set Mode","description":"Mode + caret instruction for the editor surface (bar | block), with the keys the mode captures (from `keymap`), so an editor with `onKey` captures exactly those. Also the fact a realization reads to drive a mode indicator.","tier":"primary","payloadSchema":[{"name":"editorId","type":"string"},{"name":"mode","type":"string"},{"name":"caret","type":"string"},{"name":"keys","type":"[string]"}]},{"key":"MOTION","id":"evt_R3W9ABDJA8S543NZA31JS879GR","name":"Motion","description":"Move the caret (or extend the selection in VISUAL) by a closed motion name, `count` times.","tier":"primary","payloadSchema":[{"name":"editorId","type":"string"},{"name":"motion","type":"string"},{"name":"count","type":"number"}]},{"key":"OPERATE","id":"evt_DC0K50H01FG0QW3N49KE1AMWZG","name":"Operate","description":"Apply a config-declared operator (delete | yank | change | put | put-before | undo | redo | join | toggle-case | indent | dedent | replace) over the range a motion describes; `line` for doubled operators, `selection` in VISUAL, and a fixed `right` placeholder for the point operators (put | put-before | undo | redo) which the editor ignores.","tier":"primary","payloadSchema":[{"name":"editorId","type":"string"},{"name":"operator","type":"string"},{"name":"motion","type":"string"},{"name":"count","type":"number"}]},{"key":"INSERT_TEXT","id":"evt_N4CAM152RSHCCWHWPKYC71HJQY","name":"Insert Text","description":"Insert literal text at the caret (e.g. the newline `o`/`O` insert before entering INSERT, or the replacement char `r` inserts).","tier":"secondary","payloadSchema":[{"name":"editorId","type":"string"},{"name":"text","type":"string"}]},{"key":"EX_COMMAND","id":"evt_PXKXHQFEWQQEBJ80QNE2Y3F3TE","name":"Ex Command","description":"A buffered ':' line resolved through config.exCommands. `name` is a neutral config-declared string; a realization maps it onto its host's command vocabulary.","tier":"secondary","payloadSchema":[{"name":"editorId","type":"string"},{"name":"name","type":"string"}]}],"transitions":[{"from":"NORMAL","to":"NORMAL","event":"INIT","eventId":"evt_C285CPJDYP6ZB7AK26AYTJS4PJ","effects":[["set","@entity.count",0]]},{"from":"NORMAL","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.insertKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.count",0],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"NORMAL","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.appendKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.count",0],["emit","MOTION",{"editorId":"@payload.editorId","motion":"right","count":1}],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"NORMAL","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.openLineKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.count",0],["emit","MOTION",{"editorId":"@payload.editorId","motion":"line-end","count":1}],["emit","MOTION",{"editorId":"@payload.editorId","motion":"right","count":1}],["emit","INSERT_TEXT",{"editorId":"@payload.editorId","text":"\n"}],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"NORMAL","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.openLineAboveKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.count",0],["emit","MOTION",{"editorId":"@payload.editorId","motion":"line-start","count":1}],["emit","INSERT_TEXT",{"editorId":"@payload.editorId","text":"\n"}],["emit","MOTION",{"editorId":"@payload.editorId","motion":"up","count":1}],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"NORMAL","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.appendLineKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.count",0],["emit","MOTION",{"editorId":"@payload.editorId","motion":"line-end","count":1}],["emit","MOTION",{"editorId":"@payload.editorId","motion":"right","count":1}],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"NORMAL","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.insertLineKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.count",0],["emit","MOTION",{"editorId":"@payload.editorId","motion":"first-nonblank","count":1}],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"NORMAL","to":"VISUAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.visualKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"VISUAL","caret":"block","keys":["object/get","@config.keymap","VISUAL",[]]}]]},{"from":"NORMAL","to":"COMMAND","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.commandKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.cmdline",""],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"COMMAND","caret":"block","keys":["object/get","@config.keymap","COMMAND",[]]}]]},{"from":"NORMAL","to":"OPERATOR_PENDING","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["object/has","@config.operators","@payload.key"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.operator",["object/get","@config.operators","@payload.key"]],["set","@entity.operatorKey","@payload.key"]]},{"from":"NORMAL","to":"OPERATOR_PENDING","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.gotoPrefixKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.operator","goto"],["set","@entity.operatorKey","@payload.key"]]},{"from":"NORMAL","to":"OPERATOR_PENDING","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","@config.replaceKey"],["not","@payload.ctrl"]],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.operator","replace"],["set","@entity.operatorKey","@payload.key"]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","@config.redoKey"],"@payload.ctrl"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"redo","motion":"right","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.undoKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"undo","motion":"right","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.deleteCharKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"delete","motion":"right","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.deleteCharBackKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"delete","motion":"left","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.putKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"put","motion":"right","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.putBeforeKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"put-before","motion":"right","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.toggleCaseKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"toggle-case","motion":"right","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.joinKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"join","motion":"line","count":["if",[">","@entity.count",1],"@entity.count",2]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","@config.repeatKey"],["!=","@entity.lastOperator",""]],"effects":[["emit","OPERATE",{"editorId":"@payload.editorId","operator":"@entity.lastOperator","motion":"@entity.lastMotion","count":"@entity.lastCount"}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["object/has","@config.digits","@payload.key"],["or",["!=","@payload.key","0"],[">","@entity.count",0]]],"effects":[["set","@entity.count",["+",["*","@entity.count",10],["object/get","@config.digits","@payload.key"]]]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["object/has","@config.motions","@payload.key"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","MOTION",{"editorId":"@payload.editorId","motion":["object/get","@config.motions","@payload.key"],"count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","Escape"],"effects":[["set","@entity.count",0],["set","@entity.operator",""],["set","@entity.operatorKey",""]]},{"from":"NORMAL","to":"NORMAL","event":"EDITOR_FOCUS","eventId":"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5","effects":[["set","@entity.editorId","@payload.editorId"],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"INSERT","to":"NORMAL","event":"INIT","eventId":"evt_C285CPJDYP6ZB7AK26AYTJS4PJ","effects":[["set","@entity.count",0]]},{"from":"INSERT","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","Escape"],"effects":[["emit","MOTION",{"editorId":"@payload.editorId","motion":"left","count":1}],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"INSERT","to":"INSERT","event":"EDITOR_FOCUS","eventId":"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5","effects":[["set","@entity.editorId","@payload.editorId"],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"VISUAL","to":"NORMAL","event":"INIT","eventId":"evt_C285CPJDYP6ZB7AK26AYTJS4PJ","effects":[["set","@entity.count",0]]},{"from":"VISUAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","Escape"],"effects":[["set","@entity.count",0],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"VISUAL","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["object/has","@config.operators","@payload.key"],["=",["object/get","@config.operators","@payload.key"],"change"]],"effects":[["set","@entity.count",0],["emit","OPERATE",{"editorId":"@payload.editorId","operator":["object/get","@config.operators","@payload.key"],"motion":"selection","count":1}],["set","@entity.lastOperator",["object/get","@config.operators","@payload.key"]],["set","@entity.lastMotion","selection"],["set","@entity.lastCount",1],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"VISUAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["object/has","@config.operators","@payload.key"],["!=",["object/get","@config.operators","@payload.key"],"change"]],"effects":[["set","@entity.count",0],["emit","OPERATE",{"editorId":"@payload.editorId","operator":["object/get","@config.operators","@payload.key"],"motion":"selection","count":1}],["set","@entity.lastOperator",["object/get","@config.operators","@payload.key"]],["set","@entity.lastMotion","selection"],["set","@entity.lastCount",1],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"VISUAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.toggleCaseKey"],"effects":[["set","@entity.count",0],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"toggle-case","motion":"selection","count":1}],["set","@entity.lastOperator","toggle-case"],["set","@entity.lastMotion","selection"],["set","@entity.lastCount",1],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"VISUAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.joinKey"],"effects":[["set","@entity.count",0],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"join","motion":"selection","count":1}],["set","@entity.lastOperator","join"],["set","@entity.lastMotion","selection"],["set","@entity.lastCount",1],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"VISUAL","to":"VISUAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["object/has","@config.motions","@payload.key"],"effects":[["emit","MOTION",{"editorId":"@payload.editorId","motion":["object/get","@config.motions","@payload.key"],"count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"VISUAL","to":"VISUAL","event":"EDITOR_FOCUS","eventId":"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5","effects":[["set","@entity.editorId","@payload.editorId"],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"VISUAL","caret":"block","keys":["object/get","@config.keymap","VISUAL",[]]}]]},{"from":"OPERATOR_PENDING","to":"NORMAL","event":"INIT","eventId":"evt_C285CPJDYP6ZB7AK26AYTJS4PJ","effects":[["set","@entity.count",0]]},{"from":"OPERATOR_PENDING","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","@entity.operatorKey"],["=","@entity.operator","goto"]],"effects":[["emit","MOTION",{"editorId":"@payload.editorId","motion":"doc-start","count":1}],["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0]]},{"from":"OPERATOR_PENDING","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","@entity.operatorKey"],["=","@entity.operator","change"]],"effects":[["emit","OPERATE",{"editorId":"@payload.editorId","operator":"@entity.operator","motion":"line","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.lastOperator","@entity.operator"],["set","@entity.lastMotion","line"],["set","@entity.lastCount",["if",[">","@entity.count",0],"@entity.count",1]],["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"OPERATOR_PENDING","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","@entity.operatorKey"],["!=","@entity.operator","change"],["!=","@entity.operator","goto"],["!=","@entity.operator","replace"]],"effects":[["emit","OPERATE",{"editorId":"@payload.editorId","operator":"@entity.operator","motion":"line","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.lastOperator","@entity.operator"],["set","@entity.lastMotion","line"],["set","@entity.lastCount",["if",[">","@entity.count",0],"@entity.count",1]],["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0]]},{"from":"OPERATOR_PENDING","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["object/has","@config.motions","@payload.key"],["=","@entity.operator","change"]],"effects":[["emit","OPERATE",{"editorId":"@payload.editorId","operator":"@entity.operator","motion":["object/get","@config.motions","@payload.key"],"count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.lastOperator","@entity.operator"],["set","@entity.lastMotion",["object/get","@config.motions","@payload.key"]],["set","@entity.lastCount",["if",[">","@entity.count",0],"@entity.count",1]],["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"OPERATOR_PENDING","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["object/has","@config.motions","@payload.key"],["!=","@entity.operator","change"],["!=","@entity.operator","goto"],["!=","@entity.operator","replace"]],"effects":[["emit","OPERATE",{"editorId":"@payload.editorId","operator":"@entity.operator","motion":["object/get","@config.motions","@payload.key"],"count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.lastOperator","@entity.operator"],["set","@entity.lastMotion",["object/get","@config.motions","@payload.key"]],["set","@entity.lastCount",["if",[">","@entity.count",0],"@entity.count",1]],["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0]]},{"from":"OPERATOR_PENDING","to":"OPERATOR_PENDING","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["object/has","@config.digits","@payload.key"],["or",["!=","@payload.key","0"],[">","@entity.count",0]],["!=","@entity.operator","goto"],["!=","@entity.operator","replace"]],"effects":[["set","@entity.count",["+",["*","@entity.count",10],["object/get","@config.digits","@payload.key"]]]]},{"from":"OPERATOR_PENDING","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@entity.operator","replace"],["!=","@payload.key","Escape"]],"effects":[["emit","OPERATE",{"editorId":"@payload.editorId","operator":"delete","motion":"right","count":1}],["emit","INSERT_TEXT",{"editorId":"@payload.editorId","text":"@payload.key"}],["emit","MOTION",{"editorId":"@payload.editorId","motion":"left","count":1}],["set","@entity.lastOperator","delete"],["set","@entity.lastMotion","right"],["set","@entity.lastCount",1],["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0]]},{"from":"OPERATOR_PENDING","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","Escape"],"effects":[["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0]]},{"from":"OPERATOR_PENDING","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@entity.operator","goto"],["!=","@payload.key","Escape"],["!=","@payload.key","@entity.operatorKey"]],"effects":[["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0]]},{"from":"OPERATOR_PENDING","to":"OPERATOR_PENDING","event":"EDITOR_FOCUS","eventId":"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5","effects":[["set","@entity.editorId","@payload.editorId"],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"OPERATOR_PENDING","caret":"block","keys":["object/get","@config.keymap","OPERATOR_PENDING",[]]}]]},{"from":"COMMAND","to":"NORMAL","event":"INIT","eventId":"evt_C285CPJDYP6ZB7AK26AYTJS4PJ","effects":[["set","@entity.count",0]]},{"from":"COMMAND","to":"COMMAND","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","Backspace"],"effects":[["set","@entity.cmdline",["str/slice","@entity.cmdline",0,["-",["str/len","@entity.cmdline"],1]]]]},{"from":"COMMAND","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","Enter"],["object/has","@config.exCommands","@entity.cmdline"]],"effects":[["emit","EX_COMMAND",{"editorId":"@payload.editorId","name":["object/get","@config.exCommands","@entity.cmdline"]}],["set","@entity.cmdline",""],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"COMMAND","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","Enter"],["not",["object/has","@config.exCommands","@entity.cmdline"]]],"effects":[["set","@entity.cmdline",""],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"COMMAND","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","Escape"],"effects":[["set","@entity.cmdline",""],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"COMMAND","to":"COMMAND","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["array/includes",["object/get","@config.keymap","COMMAND"],"@payload.key"],["!=","@payload.key","Enter"],["!=","@payload.key","Escape"],["!=","@payload.key","Backspace"]],"effects":[["set","@entity.cmdline",["str/concat","@entity.cmdline","@payload.key"]]]},{"from":"COMMAND","to":"COMMAND","event":"EDITOR_FOCUS","eventId":"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5","effects":[["set","@entity.editorId","@payload.editorId"],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"COMMAND","caret":"block","keys":["object/get","@config.keymap","COMMAND",[]]}]]}]},"config":{"commandKey":{"type":"string","default":":","label":"Enter COMMAND","description":"Key that switches NORMAL to COMMAND and starts buffering an ex-command line.","synonyms":"ex mode, command line, colon","tier":"presentation"},"motions":{"type":"Map<string,string>","default":{"0":"line-start","h":"left","j":"down","k":"up","l":"right","w":"word-forward","b":"word-back","e":"word-end","$":"line-end","^":"first-nonblank","G":"doc-end","{":"paragraph-back","}":"paragraph-forward","%":"match-bracket"},"label":"Motion keys","description":"Keys recognized in NORMAL, VISUAL and OPERATOR_PENDING, mapped to the closed motion vocabulary the editor surface understands.","synonyms":"motions, movement, hjkl, word motion","tier":"domain","items":{"type":"string"}},"exCommands":{"type":"Map<string,string>","default":{"w":"save","q":"close-tab","wq":"save-close-tab","q!":"close-tab-discard","x":"save-close-tab"},"label":"Ex-commands","description":"Buffered COMMAND-mode lines (typed after ':') mapped to a neutral command name carried on EX_COMMAND.","synonyms":"ex commands, colon commands","tier":"domain","items":{"type":"string"}},"deleteCharBackKey":{"type":"string","default":"X","label":"Delete char before caret","description":"Key that deletes the character(s) to the left of the caret, count times.","synonyms":"delete char back","tier":"presentation"},"redoKey":{"type":"string","default":"r","label":"Redo (with Ctrl)","description":"Held with Ctrl, redoes the last undone change. `motion` on OPERATE is a fixed `right` placeholder — this is a point operator and the editor ignores it. Shares its default key with replaceKey; the ctrl modifier disambiguates.","synonyms":"redo, ctrl-r","tier":"presentation"},"appendKey":{"type":"string","default":"a","label":"Enter INSERT after the caret","description":"Key that nudges the caret one column right, then switches to INSERT.","synonyms":"append, append mode","tier":"presentation"},"visualKey":{"type":"string","default":"v","label":"Enter VISUAL","description":"Key that switches NORMAL to VISUAL; motions then extend the selection and an operator acts on it.","synonyms":"visual mode, select mode","tier":"presentation"},"digits":{"type":"Map<string,number>","default":{"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9},"label":"Count digits","description":"Digit keys accumulated into a repeat count before a motion or operator fires (also inside OPERATOR_PENDING, e.g. `d3w`); each digit's integer value is a lookup because the language has no string-to-int operator.","tier":"internal","items":{"type":"number"}},"deleteCharKey":{"type":"string","default":"x","label":"Delete char under caret","description":"Key that deletes the character(s) to the right of the caret, count times.","synonyms":"delete char, x","tier":"presentation"},"gotoPrefixKey":{"type":"string","default":"g","label":"Goto prefix","description":"Arms OPERATOR_PENDING with the `goto` pseudo-operator; pressed again (`gg`) moves to the document start. Any other key cancels back to NORMAL.","synonyms":"goto, gg, doc start","tier":"presentation"},"keymap":{"type":"Map<string,[string]>","default":{"NORMAL":["i","a","o","O","A","I","v",":","d","y","c","h","j","k","l","w","b","e","0","1","2","3","4","5","6","7","8","9","$","^","G","{","}","%",">","<","x","X","p","P","u","r","~","J",".","g","Escape"],"INSERT":["Escape"],"VISUAL":["Escape","d","y","c","h","j","k","l","w","b","e","0","$","^","G","{","}","%","~",">","<","J"],"OPERATOR_PENDING":["Escape","d","y","c","h","j","k","l","w","b","e","0","1","2","3","4","5","6","7","8","9","$","^","G","{","}","%",">","<","g"],"COMMAND":["Escape","Enter","Backspace","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","!","%"," "]},"label":"Captured keys per mode","description":"The declared key set the host's keyboard router reads synchronously to decide preventDefault, keyed by this trait's current state name. A key not listed reaches the underlying textarea untouched. Keep in sync with the other knobs.","tier":"internal","items":{"type":"array","items":{"type":"string"}}},"putBeforeKey":{"type":"string","default":"P","label":"Put before caret","description":"Key that pastes the last yank/delete before the caret. `motion` on OPERATE is a fixed `right` placeholder — this is a point operator and the editor ignores it.","synonyms":"paste before, put before","tier":"presentation"},"replaceKey":{"type":"string","default":"r","label":"Replace char","description":"Without Ctrl, arms a one-key replace: the next non-Escape key overwrites the character under the caret. Shares its default key with redoKey; the ctrl modifier disambiguates.","synonyms":"replace char","tier":"presentation"},"undoKey":{"type":"string","default":"u","label":"Undo","description":"Key that undoes the last change. `motion` on OPERATE is a fixed `right` placeholder — this is a point operator and the editor ignores it.","synonyms":"undo","tier":"presentation"},"insertLineKey":{"type":"string","default":"I","label":"Enter INSERT at first non-blank","description":"Key that moves to the line's first non-blank column, then switches to INSERT — vim's `I`.","synonyms":"insert at line start","tier":"presentation"},"repeatKey":{"type":"string","default":".","label":"Repeat last change","description":"Key that re-applies the last OPERATE (operator, motion, count) recorded from OPERATOR_PENDING or VISUAL. No-op until a change has been recorded.","synonyms":"repeat, dot repeat","tier":"presentation"},"appendLineKey":{"type":"string","default":"A","label":"Enter INSERT at end of line","description":"Key that moves to line end and past it, then switches to INSERT — vim's `A`.","synonyms":"append at end of line","tier":"presentation"},"insertKey":{"type":"string","default":"i","label":"Enter INSERT before the caret","description":"Key that switches NORMAL to INSERT with the caret unchanged.","synonyms":"insert mode, insert key","tier":"presentation"},"putKey":{"type":"string","default":"p","label":"Put after caret","description":"Key that pastes the last yank/delete after the caret. `motion` on OPERATE is a fixed `right` placeholder — this is a point operator and the editor ignores it.","synonyms":"paste, put","tier":"presentation"},"toggleCaseKey":{"type":"string","default":"~","label":"Toggle case","description":"Key that flips the case of the character under the caret, count times.","synonyms":"toggle case, tilde","tier":"presentation"},"joinKey":{"type":"string","default":"J","label":"Join lines","description":"Key that joins the current line with the line(s) below; a count above 1 joins that many lines.","synonyms":"join lines","tier":"presentation"},"operators":{"type":"Map<string,string>","default":{"d":"delete","y":"yank","c":"change",">":"indent","<":"dedent"},"label":"Operator keys","description":"Keys that arm OPERATOR_PENDING, mapped to the operator name carried on OPERATE. Pressing the same key again operates on the whole line.","synonyms":"operators, delete, yank, change, indent, dedent","tier":"domain","items":{"type":"string"}},"openLineKey":{"type":"string","default":"o","label":"Open a line below and insert","description":"Key that moves to line end (past the last char), inserts a newline, then switches to INSERT — vim's `o`.","synonyms":"open line, new line below","tier":"presentation"},"openLineAboveKey":{"type":"string","default":"O","label":"Open a line above and insert","description":"Key that moves to line start, inserts a newline, then moves up and switches to INSERT — vim's `O`.","synonyms":"open line above, new line above","tier":"presentation"}},"scope":"instance"}],"pages":[{"name":"ModalEditorPage","id":"pag_5S5N6HGDEY6QF6EBDG0SXTK33Y","path":"/modal-editor","traits":[{"ref":"Modes","refId":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"}]}]}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_XGQ92348RS4CCYPWAGN26NV02X":{"id":"ent_XGQ92348RS4CCYPWAGN26NV02X","kind":"entity","bakedName":"EditorMode","curName":"EditorMode","renames":[],"owner":"workspace"},"evt_85SENYFTYDXF6PPZQX0K74YTMW":{"id":"evt_85SENYFTYDXF6PPZQX0K74YTMW","kind":"event","bakedName":"SET_MODE","curName":"SET_MODE","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"evt_87H254S0X2GEH77J3WH8ZZWXZC":{"id":"evt_87H254S0X2GEH77J3WH8ZZWXZC","kind":"event","bakedName":"KEY","curName":"KEY","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"evt_C285CPJDYP6ZB7AK26AYTJS4PJ":{"id":"evt_C285CPJDYP6ZB7AK26AYTJS4PJ","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"evt_DC0K50H01FG0QW3N49KE1AMWZG":{"id":"evt_DC0K50H01FG0QW3N49KE1AMWZG","kind":"event","bakedName":"OPERATE","curName":"OPERATE","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"evt_N4CAM152RSHCCWHWPKYC71HJQY":{"id":"evt_N4CAM152RSHCCWHWPKYC71HJQY","kind":"event","bakedName":"INSERT_TEXT","curName":"INSERT_TEXT","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"evt_PXKXHQFEWQQEBJ80QNE2Y3F3TE":{"id":"evt_PXKXHQFEWQQEBJ80QNE2Y3F3TE","kind":"event","bakedName":"EX_COMMAND","curName":"EX_COMMAND","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"evt_R3W9ABDJA8S543NZA31JS879GR":{"id":"evt_R3W9ABDJA8S543NZA31JS879GR","kind":"event","bakedName":"MOTION","curName":"MOTION","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5":{"id":"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5","kind":"event","bakedName":"EDITOR_FOCUS","curName":"EDITOR_FOCUS","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"orb_HAM3QYASQACVNA87FFPK3ZZHQF":{"id":"orb_HAM3QYASQACVNA87FFPK3ZZHQF","kind":"orbital","bakedName":"ModalEditorOrbital","curName":"ModalEditorOrbital","renames":[],"owner":"workspace"},"pag_5S5N6HGDEY6QF6EBDG0SXTK33Y":{"id":"pag_5S5N6HGDEY6QF6EBDG0SXTK33Y","kind":"page","bakedName":"ModalEditorPage","curName":"ModalEditorPage","renames":[],"owner":"workspace"},"trt_NQCX1Q3REVW7DSQAEDRSWXCS21":{"id":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21","kind":"trait","bakedName":"Modes","curName":"Modes","renames":[],"owner":"workspace"}}}}
|
|
1
|
+
{"name":"std-modal-editor","version":"0.1.0","description":"UI substrate: modal keyboard editing over any editable CodeBlock. The topology is fixed (NORMAL / INSERT / VISUAL / OPERATOR_PENDING / COMMAND) and every binding is config: mode-entry keys, motions, operators, ex-commands, the digit table that accumulates a repeat count, and the per-mode captured-key table the host's keyboard router reads. Vim ships as the default flavor; a Kakoune/Helix binding is the same topology with different config, never a fork. Emits are the mechanical vocabulary an editable CodeBlock listens to (SET_MODE / MOTION / OPERATE / INSERT_TEXT) plus one neutral EX_COMMAND for a buffered ':' line — std names no host command; a realization maps EX_COMMAND.name onto its own host vocabulary. A bare EDITOR_FOCUS listen lets every state re-announce its SET_MODE (block caret in NORMAL/VISUAL/OPERATOR_PENDING/COMMAND, bar in INSERT) when the host focuses a different editor surface.","orbitals":[{"name":"ModalEditorOrbital","id":"orb_HAM3QYASQACVNA87FFPK3ZZHQF","entity":{"name":"EditorMode","id":"ent_XGQ92348RS4CCYPWAGN26NV02X","persistence":"runtime","fields":[{"name":"id","type":"string","required":true},{"name":"editorId","type":"string","default":""},{"name":"count","type":"number","default":0},{"name":"operator","type":"string","default":""},{"name":"operatorKey","type":"string","default":""},{"name":"cmdline","type":"string","default":""},{"name":"lastOperator","type":"string","default":""},{"name":"lastMotion","type":"string","default":""},{"name":"lastCount","type":"number","default":0}]},"traits":[{"name":"Modes","id":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21","entityRebindable":true,"entityContract":{"requires":[],"provides":["cmdline","count","editorId","lastCount","lastMotion","lastOperator","operator","operatorKey"]},"effectRow":[{"kind":"emit","resource":"EX_COMMAND"},{"kind":"emit","resource":"INSERT_TEXT"},{"kind":"emit","resource":"MOTION"},{"kind":"emit","resource":"OPERATE"},{"kind":"emit","resource":"SET_MODE"},{"kind":"set","resource":"@entity.cmdline"},{"kind":"set","resource":"@entity.count"},{"kind":"set","resource":"@entity.editorId"},{"kind":"set","resource":"@entity.lastCount"},{"kind":"set","resource":"@entity.lastMotion"},{"kind":"set","resource":"@entity.lastOperator"},{"kind":"set","resource":"@entity.operator"},{"kind":"set","resource":"@entity.operatorKey"}],"category":"lifecycle","linkedEntity":"EditorMode","linkedEntityId":"ent_XGQ92348RS4CCYPWAGN26NV02X","entityRefIds":{"EditorMode":"ent_XGQ92348RS4CCYPWAGN26NV02X"},"emits":[{"event":"SET_MODE","eventId":"evt_85SENYFTYDXF6PPZQX0K74YTMW","description":"Mode + caret instruction for the editor surface (bar | block), with the keys the mode captures (from `keymap`), so an editor with `onKey` captures exactly those. Also the fact a realization reads to drive a mode indicator.","tier":"primary","scope":"external","payloadSchema":[{"name":"editorId","type":"string"},{"name":"mode","type":"string"},{"name":"caret","type":"string"},{"name":"keys","type":"[string]"}]},{"event":"MOTION","eventId":"evt_R3W9ABDJA8S543NZA31JS879GR","description":"Move the caret (or extend the selection in VISUAL) by a closed motion name, `count` times.","tier":"primary","scope":"external","payloadSchema":[{"name":"editorId","type":"string"},{"name":"motion","type":"string"},{"name":"count","type":"number"}]},{"event":"OPERATE","eventId":"evt_DC0K50H01FG0QW3N49KE1AMWZG","description":"Apply a config-declared operator (delete | yank | change | put | put-before | undo | redo | join | toggle-case | indent | dedent | replace) over the range a motion describes; `line` for doubled operators, `selection` in VISUAL, and a fixed `right` placeholder for the point operators (put | put-before | undo | redo) which the editor ignores.","tier":"primary","scope":"external","payloadSchema":[{"name":"editorId","type":"string"},{"name":"operator","type":"string"},{"name":"motion","type":"string"},{"name":"count","type":"number"}]},{"event":"INSERT_TEXT","eventId":"evt_N4CAM152RSHCCWHWPKYC71HJQY","description":"Insert literal text at the caret (e.g. the newline `o`/`O` insert before entering INSERT, or the replacement char `r` inserts).","tier":"secondary","scope":"external","payloadSchema":[{"name":"editorId","type":"string"},{"name":"text","type":"string"}]},{"event":"EX_COMMAND","eventId":"evt_PXKXHQFEWQQEBJ80QNE2Y3F3TE","description":"A buffered ':' line resolved through config.exCommands. `name` is a neutral config-declared string; a realization maps it onto its host's command vocabulary.","tier":"secondary","scope":"external","payloadSchema":[{"name":"editorId","type":"string"},{"name":"name","type":"string"}]}],"stateMachine":{"states":[{"name":"NORMAL","isInitial":true},{"name":"INSERT"},{"name":"VISUAL"},{"name":"OPERATOR_PENDING"},{"name":"COMMAND"}],"events":[{"key":"INIT","id":"evt_C285CPJDYP6ZB7AK26AYTJS4PJ","name":"Initialize"},{"key":"KEY","id":"evt_87H254S0X2GEH77J3WH8ZZWXZC","name":"Key","description":"One physical keydown, delivered by the host's keyboard router. The host decides preventDefault from config.keymap; the command line accepts only keys config.keymap captures in COMMAND.","payloadSchema":[{"name":"editorId","type":"string"},{"name":"key","type":"string"},{"name":"code","type":"string"},{"name":"ctrl","type":"boolean"},{"name":"alt","type":"boolean"},{"name":"shift","type":"boolean"},{"name":"meta","type":"boolean"},{"name":"repeat","type":"boolean"}],"listened":true},{"key":"EDITOR_FOCUS","id":"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5","name":"Editor Focus","description":"The host focused a different editor surface. Every state re-emits its own SET_MODE so the newly focused editor's mode indicator and caret style start correct.","payloadSchema":[{"name":"editorId","type":"string"}],"listened":true},{"key":"SET_MODE","id":"evt_85SENYFTYDXF6PPZQX0K74YTMW","name":"Set Mode","description":"Mode + caret instruction for the editor surface (bar | block), with the keys the mode captures (from `keymap`), so an editor with `onKey` captures exactly those. Also the fact a realization reads to drive a mode indicator.","tier":"primary","payloadSchema":[{"name":"editorId","type":"string"},{"name":"mode","type":"string"},{"name":"caret","type":"string"},{"name":"keys","type":"[string]"}]},{"key":"MOTION","id":"evt_R3W9ABDJA8S543NZA31JS879GR","name":"Motion","description":"Move the caret (or extend the selection in VISUAL) by a closed motion name, `count` times.","tier":"primary","payloadSchema":[{"name":"editorId","type":"string"},{"name":"motion","type":"string"},{"name":"count","type":"number"}]},{"key":"OPERATE","id":"evt_DC0K50H01FG0QW3N49KE1AMWZG","name":"Operate","description":"Apply a config-declared operator (delete | yank | change | put | put-before | undo | redo | join | toggle-case | indent | dedent | replace) over the range a motion describes; `line` for doubled operators, `selection` in VISUAL, and a fixed `right` placeholder for the point operators (put | put-before | undo | redo) which the editor ignores.","tier":"primary","payloadSchema":[{"name":"editorId","type":"string"},{"name":"operator","type":"string"},{"name":"motion","type":"string"},{"name":"count","type":"number"}]},{"key":"INSERT_TEXT","id":"evt_N4CAM152RSHCCWHWPKYC71HJQY","name":"Insert Text","description":"Insert literal text at the caret (e.g. the newline `o`/`O` insert before entering INSERT, or the replacement char `r` inserts).","tier":"secondary","payloadSchema":[{"name":"editorId","type":"string"},{"name":"text","type":"string"}]},{"key":"EX_COMMAND","id":"evt_PXKXHQFEWQQEBJ80QNE2Y3F3TE","name":"Ex Command","description":"A buffered ':' line resolved through config.exCommands. `name` is a neutral config-declared string; a realization maps it onto its host's command vocabulary.","tier":"secondary","payloadSchema":[{"name":"editorId","type":"string"},{"name":"name","type":"string"}]}],"transitions":[{"from":"NORMAL","to":"NORMAL","event":"INIT","eventId":"evt_C285CPJDYP6ZB7AK26AYTJS4PJ","effects":[["set","@entity.count",0]]},{"from":"NORMAL","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.insertKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.count",0],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"NORMAL","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.appendKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.count",0],["emit","MOTION",{"editorId":"@payload.editorId","motion":"right","count":1}],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"NORMAL","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.openLineKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.count",0],["emit","MOTION",{"editorId":"@payload.editorId","motion":"line-end","count":1}],["emit","MOTION",{"editorId":"@payload.editorId","motion":"right","count":1}],["emit","INSERT_TEXT",{"editorId":"@payload.editorId","text":"\n"}],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"NORMAL","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.openLineAboveKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.count",0],["emit","MOTION",{"editorId":"@payload.editorId","motion":"line-start","count":1}],["emit","INSERT_TEXT",{"editorId":"@payload.editorId","text":"\n"}],["emit","MOTION",{"editorId":"@payload.editorId","motion":"up","count":1}],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"NORMAL","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.appendLineKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.count",0],["emit","MOTION",{"editorId":"@payload.editorId","motion":"line-end","count":1}],["emit","MOTION",{"editorId":"@payload.editorId","motion":"right","count":1}],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"NORMAL","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.insertLineKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.count",0],["emit","MOTION",{"editorId":"@payload.editorId","motion":"first-nonblank","count":1}],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"NORMAL","to":"VISUAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.visualKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"VISUAL","caret":"block","keys":["object/get","@config.keymap","VISUAL",[]]}]]},{"from":"NORMAL","to":"COMMAND","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.commandKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.cmdline",""],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"COMMAND","caret":"block","keys":["object/get","@config.keymap","COMMAND",[]]}]]},{"from":"NORMAL","to":"OPERATOR_PENDING","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["object/has","@config.operators","@payload.key"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.operator",["object/get","@config.operators","@payload.key"]],["set","@entity.operatorKey","@payload.key"]]},{"from":"NORMAL","to":"OPERATOR_PENDING","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.gotoPrefixKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.operator","goto"],["set","@entity.operatorKey","@payload.key"]]},{"from":"NORMAL","to":"OPERATOR_PENDING","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","@config.replaceKey"],["not","@payload.ctrl"]],"effects":[["set","@entity.editorId","@payload.editorId"],["set","@entity.operator","replace"],["set","@entity.operatorKey","@payload.key"]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","@config.redoKey"],"@payload.ctrl"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"redo","motion":"right","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.undoKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"undo","motion":"right","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.deleteCharKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"delete","motion":"right","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.deleteCharBackKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"delete","motion":"left","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.putKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"put","motion":"right","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.putBeforeKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"put-before","motion":"right","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.toggleCaseKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"toggle-case","motion":"right","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.joinKey"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"join","motion":"line","count":["if",[">","@entity.count",1],"@entity.count",2]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","@config.repeatKey"],["!=","@entity.lastOperator",""]],"effects":[["emit","OPERATE",{"editorId":"@payload.editorId","operator":"@entity.lastOperator","motion":"@entity.lastMotion","count":"@entity.lastCount"}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["object/has","@config.digits","@payload.key"],["or",["!=","@payload.key","0"],[">","@entity.count",0]]],"effects":[["set","@entity.count",["+",["*","@entity.count",10],["object/get","@config.digits","@payload.key"]]]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["object/has","@config.motions","@payload.key"],"effects":[["set","@entity.editorId","@payload.editorId"],["emit","MOTION",{"editorId":"@payload.editorId","motion":["object/get","@config.motions","@payload.key"],"count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"NORMAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","Escape"],"effects":[["set","@entity.count",0],["set","@entity.operator",""],["set","@entity.operatorKey",""]]},{"from":"NORMAL","to":"NORMAL","event":"EDITOR_FOCUS","eventId":"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5","effects":[["set","@entity.editorId","@payload.editorId"],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"INSERT","to":"NORMAL","event":"INIT","eventId":"evt_C285CPJDYP6ZB7AK26AYTJS4PJ","effects":[["set","@entity.count",0]]},{"from":"INSERT","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","Escape"],"effects":[["emit","MOTION",{"editorId":"@payload.editorId","motion":"left","count":1}],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"INSERT","to":"INSERT","event":"EDITOR_FOCUS","eventId":"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5","effects":[["set","@entity.editorId","@payload.editorId"],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"VISUAL","to":"NORMAL","event":"INIT","eventId":"evt_C285CPJDYP6ZB7AK26AYTJS4PJ","effects":[["set","@entity.count",0]]},{"from":"VISUAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","Escape"],"effects":[["set","@entity.count",0],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"VISUAL","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["object/has","@config.operators","@payload.key"],["=",["object/get","@config.operators","@payload.key"],"change"]],"effects":[["set","@entity.count",0],["emit","OPERATE",{"editorId":"@payload.editorId","operator":["object/get","@config.operators","@payload.key"],"motion":"selection","count":1}],["set","@entity.lastOperator",["object/get","@config.operators","@payload.key"]],["set","@entity.lastMotion","selection"],["set","@entity.lastCount",1],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"VISUAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["object/has","@config.operators","@payload.key"],["!=",["object/get","@config.operators","@payload.key"],"change"]],"effects":[["set","@entity.count",0],["emit","OPERATE",{"editorId":"@payload.editorId","operator":["object/get","@config.operators","@payload.key"],"motion":"selection","count":1}],["set","@entity.lastOperator",["object/get","@config.operators","@payload.key"]],["set","@entity.lastMotion","selection"],["set","@entity.lastCount",1],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"VISUAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.toggleCaseKey"],"effects":[["set","@entity.count",0],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"toggle-case","motion":"selection","count":1}],["set","@entity.lastOperator","toggle-case"],["set","@entity.lastMotion","selection"],["set","@entity.lastCount",1],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"VISUAL","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","@config.joinKey"],"effects":[["set","@entity.count",0],["emit","OPERATE",{"editorId":"@payload.editorId","operator":"join","motion":"selection","count":1}],["set","@entity.lastOperator","join"],["set","@entity.lastMotion","selection"],["set","@entity.lastCount",1],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"VISUAL","to":"VISUAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["object/has","@config.motions","@payload.key"],"effects":[["emit","MOTION",{"editorId":"@payload.editorId","motion":["object/get","@config.motions","@payload.key"],"count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.count",0]]},{"from":"VISUAL","to":"VISUAL","event":"EDITOR_FOCUS","eventId":"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5","effects":[["set","@entity.editorId","@payload.editorId"],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"VISUAL","caret":"block","keys":["object/get","@config.keymap","VISUAL",[]]}]]},{"from":"OPERATOR_PENDING","to":"NORMAL","event":"INIT","eventId":"evt_C285CPJDYP6ZB7AK26AYTJS4PJ","effects":[["set","@entity.count",0]]},{"from":"OPERATOR_PENDING","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","@entity.operatorKey"],["=","@entity.operator","goto"]],"effects":[["emit","MOTION",{"editorId":"@payload.editorId","motion":"doc-start","count":1}],["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0]]},{"from":"OPERATOR_PENDING","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","@entity.operatorKey"],["=","@entity.operator","change"]],"effects":[["emit","OPERATE",{"editorId":"@payload.editorId","operator":"@entity.operator","motion":"line","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.lastOperator","@entity.operator"],["set","@entity.lastMotion","line"],["set","@entity.lastCount",["if",[">","@entity.count",0],"@entity.count",1]],["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"OPERATOR_PENDING","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","@entity.operatorKey"],["!=","@entity.operator","change"],["!=","@entity.operator","goto"],["!=","@entity.operator","replace"]],"effects":[["emit","OPERATE",{"editorId":"@payload.editorId","operator":"@entity.operator","motion":"line","count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.lastOperator","@entity.operator"],["set","@entity.lastMotion","line"],["set","@entity.lastCount",["if",[">","@entity.count",0],"@entity.count",1]],["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0]]},{"from":"OPERATOR_PENDING","to":"INSERT","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["object/has","@config.motions","@payload.key"],["=","@entity.operator","change"]],"effects":[["emit","OPERATE",{"editorId":"@payload.editorId","operator":"@entity.operator","motion":["object/get","@config.motions","@payload.key"],"count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.lastOperator","@entity.operator"],["set","@entity.lastMotion",["object/get","@config.motions","@payload.key"]],["set","@entity.lastCount",["if",[">","@entity.count",0],"@entity.count",1]],["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"INSERT","caret":"bar","keys":["object/get","@config.keymap","INSERT",[]]}]]},{"from":"OPERATOR_PENDING","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["object/has","@config.motions","@payload.key"],["!=","@entity.operator","change"],["!=","@entity.operator","goto"],["!=","@entity.operator","replace"]],"effects":[["emit","OPERATE",{"editorId":"@payload.editorId","operator":"@entity.operator","motion":["object/get","@config.motions","@payload.key"],"count":["if",[">","@entity.count",0],"@entity.count",1]}],["set","@entity.lastOperator","@entity.operator"],["set","@entity.lastMotion",["object/get","@config.motions","@payload.key"]],["set","@entity.lastCount",["if",[">","@entity.count",0],"@entity.count",1]],["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0]]},{"from":"OPERATOR_PENDING","to":"OPERATOR_PENDING","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["object/has","@config.digits","@payload.key"],["or",["!=","@payload.key","0"],[">","@entity.count",0]],["!=","@entity.operator","goto"],["!=","@entity.operator","replace"]],"effects":[["set","@entity.count",["+",["*","@entity.count",10],["object/get","@config.digits","@payload.key"]]]]},{"from":"OPERATOR_PENDING","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@entity.operator","replace"],["!=","@payload.key","Escape"]],"effects":[["emit","OPERATE",{"editorId":"@payload.editorId","operator":"delete","motion":"right","count":1}],["emit","INSERT_TEXT",{"editorId":"@payload.editorId","text":"@payload.key"}],["emit","MOTION",{"editorId":"@payload.editorId","motion":"left","count":1}],["set","@entity.lastOperator","delete"],["set","@entity.lastMotion","right"],["set","@entity.lastCount",1],["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0]]},{"from":"OPERATOR_PENDING","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","Escape"],"effects":[["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0]]},{"from":"OPERATOR_PENDING","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@entity.operator","goto"],["!=","@payload.key","Escape"],["!=","@payload.key","@entity.operatorKey"]],"effects":[["set","@entity.operator",""],["set","@entity.operatorKey",""],["set","@entity.count",0]]},{"from":"OPERATOR_PENDING","to":"OPERATOR_PENDING","event":"EDITOR_FOCUS","eventId":"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5","effects":[["set","@entity.editorId","@payload.editorId"],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"OPERATOR_PENDING","caret":"block","keys":["object/get","@config.keymap","OPERATOR_PENDING",[]]}]]},{"from":"COMMAND","to":"NORMAL","event":"INIT","eventId":"evt_C285CPJDYP6ZB7AK26AYTJS4PJ","effects":[["set","@entity.count",0]]},{"from":"COMMAND","to":"COMMAND","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","Backspace"],"effects":[["set","@entity.cmdline",["str/slice","@entity.cmdline",0,["-",["str/len","@entity.cmdline"],1]]]]},{"from":"COMMAND","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","Enter"],["object/has","@config.exCommands","@entity.cmdline"]],"effects":[["emit","EX_COMMAND",{"editorId":"@payload.editorId","name":["object/get","@config.exCommands","@entity.cmdline"]}],["set","@entity.cmdline",""],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"COMMAND","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["=","@payload.key","Enter"],["not",["object/has","@config.exCommands","@entity.cmdline"]]],"effects":[["set","@entity.cmdline",""],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"COMMAND","to":"NORMAL","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["=","@payload.key","Escape"],"effects":[["set","@entity.cmdline",""],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"NORMAL","caret":"block","keys":["object/get","@config.keymap","NORMAL",[]]}]]},{"from":"COMMAND","to":"COMMAND","event":"KEY","eventId":"evt_87H254S0X2GEH77J3WH8ZZWXZC","guard":["and",["array/includes",["object/get","@config.keymap","COMMAND"],"@payload.key"],["!=","@payload.key","Enter"],["!=","@payload.key","Escape"],["!=","@payload.key","Backspace"]],"effects":[["set","@entity.cmdline",["str/concat","@entity.cmdline","@payload.key"]]]},{"from":"COMMAND","to":"COMMAND","event":"EDITOR_FOCUS","eventId":"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5","effects":[["set","@entity.editorId","@payload.editorId"],["emit","SET_MODE",{"editorId":"@payload.editorId","mode":"COMMAND","caret":"block","keys":["object/get","@config.keymap","COMMAND",[]]}]]}]},"config":{"toggleCaseKey":{"type":"string","default":"~","label":"Toggle case","description":"Key that flips the case of the character under the caret, count times.","synonyms":"toggle case, tilde","tier":"presentation"},"commandKey":{"type":"string","default":":","label":"Enter COMMAND","description":"Key that switches NORMAL to COMMAND and starts buffering an ex-command line.","synonyms":"ex mode, command line, colon","tier":"presentation"},"appendLineKey":{"type":"string","default":"A","label":"Enter INSERT at end of line","description":"Key that moves to line end and past it, then switches to INSERT — vim's `A`.","synonyms":"append at end of line","tier":"presentation"},"redoKey":{"type":"string","default":"r","label":"Redo (with Ctrl)","description":"Held with Ctrl, redoes the last undone change. `motion` on OPERATE is a fixed `right` placeholder — this is a point operator and the editor ignores it. Shares its default key with replaceKey; the ctrl modifier disambiguates.","synonyms":"redo, ctrl-r","tier":"presentation"},"joinKey":{"type":"string","default":"J","label":"Join lines","description":"Key that joins the current line with the line(s) below; a count above 1 joins that many lines.","synonyms":"join lines","tier":"presentation"},"deleteCharKey":{"type":"string","default":"x","label":"Delete char under caret","description":"Key that deletes the character(s) to the right of the caret, count times.","synonyms":"delete char, x","tier":"presentation"},"operators":{"type":"Map<string,string>","default":{"d":"delete","y":"yank","c":"change",">":"indent","<":"dedent"},"label":"Operator keys","description":"Keys that arm OPERATOR_PENDING, mapped to the operator name carried on OPERATE. Pressing the same key again operates on the whole line.","synonyms":"operators, delete, yank, change, indent, dedent","tier":"domain","items":{"type":"string"}},"keymap":{"type":"Map<string,[string]>","default":{"NORMAL":["i","a","o","O","A","I","v",":","d","y","c","h","j","k","l","w","b","e","0","1","2","3","4","5","6","7","8","9","$","^","G","{","}","%",">","<","x","X","p","P","u","r","~","J",".","g","Escape"],"INSERT":["Escape"],"VISUAL":["Escape","d","y","c","h","j","k","l","w","b","e","0","$","^","G","{","}","%","~",">","<","J"],"OPERATOR_PENDING":["Escape","d","y","c","h","j","k","l","w","b","e","0","1","2","3","4","5","6","7","8","9","$","^","G","{","}","%",">","<","g"],"COMMAND":["Escape","Enter","Backspace","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","!","%"," "]},"label":"Captured keys per mode","description":"The declared key set the host's keyboard router reads synchronously to decide preventDefault, keyed by this trait's current state name. A key not listed reaches the underlying textarea untouched. Keep in sync with the other knobs.","tier":"internal","items":{"type":"array","items":{"type":"string"}}},"gotoPrefixKey":{"type":"string","default":"g","label":"Goto prefix","description":"Arms OPERATOR_PENDING with the `goto` pseudo-operator; pressed again (`gg`) moves to the document start. Any other key cancels back to NORMAL.","synonyms":"goto, gg, doc start","tier":"presentation"},"motions":{"type":"Map<string,string>","default":{"0":"line-start","h":"left","j":"down","k":"up","l":"right","w":"word-forward","b":"word-back","e":"word-end","$":"line-end","^":"first-nonblank","G":"doc-end","{":"paragraph-back","}":"paragraph-forward","%":"match-bracket"},"label":"Motion keys","description":"Keys recognized in NORMAL, VISUAL and OPERATOR_PENDING, mapped to the closed motion vocabulary the editor surface understands.","synonyms":"motions, movement, hjkl, word motion","tier":"domain","items":{"type":"string"}},"insertLineKey":{"type":"string","default":"I","label":"Enter INSERT at first non-blank","description":"Key that moves to the line's first non-blank column, then switches to INSERT — vim's `I`.","synonyms":"insert at line start","tier":"presentation"},"replaceKey":{"type":"string","default":"r","label":"Replace char","description":"Without Ctrl, arms a one-key replace: the next non-Escape key overwrites the character under the caret. Shares its default key with redoKey; the ctrl modifier disambiguates.","synonyms":"replace char","tier":"presentation"},"visualKey":{"type":"string","default":"v","label":"Enter VISUAL","description":"Key that switches NORMAL to VISUAL; motions then extend the selection and an operator acts on it.","synonyms":"visual mode, select mode","tier":"presentation"},"putKey":{"type":"string","default":"p","label":"Put after caret","description":"Key that pastes the last yank/delete after the caret. `motion` on OPERATE is a fixed `right` placeholder — this is a point operator and the editor ignores it.","synonyms":"paste, put","tier":"presentation"},"deleteCharBackKey":{"type":"string","default":"X","label":"Delete char before caret","description":"Key that deletes the character(s) to the left of the caret, count times.","synonyms":"delete char back","tier":"presentation"},"digits":{"type":"Map<string,number>","default":{"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9},"label":"Count digits","description":"Digit keys accumulated into a repeat count before a motion or operator fires (also inside OPERATOR_PENDING, e.g. `d3w`); each digit's integer value is a lookup because the language has no string-to-int operator.","tier":"internal","items":{"type":"number"}},"repeatKey":{"type":"string","default":".","label":"Repeat last change","description":"Key that re-applies the last OPERATE (operator, motion, count) recorded from OPERATOR_PENDING or VISUAL. No-op until a change has been recorded.","synonyms":"repeat, dot repeat","tier":"presentation"},"undoKey":{"type":"string","default":"u","label":"Undo","description":"Key that undoes the last change. `motion` on OPERATE is a fixed `right` placeholder — this is a point operator and the editor ignores it.","synonyms":"undo","tier":"presentation"},"openLineKey":{"type":"string","default":"o","label":"Open a line below and insert","description":"Key that moves to line end (past the last char), inserts a newline, then switches to INSERT — vim's `o`.","synonyms":"open line, new line below","tier":"presentation"},"putBeforeKey":{"type":"string","default":"P","label":"Put before caret","description":"Key that pastes the last yank/delete before the caret. `motion` on OPERATE is a fixed `right` placeholder — this is a point operator and the editor ignores it.","synonyms":"paste before, put before","tier":"presentation"},"exCommands":{"type":"Map<string,string>","default":{"w":"save","q":"close-tab","wq":"save-close-tab","q!":"close-tab-discard","x":"save-close-tab"},"label":"Ex-commands","description":"Buffered COMMAND-mode lines (typed after ':') mapped to a neutral command name carried on EX_COMMAND.","synonyms":"ex commands, colon commands","tier":"domain","items":{"type":"string"}},"insertKey":{"type":"string","default":"i","label":"Enter INSERT before the caret","description":"Key that switches NORMAL to INSERT with the caret unchanged.","synonyms":"insert mode, insert key","tier":"presentation"},"openLineAboveKey":{"type":"string","default":"O","label":"Open a line above and insert","description":"Key that moves to line start, inserts a newline, then moves up and switches to INSERT — vim's `O`.","synonyms":"open line above, new line above","tier":"presentation"},"appendKey":{"type":"string","default":"a","label":"Enter INSERT after the caret","description":"Key that nudges the caret one column right, then switches to INSERT.","synonyms":"append, append mode","tier":"presentation"}},"scope":"instance"}],"pages":[{"name":"ModalEditorPage","id":"pag_5S5N6HGDEY6QF6EBDG0SXTK33Y","path":"/modal-editor","traits":[{"ref":"Modes","refId":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"}]}]}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_XGQ92348RS4CCYPWAGN26NV02X":{"id":"ent_XGQ92348RS4CCYPWAGN26NV02X","kind":"entity","bakedName":"EditorMode","curName":"EditorMode","renames":[],"owner":"workspace"},"evt_85SENYFTYDXF6PPZQX0K74YTMW":{"id":"evt_85SENYFTYDXF6PPZQX0K74YTMW","kind":"event","bakedName":"SET_MODE","curName":"SET_MODE","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"evt_87H254S0X2GEH77J3WH8ZZWXZC":{"id":"evt_87H254S0X2GEH77J3WH8ZZWXZC","kind":"event","bakedName":"KEY","curName":"KEY","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"evt_C285CPJDYP6ZB7AK26AYTJS4PJ":{"id":"evt_C285CPJDYP6ZB7AK26AYTJS4PJ","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"evt_DC0K50H01FG0QW3N49KE1AMWZG":{"id":"evt_DC0K50H01FG0QW3N49KE1AMWZG","kind":"event","bakedName":"OPERATE","curName":"OPERATE","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"evt_N4CAM152RSHCCWHWPKYC71HJQY":{"id":"evt_N4CAM152RSHCCWHWPKYC71HJQY","kind":"event","bakedName":"INSERT_TEXT","curName":"INSERT_TEXT","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"evt_PXKXHQFEWQQEBJ80QNE2Y3F3TE":{"id":"evt_PXKXHQFEWQQEBJ80QNE2Y3F3TE","kind":"event","bakedName":"EX_COMMAND","curName":"EX_COMMAND","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"evt_R3W9ABDJA8S543NZA31JS879GR":{"id":"evt_R3W9ABDJA8S543NZA31JS879GR","kind":"event","bakedName":"MOTION","curName":"MOTION","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5":{"id":"evt_V4V4FJ418Q0MBGYEGXEVXYVNF5","kind":"event","bakedName":"EDITOR_FOCUS","curName":"EDITOR_FOCUS","renames":[],"owner":"workspace","parent":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21"},"orb_HAM3QYASQACVNA87FFPK3ZZHQF":{"id":"orb_HAM3QYASQACVNA87FFPK3ZZHQF","kind":"orbital","bakedName":"ModalEditorOrbital","curName":"ModalEditorOrbital","renames":[],"owner":"workspace"},"pag_5S5N6HGDEY6QF6EBDG0SXTK33Y":{"id":"pag_5S5N6HGDEY6QF6EBDG0SXTK33Y","kind":"page","bakedName":"ModalEditorPage","curName":"ModalEditorPage","renames":[],"owner":"workspace"},"trt_NQCX1Q3REVW7DSQAEDRSWXCS21":{"id":"trt_NQCX1Q3REVW7DSQAEDRSWXCS21","kind":"trait","bakedName":"Modes","curName":"Modes","renames":[],"owner":"workspace"}}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"std-modal","version":"1.0.0","description":"std-modal as a Function","orbitals":[{"name":"ModalRecordOrbital","id":"orb_SWYP6FM7793KMJ8FEFJH9P7X9T","entity":{"name":"ModalRecord","id":"ent_GD994ZGGF587JV1863FT3VRYVQ","persistence":"runtime","fields":[{"name":"id","type":"string"},{"name":"name","type":"string","description":"A user-facing identifier for the modal.","synonyms":"title, label, identifier"},{"name":"description","type":"string","description":"A textual explanation of the modal's content or function.","synonyms":"details, explanation, notes, summary"},{"name":"status","type":"string","default":"active","values":["active","inactive","pending"],"description":"Current operational state of the record.","synonyms":"state, condition, flag"},{"name":"seedRow","type":"relation","relation":{"entity":"ModalRecord","entityId":"ent_GD994ZGGF587JV1863FT3VRYVQ","cardinality":"one"},"intrinsic":true,"description":"The row an edit-mode OPEN pre-fills from when its payload carries no row. Stashed by SEED — hosts route the surface's loaded event here (e.g. a document look's RecordItemLoaded) so scalar-only action events ({ id }) can still open a fully seeded settings form."},{"name":"createdAt","type":"string"}]},"traits":[{"name":"ModalRecordModal","id":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2","entityRebindable":true,"entityContract":{"requires":[],"provides":["seedRow"]},"effectRow":[{"kind":"fetch","resource":"ModalRecord"},{"kind":"render-ui","resource":"@config.detailSlot","resolved":false},{"kind":"render-ui","resource":"toast"},{"kind":"set","resource":"@entity.id"},{"kind":"set","resource":"@entity.seedRow"}],"category":"interaction","linkedEntity":"ModalRecord","linkedEntityId":"ent_GD994ZGGF587JV1863FT3VRYVQ","entityRefIds":{"ModalRecord":"ent_GD994ZGGF587JV1863FT3VRYVQ"},"emits":[{"event":"SAVE","eventId":"evt_QEQK28GAJF597NVG1N2K22P9SF","description":"Indicates a successful data save operation.","synonyms":"submit, persist, confirm","tier":"domain","payloadSchema":[{"name":"data","type":"@entity","required":true}]},{"event":"CLOSE","eventId":"evt_ZYJCX4DZF3ZQHK3SSWRXMEC20F","description":"Indicates the modal window is being closed.","synonyms":"dismiss, hide, cancel","tier":"domain"},{"event":"ModalRecordLoadFailed","eventId":"evt_012M5T2B4Y5JF6B5D6SEJY95SQ","description":"Indicates a failure to load the record data.","synonyms":"error, failure, problem, unsuccessful","tier":"internal","scope":"internal","payloadSchema":[{"name":"error","type":"string"},{"name":"code","type":"string"}]},{"event":"ModalRecordLoaded","eventId":"evt_SNCXTGVBCPNPB7K9BR2AHA5KZ1","description":"Signals that the modal's data has been successfully loaded.","synonyms":"loaded, data ready, populated","tier":"internal","scope":"internal","payloadSchema":[{"name":"data","type":"[object]","properties":[{"name":"id","type":"string"},{"name":"name","type":"string"},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"seedRow","type":"ModalRecord"},{"name":"createdAt","type":"string"}],"entity":"ModalRecord"}]}],"stateMachine":{"states":[{"name":"closed","isInitial":true},{"name":"open"}],"events":[{"key":"INIT","id":"evt_DAKRTTGR6MC3AAARCJV44TM5C1","name":"Initialize"},{"key":"ModalRecordLoadFailed","id":"evt_012M5T2B4Y5JF6B5D6SEJY95SQ","name":"ModalRecord load failed","description":"Indicates a failure to load the record data.","synonyms":"error, failure, problem, unsuccessful","tier":"internal","payloadSchema":[{"name":"error","type":"string"},{"name":"code","type":"string"}],"listened":true},{"key":"SEED","id":"evt_C584DS04GF287KD6KBRVXH67XZ","name":"Seed","description":"Stash the row an edit-mode OPEN will pre-fill from. Hosts route the owning surface's loaded event here (e.g. RecordItemLoaded from a document look) so an OPEN carrying only { id } still opens a fully seeded form.","synonyms":"preload row, stash record, seed form, prefill","tier":"domain","payloadSchema":[{"name":"row","type":"object","properties":[{"name":"id","type":"string"},{"name":"name","type":"string"},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"seedRow","type":"ModalRecord"},{"name":"createdAt","type":"string"}],"entity":"ModalRecord"}],"listened":true},{"key":"OPEN","id":"evt_K7XHEZTDB66NK2H209YNXVQSJA","name":"Open","description":"A request to display the modal window.","synonyms":"show, display, present, reveal","tier":"domain","payloadSchema":[{"name":"id","type":"string"},{"name":"row","type":"object","properties":[{"name":"id","type":"string"},{"name":"name","type":"string"},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"seedRow","type":"ModalRecord"},{"name":"createdAt","type":"string"}],"entity":"ModalRecord"}],"listened":true},{"key":"CLOSE","id":"evt_ZYJCX4DZF3ZQHK3SSWRXMEC20F","name":"Close","description":"Indicates the modal window is being closed.","synonyms":"dismiss, hide, cancel","tier":"domain"},{"key":"SAVE","id":"evt_QEQK28GAJF597NVG1N2K22P9SF","name":"Save","description":"Indicates a successful data save operation.","synonyms":"submit, persist, confirm","tier":"domain","payloadSchema":[{"name":"data","type":"@entity","required":true}],"listened":true},{"key":"ModalRecordLoaded","id":"evt_SNCXTGVBCPNPB7K9BR2AHA5KZ1","name":"ModalRecord loaded","description":"Signals that the modal's data has been successfully loaded.","synonyms":"loaded, data ready, populated","tier":"internal","payloadSchema":[{"name":"data","type":"[object]","properties":[{"name":"id","type":"string"},{"name":"name","type":"string"},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"seedRow","type":"ModalRecord"},{"name":"createdAt","type":"string"}],"entity":"ModalRecord"}]}],"transitions":[{"from":"closed","to":"closed","event":"INIT","eventId":"evt_DAKRTTGR6MC3AAARCJV44TM5C1","effects":[["fetch","ModalRecord",{"emit":{"failure":"ModalRecordLoadFailed","success":"ModalRecordLoaded"}}]]},{"from":"closed","to":"closed","event":"ModalRecordLoadFailed","eventId":"evt_012M5T2B4Y5JF6B5D6SEJY95SQ","effects":[["render-ui","toast",{"type":"alert","variant":"error","message":["str/concat","Couldn't load the record — ","@payload.error"],"dismissible":true}]]},{"from":"closed","to":"closed","event":"SEED","eventId":"evt_C584DS04GF287KD6KBRVXH67XZ","effects":[["set","@entity.seedRow",["object/merge","@payload.row",{}]]]},{"from":"closed","to":"open","event":"OPEN","eventId":"evt_K7XHEZTDB66NK2H209YNXVQSJA","guard":["or",["=","@config.mode","create"],["validate/required","@payload.row"],["!=",["str/default",["object/get","@entity.seedRow","id"],""],""]],"effects":[["set","@entity.id","@payload.id"],["render-ui","@config.detailSlot",{"children":[{"children":[{"name":"@config.icon","size":"lg","type":"icon"},{"content":"@config.title","type":"typography","variant":"h3"}],"direction":"horizontal","gap":"sm","type":"stack"},{"type":"divider"},{"cancelEvent":"CLOSE","entity":["object/merge","@entity.seedRow",["object/merge","@payload.row",{}]],"fieldOverrides":"@config.fieldOverrides","fields":"@config.fields","mode":"@config.mode","submitEvent":"SAVE","type":"form-section"}],"direction":"vertical","gap":"md","type":"@config.detailPattern"}]]},{"from":"open","to":"closed","event":"INIT","eventId":"evt_DAKRTTGR6MC3AAARCJV44TM5C1","effects":[["render-ui","@config.detailSlot",null]]},{"from":"open","to":"open","event":"SEED","eventId":"evt_C584DS04GF287KD6KBRVXH67XZ","effects":[["set","@entity.seedRow",["object/merge","@payload.row",{}]]]},{"from":"open","to":"closed","event":"CLOSE","eventId":"evt_ZYJCX4DZF3ZQHK3SSWRXMEC20F","effects":[["render-ui","@config.detailSlot",null],["render-ui","toast",{"type":"alert","variant":"info","message":"Cancelled","dismissible":true}]]},{"from":"open","to":"closed","event":"SAVE","eventId":"evt_QEQK28GAJF597NVG1N2K22P9SF","effects":[["render-ui","@config.detailSlot",null]]}]},"config":{"fieldOverrides":{"type":"[ModalFieldOverride]","default":[],"label":"Any per-field display copy overrides?","description":"Per-field label/placeholder/hint overrides, keyed by field name. Types, options and required-ness stay entity-schema-driven (declare once on the entity); override only display copy the entity's @description doesn't fit.","synonyms":"field labels, custom labels, help text overrides, placeholder text","tier":"presentation","items":{"type":"object","properties":{"label":{"name":"label","type":"string","required":false},"placeholder":{"name":"placeholder","type":"string","required":false},"name":{"name":"name","type":"string","required":true},"hint":{"name":"hint","type":"string","required":false}}}},"title":{"type":"string","default":"Details","label":"What should the modal heading say?","description":"Heading displayed at the top of the modal.","synonyms":"modal title, dialog heading, panel title, form title","tier":"presentation"},"mode":{"type":"string","default":"create","label":"Is this for creating or editing?","description":"create = blank form; edit = pre-filled from the selected row.","synonyms":"form mode, create or edit, new or update, add or modify","tier":"internal","values":["create","edit"]},"fields":{"type":"[string]","default":[],"label":"Which fields appear in the form?","description":"Entity fields rendered as inputs inside the modal form.","synonyms":"form fields, inputs, editable fields, field list","tier":"domain","items":{"type":"string"}},"detailSlot":{"type":"slot","default":"modal","label":"Render slot","description":"UI slot the modal renders into","tier":"internal"},"detailPattern":{"type":"pattern","default":"stack","label":"Layout pattern","description":"Pattern used to arrange the form body","tier":"internal"},"icon":{"type":"string","default":"layout-panel-top","label":"Which icon appears in the modal header?","description":"Lucide icon name shown next to the modal title.","synonyms":"header icon, modal icon, title icon","tier":"presentation"}},"scope":"instance"}],"pages":[{"name":"ModalRecordModalPage","id":"pag_BRH3GRHN3JTHS9VGJXAQMYP31D","path":"/modalrecords/modal","traits":[{"ref":"ModalRecordModal","refId":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"}]}],"types":{"ModalFieldOverride":[{"name":"name","type":"string","required":true},{"name":"label","type":"string"},{"name":"placeholder","type":"string"},{"name":"hint","type":"string"}]}}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_GD994ZGGF587JV1863FT3VRYVQ":{"id":"ent_GD994ZGGF587JV1863FT3VRYVQ","kind":"entity","bakedName":"ModalRecord","curName":"ModalRecord","renames":[],"owner":"workspace"},"evt_012M5T2B4Y5JF6B5D6SEJY95SQ":{"id":"evt_012M5T2B4Y5JF6B5D6SEJY95SQ","kind":"event","bakedName":"ModalRecordLoadFailed","curName":"ModalRecordLoadFailed","renames":[],"owner":"workspace","parent":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"},"evt_C584DS04GF287KD6KBRVXH67XZ":{"id":"evt_C584DS04GF287KD6KBRVXH67XZ","kind":"event","bakedName":"SEED","curName":"SEED","renames":[],"owner":"workspace","parent":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"},"evt_DAKRTTGR6MC3AAARCJV44TM5C1":{"id":"evt_DAKRTTGR6MC3AAARCJV44TM5C1","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"},"evt_K7XHEZTDB66NK2H209YNXVQSJA":{"id":"evt_K7XHEZTDB66NK2H209YNXVQSJA","kind":"event","bakedName":"OPEN","curName":"OPEN","renames":[],"owner":"workspace","parent":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"},"evt_QEQK28GAJF597NVG1N2K22P9SF":{"id":"evt_QEQK28GAJF597NVG1N2K22P9SF","kind":"event","bakedName":"SAVE","curName":"SAVE","renames":[],"owner":"workspace","parent":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"},"evt_SNCXTGVBCPNPB7K9BR2AHA5KZ1":{"id":"evt_SNCXTGVBCPNPB7K9BR2AHA5KZ1","kind":"event","bakedName":"ModalRecordLoaded","curName":"ModalRecordLoaded","renames":[],"owner":"workspace","parent":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"},"evt_ZYJCX4DZF3ZQHK3SSWRXMEC20F":{"id":"evt_ZYJCX4DZF3ZQHK3SSWRXMEC20F","kind":"event","bakedName":"CLOSE","curName":"CLOSE","renames":[],"owner":"workspace","parent":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"},"orb_SWYP6FM7793KMJ8FEFJH9P7X9T":{"id":"orb_SWYP6FM7793KMJ8FEFJH9P7X9T","kind":"orbital","bakedName":"ModalRecordOrbital","curName":"ModalRecordOrbital","renames":[],"owner":"workspace"},"pag_BRH3GRHN3JTHS9VGJXAQMYP31D":{"id":"pag_BRH3GRHN3JTHS9VGJXAQMYP31D","kind":"page","bakedName":"ModalRecordModalPage","curName":"ModalRecordModalPage","renames":[],"owner":"workspace"},"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2":{"id":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2","kind":"trait","bakedName":"ModalRecordModal","curName":"ModalRecordModal","renames":[],"owner":"workspace"}}}}
|
|
1
|
+
{"name":"std-modal","version":"1.0.0","description":"std-modal as a Function","orbitals":[{"name":"ModalRecordOrbital","id":"orb_SWYP6FM7793KMJ8FEFJH9P7X9T","entity":{"name":"ModalRecord","id":"ent_GD994ZGGF587JV1863FT3VRYVQ","persistence":"runtime","fields":[{"name":"id","type":"string"},{"name":"name","type":"string","description":"A user-facing identifier for the modal.","synonyms":"title, label, identifier"},{"name":"description","type":"string","description":"A textual explanation of the modal's content or function.","synonyms":"details, explanation, notes, summary"},{"name":"status","type":"string","default":"active","values":["active","inactive","pending"],"description":"Current operational state of the record.","synonyms":"state, condition, flag"},{"name":"seedRow","type":"relation","relation":{"entity":"ModalRecord","entityId":"ent_GD994ZGGF587JV1863FT3VRYVQ","cardinality":"one"},"intrinsic":true,"description":"The row an edit-mode OPEN pre-fills from when its payload carries no row. Stashed by SEED — hosts route the surface's loaded event here (e.g. a document look's RecordItemLoaded) so scalar-only action events ({ id }) can still open a fully seeded settings form."},{"name":"createdAt","type":"string"}]},"traits":[{"name":"ModalRecordModal","id":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2","entityRebindable":true,"entityContract":{"requires":[],"provides":["seedRow"]},"effectRow":[{"kind":"fetch","resource":"ModalRecord"},{"kind":"render-ui","resource":"@config.detailSlot","resolved":false},{"kind":"render-ui","resource":"toast"},{"kind":"set","resource":"@entity.id"},{"kind":"set","resource":"@entity.seedRow"}],"category":"interaction","linkedEntity":"ModalRecord","linkedEntityId":"ent_GD994ZGGF587JV1863FT3VRYVQ","entityRefIds":{"ModalRecord":"ent_GD994ZGGF587JV1863FT3VRYVQ"},"emits":[{"event":"SAVE","eventId":"evt_QEQK28GAJF597NVG1N2K22P9SF","description":"Indicates a successful data save operation.","synonyms":"submit, persist, confirm","tier":"domain","payloadSchema":[{"name":"data","type":"@entity","required":true}]},{"event":"CLOSE","eventId":"evt_ZYJCX4DZF3ZQHK3SSWRXMEC20F","description":"Indicates the modal window is being closed.","synonyms":"dismiss, hide, cancel","tier":"domain"},{"event":"ModalRecordLoadFailed","eventId":"evt_012M5T2B4Y5JF6B5D6SEJY95SQ","description":"Indicates a failure to load the record data.","synonyms":"error, failure, problem, unsuccessful","tier":"internal","scope":"internal","payloadSchema":[{"name":"error","type":"string"},{"name":"code","type":"string"}]},{"event":"ModalRecordLoaded","eventId":"evt_SNCXTGVBCPNPB7K9BR2AHA5KZ1","description":"Signals that the modal's data has been successfully loaded.","synonyms":"loaded, data ready, populated","tier":"internal","scope":"internal","payloadSchema":[{"name":"data","type":"[object]","properties":[{"name":"id","type":"string"},{"name":"name","type":"string"},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"seedRow","type":"ModalRecord"},{"name":"createdAt","type":"string"}],"entity":"ModalRecord"}]}],"stateMachine":{"states":[{"name":"closed","isInitial":true},{"name":"open"}],"events":[{"key":"INIT","id":"evt_DAKRTTGR6MC3AAARCJV44TM5C1","name":"Initialize"},{"key":"ModalRecordLoadFailed","id":"evt_012M5T2B4Y5JF6B5D6SEJY95SQ","name":"ModalRecord load failed","description":"Indicates a failure to load the record data.","synonyms":"error, failure, problem, unsuccessful","tier":"internal","payloadSchema":[{"name":"error","type":"string"},{"name":"code","type":"string"}],"listened":true},{"key":"SEED","id":"evt_C584DS04GF287KD6KBRVXH67XZ","name":"Seed","description":"Stash the row an edit-mode OPEN will pre-fill from. Hosts route the owning surface's loaded event here (e.g. RecordItemLoaded from a document look) so an OPEN carrying only { id } still opens a fully seeded form.","synonyms":"preload row, stash record, seed form, prefill","tier":"domain","payloadSchema":[{"name":"row","type":"object","properties":[{"name":"id","type":"string"},{"name":"name","type":"string"},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"seedRow","type":"ModalRecord"},{"name":"createdAt","type":"string"}],"entity":"ModalRecord"}],"listened":true},{"key":"OPEN","id":"evt_K7XHEZTDB66NK2H209YNXVQSJA","name":"Open","description":"A request to display the modal window.","synonyms":"show, display, present, reveal","tier":"domain","payloadSchema":[{"name":"id","type":"string"},{"name":"row","type":"object","properties":[{"name":"id","type":"string"},{"name":"name","type":"string"},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"seedRow","type":"ModalRecord"},{"name":"createdAt","type":"string"}],"entity":"ModalRecord"}],"listened":true},{"key":"CLOSE","id":"evt_ZYJCX4DZF3ZQHK3SSWRXMEC20F","name":"Close","description":"Indicates the modal window is being closed.","synonyms":"dismiss, hide, cancel","tier":"domain"},{"key":"SAVE","id":"evt_QEQK28GAJF597NVG1N2K22P9SF","name":"Save","description":"Indicates a successful data save operation.","synonyms":"submit, persist, confirm","tier":"domain","payloadSchema":[{"name":"data","type":"@entity","required":true}],"listened":true},{"key":"ModalRecordLoaded","id":"evt_SNCXTGVBCPNPB7K9BR2AHA5KZ1","name":"ModalRecord loaded","description":"Signals that the modal's data has been successfully loaded.","synonyms":"loaded, data ready, populated","tier":"internal","payloadSchema":[{"name":"data","type":"[object]","properties":[{"name":"id","type":"string"},{"name":"name","type":"string"},{"name":"description","type":"string"},{"name":"status","type":"string","values":["active","inactive","pending"]},{"name":"seedRow","type":"ModalRecord"},{"name":"createdAt","type":"string"}],"entity":"ModalRecord"}]}],"transitions":[{"from":"closed","to":"closed","event":"INIT","eventId":"evt_DAKRTTGR6MC3AAARCJV44TM5C1","effects":[["fetch","ModalRecord",{"emit":{"failure":"ModalRecordLoadFailed","success":"ModalRecordLoaded"}}]]},{"from":"closed","to":"closed","event":"ModalRecordLoadFailed","eventId":"evt_012M5T2B4Y5JF6B5D6SEJY95SQ","effects":[["render-ui","toast",{"type":"alert","variant":"error","message":["str/concat","Couldn't load the record — ","@payload.error"],"dismissible":true}]]},{"from":"closed","to":"closed","event":"SEED","eventId":"evt_C584DS04GF287KD6KBRVXH67XZ","effects":[["set","@entity.seedRow",["object/merge","@payload.row",{}]]]},{"from":"closed","to":"open","event":"OPEN","eventId":"evt_K7XHEZTDB66NK2H209YNXVQSJA","guard":["or",["=","@config.mode","create"],["validate/required","@payload.row"],["!=",["str/default",["object/get","@entity.seedRow","id"],""],""]],"effects":[["set","@entity.id","@payload.id"],["render-ui","@config.detailSlot",{"children":[{"children":[{"name":"@config.icon","size":"lg","type":"icon"},{"content":"@config.title","type":"typography","variant":"h3"}],"direction":"horizontal","gap":"sm","type":"stack"},{"type":"divider"},{"cancelEvent":"CLOSE","entity":["object/merge","@entity.seedRow",["object/merge","@payload.row",{}]],"fieldOverrides":"@config.fieldOverrides","fields":"@config.fields","mode":"@config.mode","submitEvent":"SAVE","type":"form-section"}],"direction":"vertical","gap":"md","type":"@config.detailPattern"}]]},{"from":"open","to":"closed","event":"INIT","eventId":"evt_DAKRTTGR6MC3AAARCJV44TM5C1","effects":[["render-ui","@config.detailSlot",null]]},{"from":"open","to":"open","event":"SEED","eventId":"evt_C584DS04GF287KD6KBRVXH67XZ","effects":[["set","@entity.seedRow",["object/merge","@payload.row",{}]]]},{"from":"open","to":"closed","event":"CLOSE","eventId":"evt_ZYJCX4DZF3ZQHK3SSWRXMEC20F","effects":[["render-ui","@config.detailSlot",null],["render-ui","toast",{"type":"alert","variant":"info","message":"Cancelled","dismissible":true}]]},{"from":"open","to":"closed","event":"SAVE","eventId":"evt_QEQK28GAJF597NVG1N2K22P9SF","effects":[["render-ui","@config.detailSlot",null]]}]},"config":{"title":{"type":"string","default":"Details","label":"What should the modal heading say?","description":"Heading displayed at the top of the modal.","synonyms":"modal title, dialog heading, panel title, form title","tier":"presentation"},"detailPattern":{"type":"pattern","default":"stack","label":"Layout pattern","description":"Pattern used to arrange the form body","tier":"internal"},"icon":{"type":"string","default":"layout-panel-top","label":"Which icon appears in the modal header?","description":"Lucide icon name shown next to the modal title.","synonyms":"header icon, modal icon, title icon","tier":"presentation"},"detailSlot":{"type":"slot","default":"modal","label":"Render slot","description":"UI slot the modal renders into","tier":"internal"},"fields":{"type":"[string]","default":[],"label":"Which fields appear in the form?","description":"Entity fields rendered as inputs inside the modal form.","synonyms":"form fields, inputs, editable fields, field list","tier":"domain","items":{"type":"string"}},"fieldOverrides":{"type":"[ModalFieldOverride]","default":[],"label":"Any per-field display copy overrides?","description":"Per-field label/placeholder/hint overrides, keyed by field name. Types, options and required-ness stay entity-schema-driven (declare once on the entity); override only display copy the entity's @description doesn't fit.","synonyms":"field labels, custom labels, help text overrides, placeholder text","tier":"presentation","items":{"type":"object","properties":{"hint":{"name":"hint","type":"string","required":false},"label":{"name":"label","type":"string","required":false},"name":{"name":"name","type":"string","required":true},"placeholder":{"name":"placeholder","type":"string","required":false}}}},"mode":{"type":"string","default":"create","label":"Is this for creating or editing?","description":"create = blank form; edit = pre-filled from the selected row.","synonyms":"form mode, create or edit, new or update, add or modify","tier":"internal","values":["create","edit"]}},"scope":"instance"}],"pages":[{"name":"ModalRecordModalPage","id":"pag_BRH3GRHN3JTHS9VGJXAQMYP31D","path":"/modalrecords/modal","traits":[{"ref":"ModalRecordModal","refId":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"}]}],"types":{"ModalFieldOverride":[{"name":"name","type":"string","required":true},{"name":"label","type":"string"},{"name":"placeholder","type":"string"},{"name":"hint","type":"string"}]}}],"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_GD994ZGGF587JV1863FT3VRYVQ":{"id":"ent_GD994ZGGF587JV1863FT3VRYVQ","kind":"entity","bakedName":"ModalRecord","curName":"ModalRecord","renames":[],"owner":"workspace"},"evt_012M5T2B4Y5JF6B5D6SEJY95SQ":{"id":"evt_012M5T2B4Y5JF6B5D6SEJY95SQ","kind":"event","bakedName":"ModalRecordLoadFailed","curName":"ModalRecordLoadFailed","renames":[],"owner":"workspace","parent":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"},"evt_C584DS04GF287KD6KBRVXH67XZ":{"id":"evt_C584DS04GF287KD6KBRVXH67XZ","kind":"event","bakedName":"SEED","curName":"SEED","renames":[],"owner":"workspace","parent":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"},"evt_DAKRTTGR6MC3AAARCJV44TM5C1":{"id":"evt_DAKRTTGR6MC3AAARCJV44TM5C1","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"},"evt_K7XHEZTDB66NK2H209YNXVQSJA":{"id":"evt_K7XHEZTDB66NK2H209YNXVQSJA","kind":"event","bakedName":"OPEN","curName":"OPEN","renames":[],"owner":"workspace","parent":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"},"evt_QEQK28GAJF597NVG1N2K22P9SF":{"id":"evt_QEQK28GAJF597NVG1N2K22P9SF","kind":"event","bakedName":"SAVE","curName":"SAVE","renames":[],"owner":"workspace","parent":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"},"evt_SNCXTGVBCPNPB7K9BR2AHA5KZ1":{"id":"evt_SNCXTGVBCPNPB7K9BR2AHA5KZ1","kind":"event","bakedName":"ModalRecordLoaded","curName":"ModalRecordLoaded","renames":[],"owner":"workspace","parent":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"},"evt_ZYJCX4DZF3ZQHK3SSWRXMEC20F":{"id":"evt_ZYJCX4DZF3ZQHK3SSWRXMEC20F","kind":"event","bakedName":"CLOSE","curName":"CLOSE","renames":[],"owner":"workspace","parent":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2"},"orb_SWYP6FM7793KMJ8FEFJH9P7X9T":{"id":"orb_SWYP6FM7793KMJ8FEFJH9P7X9T","kind":"orbital","bakedName":"ModalRecordOrbital","curName":"ModalRecordOrbital","renames":[],"owner":"workspace"},"pag_BRH3GRHN3JTHS9VGJXAQMYP31D":{"id":"pag_BRH3GRHN3JTHS9VGJXAQMYP31D","kind":"page","bakedName":"ModalRecordModalPage","curName":"ModalRecordModalPage","renames":[],"owner":"workspace"},"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2":{"id":"trt_4P0ZPV9K5BSJNPMMEYSNVMJRT2","kind":"trait","bakedName":"ModalRecordModal","curName":"ModalRecordModal","renames":[],"owner":"workspace"}}}}
|