@jxsuite/studio 6.1.0 → 6.1.2
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/dist/chunks/2020-f2gkpy8d.js +4 -0
- package/dist/chunks/{action-group-2mqby73c.js → action-group-4aan7g6g.js} +3 -3
- package/dist/chunks/adapter-4912g339.js +4 -0
- package/dist/chunks/cf-account-picker-wccaenh6.js +4 -0
- package/dist/chunks/cf-settings-br6105tr.js +4 -0
- package/dist/chunks/color-28ksk2qm.js +4 -0
- package/dist/chunks/color-area-0fj8a4ga.js +4 -0
- package/dist/chunks/color-field-xch8kx2g.js +4 -0
- package/dist/chunks/color-slider-jxd8v350.js +4 -0
- package/dist/chunks/combobox-p0efwjke.js +4 -0
- package/dist/chunks/components-db68vsn7.js +4 -0
- package/dist/chunks/content-source-1449qesq.js +4 -0
- package/dist/chunks/convert-to-repeater-5h457egj.js +4 -0
- package/dist/chunks/dialog-c4x05vyx.js +4 -0
- package/dist/chunks/editor-x9jn86a7.js +4 -0
- package/dist/chunks/entry-commands-may24cpt.js +4 -0
- package/dist/chunks/extension-sections-pvr14vxr.js +4 -0
- package/dist/chunks/file-ops-x9v54pcj.js +4 -0
- package/dist/chunks/files-j3knqf0s.js +4 -0
- package/dist/chunks/format-host-tyre2trb.js +4 -0
- package/dist/chunks/fs-events-64ma9htc.js +4 -0
- package/dist/chunks/git-panel-84ps5dex.js +4 -0
- package/dist/chunks/grid-view-d2wq9ezg.js +51 -0
- package/dist/chunks/icons-pnfz478q.js +4 -0
- package/dist/chunks/iframe-entry-fvbk89gm.js +5 -0
- package/dist/chunks/iframe-entry-jdcktez8.js +5 -0
- package/dist/chunks/iframe-entry-x0ygf2yr.js +5 -0
- package/dist/chunks/iframe-entry-zap785cw.js +5 -0
- package/dist/chunks/iframe-host-ck6vejt5.js +4 -0
- package/dist/chunks/index-b8xw3vy9.js +4 -0
- package/dist/chunks/{index-gybvv7a6.js → index-zpjmzqfk.js} +3 -3
- package/dist/chunks/{javascript-rnvdp3k4.js → javascript-m54mnwp6.js} +3 -3
- package/dist/chunks/jsonMode-w15cmrcm.js +13 -0
- package/dist/chunks/jx-validate-at3zn8wa.js +4 -0
- package/dist/chunks/layers-h4xp1pss.js +4 -0
- package/dist/chunks/layers-panel-m5hw1d7g.js +4 -0
- package/dist/chunks/listbox-e74qjyq6.js +4 -0
- package/dist/chunks/lit-html-8t8t3dnr.js +4 -0
- package/dist/chunks/media-picker-2cweexc5.js +4 -0
- package/dist/chunks/menu-n6yzswmy.js +4 -0
- package/dist/chunks/menu-ynw13y0s.js +4 -0
- package/dist/chunks/monaco-binding-7gx83x3r.js +4 -0
- package/dist/chunks/monaco-buffer-qzxn567r.js +4 -0
- package/dist/chunks/monaco-setup-gxf6656g.js +4 -0
- package/dist/chunks/notify-cj5zbrs2.js +4 -0
- package/dist/chunks/number-field-y62xq0ty.js +4 -0
- package/dist/chunks/parse-b7ddhr8m.js +4 -0
- package/dist/chunks/platform-3dfws9js.js +4 -0
- package/dist/chunks/popover-jt2gxmzs.js +4 -0
- package/dist/chunks/publish-panel-1gvxbj21.js +4 -0
- package/dist/chunks/quick-search-0dajrwqg.js +4 -0
- package/dist/chunks/references-49qgt404.js +4 -0
- package/dist/chunks/right-panel-jm1bwe53.js +4 -0
- package/dist/chunks/section-registry-6kwc4fky.js +4 -0
- package/dist/chunks/select-rzds841e.js +4 -0
- package/dist/chunks/split-n2gfpm5m.js +4 -0
- package/dist/chunks/{studio-5g0ag7c0.js → studio-0q988f9w.js} +3 -3
- package/dist/chunks/studio-0rt52vpq.js +5 -0
- package/dist/chunks/studio-18vgbhs5.js +5 -0
- package/dist/chunks/{studio-pxg4ap1e.js → studio-1fxkaaea.js} +4 -4
- package/dist/chunks/studio-24mccdrj.js +5 -0
- package/dist/chunks/studio-2eh507zk.js +9 -0
- package/dist/chunks/studio-2hcbccfv.js +5 -0
- package/dist/chunks/studio-2j1cb95x.js +5 -0
- package/dist/chunks/studio-2jbs3rxv.js +5 -0
- package/dist/chunks/{studio-qbj760tx.js → studio-485046te.js} +7 -7
- package/dist/chunks/studio-4h8k4dw9.js +5 -0
- package/dist/chunks/studio-5f6n18kx.js +5 -0
- package/dist/chunks/studio-5gthpky6.js +5 -0
- package/dist/chunks/studio-5ve6bbep.js +5 -0
- package/dist/chunks/studio-6ep3js6b.js +9 -0
- package/dist/chunks/studio-6wkmf3wz.js +9 -0
- package/dist/chunks/studio-841rf3cg.js +5 -0
- package/dist/chunks/studio-8gmwgheg.js +5 -0
- package/dist/chunks/studio-8qm0ep50.js +5 -0
- package/dist/chunks/{studio-anyrgzvb.js → studio-90pq9km1.js} +4 -4
- package/dist/chunks/studio-924p1tm1.js +6 -0
- package/dist/chunks/{studio-v2bvmbjj.js → studio-a3g98wjr.js} +4 -4
- package/dist/chunks/studio-a3shpz9y.js +5 -0
- package/dist/chunks/studio-amsbaaar.js +6 -0
- package/dist/chunks/studio-at5spjbc.js +7 -0
- package/dist/chunks/studio-b2xv945e.js +5 -0
- package/dist/chunks/studio-bn5nkafw.js +5 -0
- package/dist/chunks/studio-bw6q5xjf.js +9 -0
- package/dist/chunks/studio-c7q0t9x1.js +5 -0
- package/dist/chunks/studio-camnhc96.js +6 -0
- package/dist/chunks/studio-cffqvnzd.js +5 -0
- package/dist/chunks/studio-d81xfh1g.js +5 -0
- package/dist/chunks/studio-dgz8d0c1.js +5 -0
- package/dist/chunks/studio-efvfrsf8.js +5 -0
- package/dist/chunks/studio-er30bpcx.js +5 -0
- package/dist/chunks/studio-ezscgr64.js +5 -0
- package/dist/chunks/studio-ffrrncvz.js +5 -0
- package/dist/chunks/studio-fpphgn8y.js +10 -0
- package/dist/chunks/studio-j1kvhdjk.js +4 -0
- package/dist/chunks/{studio-txjjzrsm.js → studio-j430n16g.js} +5 -5
- package/dist/chunks/studio-jjkg84nj.js +5 -0
- package/dist/chunks/studio-m0q32ars.js +4 -0
- package/dist/chunks/studio-m6bdst11.js +5 -0
- package/dist/chunks/studio-nv2cptd4.js +64 -0
- package/dist/chunks/studio-nwfrc98n.js +5 -0
- package/dist/chunks/studio-p1wgvp7r.js +5 -0
- package/dist/chunks/studio-pag2wncm.js +5 -0
- package/dist/chunks/studio-qvanvzfd.js +5 -0
- package/dist/chunks/studio-qwa64kt7.js +5 -0
- package/dist/chunks/studio-rk1zc4x3.js +928 -0
- package/dist/chunks/studio-se2r3ptc.js +5 -0
- package/dist/chunks/studio-sg2a0dh0.js +5 -0
- package/dist/chunks/studio-tjzjhe68.js +5 -0
- package/dist/chunks/{studio-0x3jyb8r.js → studio-tq0rtfwj.js} +4 -4
- package/dist/chunks/{studio-cpxkgjrj.js → studio-v0jzqdjm.js} +4 -4
- package/dist/chunks/studio-v2w7q8r1.js +7 -0
- package/dist/chunks/studio-v5vjq1h0.js +4 -0
- package/dist/chunks/studio-v8aga3vp.js +14 -0
- package/dist/chunks/studio-vfcdrfmv.js +5 -0
- package/dist/chunks/studio-vmfkgdjf.js +5 -0
- package/dist/chunks/studio-wt1816jj.js +5 -0
- package/dist/chunks/studio-wz73q5kq.js +4 -0
- package/dist/chunks/studio-y04qtxvp.js +7 -0
- package/dist/chunks/studio-y21g8zzg.js +5 -0
- package/dist/chunks/studio-y64hrt8p.js +12 -0
- package/dist/chunks/studio-ynn90f58.js +16 -0
- package/dist/chunks/studio-yxz682sx.js +5 -0
- package/dist/chunks/studio-zp7snvkq.js +5 -0
- package/dist/chunks/studio-zq4z6tm6.js +5 -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-c9fn075p.js +4 -0
- package/dist/chunks/toast-host-ke5z4ng7.js +4 -0
- package/dist/chunks/{toolbar-2nnzqhrj.js → toolbar-44cm5cta.js} +3 -3
- package/dist/chunks/tooltip-5v8ngwj2.js +4 -0
- package/dist/chunks/tree-mdq3v5cw.js +4 -0
- package/dist/chunks/tsMode-sf49ee9x.js +14 -0
- package/dist/chunks/workspace-jtfahpee.js +4 -0
- package/dist/chunks/ws-client-nze0k6mv.js +4 -0
- package/dist/iframe-entry.js +16 -16
- package/dist/manifest.json +63 -63
- package/dist/studio.js +98 -98
- package/dist/workers/ts.worker.js +3 -3
- package/package.json +11 -11
- 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/library-layouts.ts +8 -5
- package/src/browse/library-model.ts +18 -6
- package/src/browse/library-pane.ts +37 -21
- package/src/browse/library-preview.ts +14 -9
- package/src/browse/library-source.ts +1 -1
- package/src/canvas/asset-refs.ts +24 -9
- package/src/canvas/asset-resolve.ts +19 -23
- package/src/canvas/canvas-helpers.ts +7 -6
- package/src/canvas/canvas-live-render.ts +44 -53
- package/src/canvas/canvas-patcher.ts +30 -30
- package/src/canvas/canvas-perf.ts +11 -5
- package/src/canvas/canvas-render.ts +66 -42
- package/src/canvas/canvas-surface.ts +5 -3
- package/src/canvas/canvas-utils.ts +163 -64
- 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 +13 -12
- package/src/canvas/iframe-editable-root.ts +29 -16
- package/src/canvas/iframe-entry.ts +80 -63
- package/src/canvas/iframe-eval.ts +73 -49
- package/src/canvas/iframe-host.ts +203 -118
- package/src/canvas/iframe-inline-edit.ts +69 -32
- package/src/canvas/iframe-insert.ts +5 -4
- package/src/canvas/iframe-interaction.ts +37 -26
- package/src/canvas/iframe-overlay.ts +1 -1
- package/src/canvas/iframe-patch.ts +18 -15
- package/src/canvas/iframe-position.ts +12 -6
- package/src/canvas/iframe-protocol.ts +15 -16
- package/src/canvas/iframe-render.ts +41 -36
- package/src/canvas/iframe-slash.ts +24 -11
- package/src/canvas/iframe-subtree.ts +6 -2
- 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/serialize-scope.ts +13 -5
- package/src/canvas/stage-scrollbar.ts +2 -1
- package/src/canvas/surface-registry.ts +21 -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/budget.ts +3 -3
- package/src/commands/command-args.ts +103 -71
- package/src/commands/context.ts +22 -20
- package/src/commands/defaults.ts +4 -1
- package/src/commands/keymap.ts +47 -43
- package/src/commands/levels.ts +3 -3
- package/src/commands/live-context.ts +10 -8
- package/src/commands/reference.ts +2 -1
- package/src/commands/registry.ts +12 -10
- package/src/commands/run-reported.ts +15 -10
- package/src/component-props.ts +46 -30
- package/src/content/collection-match.ts +5 -4
- package/src/content/draft-state.ts +4 -3
- package/src/content/entry-commands.ts +3 -2
- package/src/content/entry-editor.ts +29 -17
- package/src/content/entry-fields.ts +12 -7
- package/src/content/entry-model.ts +21 -12
- 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 +11 -5
- package/src/editor/convert-to-repeater.ts +34 -22
- package/src/editor/editable-tags.ts +17 -2
- package/src/editor/file-drop-action.ts +21 -22
- package/src/editor/inline-edit-apply.ts +35 -17
- package/src/editor/inline-edit.ts +66 -50
- package/src/editor/inline-format.ts +59 -56
- package/src/editor/inline-link.ts +40 -15
- package/src/editor/insert-zone-action.ts +1 -1
- package/src/editor/merge-tags.ts +58 -19
- package/src/editor/repeater-scope.ts +39 -28
- package/src/editor/shortcuts.ts +87 -47
- package/src/editor/slash-menu.ts +1 -6
- package/src/files/asset-versions.ts +4 -4
- package/src/files/components.ts +15 -10
- package/src/files/elements.ts +5 -6
- package/src/files/file-ops.ts +77 -36
- package/src/files/files.ts +90 -95
- package/src/files/media-meta.ts +2 -1
- package/src/files/media-paths.ts +6 -1
- package/src/files/serialize-document.ts +2 -2
- 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 +76 -50
- package/src/github/github-auth-status.ts +27 -3
- package/src/github/github-auth.ts +19 -9
- package/src/github/github-publish.ts +24 -20
- 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 +20 -22
- package/src/grid/grid-layout.ts +21 -5
- package/src/grid/grid-open.ts +3 -6
- package/src/grid/grid-panel.ts +11 -4
- package/src/grid/grid-source.ts +8 -8
- package/src/grid/grid-view.ts +14 -17
- 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 +25 -24
- package/src/grid/sources/csv-file-source.ts +2 -2
- package/src/grid/tabulator-tables.d.ts +55 -34
- package/src/hosting/stage.ts +7 -7
- package/src/i18n/i18n-commands.ts +1 -2
- package/src/media/media-pane.ts +4 -1
- 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 +17 -9
- package/src/panels/ai-chat/attached-context.ts +13 -7
- 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 +46 -35
- package/src/panels/bottom-dock.ts +5 -3
- package/src/panels/canvas-dnd-bridge.ts +31 -24
- package/src/panels/data-explorer.ts +62 -25
- package/src/panels/data-grid.ts +14 -11
- package/src/panels/dnd.ts +108 -118
- package/src/panels/editors.ts +55 -22
- package/src/panels/elements-panel.ts +10 -3
- package/src/panels/events-panel.ts +84 -69
- package/src/panels/formula-workspace.ts +76 -51
- package/src/panels/frontmatter-fields.ts +24 -19
- package/src/panels/frontmatter-panel.ts +44 -34
- package/src/panels/git-diff-open.ts +4 -4
- package/src/panels/git-panel.ts +49 -61
- package/src/panels/head-panel.ts +131 -111
- package/src/panels/i18n-panel.ts +10 -3
- package/src/panels/imports-panel.ts +23 -47
- package/src/panels/jump-bar.ts +48 -29
- package/src/panels/layers-panel.ts +97 -74
- package/src/panels/left-panel.ts +3 -3
- package/src/panels/pane-context.ts +31 -22
- package/src/panels/pane-grid.ts +49 -20
- package/src/panels/panel-registry.ts +22 -37
- package/src/panels/properties-panel.ts +175 -121
- package/src/panels/quick-search.ts +53 -31
- package/src/panels/right-panel.ts +3 -3
- package/src/panels/seo-modal.ts +13 -17
- package/src/panels/settings-menu.ts +15 -15
- package/src/panels/signals-panel.ts +153 -131
- package/src/panels/statement-editor.ts +230 -140
- package/src/panels/style-panel.ts +254 -216
- package/src/panels/style-utils.ts +114 -51
- package/src/panels/stylebook-doc.ts +57 -54
- package/src/panels/stylebook-layers-panel.ts +9 -9
- package/src/panels/stylebook-panel.ts +13 -17
- package/src/panels/tab-drop.ts +27 -11
- package/src/panels/tab-strip.ts +36 -26
- package/src/platform-errors.ts +57 -43
- package/src/platform.ts +58 -30
- package/src/platforms/cloud.ts +345 -175
- package/src/platforms/default-platform.ts +10 -4
- package/src/platforms/devserver.ts +174 -127
- package/src/platforms/read-batcher.ts +16 -8
- package/src/project-list.ts +2 -1
- package/src/publish/deploy-checklist.ts +8 -2
- package/src/publish/pages-service.ts +28 -13
- package/src/publish/publish-commands.ts +5 -4
- package/src/publish/publish-panel.ts +10 -6
- 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 +58 -31
- package/src/services/cem-export.ts +149 -58
- package/src/services/clock.ts +6 -1
- package/src/services/code-services.ts +37 -31
- 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 +18 -12
- 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 +8 -7
- 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 +79 -60
- package/src/settings/css-vars-editor.ts +37 -16
- package/src/settings/defs-editor.ts +38 -35
- package/src/settings/extension-rows.ts +16 -8
- package/src/settings/extension-sections.ts +23 -13
- package/src/settings/extensions-section.ts +4 -1
- package/src/settings/general-settings.ts +11 -8
- package/src/settings/locales-section.ts +20 -12
- package/src/settings/preferences-dialog.ts +9 -6
- package/src/settings/preferences-keymap.ts +7 -5
- package/src/settings/preferences-sections.ts +11 -5
- package/src/settings/project-sections.ts +1 -1
- package/src/settings/schema-field-ui.ts +9 -0
- package/src/settings/settings-document.ts +5 -5
- package/src/shell/tree.ts +6 -5
- package/src/shell.ts +104 -81
- package/src/site-context.ts +37 -22
- package/src/state.ts +41 -49
- package/src/store.ts +54 -34
- package/src/studio.ts +39 -77
- package/src/style/live-preview.ts +1 -1
- package/src/style/project-styles.ts +6 -7
- package/src/style/token-ref.ts +5 -4
- package/src/surfaces/about.ts +18 -19
- package/src/surfaces/add-repo.ts +17 -19
- package/src/surfaces/ai-chat.ts +31 -36
- 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.ts +4 -5
- package/src/surfaces/bottom-dock.ts +9 -18
- package/src/surfaces/canvas-stage.ts +12 -11
- package/src/surfaces/cf-account-picker.ts +17 -18
- package/src/surfaces/commandbar.ts +14 -9
- 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/doc-header.ts +10 -19
- package/src/surfaces/empty-state.ts +7 -10
- package/src/surfaces/entry-editor.ts +14 -11
- 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/git-panel.ts +7 -15
- 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.ts +13 -12
- package/src/surfaces/jump-bar.ts +5 -6
- package/src/surfaces/jxsuite-update.ts +16 -22
- package/src/surfaces/library-pane.ts +25 -20
- package/src/surfaces/logic-panel.ts +17 -30
- package/src/surfaces/logic-workspace.ts +13 -15
- package/src/surfaces/media-browser.ts +11 -10
- package/src/surfaces/media-field.ts +4 -5
- package/src/surfaces/media-pane.ts +8 -7
- package/src/surfaces/menu.ts +29 -23
- package/src/surfaces/navigator-dock.ts +11 -12
- package/src/surfaces/new-project.ts +27 -26
- package/src/surfaces/pane-context.ts +20 -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.ts +5 -6
- 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.ts +11 -18
- package/src/surfaces/panel-problems.ts +5 -7
- package/src/surfaces/panel-signals.ts +20 -34
- package/src/surfaces/panel-stylebook-layers.ts +5 -8
- package/src/surfaces/preferences.ts +21 -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.ts +18 -18
- package/src/surfaces/push-plan.ts +7 -8
- package/src/surfaces/rail.json +126 -73
- package/src/surfaces/rail.ts +38 -12
- package/src/surfaces/reference-field.ts +11 -15
- package/src/surfaces/schema-builder.ts +16 -22
- package/src/surfaces/schema-form.ts +15 -25
- package/src/surfaces/secret-field.ts +9 -6
- package/src/surfaces/seo.ts +21 -15
- package/src/surfaces/settings-contexts.ts +9 -7
- package/src/surfaces/settings-contributed.ts +14 -10
- package/src/surfaces/settings-css-vars.ts +5 -12
- package/src/surfaces/settings-defs.json +2 -2
- package/src/surfaces/settings-defs.ts +17 -21
- package/src/surfaces/settings-deploy.ts +8 -15
- 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.ts +5 -6
- package/src/surfaces/settings-packages.ts +8 -7
- package/src/surfaces/settings-pane.ts +9 -18
- package/src/surfaces/settings-rawjson.ts +5 -6
- package/src/surfaces/shell.ts +1 -2
- package/src/surfaces/slash-menu.ts +19 -9
- package/src/surfaces/statements.ts +13 -18
- package/src/surfaces/statusbar.ts +17 -14
- package/src/surfaces/style-panel.ts +18 -31
- package/src/surfaces/stylebook-chrome.ts +3 -5
- package/src/surfaces/tab-strip.ts +14 -13
- package/src/surfaces/target-line.ts +6 -7
- package/src/surfaces/welcome.ts +5 -7
- 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 +52 -41
- package/src/tabs/transact.ts +98 -53
- package/src/tabs/typing.ts +31 -0
- package/src/types.ts +32 -17
- 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 +57 -48
- package/src/ui/formula-catalog.ts +239 -230
- package/src/ui/formula-chips.ts +33 -18
- package/src/ui/layers.ts +44 -31
- package/src/ui/media-picker.ts +18 -9
- package/src/ui/popover-surface.ts +20 -12
- package/src/ui/progress-modal.ts +13 -8
- package/src/ui/regions.ts +7 -6
- package/src/ui/schema-form.ts +113 -70
- 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 +3 -2
- package/src/utils/base64.ts +3 -1
- package/src/utils/edit-display.ts +103 -74
- 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/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 +10 -12
- package/src/workspace/session.ts +53 -43
- package/src/workspace/workspace.ts +47 -36
- package/dist/chunks/2020-nkxms0ay.js +0 -4
- package/dist/chunks/adapter-m948ab5f.js +0 -4
- package/dist/chunks/cf-account-picker-n8hr38v7.js +0 -4
- package/dist/chunks/cf-settings-356xdtne.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-yk3t844e.js +0 -4
- package/dist/chunks/content-source-bawmyc09.js +0 -4
- package/dist/chunks/convert-to-repeater-7wns8kf1.js +0 -4
- package/dist/chunks/dialog-mtm9fq5t.js +0 -4
- package/dist/chunks/editor-6sc8nacq.js +0 -4
- package/dist/chunks/entry-commands-8ay9fh81.js +0 -4
- package/dist/chunks/extension-sections-na7rj3nr.js +0 -4
- package/dist/chunks/file-ops-gye0qw56.js +0 -4
- package/dist/chunks/files-dmc2xvcq.js +0 -4
- package/dist/chunks/format-host-t76b53f8.js +0 -4
- package/dist/chunks/fs-events-cg4tpz06.js +0 -4
- package/dist/chunks/git-panel-yef7bshy.js +0 -4
- package/dist/chunks/grid-view-7tt4bxw1.js +0 -51
- package/dist/chunks/icons-qbh8akb1.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-tmz30gfp.js +0 -4
- package/dist/chunks/index-nag78a9h.js +0 -4
- package/dist/chunks/jsonMode-zhwsprqk.js +0 -13
- package/dist/chunks/jx-validate-3gbp5nkn.js +0 -4
- package/dist/chunks/layers-fvz99859.js +0 -4
- package/dist/chunks/layers-panel-gchmbf9p.js +0 -4
- package/dist/chunks/listbox-s8fkmnq8.js +0 -4
- package/dist/chunks/lit-html-9agdspkt.js +0 -4
- package/dist/chunks/media-picker-rhjvyy00.js +0 -4
- package/dist/chunks/menu-2e4y9j7b.js +0 -4
- package/dist/chunks/menu-37d07z9m.js +0 -4
- package/dist/chunks/monaco-binding-2jnhjjvr.js +0 -4
- package/dist/chunks/monaco-buffer-rp21359g.js +0 -4
- package/dist/chunks/monaco-setup-vhh7gayr.js +0 -4
- package/dist/chunks/notify-h3www560.js +0 -4
- package/dist/chunks/number-field-gw7sq8rn.js +0 -4
- package/dist/chunks/parse-897fvqah.js +0 -4
- package/dist/chunks/platform-hz34wcd7.js +0 -4
- package/dist/chunks/popover-8htra4er.js +0 -4
- package/dist/chunks/publish-panel-exsmjzyj.js +0 -4
- package/dist/chunks/quick-search-pgaqeh0m.js +0 -4
- package/dist/chunks/references-2cgdxnb8.js +0 -4
- package/dist/chunks/right-panel-jf856w5w.js +0 -4
- package/dist/chunks/section-registry-jnf8r5gy.js +0 -4
- package/dist/chunks/select-n3v7gwas.js +0 -4
- package/dist/chunks/split-pff8f3ze.js +0 -4
- package/dist/chunks/studio-0f55h9ye.js +0 -5
- package/dist/chunks/studio-0sqdhnew.js +0 -12
- package/dist/chunks/studio-19x1c75w.js +0 -5
- package/dist/chunks/studio-2sqcndak.js +0 -5
- package/dist/chunks/studio-3aey7dd3.js +0 -5
- package/dist/chunks/studio-3bpdkq2s.js +0 -5
- package/dist/chunks/studio-47y6fbpf.js +0 -5
- package/dist/chunks/studio-4m3826v2.js +0 -5
- package/dist/chunks/studio-4nx2dj1g.js +0 -4
- package/dist/chunks/studio-4xv5s47r.js +0 -9
- package/dist/chunks/studio-5g4t8v6w.js +0 -5
- package/dist/chunks/studio-5py436sf.js +0 -5
- package/dist/chunks/studio-77kt594t.js +0 -5
- package/dist/chunks/studio-8f87n763.js +0 -10
- package/dist/chunks/studio-8mb00b84.js +0 -5
- package/dist/chunks/studio-8p51gq2h.js +0 -6
- package/dist/chunks/studio-954ds834.js +0 -5
- package/dist/chunks/studio-9ft45c83.js +0 -9
- package/dist/chunks/studio-a2138x5k.js +0 -7
- package/dist/chunks/studio-a9yzstqj.js +0 -5
- package/dist/chunks/studio-acdksxx6.js +0 -5
- package/dist/chunks/studio-ar8jcf2y.js +0 -5
- package/dist/chunks/studio-bmn4mn9j.js +0 -7
- package/dist/chunks/studio-e7xxa0sj.js +0 -5
- package/dist/chunks/studio-ecaz25vk.js +0 -5
- package/dist/chunks/studio-ery42sqr.js +0 -4
- package/dist/chunks/studio-fzdywr6p.js +0 -9
- package/dist/chunks/studio-g5fmf0c1.js +0 -5
- package/dist/chunks/studio-g7nse7zb.js +0 -5
- package/dist/chunks/studio-geq1ea6k.js +0 -14
- package/dist/chunks/studio-ghkb32r8.js +0 -5
- package/dist/chunks/studio-ghrhy2y7.js +0 -5
- package/dist/chunks/studio-grawhey1.js +0 -5
- package/dist/chunks/studio-h0xgswew.js +0 -5
- package/dist/chunks/studio-h9c4p2tx.js +0 -5
- package/dist/chunks/studio-jyzj5cxs.js +0 -5
- package/dist/chunks/studio-mgx8yhnz.js +0 -64
- package/dist/chunks/studio-mpb04y1d.js +0 -6
- package/dist/chunks/studio-n17mty64.js +0 -5
- package/dist/chunks/studio-nwh2eqsk.js +0 -6
- package/dist/chunks/studio-q1h883bt.js +0 -16
- package/dist/chunks/studio-q4tv82h7.js +0 -9
- package/dist/chunks/studio-qpqa7vk3.js +0 -5
- package/dist/chunks/studio-qqz8e5gk.js +0 -5
- package/dist/chunks/studio-qvasen3f.js +0 -5
- package/dist/chunks/studio-rggdb3hm.js +0 -5
- package/dist/chunks/studio-sghy936h.js +0 -4
- package/dist/chunks/studio-skprc6ef.js +0 -5
- package/dist/chunks/studio-tt2nactf.js +0 -5
- package/dist/chunks/studio-tyasmc39.js +0 -5
- package/dist/chunks/studio-vk9ezads.js +0 -5
- package/dist/chunks/studio-vzacdfsc.js +0 -4
- package/dist/chunks/studio-w4c0xmrw.js +0 -5
- package/dist/chunks/studio-wfjqhhbk.js +0 -5
- package/dist/chunks/studio-wgh5kxpj.js +0 -5
- package/dist/chunks/studio-xasj0796.js +0 -5
- package/dist/chunks/studio-y78s8r2n.js +0 -5
- package/dist/chunks/studio-z8w183sh.js +0 -5
- package/dist/chunks/studio-zscd9ty4.js +0 -928
- package/dist/chunks/studio-zxp13sss.js +0 -7
- package/dist/chunks/studio-zygnmm01.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-gr0m4dzr.js +0 -14
- package/dist/chunks/workspace-m15qtcqp.js +0 -4
- package/dist/chunks/ws-client-nf61frr1.js +0 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Uvt=Object.defineProperty;var Hvt=(d)=>d;function qvt(d,E){this[d]=Hvt.bind(null,E)}var Jvt=(d,E)=>{for(var P in E)Uvt(d,P,{get:E[P],enumerable:!0,configurable:!0,set:qvt.bind(E,P)})};class dFe{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(d){setTimeout(()=>{if(d.stack){if(I8.isErrorNoTelemetry(d))throw new I8(d.message+`
|
|
1
|
+
var Uvt=Object.defineProperty;var Hvt=(d)=>d;function qvt(d,E){this[d]=Hvt.bind(null,E)}var Jvt=(d,E)=>{for(var P in E)Uvt(d,P,{get:E[P],enumerable:!0,configurable:!0,set:qvt.bind(E,P)})};var MQ={};Jvt(MQ,{EndOfLineState:()=>S0t,IndentStyle:()=>A0t,ScriptKind:()=>vN,ScriptTarget:()=>I0t,TokenClass:()=>x0t,createClassifier:()=>b0t,createLanguageService:()=>Uve,displayPartsToString:()=>T0t,flattenDiagnosticMessageText:()=>E0t,typescript:()=>Hve});class dFe{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(d){setTimeout(()=>{if(d.stack){if(I8.isErrorNoTelemetry(d))throw new I8(d.message+`
|
|
2
2
|
|
|
3
3
|
`+d.stack);throw Error(d.message+`
|
|
4
4
|
|
|
@@ -27,7 +27,7 @@ var Uvt=Object.defineProperty;var Hvt=(d)=>d;function qvt(d,E){this[d]=Hvt.bind(
|
|
|
27
27
|
`)),Te=this._computer.computeDiff(G.value,le.value,{ignoreTrimWhitespace:!0,computeMoves:P.computeMoves,extendToSubwords:P.extendToSubwords}),ke=G.getTransformer(),Ge=le.getTransformer(),ae=[],Mt=0;for(let nr of Te.edits.replacements){let Mn=nr.range.start+Mt,rr=Mn+nr.newText.length,cr=ke.getRange(new qa(nr.range.start,nr.range.endExclusive)),Ji=Ge.getRange(new qa(Mn,rr));ae.push(new oy(cr,Ji)),Mt+=nr.newText.length-(nr.range.endExclusive-nr.range.start)}let He=xz(ae,G,le),nt=[];if(P.computeMoves)for(let nr of Te.moves){let Mn=ke.getPosition(nr.range.original.start),rr=ke.getPosition(nr.range.original.endExclusive),cr=Ge.getPosition(nr.range.modified.start),Ji=Ge.getPosition(nr.range.modified.endExclusive),ho=new Ks(Mn.lineNumber,rr.lineNumber),kn=new Ks(cr.lineNumber,Ji.lineNumber);nt.push(new Sz(new ay(ho,kn),[]))}return new RR(He,nt,Te.hitTimeout)}}var Mz={getLegacy:()=>new Ive,getDefault:()=>new Mve,getAdvancedExternal:()=>Wve(!1),getAdvancedWasm:()=>Wve(!0)};function yN(d,E){let P=Math.pow(10,E);return Math.round(d*P)/P}class Ar{constructor(d,E,P,G=1){this._rgbaBrand=void 0,this.r=Math.min(255,Math.max(0,d))|0,this.g=Math.min(255,Math.max(0,E))|0,this.b=Math.min(255,Math.max(0,P))|0,this.a=yN(Math.max(Math.min(1,G),0),3)}static equals(d,E){return d.r===E.r&&d.g===E.g&&d.b===E.b&&d.a===E.a}}class P0{constructor(d,E,P,G){this._hslaBrand=void 0,this.h=Math.max(Math.min(360,d),0)|0,this.s=yN(Math.max(Math.min(1,E),0),3),this.l=yN(Math.max(Math.min(1,P),0),3),this.a=yN(Math.max(Math.min(1,G),0),3)}static equals(d,E){return d.h===E.h&&d.s===E.s&&d.l===E.l&&d.a===E.a}static fromRGBA(d){let E=d.r/255,P=d.g/255,G=d.b/255,le=d.a,Te=Math.max(E,P,G),ke=Math.min(E,P,G),Ge=0,ae=0,Mt=(ke+Te)/2,He=Te-ke;if(He>0){switch(ae=Math.min(Mt<=0.5?He/(2*Mt):He/(2-2*Mt),1),Te){case E:Ge=(P-G)/He+(P<G?6:0);break;case P:Ge=(G-E)/He+2;break;case G:Ge=(E-P)/He+4;break}Ge*=60,Ge=Math.round(Ge)}return new P0(Ge,ae,Mt,le)}static _hue2rgb(d,E,P){if(P<0)P+=1;if(P>1)P-=1;if(P<0.16666666666666666)return d+(E-d)*6*P;if(P<0.5)return E;if(P<0.6666666666666666)return d+(E-d)*(0.6666666666666666-P)*6;return d}static toRGBA(d){let E=d.h/360,{s:P,l:G,a:le}=d,Te,ke,Ge;if(P===0)Te=ke=Ge=G;else{let ae=G<0.5?G*(1+P):G+P-G*P,Mt=2*G-ae;Te=P0._hue2rgb(Mt,ae,E+0.3333333333333333),ke=P0._hue2rgb(Mt,ae,E),Ge=P0._hue2rgb(Mt,ae,E-0.3333333333333333)}return new Ar(Math.round(Te*255),Math.round(ke*255),Math.round(Ge*255),le)}}class W8{constructor(d,E,P,G){this._hsvaBrand=void 0,this.h=Math.max(Math.min(360,d),0)|0,this.s=yN(Math.max(Math.min(1,E),0),3),this.v=yN(Math.max(Math.min(1,P),0),3),this.a=yN(Math.max(Math.min(1,G),0),3)}static equals(d,E){return d.h===E.h&&d.s===E.s&&d.v===E.v&&d.a===E.a}static fromRGBA(d){let E=d.r/255,P=d.g/255,G=d.b/255,le=Math.max(E,P,G),Te=Math.min(E,P,G),ke=le-Te,Ge=le===0?0:ke/le,ae;if(ke===0)ae=0;else if(le===E)ae=((P-G)/ke%6+6)%6;else if(le===P)ae=(G-E)/ke+2;else ae=(E-P)/ke+4;return new W8(Math.round(ae*60),Ge,le,d.a)}static toRGBA(d){let{h:E,s:P,v:G,a:le}=d,Te=G*P,ke=Te*(1-Math.abs(E/60%2-1)),Ge=G-Te,[ae,Mt,He]=[0,0,0];if(E<60)ae=Te,Mt=ke;else if(E<120)ae=ke,Mt=Te;else if(E<180)Mt=Te,He=ke;else if(E<240)Mt=ke,He=Te;else if(E<300)ae=ke,He=Te;else if(E<=360)ae=Te,He=ke;return ae=Math.round((ae+Ge)*255),Mt=Math.round((Mt+Ge)*255),He=Math.round((He+Ge)*255),new Ar(ae,Mt,He,le)}}class Mp{static fromHex(d){return Mp.Format.CSS.parseHex(d)||Mp.red}static equals(d,E){if(!d&&!E)return!0;if(!d||!E)return!1;return d.equals(E)}get hsla(){if(this._hsla)return this._hsla;else return P0.fromRGBA(this.rgba)}get hsva(){if(this._hsva)return this._hsva;return W8.fromRGBA(this.rgba)}constructor(d){if(!d)throw Error("Color needs a value");else if(d instanceof Ar)this.rgba=d;else if(d instanceof P0)this._hsla=d,this.rgba=P0.toRGBA(d);else if(d instanceof W8)this._hsva=d,this.rgba=W8.toRGBA(d);else throw Error("Invalid color ctor argument")}equals(d){return!!d&&Ar.equals(this.rgba,d.rgba)&&P0.equals(this.hsla,d.hsla)&&W8.equals(this.hsva,d.hsva)}getRelativeLuminance(){let d=Mp._relativeLuminanceForComponent(this.rgba.r),E=Mp._relativeLuminanceForComponent(this.rgba.g),P=Mp._relativeLuminanceForComponent(this.rgba.b),G=0.2126*d+0.7152*E+0.0722*P;return yN(G,4)}static _relativeLuminanceForComponent(d){let E=d/255;return E<=0.03928?E/12.92:Math.pow((E+0.055)/1.055,2.4)}isLighter(){return(this.rgba.r*299+this.rgba.g*587+this.rgba.b*114)/1000>=128}isLighterThan(d){let E=this.getRelativeLuminance(),P=d.getRelativeLuminance();return E>P}isDarkerThan(d){let E=this.getRelativeLuminance(),P=d.getRelativeLuminance();return E<P}lighten(d){return new Mp(new P0(this.hsla.h,this.hsla.s,this.hsla.l+this.hsla.l*d,this.hsla.a))}darken(d){return new Mp(new P0(this.hsla.h,this.hsla.s,this.hsla.l-this.hsla.l*d,this.hsla.a))}transparent(d){let{r:E,g:P,b:G,a:le}=this.rgba;return new Mp(new Ar(E,P,G,le*d))}isTransparent(){return this.rgba.a===0}isOpaque(){return this.rgba.a===1}opposite(){return new Mp(new Ar(255-this.rgba.r,255-this.rgba.g,255-this.rgba.b,this.rgba.a))}mix(d,E=0.5){let P=Math.min(Math.max(E,0),1),G=this.rgba,le=d.rgba,Te=G.r+(le.r-G.r)*P,ke=G.g+(le.g-G.g)*P,Ge=G.b+(le.b-G.b)*P,ae=G.a+(le.a-G.a)*P;return new Mp(new Ar(Te,ke,Ge,ae))}makeOpaque(d){if(this.isOpaque()||d.rgba.a!==1)return this;let{r:E,g:P,b:G,a:le}=this.rgba;return new Mp(new Ar(d.rgba.r-le*(d.rgba.r-E),d.rgba.g-le*(d.rgba.g-P),d.rgba.b-le*(d.rgba.b-G),1))}toString(){if(!this._toString)this._toString=Mp.Format.CSS.format(this);return this._toString}toNumber32Bit(){if(!this._toNumber32Bit)this._toNumber32Bit=(this.rgba.r<<24|this.rgba.g<<16|this.rgba.b<<8|this.rgba.a*255<<0)>>>0;return this._toNumber32Bit}static getLighterColor(d,E,P){if(d.isLighterThan(E))return d;P=P?P:0.5;let G=d.getRelativeLuminance(),le=E.getRelativeLuminance();return P=P*(le-G)/le,d.lighten(P)}static getDarkerColor(d,E,P){if(d.isDarkerThan(E))return d;P=P?P:0.5;let G=d.getRelativeLuminance(),le=E.getRelativeLuminance();return P=P*(G-le)/G,d.darken(P)}static{this.white=new Mp(new Ar(255,255,255,1))}static{this.black=new Mp(new Ar(0,0,0,1))}static{this.red=new Mp(new Ar(255,0,0,1))}static{this.blue=new Mp(new Ar(0,0,255,1))}static{this.green=new Mp(new Ar(0,255,0,1))}static{this.cyan=new Mp(new Ar(0,255,255,1))}static{this.lightgrey=new Mp(new Ar(211,211,211,1))}static{this.transparent=new Mp(new Ar(0,0,0,0))}}(function(d){(function(E){(function(P){function G(cr){if(cr.rgba.a===1)return`rgb(${cr.rgba.r}, ${cr.rgba.g}, ${cr.rgba.b})`;return d.Format.CSS.formatRGBA(cr)}P.formatRGB=G;function le(cr){return`rgba(${cr.rgba.r}, ${cr.rgba.g}, ${cr.rgba.b}, ${+cr.rgba.a.toFixed(2)})`}P.formatRGBA=le;function Te(cr){if(cr.hsla.a===1)return`hsl(${cr.hsla.h}, ${Math.round(cr.hsla.s*100)}%, ${Math.round(cr.hsla.l*100)}%)`;return d.Format.CSS.formatHSLA(cr)}P.formatHSL=Te;function ke(cr){return`hsla(${cr.hsla.h}, ${Math.round(cr.hsla.s*100)}%, ${Math.round(cr.hsla.l*100)}%, ${cr.hsla.a.toFixed(2)})`}P.formatHSLA=ke;function Ge(cr){let Ji=cr.toString(16);return Ji.length!==2?"0"+Ji:Ji}function ae(cr){return`#${Ge(cr.rgba.r)}${Ge(cr.rgba.g)}${Ge(cr.rgba.b)}`}P.formatHex=ae;function Mt(cr,Ji=!1){if(Ji&&cr.rgba.a===1)return d.Format.CSS.formatHex(cr);return`#${Ge(cr.rgba.r)}${Ge(cr.rgba.g)}${Ge(cr.rgba.b)}${Ge(Math.round(cr.rgba.a*255))}`}P.formatHexA=Mt;function He(cr){if(cr.isOpaque())return d.Format.CSS.formatHex(cr);return d.Format.CSS.formatRGBA(cr)}P.format=He;function nt(cr){if(cr==="transparent")return d.transparent;if(cr.startsWith("#"))return Mn(cr);if(cr.startsWith("rgba(")){let Ji=cr.match(/rgba\((?<r>(?:\+|-)?\d+), *(?<g>(?:\+|-)?\d+), *(?<b>(?:\+|-)?\d+), *(?<a>(?:\+|-)?\d+(\.\d+)?)\)/);if(!Ji)throw Error("Invalid color format "+cr);let ho=parseInt(Ji.groups?.r??"0"),kn=parseInt(Ji.groups?.g??"0"),Pn=parseInt(Ji.groups?.b??"0"),Qo=parseFloat(Ji.groups?.a??"0");return new d(new Ar(ho,kn,Pn,Qo))}if(cr.startsWith("rgb(")){let Ji=cr.match(/rgb\((?<r>(?:\+|-)?\d+), *(?<g>(?:\+|-)?\d+), *(?<b>(?:\+|-)?\d+)\)/);if(!Ji)throw Error("Invalid color format "+cr);let ho=parseInt(Ji.groups?.r??"0"),kn=parseInt(Ji.groups?.g??"0"),Pn=parseInt(Ji.groups?.b??"0");return new d(new Ar(ho,kn,Pn))}return nr(cr)}P.parse=nt;function nr(cr){switch(cr){case"aliceblue":return new d(new Ar(240,248,255,1));case"antiquewhite":return new d(new Ar(250,235,215,1));case"aqua":return new d(new Ar(0,255,255,1));case"aquamarine":return new d(new Ar(127,255,212,1));case"azure":return new d(new Ar(240,255,255,1));case"beige":return new d(new Ar(245,245,220,1));case"bisque":return new d(new Ar(255,228,196,1));case"black":return new d(new Ar(0,0,0,1));case"blanchedalmond":return new d(new Ar(255,235,205,1));case"blue":return new d(new Ar(0,0,255,1));case"blueviolet":return new d(new Ar(138,43,226,1));case"brown":return new d(new Ar(165,42,42,1));case"burlywood":return new d(new Ar(222,184,135,1));case"cadetblue":return new d(new Ar(95,158,160,1));case"chartreuse":return new d(new Ar(127,255,0,1));case"chocolate":return new d(new Ar(210,105,30,1));case"coral":return new d(new Ar(255,127,80,1));case"cornflowerblue":return new d(new Ar(100,149,237,1));case"cornsilk":return new d(new Ar(255,248,220,1));case"crimson":return new d(new Ar(220,20,60,1));case"cyan":return new d(new Ar(0,255,255,1));case"darkblue":return new d(new Ar(0,0,139,1));case"darkcyan":return new d(new Ar(0,139,139,1));case"darkgoldenrod":return new d(new Ar(184,134,11,1));case"darkgray":return new d(new Ar(169,169,169,1));case"darkgreen":return new d(new Ar(0,100,0,1));case"darkgrey":return new d(new Ar(169,169,169,1));case"darkkhaki":return new d(new Ar(189,183,107,1));case"darkmagenta":return new d(new Ar(139,0,139,1));case"darkolivegreen":return new d(new Ar(85,107,47,1));case"darkorange":return new d(new Ar(255,140,0,1));case"darkorchid":return new d(new Ar(153,50,204,1));case"darkred":return new d(new Ar(139,0,0,1));case"darksalmon":return new d(new Ar(233,150,122,1));case"darkseagreen":return new d(new Ar(143,188,143,1));case"darkslateblue":return new d(new Ar(72,61,139,1));case"darkslategray":return new d(new Ar(47,79,79,1));case"darkslategrey":return new d(new Ar(47,79,79,1));case"darkturquoise":return new d(new Ar(0,206,209,1));case"darkviolet":return new d(new Ar(148,0,211,1));case"deeppink":return new d(new Ar(255,20,147,1));case"deepskyblue":return new d(new Ar(0,191,255,1));case"dimgray":return new d(new Ar(105,105,105,1));case"dimgrey":return new d(new Ar(105,105,105,1));case"dodgerblue":return new d(new Ar(30,144,255,1));case"firebrick":return new d(new Ar(178,34,34,1));case"floralwhite":return new d(new Ar(255,250,240,1));case"forestgreen":return new d(new Ar(34,139,34,1));case"fuchsia":return new d(new Ar(255,0,255,1));case"gainsboro":return new d(new Ar(220,220,220,1));case"ghostwhite":return new d(new Ar(248,248,255,1));case"gold":return new d(new Ar(255,215,0,1));case"goldenrod":return new d(new Ar(218,165,32,1));case"gray":return new d(new Ar(128,128,128,1));case"green":return new d(new Ar(0,128,0,1));case"greenyellow":return new d(new Ar(173,255,47,1));case"grey":return new d(new Ar(128,128,128,1));case"honeydew":return new d(new Ar(240,255,240,1));case"hotpink":return new d(new Ar(255,105,180,1));case"indianred":return new d(new Ar(205,92,92,1));case"indigo":return new d(new Ar(75,0,130,1));case"ivory":return new d(new Ar(255,255,240,1));case"khaki":return new d(new Ar(240,230,140,1));case"lavender":return new d(new Ar(230,230,250,1));case"lavenderblush":return new d(new Ar(255,240,245,1));case"lawngreen":return new d(new Ar(124,252,0,1));case"lemonchiffon":return new d(new Ar(255,250,205,1));case"lightblue":return new d(new Ar(173,216,230,1));case"lightcoral":return new d(new Ar(240,128,128,1));case"lightcyan":return new d(new Ar(224,255,255,1));case"lightgoldenrodyellow":return new d(new Ar(250,250,210,1));case"lightgray":return new d(new Ar(211,211,211,1));case"lightgreen":return new d(new Ar(144,238,144,1));case"lightgrey":return new d(new Ar(211,211,211,1));case"lightpink":return new d(new Ar(255,182,193,1));case"lightsalmon":return new d(new Ar(255,160,122,1));case"lightseagreen":return new d(new Ar(32,178,170,1));case"lightskyblue":return new d(new Ar(135,206,250,1));case"lightslategray":return new d(new Ar(119,136,153,1));case"lightslategrey":return new d(new Ar(119,136,153,1));case"lightsteelblue":return new d(new Ar(176,196,222,1));case"lightyellow":return new d(new Ar(255,255,224,1));case"lime":return new d(new Ar(0,255,0,1));case"limegreen":return new d(new Ar(50,205,50,1));case"linen":return new d(new Ar(250,240,230,1));case"magenta":return new d(new Ar(255,0,255,1));case"maroon":return new d(new Ar(128,0,0,1));case"mediumaquamarine":return new d(new Ar(102,205,170,1));case"mediumblue":return new d(new Ar(0,0,205,1));case"mediumorchid":return new d(new Ar(186,85,211,1));case"mediumpurple":return new d(new Ar(147,112,219,1));case"mediumseagreen":return new d(new Ar(60,179,113,1));case"mediumslateblue":return new d(new Ar(123,104,238,1));case"mediumspringgreen":return new d(new Ar(0,250,154,1));case"mediumturquoise":return new d(new Ar(72,209,204,1));case"mediumvioletred":return new d(new Ar(199,21,133,1));case"midnightblue":return new d(new Ar(25,25,112,1));case"mintcream":return new d(new Ar(245,255,250,1));case"mistyrose":return new d(new Ar(255,228,225,1));case"moccasin":return new d(new Ar(255,228,181,1));case"navajowhite":return new d(new Ar(255,222,173,1));case"navy":return new d(new Ar(0,0,128,1));case"oldlace":return new d(new Ar(253,245,230,1));case"olive":return new d(new Ar(128,128,0,1));case"olivedrab":return new d(new Ar(107,142,35,1));case"orange":return new d(new Ar(255,165,0,1));case"orangered":return new d(new Ar(255,69,0,1));case"orchid":return new d(new Ar(218,112,214,1));case"palegoldenrod":return new d(new Ar(238,232,170,1));case"palegreen":return new d(new Ar(152,251,152,1));case"paleturquoise":return new d(new Ar(175,238,238,1));case"palevioletred":return new d(new Ar(219,112,147,1));case"papayawhip":return new d(new Ar(255,239,213,1));case"peachpuff":return new d(new Ar(255,218,185,1));case"peru":return new d(new Ar(205,133,63,1));case"pink":return new d(new Ar(255,192,203,1));case"plum":return new d(new Ar(221,160,221,1));case"powderblue":return new d(new Ar(176,224,230,1));case"purple":return new d(new Ar(128,0,128,1));case"rebeccapurple":return new d(new Ar(102,51,153,1));case"red":return new d(new Ar(255,0,0,1));case"rosybrown":return new d(new Ar(188,143,143,1));case"royalblue":return new d(new Ar(65,105,225,1));case"saddlebrown":return new d(new Ar(139,69,19,1));case"salmon":return new d(new Ar(250,128,114,1));case"sandybrown":return new d(new Ar(244,164,96,1));case"seagreen":return new d(new Ar(46,139,87,1));case"seashell":return new d(new Ar(255,245,238,1));case"sienna":return new d(new Ar(160,82,45,1));case"silver":return new d(new Ar(192,192,192,1));case"skyblue":return new d(new Ar(135,206,235,1));case"slateblue":return new d(new Ar(106,90,205,1));case"slategray":return new d(new Ar(112,128,144,1));case"slategrey":return new d(new Ar(112,128,144,1));case"snow":return new d(new Ar(255,250,250,1));case"springgreen":return new d(new Ar(0,255,127,1));case"steelblue":return new d(new Ar(70,130,180,1));case"tan":return new d(new Ar(210,180,140,1));case"teal":return new d(new Ar(0,128,128,1));case"thistle":return new d(new Ar(216,191,216,1));case"tomato":return new d(new Ar(255,99,71,1));case"turquoise":return new d(new Ar(64,224,208,1));case"violet":return new d(new Ar(238,130,238,1));case"wheat":return new d(new Ar(245,222,179,1));case"white":return new d(new Ar(255,255,255,1));case"whitesmoke":return new d(new Ar(245,245,245,1));case"yellow":return new d(new Ar(255,255,0,1));case"yellowgreen":return new d(new Ar(154,205,50,1));default:return null}}function Mn(cr){let Ji=cr.length;if(Ji===0)return null;if(cr.charCodeAt(0)!==35)return null;if(Ji===7){let ho=16*rr(cr.charCodeAt(1))+rr(cr.charCodeAt(2)),kn=16*rr(cr.charCodeAt(3))+rr(cr.charCodeAt(4)),Pn=16*rr(cr.charCodeAt(5))+rr(cr.charCodeAt(6));return new d(new Ar(ho,kn,Pn,1))}if(Ji===9){let ho=16*rr(cr.charCodeAt(1))+rr(cr.charCodeAt(2)),kn=16*rr(cr.charCodeAt(3))+rr(cr.charCodeAt(4)),Pn=16*rr(cr.charCodeAt(5))+rr(cr.charCodeAt(6)),Qo=16*rr(cr.charCodeAt(7))+rr(cr.charCodeAt(8));return new d(new Ar(ho,kn,Pn,Qo/255))}if(Ji===4){let ho=rr(cr.charCodeAt(1)),kn=rr(cr.charCodeAt(2)),Pn=rr(cr.charCodeAt(3));return new d(new Ar(16*ho+ho,16*kn+kn,16*Pn+Pn))}if(Ji===5){let ho=rr(cr.charCodeAt(1)),kn=rr(cr.charCodeAt(2)),Pn=rr(cr.charCodeAt(3)),Qo=rr(cr.charCodeAt(4));return new d(new Ar(16*ho+ho,16*kn+kn,16*Pn+Pn,(16*Qo+Qo)/255))}return null}P.parseHex=Mn;function rr(cr){switch(cr){case 48:return 0;case 49:return 1;case 50:return 2;case 51:return 3;case 52:return 4;case 53:return 5;case 54:return 6;case 55:return 7;case 56:return 8;case 57:return 9;case 97:return 10;case 65:return 10;case 98:return 11;case 66:return 11;case 99:return 12;case 67:return 12;case 100:return 13;case 68:return 13;case 101:return 14;case 69:return 14;case 102:return 15;case 70:return 15}return 0}})(E.CSS||(E.CSS={}))})(d.Format||(d.Format={}))})(Mp||(Mp={}));function x9e(d){let E=[];for(let P of d){let G=Number(P);if(G||G===0&&P.replace(/\s/g,"")!=="")E.push(G)}return E}function Fve(d,E,P,G){return{red:d/255,blue:P/255,green:E/255,alpha:G}}function Pz(d,E){let P=E.index,G=E[0].length;if(P===void 0)return;let le=d.positionAt(P);return{startLineNumber:le.lineNumber,startColumn:le.column,endLineNumber:le.lineNumber,endColumn:le.column+G}}function l0t(d,E){if(!d)return;let P=Mp.Format.CSS.parseHex(E);if(!P)return;return{range:d,color:Fve(P.rgba.r,P.rgba.g,P.rgba.b,P.rgba.a)}}function A9e(d,E,P){if(!d||E.length!==1)return;let le=E[0].values(),Te=x9e(le);return{range:d,color:Fve(Te[0],Te[1],Te[2],P?Te[3]:1)}}function I9e(d,E,P){if(!d||E.length!==1)return;let le=E[0].values(),Te=x9e(le),ke=new Mp(new P0(Te[0],Te[1]/100,Te[2]/100,P?Te[3]:1));return{range:d,color:Fve(ke.rgba.r,ke.rgba.g,ke.rgba.b,ke.rgba.a)}}function Lz(d,E){if(typeof d==="string")return[...d.matchAll(E)];else return d.findMatches(E)}function c0t(d){let E=[],G=Lz(d,/\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%\/]*\))|^(#)([A-Fa-f0-9]{3})\b|^(#)([A-Fa-f0-9]{4})\b|^(#)([A-Fa-f0-9]{6})\b|^(#)([A-Fa-f0-9]{8})\b|(?<=['"\s])(#)([A-Fa-f0-9]{3})\b|(?<=['"\s])(#)([A-Fa-f0-9]{4})\b|(?<=['"\s])(#)([A-Fa-f0-9]{6})\b|(?<=['"\s])(#)([A-Fa-f0-9]{8})\b/gm);if(G.length>0)for(let le of G){let Te=le.filter((Mt)=>Mt!==void 0),ke=Te[1],Ge=Te[2];if(!Ge)continue;let ae;if(ke==="rgb"){let Mt=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*[\s,]\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*[\s,]\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;ae=A9e(Pz(d,le),Lz(Ge,Mt),!1)}else if(ke==="rgba"){let Mt=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*[\s,]\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*[\s,]\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*(?:[\s,]|[\s]*\/)\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;ae=A9e(Pz(d,le),Lz(Ge,Mt),!0)}else if(ke==="hsl"){let Mt=/^\(\s*((?:360(?:\.0+)?|(?:36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])(?:\.\d+)?))\s*[\s,]\s*(100(?:\.0+)?|\d{1,2}[.]\d*|\d{1,2})%\s*[\s,]\s*(100(?:\.0+)?|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;ae=I9e(Pz(d,le),Lz(Ge,Mt),!1)}else if(ke==="hsla"){let Mt=/^\(\s*((?:360(?:\.0+)?|(?:36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])(?:\.\d+)?))\s*[\s,]\s*(100(?:\.0+)?|\d{1,2}[.]\d*|\d{1,2})%\s*[\s,]\s*(100(?:\.0+)?|\d{1,2}[.]\d*|\d{1,2})%\s*(?:[\s,]|[\s]*\/)\s*(0[.][0-9]+|[.][0-9]+|[01][.]0*|[01])\s*\)$/gm;ae=I9e(Pz(d,le),Lz(Ge,Mt),!0)}else if(ke==="#")ae=l0t(Pz(d,le),ke+Ge);if(ae)E.push(ae)}return E}function R9e(d){if(!d||typeof d.getValue!=="function"||typeof d.positionAt!=="function")return[];return c0t(d)}var d0t=/^-+|-+$/g,D9e=100,u0t=5;function C9e(d,E){let P=[];if(E.findRegionSectionHeaders&&E.foldingRules?.markers){let G=p0t(d,E);P=P.concat(G)}if(E.findMarkSectionHeaders){let G=f0t(d,E);P=P.concat(G)}return P}function p0t(d,E){let P=[],G=d.getLineCount();for(let le=1;le<=G;le++){let Te=d.getLineContent(le),ke=Te.match(E.foldingRules.markers.start);if(ke){let Ge={startLineNumber:le,startColumn:ke[0].length+1,endLineNumber:le,endColumn:Te.length+1};if(Ge.endColumn>Ge.startColumn){let ae={range:Ge,...m0t(Te.substring(ke[0].length)),shouldBeInComments:!1};if(ae.text||ae.hasSeparatorLine)P.push(ae)}}}return P}function f0t(d,E){let P=[],G=d.getLineCount();if(!E.markSectionHeaderRegex||E.markSectionHeaderRegex.trim()==="")return P;let le=F5e(E.markSectionHeaderRegex),Te=new RegExp(E.markSectionHeaderRegex,`gdm${le?"s":""}`);if(FFe(Te))return P;for(let ke=1;ke<=G;ke+=D9e-u0t){let Ge=Math.min(ke+D9e-1,G),ae=[];for(let nt=ke;nt<=Ge;nt++)ae.push(d.getLineContent(nt));let Mt=ae.join(`
|
|
28
28
|
`);Te.lastIndex=0;let He;while((He=Te.exec(Mt))!==null){let nt=Mt.substring(0,He.index),nr=(nt.match(/\n/g)||[]).length,Mn=ke+nr,rr=He[0].split(`
|
|
29
29
|
`),cr=rr.length,Ji=Mn+cr-1,ho=nt.lastIndexOf(`
|
|
30
|
-
`)+1,kn=He.index-ho+1,Pn=rr[rr.length-1],Qo=cr===1?kn+He[0].length:Pn.length+1,Zo={startLineNumber:Mn,startColumn:kn,endLineNumber:Ji,endColumn:Qo},pa=(He.groups??{}).label??"",wn=((He.groups??{}).separator??"")!=="",co={range:Zo,text:pa,hasSeparatorLine:wn,shouldBeInComments:!0};if(co.text||co.hasSeparatorLine){if(P.length===0||P[P.length-1].range.endLineNumber<co.range.startLineNumber)P.push(co)}Te.lastIndex=He.index+He[0].length}}return P}function m0t(d){d=d.trim();let E=d.startsWith("-");return d=d.replace(d0t,""),{text:d,hasSeparatorLine:E}}var h0t=Symbol("MicrotaskDelay");var _0t,zve;(function(){let d=globalThis;if(typeof d.requestIdleCallback!=="function"||typeof d.cancelIdleCallback!=="function")zve=(E,P,G)=>{RFe(()=>{if(le)return;let Te=Date.now()+15;P(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,Te-Date.now())}}))});let le=!1;return{dispose(){if(le)return;le=!0}}};else zve=(E,P,G)=>{let le=E.requestIdleCallback(P,typeof G==="number"?{timeout:G}:void 0),Te=!1;return{dispose(){if(Te)return;Te=!0,E.cancelIdleCallback(le)}}};_0t=(E,P)=>zve(globalThis,E,P)})();class Bve{get isRejected(){return this.outcome?.outcome===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((d,E)=>{this.completeCallback=d,this.errorCallback=E})}complete(d){if(this.isSettled)return Promise.resolve();return new Promise((E)=>{this.completeCallback(d),this.outcome={outcome:0,value:d},E()})}error(d){if(this.isSettled)return Promise.resolve();return new Promise((E)=>{this.errorCallback(d),this.outcome={outcome:1,value:d},E()})}cancel(){return this.error(new eQ)}}var N9e;(function(d){async function E(G){let le=void 0,Te=await Promise.all(G.map((ke)=>ke.then((Ge)=>Ge,(Ge)=>{if(!le)le=Ge;return})));if(typeof le<"u")throw le;return Te}d.settled=E;function P(G){return new Promise(async(le,Te)=>{try{await G(le,Te)}catch(ke){Te(ke)}})}d.withAsyncBody=P})(N9e||(N9e={}));class M9e{constructor(){this._unsatisfiedConsumers=[],this._unconsumedValues=[]}get hasFinalValue(){return!!this._finalValue}produce(d){if(this._ensureNoFinalValue(),this._unsatisfiedConsumers.length>0){let E=this._unsatisfiedConsumers.shift();this._resolveOrRejectDeferred(E,d)}else this._unconsumedValues.push(d)}produceFinal(d){this._ensureNoFinalValue(),this._finalValue=d;for(let E of this._unsatisfiedConsumers)this._resolveOrRejectDeferred(E,d);this._unsatisfiedConsumers.length=0}_ensureNoFinalValue(){if(this._finalValue)throw new Lu("ProducerConsumer: cannot produce after final value has been set")}_resolveOrRejectDeferred(d,E){if(E.ok)d.complete(E.value);else d.error(E.error)}consume(){if(this._unconsumedValues.length>0||this._finalValue){let d=this._unconsumedValues.length>0?this._unconsumedValues.shift():this._finalValue;if(d.ok)return Promise.resolve(d.value);else return Promise.reject(d.error)}else{let d=new Bve;return this._unsatisfiedConsumers.push(d),d.p}}}class ib{constructor(d,E){this._onReturn=E,this._producerConsumer=new M9e,this._iterator={next:()=>this._producerConsumer.consume(),return:()=>(this._onReturn?.(),Promise.resolve({done:!0,value:void 0})),throw:async(P)=>(this._finishError(P),{done:!0,value:void 0})},queueMicrotask(async()=>{let P=d({emitOne:(G)=>this._producerConsumer.produce({ok:!0,value:{done:!1,value:G}}),emitMany:(G)=>{for(let le of G)this._producerConsumer.produce({ok:!0,value:{done:!1,value:le}})},reject:(G)=>this._finishError(G)});if(!this._producerConsumer.hasFinalValue)try{await P,this._finishOk()}catch(G){this._finishError(G)}})}static fromArray(d){return new ib((E)=>{E.emitMany(d)})}static fromPromise(d){return new ib(async(E)=>{E.emitMany(await d)})}static fromPromisesResolveOrder(d){return new ib(async(E)=>{await Promise.all(d.map(async(P)=>E.emitOne(await P)))})}static merge(d){return new ib(async(E)=>{await Promise.all(d.map(async(P)=>{for await(let G of P)E.emitOne(G)}))})}static{this.EMPTY=ib.fromArray([])}static map(d,E){return new ib(async(P)=>{for await(let G of d)P.emitOne(E(G))})}static tee(d){let E,P,G=new Bve,le=async()=>{if(!E||!P)return;try{for await(let Ge of d)E.emitOne(Ge),P.emitOne(Ge)}catch(Ge){E.reject(Ge),P.reject(Ge)}finally{G.complete()}},Te=new ib(async(Ge)=>(E=Ge,le(),G.p)),ke=new ib(async(Ge)=>(P=Ge,le(),G.p));return[Te,ke]}map(d){return ib.map(this,d)}static coalesce(d){return ib.filter(d,(E)=>!!E)}coalesce(){return ib.coalesce(this)}static filter(d,E){return new ib(async(P)=>{for await(let G of d)if(E(G))P.emitOne(G)})}filter(d){return ib.filter(this,d)}_finishOk(){if(!this._producerConsumer.hasFinalValue)this._producerConsumer.produceFinal({ok:!0,value:{done:!0,value:void 0}})}_finishError(d){if(!this._producerConsumer.hasFinalValue)this._producerConsumer.produceFinal({ok:!1,error:d})}[Symbol.asyncIterator](){return this._iterator}}class Gve{constructor(d){this.values=d,this.prefixSum=new Uint32Array(d.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(d,E){d=lL(d);let P=this.values,G=this.prefixSum,le=E.length;if(le===0)return!1;if(this.values=new Uint32Array(P.length+le),this.values.set(P.subarray(0,d),0),this.values.set(P.subarray(d),d+le),this.values.set(E,d),d-1<this.prefixSumValidIndex[0])this.prefixSumValidIndex[0]=d-1;if(this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0)this.prefixSum.set(G.subarray(0,this.prefixSumValidIndex[0]+1));return!0}setValue(d,E){if(d=lL(d),E=lL(E),this.values[d]===E)return!1;if(this.values[d]=E,d-1<this.prefixSumValidIndex[0])this.prefixSumValidIndex[0]=d-1;return!0}removeValues(d,E){d=lL(d),E=lL(E);let P=this.values,G=this.prefixSum;if(d>=P.length)return!1;let le=P.length-d;if(E>=le)E=le;if(E===0)return!1;if(this.values=new Uint32Array(P.length-E),this.values.set(P.subarray(0,d),0),this.values.set(P.subarray(d+E),d),this.prefixSum=new Uint32Array(this.values.length),d-1<this.prefixSumValidIndex[0])this.prefixSumValidIndex[0]=d-1;if(this.prefixSumValidIndex[0]>=0)this.prefixSum.set(G.subarray(0,this.prefixSumValidIndex[0]+1));return!0}getTotalSum(){if(this.values.length===0)return 0;return this._getPrefixSum(this.values.length-1)}getPrefixSum(d){if(d<0)return 0;return d=lL(d),this._getPrefixSum(d)}_getPrefixSum(d){if(d<=this.prefixSumValidIndex[0])return this.prefixSum[d];let E=this.prefixSumValidIndex[0]+1;if(E===0)this.prefixSum[0]=this.values[0],E++;if(d>=this.values.length)d=this.values.length-1;for(let P=E;P<=d;P++)this.prefixSum[P]=this.prefixSum[P-1]+this.values[P];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],d),this.prefixSum[d]}getIndexOf(d){d=Math.floor(d),this.getTotalSum();let E=0,P=this.values.length-1,G=0,le=0,Te=0;while(E<=P)if(G=E+(P-E)/2|0,le=this.prefixSum[G],Te=le-this.values[G],d<Te)P=G-1;else if(d>=le)E=G+1;else break;return new P9e(G,d-Te)}}class P9e{constructor(d,E){this.index=d,this.remainder=E,this._prefixSumIndexOfResultBrand=void 0,this.index=d,this.remainder=E}}class Vve{constructor(d,E,P,G){this._uri=d,this._lines=E,this._eol=P,this._versionId=G,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}get version(){return this._versionId}getText(){if(this._cachedTextValue===null)this._cachedTextValue=this._lines.join(this._eol);return this._cachedTextValue}onEvents(d){if(d.eol&&d.eol!==this._eol)this._eol=d.eol,this._lineStarts=null;let E=d.changes;for(let P of E)this._acceptDeleteRange(P.range),this._acceptInsertText(new ws(P.range.startLineNumber,P.range.startColumn),P.text);this._versionId=d.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){let d=this._eol.length,E=this._lines.length,P=new Uint32Array(E);for(let G=0;G<E;G++)P[G]=this._lines[G].length+d;this._lineStarts=new Gve(P)}}_setLineText(d,E){if(this._lines[d]=E,this._lineStarts)this._lineStarts.setValue(d,this._lines[d].length+this._eol.length)}_acceptDeleteRange(d){if(d.startLineNumber===d.endLineNumber){if(d.startColumn===d.endColumn)return;this._setLineText(d.startLineNumber-1,this._lines[d.startLineNumber-1].substring(0,d.startColumn-1)+this._lines[d.startLineNumber-1].substring(d.endColumn-1));return}if(this._setLineText(d.startLineNumber-1,this._lines[d.startLineNumber-1].substring(0,d.startColumn-1)+this._lines[d.endLineNumber-1].substring(d.endColumn-1)),this._lines.splice(d.startLineNumber,d.endLineNumber-d.startLineNumber),this._lineStarts)this._lineStarts.removeValues(d.startLineNumber,d.endLineNumber-d.startLineNumber)}_acceptInsertText(d,E){if(E.length===0)return;let P=zFe(E);if(P.length===1){this._setLineText(d.lineNumber-1,this._lines[d.lineNumber-1].substring(0,d.column-1)+P[0]+this._lines[d.lineNumber-1].substring(d.column-1));return}P[P.length-1]+=this._lines[d.lineNumber-1].substring(d.column-1),this._setLineText(d.lineNumber-1,this._lines[d.lineNumber-1].substring(0,d.column-1)+P[0]);let G=new Uint32Array(P.length-1);for(let le=1;le<P.length;le++)this._lines.splice(d.lineNumber+le-1,0,P[le]),G[le-1]=P[le].length+this._eol.length;if(this._lineStarts)this._lineStarts.insertValues(d.lineNumber,G)}}class jve{constructor(){this._models=Object.create(null)}getModel(d){return this._models[d]}getModels(){let d=[];return Object.keys(this._models).forEach((E)=>d.push(this._models[E])),d}$acceptNewModel(d){this._models[d.url]=new L9e(pg.parse(d.url),d.lines,d.EOL,d.versionId)}$acceptModelChanged(d,E){if(!this._models[d])return;this._models[d].onEvents(E)}$acceptRemovedModel(d){if(!this._models[d])return;delete this._models[d]}}class L9e extends Vve{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(d){let E=[];for(let P=0;P<this._lines.length;P++){let G=this._lines[P],le=this.offsetAt(new ws(P+1,1)),Te=G.matchAll(d);for(let ke of Te){if(ke.index||ke.index===0)ke.index=ke.index+le;E.push(ke)}}return E}getLinesContent(){return this._lines.slice(0)}getLineCount(){return this._lines.length}getLineContent(d){return this._lines[d-1]}getWordAtPosition(d,E){let P=Tz(d.column,_ve(E),this._lines[d.lineNumber-1],0);if(P)return new jo(d.lineNumber,P.startColumn,d.lineNumber,P.endColumn);return null}words(d){let E=this._lines,P=this._wordenize.bind(this),G=0,le="",Te=0,ke=[];return{*[Symbol.iterator](){while(!0)if(Te<ke.length){let Ge=le.substring(ke[Te].start,ke[Te].end);Te+=1,yield Ge}else if(G<E.length)le=E[G],ke=P(le,d),Te=0,G+=1;else break}}}getLineWords(d,E){let P=this._lines[d-1],G=this._wordenize(P,E),le=[];for(let Te of G)le.push({word:P.substring(Te.start,Te.end),startColumn:Te.start+1,endColumn:Te.end+1});return le}_wordenize(d,E){let P=[],G;E.lastIndex=0;while(G=E.exec(d)){if(G[0].length===0)break;P.push({start:G.index,end:G.index+G[0].length})}return P}getValueInRange(d){if(d=this._validateRange(d),d.startLineNumber===d.endLineNumber)return this._lines[d.startLineNumber-1].substring(d.startColumn-1,d.endColumn-1);let E=this._eol,P=d.startLineNumber-1,G=d.endLineNumber-1,le=[];le.push(this._lines[P].substring(d.startColumn-1));for(let Te=P+1;Te<G;Te++)le.push(this._lines[Te]);return le.push(this._lines[G].substring(0,d.endColumn-1)),le.join(E)}offsetAt(d){return d=this._validatePosition(d),this._ensureLineStarts(),this._lineStarts.getPrefixSum(d.lineNumber-2)+(d.column-1)}positionAt(d){d=Math.floor(d),d=Math.max(0,d),this._ensureLineStarts();let E=this._lineStarts.getIndexOf(d),P=this._lines[E.index].length;return{lineNumber:1+E.index,column:1+Math.min(E.remainder,P)}}_validateRange(d){let E=this._validatePosition({lineNumber:d.startLineNumber,column:d.startColumn}),P=this._validatePosition({lineNumber:d.endLineNumber,column:d.endColumn});if(E.lineNumber!==d.startLineNumber||E.column!==d.startColumn||P.lineNumber!==d.endLineNumber||P.column!==d.endColumn)return{startLineNumber:E.lineNumber,startColumn:E.column,endLineNumber:P.lineNumber,endColumn:P.column};return d}_validatePosition(d){if(!ws.isIPosition(d))throw Error("bad position");let{lineNumber:E,column:P}=d,G=!1;if(E<1)E=1,P=1,G=!0;else if(E>this._lines.length)E=this._lines.length,P=this._lines[E-1].length+1,G=!0;else{let le=this._lines[E-1].length+1;if(P<1)P=1,G=!0;else if(P>le)P=le,G=!0}if(!G)return d;else return{lineNumber:E,column:P}}}class F8{constructor(d=null){this._foreignModule=d,this._requestHandlerBrand=void 0,this._workerTextModelSyncServer=new jve}dispose(){}async $ping(){return"pong"}_getModel(d){return this._workerTextModelSyncServer.getModel(d)}getModels(){return this._workerTextModelSyncServer.getModels()}$acceptNewModel(d){this._workerTextModelSyncServer.$acceptNewModel(d)}$acceptModelChanged(d,E){this._workerTextModelSyncServer.$acceptModelChanged(d,E)}$acceptRemovedModel(d){this._workerTextModelSyncServer.$acceptRemovedModel(d)}async $computeUnicodeHighlights(d,E,P){let G=this._getModel(d);if(!G)return{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0};return yve.computeUnicodeHighlights(G,E,P)}async $findSectionHeaders(d,E){let P=this._getModel(d);if(!P)return[];return C9e(P,E)}async $computeDiff(d,E,P,G){let le=this._getModel(d),Te=this._getModel(E);if(!le||!Te)return null;let ke=await g0t(G);return F8.computeDiff(le,Te,P,ke)}static computeDiff(d,E,P,G){let le=d.getLinesContent(),Te=E.getLinesContent(),ke=G.computeDiff(le,Te,P),Ge=ke.changes.length>0?!1:this._modelsAreIdentical(d,E);function ae(Mt){return Mt.map((He)=>[He.original.startLineNumber,He.original.endLineNumberExclusive,He.modified.startLineNumber,He.modified.endLineNumberExclusive,He.innerChanges?.map((nt)=>[nt.originalRange.startLineNumber,nt.originalRange.startColumn,nt.originalRange.endLineNumber,nt.originalRange.endColumn,nt.modifiedRange.startLineNumber,nt.modifiedRange.startColumn,nt.modifiedRange.endLineNumber,nt.modifiedRange.endColumn])])}return{identical:Ge,quitEarly:ke.hitTimeout,changes:ae(ke.changes),moves:ke.moves.map((Mt)=>[Mt.lineRangeMapping.original.startLineNumber,Mt.lineRangeMapping.original.endLineNumberExclusive,Mt.lineRangeMapping.modified.startLineNumber,Mt.lineRangeMapping.modified.endLineNumberExclusive,ae(Mt.changes)])}}static _modelsAreIdentical(d,E){let P=d.getLineCount(),G=E.getLineCount();if(P!==G)return!1;for(let le=1;le<=P;le++){let Te=d.getLineContent(le),ke=E.getLineContent(le);if(Te!==ke)return!1}return!0}static{this._diffLimit=1e5}async $computeMoreMinimalEdits(d,E,P){let G=this._getModel(d);if(!G)return E;let le=[],Te=void 0;E=E.slice(0).sort((Ge,ae)=>{if(Ge.range&&ae.range)return jo.compareRangesUsingStarts(Ge.range,ae.range);let Mt=Ge.range?0:1,He=ae.range?0:1;return Mt-He});let ke=0;for(let Ge=1;Ge<E.length;Ge++)if(jo.getEndPosition(E[ke].range).equals(jo.getStartPosition(E[Ge].range)))E[ke].range=jo.fromPositions(jo.getStartPosition(E[ke].range),jo.getEndPosition(E[Ge].range)),E[ke].text+=E[Ge].text;else ke++,E[ke]=E[Ge];E.length=ke+1;for(let{range:Ge,text:ae,eol:Mt}of E){if(typeof Mt==="number")Te=Mt;if(jo.isEmpty(Ge)&&!ae)continue;let He=G.getValueInRange(Ge);if(ae=ae.replace(/\r\n|\n|\r/g,G.eol),He===ae)continue;if(Math.max(ae.length,He.length)>F8._diffLimit){le.push({range:Ge,text:ae});continue}let nt=o7e(He,ae,P),nr=G.offsetAt(jo.lift(Ge).getStartPosition());for(let Mn of nt){let rr=G.positionAt(nr+Mn.originalStart),cr=G.positionAt(nr+Mn.originalStart+Mn.originalLength),Ji={text:ae.substr(Mn.modifiedStart,Mn.modifiedLength),range:{startLineNumber:rr.lineNumber,startColumn:rr.column,endLineNumber:cr.lineNumber,endColumn:cr.column}};if(G.getValueInRange(Ji.range)!==Ji.text)le.push(Ji)}}if(typeof Te==="number")le.push({eol:Te,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}});return le}async $computeLinks(d){let E=this._getModel(d);if(!E)return null;return l7e(E)}async $computeDefaultDocumentColors(d){let E=this._getModel(d);if(!E)return null;return R9e(E)}static{this._suggestionsLimit=1e4}async $textualSuggest(d,E,P,G){let le=new C8,Te=new RegExp(P,G),ke=new Set;e:for(let Ge of d){let ae=this._getModel(Ge);if(!ae)continue;for(let Mt of ae.words(Te)){if(Mt===E||!isNaN(Number(Mt)))continue;if(ke.add(Mt),ke.size>F8._suggestionsLimit)break e}}return{words:Array.from(ke),duration:le.elapsed()}}async $computeWordRanges(d,E,P,G){let le=this._getModel(d);if(!le)return Object.create(null);let Te=new RegExp(P,G),ke=Object.create(null);for(let Ge=E.startLineNumber;Ge<E.endLineNumber;Ge++){let ae=le.getLineWords(Ge,Te);for(let Mt of ae){if(!isNaN(Number(Mt.word)))continue;let He=ke[Mt.word];if(!He)He=[],ke[Mt.word]=He;He.push({startLineNumber:Ge,startColumn:Mt.startColumn,endLineNumber:Ge,endColumn:Mt.endColumn})}}return ke}async $navigateValueSet(d,E,P,G,le){let Te=this._getModel(d);if(!Te)return null;let ke=new RegExp(G,le);if(E.startColumn===E.endColumn)E={startLineNumber:E.startLineNumber,startColumn:E.startColumn,endLineNumber:E.endLineNumber,endColumn:E.endColumn+1};let Ge=Te.getValueInRange(E),ae=Te.getWordAtPosition({lineNumber:E.startLineNumber,column:E.startColumn},ke);if(!ae)return null;let Mt=Te.getValueInRange(ae);return hQ.INSTANCE.navigateValueSet(E,Ge,ae,Mt,P)}$fmr(d,E){if(!this._foreignModule||typeof this._foreignModule[d]!=="function")return Promise.reject(Error("Missing requestHandler or method: "+d));try{return Promise.resolve(this._foreignModule[d].apply(this._foreignModule,E))}catch(P){return Promise.reject(P)}}}if(typeof importScripts==="function")globalThis.monaco=R5e();function g0t(d){switch(d){case"legacy":return Mz.getLegacy();case"advanced":return Mz.getDefault();case"advanced-external":return Mz.getAdvancedExternal();case"advanced-wasm":return Mz.getAdvancedWasm()}}class wz{static{this.CHANNEL_NAME="editorWorkerHost"}static getChannel(d){return d.getChannel(wz.CHANNEL_NAME)}static setChannel(d,E){d.setChannel(wz.CHANNEL_NAME,E)}}function w9e(d){let E,P=QFe((G)=>{let le=wz.getChannel(G),ke={host:new Proxy({},{get(Ge,ae,Mt){if(ae==="then")return;if(typeof ae!=="string")throw Error("Not supported");return(...He)=>le.$fhr(ae,He)}}),getMirrorModels:()=>P.requestHandler.getModels()};return E=d(ke),new F8(E)});return E}var y0t=!1;function k9e(d){y0t=!0,self.onmessage=(E)=>{w9e((P)=>d(P,E.data))}}var MQ={};Jvt(MQ,{EndOfLineState:()=>S0t,IndentStyle:()=>A0t,ScriptKind:()=>vN,ScriptTarget:()=>I0t,TokenClass:()=>x0t,createClassifier:()=>b0t,createLanguageService:()=>Uve,displayPartsToString:()=>T0t,flattenDiagnosticMessageText:()=>E0t,typescript:()=>Hve});var v0t=void 0;/*! *****************************************************************************
|
|
30
|
+
`)+1,kn=He.index-ho+1,Pn=rr[rr.length-1],Qo=cr===1?kn+He[0].length:Pn.length+1,Zo={startLineNumber:Mn,startColumn:kn,endLineNumber:Ji,endColumn:Qo},pa=(He.groups??{}).label??"",wn=((He.groups??{}).separator??"")!=="",co={range:Zo,text:pa,hasSeparatorLine:wn,shouldBeInComments:!0};if(co.text||co.hasSeparatorLine){if(P.length===0||P[P.length-1].range.endLineNumber<co.range.startLineNumber)P.push(co)}Te.lastIndex=He.index+He[0].length}}return P}function m0t(d){d=d.trim();let E=d.startsWith("-");return d=d.replace(d0t,""),{text:d,hasSeparatorLine:E}}var h0t=Symbol("MicrotaskDelay");var _0t,zve;(function(){let d=globalThis;if(typeof d.requestIdleCallback!=="function"||typeof d.cancelIdleCallback!=="function")zve=(E,P,G)=>{RFe(()=>{if(le)return;let Te=Date.now()+15;P(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,Te-Date.now())}}))});let le=!1;return{dispose(){if(le)return;le=!0}}};else zve=(E,P,G)=>{let le=E.requestIdleCallback(P,typeof G==="number"?{timeout:G}:void 0),Te=!1;return{dispose(){if(Te)return;Te=!0,E.cancelIdleCallback(le)}}};_0t=(E,P)=>zve(globalThis,E,P)})();class Bve{get isRejected(){return this.outcome?.outcome===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((d,E)=>{this.completeCallback=d,this.errorCallback=E})}complete(d){if(this.isSettled)return Promise.resolve();return new Promise((E)=>{this.completeCallback(d),this.outcome={outcome:0,value:d},E()})}error(d){if(this.isSettled)return Promise.resolve();return new Promise((E)=>{this.errorCallback(d),this.outcome={outcome:1,value:d},E()})}cancel(){return this.error(new eQ)}}var N9e;(function(d){async function E(G){let le=void 0,Te=await Promise.all(G.map((ke)=>ke.then((Ge)=>Ge,(Ge)=>{if(!le)le=Ge;return})));if(typeof le<"u")throw le;return Te}d.settled=E;function P(G){return new Promise(async(le,Te)=>{try{await G(le,Te)}catch(ke){Te(ke)}})}d.withAsyncBody=P})(N9e||(N9e={}));class M9e{constructor(){this._unsatisfiedConsumers=[],this._unconsumedValues=[]}get hasFinalValue(){return!!this._finalValue}produce(d){if(this._ensureNoFinalValue(),this._unsatisfiedConsumers.length>0){let E=this._unsatisfiedConsumers.shift();this._resolveOrRejectDeferred(E,d)}else this._unconsumedValues.push(d)}produceFinal(d){this._ensureNoFinalValue(),this._finalValue=d;for(let E of this._unsatisfiedConsumers)this._resolveOrRejectDeferred(E,d);this._unsatisfiedConsumers.length=0}_ensureNoFinalValue(){if(this._finalValue)throw new Lu("ProducerConsumer: cannot produce after final value has been set")}_resolveOrRejectDeferred(d,E){if(E.ok)d.complete(E.value);else d.error(E.error)}consume(){if(this._unconsumedValues.length>0||this._finalValue){let d=this._unconsumedValues.length>0?this._unconsumedValues.shift():this._finalValue;if(d.ok)return Promise.resolve(d.value);else return Promise.reject(d.error)}else{let d=new Bve;return this._unsatisfiedConsumers.push(d),d.p}}}class ib{constructor(d,E){this._onReturn=E,this._producerConsumer=new M9e,this._iterator={next:()=>this._producerConsumer.consume(),return:()=>(this._onReturn?.(),Promise.resolve({done:!0,value:void 0})),throw:async(P)=>(this._finishError(P),{done:!0,value:void 0})},queueMicrotask(async()=>{let P=d({emitOne:(G)=>this._producerConsumer.produce({ok:!0,value:{done:!1,value:G}}),emitMany:(G)=>{for(let le of G)this._producerConsumer.produce({ok:!0,value:{done:!1,value:le}})},reject:(G)=>this._finishError(G)});if(!this._producerConsumer.hasFinalValue)try{await P,this._finishOk()}catch(G){this._finishError(G)}})}static fromArray(d){return new ib((E)=>{E.emitMany(d)})}static fromPromise(d){return new ib(async(E)=>{E.emitMany(await d)})}static fromPromisesResolveOrder(d){return new ib(async(E)=>{await Promise.all(d.map(async(P)=>E.emitOne(await P)))})}static merge(d){return new ib(async(E)=>{await Promise.all(d.map(async(P)=>{for await(let G of P)E.emitOne(G)}))})}static{this.EMPTY=ib.fromArray([])}static map(d,E){return new ib(async(P)=>{for await(let G of d)P.emitOne(E(G))})}static tee(d){let E,P,G=new Bve,le=async()=>{if(!E||!P)return;try{for await(let Ge of d)E.emitOne(Ge),P.emitOne(Ge)}catch(Ge){E.reject(Ge),P.reject(Ge)}finally{G.complete()}},Te=new ib(async(Ge)=>(E=Ge,le(),G.p)),ke=new ib(async(Ge)=>(P=Ge,le(),G.p));return[Te,ke]}map(d){return ib.map(this,d)}static coalesce(d){return ib.filter(d,(E)=>!!E)}coalesce(){return ib.coalesce(this)}static filter(d,E){return new ib(async(P)=>{for await(let G of d)if(E(G))P.emitOne(G)})}filter(d){return ib.filter(this,d)}_finishOk(){if(!this._producerConsumer.hasFinalValue)this._producerConsumer.produceFinal({ok:!0,value:{done:!0,value:void 0}})}_finishError(d){if(!this._producerConsumer.hasFinalValue)this._producerConsumer.produceFinal({ok:!1,error:d})}[Symbol.asyncIterator](){return this._iterator}}class Gve{constructor(d){this.values=d,this.prefixSum=new Uint32Array(d.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(d,E){d=lL(d);let P=this.values,G=this.prefixSum,le=E.length;if(le===0)return!1;if(this.values=new Uint32Array(P.length+le),this.values.set(P.subarray(0,d),0),this.values.set(P.subarray(d),d+le),this.values.set(E,d),d-1<this.prefixSumValidIndex[0])this.prefixSumValidIndex[0]=d-1;if(this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0)this.prefixSum.set(G.subarray(0,this.prefixSumValidIndex[0]+1));return!0}setValue(d,E){if(d=lL(d),E=lL(E),this.values[d]===E)return!1;if(this.values[d]=E,d-1<this.prefixSumValidIndex[0])this.prefixSumValidIndex[0]=d-1;return!0}removeValues(d,E){d=lL(d),E=lL(E);let P=this.values,G=this.prefixSum;if(d>=P.length)return!1;let le=P.length-d;if(E>=le)E=le;if(E===0)return!1;if(this.values=new Uint32Array(P.length-E),this.values.set(P.subarray(0,d),0),this.values.set(P.subarray(d+E),d),this.prefixSum=new Uint32Array(this.values.length),d-1<this.prefixSumValidIndex[0])this.prefixSumValidIndex[0]=d-1;if(this.prefixSumValidIndex[0]>=0)this.prefixSum.set(G.subarray(0,this.prefixSumValidIndex[0]+1));return!0}getTotalSum(){if(this.values.length===0)return 0;return this._getPrefixSum(this.values.length-1)}getPrefixSum(d){if(d<0)return 0;return d=lL(d),this._getPrefixSum(d)}_getPrefixSum(d){if(d<=this.prefixSumValidIndex[0])return this.prefixSum[d];let E=this.prefixSumValidIndex[0]+1;if(E===0)this.prefixSum[0]=this.values[0],E++;if(d>=this.values.length)d=this.values.length-1;for(let P=E;P<=d;P++)this.prefixSum[P]=this.prefixSum[P-1]+this.values[P];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],d),this.prefixSum[d]}getIndexOf(d){d=Math.floor(d),this.getTotalSum();let E=0,P=this.values.length-1,G=0,le=0,Te=0;while(E<=P)if(G=E+(P-E)/2|0,le=this.prefixSum[G],Te=le-this.values[G],d<Te)P=G-1;else if(d>=le)E=G+1;else break;return new P9e(G,d-Te)}}class P9e{constructor(d,E){this.index=d,this.remainder=E,this._prefixSumIndexOfResultBrand=void 0,this.index=d,this.remainder=E}}class Vve{constructor(d,E,P,G){this._uri=d,this._lines=E,this._eol=P,this._versionId=G,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}get version(){return this._versionId}getText(){if(this._cachedTextValue===null)this._cachedTextValue=this._lines.join(this._eol);return this._cachedTextValue}onEvents(d){if(d.eol&&d.eol!==this._eol)this._eol=d.eol,this._lineStarts=null;let E=d.changes;for(let P of E)this._acceptDeleteRange(P.range),this._acceptInsertText(new ws(P.range.startLineNumber,P.range.startColumn),P.text);this._versionId=d.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){let d=this._eol.length,E=this._lines.length,P=new Uint32Array(E);for(let G=0;G<E;G++)P[G]=this._lines[G].length+d;this._lineStarts=new Gve(P)}}_setLineText(d,E){if(this._lines[d]=E,this._lineStarts)this._lineStarts.setValue(d,this._lines[d].length+this._eol.length)}_acceptDeleteRange(d){if(d.startLineNumber===d.endLineNumber){if(d.startColumn===d.endColumn)return;this._setLineText(d.startLineNumber-1,this._lines[d.startLineNumber-1].substring(0,d.startColumn-1)+this._lines[d.startLineNumber-1].substring(d.endColumn-1));return}if(this._setLineText(d.startLineNumber-1,this._lines[d.startLineNumber-1].substring(0,d.startColumn-1)+this._lines[d.endLineNumber-1].substring(d.endColumn-1)),this._lines.splice(d.startLineNumber,d.endLineNumber-d.startLineNumber),this._lineStarts)this._lineStarts.removeValues(d.startLineNumber,d.endLineNumber-d.startLineNumber)}_acceptInsertText(d,E){if(E.length===0)return;let P=zFe(E);if(P.length===1){this._setLineText(d.lineNumber-1,this._lines[d.lineNumber-1].substring(0,d.column-1)+P[0]+this._lines[d.lineNumber-1].substring(d.column-1));return}P[P.length-1]+=this._lines[d.lineNumber-1].substring(d.column-1),this._setLineText(d.lineNumber-1,this._lines[d.lineNumber-1].substring(0,d.column-1)+P[0]);let G=new Uint32Array(P.length-1);for(let le=1;le<P.length;le++)this._lines.splice(d.lineNumber+le-1,0,P[le]),G[le-1]=P[le].length+this._eol.length;if(this._lineStarts)this._lineStarts.insertValues(d.lineNumber,G)}}class jve{constructor(){this._models=Object.create(null)}getModel(d){return this._models[d]}getModels(){let d=[];return Object.keys(this._models).forEach((E)=>d.push(this._models[E])),d}$acceptNewModel(d){this._models[d.url]=new L9e(pg.parse(d.url),d.lines,d.EOL,d.versionId)}$acceptModelChanged(d,E){if(!this._models[d])return;this._models[d].onEvents(E)}$acceptRemovedModel(d){if(!this._models[d])return;delete this._models[d]}}class L9e extends Vve{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(d){let E=[];for(let P=0;P<this._lines.length;P++){let G=this._lines[P],le=this.offsetAt(new ws(P+1,1)),Te=G.matchAll(d);for(let ke of Te){if(ke.index||ke.index===0)ke.index=ke.index+le;E.push(ke)}}return E}getLinesContent(){return this._lines.slice(0)}getLineCount(){return this._lines.length}getLineContent(d){return this._lines[d-1]}getWordAtPosition(d,E){let P=Tz(d.column,_ve(E),this._lines[d.lineNumber-1],0);if(P)return new jo(d.lineNumber,P.startColumn,d.lineNumber,P.endColumn);return null}words(d){let E=this._lines,P=this._wordenize.bind(this),G=0,le="",Te=0,ke=[];return{*[Symbol.iterator](){while(!0)if(Te<ke.length){let Ge=le.substring(ke[Te].start,ke[Te].end);Te+=1,yield Ge}else if(G<E.length)le=E[G],ke=P(le,d),Te=0,G+=1;else break}}}getLineWords(d,E){let P=this._lines[d-1],G=this._wordenize(P,E),le=[];for(let Te of G)le.push({word:P.substring(Te.start,Te.end),startColumn:Te.start+1,endColumn:Te.end+1});return le}_wordenize(d,E){let P=[],G;E.lastIndex=0;while(G=E.exec(d)){if(G[0].length===0)break;P.push({start:G.index,end:G.index+G[0].length})}return P}getValueInRange(d){if(d=this._validateRange(d),d.startLineNumber===d.endLineNumber)return this._lines[d.startLineNumber-1].substring(d.startColumn-1,d.endColumn-1);let E=this._eol,P=d.startLineNumber-1,G=d.endLineNumber-1,le=[];le.push(this._lines[P].substring(d.startColumn-1));for(let Te=P+1;Te<G;Te++)le.push(this._lines[Te]);return le.push(this._lines[G].substring(0,d.endColumn-1)),le.join(E)}offsetAt(d){return d=this._validatePosition(d),this._ensureLineStarts(),this._lineStarts.getPrefixSum(d.lineNumber-2)+(d.column-1)}positionAt(d){d=Math.floor(d),d=Math.max(0,d),this._ensureLineStarts();let E=this._lineStarts.getIndexOf(d),P=this._lines[E.index].length;return{lineNumber:1+E.index,column:1+Math.min(E.remainder,P)}}_validateRange(d){let E=this._validatePosition({lineNumber:d.startLineNumber,column:d.startColumn}),P=this._validatePosition({lineNumber:d.endLineNumber,column:d.endColumn});if(E.lineNumber!==d.startLineNumber||E.column!==d.startColumn||P.lineNumber!==d.endLineNumber||P.column!==d.endColumn)return{startLineNumber:E.lineNumber,startColumn:E.column,endLineNumber:P.lineNumber,endColumn:P.column};return d}_validatePosition(d){if(!ws.isIPosition(d))throw Error("bad position");let{lineNumber:E,column:P}=d,G=!1;if(E<1)E=1,P=1,G=!0;else if(E>this._lines.length)E=this._lines.length,P=this._lines[E-1].length+1,G=!0;else{let le=this._lines[E-1].length+1;if(P<1)P=1,G=!0;else if(P>le)P=le,G=!0}if(!G)return d;else return{lineNumber:E,column:P}}}class F8{constructor(d=null){this._foreignModule=d,this._requestHandlerBrand=void 0,this._workerTextModelSyncServer=new jve}dispose(){}async $ping(){return"pong"}_getModel(d){return this._workerTextModelSyncServer.getModel(d)}getModels(){return this._workerTextModelSyncServer.getModels()}$acceptNewModel(d){this._workerTextModelSyncServer.$acceptNewModel(d)}$acceptModelChanged(d,E){this._workerTextModelSyncServer.$acceptModelChanged(d,E)}$acceptRemovedModel(d){this._workerTextModelSyncServer.$acceptRemovedModel(d)}async $computeUnicodeHighlights(d,E,P){let G=this._getModel(d);if(!G)return{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0};return yve.computeUnicodeHighlights(G,E,P)}async $findSectionHeaders(d,E){let P=this._getModel(d);if(!P)return[];return C9e(P,E)}async $computeDiff(d,E,P,G){let le=this._getModel(d),Te=this._getModel(E);if(!le||!Te)return null;let ke=await g0t(G);return F8.computeDiff(le,Te,P,ke)}static computeDiff(d,E,P,G){let le=d.getLinesContent(),Te=E.getLinesContent(),ke=G.computeDiff(le,Te,P),Ge=ke.changes.length>0?!1:this._modelsAreIdentical(d,E);function ae(Mt){return Mt.map((He)=>[He.original.startLineNumber,He.original.endLineNumberExclusive,He.modified.startLineNumber,He.modified.endLineNumberExclusive,He.innerChanges?.map((nt)=>[nt.originalRange.startLineNumber,nt.originalRange.startColumn,nt.originalRange.endLineNumber,nt.originalRange.endColumn,nt.modifiedRange.startLineNumber,nt.modifiedRange.startColumn,nt.modifiedRange.endLineNumber,nt.modifiedRange.endColumn])])}return{identical:Ge,quitEarly:ke.hitTimeout,changes:ae(ke.changes),moves:ke.moves.map((Mt)=>[Mt.lineRangeMapping.original.startLineNumber,Mt.lineRangeMapping.original.endLineNumberExclusive,Mt.lineRangeMapping.modified.startLineNumber,Mt.lineRangeMapping.modified.endLineNumberExclusive,ae(Mt.changes)])}}static _modelsAreIdentical(d,E){let P=d.getLineCount(),G=E.getLineCount();if(P!==G)return!1;for(let le=1;le<=P;le++){let Te=d.getLineContent(le),ke=E.getLineContent(le);if(Te!==ke)return!1}return!0}static{this._diffLimit=1e5}async $computeMoreMinimalEdits(d,E,P){let G=this._getModel(d);if(!G)return E;let le=[],Te=void 0;E=E.slice(0).sort((Ge,ae)=>{if(Ge.range&&ae.range)return jo.compareRangesUsingStarts(Ge.range,ae.range);let Mt=Ge.range?0:1,He=ae.range?0:1;return Mt-He});let ke=0;for(let Ge=1;Ge<E.length;Ge++)if(jo.getEndPosition(E[ke].range).equals(jo.getStartPosition(E[Ge].range)))E[ke].range=jo.fromPositions(jo.getStartPosition(E[ke].range),jo.getEndPosition(E[Ge].range)),E[ke].text+=E[Ge].text;else ke++,E[ke]=E[Ge];E.length=ke+1;for(let{range:Ge,text:ae,eol:Mt}of E){if(typeof Mt==="number")Te=Mt;if(jo.isEmpty(Ge)&&!ae)continue;let He=G.getValueInRange(Ge);if(ae=ae.replace(/\r\n|\n|\r/g,G.eol),He===ae)continue;if(Math.max(ae.length,He.length)>F8._diffLimit){le.push({range:Ge,text:ae});continue}let nt=o7e(He,ae,P),nr=G.offsetAt(jo.lift(Ge).getStartPosition());for(let Mn of nt){let rr=G.positionAt(nr+Mn.originalStart),cr=G.positionAt(nr+Mn.originalStart+Mn.originalLength),Ji={text:ae.substr(Mn.modifiedStart,Mn.modifiedLength),range:{startLineNumber:rr.lineNumber,startColumn:rr.column,endLineNumber:cr.lineNumber,endColumn:cr.column}};if(G.getValueInRange(Ji.range)!==Ji.text)le.push(Ji)}}if(typeof Te==="number")le.push({eol:Te,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}});return le}async $computeLinks(d){let E=this._getModel(d);if(!E)return null;return l7e(E)}async $computeDefaultDocumentColors(d){let E=this._getModel(d);if(!E)return null;return R9e(E)}static{this._suggestionsLimit=1e4}async $textualSuggest(d,E,P,G){let le=new C8,Te=new RegExp(P,G),ke=new Set;e:for(let Ge of d){let ae=this._getModel(Ge);if(!ae)continue;for(let Mt of ae.words(Te)){if(Mt===E||!isNaN(Number(Mt)))continue;if(ke.add(Mt),ke.size>F8._suggestionsLimit)break e}}return{words:Array.from(ke),duration:le.elapsed()}}async $computeWordRanges(d,E,P,G){let le=this._getModel(d);if(!le)return Object.create(null);let Te=new RegExp(P,G),ke=Object.create(null);for(let Ge=E.startLineNumber;Ge<E.endLineNumber;Ge++){let ae=le.getLineWords(Ge,Te);for(let Mt of ae){if(!isNaN(Number(Mt.word)))continue;let He=ke[Mt.word];if(!He)He=[],ke[Mt.word]=He;He.push({startLineNumber:Ge,startColumn:Mt.startColumn,endLineNumber:Ge,endColumn:Mt.endColumn})}}return ke}async $navigateValueSet(d,E,P,G,le){let Te=this._getModel(d);if(!Te)return null;let ke=new RegExp(G,le);if(E.startColumn===E.endColumn)E={startLineNumber:E.startLineNumber,startColumn:E.startColumn,endLineNumber:E.endLineNumber,endColumn:E.endColumn+1};let Ge=Te.getValueInRange(E),ae=Te.getWordAtPosition({lineNumber:E.startLineNumber,column:E.startColumn},ke);if(!ae)return null;let Mt=Te.getValueInRange(ae);return hQ.INSTANCE.navigateValueSet(E,Ge,ae,Mt,P)}$fmr(d,E){if(!this._foreignModule||typeof this._foreignModule[d]!=="function")return Promise.reject(Error("Missing requestHandler or method: "+d));try{return Promise.resolve(this._foreignModule[d].apply(this._foreignModule,E))}catch(P){return Promise.reject(P)}}}if(typeof importScripts==="function")globalThis.monaco=R5e();function g0t(d){switch(d){case"legacy":return Mz.getLegacy();case"advanced":return Mz.getDefault();case"advanced-external":return Mz.getAdvancedExternal();case"advanced-wasm":return Mz.getAdvancedWasm()}}class wz{static{this.CHANNEL_NAME="editorWorkerHost"}static getChannel(d){return d.getChannel(wz.CHANNEL_NAME)}static setChannel(d,E){d.setChannel(wz.CHANNEL_NAME,E)}}function w9e(d){let E,P=QFe((G)=>{let le=wz.getChannel(G),ke={host:new Proxy({},{get(Ge,ae,Mt){if(ae==="then")return;if(typeof ae!=="string")throw Error("Not supported");return(...He)=>le.$fhr(ae,He)}}),getMirrorModels:()=>P.requestHandler.getModels()};return E=d(ke),new F8(E)});return E}var y0t=!1;function k9e(d){y0t=!0,self.onmessage=(E)=>{w9e((P)=>d(P,E.data))}}var v0t=void 0;/*! *****************************************************************************
|
|
31
31
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
32
32
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
33
33
|
this file except in compliance with the License. You may obtain a copy of the
|
|
@@ -67732,5 +67732,5 @@ interface WebGLRenderingContextOverloads {
|
|
|
67732
67732
|
}
|
|
67733
67733
|
`;function sh(d){if(typeof d==="string"){if(/^file:\/\/\//.test(d))return!!Gi[d.substr(8)];return!1}if(d.path.indexOf("/lib.")===0)return!!Gi[d.path.slice(1)];return!1}class PR{constructor(d,E){this._extraLibs=Object.create(null),this._languageService=Uve(this),this._ctx=d,this._compilerOptions=E.compilerOptions,this._extraLibs=E.extraLibs,this._inlayHintsOptions=E.inlayHintsOptions}getCompilationSettings(){return this._compilerOptions}getLanguageService(){return this._languageService}getExtraLibs(){return this._extraLibs}getScriptFileNames(){return this._ctx.getMirrorModels().map((P)=>P.uri).filter((P)=>!sh(P)).map((P)=>P.toString()).concat(Object.keys(this._extraLibs))}_getModel(d){let E=this._ctx.getMirrorModels();for(let P=0;P<E.length;P++){let G=E[P].uri;if(G.toString()===d||G.toString(!0)===d)return E[P]}return null}getScriptVersion(d){let E=this._getModel(d);if(E)return E.version.toString();else if(this.isDefaultLibFileName(d))return"1";else if(d in this._extraLibs)return String(this._extraLibs[d].version);return""}async getScriptText(d){return this._getScriptText(d)}_getScriptText(d){let E,P=this._getModel(d),G="lib."+d+".d.ts";if(P)E=P.getValue();else if(d in Gi)E=Gi[d];else if(G in Gi)E=Gi[G];else if(d in this._extraLibs)E=this._extraLibs[d].content;else return;return E}getScriptSnapshot(d){let E=this._getScriptText(d);if(E===void 0)return;return{getText:(P,G)=>E.substring(P,G),getLength:()=>E.length,getChangeRange:()=>{return}}}getScriptKind(d){switch(d.substr(d.lastIndexOf(".")+1)){case"ts":return vN.TS;case"tsx":return vN.TSX;case"js":return vN.JS;case"jsx":return vN.JSX;default:return this.getCompilationSettings().allowJs?vN.JS:vN.TS}}getCurrentDirectory(){return""}getDefaultLibFileName(d){switch(d.target){case 99:if("lib.esnext.full.d.ts"in Gi||"lib.esnext.full.d.ts"in this._extraLibs)return"lib.esnext.full.d.ts";case 7:case 6:case 5:case 4:case 3:case 2:default:let P=`lib.es${2013+(d.target||99)}.full.d.ts`;if(P in Gi||P in this._extraLibs)return P;return"lib.es6.d.ts";case 1:case 0:return"lib.d.ts"}}isDefaultLibFileName(d){return d===this.getDefaultLibFileName(this._compilerOptions)}readFile(d){return this._getScriptText(d)}fileExists(d){return this._getScriptText(d)!==void 0}async getLibFiles(){return Gi}static clearFiles(d){let E=[];for(let P of d){let G={...P};if(G.file=G.file?{fileName:G.file.fileName}:void 0,P.relatedInformation){G.relatedInformation=[];for(let le of P.relatedInformation){let Te={...le};Te.file=Te.file?{fileName:Te.file.fileName}:void 0,G.relatedInformation.push(Te)}}E.push(G)}return E}async getSyntacticDiagnostics(d){if(sh(d))return[];let E=this._languageService.getSyntacticDiagnostics(d);return PR.clearFiles(E)}async getSemanticDiagnostics(d){if(sh(d))return[];let E=this._languageService.getSemanticDiagnostics(d);return PR.clearFiles(E)}async getSuggestionDiagnostics(d){if(sh(d))return[];let E=this._languageService.getSuggestionDiagnostics(d);return PR.clearFiles(E)}async getCompilerOptionsDiagnostics(d){if(sh(d))return[];let E=this._languageService.getCompilerOptionsDiagnostics();return PR.clearFiles(E)}async getCompletionsAtPosition(d,E){if(sh(d))return;return this._languageService.getCompletionsAtPosition(d,E,void 0)}async getCompletionEntryDetails(d,E,P){return this._languageService.getCompletionEntryDetails(d,E,P,void 0,void 0,void 0,void 0)}async getSignatureHelpItems(d,E,P){if(sh(d))return;return this._languageService.getSignatureHelpItems(d,E,P)}async getQuickInfoAtPosition(d,E){if(sh(d))return;return this._languageService.getQuickInfoAtPosition(d,E)}async getDocumentHighlights(d,E,P){if(sh(d))return;return this._languageService.getDocumentHighlights(d,E,P)}async getDefinitionAtPosition(d,E){if(sh(d))return;return this._languageService.getDefinitionAtPosition(d,E)}async getReferencesAtPosition(d,E){if(sh(d))return;return this._languageService.getReferencesAtPosition(d,E)}async getNavigationTree(d){if(sh(d))return;return this._languageService.getNavigationTree(d)}async getFormattingEditsForDocument(d,E){if(sh(d))return[];return this._languageService.getFormattingEditsForDocument(d,E)}async getFormattingEditsForRange(d,E,P,G){if(sh(d))return[];return this._languageService.getFormattingEditsForRange(d,E,P,G)}async getFormattingEditsAfterKeystroke(d,E,P,G){if(sh(d))return[];return this._languageService.getFormattingEditsAfterKeystroke(d,E,P,G)}async findRenameLocations(d,E,P,G,le){if(sh(d))return;return this._languageService.findRenameLocations(d,E,P,G,le)}async getRenameInfo(d,E,P){if(sh(d))return{canRename:!1,localizedErrorMessage:"Cannot rename in lib file"};return this._languageService.getRenameInfo(d,E,P)}async getEmitOutput(d,E,P){if(sh(d))return{outputFiles:[],emitSkipped:!0};let G=this._languageService.getEmitOutput(d,E,P),le=G.diagnostics?PR.clearFiles(G.diagnostics):void 0;return{...G,diagnostics:le}}async getCodeFixesAtPosition(d,E,P,G,le){if(sh(d))return[];let Te={};try{return this._languageService.getCodeFixesAtPosition(d,E,P,G,le,Te)}catch{return[]}}async updateExtraLibs(d){this._extraLibs=d}async provideInlayHints(d,E,P){if(sh(d))return[];let G=this._inlayHintsOptions??{},le={start:E,length:P-E};try{return this._languageService.provideInlayHints(d,le,G)}catch{return[]}}}function O9e(d,E){let P=PR;if(E.customWorkerPath)if(typeof importScripts>"u")console.warn("Monaco is not using webworkers for background tasks, and that is needed to support the customWorkerPath flag");else{self.importScripts(E.customWorkerPath);let G=self.customTSWorkerFactory;if(!G)throw Error(`The script at ${E.customWorkerPath} does not add customTSWorkerFactory to self`);P=G(PR,MQ,Gi)}return new P(d,E)}globalThis.ts=Hve;self.onmessage=()=>{k9e((d,E)=>O9e(d,E))};export{PR as TypeScriptWorker,O9e as create,k9e as initialize,Gi as libFileMap,MQ as ts};
|
|
67734
67734
|
|
|
67735
|
-
//# debugId=
|
|
67735
|
+
//# debugId=450D788B255D9E5B64756E2164756E21
|
|
67736
67736
|
//# sourceMappingURL=ts.worker.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jxsuite/studio",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.2",
|
|
4
4
|
"description": "Jx Studio — visual builder for Jx documents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -63,15 +63,15 @@
|
|
|
63
63
|
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^3.0.0",
|
|
64
64
|
"@jxsuite/ai": "^0.39.3",
|
|
65
65
|
"@jxsuite/collab": "^0.11.1",
|
|
66
|
-
"@jxsuite/create": "^1.3.
|
|
67
|
-
"@jxsuite/formulas": "^0.0.
|
|
66
|
+
"@jxsuite/create": "^1.3.14",
|
|
67
|
+
"@jxsuite/formulas": "^0.0.21",
|
|
68
68
|
"@jxsuite/markup": "^0.4.12",
|
|
69
69
|
"@jxsuite/protocol": "^2.6.1",
|
|
70
|
-
"@jxsuite/runtime": "^4.0
|
|
70
|
+
"@jxsuite/runtime": "^4.1.0",
|
|
71
71
|
"@jxsuite/schema": "^3.0.0",
|
|
72
|
-
"@jxsuite/site": "^2.0.
|
|
73
|
-
"@jxsuite/ui": "^0.5.
|
|
74
|
-
"@vue/reactivity": "3.5.
|
|
72
|
+
"@jxsuite/site": "^2.0.4",
|
|
73
|
+
"@jxsuite/ui": "^0.5.1",
|
|
74
|
+
"@vue/reactivity": "3.5.44",
|
|
75
75
|
"ajv": "^8.20.0",
|
|
76
76
|
"ajv-formats": "^3.0.1",
|
|
77
77
|
"lit-html": "^3.3.3",
|
|
@@ -80,11 +80,11 @@
|
|
|
80
80
|
"yaml": "^2.9.1"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
|
-
"@happy-dom/global-registrator": "^
|
|
83
|
+
"@happy-dom/global-registrator": "^21.0.3",
|
|
84
84
|
"@types/mdast": "^4.0.4",
|
|
85
|
-
"@webref/css": "^8.7.
|
|
86
|
-
"@webref/elements": "^2.9.
|
|
87
|
-
"@webref/idl": "^3.85.
|
|
85
|
+
"@webref/css": "^8.7.7",
|
|
86
|
+
"@webref/elements": "^2.9.2",
|
|
87
|
+
"@webref/idl": "^3.85.2"
|
|
88
88
|
},
|
|
89
89
|
"//vue-reactivity": "Exact pin required — must match @jxsuite/runtime to avoid cross-boundary proxy bugs"
|
|
90
90
|
}
|
package/src/about/about-modal.ts
CHANGED
|
@@ -20,9 +20,10 @@ import { openAboutSurface } from "../surfaces/about";
|
|
|
20
20
|
import { layerHost } from "../ui/layers";
|
|
21
21
|
import { getPlatform } from "../platform";
|
|
22
22
|
import { APP_NAME, BUILD_DATE, GIT_COMMIT, LINKS, VERSION } from "../version";
|
|
23
|
-
import type {
|
|
23
|
+
import type { AboutSurfaceHandle } from "../surfaces/about";
|
|
24
24
|
import type { AppInfo } from "../types";
|
|
25
25
|
import type { Command, CommandRegistry } from "../commands/registry";
|
|
26
|
+
import type { SurfaceOption } from "../ui/surface";
|
|
26
27
|
|
|
27
28
|
let _handle: AboutSurfaceHandle | null = null;
|
|
28
29
|
|
|
@@ -36,8 +37,8 @@ function formatBuildDate(iso: string): string {
|
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
/** The metadata rows, with the desktop's two appended when the platform reported them. */
|
|
39
|
-
function metaRows(info: AppInfo | null):
|
|
40
|
-
const rows:
|
|
40
|
+
function metaRows(info: AppInfo | null): SurfaceOption[] {
|
|
41
|
+
const rows: SurfaceOption[] = [
|
|
41
42
|
{ label: "Version", value: VERSION },
|
|
42
43
|
{ label: "Build date", value: formatBuildDate(BUILD_DATE) },
|
|
43
44
|
{ label: "Commit", value: GIT_COMMIT },
|
|
@@ -22,12 +22,14 @@
|
|
|
22
22
|
* @docs studio/interface/welcome-screen
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
|
+
import { isFunction } from "@jxsuite/schema/guards";
|
|
25
26
|
import { hydrateAccountStatus, takeToastNotices } from "../account-status";
|
|
26
27
|
import { getPlatform, hasPlatform } from "../platform";
|
|
27
28
|
import { platformErrorInfo } from "../platform-errors";
|
|
28
29
|
import { notify } from "../services/notify";
|
|
29
30
|
import { resetModelCache } from "../services/ai-models";
|
|
30
31
|
import { openDialogSurface } from "../surfaces/dialog";
|
|
32
|
+
import type { DialogSurfaceOptions } from "../surfaces/dialog";
|
|
31
33
|
import { layerHost } from "../ui/layers";
|
|
32
34
|
import { onActionRequired } from "./action-required";
|
|
33
35
|
import type { ActionRequiredReport } from "./action-required";
|
|
@@ -43,7 +45,7 @@ export interface ActionPrompt {
|
|
|
43
45
|
|
|
44
46
|
/** Whether this platform can perform an offered action at all. */
|
|
45
47
|
export function canPerformActions(): boolean {
|
|
46
|
-
return hasPlatform() &&
|
|
48
|
+
return hasPlatform() && isFunction(getPlatform().performAction);
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
/** The action a surface leads with — the one marked primary, else the first — and one other. */
|
|
@@ -87,14 +89,14 @@ export function promptAction(prompt: ActionPrompt): Promise<boolean> {
|
|
|
87
89
|
* whether the caller should now try again: false for any other error (nothing was offered) and for
|
|
88
90
|
* an offer declined.
|
|
89
91
|
*/
|
|
90
|
-
export async function actIfRequired(
|
|
91
|
-
const info = platformErrorInfo(
|
|
92
|
+
export async function actIfRequired(cause: unknown): Promise<boolean> {
|
|
93
|
+
const info = platformErrorInfo(cause);
|
|
92
94
|
if (info.code !== "action-required" || !info.actions?.length) {
|
|
93
95
|
return false;
|
|
94
96
|
}
|
|
95
97
|
return promptAction({
|
|
96
98
|
actions: info.actions,
|
|
97
|
-
detail:
|
|
99
|
+
detail: cause instanceof Error ? cause.message : undefined,
|
|
98
100
|
heading: info.heading,
|
|
99
101
|
retry: info.retry,
|
|
100
102
|
});
|
|
@@ -137,6 +139,35 @@ function offer(
|
|
|
137
139
|
});
|
|
138
140
|
};
|
|
139
141
|
|
|
142
|
+
/* Follow a started action to its end. A function of its own rather than inline, so `phase` is
|
|
143
|
+
read as it stands when the action settles, not as it stood when the action began. */
|
|
144
|
+
const follow = async (flow: Promise<ActionOutcome | null>) => {
|
|
145
|
+
let outcome: ActionOutcome | null;
|
|
146
|
+
try {
|
|
147
|
+
outcome = await flow;
|
|
148
|
+
} catch (error) {
|
|
149
|
+
if (phase === "waiting") {
|
|
150
|
+
offerAgain(error instanceof Error ? error.message : String(error));
|
|
151
|
+
}
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
/* A done action is re-read even when the dialog is already gone — the user may have
|
|
155
|
+
dismissed the waiting dialog and finished in the window anyway, and the account must
|
|
156
|
+
not go on saying otherwise. */
|
|
157
|
+
if (outcome?.status === "done") {
|
|
158
|
+
await settleDone();
|
|
159
|
+
finish(true);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (phase !== "waiting" || !outcome || outcome.status === "redirect") {
|
|
163
|
+
// Dismissed meanwhile, or the page is navigating to the action: nothing to draw.
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
// Closed without saying: the account may have changed anyway, so re-read it, and offer again.
|
|
167
|
+
void hydrateAccountStatus();
|
|
168
|
+
offerAgain(message);
|
|
169
|
+
};
|
|
170
|
+
|
|
140
171
|
const begin = (action: OfferedAction) => {
|
|
141
172
|
if (phase !== "offer") {
|
|
142
173
|
return;
|
|
@@ -157,34 +188,11 @@ function offer(
|
|
|
157
188
|
message: "Finish in the window that opened. This closes by itself once it is done.",
|
|
158
189
|
secondaryLabel: "",
|
|
159
190
|
});
|
|
160
|
-
void flow
|
|
161
|
-
async (outcome) => {
|
|
162
|
-
/* A done action is re-read even when the dialog is already gone — the user may have
|
|
163
|
-
dismissed the waiting dialog and finished in the window anyway, and the account must
|
|
164
|
-
not go on saying otherwise. */
|
|
165
|
-
if (outcome?.status === "done") {
|
|
166
|
-
await settleDone();
|
|
167
|
-
finish(true);
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
if (phase !== "waiting" || !outcome || outcome.status === "redirect") {
|
|
171
|
-
// Dismissed meanwhile, or the page is navigating to the action: nothing to draw.
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
// Closed without saying: the account may have changed anyway, so re-read it, and offer again.
|
|
175
|
-
void hydrateAccountStatus();
|
|
176
|
-
offerAgain(message);
|
|
177
|
-
},
|
|
178
|
-
(error: unknown) => {
|
|
179
|
-
if (phase === "waiting") {
|
|
180
|
-
offerAgain(error instanceof Error ? error.message : String(error));
|
|
181
|
-
}
|
|
182
|
-
},
|
|
183
|
-
);
|
|
191
|
+
void follow(flow);
|
|
184
192
|
};
|
|
185
193
|
|
|
186
194
|
const { lead, other } = leading;
|
|
187
|
-
const
|
|
195
|
+
const options: DialogSurfaceOptions = {
|
|
188
196
|
cancelLabel: "Not now",
|
|
189
197
|
confirmLabel: lead.label,
|
|
190
198
|
headline: prompt.heading ?? "One more step",
|
|
@@ -201,15 +209,14 @@ function offer(
|
|
|
201
209
|
begin(lead);
|
|
202
210
|
},
|
|
203
211
|
region: "account/action",
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
});
|
|
212
|
+
};
|
|
213
|
+
if (other) {
|
|
214
|
+
options.onSecondary = () => {
|
|
215
|
+
begin(other);
|
|
216
|
+
};
|
|
217
|
+
options.secondaryLabel = other.label;
|
|
218
|
+
}
|
|
219
|
+
const handle = openDialogSurface(options);
|
|
213
220
|
});
|
|
214
221
|
}
|
|
215
222
|
|
package/src/account-status.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* (studio.ts) like the project-list cache; the welcome screen reads it synchronously to prompt
|
|
5
5
|
* "install the GitHub App" when the user has no repository access yet.
|
|
6
6
|
*/
|
|
7
|
+
import { isFunction } from "@jxsuite/schema/guards";
|
|
7
8
|
import { getPlatform, hasPlatform } from "./platform";
|
|
8
9
|
import type { AccountEntry, AccountNotice, AccountStatus } from "./types";
|
|
9
10
|
|
|
@@ -11,7 +12,7 @@ let cache: AccountStatus | null = null;
|
|
|
11
12
|
|
|
12
13
|
/** Refresh the cache from the platform; null when unsupported, failing, or unknown. */
|
|
13
14
|
export async function hydrateAccountStatus(): Promise<void> {
|
|
14
|
-
if (!hasPlatform() ||
|
|
15
|
+
if (!hasPlatform() || !isFunction(getPlatform().getAccountStatus)) {
|
|
15
16
|
cache = null;
|
|
16
17
|
return;
|
|
17
18
|
}
|
|
@@ -59,7 +60,11 @@ export function getRepoAccessLinks(): RepoAccessLinks | null {
|
|
|
59
60
|
if (manage.length === 0 && !cache.appInstallUrl) {
|
|
60
61
|
return null;
|
|
61
62
|
}
|
|
62
|
-
|
|
63
|
+
const links: RepoAccessLinks = { manage };
|
|
64
|
+
if (cache.appInstallUrl) {
|
|
65
|
+
links.installUrl = cache.appInstallUrl;
|
|
66
|
+
}
|
|
67
|
+
return links;
|
|
63
68
|
}
|
|
64
69
|
|
|
65
70
|
/** The rows the platform adds to Preferences › Accounts (desktop.md §10.4); none when absent. */
|
|
@@ -128,7 +128,7 @@ export function cellText(file: LibraryFile, field: string): string {
|
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
/** Row-shaped access for a caller holding grid cells rather than the typed record. */
|
|
131
|
-
export function cellTextOf(value: GridCellValue): string {
|
|
131
|
+
export function cellTextOf(value: GridCellValue | undefined): string {
|
|
132
132
|
return value === null || value === undefined ? "" : String(value);
|
|
133
133
|
}
|
|
134
134
|
|
|
@@ -172,6 +172,12 @@ function nameRow(file: LibraryFile): LibraryRow {
|
|
|
172
172
|
|
|
173
173
|
// ─── Calendar ────────────────────────────────────────────────────────────────
|
|
174
174
|
|
|
175
|
+
/** The calendar layout: its day sections, and the sentence naming the older days it left out. */
|
|
176
|
+
export interface CalendarView {
|
|
177
|
+
groups: LibraryGroup[];
|
|
178
|
+
truncated: string;
|
|
179
|
+
}
|
|
180
|
+
|
|
175
181
|
/**
|
|
176
182
|
* Calendar: one section per day, newest first, plus an explicit account of what it did not place.
|
|
177
183
|
*
|
|
@@ -181,10 +187,7 @@ function nameRow(file: LibraryFile): LibraryRow {
|
|
|
181
187
|
*
|
|
182
188
|
* @returns The day sections, and the sentence naming the older days it did not draw.
|
|
183
189
|
*/
|
|
184
|
-
export function calendarView(files: readonly LibraryFile[]): {
|
|
185
|
-
groups: LibraryGroup[];
|
|
186
|
-
truncated: string;
|
|
187
|
-
} {
|
|
190
|
+
export function calendarView(files: readonly LibraryFile[]): CalendarView {
|
|
188
191
|
const { days, undated } = groupByDate(files);
|
|
189
192
|
const shown = days.slice(0, CALENDAR_DAY_LIMIT);
|
|
190
193
|
const hiddenDays = days.length - shown.length;
|
|
@@ -140,6 +140,9 @@ export function categoryFor(dir: string, ext: string): string {
|
|
|
140
140
|
* @returns {string | null}
|
|
141
141
|
*/
|
|
142
142
|
export function contentTypeFor(filePath: string): string | null {
|
|
143
|
+
/* SAFETY: `content` is the parser extension's opaque project section, which its project fragment
|
|
144
|
+
schema defines as a map of section entries; the loop reads only the optional `source`, and skips
|
|
145
|
+
an entry without one. */
|
|
143
146
|
const content = (projectState?.projectConfig?.content ?? {}) as Record<
|
|
144
147
|
string,
|
|
145
148
|
ContentSectionEntry
|
|
@@ -199,7 +202,7 @@ async function walk(
|
|
|
199
202
|
name: entry.name,
|
|
200
203
|
path: entry.path,
|
|
201
204
|
size: entry.size,
|
|
202
|
-
type: category === "Content" ? (contentTypeFor(entry.path) ?? ext
|
|
205
|
+
type: category === "Content" ? (contentTypeFor(entry.path) ?? ext) : ext || "file",
|
|
203
206
|
});
|
|
204
207
|
}
|
|
205
208
|
// Siblings in parallel, depth serialized per branch: the platform counts every call as in-flight,
|
|
@@ -278,7 +281,7 @@ export const LIBRARY_LAYOUT_LABELS: Readonly<Record<LibraryLayout, string>> = {
|
|
|
278
281
|
|
|
279
282
|
/** Whether a string names a layout — the guard behind `library.setLayout`'s argument. */
|
|
280
283
|
export function isLibraryLayout(value: string): value is LibraryLayout {
|
|
281
|
-
return (
|
|
284
|
+
return LIBRARY_LAYOUTS.some((layout) => layout === value);
|
|
282
285
|
}
|
|
283
286
|
|
|
284
287
|
/** Layouts that draw a live preview per item. Table and Board draw text, and stay cheap. */
|
|
@@ -345,11 +348,20 @@ export function libraryLocales(files: readonly LibraryFile[]): string[] {
|
|
|
345
348
|
return projectLocales().filter((tag) => present.has(tag));
|
|
346
349
|
}
|
|
347
350
|
|
|
351
|
+
/** One Calendar day: the files whose derived date is `date`. */
|
|
352
|
+
export interface LibraryDay {
|
|
353
|
+
date: string;
|
|
354
|
+
files: LibraryFile[];
|
|
355
|
+
}
|
|
356
|
+
|
|
348
357
|
/** Calendar buckets, newest day first, plus the files no date could be derived for. */
|
|
349
|
-
export
|
|
350
|
-
days:
|
|
358
|
+
export interface LibraryDateGroups {
|
|
359
|
+
days: LibraryDay[];
|
|
351
360
|
undated: LibraryFile[];
|
|
352
|
-
}
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/** Calendar buckets, newest day first, plus the files no date could be derived for. */
|
|
364
|
+
export function groupByDate(files: readonly LibraryFile[]): LibraryDateGroups {
|
|
353
365
|
const byDay = new Map<string, LibraryFile[]>();
|
|
354
366
|
const undated: LibraryFile[] = [];
|
|
355
367
|
for (const file of files) {
|
|
@@ -366,7 +378,7 @@ export function groupByDate(files: readonly LibraryFile[]): {
|
|
|
366
378
|
}
|
|
367
379
|
}
|
|
368
380
|
const days = [...byDay.entries()]
|
|
369
|
-
.map(([date, dayFiles]) => ({ date, files: dayFiles }))
|
|
381
|
+
.map(([date, dayFiles]): LibraryDay => ({ date, files: dayFiles }))
|
|
370
382
|
.toSorted((a, b) => b.date.localeCompare(a.date));
|
|
371
383
|
return { days, undated };
|
|
372
384
|
}
|
|
@@ -35,6 +35,7 @@ import { errorMessage } from "@jxsuite/schema/parse";
|
|
|
35
35
|
import { notify } from "../services/notify";
|
|
36
36
|
import { beginActivity } from "../panels/activity-panel";
|
|
37
37
|
import { showPromptDialog } from "../ui/layers";
|
|
38
|
+
import type { PromptDialogOptions } from "../ui/layers";
|
|
38
39
|
import { openMenu } from "../surfaces/menu";
|
|
39
40
|
import { rectOf } from "../utils/geometry";
|
|
40
41
|
import { getPlatform } from "../platform";
|
|
@@ -63,7 +64,7 @@ import { paneRegion } from "../ui/regions";
|
|
|
63
64
|
import { LAYOUT_METRICS, boardView, calendarView, columnsAt, libraryRow } from "./library-layouts";
|
|
64
65
|
import { mountLibrarySurface } from "../surfaces/library-pane";
|
|
65
66
|
import type { ActivityHandle } from "../panels/activity-panel";
|
|
66
|
-
import type { FormatChoice } from "../files/files";
|
|
67
|
+
import type { FormatChoice, NewFileRequest } from "../files/files";
|
|
67
68
|
import type { EffectScope } from "@vue/reactivity";
|
|
68
69
|
import type { MenuHandle, MenuRowProjection } from "../surfaces/menu";
|
|
69
70
|
import type { LibraryFile, LibraryLayout } from "./library-model";
|
|
@@ -195,13 +196,18 @@ const SCAN_PROBLEM_KEY = "library.scan";
|
|
|
195
196
|
* contract exists to end. The row is informational, and it only appears when the scan is slow
|
|
196
197
|
* enough that its absence would look like a hang.
|
|
197
198
|
*/
|
|
199
|
+
/** The scan's Activity row, filled in only once the scan outlasts {@link SCAN_ACTIVITY_DELAY_MS}. */
|
|
200
|
+
interface SlowScanActivity {
|
|
201
|
+
handle: ActivityHandle | null;
|
|
202
|
+
}
|
|
203
|
+
|
|
198
204
|
async function loadLibrary(): Promise<void> {
|
|
199
205
|
const current = librarySource();
|
|
200
206
|
scanAttempted = true;
|
|
201
207
|
libraryView.loading = true;
|
|
202
208
|
bump();
|
|
203
209
|
|
|
204
|
-
const slow:
|
|
210
|
+
const slow: SlowScanActivity = { handle: null };
|
|
205
211
|
const timer = setTimeout(() => {
|
|
206
212
|
slow.handle = beginActivity({
|
|
207
213
|
source: "Library",
|
|
@@ -584,13 +590,16 @@ function showLibraryNewMenu(opener: HTMLElement): void {
|
|
|
584
590
|
*/
|
|
585
591
|
async function renameLibraryFile(file: LibraryFile) {
|
|
586
592
|
const message = await renamePromptMessage(file.path);
|
|
587
|
-
const
|
|
593
|
+
const prompt: PromptDialogOptions = {
|
|
588
594
|
confirmLabel: "Rename",
|
|
589
|
-
...(message === undefined ? {} : { message }),
|
|
590
595
|
select: "stem",
|
|
591
596
|
validate: (value) => (value.trim() ? "" : "Enter a file name."),
|
|
592
597
|
value: file.name,
|
|
593
|
-
}
|
|
598
|
+
};
|
|
599
|
+
if (message !== undefined) {
|
|
600
|
+
prompt.message = message;
|
|
601
|
+
}
|
|
602
|
+
const newName = await showPromptDialog("Rename", prompt);
|
|
594
603
|
if (!newName || newName === file.name) {
|
|
595
604
|
return;
|
|
596
605
|
}
|
|
@@ -724,11 +733,11 @@ export function libraryNewEntries(): LibraryNewEntry[] {
|
|
|
724
733
|
* through the format's own serializer, because this module knows no format's syntax.
|
|
725
734
|
*/
|
|
726
735
|
/** How each document kind's extension is settled. Anything else falls back to the full picker. */
|
|
727
|
-
const FORMAT_CHOICE_BY_KIND
|
|
728
|
-
component
|
|
729
|
-
layout
|
|
730
|
-
page
|
|
731
|
-
|
|
736
|
+
const FORMAT_CHOICE_BY_KIND = new Map<string, FormatChoice>([
|
|
737
|
+
["component", { defaultExt: ".json", docKind: "component", kind: "choose" }],
|
|
738
|
+
["layout", { ext: ".json", kind: "fixed" }],
|
|
739
|
+
["page", { defaultExt: ".json", docKind: "page", kind: "choose" }],
|
|
740
|
+
]);
|
|
732
741
|
|
|
733
742
|
/**
|
|
734
743
|
* The body a new component starts as, when the reader picked a format rather than `.json`.
|
|
@@ -767,17 +776,22 @@ export async function createLibraryEntry(key: string): Promise<string | null> {
|
|
|
767
776
|
if (!entry) {
|
|
768
777
|
return null;
|
|
769
778
|
}
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
779
|
+
let created: string | null;
|
|
780
|
+
if (entry.collection === undefined) {
|
|
781
|
+
const request: NewFileRequest = {
|
|
782
|
+
dir: entry.dir,
|
|
783
|
+
format: FORMAT_CHOICE_BY_KIND.get(entry.key) ?? { defaultExt: ".json", kind: "choose" },
|
|
784
|
+
source: "Library",
|
|
785
|
+
suggestedName: "untitled",
|
|
786
|
+
title: `New ${entry.label}`,
|
|
787
|
+
};
|
|
788
|
+
if (entry.key === "component") {
|
|
789
|
+
request.content = componentSeed;
|
|
790
|
+
}
|
|
791
|
+
created = await createFileIn(request);
|
|
792
|
+
} else {
|
|
793
|
+
created = await createEntry(entry.collection);
|
|
794
|
+
}
|
|
781
795
|
if (created === null) {
|
|
782
796
|
return null;
|
|
783
797
|
}
|
|
@@ -1017,6 +1031,8 @@ export function renderLibraryMode(surface: CanvasSurface, tab: Tab): void {
|
|
|
1017
1031
|
},
|
|
1018
1032
|
search: (value) => setLibrarySearch(value),
|
|
1019
1033
|
setCategory: (key) => setLibraryCategory(key),
|
|
1034
|
+
/* SAFETY: the surface's layout buttons pass `$map.item.key`, and the `layouts` state they map is
|
|
1035
|
+
built from LIBRARY_LAYOUTS in the projection above, so every key is a LibraryLayout. */
|
|
1020
1036
|
setLayout: (key) => setLibraryLayout(key as LibraryLayout),
|
|
1021
1037
|
setLocale: (value) => setLibraryLocale(value === "all" ? "" : value),
|
|
1022
1038
|
upload: (input) => {
|