@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
|
@@ -2,20 +2,32 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Imports panel — context-aware import manager with cherry-pick component selection.
|
|
4
4
|
*
|
|
5
|
-
* When editing project.json: shows
|
|
5
|
+
* When editing project.json: shows imported modules, Dependencies (add/remove packages), and
|
|
6
6
|
* per-package component toggles for cherry-picking individual elements. When editing a
|
|
7
7
|
* page/layout/component/content type: shows Component Imports ($ref picker) and per-package
|
|
8
8
|
* component toggles.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { html, nothing } from "lit-html";
|
|
12
|
-
import { componentRegistry
|
|
12
|
+
import { componentRegistry } from "../files/components";
|
|
13
|
+
import {
|
|
14
|
+
disableElement,
|
|
15
|
+
enableElement,
|
|
16
|
+
hasElement,
|
|
17
|
+
removeElementRef,
|
|
18
|
+
removePackageElements,
|
|
19
|
+
} from "../files/elements";
|
|
13
20
|
import { projectState } from "../store";
|
|
14
21
|
import { updateSiteConfig } from "../site-context";
|
|
15
22
|
import { getPlatform } from "../platform";
|
|
16
23
|
import { showConfirmDialog } from "../ui/layers";
|
|
24
|
+
import { renderEmptyState } from "./empty-state";
|
|
25
|
+
import { registerPanel } from "./panel-registry";
|
|
26
|
+
import { activeTab } from "../workspace/workspace";
|
|
27
|
+
import { transact } from "../tabs/transact";
|
|
17
28
|
|
|
18
29
|
import type { ComponentEntry } from "../files/components";
|
|
30
|
+
import type { ElementsEntry } from "../files/elements";
|
|
19
31
|
import type { JxElement, JxMutableNode } from "@jxsuite/schema/types";
|
|
20
32
|
|
|
21
33
|
interface ImportsContext {
|
|
@@ -25,46 +37,14 @@ interface ImportsContext {
|
|
|
25
37
|
applyMutation: (fn: (doc: JxMutableNode) => void) => void;
|
|
26
38
|
}
|
|
27
39
|
|
|
28
|
-
|
|
40
|
+
/* `ElementsEntry` is `files/elements.ts`'s now — the module that decides what belongs in the
|
|
41
|
+
array owns the type of its members. Re-exported so importers of this panel keep resolving. */
|
|
42
|
+
export type { ElementsEntry } from "../files/elements";
|
|
29
43
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
* @returns {string}
|
|
35
|
-
*/
|
|
36
|
-
function componentSpecifier(comp: ComponentEntry) {
|
|
37
|
-
return `${comp.package}/${comp.modulePath}`;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Check if a component is enabled (present in $elements array). Supports both cherry-picked subpath
|
|
42
|
-
* specifiers and legacy full-package imports.
|
|
43
|
-
*
|
|
44
|
-
* @param {ComponentEntry} comp
|
|
45
|
-
* @param {ElementsEntry[]} elements
|
|
46
|
-
* @returns {boolean}
|
|
47
|
-
*/
|
|
48
|
-
function isComponentEnabled(comp: ComponentEntry, elements: ElementsEntry[]) {
|
|
49
|
-
if (!elements?.length) {
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
const specifier = componentSpecifier(comp);
|
|
53
|
-
for (const entry of elements) {
|
|
54
|
-
if (typeof entry !== "string") {
|
|
55
|
-
continue;
|
|
56
|
-
}
|
|
57
|
-
// Cherry-picked subpath match
|
|
58
|
-
if (entry === specifier) {
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
// Legacy full-package match
|
|
62
|
-
if (entry === comp.package) {
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
44
|
+
/* `componentSpecifier` and `isComponentEnabled` are `files/elements.ts`'s `npmSpecifier` and
|
|
45
|
+
`hasElement`. They lived here and answered only for the two checkboxes in this file; the picker
|
|
46
|
+
below and the canvas drop each asked the question their own way and got different answers
|
|
47
|
+
(plan §11.2). One rule, four call sites. */
|
|
68
48
|
|
|
69
49
|
/**
|
|
70
50
|
* Group npm components by package name.
|
|
@@ -109,7 +89,7 @@ export function renderImportsTemplate({
|
|
|
109
89
|
});
|
|
110
90
|
}
|
|
111
91
|
|
|
112
|
-
// ─── Site-level:
|
|
92
|
+
// ─── Site-level: Imported Modules + Dependencies + Component Cherry-pick ──────
|
|
113
93
|
|
|
114
94
|
/** @param {() => void} renderLeftPanel */
|
|
115
95
|
function renderSiteLevelImports(renderLeftPanel: () => void) {
|
|
@@ -121,10 +101,10 @@ function renderSiteLevelImports(renderLeftPanel: () => void) {
|
|
|
121
101
|
|
|
122
102
|
return html`
|
|
123
103
|
<div class="imports-panel">
|
|
124
|
-
<!--
|
|
104
|
+
<!-- Imported modules ($prototype sources) -->
|
|
125
105
|
<div class="imports-section">
|
|
126
106
|
<div class="imports-section-header">
|
|
127
|
-
<span class="imports-section-title">
|
|
107
|
+
<span class="imports-section-title">Imported Modules</span>
|
|
128
108
|
<span class="imports-count">${entries.length}</span>
|
|
129
109
|
</div>
|
|
130
110
|
${
|
|
@@ -154,7 +134,12 @@ function renderSiteLevelImports(renderLeftPanel: () => void) {
|
|
|
154
134
|
)}
|
|
155
135
|
</div>
|
|
156
136
|
`
|
|
157
|
-
:
|
|
137
|
+
: renderEmptyState({
|
|
138
|
+
compact: true,
|
|
139
|
+
message:
|
|
140
|
+
"Imported modules give this project extra kinds of data — " +
|
|
141
|
+
"a content collection, a CMS, an API client. Name one below.",
|
|
142
|
+
})
|
|
158
143
|
}
|
|
159
144
|
<div class="import-add-form">
|
|
160
145
|
<sp-textfield placeholder="Name" size="s" class="import-add-name"></sp-textfield>
|
|
@@ -206,9 +191,9 @@ function renderSiteLevelImports(renderLeftPanel: () => void) {
|
|
|
206
191
|
const platform = getPlatform();
|
|
207
192
|
await platform.removePackage(pkg);
|
|
208
193
|
// Also remove all cherry-picked elements for this package
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
);
|
|
194
|
+
// …including the legacy whole-package entry. The hand-rolled filter kept it,
|
|
195
|
+
// So removing a package left `@acme/ui` importing a package that was gone.
|
|
196
|
+
const updatedElements = removePackageElements(siteElements, pkg);
|
|
212
197
|
const { loadComponentRegistry } = await import("../files/components.js");
|
|
213
198
|
await loadComponentRegistry();
|
|
214
199
|
await updateSiteConfig({
|
|
@@ -225,24 +210,18 @@ function renderSiteLevelImports(renderLeftPanel: () => void) {
|
|
|
225
210
|
</div>
|
|
226
211
|
<div class="imports-list imports-component-list">
|
|
227
212
|
${comps.map((comp: ComponentEntry) => {
|
|
228
|
-
const enabled =
|
|
229
|
-
const specifier = componentSpecifier(comp);
|
|
213
|
+
const enabled = hasElement(siteElements, comp, null);
|
|
230
214
|
return html`
|
|
231
215
|
<div class="import-row import-component-row">
|
|
232
216
|
<sp-checkbox
|
|
233
217
|
size="s"
|
|
234
218
|
.checked=${enabled}
|
|
235
219
|
@change=${async (e: Event) => {
|
|
236
|
-
|
|
237
|
-
//
|
|
238
|
-
updated =
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
updated.push(specifier);
|
|
242
|
-
}
|
|
243
|
-
} else {
|
|
244
|
-
updated = updated.filter((el: ElementsEntry) => el !== specifier);
|
|
245
|
-
}
|
|
220
|
+
// ONE service (`files/elements.ts`) — this checkbox, the picker below and
|
|
221
|
+
// The canvas drop each had their own idea of "already imported".
|
|
222
|
+
const updated = (e.target as HTMLInputElement).checked
|
|
223
|
+
? enableElement(siteElements, comp, null)
|
|
224
|
+
: disableElement(siteElements, comp, null);
|
|
246
225
|
await updateSiteConfig({
|
|
247
226
|
$elements: updated as (string | JxElement)[],
|
|
248
227
|
});
|
|
@@ -350,9 +329,10 @@ function renderDocumentLevelImports({
|
|
|
350
329
|
/** @param {string} ref */
|
|
351
330
|
const removeRef = (ref: string) => {
|
|
352
331
|
applyMutation((doc: JxMutableNode) => {
|
|
353
|
-
doc.$elements = (doc.$elements
|
|
354
|
-
|
|
355
|
-
|
|
332
|
+
doc.$elements = removeElementRef((doc.$elements ?? []) as ElementsEntry[], ref) as (
|
|
333
|
+
| string
|
|
334
|
+
| JxElement
|
|
335
|
+
)[];
|
|
356
336
|
});
|
|
357
337
|
renderLeftPanel();
|
|
358
338
|
};
|
|
@@ -388,7 +368,14 @@ function renderDocumentLevelImports({
|
|
|
388
368
|
)}
|
|
389
369
|
</div>
|
|
390
370
|
`
|
|
391
|
-
:
|
|
371
|
+
: renderEmptyState({
|
|
372
|
+
compact: true,
|
|
373
|
+
message:
|
|
374
|
+
availableComponents.length > 0
|
|
375
|
+
? "Components you add here can be dropped onto this page. Pick one below."
|
|
376
|
+
: "Components you add here can be dropped onto this page. " +
|
|
377
|
+
"This project has none yet — create one from any selection on the canvas.",
|
|
378
|
+
})
|
|
392
379
|
}
|
|
393
380
|
${
|
|
394
381
|
availableComponents.length > 0
|
|
@@ -408,12 +395,14 @@ function renderDocumentLevelImports({
|
|
|
408
395
|
if (!comp?.path) {
|
|
409
396
|
return;
|
|
410
397
|
}
|
|
411
|
-
|
|
398
|
+
// Through the service, which is also what makes this idempotent: it checked
|
|
399
|
+
// Nothing and pushed a second `$ref` every time you chose the same component.
|
|
412
400
|
applyMutation((doc: JxMutableNode) => {
|
|
413
|
-
|
|
414
|
-
doc.$elements
|
|
415
|
-
|
|
416
|
-
|
|
401
|
+
doc.$elements = enableElement(
|
|
402
|
+
(doc.$elements ?? []) as ElementsEntry[],
|
|
403
|
+
comp,
|
|
404
|
+
documentPath,
|
|
405
|
+
) as (string | JxElement)[];
|
|
417
406
|
});
|
|
418
407
|
renderLeftPanel();
|
|
419
408
|
}}
|
|
@@ -438,29 +427,22 @@ function renderDocumentLevelImports({
|
|
|
438
427
|
</div>
|
|
439
428
|
<div class="imports-list imports-component-list">
|
|
440
429
|
${comps.map((comp: ComponentEntry) => {
|
|
441
|
-
const enabled =
|
|
442
|
-
const specifier = componentSpecifier(comp);
|
|
430
|
+
const enabled = hasElement(npmEntries, comp, documentPath);
|
|
443
431
|
return html`
|
|
444
432
|
<div class="import-row import-component-row">
|
|
445
433
|
<sp-checkbox
|
|
446
434
|
size="s"
|
|
447
435
|
.checked=${enabled}
|
|
448
436
|
@change=${(e: Event) => {
|
|
437
|
+
// The FOURTH writer of this array, and the same service as the other three.
|
|
438
|
+
const { checked } = e.target as HTMLInputElement;
|
|
449
439
|
applyMutation((doc: JxMutableNode) => {
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
if (!doc.$elements.includes(specifier)) {
|
|
457
|
-
doc.$elements.push(specifier);
|
|
458
|
-
}
|
|
459
|
-
} else {
|
|
460
|
-
doc.$elements = doc.$elements.filter(
|
|
461
|
-
(el: ElementsEntry) => el !== specifier,
|
|
462
|
-
);
|
|
463
|
-
}
|
|
440
|
+
const before = (doc.$elements ?? []) as ElementsEntry[];
|
|
441
|
+
doc.$elements = (
|
|
442
|
+
checked
|
|
443
|
+
? enableElement(before, comp, documentPath)
|
|
444
|
+
: disableElement(before, comp, documentPath)
|
|
445
|
+
) as (string | JxElement)[];
|
|
464
446
|
});
|
|
465
447
|
renderLeftPanel();
|
|
466
448
|
}}
|
|
@@ -477,3 +459,31 @@ function renderDocumentLevelImports({
|
|
|
477
459
|
</div>
|
|
478
460
|
`;
|
|
479
461
|
}
|
|
462
|
+
|
|
463
|
+
/**
|
|
464
|
+
* Contribute the Packages panel.
|
|
465
|
+
*
|
|
466
|
+
* `level: "document"` — it writes the open document's `$elements`. The id and the title are both
|
|
467
|
+
* `packages` now: "Imports" named the mechanism, and the panel silently changed meaning on
|
|
468
|
+
* `documentPath?.endsWith("project.json")` with nothing on screen saying so. The header the
|
|
469
|
+
* Navigator draws from this record ("PACKAGES · document") is where that stops.
|
|
470
|
+
*/
|
|
471
|
+
export function registerPackagesPanel(): void {
|
|
472
|
+
registerPanel({
|
|
473
|
+
id: "packages",
|
|
474
|
+
title: "Packages",
|
|
475
|
+
level: "document",
|
|
476
|
+
dock: "navigator",
|
|
477
|
+
icon: "sp-icon-box",
|
|
478
|
+
requiresDocument: "Open a page to choose which components it can use.",
|
|
479
|
+
render: (ctx) =>
|
|
480
|
+
ctx.deps.renderImportsTemplate({
|
|
481
|
+
applyMutation: (fn: (doc: JxMutableNode) => void) => {
|
|
482
|
+
transact(activeTab.value, fn);
|
|
483
|
+
},
|
|
484
|
+
documentElements: ctx.doc?.document.$elements ?? [],
|
|
485
|
+
documentPath: ctx.doc?.documentPath ?? null,
|
|
486
|
+
renderLeftPanel: ctx.rerender,
|
|
487
|
+
}),
|
|
488
|
+
});
|
|
489
|
+
}
|