@dfosco/storyboard 0.5.0-alpha.0 → 0.5.0-alpha.3

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 (72) hide show
  1. package/dist/storyboard-ui.js +10 -3
  2. package/dist/storyboard-ui.js.map +1 -1
  3. package/package.json +2 -1
  4. package/scaffold/AGENTS.md +34 -0
  5. package/src/core/canvas/hot-pool.js +14 -0
  6. package/src/core/canvas/hub-roles.js +70 -0
  7. package/src/core/canvas/server.js +509 -94
  8. package/src/core/canvas/terminal-config.js +20 -4
  9. package/src/core/canvas/terminal-registry.js +22 -4
  10. package/src/core/canvas/terminal-server.js +180 -52
  11. package/src/core/cli/agent.js +113 -2
  12. package/src/core/cli/branch.js +1 -1
  13. package/src/core/cli/canvasAdd.js +8 -0
  14. package/src/core/cli/canvasAlias.js +73 -0
  15. package/src/core/cli/canvasBroadcast.js +145 -0
  16. package/src/core/cli/canvasConnector.js +107 -0
  17. package/src/core/cli/canvasDelete.js +38 -0
  18. package/src/core/cli/canvasDeleteCanvas.js +34 -0
  19. package/src/core/cli/canvasDuplicate.js +42 -0
  20. package/src/core/cli/canvasRoles.js +44 -0
  21. package/src/core/cli/cliHelpers.js +156 -0
  22. package/src/core/cli/dev-helpers.test.js +6 -2
  23. package/src/core/cli/dev.js +6 -1
  24. package/src/core/cli/hubCommands.js +213 -0
  25. package/src/core/cli/index.js +53 -1
  26. package/src/core/cli/messagesCommands.js +120 -0
  27. package/src/core/cli/promptSpawn.js +53 -0
  28. package/src/core/cli/schemas.js +10 -1
  29. package/src/core/cli/terminal-messaging.js +43 -3
  30. package/src/core/cli/terminal-welcome.js +10 -1
  31. package/src/core/cli/updateVersion.js +15 -6
  32. package/src/core/comments/auth.test.js +5 -1
  33. package/src/core/devtools/devtools.test.js +6 -6
  34. package/src/core/messaging/bus.js +213 -0
  35. package/src/core/messaging/bus.test.js +183 -0
  36. package/src/core/messaging/delivery.js +324 -0
  37. package/src/core/messaging/delivery.test.js +269 -0
  38. package/src/core/messaging/demo/two-agents.js +204 -0
  39. package/src/core/messaging/hub-maintenance.js +106 -0
  40. package/src/core/messaging/hub-manager.js +524 -0
  41. package/src/core/messaging/index.js +62 -0
  42. package/src/core/messaging/presence.js +295 -0
  43. package/src/core/messaging/presence.test.js +228 -0
  44. package/src/core/messaging/routes.js +744 -0
  45. package/src/core/messaging/schema.js +155 -0
  46. package/src/core/messaging/schema.test.js +142 -0
  47. package/src/core/messaging/storage/jsonl-adapter.js +111 -0
  48. package/src/core/messaging/storage/jsonl-adapter.test.js +114 -0
  49. package/src/core/messaging/storage/types.js +32 -0
  50. package/src/core/messaging/token-manager.js +395 -0
  51. package/src/core/messaging/toon.js +81 -0
  52. package/src/core/stores/configSchema.js +15 -0
  53. package/src/core/ui/Icon.jsx +9 -2
  54. package/src/core/vite/server-plugin.js +38 -3
  55. package/src/core/worktree/port.js +40 -22
  56. package/src/core/worktree/port.test.js +59 -0
  57. package/src/internals/Icon.jsx +6 -0
  58. package/src/internals/canvas/CanvasPage.bridge.test.jsx +4 -0
  59. package/src/internals/canvas/CanvasPage.dragdrop.test.jsx +4 -0
  60. package/src/internals/canvas/CanvasPage.jsx +134 -12
  61. package/src/internals/canvas/PageSelector.test.jsx +2 -1
  62. package/src/internals/canvas/WebGLContextPool.test.jsx +9 -9
  63. package/src/internals/canvas/canvasApi.js +6 -1
  64. package/src/internals/canvas/widgets/ComponentWidget.jsx +1 -1
  65. package/src/internals/canvas/widgets/TerminalWidget.jsx +70 -3
  66. package/src/internals/canvas/widgets/TerminalWidget.module.css +34 -1
  67. package/src/internals/canvas/widgets/WidgetChrome.jsx +42 -0
  68. package/src/internals/canvas/widgets/WidgetChrome.module.css +23 -0
  69. package/src/internals/canvas/widgets/widgetConfig.test.js +1 -1
  70. package/src/internals/vite/data-plugin.js +6 -1
  71. package/toolbar.config.json +1 -0
  72. package/widgets.config.json +23 -13
@@ -11297,8 +11297,9 @@ const Uv = /* @__PURE__ */ Qt(Wv), Gv = {
11297
11297
  path: "M3.709.471C4.763.353 5.867.25 7 .25s2.237.104 3.29.22h.003a3.694 3.694 0 0 1 3.247 3.256v.004c.113 1.049.21 2.145.21 3.27q-.001.595-.032 1.176l-.008.067c-.556 3.437-3.804 5.226-6.192 5.498h-.006l-.048.006a.6.6 0 0 1-.126 0q-.168.003-.338.003c-1.133 0-2.236-.103-3.29-.221h-.003A3.695 3.695 0 0 1 .46 10.272v-.004C.346 9.221.25 8.126.25 7s.097-2.222.21-3.27v-.003A3.694 3.694 0 0 1 3.707.472zm8.784 7.047h-2.37c-.854 0-1.514.656-1.628 1.442c-.22 1.52-.706 2.546-1.413 3.54H7c-1.061 0-2.108-.097-3.15-.213a2.445 2.445 0 0 1-2.148-2.153C1.592 9.1 1.5 8.057 1.5 7s.091-2.1.202-3.134A2.444 2.444 0 0 1 3.85 1.714C4.89 1.597 5.938 1.5 7 1.5s2.107.098 3.151.213a2.444 2.444 0 0 1 2.147 2.152C12.408 4.9 12.5 5.944 12.5 7q0 .259-.007.518"
11298
11298
  },
11299
11299
  agents: {
11300
- viewBox: "0 0 32 32",
11301
- path: "M27.2 16c0-6.19-5.01-11.2-11.2-11.2S4.8 9.81 4.8 16S9.81 27.2 16 27.2S27.2 22.19 27.2 16m-5.6 2.1a1.4 1.4 0 0 1 0 2.8h-4.2a1.4 1.4 0 0 1 0-2.8zm-11.2-6.8a1.397 1.397 0 0 1 1.84.361l.08.119l2.1 3.5l.087.171a1.4 1.4 0 0 1 0 1.1l-.088.171l-2.1 3.5a1.4 1.4 0 0 1-2.4-1.44l1.67-2.78l-1.67-2.78l-.067-.127a1.394 1.394 0 0 1 .547-1.79zM30 16c0 7.73-6.27 14-14 14S2 23.73 2 16S8.27 2 16 2s14 6.27 14 14"
11300
+ viewBox: "0 0 632 632",
11301
+ fillRule: "evenodd",
11302
+ path: "M127 239a68 68 0 1 0 136 0a68 68 0 1 0-136 0ZM368.09 239a68 68 0 1 0 136 0a68 68 0 1 0-136 0ZM384.017 338C392.689 338 400.414 345.179 398.942 354.406C392.562 394.413 358.095 425 316.5 425C274.905 425 240.438 394.413 234.058 354.406C232.586 345.179 240.311 338 248.983 338C257.937 338 264.507 345.273 266.394 353.173C271.837 375.96 292.219 392.871 316.5 392.871C340.781 392.871 361.163 375.96 366.606 353.173C368.493 345.273 375.063 338 384.017 338ZM572 316C572 208.029 572 153.622 544.053 116.073L543.388 115.19C535.764 105.176 526.824 96.2366 516.811 88.6125C479.232 60 424.821 60.0002 316 60.0002C207.179 60.0002 152.768 60 115.19 88.6125L114.254 89.3312C104.619 96.7965 95.9983 105.489 88.6125 115.19L87.9474 116.073C60.0002 153.622 60.0002 208.029 60.0002 316C60.0002 424.821 60 479.232 88.6125 516.811C96.2366 526.824 105.176 535.764 115.19 543.388C152.768 572 207.179 572 316 572C423.971 572 478.379 572 515.927 544.053L516.811 543.388C526.511 536.002 535.204 527.381 542.669 517.746L543.388 516.811C572 479.232 572 424.821 572 316ZM632 316C632 369.024 632.088 413.784 628.05 449.806C623.878 487.024 614.683 522.218 591.125 553.158C580.234 567.463 567.463 580.234 553.158 591.125C522.218 614.683 487.024 623.878 449.806 628.05C413.784 632.088 369.024 632 316 632C262.977 632 218.216 632.088 182.194 628.05C144.976 623.878 109.783 614.683 78.8419 591.125C64.5374 580.234 51.7667 567.463 40.8752 553.158C17.3168 522.218 8.12283 487.024 3.95035 449.806C-0.0879655 413.784 0.000154094 369.024 0.000154094 316C0.000154094 262.977-0.0879664 218.216 3.95035 182.194C8.12283 144.976 17.3168 109.783 40.8752 78.8419C51.7667 64.5374 64.5374 51.7667 78.8419 40.8752C109.783 17.3168 144.976 8.12283 182.194 3.95035C218.216-0.0879664 262.977 0.000154094 316 0.000154094C369.024 0.000154094 413.784-0.0879655 449.806 3.95035C487.024 8.12283 522.218 17.3168 553.158 40.8752C567.463 51.7667 580.234 64.5374 591.125 78.8419C614.683 109.783 623.878 144.976 628.05 182.194C632.088 218.216 632 262.977 632 316Z"
11302
11303
  },
11303
11304
  codex: {
11304
11305
  viewBox: "0 0 24 24",
@@ -11358,6 +11359,12 @@ const Uv = /* @__PURE__ */ Qt(Wv), Gv = {
11358
11359
  strokeWidth: "1.5",
11359
11360
  content: '<path d="M3 21V3.6C3 3.26863 3.26863 3 3.6 3H21" stroke="currentColor"/><path d="M17 21H20.4C20.7314 21 21 20.7314 21 20.4V17" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/><path d="M21 7V9" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/><path d="M21 12V14" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/><path d="M7 21H9" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/><path d="M12 21H14" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/><path d="M3 4C3.55228 4 4 3.55228 4 3C4 2.44772 3.55228 2 3 2C2.44772 2 2 2.44772 2 3C2 3.55228 2.44772 4 3 4Z" fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/><path d="M3 22C3.55228 22 4 21.5523 4 21C4 20.4477 3.55228 20 3 20C2.44772 20 2 20.4477 2 21C2 21.5523 2.44772 22 3 22Z" fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/><path d="M21 4C21.5523 4 22 3.55228 22 3C22 2.44772 21.5523 2 21 2C20.4477 2 20 2.44772 20 3C20 3.55228 20.4477 4 21 4Z" fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>'
11360
11361
  },
11362
+ crown: {
11363
+ viewBox: "0 0 476 342",
11364
+ strokeWidth: "0",
11365
+ fill: !0,
11366
+ content: '<path d="M237.662 5.06897e-06C234.508 -0.00234318 231.407 0.811233 228.661 2.36166C225.915 3.91209 223.616 6.14664 221.989 8.84813L143.696 138.937L28.232 63.8869C25.2791 61.9709 21.8359 60.9481 18.3159 60.9415C14.796 60.9348 11.3489 61.9445 8.38878 63.8492C5.42868 65.754 3.08142 68.4728 1.62894 71.6792C0.176467 74.8855 -0.319454 78.443 0.200748 81.9244L36.7632 325.674C37.4116 330.007 39.5942 333.963 42.9136 336.821C46.2331 339.68 50.4688 341.252 54.8495 341.25H420.475C424.855 341.252 429.091 339.68 432.41 336.821C435.73 333.963 437.912 330.007 438.561 325.674L475.123 81.9244C475.643 78.443 475.148 74.8855 473.695 71.6792C472.243 68.4728 469.895 65.754 466.935 63.8492C463.975 61.9445 460.528 60.9348 457.008 60.9415C453.488 60.9481 450.045 61.9709 447.092 63.8869L331.628 138.937L253.335 8.8725C251.711 6.16648 249.414 3.92709 246.667 2.37228C243.92 0.817458 240.818 0.000185041 237.662 5.06897e-06Z" fill="currentColor"/>'
11367
+ },
11361
11368
  "white-flag": {
11362
11369
  viewBox: "0 0 24 24",
11363
11370
  strokeWidth: "1.5",
@@ -11566,7 +11573,7 @@ function At() {
11566
11573
  console.error("[storyboard] Error in tool state subscriber:", t);
11567
11574
  }
11568
11575
  }
11569
- const Fr = { "command-toolbar": { position: "bottom-right", layout: "row" }, "canvas-toolbar": { position: "bottom-left", layout: "row" }, "command-palette": { position: "command-menu", layout: "list" } }, Wr = { dark: "github-dark-dimmed", light: "github" }, Ur = { "hide-chrome": { ariaLabel: "Hide toolbars", icon: "primer/light-bulb", render: "button", surface: "command-toolbar", handler: "core:hide-chrome", modes: ["*"], prod: !0, shortcut: { key: ".", label: "cmd ." }, hideInCommandPalette: [".*"], alwaysVisible: !0 }, flows: { label: "Flows", ariaLabel: "Switch flow", icon: "feather/fast-forward", render: "menu", surface: "command-toolbar", modes: ["*"], prod: !0, menuWidth: "280px", handler: "core:flows", excludeRoutes: ["^/$", "^/workspace", "^/viewfinder", "/canvas/", "/components/", "/notebook/"], hideInCommandPalette: ["^/$", "^/workspace", "^/viewfinder", "/canvas/", "/components/", "/notebook/"] }, theme: { label: "Theme", ariaLabel: "Switch theme", icon: "primer/sun", meta: { strokeWeight: 2 }, render: "menu", surface: "command-toolbar", handler: "core:theme", modes: ["*"], prod: !0, menuWidth: "260px", hideInCommandPalette: [".*"], options: [{ label: "System", value: "system" }, { label: "Light", value: "light" }, { label: "Light colorblind", value: "light_colorblind" }, { label: "Dark", value: "dark" }, { label: "Dark colorblind", value: "dark_colorblind" }, { label: "Dark high contrast", value: "dark_high_contrast" }, { label: "Dark Dimmed", value: "dark_dimmed" }] }, comments: { ariaLabel: "Comments", icon: "primer/comment", render: "button", surface: "*", handler: "core:comments", modes: ["*"], prod: !0, excludeRoutes: ["^/$", "^/workspace", "^/viewfinder"], hideInCommandPalette: ["^/$", "^/workspace", "^/viewfinder"] }, inspector: { ariaLabel: "Inspect components", icon: "iconoir/square-dashed", render: "sidepanel", surface: "command-toolbar", sidepanel: "inspector", handler: "core:inspector", modes: ["*"], prod: !0, excludeRoutes: ["^/$", "^/workspace", "^/viewfinder", "/canvas/", "/components/", "/notebook/"], hideInCommandPalette: ["^/$", "^/workspace", "^/viewfinder", "/canvas/", "/components/", "/notebook/"], meta: { strokeWeight: 2, scale: 1.1 }, shortcut: { key: "i", label: "cmd + i" } }, create: { disabled: !0, label: "Create", ariaLabel: "Create", icon: "iconoir/plus-circle", meta: { strokeWeight: 2, scale: 1.1 }, render: "menu", surface: "command-toolbar", handler: "core:create", modes: ["*"], menuWidth: "290px", actions: [{ type: "header", label: "Create" }, { id: "workshop/create-prototype", label: "New prototype", type: "default", modes: ["*"], feature: "createPrototype" }, { id: "workshop/create-flow", label: "New flow", type: "default", modes: ["*"], feature: "createFlow", excludeRoutes: ["/canvas/", "/components/"] }, { id: "workshop/create-page", label: "New page", type: "default", modes: ["*"], feature: "createPage", excludeRoutes: ["/canvas/", "/components/"] }, { id: "workshop/create-canvas", label: "New canvas", type: "default", modes: ["*"], feature: "createCanvas" }, { type: "footer", label: "Only available in dev environment" }] }, autosync: { ariaLabel: "Auto sync", icon: "primer/sync", render: "menu", surface: "command-toolbar", handler: "core:autosync", modes: ["*"], menuWidth: "400px" }, "canvas-add-widget": { ariaLabel: "Add widget", icon: "iconoir/grid-plus", render: "menu", surface: "canvas-toolbar", handler: "core:canvas-add-widget", modes: ["*"], meta: { strokeWeight: 2, scale: 1.2 }, menuWidth: "300px", excludeRoutes: ["^/$", "^/workspace", "^/viewfinder"], hideInCommandPalette: [".*"] }, "canvas-agents": { ariaLabel: "Add agent", label: "Add agent", icon: "agents", render: "menu", surface: "canvas-toolbar", handler: "core:canvas-agents", modes: ["*"], menuWidth: "220px", excludeRoutes: ["^/$", "^/workspace", "^/viewfinder"], hideInCommandPalette: [".*"] }, "canvas-zoom": { ariaLabel: "Zoom controls", render: "canvas-zoom", surface: "canvas-toolbar", handler: "core:canvas-toolbar", modes: ["*"], prod: !0, hideInCommandPalette: [".*"] }, "canvas-zoom-to-fit": { ariaLabel: "Zoom to objects", label: "Zoom to objects", icon: "iconoir/square-3d-three-points", meta: { strokeWeight: 2, scale: 1.2 }, render: "canvas-zoom-to-fit", surface: "canvas-toolbar", handler: "core:canvas-toolbar", modes: ["*"], prod: !0, hideInCommandPalette: ["^(?!/canvas)"] }, "canvas-snap": { ariaLabel: "Snap to grid", label: "Snap to grid", labelOn: "Snap to grid (on)", labelOff: "Snap to grid (off)", icon: "primer/apps", meta: { strokeWeight: 1.5, scale: 1.2 }, render: "canvas-snap", surface: "canvas-toolbar", handler: "core:canvas-toolbar", gridSize: 40, modes: ["*"], hideInCommandPalette: ["^(?!/canvas)"] }, "canvas-undo-redo": { ariaLabel: "Undo and redo", render: "canvas-undo-redo", surface: "canvas-toolbar", handler: "core:canvas-toolbar", modes: ["*"], hideInCommandPalette: [".*"] }, workspace: { label: "Go to workspace", icon: "primer/home-fill", render: "link", surface: "command-palette", modes: ["*"], prod: !0, url: "/" }, repository: { label: "Go to repository", icon: "primer/mark-github", render: "link", surface: "command-palette", modes: ["*"], prod: !0, url: "" }, docs: { label: "Storyboard Docs", ariaLabel: "Storyboard Docs", icon: "primer/book", render: "link", surface: "command-palette", modes: ["*"], prod: !0, url: "https://github.com/dfosco/storyboard/blob/main/DOCS.md" }, "submit-feedback": { label: "Submit feedback", icon: "primer/megaphone", render: "link", surface: "command-palette", modes: ["*"], prod: !0, url: "https://github.com/dfosco/storyboard/issues/new?template=feedback.yml" }, devtools: { label: "Devtools", icon: "iconoir/wrench", render: "submenu", surface: "command-palette", modes: ["*"], prod: !0, handler: "core:devtools", hideFromCommandPaletteSearch: !0 }, "palette-theme": { label: "Switch theme", icon: "primer/sun", render: "submenu", surface: "command-palette", modes: ["*"], prod: !0, handler: "core:palette-theme" }, "feature-flags": { label: "Feature Flags", icon: "iconoir/white-flag", render: "submenu", surface: "command-palette", modes: ["*"], prod: !0, handler: "core:feature-flags" }, "hide-toolbars": { label: "Hide toolbars", icon: "primer/light-bulb", render: "button", surface: "command-palette", modes: ["*"], prod: !0, inlineAction: "toggle-chrome", shortcut: { key: ".", label: "cmd + ." } }, "command-palette": { ariaLabel: "Command palette", icon: "iconoir/key-command", meta: { strokeWeight: 2 }, render: "button", surface: "command-toolbar", size: "icon-2xl", handler: "core:command-palette", modes: ["*"], prod: !0, shortcut: { key: "k", label: "cmd + K" }, hideInCommandPalette: [".*"] } }, Gr = {
11576
+ const Fr = { "command-toolbar": { position: "bottom-right", layout: "row" }, "canvas-toolbar": { position: "bottom-left", layout: "row" }, "command-palette": { position: "command-menu", layout: "list" } }, Wr = { dark: "github-dark-dimmed", light: "github" }, Ur = { "hide-chrome": { ariaLabel: "Hide toolbars", icon: "primer/light-bulb", render: "button", surface: "command-toolbar", handler: "core:hide-chrome", modes: ["*"], prod: !0, shortcut: { key: ".", label: "cmd ." }, hideInCommandPalette: [".*"], alwaysVisible: !0 }, flows: { label: "Flows", ariaLabel: "Switch flow", icon: "feather/fast-forward", render: "menu", surface: "command-toolbar", modes: ["*"], prod: !0, menuWidth: "280px", handler: "core:flows", excludeRoutes: ["^/$", "^/workspace", "^/viewfinder", "/canvas/", "/components/", "/notebook/"], hideInCommandPalette: ["^/$", "^/workspace", "^/viewfinder", "/canvas/", "/components/", "/notebook/"] }, theme: { label: "Theme", ariaLabel: "Switch theme", icon: "primer/sun", meta: { strokeWeight: 2 }, render: "menu", surface: "command-toolbar", handler: "core:theme", modes: ["*"], prod: !0, menuWidth: "260px", hideInCommandPalette: [".*"], options: [{ label: "System", value: "system" }, { label: "Light", value: "light" }, { label: "Light colorblind", value: "light_colorblind" }, { label: "Dark", value: "dark" }, { label: "Dark colorblind", value: "dark_colorblind" }, { label: "Dark high contrast", value: "dark_high_contrast" }, { label: "Dark Dimmed", value: "dark_dimmed" }] }, comments: { ariaLabel: "Comments", icon: "primer/comment", render: "button", surface: "*", handler: "core:comments", modes: ["*"], prod: !0, excludeRoutes: ["^/$", "^/workspace", "^/viewfinder"], hideInCommandPalette: ["^/$", "^/workspace", "^/viewfinder"] }, inspector: { ariaLabel: "Inspect components", icon: "iconoir/square-dashed", render: "sidepanel", surface: "command-toolbar", sidepanel: "inspector", handler: "core:inspector", modes: ["*"], prod: !0, excludeRoutes: ["^/$", "^/workspace", "^/viewfinder", "/canvas/", "/components/", "/notebook/"], hideInCommandPalette: ["^/$", "^/workspace", "^/viewfinder", "/canvas/", "/components/", "/notebook/"], meta: { strokeWeight: 2, scale: 1.1 }, shortcut: { key: "i", label: "cmd + i" } }, create: { disabled: !0, label: "Create", ariaLabel: "Create", icon: "iconoir/plus-circle", meta: { strokeWeight: 2, scale: 1.1 }, render: "menu", surface: "command-toolbar", handler: "core:create", modes: ["*"], menuWidth: "290px", actions: [{ type: "header", label: "Create" }, { id: "workshop/create-prototype", label: "New prototype", type: "default", modes: ["*"], feature: "createPrototype" }, { id: "workshop/create-flow", label: "New flow", type: "default", modes: ["*"], feature: "createFlow", excludeRoutes: ["/canvas/", "/components/"] }, { id: "workshop/create-page", label: "New page", type: "default", modes: ["*"], feature: "createPage", excludeRoutes: ["/canvas/", "/components/"] }, { id: "workshop/create-canvas", label: "New canvas", type: "default", modes: ["*"], feature: "createCanvas" }, { type: "footer", label: "Only available in dev environment" }] }, autosync: { ariaLabel: "Auto sync", icon: "primer/sync", render: "menu", surface: "command-toolbar", handler: "core:autosync", modes: ["*"], menuWidth: "400px" }, "canvas-add-widget": { ariaLabel: "Add widget", icon: "iconoir/grid-plus", render: "menu", surface: "canvas-toolbar", handler: "core:canvas-add-widget", modes: ["*"], meta: { strokeWeight: 2, scale: 1.2 }, menuWidth: "300px", excludeRoutes: ["^/$", "^/workspace", "^/viewfinder"], hideInCommandPalette: [".*"] }, "canvas-agents": { ariaLabel: "Add agent", label: "Add agent", icon: "agents", render: "menu", surface: "canvas-toolbar", handler: "core:canvas-agents", modes: ["*"], menuWidth: "220px", excludeRoutes: ["^/$", "^/workspace", "^/viewfinder"], hideInCommandPalette: [".*"] }, "canvas-zoom": { ariaLabel: "Zoom controls", render: "canvas-zoom", surface: "canvas-toolbar", handler: "core:canvas-toolbar", modes: ["*"], prod: !0, hideInCommandPalette: [".*"] }, "canvas-zoom-to-fit": { ariaLabel: "Zoom to objects", label: "Zoom to objects", icon: "iconoir/square-3d-three-points", meta: { strokeWeight: 2, scale: 1.2 }, render: "canvas-zoom-to-fit", surface: "canvas-toolbar", handler: "core:canvas-toolbar", modes: ["*"], prod: !0, hideInCommandPalette: ["^(?!/canvas)"] }, "canvas-snap": { ariaLabel: "Snap to grid", label: "Snap to grid", labelOn: "Snap to grid (on)", labelOff: "Snap to grid (off)", icon: "primer/apps", meta: { strokeWeight: 1.5, scale: 1.2 }, render: "canvas-snap", surface: "canvas-toolbar", handler: "core:canvas-toolbar", gridSize: 40, modes: ["*"], hideInCommandPalette: ["^(?!/canvas)"] }, "canvas-undo-redo": { ariaLabel: "Undo and redo", render: "canvas-undo-redo", surface: "canvas-toolbar", handler: "core:canvas-toolbar", modes: ["*"], hideInCommandPalette: [".*"] }, workspace: { label: "Go to workspace", icon: "primer/home-fill", render: "link", surface: "command-palette", modes: ["*"], prod: !0, url: "/" }, repository: { label: "Go to repository", icon: "primer/mark-github", render: "link", surface: "command-palette", modes: ["*"], prod: !0, url: "" }, docs: { label: "Storyboard Docs", ariaLabel: "Storyboard Docs", icon: "primer/book", render: "link", surface: "command-palette", modes: ["*"], prod: !0, url: "https://github.com/dfosco/storyboard/blob/main/DOCS.md" }, "submit-feedback": { label: "Submit feedback", icon: "primer/megaphone", render: "link", surface: "command-palette", modes: ["*"], prod: !0, url: "https://github.com/dfosco/storyboard/issues/new?template=feedback.yml" }, devtools: { label: "Devtools", icon: "iconoir/wrench", render: "submenu", surface: "command-palette", modes: ["*"], prod: !0, handler: "core:devtools", hideFromCommandPaletteSearch: !0 }, "palette-theme": { label: "Switch theme", icon: "primer/sun", render: "submenu", surface: "command-palette", modes: ["*"], prod: !0, handler: "core:palette-theme" }, "feature-flags": { label: "Feature Flags", icon: "iconoir/white-flag", render: "submenu", surface: "command-palette", modes: ["*"], prod: !0, hideFromCommandPaletteSearch: !0, handler: "core:feature-flags" }, "hide-toolbars": { label: "Hide toolbars", icon: "primer/light-bulb", render: "button", surface: "command-palette", modes: ["*"], prod: !0, inlineAction: "toggle-chrome", shortcut: { key: ".", label: "cmd + ." } }, "command-palette": { ariaLabel: "Command palette", icon: "iconoir/key-command", meta: { strokeWeight: 2 }, render: "button", surface: "command-toolbar", size: "icon-2xl", handler: "core:command-palette", modes: ["*"], prod: !0, shortcut: { key: "k", label: "cmd + K" }, hideInCommandPalette: [".*"] } }, Gr = {
11570
11577
  surfaces: Fr,
11571
11578
  highlighting: Wr,
11572
11579
  tools: Ur