@almadar/std 16.204.0 → 16.206.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/ml/organisms/std-escalating-decision.lolo +3 -3
- package/behaviors/lolo/ui/core/atoms/std-modal-editor.lolo +265 -13
- package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +5 -5
- package/behaviors/lolo/ui/core/molecules/ui-floating-toolbar.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +2 -1
- package/behaviors/lolo/ui/game/atoms/std-area-fill.lolo +8 -3
- package/behaviors/lolo/ui/game/atoms/std-choice-gate.lolo +7 -3
- package/behaviors/lolo/ui/game/atoms/std-coef-pad.lolo +8 -3
- package/behaviors/lolo/ui/game/atoms/std-gate-lock.lolo +8 -3
- package/behaviors/lolo/ui/game/atoms/std-loop-lock.lolo +7 -3
- package/behaviors/lolo/ui/game/atoms/std-pad-lock.lolo +10 -3
- package/behaviors/lolo/ui/game/atoms/std-patrol-hazard.lolo +9 -3
- package/behaviors/lolo/ui/game/atoms/std-pickup.lolo +29 -5
- package/behaviors/lolo/ui/game/atoms/std-platformer-body.lolo +36 -14
- package/behaviors/lolo/ui/game/atoms/std-velocity-gate.lolo +7 -3
- package/behaviors/lolo/ui/game/organisms/std-platformer-puzzle.lolo +302 -0
- package/behaviors/lolo/ui/learning/atoms/std-learn-slope-probe.lolo +12 -6
- package/behaviors/registry/agent/atoms/std-agent-completion.orb +27 -0
- package/behaviors/registry/agent/atoms/std-agent-context.orb +47 -0
- package/behaviors/registry/agent/atoms/std-agent-fix-loop.orb +57 -1
- package/behaviors/registry/agent/atoms/std-agent-memory.orb +88 -1
- package/behaviors/registry/agent/atoms/std-agent-planner.orb +58 -1
- package/behaviors/registry/agent/atoms/std-agent-session.orb +95 -1
- package/behaviors/registry/agent/atoms/std-agent-tool-call.orb +66 -1
- package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +74 -1
- package/behaviors/registry/agent/atoms/std-agent-trace.orb +38 -0
- package/behaviors/registry/agent/organisms/std-agent-builder.orb +70 -1
- package/behaviors/registry/agent/organisms/std-agent-rabit.orb +239 -2
- package/behaviors/registry/infra/atoms/std-anim-tick.orb +24 -0
- package/behaviors/registry/infra/atoms/std-approval-gate.orb +73 -20
- package/behaviors/registry/infra/atoms/std-audit-capture.orb +38 -0
- package/behaviors/registry/infra/atoms/std-cache-aside.orb +45 -62
- package/behaviors/registry/infra/atoms/std-calendar-sync.orb +113 -1
- package/behaviors/registry/infra/atoms/std-cascade-on-delete.orb +32 -0
- package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +38 -32
- package/behaviors/registry/infra/atoms/std-cooldown.orb +28 -0
- package/behaviors/registry/infra/atoms/std-cross-reference.orb +55 -1
- package/behaviors/registry/infra/atoms/std-data-erasure.orb +52 -16
- package/behaviors/registry/infra/atoms/std-game-clock.orb +20 -0
- package/behaviors/registry/infra/atoms/std-lifecycle.orb +34 -0
- package/behaviors/registry/infra/atoms/std-migration-job.orb +165 -1
- package/behaviors/registry/infra/atoms/std-mod-queue.orb +23 -16
- package/behaviors/registry/infra/atoms/std-notification-center.orb +119 -1
- package/behaviors/registry/infra/atoms/std-notify-on-event.orb +162 -1
- package/behaviors/registry/infra/atoms/std-rate-limiter.orb +32 -28
- package/behaviors/registry/infra/atoms/std-reminder-scheduler.orb +30 -0
- package/behaviors/registry/infra/atoms/std-row-access-control.orb +58 -1
- package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +34 -1
- package/behaviors/registry/infra/organisms/std-status-lifecycle-control.orb +33 -2
- package/behaviors/registry/ml/atoms/std-data-collector.orb +18 -0
- package/behaviors/registry/ml/atoms/std-graph-builder.orb +41 -1
- package/behaviors/registry/ml/atoms/std-ml-classify.orb +67 -1
- package/behaviors/registry/ml/atoms/std-ml-exact-check.orb +18 -0
- package/behaviors/registry/ml/atoms/std-ml-infer.orb +125 -1
- package/behaviors/registry/ml/atoms/std-ml-label-capture.orb +34 -0
- package/behaviors/registry/ml/atoms/std-ml-lookup.orb +18 -0
- package/behaviors/registry/ml/atoms/std-ml-posterior.orb +42 -0
- package/behaviors/registry/ml/atoms/std-ml-similarity.orb +82 -1
- package/behaviors/registry/ml/atoms/std-tokenizer.orb +30 -0
- package/behaviors/registry/ml/atoms/std-weight-validator.orb +60 -1
- package/behaviors/registry/ml/organisms/std-escalating-decision.orb +122 -13
- package/behaviors/registry/ml/organisms/std-knowledge-tracing.orb +51 -4
- package/behaviors/registry/ui/avl/atoms/ui-behavior-view.orb +6 -0
- package/behaviors/registry/ui/avl/atoms/ui-module-card.orb +6 -0
- package/behaviors/registry/ui/core/atoms/std-app-layout.orb +10 -0
- package/behaviors/registry/ui/core/atoms/std-app-search.orb +110 -1
- package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +119 -2
- package/behaviors/registry/ui/core/atoms/std-board.orb +180 -1
- package/behaviors/registry/ui/core/atoms/std-browse.orb +143 -6
- package/behaviors/registry/ui/core/atoms/std-calendar.orb +59 -1
- package/behaviors/registry/ui/core/atoms/std-confirmation.orb +18 -0
- package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +13 -2
- package/behaviors/registry/ui/core/atoms/std-date-range.orb +14 -0
- package/behaviors/registry/ui/core/atoms/std-detail-layout.orb +13 -0
- package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +39 -4
- package/behaviors/registry/ui/core/atoms/std-esign-request.orb +20 -6
- package/behaviors/registry/ui/core/atoms/std-event-log.orb +146 -1
- package/behaviors/registry/ui/core/atoms/std-export.orb +35 -4
- package/behaviors/registry/ui/core/atoms/std-file-store.orb +26 -0
- package/behaviors/registry/ui/core/atoms/std-filter.orb +57 -1
- package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +66 -1
- package/behaviors/registry/ui/core/atoms/std-gallery.orb +44 -18
- package/behaviors/registry/ui/core/atoms/std-geosearch.orb +22 -0
- package/behaviors/registry/ui/core/atoms/std-graphs.orb +71 -1
- package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +67 -1
- package/behaviors/registry/ui/core/atoms/std-import.orb +69 -4
- package/behaviors/registry/ui/core/atoms/std-list.orb +36 -6
- package/behaviors/registry/ui/core/atoms/std-modal-editor.orb +1865 -169
- package/behaviors/registry/ui/core/atoms/std-modal.orb +44 -1
- package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +201 -1
- package/behaviors/registry/ui/core/atoms/std-notification-panel.orb +24 -1
- package/behaviors/registry/ui/core/atoms/std-pagination.orb +35 -1
- package/behaviors/registry/ui/core/atoms/std-rating-review.orb +159 -1
- package/behaviors/registry/ui/core/atoms/std-record-detail.orb +144 -1
- package/behaviors/registry/ui/core/atoms/std-recurrence.orb +103 -1
- package/behaviors/registry/ui/core/atoms/std-related.orb +14 -0
- package/behaviors/registry/ui/core/atoms/std-saved-search.orb +30 -0
- package/behaviors/registry/ui/core/atoms/std-scatter.orb +51 -1
- package/behaviors/registry/ui/core/atoms/std-search.orb +10 -0
- package/behaviors/registry/ui/core/atoms/std-selection.orb +28 -1
- package/behaviors/registry/ui/core/atoms/std-signature-capture.orb +18 -0
- package/behaviors/registry/ui/core/atoms/std-stats.orb +153 -1
- package/behaviors/registry/ui/core/atoms/std-step-flow.orb +154 -1
- package/behaviors/registry/ui/core/atoms/std-tabs.orb +41 -1
- package/behaviors/registry/ui/core/atoms/std-tag-strip.orb +34 -0
- package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +48 -1
- package/behaviors/registry/ui/core/atoms/std-thread.orb +30 -0
- package/behaviors/registry/ui/core/atoms/std-tree.orb +36 -1
- package/behaviors/registry/ui/core/atoms/std-version-history.orb +54 -0
- package/behaviors/registry/ui/core/atoms/std-vote.orb +22 -0
- package/behaviors/registry/ui/core/atoms/std-wizard.orb +130 -1
- package/behaviors/registry/ui/core/atoms/ui-aside.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-atlas-image.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-atlas-panel.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-avatar.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-badge.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-box.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-button.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-card.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-center.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-checkbox.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-conditional-wrapper.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-confetti-effect.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-day-cell.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-dialog.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-divider.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-filter-pill.orb +10 -0
- package/behaviors/registry/ui/core/atoms/ui-flip-container.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-game-icon.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-hstack.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-icon.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-infinite-scroll-sentinel.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-input.orb +10 -0
- package/behaviors/registry/ui/core/atoms/ui-label.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-law-reference-tooltip.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-overlay.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-presence.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-progress-bar.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-radio.orb +10 -0
- package/behaviors/registry/ui/core/atoms/ui-range-slider.orb +10 -0
- package/behaviors/registry/ui/core/atoms/ui-section-header.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-select.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-spacer.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-sparkline.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-spinner.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-stack.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-status-dot.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-branch.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-connection.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-flow.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-grid.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-lobe.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-mesh.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-morph.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-node.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-pulse.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-ring.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-shield.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-svg-stack.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-switch.orb +10 -0
- package/behaviors/registry/ui/core/atoms/ui-text-highlight.orb +10 -0
- package/behaviors/registry/ui/core/atoms/ui-textarea.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-theme-toggle.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +10 -0
- package/behaviors/registry/ui/core/atoms/ui-trait-frame.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-trend-indicator.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-typewriter-text.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-typography.orb +6 -0
- package/behaviors/registry/ui/core/atoms/ui-vstack.orb +6 -0
- package/behaviors/registry/ui/core/molecules/std-stat-rows.orb +24 -1
- package/behaviors/registry/ui/core/molecules/ui-accordion.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-activation-block.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-alert.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-bloom-quiz-block.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-branching-logic-builder.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-calendar-grid.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-carousel.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-chart-legend.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-chart.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-code-block.orb +38 -4
- package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-connection-block.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-container.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-content-renderer.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-data-list.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +14 -0
- package/behaviors/registry/ui/core/molecules/ui-date-range-selector.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-doc-breadcrumb.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-doc-pagination.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-doc-search.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-doc-sidebar.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-doc-toc.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-document-details.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +14 -0
- package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-drawer.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-edge-decoration.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-empty-state.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-error-boundary.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-error-state.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-feature-grid.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-file-tree.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +14 -0
- package/behaviors/registry/ui/core/molecules/ui-flex.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-flip-card.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +10 -1
- package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-form-field.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-form-layout.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-form-section-header.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-fx-overlay.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-gradient-divider.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-graph-view.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-grid.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-header.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-import-progress.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-input-group.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-jazari-state-machine.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-lightbox.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-line-chart.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-loading-state.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-map-view.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-markdown-content.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-matrix-question.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-menu.orb +21 -0
- package/behaviors/registry/ui/core/molecules/ui-meter.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-modal.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-navigation.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-notification.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-number-stepper.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-option-constraint-group.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-orbital-visualization.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-page-header.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-page-transition.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-pagination.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-popover.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-positioned-canvas.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-progress-dots.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-pull-to-refresh.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-qr-scanner.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-quiz-block.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-reflection-block.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-relation-select.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-repeatable-form-section.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-reply-tree.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-rich-text-editor.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-scaled-diagram.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-search-input.orb +14 -0
- package/behaviors/registry/ui/core/molecules/ui-section.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-side-panel.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-sidebar.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-signature-pad.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-simple-grid.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-skeleton.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-social-proof.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-sortable-list.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-split.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-star-rating.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-stat-display.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-table-view.orb +10 -0
- package/behaviors/registry/ui/core/molecules/ui-tabs.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-tag-input.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-tooltip.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-upload-drop-zone.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-version-diff.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-violation-alert.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-vote-stack.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-wizard-container.orb +6 -0
- package/behaviors/registry/ui/core/molecules/ui-wizard-navigation.orb +14 -0
- package/behaviors/registry/ui/core/molecules/ui-wizard-progress.orb +6 -0
- package/behaviors/registry/ui/core/organisms/ui-chat-bar.orb +6 -0
- package/behaviors/registry/ui/core/organisms/ui-code-runner-panel.orb +6 -0
- package/behaviors/registry/ui/core/organisms/ui-dashboard-grid.orb +6 -0
- package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +10 -0
- package/behaviors/registry/ui/core/organisms/ui-dock-layout.orb +6 -0
- package/behaviors/registry/ui/core/organisms/ui-drawer-slot.orb +10 -0
- package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +10 -0
- package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +10 -0
- package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +10 -0
- package/behaviors/registry/ui/core/organisms/ui-form-section.orb +10 -0
- package/behaviors/registry/ui/core/organisms/ui-form.orb +10 -0
- package/behaviors/registry/ui/core/organisms/ui-master-detail-layout.orb +6 -0
- package/behaviors/registry/ui/core/organisms/ui-master-detail.orb +10 -0
- package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +10 -0
- package/behaviors/registry/ui/core/organisms/ui-modal-slot.orb +10 -0
- package/behaviors/registry/ui/core/organisms/ui-runtime-debugger.orb +6 -0
- package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +6 -0
- package/behaviors/registry/ui/core/organisms/ui-split-pane.orb +10 -0
- package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +10 -0
- package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +6 -0
- package/behaviors/registry/ui/core/organisms/ui-subagent-trace-panel.orb +10 -0
- package/behaviors/registry/ui/core/organisms/ui-tabbed-container.orb +6 -0
- package/behaviors/registry/ui/core/organisms/ui-timeline.orb +10 -0
- package/behaviors/registry/ui/core/organisms/ui-toast-slot.orb +10 -0
- package/behaviors/registry/ui/core/templates/ui-counter-template.orb +10 -0
- package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +6 -0
- package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +10 -0
- package/behaviors/registry/ui/game/atoms/std-arcade-flow.orb +10 -0
- package/behaviors/registry/ui/game/atoms/std-arcade-play.orb +89 -1
- package/behaviors/registry/ui/game/atoms/std-area-fill.orb +219 -4
- package/behaviors/registry/ui/game/atoms/std-audio-cue.orb +30 -0
- package/behaviors/registry/ui/game/atoms/std-camera-rig.orb +63 -0
- package/behaviors/registry/ui/game/atoms/std-chase-ai.orb +133 -1
- package/behaviors/registry/ui/game/atoms/std-choice-gate.orb +122 -3
- package/behaviors/registry/ui/game/atoms/std-coef-pad.orb +159 -3
- package/behaviors/registry/ui/game/atoms/std-curve-fog.orb +26 -1
- package/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +150 -1
- package/behaviors/registry/ui/game/atoms/std-fx-narrative.orb +18 -0
- package/behaviors/registry/ui/game/atoms/std-fx-particles.orb +15 -0
- package/behaviors/registry/ui/game/atoms/std-fx-trail.orb +40 -1
- package/behaviors/registry/ui/game/atoms/std-gate-lock.orb +120 -3
- package/behaviors/registry/ui/game/atoms/std-gather.orb +180 -1
- package/behaviors/registry/ui/game/atoms/std-gold.orb +10 -0
- package/behaviors/registry/ui/game/atoms/std-grid-tactics.orb +130 -1
- package/behaviors/registry/ui/game/atoms/std-hero-nav.orb +92 -1
- package/behaviors/registry/ui/game/atoms/std-lives.orb +38 -0
- package/behaviors/registry/ui/game/atoms/std-loop-lock.orb +117 -3
- package/behaviors/registry/ui/game/atoms/std-market-flow.orb +10 -0
- package/behaviors/registry/ui/game/atoms/std-mesh-asset-art.orb +10 -0
- package/behaviors/registry/ui/game/atoms/std-motion-body.orb +68 -1
- package/behaviors/registry/ui/game/atoms/std-objective-flow.orb +10 -0
- package/behaviors/registry/ui/game/atoms/std-objective-reach.orb +184 -1
- package/behaviors/registry/ui/game/atoms/std-pad-lock.orb +118 -3
- package/behaviors/registry/ui/game/atoms/std-patience.orb +215 -1
- package/behaviors/registry/ui/game/atoms/std-patrol-hazard.orb +161 -3
- package/behaviors/registry/ui/game/atoms/std-pickup.orb +387 -24
- package/behaviors/registry/ui/game/atoms/std-platformer-body.orb +505 -17
- package/behaviors/registry/ui/game/atoms/std-production.orb +14 -0
- package/behaviors/registry/ui/game/atoms/std-round-flow.orb +10 -0
- package/behaviors/registry/ui/game/atoms/std-score.orb +10 -0
- package/behaviors/registry/ui/game/atoms/std-survival-flow.orb +10 -0
- package/behaviors/registry/ui/game/atoms/std-svg-asset-art.orb +10 -0
- package/behaviors/registry/ui/game/atoms/std-tutorial-autodemo.orb +117 -1
- package/behaviors/registry/ui/game/atoms/std-tutorial-overlay.orb +36 -0
- package/behaviors/registry/ui/game/atoms/std-velocity-gate.orb +140 -3
- package/behaviors/registry/ui/game/atoms/std-xp.orb +22 -0
- package/behaviors/registry/ui/game/atoms/std-zone-card.orb +70 -1
- package/behaviors/registry/ui/game/atoms/ui-action-palette.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-action-tile.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-canvas-2d.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-canvas.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-control-button.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-control-grid.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-draw-fx-layer.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-draw-group.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-draw-mesh.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-draw-shape-layer.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-draw-shape.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-draw-sprite-layer.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-draw-text-layer.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-draw-text.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-game-audio-cue.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-game-audio-toggle.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-game-hud.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-health-bar.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-score-display.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-sequence-bar.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-stat-badge.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-state-graph.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-state-json-view.orb +6 -0
- package/behaviors/registry/ui/game/atoms/ui-timer-display.orb +84 -1
- package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +10 -0
- package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +567 -8
- package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +545 -6
- package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +804 -10
- package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +597 -8
- package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +565 -8
- package/behaviors/registry/ui/game/organisms/std-platformer-board-2d.orb +561 -6
- package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +2075 -0
- package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +551 -8
- package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +667 -12
- package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +707 -8
- package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +506 -6
- package/behaviors/registry/ui/game/templates/ui-game-shell.orb +115 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-arrangement.orb +201 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-classify.orb +325 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-compare.orb +108 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-coupled-sim.orb +147 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-derivation.orb +190 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-diagram.orb +111 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-doser.orb +164 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-estimate.orb +105 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-fx-cues.orb +169 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-goal-seek.orb +128 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-grid-sim.orb +123 -2
- package/behaviors/registry/ui/learning/atoms/std-learn-hotspot.orb +178 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-live-sim.orb +105 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-measure.orb +145 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-param-explorer.orb +100 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-perturb.orb +133 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-predict.orb +247 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-sample-accumulator.orb +180 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-sandbox.orb +135 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-scatter-fit.orb +206 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-scenario.orb +129 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-sim-3d.orb +53 -0
- package/behaviors/registry/ui/learning/atoms/std-learn-slope-probe.orb +168 -8
- package/behaviors/registry/ui/learning/atoms/std-learn-speed-drill.orb +135 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +254 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-tour-3d.orb +315 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-trace-player.orb +131 -1
- package/behaviors/registry/ui/learning/atoms/std-learn-transport.orb +57 -0
- package/behaviors/registry/ui/learning/atoms/std-learn-tree.orb +214 -1
- package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +6 -0
- package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +6 -0
- package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +6 -0
- package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +6 -0
- package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +6 -0
- package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +6 -0
- package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/std-marketing-article.orb +1 -2
- package/behaviors/registry/ui/marketing/atoms/std-marketing-cta.orb +14 -0
- package/behaviors/registry/ui/marketing/atoms/std-marketing-features.orb +37 -1
- package/behaviors/registry/ui/marketing/atoms/std-marketing-footer.orb +52 -2
- package/behaviors/registry/ui/marketing/atoms/std-marketing-hero.orb +14 -0
- package/behaviors/registry/ui/marketing/atoms/std-marketing-nav.orb +25 -1
- package/behaviors/registry/ui/marketing/atoms/std-marketing-pricing.orb +59 -1
- package/behaviors/registry/ui/marketing/atoms/std-marketing-showcase.orb +62 -1
- package/behaviors/registry/ui/marketing/atoms/std-marketing-split.orb +1 -2
- package/behaviors/registry/ui/marketing/atoms/std-marketing-stats.orb +15 -2
- package/behaviors/registry/ui/marketing/atoms/std-marketing-steps.orb +28 -2
- package/behaviors/registry/ui/marketing/atoms/std-marketing-team.orb +33 -2
- package/behaviors/registry/ui/marketing/atoms/ui-animated-counter.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-animated-graphic.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-animated-reveal.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-article-section.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-case-study-card.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-community-links.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-content-section.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-cta-banner.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-feature-card.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-geometric-pattern.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-hero-section.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-install-box.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-marketing-footer.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-marketing-stat-card.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-pattern-tile.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-pricing-card.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-pricing-grid.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-pull-quote.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-service-catalog.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-showcase-card.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-split-section.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-stats-grid.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-step-flow.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-tag-cloud.orb +6 -0
- package/behaviors/registry/ui/marketing/atoms/ui-team-card.orb +6 -0
- package/behaviors/registry/ui/marketing/organisms/ui-book-chapter-view.orb +10 -0
- package/behaviors/registry/ui/marketing/organisms/ui-book-cover-page.orb +6 -0
- package/behaviors/registry/ui/marketing/organisms/ui-book-nav-bar.orb +6 -0
- package/behaviors/registry/ui/marketing/organisms/ui-book-table-of-contents.orb +10 -0
- package/behaviors/registry/ui/marketing/organisms/ui-book-viewer.orb +10 -0
- package/behaviors/registry/ui/marketing/organisms/ui-case-study-organism.orb +10 -0
- package/behaviors/registry/ui/marketing/organisms/ui-feature-grid-organism.orb +10 -0
- package/behaviors/registry/ui/marketing/organisms/ui-hero-organism.orb +10 -0
- package/behaviors/registry/ui/marketing/organisms/ui-pricing-organism.orb +10 -0
- package/behaviors/registry/ui/marketing/organisms/ui-showcase-organism.orb +10 -0
- package/behaviors/registry/ui/marketing/organisms/ui-stats-organism.orb +10 -0
- package/behaviors/registry/ui/marketing/organisms/ui-step-flow-organism.orb +10 -0
- package/behaviors/registry/ui/marketing/organisms/ui-team-organism.orb +10 -0
- package/behaviors/registry/ui/marketing/templates/ui-about-page-template.orb +10 -0
- package/behaviors/registry/ui/marketing/templates/ui-auth-layout.orb +6 -0
- package/behaviors/registry/ui/marketing/templates/ui-feature-detail-page-template.orb +10 -0
- package/behaviors/registry/ui/marketing/templates/ui-landing-page-template.orb +10 -0
- package/behaviors/registry/ui/marketing/templates/ui-pricing-page-template.orb +10 -0
- package/dist/behaviors/exports-reader.js +7542 -2555
- package/dist/behaviors/functions/index.d.ts +161 -106
- package/dist/behaviors/functions/index.js +7539 -2553
- package/dist/behaviors/index.d.ts +1 -1
- package/dist/behaviors/index.js +7543 -2556
- package/dist/behaviors/query.d.ts +6 -0
- package/dist/behaviors/query.js +7542 -2555
- package/dist/behaviors-embeddings.hash.json +3 -3
- package/dist/behaviors-embeddings.json +29 -29
- package/dist/behaviors-registry.json +11423 -827
- package/dist/index.d.ts +1 -1
- package/dist/index.js +7543 -2556
- package/dist/knob-embeddings.hash.json +3 -3
- package/dist/knob-embeddings.json +1 -1
- package/dist/registry/factory-signatures.json +1 -1
- package/package.json +2 -2
- package/behaviors/lolo/ui/game/atoms/std-game-design-sheet.lolo +0 -69
- package/behaviors/registry/ui/game/atoms/std-game-design-sheet.orb +0 -527
|
@@ -264,9 +264,9 @@ orbital EscalatingDecisionOrbital {
|
|
|
264
264
|
listens {
|
|
265
265
|
FROM_EXACT { key : scalar! }
|
|
266
266
|
FROM_LOOKUP { entry : scalar! }
|
|
267
|
-
FROM_SIMILARITY { index : int! score :
|
|
268
|
-
FROM_INFER { output : [float]! confidence :
|
|
269
|
-
FROM_CLASSIFY { category : string! confidence :
|
|
267
|
+
FROM_SIMILARITY { index : int! score : number! }
|
|
268
|
+
FROM_INFER { output : [float]! confidence : number! }
|
|
269
|
+
FROM_CLASSIFY { category : string! confidence : number! reasoning : string! }
|
|
270
270
|
FROM_CLASSIFY_FAILURE { error : string! }
|
|
271
271
|
|
|
272
272
|
ExactRung.EXACT_MATCHED -> FROM_EXACT
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
app std-modal-editor "0.1.0"
|
|
2
|
-
"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."
|
|
2
|
+
"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."
|
|
3
3
|
orbital ModalEditorOrbital {
|
|
4
4
|
entity EditorMode [runtime] {
|
|
5
5
|
id : string!
|
|
@@ -8,6 +8,9 @@ orbital ModalEditorOrbital {
|
|
|
8
8
|
operator : string = ""
|
|
9
9
|
operatorKey : string = ""
|
|
10
10
|
cmdline : string = ""
|
|
11
|
+
lastOperator : string = ""
|
|
12
|
+
lastMotion : string = ""
|
|
13
|
+
lastCount : number = 0
|
|
11
14
|
}
|
|
12
15
|
|
|
13
16
|
trait Modes -> @rebindable EditorMode [lifecycle, instance] {
|
|
@@ -32,7 +35,29 @@ orbital ModalEditorOrbital {
|
|
|
32
35
|
(set @entity.editorId ?editorId)
|
|
33
36
|
(set @entity.count 0)
|
|
34
37
|
(emit MOTION { editorId: ?editorId, motion: "line-end", count: 1 })
|
|
38
|
+
(emit MOTION { editorId: ?editorId, motion: "right", count: 1 })
|
|
39
|
+
(emit INSERT_TEXT { editorId: ?editorId, text: "\n" })
|
|
40
|
+
(emit SET_MODE { editorId: ?editorId, mode: "INSERT", caret: "bar" })
|
|
41
|
+
|
|
42
|
+
KEY -> INSERT when ["=", ?key, @config.openLineAboveKey]
|
|
43
|
+
(set @entity.editorId ?editorId)
|
|
44
|
+
(set @entity.count 0)
|
|
45
|
+
(emit MOTION { editorId: ?editorId, motion: "line-start", count: 1 })
|
|
35
46
|
(emit INSERT_TEXT { editorId: ?editorId, text: "\n" })
|
|
47
|
+
(emit MOTION { editorId: ?editorId, motion: "up", count: 1 })
|
|
48
|
+
(emit SET_MODE { editorId: ?editorId, mode: "INSERT", caret: "bar" })
|
|
49
|
+
|
|
50
|
+
KEY -> INSERT when ["=", ?key, @config.appendLineKey]
|
|
51
|
+
(set @entity.editorId ?editorId)
|
|
52
|
+
(set @entity.count 0)
|
|
53
|
+
(emit MOTION { editorId: ?editorId, motion: "line-end", count: 1 })
|
|
54
|
+
(emit MOTION { editorId: ?editorId, motion: "right", count: 1 })
|
|
55
|
+
(emit SET_MODE { editorId: ?editorId, mode: "INSERT", caret: "bar" })
|
|
56
|
+
|
|
57
|
+
KEY -> INSERT when ["=", ?key, @config.insertLineKey]
|
|
58
|
+
(set @entity.editorId ?editorId)
|
|
59
|
+
(set @entity.count 0)
|
|
60
|
+
(emit MOTION { editorId: ?editorId, motion: "first-nonblank", count: 1 })
|
|
36
61
|
(emit SET_MODE { editorId: ?editorId, mode: "INSERT", caret: "bar" })
|
|
37
62
|
|
|
38
63
|
KEY -> VISUAL when ["=", ?key, @config.visualKey]
|
|
@@ -49,6 +74,60 @@ orbital ModalEditorOrbital {
|
|
|
49
74
|
(set @entity.operator (object/get @config.operators ?key))
|
|
50
75
|
(set @entity.operatorKey ?key)
|
|
51
76
|
|
|
77
|
+
KEY -> OPERATOR_PENDING when ["=", ?key, @config.gotoPrefixKey]
|
|
78
|
+
(set @entity.editorId ?editorId)
|
|
79
|
+
(set @entity.operator "goto")
|
|
80
|
+
(set @entity.operatorKey ?key)
|
|
81
|
+
|
|
82
|
+
KEY -> OPERATOR_PENDING when (and ["=", ?key, @config.replaceKey] (not ?ctrl))
|
|
83
|
+
(set @entity.editorId ?editorId)
|
|
84
|
+
(set @entity.operator "replace")
|
|
85
|
+
(set @entity.operatorKey ?key)
|
|
86
|
+
|
|
87
|
+
KEY -> NORMAL when (and ["=", ?key, @config.redoKey] ?ctrl)
|
|
88
|
+
(set @entity.editorId ?editorId)
|
|
89
|
+
(emit OPERATE { editorId: ?editorId, operator: "redo", motion: "right", count: (if [">", @entity.count, 0] @entity.count 1) })
|
|
90
|
+
(set @entity.count 0)
|
|
91
|
+
|
|
92
|
+
KEY -> NORMAL when ["=", ?key, @config.undoKey]
|
|
93
|
+
(set @entity.editorId ?editorId)
|
|
94
|
+
(emit OPERATE { editorId: ?editorId, operator: "undo", motion: "right", count: (if [">", @entity.count, 0] @entity.count 1) })
|
|
95
|
+
(set @entity.count 0)
|
|
96
|
+
|
|
97
|
+
KEY -> NORMAL when ["=", ?key, @config.deleteCharKey]
|
|
98
|
+
(set @entity.editorId ?editorId)
|
|
99
|
+
(emit OPERATE { editorId: ?editorId, operator: "delete", motion: "right", count: (if [">", @entity.count, 0] @entity.count 1) })
|
|
100
|
+
(set @entity.count 0)
|
|
101
|
+
|
|
102
|
+
KEY -> NORMAL when ["=", ?key, @config.deleteCharBackKey]
|
|
103
|
+
(set @entity.editorId ?editorId)
|
|
104
|
+
(emit OPERATE { editorId: ?editorId, operator: "delete", motion: "left", count: (if [">", @entity.count, 0] @entity.count 1) })
|
|
105
|
+
(set @entity.count 0)
|
|
106
|
+
|
|
107
|
+
KEY -> NORMAL when ["=", ?key, @config.putKey]
|
|
108
|
+
(set @entity.editorId ?editorId)
|
|
109
|
+
(emit OPERATE { editorId: ?editorId, operator: "put", motion: "right", count: (if [">", @entity.count, 0] @entity.count 1) })
|
|
110
|
+
(set @entity.count 0)
|
|
111
|
+
|
|
112
|
+
KEY -> NORMAL when ["=", ?key, @config.putBeforeKey]
|
|
113
|
+
(set @entity.editorId ?editorId)
|
|
114
|
+
(emit OPERATE { editorId: ?editorId, operator: "put-before", motion: "right", count: (if [">", @entity.count, 0] @entity.count 1) })
|
|
115
|
+
(set @entity.count 0)
|
|
116
|
+
|
|
117
|
+
KEY -> NORMAL when ["=", ?key, @config.toggleCaseKey]
|
|
118
|
+
(set @entity.editorId ?editorId)
|
|
119
|
+
(emit OPERATE { editorId: ?editorId, operator: "toggle-case", motion: "right", count: (if [">", @entity.count, 0] @entity.count 1) })
|
|
120
|
+
(set @entity.count 0)
|
|
121
|
+
|
|
122
|
+
KEY -> NORMAL when ["=", ?key, @config.joinKey]
|
|
123
|
+
(set @entity.editorId ?editorId)
|
|
124
|
+
(emit OPERATE { editorId: ?editorId, operator: "join", motion: "line", count: (if [">", @entity.count, 1] @entity.count 2) })
|
|
125
|
+
(set @entity.count 0)
|
|
126
|
+
|
|
127
|
+
KEY -> NORMAL when (and ["=", ?key, @config.repeatKey] ["!=", @entity.lastOperator, ""])
|
|
128
|
+
(emit OPERATE { editorId: ?editorId, operator: @entity.lastOperator, motion: @entity.lastMotion, count: @entity.lastCount })
|
|
129
|
+
(set @entity.count 0)
|
|
130
|
+
|
|
52
131
|
KEY -> NORMAL when (and (object/has @config.digits ?key) (or ["!=", ?key, "0"] [">", @entity.count, 0]))
|
|
53
132
|
(set @entity.count (+ (* @entity.count 10) (object/get @config.digits ?key)))
|
|
54
133
|
|
|
@@ -61,11 +140,20 @@ orbital ModalEditorOrbital {
|
|
|
61
140
|
(set @entity.count 0)
|
|
62
141
|
(set @entity.operator "")
|
|
63
142
|
(set @entity.operatorKey "")
|
|
143
|
+
|
|
144
|
+
EDITOR_FOCUS -> NORMAL
|
|
145
|
+
(set @entity.editorId ?editorId)
|
|
146
|
+
(emit SET_MODE { editorId: ?editorId, mode: "NORMAL", caret: "block" })
|
|
64
147
|
}
|
|
65
148
|
|
|
66
149
|
state INSERT {
|
|
67
150
|
KEY -> NORMAL when ["=", ?key, "Escape"]
|
|
151
|
+
(emit MOTION { editorId: ?editorId, motion: "left", count: 1 })
|
|
68
152
|
(emit SET_MODE { editorId: ?editorId, mode: "NORMAL", caret: "block" })
|
|
153
|
+
|
|
154
|
+
EDITOR_FOCUS -> INSERT
|
|
155
|
+
(set @entity.editorId ?editorId)
|
|
156
|
+
(emit SET_MODE { editorId: ?editorId, mode: "INSERT", caret: "bar" })
|
|
69
157
|
}
|
|
70
158
|
|
|
71
159
|
state VISUAL {
|
|
@@ -73,25 +161,102 @@ orbital ModalEditorOrbital {
|
|
|
73
161
|
(set @entity.count 0)
|
|
74
162
|
(emit SET_MODE { editorId: ?editorId, mode: "NORMAL", caret: "block" })
|
|
75
163
|
|
|
76
|
-
KEY ->
|
|
164
|
+
KEY -> INSERT when (and (object/has @config.operators ?key) ["=", (object/get @config.operators ?key), "change"])
|
|
165
|
+
(set @entity.count 0)
|
|
166
|
+
(emit OPERATE { editorId: ?editorId, operator: (object/get @config.operators ?key), motion: "selection", count: 1 })
|
|
167
|
+
(set @entity.lastOperator (object/get @config.operators ?key))
|
|
168
|
+
(set @entity.lastMotion "selection")
|
|
169
|
+
(set @entity.lastCount 1)
|
|
170
|
+
(emit SET_MODE { editorId: ?editorId, mode: "INSERT", caret: "bar" })
|
|
171
|
+
|
|
172
|
+
KEY -> NORMAL when (and (object/has @config.operators ?key) ["!=", (object/get @config.operators ?key), "change"])
|
|
77
173
|
(set @entity.count 0)
|
|
78
174
|
(emit OPERATE { editorId: ?editorId, operator: (object/get @config.operators ?key), motion: "selection", count: 1 })
|
|
175
|
+
(set @entity.lastOperator (object/get @config.operators ?key))
|
|
176
|
+
(set @entity.lastMotion "selection")
|
|
177
|
+
(set @entity.lastCount 1)
|
|
178
|
+
(emit SET_MODE { editorId: ?editorId, mode: "NORMAL", caret: "block" })
|
|
179
|
+
|
|
180
|
+
KEY -> NORMAL when ["=", ?key, @config.toggleCaseKey]
|
|
181
|
+
(set @entity.count 0)
|
|
182
|
+
(emit OPERATE { editorId: ?editorId, operator: "toggle-case", motion: "selection", count: 1 })
|
|
183
|
+
(set @entity.lastOperator "toggle-case")
|
|
184
|
+
(set @entity.lastMotion "selection")
|
|
185
|
+
(set @entity.lastCount 1)
|
|
186
|
+
(emit SET_MODE { editorId: ?editorId, mode: "NORMAL", caret: "block" })
|
|
187
|
+
|
|
188
|
+
KEY -> NORMAL when ["=", ?key, @config.joinKey]
|
|
189
|
+
(set @entity.count 0)
|
|
190
|
+
(emit OPERATE { editorId: ?editorId, operator: "join", motion: "selection", count: 1 })
|
|
191
|
+
(set @entity.lastOperator "join")
|
|
192
|
+
(set @entity.lastMotion "selection")
|
|
193
|
+
(set @entity.lastCount 1)
|
|
79
194
|
(emit SET_MODE { editorId: ?editorId, mode: "NORMAL", caret: "block" })
|
|
80
195
|
|
|
81
196
|
KEY -> VISUAL when (object/has @config.motions ?key)
|
|
82
197
|
(emit MOTION { editorId: ?editorId, motion: (object/get @config.motions ?key), count: (if [">", @entity.count, 0] @entity.count 1) })
|
|
83
198
|
(set @entity.count 0)
|
|
199
|
+
|
|
200
|
+
EDITOR_FOCUS -> VISUAL
|
|
201
|
+
(set @entity.editorId ?editorId)
|
|
202
|
+
(emit SET_MODE { editorId: ?editorId, mode: "VISUAL", caret: "block" })
|
|
84
203
|
}
|
|
85
204
|
|
|
86
205
|
state OPERATOR_PENDING {
|
|
87
|
-
KEY -> NORMAL when ["=", ?key, @entity.operatorKey]
|
|
206
|
+
KEY -> NORMAL when (and ["=", ?key, @entity.operatorKey] ["=", @entity.operator, "goto"])
|
|
207
|
+
(emit MOTION { editorId: ?editorId, motion: "doc-start", count: 1 })
|
|
208
|
+
(set @entity.operator "")
|
|
209
|
+
(set @entity.operatorKey "")
|
|
210
|
+
(set @entity.count 0)
|
|
211
|
+
|
|
212
|
+
KEY -> INSERT when (and ["=", ?key, @entity.operatorKey] ["=", @entity.operator, "change"])
|
|
88
213
|
(emit OPERATE { editorId: ?editorId, operator: @entity.operator, motion: "line", count: (if [">", @entity.count, 0] @entity.count 1) })
|
|
214
|
+
(set @entity.lastOperator @entity.operator)
|
|
215
|
+
(set @entity.lastMotion "line")
|
|
216
|
+
(set @entity.lastCount (if [">", @entity.count, 0] @entity.count 1))
|
|
89
217
|
(set @entity.operator "")
|
|
90
218
|
(set @entity.operatorKey "")
|
|
91
219
|
(set @entity.count 0)
|
|
220
|
+
(emit SET_MODE { editorId: ?editorId, mode: "INSERT", caret: "bar" })
|
|
92
221
|
|
|
93
|
-
KEY -> NORMAL when (
|
|
222
|
+
KEY -> NORMAL when (and ["=", ?key, @entity.operatorKey] ["!=", @entity.operator, "change"] ["!=", @entity.operator, "goto"] ["!=", @entity.operator, "replace"])
|
|
223
|
+
(emit OPERATE { editorId: ?editorId, operator: @entity.operator, motion: "line", count: (if [">", @entity.count, 0] @entity.count 1) })
|
|
224
|
+
(set @entity.lastOperator @entity.operator)
|
|
225
|
+
(set @entity.lastMotion "line")
|
|
226
|
+
(set @entity.lastCount (if [">", @entity.count, 0] @entity.count 1))
|
|
227
|
+
(set @entity.operator "")
|
|
228
|
+
(set @entity.operatorKey "")
|
|
229
|
+
(set @entity.count 0)
|
|
230
|
+
|
|
231
|
+
KEY -> INSERT when (and (object/has @config.motions ?key) ["=", @entity.operator, "change"])
|
|
232
|
+
(emit OPERATE { editorId: ?editorId, operator: @entity.operator, motion: (object/get @config.motions ?key), count: (if [">", @entity.count, 0] @entity.count 1) })
|
|
233
|
+
(set @entity.lastOperator @entity.operator)
|
|
234
|
+
(set @entity.lastMotion (object/get @config.motions ?key))
|
|
235
|
+
(set @entity.lastCount (if [">", @entity.count, 0] @entity.count 1))
|
|
236
|
+
(set @entity.operator "")
|
|
237
|
+
(set @entity.operatorKey "")
|
|
238
|
+
(set @entity.count 0)
|
|
239
|
+
(emit SET_MODE { editorId: ?editorId, mode: "INSERT", caret: "bar" })
|
|
240
|
+
|
|
241
|
+
KEY -> NORMAL when (and (object/has @config.motions ?key) ["!=", @entity.operator, "change"] ["!=", @entity.operator, "goto"] ["!=", @entity.operator, "replace"])
|
|
94
242
|
(emit OPERATE { editorId: ?editorId, operator: @entity.operator, motion: (object/get @config.motions ?key), count: (if [">", @entity.count, 0] @entity.count 1) })
|
|
243
|
+
(set @entity.lastOperator @entity.operator)
|
|
244
|
+
(set @entity.lastMotion (object/get @config.motions ?key))
|
|
245
|
+
(set @entity.lastCount (if [">", @entity.count, 0] @entity.count 1))
|
|
246
|
+
(set @entity.operator "")
|
|
247
|
+
(set @entity.operatorKey "")
|
|
248
|
+
(set @entity.count 0)
|
|
249
|
+
|
|
250
|
+
KEY -> OPERATOR_PENDING when (and (object/has @config.digits ?key) (or ["!=", ?key, "0"] [">", @entity.count, 0]) ["!=", @entity.operator, "goto"] ["!=", @entity.operator, "replace"])
|
|
251
|
+
(set @entity.count (+ (* @entity.count 10) (object/get @config.digits ?key)))
|
|
252
|
+
|
|
253
|
+
KEY -> NORMAL when (and ["=", @entity.operator, "replace"] ["!=", ?key, "Escape"])
|
|
254
|
+
(emit OPERATE { editorId: ?editorId, operator: "delete", motion: "right", count: 1 })
|
|
255
|
+
(emit INSERT_TEXT { editorId: ?editorId, text: ?key })
|
|
256
|
+
(emit MOTION { editorId: ?editorId, motion: "left", count: 1 })
|
|
257
|
+
(set @entity.lastOperator "delete")
|
|
258
|
+
(set @entity.lastMotion "right")
|
|
259
|
+
(set @entity.lastCount 1)
|
|
95
260
|
(set @entity.operator "")
|
|
96
261
|
(set @entity.operatorKey "")
|
|
97
262
|
(set @entity.count 0)
|
|
@@ -100,6 +265,15 @@ orbital ModalEditorOrbital {
|
|
|
100
265
|
(set @entity.operator "")
|
|
101
266
|
(set @entity.operatorKey "")
|
|
102
267
|
(set @entity.count 0)
|
|
268
|
+
|
|
269
|
+
KEY -> NORMAL when (and ["=", @entity.operator, "goto"] ["!=", ?key, "Escape"] ["!=", ?key, @entity.operatorKey])
|
|
270
|
+
(set @entity.operator "")
|
|
271
|
+
(set @entity.operatorKey "")
|
|
272
|
+
(set @entity.count 0)
|
|
273
|
+
|
|
274
|
+
EDITOR_FOCUS -> OPERATOR_PENDING
|
|
275
|
+
(set @entity.editorId ?editorId)
|
|
276
|
+
(emit SET_MODE { editorId: ?editorId, mode: "OPERATOR_PENDING", caret: "block" })
|
|
103
277
|
}
|
|
104
278
|
|
|
105
279
|
state COMMAND {
|
|
@@ -121,6 +295,10 @@ orbital ModalEditorOrbital {
|
|
|
121
295
|
|
|
122
296
|
KEY -> COMMAND when (and ["!=", ?key, "Enter"] ["!=", ?key, "Escape"] ["!=", ?key, "Backspace"])
|
|
123
297
|
(set @entity.cmdline (str/concat @entity.cmdline ?key))
|
|
298
|
+
|
|
299
|
+
EDITOR_FOCUS -> COMMAND
|
|
300
|
+
(set @entity.editorId ?editorId)
|
|
301
|
+
(emit SET_MODE { editorId: ?editorId, mode: "COMMAND", caret: "block" })
|
|
124
302
|
}
|
|
125
303
|
|
|
126
304
|
listens {
|
|
@@ -135,6 +313,10 @@ orbital ModalEditorOrbital {
|
|
|
135
313
|
repeat : boolean
|
|
136
314
|
}
|
|
137
315
|
@description "One physical keydown, delivered by the host's keyboard router. The host decides preventDefault from config.keymap; this trait only reads key + editorId."
|
|
316
|
+
EDITOR_FOCUS {
|
|
317
|
+
editorId : string
|
|
318
|
+
}
|
|
319
|
+
@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."
|
|
138
320
|
}
|
|
139
321
|
|
|
140
322
|
emits {
|
|
@@ -158,13 +340,13 @@ orbital ModalEditorOrbital {
|
|
|
158
340
|
motion : string
|
|
159
341
|
count : number
|
|
160
342
|
}
|
|
161
|
-
@description "Apply a config-declared operator (delete | yank | change) over the range a motion describes; `line` for doubled operators, `selection` in VISUAL."
|
|
343
|
+
@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."
|
|
162
344
|
@tier "primary"
|
|
163
345
|
INSERT_TEXT -> external {
|
|
164
346
|
editorId : string
|
|
165
347
|
text : string
|
|
166
348
|
}
|
|
167
|
-
@description "Insert literal text at the caret (e.g. the newline `o`
|
|
349
|
+
@description "Insert literal text at the caret (e.g. the newline `o`/`O` insert before entering INSERT, or the replacement char `r` inserts)."
|
|
168
350
|
@tier "secondary"
|
|
169
351
|
EX_COMMAND -> external {
|
|
170
352
|
editorId : string
|
|
@@ -187,9 +369,24 @@ orbital ModalEditorOrbital {
|
|
|
187
369
|
@tier "presentation"
|
|
188
370
|
openLineKey : string = "o"
|
|
189
371
|
@label "Open a line below and insert"
|
|
190
|
-
@description "Key that moves to line end, inserts a newline, then switches to INSERT
|
|
372
|
+
@description "Key that moves to line end (past the last char), inserts a newline, then switches to INSERT — vim's `o`."
|
|
191
373
|
@synonyms "open line, new line below"
|
|
192
374
|
@tier "presentation"
|
|
375
|
+
openLineAboveKey : string = "O"
|
|
376
|
+
@label "Open a line above and insert"
|
|
377
|
+
@description "Key that moves to line start, inserts a newline, then moves up and switches to INSERT — vim's `O`."
|
|
378
|
+
@synonyms "open line above, new line above"
|
|
379
|
+
@tier "presentation"
|
|
380
|
+
appendLineKey : string = "A"
|
|
381
|
+
@label "Enter INSERT at end of line"
|
|
382
|
+
@description "Key that moves to line end and past it, then switches to INSERT — vim's `A`."
|
|
383
|
+
@synonyms "append at end of line"
|
|
384
|
+
@tier "presentation"
|
|
385
|
+
insertLineKey : string = "I"
|
|
386
|
+
@label "Enter INSERT at first non-blank"
|
|
387
|
+
@description "Key that moves to the line's first non-blank column, then switches to INSERT — vim's `I`."
|
|
388
|
+
@synonyms "insert at line start"
|
|
389
|
+
@tier "presentation"
|
|
193
390
|
visualKey : string = "v"
|
|
194
391
|
@label "Enter VISUAL"
|
|
195
392
|
@description "Key that switches NORMAL to VISUAL; motions then extend the selection and an operator acts on it."
|
|
@@ -200,26 +397,81 @@ orbital ModalEditorOrbital {
|
|
|
200
397
|
@description "Key that switches NORMAL to COMMAND and starts buffering an ex-command line."
|
|
201
398
|
@synonyms "ex mode, command line, colon"
|
|
202
399
|
@tier "presentation"
|
|
203
|
-
|
|
400
|
+
deleteCharKey : string = "x"
|
|
401
|
+
@label "Delete char under caret"
|
|
402
|
+
@description "Key that deletes the character(s) to the right of the caret, count times."
|
|
403
|
+
@synonyms "delete char, x"
|
|
404
|
+
@tier "presentation"
|
|
405
|
+
deleteCharBackKey : string = "X"
|
|
406
|
+
@label "Delete char before caret"
|
|
407
|
+
@description "Key that deletes the character(s) to the left of the caret, count times."
|
|
408
|
+
@synonyms "delete char back"
|
|
409
|
+
@tier "presentation"
|
|
410
|
+
putKey : string = "p"
|
|
411
|
+
@label "Put after caret"
|
|
412
|
+
@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."
|
|
413
|
+
@synonyms "paste, put"
|
|
414
|
+
@tier "presentation"
|
|
415
|
+
putBeforeKey : string = "P"
|
|
416
|
+
@label "Put before caret"
|
|
417
|
+
@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."
|
|
418
|
+
@synonyms "paste before, put before"
|
|
419
|
+
@tier "presentation"
|
|
420
|
+
undoKey : string = "u"
|
|
421
|
+
@label "Undo"
|
|
422
|
+
@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."
|
|
423
|
+
@synonyms "undo"
|
|
424
|
+
@tier "presentation"
|
|
425
|
+
redoKey : string = "r"
|
|
426
|
+
@label "Redo (with Ctrl)"
|
|
427
|
+
@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."
|
|
428
|
+
@synonyms "redo, ctrl-r"
|
|
429
|
+
@tier "presentation"
|
|
430
|
+
replaceKey : string = "r"
|
|
431
|
+
@label "Replace char"
|
|
432
|
+
@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."
|
|
433
|
+
@synonyms "replace char"
|
|
434
|
+
@tier "presentation"
|
|
435
|
+
toggleCaseKey : string = "~"
|
|
436
|
+
@label "Toggle case"
|
|
437
|
+
@description "Key that flips the case of the character under the caret, count times."
|
|
438
|
+
@synonyms "toggle case, tilde"
|
|
439
|
+
@tier "presentation"
|
|
440
|
+
joinKey : string = "J"
|
|
441
|
+
@label "Join lines"
|
|
442
|
+
@description "Key that joins the current line with the line(s) below; a count above 1 joins that many lines."
|
|
443
|
+
@synonyms "join lines"
|
|
444
|
+
@tier "presentation"
|
|
445
|
+
repeatKey : string = "."
|
|
446
|
+
@label "Repeat last change"
|
|
447
|
+
@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."
|
|
448
|
+
@synonyms "repeat, dot repeat"
|
|
449
|
+
@tier "presentation"
|
|
450
|
+
gotoPrefixKey : string = "g"
|
|
451
|
+
@label "Goto prefix"
|
|
452
|
+
@description "Arms OPERATOR_PENDING with the `goto` pseudo-operator; pressed again (`gg`) moves to the document start. Any other key cancels back to NORMAL."
|
|
453
|
+
@synonyms "goto, gg, doc start"
|
|
454
|
+
@tier "presentation"
|
|
455
|
+
operators : Map string string = { d: "delete", y: "yank", c: "change", ">": "indent", "<": "dedent" }
|
|
204
456
|
@label "Operator keys"
|
|
205
457
|
@description "Keys that arm OPERATOR_PENDING, mapped to the operator name carried on OPERATE. Pressing the same key again operates on the whole line."
|
|
206
|
-
@synonyms "operators, delete, yank, change"
|
|
458
|
+
@synonyms "operators, delete, yank, change, indent, dedent"
|
|
207
459
|
@tier "domain"
|
|
208
|
-
motions : Map string string = { h: "left", j: "down", k: "up", l: "right", w: "word-forward", b: "word-back", e: "word-end", "0": "line-start", "$": "line-end", "^": "first-nonblank", G: "doc-end", "{": "paragraph-back", "}": "paragraph-forward" }
|
|
460
|
+
motions : Map string string = { h: "left", j: "down", k: "up", l: "right", w: "word-forward", b: "word-back", e: "word-end", "0": "line-start", "$": "line-end", "^": "first-nonblank", G: "doc-end", "{": "paragraph-back", "}": "paragraph-forward", "%": "match-bracket" }
|
|
209
461
|
@label "Motion keys"
|
|
210
462
|
@description "Keys recognized in NORMAL, VISUAL and OPERATOR_PENDING, mapped to the closed motion vocabulary the editor surface understands."
|
|
211
463
|
@synonyms "motions, movement, hjkl, word motion"
|
|
212
464
|
@tier "domain"
|
|
213
465
|
digits : Map string number = { "0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9 }
|
|
214
466
|
@label "Count digits"
|
|
215
|
-
@description "Digit keys accumulated into a repeat count before a motion or operator fires; each digit's integer value is a lookup because the language has no string-to-int operator."
|
|
467
|
+
@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."
|
|
216
468
|
@tier "internal"
|
|
217
|
-
exCommands : Map string string = { w: "save", q: "close-tab", wq: "save-close-tab" }
|
|
469
|
+
exCommands : Map string string = { w: "save", q: "close-tab", wq: "save-close-tab", "q!": "close-tab-discard", x: "save-close-tab" }
|
|
218
470
|
@label "Ex-commands"
|
|
219
471
|
@description "Buffered COMMAND-mode lines (typed after ':') mapped to a neutral command name carried on EX_COMMAND."
|
|
220
472
|
@synonyms "ex commands, colon commands"
|
|
221
473
|
@tier "domain"
|
|
222
|
-
keymap : Map string [string] = { NORMAL: ["i", "a", "o", "v", ":", "d", "y", "c", "h", "j", "k", "l", "w", "b", "e", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "$", "^", "G", "{", "}", "Escape"], INSERT: ["Escape"], VISUAL: ["Escape", "d", "y", "c", "h", "j", "k", "l", "w", "b", "e", "0", "$", "^", "G", "{", "}"], OPERATOR_PENDING: ["Escape", "d", "y", "c", "h", "j", "k", "l", "w", "b", "e", "0", "$", "^", "G", "{", "}"], COMMAND: ["Escape", "Enter", "Backspace", "
|
|
474
|
+
keymap : Map string [string] = { 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", "!", "%", " "] }
|
|
223
475
|
@label "Captured keys per mode"
|
|
224
476
|
@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."
|
|
225
477
|
@tier "internal"
|
|
@@ -339,13 +339,13 @@ orbital CodeBlockOrbital {
|
|
|
339
339
|
listens {
|
|
340
340
|
MOTION {
|
|
341
341
|
editorId : string!
|
|
342
|
-
motion : "left" | "right" | "up" | "down" | "word-forward" | "word-back" | "word-end" | "line-start" | "line-end" | "first-nonblank" | "doc-start" | "doc-end" | "paragraph-forward" | "paragraph-back" | "line" | "selection"!
|
|
342
|
+
motion : "left" | "right" | "up" | "down" | "word-forward" | "word-back" | "word-end" | "line-start" | "line-end" | "first-nonblank" | "doc-start" | "doc-end" | "paragraph-forward" | "paragraph-back" | "line" | "selection" | "match-bracket"!
|
|
343
343
|
count : number!
|
|
344
344
|
}
|
|
345
345
|
OPERATE {
|
|
346
346
|
editorId : string!
|
|
347
|
-
operator : "delete" | "yank" | "change"!
|
|
348
|
-
motion : "left" | "right" | "up" | "down" | "word-forward" | "word-back" | "word-end" | "line-start" | "line-end" | "first-nonblank" | "doc-start" | "doc-end" | "paragraph-forward" | "paragraph-back" | "line" | "selection"!
|
|
347
|
+
operator : "delete" | "yank" | "change" | "put" | "put-before" | "undo" | "redo" | "join" | "toggle-case" | "indent" | "dedent" | "replace"!
|
|
348
|
+
motion : "left" | "right" | "up" | "down" | "word-forward" | "word-back" | "word-end" | "line-start" | "line-end" | "first-nonblank" | "doc-start" | "doc-end" | "paragraph-forward" | "paragraph-back" | "line" | "selection" | "match-bracket"!
|
|
349
349
|
count : number!
|
|
350
350
|
}
|
|
351
351
|
INSERT_TEXT {
|
|
@@ -481,11 +481,11 @@ orbital CodeBlockOrbital {
|
|
|
481
481
|
@label "On Set Mode"
|
|
482
482
|
@description "Declarative bus listen: switch editor mode and caret style."
|
|
483
483
|
@tier "presentation"
|
|
484
|
-
motions : ["left" | "right" | "up" | "down" | "word-forward" | "word-back" | "word-end" | "line-start" | "line-end" | "first-nonblank" | "doc-start" | "doc-end" | "paragraph-forward" | "paragraph-back" | "line" | "selection"] = ["left", "right", "up", "down", "word-forward", "word-back", "word-end", "line-start", "line-end", "first-nonblank", "doc-start", "doc-end", "paragraph-forward", "paragraph-back", "line", "selection"]
|
|
484
|
+
motions : ["left" | "right" | "up" | "down" | "word-forward" | "word-back" | "word-end" | "line-start" | "line-end" | "first-nonblank" | "doc-start" | "doc-end" | "paragraph-forward" | "paragraph-back" | "line" | "selection" | "match-bracket"] = ["left", "right", "up", "down", "word-forward", "word-back", "word-end", "line-start", "line-end", "first-nonblank", "doc-start", "doc-end", "paragraph-forward", "paragraph-back", "line", "selection", "match-bracket"]
|
|
485
485
|
@label "Motions"
|
|
486
486
|
@description "Motion vocabulary this editor accepts. Default: the full `EditorMotion` set."
|
|
487
487
|
@tier "presentation"
|
|
488
|
-
operators : ["delete" | "yank" | "change"] = ["delete", "yank", "change"]
|
|
488
|
+
operators : ["delete" | "yank" | "change" | "put" | "put-before" | "undo" | "redo" | "join" | "toggle-case" | "indent" | "dedent" | "replace"] = ["delete", "yank", "change", "put", "put-before", "undo", "redo", "join", "toggle-case", "indent", "dedent", "replace"]
|
|
489
489
|
@label "Operators"
|
|
490
490
|
@description "Operator vocabulary this editor accepts. Default: the full `EditorOperator` set."
|
|
491
491
|
@tier "presentation"
|
|
@@ -36,7 +36,7 @@ orbital FloatingToolbarOrbital {
|
|
|
36
36
|
@label "Items"
|
|
37
37
|
@description "Tool items rendered as icon buttons"
|
|
38
38
|
@tier "presentation"
|
|
39
|
-
position : "bottom-center" | "bottom-left" | "bottom-right" = "bottom-center"
|
|
39
|
+
position : "bottom-center" | "bottom-left" | "bottom-right" | "top-center" | "top-left" | "top-right" = "bottom-center"
|
|
40
40
|
@label "Position"
|
|
41
41
|
@description "Strip position within the app frame."
|
|
42
42
|
@tier "presentation"
|
|
@@ -7,6 +7,7 @@ orbital MenuOrbital {
|
|
|
7
7
|
icon : icon
|
|
8
8
|
badge : string
|
|
9
9
|
disabled : boolean
|
|
10
|
+
title : string
|
|
10
11
|
event : event
|
|
11
12
|
url : string
|
|
12
13
|
variant : "default" | "danger"
|
|
@@ -38,7 +39,7 @@ orbital MenuOrbital {
|
|
|
38
39
|
@label "Trigger"
|
|
39
40
|
@description "Menu trigger element"
|
|
40
41
|
@tier "presentation"
|
|
41
|
-
items : [MenuItemsItem] = [{ id: "Id", label: "Label", icon: "circle", badge: "Badge", disabled: false, url: "Url", variant: default, subMenu: [] }, { id: "Id 2", label: "Label 2", icon: "circle", badge: "Badge 2", disabled: true, url: "Url 2", variant: danger, subMenu: [] }]
|
|
42
|
+
items : [MenuItemsItem] = [{ id: "Id", label: "Label", icon: "circle", badge: "Badge", disabled: false, title: "Title", url: "Url", variant: default, subMenu: [] }, { id: "Id 2", label: "Label 2", icon: "circle", badge: "Badge 2", disabled: true, title: "Title 2", url: "Url 2", variant: danger, subMenu: [] }]
|
|
42
43
|
@label "Items"
|
|
43
44
|
@description "Menu items"
|
|
44
45
|
@tier "presentation"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
app std-area-fill "1.0.0"
|
|
2
|
-
"Headless area-fill mechanic: the player paints area under a curve by moving through a fill region. Listens BODY_MOVED and, per fill, accumulates height(x) × |dx| while the player is inside the fill's x-range (the per-tick step is clamped to 0.5 world units — the physical per-tick maximum — so teleports and respawns paint nothing) — height is linear interpolation of the config curve samples above the fill's baseline (the platformer body's leftSamp/rightSamp idiom). rateMode picks the rate: \"area\" (height × |dx|, default — fills fastest where the curve is tallest), \"speed\" (|dx| only, flat rate), or \"ride\" (|dx| only while the move reports skating — walking the same distance paints nothing). When a fill's filled reaches its target it flips reported and emits AREA_FILLED once (the shared entity carries the rest); each fill also stamps a frontier (x0 + span × min(1, filled/target)) so boards can shade the painted region left-to-right as the gauge grows. RESTART resets every fill. Renders nothing; boards shade the painted region and read filled/frontier from the shared entity (the render authority)."
|
|
2
|
+
"Headless area-fill mechanic: the player paints area under a curve by moving through a fill region. Listens BODY_MOVED and, per fill, accumulates height(x) × |dx| while the player is inside the fill's x-range (the per-tick step is clamped to 0.5 world units — the physical per-tick maximum — so teleports and respawns paint nothing) — height is linear interpolation of the config curve samples above the fill's baseline (the platformer body's leftSamp/rightSamp idiom). rateMode picks the rate: \"area\" (height × |dx|, default — fills fastest where the curve is tallest), \"speed\" (|dx| only, flat rate), or \"ride\" (|dx| only while the move reports skating — walking the same distance paints nothing). When a fill's filled reaches its target it flips reported and emits AREA_FILLED once (the shared entity carries the rest); each fill also stamps a frontier (x0 + span × min(1, filled/target)) so boards can shade the painted region left-to-right as the gauge grows. RESTART resets every live fill (re-arming the live entity set, so SET_FILLS-injected fills survive respawns). SET_FILLS replaces the fill set at runtime for boards that import their fills. Renders nothing; boards shade the painted region and read filled/frontier from the shared entity (the render authority)."
|
|
3
3
|
orbital AreaFillOrbital {
|
|
4
4
|
type AreaFillSample = {
|
|
5
5
|
x : number!
|
|
@@ -57,8 +57,12 @@ orbital AreaFillOrbital {
|
|
|
57
57
|
(emit AREA_FILLED { id: (object/get (array/first @newly) id), x: @payload.x, y: @payload.y }))
|
|
58
58
|
null))
|
|
59
59
|
|
|
60
|
+
SET_FILLS -> active
|
|
61
|
+
(set @entity.fills (array/map @payload.fills (fn f (object/merge @f { filled: 0, frontier: (object/get @f x0), reported: false }))))
|
|
62
|
+
(set @entity.lastX 0)
|
|
63
|
+
|
|
60
64
|
RESTART -> active
|
|
61
|
-
(set @entity.fills (array/map @
|
|
65
|
+
(set @entity.fills (array/map @entity.fills (fn f (object/merge @f { filled: 0, frontier: (object/get @f x0), reported: false }))))
|
|
62
66
|
(set @entity.lastX 0)
|
|
63
67
|
}
|
|
64
68
|
|
|
@@ -74,6 +78,7 @@ orbital AreaFillOrbital {
|
|
|
74
78
|
|
|
75
79
|
listens {
|
|
76
80
|
BODY_MOVED { x : number!, y : number!, vx : number!, vy : number!, grounded : boolean!, skating : boolean!, speed : number! }
|
|
81
|
+
SET_FILLS { fills : [AreaFill]! }
|
|
77
82
|
RESTART { id : string }
|
|
78
83
|
}
|
|
79
84
|
|
|
@@ -84,7 +89,7 @@ orbital AreaFillOrbital {
|
|
|
84
89
|
@tier "domain"
|
|
85
90
|
fills : [AreaFill] = []
|
|
86
91
|
@label "Fills"
|
|
87
|
-
@description "One row per fill region: id, x-range (x0..x1 in world units), baseline the height is measured from, target area, rateMode (area | speed | ride — default area), optional hint, and the curve samples to interpolate. filled/frontier/reported are stamped at runtime."
|
|
92
|
+
@description "One row per fill region: id, x-range (x0..x1 in world units), baseline the height is measured from, target area, rateMode (area | speed | ride — default area), optional hint, and the curve samples to interpolate. filled/frontier/reported are stamped at runtime. Seeded onto the entity on INIT; the live set is entity.fills — SET_FILLS replaces it at runtime (boards that import fills), and RESTART re-arms the live set rather than re-reading config, so injected fills survive respawns."
|
|
88
93
|
@tier "domain"
|
|
89
94
|
}
|
|
90
95
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
app std-choice-gate "1.0.0"
|
|
2
|
-
"Headless choice-gate mechanic for side-view boards: a gate of N labeled option platforms where progress stops until the player commits to an answer. Listens BODY_MOVED and judges a gate when the player stands grounded on one of its option platforms (|dx| <= reachX of the option center, |dy| <= reachY of the gate's option plane — the pad-lock touch pattern): the correct option stamps the gate solved + chosen on the shared entity and emits CHOICE_CORRECT once (a solved gate never judges again, so the path stays open); a wrong option emits CHOICE_WRONG carrying the gate id, the chosen optionId, and the option's world position, so the board can bounce the player back and float the gate's hint (the board owns the bounce — the atom only reports). RESTART unsolves every gate. Renders nothing; boards draw the option platforms and labels from the shared entity (the render authority). Corresponds to the design-sheet field(s): challenge, agency."
|
|
2
|
+
"Headless choice-gate mechanic for side-view boards: a gate of N labeled option platforms where progress stops until the player commits to an answer. Listens BODY_MOVED and judges a gate when the player stands grounded on one of its option platforms (|dx| <= reachX of the option center, |dy| <= reachY of the gate's option plane — the pad-lock touch pattern): the correct option stamps the gate solved + chosen on the shared entity and emits CHOICE_CORRECT once (a solved gate never judges again, so the path stays open); a wrong option emits CHOICE_WRONG carrying the gate id, the chosen optionId, and the option's world position, so the board can bounce the player back and float the gate's hint (the board owns the bounce — the atom only reports). RESTART unsolves every live gate (re-arming the live entity set, so SET_GATES-injected gates survive respawns). SET_GATES replaces the gate set at runtime for boards that import their gates. Renders nothing; boards draw the option platforms and labels from the shared entity (the render authority). Corresponds to the design-sheet field(s): challenge, agency."
|
|
3
3
|
orbital ChoiceGateOrbital {
|
|
4
4
|
type ChoiceOption = {
|
|
5
5
|
id : string!
|
|
@@ -49,8 +49,11 @@ orbital ChoiceGateOrbital {
|
|
|
49
49
|
(emit CHOICE_WRONG { id: (object/get @g id), optionId: (object/get @o id), x: (+ (object/get @g x) (object/get @o dx)), y: (object/get @g y) }))))
|
|
50
50
|
null))
|
|
51
51
|
|
|
52
|
+
SET_GATES -> active
|
|
53
|
+
(set @entity.choices (array/map @payload.gates (fn g (object/merge @g { solved: false, chosen: "" }))))
|
|
54
|
+
|
|
52
55
|
RESTART -> active
|
|
53
|
-
(set @entity.choices (array/map @
|
|
56
|
+
(set @entity.choices (array/map @entity.choices (fn g (object/merge @g { solved: false, chosen: "" }))))
|
|
54
57
|
}
|
|
55
58
|
|
|
56
59
|
emits {
|
|
@@ -73,6 +76,7 @@ orbital ChoiceGateOrbital {
|
|
|
73
76
|
|
|
74
77
|
listens {
|
|
75
78
|
BODY_MOVED { x : number!, y : number!, vx : number!, vy : number!, grounded : boolean!, skating : boolean!, speed : number! }
|
|
79
|
+
SET_GATES { gates : [ChoiceGate]! }
|
|
76
80
|
RESTART { id : string }
|
|
77
81
|
}
|
|
78
82
|
|
|
@@ -83,7 +87,7 @@ orbital ChoiceGateOrbital {
|
|
|
83
87
|
@tier "domain"
|
|
84
88
|
gates : [ChoiceGate] = []
|
|
85
89
|
@label "Choice Gates"
|
|
86
|
-
@description "One row per gate: id, gate center (x, y — y is the option-platform surface the judge tests against), the hint floated on a wrong answer, and the options: id, dx offset from the gate center, the label drawn above the platform, and correct. solved/chosen are stamped at runtime."
|
|
90
|
+
@description "One row per gate: id, gate center (x, y — y is the option-platform surface the judge tests against), the hint floated on a wrong answer, and the options: id, dx offset from the gate center, the label drawn above the platform, and correct. solved/chosen are stamped at runtime. Seeded onto the entity on INIT; the live set is entity.choices — SET_GATES replaces it at runtime (boards that import gates), and RESTART re-arms the live set rather than re-reading config, so injected gates survive respawns."
|
|
87
91
|
@tier "domain"
|
|
88
92
|
reachX : number = 0.7
|
|
89
93
|
@label "Reach X"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
app std-coef-pad "1.0.0"
|
|
2
|
-
"Headless coefficient-pad mechanic for graph-riding boards: floor pads that reshape the road the player is riding (y = a·f(x−h) + k). Listens BODY_MOVED and, when the player stands grounded on an unapplied pad (|dx| <= reachX, |dy| <= reachY of the pad center — the pad-lock touch pattern), stamps the pad applied on the shared entity and emits COEF_PAD_APPLIED carrying the pad position AND its mod (x0, x1, a, h, k), so the board can append the mod to the body authority's curveMods (std-platformer-body with curveModsEnabled) and hop the player onto the reshaped surface. When every pad is applied it emits COEF_PAD_SET_COMPLETED once. RESTART un-applies every pad (the board clears curveMods alongside — the pad reports, the board owns the road). Renders nothing; boards draw the pads and read applied from the shared entity (the render authority)."
|
|
2
|
+
"Headless coefficient-pad mechanic for graph-riding boards: floor pads that reshape the road the player is riding (y = a·f(x−h) + k). Listens BODY_MOVED and, when the player stands grounded on an unapplied pad (|dx| <= reachX, |dy| <= reachY of the pad center — the pad-lock touch pattern), stamps the pad applied on the shared entity and emits COEF_PAD_APPLIED carrying the pad position AND its mod (x0, x1, a, h, k), so the board can append the mod to the body authority's curveMods (std-platformer-body with curveModsEnabled) and hop the player onto the reshaped surface. When every pad is applied it emits COEF_PAD_SET_COMPLETED once. RESTART un-applies every live pad (re-arming the live entity set, so SET_PADS-injected pads survive respawns; the board clears curveMods alongside — the pad reports, the board owns the road). SET_PADS replaces the pad set at runtime for boards that import their pads. Renders nothing; boards draw the pads and read applied from the shared entity (the render authority)."
|
|
3
3
|
orbital CoefPadOrbital {
|
|
4
4
|
type CoefMod = {
|
|
5
5
|
x0 : number!
|
|
@@ -59,8 +59,12 @@ orbital CoefPadOrbital {
|
|
|
59
59
|
null)))))
|
|
60
60
|
null))
|
|
61
61
|
|
|
62
|
+
SET_PADS -> active
|
|
63
|
+
(set @entity.coefPads (array/map @payload.pads (fn p (object/merge @p { applied: false }))))
|
|
64
|
+
(set @entity.coefCompleted false)
|
|
65
|
+
|
|
62
66
|
RESTART -> active
|
|
63
|
-
(set @entity.coefPads (array/map @
|
|
67
|
+
(set @entity.coefPads (array/map @entity.coefPads (fn p (object/merge @p { applied: false }))))
|
|
64
68
|
(set @entity.coefCompleted false)
|
|
65
69
|
}
|
|
66
70
|
|
|
@@ -89,6 +93,7 @@ orbital CoefPadOrbital {
|
|
|
89
93
|
|
|
90
94
|
listens {
|
|
91
95
|
BODY_MOVED { x : number!, y : number!, vx : number!, vy : number!, grounded : boolean!, skating : boolean!, speed : number! }
|
|
96
|
+
SET_PADS { pads : [CoefPad]! }
|
|
92
97
|
RESTART { id : string }
|
|
93
98
|
}
|
|
94
99
|
|
|
@@ -99,7 +104,7 @@ orbital CoefPadOrbital {
|
|
|
99
104
|
@tier "domain"
|
|
100
105
|
coefPads : [CoefPad] = []
|
|
101
106
|
@label "Coefficient Pads"
|
|
102
|
-
@description "One row per pad: id, center (x, y in world units), the mod applied to the road while inside x0..x1 (a scales slope+height, b compresses/stretch period, h shifts horizontally, k lifts), and the hint floated on apply, and hop (true = the board teleports the player onto the reshaped surface — use when the mod steps the road far from the pad; false = the skate snap carries the player, preserving speed). applied is stamped at runtime."
|
|
107
|
+
@description "One row per pad: id, center (x, y in world units), the mod applied to the road while inside x0..x1 (a scales slope+height, b compresses/stretch period, h shifts horizontally, k lifts), and the hint floated on apply, and hop (true = the board teleports the player onto the reshaped surface — use when the mod steps the road far from the pad; false = the skate snap carries the player, preserving speed). applied is stamped at runtime. Seeded onto the entity on INIT; the live set is entity.coefPads — SET_PADS replaces it at runtime (boards that import pads), and RESTART re-arms the live set rather than re-reading config, so injected pads survive respawns."
|
|
103
108
|
@tier "domain"
|
|
104
109
|
reachX : number = 0.7
|
|
105
110
|
@label "Reach X"
|