@jxsuite/studio 6.1.1 → 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/{action-group-2mqby73c.js → action-group-4aan7g6g.js} +3 -3
- 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-6rbra5dy.js +4 -0
- package/dist/chunks/color-field-gy56c94g.js +4 -0
- package/dist/chunks/color-m7r1vk54.js +4 -0
- package/dist/chunks/color-slider-sqqdyf6c.js +4 -0
- package/dist/chunks/combobox-72h32ejk.js +4 -0
- 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/dialog-c4x05vyx.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-qg1b5eqx.js +51 -0
- package/dist/chunks/icons-63bjtbs7.js +4 -0
- package/dist/chunks/iframe-entry-2zggzajv.js +5 -0
- package/dist/chunks/iframe-entry-76j8vwwx.js +5 -0
- package/dist/chunks/iframe-entry-99nr5zfb.js +5 -0
- package/dist/chunks/iframe-entry-pkgmcgp0.js +5 -0
- package/dist/chunks/iframe-host-ssv7kyj0.js +4 -0
- package/dist/chunks/{index-2veqmnhr.js → index-32eqzv1k.js} +3 -3
- package/dist/chunks/index-f0jn7nnp.js +4 -0
- package/dist/chunks/{javascript-8nbvs12s.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-c421cf8c.js +4 -0
- 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-bdpzbfvs.js +4 -0
- package/dist/chunks/monaco-binding-vq1hgnn0.js +4 -0
- 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/number-field-y62xq0ty.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/select-rzds841e.js +4 -0
- package/dist/chunks/source-control-kwktr9y6.js +4 -0
- package/dist/chunks/split-c9zfdgxf.js +4 -0
- 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-6m380wp7.js +5 -0
- package/dist/chunks/studio-80jyh1xh.js +4 -0
- package/dist/chunks/studio-83mk4bgg.js +9 -0
- package/dist/chunks/{studio-kggey1jt.js → studio-881z1xrx.js} +4 -4
- package/dist/chunks/studio-8m0y2qe7.js +5 -0
- package/dist/chunks/studio-8tr6cfrc.js +5 -0
- 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-bbe4c90a.js +5 -0
- 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-8grwxtqk.js → studio-jcnsdaep.js} +4 -4
- package/dist/chunks/studio-jsgf2q5k.js +7 -0
- package/dist/chunks/{studio-1q1sh2ax.js → studio-k3xxbagr.js} +3 -3
- package/dist/chunks/studio-k7evxqh4.js +5 -0
- 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-rv11kfwa.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-h46vtzk8.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-wszjyh0j.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-pre0skq6.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-t6b6qe31.js → studio-r5qy30vx.js} +4 -4
- 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/swatch-group-ewh24n1f.js +4 -0
- package/dist/chunks/tabs-f5cw3tgp.js +4 -0
- package/dist/chunks/textfield-wewc8rq2.js +4 -0
- package/dist/chunks/toast-1gv0h53h.js +4 -0
- package/dist/chunks/toast-host-1yg5ar8d.js +4 -0
- package/dist/chunks/{toolbar-2nnzqhrj.js → toolbar-44cm5cta.js} +3 -3
- package/dist/chunks/tooltip-yypz28gq.js +4 -0
- package/dist/chunks/tree-9xa4hm7n.js +4 -0
- 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-bv552sfx.js +4 -0
- package/dist/iframe-entry.js +20 -16
- package/dist/manifest.json +77 -63
- package/dist/studio.js +106 -107
- package/dist/workers/ts.worker.js +3 -3
- package/package.json +17 -16
- package/src/about/about-modal.ts +4 -3
- package/src/account/action-flow.ts +45 -38
- package/src/account-status.ts +7 -2
- package/src/browse/component-examples.ts +272 -0
- package/src/browse/library-commands.ts +64 -104
- package/src/browse/library-layouts.ts +270 -53
- package/src/browse/library-model.ts +194 -134
- package/src/browse/library-pane.ts +748 -440
- package/src/browse/library-preview.ts +161 -26
- 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 +40 -10
- package/src/canvas/asset-resolve.ts +19 -23
- package/src/canvas/canvas-helpers.ts +7 -6
- package/src/canvas/canvas-live-render.ts +260 -77
- package/src/canvas/canvas-origin.ts +37 -12
- package/src/canvas/canvas-page-context.ts +112 -0
- package/src/canvas/canvas-patcher.ts +30 -30
- package/src/canvas/canvas-perf.ts +11 -5
- package/src/canvas/canvas-render.ts +175 -148
- package/src/canvas/canvas-surface.ts +5 -3
- package/src/canvas/canvas-utils.ts +147 -61
- package/src/canvas/dialog-path.ts +9 -4
- package/src/canvas/dialog-state.ts +1 -2
- package/src/canvas/diff-marks.ts +9 -16
- package/src/canvas/diff-toolbar.ts +8 -7
- package/src/canvas/edit-width-drag.ts +4 -1
- package/src/canvas/edit-width.ts +1 -3
- package/src/canvas/iframe-channel.ts +27 -13
- package/src/canvas/iframe-drop.ts +120 -12
- package/src/canvas/iframe-editable-root.ts +29 -16
- package/src/canvas/iframe-entry.ts +104 -75
- package/src/canvas/iframe-eval.ts +73 -49
- package/src/canvas/iframe-host.ts +269 -158
- package/src/canvas/iframe-inline-edit.ts +49 -30
- package/src/canvas/iframe-insert.ts +5 -4
- package/src/canvas/iframe-interaction.ts +30 -25
- package/src/canvas/iframe-keys.ts +11 -0
- package/src/canvas/iframe-overlay.ts +1 -1
- package/src/canvas/iframe-patch.ts +25 -21
- package/src/canvas/iframe-position.ts +12 -6
- package/src/canvas/iframe-protocol.ts +36 -21
- package/src/canvas/iframe-render.ts +84 -35
- package/src/canvas/iframe-slash.ts +24 -11
- package/src/canvas/iframe-subtree.ts +10 -3
- package/src/canvas/npm-modules.ts +22 -0
- package/src/canvas/path-mapping.ts +19 -12
- package/src/canvas/popover-path.ts +7 -3
- package/src/canvas/popover-state.ts +1 -2
- package/src/canvas/preview-navigate.ts +16 -0
- package/src/canvas/repeater-sources.ts +200 -0
- package/src/canvas/serialize-scope.ts +13 -5
- package/src/canvas/stage-scrollbar.ts +7 -2
- package/src/canvas/surface-registry.ts +27 -3
- package/src/collab/collab-commands.ts +7 -2
- package/src/collab/collab-session.ts +84 -45
- package/src/collab/collab-state.ts +4 -3
- package/src/collab/monaco-binding.ts +16 -13
- package/src/collab/monaco-cursors.ts +5 -2
- package/src/commands/app-commands.ts +16 -6
- package/src/commands/budget.ts +13 -11
- package/src/commands/command-args.ts +103 -71
- package/src/commands/context.ts +55 -28
- package/src/commands/defaults.ts +69 -45
- package/src/commands/keymap.ts +56 -43
- package/src/commands/levels.ts +14 -8
- package/src/commands/live-context.ts +9 -7
- package/src/commands/reference.ts +2 -1
- package/src/commands/registry.ts +22 -11
- package/src/commands/run-reported.ts +15 -10
- package/src/component-props.ts +46 -30
- package/src/content/collection-match.ts +11 -9
- package/src/content/collection-pages.ts +412 -0
- package/src/content/content-collections.ts +270 -0
- package/src/content/draft-state.ts +4 -3
- package/src/content/entry-commands.ts +54 -62
- package/src/content/entry-editor.ts +137 -32
- package/src/content/entry-fields.ts +25 -8
- package/src/content/entry-inspector.ts +225 -0
- package/src/content/entry-model.ts +38 -15
- 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/canvas-context-menu.ts +1 -2
- package/src/editor/canvas-slash-bridge.ts +3 -6
- package/src/editor/content-slice.ts +16 -14
- package/src/editor/context-menu.ts +35 -22
- package/src/editor/convert-targets.ts +30 -35
- package/src/editor/convert-to-component.ts +78 -48
- package/src/editor/convert-to-repeater.ts +34 -22
- package/src/editor/editable-tags.ts +17 -2
- package/src/editor/file-drop-action.ts +29 -22
- package/src/editor/inline-edit-apply.ts +79 -17
- package/src/editor/inline-edit.ts +76 -50
- package/src/editor/inline-format.ts +59 -56
- package/src/editor/inline-link.ts +40 -15
- package/src/editor/insert-component.ts +91 -0
- package/src/editor/insert-zone-action.ts +14 -5
- package/src/editor/merge-tags.ts +58 -19
- package/src/editor/repeater-scope.ts +39 -28
- package/src/editor/shortcuts.ts +76 -42
- package/src/editor/slash-menu.ts +52 -14
- package/src/files/asset-versions.ts +4 -4
- package/src/files/components.ts +89 -20
- package/src/files/elements.ts +5 -6
- package/src/files/file-ops.ts +92 -41
- package/src/files/files.ts +248 -239
- package/src/files/fs-events.ts +18 -7
- package/src/files/media-meta.ts +97 -2
- package/src/files/media-paths.ts +3 -0
- 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 +15 -5
- package/src/format/constraints.ts +1 -1
- package/src/format/convert-file.ts +27 -13
- package/src/format/format-choices.ts +2 -1
- package/src/format/format-host.ts +91 -50
- package/src/github/github-auth-status.ts +27 -3
- package/src/github/github-auth.ts +21 -11
- package/src/github/github-publish.ts +28 -23
- package/src/grid/cell-editors.ts +46 -31
- package/src/grid/cell-popovers.ts +5 -3
- package/src/grid/edit-buffer.ts +10 -9
- package/src/grid/grid-controller.ts +25 -23
- package/src/grid/grid-layout.ts +21 -5
- package/src/grid/grid-open.ts +3 -33
- package/src/grid/grid-panel.ts +65 -6
- package/src/grid/grid-reveal.ts +34 -0
- package/src/grid/grid-source.ts +9 -31
- package/src/grid/grid-view.ts +45 -23
- package/src/grid/redirects-grid.ts +14 -5
- package/src/grid/redirects.ts +16 -14
- package/src/grid/schema-columns.ts +25 -19
- package/src/grid/sources/connector-source.ts +47 -20
- package/src/grid/sources/content-source.ts +100 -31
- package/src/grid/sources/csv-file-source.ts +2 -2
- package/src/grid/tabulator-tables.d.ts +61 -34
- package/src/hosting/document.ts +2 -2
- package/src/hosting/stage.ts +7 -7
- package/src/i18n/i18n-commands.ts +3 -3
- 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 +51 -20
- package/src/new-project/add-repo-modal.ts +20 -19
- package/src/new-project/import-tab.ts +10 -14
- package/src/new-project/location-fields.ts +2 -1
- package/src/new-project/new-project-modal.ts +12 -9
- package/src/packages/jxsuite-update.ts +4 -3
- package/src/packages/pull-package-sync.ts +26 -25
- package/src/page-params.ts +97 -68
- package/src/panels/activity-panel.ts +38 -14
- package/src/panels/ai-chat/attached-context.ts +13 -7
- package/src/panels/ai-chat/chat-markdown.ts +8 -8
- package/src/panels/ai-chat/chat-view.ts +80 -73
- package/src/panels/ai-chat/composer.ts +30 -33
- package/src/panels/ai-chat/sessions-view.ts +1 -2
- package/src/panels/ai-panel.ts +23 -20
- package/src/panels/block-action-bar.ts +57 -46
- package/src/panels/bottom-dock.ts +5 -3
- package/src/panels/canvas-dnd-bridge.ts +36 -26
- 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 +63 -26
- package/src/panels/data-grid.ts +18 -11
- package/src/panels/dnd.ts +115 -138
- package/src/panels/editors.ts +52 -21
- package/src/panels/elements-panel.ts +19 -5
- package/src/panels/empty-state.ts +2 -2
- package/src/panels/events-panel.ts +84 -69
- package/src/panels/formula-workspace.ts +78 -54
- package/src/panels/frontmatter-fields.ts +33 -28
- package/src/panels/git-diff-open.ts +10 -6
- package/src/panels/head-panel.ts +488 -202
- package/src/panels/i18n-panel.ts +20 -12
- package/src/panels/imports-panel.ts +25 -47
- package/src/panels/jump-bar.ts +75 -31
- package/src/panels/layers-panel.ts +130 -101
- package/src/panels/left-panel.ts +25 -11
- package/src/panels/navigator-panels.ts +23 -11
- package/src/panels/pane-context.ts +140 -49
- package/src/panels/pane-grid.ts +55 -26
- package/src/panels/panel-registry.ts +36 -46
- package/src/panels/properties-panel.ts +182 -124
- package/src/panels/quick-search.ts +53 -31
- package/src/panels/right-panel.ts +201 -45
- package/src/panels/seo-modal.ts +54 -125
- package/src/panels/settings-menu.ts +63 -61
- package/src/panels/settings-pane.ts +268 -162
- package/src/panels/signals-panel.ts +156 -135
- package/src/panels/site-model.ts +367 -0
- package/src/panels/site-panel.ts +638 -0
- package/src/panels/statement-editor.ts +230 -140
- package/src/panels/style-panel.ts +253 -206
- package/src/panels/style-utils.ts +114 -51
- package/src/panels/stylebook-doc.ts +195 -60
- package/src/panels/stylebook-layers-panel.ts +48 -89
- package/src/panels/stylebook-panel.ts +60 -27
- package/src/panels/styles-panel.ts +327 -0
- package/src/panels/tab-drop.ts +27 -11
- package/src/panels/tab-strip.ts +143 -49
- package/src/platform-errors.ts +57 -43
- package/src/platform.ts +59 -31
- package/src/platforms/cloud.ts +373 -176
- package/src/platforms/default-platform.ts +14 -8
- package/src/platforms/devserver.ts +180 -142
- package/src/platforms/read-batcher.ts +16 -8
- package/src/project-list.ts +2 -1
- package/src/publish/deploy-checklist.ts +20 -9
- package/src/publish/pages-service.ts +66 -27
- package/src/publish/publish-changes.ts +491 -0
- package/src/publish/publish-commands.ts +88 -22
- package/src/publish/publish-ids.ts +49 -0
- package/src/publish/publish-panel.ts +10 -6
- 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/recent-projects.ts +15 -8
- package/src/resize-edges.ts +26 -36
- package/src/services/a11y-report.ts +26 -19
- package/src/services/agent-seed.ts +23 -11
- package/src/services/ai-ask.ts +9 -12
- package/src/services/ai-command-tools.ts +68 -62
- package/src/services/ai-import-tools.ts +80 -67
- package/src/services/ai-models.ts +17 -13
- package/src/services/ai-project-tools.ts +68 -32
- package/src/services/ai-session-store.ts +19 -10
- package/src/services/ai-system-prompt.ts +46 -20
- package/src/services/ai-tools.ts +71 -27
- package/src/services/ai-write-report.ts +20 -12
- package/src/services/ai-writes.ts +4 -4
- package/src/services/automation.ts +74 -51
- package/src/services/cem-export.ts +149 -58
- package/src/services/cf-settings.ts +4 -4
- package/src/services/clock.ts +6 -1
- package/src/services/code-services.ts +37 -31
- package/src/services/connection.ts +2 -2
- package/src/services/context-manager.ts +14 -10
- package/src/services/context-resolver.ts +20 -8
- package/src/services/data-service.ts +19 -15
- package/src/services/directory-picker.ts +20 -14
- package/src/services/document-assistant.ts +39 -19
- package/src/services/gated-registry.ts +10 -6
- package/src/services/harness/chat-reducer.ts +23 -1
- package/src/services/import-client.ts +91 -38
- package/src/services/import-seed.ts +8 -2
- package/src/services/jx-validate.ts +28 -31
- package/src/services/live-preview.ts +0 -0
- package/src/services/live-surfaces.ts +6 -3
- package/src/services/model-uri.ts +10 -2
- package/src/services/module-preloads.ts +12 -8
- package/src/services/monaco-buffer.ts +43 -24
- package/src/services/monaco-lazy.ts +7 -8
- package/src/services/monaco-setup.ts +23 -16
- package/src/services/notify.ts +44 -17
- package/src/services/popover-report.ts +25 -10
- package/src/services/preview-eval.ts +20 -8
- package/src/services/profile.ts +13 -6
- package/src/services/project-path.ts +13 -10
- package/src/services/references.ts +0 -0
- package/src/services/render-critic.ts +29 -9
- package/src/services/settings/definitions.ts +25 -14
- package/src/services/settings/kernel.ts +13 -4
- package/src/services/settings/write-queue.ts +9 -9
- package/src/services/token-lint.ts +12 -10
- package/src/services/tool-executor.ts +17 -5
- package/src/services/tool-outcomes.ts +44 -24
- package/src/services/trusted-types.ts +24 -7
- package/src/settings/contexts-section.ts +11 -8
- package/src/settings/contributed-section.ts +128 -70
- package/src/settings/css-vars-editor.ts +119 -32
- package/src/settings/defs-editor.ts +38 -35
- package/src/settings/developer-panels.ts +43 -0
- package/src/settings/extension-rows.ts +16 -8
- package/src/settings/extension-sections.ts +42 -14
- package/src/settings/extensions-section.ts +4 -1
- package/src/settings/general-settings.ts +101 -28
- package/src/settings/locales-section.ts +20 -12
- package/src/settings/preferences-dialog.ts +17 -7
- package/src/settings/preferences-keymap.ts +7 -5
- package/src/settings/preferences-sections.ts +11 -5
- package/src/settings/project-sections.ts +28 -11
- package/src/settings/schema-field-ui.ts +12 -1
- package/src/settings/section-registry.ts +116 -11
- package/src/settings/settings-dialog.ts +192 -0
- package/src/settings/settings-document.ts +186 -166
- package/src/shell/tree.ts +6 -5
- package/src/shell.ts +536 -477
- package/src/site-context.ts +101 -32
- package/src/state.ts +68 -57
- package/src/store.ts +54 -34
- package/src/studio.ts +219 -116
- package/src/style/live-preview.ts +1 -1
- package/src/style/project-styles.ts +40 -7
- 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/token-ref.ts +5 -4
- package/src/style/variables-focus.ts +61 -0
- package/src/style/variables-view.ts +235 -0
- package/src/surfaces/about.ts +18 -19
- package/src/surfaces/add-new.json +1482 -0
- package/src/surfaces/add-new.ts +325 -0
- package/src/surfaces/add-repo.ts +17 -19
- package/src/surfaces/ai-chat.ts +33 -38
- package/src/surfaces/ai-credentials-form.ts +6 -16
- package/src/surfaces/ai-managed-connect.ts +3 -4
- package/src/surfaces/ai-model-picker.ts +3 -5
- package/src/surfaces/block-action-bar.ts +22 -11
- package/src/surfaces/boot-failure.json +4 -3
- package/src/surfaces/boot-failure.ts +4 -5
- package/src/surfaces/bottom-dock.json +1 -1
- package/src/surfaces/bottom-dock.ts +9 -18
- package/src/surfaces/canvas-stage.json +30 -19
- package/src/surfaces/canvas-stage.ts +17 -16
- package/src/surfaces/cf-account-picker.ts +17 -18
- 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 +145 -105
- package/src/surfaces/convert-repeater.ts +17 -19
- package/src/surfaces/data-actions.ts +9 -7
- package/src/surfaces/dialog.ts +26 -28
- package/src/surfaces/diff-toolbar.ts +9 -7
- package/src/surfaces/empty-state.json +1 -1
- package/src/surfaces/empty-state.ts +7 -10
- package/src/surfaces/entry-editor.json +136 -0
- package/src/surfaces/entry-editor.ts +35 -11
- package/src/surfaces/entry-inspector.json +371 -0
- package/src/surfaces/entry-inspector.ts +143 -0
- package/src/surfaces/expression-editor.ts +11 -25
- package/src/surfaces/files-panel.ts +27 -14
- package/src/surfaces/formula-palette.ts +4 -5
- package/src/surfaces/github-auth.ts +16 -20
- package/src/surfaces/github-publish.ts +17 -22
- package/src/surfaces/grid-cell.ts +30 -31
- package/src/surfaces/grid-open.ts +10 -14
- package/src/surfaces/grid-panel.ts +13 -9
- package/src/surfaces/grid-replace.ts +13 -13
- package/src/surfaces/grid-views.ts +15 -18
- package/src/surfaces/inspector-dock.json +162 -14
- package/src/surfaces/inspector-dock.ts +59 -31
- package/src/surfaces/jump-bar.ts +5 -6
- package/src/surfaces/jxsuite-update.ts +16 -22
- package/src/surfaces/library-pane.json +670 -437
- package/src/surfaces/library-pane.ts +111 -77
- package/src/surfaces/logic-panel.ts +17 -30
- package/src/surfaces/logic-workspace.ts +13 -15
- package/src/surfaces/media-browser.json +62 -6
- package/src/surfaces/media-browser.ts +26 -11
- package/src/surfaces/media-field.json +1 -1
- package/src/surfaces/media-field.ts +4 -5
- package/src/surfaces/media-library.json +1586 -0
- package/src/surfaces/media-library.ts +282 -0
- package/src/surfaces/media-pane.ts +8 -7
- package/src/surfaces/media-pick-dialog.json +71 -0
- package/src/surfaces/media-pick-dialog.ts +132 -0
- package/src/surfaces/menu.ts +47 -23
- package/src/surfaces/navigator-dock.ts +11 -12
- package/src/surfaces/new-project.ts +27 -26
- package/src/surfaces/pane-context.json +144 -77
- package/src/surfaces/pane-context.ts +44 -25
- package/src/surfaces/pane-grid.ts +15 -10
- package/src/surfaces/panel-activity.ts +5 -6
- package/src/surfaces/panel-data.ts +3 -4
- package/src/surfaces/panel-deploy-checklist.json +12 -6
- package/src/surfaces/panel-deploy-checklist.ts +8 -7
- package/src/surfaces/panel-elements.ts +5 -7
- package/src/surfaces/panel-i18n.ts +5 -7
- package/src/surfaces/panel-imports.ts +6 -13
- package/src/surfaces/panel-outline.ts +25 -19
- package/src/surfaces/panel-page.json +72 -2
- package/src/surfaces/panel-page.ts +49 -25
- package/src/surfaces/panel-problems.ts +5 -7
- package/src/surfaces/panel-signals.json +1 -1
- package/src/surfaces/panel-signals.ts +25 -39
- package/src/surfaces/panel-stylebook-layers.json +71 -204
- package/src/surfaces/panel-stylebook-layers.ts +5 -29
- package/src/surfaces/preferences.json +120 -48
- package/src/surfaces/preferences.ts +29 -11
- package/src/surfaces/progress-modal.ts +15 -9
- package/src/surfaces/properties-panel.json +1 -1
- package/src/surfaces/properties-panel.ts +20 -42
- 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/publish.ts +18 -18
- package/src/surfaces/push-plan.ts +7 -8
- package/src/surfaces/rail.json +1 -159
- package/src/surfaces/rail.ts +22 -79
- package/src/surfaces/reference-field.ts +11 -15
- package/src/surfaces/schema-builder.ts +16 -22
- package/src/surfaces/schema-form.json +10 -2
- package/src/surfaces/schema-form.ts +17 -25
- package/src/surfaces/secret-field.ts +9 -6
- package/src/surfaces/seo.json +1 -1
- package/src/surfaces/seo.ts +21 -15
- package/src/surfaces/settings-contexts.ts +9 -7
- package/src/surfaces/settings-contributed.json +5 -5
- package/src/surfaces/settings-contributed.ts +32 -12
- package/src/surfaces/settings-css-vars.json +44 -36
- package/src/surfaces/settings-css-vars.ts +82 -16
- package/src/surfaces/settings-defs.json +2 -2
- package/src/surfaces/settings-defs.ts +17 -21
- package/src/surfaces/settings-deploy.json +2 -15
- package/src/surfaces/settings-deploy.ts +9 -16
- package/src/surfaces/settings-dialog.json +51 -0
- package/src/surfaces/settings-dialog.ts +169 -0
- package/src/surfaces/settings-extensions.ts +5 -6
- package/src/surfaces/settings-head.ts +33 -39
- package/src/surfaces/settings-locales.ts +8 -20
- package/src/surfaces/settings-overview.json +3 -3
- package/src/surfaces/settings-overview.ts +14 -8
- package/src/surfaces/settings-packages.ts +8 -7
- package/src/surfaces/settings-pane.json +269 -46
- package/src/surfaces/settings-pane.ts +88 -36
- package/src/surfaces/settings-rawjson.ts +5 -6
- package/src/surfaces/shell.json +2 -1
- package/src/surfaces/shell.ts +1 -2
- 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 +42 -9
- package/src/surfaces/statements.ts +13 -18
- package/src/surfaces/statusbar.ts +56 -29
- package/src/surfaces/style-panel.ts +18 -31
- package/src/surfaces/stylebook-chrome.ts +3 -5
- 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/tab-strip.ts +14 -13
- package/src/surfaces/target-line.ts +6 -7
- package/src/surfaces/welcome.ts +6 -8
- 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/patch-ops.ts +4 -3
- package/src/tabs/project-config.ts +32 -21
- package/src/tabs/selection.ts +36 -8
- package/src/tabs/tab.ts +99 -48
- package/src/tabs/transact.ts +98 -53
- package/src/types.ts +53 -43
- package/src/ui/ai-credentials-form.ts +10 -13
- package/src/ui/ai-model-picker.ts +3 -3
- package/src/ui/cf-account-picker.ts +7 -9
- package/src/ui/color-selector.ts +9 -5
- package/src/ui/dynamic-slot.ts +7 -8
- package/src/ui/expression-editor.ts +112 -105
- package/src/ui/form-controls.ts +104 -56
- package/src/ui/formula-catalog.ts +239 -230
- package/src/ui/formula-chips.ts +33 -18
- package/src/ui/layers.ts +57 -31
- package/src/ui/media-picker.ts +300 -47
- package/src/ui/popover-surface.ts +20 -12
- package/src/ui/progress-modal.ts +13 -8
- package/src/ui/regions.ts +14 -12
- package/src/ui/schema-form.ts +372 -97
- package/src/ui/surface.ts +71 -8
- package/src/ui/timing.ts +9 -0
- package/src/ui/value-source.ts +44 -31
- package/src/ui/virtual-window.ts +29 -3
- package/src/utils/base64.ts +6 -4
- package/src/utils/edit-display.ts +366 -111
- package/src/utils/element-selectors.ts +3 -2
- package/src/utils/google-fonts.ts +15 -14
- package/src/utils/inherited-style.ts +18 -20
- package/src/utils/link-target.ts +1 -1
- package/src/utils/local-day.ts +18 -0
- package/src/utils/preview-format.ts +25 -3
- package/src/utils/strip-events.ts +49 -22
- package/src/utils/studio-utils.ts +29 -14
- package/src/view.ts +2 -3
- package/src/workspace/pane-derive.ts +14 -16
- package/src/workspace/session.ts +81 -50
- 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 +165 -47
- package/styles/shell-frame.css +30 -7
- package/styles/shell-frame.json +15 -3
- package/dist/chunks/2020-va2wwra4.js +0 -4
- package/dist/chunks/adapter-f93pafd7.js +0 -4
- package/dist/chunks/cf-account-picker-af1h381v.js +0 -4
- package/dist/chunks/cf-settings-125tdm0w.js +0 -4
- package/dist/chunks/color-area-jqhna8zy.js +0 -4
- package/dist/chunks/color-field-embq5ctg.js +0 -4
- package/dist/chunks/color-fpezvnkt.js +0 -4
- package/dist/chunks/color-slider-1qmw7wqy.js +0 -4
- package/dist/chunks/combobox-773hdzyj.js +0 -4
- package/dist/chunks/components-ax2f1fnn.js +0 -4
- package/dist/chunks/content-source-108aqtk1.js +0 -4
- package/dist/chunks/convert-to-repeater-ry5rmppr.js +0 -4
- package/dist/chunks/dialog-mtm9fq5t.js +0 -4
- package/dist/chunks/editor-pfgdmkb0.js +0 -4
- package/dist/chunks/entry-commands-t0k1q0kx.js +0 -4
- package/dist/chunks/extension-sections-6mwh2hf8.js +0 -4
- package/dist/chunks/file-ops-meej5mqf.js +0 -4
- package/dist/chunks/files-44vp8a2s.js +0 -4
- package/dist/chunks/format-host-7q1petb9.js +0 -4
- package/dist/chunks/fs-events-h2mwnxaz.js +0 -4
- package/dist/chunks/git-panel-zngbymvd.js +0 -4
- package/dist/chunks/grid-view-sx9vynsp.js +0 -51
- package/dist/chunks/icons-p44xhjf0.js +0 -4
- package/dist/chunks/iframe-entry-f7mqjwpm.js +0 -5
- package/dist/chunks/iframe-entry-haw7jkvz.js +0 -5
- package/dist/chunks/iframe-entry-z6qrytv3.js +0 -5
- package/dist/chunks/iframe-host-qk3ycq87.js +0 -4
- package/dist/chunks/index-wkyfjeqz.js +0 -4
- package/dist/chunks/jsonMode-s8kt9dsj.js +0 -13
- package/dist/chunks/jx-validate-psgd7vsx.js +0 -4
- package/dist/chunks/layers-panel-1kq2jyfk.js +0 -4
- package/dist/chunks/layers-xd92fg8d.js +0 -4
- package/dist/chunks/listbox-s8fkmnq8.js +0 -4
- package/dist/chunks/lit-html-ac4cwwr4.js +0 -4
- package/dist/chunks/media-picker-0svzkdyb.js +0 -4
- package/dist/chunks/menu-37d07z9m.js +0 -4
- package/dist/chunks/menu-5c55ea3d.js +0 -4
- package/dist/chunks/monaco-binding-z6r70pdt.js +0 -4
- package/dist/chunks/monaco-buffer-fz6gq5y7.js +0 -4
- package/dist/chunks/monaco-setup-q4axkgj7.js +0 -4
- package/dist/chunks/notify-0xgtn8q1.js +0 -4
- package/dist/chunks/number-field-gw7sq8rn.js +0 -4
- package/dist/chunks/parse-897fvqah.js +0 -4
- package/dist/chunks/platform-v1qctbe6.js +0 -4
- package/dist/chunks/popover-8htra4er.js +0 -4
- package/dist/chunks/publish-panel-ym1fmgq5.js +0 -4
- package/dist/chunks/quick-search-a54e6t5n.js +0 -4
- package/dist/chunks/references-gmqp82fs.js +0 -4
- package/dist/chunks/right-panel-v7t9awbk.js +0 -4
- package/dist/chunks/section-registry-vhyf3zsr.js +0 -4
- package/dist/chunks/select-n3v7gwas.js +0 -4
- package/dist/chunks/split-pff8f3ze.js +0 -4
- package/dist/chunks/studio-0bhx5hz6.js +0 -5
- package/dist/chunks/studio-0k1ddnyy.js +0 -6
- package/dist/chunks/studio-1b04pd0j.js +0 -64
- package/dist/chunks/studio-4dwbj6gb.js +0 -5
- package/dist/chunks/studio-4tanh828.js +0 -5
- package/dist/chunks/studio-55h4mstj.js +0 -4
- package/dist/chunks/studio-5tnvjkz4.js +0 -5
- package/dist/chunks/studio-60dqgb0c.js +0 -5
- package/dist/chunks/studio-61dp09qg.js +0 -9
- package/dist/chunks/studio-63epcrj2.js +0 -5
- package/dist/chunks/studio-74k29dy9.js +0 -5
- package/dist/chunks/studio-7vg6jcd3.js +0 -5
- package/dist/chunks/studio-7zx31knw.js +0 -9
- package/dist/chunks/studio-8bxk97km.js +0 -5
- package/dist/chunks/studio-933e30n4.js +0 -5
- package/dist/chunks/studio-98wnwhbg.js +0 -5
- package/dist/chunks/studio-9mccjwjh.js +0 -14
- package/dist/chunks/studio-a2ke1e4t.js +0 -5
- package/dist/chunks/studio-e3a2a6v3.js +0 -4
- package/dist/chunks/studio-e81q1vb9.js +0 -5
- package/dist/chunks/studio-epgrmqqm.js +0 -5
- package/dist/chunks/studio-ery42sqr.js +0 -4
- package/dist/chunks/studio-g1shz58g.js +0 -5
- package/dist/chunks/studio-gf0fz03c.js +0 -5
- package/dist/chunks/studio-gjtpe62q.js +0 -6
- package/dist/chunks/studio-gkskhg7m.js +0 -5
- package/dist/chunks/studio-gx4dnjzd.js +0 -5
- package/dist/chunks/studio-j03zga3y.js +0 -9
- package/dist/chunks/studio-jhpxeckz.js +0 -5
- package/dist/chunks/studio-k01r7ykp.js +0 -5
- package/dist/chunks/studio-kk7h30ne.js +0 -7
- package/dist/chunks/studio-kt1zqney.js +0 -5
- package/dist/chunks/studio-m3cwhvye.js +0 -5
- package/dist/chunks/studio-mcayt6hz.js +0 -5
- package/dist/chunks/studio-myjcghv3.js +0 -5
- package/dist/chunks/studio-n8bxwc3y.js +0 -4
- package/dist/chunks/studio-ngm8gvpb.js +0 -5
- package/dist/chunks/studio-nj5a01jy.js +0 -928
- package/dist/chunks/studio-pcgz8heb.js +0 -5
- package/dist/chunks/studio-qcsq0t15.js +0 -5
- package/dist/chunks/studio-qkstvve9.js +0 -5
- package/dist/chunks/studio-qv1pwd3c.js +0 -5
- package/dist/chunks/studio-rc6dvxjb.js +0 -7
- package/dist/chunks/studio-s8dmmz66.js +0 -5
- package/dist/chunks/studio-sp5xzbj4.js +0 -6
- package/dist/chunks/studio-szsjbj0g.js +0 -5
- package/dist/chunks/studio-t1xzawhr.js +0 -16
- package/dist/chunks/studio-tdcprbqb.js +0 -5
- package/dist/chunks/studio-vrmcjf9g.js +0 -7
- package/dist/chunks/studio-vyc0b4he.js +0 -10
- package/dist/chunks/studio-w0cgf6jg.js +0 -5
- package/dist/chunks/studio-w3hskzqk.js +0 -5
- package/dist/chunks/studio-xgrgcdyh.js +0 -9
- package/dist/chunks/studio-xz2yxfcb.js +0 -5
- package/dist/chunks/studio-y6n42tgs.js +0 -5
- package/dist/chunks/studio-yb560vxr.js +0 -5
- package/dist/chunks/studio-yn9f8vtx.js +0 -5
- package/dist/chunks/studio-yw05w8f0.js +0 -7
- package/dist/chunks/studio-z16sgavc.js +0 -5
- package/dist/chunks/studio-zey7zsdw.js +0 -12
- package/dist/chunks/studio-zyqn40w4.js +0 -5
- package/dist/chunks/swatch-group-8qh9a3bm.js +0 -4
- package/dist/chunks/tabs-jwthg40w.js +0 -4
- package/dist/chunks/textfield-spy3hc77.js +0 -4
- package/dist/chunks/toast-4d35zd64.js +0 -4
- package/dist/chunks/toast-host-8sjmfed3.js +0 -4
- package/dist/chunks/tooltip-fd6g9xy3.js +0 -4
- package/dist/chunks/tree-h19v1jfz.js +0 -4
- package/dist/chunks/tsMode-2frah6h1.js +0 -14
- package/dist/chunks/workspace-zt81g1ms.js +0 -4
- package/dist/chunks/ws-client-n2bh4hkf.js +0 -4
- package/src/panels/frontmatter-panel.ts +0 -701
- package/src/panels/git-panel.ts +0 -1120
- package/src/surfaces/doc-header.json +0 -776
- package/src/surfaces/doc-header.ts +0 -231
- package/src/surfaces/git-panel.json +0 -1880
- package/src/surfaces/git-panel.ts +0 -272
package/src/surfaces/rail.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://jxsuite.com/schema/v1",
|
|
3
3
|
"$id": "StudioRail",
|
|
4
|
-
"$description": "The Navigator rail: a rendering of the panel registry. The adapter hands in `groups`, every rail-able panel grouped by level with its selected state and badge
|
|
4
|
+
"$description": "The Navigator rail: a rendering of the panel registry. The adapter hands in `groups`, every rail-able panel grouped by level with its selected state and badge. Nothing here is a list of panels. Each button prints its record's short `railLabel` under the glyph, falling back to `title`, and carries the full `title` as its accessible name and tooltip: the visible words lead the name a reader hears (WCAG 2.5.3), and the tooltip restores what a short label leaves out. The rail has no foot: the gear lives in the top bar, because the rail is drawn only in the Design workspace, and the Library button left with the Content workspace that replaces it.",
|
|
5
5
|
"tagName": "div",
|
|
6
6
|
"attributes": {
|
|
7
7
|
"part": "rail"
|
|
@@ -23,12 +23,6 @@
|
|
|
23
23
|
"$description": "The element draws the hairline and announces it; what the rail owns is where it sits. The rule outranks `jx-divider`'s own margin by one element in the selector, which is the sanctioned way a host retunes a kit element (ui.md §3.2) and the reason the divider's spacing is on its HOST rather than on the rule inside it.",
|
|
24
24
|
"margin": "var(--jx-space-3) var(--jx-space-4)"
|
|
25
25
|
},
|
|
26
|
-
"& > [part=\"foot\"]": {
|
|
27
|
-
"marginTop": "auto",
|
|
28
|
-
"display": "flex",
|
|
29
|
-
"flexDirection": "column",
|
|
30
|
-
"padding": "var(--jx-space-3) 0"
|
|
31
|
-
},
|
|
32
26
|
"& jx-action-button": {
|
|
33
27
|
"width": "100%"
|
|
34
28
|
},
|
|
@@ -44,11 +38,6 @@
|
|
|
44
38
|
"background": "transparent",
|
|
45
39
|
"color": "var(--jx-fg)",
|
|
46
40
|
"opacity": "1"
|
|
47
|
-
},
|
|
48
|
-
"& jx-action-button[data-expanded] > [part=\"control\"]": {
|
|
49
|
-
"background": "var(--jx-hover-bg)",
|
|
50
|
-
"color": "var(--jx-fg)",
|
|
51
|
-
"opacity": "1"
|
|
52
41
|
}
|
|
53
42
|
},
|
|
54
43
|
"children": [
|
|
@@ -156,153 +145,6 @@
|
|
|
156
145
|
}
|
|
157
146
|
}
|
|
158
147
|
]
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
"tagName": "div",
|
|
162
|
-
"attributes": {
|
|
163
|
-
"part": "foot"
|
|
164
|
-
},
|
|
165
|
-
"children": [
|
|
166
|
-
{
|
|
167
|
-
"$switch": {
|
|
168
|
-
"$ref": "#/state/libraryVisible"
|
|
169
|
-
},
|
|
170
|
-
"tagName": "div",
|
|
171
|
-
"attributes": {
|
|
172
|
-
"part": "foot-library"
|
|
173
|
-
},
|
|
174
|
-
"cases": {
|
|
175
|
-
"true": {
|
|
176
|
-
"tagName": "jx-action-button",
|
|
177
|
-
"$props": {
|
|
178
|
-
"label": "Library",
|
|
179
|
-
"hint": "Library",
|
|
180
|
-
"icon": "books",
|
|
181
|
-
"stacked": true,
|
|
182
|
-
"selected": {
|
|
183
|
-
"$ref": "#/state/libraryOpen"
|
|
184
|
-
}
|
|
185
|
-
},
|
|
186
|
-
"attributes": {
|
|
187
|
-
"data-rail-action": "library.open"
|
|
188
|
-
},
|
|
189
|
-
"onclick": {
|
|
190
|
-
"$prototype": "Function",
|
|
191
|
-
"body": [
|
|
192
|
-
{
|
|
193
|
-
"operator": "call",
|
|
194
|
-
"target": {
|
|
195
|
-
"$ref": "#/state/openLibrary"
|
|
196
|
-
},
|
|
197
|
-
"value": []
|
|
198
|
-
}
|
|
199
|
-
]
|
|
200
|
-
},
|
|
201
|
-
"children": [
|
|
202
|
-
{
|
|
203
|
-
"tagName": "span",
|
|
204
|
-
"textContent": "Library"
|
|
205
|
-
}
|
|
206
|
-
]
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
"tagName": "div",
|
|
212
|
-
"attributes": {
|
|
213
|
-
"part": "foot-settings"
|
|
214
|
-
},
|
|
215
|
-
"$switch": {
|
|
216
|
-
"$ref": "#/state/settingsVisible"
|
|
217
|
-
},
|
|
218
|
-
"cases": {
|
|
219
|
-
"true": {
|
|
220
|
-
"tagName": "jx-action-button",
|
|
221
|
-
"$props": {
|
|
222
|
-
"label": "Settings",
|
|
223
|
-
"hint": "Settings",
|
|
224
|
-
"icon": "gear",
|
|
225
|
-
"stacked": true,
|
|
226
|
-
"haspopup": "menu",
|
|
227
|
-
"expanded": {
|
|
228
|
-
"$ref": "#/state/settingsOpen"
|
|
229
|
-
}
|
|
230
|
-
},
|
|
231
|
-
"attributes": {
|
|
232
|
-
"data-rail-menu": "settings",
|
|
233
|
-
"data-expanded": "${state.settingsOpen ? '' : null}"
|
|
234
|
-
},
|
|
235
|
-
"onclick": {
|
|
236
|
-
"$prototype": "Function",
|
|
237
|
-
"body": [
|
|
238
|
-
{
|
|
239
|
-
"operator": "call",
|
|
240
|
-
"target": {
|
|
241
|
-
"$ref": "#/state/openSettings"
|
|
242
|
-
},
|
|
243
|
-
"value": [
|
|
244
|
-
{
|
|
245
|
-
"$ref": "event#/currentTarget"
|
|
246
|
-
}
|
|
247
|
-
]
|
|
248
|
-
}
|
|
249
|
-
]
|
|
250
|
-
},
|
|
251
|
-
"onkeydown": {
|
|
252
|
-
"$prototype": "Function",
|
|
253
|
-
"body": [
|
|
254
|
-
{
|
|
255
|
-
"$switch": {
|
|
256
|
-
"$ref": "event#/key"
|
|
257
|
-
},
|
|
258
|
-
"cases": {
|
|
259
|
-
"ArrowUp": [
|
|
260
|
-
{
|
|
261
|
-
"operator": "call",
|
|
262
|
-
"target": {
|
|
263
|
-
"$ref": "#/state/openSettings"
|
|
264
|
-
},
|
|
265
|
-
"value": [
|
|
266
|
-
{
|
|
267
|
-
"$ref": "event#/currentTarget"
|
|
268
|
-
}
|
|
269
|
-
]
|
|
270
|
-
},
|
|
271
|
-
{
|
|
272
|
-
"preventDefault": true
|
|
273
|
-
}
|
|
274
|
-
],
|
|
275
|
-
"ArrowDown": [
|
|
276
|
-
{
|
|
277
|
-
"operator": "call",
|
|
278
|
-
"target": {
|
|
279
|
-
"$ref": "#/state/openSettings"
|
|
280
|
-
},
|
|
281
|
-
"value": [
|
|
282
|
-
{
|
|
283
|
-
"$ref": "event#/currentTarget"
|
|
284
|
-
}
|
|
285
|
-
]
|
|
286
|
-
},
|
|
287
|
-
{
|
|
288
|
-
"preventDefault": true
|
|
289
|
-
}
|
|
290
|
-
]
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
]
|
|
294
|
-
},
|
|
295
|
-
"children": [
|
|
296
|
-
{
|
|
297
|
-
"tagName": "span",
|
|
298
|
-
"textContent": "Settings"
|
|
299
|
-
}
|
|
300
|
-
]
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
],
|
|
305
|
-
"$description": "The two rail buttons that open no Navigator panel: the Library, which is a canvas tab rather than a panel and so sits with the other exception, above the gear."
|
|
306
148
|
}
|
|
307
149
|
]
|
|
308
150
|
}
|
package/src/surfaces/rail.ts
CHANGED
|
@@ -11,46 +11,34 @@
|
|
|
11
11
|
* whose only name is a hover tooltip is the accessibility failure studio-ui-guidelines.md §12.3
|
|
12
12
|
* names — and `aria-pressed` states the toggle-focus semantics honestly: re-picking the open panel
|
|
13
13
|
* collapses its dock, which is a two-state control, not a one-way selection. The label is the
|
|
14
|
-
* record's `railLabel` when it declares one (Source Control's
|
|
15
|
-
*
|
|
14
|
+
* record's `railLabel` when it declares one (none does today: Source Control's "Source" left the
|
|
15
|
+
* rail with it), and the full `title` stays the accessible name and the tooltip.
|
|
16
16
|
*
|
|
17
|
-
* The foot
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* in step. With no registry, or one that declares nothing for either, the foot is empty.
|
|
17
|
+
* **The rail has no foot.** It is drawn only in the Design workspace (the frame hides its column
|
|
18
|
+
* everywhere else, `shell.ts`'s `applyDockLayout`), so a control every workspace needs cannot live
|
|
19
|
+
* here: the ⚙ Settings menu moved to the top bar, and the Library button left with the Library,
|
|
20
|
+
* which the Content workspace replaces.
|
|
22
21
|
*
|
|
23
|
-
* What this adapter owns is the projection and the
|
|
24
|
-
*
|
|
25
|
-
*
|
|
22
|
+
* What this adapter owns is the projection and the one decision: which panel a button toggles. The
|
|
23
|
+
* scope is reactive, so the surface follows `shell` through one effect that recomputes the
|
|
24
|
+
* projection; nothing repaints.
|
|
26
25
|
*
|
|
27
26
|
* @docs studio/interface
|
|
28
27
|
*/
|
|
29
28
|
import { activityBar } from "../store";
|
|
30
29
|
import { effect, effectScope, reactive } from "../reactivity";
|
|
31
30
|
import { requireNavigatorPanelId, shell, toggleActivityTab } from "../shell";
|
|
32
|
-
import { refreshGitStatus } from "../
|
|
31
|
+
import { refreshGitStatus } from "../publish/source-control";
|
|
33
32
|
import { panelContext, railGroups } from "../panels/panel-registry";
|
|
34
33
|
import { registerNavigatorPanels } from "../panels/navigator-panels";
|
|
35
|
-
import { activeRegistry } from "../commands/active-registry";
|
|
36
|
-
import { runActiveReported } from "../commands/run-reported";
|
|
37
|
-
import {
|
|
38
|
-
dismissSettingsMenu,
|
|
39
|
-
isSettingsMenuOpen,
|
|
40
|
-
openSettingsMenu,
|
|
41
|
-
SETTINGS_MENU_PLACEMENT,
|
|
42
|
-
} from "../panels/settings-menu";
|
|
43
34
|
import { mountSurface, registerSurface } from "../ui/surface";
|
|
44
|
-
import { libraryTabId } from "../browse/library-source";
|
|
45
|
-
import { activeTab } from "../workspace/workspace";
|
|
46
35
|
import railDoc from "./rail.json";
|
|
47
36
|
|
|
48
37
|
import type { EffectScope } from "@vue/reactivity";
|
|
49
|
-
import type { JxDocument } from "@jxsuite/schema/types";
|
|
50
38
|
import type { PanelRecord } from "../panels/panel-registry";
|
|
51
39
|
import type { SurfaceHandle } from "../ui/surface";
|
|
52
40
|
|
|
53
|
-
registerSurface("rail", railDoc
|
|
41
|
+
registerSurface("rail", railDoc);
|
|
54
42
|
|
|
55
43
|
/** One rail button, as the surface reads it. */
|
|
56
44
|
interface RailButton {
|
|
@@ -72,15 +60,9 @@ interface RailGroupProjection {
|
|
|
72
60
|
panels: RailButton[];
|
|
73
61
|
}
|
|
74
62
|
|
|
75
|
-
interface RailScope
|
|
63
|
+
interface RailScope {
|
|
76
64
|
groups: RailGroupProjection[];
|
|
77
|
-
settingsVisible: boolean;
|
|
78
|
-
settingsOpen: boolean;
|
|
79
|
-
libraryVisible: boolean;
|
|
80
|
-
libraryOpen: boolean;
|
|
81
|
-
openLibrary: () => void;
|
|
82
65
|
toggle: (id: string) => void;
|
|
83
|
-
openSettings: (anchor: unknown) => void;
|
|
84
66
|
}
|
|
85
67
|
|
|
86
68
|
let _scope: EffectScope | null = null;
|
|
@@ -112,14 +94,9 @@ export function toggleRailPanel(panel: PanelRecord): void {
|
|
|
112
94
|
}
|
|
113
95
|
|
|
114
96
|
/** The rail, as the surface reads it, from the registry and the shell as they stand now. */
|
|
115
|
-
function project(): {
|
|
116
|
-
groups: RailGroupProjection[];
|
|
117
|
-
settingsVisible: boolean;
|
|
118
|
-
libraryVisible: boolean;
|
|
119
|
-
libraryOpen: boolean;
|
|
120
|
-
} {
|
|
97
|
+
function project(): RailGroupProjection[] {
|
|
121
98
|
const ctx = panelContext();
|
|
122
|
-
|
|
99
|
+
return railGroups(ctx).map((group, index) => ({
|
|
123
100
|
dividerAbove: index > 0,
|
|
124
101
|
label: group.label,
|
|
125
102
|
level: group.level,
|
|
@@ -132,41 +109,12 @@ function project(): {
|
|
|
132
109
|
title: panel.title,
|
|
133
110
|
})),
|
|
134
111
|
}));
|
|
135
|
-
const registry = activeRegistry();
|
|
136
|
-
const settingsVisible =
|
|
137
|
-
registry !== null && registry.forPlacement(SETTINGS_MENU_PLACEMENT).length > 0;
|
|
138
|
-
const libraryVisible =
|
|
139
|
-
registry?.get(LIBRARY_COMMAND) !== undefined && registry.isVisible(LIBRARY_COMMAND);
|
|
140
|
-
const libraryOpen = activeTab.value?.id === libraryTabId();
|
|
141
|
-
return { groups, libraryOpen, libraryVisible, settingsVisible };
|
|
142
112
|
}
|
|
143
113
|
|
|
144
|
-
/** The command the Library button runs: the record decides when it can, and what opening means. */
|
|
145
|
-
const LIBRARY_COMMAND = "library.open";
|
|
146
|
-
|
|
147
114
|
/** The reactive scope the surface reads, made once. */
|
|
148
115
|
function state(): RailScope {
|
|
149
|
-
_state ??= reactive({
|
|
116
|
+
_state ??= reactive<RailScope>({
|
|
150
117
|
groups: [],
|
|
151
|
-
libraryOpen: false,
|
|
152
|
-
libraryVisible: false,
|
|
153
|
-
openLibrary: () => {
|
|
154
|
-
void runActiveReported(LIBRARY_COMMAND, undefined, "Navigator rail");
|
|
155
|
-
},
|
|
156
|
-
openSettings: (anchor: unknown) => {
|
|
157
|
-
if (!(anchor instanceof HTMLElement)) {
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
openSettingsMenu(anchor, {
|
|
161
|
-
rerender: () => {
|
|
162
|
-
if (_state) {
|
|
163
|
-
_state.settingsOpen = isSettingsMenuOpen();
|
|
164
|
-
}
|
|
165
|
-
},
|
|
166
|
-
});
|
|
167
|
-
},
|
|
168
|
-
settingsOpen: false,
|
|
169
|
-
settingsVisible: false,
|
|
170
118
|
toggle: (id: string) => {
|
|
171
119
|
const panel = railGroups(panelContext())
|
|
172
120
|
.flatMap((group) => group.panels)
|
|
@@ -175,19 +123,13 @@ function state(): RailScope {
|
|
|
175
123
|
toggleRailPanel(panel);
|
|
176
124
|
}
|
|
177
125
|
},
|
|
178
|
-
})
|
|
126
|
+
});
|
|
179
127
|
return _state;
|
|
180
128
|
}
|
|
181
129
|
|
|
182
130
|
/** Recompute the projection from the registry and the shell; the surface follows. */
|
|
183
131
|
export function renderActivityBar(): void {
|
|
184
|
-
|
|
185
|
-
const next = project();
|
|
186
|
-
scope.groups = next.groups;
|
|
187
|
-
scope.settingsVisible = next.settingsVisible;
|
|
188
|
-
scope.libraryVisible = next.libraryVisible;
|
|
189
|
-
scope.libraryOpen = next.libraryOpen;
|
|
190
|
-
scope.settingsOpen = isSettingsMenuOpen();
|
|
132
|
+
state().groups = project();
|
|
191
133
|
ensureMounted();
|
|
192
134
|
}
|
|
193
135
|
|
|
@@ -209,9 +151,11 @@ export function mount(): void {
|
|
|
209
151
|
_scope = effectScope();
|
|
210
152
|
_scope.run(() => {
|
|
211
153
|
effect(() => {
|
|
212
|
-
// Source control is PROJECT state, so
|
|
213
|
-
//
|
|
214
|
-
//
|
|
154
|
+
// Source control is PROJECT state, so its status is fetched without reference to any tab.
|
|
155
|
+
// No rail button draws it now; the Command Bar's Publish count does, and this is the fetch
|
|
156
|
+
// That count reads (`ctx.git.dirtyCount`). It needs a status once. A refresh that already
|
|
157
|
+
// Failed must not re-arm this: the effect re-runs on the very state the failure writes, so
|
|
158
|
+
// Retrying here spins.
|
|
215
159
|
const { error, loading, status } = shell.git;
|
|
216
160
|
if (!status && !loading && !error) {
|
|
217
161
|
void refreshGitStatus();
|
|
@@ -222,7 +166,6 @@ export function mount(): void {
|
|
|
222
166
|
}
|
|
223
167
|
|
|
224
168
|
export function unmount(): void {
|
|
225
|
-
dismissSettingsMenu();
|
|
226
169
|
_scope?.stop();
|
|
227
170
|
_scope = null;
|
|
228
171
|
const pending = _mount;
|
|
@@ -25,16 +25,9 @@ import { reactive } from "../reactivity";
|
|
|
25
25
|
import { mountSurface, registerSurface } from "../ui/surface";
|
|
26
26
|
import referenceDoc from "./reference-field.json";
|
|
27
27
|
|
|
28
|
-
import type {
|
|
29
|
-
import type { SurfaceHandle } from "../ui/surface";
|
|
28
|
+
import type { SurfaceHandle, SurfaceOption } from "../ui/surface";
|
|
30
29
|
|
|
31
|
-
registerSurface("reference-field", referenceDoc
|
|
32
|
-
|
|
33
|
-
/** One row of the picker: an entry id, the empty row, or the value that is not on disk. */
|
|
34
|
-
export interface ReferenceChoice {
|
|
35
|
-
value: string;
|
|
36
|
-
label: string;
|
|
37
|
-
}
|
|
30
|
+
registerSurface("reference-field", referenceDoc);
|
|
38
31
|
|
|
39
32
|
/** What the field says right now. Every field is the flow's, never a state it derives. */
|
|
40
33
|
export interface ReferenceFieldView {
|
|
@@ -50,7 +43,7 @@ export interface ReferenceFieldView {
|
|
|
50
43
|
/** The entry id the field holds, as a string. */
|
|
51
44
|
value: string;
|
|
52
45
|
/** The picker's rows, in the order they are offered. Empty on a text field. */
|
|
53
|
-
options:
|
|
46
|
+
options: SurfaceOption[];
|
|
54
47
|
/** True while the read is in flight: the picker is inert and says so in its one row. */
|
|
55
48
|
disabled: boolean;
|
|
56
49
|
/** A sentence under the control. Empty draws none. */
|
|
@@ -82,8 +75,7 @@ export interface ReferenceFieldSurfaceHandle {
|
|
|
82
75
|
dispose: () => void;
|
|
83
76
|
}
|
|
84
77
|
|
|
85
|
-
interface ReferenceScope
|
|
86
|
-
extends Record<string, unknown>, ReferenceFieldView, ReferenceFieldActions {}
|
|
78
|
+
interface ReferenceScope extends ReferenceFieldView, ReferenceFieldActions {}
|
|
87
79
|
|
|
88
80
|
/** The view a freshly mounted surface starts on: a picker that has not been told anything. */
|
|
89
81
|
function emptyView(): ReferenceFieldView {
|
|
@@ -112,7 +104,7 @@ export function mountReferenceFieldSurface(
|
|
|
112
104
|
actions: ReferenceFieldActions,
|
|
113
105
|
): ReferenceFieldSurfaceHandle {
|
|
114
106
|
host.textContent = "";
|
|
115
|
-
const scope = reactive<ReferenceScope>({ ...emptyView(), ...actions })
|
|
107
|
+
const scope: ReferenceScope = reactive<ReferenceScope>({ ...emptyView(), ...actions });
|
|
116
108
|
|
|
117
109
|
/** `null` while a mount is in flight — which is a standing surface, not a missing one. */
|
|
118
110
|
let handle: SurfaceHandle | null = null;
|
|
@@ -121,13 +113,17 @@ export function mountReferenceFieldSurface(
|
|
|
121
113
|
|
|
122
114
|
const mount = (): Promise<HTMLElement> =>
|
|
123
115
|
mountSurface("reference-field", scope, host).then((mounted) => {
|
|
116
|
+
/* SAFETY: `reference-field.json`'s root definition carries `tagName: "div"`, so the runtime
|
|
117
|
+
mounts an HTMLElement; a `Text` root only comes from a document whose root is a bare
|
|
118
|
+
string. */
|
|
119
|
+
const root = mounted.root as HTMLElement;
|
|
124
120
|
mounting = false;
|
|
125
121
|
if (disposed) {
|
|
126
122
|
mounted.dispose();
|
|
127
|
-
return
|
|
123
|
+
return root;
|
|
128
124
|
}
|
|
129
125
|
handle = mounted;
|
|
130
|
-
return
|
|
126
|
+
return root;
|
|
131
127
|
});
|
|
132
128
|
|
|
133
129
|
const ready = mount();
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* Settings › Data Shapes edits the project's `$defs` and this edits a content type's `schema`, and
|
|
20
20
|
* they are the same object drawn with the same six controls per row — so the two documents are the
|
|
21
21
|
* same card inside a different shell, and the views are one set of types. A second declaration of
|
|
22
|
-
* {@link
|
|
22
|
+
* {@link DefsFieldView} would be the point at which the two cards start to drift, one field at a
|
|
23
23
|
* time, with nothing failing.
|
|
24
24
|
*
|
|
25
25
|
* @docs studio/data/tables
|
|
@@ -29,28 +29,18 @@ import { reactive } from "../reactivity";
|
|
|
29
29
|
import { mountSurface, registerSurface } from "../ui/surface";
|
|
30
30
|
import builderDoc from "./schema-builder.json";
|
|
31
31
|
|
|
32
|
-
import type {
|
|
33
|
-
import type {
|
|
34
|
-
import type { DefsChoice, DefsFieldView, NestedFieldView } from "./settings-defs";
|
|
32
|
+
import type { SurfaceHandle, SurfaceOption } from "../ui/surface";
|
|
33
|
+
import type { DefsFieldView } from "./settings-defs";
|
|
35
34
|
|
|
36
|
-
registerSurface("schema-builder", builderDoc
|
|
37
|
-
|
|
38
|
-
/** One row of a picker: a field type, a format, or a reference target. */
|
|
39
|
-
export type SchemaFieldChoice = DefsChoice;
|
|
40
|
-
|
|
41
|
-
/** One field of the object being edited, as the document draws it. */
|
|
42
|
-
export type SchemaFieldView = DefsFieldView;
|
|
43
|
-
|
|
44
|
-
/** One child of an `object` field. It carries its parent — a nested `$map` shadows `$map.item`. */
|
|
45
|
-
export type NestedSchemaFieldView = NestedFieldView;
|
|
35
|
+
registerSurface("schema-builder", builderDoc);
|
|
46
36
|
|
|
47
37
|
/** Everything the document draws, as one value. */
|
|
48
38
|
export interface SchemaBuilderView {
|
|
49
|
-
fields:
|
|
50
|
-
typeOptions:
|
|
51
|
-
formatOptions:
|
|
39
|
+
fields: DefsFieldView[];
|
|
40
|
+
typeOptions: SurfaceOption[];
|
|
41
|
+
formatOptions: SurfaceOption[];
|
|
52
42
|
/** The content types a reference field can point at. Empty draws no target picker. */
|
|
53
|
-
targets:
|
|
43
|
+
targets: SurfaceOption[];
|
|
54
44
|
/** Whether the foot of the list is offering the add button or the add form. */
|
|
55
45
|
addState: "closed" | "open";
|
|
56
46
|
addName: string;
|
|
@@ -94,7 +84,7 @@ export interface SchemaBuilderSurfaceHandle {
|
|
|
94
84
|
dispose: () => void;
|
|
95
85
|
}
|
|
96
86
|
|
|
97
|
-
interface BuilderScope extends
|
|
87
|
+
interface BuilderScope extends SchemaBuilderView, SchemaBuilderActions {}
|
|
98
88
|
|
|
99
89
|
/** The view a freshly mounted surface starts on: no fields, and no add form. */
|
|
100
90
|
function emptyView(): SchemaBuilderView {
|
|
@@ -124,7 +114,7 @@ export function mountSchemaBuilderSurface(
|
|
|
124
114
|
actions: SchemaBuilderActions,
|
|
125
115
|
): SchemaBuilderSurfaceHandle {
|
|
126
116
|
host.textContent = "";
|
|
127
|
-
const scope = reactive<BuilderScope>({ ...emptyView(), ...actions })
|
|
117
|
+
const scope: BuilderScope = reactive<BuilderScope>({ ...emptyView(), ...actions });
|
|
128
118
|
|
|
129
119
|
/** `null` while a mount is in flight — which is a standing surface, not a missing one. */
|
|
130
120
|
let handle: SurfaceHandle | null = null;
|
|
@@ -133,13 +123,17 @@ export function mountSchemaBuilderSurface(
|
|
|
133
123
|
|
|
134
124
|
const mount = (): Promise<HTMLElement> =>
|
|
135
125
|
mountSurface("schema-builder", scope, host).then((mounted) => {
|
|
126
|
+
/* SAFETY: `schema-builder.json`'s root definition carries `tagName: "div"`, so the runtime
|
|
127
|
+
mounts an HTMLElement; a `Text` root only comes from a document whose root is a bare
|
|
128
|
+
string. */
|
|
129
|
+
const root = mounted.root as HTMLElement;
|
|
136
130
|
mounting = false;
|
|
137
131
|
if (disposed) {
|
|
138
132
|
mounted.dispose();
|
|
139
|
-
return
|
|
133
|
+
return root;
|
|
140
134
|
}
|
|
141
135
|
handle = mounted;
|
|
142
|
-
return
|
|
136
|
+
return root;
|
|
143
137
|
});
|
|
144
138
|
|
|
145
139
|
const ready = mount();
|
|
@@ -80,6 +80,11 @@
|
|
|
80
80
|
"gap": "var(--jx-space-1)",
|
|
81
81
|
"minWidth": "0"
|
|
82
82
|
},
|
|
83
|
+
"& [part=\"row\"] > [part=\"cell\"]:only-of-type > *": {
|
|
84
|
+
"$description": "A row of one cell (an item of a list of single values: a category, a picture) gives that cell the row's width, so a list reads as the fields around it do rather than as a column of stubs.",
|
|
85
|
+
"flex": "1",
|
|
86
|
+
"minWidth": "0"
|
|
87
|
+
},
|
|
83
88
|
"& [part=\"row-add\"]": {
|
|
84
89
|
"alignSelf": "flex-start"
|
|
85
90
|
},
|
|
@@ -236,6 +241,9 @@
|
|
|
236
241
|
},
|
|
237
242
|
"multiline": {
|
|
238
243
|
"$ref": "$map/item/multiline"
|
|
244
|
+
},
|
|
245
|
+
"type": {
|
|
246
|
+
"$ref": "$map/item/inputType"
|
|
239
247
|
}
|
|
240
248
|
},
|
|
241
249
|
"oninput": {
|
|
@@ -621,7 +629,7 @@
|
|
|
621
629
|
]
|
|
622
630
|
},
|
|
623
631
|
"rows": {
|
|
624
|
-
"$description": "An array whose items
|
|
632
|
+
"$description": "An array whose items have a declared shape: one row per item, one cell per declared property of an object item, or one cell for a single-value item (a list of categories, a gallery of pictures), with a remove beside each and one add below. The alternative was the raw-JSON editor, which is what an array of anything else still gets: a shape the schema states is a shape the form can draw.",
|
|
625
633
|
"tagName": "span",
|
|
626
634
|
"attributes": {
|
|
627
635
|
"part": "rows",
|
|
@@ -858,7 +866,7 @@
|
|
|
858
866
|
}
|
|
859
867
|
},
|
|
860
868
|
"control": {
|
|
861
|
-
"$description": "A cell a registered control owns
|
|
869
|
+
"$description": "A cell a registered control owns: a relationship to another collection, or a picture (the media field). The document draws the empty host and nothing inside it; `ui/schema-form.ts` mounts the control into it, by the same dispatch a FIELD host gets. An extension's control is its own surface rather than part of this one, and the seam between them is this empty node.",
|
|
862
870
|
"tagName": "span",
|
|
863
871
|
"attributes": {
|
|
864
872
|
"part": "cell-control-host",
|