@jxsuite/studio 5.2.0 → 5.4.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.
Files changed (398) hide show
  1. package/data/css-meta.json +28 -27
  2. package/dist/chunks/{cf-account-picker-h4dab9bq.js → cf-account-picker-3f08rry6.js} +21 -18
  3. package/dist/chunks/{cf-settings-adg74qsk.js → cf-settings-m79r7p5y.js} +4 -4
  4. package/dist/chunks/{components-5y78e05d.js → components-xm826zjw.js} +3 -3
  5. package/dist/chunks/{content-source-sgg1sv6n.js → content-source-jt7rbcbc.js} +22 -22
  6. package/dist/chunks/{convert-to-repeater-mf1cxgfn.js → convert-to-repeater-vg38bq99.js} +22 -22
  7. package/dist/chunks/{editor-3qhbg51x.js → editor-ddy019sn.js} +2 -2
  8. package/dist/chunks/entry-commands-64nb2a9a.js +42 -0
  9. package/dist/chunks/{extension-sections-c6zwzbre.js → extension-sections-r73an5s6.js} +31 -30
  10. package/dist/chunks/{file-ops-vrpq1jjk.js → file-ops-3xan8mnj.js} +21 -21
  11. package/dist/chunks/{files-msaf95y6.js → files-egsb0ry8.js} +30 -29
  12. package/dist/chunks/{format-host-f64fnesp.js → format-host-mym8qnd0.js} +3 -3
  13. package/dist/chunks/{fs-events-3y6y0nrm.js → fs-events-z2gg8qjt.js} +4 -4
  14. package/dist/chunks/{git-panel-bv5e22j0.js → git-panel-a05atk6q.js} +20 -20
  15. package/dist/chunks/{grid-view-1p6hsyjx.css → grid-view-3g1h2re8.css} +956 -139
  16. package/dist/chunks/{grid-view-paj67nr5.js → grid-view-qaqer9kr.js} +24 -24
  17. package/dist/chunks/{icons-yy10wk9r.js → icons-drxq9q10.js} +8 -2
  18. package/dist/chunks/{iframe-host-dh5np8vk.js → iframe-host-psetcv20.js} +11 -11
  19. package/dist/chunks/{index-n4j7qxyr.js → index-9yjae3hz.js} +4 -4
  20. package/dist/chunks/{javascript-4abzjcy9.css → javascript-bc9z461d.css} +688 -54
  21. package/dist/chunks/{javascript-xvrfrpkb.js → javascript-hr5sg57n.js} +2 -2
  22. package/dist/chunks/{jsonMode-vvmpmk34.css → jsonMode-qqd9nm1t.css} +1120 -303
  23. package/dist/chunks/{jsonMode-tyx2kj6p.js → jsonMode-zs88v0wr.js} +4 -4
  24. package/dist/chunks/{jx-validate-j0wxk72w.js → jx-validate-epp2z3s3.js} +2 -2
  25. package/dist/chunks/layers-panel-83a16ytx.js +41 -0
  26. package/dist/chunks/{layers-1vcfdbet.js → layers-s6mc01ry.js} +3 -3
  27. package/dist/chunks/{listbox-6v2ac08j.js → listbox-b7jxnhq1.js} +19 -3
  28. package/dist/chunks/{media-picker-p49nhqhs.js → media-picker-nhn6rv4w.js} +11 -11
  29. package/dist/chunks/{menu-qht48vnc.js → menu-8j4qxjrp.js} +4 -4
  30. package/dist/chunks/{monaco-binding-sw6en4dw.js → monaco-binding-e8d9wzyk.js} +3 -3
  31. package/dist/chunks/{monaco-buffer-pykwbm92.js → monaco-buffer-jaq1t9zj.js} +2 -2
  32. package/dist/chunks/{monaco-setup-8vbyqnhr.css → monaco-setup-ey9cjcm3.css} +954 -137
  33. package/dist/chunks/{monaco-setup-8r62fj6y.js → monaco-setup-gsjdysze.js} +7 -7
  34. package/dist/chunks/{platform-ts9cg1a4.js → platform-fnchmhy7.js} +5 -3
  35. package/dist/chunks/publish-panel-ak6hxfma.js +27 -0
  36. package/dist/chunks/quick-search-c63mkt3b.js +47 -0
  37. package/dist/chunks/{references-h69xp9zz.js → references-f7bdv3z5.js} +3 -3
  38. package/dist/chunks/right-panel-t5n8wttg.js +45 -0
  39. package/dist/chunks/{split-g7nm1rgb.js → split-4cz4b6ef.js} +14 -3
  40. package/dist/chunks/{studio-sar8g54p.js → studio-01269reb.js} +8 -8
  41. package/dist/chunks/{studio-rnyf3f8e.js → studio-0a4gncx0.js} +3 -3
  42. package/dist/chunks/{studio-e1f24eff.js → studio-0d4p4wxj.js} +6778 -2993
  43. package/dist/chunks/{studio-4wbb9ct0.js → studio-1tejxvba.js} +3006 -1855
  44. package/dist/chunks/{studio-p6pmwkvh.js → studio-3nprwbd9.js} +147 -28
  45. package/dist/chunks/{studio-4c041r8y.js → studio-40z39dme.js} +3 -3
  46. package/dist/chunks/{studio-68fydsrj.js → studio-482eeazk.js} +20 -20
  47. package/dist/chunks/{studio-y4f9fdge.js → studio-4998spet.js} +10 -9
  48. package/dist/chunks/{studio-nq5yf5mp.js → studio-557bmn0x.js} +2 -2
  49. package/dist/chunks/{studio-hdc2jt3z.js → studio-5w26wza5.js} +3 -3
  50. package/dist/chunks/{studio-6nzaktvy.js → studio-6pwn9j8c.js} +6 -3
  51. package/dist/chunks/{studio-wnsyffg1.js → studio-6vg0x5fz.js} +3 -2
  52. package/dist/chunks/{studio-vn5hske5.js → studio-7d3c1m59.js} +12 -5
  53. package/dist/chunks/{studio-28vs5k2y.js → studio-9vsvz7w7.js} +7 -7
  54. package/dist/chunks/{studio-t3adrr56.js → studio-9wm0xzpf.js} +19 -19
  55. package/dist/chunks/{studio-38emantv.js → studio-a5h5j33a.js} +19 -5
  56. package/dist/chunks/{studio-ympe0n7a.js → studio-ag3z6shb.js} +10 -4
  57. package/dist/chunks/studio-aj9drheq.js +177 -0
  58. package/dist/chunks/{studio-vt0tj32j.js → studio-apv9x70c.js} +189 -130
  59. package/dist/chunks/{studio-c04nzbby.js → studio-b9q3znz8.js} +2 -2
  60. package/dist/chunks/{studio-2mdbbc76.js → studio-bh47w0cy.js} +9 -10
  61. package/dist/chunks/{studio-ez11dmdh.js → studio-dgdm6vvt.js} +264 -52
  62. package/dist/chunks/{studio-5nz00bhh.js → studio-dwdcr2e8.js} +4 -4
  63. package/dist/chunks/{studio-nqgawfks.js → studio-fbcyz234.js} +146 -139
  64. package/dist/chunks/{studio-kcgff4r0.js → studio-fgmfksz8.js} +2 -2
  65. package/dist/chunks/{studio-x72j58vw.js → studio-fqpkpq1t.js} +7 -4
  66. package/dist/chunks/{studio-15f3kxqe.js → studio-fy320dfc.js} +62 -68
  67. package/dist/chunks/{studio-zjjde71a.js → studio-gjj4bbfx.js} +2 -2
  68. package/dist/chunks/{studio-66arbpc2.js → studio-jfhxy8h3.js} +16 -15
  69. package/dist/chunks/{studio-d0300636.js → studio-ks2zzth2.js} +17 -2
  70. package/dist/chunks/{studio-c07s5ckd.js → studio-kwewmhhq.js} +4 -4
  71. package/dist/chunks/{studio-01jeck2y.js → studio-m58xn8at.js} +26 -25
  72. package/dist/chunks/{studio-mpzwze9x.js → studio-mfkh1q8d.js} +17 -17
  73. package/dist/chunks/{studio-etvx9s2g.js → studio-mrh0a92f.js} +17 -17
  74. package/dist/chunks/{studio-qa7fzxan.js → studio-mt79tn56.js} +3 -3
  75. package/dist/chunks/{studio-hhskq2mr.js → studio-ne593z1j.js} +39 -32
  76. package/dist/chunks/{studio-h4nvnjvz.js → studio-ptfcxkz5.js} +418 -232
  77. package/dist/chunks/{studio-4xmjcrg3.js → studio-qxye31h7.js} +7 -7
  78. package/dist/chunks/{studio-a1pswps3.js → studio-rav5bpmp.js} +81 -59
  79. package/dist/chunks/{studio-ncn9e189.js → studio-rwmmbrth.js} +6 -6
  80. package/dist/chunks/{studio-en82c639.js → studio-sceg8ws0.js} +8 -8
  81. package/dist/chunks/{studio-wjpgxywa.js → studio-sjas5b3a.js} +19 -13
  82. package/dist/chunks/{studio-4r14yzyy.js → studio-vd67b66d.js} +3 -3
  83. package/dist/chunks/{studio-14d9tq4d.js → studio-w475cbf9.js} +10 -10
  84. package/dist/chunks/{studio-ctm7bhx5.js → studio-w7gpcvfj.js} +9 -9
  85. package/dist/chunks/{studio-9j6sfeba.js → studio-xrbfdxgk.js} +7 -7
  86. package/dist/chunks/{studio-x10fp4tp.js → studio-y49b6mjv.js} +35 -35
  87. package/dist/chunks/{studio-5t7ena5z.js → studio-ygvr9e4q.js} +10 -10
  88. package/dist/chunks/{studio-z2smx5ce.js → studio-yxmmjy2a.js} +9 -6
  89. package/dist/chunks/{tsMode-jy4m86rv.js → tsMode-ay4c78ne.js} +4 -4
  90. package/dist/chunks/{tsMode-hnxxb73h.css → tsMode-c72wyz27.css} +954 -137
  91. package/dist/chunks/{workspace-bnw54cha.js → workspace-b9k2frks.js} +5 -5
  92. package/dist/chunks/{ws-client-ny4zc51r.js → ws-client-erze4czt.js} +356 -20
  93. package/dist/codicon.ttf +0 -0
  94. package/dist/iframe-entry.js +20 -18
  95. package/dist/studio.css +956 -139
  96. package/dist/studio.js +1511 -851
  97. package/dist/workers/editor.worker.js +196 -107
  98. package/dist/workers/json.worker.js +196 -107
  99. package/dist/workers/ts.worker.js +196 -107
  100. package/package.json +18 -17
  101. package/src/about/about-modal.ts +4 -3
  102. package/src/browse/library-commands.ts +15 -13
  103. package/src/browse/library-pane.ts +2 -2
  104. package/src/canvas/canvas-render.ts +97 -83
  105. package/src/canvas/canvas-surface.ts +2 -2
  106. package/src/canvas/canvas-utils.ts +42 -32
  107. package/src/canvas/diff-toolbar.ts +21 -2
  108. package/src/canvas/diff-view.ts +30 -6
  109. package/src/canvas/iframe-entry.ts +2 -2
  110. package/src/canvas/iframe-host.ts +5 -5
  111. package/src/canvas/iframe-interaction.ts +7 -6
  112. package/src/canvas/iframe-overlay.ts +1 -1
  113. package/src/canvas/iframe-protocol.ts +6 -5
  114. package/src/canvas/iframe-render.ts +3 -3
  115. package/src/canvas/popover-state.ts +1 -1
  116. package/src/canvas/stage-scrollbar.ts +112 -0
  117. package/src/canvas/surface-registry.ts +9 -2
  118. package/src/collab/collab-commands.ts +8 -6
  119. package/src/collab/collab-session.ts +4 -4
  120. package/src/collab/collab-state.ts +4 -4
  121. package/src/collab/presence-chips.ts +3 -3
  122. package/src/commands/app-commands.ts +7 -7
  123. package/src/commands/budget.ts +17 -16
  124. package/src/commands/command-args.ts +10 -9
  125. package/src/commands/context.ts +20 -10
  126. package/src/commands/defaults.ts +30 -29
  127. package/src/commands/levels.ts +8 -6
  128. package/src/commands/live-context.ts +12 -10
  129. package/src/commands/reference.ts +5 -5
  130. package/src/commands/registry.ts +2 -2
  131. package/src/content/draft-state.ts +9 -8
  132. package/src/content/entry-commands.ts +16 -14
  133. package/src/content/entry-editor.ts +2 -2
  134. package/src/content/entry-fields.ts +1 -1
  135. package/src/editor/context-menu.ts +4 -4
  136. package/src/editor/convert-to-component.ts +6 -5
  137. package/src/editor/inline-edit.ts +3 -3
  138. package/src/editor/shortcuts.ts +88 -20
  139. package/src/editor/slash-menu.ts +11 -10
  140. package/src/files/elements.ts +4 -5
  141. package/src/files/file-ops.ts +1 -1
  142. package/src/files/files.ts +21 -17
  143. package/src/files/serialize-document.ts +1 -1
  144. package/src/format/convert-file.ts +5 -5
  145. package/src/github/github-auth-status.ts +107 -0
  146. package/src/github/github-auth.ts +18 -82
  147. package/src/github/github-publish.ts +7 -6
  148. package/src/grid/cell-editors.ts +8 -7
  149. package/src/grid/grid-layout.ts +1 -1
  150. package/src/grid/grid-open.ts +6 -5
  151. package/src/grid/grid-panel.ts +13 -12
  152. package/src/grid/redirects-grid.ts +14 -11
  153. package/src/grid/redirects.ts +10 -5
  154. package/src/grid/sources/content-source.ts +10 -9
  155. package/src/hosting/document.ts +28 -1
  156. package/src/hosting/stage.ts +15 -4
  157. package/src/i18n/i18n-commands.ts +9 -7
  158. package/src/new-project/location-fields.ts +16 -3
  159. package/src/new-project/new-project-modal.ts +23 -7
  160. package/src/page-params.ts +6 -6
  161. package/src/panels/activity-panel.ts +11 -10
  162. package/src/panels/ai-chat/chat-view.ts +27 -14
  163. package/src/panels/ai-chat/composer.ts +10 -3
  164. package/src/panels/ai-panel.ts +87 -29
  165. package/src/panels/block-action-bar.ts +59 -33
  166. package/src/panels/bottom-dock.ts +22 -22
  167. package/src/panels/chat-panel.ts +40 -5
  168. package/src/panels/data-explorer.ts +9 -9
  169. package/src/panels/data-grid.ts +1 -1
  170. package/src/panels/editors.ts +8 -8
  171. package/src/panels/elements-panel.ts +7 -8
  172. package/src/panels/empty-state.ts +1 -1
  173. package/src/panels/events-panel.ts +13 -12
  174. package/src/panels/formula-workspace.ts +8 -5
  175. package/src/panels/frontmatter-fields.ts +4 -1
  176. package/src/panels/frontmatter-panel.ts +18 -18
  177. package/src/panels/git-panel.ts +19 -13
  178. package/src/panels/head-panel.ts +9 -10
  179. package/src/panels/i18n-panel.ts +6 -4
  180. package/src/panels/imports-panel.ts +1 -1
  181. package/src/panels/jump-bar.ts +20 -18
  182. package/src/panels/layers-panel.ts +19 -17
  183. package/src/panels/left-panel.ts +3 -3
  184. package/src/panels/navigator-panels.ts +8 -8
  185. package/src/panels/overlays.ts +1 -1
  186. package/src/panels/pane-context.ts +56 -28
  187. package/src/panels/pane-grid.ts +9 -8
  188. package/src/panels/panel-registry.ts +47 -19
  189. package/src/panels/problems-panel.ts +11 -12
  190. package/src/panels/properties-panel.ts +21 -20
  191. package/src/panels/provenance.ts +3 -3
  192. package/src/panels/quick-search.ts +15 -11
  193. package/src/panels/right-panel.ts +4 -3
  194. package/src/panels/seo-modal.ts +5 -4
  195. package/src/panels/settings-menu.ts +9 -9
  196. package/src/panels/settings-pane.ts +3 -3
  197. package/src/panels/signals-panel.ts +16 -9
  198. package/src/panels/statement-editor.ts +12 -9
  199. package/src/panels/style-panel.ts +45 -41
  200. package/src/panels/stylebook-panel.ts +0 -1
  201. package/src/panels/tab-strip.ts +26 -23
  202. package/src/platform-errors.ts +2 -2
  203. package/src/platform.ts +44 -4
  204. package/src/platforms/cloud.ts +11 -1
  205. package/src/platforms/default-platform.ts +141 -4
  206. package/src/platforms/devserver.ts +23 -3
  207. package/src/publish/deploy-checklist.ts +11 -10
  208. package/src/publish/publish-commands.ts +9 -8
  209. package/src/services/a11y-report.ts +1 -1
  210. package/src/services/ai-ask.ts +39 -16
  211. package/src/services/ai-command-tools.ts +28 -14
  212. package/src/services/ai-import-tools.ts +43 -29
  213. package/src/services/ai-project-tools.ts +20 -38
  214. package/src/services/ai-settings.ts +55 -2
  215. package/src/services/ai-tools.ts +69 -58
  216. package/src/services/ai-write-report.ts +4 -4
  217. package/src/services/ai-writes.ts +74 -55
  218. package/src/services/automation.ts +12 -12
  219. package/src/services/clock.ts +2 -1
  220. package/src/services/connection.ts +2 -2
  221. package/src/services/context-manager.ts +69 -6
  222. package/src/services/directory-picker.ts +93 -27
  223. package/src/services/document-assistant.ts +86 -17
  224. package/src/services/gated-registry.ts +4 -3
  225. package/src/services/idle.ts +5 -4
  226. package/src/services/live-surfaces.ts +2 -1
  227. package/src/services/module-preloads.ts +67 -0
  228. package/src/services/notify.ts +9 -7
  229. package/src/services/popover-report.ts +3 -3
  230. package/src/services/preview-eval.ts +1 -1
  231. package/src/services/project-adoption.ts +34 -1
  232. package/src/services/project-path.ts +53 -0
  233. package/src/services/settings/kernel.ts +13 -2
  234. package/src/services/tool-executor.ts +135 -30
  235. package/src/services/tool-outcomes.ts +143 -0
  236. package/src/settings/contexts-section.ts +8 -8
  237. package/src/settings/contributed-section.ts +6 -6
  238. package/src/settings/css-vars-editor.ts +6 -5
  239. package/src/settings/extension-commands.ts +19 -18
  240. package/src/settings/extension-sections.ts +7 -7
  241. package/src/settings/extensions-section.ts +3 -3
  242. package/src/settings/general-settings.ts +21 -18
  243. package/src/settings/preferences-accounts.ts +3 -3
  244. package/src/settings/preferences-dialog.ts +9 -8
  245. package/src/settings/preferences-sections.ts +1 -1
  246. package/src/settings/project-sections.ts +2 -2
  247. package/src/settings/section-registry.ts +7 -6
  248. package/src/settings/settings-document.ts +41 -43
  249. package/src/shell/tree.ts +29 -0
  250. package/src/shell.ts +63 -55
  251. package/src/site-context.ts +1 -1
  252. package/src/store.ts +2 -2
  253. package/src/studio.ts +52 -28
  254. package/src/style/live-preview.ts +8 -8
  255. package/src/style/project-styles.ts +8 -9
  256. package/src/style/token-ref.ts +2 -2
  257. package/src/surfaces/about.json +6 -2
  258. package/src/surfaces/add-repo.json +2 -2
  259. package/src/surfaces/add-repo.ts +2 -2
  260. package/src/surfaces/ai-chat.json +14 -6
  261. package/src/surfaces/ai-chat.ts +4 -2
  262. package/src/surfaces/ai-credentials-form.json +53 -49
  263. package/src/surfaces/ai-credentials-form.ts +18 -4
  264. package/src/surfaces/ai-managed-connect.json +4 -4
  265. package/src/surfaces/block-action-bar.json +4 -4
  266. package/src/surfaces/block-action-bar.ts +3 -3
  267. package/src/surfaces/boot-failure.json +228 -0
  268. package/src/surfaces/boot-failure.ts +156 -0
  269. package/src/surfaces/bottom-dock.json +1 -1
  270. package/src/surfaces/canvas-stage.json +9 -40
  271. package/src/surfaces/canvas-stage.ts +9 -9
  272. package/src/surfaces/cf-account-picker.json +11 -8
  273. package/src/surfaces/commandbar.ts +11 -10
  274. package/src/surfaces/convert-repeater.ts +3 -2
  275. package/src/surfaces/dialog.json +7 -1
  276. package/src/surfaces/dialog.ts +2 -2
  277. package/src/surfaces/doc-header.json +6 -13
  278. package/src/surfaces/doc-header.ts +4 -5
  279. package/src/surfaces/entry-editor.json +1 -1
  280. package/src/surfaces/entry-editor.ts +2 -1
  281. package/src/surfaces/expression-editor.json +5 -5
  282. package/src/surfaces/files-panel.json +4 -3
  283. package/src/surfaces/files-panel.ts +1 -1
  284. package/src/surfaces/formula-palette.json +10 -9
  285. package/src/surfaces/formula-palette.ts +11 -7
  286. package/src/surfaces/git-panel.json +167 -109
  287. package/src/surfaces/git-panel.ts +2 -2
  288. package/src/surfaces/github-auth.json +2 -1
  289. package/src/surfaces/github-publish.ts +3 -3
  290. package/src/surfaces/grid-open.json +1 -1
  291. package/src/surfaces/grid-panel.json +2 -2
  292. package/src/surfaces/grid-views.json +1 -1
  293. package/src/surfaces/inspector-dock.json +2 -2
  294. package/src/surfaces/jump-bar.json +1 -1
  295. package/src/surfaces/jump-bar.ts +1 -1
  296. package/src/surfaces/library-pane.ts +2 -1
  297. package/src/surfaces/logic-panel.json +7 -7
  298. package/src/surfaces/logic-panel.ts +6 -4
  299. package/src/surfaces/logic-workspace.json +2 -2
  300. package/src/surfaces/logic-workspace.ts +2 -2
  301. package/src/surfaces/media-browser.ts +3 -3
  302. package/src/surfaces/media-pane.ts +2 -1
  303. package/src/surfaces/menu.ts +5 -5
  304. package/src/surfaces/new-project.json +1 -1
  305. package/src/surfaces/palette.json +8 -7
  306. package/src/surfaces/pane-context.json +86 -57
  307. package/src/surfaces/pane-context.ts +2 -1
  308. package/src/surfaces/pane-grid.json +3 -3
  309. package/src/surfaces/panel-activity.json +2 -1
  310. package/src/surfaces/panel-deploy-checklist.json +1 -1
  311. package/src/surfaces/panel-elements.ts +2 -1
  312. package/src/surfaces/panel-i18n.ts +2 -1
  313. package/src/surfaces/panel-outline.json +1 -1
  314. package/src/surfaces/panel-outline.ts +4 -3
  315. package/src/surfaces/panel-page.json +2 -2
  316. package/src/surfaces/panel-page.ts +4 -1
  317. package/src/surfaces/panel-problems.json +4 -3
  318. package/src/surfaces/panel-problems.ts +2 -2
  319. package/src/surfaces/panel-signals.json +23 -8
  320. package/src/surfaces/panel-signals.ts +5 -1
  321. package/src/surfaces/panel-stylebook-layers.json +1 -1
  322. package/src/surfaces/panel-stylebook-layers.ts +2 -2
  323. package/src/surfaces/preferences.json +21 -8
  324. package/src/surfaces/preferences.ts +9 -1
  325. package/src/surfaces/properties-panel.json +4 -4
  326. package/src/surfaces/properties-panel.ts +2 -2
  327. package/src/surfaces/publish.json +1 -1
  328. package/src/surfaces/publish.ts +2 -1
  329. package/src/surfaces/push-plan.json +4 -3
  330. package/src/surfaces/rail.json +2 -2
  331. package/src/surfaces/rail.ts +10 -4
  332. package/src/surfaces/reference-field.json +1 -1
  333. package/src/surfaces/schema-form.json +2 -2
  334. package/src/surfaces/schema-form.ts +1 -1
  335. package/src/surfaces/seo.json +1 -1
  336. package/src/surfaces/seo.ts +2 -2
  337. package/src/surfaces/settings-contributed.ts +2 -1
  338. package/src/surfaces/settings-css-vars.json +4 -4
  339. package/src/surfaces/settings-deploy.json +4 -4
  340. package/src/surfaces/settings-deploy.ts +2 -1
  341. package/src/surfaces/settings-extensions.json +6 -6
  342. package/src/surfaces/settings-extensions.ts +6 -2
  343. package/src/surfaces/settings-locales.json +4 -4
  344. package/src/surfaces/settings-overview.ts +2 -1
  345. package/src/surfaces/settings-pane.ts +3 -2
  346. package/src/surfaces/settings-rawjson.ts +1 -1
  347. package/src/surfaces/slash-menu.ts +4 -4
  348. package/src/surfaces/statements.json +3 -3
  349. package/src/surfaces/statusbar.ts +23 -23
  350. package/src/surfaces/style-panel.json +9 -5
  351. package/src/surfaces/style-panel.ts +3 -3
  352. package/src/surfaces/tab-strip.json +2 -2
  353. package/src/surfaces/target-line.json +1 -1
  354. package/src/surfaces/target-line.ts +12 -10
  355. package/src/surfaces/welcome.json +7 -2
  356. package/src/tabs/doc-op-apply.ts +5 -5
  357. package/src/tabs/patch-ops.ts +3 -3
  358. package/src/tabs/project-config.ts +10 -10
  359. package/src/tabs/selection.ts +1 -1
  360. package/src/tabs/tab.ts +13 -14
  361. package/src/tabs/transact.ts +18 -24
  362. package/src/types.ts +27 -3
  363. package/src/ui/ai-credentials-form.ts +74 -16
  364. package/src/ui/ai-managed-connect.ts +68 -19
  365. package/src/ui/color-selector.ts +1 -1
  366. package/src/ui/expression-editor.ts +3 -3
  367. package/src/ui/form-controls.ts +6 -5
  368. package/src/ui/formula-catalog.ts +4 -4
  369. package/src/ui/formula-chips.ts +2 -2
  370. package/src/ui/layers.ts +20 -18
  371. package/src/ui/panel-resize.ts +8 -28
  372. package/src/ui/popover-surface.ts +2 -2
  373. package/src/ui/progress-modal.ts +3 -3
  374. package/src/ui/regions.ts +14 -9
  375. package/src/ui/schema-form.ts +10 -9
  376. package/src/ui/timing.ts +9 -7
  377. package/src/ui/value-source.ts +4 -4
  378. package/src/ui/virtual-window.ts +58 -5
  379. package/src/utils/base64.ts +20 -1
  380. package/src/utils/canvas-media.ts +1 -1
  381. package/src/utils/studio-utils.ts +0 -31
  382. package/src/view.ts +4 -3
  383. package/src/workspace/pane-derive.ts +14 -13
  384. package/src/workspace/session.ts +7 -6
  385. package/src/workspace/workspace.ts +49 -39
  386. package/styles/canvas.css +1 -27
  387. package/styles/inspector.css +4 -3
  388. package/styles/overlays.css +1 -1
  389. package/styles/tokens.css +17 -1
  390. package/styles/tokens.json +6 -1
  391. package/dist/chunks/entry-commands-w9qsxa6q.js +0 -42
  392. package/dist/chunks/layers-panel-fksbdg4q.js +0 -40
  393. package/dist/chunks/publish-panel-vz23wwmg.js +0 -27
  394. package/dist/chunks/quick-search-e9rp74m8.js +0 -46
  395. package/dist/chunks/right-panel-j97t2yvy.js +0 -45
  396. package/dist/chunks/studio-727xh0e3.js +0 -76
  397. package/src/files/json-layout.ts +0 -474
  398. package/src/services/ai-turn-signal.ts +0 -70
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getPlatform2
3
- } from "./studio-6nzaktvy.js";
3
+ } from "./studio-6pwn9j8c.js";
4
4
  import {
5
5
  isJsonObject,
6
6
  paramNames
@@ -11,7 +11,7 @@ import {
11
11
  } from "./studio-m1p9b6c3.js";
12
12
  import {
13
13
  loadedMonaco
14
- } from "./studio-28vs5k2y.js";
14
+ } from "./studio-9vsvz7w7.js";
15
15
 
16
16
  // src/services/code-services.ts
17
17
  async function codeService(action, payload) {
@@ -108,4 +108,4 @@ function getFunctionArgs(editing, document) {
108
108
  export { codeService, pluginSchemaCache, fetchPluginSchema, setLintMarkers, getFunctionArgs };
109
109
 
110
110
  //# debugId=267FFB64A2BBCD1564756E2164756E21
111
- //# sourceMappingURL=studio-4r14yzyy.js.map
111
+ //# sourceMappingURL=studio-vd67b66d.js.map
@@ -2,7 +2,7 @@ import {
2
2
  showModal,
3
3
  close2,
4
4
  activeRegistry
5
- } from "./studio-p6pmwkvh.js";
5
+ } from "./studio-3nprwbd9.js";
6
6
  import {
7
7
  platformSupportsPublish,
8
8
  listAccounts2,
@@ -11,10 +11,10 @@ import {
11
11
  connectDeploy,
12
12
  currentDeploy,
13
13
  noteDeployment
14
- } from "./studio-9j6sfeba.js";
14
+ } from "./studio-xrbfdxgk.js";
15
15
  import {
16
16
  getPlatform2
17
- } from "./studio-6nzaktvy.js";
17
+ } from "./studio-6pwn9j8c.js";
18
18
  import {
19
19
  projectState
20
20
  } from "./studio-m1p9b6c3.js";
@@ -28,14 +28,14 @@ import {
28
28
  mountSurface,
29
29
  whenReady,
30
30
  layerHost2
31
- } from "./studio-ympe0n7a.js";
31
+ } from "./studio-ag3z6shb.js";
32
32
  import {
33
33
  getCfToken2,
34
34
  setCfToken2
35
- } from "./studio-c04nzbby.js";
35
+ } from "./studio-b9q3znz8.js";
36
36
  import {
37
37
  resetModelCache
38
- } from "./studio-vn5hske5.js";
38
+ } from "./studio-7d3c1m59.js";
39
39
  import {
40
40
  __preload
41
41
  } from "./studio-5te5tqng.js";
@@ -95,7 +95,7 @@ var publish_default = {
95
95
  gap: "var(--jx-space-3)"
96
96
  },
97
97
  '& [part="actions"]': {
98
- $description: 'Wraps rather than overflows (§4.6): two buttons whose labels are whole phrases — "Verify & Connect", "Preferences › Accounts" — are wider than a narrow dialog at the sizes a reader may have set.',
98
+ $description: 'Wraps rather than overflows (studio-ui-guidelines.md §4.6): two buttons whose labels are whole phrases — "Verify & Connect", "Preferences › Accounts" — are wider than a narrow dialog at the sizes a reader may have set.',
99
99
  display: "flex",
100
100
  flexWrap: "wrap",
101
101
  gap: "var(--jx-space-2)"
@@ -1261,7 +1261,7 @@ async function hostedConnect() {
1261
1261
  if (outcome?.status === "timeout") {
1262
1262
  _error = "The Cloudflare window didn't finish. Sign in there, then reconnect — nothing was changed.";
1263
1263
  } else if (outcome?.status === "connected" && !outcome.connection.accountId) {
1264
- const { openCfAccountPicker } = await (__preload("h4dab9bq"), import("./cf-account-picker-h4dab9bq.js"));
1264
+ const { openCfAccountPicker } = await (__preload("3f08rry6"), import("./cf-account-picker-3f08rry6.js"));
1265
1265
  await openCfAccountPicker();
1266
1266
  }
1267
1267
  } catch (error) {
@@ -1352,5 +1352,5 @@ function openPublishPanel2() {
1352
1352
 
1353
1353
  export { seedPublishConnected2, openPublishPanel2 };
1354
1354
 
1355
- //# debugId=6C5ED8D5F4FBF16B64756E2164756E21
1356
- //# sourceMappingURL=studio-14d9tq4d.js.map
1355
+ //# debugId=BBCA5EA5A986760064756E2164756E21
1356
+ //# sourceMappingURL=studio-w475cbf9.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  intlHelpersClause
3
- } from "./studio-p6pmwkvh.js";
3
+ } from "./studio-3nprwbd9.js";
4
4
  import {
5
5
  LANGUAGE_TAG_PATTERN,
6
6
  activeTab2
7
- } from "./studio-ez11dmdh.js";
7
+ } from "./studio-dgdm6vvt.js";
8
8
  import {
9
9
  isRef,
10
10
  isFunctionDef,
@@ -16,13 +16,13 @@ import {
16
16
  import {
17
17
  registerSurface,
18
18
  mountSurface
19
- } from "./studio-ympe0n7a.js";
19
+ } from "./studio-ag3z6shb.js";
20
20
  import {
21
21
  openMenu2
22
- } from "./studio-qa7fzxan.js";
22
+ } from "./studio-mt79tn56.js";
23
23
  import {
24
24
  cloneValue2
25
- } from "./studio-727xh0e3.js";
25
+ } from "./studio-aj9drheq.js";
26
26
 
27
27
  // ../schema/defs/tag-expression.schema.ts
28
28
  var tagExpressionSchema = {
@@ -1879,7 +1879,7 @@ var schema_form_default = {
1879
1879
  },
1880
1880
  cases: {
1881
1881
  true: {
1882
- $description: "The Value Source chip (§6.3): what produces this value, in the same four words every other bindable position in Studio uses. It opens the rung picker rather than cycling, so any rung the position permits is one action away. Drawn only where the host named somewhere a value could come from — a settings form that names none edits fixed values and shows no chip.",
1882
+ $description: "The Value Source chip (§6.6): what produces this value, in the same four words every other bindable position in Studio uses. It opens the rung picker rather than cycling, so any rung the position permits is one action away. Drawn only where the host named somewhere a value could come from — a settings form that names none edits fixed values and shows no chip.",
1883
1883
  tagName: "jx-action-button",
1884
1884
  attributes: {
1885
1885
  part: "source",
@@ -2694,7 +2694,7 @@ var schema_form_default = {
2694
2694
  },
2695
2695
  cases: {
2696
2696
  true: {
2697
- $description: '§7.1\'s inline tier: why this value is refused, said AT the control that refuses it and for exactly as long as the value stays bad. `role="alert"` so it is announced when it appears, and a repeat counter from two up — “it refused me again” is otherwise indistinguishable from “the field is still red from last time”.',
2697
+ $description: '§16.1\'s inline tier: why this value is refused, said AT the control that refuses it and for exactly as long as the value stays bad. `role="alert"` so it is announced when it appears, and a repeat counter from two up — “it refused me again” is otherwise indistinguishable from “the field is still red from last time”.',
2698
2698
  tagName: "p",
2699
2699
  attributes: {
2700
2700
  part: "field-error",
@@ -3501,5 +3501,5 @@ function resolveContextPointer(pointer, opts) {
3501
3501
 
3502
3502
  export { REDIRECT_STATUSES, VALUE_SOURCE_LABELS, VALUE_SOURCE_HINTS, slotMode, TAG_EXPRESSION_OPERATORS, capsForPosition, slotCaps, stashSlotValue, hasStashedSlotValue, effectiveSlotMode, slotModeSeed, switchSlotMode, registerFormControl, referenceTarget, mountSchemaForm, resolveContextPointer };
3503
3503
 
3504
- //# debugId=028D7979B65A1DC964756E2164756E21
3505
- //# sourceMappingURL=studio-ctm7bhx5.js.map
3504
+ //# debugId=0702BB28E37EDEEB64756E2164756E21
3505
+ //# sourceMappingURL=studio-w7gpcvfj.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getPlatform2
3
- } from "./studio-6nzaktvy.js";
3
+ } from "./studio-6pwn9j8c.js";
4
4
  import {
5
5
  projectState
6
6
  } from "./studio-m1p9b6c3.js";
@@ -13,14 +13,14 @@ import {
13
13
  import {
14
14
  updateSiteConfig,
15
15
  shell
16
- } from "./studio-mpzwze9x.js";
16
+ } from "./studio-mfkh1q8d.js";
17
17
  import {
18
18
  activeRegistry
19
- } from "./studio-p6pmwkvh.js";
19
+ } from "./studio-3nprwbd9.js";
20
20
  import {
21
21
  registerSurface,
22
22
  mountSurface
23
- } from "./studio-ympe0n7a.js";
23
+ } from "./studio-ag3z6shb.js";
24
24
 
25
25
  // ../create/scaffold.ts
26
26
  var CF_ADAPTERS = new Set(["cloudflare-pages", "cloudflare-workers"]);
@@ -407,7 +407,7 @@ var panel_deploy_checklist_default = {
407
407
  cases: {
408
408
  true: {
409
409
  tagName: "jx-button",
410
- $description: "The recovery button wears the command's own title, so it reads as a verb rather than as a decoration, and a refused command is dimmed with the reason it names in its tooltip. A command the registry does not have, or whose `when` is false, draws NOTHING rather than a dead label — a surface may choose whether to show a command, never whether it exists (§12.4).",
410
+ $description: "The recovery button wears the command's own title, so it reads as a verb rather than as a decoration, and a refused command is dimmed with the reason it names in its tooltip. A command the registry does not have, or whose `when` is false, draws NOTHING rather than a dead label — a surface may choose whether to show a command, never whether it exists (§13).",
411
411
  $props: {
412
412
  size: "sm",
413
413
  disabled: {
@@ -759,5 +759,5 @@ function syncDeployChecklist(host) {
759
759
 
760
760
  export { platformSupportsPublish, listAccounts2, latestDeployment, writeDeployConfig, connectDeploy, currentDeploy, noteDeployment, deployStatusItem, syncDeployChecklist };
761
761
 
762
- //# debugId=D0D91CF5DFF5DC8F64756E2164756E21
763
- //# sourceMappingURL=studio-9j6sfeba.js.map
762
+ //# debugId=3139EE25D573F54F64756E2164756E21
763
+ //# sourceMappingURL=studio-xrbfdxgk.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getPlatform2,
3
3
  hasPlatform2
4
- } from "./studio-6nzaktvy.js";
4
+ } from "./studio-6pwn9j8c.js";
5
5
  import {
6
6
  displayTagName
7
7
  } from "./studio-3ntvq6cg.js";
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  loadUsages2,
13
13
  usageWarning2
14
- } from "./studio-nq5yf5mp.js";
14
+ } from "./studio-557bmn0x.js";
15
15
  import {
16
16
  effectScope,
17
17
  onScopeDispose,
@@ -25,6 +25,23 @@ import {
25
25
  problemFindings2,
26
26
  problemCount2
27
27
  } from "./studio-d8z5bajd.js";
28
+ import {
29
+ EDITOR_KIND_LABELS,
30
+ primarySelection,
31
+ transactDoc,
32
+ setHistoryDelegate,
33
+ mutateUpdateStyle,
34
+ mutateUpdateAttribute,
35
+ mutateUpdateNestedStyle,
36
+ mutateUpdateNestedStylePath,
37
+ collabState,
38
+ isMediaFormat,
39
+ collabReadOnly,
40
+ collabSave,
41
+ PRIMARY_PANE2,
42
+ workspace2,
43
+ activeTab2
44
+ } from "./studio-dgdm6vvt.js";
28
45
  import {
29
46
  loadFormats2,
30
47
  formatByName2,
@@ -34,7 +51,7 @@ import {
34
51
  formatParse2,
35
52
  formatSerialize2,
36
53
  splitFormatDocument2
37
- } from "./studio-28vs5k2y.js";
54
+ } from "./studio-9vsvz7w7.js";
38
55
  import {
39
56
  getNodeAtPath2,
40
57
  childList,
@@ -43,26 +60,9 @@ import {
43
60
  projectState,
44
61
  statusbarEl
45
62
  } from "./studio-m1p9b6c3.js";
46
- import {
47
- EDITOR_KIND_LABELS,
48
- primarySelection,
49
- transactDoc,
50
- setHistoryDelegate,
51
- mutateUpdateStyle,
52
- mutateUpdateAttribute,
53
- mutateUpdateNestedStyle,
54
- mutateUpdateNestedStylePath,
55
- collabState,
56
- isMediaFormat,
57
- collabReadOnly,
58
- collabSave,
59
- PRIMARY_PANE2,
60
- workspace2,
61
- activeTab2
62
- } from "./studio-ez11dmdh.js";
63
63
  import {
64
64
  isMediaFile
65
- } from "./studio-en82c639.js";
65
+ } from "./studio-sceg8ws0.js";
66
66
  import {
67
67
  POPOVER_DEFAULT_MODE,
68
68
  findPopoverDefects,
@@ -70,38 +70,38 @@ import {
70
70
  POPOVER_TAGS,
71
71
  INVOKER_TAGS,
72
72
  activeRegistry
73
- } from "./studio-p6pmwkvh.js";
73
+ } from "./studio-3nprwbd9.js";
74
74
  import {
75
75
  paneRegion,
76
76
  registerSurface,
77
77
  mountSurface,
78
78
  runReported,
79
79
  showConfirmDialog2
80
- } from "./studio-ympe0n7a.js";
80
+ } from "./studio-ag3z6shb.js";
81
81
  import {
82
82
  openMenu2
83
- } from "./studio-qa7fzxan.js";
83
+ } from "./studio-mt79tn56.js";
84
84
  import {
85
85
  parseJsonDocument,
86
86
  serializeJson,
87
87
  shell
88
- } from "./studio-mpzwze9x.js";
88
+ } from "./studio-mfkh1q8d.js";
89
89
  import {
90
90
  deployStatusItem
91
- } from "./studio-9j6sfeba.js";
91
+ } from "./studio-xrbfdxgk.js";
92
92
  import {
93
93
  tabOfPane,
94
94
  derivationOfPane,
95
95
  findDialogDefects,
96
96
  flushCanvasEdits2
97
- } from "./studio-etvx9s2g.js";
97
+ } from "./studio-mrh0a92f.js";
98
98
  import {
99
99
  isRecentLocal2
100
- } from "./studio-4c041r8y.js";
100
+ } from "./studio-40z39dme.js";
101
101
  import {
102
102
  showProgressModal,
103
103
  loadMediaUsages
104
- } from "./studio-y4f9fdge.js";
104
+ } from "./studio-4998spet.js";
105
105
  import {
106
106
  validateComponentSlots
107
107
  } from "./studio-q0a3yk4n.js";
@@ -109,7 +109,7 @@ import {
109
109
  var jump_bar_default = {
110
110
  $schema: "https://jxsuite.com/schema/v1",
111
111
  $id: "StudioJumpBar",
112
- $description: "⑥ The jump bar: one pane's address, outermost step first, every step a command the adapter has already resolved against the registry. A step is a button when its command can run and a readout when it cannot — an address with a hole in it is a lie about containment, so a step never disappears. A step with more than one place to go carries the chevron that opens its siblings; one alternative is not a choice and draws no control. Nothing here decides what the bar says, which step is where you are, or what a chevron opens.",
112
+ $description: "The jump bar: one pane's address, outermost step first, every step a command the adapter has already resolved against the registry. A step is a button when its command can run and a readout when it cannot — an address with a hole in it is a lie about containment, so a step never disappears. A step with more than one place to go carries the chevron that opens its siblings; one alternative is not a choice and draws no control. Nothing here decides what the bar says, which step is where you are, or what a chevron opens.",
113
113
  tagName: "nav",
114
114
  attributes: {
115
115
  part: "bar",
@@ -386,7 +386,7 @@ function mountJumpBarSurface(host, region, actions) {
386
386
  var pane_grid_default = {
387
387
  $schema: "https://jxsuite.com/schema/v1",
388
388
  $id: "StudioPaneGrid",
389
- $description: "The pane grid (studio.md §18.1): one cell per pane, with a splitter before every cell but the first. Every box here is EMPTY by design — the FIVE inside a cell are hosts other modules fill (`panels/tab-strip.ts` the strip, `panels/jump-bar.ts` the jump bar, `panels/pane-context.ts` the chrome layer, `canvas/canvas-render.ts` the stage, `panels/pane-grid.ts` itself the right-edge drop zone), and the stage is an ISLAND in the §9.4 sense: the canvas host mounts a cross-origin `<iframe>` into it, so nothing this document draws may ever go inside it. What the document owns is the STRUCTURE and the STYLE — the cell's own two-row grid, the three row-2 children that share its lower cell, and the splitter — which is `styles/shell.css`'s `.pane*` block and `styles/canvas.css`'s `.pane-stage` rule, carried here and keyed on `part`. Two things are load-bearing and easy to undo. (1) **A row that moves reloads an iframe**, so the keyed `$map` is not an optimisation: `workspace.panes[0]` is always the primary and `MAX_PANES` is 2, the key is the pane id, and the runtime's forward-cursor pass therefore never moves a kept row — gaining or losing the side pane leaves the primary's node, and the frame inside it, untouched. (2) **The splitter must sit BETWEEN two cells and inside neither**, so each row is a `display: contents` wrapper holding its own leading splitter and its cell: the wrapper generates no box, so the splitter and the two cells are the grid items of `#pane-grid` in DOM order, and a pointer landing on the splitter is in no cell at all. Every selector below is a `>` chain from the root, because a pane's stage hosts other surface documents and a bare `[part=\"row\"]` descendant rule would reach into them.",
389
+ $description: "The pane grid (studio.md §18.1): one cell per pane, with a splitter before every cell but the first. Every box here is EMPTY by design — the FIVE inside a cell are hosts other modules fill (`panels/tab-strip.ts` the strip, `panels/jump-bar.ts` the jump bar, `panels/pane-context.ts` the chrome layer, `canvas/canvas-render.ts` the stage, `panels/pane-grid.ts` itself the right-edge drop zone), and the stage is an ISLAND in the studio-ui-guidelines.md §9.4 sense: the canvas host mounts a cross-origin `<iframe>` into it, so nothing this document draws may ever go inside it. What the document owns is the STRUCTURE and the STYLE — the cell's own two-row grid, the three row-2 children that share its lower cell, and the splitter — which is `styles/shell.css`'s `.pane*` block and `styles/canvas.css`'s `.pane-stage` rule, carried here and keyed on `part`. Two things are load-bearing and easy to undo. (1) **A row that moves reloads an iframe**, so the keyed `$map` is not an optimisation: `workspace.panes[0]` is always the primary and `MAX_PANES` is 2, the key is the pane id, and the runtime's forward-cursor pass therefore never moves a kept row — gaining or losing the side pane leaves the primary's node, and the frame inside it, untouched. (2) **The splitter must sit BETWEEN two cells and inside neither**, so each row is a `display: contents` wrapper holding its own leading splitter and its cell: the wrapper generates no box, so the splitter and the two cells are the grid items of `#pane-grid` in DOM order, and a pointer landing on the splitter is in no cell at all. Every selector below is a `>` chain from the root, because a pane's stage hosts other surface documents and a bare `[part=\"row\"]` descendant rule would reach into them.",
390
390
  tagName: "div",
391
391
  attributes: {
392
392
  part: "grid",
@@ -430,7 +430,7 @@ var pane_grid_default = {
430
430
  display: "none"
431
431
  },
432
432
  '& > [part="row"] > [part="pane"] > [part="jump"]': {
433
- $description: "Region ⑥. Like the chrome layer below it this shares the pane's lower cell rather than owning a row, so the two bars stack OVER the stage instead of pushing it down. `align-self: start` is what keeps it the height of its own content instead of the height of the cell, so the bar never covers the stage it sits above.",
433
+ $description: "The jump bar. Like the chrome layer below it this shares the pane's lower cell rather than owning a row, so the two bars stack OVER the stage instead of pushing it down. `align-self: start` is what keeps it the height of its own content instead of the height of the cell, so the bar never covers the stage it sits above.",
434
434
  gridRow: "2",
435
435
  gridColumn: "1",
436
436
  alignSelf: "start",
@@ -440,7 +440,7 @@ var pane_grid_default = {
440
440
  maxWidth: "100%"
441
441
  },
442
442
  '& > [part="row"] > [part="pane"] > [part="chrome"]': {
443
- $description: 'Regions ⑦ and ⑩. The layer itself is inert and only its children take the pointer; `surfaces/pane-context.json` owns what they look like. Offset by `--jump-bar-h` for the same reason the stage is: the jump bar is stacked over this same cell, and one projection per bar is what keeps "no tab open" costing no dead band.',
443
+ $description: 'The pane context bar and the floating zoom pod. The layer itself is inert and only its children take the pointer; `surfaces/pane-context.json` owns what they look like. Offset by `--jump-bar-h` for the same reason the stage is: the jump bar is stacked over this same cell, and one projection per bar is what keeps "no tab open" costing no dead band.',
444
444
  gridRow: "2",
445
445
  gridColumn: "1",
446
446
  marginTop: "var(--jump-bar-h, 0px)",
@@ -2841,5 +2841,5 @@ async function renamePromptMessage2(path, verb = "rename") {
2841
2841
 
2842
2842
  export { cellValuesEqual, makeGridTabId, parseGridTabId, gridTabLabel, columnsFromSchema, inferColumnsFromRows, coerceCellInput, cellToText, ROW_KEY_FIELD, getGridController, createGridController, PANE_SELECTOR, STAGE_SELECTOR, mountPaneGridSurface, attachJumpBarHost, mountJumpBar, projectSessions, renderStatusbar, mountStatusbar, registerPopoverCommands, serializeDocument, notePreviewOverlayEdit, armPreviewOverlay, disarmPreviewOverlay, flushPreviewOverlay, mediaTypeEssence, parseSourceForPath2, parseCollabSource2, setDocumentSavedListener2, saveFile2, exportFile2, confirmFileDelete2, renamePromptMessage2 };
2843
2843
 
2844
- //# debugId=DBDB9C97E212B0A564756E2164756E21
2845
- //# sourceMappingURL=studio-x10fp4tp.js.map
2844
+ //# debugId=392FAE785FA18C8E64756E2164756E21
2845
+ //# sourceMappingURL=studio-y49b6mjv.js.map
@@ -1,12 +1,15 @@
1
1
  import {
2
2
  getPlatform2
3
- } from "./studio-6nzaktvy.js";
3
+ } from "./studio-6pwn9j8c.js";
4
4
  import {
5
5
  projectState
6
6
  } from "./studio-m1p9b6c3.js";
7
7
  import {
8
8
  reactive
9
9
  } from "./studio-d8z5bajd.js";
10
+ import {
11
+ workspace2
12
+ } from "./studio-dgdm6vvt.js";
10
13
  import {
11
14
  loadFormats2,
12
15
  formatByName2,
@@ -14,21 +17,18 @@ import {
14
17
  documentExtensions2,
15
18
  defaultContentFormat2,
16
19
  formatSerialize2
17
- } from "./studio-28vs5k2y.js";
18
- import {
19
- workspace2
20
- } from "./studio-ez11dmdh.js";
20
+ } from "./studio-9vsvz7w7.js";
21
21
  import {
22
22
  markLocalMutation2,
23
23
  isRecentLocal2
24
- } from "./studio-4c041r8y.js";
24
+ } from "./studio-40z39dme.js";
25
25
  import {
26
26
  makeGridTabId,
27
27
  columnsFromSchema,
28
28
  inferColumnsFromRows,
29
29
  getGridController,
30
30
  parseSourceForPath2
31
- } from "./studio-x10fp4tp.js";
31
+ } from "./studio-y49b6mjv.js";
32
32
  import {
33
33
  __preload
34
34
  } from "./studio-5te5tqng.js";
@@ -330,7 +330,7 @@ function buildEntryFileSource(opts) {
330
330
  await writeEntry(path, entry, patches);
331
331
  outcome(true);
332
332
  if (openTab) {
333
- const { reloadFileInTab } = await (__preload("msaf95y6"), import("./files-msaf95y6.js"));
333
+ const { reloadFileInTab } = await (__preload("egsb0ry8"), import("./files-egsb0ry8.js"));
334
334
  reloadFileInTab(path);
335
335
  }
336
336
  } catch (error) {
@@ -494,5 +494,5 @@ function createPagesSource2() {
494
494
 
495
495
  export { DRAFT_FIELD, DRAFT_MEANING, isDraftEntry, hasDraftAxis, setIncludeDrafts, collectionInfo2, collectionDirs2, listCollectionEntryIds2, reloadDraftAwareGrids2, createCollectionSource2, createPagesSource2 };
496
496
 
497
- //# debugId=9A9477683F06DFEB64756E2164756E21
498
- //# sourceMappingURL=studio-5t7ena5z.js.map
497
+ //# debugId=15D1908F61E8D4C864756E2164756E21
498
+ //# sourceMappingURL=studio-ygvr9e4q.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getPlatform2,
3
3
  hasPlatform2
4
- } from "./studio-6nzaktvy.js";
4
+ } from "./studio-6pwn9j8c.js";
5
5
  import {
6
6
  notify2
7
7
  } from "./studio-d8z5bajd.js";
@@ -190,8 +190,11 @@ function apply(patch) {
190
190
  }
191
191
  return moved;
192
192
  }
193
+ function normalizeSetting(definition, value) {
194
+ return definition.normalize ? definition.normalize(value) : value;
195
+ }
193
196
  function setSetting(definition, value) {
194
- const next = definition.normalize ? definition.normalize(value) : value;
197
+ const next = normalizeSetting(definition, value);
195
198
  const moved = apply({ [definition.key]: next });
196
199
  if (moved.length > 0) {
197
200
  queue.enqueue({ [definition.key]: next });
@@ -201,7 +204,7 @@ function setSetting(definition, value) {
201
204
  function setSettings(entries) {
202
205
  const patch = {};
203
206
  for (const [definition, value] of entries) {
204
- patch[definition.key] = definition.normalize ? definition.normalize(value) : value;
207
+ patch[definition.key] = normalizeSetting(definition, value);
205
208
  }
206
209
  const moved = apply(patch);
207
210
  if (moved.length > 0) {
@@ -276,7 +279,7 @@ function watchRemoteSettings() {
276
279
  getPlatform2().subscribeSettings?.(adoptRemoteSettings);
277
280
  }
278
281
 
279
- export { SETTINGS, readStoredSetting, hasSetting, onSettingsChanged, settingsSettled, setSetting, setSettings, clearSettings, hydrateSettings, watchRemoteSettings };
282
+ export { SETTINGS, readStoredSetting, hasSetting, onSettingsChanged, settingsSettled, normalizeSetting, setSetting, setSettings, clearSettings, hydrateSettings, watchRemoteSettings };
280
283
 
281
- //# debugId=8DE88702AC5D888464756E2164756E21
282
- //# sourceMappingURL=studio-z2smx5ce.js.map
284
+ //# debugId=1A7923B4D21C0F8F64756E2164756E21
285
+ //# sourceMappingURL=studio-yxmmjy2a.js.map
@@ -5,13 +5,13 @@ import {
5
5
  Uri2,
6
6
  editor2,
7
7
  languages2
8
- } from "./studio-e1f24eff.js";
8
+ } from "./studio-0d4p4wxj.js";
9
9
  import {
10
10
  createWebWorker
11
- } from "./studio-nqgawfks.js";
11
+ } from "./studio-fbcyz234.js";
12
12
  import {
13
13
  typescriptDefaults
14
- } from "./studio-4wbb9ct0.js";
14
+ } from "./studio-1tejxvba.js";
15
15
 
16
16
  // ../../node_modules/monaco-editor/esm/vs/languages/features/typescript/workerManager.js
17
17
  class WorkerManager {
@@ -1186,4 +1186,4 @@ export {
1186
1186
  };
1187
1187
 
1188
1188
  //# debugId=62BF8F43F1748C5A64756E2164756E21
1189
- //# sourceMappingURL=tsMode-jy4m86rv.js.map
1189
+ //# sourceMappingURL=tsMode-ay4c78ne.js.map