@jxsuite/studio 2.0.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/canvas.html +21 -0
- package/dist/chunks/Overlay.dev-qfjzkms8.js +23 -0
- package/dist/chunks/{Overlay.dev-cszx7yn5.js.map → Overlay.dev-qfjzkms8.js.map} +1 -1
- package/dist/chunks/{adapter-z8fkmbmv.js → adapter-qfnesn5v.js} +2 -2
- package/dist/chunks/{cf-settings-mmyv436d.js → cf-settings-73sh5z4p.js} +3 -3
- package/dist/chunks/{components-799jpvhm.js → components-2bpqp4mq.js} +5 -7
- package/dist/chunks/{components-799jpvhm.js.map → components-2bpqp4mq.js.map} +1 -1
- package/dist/chunks/content-source-34gnkbnn.js +38 -0
- package/dist/chunks/content-source-34gnkbnn.js.map +9 -0
- package/dist/chunks/convert-to-repeater-t8kxre5s.js +258 -0
- package/dist/chunks/convert-to-repeater-t8kxre5s.js.map +10 -0
- package/dist/chunks/extension-sections-6mqydz35.js +301 -0
- package/dist/chunks/extension-sections-6mqydz35.js.map +11 -0
- package/dist/chunks/files-8kn321h1.js +70 -0
- package/dist/chunks/files-8kn321h1.js.map +9 -0
- package/dist/chunks/{format-host-8jxwts2p.js → format-host-mkwsmt8d.js} +3 -3
- package/dist/chunks/git-panel-tjbr191d.js +51 -0
- package/dist/chunks/git-panel-tjbr191d.js.map +9 -0
- package/dist/chunks/{index-baeg2x3y.js → index-7pxchcce.js} +4 -3
- package/dist/chunks/{index-baeg2x3y.js.map → index-7pxchcce.js.map} +3 -3
- package/dist/chunks/{jx-validate-qx8degj7.js → jx-validate-v6qgknrs.js} +3 -3
- package/dist/chunks/layers-panel-87pb25km.js +58 -0
- package/dist/chunks/layers-panel-87pb25km.js.map +9 -0
- package/dist/chunks/{monaco-setup-zjdp9zdw.js → monaco-setup-e0yh25j4.js} +4 -75
- package/dist/chunks/{monaco-setup-zjdp9zdw.js.map → monaco-setup-e0yh25j4.js.map} +3 -4
- package/dist/chunks/publish-panel-m0fcgdrt.js +21 -0
- package/dist/chunks/publish-panel-m0fcgdrt.js.map +9 -0
- package/dist/chunks/quick-search-rhs6cbsb.js +53 -0
- package/dist/chunks/quick-search-rhs6cbsb.js.map +9 -0
- package/dist/chunks/right-panel-zpdxd98t.js +37 -0
- package/dist/chunks/right-panel-zpdxd98t.js.map +9 -0
- package/dist/chunks/section-registry-zmckaxf4.js +30 -0
- package/dist/chunks/section-registry-zmckaxf4.js.map +9 -0
- package/dist/chunks/sp-overlay.dev-9ran0sfq.js +18 -0
- package/dist/chunks/sp-overlay.dev-9ran0sfq.js.map +9 -0
- package/dist/chunks/sp-popover.dev-rebmdncr.js +9 -0
- package/dist/chunks/sp-popover.dev-rebmdncr.js.map +9 -0
- package/dist/chunks/sp-progress-circle.dev-5vkppfkt.js +15 -0
- package/dist/chunks/sp-progress-circle.dev-5vkppfkt.js.map +9 -0
- package/dist/chunks/sp-tooltip.dev-ykqrg8h5.js +15 -0
- package/dist/chunks/sp-tooltip.dev-ykqrg8h5.js.map +9 -0
- package/dist/chunks/{sp-tray.dev-pb2fsd65.js → sp-tray.dev-ey59vfh7.js} +10 -8
- package/dist/chunks/{sp-tray.dev-pb2fsd65.js.map → sp-tray.dev-ey59vfh7.js.map} +2 -2
- package/dist/chunks/{studio-9qr6fq7p.js → studio-0rqqhrdy.js} +10 -378
- package/dist/chunks/{studio-9qr6fq7p.js.map → studio-0rqqhrdy.js.map} +4 -14
- package/dist/chunks/{studio-5x6tqqec.js → studio-2sj1jj3v.js} +10 -8
- package/dist/chunks/{studio-5x6tqqec.js.map → studio-2sj1jj3v.js.map} +2 -2
- package/dist/chunks/{studio-h3fw0wn8.js → studio-3fk1ac9z.js} +6 -4
- package/dist/chunks/{studio-h3fw0wn8.js.map → studio-3fk1ac9z.js.map} +2 -2
- package/dist/chunks/studio-41exgzhq.js +6690 -0
- package/dist/chunks/studio-41exgzhq.js.map +38 -0
- package/dist/chunks/{studio-7v2bpweq.js → studio-4mqb9a0j.js} +6 -4
- package/dist/chunks/{studio-7v2bpweq.js.map → studio-4mqb9a0j.js.map} +2 -2
- package/dist/chunks/studio-50k77cca.js +1787 -0
- package/dist/chunks/studio-50k77cca.js.map +18 -0
- package/dist/chunks/{studio-56v3zwk6.js → studio-6a0h7sne.js} +10 -8
- package/dist/chunks/{studio-56v3zwk6.js.map → studio-6a0h7sne.js.map} +2 -2
- package/dist/chunks/studio-6f0am8f2.js +53 -0
- package/dist/chunks/studio-6f0am8f2.js.map +10 -0
- package/dist/chunks/studio-6nmjc5qk.js +7002 -0
- package/dist/chunks/studio-6nmjc5qk.js.map +32 -0
- package/dist/chunks/studio-7afd21nw.js +67 -0
- package/dist/chunks/studio-7afd21nw.js.map +10 -0
- package/dist/chunks/{studio-xze4zrs1.js → studio-7bmdvzne.js} +2 -2
- package/dist/chunks/studio-7bmdvzne.js.map +10 -0
- package/dist/chunks/studio-8jpzqk5s.js +128 -0
- package/dist/chunks/studio-8jpzqk5s.js.map +10 -0
- package/dist/chunks/studio-94m77tgk.js +1482 -0
- package/dist/chunks/studio-94m77tgk.js.map +13 -0
- package/dist/chunks/studio-9je6w5sq.js +1000 -0
- package/dist/chunks/studio-9je6w5sq.js.map +16 -0
- package/dist/chunks/{studio-w7c6kvk7.js → studio-a7pzveq1.js} +2 -2
- package/dist/chunks/{studio-gs6kqdt1.js → studio-adn0z1k3.js} +14 -8
- package/dist/chunks/{studio-gs6kqdt1.js.map → studio-adn0z1k3.js.map} +3 -3
- package/dist/chunks/{studio-kr88ryr7.js → studio-bsxxx3x2.js} +17 -15
- package/dist/chunks/{studio-kr88ryr7.js.map → studio-bsxxx3x2.js.map} +7 -6
- package/dist/chunks/studio-bw5dz6km.js +608 -0
- package/dist/chunks/studio-bw5dz6km.js.map +21 -0
- package/dist/chunks/studio-c6s5getc.js +4232 -0
- package/dist/chunks/studio-c6s5getc.js.map +39 -0
- package/dist/chunks/studio-cjm7fdjf.js +451 -0
- package/dist/chunks/studio-cjm7fdjf.js.map +14 -0
- package/dist/chunks/{studio-cx91mnh8.js → studio-ckwz4d3x.js} +53 -53
- package/dist/chunks/{studio-cx91mnh8.js.map → studio-ckwz4d3x.js.map} +5 -5
- package/dist/chunks/studio-dg7zyt5x.js +28 -0
- package/dist/chunks/studio-dg7zyt5x.js.map +10 -0
- package/dist/chunks/studio-dzcyvvvz.js +166 -0
- package/dist/chunks/studio-dzcyvvvz.js.map +10 -0
- package/dist/chunks/{studio-7kqe41sa.js → studio-evkr5d3b.js} +15 -7
- package/dist/chunks/{studio-7kqe41sa.js.map → studio-evkr5d3b.js.map} +5 -4
- package/dist/chunks/studio-f12h6177.js +411 -0
- package/dist/chunks/studio-f12h6177.js.map +13 -0
- package/dist/chunks/studio-hbp1s8m9.js +1817 -0
- package/dist/chunks/studio-hbp1s8m9.js.map +14 -0
- package/dist/chunks/studio-k2sxjph5.js +15295 -0
- package/dist/chunks/studio-k2sxjph5.js.map +235 -0
- package/dist/chunks/studio-myje51t3.js +385 -0
- package/dist/chunks/studio-myje51t3.js.map +12 -0
- package/dist/chunks/studio-na6rwzhw.js +353 -0
- package/dist/chunks/studio-na6rwzhw.js.map +11 -0
- package/dist/chunks/{studio-4k0m4fmp.js → studio-p471gg5n.js} +126 -3
- package/dist/chunks/studio-p471gg5n.js.map +14 -0
- package/dist/chunks/{studio-9bjwf0d4.js → studio-rgwcpast.js} +5 -46
- package/dist/chunks/{studio-9bjwf0d4.js.map → studio-rgwcpast.js.map} +4 -5
- package/dist/chunks/{studio-esrewxap.js → studio-s519zc99.js} +3 -3
- package/dist/chunks/studio-sas7mt3k.js +75 -0
- package/dist/chunks/studio-sas7mt3k.js.map +10 -0
- package/dist/chunks/studio-t5wqwzdh.js +74 -0
- package/dist/chunks/studio-t5wqwzdh.js.map +10 -0
- package/dist/chunks/{studio-9qpspwfn.js → studio-temv5bw4.js} +5 -5
- package/dist/chunks/{studio-9qpspwfn.js.map → studio-temv5bw4.js.map} +1 -1
- package/dist/chunks/{studio-qkvt37c0.js → studio-tr20m8g8.js} +669 -18
- package/dist/chunks/studio-tr20m8g8.js.map +9 -0
- package/dist/chunks/{studio-v7jkjqng.js → studio-v96qfnww.js} +5514 -4291
- package/dist/chunks/studio-v96qfnww.js.map +54 -0
- package/dist/chunks/studio-vcetc91k.js +659 -0
- package/dist/chunks/studio-vcetc91k.js.map +10 -0
- package/dist/chunks/{studio-jm0z592w.js → studio-vmymjefp.js} +2972 -4937
- package/dist/chunks/studio-vmymjefp.js.map +98 -0
- package/dist/chunks/{studio-bghqfmea.js → studio-wwseqyw0.js} +2 -2
- package/dist/chunks/studio-x9hmy5kr.js +390 -0
- package/dist/chunks/studio-x9hmy5kr.js.map +10 -0
- package/dist/chunks/studio-xa0ce0n7.js +335 -0
- package/dist/chunks/studio-xa0ce0n7.js.map +10 -0
- package/dist/chunks/studio-xm3dbxvn.js +378 -0
- package/dist/chunks/studio-xm3dbxvn.js.map +19 -0
- package/dist/chunks/{studio-nqw433kv.js → studio-xmvbhg31.js} +2 -2
- package/dist/chunks/studio-zv37yrfa.js +1054 -0
- package/dist/chunks/studio-zv37yrfa.js.map +13 -0
- package/dist/chunks/{ws-client-q7hkz3j9.js → ws-client-654ts66j.js} +6 -4
- package/dist/chunks/ws-client-654ts66j.js.map +11 -0
- package/dist/iframe-entry.js +668 -230
- package/dist/studio.js +21080 -32585
- package/index.html +35 -4685
- package/package.json +17 -15
- package/src/about/about-modal.ts +42 -11
- package/src/browse/library-commands.ts +240 -0
- package/src/browse/library-layouts.ts +369 -0
- package/src/browse/library-model.ts +396 -0
- package/src/browse/library-pane.ts +1049 -0
- package/src/browse/library-preview.ts +252 -0
- package/src/browse/library-source.ts +150 -0
- package/src/canvas/canvas-helpers.ts +33 -9
- package/src/canvas/canvas-live-render.ts +45 -29
- package/src/canvas/canvas-patcher.ts +151 -31
- package/src/canvas/canvas-perf.ts +46 -7
- package/src/canvas/canvas-render.ts +1092 -220
- package/src/canvas/canvas-surface.ts +240 -0
- package/src/canvas/canvas-utils.ts +1166 -124
- package/src/canvas/iframe-drop.ts +2 -1
- package/src/canvas/iframe-entry.ts +241 -4
- package/src/canvas/iframe-host.ts +1226 -143
- package/src/canvas/iframe-inline-edit.ts +31 -0
- package/src/canvas/iframe-interaction.ts +76 -16
- package/src/canvas/iframe-keys.ts +107 -45
- package/src/canvas/iframe-overlay.ts +38 -1
- package/src/canvas/iframe-protocol.ts +137 -2
- package/src/canvas/iframe-render.ts +70 -2
- package/src/canvas/iframe-slash.ts +6 -0
- package/src/canvas/path-mapping.ts +56 -6
- package/src/canvas/surface-registry.ts +292 -0
- package/src/collab/collab-commands.ts +244 -0
- package/src/collab/collab-session.ts +198 -32
- package/src/collab/collab-state.ts +28 -2
- package/src/collab/presence-chips.ts +100 -9
- package/src/commands/active-registry.ts +42 -0
- package/src/commands/app-commands.ts +176 -0
- package/src/commands/budget.ts +158 -0
- package/src/commands/command-args.ts +253 -0
- package/src/commands/context.ts +387 -0
- package/src/commands/defaults.ts +580 -0
- package/src/commands/keymap.ts +571 -0
- package/src/commands/levels.ts +345 -0
- package/src/commands/live-context.ts +193 -0
- package/src/commands/reference.ts +227 -0
- package/src/commands/registry.ts +293 -0
- package/src/component-props.ts +3 -2
- package/src/content/draft-state.ts +106 -0
- package/src/content/entry-commands.ts +282 -0
- package/src/content/entry-editor.ts +327 -0
- package/src/content/entry-fields.ts +116 -0
- package/src/content/entry-model.ts +175 -0
- package/src/editor/canvas-context-menu.ts +17 -11
- package/src/editor/canvas-slash-bridge.ts +11 -4
- package/src/editor/context-menu.ts +804 -204
- package/src/editor/convert-to-component.ts +31 -10
- package/src/editor/convert-to-repeater.ts +3 -2
- package/src/editor/inline-edit-apply.ts +5 -5
- package/src/editor/inline-edit.ts +86 -50
- package/src/editor/insert-zone-action.ts +1 -1
- package/src/editor/shortcuts.ts +1043 -329
- package/src/editor/slash-menu.ts +1 -0
- package/src/files/elements.ts +166 -0
- package/src/files/file-ops.ts +178 -31
- package/src/files/files.ts +898 -268
- package/src/files/fs-events.ts +21 -0
- package/src/files/media-meta.ts +203 -0
- package/src/files/media-paths.ts +141 -0
- package/src/files/media-upload.ts +7 -3
- package/src/files/media-usage.ts +189 -0
- package/src/github/github-auth.ts +235 -33
- package/src/github/github-publish.ts +80 -21
- package/src/grid/grid-controller.ts +152 -12
- package/src/grid/grid-layout.ts +225 -20
- package/src/grid/grid-open.ts +120 -0
- package/src/grid/grid-panel.ts +554 -39
- package/src/grid/grid-source.ts +27 -1
- package/src/grid/redirects-grid.ts +599 -0
- package/src/grid/redirects.ts +398 -0
- package/src/grid/sources/content-source.ts +108 -2
- package/src/i18n/i18n-commands.ts +322 -0
- package/src/new-project/add-repo-modal.ts +8 -10
- package/src/new-project/import-tab.ts +7 -0
- package/src/new-project/location-fields.ts +9 -1
- package/src/new-project/new-project-modal.ts +221 -245
- package/src/packages/jxsuite-update.ts +97 -48
- package/src/packages/pull-package-sync.ts +18 -9
- package/src/page-params.ts +2 -1
- package/src/panels/activity-bar.ts +152 -91
- package/src/panels/activity-panel.ts +481 -0
- package/src/panels/ai-chat/chat-markdown.ts +8 -3
- package/src/panels/ai-chat/chat-view.ts +245 -18
- package/src/panels/ai-chat/composer.ts +31 -5
- package/src/panels/ai-chat/sessions-view.ts +17 -10
- package/src/panels/ai-panel.ts +279 -53
- package/src/panels/block-action-bar.ts +1115 -224
- package/src/panels/bottom-dock.ts +337 -0
- package/src/panels/canvas-dnd-bridge.ts +37 -8
- package/src/panels/chat-panel.ts +29 -12
- package/src/panels/data-explorer.ts +254 -112
- package/src/panels/data-grid.ts +10 -4
- package/src/panels/dnd.ts +28 -51
- package/src/panels/editors.ts +434 -107
- package/src/panels/elements-panel.ts +66 -2
- package/src/panels/empty-state.ts +112 -0
- package/src/panels/events-panel.ts +596 -82
- package/src/panels/formula-workspace.ts +408 -218
- package/src/panels/frontmatter-fields.ts +51 -10
- package/src/panels/frontmatter-panel.ts +357 -79
- package/src/panels/git-panel.ts +375 -164
- package/src/panels/head-panel.ts +791 -85
- package/src/panels/i18n-panel.ts +592 -0
- package/src/panels/imports-panel.ts +95 -85
- package/src/panels/jump-bar.ts +584 -0
- package/src/panels/layers-panel.ts +1106 -328
- package/src/panels/left-panel.ts +109 -204
- package/src/panels/navigator-panels.ts +131 -0
- package/src/panels/overlays.ts +7 -2
- package/src/panels/pane-context.ts +1477 -0
- package/src/panels/pane-grid.ts +406 -0
- package/src/panels/panel-registry.ts +340 -0
- package/src/panels/panel-scheduler.ts +75 -0
- package/src/panels/problems-panel.ts +234 -0
- package/src/panels/properties-panel.ts +946 -1139
- package/src/panels/provenance.ts +258 -0
- package/src/panels/quick-search.ts +791 -122
- package/src/panels/right-panel.ts +228 -102
- package/src/panels/seo-modal.ts +395 -0
- package/src/panels/settings-pane.ts +203 -0
- package/src/panels/signals-panel.ts +354 -137
- package/src/panels/statement-editor.ts +41 -25
- package/src/panels/statusbar.ts +342 -106
- package/src/panels/style-panel.ts +974 -463
- package/src/panels/style-utils.ts +3 -3
- package/src/panels/stylebook-doc.ts +4 -2
- package/src/panels/stylebook-layers-panel.ts +3 -2
- package/src/panels/stylebook-panel.ts +51 -26
- package/src/panels/tab-strip.ts +1058 -78
- package/src/panels/target-line.ts +274 -0
- package/src/panels/toolbar.ts +631 -484
- package/src/panels/welcome-screen.ts +301 -198
- package/src/platform-errors.ts +26 -3
- package/src/platform.ts +96 -2
- package/src/platforms/cloud.ts +71 -8
- package/src/platforms/devserver.ts +92 -29
- package/src/publish/deploy-checklist.ts +383 -0
- package/src/publish/pages-service.ts +10 -1
- package/src/publish/publish-commands.ts +218 -0
- package/src/publish/publish-panel.ts +110 -16
- package/src/recent-projects.ts +3 -2
- package/src/services/a11y-report.ts +505 -0
- package/src/services/ai-models.ts +30 -1
- package/src/services/ai-project-tools.ts +29 -10
- package/src/services/ai-system-prompt.ts +53 -14
- package/src/services/ai-tools.ts +39 -3
- package/src/services/ai-writes.ts +154 -0
- package/src/services/announce.ts +97 -0
- package/src/services/automation.ts +424 -175
- package/src/services/cem-export.ts +9 -4
- package/src/services/clock.ts +61 -0
- package/src/services/document-assistant.ts +36 -8
- package/src/services/idle.ts +179 -0
- package/src/services/import-client.ts +26 -0
- package/src/services/monaco-buffer.ts +627 -0
- package/src/services/monaco-lazy.ts +36 -0
- package/src/services/notify.ts +271 -0
- package/src/services/profile.ts +155 -0
- package/src/services/references.ts +0 -0
- package/src/services/token-lint.ts +3 -2
- package/src/services/tool-executor.ts +53 -7
- package/src/services/trusted-types.ts +123 -0
- package/src/settings/contexts-section.ts +427 -0
- package/src/settings/contributed-section.ts +149 -11
- package/src/settings/css-vars-editor.ts +306 -349
- package/src/settings/defs-editor.ts +93 -34
- package/src/settings/dependencies-editor.ts +7 -7
- package/src/settings/extension-sections.ts +37 -5
- package/src/settings/general-settings.ts +204 -121
- package/src/settings/locales-section.ts +347 -0
- package/src/settings/preferences-accounts.ts +140 -0
- package/src/settings/preferences-dialog.ts +620 -0
- package/src/settings/preferences-keymap.ts +270 -0
- package/src/settings/project-sections.ts +260 -0
- package/src/settings/section-registry.ts +169 -0
- package/src/settings/settings-document.ts +385 -0
- package/src/shell.ts +1549 -0
- package/src/site-context.ts +45 -20
- package/src/state.ts +14 -275
- package/src/store.ts +88 -43
- package/src/studio.ts +790 -346
- package/src/style/live-preview.ts +36 -0
- package/src/style/project-styles.ts +349 -0
- package/src/style/token-ref.ts +123 -0
- package/src/tabs/patch-ops.ts +16 -4
- package/src/tabs/project-config.ts +416 -0
- package/src/tabs/selection.ts +323 -0
- package/src/tabs/tab.ts +182 -47
- package/src/tabs/transact.ts +209 -28
- package/src/types.ts +68 -13
- package/src/ui/ai-credentials-form.ts +39 -35
- package/src/ui/ai-managed-connect.ts +7 -1
- package/src/ui/dynamic-slot.ts +224 -81
- package/src/ui/expression-editor.ts +71 -63
- package/src/ui/field-input.ts +4 -6
- package/src/ui/field-row.ts +215 -38
- package/src/ui/form-controls.ts +194 -7
- package/src/ui/layers.ts +492 -69
- package/src/ui/media-picker.ts +115 -25
- package/src/ui/panel-resize.ts +109 -91
- package/src/ui/progress-modal.ts +131 -50
- package/src/ui/regions.ts +462 -0
- package/src/ui/schema-form.ts +229 -45
- package/src/ui/spectrum.ts +24 -8
- package/src/ui/timing.ts +49 -0
- package/src/ui/value-selector.ts +20 -0
- package/src/ui/value-source.ts +348 -0
- package/src/ui/virtual-window.ts +400 -0
- package/src/utils/edit-display.ts +3 -2
- package/src/utils/inherited-style.ts +67 -37
- package/src/view.ts +64 -78
- package/src/workspace/pane-derive.ts +1258 -0
- package/src/workspace/session.ts +317 -0
- package/src/workspace/workspace.ts +1345 -23
- package/styles/canvas.css +653 -0
- package/styles/forced-colors.css +106 -0
- package/styles/inspector.css +1454 -0
- package/styles/overlays.css +2704 -0
- package/styles/panels.css +1701 -0
- package/styles/shell.css +1423 -0
- package/styles/tokens.css +151 -0
- package/dist/chunks/Overlay.dev-cszx7yn5.js +0 -22
- package/dist/chunks/extension-sections-qr3drkkw.js +0 -531
- package/dist/chunks/extension-sections-qr3drkkw.js.map +0 -12
- package/dist/chunks/files-j8a1t06k.js +0 -50
- package/dist/chunks/files-j8a1t06k.js.map +0 -9
- package/dist/chunks/git-panel-xtq5z81x.js +0 -28
- package/dist/chunks/git-panel-xtq5z81x.js.map +0 -9
- package/dist/chunks/layers-panel-ancn2wpq.js +0 -26
- package/dist/chunks/layers-panel-ancn2wpq.js.map +0 -9
- package/dist/chunks/settings-modal-17ttr96g.js +0 -29
- package/dist/chunks/settings-modal-17ttr96g.js.map +0 -9
- package/dist/chunks/sp-overlay.dev-earn5as8.js +0 -17
- package/dist/chunks/sp-overlay.dev-earn5as8.js.map +0 -9
- package/dist/chunks/sp-popover.dev-frxtfejn.js +0 -8
- package/dist/chunks/sp-popover.dev-frxtfejn.js.map +0 -9
- package/dist/chunks/sp-progress-circle.dev-7tvw34h8.js +0 -14
- package/dist/chunks/sp-progress-circle.dev-7tvw34h8.js.map +0 -9
- package/dist/chunks/sp-tooltip.dev-a9fywesm.js +0 -21
- package/dist/chunks/sp-tooltip.dev-a9fywesm.js.map +0 -10
- package/dist/chunks/studio-0xgs7xrs.js +0 -429
- package/dist/chunks/studio-0xgs7xrs.js.map +0 -13
- package/dist/chunks/studio-4d8hzcz5.js +0 -3427
- package/dist/chunks/studio-4d8hzcz5.js.map +0 -26
- package/dist/chunks/studio-4k0m4fmp.js.map +0 -13
- package/dist/chunks/studio-9smfzqhc.js +0 -19
- package/dist/chunks/studio-9smfzqhc.js.map +0 -10
- package/dist/chunks/studio-jm0z592w.js.map +0 -115
- package/dist/chunks/studio-m2t4mdg5.js +0 -1854
- package/dist/chunks/studio-m2t4mdg5.js.map +0 -18
- package/dist/chunks/studio-n4p11dfy.js +0 -853
- package/dist/chunks/studio-n4p11dfy.js.map +0 -12
- package/dist/chunks/studio-qkvt37c0.js.map +0 -9
- package/dist/chunks/studio-sjh1wt1a.js +0 -3744
- package/dist/chunks/studio-sjh1wt1a.js.map +0 -22
- package/dist/chunks/studio-v7jkjqng.js.map +0 -46
- package/dist/chunks/studio-xq0t7n5t.js +0 -140
- package/dist/chunks/studio-xq0t7n5t.js.map +0 -10
- package/dist/chunks/studio-xze4zrs1.js.map +0 -10
- package/dist/chunks/studio-yfcstdzy.js +0 -399
- package/dist/chunks/studio-yfcstdzy.js.map +0 -12
- package/dist/chunks/studio-zp7jncs8.js +0 -469
- package/dist/chunks/studio-zp7jncs8.js.map +0 -14
- package/dist/chunks/ws-client-q7hkz3j9.js.map +0 -11
- package/src/browse/browse-modal.ts +0 -69
- package/src/browse/browse.ts +0 -904
- package/src/canvas/canvas-diff.ts +0 -216
- package/src/canvas/nested-site-style.ts +0 -58
- package/src/new-project/design-fields.ts +0 -264
- package/src/new-project/templates.ts +0 -61
- package/src/panels/tab-bar.ts +0 -548
- package/src/settings/settings-modal.ts +0 -203
- /package/dist/chunks/{adapter-z8fkmbmv.js.map → adapter-qfnesn5v.js.map} +0 -0
- /package/dist/chunks/{cf-settings-mmyv436d.js.map → cf-settings-73sh5z4p.js.map} +0 -0
- /package/dist/chunks/{format-host-8jxwts2p.js.map → format-host-mkwsmt8d.js.map} +0 -0
- /package/dist/chunks/{jx-validate-qx8degj7.js.map → jx-validate-v6qgknrs.js.map} +0 -0
- /package/dist/chunks/{studio-w7c6kvk7.js.map → studio-a7pzveq1.js.map} +0 -0
- /package/dist/chunks/{studio-esrewxap.js.map → studio-s519zc99.js.map} +0 -0
- /package/dist/chunks/{studio-bghqfmea.js.map → studio-wwseqyw0.js.map} +0 -0
- /package/dist/chunks/{studio-nqw433kv.js.map → studio-xmvbhg31.js.map} +0 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/// <reference lib="dom" />
|
|
2
|
+
/**
|
|
3
|
+
* Canvas surfaces — one stage per pane, asked about the pane it belongs to.
|
|
4
|
+
*
|
|
5
|
+
* A pane is the unit of split, focus and zoom (§4.1), so it is also the unit of RENDER. The panels
|
|
6
|
+
* a pass mounted, the host element they mounted into, the mode that pass was drawn in and the full
|
|
7
|
+
* render a failed patch escalates to are all facts about ONE pane; they were app-level singletons
|
|
8
|
+
* only because the shell had a single stage.
|
|
9
|
+
*
|
|
10
|
+
* The RECORDS live in `./surface-registry`, which knows nothing about tabs (see the note there on
|
|
11
|
+
* the cycle that forced the split). Everything here composes a surface with the workspace: which
|
|
12
|
+
* tab a pane is showing, which stage is showing a tab, which pane mounted an artboard.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { PRIMARY_PANE, paneById, workspace } from "../workspace/workspace";
|
|
16
|
+
import { allCanvasSurfaces, stageContaining, surfaceForPane } from "./surface-registry";
|
|
17
|
+
import type { CanvasSurface } from "./surface-registry";
|
|
18
|
+
import type { PaneDerivation } from "../workspace/workspace";
|
|
19
|
+
import type { CanvasPanel } from "../types";
|
|
20
|
+
import type { Tab } from "../tabs/tab";
|
|
21
|
+
|
|
22
|
+
export {
|
|
23
|
+
STAGE_CLASS,
|
|
24
|
+
allCanvasSurfaces,
|
|
25
|
+
createPaneSurface,
|
|
26
|
+
disposePaneSurface,
|
|
27
|
+
nextRenderGeneration,
|
|
28
|
+
registerCanvasSurface,
|
|
29
|
+
releaseMountedPanels,
|
|
30
|
+
setSurfaceTeardown,
|
|
31
|
+
stageContaining,
|
|
32
|
+
surfaceForPane,
|
|
33
|
+
unregisterCanvasSurface,
|
|
34
|
+
} from "./surface-registry";
|
|
35
|
+
export type { CanvasSurface } from "./surface-registry";
|
|
36
|
+
|
|
37
|
+
/** The focused pane's stage — what "the canvas" means to a command the person just ran. */
|
|
38
|
+
export function activeCanvasSurface(): CanvasSurface {
|
|
39
|
+
return surfaceForPane(workspace.activePaneId);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The tab a pane is DISPLAYING, or null when it shows none.
|
|
44
|
+
*
|
|
45
|
+
* `activeTab` answers this for the FOCUSED pane only; a render, a patch classification and an
|
|
46
|
+
* escalation each need it for a named pane instead.
|
|
47
|
+
*
|
|
48
|
+
* **This one hop is the leverage of the whole derivation.** A LENS pane owns no tab — its
|
|
49
|
+
* `tabOrder` is `[]` — and displays the document its source pane owns, so the answer comes from
|
|
50
|
+
* `sourcePaneId`. Every reader that was already written pane-scoped therefore starts working on a
|
|
51
|
+
* lens pane for free: `renderCanvasImpl`, all three `installPaneRenderEffects` effects, the pane
|
|
52
|
+
* context bar, the jump bar, `tabOfContainer`, `tabOfMountedPanel` and `mountSourceEditor`'s
|
|
53
|
+
* post-await guard. That is also why the follow costs nothing: switching tabs in the source pane
|
|
54
|
+
* repaints the lens because it is the same reactive read.
|
|
55
|
+
*
|
|
56
|
+
* A COMPANION pane owns its tabs normally and takes no hop — the derivation only decides which of
|
|
57
|
+
* its own tabs is on screen.
|
|
58
|
+
*
|
|
59
|
+
* The distinction this draws is not a new one in the render path: `mountIframeCanvas(gen, doc,
|
|
60
|
+
* canvasEl, widthPx, tabId, viewTab)` has separated "where do this frame's mutations go" from
|
|
61
|
+
* "whose document path, layout toggle and canvas mode resolve it" since the git-diff override. A
|
|
62
|
+
* lens lifts that pair to the pane.
|
|
63
|
+
*
|
|
64
|
+
* @param {string} paneId
|
|
65
|
+
* @returns {Tab | null}
|
|
66
|
+
*/
|
|
67
|
+
export function tabOfPane(paneId: string): Tab | null {
|
|
68
|
+
const pane = paneById(paneId);
|
|
69
|
+
const derived = pane?.derived;
|
|
70
|
+
const activeTabId =
|
|
71
|
+
derived?.kind === "lens" ? paneById(derived.sourcePaneId)?.activeTabId : pane?.activeTabId;
|
|
72
|
+
return activeTabId ? (workspace.tabs.get(activeTabId) ?? null) : null;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* The derivation a pane is drawing under, or null for an ordinary pane.
|
|
77
|
+
*
|
|
78
|
+
* Here rather than in `workspace/pane-derive.ts` (which owns the WRITERS) because every reader of
|
|
79
|
+
* it is a pane-scoped renderer already resolving through this module, and `pane-derive.ts` imports
|
|
80
|
+
* {@link tabOfPane} from here — the other direction would be a cycle.
|
|
81
|
+
*
|
|
82
|
+
* @param {string} paneId
|
|
83
|
+
* @returns {PaneDerivation | null}
|
|
84
|
+
*/
|
|
85
|
+
export function derivationOfPane(paneId: string): PaneDerivation | null {
|
|
86
|
+
return paneById(paneId)?.derived ?? null;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Every stage displaying `tab` — its owning pane's, plus any derived pane projecting that pane.
|
|
91
|
+
*
|
|
92
|
+
* This is the per-pane replacement for `isTabActive(tab)` in the patcher's gate, and it is strictly
|
|
93
|
+
* more truthful: a tab is patchable because some pane is DISPLAYING it, not because it happens to
|
|
94
|
+
* be the one the keyboard is in.
|
|
95
|
+
*
|
|
96
|
+
* **Plural, and not kept as a singular wrapper.** `surfaceShowingTab` returned the FIRST pane whose
|
|
97
|
+
* `activeTabId` matched, which was a complete answer only while a tab could be on screen in one
|
|
98
|
+
* place. A lens pane displays the tab its source pane owns (`tabOfPane` takes the hop), so a
|
|
99
|
+
* function answering "the one pane" when there may be two is precisely the defect this workstream
|
|
100
|
+
* is about: the patcher posted one pane's `renderGeneration` to both hosts, and the host whose own
|
|
101
|
+
* generation was higher dropped the patch without a sound.
|
|
102
|
+
*
|
|
103
|
+
* Resolved through {@link tabOfPane} rather than through `pane.activeTabId`, so the lens hop is
|
|
104
|
+
* written once.
|
|
105
|
+
*
|
|
106
|
+
* @param {Tab | null} tab
|
|
107
|
+
* @returns {CanvasSurface[]}
|
|
108
|
+
*/
|
|
109
|
+
export function surfacesShowingTab(tab: Tab | null): CanvasSurface[] {
|
|
110
|
+
if (!tab) {
|
|
111
|
+
return [];
|
|
112
|
+
}
|
|
113
|
+
const out: CanvasSurface[] = [];
|
|
114
|
+
for (const pane of workspace.panes) {
|
|
115
|
+
if (tabOfPane(pane.id)?.id === tab.id) {
|
|
116
|
+
out.push(surfaceForPane(pane.id));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return out;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* The stage and artboard that mounted `canvasEl`, or null when no pane did.
|
|
124
|
+
*
|
|
125
|
+
* The iframe host knows only its own canvas element, and both answers it needs are here: which
|
|
126
|
+
* artboard was clicked (so the breakpoint context follows the click rather than panel 0), and which
|
|
127
|
+
* PANE a `patchError` must escalate — escalating "the canvas" would re-render a pane that never saw
|
|
128
|
+
* the patch.
|
|
129
|
+
*
|
|
130
|
+
* @param {HTMLElement} canvasEl
|
|
131
|
+
* @returns {{ surface: CanvasSurface; panel: CanvasPanel } | null}
|
|
132
|
+
*/
|
|
133
|
+
export function panelHostingCanvas(
|
|
134
|
+
canvasEl: HTMLElement,
|
|
135
|
+
): { surface: CanvasSurface; panel: CanvasPanel } | null {
|
|
136
|
+
for (const surface of allCanvasSurfaces()) {
|
|
137
|
+
const panel = surface.panels.find((candidate) => candidate.canvas === canvasEl);
|
|
138
|
+
if (panel) {
|
|
139
|
+
return { panel, surface };
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* The tab whose document an already-mounted artboard is drawing, or null when no pane mounted it.
|
|
147
|
+
*
|
|
148
|
+
* The artboard is the addressable thing a click lands on — its header, its canvas — and the pane
|
|
149
|
+
* that mounted it is the only truthful route from there to a document. Reading `activeTab` instead
|
|
150
|
+
* answers with the FOCUSED pane's tab, which is a different document the moment the click is in a
|
|
151
|
+
* pane the keyboard is not in.
|
|
152
|
+
*
|
|
153
|
+
* @param {CanvasPanel} panel
|
|
154
|
+
* @returns {Tab | null}
|
|
155
|
+
*/
|
|
156
|
+
export function tabOfMountedPanel(panel: CanvasPanel): Tab | null {
|
|
157
|
+
const canvasEl = panel.canvas as HTMLElement | null;
|
|
158
|
+
const mounted = canvasEl ? panelHostingCanvas(canvasEl) : null;
|
|
159
|
+
return mounted ? tabOfPane(mounted.surface.paneId) : null;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* The effective canvas mode of a tab: the per-tab preview toggle composed onto its base mode.
|
|
164
|
+
*
|
|
165
|
+
* The composition is the same one every downstream gate (document resolution, iframe flags,
|
|
166
|
+
* interaction surfaces) reads, and it lives here — beside the panes — because the answer is a
|
|
167
|
+
* property of a pane's tab, never of the application. Consumers needing the BASE mode read
|
|
168
|
+
* `tab.session.ui.canvasMode` directly.
|
|
169
|
+
*
|
|
170
|
+
* @param {Tab | null} tab
|
|
171
|
+
* @returns {string}
|
|
172
|
+
*/
|
|
173
|
+
export function canvasModeOfTab(tab: Tab | null): string {
|
|
174
|
+
const ui = tab?.session.ui;
|
|
175
|
+
const base = ui?.canvasMode ?? "design";
|
|
176
|
+
return ui?.preview && (base === "edit" || base === "design") ? "preview" : base;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* The effective canvas mode a pane is drawing in.
|
|
181
|
+
*
|
|
182
|
+
* A LENS draws the source pane's document in a mode of its OWN — that is most of what a lens is —
|
|
183
|
+
* and that mode is never written onto the tab, because the tab belongs to the pane beside it and
|
|
184
|
+
* writing there would flip the document the author is editing. The per-tab preview toggle still
|
|
185
|
+
* composes onto it, so a preview lens of an edit-mode page is still a preview.
|
|
186
|
+
*
|
|
187
|
+
* @param {string} paneId
|
|
188
|
+
* @returns {string}
|
|
189
|
+
*/
|
|
190
|
+
export function canvasModeOfPane(paneId: string): string {
|
|
191
|
+
const derived = derivationOfPane(paneId);
|
|
192
|
+
if (derived?.kind === "lens") {
|
|
193
|
+
const base = derived.mode;
|
|
194
|
+
const ui = tabOfPane(paneId)?.session.ui;
|
|
195
|
+
return ui?.preview && (base === "edit" || base === "design") ? "preview" : base;
|
|
196
|
+
}
|
|
197
|
+
return canvasModeOfTab(tabOfPane(paneId));
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* The breakpoint a pane is drawing at — `null` for base.
|
|
202
|
+
*
|
|
203
|
+
* `session.ui.activeMedia` is per-TAB, so a breakpoint lens reading it would be showing the same
|
|
204
|
+
* artboard as the pane it is a lens of, which is the one thing preset 5 exists not to do. The
|
|
205
|
+
* derivation's own `media` wins for a lens; every other pane answers from its tab exactly as
|
|
206
|
+
* before.
|
|
207
|
+
*
|
|
208
|
+
* @param {string} paneId
|
|
209
|
+
* @returns {string | null}
|
|
210
|
+
*/
|
|
211
|
+
export function activeMediaOfPane(paneId: string): string | null {
|
|
212
|
+
const derived = derivationOfPane(paneId);
|
|
213
|
+
if (derived?.kind === "lens" && derived.preset === "breakpoint") {
|
|
214
|
+
return derived.media;
|
|
215
|
+
}
|
|
216
|
+
return tabOfPane(paneId)?.session.ui.activeMedia ?? null;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Which pane an element is being drawn into, DERIVED from the element itself.
|
|
221
|
+
*
|
|
222
|
+
* The route for stage CONTENT that is handed a host and nothing else. The settings-section registry
|
|
223
|
+
* is the case that forced it — a contribution's `render(host)` takes an element, and widening that
|
|
224
|
+
* contract for every extension to thread a pane id through is not on — but the shape is general:
|
|
225
|
+
* the container is inside a stage, and the stage knows whose it is.
|
|
226
|
+
*
|
|
227
|
+
* Falls back to the primary for a detached container (the tests, and anything drawn outside the
|
|
228
|
+
* pane grid entirely), which is the same answer `resolveRegion("pane")` gives.
|
|
229
|
+
*
|
|
230
|
+
* @param {HTMLElement} container
|
|
231
|
+
* @returns {string}
|
|
232
|
+
*/
|
|
233
|
+
export function paneOfContainer(container: HTMLElement): string {
|
|
234
|
+
return stageContaining(container)?.paneId ?? PRIMARY_PANE;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/** The tab whose document is being edited in the stage `container` sits inside, or null. */
|
|
238
|
+
export function tabOfContainer(container: HTMLElement): Tab | null {
|
|
239
|
+
return tabOfPane(paneOfContainer(container));
|
|
240
|
+
}
|