@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
|
@@ -206,6 +206,21 @@
|
|
|
206
206
|
"flex": "1",
|
|
207
207
|
"color": "var(--fg-dim)",
|
|
208
208
|
"minWidth": "0"
|
|
209
|
+
},
|
|
210
|
+
"& [part=\"appearance\"]": {
|
|
211
|
+
"display": "flex",
|
|
212
|
+
"flexDirection": "column",
|
|
213
|
+
"gap": "var(--jx-space-5)"
|
|
214
|
+
},
|
|
215
|
+
"& [part=\"developer-row\"]": {
|
|
216
|
+
"display": "flex",
|
|
217
|
+
"flexDirection": "column",
|
|
218
|
+
"gap": "var(--jx-space-1)"
|
|
219
|
+
},
|
|
220
|
+
"& [part=\"developer-note\"]": {
|
|
221
|
+
"margin": "0",
|
|
222
|
+
"fontSize": "var(--jx-text-sm)",
|
|
223
|
+
"color": "var(--fg-dim)"
|
|
209
224
|
}
|
|
210
225
|
},
|
|
211
226
|
"children": [
|
|
@@ -295,70 +310,127 @@
|
|
|
295
310
|
"appearance": {
|
|
296
311
|
"tagName": "div",
|
|
297
312
|
"attributes": {
|
|
298
|
-
"part": "
|
|
313
|
+
"part": "appearance"
|
|
299
314
|
},
|
|
300
315
|
"children": [
|
|
301
316
|
{
|
|
302
|
-
"tagName": "
|
|
317
|
+
"tagName": "div",
|
|
303
318
|
"attributes": {
|
|
304
|
-
"part": "theme-
|
|
319
|
+
"part": "theme-row"
|
|
305
320
|
},
|
|
306
|
-
"
|
|
321
|
+
"children": [
|
|
322
|
+
{
|
|
323
|
+
"tagName": "span",
|
|
324
|
+
"attributes": {
|
|
325
|
+
"part": "theme-label"
|
|
326
|
+
},
|
|
327
|
+
"textContent": "Theme"
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"tagName": "jx-action-group",
|
|
331
|
+
"attributes": {
|
|
332
|
+
"part": "themes"
|
|
333
|
+
},
|
|
334
|
+
"$props": {
|
|
335
|
+
"selects": "single",
|
|
336
|
+
"compact": true,
|
|
337
|
+
"label": "Theme"
|
|
338
|
+
},
|
|
339
|
+
"children": [
|
|
340
|
+
{
|
|
341
|
+
"$prototype": "Array",
|
|
342
|
+
"items": {
|
|
343
|
+
"$ref": "#/state/themes"
|
|
344
|
+
},
|
|
345
|
+
"key": {
|
|
346
|
+
"$ref": "$map/item/value"
|
|
347
|
+
},
|
|
348
|
+
"map": {
|
|
349
|
+
"tagName": "jx-action-button",
|
|
350
|
+
"attributes": {
|
|
351
|
+
"part": "theme",
|
|
352
|
+
"data-theme": "${$map.item.value}"
|
|
353
|
+
},
|
|
354
|
+
"$props": {
|
|
355
|
+
"size": "sm",
|
|
356
|
+
"checked": {
|
|
357
|
+
"$ref": "$map/item/checked"
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
"onclick": {
|
|
361
|
+
"$prototype": "Function",
|
|
362
|
+
"body": [
|
|
363
|
+
{
|
|
364
|
+
"operator": "call",
|
|
365
|
+
"target": {
|
|
366
|
+
"$ref": "#/state/setTheme"
|
|
367
|
+
},
|
|
368
|
+
"value": [
|
|
369
|
+
{
|
|
370
|
+
"$ref": "$map/item/value"
|
|
371
|
+
}
|
|
372
|
+
]
|
|
373
|
+
}
|
|
374
|
+
]
|
|
375
|
+
},
|
|
376
|
+
"children": [
|
|
377
|
+
{
|
|
378
|
+
"tagName": "span",
|
|
379
|
+
"textContent": "${$map.item.label}"
|
|
380
|
+
}
|
|
381
|
+
]
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
]
|
|
385
|
+
}
|
|
386
|
+
]
|
|
307
387
|
},
|
|
308
388
|
{
|
|
309
|
-
"tagName": "
|
|
389
|
+
"tagName": "div",
|
|
310
390
|
"attributes": {
|
|
311
|
-
"part": "
|
|
312
|
-
},
|
|
313
|
-
"$props": {
|
|
314
|
-
"selects": "single",
|
|
315
|
-
"compact": true,
|
|
316
|
-
"label": "Theme"
|
|
391
|
+
"part": "developer-row"
|
|
317
392
|
},
|
|
318
393
|
"children": [
|
|
319
394
|
{
|
|
320
|
-
"
|
|
321
|
-
"
|
|
322
|
-
"
|
|
395
|
+
"tagName": "jx-switch",
|
|
396
|
+
"attributes": {
|
|
397
|
+
"part": "developer-panels"
|
|
323
398
|
},
|
|
324
|
-
"
|
|
325
|
-
"
|
|
399
|
+
"$props": {
|
|
400
|
+
"size": "sm",
|
|
401
|
+
"checked": {
|
|
402
|
+
"$ref": "#/state/developerPanels"
|
|
403
|
+
}
|
|
326
404
|
},
|
|
327
|
-
"
|
|
328
|
-
"
|
|
329
|
-
"
|
|
330
|
-
"part": "theme",
|
|
331
|
-
"data-theme": "${$map.item.value}"
|
|
332
|
-
},
|
|
333
|
-
"$props": {
|
|
334
|
-
"size": "sm",
|
|
335
|
-
"checked": {
|
|
336
|
-
"$ref": "$map/item/checked"
|
|
337
|
-
}
|
|
338
|
-
},
|
|
339
|
-
"onclick": {
|
|
340
|
-
"$prototype": "Function",
|
|
341
|
-
"body": [
|
|
342
|
-
{
|
|
343
|
-
"operator": "call",
|
|
344
|
-
"target": {
|
|
345
|
-
"$ref": "#/state/setTheme"
|
|
346
|
-
},
|
|
347
|
-
"value": [
|
|
348
|
-
{
|
|
349
|
-
"$ref": "$map/item/value"
|
|
350
|
-
}
|
|
351
|
-
]
|
|
352
|
-
}
|
|
353
|
-
]
|
|
354
|
-
},
|
|
355
|
-
"children": [
|
|
405
|
+
"onchange": {
|
|
406
|
+
"$prototype": "Function",
|
|
407
|
+
"body": [
|
|
356
408
|
{
|
|
357
|
-
"
|
|
358
|
-
"
|
|
409
|
+
"operator": "call",
|
|
410
|
+
"target": {
|
|
411
|
+
"$ref": "#/state/setDeveloperPanels"
|
|
412
|
+
},
|
|
413
|
+
"value": [
|
|
414
|
+
{
|
|
415
|
+
"$ref": "event#/target/checked"
|
|
416
|
+
}
|
|
417
|
+
]
|
|
359
418
|
}
|
|
360
419
|
]
|
|
361
|
-
}
|
|
420
|
+
},
|
|
421
|
+
"children": [
|
|
422
|
+
{
|
|
423
|
+
"tagName": "span",
|
|
424
|
+
"textContent": "Show developer panels"
|
|
425
|
+
}
|
|
426
|
+
]
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
"tagName": "p",
|
|
430
|
+
"attributes": {
|
|
431
|
+
"part": "developer-note"
|
|
432
|
+
},
|
|
433
|
+
"textContent": "Puts Files and Packages on the Design rail. Both stay in the command palette either way."
|
|
362
434
|
}
|
|
363
435
|
]
|
|
364
436
|
}
|
|
@@ -27,17 +27,18 @@
|
|
|
27
27
|
* @docs studio/interface/preferences
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
|
+
import { isString } from "@jxsuite/schema/guards";
|
|
30
31
|
import { reactive } from "../reactivity";
|
|
31
32
|
import { mountSurface, registerSurface } from "../ui/surface";
|
|
32
33
|
import { overlayRegion, REGION_ATTR } from "../ui/regions";
|
|
33
|
-
import { close
|
|
34
|
+
import { close, showModal } from "@jxsuite/ui/behaviors/dialog";
|
|
34
35
|
import { whenReady } from "./dialog";
|
|
35
36
|
import preferencesDoc from "./preferences.json";
|
|
36
|
-
import type { JxElement
|
|
37
|
+
import type { JxElement } from "@jxsuite/schema/types";
|
|
37
38
|
import type { JxScope } from "@jxsuite/runtime/types";
|
|
38
39
|
import type { SurfaceHandle } from "../ui/surface";
|
|
39
40
|
|
|
40
|
-
registerSurface("preferences", preferencesDoc
|
|
41
|
+
registerSurface("preferences", preferencesDoc);
|
|
41
42
|
|
|
42
43
|
/** One row of the section list. `current` is the string `aria-current` takes. */
|
|
43
44
|
export interface PreferencesSectionRow {
|
|
@@ -110,6 +111,8 @@ export interface PreferencesView {
|
|
|
110
111
|
sectionTitle: string;
|
|
111
112
|
sectionBlurb: string;
|
|
112
113
|
themes: PreferencesThemeRow[];
|
|
114
|
+
/** Whether **Show developer panels** is on: Files and Packages on the Design rail (§5.1). */
|
|
115
|
+
developerPanels: boolean;
|
|
113
116
|
accounts: PreferencesAccountRow[];
|
|
114
117
|
/** Why there is no keyboard sheet at all. Empty means there is one. */
|
|
115
118
|
keyboardEmpty: string;
|
|
@@ -137,6 +140,8 @@ export interface PreferencesSurfaceOptions {
|
|
|
137
140
|
view: PreferencesView;
|
|
138
141
|
onSelectSection: (id: string) => void;
|
|
139
142
|
onSetTheme: (value: string) => void;
|
|
143
|
+
/** The **Show developer panels** switch moved. */
|
|
144
|
+
onSetDeveloperPanels: (show: boolean) => void;
|
|
140
145
|
/** One account button was pressed, named by its `"<account>/<action>"` key. */
|
|
141
146
|
onAccountAction: (key: string) => void;
|
|
142
147
|
onKeyQuery: (value: string) => void;
|
|
@@ -173,9 +178,10 @@ interface PreferencesFlags {
|
|
|
173
178
|
hasConflict: boolean;
|
|
174
179
|
}
|
|
175
180
|
|
|
176
|
-
interface PreferencesScope extends
|
|
181
|
+
interface PreferencesScope extends PreferencesView, PreferencesFlags {
|
|
177
182
|
selectSection: (id: string) => void;
|
|
178
183
|
setTheme: (value: string) => void;
|
|
184
|
+
setDeveloperPanels: (show: boolean) => void;
|
|
179
185
|
runAccountAction: (key: string) => void;
|
|
180
186
|
setKeyQuery: (value: string) => void;
|
|
181
187
|
toggleKeystroke: () => void;
|
|
@@ -199,8 +205,8 @@ function derive(view: PreferencesView): PreferencesView & PreferencesFlags {
|
|
|
199
205
|
|
|
200
206
|
/** The `part` a node's definition carries, or `""` for a text node or an unmarked element. */
|
|
201
207
|
function partOf(def: JxElement | string): string {
|
|
202
|
-
const part =
|
|
203
|
-
return
|
|
208
|
+
const part = isString(def) ? undefined : def.attributes?.["part"];
|
|
209
|
+
return isString(part) ? part : "";
|
|
204
210
|
}
|
|
205
211
|
|
|
206
212
|
/**
|
|
@@ -234,10 +240,16 @@ export function openPreferencesSurface(
|
|
|
234
240
|
closed = true;
|
|
235
241
|
options.onClosed();
|
|
236
242
|
};
|
|
243
|
+
/* Read through a call, not the bare binding: `close()` can run while the mount is awaiting the
|
|
244
|
+
element, and a direct `closed` test after that `await` would be narrowed to the value the test
|
|
245
|
+
before it saw. */
|
|
246
|
+
const isClosed = (): boolean => closed;
|
|
237
247
|
|
|
238
|
-
const scope = reactive({
|
|
248
|
+
const scope: PreferencesScope = reactive<PreferencesScope>({
|
|
239
249
|
...derive(options.view),
|
|
240
250
|
capture: (_scope: JxScope, event: Event) => {
|
|
251
|
+
/* SAFETY: `preferences.json` names `capture` in exactly one place, the keys sheet's
|
|
252
|
+
`onkeydown`, so the event the runtime hands it is always the platform's `KeyboardEvent`. */
|
|
241
253
|
options.onCaptureKey(event as KeyboardEvent);
|
|
242
254
|
},
|
|
243
255
|
closed: finish,
|
|
@@ -258,6 +270,9 @@ export function openPreferencesSurface(
|
|
|
258
270
|
scope.keyQuery = value;
|
|
259
271
|
options.onKeyQuery(value);
|
|
260
272
|
},
|
|
273
|
+
setDeveloperPanels: (show: boolean) => {
|
|
274
|
+
options.onSetDeveloperPanels(show);
|
|
275
|
+
},
|
|
261
276
|
setTheme: (value: string) => {
|
|
262
277
|
options.onSetTheme(value);
|
|
263
278
|
},
|
|
@@ -270,7 +285,7 @@ export function openPreferencesSurface(
|
|
|
270
285
|
toggleRebind: (commandId: string) => {
|
|
271
286
|
options.onToggleRebind(commandId);
|
|
272
287
|
},
|
|
273
|
-
})
|
|
288
|
+
});
|
|
274
289
|
|
|
275
290
|
let mounted: SurfaceHandle | null = null;
|
|
276
291
|
const ready = mountSurface("preferences", scope, slot, {
|
|
@@ -287,13 +302,16 @@ export function openPreferencesSurface(
|
|
|
287
302
|
},
|
|
288
303
|
}).then(async (surface) => {
|
|
289
304
|
mounted = surface;
|
|
305
|
+
/* SAFETY: `preferences.json`'s root definition carries `tagName: "jx-dialog"`, so the runtime
|
|
306
|
+
mounts an HTMLElement; a `Text` root only comes from a document whose root is a bare
|
|
307
|
+
string. */
|
|
290
308
|
const element = surface.root as HTMLElement;
|
|
291
|
-
if (
|
|
309
|
+
if (isClosed()) {
|
|
292
310
|
surface.dispose();
|
|
293
311
|
return element;
|
|
294
312
|
}
|
|
295
313
|
await whenReady(element);
|
|
296
|
-
if (
|
|
314
|
+
if (isClosed()) {
|
|
297
315
|
return element;
|
|
298
316
|
}
|
|
299
317
|
/* The region goes on the platform's own `<dialog>`, which is the one element here that HAS a
|
|
@@ -323,7 +341,7 @@ export function openPreferencesSurface(
|
|
|
323
341
|
const element = mounted?.root;
|
|
324
342
|
if (element instanceof HTMLElement) {
|
|
325
343
|
// The platform's close first, so focus goes back where it came from; then the document.
|
|
326
|
-
|
|
344
|
+
close(element);
|
|
327
345
|
}
|
|
328
346
|
// A mount that has not landed yet is disposed by `ready` when it does — `finish` tells it so.
|
|
329
347
|
mounted?.dispose();
|
|
@@ -21,13 +21,12 @@
|
|
|
21
21
|
import { reactive } from "../reactivity";
|
|
22
22
|
import { mountSurface, registerSurface } from "../ui/surface";
|
|
23
23
|
import { overlayRegion, REGION_ATTR } from "../ui/regions";
|
|
24
|
-
import { close
|
|
24
|
+
import { close, showModal } from "@jxsuite/ui/behaviors/dialog";
|
|
25
25
|
import { whenReady } from "./dialog";
|
|
26
26
|
import progressDoc from "./progress-modal.json";
|
|
27
27
|
import type { SurfaceHandle } from "../ui/surface";
|
|
28
|
-
import type { JxDocument } from "@jxsuite/schema/types";
|
|
29
28
|
|
|
30
|
-
registerSurface("progress-modal", progressDoc
|
|
29
|
+
registerSurface("progress-modal", progressDoc);
|
|
31
30
|
|
|
32
31
|
/** What the flow hands the surface. Everything is a projection; the flow keeps the operation. */
|
|
33
32
|
export interface ProgressSurfaceOptions {
|
|
@@ -64,7 +63,7 @@ export interface ProgressSurfaceHandle {
|
|
|
64
63
|
close: () => void;
|
|
65
64
|
}
|
|
66
65
|
|
|
67
|
-
interface ProgressScope
|
|
66
|
+
interface ProgressScope {
|
|
68
67
|
title: string;
|
|
69
68
|
status: string;
|
|
70
69
|
/**
|
|
@@ -91,7 +90,11 @@ export function openProgressSurface(options: ProgressSurfaceOptions): ProgressSu
|
|
|
91
90
|
options.layer.append(slot);
|
|
92
91
|
|
|
93
92
|
let closed = false;
|
|
94
|
-
|
|
93
|
+
/* Read through a call, not the bare binding: `close()` can run while the mount is awaiting the
|
|
94
|
+
element, and a direct `closed` test after that `await` would be narrowed to the value the test
|
|
95
|
+
before it saw. */
|
|
96
|
+
const isClosed = (): boolean => closed;
|
|
97
|
+
const scope: ProgressScope = reactive<ProgressScope>({
|
|
95
98
|
background: () => {
|
|
96
99
|
options.onBackground();
|
|
97
100
|
},
|
|
@@ -104,12 +107,15 @@ export function openProgressSurface(options: ProgressSurfaceOptions): ProgressSu
|
|
|
104
107
|
},
|
|
105
108
|
status: options.status,
|
|
106
109
|
title: options.title,
|
|
107
|
-
})
|
|
110
|
+
});
|
|
108
111
|
|
|
109
112
|
let mounted: SurfaceHandle | null = null;
|
|
110
113
|
const ready = mountSurface("progress-modal", scope, slot).then(async (surface) => {
|
|
114
|
+
/* SAFETY: `progress-modal.json`'s root definition carries `tagName: "jx-dialog"`, so the
|
|
115
|
+
runtime mounts an HTMLElement; a `Text` root only comes from a document whose root is a
|
|
116
|
+
bare string. */
|
|
111
117
|
const element = surface.root as HTMLElement;
|
|
112
|
-
if (
|
|
118
|
+
if (isClosed()) {
|
|
113
119
|
surface.dispose();
|
|
114
120
|
return element;
|
|
115
121
|
}
|
|
@@ -118,7 +124,7 @@ export function openProgressSurface(options: ProgressSurfaceOptions): ProgressSu
|
|
|
118
124
|
DOCUMENT rendered, while the element's OWN template is one `connectedCallback` later.
|
|
119
125
|
`showModal` in between finds no `<dialog>` to open, and the surface never shows. */
|
|
120
126
|
await whenReady(element);
|
|
121
|
-
if (
|
|
127
|
+
if (isClosed()) {
|
|
122
128
|
return element;
|
|
123
129
|
}
|
|
124
130
|
showModal(element);
|
|
@@ -134,7 +140,7 @@ export function openProgressSurface(options: ProgressSurfaceOptions): ProgressSu
|
|
|
134
140
|
const element = mounted?.root;
|
|
135
141
|
if (element instanceof HTMLElement) {
|
|
136
142
|
// The platform's close first, so focus goes back where it came from; then the document.
|
|
137
|
-
|
|
143
|
+
close(element);
|
|
138
144
|
}
|
|
139
145
|
// A mount that has not landed yet is disposed by `ready` when it does.
|
|
140
146
|
mounted?.dispose();
|
|
@@ -31,14 +31,16 @@
|
|
|
31
31
|
* @docs studio/design/properties
|
|
32
32
|
*/
|
|
33
33
|
|
|
34
|
+
import { isJsonObject, isString } from "@jxsuite/schema/guards";
|
|
34
35
|
import { reactive } from "../reactivity";
|
|
35
36
|
import { mountSurface, registerSurface } from "../ui/surface";
|
|
36
37
|
import propertiesPanelDoc from "./properties-panel.json";
|
|
37
|
-
import type { SurfaceHandle } from "../ui/surface";
|
|
38
|
+
import type { SurfaceAction, SurfaceHandle, SurfaceOption } from "../ui/surface";
|
|
39
|
+
import type { ColorTokenView } from "../ui/color-selector";
|
|
38
40
|
import type { JxScope } from "@jxsuite/runtime/types";
|
|
39
|
-
import type {
|
|
41
|
+
import type { JxElement } from "@jxsuite/schema/types";
|
|
40
42
|
|
|
41
|
-
registerSurface("properties-panel", propertiesPanelDoc
|
|
43
|
+
registerSurface("properties-panel", propertiesPanelDoc);
|
|
42
44
|
|
|
43
45
|
/** Which control a `field` row draws. The flow picks it; the document switches on it. */
|
|
44
46
|
export type ContentFieldKind =
|
|
@@ -52,25 +54,7 @@ export type ContentFieldKind =
|
|
|
52
54
|
| "control";
|
|
53
55
|
|
|
54
56
|
/** What a row is drawn as. Everything a section body can hold is one of these. */
|
|
55
|
-
export type
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* One colour the project has named, as a `color` row's palette draws it.
|
|
59
|
-
*
|
|
60
|
-
* The same three fields the Style tab projects, and for the same reason: `value` is the reference a
|
|
61
|
-
* click commits, `color` is only how it reads on screen, and `label` is what a reader hears.
|
|
62
|
-
*/
|
|
63
|
-
export interface ContentTokenView extends Record<string, unknown> {
|
|
64
|
-
value: string;
|
|
65
|
-
color: string;
|
|
66
|
-
label: string;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/** A choice a select offers, in the shape the kit's select reads. */
|
|
70
|
-
export interface ContentOption {
|
|
71
|
-
value: string;
|
|
72
|
-
label: string;
|
|
73
|
-
}
|
|
57
|
+
export type ContentRowVariant = "field" | "kv" | "note" | "action" | "file";
|
|
74
58
|
|
|
75
59
|
/**
|
|
76
60
|
* One row of a section — every field already decided, whatever shape it is.
|
|
@@ -81,7 +65,7 @@ export interface ContentOption {
|
|
|
81
65
|
export interface ContentRowView {
|
|
82
66
|
/** The row's reconcile identity AND what every callback hands back. */
|
|
83
67
|
key: string;
|
|
84
|
-
|
|
68
|
+
variant: ContentRowVariant;
|
|
85
69
|
/** `data-prop` — what `inspector/field:<prop>` addresses. Every shape carries one. */
|
|
86
70
|
prop: string;
|
|
87
71
|
/** The visible label of a `field`; the accessible name of a `kv` pair's controls. */
|
|
@@ -99,9 +83,9 @@ export interface ContentRowView {
|
|
|
99
83
|
/** Draw the text control monospaced — a template, a pointer, a code-ish value. */
|
|
100
84
|
mono: boolean;
|
|
101
85
|
/** Choices for `select`; the routes or the popover ids for a `link`'s value half. */
|
|
102
|
-
options:
|
|
86
|
+
options: SurfaceOption[];
|
|
103
87
|
/** The palette a `color` row offers inside its picker, and whether it has one to offer. */
|
|
104
|
-
tokens:
|
|
88
|
+
tokens: ColorTokenView[];
|
|
105
89
|
hasTokens: boolean;
|
|
106
90
|
/**
|
|
107
91
|
* The provenance chip's shape: `""` draws nothing (§6.7's `default` state, where absence IS the
|
|
@@ -125,7 +109,7 @@ export interface ContentRowView {
|
|
|
125
109
|
source: string;
|
|
126
110
|
/** A `link` row's kind half: the chosen kind, and the five it chooses between. */
|
|
127
111
|
linkKind: string;
|
|
128
|
-
kindOptions:
|
|
112
|
+
kindOptions: SurfaceOption[];
|
|
129
113
|
/** `route` draws a picker of the site's own routes; `text` draws a field. */
|
|
130
114
|
linkValueKind: string;
|
|
131
115
|
/** A `kv` pair's key cell, and the remove button's accessible name. */
|
|
@@ -151,12 +135,6 @@ export interface ContentSectionView {
|
|
|
151
135
|
rows: ContentRowView[];
|
|
152
136
|
}
|
|
153
137
|
|
|
154
|
-
/** A button an empty state offers — the action that fills the region. */
|
|
155
|
-
export interface ContentEmptyAction {
|
|
156
|
-
id: string;
|
|
157
|
-
label: string;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
138
|
/** Everything the document reads. */
|
|
161
139
|
export interface ContentPanelView {
|
|
162
140
|
/**
|
|
@@ -168,7 +146,7 @@ export interface ContentPanelView {
|
|
|
168
146
|
emptyMessage: string;
|
|
169
147
|
emptyDetail: string;
|
|
170
148
|
hasEmptyDetail: boolean;
|
|
171
|
-
emptyActions:
|
|
149
|
+
emptyActions: SurfaceAction[];
|
|
172
150
|
hasEmptyActions: boolean;
|
|
173
151
|
/** The layout card: the tag clicked, its class, the file it came from. */
|
|
174
152
|
layoutTag: string;
|
|
@@ -218,8 +196,7 @@ export interface ContentPanelSurface {
|
|
|
218
196
|
/** A control host the document drew, reported as the runtime created it. */
|
|
219
197
|
export type ContentControlSink = (key: string, host: HTMLElement) => void;
|
|
220
198
|
|
|
221
|
-
interface ContentPanelScope
|
|
222
|
-
extends Record<string, unknown>, ContentPanelView, ContentPanelActions {}
|
|
199
|
+
interface ContentPanelScope extends ContentPanelView, ContentPanelActions {}
|
|
223
200
|
|
|
224
201
|
/** The scope's starting shape, before the first projection lands on it. */
|
|
225
202
|
export function emptyContentView(): ContentPanelView {
|
|
@@ -267,15 +244,16 @@ function controlKeyOf(part: string, state: JxScope | undefined): string {
|
|
|
267
244
|
if (part !== "control-host") {
|
|
268
245
|
return "";
|
|
269
246
|
}
|
|
270
|
-
const
|
|
271
|
-
const
|
|
272
|
-
|
|
247
|
+
const map = state?.["$map"];
|
|
248
|
+
const item = isJsonObject(map) ? map["item"] : undefined;
|
|
249
|
+
const key = isJsonObject(item) ? item["key"] : undefined;
|
|
250
|
+
return isString(key) ? key : "";
|
|
273
251
|
}
|
|
274
252
|
|
|
275
253
|
/** A node definition's `part`, as written in the document. */
|
|
276
254
|
function partOf(def: JxElement | string): string {
|
|
277
|
-
const part =
|
|
278
|
-
return
|
|
255
|
+
const part = isString(def) ? undefined : def.attributes?.["part"];
|
|
256
|
+
return isString(part) ? part : "";
|
|
279
257
|
}
|
|
280
258
|
|
|
281
259
|
/**
|
|
@@ -296,10 +274,10 @@ export function mountContentSurface(
|
|
|
296
274
|
actions: ContentPanelActions,
|
|
297
275
|
onControlHost: ContentControlSink,
|
|
298
276
|
): ContentPanelSurface {
|
|
299
|
-
const scope = reactive<ContentPanelScope>({
|
|
277
|
+
const scope: ContentPanelScope = reactive<ContentPanelScope>({
|
|
300
278
|
...emptyContentView(),
|
|
301
279
|
...actions,
|
|
302
|
-
})
|
|
280
|
+
});
|
|
303
281
|
project(scope, values);
|
|
304
282
|
|
|
305
283
|
let mounted: SurfaceHandle | null = null;
|