@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
@@ -127,7 +127,6 @@ function assert(condition, messageOrError = "unexpected state") {
127
127
  }
128
128
  function assertFn(condition) {
129
129
  if (!condition()) {
130
- debugger;
131
130
  condition();
132
131
  onUnexpectedError(new BugIndicatingError("Assertion Failed"));
133
132
  }
@@ -575,7 +574,7 @@ function _format(message, args) {
575
574
  result = message;
576
575
  } else {
577
576
  result = message.replace(/\{(\d+)\}/g, (match, rest) => {
578
- const index = rest[0];
577
+ const index = parseInt(rest, 10);
579
578
  const arg = args[index];
580
579
  let result = match;
581
580
  if (typeof arg === "string") {
@@ -613,8 +612,10 @@ var LANGUAGE_DEFAULT = "en";
613
612
  var _isWindows = false;
614
613
  var _isMacintosh = false;
615
614
  var _isLinux = false;
615
+ var _isChromeOS = false;
616
616
  var _isNative = false;
617
617
  var _isWeb = false;
618
+ var _isElectron = false;
618
619
  var _isIOS = false;
619
620
  var _isMobile = false;
620
621
  var _locale = undefined;
@@ -636,6 +637,7 @@ if (typeof nodeProcess === "object") {
636
637
  _isMacintosh = nodeProcess.platform === "darwin";
637
638
  _isLinux = nodeProcess.platform === "linux";
638
639
  _isLinux && !!nodeProcess.env["SNAP"] && nodeProcess.env["SNAP_REVISION"];
640
+ _isElectron = isElectronProcess;
639
641
  !!nodeProcess.env["CI"] || !!nodeProcess.env["BUILD_ARTIFACTSTAGINGDIRECTORY"] || nodeProcess.env["GITHUB_WORKSPACE"];
640
642
  _locale = LANGUAGE_DEFAULT;
641
643
  _language = LANGUAGE_DEFAULT;
@@ -656,6 +658,7 @@ if (typeof nodeProcess === "object") {
656
658
  _isMacintosh = _userAgent.indexOf("Macintosh") >= 0;
657
659
  _isIOS = (_userAgent.indexOf("Macintosh") >= 0 || _userAgent.indexOf("iPad") >= 0 || _userAgent.indexOf("iPhone") >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0;
658
660
  _isLinux = _userAgent.indexOf("Linux") >= 0;
661
+ _isChromeOS = _userAgent.indexOf("CrOS") >= 0;
659
662
  _isMobile = _userAgent?.indexOf("Mobi") >= 0;
660
663
  _isWeb = true;
661
664
  _language = getNLSLanguage() || LANGUAGE_DEFAULT;
@@ -675,6 +678,7 @@ if (_isMacintosh) {
675
678
  var isWindows = _isWindows;
676
679
  var isMacintosh = _isMacintosh;
677
680
  var isNative = _isNative;
681
+ var isElectron = _isElectron;
678
682
  var isWeb = _isWeb;
679
683
  var isWebWorker = _isWeb && typeof $globalThis.importScripts === "function";
680
684
  var webWorkerOrigin = isWebWorker ? $globalThis.origin : undefined;
@@ -712,6 +716,7 @@ var isFirefox = !!(userAgent && userAgent.indexOf("Firefox") >= 0);
712
716
  var isSafari = !!(!isChrome && (userAgent && userAgent.indexOf("Safari") >= 0));
713
717
  var isEdge = !!(userAgent && userAgent.indexOf("Edg/") >= 0);
714
718
  var isAndroid = !!(userAgent && userAgent.indexOf("Android") >= 0);
719
+ var hasElectronUserAgent = !!(userAgent && userAgent.indexOf("Electron") >= 0);
715
720
 
716
721
  // ../../node_modules/monaco-editor/esm/vs/base/common/process.js
717
722
  var safeProcess;
@@ -891,7 +896,7 @@ var Event;
891
896
  return d;
892
897
  }
893
898
  function debounce(event, merge, delay = 100, leading = false, flushOnListenerRemove = false, leakWarningThreshold, disposable) {
894
- let subscription;
899
+ let subscription = Disposable.None;
895
900
  let output = undefined;
896
901
  let handle = undefined;
897
902
  let numDebouncedCalls = 0;
@@ -1311,12 +1316,13 @@ class EventProfiling {
1311
1316
  }
1312
1317
  }
1313
1318
  var _globalLeakWarningThreshold = -1;
1319
+ var leakageMonitorId = 1;
1320
+ function nextLeakageMonitorName() {
1321
+ return (leakageMonitorId++).toString(16).padStart(3, "0");
1322
+ }
1314
1323
 
1315
1324
  class LeakageMonitor {
1316
- static {
1317
- this._idPool = 1;
1318
- }
1319
- constructor(_errorHandler, threshold, name = (LeakageMonitor._idPool++).toString(16).padStart(3, "0")) {
1325
+ constructor(_errorHandler, threshold, name = nextLeakageMonitorName()) {
1320
1326
  this._errorHandler = _errorHandler;
1321
1327
  this.threshold = threshold;
1322
1328
  this.name = name;
@@ -1333,8 +1339,9 @@ class LeakageMonitor {
1333
1339
  if (!this._stacks) {
1334
1340
  this._stacks = new Map;
1335
1341
  }
1336
- const count = this._stacks.get(stack.value) || 0;
1337
- this._stacks.set(stack.value, count + 1);
1342
+ const stackKey = stack.value;
1343
+ const count = this._stacks.get(stackKey) || 0;
1344
+ this._stacks.set(stackKey, count + 1);
1338
1345
  this._warnCountdown -= 1;
1339
1346
  if (this._warnCountdown <= 0) {
1340
1347
  this._warnCountdown = threshold * 0.5;
@@ -1348,8 +1355,12 @@ class LeakageMonitor {
1348
1355
  this._errorHandler(error);
1349
1356
  }
1350
1357
  return () => {
1351
- const count = this._stacks.get(stack.value) || 0;
1352
- this._stacks.set(stack.value, count - 1);
1358
+ const count = this._stacks.get(stackKey) || 0;
1359
+ if (count <= 1) {
1360
+ this._stacks.delete(stackKey);
1361
+ } else {
1362
+ this._stacks.set(stackKey, count - 1);
1363
+ }
1353
1364
  };
1354
1365
  }
1355
1366
  getMostFrequentStack() {
@@ -1415,10 +1426,20 @@ class Emitter {
1415
1426
  constructor(options) {
1416
1427
  this._size = 0;
1417
1428
  this._options = options;
1418
- this._leakageMon = this._options?.leakWarningThreshold ? new LeakageMonitor(options?.onListenerError ?? onUnexpectedError, this._options?.leakWarningThreshold ?? _globalLeakWarningThreshold, this._options?.leakWarningName) : undefined;
1429
+ if (this._options?.leakWarningThreshold) {
1430
+ this._leakWarningThreshold = this._options?.leakWarningThreshold ?? _globalLeakWarningThreshold;
1431
+ this._leakWarningName = this._options?.leakWarningName ?? nextLeakageMonitorName();
1432
+ this._leakWarningErrorHandler = this._options?.onListenerError ?? onUnexpectedError;
1433
+ }
1419
1434
  this._perfMon = this._options?._profName ? new EventProfiling(this._options._profName) : undefined;
1420
1435
  this._deliveryQueue = this._options?.deliveryQueue;
1421
1436
  }
1437
+ _getLeakageMonitor() {
1438
+ if (this._leakWarningThreshold === undefined || this._leakWarningName === undefined || this._leakWarningErrorHandler === undefined) {
1439
+ return;
1440
+ }
1441
+ return this._leakageMon ??= new LeakageMonitor(this._leakWarningErrorHandler, this._leakWarningThreshold, this._leakWarningName);
1442
+ }
1422
1443
  dispose() {
1423
1444
  if (!this._disposed) {
1424
1445
  this._disposed = true;
@@ -1435,15 +1456,18 @@ class Emitter {
1435
1456
  }
1436
1457
  get event() {
1437
1458
  this._event ??= (callback, thisArgs, disposables) => {
1438
- if (this._leakageMon && this._size > this._leakageMon.threshold ** 2) {
1439
- const message = `[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;
1440
- console.warn(message);
1441
- const tuple = this._leakageMon.getMostFrequentStack() ?? ["UNKNOWN stack", -1];
1442
- const kind = tuple[1] / this._size > 0.3 ? "dominated" : "popular";
1443
- const error = new ListenerRefusalError(kind, `${message}. HINT: Stack shows most frequent listener (${tuple[1]}-times)`, tuple[0], this._size, this._options?.leakWarningName);
1444
- const errorHandler = this._options?.onListenerError || onUnexpectedError;
1445
- errorHandler(error);
1446
- return Disposable.None;
1459
+ if (this._leakWarningThreshold !== undefined && this._size > this._leakWarningThreshold ** 2) {
1460
+ const leakageMon = this._getLeakageMonitor();
1461
+ if (leakageMon) {
1462
+ const message = `[${leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${leakageMon.threshold})`;
1463
+ console.warn(message);
1464
+ const tuple = leakageMon.getMostFrequentStack() ?? ["UNKNOWN stack", -1];
1465
+ const kind = tuple[1] / this._size > 0.3 ? "dominated" : "popular";
1466
+ const error = new ListenerRefusalError(kind, `${message}. HINT: Stack shows most frequent listener (${tuple[1]}-times)`, tuple[0], this._size, this._options?.leakWarningName);
1467
+ const errorHandler = this._options?.onListenerError || onUnexpectedError;
1468
+ errorHandler(error);
1469
+ return Disposable.None;
1470
+ }
1447
1471
  }
1448
1472
  if (this._disposed) {
1449
1473
  return Disposable.None;
@@ -1453,9 +1477,12 @@ class Emitter {
1453
1477
  }
1454
1478
  const contained = new UniqueContainer(callback);
1455
1479
  let removeMonitor;
1456
- if (this._leakageMon && this._size >= Math.ceil(this._leakageMon.threshold * 0.2)) {
1457
- contained.stack = Stacktrace.create();
1458
- removeMonitor = this._leakageMon.check(contained.stack, this._size + 1);
1480
+ if (this._leakWarningThreshold !== undefined && this._size >= Math.ceil(this._leakWarningThreshold * 0.2)) {
1481
+ const leakageMon = this._getLeakageMonitor();
1482
+ if (leakageMon) {
1483
+ contained.stack = Stacktrace.create();
1484
+ removeMonitor = leakageMon.check(contained.stack, this._size + 1);
1485
+ }
1459
1486
  }
1460
1487
  if (!this._listeners) {
1461
1488
  this._options?.onWillAddFirstListener?.(this);
@@ -5572,21 +5599,30 @@ function encodeURIComponentFast(uriComponent, isPath, isAuthority) {
5572
5599
  return res !== undefined ? res : uriComponent;
5573
5600
  }
5574
5601
  function encodeURIComponentMinimal(path) {
5575
- let res = undefined;
5576
- for (let pos = 0;pos < path.length; pos++) {
5602
+ let pos = path.indexOf("?");
5603
+ const hashPos = path.indexOf("#");
5604
+ if (pos === -1 || hashPos !== -1 && hashPos < pos) {
5605
+ pos = hashPos;
5606
+ }
5607
+ if (pos === -1) {
5608
+ return path;
5609
+ }
5610
+ let res = path.substring(0, pos);
5611
+ let copyStart = pos;
5612
+ for (;pos < path.length; pos++) {
5577
5613
  const code = path.charCodeAt(pos);
5578
5614
  if (code === 35 || code === 63) {
5579
- if (res === undefined) {
5580
- res = path.substr(0, pos);
5615
+ if (copyStart < pos) {
5616
+ res += path.substring(copyStart, pos);
5581
5617
  }
5582
5618
  res += encodeTable[code];
5583
- } else {
5584
- if (res !== undefined) {
5585
- res += path[pos];
5586
- }
5619
+ copyStart = pos + 1;
5587
5620
  }
5588
5621
  }
5589
- return res !== undefined ? res : path;
5622
+ if (copyStart < path.length) {
5623
+ res += path.substring(copyStart);
5624
+ }
5625
+ return res;
5590
5626
  }
5591
5627
  function uriToFsPath(uri, keepDriveLetterCasing) {
5592
5628
  let value;
@@ -5643,14 +5679,15 @@ function _asFormatted(uri, skipEncoding) {
5643
5679
  }
5644
5680
  }
5645
5681
  if (path) {
5682
+ const lowerScheme = scheme.toLowerCase();
5646
5683
  if (path.length >= 3 && path.charCodeAt(0) === 47 && path.charCodeAt(2) === 58) {
5647
5684
  const code = path.charCodeAt(1);
5648
- if (code >= 65 && code <= 90) {
5685
+ if (code >= 65 && code <= 90 && lowerScheme !== "http" && lowerScheme !== "https") {
5649
5686
  path = `/${String.fromCharCode(code + 32)}:${path.substr(3)}`;
5650
5687
  }
5651
5688
  } else if (path.length >= 2 && path.charCodeAt(1) === 58) {
5652
5689
  const code = path.charCodeAt(0);
5653
- if (code >= 65 && code <= 90) {
5690
+ if (code >= 65 && code <= 90 && lowerScheme !== "http" && lowerScheme !== "https") {
5654
5691
  path = `${String.fromCharCode(code + 32)}:${path.substr(2)}`;
5655
5692
  }
5656
5693
  }
@@ -6502,7 +6539,50 @@ var codiconsLibrary = {
6502
6539
  vscodeInsidersOutline: register("vscode-insiders-outline", 60617),
6503
6540
  vscodeOutline: register("vscode-outline", 60618),
6504
6541
  voiceMode: register("voice-mode", 60619),
6505
- voiceModeCompact: register("voice-mode-compact", 60620)
6542
+ voiceModeCompact: register("voice-mode-compact", 60620),
6543
+ micDownload: register("mic-download", 60621),
6544
+ micDownloadCompact: register("mic-download-compact", 60622),
6545
+ voiceModeDownload: register("voice-mode-download", 60623),
6546
+ voiceModeDownloadCompact: register("voice-mode-download-compact", 60624),
6547
+ googleGemini: register("google-gemini", 60625),
6548
+ kimi: register("kimi", 60626),
6549
+ microsoft: register("microsoft", 60627),
6550
+ fish1Happy: register("fish1-happy", 60628),
6551
+ fish1Neutral: register("fish1-neutral", 60629),
6552
+ fish1Sad: register("fish1-sad", 60630),
6553
+ fish1VerySad: register("fish1-very-sad", 60631),
6554
+ fish2Happy: register("fish2-happy", 60632),
6555
+ fish2Neutral: register("fish2-neutral", 60633),
6556
+ fish2Sad: register("fish2-sad", 60634),
6557
+ fish2VerySad: register("fish2-very-sad", 60635),
6558
+ fish3Happy: register("fish3-happy", 60636),
6559
+ fish3Neutral: register("fish3-neutral", 60637),
6560
+ fish3Sad: register("fish3-sad", 60638),
6561
+ fish3VerySad: register("fish3-very-sad", 60639),
6562
+ fish4Happy: register("fish4-happy", 60640),
6563
+ fish4Neutral: register("fish4-neutral", 60641),
6564
+ fish4Sad: register("fish4-sad", 60642),
6565
+ fish4VerySad: register("fish4-very-sad", 60643),
6566
+ personVoice: register("person-voice", 60644),
6567
+ personVoiceCompact: register("person-voice-compact", 60645),
6568
+ personVoiceFilled: register("person-voice-filled", 60646),
6569
+ personVoiceFilledCompact: register("person-voice-filled-compact", 60647),
6570
+ cloudDownloadCompact: register("cloud-download-compact", 60648),
6571
+ cloudUploadCompact: register("cloud-upload-compact", 60649),
6572
+ micCompact: register("mic-compact", 60650),
6573
+ arrowUpCompact: register("arrow-up-compact", 60651),
6574
+ xai: register("xai", 60652),
6575
+ arrowCircleUpSparkle: register("arrow-circle-up-sparkle", 60653),
6576
+ closeSmall: register("close-small", 60654),
6577
+ bookCompact: register("book-compact", 60655),
6578
+ micOff: register("mic-off", 60656),
6579
+ micOffCompact: register("mic-off-compact", 60657),
6580
+ copilotDot: register("copilot-dot", 60658),
6581
+ copilotDotCompact: register("copilot-dot-compact", 60659),
6582
+ layoutDensityCompact: register("layout-density-compact", 60660),
6583
+ layoutDensityDefault: register("layout-density-default", 60661),
6584
+ gripperCorner: register("gripper-corner", 60662),
6585
+ meteredConnection: register("metered-connection", 60663)
6506
6586
  };
6507
6587
 
6508
6588
  // ../../node_modules/monaco-editor/esm/vs/base/common/codicons.js
@@ -6694,7 +6774,6 @@ var CompletionItemKinds;
6694
6774
  byKind.set(13, Codicon.symbolValue);
6695
6775
  byKind.set(15, Codicon.symbolEnum);
6696
6776
  byKind.set(14, Codicon.symbolConstant);
6697
- byKind.set(15, Codicon.symbolEnum);
6698
6777
  byKind.set(16, Codicon.symbolEnumMember);
6699
6778
  byKind.set(17, Codicon.symbolKeyword);
6700
6779
  byKind.set(28, Codicon.symbolSnippet);
@@ -6720,63 +6799,63 @@ var CompletionItemKinds;
6720
6799
  function toLabel(kind) {
6721
6800
  switch (kind) {
6722
6801
  case 0:
6723
- return localize(763, "Method");
6802
+ return localize(778, "Method");
6724
6803
  case 1:
6725
- return localize(764, "Function");
6804
+ return localize(779, "Function");
6726
6805
  case 2:
6727
- return localize(765, "Constructor");
6806
+ return localize(780, "Constructor");
6728
6807
  case 3:
6729
- return localize(766, "Field");
6808
+ return localize(781, "Field");
6730
6809
  case 4:
6731
- return localize(767, "Variable");
6810
+ return localize(782, "Variable");
6732
6811
  case 5:
6733
- return localize(768, "Class");
6812
+ return localize(783, "Class");
6734
6813
  case 6:
6735
- return localize(769, "Struct");
6814
+ return localize(784, "Struct");
6736
6815
  case 7:
6737
- return localize(770, "Interface");
6816
+ return localize(785, "Interface");
6738
6817
  case 8:
6739
- return localize(771, "Module");
6818
+ return localize(786, "Module");
6740
6819
  case 9:
6741
- return localize(772, "Property");
6820
+ return localize(787, "Property");
6742
6821
  case 10:
6743
- return localize(773, "Event");
6822
+ return localize(788, "Event");
6744
6823
  case 11:
6745
- return localize(774, "Operator");
6824
+ return localize(789, "Operator");
6746
6825
  case 12:
6747
- return localize(775, "Unit");
6826
+ return localize(790, "Unit");
6748
6827
  case 13:
6749
- return localize(776, "Value");
6828
+ return localize(791, "Value");
6750
6829
  case 14:
6751
- return localize(777, "Constant");
6830
+ return localize(792, "Constant");
6752
6831
  case 15:
6753
- return localize(778, "Enum");
6832
+ return localize(793, "Enum");
6754
6833
  case 16:
6755
- return localize(779, "Enum Member");
6834
+ return localize(794, "Enum Member");
6756
6835
  case 17:
6757
- return localize(780, "Keyword");
6836
+ return localize(795, "Keyword");
6758
6837
  case 18:
6759
- return localize(781, "Text");
6838
+ return localize(796, "Text");
6760
6839
  case 19:
6761
- return localize(782, "Color");
6840
+ return localize(797, "Color");
6762
6841
  case 20:
6763
- return localize(783, "File");
6842
+ return localize(798, "File");
6764
6843
  case 21:
6765
- return localize(784, "Reference");
6844
+ return localize(799, "Reference");
6766
6845
  case 22:
6767
- return localize(785, "Custom Color");
6846
+ return localize(800, "Custom Color");
6768
6847
  case 23:
6769
- return localize(786, "Folder");
6848
+ return localize(801, "Folder");
6770
6849
  case 24:
6771
- return localize(787, "Type Parameter");
6850
+ return localize(802, "Type Parameter");
6772
6851
  case 25:
6773
- return localize(788, "User");
6852
+ return localize(803, "User");
6774
6853
  case 26:
6775
- return localize(789, "Issue");
6854
+ return localize(804, "Issue");
6776
6855
  case 27:
6777
- return localize(790, "Tool");
6856
+ return localize(805, "Tool");
6778
6857
  case 28:
6779
- return localize(791, "Snippet");
6858
+ return localize(806, "Snippet");
6780
6859
  default:
6781
6860
  return "";
6782
6861
  }
@@ -6857,32 +6936,32 @@ var DocumentHighlightKind;
6857
6936
  DocumentHighlightKind[DocumentHighlightKind["Write"] = 2] = "Write";
6858
6937
  })(DocumentHighlightKind || (DocumentHighlightKind = {}));
6859
6938
  var symbolKindNames = {
6860
- [17]: localize(792, "array"),
6861
- [16]: localize(793, "boolean"),
6862
- [4]: localize(794, "class"),
6863
- [13]: localize(795, "constant"),
6864
- [8]: localize(796, "constructor"),
6865
- [9]: localize(797, "enumeration"),
6866
- [21]: localize(798, "enumeration member"),
6867
- [23]: localize(799, "event"),
6868
- [7]: localize(800, "field"),
6869
- [0]: localize(801, "file"),
6870
- [11]: localize(802, "function"),
6871
- [10]: localize(803, "interface"),
6872
- [19]: localize(804, "key"),
6873
- [5]: localize(805, "method"),
6874
- [1]: localize(806, "module"),
6875
- [2]: localize(807, "namespace"),
6876
- [20]: localize(808, "null"),
6877
- [15]: localize(809, "number"),
6878
- [18]: localize(810, "object"),
6879
- [24]: localize(811, "operator"),
6880
- [3]: localize(812, "package"),
6881
- [6]: localize(813, "property"),
6882
- [14]: localize(814, "string"),
6883
- [22]: localize(815, "struct"),
6884
- [25]: localize(816, "type parameter"),
6885
- [12]: localize(817, "variable")
6939
+ [17]: localize(807, "array"),
6940
+ [16]: localize(808, "boolean"),
6941
+ [4]: localize(809, "class"),
6942
+ [13]: localize(810, "constant"),
6943
+ [8]: localize(811, "constructor"),
6944
+ [9]: localize(812, "enumeration"),
6945
+ [21]: localize(813, "enumeration member"),
6946
+ [23]: localize(814, "event"),
6947
+ [7]: localize(815, "field"),
6948
+ [0]: localize(816, "file"),
6949
+ [11]: localize(817, "function"),
6950
+ [10]: localize(818, "interface"),
6951
+ [19]: localize(819, "key"),
6952
+ [5]: localize(820, "method"),
6953
+ [1]: localize(821, "module"),
6954
+ [2]: localize(822, "namespace"),
6955
+ [20]: localize(823, "null"),
6956
+ [15]: localize(824, "number"),
6957
+ [18]: localize(825, "object"),
6958
+ [24]: localize(826, "operator"),
6959
+ [3]: localize(827, "package"),
6960
+ [6]: localize(828, "property"),
6961
+ [14]: localize(829, "string"),
6962
+ [22]: localize(830, "struct"),
6963
+ [25]: localize(831, "type parameter"),
6964
+ [12]: localize(832, "variable")
6886
6965
  };
6887
6966
  var SymbolKinds;
6888
6967
  (function(SymbolKinds) {
@@ -7269,19 +7348,22 @@ var EditorOption;
7269
7348
  EditorOption[EditorOption["inertialScroll"] = 158] = "inertialScroll";
7270
7349
  EditorOption[EditorOption["inlayHints"] = 159] = "inlayHints";
7271
7350
  EditorOption[EditorOption["wrapOnEscapedLineFeeds"] = 160] = "wrapOnEscapedLineFeeds";
7272
- EditorOption[EditorOption["effectiveCursorStyle"] = 161] = "effectiveCursorStyle";
7273
- EditorOption[EditorOption["editorClassName"] = 162] = "editorClassName";
7274
- EditorOption[EditorOption["pixelRatio"] = 163] = "pixelRatio";
7275
- EditorOption[EditorOption["tabFocusMode"] = 164] = "tabFocusMode";
7276
- EditorOption[EditorOption["layoutInfo"] = 165] = "layoutInfo";
7277
- EditorOption[EditorOption["wrappingInfo"] = 166] = "wrappingInfo";
7278
- EditorOption[EditorOption["defaultColorDecorators"] = 167] = "defaultColorDecorators";
7279
- EditorOption[EditorOption["colorDecoratorsActivatedOn"] = 168] = "colorDecoratorsActivatedOn";
7280
- EditorOption[EditorOption["inlineCompletionsAccessibilityVerbose"] = 169] = "inlineCompletionsAccessibilityVerbose";
7281
- EditorOption[EditorOption["effectiveEditContext"] = 170] = "effectiveEditContext";
7282
- EditorOption[EditorOption["scrollOnMiddleClick"] = 171] = "scrollOnMiddleClick";
7283
- EditorOption[EditorOption["effectiveAllowVariableFonts"] = 172] = "effectiveAllowVariableFonts";
7284
- EditorOption[EditorOption["doubleClickSelectsBlock"] = 173] = "doubleClickSelectsBlock";
7351
+ EditorOption[EditorOption["wordWrapIndicator"] = 161] = "wordWrapIndicator";
7352
+ EditorOption[EditorOption["effectiveCursorStyle"] = 162] = "effectiveCursorStyle";
7353
+ EditorOption[EditorOption["editorClassName"] = 163] = "editorClassName";
7354
+ EditorOption[EditorOption["pixelRatio"] = 164] = "pixelRatio";
7355
+ EditorOption[EditorOption["tabFocusMode"] = 165] = "tabFocusMode";
7356
+ EditorOption[EditorOption["layoutInfo"] = 166] = "layoutInfo";
7357
+ EditorOption[EditorOption["wrappingInfo"] = 167] = "wrappingInfo";
7358
+ EditorOption[EditorOption["defaultColorDecorators"] = 168] = "defaultColorDecorators";
7359
+ EditorOption[EditorOption["colorDecoratorsActivatedOn"] = 169] = "colorDecoratorsActivatedOn";
7360
+ EditorOption[EditorOption["inlineCompletionsAccessibilityVerbose"] = 170] = "inlineCompletionsAccessibilityVerbose";
7361
+ EditorOption[EditorOption["effectiveEditContext"] = 171] = "effectiveEditContext";
7362
+ EditorOption[EditorOption["scrollOnMiddleClick"] = 172] = "scrollOnMiddleClick";
7363
+ EditorOption[EditorOption["effectiveAllowVariableFonts"] = 173] = "effectiveAllowVariableFonts";
7364
+ EditorOption[EditorOption["doubleClickSelectsBlock"] = 174] = "doubleClickSelectsBlock";
7365
+ EditorOption[EditorOption["fullwidthCharacterWidth"] = 175] = "fullwidthCharacterWidth";
7366
+ EditorOption[EditorOption["effectiveFullwidthCharacterWidth"] = 176] = "effectiveFullwidthCharacterWidth";
7285
7367
  })(EditorOption || (EditorOption = {}));
7286
7368
  var EndOfLinePreference;
7287
7369
  (function(EndOfLinePreference) {
@@ -11666,6 +11748,7 @@ var Schemas;
11666
11748
  Schemas.internal = "private";
11667
11749
  Schemas.walkThrough = "walkThrough";
11668
11750
  Schemas.walkThroughSnippet = "walkThroughSnippet";
11751
+ Schemas.vscodeOnboardingSample = "vscode-onboarding-sample";
11669
11752
  Schemas.http = "http";
11670
11753
  Schemas.https = "https";
11671
11754
  Schemas.file = "file";
@@ -11693,7 +11776,11 @@ var Schemas;
11693
11776
  Schemas.vscodeChatCodeCompareBlock = "vscode-chat-code-compare-block";
11694
11777
  Schemas.vscodeChatEditor = "vscode-chat-editor";
11695
11778
  Schemas.vscodeChatInput = "chatSessionInput";
11779
+ Schemas.sessionsChatInput = "sessions-chat";
11696
11780
  Schemas.vscodeLocalChatSession = "vscode-chat-session";
11781
+ Schemas.vscodeChatResponseResource = "vscode-chat-response-resource";
11782
+ Schemas.agentHostTerminal = "agenthost-terminal";
11783
+ Schemas.vscodeChatTerminalOutput = "vscode-chat-terminal-output";
11697
11784
  Schemas.webviewPanel = "webview-panel";
11698
11785
  Schemas.vscodeWebview = "vscode-webview";
11699
11786
  Schemas.vscodeBrowser = "vscode-browser";
@@ -11757,6 +11844,7 @@ class RemoteAuthoritiesImpl {
11757
11844
  }
11758
11845
  var RemoteAuthorities = new RemoteAuthoritiesImpl;
11759
11846
  var nodeModulesPath = "vs/../../node_modules";
11847
+ var nodeModulesAsarPath = "vs/../../node_modules.asar";
11760
11848
  var VSCODE_AUTHORITY = "vscode-app";
11761
11849
 
11762
11850
  class FileAccessImpl {
@@ -11839,9 +11927,10 @@ var COI;
11839
11927
  // ../../node_modules/monaco-editor/esm/vs/amdX.js
11840
11928
  function resolveAmdNodeModulePath(nodeModuleName, pathInsideNodeModule) {
11841
11929
  const product = globalThis._VSCODE_PRODUCT_JSON;
11842
- Boolean((product ?? globalThis.vscode?.context?.configuration()?.product)?.commit);
11930
+ const isBuilt = Boolean((product ?? globalThis.vscode?.context?.configuration()?.product)?.commit);
11931
+ const useASAR = isBuilt && (isElectron || isWebWorker && hasElectronUserAgent);
11843
11932
  const nodeModulePath = `${nodeModuleName}/${pathInsideNodeModule}`;
11844
- const actualNodeModulesPath = nodeModulesPath;
11933
+ const actualNodeModulesPath = useASAR ? nodeModulesAsarPath : nodeModulesPath;
11845
11934
  const resourcePath = `${actualNodeModulesPath}/${nodeModulePath}`;
11846
11935
  return FileAccess.asBrowserUri(resourcePath).toString(true);
11847
11936
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jxsuite/studio",
3
- "version": "5.2.0",
3
+ "version": "5.4.0",
4
4
  "description": "Jx Studio — visual builder for Jx documents",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -34,6 +34,7 @@
34
34
  "./directory-picker": "./src/services/directory-picker.ts",
35
35
  "./import-client": "./src/services/import-client.ts",
36
36
  "./github-auth": "./src/github/github-auth.ts",
37
+ "./github-auth-status": "./src/github/github-auth-status.ts",
37
38
  "./hosting": "./src/hosting/stage.ts",
38
39
  "./hosting/layout": "./src/hosting/layout.ts",
39
40
  "./hosting/document": "./src/hosting/document.ts",
@@ -58,32 +59,32 @@
58
59
  "upgrade": "bun update --latest && bun install"
59
60
  },
60
61
  "dependencies": {
61
- "@atlaskit/pragmatic-drag-and-drop": "^3.1.0",
62
- "@atlaskit/pragmatic-drag-and-drop-hitbox": "^2.2.2",
63
- "@jxsuite/ai": "^0.37.2",
64
- "@jxsuite/collab": "^0.9.0",
65
- "@jxsuite/create": "^1.3.11",
66
- "@jxsuite/formulas": "^0.0.18",
67
- "@jxsuite/markup": "^0.4.10",
68
- "@jxsuite/protocol": "^2.3.1",
69
- "@jxsuite/runtime": "^4.0.1",
70
- "@jxsuite/schema": "^2.2.0",
71
- "@jxsuite/site": "^2.0.1",
72
- "@jxsuite/ui": "^0.2.0",
62
+ "@atlaskit/pragmatic-drag-and-drop": "^4.0.0",
63
+ "@atlaskit/pragmatic-drag-and-drop-hitbox": "^3.0.0",
64
+ "@jxsuite/ai": "^0.38.0",
65
+ "@jxsuite/collab": "^0.10.0",
66
+ "@jxsuite/create": "^1.3.12",
67
+ "@jxsuite/formulas": "^0.0.19",
68
+ "@jxsuite/markup": "^0.4.11",
69
+ "@jxsuite/protocol": "^2.4.0",
70
+ "@jxsuite/runtime": "^4.0.2",
71
+ "@jxsuite/schema": "^2.3.0",
72
+ "@jxsuite/site": "^2.0.2",
73
+ "@jxsuite/ui": "^0.4.0",
73
74
  "@vue/reactivity": "3.5.43",
74
75
  "ajv": "^8.20.0",
75
76
  "ajv-formats": "^3.0.1",
76
77
  "lit-html": "^3.3.3",
77
- "monaco-editor": "^0.56.0",
78
+ "monaco-editor": "^0.57.0",
78
79
  "tabulator-tables": "^6.5.3",
79
80
  "yaml": "^2.9.1"
80
81
  },
81
82
  "devDependencies": {
82
83
  "@happy-dom/global-registrator": "^20.14.5",
83
84
  "@types/mdast": "^4.0.4",
84
- "@webref/css": "^8.7.4",
85
- "@webref/elements": "^2.8.0",
86
- "@webref/idl": "^3.83.1"
85
+ "@webref/css": "^8.7.5",
86
+ "@webref/elements": "^2.9.0",
87
+ "@webref/idl": "^3.84.0"
87
88
  },
88
89
  "//vue-reactivity": "Exact pin required — must match @jxsuite/runtime to avoid cross-boundary proxy bugs"
89
90
  }
@@ -125,9 +125,10 @@ export function aboutCommands(): Command[] {
125
125
  * Register the About verb on the app registry.
126
126
  *
127
127
  * `appCommandSet()` is the projection CI counts and `docs/studio/interface/commands.md` is
128
- * generated from — it is NOT what the running app registers. P4 composed `help.about` into that set
129
- * only, and deleted the rail's About button in the same change, so About became unreachable in the
130
- * app while every check reported it present. The two roots have to agree.
128
+ * generated from — it is NOT what the running app registers. The shell redesign's feedback phase
129
+ * composed `help.about` into that set only, and deleted the rail's About button in the same change,
130
+ * so About became unreachable in the app while every check reported it present. The two roots have
131
+ * to agree.
131
132
  *
132
133
  * @param {CommandRegistry} registry
133
134
  * @returns {void}