@jxsuite/studio 2.0.0 → 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-0hzentwq.js → components-2bpqp4mq.js} +5 -7
- package/dist/chunks/{components-0hzentwq.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-2c188n41.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-97qcgvdn.js → studio-adn0z1k3.js} +14 -8
- package/dist/chunks/{studio-97qcgvdn.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-hhj92gcr.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-ygzav7z5.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-n9zmpxjg.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 +23711 -35185
- 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 +34 -9
- package/src/new-project/location-fields.ts +9 -1
- package/src/new-project/new-project-modal.ts +270 -262
- 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 -120
- 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 +75 -2
- 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 +113 -0
- 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-qct0gt8f.js +0 -531
- package/dist/chunks/extension-sections-qct0gt8f.js.map +0 -12
- package/dist/chunks/files-02zn5y24.js +0 -50
- package/dist/chunks/files-02zn5y24.js.map +0 -9
- package/dist/chunks/git-panel-mbb0y0hz.js +0 -28
- package/dist/chunks/git-panel-mbb0y0hz.js.map +0 -9
- package/dist/chunks/layers-panel-9qekmqk1.js +0 -26
- package/dist/chunks/layers-panel-9qekmqk1.js.map +0 -9
- package/dist/chunks/settings-modal-gj0hrah4.js +0 -29
- package/dist/chunks/settings-modal-gj0hrah4.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-4k0m4fmp.js.map +0 -13
- package/dist/chunks/studio-568nx4t5.js +0 -469
- package/dist/chunks/studio-568nx4t5.js.map +0 -14
- package/dist/chunks/studio-9smfzqhc.js +0 -19
- package/dist/chunks/studio-9smfzqhc.js.map +0 -10
- package/dist/chunks/studio-asvf0j9e.js +0 -429
- package/dist/chunks/studio-asvf0j9e.js.map +0 -13
- package/dist/chunks/studio-d77qm3pk.js +0 -3427
- package/dist/chunks/studio-d77qm3pk.js.map +0 -26
- package/dist/chunks/studio-j6gqyjf4.js +0 -1854
- package/dist/chunks/studio-j6gqyjf4.js.map +0 -18
- package/dist/chunks/studio-n9zmpxjg.js.map +0 -115
- package/dist/chunks/studio-qkvt37c0.js.map +0 -9
- package/dist/chunks/studio-rq0vxb19.js +0 -3744
- package/dist/chunks/studio-rq0vxb19.js.map +0 -22
- package/dist/chunks/studio-wd6ewdvd.js +0 -853
- package/dist/chunks/studio-wd6ewdvd.js.map +0 -12
- 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-ygzav7z5.js.map +0 -46
- package/dist/chunks/studio-zmy7241e.js +0 -399
- package/dist/chunks/studio-zmy7241e.js.map +0 -12
- 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-2c188n41.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-hhj92gcr.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
|
@@ -1,30 +1,65 @@
|
|
|
1
1
|
/// <reference lib="dom" />
|
|
2
2
|
/**
|
|
3
|
-
* Right panel —
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* Right panel — the Inspector dock: four tabs, one dock, one column.
|
|
4
|
+
*
|
|
5
|
+
* **Content · Style · Logic · Assistant**, text-labelled. Three of those are renames of what was
|
|
6
|
+
* here (Properties→Content, Events→Logic) and the fourth is the assistant, folded in from the fifth
|
|
7
|
+
* grid column it used to own — which is the point of plan §3.2 ⑨: an inspector tab costs zero
|
|
8
|
+
* additional width, so the canvas gets the ~300px back and the assistant is still one key away.
|
|
9
|
+
*
|
|
10
|
+
* Two things changed shape to make that work:
|
|
11
|
+
*
|
|
12
|
+
* - **The tabs are words, not icons.** Three icon-only tabs with `title` attributes meant three hover
|
|
13
|
+
* probes to learn a dock you look at all day, and the icons were `sp-icon-properties` /
|
|
14
|
+
* `sp-icon-event` / `sp-icon-brush` — a form, a lightning bolt and a paintbrush, none of which
|
|
15
|
+
* says "this is where the link target lives".
|
|
16
|
+
* - **The containers are permanent.** The no-document state used to drop and rebuild them; it now
|
|
17
|
+
* renders INTO the three document tabs, because the Assistant's DOM (composer draft, scroll
|
|
18
|
+
* position, streaming part cache) must survive a document closing — the assistant works with no
|
|
19
|
+
* project at all, which is exactly the New Project hand-off's requirement.
|
|
20
|
+
*
|
|
21
|
+
* Every tab renders under a header naming its target (§3.2 ⑨), the same treatment wave A gave the
|
|
22
|
+
* Navigator panels. The Target Line proper — provenance-coded, cascade-aware — is §6 and P5; this
|
|
23
|
+
* is its honest predecessor: the tab's name, and what it is pointed at.
|
|
24
|
+
*
|
|
25
|
+
* The heavy sub-templates (properties, style) remain in their own modules and are passed the ctx
|
|
26
|
+
* they need.
|
|
6
27
|
*/
|
|
7
28
|
|
|
8
29
|
import { html, render as litRender } from "lit-html";
|
|
9
|
-
import {
|
|
10
|
-
import { effect, effectScope } from "../reactivity";
|
|
30
|
+
import { getNodeAtPath, nodeLabel, rightPanel } from "../store";
|
|
31
|
+
import { effect, effectScope, reactive } from "../reactivity";
|
|
11
32
|
import { createPanelScheduler } from "./panel-scheduler";
|
|
12
33
|
import type { PanelScheduler } from "./panel-scheduler";
|
|
13
34
|
import { activeTab } from "../workspace/workspace";
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
35
|
+
import { primarySelection } from "../tabs/selection";
|
|
36
|
+
import { openPageAction, renderEmptyState } from "./empty-state";
|
|
37
|
+
import { renderLogicPanelTemplate } from "./events-panel";
|
|
16
38
|
import { isCustomElementDoc } from "./signals-panel";
|
|
17
39
|
|
|
40
|
+
import { DEFAULT_INSPECTOR_TAB, isInspectorTabId, shell } from "../shell";
|
|
41
|
+
import { INSPECTOR_TABS } from "../commands/defaults";
|
|
42
|
+
import { inspectorTabRegion, REGION_ATTR } from "../ui/regions";
|
|
18
43
|
import { isColorPopoverOpen } from "../ui/color-selector";
|
|
19
44
|
import { renderStylePanelTemplate } from "./style-panel";
|
|
20
45
|
import { renderPropertiesPanelTemplate } from "./properties-panel";
|
|
21
46
|
|
|
47
|
+
import type { InspectorTabId } from "../shell";
|
|
48
|
+
import type { TemplateResult } from "lit-html";
|
|
22
49
|
import type { EffectScope } from "@vue/reactivity";
|
|
23
50
|
|
|
24
51
|
interface RightPanelCtx {
|
|
25
52
|
navigateToComponent: (path: string) => void;
|
|
26
53
|
getCanvasMode: () => string;
|
|
27
54
|
renderCanvas: () => void;
|
|
55
|
+
/**
|
|
56
|
+
* Hand the Assistant tab's body to whoever owns the assistant, once.
|
|
57
|
+
*
|
|
58
|
+
* Injected rather than imported so the dependency runs one way: `chat-panel.ts` reaches back into
|
|
59
|
+
* this module to SELECT its tab, and a matching import here would be a cycle between the host and
|
|
60
|
+
* its tenant. `studio.ts` already composes both, so it is the natural place to join them.
|
|
61
|
+
*/
|
|
62
|
+
mountAssistant: (host: HTMLElement) => void;
|
|
28
63
|
}
|
|
29
64
|
|
|
30
65
|
let _ctx: RightPanelCtx | null = null;
|
|
@@ -33,6 +68,20 @@ let _scope: EffectScope | null = null;
|
|
|
33
68
|
|
|
34
69
|
let _scheduler: PanelScheduler | null = null;
|
|
35
70
|
|
|
71
|
+
/**
|
|
72
|
+
* The selected tab while NO document is open.
|
|
73
|
+
*
|
|
74
|
+
* `session.ui.rightTab` is per-document — the tab you were on comes back with the file — and with
|
|
75
|
+
* no file there is nowhere per-document to put it. The Assistant is usable in exactly that state
|
|
76
|
+
* (the New Project flow hands it a brief before any document exists), so the selection falls back
|
|
77
|
+
* here rather than being refused.
|
|
78
|
+
*
|
|
79
|
+
* Reactive, because it is read by surfaces outside this module: the Command Bar's assistant toggle
|
|
80
|
+
* reports whether the assistant is showing, and a plain field would leave that button lying on the
|
|
81
|
+
* welcome screen — which is the whole class of bug `shell.ts` was split out to end.
|
|
82
|
+
*/
|
|
83
|
+
const _detached = reactive({ tab: DEFAULT_INSPECTOR_TAB as InspectorTabId });
|
|
84
|
+
|
|
36
85
|
/**
|
|
37
86
|
* Mount the right panel.
|
|
38
87
|
*
|
|
@@ -50,21 +99,26 @@ export function mount(ctx: RightPanelCtx) {
|
|
|
50
99
|
_scope.run(() => {
|
|
51
100
|
effect(() => {
|
|
52
101
|
const tab = activeTab.value;
|
|
53
|
-
|
|
54
|
-
|
|
102
|
+
// Layout chrome is not IN the document, so nothing per-tab changes when the canvas reports a
|
|
103
|
+
// `layoutHit` — and the panel that answers it (the Content tab's Layout Element card) spent a
|
|
104
|
+
// Release cycle repainting only because the canvas host happened to call `renderOnly` too.
|
|
105
|
+
// Reading it here makes the dock's dependency on it real.
|
|
106
|
+
void shell.layoutSelection;
|
|
107
|
+
// No tab is a state the inspector renders (its no-document empty state), not one it skips.
|
|
108
|
+
if (tab) {
|
|
109
|
+
// Track properties the right panel reads
|
|
110
|
+
void tab.doc.document;
|
|
111
|
+
// The whole SET, joined — a bare property read would not re-trigger when the selection
|
|
112
|
+
// Changes WITHIN the array, and §6.5's helpers always replace it but nothing enforces that.
|
|
113
|
+
void tab.session.selection.map((path) => path.join("/")).join("|");
|
|
114
|
+
void tab.session.ui.rightTab;
|
|
115
|
+
void tab.session.ui.activeMedia;
|
|
116
|
+
void tab.session.ui.activeSelector;
|
|
117
|
+
void tab.session.ui.styleSections;
|
|
118
|
+
void tab.session.ui.styleShorthands;
|
|
119
|
+
void tab.session.ui.styleFilter;
|
|
120
|
+
void tab.session.ui.inspectorSections;
|
|
55
121
|
}
|
|
56
|
-
// Track properties the right panel reads
|
|
57
|
-
void tab.doc.document;
|
|
58
|
-
void tab.session.selection;
|
|
59
|
-
void tab.session.ui.rightTab;
|
|
60
|
-
void tab.session.ui.activeMedia;
|
|
61
|
-
void tab.session.ui.activeSelector;
|
|
62
|
-
void tab.session.ui.styleSections;
|
|
63
|
-
void tab.session.ui.styleShorthands;
|
|
64
|
-
void tab.session.ui.styleFilter;
|
|
65
|
-
void tab.session.ui.styleFilterActive;
|
|
66
|
-
void tab.session.ui.inspectorSections;
|
|
67
|
-
|
|
68
122
|
render();
|
|
69
123
|
});
|
|
70
124
|
});
|
|
@@ -76,9 +130,8 @@ export function unmount() {
|
|
|
76
130
|
_ctx = null;
|
|
77
131
|
_scheduler?.unbind();
|
|
78
132
|
_scheduler = null;
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
_styleContainer = null;
|
|
133
|
+
_containers = null;
|
|
134
|
+
_detached.tab = DEFAULT_INSPECTOR_TAB;
|
|
82
135
|
}
|
|
83
136
|
|
|
84
137
|
/**
|
|
@@ -89,20 +142,128 @@ export function render() {
|
|
|
89
142
|
_scheduler?.schedule();
|
|
90
143
|
}
|
|
91
144
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
145
|
+
/**
|
|
146
|
+
* The tab showing right now — the stored value, coerced to a declared one.
|
|
147
|
+
*
|
|
148
|
+
* Coercion rather than trust because the value is persisted session state: a build that spelled a
|
|
149
|
+
* tab differently, or an automation step that guessed, must land on Content rather than on a blank
|
|
150
|
+
* dock with no tab selected.
|
|
151
|
+
*/
|
|
152
|
+
export function inspectorTab(): InspectorTabId {
|
|
153
|
+
const tab = activeTab.value;
|
|
154
|
+
if (!tab) {
|
|
155
|
+
return _detached.tab;
|
|
156
|
+
}
|
|
157
|
+
const stored: unknown = tab.session.ui.rightTab;
|
|
158
|
+
return isInspectorTabId(stored) ? stored : DEFAULT_INSPECTOR_TAB;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Select a tab. The ONE writer — the strip, `view.setRightTab`, `view.setAssistant` and the
|
|
163
|
+
* assistant's own pending-prompt hand-off all come through here.
|
|
164
|
+
*/
|
|
165
|
+
export function setInspectorTab(tab: InspectorTabId): void {
|
|
166
|
+
const aTab = activeTab.value;
|
|
167
|
+
if (aTab) {
|
|
168
|
+
aTab.session.ui.rightTab = tab;
|
|
169
|
+
} else {
|
|
170
|
+
_detached.tab = tab;
|
|
171
|
+
}
|
|
172
|
+
render();
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/** Tab value → its body container, built once and reused across renders. */
|
|
176
|
+
let _containers: Map<InspectorTabId, HTMLElement> | null = null;
|
|
95
177
|
|
|
96
|
-
function _ensureContainers() {
|
|
97
|
-
if (
|
|
98
|
-
return;
|
|
178
|
+
function _ensureContainers(ctx: RightPanelCtx): Map<InspectorTabId, HTMLElement> {
|
|
179
|
+
if (_containers) {
|
|
180
|
+
return _containers;
|
|
181
|
+
}
|
|
182
|
+
_containers = new Map(
|
|
183
|
+
INSPECTOR_TABS.map((t) => {
|
|
184
|
+
const el = document.createElement("div");
|
|
185
|
+
el.className = "panel-body";
|
|
186
|
+
el.setAttribute(REGION_ATTR, inspectorTabRegion(t.id));
|
|
187
|
+
return [t.id as InspectorTabId, el] as const;
|
|
188
|
+
}),
|
|
189
|
+
);
|
|
190
|
+
// The assistant owns its container for the life of the window: it is bound as lit's render host
|
|
191
|
+
// For a streaming rAF loop, and rebuilding it would drop the transcript and the composer draft.
|
|
192
|
+
ctx.mountAssistant(_containers.get("assistant")!);
|
|
193
|
+
return _containers;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* What the selected tab is pointed AT, in the fewest words that are true.
|
|
198
|
+
*
|
|
199
|
+
* A tag name when a node is selected, the document's own name when nothing is, and "no document"
|
|
200
|
+
* when there is nothing open. The dock spent its whole life unable to answer this — three icon tabs
|
|
201
|
+
* and no statement of target anywhere — which is how "why is this field disabled" became a question
|
|
202
|
+
* with no on-screen answer.
|
|
203
|
+
*/
|
|
204
|
+
function inspectorTarget(): string {
|
|
205
|
+
const tab = activeTab.value;
|
|
206
|
+
if (!tab) {
|
|
207
|
+
return "no document";
|
|
208
|
+
}
|
|
209
|
+
// Layout chrome first: it is mutually exclusive with a document selection, and it is the one
|
|
210
|
+
// Target whose name has to say where it came FROM — "<header> in layouts/base.json" is the whole
|
|
211
|
+
// Answer to "why can I not edit this".
|
|
212
|
+
const layout = shell.layoutSelection;
|
|
213
|
+
if (layout) {
|
|
214
|
+
return `<${layout.tagName || "element"}> in ${layout.layoutFile || "the layout"}`;
|
|
99
215
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
216
|
+
const paths = tab.session.selection;
|
|
217
|
+
const selection = primarySelection(paths);
|
|
218
|
+
if (selection) {
|
|
219
|
+
// The inspector's title names the batch when there is one — it edits all of them, and titling
|
|
220
|
+
// It after the primary alone is how a Mixed field ends up looking like a plain value.
|
|
221
|
+
return paths.length > 1
|
|
222
|
+
? `${paths.length} elements`
|
|
223
|
+
: nodeLabel(getNodeAtPath(tab.doc.document, selection));
|
|
224
|
+
}
|
|
225
|
+
const path = tab.documentPath;
|
|
226
|
+
return path ? (path.split("/").at(-1) ?? "document") : "document";
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/** The dock's header: which tab you are in, and what it is pointed at. */
|
|
230
|
+
function headerTpl(tab: InspectorTabId): TemplateResult {
|
|
231
|
+
const title = INSPECTOR_TABS.find((t) => t.id === tab)?.title ?? tab;
|
|
232
|
+
return html`
|
|
233
|
+
<header class="panel-header">
|
|
234
|
+
<span class="panel-header-title">${title}</span>
|
|
235
|
+
<span class="panel-header-level">${inspectorTarget()}</span>
|
|
236
|
+
</header>
|
|
237
|
+
`;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/** The four-tab strip. Text labels: a dock you read all day should not need to be hovered. */
|
|
241
|
+
function tabsTpl(tab: InspectorTabId): TemplateResult {
|
|
242
|
+
return html`
|
|
243
|
+
<div class="panel-tabs inspector-tabs">
|
|
244
|
+
<sp-tabs
|
|
245
|
+
selected=${tab}
|
|
246
|
+
quiet
|
|
247
|
+
size="s"
|
|
248
|
+
@change=${(e: Event & { target: { selected: string } }) => {
|
|
249
|
+
const sel = e.target.selected;
|
|
250
|
+
if (sel && sel !== tab && isInspectorTabId(sel)) {
|
|
251
|
+
setInspectorTab(sel);
|
|
252
|
+
}
|
|
253
|
+
}}
|
|
254
|
+
>
|
|
255
|
+
${INSPECTOR_TABS.map((t) => html`<sp-tab value=${t.id} label=${t.title}></sp-tab>`)}
|
|
256
|
+
</sp-tabs>
|
|
257
|
+
</div>
|
|
258
|
+
`;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/** The inspector's no-document state, rendered into a document tab's own body. */
|
|
262
|
+
function noDocumentTpl(): TemplateResult {
|
|
263
|
+
return renderEmptyState({
|
|
264
|
+
actions: [openPageAction()],
|
|
265
|
+
message: "Open a page to inspect and style what you click.",
|
|
266
|
+
});
|
|
106
267
|
}
|
|
107
268
|
|
|
108
269
|
function _doRender() {
|
|
@@ -112,87 +273,52 @@ function _doRender() {
|
|
|
112
273
|
try {
|
|
113
274
|
const ctx = _ctx as RightPanelCtx;
|
|
114
275
|
const aTab = activeTab.value;
|
|
115
|
-
|
|
116
|
-
rightPanel.textContent = "";
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
const S = {
|
|
120
|
-
document: aTab.doc.document,
|
|
121
|
-
mode: aTab.doc.mode,
|
|
122
|
-
selection: aTab.session.selection,
|
|
123
|
-
ui: aTab.session.ui,
|
|
124
|
-
};
|
|
125
|
-
// Coerce stale values ("assistant" moved to the persistent chat sidebar; automation or a
|
|
126
|
-
// Restored session may still carry it).
|
|
127
|
-
const tab = ["properties", "events", "style"].includes(S.ui.rightTab)
|
|
128
|
-
? S.ui.rightTab
|
|
129
|
-
: "properties";
|
|
130
|
-
|
|
131
|
-
// Render tabs header
|
|
132
|
-
const panelTabs = [
|
|
133
|
-
{ icon: "sp-icon-properties", label: "Properties", value: "properties" },
|
|
134
|
-
{ icon: "sp-icon-event", label: "Events", value: "events" },
|
|
135
|
-
{ icon: "sp-icon-brush", label: "Style", value: "style" },
|
|
136
|
-
];
|
|
137
|
-
const tabsT = html`
|
|
138
|
-
<div class="panel-tabs">
|
|
139
|
-
<sp-tabs
|
|
140
|
-
selected=${tab}
|
|
141
|
-
quiet
|
|
142
|
-
@change=${(e: Event & { target: { selected: string } }) => {
|
|
143
|
-
const sel = e.target.selected;
|
|
144
|
-
if (sel && sel !== tab) {
|
|
145
|
-
updateUi("rightTab", sel);
|
|
146
|
-
render();
|
|
147
|
-
}
|
|
148
|
-
}}
|
|
149
|
-
>
|
|
150
|
-
${panelTabs.map(
|
|
151
|
-
(t) => html`
|
|
152
|
-
<sp-tab value=${t.value} title=${t.label} aria-label=${t.label}>
|
|
153
|
-
${tabIcon(t.icon, "xs")}
|
|
154
|
-
</sp-tab>
|
|
155
|
-
`,
|
|
156
|
-
)}
|
|
157
|
-
</sp-tabs>
|
|
158
|
-
</div>
|
|
159
|
-
`;
|
|
160
|
-
|
|
161
|
-
_ensureContainers();
|
|
162
|
-
const containers = [_propsContainer, _eventsContainer, _styleContainer] as HTMLElement[];
|
|
163
|
-
const tabKeys = ["properties", "events", "style"];
|
|
164
|
-
|
|
165
|
-
// Show/hide containers
|
|
166
|
-
for (let i = 0; i < containers.length; i++) {
|
|
167
|
-
containers[i]!.style.display = tabKeys[i] === tab ? "" : "none";
|
|
168
|
-
}
|
|
276
|
+
const tab = inspectorTab();
|
|
169
277
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
278
|
+
litRender(html`${headerTpl(tab)}${tabsTpl(tab)}`, rightPanel);
|
|
279
|
+
|
|
280
|
+
const containers = _ensureContainers(ctx);
|
|
281
|
+
// Show/hide containers, and attach any that a fresh build has not mounted yet.
|
|
282
|
+
for (const [key, el] of containers) {
|
|
283
|
+
el.style.display = key === tab ? "" : "none";
|
|
284
|
+
if (!el.parentNode) {
|
|
285
|
+
rightPanel.append(el);
|
|
175
286
|
}
|
|
176
287
|
}
|
|
177
288
|
|
|
178
|
-
|
|
289
|
+
const body = containers.get(tab)!;
|
|
290
|
+
// The assistant paints itself through its own rAF loop into this very container (streaming has
|
|
291
|
+
// To repaint while the composer is focused), so the host must not render over it.
|
|
292
|
+
if (tab === "assistant") {
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
if (!aTab) {
|
|
296
|
+
litRender(noDocumentTpl(), body);
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
179
299
|
if (tab === "properties") {
|
|
180
300
|
litRender(
|
|
181
301
|
renderPropertiesPanelTemplate({
|
|
182
302
|
navigateToComponent: ctx.navigateToComponent,
|
|
183
303
|
}),
|
|
184
|
-
|
|
304
|
+
body,
|
|
185
305
|
);
|
|
186
306
|
} else if (tab === "events") {
|
|
187
307
|
litRender(
|
|
188
|
-
|
|
189
|
-
isCustomElementDoc: () =>
|
|
308
|
+
renderLogicPanelTemplate({
|
|
309
|
+
isCustomElementDoc: () =>
|
|
310
|
+
isCustomElementDoc({
|
|
311
|
+
document: aTab.doc.document,
|
|
312
|
+
mode: aTab.doc.mode,
|
|
313
|
+
selection: aTab.session.selection,
|
|
314
|
+
ui: aTab.session.ui,
|
|
315
|
+
}),
|
|
190
316
|
}),
|
|
191
|
-
|
|
317
|
+
body,
|
|
192
318
|
);
|
|
193
|
-
} else
|
|
319
|
+
} else {
|
|
194
320
|
try {
|
|
195
|
-
litRender(renderStylePanelTemplate({ getCanvasMode: ctx.getCanvasMode }),
|
|
321
|
+
litRender(renderStylePanelTemplate({ getCanvasMode: ctx.getCanvasMode }), body);
|
|
196
322
|
} catch (error) {
|
|
197
323
|
console.error("[renderStylePanelTemplate]", error);
|
|
198
324
|
}
|