@jxsuite/studio 6.1.2 → 8.0.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/README.md +5 -5
- package/dist/chunks/2020-5wtzce5g.js +4 -0
- package/dist/chunks/adapter-5tphg7xe.js +4 -0
- package/dist/chunks/add-new-flow-psym14sn.js +4 -0
- package/dist/chunks/cf-account-picker-haqazq5r.js +4 -0
- package/dist/chunks/cf-settings-h2wrh6hq.js +4 -0
- package/dist/chunks/{color-area-0fj8a4ga.js → color-area-6rbra5dy.js} +2 -2
- package/dist/chunks/{color-field-xch8kx2g.js → color-field-gy56c94g.js} +3 -3
- package/dist/chunks/color-m7r1vk54.js +4 -0
- package/dist/chunks/{color-slider-jxd8v350.js → color-slider-sqqdyf6c.js} +2 -2
- package/dist/chunks/{combobox-p0efwjke.js → combobox-72h32ejk.js} +3 -3
- package/dist/chunks/components-r22xca09.js +4 -0
- package/dist/chunks/content-source-mmppmcyg.js +4 -0
- package/dist/chunks/convert-to-repeater-he70fc2b.js +4 -0
- package/dist/chunks/editor-ccd9jwsa.js +4 -0
- package/dist/chunks/entry-commands-6qxz9e8p.js +4 -0
- package/dist/chunks/extension-sections-0egb88dm.js +4 -0
- package/dist/chunks/file-ops-qnab36ek.js +4 -0
- package/dist/chunks/files-rcn56qvm.js +4 -0
- package/dist/chunks/format-host-yxz0kjjs.js +4 -0
- package/dist/chunks/fs-events-d1qxq4z4.js +4 -0
- package/dist/chunks/grid-open-4z1g062t.js +4 -0
- package/dist/chunks/{grid-view-d2wq9ezg.js → grid-view-qg1b5eqx.js} +25 -25
- package/dist/chunks/{icons-pnfz478q.js → icons-63bjtbs7.js} +2 -2
- package/dist/chunks/{iframe-entry-jdcktez8.js → iframe-entry-2zggzajv.js} +4 -4
- package/dist/chunks/{iframe-entry-zap785cw.js → iframe-entry-76j8vwwx.js} +4 -4
- package/dist/chunks/iframe-entry-99nr5zfb.js +5 -0
- package/dist/chunks/{iframe-entry-x0ygf2yr.js → iframe-entry-pkgmcgp0.js} +4 -4
- package/dist/chunks/iframe-host-ssv7kyj0.js +4 -0
- package/dist/chunks/{index-zpjmzqfk.js → index-32eqzv1k.js} +3 -3
- package/dist/chunks/index-f0jn7nnp.js +4 -0
- package/dist/chunks/{javascript-m54mnwp6.js → javascript-pjp734q4.js} +3 -3
- package/dist/chunks/jsonMode-njkvsa02.js +13 -0
- package/dist/chunks/jx-validate-ttasrbh7.js +4 -0
- package/dist/chunks/layers-bgyr11tr.js +4 -0
- package/dist/chunks/layers-panel-7ez66zeq.js +4 -0
- package/dist/chunks/{listbox-e74qjyq6.js → listbox-c421cf8c.js} +2 -2
- package/dist/chunks/lit-html-v9gh687x.js +4 -0
- package/dist/chunks/media-library-sq468wts.js +4 -0
- package/dist/chunks/media-picker-shfe59pt.js +4 -0
- package/dist/chunks/{menu-n6yzswmy.js → menu-bdpzbfvs.js} +2 -2
- package/dist/chunks/{monaco-binding-7gx83x3r.js → monaco-binding-vq1hgnn0.js} +3 -3
- package/dist/chunks/monaco-buffer-3afgwvbp.js +4 -0
- package/dist/chunks/monaco-setup-xrd2cbkp.js +4 -0
- package/dist/chunks/notify-kzrjr3fv.js +4 -0
- package/dist/chunks/parse-v77xtwv7.js +4 -0
- package/dist/chunks/platform-7v4rtd7m.js +4 -0
- package/dist/chunks/popover-b89sfej7.js +4 -0
- package/dist/chunks/publish-panel-2z9gw8ee.js +4 -0
- package/dist/chunks/publish-quick-qx2455cj.js +4 -0
- package/dist/chunks/publish-workspace-wrc1dgwx.js +4 -0
- package/dist/chunks/quick-search-n0t0eqxb.js +4 -0
- package/dist/chunks/references-9547rg5s.js +4 -0
- package/dist/chunks/right-panel-wsgnr9pn.js +4 -0
- package/dist/chunks/source-control-kwktr9y6.js +4 -0
- package/dist/chunks/{split-n2gfpm5m.js → split-c9zfdgxf.js} +2 -2
- package/dist/chunks/studio-03ct6yfv.js +9 -0
- package/dist/chunks/studio-07rcfje3.js +5 -0
- package/dist/chunks/studio-3e54qh39.js +7 -0
- package/dist/chunks/studio-3exxhz5g.js +5 -0
- package/dist/chunks/studio-3q40e3rj.js +5 -0
- package/dist/chunks/studio-3qeh9t0h.js +6 -0
- package/dist/chunks/studio-3qqjeep5.js +6 -0
- package/dist/chunks/studio-43sd2mam.js +4 -0
- package/dist/chunks/studio-4hp8pkyt.js +5 -0
- package/dist/chunks/studio-58xg6j2q.js +9 -0
- package/dist/chunks/studio-5g0rprdt.js +7 -0
- package/dist/chunks/{studio-2j1cb95x.js → studio-6m380wp7.js} +4 -4
- package/dist/chunks/studio-80jyh1xh.js +4 -0
- package/dist/chunks/studio-83mk4bgg.js +9 -0
- package/dist/chunks/{studio-v0jzqdjm.js → studio-881z1xrx.js} +4 -4
- package/dist/chunks/studio-8m0y2qe7.js +5 -0
- package/dist/chunks/{studio-d81xfh1g.js → studio-8tr6cfrc.js} +4 -4
- package/dist/chunks/studio-8vcvfs7r.js +6 -0
- package/dist/chunks/studio-9tmebf0s.js +5 -0
- package/dist/chunks/studio-a2bvaptz.js +5 -0
- package/dist/chunks/studio-b7y5mr30.js +5 -0
- package/dist/chunks/studio-bavb31r0.js +5 -0
- package/dist/chunks/{studio-dgz8d0c1.js → studio-bbe4c90a.js} +4 -4
- package/dist/chunks/studio-c05wdnt3.js +5 -0
- package/dist/chunks/studio-ccv2svc6.js +5 -0
- package/dist/chunks/studio-d5grtb9e.js +16 -0
- package/dist/chunks/studio-df0baea9.js +5 -0
- package/dist/chunks/studio-dgk4dqtx.js +7 -0
- package/dist/chunks/studio-e1g64q43.js +5 -0
- package/dist/chunks/studio-ed1hp6zf.js +6 -0
- package/dist/chunks/studio-ed3xx40h.js +7 -0
- package/dist/chunks/studio-f14e1zdj.js +5 -0
- package/dist/chunks/studio-fbhxxc5f.js +5 -0
- package/dist/chunks/studio-fyh0jc96.js +5 -0
- package/dist/chunks/studio-gcxk20n7.js +5 -0
- package/dist/chunks/studio-jaaz8ce9.js +5 -0
- package/dist/chunks/{studio-90pq9km1.js → studio-jcnsdaep.js} +4 -4
- package/dist/chunks/studio-jsgf2q5k.js +7 -0
- package/dist/chunks/{studio-0q988f9w.js → studio-k3xxbagr.js} +3 -3
- package/dist/chunks/{studio-5ve6bbep.js → studio-k7evxqh4.js} +4 -4
- package/dist/chunks/studio-kt3pjkwd.js +5 -0
- package/dist/chunks/studio-m8g16bgz.js +5 -0
- package/dist/chunks/studio-mn0476ag.js +5 -0
- package/dist/chunks/studio-mx1smyq0.js +5 -0
- package/dist/chunks/studio-n0c5h6mf.js +5 -0
- package/dist/chunks/{studio-485046te.js → studio-nh6d342n.js} +7 -7
- package/dist/chunks/studio-nqxqf8p2.js +4 -0
- package/dist/chunks/studio-p4nrkvqr.js +5 -0
- package/dist/chunks/{studio-1fxkaaea.js → studio-pbxa5fpc.js} +4 -4
- package/dist/chunks/studio-pgmvdv7z.js +7 -0
- package/dist/chunks/studio-ph84avkf.js +5 -0
- package/dist/chunks/{studio-tq0rtfwj.js → studio-q0mvbaq6.js} +4 -4
- package/dist/chunks/studio-q0tccd43.js +5 -0
- package/dist/chunks/studio-q7rtx6zq.js +14 -0
- package/dist/chunks/{studio-a3g98wjr.js → studio-qgh13jtz.js} +4 -4
- package/dist/chunks/studio-qmn1xc24.js +5 -0
- package/dist/chunks/studio-qwdqwkj0.js +5 -0
- package/dist/chunks/studio-r5qy30vx.js +5 -0
- package/dist/chunks/studio-rj9eamf8.js +5 -0
- package/dist/chunks/studio-rptgsk96.js +5 -0
- package/dist/chunks/studio-rthyg42z.js +928 -0
- package/dist/chunks/studio-s19tp1xr.js +5 -0
- package/dist/chunks/studio-s32578pn.js +5 -0
- package/dist/chunks/studio-svb7yyve.js +5 -0
- package/dist/chunks/studio-syreb644.js +5 -0
- package/dist/chunks/studio-tf9jryb1.js +10 -0
- package/dist/chunks/studio-tfkznv39.js +5 -0
- package/dist/chunks/studio-tft6r105.js +5 -0
- package/dist/chunks/studio-txf2kysx.js +5 -0
- package/dist/chunks/studio-v8867ddv.js +12 -0
- package/dist/chunks/studio-vxq7fcvv.js +5 -0
- package/dist/chunks/studio-w4rz9hdk.js +5 -0
- package/dist/chunks/studio-wbcjbhy1.js +9 -0
- package/dist/chunks/studio-wc649wss.js +5 -0
- package/dist/chunks/studio-wys23mxz.js +5 -0
- package/dist/chunks/studio-x1x167jh.js +5 -0
- package/dist/chunks/studio-x9hsze61.js +5 -0
- package/dist/chunks/studio-y0n7yxea.js +9 -0
- package/dist/chunks/studio-y3ahhdpx.js +5 -0
- package/dist/chunks/studio-z97c48fk.js +5 -0
- package/dist/chunks/studio-zat62m0c.js +5 -0
- package/dist/chunks/studio-zcd2e7yz.js +5 -0
- package/dist/chunks/studio-zz9qe3rw.js +64 -0
- package/dist/chunks/toast-1gv0h53h.js +4 -0
- package/dist/chunks/{toast-host-ke5z4ng7.js → toast-host-1yg5ar8d.js} +3 -3
- package/dist/chunks/{tooltip-5v8ngwj2.js → tooltip-yypz28gq.js} +3 -3
- package/dist/chunks/{tree-mdq3v5cw.js → tree-9xa4hm7n.js} +2 -2
- package/dist/chunks/tsMode-epyfz1hv.js +14 -0
- package/dist/chunks/workspace-dz7nxfhv.js +4 -0
- package/dist/chunks/workspace-home-xsd7hkjw.js +4 -0
- package/dist/chunks/{ws-client-nze0k6mv.js → ws-client-bv552sfx.js} +3 -3
- package/dist/iframe-entry.js +20 -16
- package/dist/manifest.json +77 -63
- package/dist/studio.js +103 -104
- package/dist/workers/ts.worker.js +3 -3
- package/package.json +12 -11
- package/src/browse/component-examples.ts +272 -0
- package/src/browse/library-commands.ts +64 -104
- package/src/browse/library-layouts.ts +263 -49
- package/src/browse/library-model.ts +181 -133
- package/src/browse/library-pane.ts +738 -446
- package/src/browse/library-preview.ts +149 -19
- package/src/browse/library-source.ts +308 -41
- package/src/browse/preview-root.ts +78 -0
- package/src/browse/preview-style.ts +155 -0
- package/src/canvas/asset-refs.ts +16 -1
- package/src/canvas/canvas-live-render.ts +222 -30
- package/src/canvas/canvas-origin.ts +37 -12
- package/src/canvas/canvas-page-context.ts +112 -0
- package/src/canvas/canvas-render.ts +113 -107
- package/src/canvas/canvas-utils.ts +57 -12
- package/src/canvas/iframe-drop.ts +107 -0
- package/src/canvas/iframe-entry.ts +24 -12
- package/src/canvas/iframe-host.ts +134 -62
- package/src/canvas/iframe-keys.ts +11 -0
- package/src/canvas/iframe-patch.ts +8 -7
- package/src/canvas/iframe-protocol.ts +24 -5
- package/src/canvas/iframe-render.ts +48 -1
- package/src/canvas/iframe-subtree.ts +5 -2
- package/src/canvas/npm-modules.ts +22 -0
- package/src/canvas/preview-navigate.ts +16 -0
- package/src/canvas/repeater-sources.ts +200 -0
- package/src/canvas/stage-scrollbar.ts +5 -1
- package/src/canvas/surface-registry.ts +6 -0
- package/src/commands/app-commands.ts +16 -6
- package/src/commands/budget.ts +10 -8
- package/src/commands/context.ts +35 -10
- package/src/commands/defaults.ts +69 -45
- package/src/commands/keymap.ts +9 -0
- package/src/commands/levels.ts +11 -5
- package/src/commands/live-context.ts +2 -0
- package/src/commands/registry.ts +10 -1
- package/src/content/collection-match.ts +6 -5
- package/src/content/collection-pages.ts +412 -0
- package/src/content/content-collections.ts +270 -0
- package/src/content/entry-commands.ts +51 -60
- package/src/content/entry-editor.ts +111 -18
- package/src/content/entry-fields.ts +13 -1
- package/src/content/entry-inspector.ts +225 -0
- package/src/content/entry-model.ts +17 -3
- package/src/content/entry-open.ts +80 -0
- package/src/content/entry-summaries.ts +440 -0
- package/src/content/file-record-ids.ts +80 -0
- package/src/content/file-records.ts +125 -0
- package/src/content/page-summaries.ts +129 -0
- package/src/content/record-entry.ts +201 -0
- package/src/content/writing-banner.ts +177 -0
- package/src/create/add-new-commands.ts +185 -0
- package/src/create/add-new-flow.ts +1116 -0
- package/src/create/add-new.ts +1014 -0
- package/src/create/element-name.ts +121 -0
- package/src/editor/convert-to-component.ts +67 -43
- package/src/editor/file-drop-action.ts +9 -1
- package/src/editor/inline-edit-apply.ts +44 -0
- package/src/editor/inline-edit.ts +10 -0
- package/src/editor/insert-component.ts +91 -0
- package/src/editor/insert-zone-action.ts +13 -4
- package/src/editor/shortcuts.ts +44 -22
- package/src/editor/slash-menu.ts +51 -8
- package/src/files/components.ts +74 -10
- package/src/files/file-ops.ts +15 -5
- package/src/files/files.ts +164 -150
- package/src/files/fs-events.ts +18 -7
- package/src/files/media-meta.ts +95 -1
- package/src/files/media-types.ts +55 -0
- package/src/files/media-upload.ts +209 -52
- package/src/files/new-file-name.ts +156 -0
- package/src/files/serialize-document.ts +13 -3
- package/src/format/format-host.ts +15 -0
- package/src/github/github-auth.ts +2 -2
- package/src/github/github-publish.ts +4 -3
- package/src/grid/grid-controller.ts +5 -1
- package/src/grid/grid-open.ts +0 -27
- package/src/grid/grid-panel.ts +54 -2
- package/src/grid/grid-reveal.ts +34 -0
- package/src/grid/grid-source.ts +3 -25
- package/src/grid/grid-view.ts +31 -6
- package/src/grid/sources/content-source.ts +75 -7
- package/src/grid/tabulator-tables.d.ts +6 -0
- package/src/hosting/document.ts +2 -2
- package/src/i18n/i18n-commands.ts +2 -1
- package/src/media/media-commands.ts +181 -0
- package/src/media/media-library-model.ts +232 -0
- package/src/media/media-library.ts +1283 -0
- package/src/media/media-pane.ts +47 -19
- package/src/packages/pull-package-sync.ts +1 -1
- package/src/panels/activity-panel.ts +21 -5
- package/src/panels/ai-chat/chat-markdown.ts +8 -8
- package/src/panels/block-action-bar.ts +11 -11
- package/src/panels/canvas-dnd-bridge.ts +5 -2
- package/src/panels/chat-panel.ts +6 -6
- package/src/panels/collections-panel.ts +306 -0
- package/src/panels/component-preview.ts +35 -13
- package/src/panels/data-explorer.ts +1 -1
- package/src/panels/data-grid.ts +4 -0
- package/src/panels/dnd.ts +17 -30
- package/src/panels/elements-panel.ts +9 -2
- package/src/panels/empty-state.ts +2 -2
- package/src/panels/formula-workspace.ts +2 -3
- package/src/panels/frontmatter-fields.ts +9 -9
- package/src/panels/git-diff-open.ts +9 -5
- package/src/panels/head-panel.ts +369 -103
- package/src/panels/i18n-panel.ts +11 -10
- package/src/panels/imports-panel.ts +2 -0
- package/src/panels/jump-bar.ts +27 -2
- package/src/panels/layers-panel.ts +36 -30
- package/src/panels/left-panel.ts +22 -8
- package/src/panels/navigator-panels.ts +23 -11
- package/src/panels/pane-context.ts +111 -29
- package/src/panels/pane-grid.ts +6 -6
- package/src/panels/panel-registry.ts +14 -9
- package/src/panels/properties-panel.ts +7 -3
- package/src/panels/right-panel.ts +199 -43
- package/src/panels/seo-modal.ts +41 -108
- package/src/panels/settings-menu.ts +52 -50
- package/src/panels/settings-pane.ts +268 -162
- package/src/panels/signals-panel.ts +3 -4
- package/src/panels/site-model.ts +367 -0
- package/src/panels/site-panel.ts +638 -0
- package/src/panels/style-panel.ts +37 -3
- package/src/panels/stylebook-doc.ts +142 -10
- package/src/panels/stylebook-layers-panel.ts +39 -80
- package/src/panels/stylebook-panel.ts +47 -10
- package/src/panels/styles-panel.ts +327 -0
- package/src/panels/tab-strip.ts +109 -25
- package/src/platform.ts +1 -1
- package/src/platforms/cloud.ts +28 -1
- package/src/platforms/default-platform.ts +4 -4
- package/src/platforms/devserver.ts +51 -25
- package/src/publish/deploy-checklist.ts +12 -7
- package/src/publish/pages-service.ts +38 -14
- package/src/publish/publish-changes.ts +491 -0
- package/src/publish/publish-commands.ts +83 -18
- package/src/publish/publish-ids.ts +49 -0
- package/src/publish/publish-quick.ts +148 -0
- package/src/publish/publish-workspace.ts +926 -0
- package/src/publish/source-control.ts +907 -0
- package/src/services/automation.ts +16 -20
- package/src/services/cf-settings.ts +4 -4
- package/src/services/connection.ts +2 -2
- package/src/services/directory-picker.ts +2 -2
- package/src/services/references.ts +0 -0
- package/src/services/render-critic.ts +21 -2
- package/src/services/settings/definitions.ts +25 -14
- package/src/settings/contributed-section.ts +49 -10
- package/src/settings/css-vars-editor.ts +93 -27
- package/src/settings/developer-panels.ts +43 -0
- package/src/settings/extension-sections.ts +20 -2
- package/src/settings/general-settings.ts +91 -21
- package/src/settings/preferences-dialog.ts +8 -1
- package/src/settings/project-sections.ts +27 -10
- package/src/settings/schema-field-ui.ts +3 -1
- package/src/settings/section-registry.ts +116 -11
- package/src/settings/settings-dialog.ts +192 -0
- package/src/settings/settings-document.ts +182 -162
- package/src/shell.ts +467 -431
- package/src/site-context.ts +64 -10
- package/src/state.ts +28 -9
- package/src/studio.ts +194 -41
- package/src/style/project-styles.ts +34 -0
- package/src/style/stylebook-specimens.ts +89 -0
- package/src/style/stylebook-target.ts +26 -0
- package/src/style/tag-inheritance.ts +105 -0
- package/src/style/variables-focus.ts +61 -0
- package/src/style/variables-view.ts +235 -0
- package/src/surfaces/add-new.json +1482 -0
- package/src/surfaces/add-new.ts +325 -0
- package/src/surfaces/ai-chat.ts +2 -2
- package/src/surfaces/boot-failure.json +4 -3
- package/src/surfaces/bottom-dock.json +1 -1
- package/src/surfaces/canvas-stage.json +30 -19
- package/src/surfaces/canvas-stage.ts +5 -5
- package/src/surfaces/collections-panel.json +615 -0
- package/src/surfaces/collections-panel.ts +168 -0
- package/src/surfaces/commandbar.json +241 -96
- package/src/surfaces/commandbar.ts +134 -99
- package/src/surfaces/empty-state.json +1 -1
- package/src/surfaces/entry-editor.json +136 -0
- package/src/surfaces/entry-editor.ts +21 -0
- package/src/surfaces/entry-inspector.json +371 -0
- package/src/surfaces/entry-inspector.ts +143 -0
- package/src/surfaces/inspector-dock.json +162 -14
- package/src/surfaces/inspector-dock.ts +46 -19
- package/src/surfaces/library-pane.json +670 -437
- package/src/surfaces/library-pane.ts +94 -59
- package/src/surfaces/media-browser.json +62 -6
- package/src/surfaces/media-browser.ts +15 -1
- package/src/surfaces/media-field.json +1 -1
- package/src/surfaces/media-library.json +1586 -0
- package/src/surfaces/media-library.ts +282 -0
- package/src/surfaces/media-pick-dialog.json +71 -0
- package/src/surfaces/media-pick-dialog.ts +132 -0
- package/src/surfaces/menu.ts +18 -0
- package/src/surfaces/pane-context.json +144 -77
- package/src/surfaces/pane-context.ts +24 -0
- package/src/surfaces/panel-deploy-checklist.json +12 -6
- package/src/surfaces/panel-deploy-checklist.ts +3 -1
- package/src/surfaces/panel-page.json +72 -2
- package/src/surfaces/panel-page.ts +38 -7
- package/src/surfaces/panel-signals.json +1 -1
- package/src/surfaces/panel-signals.ts +5 -5
- package/src/surfaces/panel-stylebook-layers.json +71 -204
- package/src/surfaces/panel-stylebook-layers.ts +0 -21
- package/src/surfaces/preferences.json +120 -48
- package/src/surfaces/preferences.ts +8 -0
- package/src/surfaces/publish-quick.json +428 -0
- package/src/surfaces/publish-quick.ts +165 -0
- package/src/surfaces/publish-workspace.json +2892 -0
- package/src/surfaces/publish-workspace.ts +391 -0
- package/src/surfaces/rail.json +1 -159
- package/src/surfaces/rail.ts +18 -75
- package/src/surfaces/schema-form.json +10 -2
- package/src/surfaces/schema-form.ts +2 -0
- package/src/surfaces/seo.json +1 -1
- package/src/surfaces/settings-contributed.json +5 -5
- package/src/surfaces/settings-contributed.ts +18 -2
- package/src/surfaces/settings-css-vars.json +44 -36
- package/src/surfaces/settings-css-vars.ts +77 -4
- package/src/surfaces/settings-deploy.json +2 -15
- package/src/surfaces/settings-deploy.ts +1 -1
- package/src/surfaces/settings-dialog.json +51 -0
- package/src/surfaces/settings-dialog.ts +169 -0
- package/src/surfaces/settings-overview.json +3 -3
- package/src/surfaces/settings-overview.ts +9 -2
- package/src/surfaces/settings-pane.json +269 -46
- package/src/surfaces/settings-pane.ts +85 -24
- package/src/surfaces/shell.json +2 -1
- package/src/surfaces/site-panel.json +1029 -0
- package/src/surfaces/site-panel.ts +233 -0
- package/src/surfaces/slash-menu.json +63 -21
- package/src/surfaces/slash-menu.ts +23 -0
- package/src/surfaces/statusbar.ts +39 -15
- package/src/surfaces/styles-panel.json +735 -0
- package/src/surfaces/styles-panel.ts +195 -0
- package/src/surfaces/styles-variables.json +149 -0
- package/src/surfaces/styles-variables.ts +145 -0
- package/src/surfaces/tab-strip.json +4 -4
- package/src/surfaces/welcome.ts +1 -1
- package/src/surfaces/writing-banner.json +94 -0
- package/src/surfaces/writing-banner.ts +80 -0
- package/src/tabs/bare-repeaters.ts +101 -0
- package/src/tabs/tab.ts +47 -7
- package/src/types.ts +21 -26
- package/src/ui/form-controls.ts +47 -8
- package/src/ui/layers.ts +13 -0
- package/src/ui/media-picker.ts +284 -40
- package/src/ui/regions.ts +7 -6
- package/src/ui/schema-form.ts +259 -27
- package/src/ui/virtual-window.ts +26 -1
- package/src/utils/base64.ts +3 -3
- package/src/utils/edit-display.ts +322 -67
- package/src/utils/local-day.ts +18 -0
- package/src/workspace/pane-derive.ts +4 -4
- package/src/workspace/session.ts +28 -7
- package/src/workspace/tab-workspace.ts +137 -0
- package/src/workspace/workspace-back.ts +189 -0
- package/src/workspace/workspace-home.ts +133 -0
- package/src/workspace/workspace-ids.ts +129 -0
- package/src/workspace/workspace-switch.ts +372 -0
- package/src/workspace/workspace.ts +125 -11
- package/styles/shell-frame.css +30 -7
- package/styles/shell-frame.json +15 -3
- package/dist/chunks/2020-f2gkpy8d.js +0 -4
- package/dist/chunks/adapter-4912g339.js +0 -4
- package/dist/chunks/cf-account-picker-wccaenh6.js +0 -4
- package/dist/chunks/cf-settings-br6105tr.js +0 -4
- package/dist/chunks/color-28ksk2qm.js +0 -4
- package/dist/chunks/components-db68vsn7.js +0 -4
- package/dist/chunks/content-source-1449qesq.js +0 -4
- package/dist/chunks/convert-to-repeater-5h457egj.js +0 -4
- package/dist/chunks/editor-x9jn86a7.js +0 -4
- package/dist/chunks/entry-commands-may24cpt.js +0 -4
- package/dist/chunks/extension-sections-pvr14vxr.js +0 -4
- package/dist/chunks/file-ops-x9v54pcj.js +0 -4
- package/dist/chunks/files-j3knqf0s.js +0 -4
- package/dist/chunks/format-host-tyre2trb.js +0 -4
- package/dist/chunks/fs-events-64ma9htc.js +0 -4
- package/dist/chunks/git-panel-84ps5dex.js +0 -4
- package/dist/chunks/iframe-entry-fvbk89gm.js +0 -5
- package/dist/chunks/iframe-host-ck6vejt5.js +0 -4
- package/dist/chunks/index-b8xw3vy9.js +0 -4
- package/dist/chunks/jsonMode-w15cmrcm.js +0 -13
- package/dist/chunks/jx-validate-at3zn8wa.js +0 -4
- package/dist/chunks/layers-h4xp1pss.js +0 -4
- package/dist/chunks/layers-panel-m5hw1d7g.js +0 -4
- package/dist/chunks/lit-html-8t8t3dnr.js +0 -4
- package/dist/chunks/media-picker-2cweexc5.js +0 -4
- package/dist/chunks/menu-ynw13y0s.js +0 -4
- package/dist/chunks/monaco-buffer-qzxn567r.js +0 -4
- package/dist/chunks/monaco-setup-gxf6656g.js +0 -4
- package/dist/chunks/notify-cj5zbrs2.js +0 -4
- package/dist/chunks/parse-b7ddhr8m.js +0 -4
- package/dist/chunks/platform-3dfws9js.js +0 -4
- package/dist/chunks/popover-jt2gxmzs.js +0 -4
- package/dist/chunks/publish-panel-1gvxbj21.js +0 -4
- package/dist/chunks/quick-search-0dajrwqg.js +0 -4
- package/dist/chunks/references-49qgt404.js +0 -4
- package/dist/chunks/right-panel-jm1bwe53.js +0 -4
- package/dist/chunks/section-registry-6kwc4fky.js +0 -4
- package/dist/chunks/studio-0rt52vpq.js +0 -5
- package/dist/chunks/studio-18vgbhs5.js +0 -5
- package/dist/chunks/studio-24mccdrj.js +0 -5
- package/dist/chunks/studio-2eh507zk.js +0 -9
- package/dist/chunks/studio-2hcbccfv.js +0 -5
- package/dist/chunks/studio-2jbs3rxv.js +0 -5
- package/dist/chunks/studio-4h8k4dw9.js +0 -5
- package/dist/chunks/studio-5f6n18kx.js +0 -5
- package/dist/chunks/studio-5gthpky6.js +0 -5
- package/dist/chunks/studio-6ep3js6b.js +0 -9
- package/dist/chunks/studio-6wkmf3wz.js +0 -9
- package/dist/chunks/studio-841rf3cg.js +0 -5
- package/dist/chunks/studio-8gmwgheg.js +0 -5
- package/dist/chunks/studio-8qm0ep50.js +0 -5
- package/dist/chunks/studio-924p1tm1.js +0 -6
- package/dist/chunks/studio-a3shpz9y.js +0 -5
- package/dist/chunks/studio-amsbaaar.js +0 -6
- package/dist/chunks/studio-at5spjbc.js +0 -7
- package/dist/chunks/studio-b2xv945e.js +0 -5
- package/dist/chunks/studio-bn5nkafw.js +0 -5
- package/dist/chunks/studio-bw6q5xjf.js +0 -9
- package/dist/chunks/studio-c7q0t9x1.js +0 -5
- package/dist/chunks/studio-camnhc96.js +0 -6
- package/dist/chunks/studio-cffqvnzd.js +0 -5
- package/dist/chunks/studio-efvfrsf8.js +0 -5
- package/dist/chunks/studio-er30bpcx.js +0 -5
- package/dist/chunks/studio-ezscgr64.js +0 -5
- package/dist/chunks/studio-ffrrncvz.js +0 -5
- package/dist/chunks/studio-fpphgn8y.js +0 -10
- package/dist/chunks/studio-j1kvhdjk.js +0 -4
- package/dist/chunks/studio-j430n16g.js +0 -7
- package/dist/chunks/studio-jjkg84nj.js +0 -5
- package/dist/chunks/studio-m0q32ars.js +0 -4
- package/dist/chunks/studio-m6bdst11.js +0 -5
- package/dist/chunks/studio-nv2cptd4.js +0 -64
- package/dist/chunks/studio-nwfrc98n.js +0 -5
- package/dist/chunks/studio-p1wgvp7r.js +0 -5
- package/dist/chunks/studio-pag2wncm.js +0 -5
- package/dist/chunks/studio-qvanvzfd.js +0 -5
- package/dist/chunks/studio-qwa64kt7.js +0 -5
- package/dist/chunks/studio-rk1zc4x3.js +0 -928
- package/dist/chunks/studio-se2r3ptc.js +0 -5
- package/dist/chunks/studio-sg2a0dh0.js +0 -5
- package/dist/chunks/studio-tjzjhe68.js +0 -5
- package/dist/chunks/studio-v2w7q8r1.js +0 -7
- package/dist/chunks/studio-v5vjq1h0.js +0 -4
- package/dist/chunks/studio-v8aga3vp.js +0 -14
- package/dist/chunks/studio-vfcdrfmv.js +0 -5
- package/dist/chunks/studio-vmfkgdjf.js +0 -5
- package/dist/chunks/studio-wt1816jj.js +0 -5
- package/dist/chunks/studio-wz73q5kq.js +0 -4
- package/dist/chunks/studio-y04qtxvp.js +0 -7
- package/dist/chunks/studio-y21g8zzg.js +0 -5
- package/dist/chunks/studio-y64hrt8p.js +0 -12
- package/dist/chunks/studio-ynn90f58.js +0 -16
- package/dist/chunks/studio-yxz682sx.js +0 -5
- package/dist/chunks/studio-zp7snvkq.js +0 -5
- package/dist/chunks/studio-zq4z6tm6.js +0 -5
- package/dist/chunks/toast-c9fn075p.js +0 -4
- package/dist/chunks/tsMode-sf49ee9x.js +0 -14
- package/dist/chunks/workspace-jtfahpee.js +0 -4
- package/src/panels/frontmatter-panel.ts +0 -711
- package/src/panels/git-panel.ts +0 -1108
- package/src/surfaces/doc-header.json +0 -776
- package/src/surfaces/doc-header.ts +0 -222
- package/src/surfaces/git-panel.json +0 -1880
- package/src/surfaces/git-panel.ts +0 -264
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
/// <reference lib="dom" />
|
|
2
|
-
/**
|
|
3
|
-
* The Source Control panel, as a mounted document.
|
|
4
|
-
*
|
|
5
|
-
* `panels/git-panel.ts` is the flow — what git is asked, what a comparison is, which files group
|
|
6
|
-
* under which component, what a commit does before it runs, and which of the four moods the panel
|
|
7
|
-
* is in — and this is the surface it draws into: the reactive scope the document reads, the flags
|
|
8
|
-
* it discriminates on, and the mount that stays put while the Navigator repaints around it.
|
|
9
|
-
*
|
|
10
|
-
* **The flow tells the surface what a row says, never what it means.** A changed file arrives as a
|
|
11
|
-
* name, a directory, a status letter, that status said aloud, and two booleans; nothing here learns
|
|
12
|
-
* what `U` is or that a `.png` has no comparison to open. That matters more here than in the
|
|
13
|
-
* settings sections, because the file rows are NESTED — inside the per-file map `$map/item` is the
|
|
14
|
-
* file, so a row genuinely cannot reach the group it is under — and a path it can hand straight
|
|
15
|
-
* back is the whole answer.
|
|
16
|
-
*
|
|
17
|
-
* **The container is not cleared**, which is the one line where a panel differs from a settings
|
|
18
|
-
* section. A section is handed the pane's whole content area and starts by emptying it; a panel
|
|
19
|
-
* body is a node lit renders into, and its comment markers are how lit finds its own content again.
|
|
20
|
-
* So the document is APPENDED, and {@link GitPanelSurfaceHandle.connected} is how the panel finds
|
|
21
|
-
* out that the Navigator has since painted another panel over the top of it.
|
|
22
|
-
*
|
|
23
|
-
* @docs studio/publish/source-control
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
import { reactive } from "../reactivity";
|
|
27
|
-
import { mountSurface, registerSurface } from "../ui/surface";
|
|
28
|
-
import gitPanelDoc from "./git-panel.json";
|
|
29
|
-
import type { SurfaceHandle, SurfaceOption } from "../ui/surface";
|
|
30
|
-
|
|
31
|
-
registerSurface("git-panel", gitPanelDoc);
|
|
32
|
-
|
|
33
|
-
/** One changed file, as the document draws it. Every field is a value: no records, no closures. */
|
|
34
|
-
export interface GitFileRowView {
|
|
35
|
-
/** The row's reconcile key AND what every button hands back — the project-relative path. */
|
|
36
|
-
key: string;
|
|
37
|
-
path: string;
|
|
38
|
-
/** The last segment, which is what the row reads as. */
|
|
39
|
-
name: string;
|
|
40
|
-
/** Everything before it, drawn small beside the name. */
|
|
41
|
-
dir: string;
|
|
42
|
-
/** Whether there is a directory to draw; the document has no `length` to ask. */
|
|
43
|
-
hasDir: boolean;
|
|
44
|
-
/** The open button's accessible name: the path and the status in words. */
|
|
45
|
-
label: string;
|
|
46
|
-
/** The one-letter badge — `M`, `A`, `D`, `R`, `U`. */
|
|
47
|
-
status: string;
|
|
48
|
-
/** Which pair of verbs the row offers: Unstage, or Discard and Stage. */
|
|
49
|
-
staged: boolean;
|
|
50
|
-
/**
|
|
51
|
-
* Whether Discard is refused, spelled the way the document reads it. An untracked file has no
|
|
52
|
-
* committed version to come back to, so there is nothing to discard TO.
|
|
53
|
-
*/
|
|
54
|
-
cannotDiscard: boolean;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/** One component's changed files, under the heading the flow spelled. */
|
|
58
|
-
export interface GitGroupView {
|
|
59
|
-
key: string;
|
|
60
|
-
name: string;
|
|
61
|
-
files: GitFileRowView[];
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/** One commit in the log. */
|
|
65
|
-
export interface GitCommitView {
|
|
66
|
-
key: string;
|
|
67
|
-
/** The short hash, already sliced. */
|
|
68
|
-
hash: string;
|
|
69
|
-
message: string;
|
|
70
|
-
/** "ada · 5m ago" — the author and the age, joined by the flow that knows the clock. */
|
|
71
|
-
meta: string;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/** What the panel says the surface should be showing right now. */
|
|
75
|
-
export interface GitPanelValues {
|
|
76
|
-
/**
|
|
77
|
-
* Which of the four moods the panel is in: no project open, a first read still in flight, a
|
|
78
|
-
* project git is not tracking, or a repository. The flow decides; the document switches.
|
|
79
|
-
*/
|
|
80
|
-
view: "no-project" | "loading" | "no-repo" | "repo";
|
|
81
|
-
/** Whether this platform can clone at all — the one action the no-project state offers. */
|
|
82
|
-
canClone: boolean;
|
|
83
|
-
/** A git verb is in flight: every button that would start a second one is off. */
|
|
84
|
-
busy: boolean;
|
|
85
|
-
hasError: boolean;
|
|
86
|
-
error: string;
|
|
87
|
-
/** `remote` or `local`: which sync bar is drawn. */
|
|
88
|
-
remoteState: "remote" | "local";
|
|
89
|
-
/** "Up to date", or "3 ahead, 1 behind". */
|
|
90
|
-
syncLabel: string;
|
|
91
|
-
/** "Last updated 02:04 PM", or empty. */
|
|
92
|
-
lastUpdated: string;
|
|
93
|
-
hasLastUpdated: boolean;
|
|
94
|
-
/** The pull and push buttons' names, which carry their counts: "Pull (2 behind)". */
|
|
95
|
-
pullLabel: string;
|
|
96
|
-
pushLabel: string;
|
|
97
|
-
branchName: string;
|
|
98
|
-
/** What the picker currently holds. Not always {@link branchName} — see the adapter's note. */
|
|
99
|
-
branchValue: string;
|
|
100
|
-
branchOptions: SurfaceOption[];
|
|
101
|
-
/** `changes` or `history` — `shell.git.subTab`, which names the `$switch` case. */
|
|
102
|
-
subTab: string;
|
|
103
|
-
/** "Local Changes (6)" — the count is part of the tab's label, not a badge of its own. */
|
|
104
|
-
changesLabel: string;
|
|
105
|
-
commitMessage: string;
|
|
106
|
-
hasStaged: boolean;
|
|
107
|
-
stagedCount: string;
|
|
108
|
-
stagedFiles: GitFileRowView[];
|
|
109
|
-
changedCount: string;
|
|
110
|
-
/** Whether Stage all has anything to stage. */
|
|
111
|
-
hasUnstaged: boolean;
|
|
112
|
-
filesState: "listed" | "empty";
|
|
113
|
-
groups: GitGroupView[];
|
|
114
|
-
historyState: "listed" | "empty";
|
|
115
|
-
commits: GitCommitView[];
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/** What a control can ask the panel to do. Every one of them is a decision the flow owns. */
|
|
119
|
-
export interface GitPanelActions {
|
|
120
|
-
clone: () => void;
|
|
121
|
-
initRepository: () => void;
|
|
122
|
-
createRepository: () => void;
|
|
123
|
-
refresh: () => void;
|
|
124
|
-
fetch: () => void;
|
|
125
|
-
pull: () => void;
|
|
126
|
-
push: () => void;
|
|
127
|
-
/** A pick from the branch picker — including the row that means "make a new one". */
|
|
128
|
-
chooseBranch: (value: string) => void;
|
|
129
|
-
selectTab: (tab: string) => void;
|
|
130
|
-
/** State what the commit field now holds, before anything is decided about it. */
|
|
131
|
-
editMessage: (value: string) => void;
|
|
132
|
-
/** Commit without pushing — the chord, and the menu row. */
|
|
133
|
-
commit: () => void;
|
|
134
|
-
commitAndSync: () => void;
|
|
135
|
-
/** The split button's second half: the kit menu, hung off the control that was clicked. */
|
|
136
|
-
openCommitMenu: (anchor: HTMLElement) => void;
|
|
137
|
-
openFile: (path: string) => void;
|
|
138
|
-
stage: (path: string) => void;
|
|
139
|
-
unstage: (path: string) => void;
|
|
140
|
-
discard: (path: string) => void;
|
|
141
|
-
stageAll: () => void;
|
|
142
|
-
unstageAll: () => void;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export interface GitPanelSurfaceHandle {
|
|
146
|
-
/** Bring the mounted document up to date with a whole projection. */
|
|
147
|
-
update: (values: GitPanelValues) => void;
|
|
148
|
-
/** Whether the document this mounted is still standing in the container it was given. */
|
|
149
|
-
connected: () => boolean;
|
|
150
|
-
/** Take the document down. Idempotent. */
|
|
151
|
-
dispose: () => void;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/** The scope the document reads: the projection, plus everything a control can ask for. */
|
|
155
|
-
interface GitPanelScope extends GitPanelValues, GitPanelActions {}
|
|
156
|
-
|
|
157
|
-
/** Write a projection into the scope. Assignment by assignment, so an unchanged field is inert. */
|
|
158
|
-
function project(scope: GitPanelScope, values: GitPanelValues): void {
|
|
159
|
-
scope.view = values.view;
|
|
160
|
-
scope.canClone = values.canClone;
|
|
161
|
-
scope.busy = values.busy;
|
|
162
|
-
scope.hasError = values.hasError;
|
|
163
|
-
scope.error = values.error;
|
|
164
|
-
scope.remoteState = values.remoteState;
|
|
165
|
-
scope.syncLabel = values.syncLabel;
|
|
166
|
-
scope.lastUpdated = values.lastUpdated;
|
|
167
|
-
scope.hasLastUpdated = values.hasLastUpdated;
|
|
168
|
-
scope.pullLabel = values.pullLabel;
|
|
169
|
-
scope.pushLabel = values.pushLabel;
|
|
170
|
-
scope.branchName = values.branchName;
|
|
171
|
-
scope.branchValue = values.branchValue;
|
|
172
|
-
scope.branchOptions = values.branchOptions;
|
|
173
|
-
scope.subTab = values.subTab;
|
|
174
|
-
scope.changesLabel = values.changesLabel;
|
|
175
|
-
scope.commitMessage = values.commitMessage;
|
|
176
|
-
scope.hasStaged = values.hasStaged;
|
|
177
|
-
scope.stagedCount = values.stagedCount;
|
|
178
|
-
scope.stagedFiles = values.stagedFiles;
|
|
179
|
-
scope.changedCount = values.changedCount;
|
|
180
|
-
scope.hasUnstaged = values.hasUnstaged;
|
|
181
|
-
scope.filesState = values.filesState;
|
|
182
|
-
scope.groups = values.groups;
|
|
183
|
-
scope.historyState = values.historyState;
|
|
184
|
-
scope.commits = values.commits;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
/** The scope's starting shape, before the first projection lands on it. */
|
|
188
|
-
function emptyValues(): GitPanelValues {
|
|
189
|
-
return {
|
|
190
|
-
branchName: "",
|
|
191
|
-
branchOptions: [],
|
|
192
|
-
branchValue: "",
|
|
193
|
-
busy: false,
|
|
194
|
-
canClone: false,
|
|
195
|
-
changedCount: "0",
|
|
196
|
-
changesLabel: "Local Changes",
|
|
197
|
-
commitMessage: "",
|
|
198
|
-
commits: [],
|
|
199
|
-
error: "",
|
|
200
|
-
filesState: "empty",
|
|
201
|
-
groups: [],
|
|
202
|
-
hasError: false,
|
|
203
|
-
hasLastUpdated: false,
|
|
204
|
-
hasStaged: false,
|
|
205
|
-
hasUnstaged: false,
|
|
206
|
-
historyState: "empty",
|
|
207
|
-
lastUpdated: "",
|
|
208
|
-
pullLabel: "Pull",
|
|
209
|
-
pushLabel: "Push",
|
|
210
|
-
remoteState: "local",
|
|
211
|
-
stagedCount: "0",
|
|
212
|
-
stagedFiles: [],
|
|
213
|
-
subTab: "changes",
|
|
214
|
-
syncLabel: "",
|
|
215
|
-
view: "loading",
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
/**
|
|
220
|
-
* Mount the Source Control document into `container`, which is the `.panel-content` the Navigator
|
|
221
|
-
* just painted.
|
|
222
|
-
*
|
|
223
|
-
* Nothing is called on the elements, so the mount is all this has to wait for: the DOCUMENT is what
|
|
224
|
-
* this surface renders, and the kit elements inside it settle their own templates one
|
|
225
|
-
* `connectedCallback` later without anybody here asking them to (studio-ui-guidelines.md §1.1,
|
|
226
|
-
* "await the element").
|
|
227
|
-
*/
|
|
228
|
-
export function mountGitPanelSurface(
|
|
229
|
-
container: HTMLElement,
|
|
230
|
-
values: GitPanelValues,
|
|
231
|
-
actions: GitPanelActions,
|
|
232
|
-
): GitPanelSurfaceHandle {
|
|
233
|
-
const scope: GitPanelScope = reactive<GitPanelScope>({
|
|
234
|
-
...emptyValues(),
|
|
235
|
-
...actions,
|
|
236
|
-
});
|
|
237
|
-
project(scope, values);
|
|
238
|
-
|
|
239
|
-
let mounted: SurfaceHandle | null = null;
|
|
240
|
-
let disposed = false;
|
|
241
|
-
void mountSurface("git-panel", scope, container).then((surface) => {
|
|
242
|
-
if (disposed) {
|
|
243
|
-
surface.dispose();
|
|
244
|
-
return;
|
|
245
|
-
}
|
|
246
|
-
mounted = surface;
|
|
247
|
-
});
|
|
248
|
-
|
|
249
|
-
return {
|
|
250
|
-
/* While the mount is still in flight there is nothing in the container to ask about, so the
|
|
251
|
-
answer is simply whether this handle is still wanted — answering no would start a second
|
|
252
|
-
mount racing the first. Once mounted, the question is whether the root is still where it was
|
|
253
|
-
put: a Navigator that painted another panel cleared this document out from under it. */
|
|
254
|
-
connected: () => !disposed && (mounted === null || mounted.root.parentNode === container),
|
|
255
|
-
dispose() {
|
|
256
|
-
disposed = true;
|
|
257
|
-
mounted?.dispose();
|
|
258
|
-
mounted = null;
|
|
259
|
-
},
|
|
260
|
-
update: (next) => {
|
|
261
|
-
project(scope, next);
|
|
262
|
-
},
|
|
263
|
-
};
|
|
264
|
-
}
|