@jxsuite/studio 6.1.0 → 6.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (645) hide show
  1. package/dist/chunks/2020-f2gkpy8d.js +4 -0
  2. package/dist/chunks/{action-group-2mqby73c.js → action-group-4aan7g6g.js} +3 -3
  3. package/dist/chunks/adapter-4912g339.js +4 -0
  4. package/dist/chunks/cf-account-picker-wccaenh6.js +4 -0
  5. package/dist/chunks/cf-settings-br6105tr.js +4 -0
  6. package/dist/chunks/color-28ksk2qm.js +4 -0
  7. package/dist/chunks/color-area-0fj8a4ga.js +4 -0
  8. package/dist/chunks/color-field-xch8kx2g.js +4 -0
  9. package/dist/chunks/color-slider-jxd8v350.js +4 -0
  10. package/dist/chunks/combobox-p0efwjke.js +4 -0
  11. package/dist/chunks/components-db68vsn7.js +4 -0
  12. package/dist/chunks/content-source-1449qesq.js +4 -0
  13. package/dist/chunks/convert-to-repeater-5h457egj.js +4 -0
  14. package/dist/chunks/dialog-c4x05vyx.js +4 -0
  15. package/dist/chunks/editor-x9jn86a7.js +4 -0
  16. package/dist/chunks/entry-commands-may24cpt.js +4 -0
  17. package/dist/chunks/extension-sections-pvr14vxr.js +4 -0
  18. package/dist/chunks/file-ops-x9v54pcj.js +4 -0
  19. package/dist/chunks/files-j3knqf0s.js +4 -0
  20. package/dist/chunks/format-host-tyre2trb.js +4 -0
  21. package/dist/chunks/fs-events-64ma9htc.js +4 -0
  22. package/dist/chunks/git-panel-84ps5dex.js +4 -0
  23. package/dist/chunks/grid-view-d2wq9ezg.js +51 -0
  24. package/dist/chunks/icons-pnfz478q.js +4 -0
  25. package/dist/chunks/iframe-entry-fvbk89gm.js +5 -0
  26. package/dist/chunks/iframe-entry-jdcktez8.js +5 -0
  27. package/dist/chunks/iframe-entry-x0ygf2yr.js +5 -0
  28. package/dist/chunks/iframe-entry-zap785cw.js +5 -0
  29. package/dist/chunks/iframe-host-ck6vejt5.js +4 -0
  30. package/dist/chunks/index-b8xw3vy9.js +4 -0
  31. package/dist/chunks/{index-gybvv7a6.js → index-zpjmzqfk.js} +3 -3
  32. package/dist/chunks/{javascript-rnvdp3k4.js → javascript-m54mnwp6.js} +3 -3
  33. package/dist/chunks/jsonMode-w15cmrcm.js +13 -0
  34. package/dist/chunks/jx-validate-at3zn8wa.js +4 -0
  35. package/dist/chunks/layers-h4xp1pss.js +4 -0
  36. package/dist/chunks/layers-panel-m5hw1d7g.js +4 -0
  37. package/dist/chunks/listbox-e74qjyq6.js +4 -0
  38. package/dist/chunks/lit-html-8t8t3dnr.js +4 -0
  39. package/dist/chunks/media-picker-2cweexc5.js +4 -0
  40. package/dist/chunks/menu-n6yzswmy.js +4 -0
  41. package/dist/chunks/menu-ynw13y0s.js +4 -0
  42. package/dist/chunks/monaco-binding-7gx83x3r.js +4 -0
  43. package/dist/chunks/monaco-buffer-qzxn567r.js +4 -0
  44. package/dist/chunks/monaco-setup-gxf6656g.js +4 -0
  45. package/dist/chunks/notify-cj5zbrs2.js +4 -0
  46. package/dist/chunks/number-field-y62xq0ty.js +4 -0
  47. package/dist/chunks/parse-b7ddhr8m.js +4 -0
  48. package/dist/chunks/platform-3dfws9js.js +4 -0
  49. package/dist/chunks/popover-jt2gxmzs.js +4 -0
  50. package/dist/chunks/publish-panel-1gvxbj21.js +4 -0
  51. package/dist/chunks/quick-search-0dajrwqg.js +4 -0
  52. package/dist/chunks/references-49qgt404.js +4 -0
  53. package/dist/chunks/right-panel-jm1bwe53.js +4 -0
  54. package/dist/chunks/section-registry-6kwc4fky.js +4 -0
  55. package/dist/chunks/select-rzds841e.js +4 -0
  56. package/dist/chunks/split-n2gfpm5m.js +4 -0
  57. package/dist/chunks/{studio-5g0ag7c0.js → studio-0q988f9w.js} +3 -3
  58. package/dist/chunks/studio-0rt52vpq.js +5 -0
  59. package/dist/chunks/studio-18vgbhs5.js +5 -0
  60. package/dist/chunks/{studio-pxg4ap1e.js → studio-1fxkaaea.js} +4 -4
  61. package/dist/chunks/studio-24mccdrj.js +5 -0
  62. package/dist/chunks/studio-2eh507zk.js +9 -0
  63. package/dist/chunks/studio-2hcbccfv.js +5 -0
  64. package/dist/chunks/studio-2j1cb95x.js +5 -0
  65. package/dist/chunks/studio-2jbs3rxv.js +5 -0
  66. package/dist/chunks/{studio-qbj760tx.js → studio-485046te.js} +7 -7
  67. package/dist/chunks/studio-4h8k4dw9.js +5 -0
  68. package/dist/chunks/studio-5f6n18kx.js +5 -0
  69. package/dist/chunks/studio-5gthpky6.js +5 -0
  70. package/dist/chunks/studio-5ve6bbep.js +5 -0
  71. package/dist/chunks/studio-6ep3js6b.js +9 -0
  72. package/dist/chunks/studio-6wkmf3wz.js +9 -0
  73. package/dist/chunks/studio-841rf3cg.js +5 -0
  74. package/dist/chunks/studio-8gmwgheg.js +5 -0
  75. package/dist/chunks/studio-8qm0ep50.js +5 -0
  76. package/dist/chunks/{studio-anyrgzvb.js → studio-90pq9km1.js} +4 -4
  77. package/dist/chunks/studio-924p1tm1.js +6 -0
  78. package/dist/chunks/{studio-v2bvmbjj.js → studio-a3g98wjr.js} +4 -4
  79. package/dist/chunks/studio-a3shpz9y.js +5 -0
  80. package/dist/chunks/studio-amsbaaar.js +6 -0
  81. package/dist/chunks/studio-at5spjbc.js +7 -0
  82. package/dist/chunks/studio-b2xv945e.js +5 -0
  83. package/dist/chunks/studio-bn5nkafw.js +5 -0
  84. package/dist/chunks/studio-bw6q5xjf.js +9 -0
  85. package/dist/chunks/studio-c7q0t9x1.js +5 -0
  86. package/dist/chunks/studio-camnhc96.js +6 -0
  87. package/dist/chunks/studio-cffqvnzd.js +5 -0
  88. package/dist/chunks/studio-d81xfh1g.js +5 -0
  89. package/dist/chunks/studio-dgz8d0c1.js +5 -0
  90. package/dist/chunks/studio-efvfrsf8.js +5 -0
  91. package/dist/chunks/studio-er30bpcx.js +5 -0
  92. package/dist/chunks/studio-ezscgr64.js +5 -0
  93. package/dist/chunks/studio-ffrrncvz.js +5 -0
  94. package/dist/chunks/studio-fpphgn8y.js +10 -0
  95. package/dist/chunks/studio-j1kvhdjk.js +4 -0
  96. package/dist/chunks/{studio-txjjzrsm.js → studio-j430n16g.js} +5 -5
  97. package/dist/chunks/studio-jjkg84nj.js +5 -0
  98. package/dist/chunks/studio-m0q32ars.js +4 -0
  99. package/dist/chunks/studio-m6bdst11.js +5 -0
  100. package/dist/chunks/studio-nv2cptd4.js +64 -0
  101. package/dist/chunks/studio-nwfrc98n.js +5 -0
  102. package/dist/chunks/studio-p1wgvp7r.js +5 -0
  103. package/dist/chunks/studio-pag2wncm.js +5 -0
  104. package/dist/chunks/studio-qvanvzfd.js +5 -0
  105. package/dist/chunks/studio-qwa64kt7.js +5 -0
  106. package/dist/chunks/studio-rk1zc4x3.js +928 -0
  107. package/dist/chunks/studio-se2r3ptc.js +5 -0
  108. package/dist/chunks/studio-sg2a0dh0.js +5 -0
  109. package/dist/chunks/studio-tjzjhe68.js +5 -0
  110. package/dist/chunks/{studio-0x3jyb8r.js → studio-tq0rtfwj.js} +4 -4
  111. package/dist/chunks/{studio-cpxkgjrj.js → studio-v0jzqdjm.js} +4 -4
  112. package/dist/chunks/studio-v2w7q8r1.js +7 -0
  113. package/dist/chunks/studio-v5vjq1h0.js +4 -0
  114. package/dist/chunks/studio-v8aga3vp.js +14 -0
  115. package/dist/chunks/studio-vfcdrfmv.js +5 -0
  116. package/dist/chunks/studio-vmfkgdjf.js +5 -0
  117. package/dist/chunks/studio-wt1816jj.js +5 -0
  118. package/dist/chunks/studio-wz73q5kq.js +4 -0
  119. package/dist/chunks/studio-y04qtxvp.js +7 -0
  120. package/dist/chunks/studio-y21g8zzg.js +5 -0
  121. package/dist/chunks/studio-y64hrt8p.js +12 -0
  122. package/dist/chunks/studio-ynn90f58.js +16 -0
  123. package/dist/chunks/studio-yxz682sx.js +5 -0
  124. package/dist/chunks/studio-zp7snvkq.js +5 -0
  125. package/dist/chunks/studio-zq4z6tm6.js +5 -0
  126. package/dist/chunks/swatch-group-ewh24n1f.js +4 -0
  127. package/dist/chunks/tabs-f5cw3tgp.js +4 -0
  128. package/dist/chunks/textfield-wewc8rq2.js +4 -0
  129. package/dist/chunks/toast-c9fn075p.js +4 -0
  130. package/dist/chunks/toast-host-ke5z4ng7.js +4 -0
  131. package/dist/chunks/{toolbar-2nnzqhrj.js → toolbar-44cm5cta.js} +3 -3
  132. package/dist/chunks/tooltip-5v8ngwj2.js +4 -0
  133. package/dist/chunks/tree-mdq3v5cw.js +4 -0
  134. package/dist/chunks/tsMode-sf49ee9x.js +14 -0
  135. package/dist/chunks/workspace-jtfahpee.js +4 -0
  136. package/dist/chunks/ws-client-nze0k6mv.js +4 -0
  137. package/dist/iframe-entry.js +16 -16
  138. package/dist/manifest.json +63 -63
  139. package/dist/studio.js +98 -98
  140. package/dist/workers/ts.worker.js +3 -3
  141. package/package.json +11 -11
  142. package/src/about/about-modal.ts +4 -3
  143. package/src/account/action-flow.ts +45 -38
  144. package/src/account-status.ts +7 -2
  145. package/src/browse/library-layouts.ts +8 -5
  146. package/src/browse/library-model.ts +18 -6
  147. package/src/browse/library-pane.ts +37 -21
  148. package/src/browse/library-preview.ts +14 -9
  149. package/src/browse/library-source.ts +1 -1
  150. package/src/canvas/asset-refs.ts +24 -9
  151. package/src/canvas/asset-resolve.ts +19 -23
  152. package/src/canvas/canvas-helpers.ts +7 -6
  153. package/src/canvas/canvas-live-render.ts +44 -53
  154. package/src/canvas/canvas-patcher.ts +30 -30
  155. package/src/canvas/canvas-perf.ts +11 -5
  156. package/src/canvas/canvas-render.ts +66 -42
  157. package/src/canvas/canvas-surface.ts +5 -3
  158. package/src/canvas/canvas-utils.ts +163 -64
  159. package/src/canvas/dialog-path.ts +9 -4
  160. package/src/canvas/dialog-state.ts +1 -2
  161. package/src/canvas/diff-marks.ts +9 -16
  162. package/src/canvas/diff-toolbar.ts +8 -7
  163. package/src/canvas/edit-width-drag.ts +4 -1
  164. package/src/canvas/edit-width.ts +1 -3
  165. package/src/canvas/iframe-channel.ts +27 -13
  166. package/src/canvas/iframe-drop.ts +13 -12
  167. package/src/canvas/iframe-editable-root.ts +29 -16
  168. package/src/canvas/iframe-entry.ts +80 -63
  169. package/src/canvas/iframe-eval.ts +73 -49
  170. package/src/canvas/iframe-host.ts +203 -118
  171. package/src/canvas/iframe-inline-edit.ts +69 -32
  172. package/src/canvas/iframe-insert.ts +5 -4
  173. package/src/canvas/iframe-interaction.ts +37 -26
  174. package/src/canvas/iframe-overlay.ts +1 -1
  175. package/src/canvas/iframe-patch.ts +18 -15
  176. package/src/canvas/iframe-position.ts +12 -6
  177. package/src/canvas/iframe-protocol.ts +15 -16
  178. package/src/canvas/iframe-render.ts +41 -36
  179. package/src/canvas/iframe-slash.ts +24 -11
  180. package/src/canvas/iframe-subtree.ts +6 -2
  181. package/src/canvas/path-mapping.ts +19 -12
  182. package/src/canvas/popover-path.ts +7 -3
  183. package/src/canvas/popover-state.ts +1 -2
  184. package/src/canvas/serialize-scope.ts +13 -5
  185. package/src/canvas/stage-scrollbar.ts +2 -1
  186. package/src/canvas/surface-registry.ts +21 -3
  187. package/src/collab/collab-commands.ts +7 -2
  188. package/src/collab/collab-session.ts +84 -45
  189. package/src/collab/collab-state.ts +4 -3
  190. package/src/collab/monaco-binding.ts +16 -13
  191. package/src/collab/monaco-cursors.ts +5 -2
  192. package/src/commands/budget.ts +3 -3
  193. package/src/commands/command-args.ts +103 -71
  194. package/src/commands/context.ts +22 -20
  195. package/src/commands/defaults.ts +4 -1
  196. package/src/commands/keymap.ts +47 -43
  197. package/src/commands/levels.ts +3 -3
  198. package/src/commands/live-context.ts +10 -8
  199. package/src/commands/reference.ts +2 -1
  200. package/src/commands/registry.ts +12 -10
  201. package/src/commands/run-reported.ts +15 -10
  202. package/src/component-props.ts +46 -30
  203. package/src/content/collection-match.ts +5 -4
  204. package/src/content/draft-state.ts +4 -3
  205. package/src/content/entry-commands.ts +3 -2
  206. package/src/content/entry-editor.ts +29 -17
  207. package/src/content/entry-fields.ts +12 -7
  208. package/src/content/entry-model.ts +21 -12
  209. package/src/editor/canvas-context-menu.ts +1 -2
  210. package/src/editor/canvas-slash-bridge.ts +3 -6
  211. package/src/editor/content-slice.ts +16 -14
  212. package/src/editor/context-menu.ts +35 -22
  213. package/src/editor/convert-targets.ts +30 -35
  214. package/src/editor/convert-to-component.ts +11 -5
  215. package/src/editor/convert-to-repeater.ts +34 -22
  216. package/src/editor/editable-tags.ts +17 -2
  217. package/src/editor/file-drop-action.ts +21 -22
  218. package/src/editor/inline-edit-apply.ts +35 -17
  219. package/src/editor/inline-edit.ts +66 -50
  220. package/src/editor/inline-format.ts +59 -56
  221. package/src/editor/inline-link.ts +40 -15
  222. package/src/editor/insert-zone-action.ts +1 -1
  223. package/src/editor/merge-tags.ts +58 -19
  224. package/src/editor/repeater-scope.ts +39 -28
  225. package/src/editor/shortcuts.ts +87 -47
  226. package/src/editor/slash-menu.ts +1 -6
  227. package/src/files/asset-versions.ts +4 -4
  228. package/src/files/components.ts +15 -10
  229. package/src/files/elements.ts +5 -6
  230. package/src/files/file-ops.ts +77 -36
  231. package/src/files/files.ts +90 -95
  232. package/src/files/media-meta.ts +2 -1
  233. package/src/files/media-paths.ts +6 -1
  234. package/src/files/serialize-document.ts +2 -2
  235. package/src/format/constraints.ts +1 -1
  236. package/src/format/convert-file.ts +27 -13
  237. package/src/format/format-choices.ts +2 -1
  238. package/src/format/format-host.ts +76 -50
  239. package/src/github/github-auth-status.ts +27 -3
  240. package/src/github/github-auth.ts +19 -9
  241. package/src/github/github-publish.ts +24 -20
  242. package/src/grid/cell-editors.ts +46 -31
  243. package/src/grid/cell-popovers.ts +5 -3
  244. package/src/grid/edit-buffer.ts +10 -9
  245. package/src/grid/grid-controller.ts +20 -22
  246. package/src/grid/grid-layout.ts +21 -5
  247. package/src/grid/grid-open.ts +3 -6
  248. package/src/grid/grid-panel.ts +11 -4
  249. package/src/grid/grid-source.ts +8 -8
  250. package/src/grid/grid-view.ts +14 -17
  251. package/src/grid/redirects-grid.ts +14 -5
  252. package/src/grid/redirects.ts +16 -14
  253. package/src/grid/schema-columns.ts +25 -19
  254. package/src/grid/sources/connector-source.ts +47 -20
  255. package/src/grid/sources/content-source.ts +25 -24
  256. package/src/grid/sources/csv-file-source.ts +2 -2
  257. package/src/grid/tabulator-tables.d.ts +55 -34
  258. package/src/hosting/stage.ts +7 -7
  259. package/src/i18n/i18n-commands.ts +1 -2
  260. package/src/media/media-pane.ts +4 -1
  261. package/src/new-project/add-repo-modal.ts +20 -19
  262. package/src/new-project/import-tab.ts +10 -14
  263. package/src/new-project/location-fields.ts +2 -1
  264. package/src/new-project/new-project-modal.ts +12 -9
  265. package/src/packages/jxsuite-update.ts +4 -3
  266. package/src/packages/pull-package-sync.ts +26 -25
  267. package/src/page-params.ts +97 -68
  268. package/src/panels/activity-panel.ts +17 -9
  269. package/src/panels/ai-chat/attached-context.ts +13 -7
  270. package/src/panels/ai-chat/chat-view.ts +80 -73
  271. package/src/panels/ai-chat/composer.ts +30 -33
  272. package/src/panels/ai-chat/sessions-view.ts +1 -2
  273. package/src/panels/ai-panel.ts +23 -20
  274. package/src/panels/block-action-bar.ts +46 -35
  275. package/src/panels/bottom-dock.ts +5 -3
  276. package/src/panels/canvas-dnd-bridge.ts +31 -24
  277. package/src/panels/data-explorer.ts +62 -25
  278. package/src/panels/data-grid.ts +14 -11
  279. package/src/panels/dnd.ts +108 -118
  280. package/src/panels/editors.ts +55 -22
  281. package/src/panels/elements-panel.ts +10 -3
  282. package/src/panels/events-panel.ts +84 -69
  283. package/src/panels/formula-workspace.ts +76 -51
  284. package/src/panels/frontmatter-fields.ts +24 -19
  285. package/src/panels/frontmatter-panel.ts +44 -34
  286. package/src/panels/git-diff-open.ts +4 -4
  287. package/src/panels/git-panel.ts +49 -61
  288. package/src/panels/head-panel.ts +131 -111
  289. package/src/panels/i18n-panel.ts +10 -3
  290. package/src/panels/imports-panel.ts +23 -47
  291. package/src/panels/jump-bar.ts +48 -29
  292. package/src/panels/layers-panel.ts +97 -74
  293. package/src/panels/left-panel.ts +3 -3
  294. package/src/panels/pane-context.ts +31 -22
  295. package/src/panels/pane-grid.ts +49 -20
  296. package/src/panels/panel-registry.ts +22 -37
  297. package/src/panels/properties-panel.ts +175 -121
  298. package/src/panels/quick-search.ts +53 -31
  299. package/src/panels/right-panel.ts +3 -3
  300. package/src/panels/seo-modal.ts +13 -17
  301. package/src/panels/settings-menu.ts +15 -15
  302. package/src/panels/signals-panel.ts +153 -131
  303. package/src/panels/statement-editor.ts +230 -140
  304. package/src/panels/style-panel.ts +254 -216
  305. package/src/panels/style-utils.ts +114 -51
  306. package/src/panels/stylebook-doc.ts +57 -54
  307. package/src/panels/stylebook-layers-panel.ts +9 -9
  308. package/src/panels/stylebook-panel.ts +13 -17
  309. package/src/panels/tab-drop.ts +27 -11
  310. package/src/panels/tab-strip.ts +36 -26
  311. package/src/platform-errors.ts +57 -43
  312. package/src/platform.ts +58 -30
  313. package/src/platforms/cloud.ts +345 -175
  314. package/src/platforms/default-platform.ts +10 -4
  315. package/src/platforms/devserver.ts +174 -127
  316. package/src/platforms/read-batcher.ts +16 -8
  317. package/src/project-list.ts +2 -1
  318. package/src/publish/deploy-checklist.ts +8 -2
  319. package/src/publish/pages-service.ts +28 -13
  320. package/src/publish/publish-commands.ts +5 -4
  321. package/src/publish/publish-panel.ts +10 -6
  322. package/src/recent-projects.ts +15 -8
  323. package/src/resize-edges.ts +26 -36
  324. package/src/services/a11y-report.ts +26 -19
  325. package/src/services/agent-seed.ts +23 -11
  326. package/src/services/ai-ask.ts +9 -12
  327. package/src/services/ai-command-tools.ts +68 -62
  328. package/src/services/ai-import-tools.ts +80 -67
  329. package/src/services/ai-models.ts +17 -13
  330. package/src/services/ai-project-tools.ts +68 -32
  331. package/src/services/ai-session-store.ts +19 -10
  332. package/src/services/ai-system-prompt.ts +46 -20
  333. package/src/services/ai-tools.ts +71 -27
  334. package/src/services/ai-write-report.ts +20 -12
  335. package/src/services/ai-writes.ts +4 -4
  336. package/src/services/automation.ts +58 -31
  337. package/src/services/cem-export.ts +149 -58
  338. package/src/services/clock.ts +6 -1
  339. package/src/services/code-services.ts +37 -31
  340. package/src/services/context-manager.ts +14 -10
  341. package/src/services/context-resolver.ts +20 -8
  342. package/src/services/data-service.ts +19 -15
  343. package/src/services/directory-picker.ts +18 -12
  344. package/src/services/document-assistant.ts +39 -19
  345. package/src/services/gated-registry.ts +10 -6
  346. package/src/services/harness/chat-reducer.ts +23 -1
  347. package/src/services/import-client.ts +91 -38
  348. package/src/services/import-seed.ts +8 -2
  349. package/src/services/jx-validate.ts +28 -31
  350. package/src/services/live-preview.ts +0 -0
  351. package/src/services/live-surfaces.ts +6 -3
  352. package/src/services/model-uri.ts +10 -2
  353. package/src/services/module-preloads.ts +12 -8
  354. package/src/services/monaco-buffer.ts +43 -24
  355. package/src/services/monaco-lazy.ts +7 -8
  356. package/src/services/monaco-setup.ts +23 -16
  357. package/src/services/notify.ts +44 -17
  358. package/src/services/popover-report.ts +25 -10
  359. package/src/services/preview-eval.ts +20 -8
  360. package/src/services/profile.ts +13 -6
  361. package/src/services/project-path.ts +13 -10
  362. package/src/services/references.ts +0 -0
  363. package/src/services/render-critic.ts +8 -7
  364. package/src/services/settings/kernel.ts +13 -4
  365. package/src/services/settings/write-queue.ts +9 -9
  366. package/src/services/token-lint.ts +12 -10
  367. package/src/services/tool-executor.ts +17 -5
  368. package/src/services/tool-outcomes.ts +44 -24
  369. package/src/services/trusted-types.ts +24 -7
  370. package/src/settings/contexts-section.ts +11 -8
  371. package/src/settings/contributed-section.ts +79 -60
  372. package/src/settings/css-vars-editor.ts +37 -16
  373. package/src/settings/defs-editor.ts +38 -35
  374. package/src/settings/extension-rows.ts +16 -8
  375. package/src/settings/extension-sections.ts +23 -13
  376. package/src/settings/extensions-section.ts +4 -1
  377. package/src/settings/general-settings.ts +11 -8
  378. package/src/settings/locales-section.ts +20 -12
  379. package/src/settings/preferences-dialog.ts +9 -6
  380. package/src/settings/preferences-keymap.ts +7 -5
  381. package/src/settings/preferences-sections.ts +11 -5
  382. package/src/settings/project-sections.ts +1 -1
  383. package/src/settings/schema-field-ui.ts +9 -0
  384. package/src/settings/settings-document.ts +5 -5
  385. package/src/shell/tree.ts +6 -5
  386. package/src/shell.ts +104 -81
  387. package/src/site-context.ts +37 -22
  388. package/src/state.ts +41 -49
  389. package/src/store.ts +54 -34
  390. package/src/studio.ts +39 -77
  391. package/src/style/live-preview.ts +1 -1
  392. package/src/style/project-styles.ts +6 -7
  393. package/src/style/token-ref.ts +5 -4
  394. package/src/surfaces/about.ts +18 -19
  395. package/src/surfaces/add-repo.ts +17 -19
  396. package/src/surfaces/ai-chat.ts +31 -36
  397. package/src/surfaces/ai-credentials-form.ts +6 -16
  398. package/src/surfaces/ai-managed-connect.ts +3 -4
  399. package/src/surfaces/ai-model-picker.ts +3 -5
  400. package/src/surfaces/block-action-bar.ts +22 -11
  401. package/src/surfaces/boot-failure.ts +4 -5
  402. package/src/surfaces/bottom-dock.ts +9 -18
  403. package/src/surfaces/canvas-stage.ts +12 -11
  404. package/src/surfaces/cf-account-picker.ts +17 -18
  405. package/src/surfaces/commandbar.ts +14 -9
  406. package/src/surfaces/convert-repeater.ts +17 -19
  407. package/src/surfaces/data-actions.ts +9 -7
  408. package/src/surfaces/dialog.ts +26 -28
  409. package/src/surfaces/diff-toolbar.ts +9 -7
  410. package/src/surfaces/doc-header.ts +10 -19
  411. package/src/surfaces/empty-state.ts +7 -10
  412. package/src/surfaces/entry-editor.ts +14 -11
  413. package/src/surfaces/expression-editor.ts +11 -25
  414. package/src/surfaces/files-panel.ts +27 -14
  415. package/src/surfaces/formula-palette.ts +4 -5
  416. package/src/surfaces/git-panel.ts +7 -15
  417. package/src/surfaces/github-auth.ts +16 -20
  418. package/src/surfaces/github-publish.ts +17 -22
  419. package/src/surfaces/grid-cell.ts +30 -31
  420. package/src/surfaces/grid-open.ts +10 -14
  421. package/src/surfaces/grid-panel.ts +13 -9
  422. package/src/surfaces/grid-replace.ts +13 -13
  423. package/src/surfaces/grid-views.ts +15 -18
  424. package/src/surfaces/inspector-dock.ts +13 -12
  425. package/src/surfaces/jump-bar.ts +5 -6
  426. package/src/surfaces/jxsuite-update.ts +16 -22
  427. package/src/surfaces/library-pane.ts +25 -20
  428. package/src/surfaces/logic-panel.ts +17 -30
  429. package/src/surfaces/logic-workspace.ts +13 -15
  430. package/src/surfaces/media-browser.ts +11 -10
  431. package/src/surfaces/media-field.ts +4 -5
  432. package/src/surfaces/media-pane.ts +8 -7
  433. package/src/surfaces/menu.ts +29 -23
  434. package/src/surfaces/navigator-dock.ts +11 -12
  435. package/src/surfaces/new-project.ts +27 -26
  436. package/src/surfaces/pane-context.ts +20 -25
  437. package/src/surfaces/pane-grid.ts +15 -10
  438. package/src/surfaces/panel-activity.ts +5 -6
  439. package/src/surfaces/panel-data.ts +3 -4
  440. package/src/surfaces/panel-deploy-checklist.ts +5 -6
  441. package/src/surfaces/panel-elements.ts +5 -7
  442. package/src/surfaces/panel-i18n.ts +5 -7
  443. package/src/surfaces/panel-imports.ts +6 -13
  444. package/src/surfaces/panel-outline.ts +25 -19
  445. package/src/surfaces/panel-page.ts +11 -18
  446. package/src/surfaces/panel-problems.ts +5 -7
  447. package/src/surfaces/panel-signals.ts +20 -34
  448. package/src/surfaces/panel-stylebook-layers.ts +5 -8
  449. package/src/surfaces/preferences.ts +21 -11
  450. package/src/surfaces/progress-modal.ts +15 -9
  451. package/src/surfaces/properties-panel.json +1 -1
  452. package/src/surfaces/properties-panel.ts +20 -42
  453. package/src/surfaces/publish.ts +18 -18
  454. package/src/surfaces/push-plan.ts +7 -8
  455. package/src/surfaces/rail.json +126 -73
  456. package/src/surfaces/rail.ts +38 -12
  457. package/src/surfaces/reference-field.ts +11 -15
  458. package/src/surfaces/schema-builder.ts +16 -22
  459. package/src/surfaces/schema-form.ts +15 -25
  460. package/src/surfaces/secret-field.ts +9 -6
  461. package/src/surfaces/seo.ts +21 -15
  462. package/src/surfaces/settings-contexts.ts +9 -7
  463. package/src/surfaces/settings-contributed.ts +14 -10
  464. package/src/surfaces/settings-css-vars.ts +5 -12
  465. package/src/surfaces/settings-defs.json +2 -2
  466. package/src/surfaces/settings-defs.ts +17 -21
  467. package/src/surfaces/settings-deploy.ts +8 -15
  468. package/src/surfaces/settings-extensions.ts +5 -6
  469. package/src/surfaces/settings-head.ts +33 -39
  470. package/src/surfaces/settings-locales.ts +8 -20
  471. package/src/surfaces/settings-overview.ts +5 -6
  472. package/src/surfaces/settings-packages.ts +8 -7
  473. package/src/surfaces/settings-pane.ts +9 -18
  474. package/src/surfaces/settings-rawjson.ts +5 -6
  475. package/src/surfaces/shell.ts +1 -2
  476. package/src/surfaces/slash-menu.ts +19 -9
  477. package/src/surfaces/statements.ts +13 -18
  478. package/src/surfaces/statusbar.ts +17 -14
  479. package/src/surfaces/style-panel.ts +18 -31
  480. package/src/surfaces/stylebook-chrome.ts +3 -5
  481. package/src/surfaces/tab-strip.ts +14 -13
  482. package/src/surfaces/target-line.ts +6 -7
  483. package/src/surfaces/welcome.ts +5 -7
  484. package/src/tabs/patch-ops.ts +4 -3
  485. package/src/tabs/project-config.ts +32 -21
  486. package/src/tabs/selection.ts +36 -8
  487. package/src/tabs/tab.ts +52 -41
  488. package/src/tabs/transact.ts +98 -53
  489. package/src/tabs/typing.ts +31 -0
  490. package/src/types.ts +32 -17
  491. package/src/ui/ai-credentials-form.ts +10 -13
  492. package/src/ui/ai-model-picker.ts +3 -3
  493. package/src/ui/cf-account-picker.ts +7 -9
  494. package/src/ui/color-selector.ts +9 -5
  495. package/src/ui/dynamic-slot.ts +7 -8
  496. package/src/ui/expression-editor.ts +112 -105
  497. package/src/ui/form-controls.ts +57 -48
  498. package/src/ui/formula-catalog.ts +239 -230
  499. package/src/ui/formula-chips.ts +33 -18
  500. package/src/ui/layers.ts +44 -31
  501. package/src/ui/media-picker.ts +18 -9
  502. package/src/ui/popover-surface.ts +20 -12
  503. package/src/ui/progress-modal.ts +13 -8
  504. package/src/ui/regions.ts +7 -6
  505. package/src/ui/schema-form.ts +113 -70
  506. package/src/ui/surface.ts +71 -8
  507. package/src/ui/timing.ts +9 -0
  508. package/src/ui/value-source.ts +44 -31
  509. package/src/ui/virtual-window.ts +3 -2
  510. package/src/utils/base64.ts +3 -1
  511. package/src/utils/edit-display.ts +103 -74
  512. package/src/utils/element-selectors.ts +3 -2
  513. package/src/utils/google-fonts.ts +15 -14
  514. package/src/utils/inherited-style.ts +18 -20
  515. package/src/utils/link-target.ts +1 -1
  516. package/src/utils/preview-format.ts +25 -3
  517. package/src/utils/strip-events.ts +49 -22
  518. package/src/utils/studio-utils.ts +29 -14
  519. package/src/view.ts +2 -3
  520. package/src/workspace/pane-derive.ts +10 -12
  521. package/src/workspace/session.ts +53 -43
  522. package/src/workspace/workspace.ts +47 -36
  523. package/dist/chunks/2020-nkxms0ay.js +0 -4
  524. package/dist/chunks/adapter-m948ab5f.js +0 -4
  525. package/dist/chunks/cf-account-picker-n8hr38v7.js +0 -4
  526. package/dist/chunks/cf-settings-356xdtne.js +0 -4
  527. package/dist/chunks/color-area-jqhna8zy.js +0 -4
  528. package/dist/chunks/color-field-embq5ctg.js +0 -4
  529. package/dist/chunks/color-fpezvnkt.js +0 -4
  530. package/dist/chunks/color-slider-1qmw7wqy.js +0 -4
  531. package/dist/chunks/combobox-773hdzyj.js +0 -4
  532. package/dist/chunks/components-yk3t844e.js +0 -4
  533. package/dist/chunks/content-source-bawmyc09.js +0 -4
  534. package/dist/chunks/convert-to-repeater-7wns8kf1.js +0 -4
  535. package/dist/chunks/dialog-mtm9fq5t.js +0 -4
  536. package/dist/chunks/editor-6sc8nacq.js +0 -4
  537. package/dist/chunks/entry-commands-8ay9fh81.js +0 -4
  538. package/dist/chunks/extension-sections-na7rj3nr.js +0 -4
  539. package/dist/chunks/file-ops-gye0qw56.js +0 -4
  540. package/dist/chunks/files-dmc2xvcq.js +0 -4
  541. package/dist/chunks/format-host-t76b53f8.js +0 -4
  542. package/dist/chunks/fs-events-cg4tpz06.js +0 -4
  543. package/dist/chunks/git-panel-yef7bshy.js +0 -4
  544. package/dist/chunks/grid-view-7tt4bxw1.js +0 -51
  545. package/dist/chunks/icons-qbh8akb1.js +0 -4
  546. package/dist/chunks/iframe-entry-f7mqjwpm.js +0 -5
  547. package/dist/chunks/iframe-entry-haw7jkvz.js +0 -5
  548. package/dist/chunks/iframe-entry-z6qrytv3.js +0 -5
  549. package/dist/chunks/iframe-host-tmz30gfp.js +0 -4
  550. package/dist/chunks/index-nag78a9h.js +0 -4
  551. package/dist/chunks/jsonMode-zhwsprqk.js +0 -13
  552. package/dist/chunks/jx-validate-3gbp5nkn.js +0 -4
  553. package/dist/chunks/layers-fvz99859.js +0 -4
  554. package/dist/chunks/layers-panel-gchmbf9p.js +0 -4
  555. package/dist/chunks/listbox-s8fkmnq8.js +0 -4
  556. package/dist/chunks/lit-html-9agdspkt.js +0 -4
  557. package/dist/chunks/media-picker-rhjvyy00.js +0 -4
  558. package/dist/chunks/menu-2e4y9j7b.js +0 -4
  559. package/dist/chunks/menu-37d07z9m.js +0 -4
  560. package/dist/chunks/monaco-binding-2jnhjjvr.js +0 -4
  561. package/dist/chunks/monaco-buffer-rp21359g.js +0 -4
  562. package/dist/chunks/monaco-setup-vhh7gayr.js +0 -4
  563. package/dist/chunks/notify-h3www560.js +0 -4
  564. package/dist/chunks/number-field-gw7sq8rn.js +0 -4
  565. package/dist/chunks/parse-897fvqah.js +0 -4
  566. package/dist/chunks/platform-hz34wcd7.js +0 -4
  567. package/dist/chunks/popover-8htra4er.js +0 -4
  568. package/dist/chunks/publish-panel-exsmjzyj.js +0 -4
  569. package/dist/chunks/quick-search-pgaqeh0m.js +0 -4
  570. package/dist/chunks/references-2cgdxnb8.js +0 -4
  571. package/dist/chunks/right-panel-jf856w5w.js +0 -4
  572. package/dist/chunks/section-registry-jnf8r5gy.js +0 -4
  573. package/dist/chunks/select-n3v7gwas.js +0 -4
  574. package/dist/chunks/split-pff8f3ze.js +0 -4
  575. package/dist/chunks/studio-0f55h9ye.js +0 -5
  576. package/dist/chunks/studio-0sqdhnew.js +0 -12
  577. package/dist/chunks/studio-19x1c75w.js +0 -5
  578. package/dist/chunks/studio-2sqcndak.js +0 -5
  579. package/dist/chunks/studio-3aey7dd3.js +0 -5
  580. package/dist/chunks/studio-3bpdkq2s.js +0 -5
  581. package/dist/chunks/studio-47y6fbpf.js +0 -5
  582. package/dist/chunks/studio-4m3826v2.js +0 -5
  583. package/dist/chunks/studio-4nx2dj1g.js +0 -4
  584. package/dist/chunks/studio-4xv5s47r.js +0 -9
  585. package/dist/chunks/studio-5g4t8v6w.js +0 -5
  586. package/dist/chunks/studio-5py436sf.js +0 -5
  587. package/dist/chunks/studio-77kt594t.js +0 -5
  588. package/dist/chunks/studio-8f87n763.js +0 -10
  589. package/dist/chunks/studio-8mb00b84.js +0 -5
  590. package/dist/chunks/studio-8p51gq2h.js +0 -6
  591. package/dist/chunks/studio-954ds834.js +0 -5
  592. package/dist/chunks/studio-9ft45c83.js +0 -9
  593. package/dist/chunks/studio-a2138x5k.js +0 -7
  594. package/dist/chunks/studio-a9yzstqj.js +0 -5
  595. package/dist/chunks/studio-acdksxx6.js +0 -5
  596. package/dist/chunks/studio-ar8jcf2y.js +0 -5
  597. package/dist/chunks/studio-bmn4mn9j.js +0 -7
  598. package/dist/chunks/studio-e7xxa0sj.js +0 -5
  599. package/dist/chunks/studio-ecaz25vk.js +0 -5
  600. package/dist/chunks/studio-ery42sqr.js +0 -4
  601. package/dist/chunks/studio-fzdywr6p.js +0 -9
  602. package/dist/chunks/studio-g5fmf0c1.js +0 -5
  603. package/dist/chunks/studio-g7nse7zb.js +0 -5
  604. package/dist/chunks/studio-geq1ea6k.js +0 -14
  605. package/dist/chunks/studio-ghkb32r8.js +0 -5
  606. package/dist/chunks/studio-ghrhy2y7.js +0 -5
  607. package/dist/chunks/studio-grawhey1.js +0 -5
  608. package/dist/chunks/studio-h0xgswew.js +0 -5
  609. package/dist/chunks/studio-h9c4p2tx.js +0 -5
  610. package/dist/chunks/studio-jyzj5cxs.js +0 -5
  611. package/dist/chunks/studio-mgx8yhnz.js +0 -64
  612. package/dist/chunks/studio-mpb04y1d.js +0 -6
  613. package/dist/chunks/studio-n17mty64.js +0 -5
  614. package/dist/chunks/studio-nwh2eqsk.js +0 -6
  615. package/dist/chunks/studio-q1h883bt.js +0 -16
  616. package/dist/chunks/studio-q4tv82h7.js +0 -9
  617. package/dist/chunks/studio-qpqa7vk3.js +0 -5
  618. package/dist/chunks/studio-qqz8e5gk.js +0 -5
  619. package/dist/chunks/studio-qvasen3f.js +0 -5
  620. package/dist/chunks/studio-rggdb3hm.js +0 -5
  621. package/dist/chunks/studio-sghy936h.js +0 -4
  622. package/dist/chunks/studio-skprc6ef.js +0 -5
  623. package/dist/chunks/studio-tt2nactf.js +0 -5
  624. package/dist/chunks/studio-tyasmc39.js +0 -5
  625. package/dist/chunks/studio-vk9ezads.js +0 -5
  626. package/dist/chunks/studio-vzacdfsc.js +0 -4
  627. package/dist/chunks/studio-w4c0xmrw.js +0 -5
  628. package/dist/chunks/studio-wfjqhhbk.js +0 -5
  629. package/dist/chunks/studio-wgh5kxpj.js +0 -5
  630. package/dist/chunks/studio-xasj0796.js +0 -5
  631. package/dist/chunks/studio-y78s8r2n.js +0 -5
  632. package/dist/chunks/studio-z8w183sh.js +0 -5
  633. package/dist/chunks/studio-zscd9ty4.js +0 -928
  634. package/dist/chunks/studio-zxp13sss.js +0 -7
  635. package/dist/chunks/studio-zygnmm01.js +0 -5
  636. package/dist/chunks/swatch-group-8qh9a3bm.js +0 -4
  637. package/dist/chunks/tabs-jwthg40w.js +0 -4
  638. package/dist/chunks/textfield-spy3hc77.js +0 -4
  639. package/dist/chunks/toast-4d35zd64.js +0 -4
  640. package/dist/chunks/toast-host-8sjmfed3.js +0 -4
  641. package/dist/chunks/tooltip-fd6g9xy3.js +0 -4
  642. package/dist/chunks/tree-h19v1jfz.js +0 -4
  643. package/dist/chunks/tsMode-gr0m4dzr.js +0 -14
  644. package/dist/chunks/workspace-m15qtcqp.js +0 -4
  645. package/dist/chunks/ws-client-nf61frr1.js +0 -4
@@ -1,4 +1,5 @@
1
1
  import { computed, reactive, toRaw } from "../reactivity";
2
+ import { clearTyping, hasTyping, noteTyping } from "../tabs/typing";
2
3
  import { commitTabBuffers } from "../services/monaco-buffer";
3
4
  import { resetAiWrites } from "../services/ai-writes";
4
5
  import { ensureCollab, rekeyCollab } from "../collab/collab-session";
@@ -18,7 +19,8 @@ import type { JsonLayout } from "@jxsuite/schema/json-layout";
18
19
  import type { ComponentEntry } from "../files/components";
19
20
  import type { AnyCommand, CommandRegistry } from "../commands/registry";
20
21
  import type { GitDiffState } from "../types";
21
- import type { JxMutableNode, JxStyle } from "@jxsuite/schema/types";
22
+ import type { JxMutableNode, JxStyle, ProjectConfig } from "@jxsuite/schema/types";
23
+ import type { FormatFrontmatter } from "../format/format-host";
22
24
  import type { ComputedRef } from "@vue/reactivity";
23
25
 
24
26
  interface FileEntry {
@@ -168,7 +170,7 @@ export const MAX_PANES = 2;
168
170
 
169
171
  export interface Workspace {
170
172
  projectRoot: string | null;
171
- projectConfig: object | null;
173
+ projectConfig: ProjectConfig | null;
172
174
  componentRegistry: ComponentEntry[];
173
175
  clipboard: JxMutableNode | null;
174
176
  styleClipboard: JxStyle | null;
@@ -204,31 +206,36 @@ export interface Workspace {
204
206
  readonly activeTabId: string | null;
205
207
  }
206
208
 
207
- // Annotated as Workspace: Vue's UnwrapNestedRefs cannot terminate on the
208
- // Recursive document types, and reactive() does not unwrap refs we never use.
209
- export const workspace: Workspace = reactive({
209
+ /*
210
+ * SAFETY: `reactive()` returns a deep proxy carrying its target's own members (the two getters
211
+ * included, read through the proxy as receiver), and the literal is checked against Workspace by
212
+ * `satisfies` and holds no refs for `UnwrapNestedRefs` to unwrap, so the proxy IS a Workspace. The
213
+ * type argument is pinned to `object` because `UnwrapNestedRefs<Workspace>` recurses through the
214
+ * document types deeply enough for tsc to give up (TS2589); the proxy is deep either way.
215
+ */
216
+ export const workspace = reactive<object>({
210
217
  activePaneId: PRIMARY_PANE,
211
- clipboard: null as JxMutableNode | null,
212
- closedTabs: [] as ClosedTabRecord[],
213
- componentRegistry: [] as ComponentEntry[],
214
- mruOrder: [] as string[],
218
+ clipboard: null,
219
+ closedTabs: [],
220
+ componentRegistry: [],
221
+ mruOrder: [],
215
222
  fileTree: {
216
223
  dirs: new Map<string, FileEntry[]>(),
217
224
  expanded: new Set<string>(),
218
225
  searchQuery: "",
219
- selectedPath: null as string | null,
226
+ selectedPath: null,
220
227
  },
221
228
  panes: [
222
229
  {
223
- activeTabId: null as string | null,
224
- derived: null as PaneDerivation | null,
230
+ activeTabId: null,
231
+ derived: null,
225
232
  id: PRIMARY_PANE,
226
- tabOrder: [] as string[],
233
+ tabOrder: [],
227
234
  },
228
235
  ],
229
- projectConfig: null as object | null,
230
- projectRoot: null as string | null,
231
- styleClipboard: null as JxStyle | null,
236
+ projectConfig: null,
237
+ projectRoot: null,
238
+ styleClipboard: null,
232
239
  tabs: new Map<string, Tab>(),
233
240
  ui: {
234
241
  activityBar: "files",
@@ -254,11 +261,11 @@ export const workspace: Workspace = reactive({
254
261
  get tabOrder(): readonly string[] {
255
262
  return activePane().tabOrder;
256
263
  },
257
- }) as unknown as Workspace;
264
+ } satisfies Workspace) as Workspace;
258
265
 
259
- export const activeTab = computed(() =>
266
+ export const activeTab: ComputedRef<Tab | null> = computed(() =>
260
267
  workspace.activeTabId ? (workspace.tabs.get(workspace.activeTabId) ?? null) : null,
261
- ) as unknown as ComputedRef<Tab | null>;
268
+ );
262
269
 
263
270
  // ─── Panes ────────────────────────────────────────────────────────────────────
264
271
 
@@ -513,10 +520,10 @@ function addPane(paneId: string): Pane {
513
520
  workspace.panes = [
514
521
  ...workspace.panes,
515
522
  {
516
- activeTabId: null as string | null,
517
- derived: null as PaneDerivation | null,
523
+ activeTabId: null,
524
+ derived: null,
518
525
  id: paneId,
519
- tabOrder: [] as string[],
526
+ tabOrder: [],
520
527
  },
521
528
  ];
522
529
  return paneById(paneId)!;
@@ -694,9 +701,9 @@ function defaultSlot(pane: Pane, tabId: string): number {
694
701
  * project context, and the chat panel's pending-prompt effect.
695
702
  *
696
703
  * @param {string | null} root
697
- * @param {object | null} [config]
704
+ * @param {ProjectConfig | null} [config]
698
705
  */
699
- export function setWorkspaceProject(root: string | null, config: object | null = null) {
706
+ export function setWorkspaceProject(root: string | null, config: ProjectConfig | null = null) {
700
707
  /* Leaving a project drops the assistant's record of what each turn changed (ai.md §3.2). It
701
708
  names project-relative paths, and its Restore undoes the active tab, so carried into another
702
709
  project it would list files that are not there and undo a document the turn never touched.
@@ -716,9 +723,7 @@ export function setWorkspaceProject(root: string | null, config: object | null =
716
723
  */
717
724
  export function isTabActive(tab: Tab | null): boolean {
718
725
  const active = activeTab.value;
719
- return (
720
- tab !== null && active !== null && toRaw(active as object) === toRaw(tab as unknown as object)
721
- );
726
+ return tab !== null && active !== null && toRaw(active) === toRaw(tab);
722
727
  }
723
728
 
724
729
  /**
@@ -740,7 +745,7 @@ export function tabIsLive(tab: Tab | null | undefined): boolean {
740
745
  return false;
741
746
  }
742
747
  const held = workspace.tabs.get(tab.id);
743
- return held !== undefined && toRaw(held as object) === toRaw(tab as unknown as object);
748
+ return held !== undefined && toRaw(held) === toRaw(tab);
744
749
  }
745
750
 
746
751
  /**
@@ -848,8 +853,8 @@ function setActiveTab(tabId: string, opts: { cycling?: boolean; focus?: boolean
848
853
  * id: string;
849
854
  * documentPath?: string | null;
850
855
  * fileHandle?: FileSystemFileHandle | null;
851
- * document: Record<string, unknown>;
852
- * frontmatter?: Record<string, unknown>;
856
+ * document: JxMutableNode;
857
+ * frontmatter?: FormatFrontmatter;
853
858
  * sourceFormat?: string | null;
854
859
  * capabilities?: { modes?: string[] };
855
860
  * openedFrom?: TabOrigin | null;
@@ -864,8 +869,8 @@ export function openTab(opts: {
864
869
  id: string;
865
870
  documentPath?: string | null;
866
871
  fileHandle?: FileSystemFileHandle | null;
867
- document: Record<string, unknown>;
868
- frontmatter?: Record<string, unknown>;
872
+ document: JxMutableNode;
873
+ frontmatter?: FormatFrontmatter;
869
874
  sourceFormat?: string | null;
870
875
  capabilities?: { modes?: string[] };
871
876
  openedFrom?: TabOrigin | null;
@@ -1034,6 +1039,8 @@ export function closeTab(tabId: string) {
1034
1039
  rememberClosedTab(tab);
1035
1040
  disposeTab(tab);
1036
1041
  workspace.tabs.delete(tabId);
1042
+ // The id comes back when the same file reopens, and it must not come back with Save lit.
1043
+ clearTyping(tabId);
1037
1044
  detachTab(tabId);
1038
1045
  workspace.mruOrder = workspace.mruOrder.filter((id) => id !== tabId);
1039
1046
  resetTabCycle();
@@ -1166,8 +1173,8 @@ export function endTabCycle() {
1166
1173
  * @param {{
1167
1174
  * id: string;
1168
1175
  * documentPath?: string | null;
1169
- * document: Record<string, unknown>;
1170
- * frontmatter?: Record<string, unknown>;
1176
+ * document: JxMutableNode;
1177
+ * frontmatter?: FormatFrontmatter;
1171
1178
  * sourceFormat?: string | null;
1172
1179
  * }} newTabOpts
1173
1180
  * @returns {import("../tabs/tab.js").Tab}
@@ -1175,8 +1182,8 @@ export function endTabCycle() {
1175
1182
  export function replaceAllTabs(newTabOpts: {
1176
1183
  id: string;
1177
1184
  documentPath?: string | null;
1178
- document: Record<string, unknown>;
1179
- frontmatter?: Record<string, unknown>;
1185
+ document: JxMutableNode;
1186
+ frontmatter?: FormatFrontmatter;
1180
1187
  sourceFormat?: string | null;
1181
1188
  }) {
1182
1189
  const oldIds = [...workspace.tabs.keys()];
@@ -1270,6 +1277,10 @@ export function renameTab(oldId: string, newId: string, newDocumentPath: string)
1270
1277
  }
1271
1278
  tab.id = newId;
1272
1279
  tab.documentPath = newDocumentPath;
1280
+ if (hasTyping(oldId)) {
1281
+ clearTyping(oldId);
1282
+ noteTyping(newId);
1283
+ }
1273
1284
  workspace.tabs.delete(oldId);
1274
1285
  workspace.tabs.set(newId, tab);
1275
1286
  for (const pane of workspace.panes) {
@@ -1,4 +0,0 @@
1
- import{Rt,nn,Sl,xf,Mg,_f,By,l_,c_,d_,u_,h_,p_,f_,m_,g_}from"./studio-0sqdhnew.js";import{ae}from"./studio-v2bvmbjj.js";var b=ae(function(M){Object.defineProperty(M,"__esModule",{value:!0});M.dynamicAnchor=void 0;var _=Rt(),ge=Sl(),A=By(),_e=c_(),be={keyword:"$dynamicAnchor",schemaType:"string",code:(e)=>O(e,e.schema)};function O(e,t){let{gen:r,it:o}=e;o.schemaEnv.root.dynamicAnchors[t]=!0;let n=_._`${ge.default.dynamicAnchors}${_.getProperty(t)}`,s=o.errSchemaPath==="#"?o.validateName:ve(e);r.if(_._`!${n}`,()=>r.assign(n,s))}M.dynamicAnchor=O;function ve(e){let{schemaEnv:t,schema:r,self:o}=e.it,{root:n,baseId:s,localRefs:m,meta:c}=t.root,{schemaId:a}=o.opts,u=new A.SchemaEnv({schema:r,schemaId:a,root:n,baseId:s,localRefs:m,meta:c});return A.compileSchema.call(o,u),_e.getValidate(e,u)}M.default=be});var v=ae(function(N){Object.defineProperty(N,"__esModule",{value:!0});N.dynamicRef=void 0;var I=Rt(),qe=Sl(),x=c_(),Pe={keyword:"$dynamicRef",schemaType:"string",code:(e)=>w(e,e.schema)};function w(e,t){let{gen:r,keyword:o,it:n}=e;if(t[0]!=="#")throw Error(`"${o}" only supports hash fragment reference`);let s=t.slice(1);if(n.allErrors)m();else{let a=r.let("valid",!1);m(a),e.ok(a)}function m(a){if(n.schemaEnv.root.dynamicAnchors[s]){let u=r.let("_v",I._`${qe.default.dynamicAnchors}${I.getProperty(s)}`);r.if(u,c(u,a),c(n.validateName,a))}else c(n.validateName,a)()}function c(a,u){return u?()=>r.block(()=>{x.callRef(e,a),r.let(u,!0)}):()=>x.callRef(e,a)}}N.dynamicRef=w;N.default=Pe});var E=ae(function(k){Object.defineProperty(k,"__esModule",{value:!0});var Ae=b(),Oe=nn(),Me={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){if(e.schema)Ae.dynamicAnchor(e,"");else Oe.checkStrictMode(e.it,"$recursiveAnchor: false is ignored")}};k.default=Me});var V=ae(function(C){Object.defineProperty(C,"__esModule",{value:!0});var xe=v(),Ie={keyword:"$recursiveRef",schemaType:"string",code:(e)=>xe.dynamicRef(e,e.schema)};C.default=Ie});var K=ae(function(D){Object.defineProperty(D,"__esModule",{value:!0});var Ne=b(),Te=v(),ke=E(),Ee=V(),Ce=[Ne.default,Te.default,ke.default,Ee.default];D.default=Ce});var L=ae(function(z){Object.defineProperty(z,"__esModule",{value:!0});var G=h_(),De={keyword:"dependentRequired",type:"object",schemaType:"object",error:G.error,code:(e)=>G.validatePropertyDeps(e)};z.default=De});var Z=ae(function(U){Object.defineProperty(U,"__esModule",{value:!0});var Ge=h_(),ze={keyword:"dependentSchemas",type:"object",schemaType:"object",code:(e)=>Ge.validateSchemaDeps(e)};U.default=ze});var H=ae(function(F){Object.defineProperty(F,"__esModule",{value:!0});var Ue=nn(),Ze={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){if(t.contains===void 0)Ue.checkStrictMode(r,`"${e}" without "contains" is ignored`)}};F.default=Ze});var J=ae(function(B){Object.defineProperty(B,"__esModule",{value:!0});var He=L(),Be=Z(),Je=H(),Qe=[He.default,Be.default,Je.default];B.default=Qe});var X=ae(function(W){Object.defineProperty(W,"__esModule",{value:!0});var f=Rt(),Q=nn(),Xe=Sl(),Ye={message:"must NOT have unevaluated properties",params:({params:e})=>f._`{unevaluatedProperty: ${e.unevaluatedProperty}}`},et={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:Ye,code(e){let{gen:t,schema:r,data:o,errsCount:n,it:s}=e;if(!n)throw Error("ajv implementation error");let{allErrors:m,props:c}=s;if(c instanceof f.Name)t.if(f._`${c} !== true`,()=>t.forIn("key",o,(i)=>t.if(u(c,i),()=>a(i))));else if(c!==!0)t.forIn("key",o,(i)=>c===void 0?a(i):t.if(g(c,i),()=>a(i)));s.props=!0,e.ok(f._`${n} === ${Xe.default.errors}`);function a(i){if(r===!1){if(e.setParams({unevaluatedProperty:i}),e.error(),!m)t.break();return}if(!Q.alwaysValidSchema(s,r)){let p=t.name("valid");if(e.subschema({keyword:"unevaluatedProperties",dataProp:i,dataPropType:Q.Type.Str},p),!m)t.if(f.not(p),()=>t.break())}}function u(i,p){return f._`!${i} || !${i}[${p}]`}function g(i,p){let P=[];for(let R in i)if(i[R]===!0)P.push(f._`${p} !== ${R}`);return f.and(...P)}}};W.default=et});var te=ae(function(ee){Object.defineProperty(ee,"__esModule",{value:!0});var l=Rt(),Y=nn(),rt={message:({params:{len:e}})=>l.str`must NOT have more than ${e} items`,params:({params:{len:e}})=>l._`{limit: ${e}}`},at={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:rt,code(e){let{gen:t,schema:r,data:o,it:n}=e,s=n.items||0;if(s===!0)return;let m=t.const("len",l._`${o}.length`);if(r===!1)e.setParams({len:s}),e.fail(l._`${m} > ${s}`);else if(typeof r=="object"&&!Y.alwaysValidSchema(n,r)){let a=t.var("valid",l._`${m} <= ${s}`);t.if(l.not(a),()=>c(a,s)),e.ok(a)}n.items=!0;function c(a,u){t.forRange("i",u,m,(g)=>{if(e.subschema({keyword:"unevaluatedItems",dataProp:g,dataPropType:Y.Type.Num},a),!n.allErrors)t.if(l.not(a),()=>t.break())})}}};ee.default=at});var ne=ae(function(re){Object.defineProperty(re,"__esModule",{value:!0});var ot=X(),st=te(),it=[ot.default,st.default];re.default=it});var ie=ae(function(se){Object.defineProperty(se,"__esModule",{value:!0});var dt=d_(),ut=u_(),mt=p_(),ft=K(),lt=J(),pt=ne(),yt=f_(),oe=m_(),ht=[ft.default,dt.default,ut.default,(0,mt.default)(!0),yt.default,oe.metadataVocabulary,oe.contentVocabulary,lt.default,pt.default];se.default=ht});var ce=ae(function(ir,gt){gt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:!0,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:!0},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:!0}}}});var de=ae(function(cr,_t){_t.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/applicator",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:"meta",title:"Applicator vocabulary meta-schema",type:["object","boolean"],properties:{prefixItems:{$ref:"#/$defs/schemaArray"},items:{$dynamicRef:"#meta"},contains:{$dynamicRef:"#meta"},additionalProperties:{$dynamicRef:"#meta"},properties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},patternProperties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},propertyNames:{format:"regex"},default:{}},dependentSchemas:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},propertyNames:{$dynamicRef:"#meta"},if:{$dynamicRef:"#meta"},then:{$dynamicRef:"#meta"},else:{$dynamicRef:"#meta"},allOf:{$ref:"#/$defs/schemaArray"},anyOf:{$ref:"#/$defs/schemaArray"},oneOf:{$ref:"#/$defs/schemaArray"},not:{$dynamicRef:"#meta"}},$defs:{schemaArray:{type:"array",minItems:1,items:{$dynamicRef:"#meta"}}}}});var ue=ae(function(dr,bt){bt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}}});var me=ae(function(ur,vt){vt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/content",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Content vocabulary meta-schema",type:["object","boolean"],properties:{contentEncoding:{type:"string"},contentMediaType:{type:"string"},contentSchema:{$dynamicRef:"#meta"}}}});var fe=ae(function(mr,jt){jt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/core",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:"meta",title:"Core vocabulary meta-schema",type:["object","boolean"],properties:{$id:{$ref:"#/$defs/uriReferenceString",$comment:"Non-empty fragments not allowed.",pattern:"^[^#]*#?$"},$schema:{$ref:"#/$defs/uriString"},$ref:{$ref:"#/$defs/uriReferenceString"},$anchor:{$ref:"#/$defs/anchorString"},$dynamicRef:{$ref:"#/$defs/uriReferenceString"},$dynamicAnchor:{$ref:"#/$defs/anchorString"},$vocabulary:{type:"object",propertyNames:{$ref:"#/$defs/uriString"},additionalProperties:{type:"boolean"}},$comment:{type:"string"},$defs:{type:"object",additionalProperties:{$dynamicRef:"#meta"}}},$defs:{anchorString:{type:"string",pattern:"^[A-Za-z_][-A-Za-z0-9._]*$"},uriString:{type:"string",format:"uri"},uriReferenceString:{type:"string",format:"uri-reference"}}}});var le=ae(function(fr,qt){qt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}}});var pe=ae(function(lr,Pt){Pt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/meta-data",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:"meta",title:"Meta-data vocabulary meta-schema",type:["object","boolean"],properties:{title:{type:"string"},description:{type:"string"},default:!0,deprecated:{type:"boolean",default:!1},readOnly:{type:"boolean",default:!1},writeOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0}}}});var ye=ae(function(pr,At){At.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/validation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:"meta",title:"Validation vocabulary meta-schema",type:["object","boolean"],properties:{type:{anyOf:[{$ref:"#/$defs/simpleTypes"},{type:"array",items:{$ref:"#/$defs/simpleTypes"},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/$defs/nonNegativeInteger"},minLength:{$ref:"#/$defs/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},maxItems:{$ref:"#/$defs/nonNegativeInteger"},minItems:{$ref:"#/$defs/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},maxContains:{$ref:"#/$defs/nonNegativeInteger"},minContains:{$ref:"#/$defs/nonNegativeInteger",default:1},maxProperties:{$ref:"#/$defs/nonNegativeInteger"},minProperties:{$ref:"#/$defs/nonNegativeIntegerDefault0"},required:{$ref:"#/$defs/stringArray"},dependentRequired:{type:"object",additionalProperties:{$ref:"#/$defs/stringArray"}}},$defs:{nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{$ref:"#/$defs/nonNegativeInteger",default:0},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}}}});var $e=ae(function(he){Object.defineProperty(he,"__esModule",{value:!0});var Ot=ce(),Mt=de(),St=ue(),xt=me(),It=fe(),wt=le(),Nt=pe(),Tt=ye(),kt=["/properties"];function Et(e){return[Ot,Mt,St,xt,It,t(this,wt),Nt,t(this,Tt)].forEach((r)=>this.addMetaSchema(r,void 0,!1)),this;function t(r,o){return e?r.$dataMetaSchema(o,kt):o}}he.default=Et});var Ht=ae(function(d,q){Object.defineProperty(d,"__esModule",{value:!0});d.MissingRefError=d.ValidationError=d.CodeGen=d.Name=d.nil=d.stringify=d.str=d._=d.KeywordCxt=d.Ajv2020=void 0;var Vt=l_(),Dt=ie(),Kt=g_(),Gt=$e(),j="https://json-schema.org/draft/2020-12/schema";class h extends Vt.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){if(super._addVocabularies(),Dt.default.forEach((e)=>this.addVocabulary(e)),this.opts.discriminator)this.addKeyword(Kt.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;if(!t)return;Gt.default.call(this,e),this.refs["http://json-schema.org/schema"]=j}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(j)?j:void 0)}}d.Ajv2020=h;q.exports=d=h;q.exports.Ajv2020=h;Object.defineProperty(d,"__esModule",{value:!0});d.default=h;var zt=xf();Object.defineProperty(d,"KeywordCxt",{enumerable:!0,get:function(){return zt.KeywordCxt}});var y=Rt();Object.defineProperty(d,"_",{enumerable:!0,get:function(){return y._}});Object.defineProperty(d,"str",{enumerable:!0,get:function(){return y.str}});Object.defineProperty(d,"stringify",{enumerable:!0,get:function(){return y.stringify}});Object.defineProperty(d,"nil",{enumerable:!0,get:function(){return y.nil}});Object.defineProperty(d,"Name",{enumerable:!0,get:function(){return y.Name}});Object.defineProperty(d,"CodeGen",{enumerable:!0,get:function(){return y.CodeGen}});var Lt=Mg();Object.defineProperty(d,"ValidationError",{enumerable:!0,get:function(){return Lt.default}});var Ut=_f();Object.defineProperty(d,"MissingRefError",{enumerable:!0,get:function(){return Ut.default}})});export default Ht();
2
-
3
- //# debugId=33C1B4F596220F4464756E2164756E21
4
- //# sourceMappingURL=2020-nkxms0ay.js.map
@@ -1,4 +0,0 @@
1
- import{zs,Ws,gs}from"./studio-qbj760tx.js";export{gs as draggable,zs as dropTargetForElements,Ws as monitorForElements};
2
-
3
- //# debugId=EB4AE5E5C16F5E1A64756E2164756E21
4
- //# sourceMappingURL=adapter-m948ab5f.js.map
@@ -1,4 +0,0 @@
1
- import{p,We}from"./studio-qpqa7vk3.js";import"./studio-ery42sqr.js";import{v}from"./studio-vzacdfsc.js";import"./studio-5g0ag7c0.js";import{un,rn}from"./studio-geq1ea6k.js";import"./studio-g7nse7zb.js";import{rt,zt,T,R,An,Ct}from"./studio-e7xxa0sj.js";import"./studio-txjjzrsm.js";import"./studio-5g4t8v6w.js";import"./studio-xasj0796.js";import"./studio-ghrhy2y7.js";import{Gh}from"./studio-0f55h9ye.js";var d={$schema:"https://jxsuite.com/schema/v1",$id:"StudioCfAccountPicker",$description:"The Cloudflare account picker: which of the accounts this grant reaches should publishing and the assistant run against. A `jx-dialog`, so the platform owns modality, Escape, focus restoration and the backdrop — which is what retired the `sp-dialog-wrapper` this surface used to open by hand, along with the focus trap and the `aria-modal` slot `showDialog` wrapped around it. There is no confirming button: each row commits itself, because a picker whose answer is one of N rows has N answers rather than one. The adapter (`surfaces/cf-account-picker.ts`) hands in rows that are already strings and booleans — nothing here knows what `cf_account_required` is, which call refused, or whether the list came back empty because the grant reaches nothing or because Cloudflare could not be reached.",tagName:"jx-dialog",$props:{headline:"Choose a Cloudflare account",confirmLabel:"",cancelLabel:"Cancel",size:"sm"},attributes:{part:"cf-accounts"},oncancel:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/closed"},value:[]}]},onclose:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/closed"},value:[]}]},style:{$description:"The picker's own look. Four `.cf-account-picker*` rules in `styles/shell.css` become the parts below and one of them does not come with them: `min-width: 320px` was this surface sizing its own box, and `jx-dialog` is what sizes a dialog now — `sm` is `min(90vw, 24rem)`, which is wider than the 320px it asked for. The row shape came from `.prefs-account`, which the lit template BORROWED from Preferences › Accounts; it is copied here rather than shared, because a class in a stylesheet is a thing two surfaces can drift apart on and `preferences-dialog.ts` still draws its own rows from it. Three token repairs travel with them: `--spectrum-font-size-75` and `--spectrum-font-size-50` resolve only inside `<sp-theme>`, and a document mounted in the dialog layer is outside it, so every one of them would silently have taken its hard-coded fallback.",'& [part="picker"]':{display:"flex",flexDirection:"column",gap:"var(--jx-space-4)"},'& [part="intro"], & [part="empty"]':{$description:"The lede and the two absences read as the same secondary line, so they are one rule: the sentence over the list and the sentence drawn instead of it are the same voice.",margin:"0",fontSize:"var(--jx-text-md)",color:"var(--fg-dim)"},'& [part="failure"]':{$description:'A commit the broker refused, said above the list the reader is still looking at. It is not an announcement of the same thing twice: the list survives a refusal, because listing again is not what would fix an account Cloudflare will not accept, so the reason has to sit beside the rows that are still on offer. It is `failure` rather than `error` because every kit field draws a permanent, empty `[part="error"]` of its own, and the kit is light DOM: a rule on that name here would reach any field this dialog ever holds.',margin:"0",fontSize:"var(--jx-text-md)",color:"var(--danger)"},'& [part="fail"]':{$description:"The one state that offers a verb of its own. Retrying is right for a listing that never landed and wrong for a grant that genuinely reaches nothing, so the button lives in this branch rather than under both.",display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"var(--jx-space-3)"},'& [part="list"]':{display:"flex",flexDirection:"column",gap:"var(--jx-space-2)"},'& [part="row"]':{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--jx-space-4)",padding:"var(--jx-space-3)",border:"1px solid var(--border)",borderRadius:"var(--radius)"},'& [part="text"]':{$description:"`min-width: 0` lets the column shrink below its content, so the name and id reflow inside the row instead of pushing its own button off the end of it; what lets them reflow is their own `overflow-wrap`. Nothing here ellipsizes. Unlike Preferences › Accounts, the row does not wrap its button onto a line of its own: in an `sm` dialog the arithmetic (a 120px basis, the gap and a 105px button against a 236px row) would wrap every row at rest.",display:"flex",flexDirection:"column",gap:"var(--jx-space-1)",minWidth:"0"},'& [part="name"]':{$description:"`overflow-wrap: anywhere` because Cloudflare names a new account after the email that opened it (`name@example.com's Account`), and an address has no break opportunity in it.",color:"var(--fg)",overflowWrap:"anywhere"},'& [part="detail"]':{$description:"The account id under the name. Two Cloudflare accounts may carry the same name and the id is what is stored, so the row shows both rather than the half a reader would have to guess from. `overflow-wrap: anywhere` because the id is 32 hex digits with no break opportunity: it measured 203px in a 119px column and ran under the row's own button. It reflows rather than ellipsizing, because the id is the half that tells two same-named accounts apart.",fontSize:"var(--jx-text-sm)",color:"var(--fg-dim)",overflowWrap:"anywhere"}},children:[{tagName:"div",attributes:{part:"picker"},children:[{tagName:"p",attributes:{part:"intro"},textContent:"Your Cloudflare login reaches more than one account. Publishing and the assistant both run against the one you pick; you can change it in Preferences › Accounts."},{tagName:"div",attributes:{part:"body-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/listState"},cases:{loading:{tagName:"p",attributes:{part:"empty"},textContent:"Reading your Cloudflare accounts…"},empty:{tagName:"p",attributes:{part:"empty"},textContent:"This Cloudflare login reaches no accounts. Create one at dash.cloudflare.com, then try again."},failed:{tagName:"div",attributes:{part:"fail"},children:[{tagName:"p",attributes:{part:"empty"},textContent:"${state.failureMessage}"},{tagName:"jx-button",attributes:{part:"retry"},$props:{size:"sm"},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/retry"},value:[]}]},children:[{tagName:"span",textContent:"Try again"}]}]},listed:{tagName:"div",attributes:{part:"listed",role:"none"},style:{display:"contents"},children:[{tagName:"div",attributes:{part:"failure-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/hasFailure"},cases:{true:{tagName:"p",attributes:{part:"failure"},textContent:"${state.failure}"}}},{tagName:"div",attributes:{part:"list"},children:[{$prototype:"Array",items:{$ref:"#/state/rows"},key:{$ref:"$map/item/id"},map:{tagName:"div",attributes:{part:"row","data-account":"${$map.item.id}"},children:[{tagName:"div",attributes:{part:"text"},children:[{tagName:"span",attributes:{part:"name"},textContent:"${$map.item.name}"},{tagName:"span",attributes:{part:"detail"},textContent:"${$map.item.id}"}]},{tagName:"jx-button",attributes:{part:"choose"},$props:{size:"sm",variant:"accent",disabled:{$ref:"$map/item/busy"}},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/choose"},value:[{$ref:"$map/item/id"}]}]},children:[{tagName:"span",textContent:"${$map.item.label}"}]}]}}]}]}}}]}]};T("cf-account-picker",d);function h(t){let a=t.choosing!=="";return{...t,failureMessage:`Cloudflare could not be reached: ${t.failure}`,hasFailure:t.failure!=="",listState:t.loading?"loading":t.accounts.length>0?"listed":t.failure!==""?"failed":"empty",rows:t.accounts.map((o)=>({busy:a,id:o.id,label:t.choosing===o.id?"Selecting…":"Use this account",name:o.name}))}}function f(t){let a=document.createElement("div");a.style.pointerEvents="auto",a.setAttribute(rt,zt("dialog","cf-accounts")),t.layer.append(a);let o=!1,i=()=>{if(o)return;o=!0,t.onClosed()},n=v({...h({accounts:[],choosing:"",failure:"",loading:!0}),choose:(e)=>{t.onChoose(e)},closed:i,retry:()=>{t.onRetry()}}),s=null,l=R("cf-account-picker",n,a).then(async(e)=>{s=e;let r=e.root;if(o)return e.dispose(),r;if(await An(r),o)return r;return un(r),r});return{close(){if(o)return;let e=s?.root;if(e instanceof HTMLElement)rn(e);s?.dispose(),s=null,a.remove(),i()},host:a,ready:l,update(e){Object.assign(n,h({accounts:e.accounts??n.accounts,choosing:e.choosing??n.choosing,failure:e.failure??n.failure,loading:e.loading??n.loading}))}}}function w(){if(!We())return!1;let t=p();return Boolean(t.cfAccounts&&t.cfSelectAccount)}function m(t){return t instanceof Error?t.message:String(t)}function E(){if(!w())return Promise.resolve(null);return new Promise((t)=>{let a=[],o="",i=!1,n=(e)=>{if(i)return;i=!0,c.close(),t(e)};async function s(){c.update({failure:"",loading:!0});let e="";try{a=await p().cfAccounts?.()??[]}catch(r){a=[],e=m(r)}if(i)return;c.update({accounts:a,failure:e,loading:!1})}async function l(e){let r=a.find((u)=>u.id===e);if(!r||o!=="")return;o=e,c.update({choosing:e,failure:""});try{await p().cfSelectAccount?.({id:r.id,name:r.name})}catch(u){if(o="",!i)c.update({choosing:"",failure:m(u)});return}Gh(),n(r)}let c=f({layer:Ct("dialog"),onChoose:(e)=>{l(e)},onClosed:()=>{n(null)},onRetry:()=>{s()}});s()})}export{E as openCfAccountPicker};
2
-
3
- //# debugId=3DF3DD7D135B448364756E2164756E21
4
- //# sourceMappingURL=cf-account-picker-n8hr38v7.js.map
@@ -1,4 +0,0 @@
1
- import{$f,A_,N_,f$,O_}from"./studio-xasj0796.js";import"./studio-5g4t8v6w.js";import"./studio-qpqa7vk3.js";import"./studio-vzacdfsc.js";export{O_ as clearCfConnection,N_ as getCfAccountId,$f as getCfToken,f$ as setCfAccountId,A_ as setCfToken};
2
-
3
- //# debugId=15C31DBFCBEBDE0164756E2164756E21
4
- //# sourceMappingURL=cf-settings-356xdtne.js.map
@@ -1,4 +0,0 @@
1
- import{i}from"./iframe-entry-z6qrytv3.js";var h="jx-color-area",d={x:"saturation",y:"brightness"},x={ArrowDown:"y",ArrowLeft:"x",ArrowRight:"x",ArrowUp:"y"},b={ArrowDown:-1,ArrowLeft:-1,ArrowRight:1,ArrowUp:1},l=new WeakSet;function a(e){let t=e.currentTarget;return t instanceof HTMLElement&&t.localName===h?t:null}function f(e){return e.querySelector('[part="track"]')}function p(e){if(!(e instanceof Element))return null;let t=e.getAttribute("part");return t==="x"||t==="y"?t:null}function g(e){let t=Number(e.step);return Number.isFinite(t)&&t>0?t:1}function u(e,...t){for(let r of t)e.dispatchEvent(new Event(r,{bubbles:!0}))}function s(e,t,r){let n=d[t],o=i(r,g(e),0,100);if(e[n]===o)return!1;return e[n]=o,!0}function y(e,t){let r=a(t),n=p(t.target);if(!r||!n)return;t.stopPropagation(),s(e,n,Number(t.target.value)),u(r,"input")}function w(e,t){let r=a(t),n=p(t.target);if(!r||!n)return;t.stopPropagation(),s(e,n,Number(t.target.value)),u(r,"change")}function S(e,t){let r=a(t),n=p(t.target);if(!r||!n||e.disabled===!0)return;let o=x[t.key];if(!o)return;if(o===n&&!t.shiftKey)return;t.preventDefault(),t.stopPropagation();let c=g(e)*(t.shiftKey?10:1)*(b[t.key]??0);if(s(e,o,Number(e[d[o]])+c))u(r,"input","change")}function A(e,t,r){let n=f(t);if(!n)return!1;let o=n.getBoundingClientRect();if(o.width<=0||o.height<=0)return!1;let c=s(e,"x",(r.clientX-o.left)/o.width*100),m=s(e,"y",(1-(r.clientY-o.top)/o.height)*100);return c||m}function C(e,t){let r=a(t);if(!r||e.disabled===!0)return;t.preventDefault(),l.add(r);let n=f(r);if(n&&typeof n.setPointerCapture==="function")try{n.setPointerCapture(t.pointerId)}catch{}if(r.querySelector('[part="x"]')?.focus(),A(e,r,t))u(r,"input")}function P(e,t){let r=a(t);if(!r||!l.has(r))return;if(A(e,r,t))u(r,"input")}function T(e,t){let r=a(t);if(!r||!l.delete(r))return;let n=f(r);if(n&&typeof n.releasePointerCapture==="function"&&n.hasPointerCapture?.(t.pointerId))n.releasePointerCapture(t.pointerId);u(r,"change")}export{w as onAreaAxisChange,y as onAreaAxisInput,S as onAreaKeydown,C as onAreaPointerDown,P as onAreaPointerMove,T as onAreaPointerUp};
2
-
3
- //# debugId=D348F4E0A5F6C62464756E2164756E21
4
- //# sourceMappingURL=color-area-jqhna8zy.js.map
@@ -1,4 +0,0 @@
1
- import{r,s,u,h,g,b,f}from"./iframe-entry-z6qrytv3.js";import{t,n}from"./iframe-entry-f7mqjwpm.js";var F="jx-color-field",x=0,L=new WeakMap;function T(e){let o=e.currentTarget;return o instanceof HTMLElement&&o.localName===F?o:null}function S(e){let o=e.currentTarget??e.target;return o instanceof Element?o.closest(F):null}function H(e){return e.querySelector('[part="picker"]')}function M(e){return h({a:e.alpha===!0?Number(e.opacity)/100:1,h:Number(e.hue),s:Number(e.saturation),v:Number(e.brightness)})}function d(e,...o){for(let i of o)e.dispatchEvent(new Event(i,{bubbles:!0}))}function N(e,o){let i={...o,a:1};e.solid=s(i),e.ink=f(i)}function m(e){let o=M(e);e.value=e.format==="oklch"?b(g(o)):s(o),e.text=e.value,e.invalid=!1,N(e,o)}function y(e){let o=r(String(e.value??""))??r(String(e.resolved??""));if(e.invalid=!1,e.text=String(e.value??""),!o)return;if(N(e,o),s(o)===s(M(e)))return;let i=u(o);if(e.saturation=Number(i.s.toFixed(2)),e.brightness=Number(i.v.toFixed(2)),e.opacity=Number((i.a*100).toFixed(2)),i.s>0&&i.v>0)e.hue=Number(i.h.toFixed(2))}var k="[data-jx-channel]";function w(e){let{target:o}=e;return o instanceof Element?o.closest(k):null}function C(e,o,i){let l=T(o);if(!l||o.target===l)return;let a=w(o),c=a?.dataset.jxChannel;if(!a||!c)return;if(o.stopPropagation(),c==="text"){let p=String(o.target.value??"");e.text=p;let E=r(p);if(i==="input"){e.invalid=!1;return}if(!E){e.invalid=p!=="";return}v(e,E),m(e),d(l,"input","change");return}if(c==="system"||c==="palette"){let p=r(String(o.target.value??""));if(!p)return;v(e,{...p,a:e.alpha===!0?Number(e.opacity)/100:1})}else if(c==="area")e.saturation=Number(a.saturation),e.brightness=Number(a.brightness);else if(c==="hue")e.hue=Number(a.value);else if(c==="opacity")e.opacity=Number(a.value);else return;m(e),d(l,i)}function v(e,o){let i=u(o);if(e.saturation=Number(i.s.toFixed(2)),e.brightness=Number(i.v.toFixed(2)),e.alpha===!0)e.opacity=Number((i.a*100).toFixed(2));if(i.s>0&&i.v>0)e.hue=Number(i.h.toFixed(2))}function D(e,o){C(e,o,"input")}function A(e,o){C(e,o,"change")}function j(e,o){let i=S(o),l=i?H(i):null;if(!i||!l||e.disabled===!0)return;if(e.expanded===!0){n(l);return}let a=i.getBoundingClientRect();l.x=Math.round(a.left),l.y=Math.round(a.bottom),t(l,o.currentTarget instanceof Element?o.currentTarget:i)}function P(e){return e===!0&&typeof globalThis.EyeDropper==="function"}function I(e,o){let i=S(o),l=globalThis.EyeDropper;if(!i||!l||e.disabled===!0)return Promise.resolve();return new l().open().then((a)=>{let c=r(String(a?.sRGBHex??""));if(!c)return;v(e,c),m(e),d(i,"input","change")}).catch(()=>{})}function B(e,o){let i=T(o);if(!i)return;L.set(e,i),x+=1,e.uid=`jx-color-field-${x}`,y(e),new MutationObserver(()=>{y(e)}).observe(i,{attributeFilter:["data-resolved","data-value"],attributes:!0});let a=H(i);if(a)a.addEventListener("toggle",(c)=>{e.expanded=c.newState==="open"})}export{P as eyeDropperAvailable,I as onEyeDropper,A as onFieldChange,D as onFieldInput,B as onFieldMount,j as onOpenPicker,y as syncFromValue};
2
-
3
- //# debugId=9CC9B36A50642F1464756E2164756E21
4
- //# sourceMappingURL=color-field-embq5ctg.js.map
@@ -1,4 +0,0 @@
1
- import{e,i,E,r,s,u,h,g,v,b,x,y,f,C}from"./iframe-entry-z6qrytv3.js";export{e as clamp,y as contrastRatio,s as formatHex,b as formatOklch,h as hsvToRgb,C as inkOn,v as oklchToSrgb,r as parseColor,E as parseHex,f as preferredInk,x as relativeLuminance,u as rgbToHsv,i as snapToStep,g as srgbToOklch};
2
-
3
- //# debugId=47ECE90DEF1147ED64756E2164756E21
4
- //# sourceMappingURL=color-fpezvnkt.js.map
@@ -1,4 +0,0 @@
1
- import{i}from"./iframe-entry-z6qrytv3.js";var p="jx-color-slider",b={ArrowDown:-1,ArrowLeft:-1,ArrowRight:1,ArrowUp:1};function u(e){let n=e.currentTarget;return n instanceof HTMLElement&&n.localName===p?n:null}function d(e){return e.querySelector('input[part="input"]')}function l(e,...n){for(let t of n)e.dispatchEvent(new Event(t,{bubbles:!0}))}function f(e){let n=Number.isFinite(Number(e.min))?Number(e.min):0,t=Number(e.maxValue),r=Number(e.step);return{max:Number.isFinite(t)&&t>n?t:360,min:n,step:Number.isFinite(r)&&r>0?r:1}}function g(e,n){let t=u(n);if(!t||n.target===t)return;n.stopPropagation(),e.value=Number(n.target.value),l(t,"input")}function E(e,n){let t=u(n);if(!t||n.target===t)return;n.stopPropagation(),e.value=Number(n.target.value),l(t,"change")}function N(e,n){let t=u(n),r=b[n.key];if(!t||!r||!n.shiftKey||e.disabled===!0)return;n.preventDefault();let{max:s,min:c,step:a}=f(e),o=i(Number(e.value)+r*a*10,a,c,s);if(o===Number(e.value))return;e.value=o;let m=d(t);if(m)m.value=String(o);l(t,"input","change")}export{E as onSliderChange,g as onSliderInput,N as onSliderKeydown};
2
-
3
- //# debugId=628A064C8111904B64756E2164756E21
4
- //# sourceMappingURL=color-slider-1qmw7wqy.js.map
@@ -1,4 +0,0 @@
1
- import{t,n}from"./iframe-entry-f7mqjwpm.js";var E="jx-combobox",p=0;function b(o){let e=o.currentTarget;return e instanceof Element?e.closest(E):null}function g(o){return o.querySelector('input[part="input"]')}function v(o){return o.querySelector('[part="popup"]')}function a(o){return Array.isArray(o.options)?o.options:[]}function C(o,...e){for(let r of e)o.dispatchEvent(new Event(r,{bubbles:!0}))}function f(o){return o.disabled!==!0&&o.readonly!==!0}function S(o){let e=v(o);if(!e)return;let r=o.getBoundingClientRect(),i=e;i.x=Math.round(r.left),i.y=Math.round(r.bottom),t(e,o)}function c(o){let e=v(o);if(e)n(e)}function x(o,e){if(!f(o)||a(o).length===0)return!1;return S(e),!0}function w(o){let e=a(o),r=s(e,String(o.value??""));return r&&r.disabled!==!0?e.indexOf(r):-1}function m(o,e,r){let i=e<0?r>0?-1:0:e;for(let u of o.keys()){let l=((i+r*(u+1))%o.length+o.length)%o.length;if(o[l]?.disabled!==!0)return l}return-1}function s(o,e){let r=e.toLowerCase();return o.find((i)=>String(i.value).toLowerCase()===r)??null}function d(o,e,r){let i=String(r.value);o.value=i,o.committed=i,o.activeIndex=-1,c(e),g(e)?.focus(),C(e,"input","change")}function T(o,e){p+=1,o.uid=`jx-combobox-${p}`,o.committed=String(o.value??"")}function M(o,e){let r=b(e),i=e.target;if(!r||!(i instanceof HTMLInputElement))return;o.value=i.value,o.activeIndex=-1,x(o,r)}function y(o,e){let r=e.newState==="open";if(o.open=r,!r)o.activeIndex=-1}function H(o,e){let r=b(e);if(!r||!f(o))return;if(o.open===!0){c(r);return}if(x(o,r))o.activeIndex=w(o);g(r)?.focus()}function I(o,e){let r=b(e),i=String(e.detail??""),u=s(a(o),i);if(!r||!u)return;d(o,r,u)}function h(o,e){let r=b(e);if(!r)return;let i=e.target instanceof HTMLInputElement?e.target:null,u=i?i.value:String(o.value??""),l=s(a(o),u);if(o.allowsCustomValue===!0||u===""||l){o.value=l?String(l.value):u,o.committed=String(o.value),c(r);return}e.stopPropagation(),o.value=String(o.committed??""),C(r,"change")}function k(o,e){let r=b(e);if(!r||e.ctrlKey||e.metaKey)return;let i=a(o),u=Number(o.activeIndex??-1);switch(e.key){case"ArrowDown":{if(!f(o))return;if(o.open!==!0){if(!x(o,r))return;o.activeIndex=e.altKey?w(o):m(i,-1,1)}else if(!e.altKey)o.activeIndex=m(i,u,1);break}case"ArrowUp":{if(!f(o))return;if(e.altKey){c(r);break}if(o.open!==!0){if(!x(o,r))return;o.activeIndex=m(i,-1,-1)}else o.activeIndex=m(i,u,-1);break}case"Enter":{let l=o.open===!0&&u>=0?i[u]:void 0;if(!l){if(o.open===!0)c(r);return}d(o,r,l);break}case"Tab":{let l=o.open===!0&&u>=0?i[u]:void 0;if(l)d(o,r,l);else c(r);return}case"Escape":{if(o.open!==!0)return;c(r),e.stopPropagation();break}default:return}e.preventDefault()}export{c as closeList,g as inputOf,w as landingIndex,T as mountCombobox,m as nextIndex,H as onComboboxButton,h as onComboboxCommit,M as onComboboxInput,k as onComboboxKeydown,I as onComboboxPick,y as onComboboxToggle,S as openList,s as rowFor};
2
-
3
- //# debugId=207D4B954005839664756E2164756E21
4
- //# sourceMappingURL=combobox-773hdzyj.js.map
@@ -1,4 +0,0 @@
1
- import{st,Al,FC,hm,_c}from"./studio-vk9ezads.js";import"./studio-qpqa7vk3.js";export{hm as buildComponentInstance,st as componentRegistry,_c as computeRelativePath,Al as loadComponentRegistry,FC as noteComponentSaved};
2
-
3
- //# debugId=6E27250E48F2B5B164756E2164756E21
4
- //# sourceMappingURL=components-yk3t844e.js.map
@@ -1,4 +0,0 @@
1
- import{bb,jw,R1,$1,D1,A1}from"./studio-g5fmf0c1.js";import"./studio-qvasen3f.js";import"./studio-skprc6ef.js";import"./studio-8p51gq2h.js";import"./studio-9ft45c83.js";import"./studio-a2138x5k.js";import"./studio-ghrhy2y7.js";import"./studio-bmn4mn9j.js";import"./studio-19x1c75w.js";import"./studio-47y6fbpf.js";import"./studio-q1h883bt.js";import"./studio-vk9ezads.js";import"./studio-5g4t8v6w.js";import"./studio-4m3826v2.js";import"./studio-grawhey1.js";import"./studio-3bpdkq2s.js";import"./studio-3aey7dd3.js";import"./studio-z8w183sh.js";import"./studio-qbj760tx.js";import"./studio-tt2nactf.js";import"./studio-qpqa7vk3.js";import"./studio-e7xxa0sj.js";import"./studio-5g0ag7c0.js";import"./studio-geq1ea6k.js";import"./studio-g7nse7zb.js";import"./studio-ery42sqr.js";import"./studio-vzacdfsc.js";export{jw as collectionDirs,bb as collectionInfo,D1 as createCollectionSource,A1 as createPagesSource,R1 as listCollectionEntryIds,$1 as reloadDraftAwareGrids};
2
-
3
- //# debugId=26D0A0D38E2A821E64756E2164756E21
4
- //# sourceMappingURL=content-source-bawmyc09.js.map
@@ -1,4 +0,0 @@
1
- import{v}from"./studio-vzacdfsc.js";import"./studio-z8w183sh.js";import{Le,q,u}from"./studio-3aey7dd3.js";import"./studio-qpqa7vk3.js";import"./studio-tt2nactf.js";import"./studio-5g0ag7c0.js";import{un,rn,Fm}from"./studio-geq1ea6k.js";import"./studio-g7nse7zb.js";import{rt,zt,T,R,An,Ct}from"./studio-e7xxa0sj.js";import"./studio-ery42sqr.js";import{ja}from"./studio-mpb04y1d.js";import"./studio-n17mty64.js";import"./studio-k1wvtp03.js";import"./studio-bmn4mn9j.js";import"./studio-5g4t8v6w.js";import"./studio-q1h883bt.js";import"./studio-vk9ezads.js";import"./studio-3bpdkq2s.js";import"./studio-47y6fbpf.js";import"./studio-qbj760tx.js";import"./studio-pxg4ap1e.js";import"./studio-ar8jcf2y.js";import"./studio-4m3826v2.js";import"./studio-19x1c75w.js";import"./studio-954ds834.js";import{Cb}from"./studio-8p51gq2h.js";import"./studio-grawhey1.js";import{K,_o,ht,_n}from"./studio-wgh5kxpj.js";var m={$schema:"https://jxsuite.com/schema/v1",$id:"StudioConvertRepeater",$description:'Repeat…: the dialog that turns the selected element into an `$prototype: "Array"` template. One `jx-dialog`, so the platform owns modality, Escape, the backdrop and focus restoration — which is what retired the `sp-dialog-wrapper` this surface used to open through its bare `open` attribute, and the hand-rolled `requestAnimationFrame` focus move that had to follow it. Three questions in one form: which state definition holds the items, and optionally which function filters and which sorts. The name field appears only when the answer to the first is "Create new…", because a definition that already exists needs no name. Nothing here knows what makes a definition an array — `editor/convert-to-repeater.ts` asks the plugin schemas, keeps the refusals and writes the repeater — and it hands over rows that are already strings.',tagName:"jx-dialog",$props:{headline:"Repeat…",confirmLabel:"Create Repeater",cancelLabel:"Cancel",size:"sm"},attributes:{part:"convert-repeater"},onconfirm:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/confirm"},value:[]}]},oncancel:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/closed"},value:[]}]},onclose:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/closed"},value:[]}]},style:{$description:"There is no stylesheet to transcribe: the lit version carried one inline `display:flex;flex-direction:column;gap:12px` on a wrapper div and nothing else, because `sp-field-label` and `sp-dialog-wrapper` drew the rest. Both of those are gone — the label is `jx-field`'s, which actually NAMES the control it wraps rather than sitting beside it, and the box is the dialog's — so the whole of this block is the one gap that separated the rows, said in the kit's scale instead of in the twelve pixels somebody typed.",'& [part="form"]':{display:"flex",flexDirection:"column",gap:"var(--jx-space-4)"},'& [part="new-slot"], & [part="functions-slot"], & [part="functions"]':{$description:"A branch host and the pair inside it are structure rather than layout: `display: contents` puts the rows they carry straight into the form's own column, so one gap rule spaces every row whether it is drawn or not.",display:"contents"}},children:[{tagName:"div",attributes:{part:"form"},children:[{tagName:"jx-field",attributes:{part:"source-row"},$props:{span:!0,label:"Items source"},children:[{tagName:"jx-select",attributes:{part:"source"},$props:{size:"sm",options:{$ref:"#/state/sourceOptions"},value:{$ref:"#/state/source"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickSource"},value:[{$ref:"event#/target/value"}]}]}}]},{tagName:"div",attributes:{part:"new-slot",role:"none"},$switch:{$ref:"#/state/creating"},cases:{true:{tagName:"jx-field",attributes:{part:"new-row"},$props:{span:!0,label:"New definition name",invalid:{$ref:"#/state/invalid"}},children:[{tagName:"jx-textfield",attributes:{part:"new-name"},$props:{size:"sm",placeholder:"myItems",value:{$ref:"#/state/newName"},invalid:{$ref:"#/state/invalid"},error:{$ref:"#/state/error"}},oninput:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/setName"},value:[{$ref:"event#/target/value"}]}]},onkeydown:{$prototype:"Function",body:[{$switch:{$ref:"event#/key"},cases:{Enter:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/confirm"},value:[]}]}}]}}]}}},{tagName:"div",attributes:{part:"functions-slot",role:"none"},$switch:{$ref:"#/state/hasFunctions"},cases:{true:{tagName:"div",attributes:{part:"functions",role:"none"},children:[{tagName:"jx-field",attributes:{part:"filter-row"},$props:{span:!0,label:"Filter (optional)"},children:[{tagName:"jx-select",attributes:{part:"filter"},$props:{size:"sm",options:{$ref:"#/state/functionOptions"},value:{$ref:"#/state/filter"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickFilter"},value:[{$ref:"event#/target/value"}]}]}}]},{tagName:"jx-field",attributes:{part:"sort-row"},$props:{span:!0,label:"Sort (optional)"},children:[{tagName:"jx-select",attributes:{part:"sort"},$props:{size:"sm",options:{$ref:"#/state/functionOptions"},value:{$ref:"#/state/sort"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickSort"},value:[{$ref:"event#/target/value"}]}]}}]}]}}}]}]};T("convert-repeater",m);var d="__new__";function h(r){return{...r,creating:r.source===d,functionOptions:[{label:"None",value:""},...r.functions.map((o)=>({label:o,value:o}))],hasFunctions:r.functions.length>0,invalid:r.error!=="",sourceOptions:[...r.sources.map((o)=>({label:o,value:o})),{label:"Create new…",value:d}]}}function g(r){let o=document.createElement("div");o.style.pointerEvents="auto",o.setAttribute(rt,zt("dialog","convert-repeater")),r.layer.append(o);let l=!1,i=()=>{if(l)return;l=!0,r.onClosed()},e=v({...h(r.view),closed:i,confirm:()=>{r.onConfirm()},pickFilter:(t)=>{e.filter=t,r.onPickFilter(t)},pickSort:(t)=>{e.sort=t,r.onPickSort(t)},pickSource:(t)=>{e.source=t,r.onPickSource(t)},setName:(t)=>{e.newName=t,r.onName(t)}}),s=null,c=()=>{setTimeout(()=>{let t=s?.root;if(l||!(t instanceof HTMLElement))return;let a=t.querySelector('jx-textfield[part="new-name"]');if(a)Fm(a,"all")},0)},f=R("convert-repeater",e,o).then(async(t)=>{s=t;let a=t.root;if(l)return t.dispose(),a;if(await An(a),l)return a;if(un(a),e.creating)c();return a});return{close(){let t=s?.root;if(t instanceof HTMLElement)rn(t);s?.dispose(),s=null,o.remove(),i()},host:o,ready:f,update(t){let a=h(t),p=a.creating&&!e.creating,n=a.error!==""&&a.error===e.error;if(Object.assign(e,n?{...a,error:""}:a),n){let y=a.error;queueMicrotask(()=>{e.error=y})}if(p)c()}}}var b=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/;async function J(){let r=u.value,o=Le(r?.session.selection);if(!r||!o||o.length<2)return;if(!K(r.doc.document,o))return;let i=r.doc.document.state||{},e=await C(i);if(!e)return;q(r,(s)=>{let c=s.doc.document;if(e.newDef){if(!c.state)c.state={};c.state[e.newDef.name]={default:[],type:"array"}}let f=ht(o);if(!f)return;let t=_n(o),a=K(c,f);if(!a?.children)return;let p=_o(a)[t],n={$prototype:"Array",items:e.items,map:p};if(e.filter)n.filter=e.filter;if(e.sort)n.sort=e.sort;a.children[t]=n})}async function x(r){let o=Object.entries(r).filter(([,i])=>{let e=i;return e?.type==="array"||Array.isArray(e?.default)||e?.$prototype==="Array"}).map(([i])=>i),l=u.value?.documentPath;for(let[i,e]of Object.entries(r)){let s=e;if(!s?.$prototype||s.$prototype==="Function"||s.$prototype==="Array")continue;if(o.includes(i))continue;if((await Cb({...s.$src!=null&&{$src:s.$src},$prototype:s.$prototype},{...l!=null&&{documentPath:l}}))?.returns?.type==="array")o.push(i)}return o}async function C(r){let o=await x(r),l=Object.entries(r).filter(([,i])=>ja(i)==="function").map(([i])=>i);return new Promise((i)=>{let e={error:"",filter:"",functions:l,newName:"",sort:"",source:o[0]??d,sources:o},s=!1,c=(n)=>{if(s)return;s=!0,p.close(),i(n)},f=(n)=>{e.error=n,p.update(e)},t=()=>({...e.filter&&{filter:{$ref:`#/state/${e.filter}`}},...e.sort&&{sort:{$ref:`#/state/${e.sort}`}}}),a=()=>{if(e.source!==d){c({items:{$ref:`#/state/${e.source}`},...t()});return}let n=e.newName.trim();if(!n){f("Enter a name for the new state definition.");return}if(r[n]){f(`"${n}" already exists.`);return}if(!b.test(n)){f("Invalid identifier name.");return}c({items:{$ref:`#/state/${n}`},...t(),newDef:{name:n}})},p=g({layer:Ct("dialog"),onClosed:()=>c(null),onConfirm:a,onName:(n)=>{e.newName=n,e.error="",p.update(e)},onPickFilter:(n)=>{e.filter=n,p.update(e)},onPickSort:(n)=>{e.sort=n,p.update(e)},onPickSource:(n)=>{e.source=n,e.error="",p.update(e)},view:e})})}export{J as convertToRepeater};
2
-
3
- //# debugId=AB5535ABE3D7079C64756E2164756E21
4
- //# sourceMappingURL=convert-to-repeater-7wns8kf1.js.map
@@ -1,4 +0,0 @@
1
- function o(n){let e=n.currentTarget;return e instanceof Element?e.closest("jx-dialog"):null}function a(n){return n.querySelector('dialog[part="dialog"]')}function i(n,e){n?.dispatchEvent(new CustomEvent(e,{bubbles:!0}))}function c(n,e){if(typeof ToggleEvent<"u")return;let t=new Event("toggle",{bubbles:!1});Object.assign(t,{newState:e,oldState:e==="open"?"closed":"open"}),n.dispatchEvent(t)}function r(n){let e=a(n);if(!e||e.open)return;e.showModal(),c(e,"open")}function s(n,e){let t=a(n);if(!t?.open)return;t.close(e),c(t,"closed")}function d(n,e){n.open=e.newState==="open"}function f(n,e){n.open=!1,i(o(e),"cancel")}function g(n,e){n.open=!1,i(o(e),"close")}function u(n,e){let t=o(e),l=e.command??"";if(!t)return;if(l==="--show")r(t);else if(l==="--close")s(t)}function v(n,e){i(o(e),"confirm")}function p(n,e){i(o(e),"secondary")}function m(n,e){let t=o(e);if(i(t,"cancel"),t)s(t,"cancel")}export{s as close,m as onCancelClick,u as onCommand,v as onConfirm,f as onNativeCancel,g as onNativeClose,p as onSecondary,d as onToggle,r as showModal};
2
-
3
- //# debugId=DC8F88A6A3709E1B64756E2164756E21
4
- //# sourceMappingURL=dialog-mtm9fq5t.js.map
@@ -1,4 +0,0 @@
1
- import{r$,Wh,s$,a$,l$,bu,c$,d$,Ns,Hy,ac,u$,Tn,pe}from"./studio-zscd9ty4.js";export{r$ as CancellationTokenSource,Wh as Emitter,s$ as KeyCode,a$ as KeyMod,Ns as MarkerSeverity,Hy as MarkerTag,l$ as Position,bu as Range,c$ as Selection,d$ as SelectionDirection,u$ as Token,ac as Uri,Tn as editor,pe as languages};
2
-
3
- //# debugId=1ADE7C7E43EBB53064756E2164756E21
4
- //# sourceMappingURL=editor-6sc8nacq.js.map
@@ -1,4 +0,0 @@
1
- import{Tw,w1}from"./studio-h9c4p2tx.js";import"./studio-jyzj5cxs.js";import"./studio-n17mty64.js";import"./studio-pxg4ap1e.js";import"./studio-g5fmf0c1.js";import"./studio-qvasen3f.js";import"./studio-skprc6ef.js";import"./studio-8p51gq2h.js";import"./studio-9ft45c83.js";import"./studio-a2138x5k.js";import"./studio-ghrhy2y7.js";import"./studio-bmn4mn9j.js";import"./studio-19x1c75w.js";import"./studio-47y6fbpf.js";import"./studio-q1h883bt.js";import"./studio-vk9ezads.js";import"./studio-5g4t8v6w.js";import"./studio-4m3826v2.js";import"./studio-grawhey1.js";import"./studio-3bpdkq2s.js";import"./studio-3aey7dd3.js";import"./studio-z8w183sh.js";import"./studio-qbj760tx.js";import"./studio-tt2nactf.js";import"./studio-qpqa7vk3.js";import"./studio-e7xxa0sj.js";import"./studio-5g0ag7c0.js";import"./studio-geq1ea6k.js";import"./studio-g7nse7zb.js";import"./studio-ery42sqr.js";import"./studio-vzacdfsc.js";import"./studio-k1wvtp03.js";export{Tw as createEntry,w1 as registerContentCommands};
2
-
3
- //# debugId=E50DC71C9BED395364756E2164756E21
4
- //# sourceMappingURL=entry-commands-8ay9fh81.js.map
@@ -1,4 +0,0 @@
1
- import"./studio-qpqa7vk3.js";import{qt,Fd,Lp}from"./studio-tt2nactf.js";import{cs,C1}from"./studio-4nx2dj1g.js";import"./studio-ery42sqr.js";import{v}from"./studio-vzacdfsc.js";import"./studio-z8w183sh.js";import"./studio-3aey7dd3.js";import"./studio-geq1ea6k.js";import"./studio-g7nse7zb.js";import"./studio-n17mty64.js";import"./studio-5g0ag7c0.js";import{T,R,bs,Ct}from"./studio-e7xxa0sj.js";import"./studio-pxg4ap1e.js";import"./studio-k1wvtp03.js";import"./studio-ecaz25vk.js";import{_1}from"./studio-tyasmc39.js";import{$w,TE,k1,PE}from"./studio-8f87n763.js";import"./studio-19x1c75w.js";import"./studio-3bpdkq2s.js";import"./studio-skprc6ef.js";import"./studio-ghrhy2y7.js";import"./studio-5g4t8v6w.js";import"./studio-q1h883bt.js";import"./studio-a2138x5k.js";import"./studio-9ft45c83.js";import"./studio-bmn4mn9j.js";import"./studio-g5fmf0c1.js";import"./studio-4m3826v2.js";import"./studio-vk9ezads.js";import"./studio-47y6fbpf.js";import"./studio-qbj760tx.js";import"./studio-qvasen3f.js";import"./studio-8p51gq2h.js";import"./studio-grawhey1.js";var m={$schema:"https://jxsuite.com/schema/v1",$id:"StudioDataActions",$description:"The actions row a data-domain settings section grows: test a connection, push the schema, open the rows as a grid. It is an ISLAND inside `surfaces/settings-contributed.json` — the generic contributed-section renderer stays extension-agnostic and draws an empty host, and `panels/data-grid.ts` mounts this into it — which is the seam that lets the data surface contribute verbs without the settings machinery learning what a connection is.",tagName:"div",attributes:{part:"data-actions"},style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"var(--jx-space-2)",fontFamily:"var(--jx-font-sans)",fontSize:"var(--jx-text-md)",'& [part="result"]':{fontSize:"var(--jx-text-sm)",color:"var(--fg-dim)"},'& [part="result"][data-ok="false"]':{color:"var(--danger)"},'& [part="result"][data-ok="true"]':{color:"var(--success, var(--accent))"}},children:[{tagName:"span",attributes:{part:"test-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/testState"},cases:{shown:{tagName:"jx-button",attributes:{part:"test"},$props:{variant:"secondary",size:"sm",disabled:{$ref:"#/state/testDisabled"}},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/test"},value:[]}]},children:[{tagName:"span",textContent:"${state.testLabel}"}]}}},{tagName:"jx-button",attributes:{part:"push"},$props:{variant:"secondary",size:"sm"},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/push"},value:[]}]},children:[{tagName:"span",textContent:"Push Schema"}]},{tagName:"jx-button",attributes:{part:"grid"},$props:{variant:"secondary",size:"sm"},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/openGrid"},value:[]}]},children:[{tagName:"span",textContent:"Open Data Grid"}]},{tagName:"span",attributes:{part:"result-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/resultState"},cases:{shown:{$description:"The last test's verdict, and a live region because it arrives after the press that asked for it.",tagName:"span",attributes:{part:"result",role:"status","data-ok":"${state.resultOk}",title:"${state.resultTitle}"},textContent:"${state.resultText}"}}}]};T("data-actions",m);function f(t,n){t.testState=n.testState,t.testLabel=n.testLabel,t.testDisabled=n.testDisabled,t.resultState=n.resultState,t.resultOk=n.resultOk,t.resultText=n.resultText,t.resultTitle=n.resultTitle}function h(t,n,e){let a=v({openGrid:e.openGrid,push:e.push,resultOk:"false",resultState:"hidden",resultText:"",resultTitle:"",test:e.test,testDisabled:!1,testLabel:"Test Connection",testState:"hidden"});f(a,n);let s=null,i=!1,o=R("data-actions",a,t).then((r)=>{if(i)return r.dispose(),r.root;return s=r,r.root});return{dispose(){i=!0,s?.dispose(),s=null},ready:o,update:(r)=>f(a,r)}}var g={$schema:"https://jxsuite.com/schema/v1",$id:"StudioPushPlan",$description:"What pushing the schema would do, or what it did. The dry run is the whole point of the surface: a push rewrites a live database's shape, so the plan is read before the apply, and the confirm dialog around this document is the one that gates it. The ISLAND of `ui/layers.ts`'s confirm dialog rather than a dialog of its own (studio-ui-guidelines.md §12.5).",tagName:"div",attributes:{part:"plan"},style:{display:"flex",flexDirection:"column",gap:"var(--jx-space-2)",minWidth:"0",fontFamily:"var(--jx-font-sans)",fontSize:"var(--jx-text-md)",color:"var(--fg)",'& [part="steps"]':{margin:"0",padding:"0",listStyle:"none",display:"flex",flexDirection:"column",gap:"2px",maxHeight:"40vh",overflowY:"auto"},'& [part="step"]':{fontFamily:"var(--font-mono)",fontSize:"var(--jx-text-sm)",padding:"2px var(--jx-space-2)",borderLeft:"2px solid var(--border)"},'& [part="step"][data-kind="drop"]':{borderLeftColor:"var(--danger)"},'& [part="step"][data-kind="create"]':{borderLeftColor:"var(--success, var(--accent))"},'& [part="warning"]':{margin:"0",fontSize:"var(--jx-text-sm)",color:"var(--warning, var(--fg-dim))"},'& [part="failure"]':{$description:'`failure` rather than `error`: every kit field draws a permanent, empty `[part="error"]` of its own, and the kit is light DOM, so a rule on that name here would reach any field the plan ever holds.',margin:"0",fontSize:"var(--jx-text-sm)",color:"var(--danger)"}},children:[{tagName:"ul",attributes:{part:"steps"},children:[{$prototype:"Array",items:{$ref:"#/state/steps"},key:{$ref:"$map/item/key"},map:{tagName:"li",attributes:{part:"step","data-kind":"${$map.item.kind}"},textContent:"${$map.item.summary}"}}]},{$prototype:"Array",items:{$ref:"#/state/warnings"},key:{$ref:"$map/item/key"},map:{tagName:"p",attributes:{part:"warning"},textContent:"${$map.item.text}"}},{$prototype:"Array",items:{$ref:"#/state/errors"},key:{$ref:"$map/item/key"},map:{tagName:"p",attributes:{part:"failure",role:"alert"},textContent:"${$map.item.text}"}}]};T("push-plan",g);function y(t,n){let e=v({errors:n.errors,steps:n.steps,warnings:n.warnings}),a=null,s=!1,i=R("push-plan",e,t).then((o)=>{if(s)return o.dispose(),o.root;return a=o,o.root});return{dispose(){s=!0,a?.dispose(),a=null},ready:i,update(o){e.steps=o.steps,e.warnings=o.warnings,e.errors=o.errors}}}var l=null;function S(){let t=l;l=null,t?.plan?.dispose(),t?.handle.close()}function x(t,n){return t.map((e,a)=>({key:`${n}:${a}`,text:e}))}function w(t){let n=t.phase==="done"?t.result:t.dryRun;return{errors:x(n?.errors??[],"error"),steps:(n?.plan??[]).map((e,a)=>({key:`${e.kind}:${a}`,kind:e.kind,summary:e.summary})),warnings:x(n?.warnings??[],"warning")}}function C(t){if(t.phase==="loading")return"Compiling plan…";if(t.phase==="applying")return"Applying…";if(t.phase==="done")return t.result?.applied?"Schema applied.":"Push failed.";let n=t.dryRun?.plan.length??0,e=t.dryRun?.errors?.length??0;return n===0&&e===0?"Nothing to push — the schema is up to date.":""}function d(){let t=l;if(!t)return;let n=t.phase==="confirm"&&(t.dryRun?.plan.length??0)>0;t.handle.update({cancelLabel:t.phase==="done"?"Close":"Cancel",confirmLabel:n?"Apply":"",message:C(t)}),t.plan?.update(w(t))}async function H(t,n){if(l)return;let e={connection:t,dryRun:null,handle:null,onDone:n,phase:"loading",plan:null,result:null};e.handle=bs({cancelLabel:"Cancel",confirmLabel:"",headline:t?`Push Schema — ${t}`:"Push Schema",island:(s)=>{e.plan=y(s,w(e))},layer:Ct("dialog"),message:"Compiling plan…",onCancel:S,onClosed:()=>{if(l===e)S()},onConfirm:()=>{L()},region:"data/push"}),l=e;let a=await k1({dryRun:!0,...t===void 0?{}:{connection:t}});if(l!==e)return;e.dryRun=a,e.phase="confirm",d()}async function L(){let t=l;if(!t)return;t.phase="applying",d();let n=await k1(t.connection===void 0?{}:{connection:t.connection});if(l!==t)return;t.result=n,t.phase="done",d(),t.onDone()}var u={pushing:!1,testResult:null,testing:null},b=new Map;function P(t,n){let{testResult:e}=u;return{resultOk:e?.ok?"true":"false",resultState:e?"shown":"hidden",resultText:e?`${e.connection}: ${e.ok?"connected":e.error??"failed"}`:"",resultTitle:e?.error??"",testDisabled:!n||u.testing!==null,testLabel:u.testing?"Testing…":"Test Connection",testState:t==="connections"?"shown":"hidden"}}function D(t){if(t!=="connections"&&t!=="data"||!$w())return null;return(n,e)=>N(n,t,e)}async function j(t,n){u.testing=t,u.testResult=null,n();let e=await TE(t);u.testing=null,u.testResult={...e,connection:t},n()}function N(t,n,e){let{rerender:a,selected:s}=e,i=b.get(t);if(i){i.update(P(n,s));return}let o=()=>n==="connections"?e.selected??void 0:void 0;b.set(t,h(t,P(n,s),{openGrid:()=>{PE()},push:()=>{H(o(),a)},test:()=>{let r=e.selected;if(r)j(r,a)}}))}var E=100;function M(t){let e=t.studio?.settings;if(!e)return null;let{key:a}=t.project,s=e.layout??"form",i=t.entrySchema??{},o=s==="map"?typeof i.additionalProperties==="object"?i.additionalProperties:{}:i,r=e.label??t.project.title??a;return{contribution:{entrySchema:o,key:a,settings:{...e.entry===void 0?{}:{entry:e.entry},...e.layout===void 0?{}:{layout:e.layout}},title:r},icon:e.icon,key:a,label:r,order:e.order??E}}var p=new Set,c=null;function ot(){return c??Promise.resolve()}function rt(){return c??=V().finally(()=>{c=null}),c}async function V(){let[t]=await Promise.all([Fd(),qt()]),n=new Set;for(let e of t)for(let a of e.contributions){let s=M(a);if(!s)continue;let{contribution:i}=s;cs({icon:s.icon,key:s.key,label:s.label,order:s.order,render:(o)=>{let r=D(s.key);_1(o,i,{formats:Lp(),...r===null?{}:{actions:r}})}}),n.add(s.key)}for(let e of p)if(!n.has(e))C1(e);p.clear();for(let e of n)p.add(e)}export{ot as extensionSectionsReady,rt as syncExtensionSettingsSections};
2
-
3
- //# debugId=269B93150CEA0B1B64756E2164756E21
4
- //# sourceMappingURL=extension-sections-na7rj3nr.js.map
@@ -1,4 +0,0 @@
1
- import{Er,N1,O1,rp,M1,Yf,Zf}from"./studio-qvasen3f.js";import"./studio-skprc6ef.js";import"./studio-8p51gq2h.js";import"./studio-9ft45c83.js";import"./studio-a2138x5k.js";import"./studio-ghrhy2y7.js";import"./studio-bmn4mn9j.js";import"./studio-19x1c75w.js";import"./studio-47y6fbpf.js";import"./studio-q1h883bt.js";import"./studio-vk9ezads.js";import"./studio-5g4t8v6w.js";import"./studio-4m3826v2.js";import"./studio-grawhey1.js";import"./studio-3bpdkq2s.js";import"./studio-3aey7dd3.js";import"./studio-z8w183sh.js";import"./studio-qbj760tx.js";import"./studio-tt2nactf.js";import"./studio-qpqa7vk3.js";import"./studio-e7xxa0sj.js";import"./studio-5g0ag7c0.js";import"./studio-geq1ea6k.js";import"./studio-g7nse7zb.js";import"./studio-ery42sqr.js";import"./studio-vzacdfsc.js";export{Yf as confirmFileDelete,M1 as exportFile,N1 as parseCollabSource,Er as parseSourceForPath,Zf as renamePromptMessage,rp as saveFile,O1 as setDocumentSavedListener};
2
-
3
- //# debugId=62745782F3A869AD64756E2164756E21
4
- //# sourceMappingURL=file-ops-gye0qw56.js.map
@@ -1,4 +0,0 @@
1
- import{To,Q_,e1,t1,mw,Hf,n1,i1,gw,uE,i$,Lo,bw,o1,r1,tp,s1}from"./studio-zxp13sss.js";import"./studio-qqz8e5gk.js";import"./studio-txjjzrsm.js";import"./studio-954ds834.js";import"./studio-jyzj5cxs.js";import"./studio-8f87n763.js";import"./studio-pxg4ap1e.js";import"./studio-g5fmf0c1.js";import"./studio-qvasen3f.js";import"./studio-skprc6ef.js";import"./studio-8p51gq2h.js";import"./studio-9ft45c83.js";import"./studio-a2138x5k.js";import"./studio-ghrhy2y7.js";import"./studio-bmn4mn9j.js";import"./studio-19x1c75w.js";import"./studio-47y6fbpf.js";import"./studio-q1h883bt.js";import"./studio-vk9ezads.js";import"./studio-5g4t8v6w.js";import"./studio-4m3826v2.js";import"./studio-grawhey1.js";import"./studio-3bpdkq2s.js";import"./studio-3aey7dd3.js";import"./studio-z8w183sh.js";import"./studio-qbj760tx.js";import"./studio-tt2nactf.js";import"./studio-qpqa7vk3.js";import"./studio-e7xxa0sj.js";import"./studio-5g0ag7c0.js";import"./studio-geq1ea6k.js";import"./studio-g7nse7zb.js";import"./studio-ery42sqr.js";import"./studio-vzacdfsc.js";export{gw as createFileIn,mw as findHomePage,t1 as initProjectRepo,To as loadDirectory,Q_ as loadProject,uE as notifyMoveOutcome,bw as openFileInPane,Lo as openFileInTab,Hf as openLastSessionOrHome,e1 as openProject,i1 as registerFileTreeDnD,s1 as registerFilesPanel,o1 as reloadCleanTab,tp as reloadFileInTab,r1 as reloadTabsIfChanged,n1 as renderFilesTemplate,i$ as settleRename};
2
-
3
- //# debugId=D104D2BFE076639364756E2164756E21
4
- //# sourceMappingURL=files-dmc2xvcq.js.map
@@ -1,4 +0,0 @@
1
- import{qt,Pd,Fd,Dm,Iv,Ka,Lp,Vs,wi,Ip,Zt,Ja,Dr,uk,Us,hk}from"./studio-tt2nactf.js";import"./studio-qpqa7vk3.js";export{Dr as defaultContentFormat,Ja as documentExtensions,Vs as formatByExtension,wi as formatByName,Zt as formatForPath,uk as formatParse,Us as formatSerialize,Iv as getExtensionCatalog,Dm as getExtensions,Lp as getFormats,Fd as loadExtensions,qt as loadFormats,Ip as noFormatError,Ka as refreshExtensionUi,Pd as refreshFormats,hk as splitFormatDocument};
2
-
3
- //# debugId=862B0FD67AE9319E64756E2164756E21
4
- //# sourceMappingURL=format-host-t76b53f8.js.map
@@ -1,4 +0,0 @@
1
- import{Ps,gc,P1}from"./studio-skprc6ef.js";import"./studio-19x1c75w.js";import"./studio-3bpdkq2s.js";import"./studio-3aey7dd3.js";import"./studio-z8w183sh.js";import"./studio-tt2nactf.js";import"./studio-qpqa7vk3.js";import"./studio-g7nse7zb.js";import"./studio-ery42sqr.js";import"./studio-vzacdfsc.js";export{gc as isRecentLocal,Ps as markLocalMutation,P1 as startFsSync};
2
-
3
- //# debugId=163FFA092C8CFF0964756E2164756E21
4
- //# sourceMappingURL=fs-events-cg4tpz06.js.map
@@ -1,4 +0,0 @@
1
- import{uc,c1,_w,Cw,d1,u1,h1,zf,p1}from"./studio-qqz8e5gk.js";import"./studio-txjjzrsm.js";import"./studio-954ds834.js";import"./studio-9ft45c83.js";import"./studio-a2138x5k.js";import"./studio-ghrhy2y7.js";import"./studio-bmn4mn9j.js";import"./studio-19x1c75w.js";import"./studio-47y6fbpf.js";import"./studio-q1h883bt.js";import"./studio-vk9ezads.js";import"./studio-5g4t8v6w.js";import"./studio-4m3826v2.js";import"./studio-grawhey1.js";import"./studio-3bpdkq2s.js";import"./studio-3aey7dd3.js";import"./studio-z8w183sh.js";import"./studio-qbj760tx.js";import"./studio-tt2nactf.js";import"./studio-qpqa7vk3.js";import"./studio-e7xxa0sj.js";import"./studio-5g0ag7c0.js";import"./studio-geq1ea6k.js";import"./studio-g7nse7zb.js";import"./studio-ery42sqr.js";import"./studio-vzacdfsc.js";export{zf as cleanupGitPanel,_w as cloneRepository,d1 as loadDiffForLens,c1 as noteFileSaved,Cw as platformSupportsClone,uc as refreshGitStatus,p1 as registerGitPanel,h1 as registerSourceControlCommands,u1 as renderGitPanel};
2
-
3
- //# debugId=746254B1AE0A156F64756E2164756E21
4
- //# sourceMappingURL=git-panel-yef7bshy.js.map