@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
|
@@ -29,14 +29,15 @@
|
|
|
29
29
|
* @docs extending/ui-kit
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
|
+
import { isJsonObject, isString } from "@jxsuite/schema/guards";
|
|
32
33
|
import { reactive } from "../reactivity";
|
|
33
34
|
import { mountSurface, registerSurface } from "../ui/surface";
|
|
34
35
|
import schemaFormDoc from "./schema-form.json";
|
|
35
|
-
import type { SurfaceHandle } from "../ui/surface";
|
|
36
|
+
import type { KeyedLabel, SurfaceHandle, SurfaceOption } from "../ui/surface";
|
|
36
37
|
import type { JxScope } from "@jxsuite/runtime/types";
|
|
37
|
-
import type {
|
|
38
|
+
import type { JxElement } from "@jxsuite/schema/types";
|
|
38
39
|
|
|
39
|
-
registerSurface("schema-form", schemaFormDoc
|
|
40
|
+
registerSurface("schema-form", schemaFormDoc);
|
|
40
41
|
|
|
41
42
|
/** Which of the nine controls a row draws. The flow picks it; the document switches on it. */
|
|
42
43
|
export type SchemaFormFieldKind =
|
|
@@ -50,12 +51,6 @@ export type SchemaFormFieldKind =
|
|
|
50
51
|
| "rows"
|
|
51
52
|
| "control";
|
|
52
53
|
|
|
53
|
-
/** A control a row offers as a closed list, in the shape the kit's select reads. */
|
|
54
|
-
export interface SchemaFormOption {
|
|
55
|
-
value: string;
|
|
56
|
-
label: string;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
54
|
/** One cell of an array-of-objects row: a single declared property of one item. */
|
|
60
55
|
export interface SchemaFormCellView {
|
|
61
56
|
/** `${field}/${row}/${key}` — the cell's reconcile identity, and a control host's id. */
|
|
@@ -70,7 +65,7 @@ export interface SchemaFormCellView {
|
|
|
70
65
|
kind: "text" | "select" | "checkbox" | "number" | "control";
|
|
71
66
|
value: string;
|
|
72
67
|
checked: boolean;
|
|
73
|
-
options:
|
|
68
|
+
options: SurfaceOption[];
|
|
74
69
|
}
|
|
75
70
|
|
|
76
71
|
/** One item of an array-of-objects field. */
|
|
@@ -84,12 +79,6 @@ export interface SchemaFormRowView {
|
|
|
84
79
|
cells: SchemaFormCellView[];
|
|
85
80
|
}
|
|
86
81
|
|
|
87
|
-
/** A read of the shape a JSON field currently holds: `title: string`. */
|
|
88
|
-
export interface SchemaFormChipView {
|
|
89
|
-
key: string;
|
|
90
|
-
label: string;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
82
|
/** One property of the schema, as the document draws it. Every field is already decided. */
|
|
94
83
|
export interface SchemaFormFieldView {
|
|
95
84
|
/** The schema property key: this row's reconcile identity, and what every callback names. */
|
|
@@ -106,7 +95,7 @@ export interface SchemaFormFieldView {
|
|
|
106
95
|
checked: boolean;
|
|
107
96
|
placeholder: string;
|
|
108
97
|
/** Choices for `select`, suggestions for `pointer`. */
|
|
109
|
-
options:
|
|
98
|
+
options: SurfaceOption[];
|
|
110
99
|
/** Whether the pointer rung has anything to suggest; with none it is a field alone. */
|
|
111
100
|
hasOptions: boolean;
|
|
112
101
|
/** Bounds off the property schema, so the control refuses out-of-range input itself. */
|
|
@@ -117,6 +106,8 @@ export interface SchemaFormFieldView {
|
|
|
117
106
|
mono: boolean;
|
|
118
107
|
/** Draw the text control as a text area. */
|
|
119
108
|
multiline: boolean;
|
|
109
|
+
/** The native input type of the text control: `date` for a `format: "date"` field, else `text`. */
|
|
110
|
+
inputType: string;
|
|
120
111
|
/** Why this value is refused (§16.1's inline tier). Empty draws nothing. */
|
|
121
112
|
error: string;
|
|
122
113
|
/** Whether there is a refusal to announce. A document branches on a flag, never on a length. */
|
|
@@ -138,7 +129,7 @@ export interface SchemaFormFieldView {
|
|
|
138
129
|
/** The position permits exactly one rung, so the chip states it and refuses to open. */
|
|
139
130
|
sourceLocked: boolean;
|
|
140
131
|
/** The chips above a JSON field, naming the shape it holds. */
|
|
141
|
-
chips:
|
|
132
|
+
chips: KeyedLabel[];
|
|
142
133
|
hasChips: boolean;
|
|
143
134
|
rows: SchemaFormRowView[];
|
|
144
135
|
/** The add button's accessible name on an array-of-objects field. */
|
|
@@ -179,7 +170,7 @@ export interface SchemaFormSurface {
|
|
|
179
170
|
/** A control host the document drew, reported as the runtime created it. */
|
|
180
171
|
export type ControlHostSink = (id: string, host: HTMLElement) => void;
|
|
181
172
|
|
|
182
|
-
interface SchemaFormScope extends
|
|
173
|
+
interface SchemaFormScope extends SchemaFormView, SchemaFormActions {
|
|
183
174
|
/** The Mixed text placeholder, held in state because the literal is itself a template. */
|
|
184
175
|
templatePlaceholder: string;
|
|
185
176
|
}
|
|
@@ -194,20 +185,21 @@ interface SchemaFormScope extends Record<string, unknown>, SchemaFormView, Schem
|
|
|
194
185
|
* node that needs filling.
|
|
195
186
|
*/
|
|
196
187
|
function controlIdOf(part: string, state: JxScope | undefined): string {
|
|
197
|
-
const
|
|
188
|
+
const map = state?.["$map"];
|
|
189
|
+
const item = isJsonObject(map) && isJsonObject(map["item"]) ? map["item"] : undefined;
|
|
198
190
|
const id =
|
|
199
191
|
part === "control-host"
|
|
200
192
|
? item?.["key"]
|
|
201
193
|
: part === "cell-control-host"
|
|
202
194
|
? item?.["id"]
|
|
203
195
|
: undefined;
|
|
204
|
-
return
|
|
196
|
+
return isString(id) ? id : "";
|
|
205
197
|
}
|
|
206
198
|
|
|
207
199
|
/** A node definition's `part`, as written in the document. */
|
|
208
200
|
function partOf(def: JxElement | string): string {
|
|
209
|
-
const part =
|
|
210
|
-
return
|
|
201
|
+
const part = isString(def) ? undefined : def.attributes?.["part"];
|
|
202
|
+
return isString(part) ? part : "";
|
|
211
203
|
}
|
|
212
204
|
|
|
213
205
|
/**
|
|
@@ -226,11 +218,11 @@ export function createSchemaFormSurface(
|
|
|
226
218
|
): SchemaFormSurface {
|
|
227
219
|
const host = document.createElement("div");
|
|
228
220
|
host.style.display = "contents";
|
|
229
|
-
const scope = reactive({
|
|
221
|
+
const scope: SchemaFormScope = reactive<SchemaFormScope>({
|
|
230
222
|
...view,
|
|
231
223
|
...actions,
|
|
232
224
|
templatePlaceholder: "${state.…}",
|
|
233
|
-
})
|
|
225
|
+
});
|
|
234
226
|
|
|
235
227
|
/** `null` while a mount is in flight — which is a standing surface, not a missing one. */
|
|
236
228
|
let handle: SurfaceHandle | null = null;
|
|
@@ -28,10 +28,9 @@ import { reactive } from "../reactivity";
|
|
|
28
28
|
import { mountSurface, registerSurface } from "../ui/surface";
|
|
29
29
|
import secretDoc from "./secret-field.json";
|
|
30
30
|
|
|
31
|
-
import type { JxDocument } from "@jxsuite/schema/types";
|
|
32
31
|
import type { SurfaceHandle } from "../ui/surface";
|
|
33
32
|
|
|
34
|
-
registerSurface("secret-field", secretDoc
|
|
33
|
+
registerSurface("secret-field", secretDoc);
|
|
35
34
|
|
|
36
35
|
/** What the field says right now. Every field is the flow's, never a state it derives. */
|
|
37
36
|
export interface SecretFieldView {
|
|
@@ -65,7 +64,7 @@ export interface SecretFieldSurfaceHandle {
|
|
|
65
64
|
dispose: () => void;
|
|
66
65
|
}
|
|
67
66
|
|
|
68
|
-
interface SecretScope extends
|
|
67
|
+
interface SecretScope extends SecretFieldView, SecretFieldActions {
|
|
69
68
|
/**
|
|
70
69
|
* What the field's value is bound to, and the whole of the "never render a secret back" rule.
|
|
71
70
|
*
|
|
@@ -92,7 +91,7 @@ export function mountSecretFieldSurface(
|
|
|
92
91
|
actions: SecretFieldActions,
|
|
93
92
|
): SecretFieldSurfaceHandle {
|
|
94
93
|
host.textContent = "";
|
|
95
|
-
const scope = reactive<SecretScope>({ ...emptyView(), ...actions, shown: "" })
|
|
94
|
+
const scope: SecretScope = reactive<SecretScope>({ ...emptyView(), ...actions, shown: "" });
|
|
96
95
|
|
|
97
96
|
/** `null` while a mount is in flight — which is a standing surface, not a missing one. */
|
|
98
97
|
let handle: SurfaceHandle | null = null;
|
|
@@ -101,13 +100,17 @@ export function mountSecretFieldSurface(
|
|
|
101
100
|
|
|
102
101
|
const mount = (): Promise<HTMLElement> =>
|
|
103
102
|
mountSurface("secret-field", scope, host).then((mounted) => {
|
|
103
|
+
/* SAFETY: `secret-field.json`'s root definition carries `tagName: "div"`, so the runtime
|
|
104
|
+
mounts an HTMLElement; a `Text` root only comes from a document whose root is a bare
|
|
105
|
+
string. */
|
|
106
|
+
const root = mounted.root as HTMLElement;
|
|
104
107
|
mounting = false;
|
|
105
108
|
if (disposed) {
|
|
106
109
|
mounted.dispose();
|
|
107
|
-
return
|
|
110
|
+
return root;
|
|
108
111
|
}
|
|
109
112
|
handle = mounted;
|
|
110
|
-
return
|
|
113
|
+
return root;
|
|
111
114
|
});
|
|
112
115
|
|
|
113
116
|
const ready = mount();
|
package/src/surfaces/seo.json
CHANGED
|
@@ -244,7 +244,7 @@
|
|
|
244
244
|
"color": "var(--warning)"
|
|
245
245
|
},
|
|
246
246
|
"& [part=\"empty\"]": {
|
|
247
|
-
"$description": "A fully-described page says so rather than printing an empty list.
|
|
247
|
+
"$description": "A fully-described page says so rather than printing an empty list.",
|
|
248
248
|
"margin": "0",
|
|
249
249
|
"padding": "0 0 var(--jx-space-3)",
|
|
250
250
|
"fontSize": "var(--jx-text-md)",
|
package/src/surfaces/seo.ts
CHANGED
|
@@ -33,13 +33,12 @@
|
|
|
33
33
|
import { reactive } from "../reactivity";
|
|
34
34
|
import { mountSurface, registerSurface } from "../ui/surface";
|
|
35
35
|
import { overlayRegion, REGION_ATTR } from "../ui/regions";
|
|
36
|
-
import { close
|
|
36
|
+
import { close, showModal } from "@jxsuite/ui/behaviors/dialog";
|
|
37
37
|
import { whenReady } from "./dialog";
|
|
38
38
|
import seoDoc from "./seo.json";
|
|
39
39
|
import type { SurfaceHandle } from "../ui/surface";
|
|
40
|
-
import type { JxDocument } from "@jxsuite/schema/types";
|
|
41
40
|
|
|
42
|
-
registerSurface("seo", seoDoc
|
|
41
|
+
registerSurface("seo", seoDoc);
|
|
43
42
|
|
|
44
43
|
/** How a field's provenance is drawn — §6.7's vocabulary, reduced to three shapes and an absence. */
|
|
45
44
|
export type SeoChipKind = "none" | "dot" | "static" | "link";
|
|
@@ -65,8 +64,9 @@ export interface SeoFieldView {
|
|
|
65
64
|
chipTitle: string;
|
|
66
65
|
}
|
|
67
66
|
|
|
68
|
-
/**
|
|
67
|
+
/** A named thing that is wrong, or absent. Never summed: the list IS the report. */
|
|
69
68
|
export interface SeoWarningView {
|
|
69
|
+
/** Stable id, so a test and a shot name the same warning. */
|
|
70
70
|
id: string;
|
|
71
71
|
/** The head key it is about, so the row can carry it as code. */
|
|
72
72
|
field: string;
|
|
@@ -154,17 +154,17 @@ export interface SeoSurfaceHandle {
|
|
|
154
154
|
type LineState = "text" | "unset";
|
|
155
155
|
|
|
156
156
|
/** One field row with the flags the document branches on. */
|
|
157
|
-
interface SeoFieldRow extends SeoFieldView
|
|
157
|
+
interface SeoFieldRow extends SeoFieldView {
|
|
158
158
|
valueState: LineState;
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
/** One editable row with the flags the document branches on. */
|
|
162
|
-
interface SeoEditRow extends SeoEditRowView
|
|
162
|
+
interface SeoEditRow extends SeoEditRowView {
|
|
163
163
|
hasThumb: boolean;
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
/** One group with its rows already flagged. */
|
|
167
|
-
interface SeoGroupRow
|
|
167
|
+
interface SeoGroupRow {
|
|
168
168
|
key: string;
|
|
169
169
|
title: string;
|
|
170
170
|
note: string;
|
|
@@ -196,12 +196,12 @@ interface SeoFlags {
|
|
|
196
196
|
groups: SeoGroupRow[];
|
|
197
197
|
}
|
|
198
198
|
|
|
199
|
-
interface SeoScope extends
|
|
199
|
+
interface SeoScope extends SeoFlags {
|
|
200
200
|
documentLabel: string;
|
|
201
201
|
edit: (key: string, value: string) => void;
|
|
202
202
|
commit: (key: string, value: string) => void;
|
|
203
203
|
upload: (key: string) => void;
|
|
204
|
-
browse: (key: string, anchor:
|
|
204
|
+
browse: (key: string, anchor: EventTarget | null) => void;
|
|
205
205
|
openDonor: (key: string) => void;
|
|
206
206
|
closed: () => void;
|
|
207
207
|
}
|
|
@@ -268,9 +268,9 @@ export function openSeoSurface(options: SeoSurfaceOptions): SeoSurfaceHandle {
|
|
|
268
268
|
options.onClosed();
|
|
269
269
|
};
|
|
270
270
|
|
|
271
|
-
const scope = reactive({
|
|
271
|
+
const scope: SeoScope = reactive<SeoScope>({
|
|
272
272
|
...derive(options.view),
|
|
273
|
-
browse: (key: string, anchor:
|
|
273
|
+
browse: (key: string, anchor: EventTarget | null) => {
|
|
274
274
|
if (anchor instanceof HTMLElement) {
|
|
275
275
|
options.onBrowse(key, anchor);
|
|
276
276
|
}
|
|
@@ -288,18 +288,24 @@ export function openSeoSurface(options: SeoSurfaceOptions): SeoSurfaceHandle {
|
|
|
288
288
|
upload: (key: string) => {
|
|
289
289
|
options.onUpload(key);
|
|
290
290
|
},
|
|
291
|
-
})
|
|
291
|
+
});
|
|
292
292
|
|
|
293
|
+
/* Read through a call, not the bare binding: `close()` can run while the mount is awaiting the
|
|
294
|
+
element, and a direct `closed` test after that `await` would be narrowed to the value the test
|
|
295
|
+
before it saw. */
|
|
296
|
+
const isClosed = (): boolean => closed;
|
|
293
297
|
let mounted: SurfaceHandle | null = null;
|
|
294
298
|
const ready = mountSurface("seo", scope, slot).then(async (surface) => {
|
|
295
299
|
mounted = surface;
|
|
300
|
+
/* SAFETY: `seo.json`'s root definition carries `tagName: "jx-dialog"`, so the runtime mounts an
|
|
301
|
+
HTMLElement; a `Text` root only comes from a document whose root is a bare string. */
|
|
296
302
|
const element = surface.root as HTMLElement;
|
|
297
|
-
if (
|
|
303
|
+
if (isClosed()) {
|
|
298
304
|
surface.dispose();
|
|
299
305
|
return element;
|
|
300
306
|
}
|
|
301
307
|
await whenReady(element);
|
|
302
|
-
if (
|
|
308
|
+
if (isClosed()) {
|
|
303
309
|
return element;
|
|
304
310
|
}
|
|
305
311
|
const box = element.querySelector<HTMLElement>('dialog[part="dialog"]') ?? element;
|
|
@@ -317,7 +323,7 @@ export function openSeoSurface(options: SeoSurfaceOptions): SeoSurfaceHandle {
|
|
|
317
323
|
const element = mounted?.root;
|
|
318
324
|
if (element instanceof HTMLElement) {
|
|
319
325
|
// The platform's close first, so focus goes back where it came from; then the document.
|
|
320
|
-
|
|
326
|
+
close(element);
|
|
321
327
|
}
|
|
322
328
|
// A mount that has not landed yet is disposed by `ready` when it does — `finish` tells it so.
|
|
323
329
|
mounted?.dispose();
|
|
@@ -22,10 +22,9 @@ import { reactive } from "../reactivity";
|
|
|
22
22
|
import { mountSurface, registerSurface } from "../ui/surface";
|
|
23
23
|
import contextsDoc from "./settings-contexts.json";
|
|
24
24
|
|
|
25
|
-
import type { JxDocument } from "@jxsuite/schema/types";
|
|
26
25
|
import type { SurfaceHandle } from "../ui/surface";
|
|
27
26
|
|
|
28
|
-
registerSurface("settings-contexts", contextsDoc
|
|
27
|
+
registerSurface("settings-contexts", contextsDoc);
|
|
29
28
|
|
|
30
29
|
/** One `$media` row, as the document draws it. */
|
|
31
30
|
export interface ContextRowView {
|
|
@@ -111,7 +110,7 @@ export interface ContextsSurfaceHandle {
|
|
|
111
110
|
* would be a second place to get it wrong. The refusal lines need none — `invalid` already says
|
|
112
111
|
* which control the message belongs to.
|
|
113
112
|
*/
|
|
114
|
-
interface ContextsScope extends
|
|
113
|
+
interface ContextsScope extends ContextsView, ContextsActions {
|
|
115
114
|
hasSectionError: boolean;
|
|
116
115
|
hasNotice: boolean;
|
|
117
116
|
}
|
|
@@ -141,7 +140,7 @@ export function mountContextsSurface(
|
|
|
141
140
|
actions: ContextsActions,
|
|
142
141
|
): ContextsSurfaceHandle {
|
|
143
142
|
host.textContent = "";
|
|
144
|
-
const scope = reactive<ContextsScope>({
|
|
143
|
+
const scope: ContextsScope = reactive<ContextsScope>({
|
|
145
144
|
...emptyView(),
|
|
146
145
|
add: actions.add,
|
|
147
146
|
hasNotice: false,
|
|
@@ -151,17 +150,20 @@ export function mountContextsSurface(
|
|
|
151
150
|
setBase: actions.setBase,
|
|
152
151
|
setQuery: actions.setQuery,
|
|
153
152
|
setScheme: actions.setScheme,
|
|
154
|
-
})
|
|
153
|
+
});
|
|
155
154
|
|
|
156
155
|
let mounted: SurfaceHandle | null = null;
|
|
157
156
|
let disposed = false;
|
|
158
157
|
const ready = mountSurface("settings-contexts", scope, host).then((surface) => {
|
|
158
|
+
/* SAFETY: `settings-contexts.json`'s root definition carries `tagName: "div"`, so the runtime
|
|
159
|
+
mounts an HTMLElement; a `Text` root only comes from a document whose root is a bare string. */
|
|
160
|
+
const root = surface.root as HTMLElement;
|
|
159
161
|
if (disposed) {
|
|
160
162
|
surface.dispose();
|
|
161
|
-
return
|
|
163
|
+
return root;
|
|
162
164
|
}
|
|
163
165
|
mounted = surface;
|
|
164
|
-
return
|
|
166
|
+
return root;
|
|
165
167
|
});
|
|
166
168
|
|
|
167
169
|
return {
|
|
@@ -214,7 +214,7 @@
|
|
|
214
214
|
"part": "new-open"
|
|
215
215
|
},
|
|
216
216
|
"$props": {
|
|
217
|
-
"label": "
|
|
217
|
+
"label": "${state.newLabel}",
|
|
218
218
|
"icon": "plus",
|
|
219
219
|
"quiet": true,
|
|
220
220
|
"size": "sm"
|
|
@@ -234,7 +234,7 @@
|
|
|
234
234
|
"children": [
|
|
235
235
|
{
|
|
236
236
|
"tagName": "span",
|
|
237
|
-
"textContent": "
|
|
237
|
+
"textContent": "${state.newLabel}"
|
|
238
238
|
}
|
|
239
239
|
]
|
|
240
240
|
},
|
|
@@ -250,8 +250,8 @@
|
|
|
250
250
|
"part": "new-field"
|
|
251
251
|
},
|
|
252
252
|
"$props": {
|
|
253
|
-
"label": "
|
|
254
|
-
"placeholder": "
|
|
253
|
+
"label": "${state.newFieldLabel}",
|
|
254
|
+
"placeholder": "${state.newPlaceholder}",
|
|
255
255
|
"size": "sm",
|
|
256
256
|
"value": {
|
|
257
257
|
"$ref": "#/state/newName"
|
|
@@ -361,7 +361,7 @@
|
|
|
361
361
|
"attributes": {
|
|
362
362
|
"part": "empty"
|
|
363
363
|
},
|
|
364
|
-
"textContent": "
|
|
364
|
+
"textContent": "${state.emptyText}"
|
|
365
365
|
},
|
|
366
366
|
"editing": {
|
|
367
367
|
"tagName": "div",
|
|
@@ -26,21 +26,22 @@
|
|
|
26
26
|
* @docs studio/projects/settings
|
|
27
27
|
*/
|
|
28
28
|
|
|
29
|
+
import { isString } from "@jxsuite/schema/guards";
|
|
29
30
|
import { reactive } from "../reactivity";
|
|
30
31
|
import { mountSurface, registerSurface } from "../ui/surface";
|
|
31
32
|
import contributedDoc from "./settings-contributed.json";
|
|
32
33
|
|
|
33
|
-
import type { JxDocument } from "@jxsuite/schema/types";
|
|
34
34
|
import type { SurfaceHandle } from "../ui/surface";
|
|
35
|
+
import type { JxElement } from "@jxsuite/schema/types";
|
|
35
36
|
|
|
36
|
-
registerSurface("settings-contributed", contributedDoc
|
|
37
|
+
registerSurface("settings-contributed", contributedDoc);
|
|
37
38
|
|
|
38
39
|
/** One entry key in a map-layout section's left column. */
|
|
39
40
|
export interface ContributedEntryView {
|
|
40
41
|
/** The key in the section's map on disk — the row's identity and its `data-entry`. */
|
|
41
42
|
key: string;
|
|
42
43
|
selected: boolean;
|
|
43
|
-
/** `
|
|
44
|
+
/** `overlay.dialog:settings/entry:<key>`, so a shot can name the row without a selector. */
|
|
44
45
|
region: string;
|
|
45
46
|
}
|
|
46
47
|
|
|
@@ -60,8 +61,16 @@ export interface ContributedView {
|
|
|
60
61
|
editorState: "empty" | "editing";
|
|
61
62
|
/** What the rename field holds — the key on disk, or what the reader has just typed. */
|
|
62
63
|
entryName: string;
|
|
63
|
-
/** `
|
|
64
|
+
/** `overlay.dialog:settings/editor`. */
|
|
64
65
|
editorRegion: string;
|
|
66
|
+
/** The new-entry button: "New content type", or "New entry" when the section names none. */
|
|
67
|
+
newLabel: string;
|
|
68
|
+
/** The new-entry field's accessible label. */
|
|
69
|
+
newFieldLabel: string;
|
|
70
|
+
/** The new-entry field's placeholder, a slug of the noun. */
|
|
71
|
+
newPlaceholder: string;
|
|
72
|
+
/** What the right column says while nothing is selected. */
|
|
73
|
+
emptyText: string;
|
|
65
74
|
}
|
|
66
75
|
|
|
67
76
|
/** What the reader may do here. Each one is a decision the section makes. */
|
|
@@ -101,7 +110,7 @@ export interface ContributedSurfaceHandle {
|
|
|
101
110
|
dispose: () => void;
|
|
102
111
|
}
|
|
103
112
|
|
|
104
|
-
interface ContributedScope extends
|
|
113
|
+
interface ContributedScope extends ContributedView, ContributedActions {}
|
|
105
114
|
|
|
106
115
|
/** The view a freshly mounted surface starts on: a form layout with nothing in it. */
|
|
107
116
|
function emptyView(): ContributedView {
|
|
@@ -115,14 +124,17 @@ function emptyView(): ContributedView {
|
|
|
115
124
|
newName: "",
|
|
116
125
|
newState: "closed",
|
|
117
126
|
title: "",
|
|
127
|
+
emptyText: "",
|
|
128
|
+
newFieldLabel: "",
|
|
129
|
+
newLabel: "",
|
|
130
|
+
newPlaceholder: "",
|
|
118
131
|
};
|
|
119
132
|
}
|
|
120
133
|
|
|
121
134
|
/** The `part` a node was authored with, or `""` — the only thing this adapter asks about a node. */
|
|
122
|
-
function partOf(def:
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
return typeof part === "string" ? part : "";
|
|
135
|
+
function partOf(def: JxElement | string): string {
|
|
136
|
+
const part = isString(def) ? undefined : def.attributes?.["part"];
|
|
137
|
+
return isString(part) ? part : "";
|
|
126
138
|
}
|
|
127
139
|
|
|
128
140
|
/**
|
|
@@ -139,7 +151,7 @@ export function mountContributedSurface(
|
|
|
139
151
|
islands: ContributedIslands,
|
|
140
152
|
): ContributedSurfaceHandle {
|
|
141
153
|
host.textContent = "";
|
|
142
|
-
const scope = reactive<ContributedScope>({ ...emptyView(), ...actions })
|
|
154
|
+
const scope: ContributedScope = reactive<ContributedScope>({ ...emptyView(), ...actions });
|
|
143
155
|
|
|
144
156
|
let mounted: SurfaceHandle | null = null;
|
|
145
157
|
let disposed = false;
|
|
@@ -160,12 +172,16 @@ export function mountContributedSurface(
|
|
|
160
172
|
}
|
|
161
173
|
},
|
|
162
174
|
}).then((surface) => {
|
|
175
|
+
/* SAFETY: `settings-contributed.json`'s root definition carries `tagName: "section"`, so the
|
|
176
|
+
runtime mounts an HTMLElement; a `Text` root only comes from a document whose root is a bare
|
|
177
|
+
string. */
|
|
178
|
+
const root = surface.root as HTMLElement;
|
|
163
179
|
if (disposed) {
|
|
164
180
|
surface.dispose();
|
|
165
|
-
return
|
|
181
|
+
return root;
|
|
166
182
|
}
|
|
167
183
|
mounted = surface;
|
|
168
|
-
return
|
|
184
|
+
return root;
|
|
169
185
|
});
|
|
170
186
|
|
|
171
187
|
return {
|
|
@@ -195,6 +211,10 @@ export function mountContributedSurface(
|
|
|
195
211
|
scope.newName = view.newName;
|
|
196
212
|
scope.newState = view.newState;
|
|
197
213
|
scope.title = view.title;
|
|
214
|
+
scope.emptyText = view.emptyText;
|
|
215
|
+
scope.newFieldLabel = view.newFieldLabel;
|
|
216
|
+
scope.newLabel = view.newLabel;
|
|
217
|
+
scope.newPlaceholder = view.newPlaceholder;
|
|
198
218
|
},
|
|
199
219
|
};
|
|
200
220
|
}
|