@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.
Files changed (497) hide show
  1. package/behaviors/lolo/ml/organisms/std-escalating-decision.lolo +3 -3
  2. package/behaviors/lolo/ui/core/atoms/std-modal-editor.lolo +265 -13
  3. package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +5 -5
  4. package/behaviors/lolo/ui/core/molecules/ui-floating-toolbar.lolo +1 -1
  5. package/behaviors/lolo/ui/core/molecules/ui-menu.lolo +2 -1
  6. package/behaviors/lolo/ui/game/atoms/std-area-fill.lolo +8 -3
  7. package/behaviors/lolo/ui/game/atoms/std-choice-gate.lolo +7 -3
  8. package/behaviors/lolo/ui/game/atoms/std-coef-pad.lolo +8 -3
  9. package/behaviors/lolo/ui/game/atoms/std-gate-lock.lolo +8 -3
  10. package/behaviors/lolo/ui/game/atoms/std-loop-lock.lolo +7 -3
  11. package/behaviors/lolo/ui/game/atoms/std-pad-lock.lolo +10 -3
  12. package/behaviors/lolo/ui/game/atoms/std-patrol-hazard.lolo +9 -3
  13. package/behaviors/lolo/ui/game/atoms/std-pickup.lolo +29 -5
  14. package/behaviors/lolo/ui/game/atoms/std-platformer-body.lolo +36 -14
  15. package/behaviors/lolo/ui/game/atoms/std-velocity-gate.lolo +7 -3
  16. package/behaviors/lolo/ui/game/organisms/std-platformer-puzzle.lolo +302 -0
  17. package/behaviors/lolo/ui/learning/atoms/std-learn-slope-probe.lolo +12 -6
  18. package/behaviors/registry/agent/atoms/std-agent-completion.orb +27 -0
  19. package/behaviors/registry/agent/atoms/std-agent-context.orb +47 -0
  20. package/behaviors/registry/agent/atoms/std-agent-fix-loop.orb +57 -1
  21. package/behaviors/registry/agent/atoms/std-agent-memory.orb +88 -1
  22. package/behaviors/registry/agent/atoms/std-agent-planner.orb +58 -1
  23. package/behaviors/registry/agent/atoms/std-agent-session.orb +95 -1
  24. package/behaviors/registry/agent/atoms/std-agent-tool-call.orb +66 -1
  25. package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +74 -1
  26. package/behaviors/registry/agent/atoms/std-agent-trace.orb +38 -0
  27. package/behaviors/registry/agent/organisms/std-agent-builder.orb +70 -1
  28. package/behaviors/registry/agent/organisms/std-agent-rabit.orb +239 -2
  29. package/behaviors/registry/infra/atoms/std-anim-tick.orb +24 -0
  30. package/behaviors/registry/infra/atoms/std-approval-gate.orb +73 -20
  31. package/behaviors/registry/infra/atoms/std-audit-capture.orb +38 -0
  32. package/behaviors/registry/infra/atoms/std-cache-aside.orb +45 -62
  33. package/behaviors/registry/infra/atoms/std-calendar-sync.orb +113 -1
  34. package/behaviors/registry/infra/atoms/std-cascade-on-delete.orb +32 -0
  35. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +38 -32
  36. package/behaviors/registry/infra/atoms/std-cooldown.orb +28 -0
  37. package/behaviors/registry/infra/atoms/std-cross-reference.orb +55 -1
  38. package/behaviors/registry/infra/atoms/std-data-erasure.orb +52 -16
  39. package/behaviors/registry/infra/atoms/std-game-clock.orb +20 -0
  40. package/behaviors/registry/infra/atoms/std-lifecycle.orb +34 -0
  41. package/behaviors/registry/infra/atoms/std-migration-job.orb +165 -1
  42. package/behaviors/registry/infra/atoms/std-mod-queue.orb +23 -16
  43. package/behaviors/registry/infra/atoms/std-notification-center.orb +119 -1
  44. package/behaviors/registry/infra/atoms/std-notify-on-event.orb +162 -1
  45. package/behaviors/registry/infra/atoms/std-rate-limiter.orb +32 -28
  46. package/behaviors/registry/infra/atoms/std-reminder-scheduler.orb +30 -0
  47. package/behaviors/registry/infra/atoms/std-row-access-control.orb +58 -1
  48. package/behaviors/registry/infra/atoms/std-status-lifecycle.orb +34 -1
  49. package/behaviors/registry/infra/organisms/std-status-lifecycle-control.orb +33 -2
  50. package/behaviors/registry/ml/atoms/std-data-collector.orb +18 -0
  51. package/behaviors/registry/ml/atoms/std-graph-builder.orb +41 -1
  52. package/behaviors/registry/ml/atoms/std-ml-classify.orb +67 -1
  53. package/behaviors/registry/ml/atoms/std-ml-exact-check.orb +18 -0
  54. package/behaviors/registry/ml/atoms/std-ml-infer.orb +125 -1
  55. package/behaviors/registry/ml/atoms/std-ml-label-capture.orb +34 -0
  56. package/behaviors/registry/ml/atoms/std-ml-lookup.orb +18 -0
  57. package/behaviors/registry/ml/atoms/std-ml-posterior.orb +42 -0
  58. package/behaviors/registry/ml/atoms/std-ml-similarity.orb +82 -1
  59. package/behaviors/registry/ml/atoms/std-tokenizer.orb +30 -0
  60. package/behaviors/registry/ml/atoms/std-weight-validator.orb +60 -1
  61. package/behaviors/registry/ml/organisms/std-escalating-decision.orb +122 -13
  62. package/behaviors/registry/ml/organisms/std-knowledge-tracing.orb +51 -4
  63. package/behaviors/registry/ui/avl/atoms/ui-behavior-view.orb +6 -0
  64. package/behaviors/registry/ui/avl/atoms/ui-module-card.orb +6 -0
  65. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +10 -0
  66. package/behaviors/registry/ui/core/atoms/std-app-search.orb +110 -1
  67. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +119 -2
  68. package/behaviors/registry/ui/core/atoms/std-board.orb +180 -1
  69. package/behaviors/registry/ui/core/atoms/std-browse.orb +143 -6
  70. package/behaviors/registry/ui/core/atoms/std-calendar.orb +59 -1
  71. package/behaviors/registry/ui/core/atoms/std-confirmation.orb +18 -0
  72. package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +13 -2
  73. package/behaviors/registry/ui/core/atoms/std-date-range.orb +14 -0
  74. package/behaviors/registry/ui/core/atoms/std-detail-layout.orb +13 -0
  75. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +39 -4
  76. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +20 -6
  77. package/behaviors/registry/ui/core/atoms/std-event-log.orb +146 -1
  78. package/behaviors/registry/ui/core/atoms/std-export.orb +35 -4
  79. package/behaviors/registry/ui/core/atoms/std-file-store.orb +26 -0
  80. package/behaviors/registry/ui/core/atoms/std-filter.orb +57 -1
  81. package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +66 -1
  82. package/behaviors/registry/ui/core/atoms/std-gallery.orb +44 -18
  83. package/behaviors/registry/ui/core/atoms/std-geosearch.orb +22 -0
  84. package/behaviors/registry/ui/core/atoms/std-graphs.orb +71 -1
  85. package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +67 -1
  86. package/behaviors/registry/ui/core/atoms/std-import.orb +69 -4
  87. package/behaviors/registry/ui/core/atoms/std-list.orb +36 -6
  88. package/behaviors/registry/ui/core/atoms/std-modal-editor.orb +1865 -169
  89. package/behaviors/registry/ui/core/atoms/std-modal.orb +44 -1
  90. package/behaviors/registry/ui/core/atoms/std-multi-party-flow.orb +201 -1
  91. package/behaviors/registry/ui/core/atoms/std-notification-panel.orb +24 -1
  92. package/behaviors/registry/ui/core/atoms/std-pagination.orb +35 -1
  93. package/behaviors/registry/ui/core/atoms/std-rating-review.orb +159 -1
  94. package/behaviors/registry/ui/core/atoms/std-record-detail.orb +144 -1
  95. package/behaviors/registry/ui/core/atoms/std-recurrence.orb +103 -1
  96. package/behaviors/registry/ui/core/atoms/std-related.orb +14 -0
  97. package/behaviors/registry/ui/core/atoms/std-saved-search.orb +30 -0
  98. package/behaviors/registry/ui/core/atoms/std-scatter.orb +51 -1
  99. package/behaviors/registry/ui/core/atoms/std-search.orb +10 -0
  100. package/behaviors/registry/ui/core/atoms/std-selection.orb +28 -1
  101. package/behaviors/registry/ui/core/atoms/std-signature-capture.orb +18 -0
  102. package/behaviors/registry/ui/core/atoms/std-stats.orb +153 -1
  103. package/behaviors/registry/ui/core/atoms/std-step-flow.orb +154 -1
  104. package/behaviors/registry/ui/core/atoms/std-tabs.orb +41 -1
  105. package/behaviors/registry/ui/core/atoms/std-tag-strip.orb +34 -0
  106. package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +48 -1
  107. package/behaviors/registry/ui/core/atoms/std-thread.orb +30 -0
  108. package/behaviors/registry/ui/core/atoms/std-tree.orb +36 -1
  109. package/behaviors/registry/ui/core/atoms/std-version-history.orb +54 -0
  110. package/behaviors/registry/ui/core/atoms/std-vote.orb +22 -0
  111. package/behaviors/registry/ui/core/atoms/std-wizard.orb +130 -1
  112. package/behaviors/registry/ui/core/atoms/ui-aside.orb +6 -0
  113. package/behaviors/registry/ui/core/atoms/ui-atlas-image.orb +6 -0
  114. package/behaviors/registry/ui/core/atoms/ui-atlas-panel.orb +6 -0
  115. package/behaviors/registry/ui/core/atoms/ui-avatar.orb +6 -0
  116. package/behaviors/registry/ui/core/atoms/ui-badge.orb +6 -0
  117. package/behaviors/registry/ui/core/atoms/ui-box.orb +6 -0
  118. package/behaviors/registry/ui/core/atoms/ui-button.orb +6 -0
  119. package/behaviors/registry/ui/core/atoms/ui-card.orb +6 -0
  120. package/behaviors/registry/ui/core/atoms/ui-center.orb +6 -0
  121. package/behaviors/registry/ui/core/atoms/ui-checkbox.orb +6 -0
  122. package/behaviors/registry/ui/core/atoms/ui-conditional-wrapper.orb +6 -0
  123. package/behaviors/registry/ui/core/atoms/ui-confetti-effect.orb +6 -0
  124. package/behaviors/registry/ui/core/atoms/ui-day-cell.orb +6 -0
  125. package/behaviors/registry/ui/core/atoms/ui-dialog.orb +6 -0
  126. package/behaviors/registry/ui/core/atoms/ui-divider.orb +6 -0
  127. package/behaviors/registry/ui/core/atoms/ui-filter-pill.orb +10 -0
  128. package/behaviors/registry/ui/core/atoms/ui-flip-container.orb +6 -0
  129. package/behaviors/registry/ui/core/atoms/ui-game-icon.orb +6 -0
  130. package/behaviors/registry/ui/core/atoms/ui-hstack.orb +6 -0
  131. package/behaviors/registry/ui/core/atoms/ui-icon.orb +6 -0
  132. package/behaviors/registry/ui/core/atoms/ui-infinite-scroll-sentinel.orb +6 -0
  133. package/behaviors/registry/ui/core/atoms/ui-input.orb +10 -0
  134. package/behaviors/registry/ui/core/atoms/ui-label.orb +6 -0
  135. package/behaviors/registry/ui/core/atoms/ui-law-reference-tooltip.orb +6 -0
  136. package/behaviors/registry/ui/core/atoms/ui-overlay.orb +6 -0
  137. package/behaviors/registry/ui/core/atoms/ui-presence.orb +6 -0
  138. package/behaviors/registry/ui/core/atoms/ui-progress-bar.orb +6 -0
  139. package/behaviors/registry/ui/core/atoms/ui-radio.orb +10 -0
  140. package/behaviors/registry/ui/core/atoms/ui-range-slider.orb +10 -0
  141. package/behaviors/registry/ui/core/atoms/ui-section-header.orb +6 -0
  142. package/behaviors/registry/ui/core/atoms/ui-select.orb +6 -0
  143. package/behaviors/registry/ui/core/atoms/ui-spacer.orb +6 -0
  144. package/behaviors/registry/ui/core/atoms/ui-sparkline.orb +6 -0
  145. package/behaviors/registry/ui/core/atoms/ui-spinner.orb +6 -0
  146. package/behaviors/registry/ui/core/atoms/ui-stack.orb +6 -0
  147. package/behaviors/registry/ui/core/atoms/ui-status-dot.orb +6 -0
  148. package/behaviors/registry/ui/core/atoms/ui-svg-branch.orb +6 -0
  149. package/behaviors/registry/ui/core/atoms/ui-svg-connection.orb +6 -0
  150. package/behaviors/registry/ui/core/atoms/ui-svg-flow.orb +6 -0
  151. package/behaviors/registry/ui/core/atoms/ui-svg-grid.orb +6 -0
  152. package/behaviors/registry/ui/core/atoms/ui-svg-lobe.orb +6 -0
  153. package/behaviors/registry/ui/core/atoms/ui-svg-mesh.orb +6 -0
  154. package/behaviors/registry/ui/core/atoms/ui-svg-morph.orb +6 -0
  155. package/behaviors/registry/ui/core/atoms/ui-svg-node.orb +6 -0
  156. package/behaviors/registry/ui/core/atoms/ui-svg-pulse.orb +6 -0
  157. package/behaviors/registry/ui/core/atoms/ui-svg-ring.orb +6 -0
  158. package/behaviors/registry/ui/core/atoms/ui-svg-shield.orb +6 -0
  159. package/behaviors/registry/ui/core/atoms/ui-svg-stack.orb +6 -0
  160. package/behaviors/registry/ui/core/atoms/ui-switch.orb +10 -0
  161. package/behaviors/registry/ui/core/atoms/ui-text-highlight.orb +10 -0
  162. package/behaviors/registry/ui/core/atoms/ui-textarea.orb +6 -0
  163. package/behaviors/registry/ui/core/atoms/ui-theme-toggle.orb +6 -0
  164. package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +10 -0
  165. package/behaviors/registry/ui/core/atoms/ui-trait-frame.orb +6 -0
  166. package/behaviors/registry/ui/core/atoms/ui-trend-indicator.orb +6 -0
  167. package/behaviors/registry/ui/core/atoms/ui-typewriter-text.orb +6 -0
  168. package/behaviors/registry/ui/core/atoms/ui-typography.orb +6 -0
  169. package/behaviors/registry/ui/core/atoms/ui-vstack.orb +6 -0
  170. package/behaviors/registry/ui/core/molecules/std-stat-rows.orb +24 -1
  171. package/behaviors/registry/ui/core/molecules/ui-accordion.orb +6 -0
  172. package/behaviors/registry/ui/core/molecules/ui-activation-block.orb +6 -0
  173. package/behaviors/registry/ui/core/molecules/ui-alert.orb +6 -0
  174. package/behaviors/registry/ui/core/molecules/ui-bloom-quiz-block.orb +6 -0
  175. package/behaviors/registry/ui/core/molecules/ui-branching-logic-builder.orb +6 -0
  176. package/behaviors/registry/ui/core/molecules/ui-breadcrumb.orb +6 -0
  177. package/behaviors/registry/ui/core/molecules/ui-calendar-grid.orb +10 -0
  178. package/behaviors/registry/ui/core/molecules/ui-carousel.orb +6 -0
  179. package/behaviors/registry/ui/core/molecules/ui-chart-legend.orb +6 -0
  180. package/behaviors/registry/ui/core/molecules/ui-chart.orb +6 -0
  181. package/behaviors/registry/ui/core/molecules/ui-code-block.orb +38 -4
  182. package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +10 -0
  183. package/behaviors/registry/ui/core/molecules/ui-confirm-dialog.orb +10 -0
  184. package/behaviors/registry/ui/core/molecules/ui-connection-block.orb +6 -0
  185. package/behaviors/registry/ui/core/molecules/ui-container.orb +6 -0
  186. package/behaviors/registry/ui/core/molecules/ui-content-renderer.orb +6 -0
  187. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +10 -0
  188. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +10 -0
  189. package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +14 -0
  190. package/behaviors/registry/ui/core/molecules/ui-date-range-selector.orb +6 -0
  191. package/behaviors/registry/ui/core/molecules/ui-doc-breadcrumb.orb +6 -0
  192. package/behaviors/registry/ui/core/molecules/ui-doc-pagination.orb +6 -0
  193. package/behaviors/registry/ui/core/molecules/ui-doc-search.orb +6 -0
  194. package/behaviors/registry/ui/core/molecules/ui-doc-sidebar.orb +6 -0
  195. package/behaviors/registry/ui/core/molecules/ui-doc-toc.orb +6 -0
  196. package/behaviors/registry/ui/core/molecules/ui-document-details.orb +10 -0
  197. package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +14 -0
  198. package/behaviors/registry/ui/core/molecules/ui-document-viewer.orb +6 -0
  199. package/behaviors/registry/ui/core/molecules/ui-drawer.orb +10 -0
  200. package/behaviors/registry/ui/core/molecules/ui-edge-decoration.orb +6 -0
  201. package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +6 -0
  202. package/behaviors/registry/ui/core/molecules/ui-empty-state.orb +6 -0
  203. package/behaviors/registry/ui/core/molecules/ui-error-boundary.orb +6 -0
  204. package/behaviors/registry/ui/core/molecules/ui-error-state.orb +6 -0
  205. package/behaviors/registry/ui/core/molecules/ui-feature-grid.orb +6 -0
  206. package/behaviors/registry/ui/core/molecules/ui-file-tree.orb +6 -0
  207. package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +14 -0
  208. package/behaviors/registry/ui/core/molecules/ui-flex.orb +6 -0
  209. package/behaviors/registry/ui/core/molecules/ui-flip-card.orb +6 -0
  210. package/behaviors/registry/ui/core/molecules/ui-floating-action-button.orb +6 -0
  211. package/behaviors/registry/ui/core/molecules/ui-floating-toolbar.orb +10 -1
  212. package/behaviors/registry/ui/core/molecules/ui-form-actions.orb +10 -0
  213. package/behaviors/registry/ui/core/molecules/ui-form-field.orb +6 -0
  214. package/behaviors/registry/ui/core/molecules/ui-form-layout.orb +6 -0
  215. package/behaviors/registry/ui/core/molecules/ui-form-section-header.orb +6 -0
  216. package/behaviors/registry/ui/core/molecules/ui-fx-overlay.orb +6 -0
  217. package/behaviors/registry/ui/core/molecules/ui-gradient-divider.orb +6 -0
  218. package/behaviors/registry/ui/core/molecules/ui-graph-canvas.orb +6 -0
  219. package/behaviors/registry/ui/core/molecules/ui-graph-view.orb +6 -0
  220. package/behaviors/registry/ui/core/molecules/ui-grid.orb +6 -0
  221. package/behaviors/registry/ui/core/molecules/ui-header.orb +6 -0
  222. package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +6 -0
  223. package/behaviors/registry/ui/core/molecules/ui-import-progress.orb +6 -0
  224. package/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +6 -0
  225. package/behaviors/registry/ui/core/molecules/ui-input-group.orb +10 -0
  226. package/behaviors/registry/ui/core/molecules/ui-jazari-state-machine.orb +6 -0
  227. package/behaviors/registry/ui/core/molecules/ui-lightbox.orb +10 -0
  228. package/behaviors/registry/ui/core/molecules/ui-likert-scale.orb +6 -0
  229. package/behaviors/registry/ui/core/molecules/ui-line-chart.orb +6 -0
  230. package/behaviors/registry/ui/core/molecules/ui-loading-state.orb +6 -0
  231. package/behaviors/registry/ui/core/molecules/ui-map-view.orb +6 -0
  232. package/behaviors/registry/ui/core/molecules/ui-markdown-content.orb +6 -0
  233. package/behaviors/registry/ui/core/molecules/ui-matrix-question.orb +6 -0
  234. package/behaviors/registry/ui/core/molecules/ui-menu.orb +21 -0
  235. package/behaviors/registry/ui/core/molecules/ui-meter.orb +6 -0
  236. package/behaviors/registry/ui/core/molecules/ui-modal.orb +10 -0
  237. package/behaviors/registry/ui/core/molecules/ui-navigation.orb +6 -0
  238. package/behaviors/registry/ui/core/molecules/ui-notification.orb +6 -0
  239. package/behaviors/registry/ui/core/molecules/ui-number-stepper.orb +10 -0
  240. package/behaviors/registry/ui/core/molecules/ui-option-constraint-group.orb +6 -0
  241. package/behaviors/registry/ui/core/molecules/ui-orbital-visualization.orb +6 -0
  242. package/behaviors/registry/ui/core/molecules/ui-page-header.orb +6 -0
  243. package/behaviors/registry/ui/core/molecules/ui-page-transition.orb +6 -0
  244. package/behaviors/registry/ui/core/molecules/ui-pagination.orb +10 -0
  245. package/behaviors/registry/ui/core/molecules/ui-popover.orb +10 -0
  246. package/behaviors/registry/ui/core/molecules/ui-positioned-canvas.orb +10 -0
  247. package/behaviors/registry/ui/core/molecules/ui-progress-dots.orb +6 -0
  248. package/behaviors/registry/ui/core/molecules/ui-pull-to-refresh.orb +6 -0
  249. package/behaviors/registry/ui/core/molecules/ui-qr-scanner.orb +6 -0
  250. package/behaviors/registry/ui/core/molecules/ui-quiz-block.orb +6 -0
  251. package/behaviors/registry/ui/core/molecules/ui-reflection-block.orb +6 -0
  252. package/behaviors/registry/ui/core/molecules/ui-relation-select.orb +10 -0
  253. package/behaviors/registry/ui/core/molecules/ui-repeatable-form-section.orb +6 -0
  254. package/behaviors/registry/ui/core/molecules/ui-reply-tree.orb +10 -0
  255. package/behaviors/registry/ui/core/molecules/ui-rich-text-editor.orb +10 -0
  256. package/behaviors/registry/ui/core/molecules/ui-scaled-diagram.orb +6 -0
  257. package/behaviors/registry/ui/core/molecules/ui-search-input.orb +14 -0
  258. package/behaviors/registry/ui/core/molecules/ui-section.orb +6 -0
  259. package/behaviors/registry/ui/core/molecules/ui-side-panel.orb +10 -0
  260. package/behaviors/registry/ui/core/molecules/ui-sidebar.orb +10 -0
  261. package/behaviors/registry/ui/core/molecules/ui-signature-pad.orb +6 -0
  262. package/behaviors/registry/ui/core/molecules/ui-simple-grid.orb +6 -0
  263. package/behaviors/registry/ui/core/molecules/ui-skeleton.orb +6 -0
  264. package/behaviors/registry/ui/core/molecules/ui-social-proof.orb +6 -0
  265. package/behaviors/registry/ui/core/molecules/ui-sortable-list.orb +10 -0
  266. package/behaviors/registry/ui/core/molecules/ui-split.orb +6 -0
  267. package/behaviors/registry/ui/core/molecules/ui-star-rating.orb +10 -0
  268. package/behaviors/registry/ui/core/molecules/ui-stat-display.orb +6 -0
  269. package/behaviors/registry/ui/core/molecules/ui-swipeable-row.orb +6 -0
  270. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +10 -0
  271. package/behaviors/registry/ui/core/molecules/ui-tabs.orb +6 -0
  272. package/behaviors/registry/ui/core/molecules/ui-tag-input.orb +6 -0
  273. package/behaviors/registry/ui/core/molecules/ui-tooltip.orb +6 -0
  274. package/behaviors/registry/ui/core/molecules/ui-upload-drop-zone.orb +6 -0
  275. package/behaviors/registry/ui/core/molecules/ui-version-diff.orb +6 -0
  276. package/behaviors/registry/ui/core/molecules/ui-violation-alert.orb +6 -0
  277. package/behaviors/registry/ui/core/molecules/ui-vote-stack.orb +6 -0
  278. package/behaviors/registry/ui/core/molecules/ui-wizard-container.orb +6 -0
  279. package/behaviors/registry/ui/core/molecules/ui-wizard-navigation.orb +14 -0
  280. package/behaviors/registry/ui/core/molecules/ui-wizard-progress.orb +6 -0
  281. package/behaviors/registry/ui/core/organisms/ui-chat-bar.orb +6 -0
  282. package/behaviors/registry/ui/core/organisms/ui-code-runner-panel.orb +6 -0
  283. package/behaviors/registry/ui/core/organisms/ui-dashboard-grid.orb +6 -0
  284. package/behaviors/registry/ui/core/organisms/ui-detail-panel.orb +10 -0
  285. package/behaviors/registry/ui/core/organisms/ui-dock-layout.orb +6 -0
  286. package/behaviors/registry/ui/core/organisms/ui-drawer-slot.orb +10 -0
  287. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +10 -0
  288. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +10 -0
  289. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +10 -0
  290. package/behaviors/registry/ui/core/organisms/ui-form-section.orb +10 -0
  291. package/behaviors/registry/ui/core/organisms/ui-form.orb +10 -0
  292. package/behaviors/registry/ui/core/organisms/ui-master-detail-layout.orb +6 -0
  293. package/behaviors/registry/ui/core/organisms/ui-master-detail.orb +10 -0
  294. package/behaviors/registry/ui/core/organisms/ui-media-gallery.orb +10 -0
  295. package/behaviors/registry/ui/core/organisms/ui-modal-slot.orb +10 -0
  296. package/behaviors/registry/ui/core/organisms/ui-runtime-debugger.orb +6 -0
  297. package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +6 -0
  298. package/behaviors/registry/ui/core/organisms/ui-split-pane.orb +10 -0
  299. package/behaviors/registry/ui/core/organisms/ui-stat-card.orb +10 -0
  300. package/behaviors/registry/ui/core/organisms/ui-state-machine-view.orb +6 -0
  301. package/behaviors/registry/ui/core/organisms/ui-subagent-trace-panel.orb +10 -0
  302. package/behaviors/registry/ui/core/organisms/ui-tabbed-container.orb +6 -0
  303. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +10 -0
  304. package/behaviors/registry/ui/core/organisms/ui-toast-slot.orb +10 -0
  305. package/behaviors/registry/ui/core/templates/ui-counter-template.orb +10 -0
  306. package/behaviors/registry/ui/core/templates/ui-dashboard-layout.orb +6 -0
  307. package/behaviors/registry/ui/core/templates/ui-generic-app-template.orb +10 -0
  308. package/behaviors/registry/ui/game/atoms/std-arcade-flow.orb +10 -0
  309. package/behaviors/registry/ui/game/atoms/std-arcade-play.orb +89 -1
  310. package/behaviors/registry/ui/game/atoms/std-area-fill.orb +219 -4
  311. package/behaviors/registry/ui/game/atoms/std-audio-cue.orb +30 -0
  312. package/behaviors/registry/ui/game/atoms/std-camera-rig.orb +63 -0
  313. package/behaviors/registry/ui/game/atoms/std-chase-ai.orb +133 -1
  314. package/behaviors/registry/ui/game/atoms/std-choice-gate.orb +122 -3
  315. package/behaviors/registry/ui/game/atoms/std-coef-pad.orb +159 -3
  316. package/behaviors/registry/ui/game/atoms/std-curve-fog.orb +26 -1
  317. package/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +150 -1
  318. package/behaviors/registry/ui/game/atoms/std-fx-narrative.orb +18 -0
  319. package/behaviors/registry/ui/game/atoms/std-fx-particles.orb +15 -0
  320. package/behaviors/registry/ui/game/atoms/std-fx-trail.orb +40 -1
  321. package/behaviors/registry/ui/game/atoms/std-gate-lock.orb +120 -3
  322. package/behaviors/registry/ui/game/atoms/std-gather.orb +180 -1
  323. package/behaviors/registry/ui/game/atoms/std-gold.orb +10 -0
  324. package/behaviors/registry/ui/game/atoms/std-grid-tactics.orb +130 -1
  325. package/behaviors/registry/ui/game/atoms/std-hero-nav.orb +92 -1
  326. package/behaviors/registry/ui/game/atoms/std-lives.orb +38 -0
  327. package/behaviors/registry/ui/game/atoms/std-loop-lock.orb +117 -3
  328. package/behaviors/registry/ui/game/atoms/std-market-flow.orb +10 -0
  329. package/behaviors/registry/ui/game/atoms/std-mesh-asset-art.orb +10 -0
  330. package/behaviors/registry/ui/game/atoms/std-motion-body.orb +68 -1
  331. package/behaviors/registry/ui/game/atoms/std-objective-flow.orb +10 -0
  332. package/behaviors/registry/ui/game/atoms/std-objective-reach.orb +184 -1
  333. package/behaviors/registry/ui/game/atoms/std-pad-lock.orb +118 -3
  334. package/behaviors/registry/ui/game/atoms/std-patience.orb +215 -1
  335. package/behaviors/registry/ui/game/atoms/std-patrol-hazard.orb +161 -3
  336. package/behaviors/registry/ui/game/atoms/std-pickup.orb +387 -24
  337. package/behaviors/registry/ui/game/atoms/std-platformer-body.orb +505 -17
  338. package/behaviors/registry/ui/game/atoms/std-production.orb +14 -0
  339. package/behaviors/registry/ui/game/atoms/std-round-flow.orb +10 -0
  340. package/behaviors/registry/ui/game/atoms/std-score.orb +10 -0
  341. package/behaviors/registry/ui/game/atoms/std-survival-flow.orb +10 -0
  342. package/behaviors/registry/ui/game/atoms/std-svg-asset-art.orb +10 -0
  343. package/behaviors/registry/ui/game/atoms/std-tutorial-autodemo.orb +117 -1
  344. package/behaviors/registry/ui/game/atoms/std-tutorial-overlay.orb +36 -0
  345. package/behaviors/registry/ui/game/atoms/std-velocity-gate.orb +140 -3
  346. package/behaviors/registry/ui/game/atoms/std-xp.orb +22 -0
  347. package/behaviors/registry/ui/game/atoms/std-zone-card.orb +70 -1
  348. package/behaviors/registry/ui/game/atoms/ui-action-palette.orb +6 -0
  349. package/behaviors/registry/ui/game/atoms/ui-action-tile.orb +6 -0
  350. package/behaviors/registry/ui/game/atoms/ui-canvas-2d.orb +6 -0
  351. package/behaviors/registry/ui/game/atoms/ui-canvas.orb +6 -0
  352. package/behaviors/registry/ui/game/atoms/ui-choice-button.orb +6 -0
  353. package/behaviors/registry/ui/game/atoms/ui-control-button.orb +6 -0
  354. package/behaviors/registry/ui/game/atoms/ui-control-grid.orb +6 -0
  355. package/behaviors/registry/ui/game/atoms/ui-dialogue-bubble.orb +6 -0
  356. package/behaviors/registry/ui/game/atoms/ui-draw-fx-layer.orb +6 -0
  357. package/behaviors/registry/ui/game/atoms/ui-draw-group.orb +6 -0
  358. package/behaviors/registry/ui/game/atoms/ui-draw-mesh.orb +6 -0
  359. package/behaviors/registry/ui/game/atoms/ui-draw-shape-layer.orb +6 -0
  360. package/behaviors/registry/ui/game/atoms/ui-draw-shape.orb +6 -0
  361. package/behaviors/registry/ui/game/atoms/ui-draw-sprite-layer.orb +6 -0
  362. package/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +6 -0
  363. package/behaviors/registry/ui/game/atoms/ui-draw-text-layer.orb +6 -0
  364. package/behaviors/registry/ui/game/atoms/ui-draw-text.orb +6 -0
  365. package/behaviors/registry/ui/game/atoms/ui-game-audio-cue.orb +6 -0
  366. package/behaviors/registry/ui/game/atoms/ui-game-audio-toggle.orb +6 -0
  367. package/behaviors/registry/ui/game/atoms/ui-game-hud.orb +6 -0
  368. package/behaviors/registry/ui/game/atoms/ui-game-menu.orb +6 -0
  369. package/behaviors/registry/ui/game/atoms/ui-health-bar.orb +6 -0
  370. package/behaviors/registry/ui/game/atoms/ui-score-display.orb +6 -0
  371. package/behaviors/registry/ui/game/atoms/ui-sequence-bar.orb +6 -0
  372. package/behaviors/registry/ui/game/atoms/ui-stat-badge.orb +6 -0
  373. package/behaviors/registry/ui/game/atoms/ui-state-graph.orb +6 -0
  374. package/behaviors/registry/ui/game/atoms/ui-state-json-view.orb +6 -0
  375. package/behaviors/registry/ui/game/atoms/ui-timer-display.orb +84 -1
  376. package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +10 -0
  377. package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +567 -8
  378. package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +545 -6
  379. package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +804 -10
  380. package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +597 -8
  381. package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +565 -8
  382. package/behaviors/registry/ui/game/organisms/std-platformer-board-2d.orb +561 -6
  383. package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +2075 -0
  384. package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +551 -8
  385. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +667 -12
  386. package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +707 -8
  387. package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +506 -6
  388. package/behaviors/registry/ui/game/templates/ui-game-shell.orb +115 -1
  389. package/behaviors/registry/ui/learning/atoms/std-learn-arrangement.orb +201 -1
  390. package/behaviors/registry/ui/learning/atoms/std-learn-classify.orb +325 -1
  391. package/behaviors/registry/ui/learning/atoms/std-learn-compare.orb +108 -1
  392. package/behaviors/registry/ui/learning/atoms/std-learn-coupled-sim.orb +147 -1
  393. package/behaviors/registry/ui/learning/atoms/std-learn-derivation.orb +190 -1
  394. package/behaviors/registry/ui/learning/atoms/std-learn-diagram.orb +111 -1
  395. package/behaviors/registry/ui/learning/atoms/std-learn-doser.orb +164 -1
  396. package/behaviors/registry/ui/learning/atoms/std-learn-estimate.orb +105 -1
  397. package/behaviors/registry/ui/learning/atoms/std-learn-fx-cues.orb +169 -1
  398. package/behaviors/registry/ui/learning/atoms/std-learn-goal-seek.orb +128 -1
  399. package/behaviors/registry/ui/learning/atoms/std-learn-grid-sim.orb +123 -2
  400. package/behaviors/registry/ui/learning/atoms/std-learn-hotspot.orb +178 -1
  401. package/behaviors/registry/ui/learning/atoms/std-learn-live-sim.orb +105 -1
  402. package/behaviors/registry/ui/learning/atoms/std-learn-measure.orb +145 -1
  403. package/behaviors/registry/ui/learning/atoms/std-learn-param-explorer.orb +100 -1
  404. package/behaviors/registry/ui/learning/atoms/std-learn-perturb.orb +133 -1
  405. package/behaviors/registry/ui/learning/atoms/std-learn-predict.orb +247 -1
  406. package/behaviors/registry/ui/learning/atoms/std-learn-sample-accumulator.orb +180 -1
  407. package/behaviors/registry/ui/learning/atoms/std-learn-sandbox.orb +135 -1
  408. package/behaviors/registry/ui/learning/atoms/std-learn-scatter-fit.orb +206 -1
  409. package/behaviors/registry/ui/learning/atoms/std-learn-scenario.orb +129 -1
  410. package/behaviors/registry/ui/learning/atoms/std-learn-sim-3d.orb +53 -0
  411. package/behaviors/registry/ui/learning/atoms/std-learn-slope-probe.orb +168 -8
  412. package/behaviors/registry/ui/learning/atoms/std-learn-speed-drill.orb +135 -1
  413. package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +254 -1
  414. package/behaviors/registry/ui/learning/atoms/std-learn-tour-3d.orb +315 -1
  415. package/behaviors/registry/ui/learning/atoms/std-learn-trace-player.orb +131 -1
  416. package/behaviors/registry/ui/learning/atoms/std-learn-transport.orb +57 -0
  417. package/behaviors/registry/ui/learning/atoms/std-learn-tree.orb +214 -1
  418. package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +6 -0
  419. package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +6 -0
  420. package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +6 -0
  421. package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +6 -0
  422. package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +6 -0
  423. package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +6 -0
  424. package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +6 -0
  425. package/behaviors/registry/ui/marketing/atoms/std-marketing-article.orb +1 -2
  426. package/behaviors/registry/ui/marketing/atoms/std-marketing-cta.orb +14 -0
  427. package/behaviors/registry/ui/marketing/atoms/std-marketing-features.orb +37 -1
  428. package/behaviors/registry/ui/marketing/atoms/std-marketing-footer.orb +52 -2
  429. package/behaviors/registry/ui/marketing/atoms/std-marketing-hero.orb +14 -0
  430. package/behaviors/registry/ui/marketing/atoms/std-marketing-nav.orb +25 -1
  431. package/behaviors/registry/ui/marketing/atoms/std-marketing-pricing.orb +59 -1
  432. package/behaviors/registry/ui/marketing/atoms/std-marketing-showcase.orb +62 -1
  433. package/behaviors/registry/ui/marketing/atoms/std-marketing-split.orb +1 -2
  434. package/behaviors/registry/ui/marketing/atoms/std-marketing-stats.orb +15 -2
  435. package/behaviors/registry/ui/marketing/atoms/std-marketing-steps.orb +28 -2
  436. package/behaviors/registry/ui/marketing/atoms/std-marketing-team.orb +33 -2
  437. package/behaviors/registry/ui/marketing/atoms/ui-animated-counter.orb +6 -0
  438. package/behaviors/registry/ui/marketing/atoms/ui-animated-graphic.orb +6 -0
  439. package/behaviors/registry/ui/marketing/atoms/ui-animated-reveal.orb +6 -0
  440. package/behaviors/registry/ui/marketing/atoms/ui-article-section.orb +6 -0
  441. package/behaviors/registry/ui/marketing/atoms/ui-case-study-card.orb +6 -0
  442. package/behaviors/registry/ui/marketing/atoms/ui-community-links.orb +6 -0
  443. package/behaviors/registry/ui/marketing/atoms/ui-content-section.orb +6 -0
  444. package/behaviors/registry/ui/marketing/atoms/ui-cta-banner.orb +6 -0
  445. package/behaviors/registry/ui/marketing/atoms/ui-feature-card.orb +6 -0
  446. package/behaviors/registry/ui/marketing/atoms/ui-geometric-pattern.orb +6 -0
  447. package/behaviors/registry/ui/marketing/atoms/ui-hero-section.orb +6 -0
  448. package/behaviors/registry/ui/marketing/atoms/ui-install-box.orb +6 -0
  449. package/behaviors/registry/ui/marketing/atoms/ui-marketing-footer.orb +6 -0
  450. package/behaviors/registry/ui/marketing/atoms/ui-marketing-stat-card.orb +6 -0
  451. package/behaviors/registry/ui/marketing/atoms/ui-pattern-tile.orb +6 -0
  452. package/behaviors/registry/ui/marketing/atoms/ui-pricing-card.orb +6 -0
  453. package/behaviors/registry/ui/marketing/atoms/ui-pricing-grid.orb +6 -0
  454. package/behaviors/registry/ui/marketing/atoms/ui-pull-quote.orb +6 -0
  455. package/behaviors/registry/ui/marketing/atoms/ui-service-catalog.orb +6 -0
  456. package/behaviors/registry/ui/marketing/atoms/ui-showcase-card.orb +6 -0
  457. package/behaviors/registry/ui/marketing/atoms/ui-split-section.orb +6 -0
  458. package/behaviors/registry/ui/marketing/atoms/ui-stats-grid.orb +6 -0
  459. package/behaviors/registry/ui/marketing/atoms/ui-step-flow.orb +6 -0
  460. package/behaviors/registry/ui/marketing/atoms/ui-tag-cloud.orb +6 -0
  461. package/behaviors/registry/ui/marketing/atoms/ui-team-card.orb +6 -0
  462. package/behaviors/registry/ui/marketing/organisms/ui-book-chapter-view.orb +10 -0
  463. package/behaviors/registry/ui/marketing/organisms/ui-book-cover-page.orb +6 -0
  464. package/behaviors/registry/ui/marketing/organisms/ui-book-nav-bar.orb +6 -0
  465. package/behaviors/registry/ui/marketing/organisms/ui-book-table-of-contents.orb +10 -0
  466. package/behaviors/registry/ui/marketing/organisms/ui-book-viewer.orb +10 -0
  467. package/behaviors/registry/ui/marketing/organisms/ui-case-study-organism.orb +10 -0
  468. package/behaviors/registry/ui/marketing/organisms/ui-feature-grid-organism.orb +10 -0
  469. package/behaviors/registry/ui/marketing/organisms/ui-hero-organism.orb +10 -0
  470. package/behaviors/registry/ui/marketing/organisms/ui-pricing-organism.orb +10 -0
  471. package/behaviors/registry/ui/marketing/organisms/ui-showcase-organism.orb +10 -0
  472. package/behaviors/registry/ui/marketing/organisms/ui-stats-organism.orb +10 -0
  473. package/behaviors/registry/ui/marketing/organisms/ui-step-flow-organism.orb +10 -0
  474. package/behaviors/registry/ui/marketing/organisms/ui-team-organism.orb +10 -0
  475. package/behaviors/registry/ui/marketing/templates/ui-about-page-template.orb +10 -0
  476. package/behaviors/registry/ui/marketing/templates/ui-auth-layout.orb +6 -0
  477. package/behaviors/registry/ui/marketing/templates/ui-feature-detail-page-template.orb +10 -0
  478. package/behaviors/registry/ui/marketing/templates/ui-landing-page-template.orb +10 -0
  479. package/behaviors/registry/ui/marketing/templates/ui-pricing-page-template.orb +10 -0
  480. package/dist/behaviors/exports-reader.js +7542 -2555
  481. package/dist/behaviors/functions/index.d.ts +161 -106
  482. package/dist/behaviors/functions/index.js +7539 -2553
  483. package/dist/behaviors/index.d.ts +1 -1
  484. package/dist/behaviors/index.js +7543 -2556
  485. package/dist/behaviors/query.d.ts +6 -0
  486. package/dist/behaviors/query.js +7542 -2555
  487. package/dist/behaviors-embeddings.hash.json +3 -3
  488. package/dist/behaviors-embeddings.json +29 -29
  489. package/dist/behaviors-registry.json +11423 -827
  490. package/dist/index.d.ts +1 -1
  491. package/dist/index.js +7543 -2556
  492. package/dist/knob-embeddings.hash.json +3 -3
  493. package/dist/knob-embeddings.json +1 -1
  494. package/dist/registry/factory-signatures.json +1 -1
  495. package/package.json +2 -2
  496. package/behaviors/lolo/ui/game/atoms/std-game-design-sheet.lolo +0 -69
  497. package/behaviors/registry/ui/game/atoms/std-game-design-sheet.orb +0 -527
@@ -1,5 +1,5 @@
1
1
  {
2
- "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.",
2
+ "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.",
3
3
  "ledger": {
4
4
  "entries": {
5
5
  "ent_01M1N9RFGVPGR86MHTEQC9T0HK": {
@@ -73,6 +73,15 @@
73
73
  "parent": "trt_01M1N9RFGV6G937WGGW6HPTVC3",
74
74
  "renames": []
75
75
  },
76
+ "evt_01M1QEG1N3BF95WY8CXTBH1VYB": {
77
+ "bakedName": "EDITOR_FOCUS",
78
+ "curName": "EDITOR_FOCUS",
79
+ "id": "evt_01M1QEG1N3BF95WY8CXTBH1VYB",
80
+ "kind": "event",
81
+ "owner": "workspace",
82
+ "parent": "trt_01M1N9RFGV6G937WGGW6HPTVC3",
83
+ "renames": []
84
+ },
76
85
  "orb_01M1N9RFGVXRX7KY7J5VAKVWB8": {
77
86
  "bakedName": "ModalEditorOrbital",
78
87
  "curName": "ModalEditorOrbital",
@@ -134,6 +143,21 @@
134
143
  "default": "",
135
144
  "name": "cmdline",
136
145
  "type": "string"
146
+ },
147
+ {
148
+ "default": "",
149
+ "name": "lastOperator",
150
+ "type": "string"
151
+ },
152
+ {
153
+ "default": "",
154
+ "name": "lastMotion",
155
+ "type": "string"
156
+ },
157
+ {
158
+ "default": 0.0,
159
+ "name": "lastCount",
160
+ "type": "number"
137
161
  }
138
162
  ],
139
163
  "id": "ent_01M1N9RFGVPGR86MHTEQC9T0HK",
@@ -167,6 +191,14 @@
167
191
  "tier": "presentation",
168
192
  "type": "string"
169
193
  },
194
+ "appendLineKey": {
195
+ "default": "A",
196
+ "description": "Key that moves to line end and past it, then switches to INSERT — vim's `A`.",
197
+ "label": "Enter INSERT at end of line",
198
+ "synonyms": "append at end of line",
199
+ "tier": "presentation",
200
+ "type": "string"
201
+ },
170
202
  "commandKey": {
171
203
  "default": ":",
172
204
  "description": "Key that switches NORMAL to COMMAND and starts buffering an ex-command line.",
@@ -175,6 +207,22 @@
175
207
  "tier": "presentation",
176
208
  "type": "string"
177
209
  },
210
+ "deleteCharBackKey": {
211
+ "default": "X",
212
+ "description": "Key that deletes the character(s) to the left of the caret, count times.",
213
+ "label": "Delete char before caret",
214
+ "synonyms": "delete char back",
215
+ "tier": "presentation",
216
+ "type": "string"
217
+ },
218
+ "deleteCharKey": {
219
+ "default": "x",
220
+ "description": "Key that deletes the character(s) to the right of the caret, count times.",
221
+ "label": "Delete char under caret",
222
+ "synonyms": "delete char, x",
223
+ "tier": "presentation",
224
+ "type": "string"
225
+ },
178
226
  "digits": {
179
227
  "default": {
180
228
  "0": 0.0,
@@ -188,7 +236,7 @@
188
236
  "8": 8.0,
189
237
  "9": 9.0
190
238
  },
191
- "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.",
239
+ "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.",
192
240
  "items": {
193
241
  "type": "number"
194
242
  },
@@ -199,8 +247,10 @@
199
247
  "exCommands": {
200
248
  "default": {
201
249
  "q": "close-tab",
250
+ "q!": "close-tab-discard",
202
251
  "w": "save",
203
- "wq": "save-close-tab"
252
+ "wq": "save-close-tab",
253
+ "x": "save-close-tab"
204
254
  },
205
255
  "description": "Buffered COMMAND-mode lines (typed after ':') mapped to a neutral command name carried on EX_COMMAND.",
206
256
  "items": {
@@ -211,6 +261,14 @@
211
261
  "tier": "domain",
212
262
  "type": "Map<string,string>"
213
263
  },
264
+ "gotoPrefixKey": {
265
+ "default": "g",
266
+ "description": "Arms OPERATOR_PENDING with the `goto` pseudo-operator; pressed again (`gg`) moves to the document start. Any other key cancels back to NORMAL.",
267
+ "label": "Goto prefix",
268
+ "synonyms": "goto, gg, doc start",
269
+ "tier": "presentation",
270
+ "type": "string"
271
+ },
214
272
  "insertKey": {
215
273
  "default": "i",
216
274
  "description": "Key that switches NORMAL to INSERT with the caret unchanged.",
@@ -219,14 +277,67 @@
219
277
  "tier": "presentation",
220
278
  "type": "string"
221
279
  },
280
+ "insertLineKey": {
281
+ "default": "I",
282
+ "description": "Key that moves to the line's first non-blank column, then switches to INSERT — vim's `I`.",
283
+ "label": "Enter INSERT at first non-blank",
284
+ "synonyms": "insert at line start",
285
+ "tier": "presentation",
286
+ "type": "string"
287
+ },
288
+ "joinKey": {
289
+ "default": "J",
290
+ "description": "Key that joins the current line with the line(s) below; a count above 1 joins that many lines.",
291
+ "label": "Join lines",
292
+ "synonyms": "join lines",
293
+ "tier": "presentation",
294
+ "type": "string"
295
+ },
222
296
  "keymap": {
223
297
  "default": {
224
298
  "COMMAND": [
225
299
  "Escape",
226
300
  "Enter",
227
301
  "Backspace",
302
+ "a",
303
+ "b",
304
+ "c",
305
+ "d",
306
+ "e",
307
+ "f",
308
+ "g",
309
+ "h",
310
+ "i",
311
+ "j",
312
+ "k",
313
+ "l",
314
+ "m",
315
+ "n",
316
+ "o",
317
+ "p",
318
+ "q",
319
+ "r",
320
+ "s",
321
+ "t",
322
+ "u",
323
+ "v",
228
324
  "w",
229
- "q"
325
+ "x",
326
+ "y",
327
+ "z",
328
+ "0",
329
+ "1",
330
+ "2",
331
+ "3",
332
+ "4",
333
+ "5",
334
+ "6",
335
+ "7",
336
+ "8",
337
+ "9",
338
+ "!",
339
+ "%",
340
+ " "
230
341
  ],
231
342
  "INSERT": [
232
343
  "Escape"
@@ -235,6 +346,9 @@
235
346
  "i",
236
347
  "a",
237
348
  "o",
349
+ "O",
350
+ "A",
351
+ "I",
238
352
  "v",
239
353
  ":",
240
354
  "d",
@@ -262,6 +376,19 @@
262
376
  "G",
263
377
  "{",
264
378
  "}",
379
+ "%",
380
+ ">",
381
+ "<",
382
+ "x",
383
+ "X",
384
+ "p",
385
+ "P",
386
+ "u",
387
+ "r",
388
+ "~",
389
+ "J",
390
+ ".",
391
+ "g",
265
392
  "Escape"
266
393
  ],
267
394
  "OPERATOR_PENDING": [
@@ -277,11 +404,24 @@
277
404
  "b",
278
405
  "e",
279
406
  "0",
407
+ "1",
408
+ "2",
409
+ "3",
410
+ "4",
411
+ "5",
412
+ "6",
413
+ "7",
414
+ "8",
415
+ "9",
280
416
  "$",
281
417
  "^",
282
418
  "G",
283
419
  "{",
284
- "}"
420
+ "}",
421
+ "%",
422
+ ">",
423
+ "<",
424
+ "g"
285
425
  ],
286
426
  "VISUAL": [
287
427
  "Escape",
@@ -300,7 +440,12 @@
300
440
  "^",
301
441
  "G",
302
442
  "{",
303
- "}"
443
+ "}",
444
+ "%",
445
+ "~",
446
+ ">",
447
+ "<",
448
+ "J"
304
449
  ]
305
450
  },
306
451
  "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.",
@@ -317,6 +462,7 @@
317
462
  "motions": {
318
463
  "default": {
319
464
  "$": "line-end",
465
+ "%": "match-bracket",
320
466
  "0": "line-start",
321
467
  "G": "doc-end",
322
468
  "^": "first-nonblank",
@@ -339,9 +485,17 @@
339
485
  "tier": "domain",
340
486
  "type": "Map<string,string>"
341
487
  },
488
+ "openLineAboveKey": {
489
+ "default": "O",
490
+ "description": "Key that moves to line start, inserts a newline, then moves up and switches to INSERT — vim's `O`.",
491
+ "label": "Open a line above and insert",
492
+ "synonyms": "open line above, new line above",
493
+ "tier": "presentation",
494
+ "type": "string"
495
+ },
342
496
  "openLineKey": {
343
497
  "default": "o",
344
- "description": "Key that moves to line end, inserts a newline, then switches to INSERT.",
498
+ "description": "Key that moves to line end (past the last char), inserts a newline, then switches to INSERT — vim's `o`.",
345
499
  "label": "Open a line below and insert",
346
500
  "synonyms": "open line, new line below",
347
501
  "tier": "presentation",
@@ -349,6 +503,8 @@
349
503
  },
350
504
  "operators": {
351
505
  "default": {
506
+ "<": "dedent",
507
+ ">": "indent",
352
508
  "c": "change",
353
509
  "d": "delete",
354
510
  "y": "yank"
@@ -358,10 +514,66 @@
358
514
  "type": "string"
359
515
  },
360
516
  "label": "Operator keys",
361
- "synonyms": "operators, delete, yank, change",
517
+ "synonyms": "operators, delete, yank, change, indent, dedent",
362
518
  "tier": "domain",
363
519
  "type": "Map<string,string>"
364
520
  },
521
+ "putBeforeKey": {
522
+ "default": "P",
523
+ "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.",
524
+ "label": "Put before caret",
525
+ "synonyms": "paste before, put before",
526
+ "tier": "presentation",
527
+ "type": "string"
528
+ },
529
+ "putKey": {
530
+ "default": "p",
531
+ "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.",
532
+ "label": "Put after caret",
533
+ "synonyms": "paste, put",
534
+ "tier": "presentation",
535
+ "type": "string"
536
+ },
537
+ "redoKey": {
538
+ "default": "r",
539
+ "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.",
540
+ "label": "Redo (with Ctrl)",
541
+ "synonyms": "redo, ctrl-r",
542
+ "tier": "presentation",
543
+ "type": "string"
544
+ },
545
+ "repeatKey": {
546
+ "default": ".",
547
+ "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.",
548
+ "label": "Repeat last change",
549
+ "synonyms": "repeat, dot repeat",
550
+ "tier": "presentation",
551
+ "type": "string"
552
+ },
553
+ "replaceKey": {
554
+ "default": "r",
555
+ "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.",
556
+ "label": "Replace char",
557
+ "synonyms": "replace char",
558
+ "tier": "presentation",
559
+ "type": "string"
560
+ },
561
+ "toggleCaseKey": {
562
+ "default": "~",
563
+ "description": "Key that flips the case of the character under the caret, count times.",
564
+ "label": "Toggle case",
565
+ "synonyms": "toggle case, tilde",
566
+ "tier": "presentation",
567
+ "type": "string"
568
+ },
569
+ "undoKey": {
570
+ "default": "u",
571
+ "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.",
572
+ "label": "Undo",
573
+ "synonyms": "undo",
574
+ "tier": "presentation",
575
+ "type": "string"
576
+ },
365
577
  "visualKey": {
366
578
  "default": "v",
367
579
  "description": "Key that switches NORMAL to VISUAL; motions then extend the selection and an operator acts on it.",
@@ -371,6 +583,60 @@
371
583
  "type": "string"
372
584
  }
373
585
  },
586
+ "effectRow": [
587
+ {
588
+ "kind": "emit",
589
+ "resource": "EX_COMMAND"
590
+ },
591
+ {
592
+ "kind": "emit",
593
+ "resource": "INSERT_TEXT"
594
+ },
595
+ {
596
+ "kind": "emit",
597
+ "resource": "MOTION"
598
+ },
599
+ {
600
+ "kind": "emit",
601
+ "resource": "OPERATE"
602
+ },
603
+ {
604
+ "kind": "emit",
605
+ "resource": "SET_MODE"
606
+ },
607
+ {
608
+ "kind": "set",
609
+ "resource": "@entity.cmdline"
610
+ },
611
+ {
612
+ "kind": "set",
613
+ "resource": "@entity.count"
614
+ },
615
+ {
616
+ "kind": "set",
617
+ "resource": "@entity.editorId"
618
+ },
619
+ {
620
+ "kind": "set",
621
+ "resource": "@entity.lastCount"
622
+ },
623
+ {
624
+ "kind": "set",
625
+ "resource": "@entity.lastMotion"
626
+ },
627
+ {
628
+ "kind": "set",
629
+ "resource": "@entity.lastOperator"
630
+ },
631
+ {
632
+ "kind": "set",
633
+ "resource": "@entity.operator"
634
+ },
635
+ {
636
+ "kind": "set",
637
+ "resource": "@entity.operatorKey"
638
+ }
639
+ ],
374
640
  "emits": [
375
641
  {
376
642
  "description": "Mode + caret instruction for the editor surface (bar | block). Also the fact a realization reads to drive a mode indicator.",
@@ -415,7 +681,7 @@
415
681
  "tier": "primary"
416
682
  },
417
683
  {
418
- "description": "Apply a config-declared operator (delete | yank | change) over the range a motion describes; `line` for doubled operators, `selection` in VISUAL.",
684
+ "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.",
419
685
  "event": "OPERATE",
420
686
  "eventId": "evt_01M1N9RFGVV28SH1SVXFJ7X9XY",
421
687
  "payloadSchema": [
@@ -440,7 +706,7 @@
440
706
  "tier": "primary"
441
707
  },
442
708
  {
443
- "description": "Insert literal text at the caret (e.g. the newline `o` opens before entering INSERT).",
709
+ "description": "Insert literal text at the caret (e.g. the newline `o`/`O` insert before entering INSERT, or the replacement char `r` inserts).",
444
710
  "event": "INSERT_TEXT",
445
711
  "eventId": "evt_01M1N9RFGVR67GHR554ZYYYN7F",
446
712
  "payloadSchema": [
@@ -479,6 +745,9 @@
479
745
  "cmdline",
480
746
  "count",
481
747
  "editorId",
748
+ "lastCount",
749
+ "lastMotion",
750
+ "lastOperator",
482
751
  "operator",
483
752
  "operatorKey"
484
753
  ],
@@ -540,6 +809,18 @@
540
809
  }
541
810
  ]
542
811
  },
812
+ {
813
+ "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.",
814
+ "id": "evt_01M1QEG1N3BF95WY8CXTBH1VYB",
815
+ "key": "EDITOR_FOCUS",
816
+ "name": "Editor Focus",
817
+ "payloadSchema": [
818
+ {
819
+ "name": "editorId",
820
+ "type": "string"
821
+ }
822
+ ]
823
+ },
543
824
  {
544
825
  "description": "Mode + caret instruction for the editor surface (bar | block). Also the fact a realization reads to drive a mode indicator.",
545
826
  "id": "evt_01M1N9RFGVZNP12BFQMJPA2SWD",
@@ -583,7 +864,7 @@
583
864
  "tier": "primary"
584
865
  },
585
866
  {
586
- "description": "Apply a config-declared operator (delete | yank | change) over the range a motion describes; `line` for doubled operators, `selection` in VISUAL.",
867
+ "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.",
587
868
  "id": "evt_01M1N9RFGVV28SH1SVXFJ7X9XY",
588
869
  "key": "OPERATE",
589
870
  "name": "Operate",
@@ -608,7 +889,7 @@
608
889
  "tier": "primary"
609
890
  },
610
891
  {
611
- "description": "Insert literal text at the caret (e.g. the newline `o` opens before entering INSERT).",
892
+ "description": "Insert literal text at the caret (e.g. the newline `o`/`O` insert before entering INSERT, or the replacement char `r` inserts).",
612
893
  "id": "evt_01M1N9RFGVR67GHR554ZYYYN7F",
613
894
  "key": "INSERT_TEXT",
614
895
  "name": "Insert Text",
@@ -768,6 +1049,15 @@
768
1049
  "motion": "line-end"
769
1050
  }
770
1051
  ],
1052
+ [
1053
+ "emit",
1054
+ "MOTION",
1055
+ {
1056
+ "count": 1.0,
1057
+ "editorId": "@payload.editorId",
1058
+ "motion": "right"
1059
+ }
1060
+ ],
771
1061
  [
772
1062
  "emit",
773
1063
  "INSERT_TEXT",
@@ -803,13 +1093,44 @@
803
1093
  "@entity.editorId",
804
1094
  "@payload.editorId"
805
1095
  ],
1096
+ [
1097
+ "set",
1098
+ "@entity.count",
1099
+ 0.0
1100
+ ],
1101
+ [
1102
+ "emit",
1103
+ "MOTION",
1104
+ {
1105
+ "count": 1.0,
1106
+ "editorId": "@payload.editorId",
1107
+ "motion": "line-start"
1108
+ }
1109
+ ],
1110
+ [
1111
+ "emit",
1112
+ "INSERT_TEXT",
1113
+ {
1114
+ "editorId": "@payload.editorId",
1115
+ "text": "\n"
1116
+ }
1117
+ ],
1118
+ [
1119
+ "emit",
1120
+ "MOTION",
1121
+ {
1122
+ "count": 1.0,
1123
+ "editorId": "@payload.editorId",
1124
+ "motion": "up"
1125
+ }
1126
+ ],
806
1127
  [
807
1128
  "emit",
808
1129
  "SET_MODE",
809
1130
  {
810
- "caret": "block",
1131
+ "caret": "bar",
811
1132
  "editorId": "@payload.editorId",
812
- "mode": "VISUAL"
1133
+ "mode": "INSERT"
813
1134
  }
814
1135
  ]
815
1136
  ],
@@ -819,9 +1140,9 @@
819
1140
  "guard": [
820
1141
  "=",
821
1142
  "@payload.key",
822
- "@config.visualKey"
1143
+ "@config.openLineAboveKey"
823
1144
  ],
824
- "to": "VISUAL"
1145
+ "to": "INSERT"
825
1146
  },
826
1147
  {
827
1148
  "effects": [
@@ -832,16 +1153,34 @@
832
1153
  ],
833
1154
  [
834
1155
  "set",
835
- "@entity.cmdline",
836
- ""
1156
+ "@entity.count",
1157
+ 0.0
1158
+ ],
1159
+ [
1160
+ "emit",
1161
+ "MOTION",
1162
+ {
1163
+ "count": 1.0,
1164
+ "editorId": "@payload.editorId",
1165
+ "motion": "line-end"
1166
+ }
1167
+ ],
1168
+ [
1169
+ "emit",
1170
+ "MOTION",
1171
+ {
1172
+ "count": 1.0,
1173
+ "editorId": "@payload.editorId",
1174
+ "motion": "right"
1175
+ }
837
1176
  ],
838
1177
  [
839
1178
  "emit",
840
1179
  "SET_MODE",
841
1180
  {
842
- "caret": "block",
1181
+ "caret": "bar",
843
1182
  "editorId": "@payload.editorId",
844
- "mode": "COMMAND"
1183
+ "mode": "INSERT"
845
1184
  }
846
1185
  ]
847
1186
  ],
@@ -851,9 +1190,9 @@
851
1190
  "guard": [
852
1191
  "=",
853
1192
  "@payload.key",
854
- "@config.commandKey"
1193
+ "@config.appendLineKey"
855
1194
  ],
856
- "to": "COMMAND"
1195
+ "to": "INSERT"
857
1196
  },
858
1197
  {
859
1198
  "effects": [
@@ -864,74 +1203,191 @@
864
1203
  ],
865
1204
  [
866
1205
  "set",
867
- "@entity.operator",
868
- [
869
- "object/get",
870
- "@config.operators",
871
- "@payload.key"
872
- ]
1206
+ "@entity.count",
1207
+ 0.0
873
1208
  ],
874
1209
  [
875
- "set",
876
- "@entity.operatorKey",
877
- "@payload.key"
1210
+ "emit",
1211
+ "MOTION",
1212
+ {
1213
+ "count": 1.0,
1214
+ "editorId": "@payload.editorId",
1215
+ "motion": "first-nonblank"
1216
+ }
1217
+ ],
1218
+ [
1219
+ "emit",
1220
+ "SET_MODE",
1221
+ {
1222
+ "caret": "bar",
1223
+ "editorId": "@payload.editorId",
1224
+ "mode": "INSERT"
1225
+ }
878
1226
  ]
879
1227
  ],
880
1228
  "event": "KEY",
881
1229
  "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
882
1230
  "from": "NORMAL",
883
1231
  "guard": [
884
- "object/has",
885
- "@config.operators",
886
- "@payload.key"
1232
+ "=",
1233
+ "@payload.key",
1234
+ "@config.insertLineKey"
887
1235
  ],
888
- "to": "OPERATOR_PENDING"
1236
+ "to": "INSERT"
889
1237
  },
890
1238
  {
891
1239
  "effects": [
892
1240
  [
893
1241
  "set",
894
- "@entity.count",
895
- [
896
- "+",
897
- [
898
- "*",
899
- "@entity.count",
900
- 10.0
901
- ],
902
- [
903
- "object/get",
904
- "@config.digits",
905
- "@payload.key"
906
- ]
907
- ]
908
- ]
909
- ],
910
- "event": "KEY",
911
- "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
912
- "from": "NORMAL",
913
- "guard": [
914
- "and",
1242
+ "@entity.editorId",
1243
+ "@payload.editorId"
1244
+ ],
915
1245
  [
916
- "object/has",
917
- "@config.digits",
918
- "@payload.key"
1246
+ "emit",
1247
+ "SET_MODE",
1248
+ {
1249
+ "caret": "block",
1250
+ "editorId": "@payload.editorId",
1251
+ "mode": "VISUAL"
1252
+ }
1253
+ ]
1254
+ ],
1255
+ "event": "KEY",
1256
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1257
+ "from": "NORMAL",
1258
+ "guard": [
1259
+ "=",
1260
+ "@payload.key",
1261
+ "@config.visualKey"
1262
+ ],
1263
+ "to": "VISUAL"
1264
+ },
1265
+ {
1266
+ "effects": [
1267
+ [
1268
+ "set",
1269
+ "@entity.editorId",
1270
+ "@payload.editorId"
919
1271
  ],
920
1272
  [
921
- "or",
922
- [
923
- "!=",
924
- "@payload.key",
925
- "0"
926
- ],
1273
+ "set",
1274
+ "@entity.cmdline",
1275
+ ""
1276
+ ],
1277
+ [
1278
+ "emit",
1279
+ "SET_MODE",
1280
+ {
1281
+ "caret": "block",
1282
+ "editorId": "@payload.editorId",
1283
+ "mode": "COMMAND"
1284
+ }
1285
+ ]
1286
+ ],
1287
+ "event": "KEY",
1288
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1289
+ "from": "NORMAL",
1290
+ "guard": [
1291
+ "=",
1292
+ "@payload.key",
1293
+ "@config.commandKey"
1294
+ ],
1295
+ "to": "COMMAND"
1296
+ },
1297
+ {
1298
+ "effects": [
1299
+ [
1300
+ "set",
1301
+ "@entity.editorId",
1302
+ "@payload.editorId"
1303
+ ],
1304
+ [
1305
+ "set",
1306
+ "@entity.operator",
927
1307
  [
928
- ">",
929
- "@entity.count",
930
- 0.0
1308
+ "object/get",
1309
+ "@config.operators",
1310
+ "@payload.key"
931
1311
  ]
1312
+ ],
1313
+ [
1314
+ "set",
1315
+ "@entity.operatorKey",
1316
+ "@payload.key"
932
1317
  ]
933
1318
  ],
934
- "to": "NORMAL"
1319
+ "event": "KEY",
1320
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1321
+ "from": "NORMAL",
1322
+ "guard": [
1323
+ "object/has",
1324
+ "@config.operators",
1325
+ "@payload.key"
1326
+ ],
1327
+ "to": "OPERATOR_PENDING"
1328
+ },
1329
+ {
1330
+ "effects": [
1331
+ [
1332
+ "set",
1333
+ "@entity.editorId",
1334
+ "@payload.editorId"
1335
+ ],
1336
+ [
1337
+ "set",
1338
+ "@entity.operator",
1339
+ "goto"
1340
+ ],
1341
+ [
1342
+ "set",
1343
+ "@entity.operatorKey",
1344
+ "@payload.key"
1345
+ ]
1346
+ ],
1347
+ "event": "KEY",
1348
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1349
+ "from": "NORMAL",
1350
+ "guard": [
1351
+ "=",
1352
+ "@payload.key",
1353
+ "@config.gotoPrefixKey"
1354
+ ],
1355
+ "to": "OPERATOR_PENDING"
1356
+ },
1357
+ {
1358
+ "effects": [
1359
+ [
1360
+ "set",
1361
+ "@entity.editorId",
1362
+ "@payload.editorId"
1363
+ ],
1364
+ [
1365
+ "set",
1366
+ "@entity.operator",
1367
+ "replace"
1368
+ ],
1369
+ [
1370
+ "set",
1371
+ "@entity.operatorKey",
1372
+ "@payload.key"
1373
+ ]
1374
+ ],
1375
+ "event": "KEY",
1376
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1377
+ "from": "NORMAL",
1378
+ "guard": [
1379
+ "and",
1380
+ [
1381
+ "=",
1382
+ "@payload.key",
1383
+ "@config.replaceKey"
1384
+ ],
1385
+ [
1386
+ "not",
1387
+ "@payload.ctrl"
1388
+ ]
1389
+ ],
1390
+ "to": "OPERATOR_PENDING"
935
1391
  },
936
1392
  {
937
1393
  "effects": [
@@ -942,7 +1398,7 @@
942
1398
  ],
943
1399
  [
944
1400
  "emit",
945
- "MOTION",
1401
+ "OPERATE",
946
1402
  {
947
1403
  "count": [
948
1404
  "if",
@@ -955,11 +1411,8 @@
955
1411
  1.0
956
1412
  ],
957
1413
  "editorId": "@payload.editorId",
958
- "motion": [
959
- "object/get",
960
- "@config.motions",
961
- "@payload.key"
962
- ]
1414
+ "motion": "right",
1415
+ "operator": "redo"
963
1416
  }
964
1417
  ],
965
1418
  [
@@ -972,9 +1425,13 @@
972
1425
  "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
973
1426
  "from": "NORMAL",
974
1427
  "guard": [
975
- "object/has",
976
- "@config.motions",
977
- "@payload.key"
1428
+ "and",
1429
+ [
1430
+ "=",
1431
+ "@payload.key",
1432
+ "@config.redoKey"
1433
+ ],
1434
+ "@payload.ctrl"
978
1435
  ],
979
1436
  "to": "NORMAL"
980
1437
  },
@@ -982,18 +1439,32 @@
982
1439
  "effects": [
983
1440
  [
984
1441
  "set",
985
- "@entity.count",
986
- 0.0
1442
+ "@entity.editorId",
1443
+ "@payload.editorId"
987
1444
  ],
988
1445
  [
989
- "set",
990
- "@entity.operator",
991
- ""
1446
+ "emit",
1447
+ "OPERATE",
1448
+ {
1449
+ "count": [
1450
+ "if",
1451
+ [
1452
+ ">",
1453
+ "@entity.count",
1454
+ 0.0
1455
+ ],
1456
+ "@entity.count",
1457
+ 1.0
1458
+ ],
1459
+ "editorId": "@payload.editorId",
1460
+ "motion": "right",
1461
+ "operator": "undo"
1462
+ }
992
1463
  ],
993
1464
  [
994
1465
  "set",
995
- "@entity.operatorKey",
996
- ""
1466
+ "@entity.count",
1467
+ 0.0
997
1468
  ]
998
1469
  ],
999
1470
  "event": "KEY",
@@ -1002,29 +1473,49 @@
1002
1473
  "guard": [
1003
1474
  "=",
1004
1475
  "@payload.key",
1005
- "Escape"
1476
+ "@config.undoKey"
1006
1477
  ],
1007
1478
  "to": "NORMAL"
1008
1479
  },
1009
1480
  {
1010
1481
  "effects": [
1482
+ [
1483
+ "set",
1484
+ "@entity.editorId",
1485
+ "@payload.editorId"
1486
+ ],
1011
1487
  [
1012
1488
  "emit",
1013
- "SET_MODE",
1489
+ "OPERATE",
1014
1490
  {
1015
- "caret": "block",
1491
+ "count": [
1492
+ "if",
1493
+ [
1494
+ ">",
1495
+ "@entity.count",
1496
+ 0.0
1497
+ ],
1498
+ "@entity.count",
1499
+ 1.0
1500
+ ],
1016
1501
  "editorId": "@payload.editorId",
1017
- "mode": "NORMAL"
1502
+ "motion": "right",
1503
+ "operator": "delete"
1018
1504
  }
1505
+ ],
1506
+ [
1507
+ "set",
1508
+ "@entity.count",
1509
+ 0.0
1019
1510
  ]
1020
1511
  ],
1021
1512
  "event": "KEY",
1022
1513
  "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1023
- "from": "INSERT",
1514
+ "from": "NORMAL",
1024
1515
  "guard": [
1025
1516
  "=",
1026
1517
  "@payload.key",
1027
- "Escape"
1518
+ "@config.deleteCharKey"
1028
1519
  ],
1029
1520
  "to": "NORMAL"
1030
1521
  },
@@ -1032,26 +1523,41 @@
1032
1523
  "effects": [
1033
1524
  [
1034
1525
  "set",
1035
- "@entity.count",
1036
- 0.0
1526
+ "@entity.editorId",
1527
+ "@payload.editorId"
1037
1528
  ],
1038
1529
  [
1039
1530
  "emit",
1040
- "SET_MODE",
1531
+ "OPERATE",
1041
1532
  {
1042
- "caret": "block",
1533
+ "count": [
1534
+ "if",
1535
+ [
1536
+ ">",
1537
+ "@entity.count",
1538
+ 0.0
1539
+ ],
1540
+ "@entity.count",
1541
+ 1.0
1542
+ ],
1043
1543
  "editorId": "@payload.editorId",
1044
- "mode": "NORMAL"
1544
+ "motion": "left",
1545
+ "operator": "delete"
1045
1546
  }
1547
+ ],
1548
+ [
1549
+ "set",
1550
+ "@entity.count",
1551
+ 0.0
1046
1552
  ]
1047
1553
  ],
1048
1554
  "event": "KEY",
1049
1555
  "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1050
- "from": "VISUAL",
1556
+ "from": "NORMAL",
1051
1557
  "guard": [
1052
1558
  "=",
1053
1559
  "@payload.key",
1054
- "Escape"
1560
+ "@config.deleteCharBackKey"
1055
1561
  ],
1056
1562
  "to": "NORMAL"
1057
1563
  },
@@ -1059,48 +1565,1060 @@
1059
1565
  "effects": [
1060
1566
  [
1061
1567
  "set",
1062
- "@entity.count",
1063
- 0.0
1568
+ "@entity.editorId",
1569
+ "@payload.editorId"
1064
1570
  ],
1065
1571
  [
1066
1572
  "emit",
1067
1573
  "OPERATE",
1068
1574
  {
1069
- "count": 1.0,
1070
- "editorId": "@payload.editorId",
1071
- "motion": "selection",
1072
- "operator": [
1073
- "object/get",
1074
- "@config.operators",
1075
- "@payload.key"
1575
+ "count": [
1576
+ "if",
1577
+ [
1578
+ ">",
1579
+ "@entity.count",
1580
+ 0.0
1581
+ ],
1582
+ "@entity.count",
1583
+ 1.0
1584
+ ],
1585
+ "editorId": "@payload.editorId",
1586
+ "motion": "right",
1587
+ "operator": "put"
1588
+ }
1589
+ ],
1590
+ [
1591
+ "set",
1592
+ "@entity.count",
1593
+ 0.0
1594
+ ]
1595
+ ],
1596
+ "event": "KEY",
1597
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1598
+ "from": "NORMAL",
1599
+ "guard": [
1600
+ "=",
1601
+ "@payload.key",
1602
+ "@config.putKey"
1603
+ ],
1604
+ "to": "NORMAL"
1605
+ },
1606
+ {
1607
+ "effects": [
1608
+ [
1609
+ "set",
1610
+ "@entity.editorId",
1611
+ "@payload.editorId"
1612
+ ],
1613
+ [
1614
+ "emit",
1615
+ "OPERATE",
1616
+ {
1617
+ "count": [
1618
+ "if",
1619
+ [
1620
+ ">",
1621
+ "@entity.count",
1622
+ 0.0
1623
+ ],
1624
+ "@entity.count",
1625
+ 1.0
1626
+ ],
1627
+ "editorId": "@payload.editorId",
1628
+ "motion": "right",
1629
+ "operator": "put-before"
1630
+ }
1631
+ ],
1632
+ [
1633
+ "set",
1634
+ "@entity.count",
1635
+ 0.0
1636
+ ]
1637
+ ],
1638
+ "event": "KEY",
1639
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1640
+ "from": "NORMAL",
1641
+ "guard": [
1642
+ "=",
1643
+ "@payload.key",
1644
+ "@config.putBeforeKey"
1645
+ ],
1646
+ "to": "NORMAL"
1647
+ },
1648
+ {
1649
+ "effects": [
1650
+ [
1651
+ "set",
1652
+ "@entity.editorId",
1653
+ "@payload.editorId"
1654
+ ],
1655
+ [
1656
+ "emit",
1657
+ "OPERATE",
1658
+ {
1659
+ "count": [
1660
+ "if",
1661
+ [
1662
+ ">",
1663
+ "@entity.count",
1664
+ 0.0
1665
+ ],
1666
+ "@entity.count",
1667
+ 1.0
1668
+ ],
1669
+ "editorId": "@payload.editorId",
1670
+ "motion": "right",
1671
+ "operator": "toggle-case"
1672
+ }
1673
+ ],
1674
+ [
1675
+ "set",
1676
+ "@entity.count",
1677
+ 0.0
1678
+ ]
1679
+ ],
1680
+ "event": "KEY",
1681
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1682
+ "from": "NORMAL",
1683
+ "guard": [
1684
+ "=",
1685
+ "@payload.key",
1686
+ "@config.toggleCaseKey"
1687
+ ],
1688
+ "to": "NORMAL"
1689
+ },
1690
+ {
1691
+ "effects": [
1692
+ [
1693
+ "set",
1694
+ "@entity.editorId",
1695
+ "@payload.editorId"
1696
+ ],
1697
+ [
1698
+ "emit",
1699
+ "OPERATE",
1700
+ {
1701
+ "count": [
1702
+ "if",
1703
+ [
1704
+ ">",
1705
+ "@entity.count",
1706
+ 1.0
1707
+ ],
1708
+ "@entity.count",
1709
+ 2.0
1710
+ ],
1711
+ "editorId": "@payload.editorId",
1712
+ "motion": "line",
1713
+ "operator": "join"
1714
+ }
1715
+ ],
1716
+ [
1717
+ "set",
1718
+ "@entity.count",
1719
+ 0.0
1720
+ ]
1721
+ ],
1722
+ "event": "KEY",
1723
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1724
+ "from": "NORMAL",
1725
+ "guard": [
1726
+ "=",
1727
+ "@payload.key",
1728
+ "@config.joinKey"
1729
+ ],
1730
+ "to": "NORMAL"
1731
+ },
1732
+ {
1733
+ "effects": [
1734
+ [
1735
+ "emit",
1736
+ "OPERATE",
1737
+ {
1738
+ "count": "@entity.lastCount",
1739
+ "editorId": "@payload.editorId",
1740
+ "motion": "@entity.lastMotion",
1741
+ "operator": "@entity.lastOperator"
1742
+ }
1743
+ ],
1744
+ [
1745
+ "set",
1746
+ "@entity.count",
1747
+ 0.0
1748
+ ]
1749
+ ],
1750
+ "event": "KEY",
1751
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1752
+ "from": "NORMAL",
1753
+ "guard": [
1754
+ "and",
1755
+ [
1756
+ "=",
1757
+ "@payload.key",
1758
+ "@config.repeatKey"
1759
+ ],
1760
+ [
1761
+ "!=",
1762
+ "@entity.lastOperator",
1763
+ ""
1764
+ ]
1765
+ ],
1766
+ "to": "NORMAL"
1767
+ },
1768
+ {
1769
+ "effects": [
1770
+ [
1771
+ "set",
1772
+ "@entity.count",
1773
+ [
1774
+ "+",
1775
+ [
1776
+ "*",
1777
+ "@entity.count",
1778
+ 10.0
1779
+ ],
1780
+ [
1781
+ "object/get",
1782
+ "@config.digits",
1783
+ "@payload.key"
1784
+ ]
1785
+ ]
1786
+ ]
1787
+ ],
1788
+ "event": "KEY",
1789
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1790
+ "from": "NORMAL",
1791
+ "guard": [
1792
+ "and",
1793
+ [
1794
+ "object/has",
1795
+ "@config.digits",
1796
+ "@payload.key"
1797
+ ],
1798
+ [
1799
+ "or",
1800
+ [
1801
+ "!=",
1802
+ "@payload.key",
1803
+ "0"
1804
+ ],
1805
+ [
1806
+ ">",
1807
+ "@entity.count",
1808
+ 0.0
1809
+ ]
1810
+ ]
1811
+ ],
1812
+ "to": "NORMAL"
1813
+ },
1814
+ {
1815
+ "effects": [
1816
+ [
1817
+ "set",
1818
+ "@entity.editorId",
1819
+ "@payload.editorId"
1820
+ ],
1821
+ [
1822
+ "emit",
1823
+ "MOTION",
1824
+ {
1825
+ "count": [
1826
+ "if",
1827
+ [
1828
+ ">",
1829
+ "@entity.count",
1830
+ 0.0
1831
+ ],
1832
+ "@entity.count",
1833
+ 1.0
1834
+ ],
1835
+ "editorId": "@payload.editorId",
1836
+ "motion": [
1837
+ "object/get",
1838
+ "@config.motions",
1839
+ "@payload.key"
1840
+ ]
1841
+ }
1842
+ ],
1843
+ [
1844
+ "set",
1845
+ "@entity.count",
1846
+ 0.0
1847
+ ]
1848
+ ],
1849
+ "event": "KEY",
1850
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1851
+ "from": "NORMAL",
1852
+ "guard": [
1853
+ "object/has",
1854
+ "@config.motions",
1855
+ "@payload.key"
1856
+ ],
1857
+ "to": "NORMAL"
1858
+ },
1859
+ {
1860
+ "effects": [
1861
+ [
1862
+ "set",
1863
+ "@entity.count",
1864
+ 0.0
1865
+ ],
1866
+ [
1867
+ "set",
1868
+ "@entity.operator",
1869
+ ""
1870
+ ],
1871
+ [
1872
+ "set",
1873
+ "@entity.operatorKey",
1874
+ ""
1875
+ ]
1876
+ ],
1877
+ "event": "KEY",
1878
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1879
+ "from": "NORMAL",
1880
+ "guard": [
1881
+ "=",
1882
+ "@payload.key",
1883
+ "Escape"
1884
+ ],
1885
+ "to": "NORMAL"
1886
+ },
1887
+ {
1888
+ "effects": [
1889
+ [
1890
+ "set",
1891
+ "@entity.editorId",
1892
+ "@payload.editorId"
1893
+ ],
1894
+ [
1895
+ "emit",
1896
+ "SET_MODE",
1897
+ {
1898
+ "caret": "block",
1899
+ "editorId": "@payload.editorId",
1900
+ "mode": "NORMAL"
1901
+ }
1902
+ ]
1903
+ ],
1904
+ "event": "EDITOR_FOCUS",
1905
+ "eventId": "evt_01M1QEG1N3BF95WY8CXTBH1VYB",
1906
+ "from": "NORMAL",
1907
+ "to": "NORMAL"
1908
+ },
1909
+ {
1910
+ "effects": [
1911
+ [
1912
+ "emit",
1913
+ "MOTION",
1914
+ {
1915
+ "count": 1.0,
1916
+ "editorId": "@payload.editorId",
1917
+ "motion": "left"
1918
+ }
1919
+ ],
1920
+ [
1921
+ "emit",
1922
+ "SET_MODE",
1923
+ {
1924
+ "caret": "block",
1925
+ "editorId": "@payload.editorId",
1926
+ "mode": "NORMAL"
1927
+ }
1928
+ ]
1929
+ ],
1930
+ "event": "KEY",
1931
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1932
+ "from": "INSERT",
1933
+ "guard": [
1934
+ "=",
1935
+ "@payload.key",
1936
+ "Escape"
1937
+ ],
1938
+ "to": "NORMAL"
1939
+ },
1940
+ {
1941
+ "effects": [
1942
+ [
1943
+ "set",
1944
+ "@entity.editorId",
1945
+ "@payload.editorId"
1946
+ ],
1947
+ [
1948
+ "emit",
1949
+ "SET_MODE",
1950
+ {
1951
+ "caret": "bar",
1952
+ "editorId": "@payload.editorId",
1953
+ "mode": "INSERT"
1954
+ }
1955
+ ]
1956
+ ],
1957
+ "event": "EDITOR_FOCUS",
1958
+ "eventId": "evt_01M1QEG1N3BF95WY8CXTBH1VYB",
1959
+ "from": "INSERT",
1960
+ "to": "INSERT"
1961
+ },
1962
+ {
1963
+ "effects": [
1964
+ [
1965
+ "set",
1966
+ "@entity.count",
1967
+ 0.0
1968
+ ],
1969
+ [
1970
+ "emit",
1971
+ "SET_MODE",
1972
+ {
1973
+ "caret": "block",
1974
+ "editorId": "@payload.editorId",
1975
+ "mode": "NORMAL"
1976
+ }
1977
+ ]
1978
+ ],
1979
+ "event": "KEY",
1980
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1981
+ "from": "VISUAL",
1982
+ "guard": [
1983
+ "=",
1984
+ "@payload.key",
1985
+ "Escape"
1986
+ ],
1987
+ "to": "NORMAL"
1988
+ },
1989
+ {
1990
+ "effects": [
1991
+ [
1992
+ "set",
1993
+ "@entity.count",
1994
+ 0.0
1995
+ ],
1996
+ [
1997
+ "emit",
1998
+ "OPERATE",
1999
+ {
2000
+ "count": 1.0,
2001
+ "editorId": "@payload.editorId",
2002
+ "motion": "selection",
2003
+ "operator": [
2004
+ "object/get",
2005
+ "@config.operators",
2006
+ "@payload.key"
2007
+ ]
2008
+ }
2009
+ ],
2010
+ [
2011
+ "set",
2012
+ "@entity.lastOperator",
2013
+ [
2014
+ "object/get",
2015
+ "@config.operators",
2016
+ "@payload.key"
2017
+ ]
2018
+ ],
2019
+ [
2020
+ "set",
2021
+ "@entity.lastMotion",
2022
+ "selection"
2023
+ ],
2024
+ [
2025
+ "set",
2026
+ "@entity.lastCount",
2027
+ 1.0
2028
+ ],
2029
+ [
2030
+ "emit",
2031
+ "SET_MODE",
2032
+ {
2033
+ "caret": "bar",
2034
+ "editorId": "@payload.editorId",
2035
+ "mode": "INSERT"
2036
+ }
2037
+ ]
2038
+ ],
2039
+ "event": "KEY",
2040
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
2041
+ "from": "VISUAL",
2042
+ "guard": [
2043
+ "and",
2044
+ [
2045
+ "object/has",
2046
+ "@config.operators",
2047
+ "@payload.key"
2048
+ ],
2049
+ [
2050
+ "=",
2051
+ [
2052
+ "object/get",
2053
+ "@config.operators",
2054
+ "@payload.key"
2055
+ ],
2056
+ "change"
2057
+ ]
2058
+ ],
2059
+ "to": "INSERT"
2060
+ },
2061
+ {
2062
+ "effects": [
2063
+ [
2064
+ "set",
2065
+ "@entity.count",
2066
+ 0.0
2067
+ ],
2068
+ [
2069
+ "emit",
2070
+ "OPERATE",
2071
+ {
2072
+ "count": 1.0,
2073
+ "editorId": "@payload.editorId",
2074
+ "motion": "selection",
2075
+ "operator": [
2076
+ "object/get",
2077
+ "@config.operators",
2078
+ "@payload.key"
2079
+ ]
2080
+ }
2081
+ ],
2082
+ [
2083
+ "set",
2084
+ "@entity.lastOperator",
2085
+ [
2086
+ "object/get",
2087
+ "@config.operators",
2088
+ "@payload.key"
2089
+ ]
2090
+ ],
2091
+ [
2092
+ "set",
2093
+ "@entity.lastMotion",
2094
+ "selection"
2095
+ ],
2096
+ [
2097
+ "set",
2098
+ "@entity.lastCount",
2099
+ 1.0
2100
+ ],
2101
+ [
2102
+ "emit",
2103
+ "SET_MODE",
2104
+ {
2105
+ "caret": "block",
2106
+ "editorId": "@payload.editorId",
2107
+ "mode": "NORMAL"
2108
+ }
2109
+ ]
2110
+ ],
2111
+ "event": "KEY",
2112
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
2113
+ "from": "VISUAL",
2114
+ "guard": [
2115
+ "and",
2116
+ [
2117
+ "object/has",
2118
+ "@config.operators",
2119
+ "@payload.key"
2120
+ ],
2121
+ [
2122
+ "!=",
2123
+ [
2124
+ "object/get",
2125
+ "@config.operators",
2126
+ "@payload.key"
2127
+ ],
2128
+ "change"
2129
+ ]
2130
+ ],
2131
+ "to": "NORMAL"
2132
+ },
2133
+ {
2134
+ "effects": [
2135
+ [
2136
+ "set",
2137
+ "@entity.count",
2138
+ 0.0
2139
+ ],
2140
+ [
2141
+ "emit",
2142
+ "OPERATE",
2143
+ {
2144
+ "count": 1.0,
2145
+ "editorId": "@payload.editorId",
2146
+ "motion": "selection",
2147
+ "operator": "toggle-case"
2148
+ }
2149
+ ],
2150
+ [
2151
+ "set",
2152
+ "@entity.lastOperator",
2153
+ "toggle-case"
2154
+ ],
2155
+ [
2156
+ "set",
2157
+ "@entity.lastMotion",
2158
+ "selection"
2159
+ ],
2160
+ [
2161
+ "set",
2162
+ "@entity.lastCount",
2163
+ 1.0
2164
+ ],
2165
+ [
2166
+ "emit",
2167
+ "SET_MODE",
2168
+ {
2169
+ "caret": "block",
2170
+ "editorId": "@payload.editorId",
2171
+ "mode": "NORMAL"
2172
+ }
2173
+ ]
2174
+ ],
2175
+ "event": "KEY",
2176
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
2177
+ "from": "VISUAL",
2178
+ "guard": [
2179
+ "=",
2180
+ "@payload.key",
2181
+ "@config.toggleCaseKey"
2182
+ ],
2183
+ "to": "NORMAL"
2184
+ },
2185
+ {
2186
+ "effects": [
2187
+ [
2188
+ "set",
2189
+ "@entity.count",
2190
+ 0.0
2191
+ ],
2192
+ [
2193
+ "emit",
2194
+ "OPERATE",
2195
+ {
2196
+ "count": 1.0,
2197
+ "editorId": "@payload.editorId",
2198
+ "motion": "selection",
2199
+ "operator": "join"
2200
+ }
2201
+ ],
2202
+ [
2203
+ "set",
2204
+ "@entity.lastOperator",
2205
+ "join"
2206
+ ],
2207
+ [
2208
+ "set",
2209
+ "@entity.lastMotion",
2210
+ "selection"
2211
+ ],
2212
+ [
2213
+ "set",
2214
+ "@entity.lastCount",
2215
+ 1.0
2216
+ ],
2217
+ [
2218
+ "emit",
2219
+ "SET_MODE",
2220
+ {
2221
+ "caret": "block",
2222
+ "editorId": "@payload.editorId",
2223
+ "mode": "NORMAL"
2224
+ }
2225
+ ]
2226
+ ],
2227
+ "event": "KEY",
2228
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
2229
+ "from": "VISUAL",
2230
+ "guard": [
2231
+ "=",
2232
+ "@payload.key",
2233
+ "@config.joinKey"
2234
+ ],
2235
+ "to": "NORMAL"
2236
+ },
2237
+ {
2238
+ "effects": [
2239
+ [
2240
+ "emit",
2241
+ "MOTION",
2242
+ {
2243
+ "count": [
2244
+ "if",
2245
+ [
2246
+ ">",
2247
+ "@entity.count",
2248
+ 0.0
2249
+ ],
2250
+ "@entity.count",
2251
+ 1.0
2252
+ ],
2253
+ "editorId": "@payload.editorId",
2254
+ "motion": [
2255
+ "object/get",
2256
+ "@config.motions",
2257
+ "@payload.key"
1076
2258
  ]
1077
2259
  }
1078
2260
  ],
2261
+ [
2262
+ "set",
2263
+ "@entity.count",
2264
+ 0.0
2265
+ ]
2266
+ ],
2267
+ "event": "KEY",
2268
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
2269
+ "from": "VISUAL",
2270
+ "guard": [
2271
+ "object/has",
2272
+ "@config.motions",
2273
+ "@payload.key"
2274
+ ],
2275
+ "to": "VISUAL"
2276
+ },
2277
+ {
2278
+ "effects": [
2279
+ [
2280
+ "set",
2281
+ "@entity.editorId",
2282
+ "@payload.editorId"
2283
+ ],
2284
+ [
2285
+ "emit",
2286
+ "SET_MODE",
2287
+ {
2288
+ "caret": "block",
2289
+ "editorId": "@payload.editorId",
2290
+ "mode": "VISUAL"
2291
+ }
2292
+ ]
2293
+ ],
2294
+ "event": "EDITOR_FOCUS",
2295
+ "eventId": "evt_01M1QEG1N3BF95WY8CXTBH1VYB",
2296
+ "from": "VISUAL",
2297
+ "to": "VISUAL"
2298
+ },
2299
+ {
2300
+ "effects": [
2301
+ [
2302
+ "emit",
2303
+ "MOTION",
2304
+ {
2305
+ "count": 1.0,
2306
+ "editorId": "@payload.editorId",
2307
+ "motion": "doc-start"
2308
+ }
2309
+ ],
2310
+ [
2311
+ "set",
2312
+ "@entity.operator",
2313
+ ""
2314
+ ],
2315
+ [
2316
+ "set",
2317
+ "@entity.operatorKey",
2318
+ ""
2319
+ ],
2320
+ [
2321
+ "set",
2322
+ "@entity.count",
2323
+ 0.0
2324
+ ]
2325
+ ],
2326
+ "event": "KEY",
2327
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
2328
+ "from": "OPERATOR_PENDING",
2329
+ "guard": [
2330
+ "and",
2331
+ [
2332
+ "=",
2333
+ "@payload.key",
2334
+ "@entity.operatorKey"
2335
+ ],
2336
+ [
2337
+ "=",
2338
+ "@entity.operator",
2339
+ "goto"
2340
+ ]
2341
+ ],
2342
+ "to": "NORMAL"
2343
+ },
2344
+ {
2345
+ "effects": [
2346
+ [
2347
+ "emit",
2348
+ "OPERATE",
2349
+ {
2350
+ "count": [
2351
+ "if",
2352
+ [
2353
+ ">",
2354
+ "@entity.count",
2355
+ 0.0
2356
+ ],
2357
+ "@entity.count",
2358
+ 1.0
2359
+ ],
2360
+ "editorId": "@payload.editorId",
2361
+ "motion": "line",
2362
+ "operator": "@entity.operator"
2363
+ }
2364
+ ],
2365
+ [
2366
+ "set",
2367
+ "@entity.lastOperator",
2368
+ "@entity.operator"
2369
+ ],
2370
+ [
2371
+ "set",
2372
+ "@entity.lastMotion",
2373
+ "line"
2374
+ ],
2375
+ [
2376
+ "set",
2377
+ "@entity.lastCount",
2378
+ [
2379
+ "if",
2380
+ [
2381
+ ">",
2382
+ "@entity.count",
2383
+ 0.0
2384
+ ],
2385
+ "@entity.count",
2386
+ 1.0
2387
+ ]
2388
+ ],
2389
+ [
2390
+ "set",
2391
+ "@entity.operator",
2392
+ ""
2393
+ ],
2394
+ [
2395
+ "set",
2396
+ "@entity.operatorKey",
2397
+ ""
2398
+ ],
2399
+ [
2400
+ "set",
2401
+ "@entity.count",
2402
+ 0.0
2403
+ ],
1079
2404
  [
1080
2405
  "emit",
1081
2406
  "SET_MODE",
1082
2407
  {
1083
- "caret": "block",
2408
+ "caret": "bar",
1084
2409
  "editorId": "@payload.editorId",
1085
- "mode": "NORMAL"
2410
+ "mode": "INSERT"
2411
+ }
2412
+ ]
2413
+ ],
2414
+ "event": "KEY",
2415
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
2416
+ "from": "OPERATOR_PENDING",
2417
+ "guard": [
2418
+ "and",
2419
+ [
2420
+ "=",
2421
+ "@payload.key",
2422
+ "@entity.operatorKey"
2423
+ ],
2424
+ [
2425
+ "=",
2426
+ "@entity.operator",
2427
+ "change"
2428
+ ]
2429
+ ],
2430
+ "to": "INSERT"
2431
+ },
2432
+ {
2433
+ "effects": [
2434
+ [
2435
+ "emit",
2436
+ "OPERATE",
2437
+ {
2438
+ "count": [
2439
+ "if",
2440
+ [
2441
+ ">",
2442
+ "@entity.count",
2443
+ 0.0
2444
+ ],
2445
+ "@entity.count",
2446
+ 1.0
2447
+ ],
2448
+ "editorId": "@payload.editorId",
2449
+ "motion": "line",
2450
+ "operator": "@entity.operator"
2451
+ }
2452
+ ],
2453
+ [
2454
+ "set",
2455
+ "@entity.lastOperator",
2456
+ "@entity.operator"
2457
+ ],
2458
+ [
2459
+ "set",
2460
+ "@entity.lastMotion",
2461
+ "line"
2462
+ ],
2463
+ [
2464
+ "set",
2465
+ "@entity.lastCount",
2466
+ [
2467
+ "if",
2468
+ [
2469
+ ">",
2470
+ "@entity.count",
2471
+ 0.0
2472
+ ],
2473
+ "@entity.count",
2474
+ 1.0
2475
+ ]
2476
+ ],
2477
+ [
2478
+ "set",
2479
+ "@entity.operator",
2480
+ ""
2481
+ ],
2482
+ [
2483
+ "set",
2484
+ "@entity.operatorKey",
2485
+ ""
2486
+ ],
2487
+ [
2488
+ "set",
2489
+ "@entity.count",
2490
+ 0.0
2491
+ ]
2492
+ ],
2493
+ "event": "KEY",
2494
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
2495
+ "from": "OPERATOR_PENDING",
2496
+ "guard": [
2497
+ "and",
2498
+ [
2499
+ "=",
2500
+ "@payload.key",
2501
+ "@entity.operatorKey"
2502
+ ],
2503
+ [
2504
+ "!=",
2505
+ "@entity.operator",
2506
+ "change"
2507
+ ],
2508
+ [
2509
+ "!=",
2510
+ "@entity.operator",
2511
+ "goto"
2512
+ ],
2513
+ [
2514
+ "!=",
2515
+ "@entity.operator",
2516
+ "replace"
2517
+ ]
2518
+ ],
2519
+ "to": "NORMAL"
2520
+ },
2521
+ {
2522
+ "effects": [
2523
+ [
2524
+ "emit",
2525
+ "OPERATE",
2526
+ {
2527
+ "count": [
2528
+ "if",
2529
+ [
2530
+ ">",
2531
+ "@entity.count",
2532
+ 0.0
2533
+ ],
2534
+ "@entity.count",
2535
+ 1.0
2536
+ ],
2537
+ "editorId": "@payload.editorId",
2538
+ "motion": [
2539
+ "object/get",
2540
+ "@config.motions",
2541
+ "@payload.key"
2542
+ ],
2543
+ "operator": "@entity.operator"
2544
+ }
2545
+ ],
2546
+ [
2547
+ "set",
2548
+ "@entity.lastOperator",
2549
+ "@entity.operator"
2550
+ ],
2551
+ [
2552
+ "set",
2553
+ "@entity.lastMotion",
2554
+ [
2555
+ "object/get",
2556
+ "@config.motions",
2557
+ "@payload.key"
2558
+ ]
2559
+ ],
2560
+ [
2561
+ "set",
2562
+ "@entity.lastCount",
2563
+ [
2564
+ "if",
2565
+ [
2566
+ ">",
2567
+ "@entity.count",
2568
+ 0.0
2569
+ ],
2570
+ "@entity.count",
2571
+ 1.0
2572
+ ]
2573
+ ],
2574
+ [
2575
+ "set",
2576
+ "@entity.operator",
2577
+ ""
2578
+ ],
2579
+ [
2580
+ "set",
2581
+ "@entity.operatorKey",
2582
+ ""
2583
+ ],
2584
+ [
2585
+ "set",
2586
+ "@entity.count",
2587
+ 0.0
2588
+ ],
2589
+ [
2590
+ "emit",
2591
+ "SET_MODE",
2592
+ {
2593
+ "caret": "bar",
2594
+ "editorId": "@payload.editorId",
2595
+ "mode": "INSERT"
1086
2596
  }
1087
2597
  ]
1088
2598
  ],
1089
- "event": "KEY",
1090
- "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1091
- "from": "VISUAL",
1092
- "guard": [
1093
- "object/has",
1094
- "@config.operators",
1095
- "@payload.key"
1096
- ],
1097
- "to": "NORMAL"
2599
+ "event": "KEY",
2600
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
2601
+ "from": "OPERATOR_PENDING",
2602
+ "guard": [
2603
+ "and",
2604
+ [
2605
+ "object/has",
2606
+ "@config.motions",
2607
+ "@payload.key"
2608
+ ],
2609
+ [
2610
+ "=",
2611
+ "@entity.operator",
2612
+ "change"
2613
+ ]
2614
+ ],
2615
+ "to": "INSERT"
1098
2616
  },
1099
2617
  {
1100
2618
  "effects": [
1101
2619
  [
1102
2620
  "emit",
1103
- "MOTION",
2621
+ "OPERATE",
1104
2622
  {
1105
2623
  "count": [
1106
2624
  "if",
@@ -1117,9 +2635,48 @@
1117
2635
  "object/get",
1118
2636
  "@config.motions",
1119
2637
  "@payload.key"
1120
- ]
2638
+ ],
2639
+ "operator": "@entity.operator"
1121
2640
  }
1122
2641
  ],
2642
+ [
2643
+ "set",
2644
+ "@entity.lastOperator",
2645
+ "@entity.operator"
2646
+ ],
2647
+ [
2648
+ "set",
2649
+ "@entity.lastMotion",
2650
+ [
2651
+ "object/get",
2652
+ "@config.motions",
2653
+ "@payload.key"
2654
+ ]
2655
+ ],
2656
+ [
2657
+ "set",
2658
+ "@entity.lastCount",
2659
+ [
2660
+ "if",
2661
+ [
2662
+ ">",
2663
+ "@entity.count",
2664
+ 0.0
2665
+ ],
2666
+ "@entity.count",
2667
+ 1.0
2668
+ ]
2669
+ ],
2670
+ [
2671
+ "set",
2672
+ "@entity.operator",
2673
+ ""
2674
+ ],
2675
+ [
2676
+ "set",
2677
+ "@entity.operatorKey",
2678
+ ""
2679
+ ],
1123
2680
  [
1124
2681
  "set",
1125
2682
  "@entity.count",
@@ -1128,13 +2685,87 @@
1128
2685
  ],
1129
2686
  "event": "KEY",
1130
2687
  "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1131
- "from": "VISUAL",
2688
+ "from": "OPERATOR_PENDING",
1132
2689
  "guard": [
1133
- "object/has",
1134
- "@config.motions",
1135
- "@payload.key"
2690
+ "and",
2691
+ [
2692
+ "object/has",
2693
+ "@config.motions",
2694
+ "@payload.key"
2695
+ ],
2696
+ [
2697
+ "!=",
2698
+ "@entity.operator",
2699
+ "change"
2700
+ ],
2701
+ [
2702
+ "!=",
2703
+ "@entity.operator",
2704
+ "goto"
2705
+ ],
2706
+ [
2707
+ "!=",
2708
+ "@entity.operator",
2709
+ "replace"
2710
+ ]
1136
2711
  ],
1137
- "to": "VISUAL"
2712
+ "to": "NORMAL"
2713
+ },
2714
+ {
2715
+ "effects": [
2716
+ [
2717
+ "set",
2718
+ "@entity.count",
2719
+ [
2720
+ "+",
2721
+ [
2722
+ "*",
2723
+ "@entity.count",
2724
+ 10.0
2725
+ ],
2726
+ [
2727
+ "object/get",
2728
+ "@config.digits",
2729
+ "@payload.key"
2730
+ ]
2731
+ ]
2732
+ ]
2733
+ ],
2734
+ "event": "KEY",
2735
+ "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
2736
+ "from": "OPERATOR_PENDING",
2737
+ "guard": [
2738
+ "and",
2739
+ [
2740
+ "object/has",
2741
+ "@config.digits",
2742
+ "@payload.key"
2743
+ ],
2744
+ [
2745
+ "or",
2746
+ [
2747
+ "!=",
2748
+ "@payload.key",
2749
+ "0"
2750
+ ],
2751
+ [
2752
+ ">",
2753
+ "@entity.count",
2754
+ 0.0
2755
+ ]
2756
+ ],
2757
+ [
2758
+ "!=",
2759
+ "@entity.operator",
2760
+ "goto"
2761
+ ],
2762
+ [
2763
+ "!=",
2764
+ "@entity.operator",
2765
+ "replace"
2766
+ ]
2767
+ ],
2768
+ "to": "OPERATOR_PENDING"
1138
2769
  },
1139
2770
  {
1140
2771
  "effects": [
@@ -1142,21 +2773,44 @@
1142
2773
  "emit",
1143
2774
  "OPERATE",
1144
2775
  {
1145
- "count": [
1146
- "if",
1147
- [
1148
- ">",
1149
- "@entity.count",
1150
- 0.0
1151
- ],
1152
- "@entity.count",
1153
- 1.0
1154
- ],
2776
+ "count": 1.0,
1155
2777
  "editorId": "@payload.editorId",
1156
- "motion": "line",
1157
- "operator": "@entity.operator"
2778
+ "motion": "right",
2779
+ "operator": "delete"
2780
+ }
2781
+ ],
2782
+ [
2783
+ "emit",
2784
+ "INSERT_TEXT",
2785
+ {
2786
+ "editorId": "@payload.editorId",
2787
+ "text": "@payload.key"
2788
+ }
2789
+ ],
2790
+ [
2791
+ "emit",
2792
+ "MOTION",
2793
+ {
2794
+ "count": 1.0,
2795
+ "editorId": "@payload.editorId",
2796
+ "motion": "left"
1158
2797
  }
1159
2798
  ],
2799
+ [
2800
+ "set",
2801
+ "@entity.lastOperator",
2802
+ "delete"
2803
+ ],
2804
+ [
2805
+ "set",
2806
+ "@entity.lastMotion",
2807
+ "right"
2808
+ ],
2809
+ [
2810
+ "set",
2811
+ "@entity.lastCount",
2812
+ 1.0
2813
+ ],
1160
2814
  [
1161
2815
  "set",
1162
2816
  "@entity.operator",
@@ -1177,37 +2831,22 @@
1177
2831
  "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1178
2832
  "from": "OPERATOR_PENDING",
1179
2833
  "guard": [
1180
- "=",
1181
- "@payload.key",
1182
- "@entity.operatorKey"
2834
+ "and",
2835
+ [
2836
+ "=",
2837
+ "@entity.operator",
2838
+ "replace"
2839
+ ],
2840
+ [
2841
+ "!=",
2842
+ "@payload.key",
2843
+ "Escape"
2844
+ ]
1183
2845
  ],
1184
2846
  "to": "NORMAL"
1185
2847
  },
1186
2848
  {
1187
2849
  "effects": [
1188
- [
1189
- "emit",
1190
- "OPERATE",
1191
- {
1192
- "count": [
1193
- "if",
1194
- [
1195
- ">",
1196
- "@entity.count",
1197
- 0.0
1198
- ],
1199
- "@entity.count",
1200
- 1.0
1201
- ],
1202
- "editorId": "@payload.editorId",
1203
- "motion": [
1204
- "object/get",
1205
- "@config.motions",
1206
- "@payload.key"
1207
- ],
1208
- "operator": "@entity.operator"
1209
- }
1210
- ],
1211
2850
  [
1212
2851
  "set",
1213
2852
  "@entity.operator",
@@ -1228,9 +2867,9 @@
1228
2867
  "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1229
2868
  "from": "OPERATOR_PENDING",
1230
2869
  "guard": [
1231
- "object/has",
1232
- "@config.motions",
1233
- "@payload.key"
2870
+ "=",
2871
+ "@payload.key",
2872
+ "Escape"
1234
2873
  ],
1235
2874
  "to": "NORMAL"
1236
2875
  },
@@ -1256,12 +2895,47 @@
1256
2895
  "eventId": "evt_01M1N9RFGVK31M3ZE4N9FBHBWM",
1257
2896
  "from": "OPERATOR_PENDING",
1258
2897
  "guard": [
1259
- "=",
1260
- "@payload.key",
1261
- "Escape"
2898
+ "and",
2899
+ [
2900
+ "=",
2901
+ "@entity.operator",
2902
+ "goto"
2903
+ ],
2904
+ [
2905
+ "!=",
2906
+ "@payload.key",
2907
+ "Escape"
2908
+ ],
2909
+ [
2910
+ "!=",
2911
+ "@payload.key",
2912
+ "@entity.operatorKey"
2913
+ ]
1262
2914
  ],
1263
2915
  "to": "NORMAL"
1264
2916
  },
2917
+ {
2918
+ "effects": [
2919
+ [
2920
+ "set",
2921
+ "@entity.editorId",
2922
+ "@payload.editorId"
2923
+ ],
2924
+ [
2925
+ "emit",
2926
+ "SET_MODE",
2927
+ {
2928
+ "caret": "block",
2929
+ "editorId": "@payload.editorId",
2930
+ "mode": "OPERATOR_PENDING"
2931
+ }
2932
+ ]
2933
+ ],
2934
+ "event": "EDITOR_FOCUS",
2935
+ "eventId": "evt_01M1QEG1N3BF95WY8CXTBH1VYB",
2936
+ "from": "OPERATOR_PENDING",
2937
+ "to": "OPERATOR_PENDING"
2938
+ },
1265
2939
  {
1266
2940
  "effects": [
1267
2941
  [
@@ -1438,6 +3112,28 @@
1438
3112
  ]
1439
3113
  ],
1440
3114
  "to": "COMMAND"
3115
+ },
3116
+ {
3117
+ "effects": [
3118
+ [
3119
+ "set",
3120
+ "@entity.editorId",
3121
+ "@payload.editorId"
3122
+ ],
3123
+ [
3124
+ "emit",
3125
+ "SET_MODE",
3126
+ {
3127
+ "caret": "block",
3128
+ "editorId": "@payload.editorId",
3129
+ "mode": "COMMAND"
3130
+ }
3131
+ ]
3132
+ ],
3133
+ "event": "EDITOR_FOCUS",
3134
+ "eventId": "evt_01M1QEG1N3BF95WY8CXTBH1VYB",
3135
+ "from": "COMMAND",
3136
+ "to": "COMMAND"
1441
3137
  }
1442
3138
  ]
1443
3139
  }