@jxsuite/studio 4.1.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/data/elements-meta.json +5 -15
- package/data/html-meta.json +51 -6
- package/dist/chunks/{2020-n6tfwnda.js → 2020-g79n01v9.js} +14 -14
- package/dist/chunks/action-group-sp6tna8v.js +118 -0
- package/dist/chunks/adapter-nj7tnjfn.js +13 -0
- package/dist/chunks/cf-account-picker-fyf63pmy.js +495 -0
- package/dist/chunks/cf-settings-71bv5zn9.js +20 -0
- package/dist/chunks/color-area-v17df7b8.js +154 -0
- package/dist/chunks/color-field-anwybnkn.js +208 -0
- package/dist/chunks/color-slider-44ez96fc.js +79 -0
- package/dist/chunks/color-xgg3kfw7.js +35 -0
- package/dist/chunks/combobox-5e7jev23.js +236 -0
- package/dist/chunks/components-2w1f35qs.js +18 -0
- package/dist/chunks/content-source-3wqeas45.js +46 -0
- package/dist/chunks/convert-to-repeater-d0cgnb6d.js +639 -0
- package/dist/chunks/dialog-s890b918.js +85 -0
- package/dist/chunks/editor-3qhbg51x.js +35 -0
- package/dist/chunks/entry-commands-d6g50j7s.js +42 -0
- package/dist/chunks/extension-sections-fy7q4fe9.js +651 -0
- package/dist/chunks/file-ops-3btj6st0.js +47 -0
- package/dist/chunks/files-ef8fgs3w.js +72 -0
- package/dist/chunks/format-host-3c33nwr8.js +40 -0
- package/dist/chunks/fs-events-13tj6sex.js +18 -0
- package/dist/chunks/git-panel-4wp2rn9b.js +49 -0
- package/dist/chunks/icons-yy10wk9r.js +402 -0
- package/dist/chunks/iframe-entry-15g3n6xv.js +114 -0
- package/dist/chunks/iframe-entry-b27vq81n.js +203 -0
- package/dist/chunks/iframe-entry-nbyxee1y.js +154 -0
- package/dist/chunks/iframe-host-jgesd924.js +115 -0
- package/dist/chunks/{index-wcnt3r9g.js → index-mdmyx6s2.js} +11 -11
- package/dist/chunks/index-n4j7qxyr.js +109 -0
- package/dist/chunks/{javascript-q8kpmfah.js → javascript-xvrfrpkb.js} +8 -9
- package/dist/chunks/{jsonMode-dkr040ga.js → jsonMode-tyx2kj6p.js} +526 -527
- package/dist/chunks/jx-validate-j0wxk72w.js +15 -0
- package/dist/chunks/layers-1nq5evsh.js +29 -0
- package/dist/chunks/layers-panel-ar2gh90g.js +40 -0
- package/dist/chunks/listbox-6v2ac08j.js +44 -0
- package/dist/chunks/lit-html-m244w9nh.js +17 -0
- package/dist/chunks/media-picker-2qbetq73.js +33 -0
- package/dist/chunks/menu-q99sy9rf.js +285 -0
- package/dist/chunks/menu-rf7n72mf.js +14 -0
- package/dist/chunks/{monaco-binding-rj6xpx9y.js → monaco-binding-sw6en4dw.js} +12 -15
- package/dist/chunks/monaco-buffer-bhy3hb6m.js +24 -0
- package/dist/chunks/{monaco-setup-vx9bhp1d.js → monaco-setup-8r62fj6y.js} +27 -37
- package/dist/chunks/notify-628t0anh.js +21 -0
- package/dist/chunks/number-field-5cndyft8.js +72 -0
- package/dist/chunks/parse-0zx14y15.js +10 -0
- package/dist/chunks/platform-ts9cg1a4.js +15 -0
- package/dist/chunks/popover-47z3ytva.js +25 -0
- package/dist/chunks/publish-panel-98f7sr3g.js +27 -0
- package/dist/chunks/quick-search-srzz83k2.js +45 -0
- package/dist/chunks/references-n553f0e1.js +26 -0
- package/dist/chunks/right-panel-rrgx2dn3.js +45 -0
- package/dist/chunks/section-registry-5pq32t0q.js +25 -0
- package/dist/chunks/select-2r16ez41.js +49 -0
- package/dist/chunks/split-g7nm1rgb.js +191 -0
- package/dist/chunks/studio-0hqbpbd0.js +62 -0
- package/dist/chunks/studio-18avnhjp.js +2430 -0
- package/dist/chunks/{studio-kryvsw6j.js → studio-1k325pwf.js} +48 -48
- package/dist/chunks/{studio-msd847zn.js → studio-25hkdrkw.js} +357 -86
- package/dist/chunks/studio-26d7myd1.js +258 -0
- package/dist/chunks/{studio-4r1pv6zf.js → studio-38emantv.js} +22 -5
- package/dist/chunks/studio-3gxv60tn.js +422 -0
- package/dist/chunks/{studio-fbf92ckf.js → studio-3hxkd92t.js} +275 -163
- package/dist/chunks/studio-4m0haseg.js +185 -0
- package/dist/chunks/{studio-ynxwkrzd.js → studio-4wbb9ct0.js} +1953 -1785
- package/dist/chunks/{studio-1wagb550.js → studio-5523bpzt.js} +11 -11
- package/dist/chunks/{studio-x4qkdat5.js → studio-57mf66w2.js} +1749 -2481
- package/dist/chunks/studio-5jy81t3s.js +17463 -0
- package/dist/chunks/studio-5rt7sqa0.js +1168 -0
- package/dist/chunks/studio-5te5tqng.js +81 -0
- package/dist/chunks/{studio-p4ngc046.js → studio-6ewqv390.js} +9 -9
- package/dist/chunks/{studio-9ab8gqsm.js → studio-6nzaktvy.js} +7 -7
- package/dist/chunks/studio-6xa21ej9.js +28 -0
- package/dist/chunks/{studio-5ehhackm.js → studio-727xh0e3.js} +19 -19
- package/dist/chunks/{studio-ahn3pdgx.js → studio-79y5sz51.js} +52 -38
- package/dist/chunks/{studio-gcye7qka.js → studio-7e11jpa9.js} +21 -21
- package/dist/chunks/{studio-q7v10cg2.js → studio-7r42c6ca.js} +17 -7
- package/dist/chunks/studio-7xptrg0j.js +954 -0
- package/dist/chunks/{studio-cft9r4r7.js → studio-81390n6f.js} +22 -22
- package/dist/chunks/{studio-q43a5y9h.js → studio-8jn5yhyn.js} +16 -16
- package/dist/chunks/studio-8qtrpzr3.js +839 -0
- package/dist/chunks/{studio-dg7zyt5x.js → studio-98b3z07n.js} +1 -1
- package/dist/chunks/studio-9xxz1q69.js +1356 -0
- package/dist/chunks/studio-akbww0j5.js +13615 -0
- package/dist/chunks/{studio-x813zp48.js → studio-arfpe389.js} +30 -30
- package/dist/chunks/{studio-trxrabqf.js → studio-az3zd49t.js} +475 -283
- package/dist/chunks/studio-cpvb2ed1.js +1171 -0
- package/dist/chunks/{studio-f3wqjtk5.js → studio-d0300636.js} +5076 -18
- package/dist/chunks/{studio-bgxt93ga.js → studio-d055c37e.js} +13 -13
- package/dist/chunks/studio-d1ja2x9r.js +362 -0
- package/dist/chunks/{studio-b9b6t1dg.js → studio-e1f24eff.js} +5664 -5666
- package/dist/chunks/{studio-3bqpr0zh.js → studio-em9nw8eh.js} +299 -110
- package/dist/chunks/studio-erdatzvp.js +1190 -0
- package/dist/chunks/{studio-g1wdche0.js → studio-esrxgwh6.js} +80 -80
- package/dist/chunks/studio-fabxk6r9.js +2811 -0
- package/dist/chunks/{studio-3n4ndrzh.js → studio-h4nvnjvz.js} +303 -303
- package/dist/chunks/{studio-dm19q43r.js → studio-hhvs4sdg.js} +10 -10
- package/dist/chunks/{studio-q9jd1a60.js → studio-kcgff4r0.js} +15 -18
- package/dist/chunks/{studio-685s0ytq.js → studio-nqgawfks.js} +572 -572
- package/dist/chunks/{studio-xrapxwwc.js → studio-p1dw8wfw.js} +55 -29
- package/dist/chunks/studio-pm6hgy7r.js +4763 -0
- package/dist/chunks/studio-q0a3yk4n.js +33 -0
- package/dist/chunks/{studio-wcy8trfx.js → studio-q3x06vmj.js} +23 -22
- package/dist/chunks/studio-qahxvnan.js +111 -0
- package/dist/chunks/{studio-53n8bp04.js → studio-r6xmmtfh.js} +1 -1
- package/dist/chunks/{studio-2b946z26.js → studio-rkstz940.js} +3658 -6134
- package/dist/chunks/{studio-tvgyw9xw.js → studio-rnyf3f8e.js} +83 -250
- package/dist/chunks/studio-rpyah2ew.js +2805 -0
- package/dist/chunks/studio-rs76k67r.js +12 -0
- package/dist/chunks/{studio-jkftxyvz.js → studio-s6z853aq.js} +5858 -2152
- package/dist/chunks/{studio-6yw4y3my.js → studio-sgdc5pfc.js} +8 -8
- package/dist/chunks/studio-tb3ev01j.js +763 -0
- package/dist/chunks/{studio-t5wqwzdh.js → studio-tjjk7jvk.js} +1 -1
- package/dist/chunks/studio-vhv5tgxm.js +51 -0
- package/dist/chunks/{studio-qjy2z9bv.js → studio-vz68yn9e.js} +32 -137
- package/dist/chunks/studio-wqpngpsk.js +174 -0
- package/dist/chunks/{studio-b55y6ewx.js → studio-x3rty6tr.js} +58 -58
- package/dist/chunks/studio-xsykpvsh.js +8448 -0
- package/dist/chunks/{studio-92ab2jqe.js → studio-y9zedyjn.js} +14 -14
- package/dist/chunks/studio-yxa81f45.js +12 -0
- package/dist/chunks/swatch-group-t0n6h2rn.js +139 -0
- package/dist/chunks/tabs-wbp1cdws.js +156 -0
- package/dist/chunks/textfield-abk6qyee.js +73 -0
- package/dist/chunks/toast-780pvfbv.js +27 -0
- package/dist/chunks/toast-host-3sqv46sn.js +116 -0
- package/dist/chunks/toolbar-xbh5bhtr.js +194 -0
- package/dist/chunks/tooltip-eptb614w.js +369 -0
- package/dist/chunks/tree-a73p0pqm.js +367 -0
- package/dist/chunks/{tsMode-76kr53q0.js → tsMode-jy4m86rv.js} +83 -85
- package/dist/chunks/workspace-wrew8zk4.js +69 -0
- package/dist/chunks/{ws-client-6shc5rze.js → ws-client-ny4zc51r.js} +20 -22
- package/dist/iframe-entry.js +1780 -667
- package/dist/studio.js +52819 -36480
- package/dist/workers/editor.worker.js +1040 -1085
- package/dist/workers/json.worker.js +1946 -1991
- package/dist/workers/ts.worker.js +4960 -5005
- package/index.html +1 -0
- package/package.json +18 -52
- package/src/about/about-modal.ts +72 -123
- package/src/browse/library-commands.ts +20 -49
- package/src/browse/library-layouts.ts +87 -218
- package/src/browse/library-pane.ts +406 -438
- package/src/canvas/canvas-helpers.ts +0 -49
- package/src/canvas/canvas-live-render.ts +25 -2
- package/src/canvas/canvas-render.ts +666 -231
- package/src/canvas/canvas-surface.ts +0 -1
- package/src/canvas/canvas-utils.ts +310 -117
- package/src/canvas/dialog-path.ts +76 -0
- package/src/canvas/dialog-state.ts +67 -0
- package/src/canvas/diff-marks.ts +252 -0
- package/src/canvas/diff-toolbar.ts +349 -0
- package/src/canvas/diff-view.ts +123 -0
- package/src/canvas/edit-width-drag.ts +187 -0
- package/src/canvas/edit-width.ts +150 -0
- package/src/canvas/iframe-entry.ts +125 -8
- package/src/canvas/iframe-host.ts +271 -15
- package/src/canvas/iframe-interaction.ts +133 -13
- package/src/canvas/iframe-patch.ts +7 -1
- package/src/canvas/iframe-position.ts +5 -6
- package/src/canvas/iframe-protocol.ts +106 -5
- package/src/canvas/iframe-render.ts +373 -5
- package/src/canvas/iframe-slash.ts +2 -2
- package/src/canvas/iframe-subtree.ts +5 -8
- package/src/canvas/path-mapping.ts +25 -3
- package/src/canvas/popover-path.ts +106 -0
- package/src/canvas/popover-state.ts +155 -0
- package/src/canvas/surface-registry.ts +21 -10
- package/src/collab/presence-chips.ts +51 -73
- package/src/commands/app-commands.ts +10 -0
- package/src/commands/budget.ts +12 -0
- package/src/commands/command-args.ts +369 -6
- package/src/commands/defaults.ts +44 -14
- package/src/commands/live-context.ts +11 -5
- package/src/commands/reference.ts +12 -2
- package/src/commands/registry.ts +165 -8
- package/src/content/entry-commands.ts +16 -23
- package/src/content/entry-editor.ts +144 -101
- package/src/editor/canvas-slash-bridge.ts +2 -2
- package/src/editor/context-menu.ts +49 -200
- package/src/editor/convert-to-component.ts +42 -82
- package/src/editor/convert-to-repeater.ts +132 -173
- package/src/editor/inline-edit.ts +11 -0
- package/src/editor/shortcuts.ts +65 -26
- package/src/editor/slash-menu.ts +150 -157
- package/src/files/file-ops.ts +117 -11
- package/src/files/files.ts +943 -660
- package/src/files/json-layout.ts +474 -0
- package/src/files/serialize-document.ts +8 -1
- package/src/format/convert-file.ts +16 -10
- package/src/format/format-host.ts +50 -1
- package/src/github/github-auth.ts +71 -29
- package/src/github/github-publish.ts +57 -65
- package/src/grid/cell-editors.ts +46 -4
- package/src/grid/cell-popovers.ts +65 -62
- package/src/grid/grid-open.ts +86 -64
- package/src/grid/grid-panel.ts +390 -469
- package/src/grid/redirects-grid.ts +40 -44
- package/src/hosting/layout.ts +2 -0
- package/src/i18n/i18n-commands.ts +127 -62
- package/src/media/media-pane.ts +83 -133
- package/src/new-project/add-repo-modal.ts +125 -176
- package/src/new-project/import-tab.ts +181 -252
- package/src/new-project/location-fields.ts +93 -160
- package/src/new-project/new-project-modal.ts +376 -367
- package/src/packages/jxsuite-update.ts +76 -18
- package/src/panels/activity-panel.ts +137 -104
- package/src/panels/ai-chat/chat-markdown.ts +15 -13
- package/src/panels/ai-chat/chat-view.ts +307 -472
- package/src/panels/ai-chat/composer.ts +175 -163
- package/src/panels/ai-chat/sessions-view.ts +31 -62
- package/src/panels/ai-panel.ts +210 -185
- package/src/panels/block-action-bar.ts +437 -643
- package/src/panels/bottom-dock.ts +112 -47
- package/src/panels/chat-panel.ts +19 -14
- package/src/panels/data-explorer.ts +141 -102
- package/src/panels/data-grid.ts +183 -150
- package/src/panels/dnd.ts +75 -20
- package/src/panels/editors.ts +26 -19
- package/src/panels/elements-panel.ts +243 -186
- package/src/panels/empty-state.ts +26 -42
- package/src/panels/events-panel.ts +950 -729
- package/src/panels/formula-workspace.ts +434 -207
- package/src/panels/frontmatter-fields.ts +185 -153
- package/src/panels/frontmatter-panel.ts +411 -187
- package/src/panels/git-diff-open.ts +148 -0
- package/src/panels/git-panel.ts +679 -605
- package/src/panels/head-panel.ts +617 -435
- package/src/panels/i18n-panel.ts +153 -133
- package/src/panels/imports-panel.ts +388 -414
- package/src/panels/jump-bar.ts +174 -147
- package/src/panels/layers-panel.ts +785 -671
- package/src/panels/left-panel.ts +166 -94
- package/src/panels/navigator-panels.ts +1 -1
- package/src/panels/pane-context.ts +529 -677
- package/src/panels/pane-grid.ts +265 -241
- package/src/panels/panel-registry.ts +15 -4
- package/src/panels/problems-panel.ts +177 -99
- package/src/panels/properties-panel.ts +1525 -966
- package/src/panels/provenance.ts +31 -113
- package/src/panels/quick-search.ts +217 -172
- package/src/panels/right-panel.ts +135 -169
- package/src/panels/seo-modal.ts +346 -167
- package/src/panels/settings-menu.ts +109 -646
- package/src/panels/settings-pane.ts +102 -86
- package/src/panels/signals-panel.ts +1318 -1172
- package/src/panels/statement-editor.ts +556 -428
- package/src/panels/style-panel.ts +1367 -630
- package/src/panels/style-utils.ts +36 -32
- package/src/panels/stylebook-doc.ts +30 -73
- package/src/panels/stylebook-layers-panel.ts +202 -109
- package/src/panels/stylebook-panel.ts +124 -88
- package/src/panels/tab-strip.ts +385 -287
- package/src/platforms/cloud.ts +106 -16
- package/src/platforms/devserver.ts +13 -0
- package/src/publish/deploy-checklist.ts +124 -78
- package/src/publish/publish-commands.ts +4 -12
- package/src/publish/publish-panel.ts +134 -328
- package/src/services/a11y-report.ts +100 -43
- package/src/services/ai-command-tools.ts +468 -0
- package/src/services/ai-session-store.ts +6 -0
- package/src/services/ai-system-prompt.ts +110 -18
- package/src/services/ai-tools.ts +28 -143
- package/src/services/ai-write-report.ts +174 -0
- package/src/services/document-assistant.ts +50 -2
- package/src/services/idle.ts +16 -14
- package/src/services/live-surfaces.ts +237 -0
- package/src/services/model-uri.ts +75 -0
- package/src/services/notify.ts +63 -6
- package/src/services/popover-report.ts +325 -0
- package/src/services/surface-registry.ts +56 -0
- package/src/services/tool-executor.ts +6 -0
- package/src/settings/contexts-section.ts +301 -299
- package/src/settings/contributed-section.ts +361 -222
- package/src/settings/css-vars-editor.ts +320 -325
- package/src/settings/defs-editor.ts +572 -535
- package/src/settings/dependencies-editor.ts +79 -107
- package/src/settings/extension-commands.ts +379 -0
- package/src/settings/extension-rows.ts +113 -0
- package/src/settings/extensions-section.ts +287 -0
- package/src/settings/general-settings.ts +130 -181
- package/src/settings/head-editor.ts +10 -305
- package/src/settings/locales-section.ts +146 -196
- package/src/settings/preferences-accounts.ts +1 -1
- package/src/settings/preferences-dialog.ts +350 -330
- package/src/settings/project-sections.ts +108 -181
- package/src/settings/schema-field-ui.ts +11 -399
- package/src/settings/section-registry.ts +8 -1
- package/src/settings/settings-document.ts +31 -29
- package/src/shell/tree.ts +42 -87
- package/src/shell.ts +48 -36
- package/src/studio.ts +90 -67
- package/src/style/token-ref.ts +0 -39
- package/src/surfaces/about.json +263 -0
- package/src/surfaces/about.ts +163 -0
- package/src/surfaces/add-repo.json +486 -0
- package/src/surfaces/add-repo.ts +236 -0
- package/src/surfaces/ai-chat.json +2185 -0
- package/src/surfaces/ai-chat.ts +549 -0
- package/src/surfaces/ai-credentials-form.json +332 -0
- package/src/surfaces/ai-credentials-form.ts +151 -0
- package/src/surfaces/ai-managed-connect.json +108 -0
- package/src/surfaces/ai-managed-connect.ts +123 -0
- package/src/surfaces/ai-model-picker.json +114 -0
- package/src/surfaces/ai-model-picker.ts +139 -0
- package/src/surfaces/block-action-bar.json +640 -0
- package/src/surfaces/block-action-bar.ts +368 -0
- package/src/surfaces/bottom-dock.json +154 -0
- package/src/surfaces/bottom-dock.ts +125 -0
- package/src/surfaces/canvas-stage.json +444 -0
- package/src/surfaces/canvas-stage.ts +253 -0
- package/src/surfaces/cf-account-picker.json +300 -0
- package/src/surfaces/cf-account-picker.ts +214 -0
- package/src/surfaces/commandbar.json +984 -0
- package/src/{panels/toolbar.ts → surfaces/commandbar.ts} +414 -389
- package/src/surfaces/convert-repeater.json +309 -0
- package/src/surfaces/convert-repeater.ts +276 -0
- package/src/surfaces/data-actions.json +157 -0
- package/src/surfaces/data-actions.ts +115 -0
- package/src/surfaces/dialog.json +289 -0
- package/src/surfaces/dialog.ts +343 -0
- package/src/surfaces/diff-toolbar.json +266 -0
- package/src/surfaces/diff-toolbar.ts +139 -0
- package/src/surfaces/doc-header.json +739 -0
- package/src/surfaces/doc-header.ts +223 -0
- package/src/surfaces/empty-state.json +152 -0
- package/src/surfaces/empty-state.ts +173 -0
- package/src/surfaces/entry-editor.json +281 -0
- package/src/surfaces/entry-editor.ts +191 -0
- package/src/surfaces/expression-editor.json +977 -0
- package/src/surfaces/expression-editor.ts +266 -0
- package/src/surfaces/files-panel.json +592 -0
- package/src/surfaces/files-panel.ts +301 -0
- package/src/surfaces/formula-palette.json +364 -0
- package/src/surfaces/formula-palette.ts +340 -0
- package/src/surfaces/git-panel.json +1822 -0
- package/src/surfaces/git-panel.ts +272 -0
- package/src/surfaces/github-auth.json +112 -0
- package/src/surfaces/github-auth.ts +139 -0
- package/src/surfaces/github-publish.json +206 -0
- package/src/surfaces/github-publish.ts +169 -0
- package/src/surfaces/grid-cell.json +218 -0
- package/src/surfaces/grid-cell.ts +120 -0
- package/src/surfaces/grid-open.json +147 -0
- package/src/surfaces/grid-open.ts +87 -0
- package/src/surfaces/grid-panel.json +706 -0
- package/src/surfaces/grid-panel.ts +206 -0
- package/src/surfaces/grid-replace.json +179 -0
- package/src/surfaces/grid-replace.ts +89 -0
- package/src/surfaces/grid-views.json +446 -0
- package/src/surfaces/grid-views.ts +172 -0
- package/src/surfaces/inspector-dock.json +187 -0
- package/src/surfaces/inspector-dock.ts +161 -0
- package/src/surfaces/jump-bar.json +243 -0
- package/src/surfaces/jump-bar.ts +129 -0
- package/src/surfaces/jxsuite-update.json +146 -0
- package/src/surfaces/jxsuite-update.ts +149 -0
- package/src/surfaces/library-pane.json +1509 -0
- package/src/surfaces/library-pane.ts +363 -0
- package/src/surfaces/logic-panel.json +1949 -0
- package/src/surfaces/logic-panel.ts +369 -0
- package/src/surfaces/logic-workspace.json +685 -0
- package/src/surfaces/logic-workspace.ts +238 -0
- package/src/surfaces/media-browser.json +303 -0
- package/src/surfaces/media-browser.ts +145 -0
- package/src/surfaces/media-field.json +163 -0
- package/src/surfaces/media-field.ts +116 -0
- package/src/surfaces/media-pane.json +513 -0
- package/src/surfaces/media-pane.ts +197 -0
- package/src/surfaces/menu.json +232 -0
- package/src/surfaces/menu.ts +375 -0
- package/src/surfaces/navigator-dock.json +113 -0
- package/src/surfaces/navigator-dock.ts +130 -0
- package/src/surfaces/new-project.json +1654 -0
- package/src/surfaces/new-project.ts +411 -0
- package/src/surfaces/palette.json +535 -0
- package/src/surfaces/pane-context.json +1497 -0
- package/src/surfaces/pane-context.ts +513 -0
- package/src/surfaces/pane-grid.json +188 -0
- package/src/surfaces/pane-grid.ts +250 -0
- package/src/surfaces/panel-activity.json +563 -0
- package/src/surfaces/panel-activity.ts +187 -0
- package/src/surfaces/panel-data.json +141 -0
- package/src/surfaces/panel-data.ts +156 -0
- package/src/surfaces/panel-deploy-checklist.json +283 -0
- package/src/surfaces/panel-deploy-checklist.ts +175 -0
- package/src/surfaces/panel-elements.json +367 -0
- package/src/surfaces/panel-elements.ts +175 -0
- package/src/surfaces/panel-i18n.json +569 -0
- package/src/surfaces/panel-i18n.ts +212 -0
- package/src/surfaces/panel-imports.json +780 -0
- package/src/surfaces/panel-imports.ts +209 -0
- package/src/surfaces/panel-outline.json +734 -0
- package/src/surfaces/panel-outline.ts +326 -0
- package/src/surfaces/panel-page.json +1017 -0
- package/src/surfaces/panel-page.ts +240 -0
- package/src/surfaces/panel-problems.json +497 -0
- package/src/surfaces/panel-problems.ts +157 -0
- package/src/surfaces/panel-signals.json +1973 -0
- package/src/surfaces/panel-signals.ts +436 -0
- package/src/surfaces/panel-stylebook-layers.json +317 -0
- package/src/surfaces/panel-stylebook-layers.ts +155 -0
- package/src/surfaces/preferences.json +850 -0
- package/src/surfaces/preferences.ts +332 -0
- package/src/surfaces/progress-modal.json +110 -0
- package/src/surfaces/progress-modal.ts +150 -0
- package/src/surfaces/properties-panel.json +1578 -0
- package/src/surfaces/properties-panel.ts +337 -0
- package/src/surfaces/publish.json +945 -0
- package/src/surfaces/publish.ts +392 -0
- package/src/surfaces/push-plan.json +110 -0
- package/src/surfaces/push-plan.ts +87 -0
- package/src/surfaces/rail.json +255 -0
- package/src/surfaces/rail.ts +206 -0
- package/src/surfaces/reference-field.json +191 -0
- package/src/surfaces/reference-field.ts +168 -0
- package/src/surfaces/schema-builder.json +1011 -0
- package/src/surfaces/schema-builder.ts +181 -0
- package/src/surfaces/schema-form.json +1013 -0
- package/src/surfaces/schema-form.ts +287 -0
- package/src/surfaces/secret-field.json +60 -0
- package/src/surfaces/secret-field.ts +146 -0
- package/src/surfaces/seo.json +932 -0
- package/src/surfaces/seo.ts +334 -0
- package/src/surfaces/settings-contexts.json +538 -0
- package/src/surfaces/settings-contexts.ts +196 -0
- package/src/surfaces/settings-contributed.json +489 -0
- package/src/surfaces/settings-contributed.ts +199 -0
- package/src/surfaces/settings-css-vars.json +820 -0
- package/src/surfaces/settings-css-vars.ts +199 -0
- package/src/surfaces/settings-defs.json +1363 -0
- package/src/surfaces/settings-defs.ts +232 -0
- package/src/surfaces/settings-deploy.json +108 -0
- package/src/surfaces/settings-deploy.ts +135 -0
- package/src/surfaces/settings-extensions.json +486 -0
- package/src/surfaces/settings-extensions.ts +201 -0
- package/src/surfaces/settings-head.json +779 -0
- package/src/surfaces/settings-head.ts +397 -0
- package/src/surfaces/settings-locales.json +420 -0
- package/src/surfaces/settings-locales.ts +137 -0
- package/src/surfaces/settings-overview.json +423 -0
- package/src/surfaces/settings-overview.ts +218 -0
- package/src/surfaces/settings-packages.json +549 -0
- package/src/surfaces/settings-packages.ts +158 -0
- package/src/surfaces/settings-pane.json +147 -0
- package/src/surfaces/settings-pane.ts +150 -0
- package/src/surfaces/settings-rawjson.json +104 -0
- package/src/surfaces/settings-rawjson.ts +107 -0
- package/src/surfaces/shell.json +99 -0
- package/src/surfaces/shell.ts +30 -0
- package/src/surfaces/slash-menu.json +180 -0
- package/src/surfaces/slash-menu.ts +272 -0
- package/src/surfaces/statements.json +607 -0
- package/src/surfaces/statements.ts +238 -0
- package/src/surfaces/statusbar.json +94 -0
- package/src/{panels → surfaces}/statusbar.ts +163 -90
- package/src/surfaces/style-panel.json +1643 -0
- package/src/surfaces/style-panel.ts +338 -0
- package/src/surfaces/stylebook-chrome.json +122 -0
- package/src/surfaces/stylebook-chrome.ts +122 -0
- package/src/surfaces/tab-strip.json +448 -0
- package/src/surfaces/tab-strip.ts +200 -0
- package/src/surfaces/target-line.json +419 -0
- package/src/surfaces/target-line.ts +349 -0
- package/src/surfaces/toasts.json +189 -0
- package/src/surfaces/welcome.json +571 -0
- package/src/surfaces/welcome.ts +338 -0
- package/src/tabs/project-config.ts +71 -15
- package/src/tabs/tab.ts +52 -1
- package/src/types.ts +22 -0
- package/src/ui/ai-credentials-form.ts +104 -100
- package/src/ui/ai-managed-connect.ts +54 -36
- package/src/ui/ai-model-picker.ts +75 -47
- package/src/ui/cf-account-picker.ts +76 -141
- package/src/ui/color-selector.ts +80 -301
- package/src/ui/dynamic-slot.ts +43 -283
- package/src/ui/expression-editor.ts +797 -576
- package/src/ui/field-input.ts +8 -181
- package/src/ui/form-controls.ts +838 -366
- package/src/ui/formula-chips.ts +80 -85
- package/src/ui/kit.ts +33 -0
- package/src/ui/layers.ts +293 -593
- package/src/ui/media-picker.ts +203 -284
- package/src/ui/panel-resize.ts +251 -64
- package/src/ui/popover-surface.ts +153 -0
- package/src/ui/progress-modal.ts +22 -60
- package/src/ui/regions.ts +13 -7
- package/src/ui/schema-form.ts +906 -440
- package/src/ui/surface.ts +122 -0
- package/src/ui/unit-selector.ts +15 -131
- package/src/ui/value-source.ts +14 -0
- package/src/ui/virtual-window.ts +88 -9
- package/src/utils/canvas-media.ts +72 -0
- package/src/utils/edit-display.ts +7 -2
- package/src/utils/element-selectors.ts +69 -0
- package/src/utils/link-target.ts +2 -2
- package/src/utils/studio-utils.ts +0 -10
- package/src/view.ts +15 -0
- package/src/workspace/pane-derive.ts +36 -14
- package/src/workspace/workspace.ts +15 -6
- package/styles/canvas.css +72 -467
- package/styles/forced-colors.css +48 -82
- package/styles/forced-colors.json +41 -0
- package/styles/inspector.css +2 -1301
- package/styles/overlays.css +96 -2823
- package/styles/panels.css +6 -1423
- package/styles/shell-frame.css +272 -0
- package/styles/shell-frame.json +227 -0
- package/styles/shell.css +0 -1568
- package/styles/tokens.css +65 -136
- package/styles/tokens.json +84 -0
- package/dist/chunks/Overlay.dev-etqjwyf9.js +0 -23
- package/dist/chunks/adapter-jkcyhgtr.js +0 -14
- package/dist/chunks/cf-account-picker-en86v7x7.js +0 -163
- package/dist/chunks/cf-settings-45fgyx8y.js +0 -21
- package/dist/chunks/components-zmx10t62.js +0 -21
- package/dist/chunks/content-source-48xg86wj.js +0 -49
- package/dist/chunks/convert-to-repeater-43tfn7cs.js +0 -268
- package/dist/chunks/editor-cptq5jp1.js +0 -37
- package/dist/chunks/entry-commands-e63f1xc0.js +0 -46
- package/dist/chunks/extension-sections-txv08xxg.js +0 -311
- package/dist/chunks/file-ops-wbh4hhsx.js +0 -48
- package/dist/chunks/files-3kfkwhk4.js +0 -93
- package/dist/chunks/flow-qbfgrpeh.js +0 -634
- package/dist/chunks/focus-trap.esm-9t2drp0g.js +0 -1025
- package/dist/chunks/focus-visible-6eg70z18.js +0 -167
- package/dist/chunks/format-host-w16q81tf.js +0 -43
- package/dist/chunks/fs-events-hrrg328g.js +0 -21
- package/dist/chunks/git-panel-532whr1y.js +0 -59
- package/dist/chunks/index-zqxmqxmh.js +0 -109
- package/dist/chunks/jx-validate-8er6gbxy.js +0 -19
- package/dist/chunks/layers-panel-07hm7g5j.js +0 -67
- package/dist/chunks/layers-q75tj2mf.js +0 -45
- package/dist/chunks/lit-html-j055mkh8.js +0 -22
- package/dist/chunks/monaco-buffer-dqw0xxpx.js +0 -25
- package/dist/chunks/notify-yjm79n4s.js +0 -30
- package/dist/chunks/parse-24d0gay3.js +0 -19
- package/dist/chunks/platform-ba1j1gbh.js +0 -16
- package/dist/chunks/publish-panel-v9st96ja.js +0 -29
- package/dist/chunks/quick-search-zccjp6gv.js +0 -66
- package/dist/chunks/references-3qx8fkyp.js +0 -29
- package/dist/chunks/right-panel-vm3b6kwy.js +0 -46
- package/dist/chunks/section-registry-sx1ykvkw.js +0 -30
- package/dist/chunks/sp-overlay.dev-qgvhnxf4.js +0 -18
- package/dist/chunks/sp-popover.dev-n2etmqdp.js +0 -9
- package/dist/chunks/sp-progress-circle.dev-hryhj0es.js +0 -15
- package/dist/chunks/sp-tooltip.dev-4sastdnw.js +0 -15
- package/dist/chunks/sp-tray.dev-tkbscm06.js +0 -199
- package/dist/chunks/studio-0a5qrh01.js +0 -3
- package/dist/chunks/studio-0bq6eh7v.js +0 -12
- package/dist/chunks/studio-18j3bmcz.js +0 -14
- package/dist/chunks/studio-1ngbejft.js +0 -181
- package/dist/chunks/studio-4b5z1x43.js +0 -424
- package/dist/chunks/studio-4n2b5gzb.js +0 -357
- package/dist/chunks/studio-4rzyrtjz.js +0 -426
- package/dist/chunks/studio-5fx3g9jg.js +0 -4325
- package/dist/chunks/studio-5myknm0a.js +0 -1903
- package/dist/chunks/studio-7afd21nw.js +0 -67
- package/dist/chunks/studio-7nte2hj4.js +0 -613
- package/dist/chunks/studio-8jpzqk5s.js +0 -128
- package/dist/chunks/studio-8q517dfr.js +0 -24
- package/dist/chunks/studio-950k0dx6.js +0 -6939
- package/dist/chunks/studio-9n4mrmnb.js +0 -184
- package/dist/chunks/studio-a0tswy0w.js +0 -58
- package/dist/chunks/studio-ahnzd9rg.js +0 -23
- package/dist/chunks/studio-cmb03bg5.js +0 -13890
- package/dist/chunks/studio-d1ks410h.js +0 -175
- package/dist/chunks/studio-ef49pnzx.js +0 -387
- package/dist/chunks/studio-eqq1w638.js +0 -113
- package/dist/chunks/studio-ew0djmhg.js +0 -341
- package/dist/chunks/studio-gfgb8pe6.js +0 -1652
- package/dist/chunks/studio-h4rxscfc.js +0 -10
- package/dist/chunks/studio-jc994dnr.js +0 -1066
- package/dist/chunks/studio-kyh9avvv.js +0 -28
- package/dist/chunks/studio-m3hwn7y1.js +0 -120
- package/dist/chunks/studio-mtfnaqs9.js +0 -659
- package/dist/chunks/studio-n6j9t10q.js +0 -318
- package/dist/chunks/studio-n8b9wqwy.js +0 -291
- package/dist/chunks/studio-qcy05dp8.js +0 -1743
- package/dist/chunks/studio-qq6jym04.js +0 -53
- package/dist/chunks/studio-rdx8jcxy.js +0 -83
- package/dist/chunks/studio-rn9ta2mz.js +0 -111
- package/dist/chunks/studio-t7qb9db8.js +0 -665
- package/dist/chunks/studio-tmc5emrw.js +0 -8
- package/dist/chunks/studio-z6nw2ek2.js +0 -18
- package/dist/chunks/studio-zczps70q.js +0 -378
- package/dist/chunks/studio-zqazsct2.js +0 -1823
- package/dist/chunks/workspace-fjx52ryv.js +0 -89
- package/src/panels/activity-bar.ts +0 -251
- package/src/panels/panel-scheduler.ts +0 -219
- package/src/panels/style-inputs.ts +0 -237
- package/src/panels/target-line.ts +0 -274
- package/src/panels/welcome-screen.ts +0 -346
- package/src/ui/button-group.ts +0 -102
- package/src/ui/choice-field.ts +0 -72
- package/src/ui/field-row.ts +0 -249
- package/src/ui/formula-palette.ts +0 -213
- package/src/ui/icons.ts +0 -52
- package/src/ui/jx-theme.ts +0 -130
- package/src/ui/spectrum.ts +0 -340
- package/src/ui/value-selector.ts +0 -174
- package/src/ui/widgets.ts +0 -172
- /package/dist/chunks/{javascript-s56a8dpk.css → javascript-4abzjcy9.css} +0 -0
- /package/dist/chunks/{jsonMode-zr9sw0c7.css → jsonMode-vvmpmk34.css} +0 -0
- /package/dist/chunks/{monaco-setup-pav68602.css → monaco-setup-8vbyqnhr.css} +0 -0
- /package/dist/chunks/{tsMode-ef187txx.css → tsMode-hnxxb73h.css} +0 -0
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import {
|
|
2
|
-
YArray,
|
|
3
2
|
YArrayEvent,
|
|
4
|
-
|
|
3
|
+
YArray,
|
|
5
4
|
YMapEvent,
|
|
6
|
-
|
|
7
|
-
YTextEvent
|
|
8
|
-
|
|
5
|
+
YMap,
|
|
6
|
+
YTextEvent,
|
|
7
|
+
YText
|
|
8
|
+
} from "./studio-h4nvnjvz.js";
|
|
9
9
|
// ../collab/src/schema.ts
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
function
|
|
16
|
-
return doc.getMap(
|
|
10
|
+
var META_KEY2 = "meta";
|
|
11
|
+
var FRONTMATTER_KEY2 = "frontmatter";
|
|
12
|
+
var STRUCTURE_KEY2 = "structure";
|
|
13
|
+
var SOURCE_KEY2 = "source";
|
|
14
|
+
var COLLAB_SCHEMA_VERSION2 = 2;
|
|
15
|
+
function metaMap2(doc) {
|
|
16
|
+
return doc.getMap(META_KEY2);
|
|
17
17
|
}
|
|
18
|
-
function
|
|
19
|
-
return doc.getMap(
|
|
18
|
+
function frontmatterMap2(doc) {
|
|
19
|
+
return doc.getMap(FRONTMATTER_KEY2);
|
|
20
20
|
}
|
|
21
|
-
function
|
|
22
|
-
return doc.getMap(
|
|
21
|
+
function structureMap2(doc) {
|
|
22
|
+
return doc.getMap(STRUCTURE_KEY2);
|
|
23
23
|
}
|
|
24
|
-
function
|
|
25
|
-
return doc.getText(
|
|
24
|
+
function sourceText2(doc) {
|
|
25
|
+
return doc.getText(SOURCE_KEY2);
|
|
26
26
|
}
|
|
27
27
|
function cloneJson(value) {
|
|
28
28
|
return JSON.parse(JSON.stringify(value));
|
|
@@ -98,14 +98,14 @@ function deepEqualJson(a, b) {
|
|
|
98
98
|
return JSON.stringify(a ?? null) === JSON.stringify(b ?? null);
|
|
99
99
|
}
|
|
100
100
|
function toYChild(child) {
|
|
101
|
-
return typeof child === "string" ? new YText(child) :
|
|
101
|
+
return typeof child === "string" ? new YText(child) : toYNode2(child);
|
|
102
102
|
}
|
|
103
|
-
function
|
|
103
|
+
function toYChildren2(children) {
|
|
104
104
|
const arr = new YArray;
|
|
105
105
|
arr.insert(0, children.map((child) => toYChild(child)));
|
|
106
106
|
return arr;
|
|
107
107
|
}
|
|
108
|
-
function
|
|
108
|
+
function toYNode2(node) {
|
|
109
109
|
if (!isPlainObject(node)) {
|
|
110
110
|
throw new TypeError("collab-schema: a document node must be a plain object");
|
|
111
111
|
}
|
|
@@ -115,7 +115,7 @@ function toYNode(node) {
|
|
|
115
115
|
continue;
|
|
116
116
|
}
|
|
117
117
|
if (key === "children" && Array.isArray(value)) {
|
|
118
|
-
map.set(key,
|
|
118
|
+
map.set(key, toYChildren2(value));
|
|
119
119
|
} else if (TEXT_KEYS.has(key) && typeof value === "string") {
|
|
120
120
|
map.set(key, new YText(value));
|
|
121
121
|
} else if (GRANULAR_OBJECT_KEYS.has(key) && isPlainObject(value)) {
|
|
@@ -126,27 +126,27 @@ function toYNode(node) {
|
|
|
126
126
|
}
|
|
127
127
|
return map;
|
|
128
128
|
}
|
|
129
|
-
function
|
|
129
|
+
function yValueToJson2(value) {
|
|
130
130
|
if (value instanceof YMap) {
|
|
131
131
|
const out = {};
|
|
132
132
|
for (const [key, entry] of value.entries()) {
|
|
133
|
-
out[key] =
|
|
133
|
+
out[key] = yValueToJson2(entry);
|
|
134
134
|
}
|
|
135
135
|
return out;
|
|
136
136
|
}
|
|
137
137
|
if (value instanceof YArray) {
|
|
138
|
-
return value.toArray().map((entry) =>
|
|
138
|
+
return value.toArray().map((entry) => yValueToJson2(entry));
|
|
139
139
|
}
|
|
140
140
|
if (value instanceof YText) {
|
|
141
141
|
return value.toString();
|
|
142
142
|
}
|
|
143
143
|
return value;
|
|
144
144
|
}
|
|
145
|
-
function
|
|
146
|
-
return
|
|
145
|
+
function yDocToJson2(doc) {
|
|
146
|
+
return yValueToJson2(structureMap2(doc));
|
|
147
147
|
}
|
|
148
|
-
function
|
|
149
|
-
let current =
|
|
148
|
+
function resolveYPath2(doc, path) {
|
|
149
|
+
let current = structureMap2(doc);
|
|
150
150
|
for (const segment of path) {
|
|
151
151
|
if (current instanceof YMap) {
|
|
152
152
|
current = current.get(String(segment));
|
|
@@ -162,8 +162,8 @@ function resolveYPath(doc, path) {
|
|
|
162
162
|
}
|
|
163
163
|
return current;
|
|
164
164
|
}
|
|
165
|
-
function
|
|
166
|
-
const text =
|
|
165
|
+
function updateSourceText2(doc, next, origin) {
|
|
166
|
+
const text = sourceText2(doc);
|
|
167
167
|
if (text.toString() === next) {
|
|
168
168
|
return false;
|
|
169
169
|
}
|
|
@@ -172,30 +172,30 @@ function updateSourceText(doc, next, origin) {
|
|
|
172
172
|
}, origin);
|
|
173
173
|
return true;
|
|
174
174
|
}
|
|
175
|
-
function
|
|
176
|
-
const meta =
|
|
175
|
+
function seedStructure2(doc, document, opts = {}) {
|
|
176
|
+
const meta = metaMap2(doc);
|
|
177
177
|
if (meta.get("structureSeeded") === true) {
|
|
178
178
|
return false;
|
|
179
179
|
}
|
|
180
180
|
doc.transact(() => {
|
|
181
|
-
const structure =
|
|
181
|
+
const structure = structureMap2(doc);
|
|
182
182
|
for (const [key, value] of Object.entries(document)) {
|
|
183
183
|
if (value === undefined) {
|
|
184
184
|
continue;
|
|
185
185
|
}
|
|
186
186
|
if (key === "children" && Array.isArray(value)) {
|
|
187
|
-
structure.set(key,
|
|
187
|
+
structure.set(key, toYChildren2(value));
|
|
188
188
|
} else {
|
|
189
189
|
structure.set(key, cloneJson(value));
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
-
const frontmatter =
|
|
192
|
+
const frontmatter = frontmatterMap2(doc);
|
|
193
193
|
for (const [key, value] of Object.entries(opts.frontmatter ?? {})) {
|
|
194
194
|
if (value !== undefined) {
|
|
195
195
|
frontmatter.set(key, cloneJson(value));
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
|
-
meta.set("schemaVersion",
|
|
198
|
+
meta.set("schemaVersion", COLLAB_SCHEMA_VERSION2);
|
|
199
199
|
meta.set("canonical", "structure");
|
|
200
200
|
meta.set("canonicalRev", 0);
|
|
201
201
|
meta.set("sourceFormat", opts.sourceFormat ?? null);
|
|
@@ -204,20 +204,20 @@ function seedStructure(doc, document, opts = {}) {
|
|
|
204
204
|
return true;
|
|
205
205
|
}
|
|
206
206
|
// ../collab/src/op-bridge.ts
|
|
207
|
-
var
|
|
208
|
-
var
|
|
209
|
-
var
|
|
207
|
+
var LOCAL_ORIGIN2 = "jx-local";
|
|
208
|
+
var MIRROR_ORIGIN2 = "jx-mirror";
|
|
209
|
+
var SEED_ORIGIN2 = "jx-seed";
|
|
210
210
|
|
|
211
|
-
class
|
|
211
|
+
class CollabPathError2 extends Error {
|
|
212
212
|
constructor(path) {
|
|
213
213
|
super(`collab-path-unresolved:${path.join("/")}`);
|
|
214
214
|
this.name = "CollabPathError";
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
217
|
function requireNode(doc, path) {
|
|
218
|
-
const target =
|
|
218
|
+
const target = resolveYPath2(doc, path);
|
|
219
219
|
if (!(target instanceof YMap)) {
|
|
220
|
-
throw new
|
|
220
|
+
throw new CollabPathError2(path);
|
|
221
221
|
}
|
|
222
222
|
return target;
|
|
223
223
|
}
|
|
@@ -232,7 +232,7 @@ function childrenOf(doc, parentPath, create) {
|
|
|
232
232
|
parent.set("children", fresh);
|
|
233
233
|
return fresh;
|
|
234
234
|
}
|
|
235
|
-
throw new
|
|
235
|
+
throw new CollabPathError2([...parentPath, "children"]);
|
|
236
236
|
}
|
|
237
237
|
function cloneJson2(value) {
|
|
238
238
|
return JSON.parse(JSON.stringify(value));
|
|
@@ -243,7 +243,7 @@ function isPlainObject2(value) {
|
|
|
243
243
|
function setNodeKey(node, key, value) {
|
|
244
244
|
const existing = node.get(key);
|
|
245
245
|
if (key === "children" && Array.isArray(value)) {
|
|
246
|
-
node.set(key,
|
|
246
|
+
node.set(key, toYChildren2(value));
|
|
247
247
|
return;
|
|
248
248
|
}
|
|
249
249
|
if (TEXT_KEYS.has(key) && typeof value === "string") {
|
|
@@ -278,7 +278,7 @@ function applyOneOp(doc, op) {
|
|
|
278
278
|
case "insert-child": {
|
|
279
279
|
const children = childrenOf(doc, op.parentPath, true);
|
|
280
280
|
if (op.index < 0 || op.index > children.length) {
|
|
281
|
-
throw new
|
|
281
|
+
throw new CollabPathError2([...op.parentPath, "children", op.index]);
|
|
282
282
|
}
|
|
283
283
|
children.insert(op.index, [toYChild(op.node)]);
|
|
284
284
|
return;
|
|
@@ -286,7 +286,7 @@ function applyOneOp(doc, op) {
|
|
|
286
286
|
case "remove-child": {
|
|
287
287
|
const children = childrenOf(doc, op.parentPath, false);
|
|
288
288
|
if (op.index < 0 || op.index >= children.length) {
|
|
289
|
-
throw new
|
|
289
|
+
throw new CollabPathError2([...op.parentPath, "children", op.index]);
|
|
290
290
|
}
|
|
291
291
|
children.delete(op.index, 1);
|
|
292
292
|
return;
|
|
@@ -294,7 +294,7 @@ function applyOneOp(doc, op) {
|
|
|
294
294
|
case "set-child": {
|
|
295
295
|
const children = childrenOf(doc, op.parentPath, false);
|
|
296
296
|
if (op.index < 0 || op.index >= children.length) {
|
|
297
|
-
throw new
|
|
297
|
+
throw new CollabPathError2([...op.parentPath, "children", op.index]);
|
|
298
298
|
}
|
|
299
299
|
const existing = children.get(op.index);
|
|
300
300
|
if (existing instanceof YText && typeof op.node === "string") {
|
|
@@ -309,12 +309,12 @@ function applyOneOp(doc, op) {
|
|
|
309
309
|
const from = childrenOf(doc, op.fromParentPath, false);
|
|
310
310
|
const to = childrenOf(doc, op.toParentPath, true);
|
|
311
311
|
if (op.fromIndex < 0 || op.fromIndex >= from.length) {
|
|
312
|
-
throw new
|
|
312
|
+
throw new CollabPathError2([...op.fromParentPath, "children", op.fromIndex]);
|
|
313
313
|
}
|
|
314
|
-
const json =
|
|
314
|
+
const json = yValueToJson2(from.get(op.fromIndex));
|
|
315
315
|
from.delete(op.fromIndex, 1);
|
|
316
316
|
if (op.toIndex < 0 || op.toIndex > to.length) {
|
|
317
|
-
throw new
|
|
317
|
+
throw new CollabPathError2([...op.toParentPath, "children", op.toIndex]);
|
|
318
318
|
}
|
|
319
319
|
to.insert(op.toIndex, [toYChild(json)]);
|
|
320
320
|
return;
|
|
@@ -324,7 +324,7 @@ function applyOneOp(doc, op) {
|
|
|
324
324
|
}
|
|
325
325
|
}
|
|
326
326
|
}
|
|
327
|
-
function
|
|
327
|
+
function applyDocOpsToY2(doc, ops, origin) {
|
|
328
328
|
doc.transact(() => {
|
|
329
329
|
for (const op of ops) {
|
|
330
330
|
applyOneOp(doc, op);
|
|
@@ -349,7 +349,7 @@ function granularOwner(path) {
|
|
|
349
349
|
function isStructurePath(segments) {
|
|
350
350
|
return segments.every((seg) => typeof seg === "string" || typeof seg === "number");
|
|
351
351
|
}
|
|
352
|
-
function
|
|
352
|
+
function yEventsToDocOps2(events) {
|
|
353
353
|
if (events.length === 0) {
|
|
354
354
|
return [];
|
|
355
355
|
}
|
|
@@ -382,7 +382,7 @@ function yEventsToDocOps(events) {
|
|
|
382
382
|
if (!doc) {
|
|
383
383
|
return null;
|
|
384
384
|
}
|
|
385
|
-
const container =
|
|
385
|
+
const container = resolveYPath2(doc, [...granular.nodePath, granular.key]);
|
|
386
386
|
if (container === undefined) {
|
|
387
387
|
return null;
|
|
388
388
|
}
|
|
@@ -390,7 +390,7 @@ function yEventsToDocOps(events) {
|
|
|
390
390
|
key: granular.key,
|
|
391
391
|
op: "set-key",
|
|
392
392
|
path: granular.nodePath,
|
|
393
|
-
value:
|
|
393
|
+
value: yValueToJson2(container)
|
|
394
394
|
});
|
|
395
395
|
continue;
|
|
396
396
|
}
|
|
@@ -413,7 +413,7 @@ function yEventsToDocOps(events) {
|
|
|
413
413
|
if (change.action === "delete") {
|
|
414
414
|
ops.push({ key, op: "set-key", path });
|
|
415
415
|
} else {
|
|
416
|
-
ops.push({ key, op: "set-key", path, value:
|
|
416
|
+
ops.push({ key, op: "set-key", path, value: yValueToJson2(target.get(key)) });
|
|
417
417
|
}
|
|
418
418
|
}
|
|
419
419
|
} else if (event instanceof YArrayEvent) {
|
|
@@ -432,7 +432,7 @@ function yEventsToDocOps(events) {
|
|
|
432
432
|
} else if (delta.insert !== undefined) {
|
|
433
433
|
const items = Array.isArray(delta.insert) ? delta.insert : [delta.insert];
|
|
434
434
|
for (const item of items) {
|
|
435
|
-
ops.push({ index, node:
|
|
435
|
+
ops.push({ index, node: yValueToJson2(item), op: "insert-child", parentPath });
|
|
436
436
|
index += 1;
|
|
437
437
|
}
|
|
438
438
|
}
|
|
@@ -444,176 +444,9 @@ function yEventsToDocOps(events) {
|
|
|
444
444
|
return ops;
|
|
445
445
|
}
|
|
446
446
|
// ../collab/src/diff.ts
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
class MaxOpsExceededError extends Error {
|
|
450
|
-
name = "MaxOpsExceededError";
|
|
451
|
-
}
|
|
452
|
-
function isPlainObject3(value) {
|
|
453
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
454
|
-
}
|
|
455
|
-
function deepEqual(a, b) {
|
|
456
|
-
if (a === b) {
|
|
457
|
-
return true;
|
|
458
|
-
}
|
|
459
|
-
if (Array.isArray(a) && Array.isArray(b)) {
|
|
460
|
-
return a.length === b.length && a.every((item, i) => deepEqual(item, b[i]));
|
|
461
|
-
}
|
|
462
|
-
if (isPlainObject3(a) && isPlainObject3(b)) {
|
|
463
|
-
const keysA = Object.keys(a);
|
|
464
|
-
const keysB = Object.keys(b);
|
|
465
|
-
return keysA.length === keysB.length && keysA.every((key) => (key in b) && deepEqual(a[key], b[key]));
|
|
466
|
-
}
|
|
467
|
-
return false;
|
|
468
|
-
}
|
|
469
|
-
function contentHash(text) {
|
|
470
|
-
let hash = 5381;
|
|
471
|
-
for (let i = 0;i < text.length; i++) {
|
|
472
|
-
hash = Math.imul(hash, 33) + (text.codePointAt(i) ?? 0);
|
|
473
|
-
}
|
|
474
|
-
return hash.toString(36);
|
|
475
|
-
}
|
|
476
|
-
function strongKey(item) {
|
|
477
|
-
return typeof item === "string" ? `s:${item}` : `n:${contentHash(JSON.stringify(item))}`;
|
|
478
|
-
}
|
|
479
|
-
function weakKey(item) {
|
|
480
|
-
if (typeof item === "string") {
|
|
481
|
-
return "s";
|
|
482
|
-
}
|
|
483
|
-
const node = item;
|
|
484
|
-
const attrs = node["attributes"];
|
|
485
|
-
const props = node["$props"];
|
|
486
|
-
const id = (isPlainObject3(attrs) ? attrs["id"] : undefined) ?? (isPlainObject3(props) ? props["key"] : undefined) ?? "";
|
|
487
|
-
return `w:${String(node["tagName"] ?? "")}:${String(id)}`;
|
|
488
|
-
}
|
|
489
|
-
function lcsPairs(aKeys, bKeys) {
|
|
490
|
-
const n = aKeys.length;
|
|
491
|
-
const m = bKeys.length;
|
|
492
|
-
if (n === 0 || m === 0) {
|
|
493
|
-
return [];
|
|
494
|
-
}
|
|
495
|
-
const table = Array.from({ length: n + 1 }, () => Array.from({ length: m + 1 }, () => 0));
|
|
496
|
-
for (let i2 = n - 1;i2 >= 0; i2--) {
|
|
497
|
-
for (let j2 = m - 1;j2 >= 0; j2--) {
|
|
498
|
-
table[i2][j2] = aKeys[i2] === bKeys[j2] ? table[i2 + 1][j2 + 1] + 1 : Math.max(table[i2 + 1][j2], table[i2][j2 + 1]);
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
const pairs = [];
|
|
502
|
-
let i = 0;
|
|
503
|
-
let j = 0;
|
|
504
|
-
while (i < n && j < m) {
|
|
505
|
-
if (aKeys[i] === bKeys[j]) {
|
|
506
|
-
pairs.push([i, j]);
|
|
507
|
-
i += 1;
|
|
508
|
-
j += 1;
|
|
509
|
-
} else if (table[i + 1][j] >= table[i][j + 1]) {
|
|
510
|
-
i += 1;
|
|
511
|
-
} else {
|
|
512
|
-
j += 1;
|
|
513
|
-
}
|
|
514
|
-
}
|
|
515
|
-
return pairs;
|
|
516
|
-
}
|
|
517
|
-
function matchChildren(a, b) {
|
|
518
|
-
const anchors = lcsPairs(a.map((item) => strongKey(item)), b.map((item) => strongKey(item)));
|
|
519
|
-
const matches = [];
|
|
520
|
-
let prevA = -1;
|
|
521
|
-
let prevB = -1;
|
|
522
|
-
const gaps = [];
|
|
523
|
-
for (const [ai, bi] of anchors) {
|
|
524
|
-
gaps.push([prevA + 1, ai, prevB + 1, bi]);
|
|
525
|
-
matches.push({ aIndex: ai, bIndex: bi, identical: true });
|
|
526
|
-
prevA = ai;
|
|
527
|
-
prevB = bi;
|
|
528
|
-
}
|
|
529
|
-
gaps.push([prevA + 1, a.length, prevB + 1, b.length]);
|
|
530
|
-
for (const [aStart, aEnd, bStart, bEnd] of gaps) {
|
|
531
|
-
const aGap = a.slice(aStart, aEnd);
|
|
532
|
-
const bGap = b.slice(bStart, bEnd);
|
|
533
|
-
for (const [gi, gj] of lcsPairs(aGap.map((item) => weakKey(item)), bGap.map((item) => weakKey(item)))) {
|
|
534
|
-
matches.push({ aIndex: aStart + gi, bIndex: bStart + gj, identical: false });
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
return matches.toSorted((x, y) => x.aIndex - y.aIndex);
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
class Differ {
|
|
541
|
-
ops = [];
|
|
542
|
-
maxOps;
|
|
543
|
-
constructor(maxOps) {
|
|
544
|
-
this.maxOps = maxOps;
|
|
545
|
-
}
|
|
546
|
-
result() {
|
|
547
|
-
return this.ops;
|
|
548
|
-
}
|
|
549
|
-
push(op) {
|
|
550
|
-
if (this.ops.length >= this.maxOps) {
|
|
551
|
-
throw new MaxOpsExceededError;
|
|
552
|
-
}
|
|
553
|
-
this.ops.push(op);
|
|
554
|
-
}
|
|
555
|
-
diffNode(path, a, b) {
|
|
556
|
-
for (const key of new Set([...Object.keys(a), ...Object.keys(b)])) {
|
|
557
|
-
if (key === "children") {
|
|
558
|
-
continue;
|
|
559
|
-
}
|
|
560
|
-
if (!(key in b)) {
|
|
561
|
-
this.push({ key, op: "set-key", path });
|
|
562
|
-
} else if (!deepEqual(a[key], b[key])) {
|
|
563
|
-
this.push({ key, op: "set-key", path, value: b[key] });
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
const ca = a["children"];
|
|
567
|
-
const cb = b["children"];
|
|
568
|
-
if (Array.isArray(ca) && Array.isArray(cb)) {
|
|
569
|
-
this.diffChildren(path, ca, cb);
|
|
570
|
-
} else if (!deepEqual(ca, cb)) {
|
|
571
|
-
this.push({ key: "children", op: "set-key", path, value: cb });
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
diffChildren(path, a, b) {
|
|
575
|
-
const matches = matchChildren(a, b);
|
|
576
|
-
const matchedA = new Set(matches.map((match) => match.aIndex));
|
|
577
|
-
const byB = new Map(matches.map((match) => [match.bIndex, match]));
|
|
578
|
-
for (let i = a.length - 1;i >= 0; i--) {
|
|
579
|
-
if (!matchedA.has(i)) {
|
|
580
|
-
this.push({ index: i, op: "remove-child", parentPath: path });
|
|
581
|
-
}
|
|
582
|
-
}
|
|
583
|
-
for (let i = 0;i < b.length; i++) {
|
|
584
|
-
const match = byB.get(i);
|
|
585
|
-
if (!match) {
|
|
586
|
-
this.push({ index: i, node: b[i], op: "insert-child", parentPath: path });
|
|
587
|
-
continue;
|
|
588
|
-
}
|
|
589
|
-
if (match.identical) {
|
|
590
|
-
continue;
|
|
591
|
-
}
|
|
592
|
-
const aItem = a[match.aIndex];
|
|
593
|
-
const bItem = b[i];
|
|
594
|
-
if (isPlainObject3(aItem) && isPlainObject3(bItem)) {
|
|
595
|
-
this.diffNode([...path, "children", i], aItem, bItem);
|
|
596
|
-
} else if (!deepEqual(aItem, bItem)) {
|
|
597
|
-
this.push({ index: i, node: bItem, op: "set-child", parentPath: path });
|
|
598
|
-
}
|
|
599
|
-
}
|
|
600
|
-
}
|
|
601
|
-
}
|
|
602
|
-
function diffDocs(a, b, opts = {}) {
|
|
603
|
-
const differ = new Differ(opts.maxOps ?? DEFAULT_MAX_OPS);
|
|
604
|
-
try {
|
|
605
|
-
differ.diffNode([], a, b);
|
|
606
|
-
} catch (error) {
|
|
607
|
-
if (error instanceof MaxOpsExceededError) {
|
|
608
|
-
return null;
|
|
609
|
-
}
|
|
610
|
-
throw error;
|
|
611
|
-
}
|
|
612
|
-
return differ.result();
|
|
613
|
-
}
|
|
614
|
-
function replaceYStructure(doc, document, origin) {
|
|
447
|
+
function replaceYStructure2(doc, document, origin) {
|
|
615
448
|
doc.transact(() => {
|
|
616
|
-
const structure =
|
|
449
|
+
const structure = structureMap2(doc);
|
|
617
450
|
const next = document;
|
|
618
451
|
const existingKeys = [...structure.keys()];
|
|
619
452
|
for (const key of existingKeys) {
|
|
@@ -626,46 +459,46 @@ function replaceYStructure(doc, document, origin) {
|
|
|
626
459
|
continue;
|
|
627
460
|
}
|
|
628
461
|
if (key === "children" && Array.isArray(value)) {
|
|
629
|
-
structure.set(key,
|
|
462
|
+
structure.set(key, toYChildren2(value));
|
|
630
463
|
} else {
|
|
631
464
|
structure.set(key, JSON.parse(JSON.stringify(value)));
|
|
632
465
|
}
|
|
633
466
|
}
|
|
634
|
-
const meta =
|
|
467
|
+
const meta = metaMap2(doc);
|
|
635
468
|
meta.set("canonicalRev", Number(meta.get("canonicalRev") ?? 0) + 1);
|
|
636
469
|
}, origin);
|
|
637
470
|
}
|
|
638
471
|
// ../collab/src/source-lock.ts
|
|
639
|
-
function
|
|
640
|
-
return
|
|
472
|
+
function canonicalOf2(doc) {
|
|
473
|
+
return metaMap2(doc).get("canonical") === "source" ? "source" : "structure";
|
|
641
474
|
}
|
|
642
|
-
function
|
|
643
|
-
return Number(
|
|
475
|
+
function canonicalRevOf2(doc) {
|
|
476
|
+
return Number(metaMap2(doc).get("canonicalRev") ?? 0);
|
|
644
477
|
}
|
|
645
|
-
function
|
|
646
|
-
if (
|
|
478
|
+
function acquireSourceCanonical2(doc, serialized, origin) {
|
|
479
|
+
if (canonicalOf2(doc) === "source") {
|
|
647
480
|
return false;
|
|
648
481
|
}
|
|
649
482
|
doc.transact(() => {
|
|
650
|
-
|
|
651
|
-
const meta =
|
|
483
|
+
updateSourceText2(doc, serialized, origin);
|
|
484
|
+
const meta = metaMap2(doc);
|
|
652
485
|
meta.set("canonical", "source");
|
|
653
|
-
meta.set("canonicalRev",
|
|
486
|
+
meta.set("canonicalRev", canonicalRevOf2(doc) + 1);
|
|
654
487
|
}, origin);
|
|
655
488
|
return true;
|
|
656
489
|
}
|
|
657
|
-
function
|
|
658
|
-
if (
|
|
490
|
+
function releaseSourceCanonical2(doc, origin) {
|
|
491
|
+
if (canonicalOf2(doc) !== "source") {
|
|
659
492
|
return false;
|
|
660
493
|
}
|
|
661
494
|
doc.transact(() => {
|
|
662
|
-
const meta =
|
|
495
|
+
const meta = metaMap2(doc);
|
|
663
496
|
meta.set("canonical", "structure");
|
|
664
|
-
meta.set("canonicalRev",
|
|
497
|
+
meta.set("canonicalRev", canonicalRevOf2(doc) + 1);
|
|
665
498
|
}, origin);
|
|
666
499
|
return true;
|
|
667
500
|
}
|
|
668
|
-
function
|
|
501
|
+
function otherSourceEditors2(awareness, path, selfClientId) {
|
|
669
502
|
const editors = [];
|
|
670
503
|
for (const [clientId, raw] of awareness.getStates()) {
|
|
671
504
|
const state = raw;
|
|
@@ -675,7 +508,7 @@ function otherSourceEditors(awareness, path, selfClientId) {
|
|
|
675
508
|
}
|
|
676
509
|
return editors;
|
|
677
510
|
}
|
|
678
|
-
function
|
|
511
|
+
function isSourceReconciler2(awareness, path) {
|
|
679
512
|
const self = awareness.clientID;
|
|
680
513
|
const selfState = awareness.getStates().get(self);
|
|
681
514
|
if (selfState?.mode !== "source" || selfState.focusedPath !== path) {
|
|
@@ -691,7 +524,7 @@ function isSourceReconciler(awareness, path) {
|
|
|
691
524
|
return lowest === self;
|
|
692
525
|
}
|
|
693
526
|
// ../collab/src/awareness-types.ts
|
|
694
|
-
var
|
|
527
|
+
var PRESENCE_PALETTE2 = [
|
|
695
528
|
"#4f9cf9",
|
|
696
529
|
"#e5484d",
|
|
697
530
|
"#30a46c",
|
|
@@ -701,15 +534,15 @@ var PRESENCE_PALETTE = [
|
|
|
701
534
|
"#e93d82",
|
|
702
535
|
"#a8845c"
|
|
703
536
|
];
|
|
704
|
-
function
|
|
537
|
+
function colorForKey2(key) {
|
|
705
538
|
let hash = 5381;
|
|
706
539
|
for (let i = 0;i < key.length; i++) {
|
|
707
540
|
hash = Math.imul(hash, 33) + (key.codePointAt(i) ?? 0);
|
|
708
541
|
}
|
|
709
|
-
const index = Math.abs(hash) %
|
|
710
|
-
return
|
|
542
|
+
const index = Math.abs(hash) % PRESENCE_PALETTE2.length;
|
|
543
|
+
return PRESENCE_PALETTE2[index];
|
|
711
544
|
}
|
|
712
|
-
export {
|
|
545
|
+
export { META_KEY2, FRONTMATTER_KEY2, STRUCTURE_KEY2, SOURCE_KEY2, COLLAB_SCHEMA_VERSION2, metaMap2, frontmatterMap2, structureMap2, sourceText2, toYChildren2, toYNode2, yValueToJson2, yDocToJson2, resolveYPath2, updateSourceText2, seedStructure2, LOCAL_ORIGIN2, MIRROR_ORIGIN2, SEED_ORIGIN2, CollabPathError2, applyDocOpsToY2, yEventsToDocOps2, replaceYStructure2, canonicalOf2, canonicalRevOf2, acquireSourceCanonical2, releaseSourceCanonical2, otherSourceEditors2, isSourceReconciler2, PRESENCE_PALETTE2, colorForKey2 };
|
|
713
546
|
|
|
714
|
-
//# debugId=
|
|
715
|
-
//# sourceMappingURL=studio-
|
|
547
|
+
//# debugId=CC930FED1A0510B664756E2164756E21
|
|
548
|
+
//# sourceMappingURL=studio-rnyf3f8e.js.map
|