@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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jxsuite/studio",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Jx Studio — visual builder for Jx documents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"dist/workers",
|
|
19
19
|
"index.html",
|
|
20
20
|
"canvas.html",
|
|
21
|
+
"styles",
|
|
21
22
|
"fonts"
|
|
22
23
|
],
|
|
23
24
|
"type": "module",
|
|
@@ -28,6 +29,7 @@
|
|
|
28
29
|
"./base64": "./src/utils/base64.ts",
|
|
29
30
|
"./directory-picker": "./src/services/directory-picker.ts",
|
|
30
31
|
"./import-client": "./src/services/import-client.ts",
|
|
32
|
+
"./github-auth": "./src/github/github-auth.ts",
|
|
31
33
|
"./platforms/cloud": "./src/platforms/cloud.ts",
|
|
32
34
|
"./preview-navigate": "./src/canvas/preview-navigate.ts"
|
|
33
35
|
},
|
|
@@ -46,16 +48,16 @@
|
|
|
46
48
|
"upgrade": "bunx npm-check-updates -u && bun install"
|
|
47
49
|
},
|
|
48
50
|
"dependencies": {
|
|
49
|
-
"@atlaskit/pragmatic-drag-and-drop": "^
|
|
50
|
-
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^2.
|
|
51
|
-
"@jxsuite/ai": "^0.
|
|
52
|
-
"@jxsuite/collab": "^0.
|
|
53
|
-
"@jxsuite/create": "^1.
|
|
54
|
-
"@jxsuite/formulas": "^0.0.
|
|
55
|
-
"@jxsuite/markup": "^0.4.
|
|
56
|
-
"@jxsuite/protocol": "^1.
|
|
57
|
-
"@jxsuite/runtime": "^
|
|
58
|
-
"@jxsuite/schema": "^1.
|
|
51
|
+
"@atlaskit/pragmatic-drag-and-drop": "^3.0.0",
|
|
52
|
+
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^2.1.0",
|
|
53
|
+
"@jxsuite/ai": "^0.35.0",
|
|
54
|
+
"@jxsuite/collab": "^0.7.0",
|
|
55
|
+
"@jxsuite/create": "^1.3.0",
|
|
56
|
+
"@jxsuite/formulas": "^0.0.7",
|
|
57
|
+
"@jxsuite/markup": "^0.4.3",
|
|
58
|
+
"@jxsuite/protocol": "^1.1.0",
|
|
59
|
+
"@jxsuite/runtime": "^2.0.0",
|
|
60
|
+
"@jxsuite/schema": "^1.6.0",
|
|
59
61
|
"@spectrum-web-components/accordion": "^1.12.2",
|
|
60
62
|
"@spectrum-web-components/action-bar": "1.12.2",
|
|
61
63
|
"@spectrum-web-components/action-button": "^1.12.2",
|
|
@@ -92,7 +94,7 @@
|
|
|
92
94
|
"@spectrum-web-components/toast": "^1.12.2",
|
|
93
95
|
"@spectrum-web-components/tooltip": "^1.12.2",
|
|
94
96
|
"@spectrum-web-components/underlay": "^1.12.2",
|
|
95
|
-
"@vue/reactivity": "3.5.
|
|
97
|
+
"@vue/reactivity": "3.5.41",
|
|
96
98
|
"ajv": "^8.20.0",
|
|
97
99
|
"ajv-formats": "^3.0.1",
|
|
98
100
|
"lit": "^3.3.3",
|
|
@@ -103,11 +105,11 @@
|
|
|
103
105
|
"yaml": "^2.9.0"
|
|
104
106
|
},
|
|
105
107
|
"devDependencies": {
|
|
106
|
-
"@happy-dom/global-registrator": "^20.11.
|
|
108
|
+
"@happy-dom/global-registrator": "^20.11.2",
|
|
107
109
|
"@types/mdast": "^4.0.4",
|
|
108
|
-
"@webref/css": "^8.7.
|
|
110
|
+
"@webref/css": "^8.7.2",
|
|
109
111
|
"@webref/elements": "^2.7.1",
|
|
110
|
-
"@webref/idl": "^3.82.
|
|
112
|
+
"@webref/idl": "^3.82.2"
|
|
111
113
|
},
|
|
112
114
|
"//vue-reactivity": "Exact pin required — must match @jxsuite/runtime to avoid cross-boundary proxy bugs"
|
|
113
115
|
}
|
package/src/about/about-modal.ts
CHANGED
|
@@ -14,6 +14,7 @@ import { openModal } from "../ui/layers";
|
|
|
14
14
|
import { getPlatform } from "../platform";
|
|
15
15
|
import { APP_NAME, BUILD_DATE, GIT_COMMIT, LINKS, VERSION } from "../version";
|
|
16
16
|
import type { AppInfo, PackageInfo } from "../types";
|
|
17
|
+
import type { Command, CommandRegistry } from "../commands/registry";
|
|
17
18
|
|
|
18
19
|
let _handle: ReturnType<typeof openModal> | null = null;
|
|
19
20
|
|
|
@@ -106,16 +107,7 @@ function renderPackages(): TemplateResult {
|
|
|
106
107
|
function renderModal() {
|
|
107
108
|
const tpl = html`
|
|
108
109
|
<sp-underlay open @close=${closeAboutModal}></sp-underlay>
|
|
109
|
-
<div
|
|
110
|
-
class="about-modal"
|
|
111
|
-
role="dialog"
|
|
112
|
-
aria-label="About ${APP_NAME}"
|
|
113
|
-
@keydown=${(e: KeyboardEvent) => {
|
|
114
|
-
if (e.key === "Escape") {
|
|
115
|
-
closeAboutModal();
|
|
116
|
-
}
|
|
117
|
-
}}
|
|
118
|
-
>
|
|
110
|
+
<div class="about-modal">
|
|
119
111
|
<div class="settings-modal-header">
|
|
120
112
|
<h2 class="settings-modal-title">About ${APP_NAME}</h2>
|
|
121
113
|
<sp-action-button quiet size="s" @click=${closeAboutModal} title="Close">
|
|
@@ -151,6 +143,45 @@ function renderModal() {
|
|
|
151
143
|
if (_handle) {
|
|
152
144
|
_handle.update(tpl);
|
|
153
145
|
} else {
|
|
154
|
-
_handle = openModal(tpl);
|
|
146
|
+
_handle = openModal(tpl, { label: `About ${APP_NAME}`, onDismiss: closeAboutModal });
|
|
155
147
|
}
|
|
156
148
|
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* `Help: About` — the record the rail footer's hand-authored button used to be.
|
|
152
|
+
*
|
|
153
|
+
* The rail foot carries **Preferences** and nothing else (plan §3.2 ②). About is not a view you
|
|
154
|
+
* switch to and it is opened roughly once in an app's lifetime, so it costs a rail slot it cannot
|
|
155
|
+
* repay; as a record it stays reachable by name from the palette, which is where a thing you look
|
|
156
|
+
* for by name belongs.
|
|
157
|
+
*/
|
|
158
|
+
export function aboutCommands(): Command[] {
|
|
159
|
+
return [
|
|
160
|
+
{
|
|
161
|
+
id: "help.about",
|
|
162
|
+
title: `About ${APP_NAME}`,
|
|
163
|
+
category: "Help",
|
|
164
|
+
level: "application",
|
|
165
|
+
menus: ["palette"],
|
|
166
|
+
group: "9_help",
|
|
167
|
+
run: () => {
|
|
168
|
+
openAboutModal();
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
];
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Register the About verb on the app registry.
|
|
176
|
+
*
|
|
177
|
+
* `appCommandSet()` is the projection CI counts and `docs/studio/interface/commands.md` is
|
|
178
|
+
* generated from — it is NOT what the running app registers. P4 composed `help.about` into that set
|
|
179
|
+
* only, and deleted the rail's About button in the same change, so About became unreachable in the
|
|
180
|
+
* app while every check reported it present. The two roots have to agree.
|
|
181
|
+
*
|
|
182
|
+
* @param {CommandRegistry} registry
|
|
183
|
+
* @returns {void}
|
|
184
|
+
*/
|
|
185
|
+
export function registerAboutCommands(registry: CommandRegistry): void {
|
|
186
|
+
registry.registerAll(aboutCommands());
|
|
187
|
+
}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Library's verbs.
|
|
3
|
+
*
|
|
4
|
+
* Every piece of Library state a person can reach is reachable here, which is the difference
|
|
5
|
+
* between this and the Manage view it replaces. That view's category filter, its search box and its
|
|
6
|
+
* grid/table switch existed ONLY as buttons inside a modal, so `scripts/screenshots/automation.ts`
|
|
7
|
+
* carried a hand-maintained `BROWSE_CATEGORY_LABELS` table and pressed the buttons through an XPath
|
|
8
|
+
* matched on their rendered text — plan §13's exact complaint. `library.setCategory` is the same
|
|
9
|
+
* action the button runs, and the button is now a rendering of the record.
|
|
10
|
+
*
|
|
11
|
+
* Every setter is idempotent and names the STATE it reaches, never a delta: there is no
|
|
12
|
+
* `library.toggleLayout`, because a toggle against unstated state is what silently inverted
|
|
13
|
+
* eighteen manifest steps when a default flipped.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import {
|
|
17
|
+
argsSchema,
|
|
18
|
+
enumArg,
|
|
19
|
+
enumProperty,
|
|
20
|
+
optionalStringArg,
|
|
21
|
+
stringProperty,
|
|
22
|
+
} from "../commands/command-args";
|
|
23
|
+
import { openLibraryTab } from "../grid/grid-open";
|
|
24
|
+
import {
|
|
25
|
+
LIBRARY_CATEGORY_KEYS,
|
|
26
|
+
LIBRARY_LAYOUTS,
|
|
27
|
+
LIBRARY_LAYOUT_LABELS,
|
|
28
|
+
projectLocales,
|
|
29
|
+
} from "./library-model";
|
|
30
|
+
import {
|
|
31
|
+
createLibraryEntry,
|
|
32
|
+
libraryNewEntries,
|
|
33
|
+
refreshLibrary,
|
|
34
|
+
setLibraryCategory,
|
|
35
|
+
setLibraryLayout,
|
|
36
|
+
setLibraryLocale,
|
|
37
|
+
setLibrarySearch,
|
|
38
|
+
} from "./library-pane";
|
|
39
|
+
import type { LibraryLayout } from "./library-model";
|
|
40
|
+
import type { AnyCommand, CommandRegistry } from "../commands/registry";
|
|
41
|
+
|
|
42
|
+
/** Every value `library.setLocale` accepts: the project's own locales, plus "all" for none of them. */
|
|
43
|
+
function localeChoices(): string[] {
|
|
44
|
+
return ["all", ...projectLocales()];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** The Library's command records. */
|
|
48
|
+
export function libraryCommands(): AnyCommand[] {
|
|
49
|
+
return [
|
|
50
|
+
{
|
|
51
|
+
category: "Project",
|
|
52
|
+
id: "library.open",
|
|
53
|
+
// ⌘⇧E — §9.1's "File: Browse Library (⌘⇧E)". The Library is the content surface for a site
|
|
54
|
+
// With a collection, and it was reachable only by palette search and one overflow menu item.
|
|
55
|
+
keybinding: "mod+shift+e",
|
|
56
|
+
level: "project",
|
|
57
|
+
menus: ["commandbar/overflow", "palette", "context/file"],
|
|
58
|
+
group: "1_file",
|
|
59
|
+
requires: "an open project",
|
|
60
|
+
when: (ctx) => ctx.project.open,
|
|
61
|
+
aiTool: {
|
|
62
|
+
description:
|
|
63
|
+
"Open the Library — every page, layout, component, content entry and media file in " +
|
|
64
|
+
"the project, as a browsable tab.",
|
|
65
|
+
name: "open_library",
|
|
66
|
+
},
|
|
67
|
+
run: () => {
|
|
68
|
+
openLibraryTab();
|
|
69
|
+
},
|
|
70
|
+
title: "Open Library",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
args: argsSchema({
|
|
74
|
+
category: enumProperty(
|
|
75
|
+
LIBRARY_CATEGORY_KEYS,
|
|
76
|
+
'Which category the Library lists. "all" clears the category filter.',
|
|
77
|
+
),
|
|
78
|
+
}),
|
|
79
|
+
category: "Project",
|
|
80
|
+
id: "library.setCategory",
|
|
81
|
+
level: "project",
|
|
82
|
+
menus: ["palette"],
|
|
83
|
+
group: "1_file",
|
|
84
|
+
requires: "an open project",
|
|
85
|
+
when: (ctx) => ctx.project.open,
|
|
86
|
+
aiTool: {
|
|
87
|
+
description: "Filter the Library to one category of project file.",
|
|
88
|
+
name: "set_library_category",
|
|
89
|
+
},
|
|
90
|
+
run: (_ctx, args) => {
|
|
91
|
+
const key = enumArg("library.setCategory", args, "category", LIBRARY_CATEGORY_KEYS);
|
|
92
|
+
setLibraryCategory(key);
|
|
93
|
+
},
|
|
94
|
+
title: "Library: Show Category",
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
args: argsSchema({
|
|
98
|
+
layout: enumProperty(
|
|
99
|
+
LIBRARY_LAYOUTS,
|
|
100
|
+
`How the Library arranges its items — ${LIBRARY_LAYOUTS.map(
|
|
101
|
+
(layout) => LIBRARY_LAYOUT_LABELS[layout],
|
|
102
|
+
).join(", ")}.`,
|
|
103
|
+
),
|
|
104
|
+
}),
|
|
105
|
+
category: "Project",
|
|
106
|
+
id: "library.setLayout",
|
|
107
|
+
level: "project",
|
|
108
|
+
menus: ["palette"],
|
|
109
|
+
group: "1_file",
|
|
110
|
+
requires: "an open project",
|
|
111
|
+
when: (ctx) => ctx.project.open,
|
|
112
|
+
aiTool: {
|
|
113
|
+
description: "Choose the Library's layout: table, cards, media, calendar or board.",
|
|
114
|
+
name: "set_library_layout",
|
|
115
|
+
},
|
|
116
|
+
run: (_ctx, args) => {
|
|
117
|
+
const layout = enumArg<LibraryLayout>("library.setLayout", args, "layout", LIBRARY_LAYOUTS);
|
|
118
|
+
setLibraryLayout(layout);
|
|
119
|
+
},
|
|
120
|
+
title: "Library: Set Layout",
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
args: {
|
|
124
|
+
additionalProperties: false,
|
|
125
|
+
properties: {
|
|
126
|
+
query: stringProperty("Text matched against each file's name and path. Empty clears it."),
|
|
127
|
+
},
|
|
128
|
+
type: "object",
|
|
129
|
+
},
|
|
130
|
+
category: "Project",
|
|
131
|
+
id: "library.setSearch",
|
|
132
|
+
level: "project",
|
|
133
|
+
menus: ["palette"],
|
|
134
|
+
group: "1_file",
|
|
135
|
+
requires: "an open project",
|
|
136
|
+
when: (ctx) => ctx.project.open,
|
|
137
|
+
aiTool: {
|
|
138
|
+
description: "Filter the Library's items by a text query over name and path.",
|
|
139
|
+
name: "set_library_search",
|
|
140
|
+
},
|
|
141
|
+
run: (_ctx, args) => {
|
|
142
|
+
setLibrarySearch(optionalStringArg("library.setSearch", args, "query") ?? "");
|
|
143
|
+
},
|
|
144
|
+
title: "Library: Filter Files",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
args: argsSchema({
|
|
148
|
+
locale: {
|
|
149
|
+
/*
|
|
150
|
+
* A getter, for the reason `content/entry-commands.ts` gives at length: this record is
|
|
151
|
+
* built at module scope, before any project is open, so `enum: localeChoices()` would
|
|
152
|
+
* freeze at `["all"]` and the palette would offer that forever. The getter is read when
|
|
153
|
+
* the prompt opens and when the AI tool list is serialised.
|
|
154
|
+
*/
|
|
155
|
+
get enum() {
|
|
156
|
+
return localeChoices();
|
|
157
|
+
},
|
|
158
|
+
description:
|
|
159
|
+
'Which language the Library lists, as a BCP 47 tag the project declares. "all" ' +
|
|
160
|
+
"clears the language filter.",
|
|
161
|
+
type: "string",
|
|
162
|
+
},
|
|
163
|
+
}),
|
|
164
|
+
category: "Project",
|
|
165
|
+
id: "library.setLocale",
|
|
166
|
+
level: "project",
|
|
167
|
+
menus: ["palette"],
|
|
168
|
+
group: "1_file",
|
|
169
|
+
requires: "a project with more than one locale",
|
|
170
|
+
// A monolingual project has no facet to set: the Library draws no picker, and offering the
|
|
171
|
+
// Verb would name a value space with one member in it.
|
|
172
|
+
when: (ctx) => ctx.project.open && ctx.project.isMultilingual,
|
|
173
|
+
aiTool: {
|
|
174
|
+
description:
|
|
175
|
+
"Filter the Library to the files under one language's directory. Files outside a " +
|
|
176
|
+
"locale directory — which under prefix-except-default includes the default language's " +
|
|
177
|
+
"own pages — are not in any language's list.",
|
|
178
|
+
name: "set_library_locale",
|
|
179
|
+
},
|
|
180
|
+
run: (_ctx, args) => {
|
|
181
|
+
const choice = enumArg("library.setLocale", args, "locale", localeChoices());
|
|
182
|
+
setLibraryLocale(choice === "all" ? "" : choice);
|
|
183
|
+
},
|
|
184
|
+
title: "Library: Show Language",
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
category: "Project",
|
|
188
|
+
id: "library.refresh",
|
|
189
|
+
level: "project",
|
|
190
|
+
menus: ["palette"],
|
|
191
|
+
group: "1_file",
|
|
192
|
+
requires: "an open project",
|
|
193
|
+
when: (ctx) => ctx.project.open,
|
|
194
|
+
aiTool: {
|
|
195
|
+
description: "Re-scan the project's files and rebuild the Library's listing.",
|
|
196
|
+
name: "refresh_library",
|
|
197
|
+
},
|
|
198
|
+
run: () => refreshLibrary(),
|
|
199
|
+
title: "Library: Rescan Files",
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
args: {
|
|
203
|
+
additionalProperties: false,
|
|
204
|
+
properties: {
|
|
205
|
+
type: stringProperty(
|
|
206
|
+
'What to create: "page", "layout", "component", or "collection:<name>" for a ' +
|
|
207
|
+
"content collection this project declares.",
|
|
208
|
+
),
|
|
209
|
+
},
|
|
210
|
+
required: ["type"],
|
|
211
|
+
type: "object",
|
|
212
|
+
},
|
|
213
|
+
category: "Project",
|
|
214
|
+
id: "library.newEntry",
|
|
215
|
+
level: "project",
|
|
216
|
+
menus: ["palette"],
|
|
217
|
+
group: "1_file",
|
|
218
|
+
requires: "an open project",
|
|
219
|
+
when: (ctx) => ctx.project.open,
|
|
220
|
+
undo: "project",
|
|
221
|
+
aiTool: {
|
|
222
|
+
description:
|
|
223
|
+
"Create a page, layout, component or content entry in the directory its kind belongs " +
|
|
224
|
+
"to, then open it.",
|
|
225
|
+
name: "new_library_entry",
|
|
226
|
+
},
|
|
227
|
+
run: async (_ctx, args) => {
|
|
228
|
+
const declared = libraryNewEntries().map((entry) => entry.key);
|
|
229
|
+
const key = enumArg("library.newEntry", args, "type", declared);
|
|
230
|
+
await createLibraryEntry(key);
|
|
231
|
+
},
|
|
232
|
+
title: "Library: New Entry",
|
|
233
|
+
},
|
|
234
|
+
];
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/** Register the Library's verbs. */
|
|
238
|
+
export function registerLibraryCommands(registry: CommandRegistry): void {
|
|
239
|
+
registry.registerAll(libraryCommands());
|
|
240
|
+
}
|