@jxsuite/studio 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) hide show
  1. package/canvas.html +21 -0
  2. package/dist/chunks/Overlay.dev-qfjzkms8.js +23 -0
  3. package/dist/chunks/{Overlay.dev-cszx7yn5.js.map → Overlay.dev-qfjzkms8.js.map} +1 -1
  4. package/dist/chunks/{adapter-z8fkmbmv.js → adapter-qfnesn5v.js} +2 -2
  5. package/dist/chunks/{cf-settings-mmyv436d.js → cf-settings-73sh5z4p.js} +3 -3
  6. package/dist/chunks/{components-0hzentwq.js → components-2bpqp4mq.js} +5 -7
  7. package/dist/chunks/{components-0hzentwq.js.map → components-2bpqp4mq.js.map} +1 -1
  8. package/dist/chunks/content-source-34gnkbnn.js +38 -0
  9. package/dist/chunks/content-source-34gnkbnn.js.map +9 -0
  10. package/dist/chunks/convert-to-repeater-t8kxre5s.js +258 -0
  11. package/dist/chunks/convert-to-repeater-t8kxre5s.js.map +10 -0
  12. package/dist/chunks/extension-sections-6mqydz35.js +301 -0
  13. package/dist/chunks/extension-sections-6mqydz35.js.map +11 -0
  14. package/dist/chunks/files-8kn321h1.js +70 -0
  15. package/dist/chunks/files-8kn321h1.js.map +9 -0
  16. package/dist/chunks/{format-host-2c188n41.js → format-host-mkwsmt8d.js} +3 -3
  17. package/dist/chunks/git-panel-tjbr191d.js +51 -0
  18. package/dist/chunks/git-panel-tjbr191d.js.map +9 -0
  19. package/dist/chunks/{index-baeg2x3y.js → index-7pxchcce.js} +4 -3
  20. package/dist/chunks/{index-baeg2x3y.js.map → index-7pxchcce.js.map} +3 -3
  21. package/dist/chunks/{jx-validate-qx8degj7.js → jx-validate-v6qgknrs.js} +3 -3
  22. package/dist/chunks/layers-panel-87pb25km.js +58 -0
  23. package/dist/chunks/layers-panel-87pb25km.js.map +9 -0
  24. package/dist/chunks/{monaco-setup-zjdp9zdw.js → monaco-setup-e0yh25j4.js} +4 -75
  25. package/dist/chunks/{monaco-setup-zjdp9zdw.js.map → monaco-setup-e0yh25j4.js.map} +3 -4
  26. package/dist/chunks/publish-panel-m0fcgdrt.js +21 -0
  27. package/dist/chunks/publish-panel-m0fcgdrt.js.map +9 -0
  28. package/dist/chunks/quick-search-rhs6cbsb.js +53 -0
  29. package/dist/chunks/quick-search-rhs6cbsb.js.map +9 -0
  30. package/dist/chunks/right-panel-zpdxd98t.js +37 -0
  31. package/dist/chunks/right-panel-zpdxd98t.js.map +9 -0
  32. package/dist/chunks/section-registry-zmckaxf4.js +30 -0
  33. package/dist/chunks/section-registry-zmckaxf4.js.map +9 -0
  34. package/dist/chunks/sp-overlay.dev-9ran0sfq.js +18 -0
  35. package/dist/chunks/sp-overlay.dev-9ran0sfq.js.map +9 -0
  36. package/dist/chunks/sp-popover.dev-rebmdncr.js +9 -0
  37. package/dist/chunks/sp-popover.dev-rebmdncr.js.map +9 -0
  38. package/dist/chunks/sp-progress-circle.dev-5vkppfkt.js +15 -0
  39. package/dist/chunks/sp-progress-circle.dev-5vkppfkt.js.map +9 -0
  40. package/dist/chunks/sp-tooltip.dev-ykqrg8h5.js +15 -0
  41. package/dist/chunks/sp-tooltip.dev-ykqrg8h5.js.map +9 -0
  42. package/dist/chunks/{sp-tray.dev-pb2fsd65.js → sp-tray.dev-ey59vfh7.js} +10 -8
  43. package/dist/chunks/{sp-tray.dev-pb2fsd65.js.map → sp-tray.dev-ey59vfh7.js.map} +2 -2
  44. package/dist/chunks/{studio-9qr6fq7p.js → studio-0rqqhrdy.js} +10 -378
  45. package/dist/chunks/{studio-9qr6fq7p.js.map → studio-0rqqhrdy.js.map} +4 -14
  46. package/dist/chunks/{studio-5x6tqqec.js → studio-2sj1jj3v.js} +10 -8
  47. package/dist/chunks/{studio-5x6tqqec.js.map → studio-2sj1jj3v.js.map} +2 -2
  48. package/dist/chunks/{studio-h3fw0wn8.js → studio-3fk1ac9z.js} +6 -4
  49. package/dist/chunks/{studio-h3fw0wn8.js.map → studio-3fk1ac9z.js.map} +2 -2
  50. package/dist/chunks/studio-41exgzhq.js +6690 -0
  51. package/dist/chunks/studio-41exgzhq.js.map +38 -0
  52. package/dist/chunks/{studio-7v2bpweq.js → studio-4mqb9a0j.js} +6 -4
  53. package/dist/chunks/{studio-7v2bpweq.js.map → studio-4mqb9a0j.js.map} +2 -2
  54. package/dist/chunks/studio-50k77cca.js +1787 -0
  55. package/dist/chunks/studio-50k77cca.js.map +18 -0
  56. package/dist/chunks/{studio-56v3zwk6.js → studio-6a0h7sne.js} +10 -8
  57. package/dist/chunks/{studio-56v3zwk6.js.map → studio-6a0h7sne.js.map} +2 -2
  58. package/dist/chunks/studio-6f0am8f2.js +53 -0
  59. package/dist/chunks/studio-6f0am8f2.js.map +10 -0
  60. package/dist/chunks/studio-6nmjc5qk.js +7002 -0
  61. package/dist/chunks/studio-6nmjc5qk.js.map +32 -0
  62. package/dist/chunks/studio-7afd21nw.js +67 -0
  63. package/dist/chunks/studio-7afd21nw.js.map +10 -0
  64. package/dist/chunks/{studio-xze4zrs1.js → studio-7bmdvzne.js} +2 -2
  65. package/dist/chunks/studio-7bmdvzne.js.map +10 -0
  66. package/dist/chunks/studio-8jpzqk5s.js +128 -0
  67. package/dist/chunks/studio-8jpzqk5s.js.map +10 -0
  68. package/dist/chunks/studio-94m77tgk.js +1482 -0
  69. package/dist/chunks/studio-94m77tgk.js.map +13 -0
  70. package/dist/chunks/studio-9je6w5sq.js +1000 -0
  71. package/dist/chunks/studio-9je6w5sq.js.map +16 -0
  72. package/dist/chunks/{studio-w7c6kvk7.js → studio-a7pzveq1.js} +2 -2
  73. package/dist/chunks/{studio-97qcgvdn.js → studio-adn0z1k3.js} +14 -8
  74. package/dist/chunks/{studio-97qcgvdn.js.map → studio-adn0z1k3.js.map} +3 -3
  75. package/dist/chunks/{studio-kr88ryr7.js → studio-bsxxx3x2.js} +17 -15
  76. package/dist/chunks/{studio-kr88ryr7.js.map → studio-bsxxx3x2.js.map} +7 -6
  77. package/dist/chunks/studio-bw5dz6km.js +608 -0
  78. package/dist/chunks/studio-bw5dz6km.js.map +21 -0
  79. package/dist/chunks/studio-c6s5getc.js +4232 -0
  80. package/dist/chunks/studio-c6s5getc.js.map +39 -0
  81. package/dist/chunks/studio-cjm7fdjf.js +451 -0
  82. package/dist/chunks/studio-cjm7fdjf.js.map +14 -0
  83. package/dist/chunks/{studio-cx91mnh8.js → studio-ckwz4d3x.js} +53 -53
  84. package/dist/chunks/{studio-cx91mnh8.js.map → studio-ckwz4d3x.js.map} +5 -5
  85. package/dist/chunks/studio-dg7zyt5x.js +28 -0
  86. package/dist/chunks/studio-dg7zyt5x.js.map +10 -0
  87. package/dist/chunks/studio-dzcyvvvz.js +166 -0
  88. package/dist/chunks/studio-dzcyvvvz.js.map +10 -0
  89. package/dist/chunks/{studio-7kqe41sa.js → studio-evkr5d3b.js} +15 -7
  90. package/dist/chunks/{studio-7kqe41sa.js.map → studio-evkr5d3b.js.map} +5 -4
  91. package/dist/chunks/studio-f12h6177.js +411 -0
  92. package/dist/chunks/studio-f12h6177.js.map +13 -0
  93. package/dist/chunks/studio-hbp1s8m9.js +1817 -0
  94. package/dist/chunks/studio-hbp1s8m9.js.map +14 -0
  95. package/dist/chunks/studio-k2sxjph5.js +15295 -0
  96. package/dist/chunks/studio-k2sxjph5.js.map +235 -0
  97. package/dist/chunks/studio-myje51t3.js +385 -0
  98. package/dist/chunks/studio-myje51t3.js.map +12 -0
  99. package/dist/chunks/studio-na6rwzhw.js +353 -0
  100. package/dist/chunks/studio-na6rwzhw.js.map +11 -0
  101. package/dist/chunks/{studio-4k0m4fmp.js → studio-p471gg5n.js} +126 -3
  102. package/dist/chunks/studio-p471gg5n.js.map +14 -0
  103. package/dist/chunks/{studio-9bjwf0d4.js → studio-rgwcpast.js} +5 -46
  104. package/dist/chunks/{studio-9bjwf0d4.js.map → studio-rgwcpast.js.map} +4 -5
  105. package/dist/chunks/{studio-hhj92gcr.js → studio-s519zc99.js} +3 -3
  106. package/dist/chunks/studio-sas7mt3k.js +75 -0
  107. package/dist/chunks/studio-sas7mt3k.js.map +10 -0
  108. package/dist/chunks/studio-t5wqwzdh.js +74 -0
  109. package/dist/chunks/studio-t5wqwzdh.js.map +10 -0
  110. package/dist/chunks/{studio-9qpspwfn.js → studio-temv5bw4.js} +5 -5
  111. package/dist/chunks/{studio-9qpspwfn.js.map → studio-temv5bw4.js.map} +1 -1
  112. package/dist/chunks/{studio-qkvt37c0.js → studio-tr20m8g8.js} +669 -18
  113. package/dist/chunks/studio-tr20m8g8.js.map +9 -0
  114. package/dist/chunks/{studio-ygzav7z5.js → studio-v96qfnww.js} +5514 -4291
  115. package/dist/chunks/studio-v96qfnww.js.map +54 -0
  116. package/dist/chunks/studio-vcetc91k.js +659 -0
  117. package/dist/chunks/studio-vcetc91k.js.map +10 -0
  118. package/dist/chunks/{studio-n9zmpxjg.js → studio-vmymjefp.js} +2972 -4937
  119. package/dist/chunks/studio-vmymjefp.js.map +98 -0
  120. package/dist/chunks/{studio-bghqfmea.js → studio-wwseqyw0.js} +2 -2
  121. package/dist/chunks/studio-x9hmy5kr.js +390 -0
  122. package/dist/chunks/studio-x9hmy5kr.js.map +10 -0
  123. package/dist/chunks/studio-xa0ce0n7.js +335 -0
  124. package/dist/chunks/studio-xa0ce0n7.js.map +10 -0
  125. package/dist/chunks/studio-xm3dbxvn.js +378 -0
  126. package/dist/chunks/studio-xm3dbxvn.js.map +19 -0
  127. package/dist/chunks/{studio-nqw433kv.js → studio-xmvbhg31.js} +2 -2
  128. package/dist/chunks/studio-zv37yrfa.js +1054 -0
  129. package/dist/chunks/studio-zv37yrfa.js.map +13 -0
  130. package/dist/chunks/{ws-client-q7hkz3j9.js → ws-client-654ts66j.js} +6 -4
  131. package/dist/chunks/ws-client-654ts66j.js.map +11 -0
  132. package/dist/iframe-entry.js +668 -230
  133. package/dist/studio.js +23711 -35185
  134. package/index.html +35 -4685
  135. package/package.json +17 -15
  136. package/src/about/about-modal.ts +42 -11
  137. package/src/browse/library-commands.ts +240 -0
  138. package/src/browse/library-layouts.ts +369 -0
  139. package/src/browse/library-model.ts +396 -0
  140. package/src/browse/library-pane.ts +1049 -0
  141. package/src/browse/library-preview.ts +252 -0
  142. package/src/browse/library-source.ts +150 -0
  143. package/src/canvas/canvas-helpers.ts +33 -9
  144. package/src/canvas/canvas-live-render.ts +45 -29
  145. package/src/canvas/canvas-patcher.ts +151 -31
  146. package/src/canvas/canvas-perf.ts +46 -7
  147. package/src/canvas/canvas-render.ts +1092 -220
  148. package/src/canvas/canvas-surface.ts +240 -0
  149. package/src/canvas/canvas-utils.ts +1166 -124
  150. package/src/canvas/iframe-drop.ts +2 -1
  151. package/src/canvas/iframe-entry.ts +241 -4
  152. package/src/canvas/iframe-host.ts +1226 -143
  153. package/src/canvas/iframe-inline-edit.ts +31 -0
  154. package/src/canvas/iframe-interaction.ts +76 -16
  155. package/src/canvas/iframe-keys.ts +107 -45
  156. package/src/canvas/iframe-overlay.ts +38 -1
  157. package/src/canvas/iframe-protocol.ts +137 -2
  158. package/src/canvas/iframe-render.ts +70 -2
  159. package/src/canvas/iframe-slash.ts +6 -0
  160. package/src/canvas/path-mapping.ts +56 -6
  161. package/src/canvas/surface-registry.ts +292 -0
  162. package/src/collab/collab-commands.ts +244 -0
  163. package/src/collab/collab-session.ts +198 -32
  164. package/src/collab/collab-state.ts +28 -2
  165. package/src/collab/presence-chips.ts +100 -9
  166. package/src/commands/active-registry.ts +42 -0
  167. package/src/commands/app-commands.ts +176 -0
  168. package/src/commands/budget.ts +158 -0
  169. package/src/commands/command-args.ts +253 -0
  170. package/src/commands/context.ts +387 -0
  171. package/src/commands/defaults.ts +580 -0
  172. package/src/commands/keymap.ts +571 -0
  173. package/src/commands/levels.ts +345 -0
  174. package/src/commands/live-context.ts +193 -0
  175. package/src/commands/reference.ts +227 -0
  176. package/src/commands/registry.ts +293 -0
  177. package/src/component-props.ts +3 -2
  178. package/src/content/draft-state.ts +106 -0
  179. package/src/content/entry-commands.ts +282 -0
  180. package/src/content/entry-editor.ts +327 -0
  181. package/src/content/entry-fields.ts +116 -0
  182. package/src/content/entry-model.ts +175 -0
  183. package/src/editor/canvas-context-menu.ts +17 -11
  184. package/src/editor/canvas-slash-bridge.ts +11 -4
  185. package/src/editor/context-menu.ts +804 -204
  186. package/src/editor/convert-to-component.ts +31 -10
  187. package/src/editor/convert-to-repeater.ts +3 -2
  188. package/src/editor/inline-edit-apply.ts +5 -5
  189. package/src/editor/inline-edit.ts +86 -50
  190. package/src/editor/insert-zone-action.ts +1 -1
  191. package/src/editor/shortcuts.ts +1043 -329
  192. package/src/editor/slash-menu.ts +1 -0
  193. package/src/files/elements.ts +166 -0
  194. package/src/files/file-ops.ts +178 -31
  195. package/src/files/files.ts +898 -268
  196. package/src/files/fs-events.ts +21 -0
  197. package/src/files/media-meta.ts +203 -0
  198. package/src/files/media-paths.ts +141 -0
  199. package/src/files/media-upload.ts +7 -3
  200. package/src/files/media-usage.ts +189 -0
  201. package/src/github/github-auth.ts +235 -33
  202. package/src/github/github-publish.ts +80 -21
  203. package/src/grid/grid-controller.ts +152 -12
  204. package/src/grid/grid-layout.ts +225 -20
  205. package/src/grid/grid-open.ts +120 -0
  206. package/src/grid/grid-panel.ts +554 -39
  207. package/src/grid/grid-source.ts +27 -1
  208. package/src/grid/redirects-grid.ts +599 -0
  209. package/src/grid/redirects.ts +398 -0
  210. package/src/grid/sources/content-source.ts +108 -2
  211. package/src/i18n/i18n-commands.ts +322 -0
  212. package/src/new-project/add-repo-modal.ts +8 -10
  213. package/src/new-project/import-tab.ts +34 -9
  214. package/src/new-project/location-fields.ts +9 -1
  215. package/src/new-project/new-project-modal.ts +270 -262
  216. package/src/packages/jxsuite-update.ts +97 -48
  217. package/src/packages/pull-package-sync.ts +18 -9
  218. package/src/page-params.ts +2 -1
  219. package/src/panels/activity-bar.ts +152 -91
  220. package/src/panels/activity-panel.ts +481 -0
  221. package/src/panels/ai-chat/chat-markdown.ts +8 -3
  222. package/src/panels/ai-chat/chat-view.ts +245 -18
  223. package/src/panels/ai-chat/composer.ts +31 -5
  224. package/src/panels/ai-chat/sessions-view.ts +17 -10
  225. package/src/panels/ai-panel.ts +279 -120
  226. package/src/panels/block-action-bar.ts +1115 -224
  227. package/src/panels/bottom-dock.ts +337 -0
  228. package/src/panels/canvas-dnd-bridge.ts +37 -8
  229. package/src/panels/chat-panel.ts +29 -12
  230. package/src/panels/data-explorer.ts +254 -112
  231. package/src/panels/data-grid.ts +10 -4
  232. package/src/panels/dnd.ts +28 -51
  233. package/src/panels/editors.ts +434 -107
  234. package/src/panels/elements-panel.ts +66 -2
  235. package/src/panels/empty-state.ts +112 -0
  236. package/src/panels/events-panel.ts +596 -82
  237. package/src/panels/formula-workspace.ts +408 -218
  238. package/src/panels/frontmatter-fields.ts +51 -10
  239. package/src/panels/frontmatter-panel.ts +357 -79
  240. package/src/panels/git-panel.ts +375 -164
  241. package/src/panels/head-panel.ts +791 -85
  242. package/src/panels/i18n-panel.ts +592 -0
  243. package/src/panels/imports-panel.ts +95 -85
  244. package/src/panels/jump-bar.ts +584 -0
  245. package/src/panels/layers-panel.ts +1106 -328
  246. package/src/panels/left-panel.ts +109 -204
  247. package/src/panels/navigator-panels.ts +131 -0
  248. package/src/panels/overlays.ts +7 -2
  249. package/src/panels/pane-context.ts +1477 -0
  250. package/src/panels/pane-grid.ts +406 -0
  251. package/src/panels/panel-registry.ts +340 -0
  252. package/src/panels/panel-scheduler.ts +75 -0
  253. package/src/panels/problems-panel.ts +234 -0
  254. package/src/panels/properties-panel.ts +946 -1139
  255. package/src/panels/provenance.ts +258 -0
  256. package/src/panels/quick-search.ts +791 -122
  257. package/src/panels/right-panel.ts +228 -102
  258. package/src/panels/seo-modal.ts +395 -0
  259. package/src/panels/settings-pane.ts +203 -0
  260. package/src/panels/signals-panel.ts +354 -137
  261. package/src/panels/statement-editor.ts +41 -25
  262. package/src/panels/statusbar.ts +342 -106
  263. package/src/panels/style-panel.ts +974 -463
  264. package/src/panels/style-utils.ts +3 -3
  265. package/src/panels/stylebook-doc.ts +4 -2
  266. package/src/panels/stylebook-layers-panel.ts +3 -2
  267. package/src/panels/stylebook-panel.ts +51 -26
  268. package/src/panels/tab-strip.ts +1058 -78
  269. package/src/panels/target-line.ts +274 -0
  270. package/src/panels/toolbar.ts +631 -484
  271. package/src/panels/welcome-screen.ts +301 -198
  272. package/src/platform-errors.ts +26 -3
  273. package/src/platform.ts +96 -2
  274. package/src/platforms/cloud.ts +71 -8
  275. package/src/platforms/devserver.ts +92 -29
  276. package/src/publish/deploy-checklist.ts +383 -0
  277. package/src/publish/pages-service.ts +10 -1
  278. package/src/publish/publish-commands.ts +218 -0
  279. package/src/publish/publish-panel.ts +110 -16
  280. package/src/recent-projects.ts +3 -2
  281. package/src/services/a11y-report.ts +505 -0
  282. package/src/services/ai-models.ts +75 -2
  283. package/src/services/ai-project-tools.ts +29 -10
  284. package/src/services/ai-system-prompt.ts +53 -14
  285. package/src/services/ai-tools.ts +39 -3
  286. package/src/services/ai-writes.ts +154 -0
  287. package/src/services/announce.ts +97 -0
  288. package/src/services/automation.ts +424 -175
  289. package/src/services/cem-export.ts +9 -4
  290. package/src/services/clock.ts +61 -0
  291. package/src/services/document-assistant.ts +36 -8
  292. package/src/services/idle.ts +179 -0
  293. package/src/services/import-client.ts +26 -0
  294. package/src/services/monaco-buffer.ts +627 -0
  295. package/src/services/monaco-lazy.ts +36 -0
  296. package/src/services/notify.ts +271 -0
  297. package/src/services/profile.ts +155 -0
  298. package/src/services/references.ts +0 -0
  299. package/src/services/token-lint.ts +3 -2
  300. package/src/services/tool-executor.ts +53 -7
  301. package/src/services/trusted-types.ts +123 -0
  302. package/src/settings/contexts-section.ts +427 -0
  303. package/src/settings/contributed-section.ts +149 -11
  304. package/src/settings/css-vars-editor.ts +306 -349
  305. package/src/settings/defs-editor.ts +93 -34
  306. package/src/settings/dependencies-editor.ts +7 -7
  307. package/src/settings/extension-sections.ts +37 -5
  308. package/src/settings/general-settings.ts +204 -121
  309. package/src/settings/locales-section.ts +347 -0
  310. package/src/settings/preferences-accounts.ts +140 -0
  311. package/src/settings/preferences-dialog.ts +620 -0
  312. package/src/settings/preferences-keymap.ts +270 -0
  313. package/src/settings/project-sections.ts +260 -0
  314. package/src/settings/section-registry.ts +169 -0
  315. package/src/settings/settings-document.ts +385 -0
  316. package/src/shell.ts +1549 -0
  317. package/src/site-context.ts +45 -20
  318. package/src/state.ts +14 -275
  319. package/src/store.ts +88 -43
  320. package/src/studio.ts +790 -346
  321. package/src/style/live-preview.ts +36 -0
  322. package/src/style/project-styles.ts +349 -0
  323. package/src/style/token-ref.ts +123 -0
  324. package/src/tabs/patch-ops.ts +16 -4
  325. package/src/tabs/project-config.ts +416 -0
  326. package/src/tabs/selection.ts +323 -0
  327. package/src/tabs/tab.ts +182 -47
  328. package/src/tabs/transact.ts +209 -28
  329. package/src/types.ts +68 -13
  330. package/src/ui/ai-credentials-form.ts +39 -35
  331. package/src/ui/ai-managed-connect.ts +113 -0
  332. package/src/ui/dynamic-slot.ts +224 -81
  333. package/src/ui/expression-editor.ts +71 -63
  334. package/src/ui/field-input.ts +4 -6
  335. package/src/ui/field-row.ts +215 -38
  336. package/src/ui/form-controls.ts +194 -7
  337. package/src/ui/layers.ts +492 -69
  338. package/src/ui/media-picker.ts +115 -25
  339. package/src/ui/panel-resize.ts +109 -91
  340. package/src/ui/progress-modal.ts +131 -50
  341. package/src/ui/regions.ts +462 -0
  342. package/src/ui/schema-form.ts +229 -45
  343. package/src/ui/spectrum.ts +24 -8
  344. package/src/ui/timing.ts +49 -0
  345. package/src/ui/value-selector.ts +20 -0
  346. package/src/ui/value-source.ts +348 -0
  347. package/src/ui/virtual-window.ts +400 -0
  348. package/src/utils/edit-display.ts +3 -2
  349. package/src/utils/inherited-style.ts +67 -37
  350. package/src/view.ts +64 -78
  351. package/src/workspace/pane-derive.ts +1258 -0
  352. package/src/workspace/session.ts +317 -0
  353. package/src/workspace/workspace.ts +1345 -23
  354. package/styles/canvas.css +653 -0
  355. package/styles/forced-colors.css +106 -0
  356. package/styles/inspector.css +1454 -0
  357. package/styles/overlays.css +2704 -0
  358. package/styles/panels.css +1701 -0
  359. package/styles/shell.css +1423 -0
  360. package/styles/tokens.css +151 -0
  361. package/dist/chunks/Overlay.dev-cszx7yn5.js +0 -22
  362. package/dist/chunks/extension-sections-qct0gt8f.js +0 -531
  363. package/dist/chunks/extension-sections-qct0gt8f.js.map +0 -12
  364. package/dist/chunks/files-02zn5y24.js +0 -50
  365. package/dist/chunks/files-02zn5y24.js.map +0 -9
  366. package/dist/chunks/git-panel-mbb0y0hz.js +0 -28
  367. package/dist/chunks/git-panel-mbb0y0hz.js.map +0 -9
  368. package/dist/chunks/layers-panel-9qekmqk1.js +0 -26
  369. package/dist/chunks/layers-panel-9qekmqk1.js.map +0 -9
  370. package/dist/chunks/settings-modal-gj0hrah4.js +0 -29
  371. package/dist/chunks/settings-modal-gj0hrah4.js.map +0 -9
  372. package/dist/chunks/sp-overlay.dev-earn5as8.js +0 -17
  373. package/dist/chunks/sp-overlay.dev-earn5as8.js.map +0 -9
  374. package/dist/chunks/sp-popover.dev-frxtfejn.js +0 -8
  375. package/dist/chunks/sp-popover.dev-frxtfejn.js.map +0 -9
  376. package/dist/chunks/sp-progress-circle.dev-7tvw34h8.js +0 -14
  377. package/dist/chunks/sp-progress-circle.dev-7tvw34h8.js.map +0 -9
  378. package/dist/chunks/sp-tooltip.dev-a9fywesm.js +0 -21
  379. package/dist/chunks/sp-tooltip.dev-a9fywesm.js.map +0 -10
  380. package/dist/chunks/studio-4k0m4fmp.js.map +0 -13
  381. package/dist/chunks/studio-568nx4t5.js +0 -469
  382. package/dist/chunks/studio-568nx4t5.js.map +0 -14
  383. package/dist/chunks/studio-9smfzqhc.js +0 -19
  384. package/dist/chunks/studio-9smfzqhc.js.map +0 -10
  385. package/dist/chunks/studio-asvf0j9e.js +0 -429
  386. package/dist/chunks/studio-asvf0j9e.js.map +0 -13
  387. package/dist/chunks/studio-d77qm3pk.js +0 -3427
  388. package/dist/chunks/studio-d77qm3pk.js.map +0 -26
  389. package/dist/chunks/studio-j6gqyjf4.js +0 -1854
  390. package/dist/chunks/studio-j6gqyjf4.js.map +0 -18
  391. package/dist/chunks/studio-n9zmpxjg.js.map +0 -115
  392. package/dist/chunks/studio-qkvt37c0.js.map +0 -9
  393. package/dist/chunks/studio-rq0vxb19.js +0 -3744
  394. package/dist/chunks/studio-rq0vxb19.js.map +0 -22
  395. package/dist/chunks/studio-wd6ewdvd.js +0 -853
  396. package/dist/chunks/studio-wd6ewdvd.js.map +0 -12
  397. package/dist/chunks/studio-xq0t7n5t.js +0 -140
  398. package/dist/chunks/studio-xq0t7n5t.js.map +0 -10
  399. package/dist/chunks/studio-xze4zrs1.js.map +0 -10
  400. package/dist/chunks/studio-ygzav7z5.js.map +0 -46
  401. package/dist/chunks/studio-zmy7241e.js +0 -399
  402. package/dist/chunks/studio-zmy7241e.js.map +0 -12
  403. package/dist/chunks/ws-client-q7hkz3j9.js.map +0 -11
  404. package/src/browse/browse-modal.ts +0 -69
  405. package/src/browse/browse.ts +0 -904
  406. package/src/canvas/canvas-diff.ts +0 -216
  407. package/src/canvas/nested-site-style.ts +0 -58
  408. package/src/new-project/design-fields.ts +0 -264
  409. package/src/new-project/templates.ts +0 -61
  410. package/src/panels/tab-bar.ts +0 -548
  411. package/src/settings/settings-modal.ts +0 -203
  412. /package/dist/chunks/{adapter-z8fkmbmv.js.map → adapter-qfnesn5v.js.map} +0 -0
  413. /package/dist/chunks/{cf-settings-mmyv436d.js.map → cf-settings-73sh5z4p.js.map} +0 -0
  414. /package/dist/chunks/{format-host-2c188n41.js.map → format-host-mkwsmt8d.js.map} +0 -0
  415. /package/dist/chunks/{jx-validate-qx8degj7.js.map → jx-validate-v6qgknrs.js.map} +0 -0
  416. /package/dist/chunks/{studio-w7c6kvk7.js.map → studio-a7pzveq1.js.map} +0 -0
  417. /package/dist/chunks/{studio-hhj92gcr.js.map → studio-s519zc99.js.map} +0 -0
  418. /package/dist/chunks/{studio-bghqfmea.js.map → studio-wwseqyw0.js.map} +0 -0
  419. /package/dist/chunks/{studio-nqw433kv.js.map → studio-xmvbhg31.js.map} +0 -0
@@ -6,9 +6,9 @@
6
6
  "/**\n * The two-way bridge between Studio's JxDocOp op-log and the shared Y.Doc structure tree.\n *\n * Outbound ({@link applyDocOpsToY}): forward ops recorded by a local transaction replay onto the Y\n * tree inside one Y transaction tagged with the caller's origin, so observers can tell local\n * mirroring from remote edits.\n *\n * Inbound ({@link yEventsToDocOps}): a remote transaction's Y events convert back into JxDocOps for\n * `applyExternalDocOps`. Only provably safe event shapes take this fast path (it keeps canvas\n * patches surgical); anything gnarlier returns null and the caller reconciles by diffing — the\n * correctness anchor.\n */\n\nimport * as Y from \"yjs\";\nimport type { JxPath } from \"@jxsuite/schema/types\";\nimport type { JxDocOp } from \"./ops.ts\";\nimport {\n applyTextEdit,\n GRANULAR_OBJECT_KEYS,\n mergeYObject,\n resolveYPath,\n TEXT_KEYS,\n toYChild,\n toYChildren,\n toYObject,\n yValueToJson,\n} from \"./schema.ts\";\n\n/** Origin of Y transactions produced by mirroring the local tab's ops. */\nexport const LOCAL_ORIGIN = \"jx-local\";\n/** Origin of derived-representation writes (the elected reconciler's structure↔source mirrors). */\nexport const MIRROR_ORIGIN = \"jx-mirror\";\n/** Origin of seeding/bootstrap writes. */\nexport const SEED_ORIGIN = \"jx-seed\";\n\n/** Thrown when an op's path does not resolve in the Y tree; callers fall back to diffing. */\nexport class CollabPathError extends Error {\n constructor(path: JxPath) {\n super(`collab-path-unresolved:${path.join(\"/\")}`);\n this.name = \"CollabPathError\";\n }\n}\n\nfunction requireNode(doc: Y.Doc, path: JxPath): Y.Map<unknown> {\n const target = resolveYPath(doc, path);\n if (!(target instanceof Y.Map)) {\n throw new CollabPathError(path);\n }\n return target;\n}\n\nfunction childrenOf(doc: Y.Doc, parentPath: JxPath, create: boolean): Y.Array<unknown> {\n const parent = requireNode(doc, parentPath);\n const children = parent.get(\"children\");\n if (children instanceof Y.Array) {\n return children;\n }\n if (create && children === undefined) {\n const fresh = new Y.Array<unknown>();\n parent.set(\"children\", fresh);\n return fresh;\n }\n throw new CollabPathError([...parentPath, \"children\"]);\n}\n\n/** JSON round-trip clone (matches the ops applier's normalization). */\nfunction cloneJson<T>(value: T): T {\n // oxlint-disable-next-line unicorn/prefer-structured-clone -- JSON normalization is the point\n return JSON.parse(JSON.stringify(value)) as T;\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n/**\n * Write a node key, preserving CRDT identity wherever the schema stores it granularly.\n *\n * Studio's mutators record whole-value `set-key` ops — `mutateUpdateStyle` replaces the entire\n * style object, an inline-edit commit replaces the entire `textContent`. Writing those straight\n * through with `Y.Map.set` mints a fresh Y type each time and throws away whatever a peer\n * concurrently did to the old one, which is exactly how \"two people typing in one paragraph\" became\n * last-writer-wins.\n *\n * So a whole-value op is diffed down onto the existing structure: text through {@link applyTextEdit}\n * (character-level), granular objects through {@link mergeYObject} (per-property). Only a TYPE\n * change — string text becoming a `$ref`, an object becoming a scalar — falls back to replacement,\n * because then there is no shared structure left to preserve.\n */\nfunction setNodeKey(node: Y.Map<unknown>, key: string, value: unknown): void {\n const existing = node.get(key);\n if (key === \"children\" && Array.isArray(value)) {\n node.set(key, toYChildren(value));\n return;\n }\n if (TEXT_KEYS.has(key) && typeof value === \"string\") {\n if (existing instanceof Y.Text) {\n applyTextEdit(existing, value);\n } else {\n node.set(key, new Y.Text(value));\n }\n return;\n }\n if (GRANULAR_OBJECT_KEYS.has(key) && isPlainObject(value)) {\n if (existing instanceof Y.Map) {\n mergeYObject(existing, value);\n } else {\n node.set(key, toYObject(value));\n }\n return;\n }\n node.set(key, cloneJson(value));\n}\n\nfunction applyOneOp(doc: Y.Doc, op: JxDocOp): void {\n switch (op.op) {\n case \"set-key\": {\n const node = requireNode(doc, op.path);\n if (op.value === undefined) {\n node.delete(op.key);\n } else {\n setNodeKey(node, op.key, op.value);\n }\n return;\n }\n case \"insert-child\": {\n const children = childrenOf(doc, op.parentPath, true);\n if (op.index < 0 || op.index > children.length) {\n throw new CollabPathError([...op.parentPath, \"children\", op.index]);\n }\n children.insert(op.index, [toYChild(op.node)]);\n return;\n }\n case \"remove-child\": {\n const children = childrenOf(doc, op.parentPath, false);\n if (op.index < 0 || op.index >= children.length) {\n throw new CollabPathError([...op.parentPath, \"children\", op.index]);\n }\n children.delete(op.index, 1);\n return;\n }\n case \"set-child\": {\n const children = childrenOf(doc, op.parentPath, false);\n if (op.index < 0 || op.index >= children.length) {\n throw new CollabPathError([...op.parentPath, \"children\", op.index]);\n }\n // Text child → text child: edit the existing Y.Text in place. A delete+insert would replace the\n // Whole element and discard a peer's concurrent characters, which is the same clobber\n // `setNodeKey` avoids for `textContent` — bare-string children are the other half of prose.\n const existing = children.get(op.index);\n if (existing instanceof Y.Text && typeof op.node === \"string\") {\n applyTextEdit(existing, op.node);\n return;\n }\n children.delete(op.index, 1);\n children.insert(op.index, [toYChild(op.node)]);\n return;\n }\n case \"move-child\": {\n // Y.Array has no native move: re-insert the node's current JSON at the target. A remote\n // Edit landing inside the moved subtree during the same round-trip is lost (documented v1\n // Limitation); convergence itself is unaffected. Both parent paths resolve BEFORE the\n // Removal splice — matching the plain applier's semantics — while toIndex is expressed in\n // Post-removal coordinates (the mutators pre-adjust same-parent moves).\n const from = childrenOf(doc, op.fromParentPath, false);\n const to = childrenOf(doc, op.toParentPath, true);\n if (op.fromIndex < 0 || op.fromIndex >= from.length) {\n throw new CollabPathError([...op.fromParentPath, \"children\", op.fromIndex]);\n }\n const json = yValueToJson(from.get(op.fromIndex));\n from.delete(op.fromIndex, 1);\n if (op.toIndex < 0 || op.toIndex > to.length) {\n throw new CollabPathError([...op.toParentPath, \"children\", op.toIndex]);\n }\n to.insert(op.toIndex, [toYChild(json)]);\n return;\n }\n default: {\n throw new Error(`unknown-doc-op:${(op as JxDocOp).op}`);\n }\n }\n}\n\n/**\n * Replay forward ops onto the Y structure tree in one transaction. Throws {@link CollabPathError}\n * when any op's path does not resolve — the transaction still commits the ops applied before the\n * failure, so callers catching it must reconcile by diff (which corrects any partial state).\n */\nexport function applyDocOpsToY(doc: Y.Doc, ops: readonly JxDocOp[], origin: unknown): void {\n doc.transact(() => {\n for (const op of ops) {\n applyOneOp(doc, op);\n }\n }, origin);\n}\n\n/**\n * When `path` addresses a granular container (or something nested inside one), the node that owns\n * it and the key it sits under; otherwise null.\n *\n * The event path is relative to the structure map, so the first segment matching a granular key\n * marks the boundary: everything before it is the node path, and anything after it is interior\n * detail the op log does not model.\n *\n * `children`/index segments need no special handling: they are not granular keys, so the scan\n * passes over them and the returned node path keeps the full prefix — `[\"children\", 0, \"style\"]`\n * resolves to the style of the node at `children/0`, not of the root.\n */\nfunction granularOwner(path: JxPath): { nodePath: JxPath; key: string } | null {\n for (let i = 0; i < path.length; i++) {\n const segment = path[i];\n if (typeof segment !== \"string\") {\n continue;\n }\n if (GRANULAR_OBJECT_KEYS.has(segment)) {\n return { key: segment, nodePath: path.slice(0, i) };\n }\n if (TEXT_KEYS.has(segment)) {\n return { key: segment, nodePath: path.slice(0, i) };\n }\n }\n return null;\n}\n\nfunction isStructurePath(segments: readonly (string | number)[]): segments is JxPath {\n return segments.every((seg) => typeof seg === \"string\" || typeof seg === \"number\");\n}\n\n/**\n * Convert a remote transaction's deep events on the structure tree into JxDocOps (positions valid\n * at sequential apply time). Returns null when the shape is not provably safe to convert — multiple\n * overlapping events, more than one array event, or non-contiguous delete runs — and the caller\n * must reconcile by diffing instead.\n */\nexport function yEventsToDocOps(events: readonly Y.YEvent<never>[]): JxDocOp[] | null {\n if (events.length === 0) {\n return [];\n }\n const paths = events.map((event) => event.path);\n if (!paths.every((p) => isStructurePath(p))) {\n return null;\n }\n // Overlap guard: one event's target must not sit inside another's subtree — later paths would\n // Describe positions the earlier splice already shifted.\n for (let i = 0; i < paths.length; i++) {\n for (let j = 0; j < paths.length; j++) {\n if (i === j) {\n continue;\n }\n const a = paths[i]!;\n const b = paths[j]!;\n if (a.length <= b.length && a.every((seg, k) => seg === b[k])) {\n return null;\n }\n }\n }\n const arrayEvents = events.filter((event) => event instanceof Y.YArrayEvent).length;\n if (arrayEvents > 1) {\n return null;\n }\n\n const ops: JxDocOp[] = [];\n for (const event of events) {\n const path = event.path as JxPath;\n /*\n * A remote edit inside a granular container (a `Y.Text` for prose, a nested `Y.Map` for\n * style/attributes/$props) reports its event at the CONTAINER's path, not the node's. Studio's op\n * vocabulary addresses nodes, so those collapse back to one whole-value op for the owning key —\n * the same shape a local mutator would have produced. Granularity buys merge; it deliberately does\n * not leak into the op log, the canvas patcher, or the history ring.\n */\n const granular = granularOwner(path);\n if (granular) {\n const { doc } = event.target as { doc?: Y.Doc | null };\n if (!doc) {\n return null;\n }\n const container = resolveYPath(doc, [...granular.nodePath, granular.key]);\n if (container === undefined) {\n return null;\n }\n ops.push({\n key: granular.key,\n op: \"set-key\",\n path: granular.nodePath,\n value: yValueToJson(container),\n });\n continue;\n }\n if (event instanceof Y.YTextEvent) {\n // A bare-string child: the text IS the child, so it round-trips as a child replacement.\n const index = path.at(-1);\n if (path.at(-2) === \"children\" && typeof index === \"number\") {\n ops.push({\n index,\n node: (event.target as Y.Text).toString(),\n op: \"set-child\",\n parentPath: path.slice(0, -2),\n });\n continue;\n }\n return null;\n }\n if (event instanceof Y.YMapEvent) {\n const target = event.target as Y.Map<unknown>;\n for (const [key, change] of event.changes.keys) {\n if (change.action === \"delete\") {\n ops.push({ key, op: \"set-key\", path });\n } else {\n ops.push({ key, op: \"set-key\", path, value: yValueToJson(target.get(key)) });\n }\n }\n } else if (event instanceof Y.YArrayEvent) {\n // The array event's path points at the children array; ops address its parent node.\n if (path.at(-1) !== \"children\") {\n return null;\n }\n const parentPath = path.slice(0, -1);\n let index = 0;\n for (const delta of event.changes.delta) {\n if (delta.retain !== undefined) {\n index += delta.retain;\n } else if (delta.delete !== undefined) {\n for (let i = 0; i < delta.delete; i++) {\n ops.push({ index, op: \"remove-child\", parentPath });\n }\n } else if (delta.insert !== undefined) {\n const items = Array.isArray(delta.insert) ? delta.insert : [delta.insert];\n for (const item of items) {\n ops.push({ index, node: yValueToJson(item), op: \"insert-child\", parentPath });\n index += 1;\n }\n }\n }\n } else {\n return null;\n }\n }\n return ops;\n}\n",
7
7
  "/**\n * Structural differ: `diffDocs(a, b)` produces JxDocOps that transform document `a` into `b` when\n * replayed sequentially (property invariant: `apply(clone(a), diffDocs(a, b)) ≡ b`). The collab\n * bridge uses it wherever no op-log exists — whole-document bypass writes (Monaco parse-flush,\n * navigation, reload), un-instrumented transactions, and inbound Y transactions too gnarly for the\n * fast event path.\n *\n * Children alignment: an LCS over strong keys (full-content hashes) pins unchanged nodes as\n * anchors; the gaps between anchors align by a second LCS over weak signatures (tagName +\n * id/$props.key) whose pairs diff recursively. Unmatched items become splices. Reorders of\n * identical siblings therefore degrade to remove+insert — exactly what the Y move mapping does, so\n * no fidelity is lost relative to the wire.\n */\n\nimport type { JxMutableNode, JxPath } from \"@jxsuite/schema/types\";\nimport type { JxDocOp } from \"./ops.ts\";\nimport { metaMap, structureMap, toYChildren } from \"./schema.ts\";\nimport type * as Y from \"yjs\";\n\nexport interface DiffOptions {\n /** Abort (return null) when the diff would exceed this many ops; caller hard-replaces instead. */\n maxOps?: number;\n}\n\nconst DEFAULT_MAX_OPS = 500;\n\nclass MaxOpsExceededError extends Error {\n override name = \"MaxOpsExceededError\";\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n/** Order-insensitive for object keys, order-sensitive for arrays. */\nexport function deepEqual(a: unknown, b: unknown): boolean {\n if (a === b) {\n return true;\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((item, i) => deepEqual(item, b[i]));\n }\n if (isPlainObject(a) && isPlainObject(b)) {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n return (\n keysA.length === keysB.length && keysA.every((key) => key in b && deepEqual(a[key], b[key]))\n );\n }\n return false;\n}\n\nfunction contentHash(text: string): string {\n let hash = 5381;\n for (let i = 0; i < text.length; i++) {\n hash = Math.imul(hash, 33) + (text.codePointAt(i) ?? 0);\n }\n return hash.toString(36);\n}\n\n/** Full-content identity: equal strong keys mean \"treat as the same unchanged child\". */\nfunction strongKey(item: unknown): string {\n return typeof item === \"string\" ? `s:${item}` : `n:${contentHash(JSON.stringify(item))}`;\n}\n\n/** Alignment identity: equal weak keys mean \"same logical child, diff its contents\". */\nfunction weakKey(item: unknown): string {\n if (typeof item === \"string\") {\n return \"s\";\n }\n const node = item as Record<string, unknown>;\n const attrs = node[\"attributes\"];\n const props = node[\"$props\"];\n const id =\n (isPlainObject(attrs) ? attrs[\"id\"] : undefined) ??\n (isPlainObject(props) ? props[\"key\"] : undefined) ??\n \"\";\n return `w:${String(node[\"tagName\"] ?? \"\")}:${String(id)}`;\n}\n\n/** Longest common subsequence over key arrays; returns strictly-increasing index pairs. */\nfunction lcsPairs(aKeys: readonly string[], bKeys: readonly string[]): [number, number][] {\n const n = aKeys.length;\n const m = bKeys.length;\n if (n === 0 || m === 0) {\n return [];\n }\n // Classic DP table; children arrays are small (bounded by document size, typically < 200).\n const table: number[][] = Array.from({ length: n + 1 }, () =>\n Array.from({ length: m + 1 }, () => 0),\n );\n for (let i = n - 1; i >= 0; i--) {\n for (let j = m - 1; j >= 0; j--) {\n table[i]![j] =\n aKeys[i] === bKeys[j]\n ? table[i + 1]![j + 1]! + 1\n : Math.max(table[i + 1]![j]!, table[i]![j + 1]!);\n }\n }\n const pairs: [number, number][] = [];\n let i = 0;\n let j = 0;\n while (i < n && j < m) {\n if (aKeys[i] === bKeys[j]) {\n pairs.push([i, j]);\n i += 1;\n j += 1;\n } else if (table[i + 1]![j]! >= table[i]![j + 1]!) {\n i += 1;\n } else {\n j += 1;\n }\n }\n return pairs;\n}\n\ninterface ChildMatch {\n aIndex: number;\n bIndex: number;\n /** Strong matches are byte-identical — no recursion needed. */\n identical: boolean;\n}\n\n/** Anchor by strong LCS, then align each gap by weak LCS. Matches never cross. */\nfunction matchChildren(a: readonly unknown[], b: readonly unknown[]): ChildMatch[] {\n const anchors = lcsPairs(\n a.map((item) => strongKey(item)),\n b.map((item) => strongKey(item)),\n );\n const matches: ChildMatch[] = [];\n let prevA = -1;\n let prevB = -1;\n const gaps: [number, number, number, number][] = [];\n for (const [ai, bi] of anchors) {\n gaps.push([prevA + 1, ai, prevB + 1, bi]);\n matches.push({ aIndex: ai, bIndex: bi, identical: true });\n prevA = ai;\n prevB = bi;\n }\n gaps.push([prevA + 1, a.length, prevB + 1, b.length]);\n for (const [aStart, aEnd, bStart, bEnd] of gaps) {\n const aGap = a.slice(aStart, aEnd);\n const bGap = b.slice(bStart, bEnd);\n for (const [gi, gj] of lcsPairs(\n aGap.map((item) => weakKey(item)),\n bGap.map((item) => weakKey(item)),\n )) {\n matches.push({ aIndex: aStart + gi, bIndex: bStart + gj, identical: false });\n }\n }\n return matches.toSorted((x, y) => x.aIndex - y.aIndex);\n}\n\nclass Differ {\n private readonly ops: JxDocOp[] = [];\n private readonly maxOps: number;\n\n constructor(maxOps: number) {\n this.maxOps = maxOps;\n }\n\n result(): JxDocOp[] {\n return this.ops;\n }\n\n private push(op: JxDocOp): void {\n if (this.ops.length >= this.maxOps) {\n throw new MaxOpsExceededError();\n }\n this.ops.push(op);\n }\n\n diffNode(path: JxPath, a: Record<string, unknown>, b: Record<string, unknown>): void {\n for (const key of new Set([...Object.keys(a), ...Object.keys(b)])) {\n if (key === \"children\") {\n continue;\n }\n if (!(key in b)) {\n this.push({ key, op: \"set-key\", path });\n } else if (!deepEqual(a[key], b[key])) {\n this.push({ key, op: \"set-key\", path, value: b[key] });\n }\n }\n const ca = a[\"children\"];\n const cb = b[\"children\"];\n if (Array.isArray(ca) && Array.isArray(cb)) {\n this.diffChildren(path, ca, cb);\n } else if (!deepEqual(ca, cb)) {\n // Mapped-array children (or one side missing entirely) replace whole, like the mutators do.\n this.push({ key: \"children\", op: \"set-key\", path, value: cb });\n }\n }\n\n private diffChildren(path: JxPath, a: readonly unknown[], b: readonly unknown[]): void {\n const matches = matchChildren(a, b);\n const matchedA = new Set(matches.map((match) => match.aIndex));\n const byB = new Map(matches.map((match) => [match.bIndex, match]));\n\n // Removals first, in descending original index — each splice leaves lower indices intact.\n for (let i = a.length - 1; i >= 0; i--) {\n if (!matchedA.has(i)) {\n this.push({ index: i, op: \"remove-child\", parentPath: path });\n }\n }\n // Then walk b ascending: inserts land at their final index; matched pairs already sit there\n // (matches never cross), so recursion paths are valid as emitted.\n for (let i = 0; i < b.length; i++) {\n const match = byB.get(i);\n if (!match) {\n this.push({ index: i, node: b[i], op: \"insert-child\", parentPath: path });\n continue;\n }\n if (match.identical) {\n continue;\n }\n const aItem = a[match.aIndex];\n const bItem = b[i];\n if (isPlainObject(aItem) && isPlainObject(bItem)) {\n this.diffNode([...path, \"children\", i], aItem, bItem);\n } else if (!deepEqual(aItem, bItem)) {\n this.push({ index: i, node: bItem, op: \"set-child\", parentPath: path });\n }\n }\n }\n}\n\n/**\n * Ops that transform `a` into `b` when replayed sequentially, or null when the change is too large\n * to express surgically (caller should hard-replace and reset).\n */\nexport function diffDocs(\n a: JxMutableNode,\n b: JxMutableNode,\n opts: DiffOptions = {},\n): JxDocOp[] | null {\n const differ = new Differ(opts.maxOps ?? DEFAULT_MAX_OPS);\n try {\n differ.diffNode([], a as Record<string, unknown>, b as Record<string, unknown>);\n } catch (error) {\n if (error instanceof MaxOpsExceededError) {\n return null;\n }\n throw error;\n }\n return differ.result();\n}\n\n/**\n * Hard-replace the structure tree with `document` (the diff-overflow escape hatch) and bump the\n * in-doc canonicalRev so stale mirror writes computed against the old tree are discarded.\n */\nexport function replaceYStructure(doc: Y.Doc, document: JxMutableNode, origin: unknown): void {\n doc.transact(() => {\n const structure = structureMap(doc);\n const next = document as Record<string, unknown>;\n // Detached copy: keys are deleted while iterating.\n const existingKeys = [...structure.keys()];\n for (const key of existingKeys) {\n if (!(key in next) || next[key] === undefined) {\n structure.delete(key);\n }\n }\n for (const [key, value] of Object.entries(next)) {\n if (value === undefined) {\n continue;\n }\n if (key === \"children\" && Array.isArray(value)) {\n structure.set(key, toYChildren(value));\n } else {\n // oxlint-disable-next-line unicorn/prefer-structured-clone -- JSON normalization is the point\n structure.set(key, JSON.parse(JSON.stringify(value)));\n }\n }\n const meta = metaMap(doc);\n meta.set(\"canonicalRev\", Number(meta.get(\"canonicalRev\") ?? 0) + 1);\n }, origin);\n}\n",
8
8
  "/**\n * The canonical-representation lock for source-mode co-editing (the Phase-B dual-representation\n * design). `meta.canonical` says which representation is authoritative: \"structure\" (the default —\n * canvas/inspector edits flow through the op bridge and the elected reconciler mirrors them into\n * source text) or \"source\" (Monaco co-edits the Y.Text character-level; structural surfaces\n * soft-freeze and the source reconciler mirrors parses back into the structure tree for live\n * previews).\n *\n * Every flip bumps `meta.canonicalRev`; derived-representation writers stamp the rev they computed\n * against and observers discard stale mirrors. Flips are LWW-idempotent under concurrency: both\n * flippers serialize the same structure, so the merged text converges.\n */\n\nimport type { Doc } from \"yjs\";\nimport type { Awareness } from \"y-protocols/awareness\";\nimport { metaMap, updateSourceText } from \"./schema.ts\";\nimport type { CollabAwarenessState } from \"./awareness-types.ts\";\n\nexport type CanonicalRepresentation = \"structure\" | \"source\";\n\nexport function canonicalOf(doc: Doc): CanonicalRepresentation {\n return metaMap(doc).get(\"canonical\") === \"source\" ? \"source\" : \"structure\";\n}\n\nexport function canonicalRevOf(doc: Doc): number {\n return Number(metaMap(doc).get(\"canonicalRev\") ?? 0);\n}\n\n/**\n * Flip canonical to \"source\", seeding the text from `serialized` (the flipper's serialization of\n * the current structure). No-op (false) when source already holds the lock.\n */\nexport function acquireSourceCanonical(doc: Doc, serialized: string, origin: unknown): boolean {\n if (canonicalOf(doc) === \"source\") {\n return false;\n }\n doc.transact(() => {\n updateSourceText(doc, serialized, origin);\n const meta = metaMap(doc);\n meta.set(\"canonical\", \"source\");\n meta.set(\"canonicalRev\", canonicalRevOf(doc) + 1);\n }, origin);\n return true;\n}\n\n/** Flip canonical back to \"structure\" (the mirror is the caller's responsibility beforehand). */\nexport function releaseSourceCanonical(doc: Doc, origin: unknown): boolean {\n if (canonicalOf(doc) !== \"source\") {\n return false;\n }\n doc.transact(() => {\n const meta = metaMap(doc);\n meta.set(\"canonical\", \"structure\");\n meta.set(\"canonicalRev\", canonicalRevOf(doc) + 1);\n }, origin);\n return true;\n}\n\n/** Peers (excluding `selfClientId`) currently source-editing this doc, per awareness. */\nexport function otherSourceEditors(\n awareness: Awareness,\n path: string,\n selfClientId: number,\n): number[] {\n const editors: number[] = [];\n for (const [clientId, raw] of awareness.getStates()) {\n const state = raw as Partial<CollabAwarenessState>;\n if (clientId !== selfClientId && state.mode === \"source\" && state.focusedPath === path) {\n editors.push(clientId);\n }\n }\n return editors;\n}\n\n/**\n * The source reconciler — the lowest write-capable clientID among this doc's source editors\n * (including self when in source mode) — owns parsing Y.Text back into the structure tree.\n */\nexport function isSourceReconciler(awareness: Awareness, path: string): boolean {\n const self = awareness.clientID;\n const selfState = awareness.getStates().get(self) as Partial<CollabAwarenessState> | undefined;\n if (selfState?.mode !== \"source\" || selfState.focusedPath !== path) {\n return false;\n }\n let lowest = self;\n for (const [clientId, raw] of awareness.getStates()) {\n const state = raw as Partial<CollabAwarenessState>;\n if (\n state.mode === \"source\" &&\n state.focusedPath === path &&\n state.canWrite !== false &&\n clientId < lowest\n ) {\n lowest = clientId;\n }\n }\n return lowest === self;\n}\n",
9
- "/**\n * The project-level awareness contract. One y-protocols Awareness instance rides each provider\n * connection (not one per document): every client publishes a single state describing who they are\n * and where they're working, which gives file-tree presence for free; per-document cursor overlays\n * filter the same states by focusedPath.\n */\n\nimport type { JxPath } from \"@jxsuite/schema/types\";\n\nexport interface CollabUser {\n login: string;\n name?: string;\n avatarUrl?: string;\n /** Presence color, assigned deterministically by the server (hello) or colorForKey. */\n color: string;\n}\n\nexport interface CollabAwarenessState {\n user: CollabUser;\n /** Project-relative path of the document the client is focused on, or null. */\n focusedPath: string | null;\n /** Which representation the client is editing (drives the Phase-B canonical lock). */\n mode?: \"structure\" | \"source\";\n /** The client's structural (canvas) selection in the focused document. */\n structuralSelection?: JxPath | null;\n /**\n * RESERVED for y-monaco: the in-buffer text cursor as {anchor, head} Y.RelativePosition JSON.\n * MonacoBinding owns this field via setLocalStateField(\"selection\", …) while a code view is\n * bound; nothing else may write it.\n */\n selection?: { anchor: unknown; head: unknown } | null;\n /**\n * Whether this client may write (from the server hello). Drives reconciler election — the lowest\n * write-capable clientID mirrors derived representations. Advisory only: the server drops updates\n * from read-only sockets regardless.\n */\n canWrite?: boolean;\n}\n\n/** Eight distinguishable presence hues (dark-theme friendly). */\nexport const PRESENCE_PALETTE = [\n \"#4f9cf9\",\n \"#e5484d\",\n \"#30a46c\",\n \"#f5a524\",\n \"#8e4ec6\",\n \"#00a2c7\",\n \"#e93d82\",\n \"#a8845c\",\n] as const;\n\n/** Deterministic palette pick — the same key always maps to the same color. */\nexport function colorForKey(key: string): string {\n let hash = 5381;\n for (let i = 0; i < key.length; i++) {\n hash = Math.imul(hash, 33) + (key.codePointAt(i) ?? 0);\n }\n const index = Math.abs(hash) % PRESENCE_PALETTE.length;\n return PRESENCE_PALETTE[index]!;\n}\n"
9
+ "/**\n * The project-level awareness contract. One y-protocols Awareness instance rides each provider\n * connection (not one per document): every client publishes a single state describing who they are\n * and where they're working, which gives file-tree presence for free; per-document cursor overlays\n * filter the same states by focusedPath.\n */\n\nimport type { JxPath } from \"@jxsuite/schema/types\";\n\nexport interface CollabUser {\n login: string;\n name?: string;\n avatarUrl?: string;\n /** Presence color, assigned deterministically by the server (hello) or colorForKey. */\n color: string;\n}\n\nexport interface CollabAwarenessState {\n user: CollabUser;\n /** Project-relative path of the document the client is focused on, or null. */\n focusedPath: string | null;\n /** Which representation the client is editing (drives the Phase-B canonical lock). */\n mode?: \"structure\" | \"source\";\n /**\n * The client's structural (canvas) selection in the focused document — the whole SET.\n *\n * A list because `session.selection` is one (studio §6.5): a peer who has selected six cards\n * publishes six paths, and the remote canvas draws a presence box for each. A peer with one node\n * selected publishes a one-entry list, which draws exactly the one box it always did.\n */\n structuralSelection?: JxPath[] | null;\n /**\n * RESERVED for y-monaco: the in-buffer text cursor as {anchor, head} Y.RelativePosition JSON.\n * MonacoBinding owns this field via setLocalStateField(\"selection\", …) while a code view is\n * bound; nothing else may write it.\n */\n selection?: { anchor: unknown; head: unknown } | null;\n /**\n * Whether this client may write (from the server hello). Drives reconciler election — the lowest\n * write-capable clientID mirrors derived representations. Advisory only: the server drops updates\n * from read-only sockets regardless.\n */\n canWrite?: boolean;\n}\n\n/** Eight distinguishable presence hues (dark-theme friendly). */\nexport const PRESENCE_PALETTE = [\n \"#4f9cf9\",\n \"#e5484d\",\n \"#30a46c\",\n \"#f5a524\",\n \"#8e4ec6\",\n \"#00a2c7\",\n \"#e93d82\",\n \"#a8845c\",\n] as const;\n\n/** Deterministic palette pick — the same key always maps to the same color. */\nexport function colorForKey(key: string): string {\n let hash = 5381;\n for (let i = 0; i < key.length; i++) {\n hash = Math.imul(hash, 33) + (key.codePointAt(i) ?? 0);\n }\n const index = Math.abs(hash) % PRESENCE_PALETTE.length;\n return PRESENCE_PALETTE[index]!;\n}\n"
10
10
  ],
11
- "mappings": "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",
12
- "debugId": "327F0AD793EF33AC64756E2164756E21",
11
+ "mappings": "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",
12
+ "debugId": "06970FB2D9E66E7364756E2164756E21",
13
13
  "names": []
14
14
  }
@@ -3,8 +3,8 @@ import {
3
3
  resetProjectSchemas,
4
4
  validateDoc,
5
5
  validateProjectConfig
6
- } from "./studio-bghqfmea.js";
7
- import"./studio-qkvt37c0.js";
6
+ } from "./studio-wwseqyw0.js";
7
+ import"./studio-tr20m8g8.js";
8
8
  import"./studio-md4gps17.js";
9
9
  export {
10
10
  validateProjectConfig,
@@ -14,4 +14,4 @@ export {
14
14
  };
15
15
 
16
16
  //# debugId=1F474877C347781764756E2164756E21
17
- //# sourceMappingURL=jx-validate-qx8degj7.js.map
17
+ //# sourceMappingURL=jx-validate-v6qgknrs.js.map
@@ -0,0 +1,58 @@
1
+ import {
2
+ OUTLINE_ROW_HEIGHT,
3
+ OUTLINE_ROW_MAX_ITEMS,
4
+ afterTreeRender,
5
+ applyRowSelection,
6
+ applyTreeRovingTabindex,
7
+ clearHoverActions,
8
+ indentWidth,
9
+ onTreeHover,
10
+ onTreeKeydown,
11
+ outlineLabel,
12
+ outlineRowPath,
13
+ registerLayersPanel,
14
+ renderLayersTemplate,
15
+ renderRowCommands,
16
+ startLayerTitleEdit
17
+ } from "./studio-vmymjefp.js";
18
+ import"./studio-zv37yrfa.js";
19
+ import"./studio-6nmjc5qk.js";
20
+ import"./studio-0rqqhrdy.js";
21
+ import"./studio-dzcyvvvz.js";
22
+ import"./studio-c6s5getc.js";
23
+ import"./studio-xmvbhg31.js";
24
+ import"./studio-bw5dz6km.js";
25
+ import"./studio-f12h6177.js";
26
+ import"./studio-v96qfnww.js";
27
+ import"./studio-41exgzhq.js";
28
+ import"./studio-ckwz4d3x.js";
29
+ import"./studio-p471gg5n.js";
30
+ import"./studio-5x5774ak.js";
31
+ import"./studio-bsxxx3x2.js";
32
+ import"./studio-s519zc99.js";
33
+ import"./studio-cjm7fdjf.js";
34
+ import"./studio-adn0z1k3.js";
35
+ import"./studio-sas7mt3k.js";
36
+ import"./studio-5ehhackm.js";
37
+ import"./studio-t5wqwzdh.js";
38
+ import"./studio-md4gps17.js";
39
+ export {
40
+ startLayerTitleEdit,
41
+ renderRowCommands,
42
+ renderLayersTemplate,
43
+ registerLayersPanel,
44
+ outlineRowPath,
45
+ outlineLabel,
46
+ onTreeKeydown,
47
+ onTreeHover,
48
+ indentWidth,
49
+ clearHoverActions,
50
+ applyTreeRovingTabindex,
51
+ applyRowSelection,
52
+ afterTreeRender,
53
+ OUTLINE_ROW_MAX_ITEMS,
54
+ OUTLINE_ROW_HEIGHT
55
+ };
56
+
57
+ //# debugId=49BBFB9A16827DCB64756E2164756E21
58
+ //# sourceMappingURL=layers-panel-87pb25km.js.map
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "49BBFB9A16827DCB64756E2164756E21",
8
+ "names": []
9
+ }
@@ -1,10 +1,11 @@
1
1
  import {
2
2
  modelUriFor
3
3
  } from "./studio-h4rxscfc.js";
4
+ import"./studio-t5wqwzdh.js";
4
5
  import {
5
6
  project_schema_default,
6
7
  schema_default
7
- } from "./studio-qkvt37c0.js";
8
+ } from "./studio-tr20m8g8.js";
8
9
  import"./studio-6t0ahy6s.js";
9
10
  import"./studio-n4ps56g4.js";
10
11
  import"./studio-kxmdxmq1.js";
@@ -135,78 +136,6 @@ registerLanguage({
135
136
  mimetypes: ["text/javascript"],
136
137
  loader: () => import("./javascript-8kmx5dba.js")
137
138
  });
138
-
139
- // ../schema/defs/field-schema.schema.ts
140
- var PROJECT_FIELDS_SCHEMA_ID = "https://jxsuite.com/schema/project/fields/v2";
141
- var jxFieldSchemaDef = {
142
- description: "A single field definition inside a section entry schema — a small, recursive subset of " + "JSON Schema. Recursive positions reference the effective field union via the well-known " + "fields resource $id.",
143
- properties: {
144
- default: {},
145
- description: { type: "string" },
146
- enum: { type: "array" },
147
- format: { type: "string" },
148
- items: { $ref: PROJECT_FIELDS_SCHEMA_ID },
149
- properties: {
150
- additionalProperties: { $ref: PROJECT_FIELDS_SCHEMA_ID },
151
- type: "object"
152
- },
153
- required: { items: { type: "string" }, type: "array" },
154
- type: {
155
- enum: ["string", "number", "integer", "boolean", "array", "object"],
156
- type: "string"
157
- }
158
- },
159
- required: ["type"],
160
- type: "object"
161
- };
162
- var relationshipRefSchema = {
163
- description: "Relationship reference field: points at a named entry of a referenceable section via " + '"#/<sectionKey>/<name>" (specs/relationships.md). A bare reference is to-one; wrap in an ' + "array field's items for to-many.",
164
- properties: {
165
- $ref: { pattern: "^#/[A-Za-z][A-Za-z0-9_-]*/[A-Za-z0-9._-]+$", type: "string" },
166
- description: { type: "string" }
167
- },
168
- required: ["$ref"],
169
- type: "object"
170
- };
171
- var documentPathsCoreMembers = [
172
- {
173
- additionalProperties: false,
174
- description: 'Explicit value list: generates one page per value, bound to `param` (default "value").',
175
- properties: {
176
- param: { description: 'Route parameter to fill (default "value").', type: "string" },
177
- values: { description: "The values to expand.", type: "array" }
178
- },
179
- required: ["values"],
180
- type: "object"
181
- },
182
- {
183
- additionalProperties: false,
184
- description: "JSON data-file source: loads a project-relative file that must contain an array, and " + "generates one page per item.",
185
- properties: {
186
- $ref: {
187
- description: "Project-relative path to a .json file containing an array.",
188
- type: "string"
189
- },
190
- field: {
191
- description: 'Item field providing the parameter value (default "id").',
192
- type: "string"
193
- },
194
- param: { description: 'Route parameter to fill (default "id").', type: "string" }
195
- },
196
- required: ["$ref"],
197
- type: "object"
198
- },
199
- {
200
- description: "Legacy explicit form: an array of ready-made parameter objects, used as-is with no " + "expansion. Prefer one of the source shapes above.",
201
- items: { additionalProperties: { type: "string" }, type: "object" },
202
- type: "array"
203
- }
204
- ];
205
- var documentPathsUnknownSourceMember = {
206
- description: "A source shape contributed by an extension this schema cannot see. The project's generated " + "document.schema.json validates these exactly; enable the owning extension and regenerate " + "with `jx schema` to get precise checking here.",
207
- minProperties: 1,
208
- type: "object"
209
- };
210
139
  // ../schema/src/project-schemas.ts
211
140
  var SINGLE_SUBSCHEMA_KEYWORDS = [
212
141
  "additionalItems",
@@ -421,5 +350,5 @@ export {
421
350
  applyProjectSchemas
422
351
  };
423
352
 
424
- //# debugId=56BC430732E0483364756E2164756E21
425
- //# sourceMappingURL=monaco-setup-zjdp9zdw.js.map
353
+ //# debugId=524AB4DB3A258B7964756E2164756E21
354
+ //# sourceMappingURL=monaco-setup-e0yh25j4.js.map
@@ -1,15 +1,14 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../node_modules/monaco-editor/esm/vs/language/json/monaco.contribution.js", "../../../node_modules/monaco-editor/esm/vs/basic-languages/_.contribution.js", "../../../node_modules/monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution.js", "../../schema/defs/field-schema.schema.ts", "../../schema/src/project-schemas.ts", "../src/services/monaco-setup.ts"],
3
+ "sources": ["../../../node_modules/monaco-editor/esm/vs/language/json/monaco.contribution.js", "../../../node_modules/monaco-editor/esm/vs/basic-languages/_.contribution.js", "../../../node_modules/monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution.js", "../../schema/src/project-schemas.ts", "../src/services/monaco-setup.ts"],
4
4
  "sourcesContent": [
5
5
  "import '../../editor/browser/coreCommands.js';\nimport '../../editor/browser/widget/codeEditor/codeEditorWidget.js';\nimport '../../editor/browser/widget/diffEditor/diffEditor.contribution.js';\nimport '../../editor/contrib/anchorSelect/browser/anchorSelect.js';\nimport '../../editor/contrib/bracketMatching/browser/bracketMatching.js';\nimport '../../editor/contrib/caretOperations/browser/caretOperations.js';\nimport '../../editor/contrib/caretOperations/browser/transpose.js';\nimport '../../editor/contrib/clipboard/browser/clipboard.js';\nimport '../../editor/contrib/codeAction/browser/codeActionContributions.js';\nimport '../../editor/contrib/codelens/browser/codelensController.js';\nimport '../../editor/contrib/colorPicker/browser/colorPickerContribution.js';\nimport '../../editor/contrib/comment/browser/comment.js';\nimport '../../editor/contrib/contextmenu/browser/contextmenu.js';\nimport '../../editor/contrib/cursorUndo/browser/cursorUndo.js';\nimport '../../editor/contrib/dnd/browser/dnd.js';\nimport '../../editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js';\nimport '../../editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js';\nimport '../../editor/contrib/find/browser/findController.js';\nimport '../../editor/contrib/folding/browser/folding.js';\nimport '../../editor/contrib/fontZoom/browser/fontZoom.js';\nimport '../../editor/contrib/format/browser/formatActions.js';\nimport '../../editor/contrib/documentSymbols/browser/documentSymbols.js';\nimport '../../editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js';\nimport '../../editor/contrib/inlineProgress/browser/inlineProgress.js';\nimport '../../editor/contrib/gotoSymbol/browser/goToCommands.js';\nimport '../../editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js';\nimport '../../editor/contrib/gotoError/browser/gotoError.js';\nimport '../../editor/contrib/gpu/browser/gpuActions.js';\nimport '../../editor/contrib/hover/browser/hoverContribution.js';\nimport '../../editor/contrib/indentation/browser/indentation.js';\nimport '../../editor/contrib/inlayHints/browser/inlayHintsContribution.js';\nimport '../../editor/contrib/inPlaceReplace/browser/inPlaceReplace.js';\nimport '../../editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js';\nimport '../../editor/contrib/lineSelection/browser/lineSelection.js';\nimport '../../editor/contrib/linesOperations/browser/linesOperations.js';\nimport '../../editor/contrib/linkedEditing/browser/linkedEditing.js';\nimport '../../editor/contrib/links/browser/links.js';\nimport '../../editor/contrib/longLinesHelper/browser/longLinesHelper.js';\nimport '../../editor/contrib/middleScroll/browser/middleScroll.contribution.js';\nimport '../../editor/contrib/multicursor/browser/multicursor.js';\nimport '../../editor/contrib/parameterHints/browser/parameterHints.js';\nimport '../../editor/contrib/placeholderText/browser/placeholderText.contribution.js';\nimport '../../editor/contrib/rename/browser/rename.js';\nimport '../../editor/contrib/sectionHeaders/browser/sectionHeaders.js';\nimport '../../editor/contrib/semanticTokens/browser/documentSemanticTokens.js';\nimport '../../editor/contrib/semanticTokens/browser/viewportSemanticTokens.js';\nimport '../../editor/contrib/smartSelect/browser/smartSelect.js';\nimport '../../editor/contrib/snippet/browser/snippetController2.js';\nimport '../../editor/contrib/stickyScroll/browser/stickyScrollContribution.js';\nimport '../../editor/contrib/suggest/browser/suggestController.js';\nimport '../../editor/contrib/suggest/browser/suggestInlineCompletions.js';\nimport '../../editor/contrib/tokenization/browser/tokenization.js';\nimport '../../editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js';\nimport '../../editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js';\nimport '../../editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js';\nimport '../../editor/contrib/wordHighlighter/browser/wordHighlighter.js';\nimport '../../editor/contrib/wordOperations/browser/wordOperations.js';\nimport '../../editor/contrib/wordPartOperations/browser/wordPartOperations.js';\nimport '../../editor/contrib/readOnlyMessage/browser/contribution.js';\nimport '../../editor/contrib/diffEditorBreadcrumbs/browser/contribution.js';\nimport '../../editor/contrib/floatingMenu/browser/floatingMenu.contribution.js';\nimport '../../editor/common/standaloneStrings.js';\nimport '../../base/browser/ui/codicons/codicon/codicon.css';\nimport '../../base/browser/ui/codicons/codicon/codicon-modifiers.css';\nimport '../../editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js';\nimport '../../editor/standalone/browser/inspectTokens/inspectTokens.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js';\nimport '../../editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js';\nimport '../../editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js';\nimport '../../editor/standalone/browser/toggleHighContrast/toggleHighContrast.js';\nimport { languages, Emitter } from '../../editor/editor.api2.js';\n\nclass LanguageServiceDefaultsImpl {\n constructor(languageId, diagnosticsOptions, modeConfiguration) {\n this._onDidChange = new Emitter();\n this._languageId = languageId;\n this.setDiagnosticsOptions(diagnosticsOptions);\n this.setModeConfiguration(modeConfiguration);\n }\n get onDidChange() {\n return this._onDidChange.event;\n }\n get languageId() {\n return this._languageId;\n }\n get modeConfiguration() {\n return this._modeConfiguration;\n }\n get diagnosticsOptions() {\n return this._diagnosticsOptions;\n }\n setDiagnosticsOptions(options) {\n this._diagnosticsOptions = options || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n setModeConfiguration(modeConfiguration) {\n this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n}\nconst diagnosticDefault = {\n validate: true,\n allowComments: true,\n schemas: [],\n enableSchemaRequest: false,\n schemaRequest: \"warning\",\n schemaValidation: \"warning\",\n comments: \"error\",\n trailingCommas: \"error\"\n};\nconst modeConfigurationDefault = {\n documentFormattingEdits: true,\n documentRangeFormattingEdits: true,\n completionItems: true,\n hovers: true,\n documentSymbols: true,\n tokens: true,\n colors: true,\n foldingRanges: true,\n diagnostics: true,\n selectionRanges: true\n};\nconst jsonDefaults = new LanguageServiceDefaultsImpl(\n \"json\",\n diagnosticDefault,\n modeConfigurationDefault\n);\nconst getWorker = () => getMode().then((mode2) => mode2.getWorker());\nfunction getMode() {\n return import('./jsonMode.js');\n}\nlanguages.register({\n id: \"json\",\n extensions: [\".json\", \".bowerrc\", \".jshintrc\", \".jscsrc\", \".eslintrc\", \".babelrc\", \".har\"],\n aliases: [\"JSON\", \"json\"],\n mimetypes: [\"application/json\"]\n});\nlanguages.onLanguage(\"json\", () => {\n getMode().then((mode2) => mode2.setupMode(jsonDefaults));\n});\n\nexport { getWorker, jsonDefaults };\n",
6
6
  "import '../editor/browser/coreCommands.js';\nimport '../editor/browser/widget/codeEditor/codeEditorWidget.js';\nimport '../editor/browser/widget/diffEditor/diffEditor.contribution.js';\nimport '../editor/contrib/anchorSelect/browser/anchorSelect.js';\nimport '../editor/contrib/bracketMatching/browser/bracketMatching.js';\nimport '../editor/contrib/caretOperations/browser/caretOperations.js';\nimport '../editor/contrib/caretOperations/browser/transpose.js';\nimport '../editor/contrib/clipboard/browser/clipboard.js';\nimport '../editor/contrib/codeAction/browser/codeActionContributions.js';\nimport '../editor/contrib/codelens/browser/codelensController.js';\nimport '../editor/contrib/colorPicker/browser/colorPickerContribution.js';\nimport '../editor/contrib/comment/browser/comment.js';\nimport '../editor/contrib/contextmenu/browser/contextmenu.js';\nimport '../editor/contrib/cursorUndo/browser/cursorUndo.js';\nimport '../editor/contrib/dnd/browser/dnd.js';\nimport '../editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js';\nimport '../editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js';\nimport '../editor/contrib/find/browser/findController.js';\nimport '../editor/contrib/folding/browser/folding.js';\nimport '../editor/contrib/fontZoom/browser/fontZoom.js';\nimport '../editor/contrib/format/browser/formatActions.js';\nimport '../editor/contrib/documentSymbols/browser/documentSymbols.js';\nimport '../editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js';\nimport '../editor/contrib/inlineProgress/browser/inlineProgress.js';\nimport '../editor/contrib/gotoSymbol/browser/goToCommands.js';\nimport '../editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js';\nimport '../editor/contrib/gotoError/browser/gotoError.js';\nimport '../editor/contrib/gpu/browser/gpuActions.js';\nimport '../editor/contrib/hover/browser/hoverContribution.js';\nimport '../editor/contrib/indentation/browser/indentation.js';\nimport '../editor/contrib/inlayHints/browser/inlayHintsContribution.js';\nimport '../editor/contrib/inPlaceReplace/browser/inPlaceReplace.js';\nimport '../editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js';\nimport '../editor/contrib/lineSelection/browser/lineSelection.js';\nimport '../editor/contrib/linesOperations/browser/linesOperations.js';\nimport '../editor/contrib/linkedEditing/browser/linkedEditing.js';\nimport '../editor/contrib/links/browser/links.js';\nimport '../editor/contrib/longLinesHelper/browser/longLinesHelper.js';\nimport '../editor/contrib/middleScroll/browser/middleScroll.contribution.js';\nimport '../editor/contrib/multicursor/browser/multicursor.js';\nimport '../editor/contrib/parameterHints/browser/parameterHints.js';\nimport '../editor/contrib/placeholderText/browser/placeholderText.contribution.js';\nimport '../editor/contrib/rename/browser/rename.js';\nimport '../editor/contrib/sectionHeaders/browser/sectionHeaders.js';\nimport '../editor/contrib/semanticTokens/browser/documentSemanticTokens.js';\nimport '../editor/contrib/semanticTokens/browser/viewportSemanticTokens.js';\nimport '../editor/contrib/smartSelect/browser/smartSelect.js';\nimport '../editor/contrib/snippet/browser/snippetController2.js';\nimport '../editor/contrib/stickyScroll/browser/stickyScrollContribution.js';\nimport '../editor/contrib/suggest/browser/suggestController.js';\nimport '../editor/contrib/suggest/browser/suggestInlineCompletions.js';\nimport '../editor/contrib/tokenization/browser/tokenization.js';\nimport '../editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js';\nimport '../editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js';\nimport '../editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js';\nimport '../editor/contrib/wordHighlighter/browser/wordHighlighter.js';\nimport '../editor/contrib/wordOperations/browser/wordOperations.js';\nimport '../editor/contrib/wordPartOperations/browser/wordPartOperations.js';\nimport '../editor/contrib/readOnlyMessage/browser/contribution.js';\nimport '../editor/contrib/diffEditorBreadcrumbs/browser/contribution.js';\nimport '../editor/contrib/floatingMenu/browser/floatingMenu.contribution.js';\nimport '../editor/common/standaloneStrings.js';\nimport '../base/browser/ui/codicons/codicon/codicon.css';\nimport '../base/browser/ui/codicons/codicon/codicon-modifiers.css';\nimport '../editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js';\nimport '../editor/standalone/browser/inspectTokens/inspectTokens.js';\nimport '../editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js';\nimport '../editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js';\nimport '../editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js';\nimport '../editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js';\nimport '../editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js';\nimport '../editor/standalone/browser/toggleHighContrast/toggleHighContrast.js';\nimport { languages } from '../editor/editor.api2.js';\n\nconst languageDefinitions = {};\nconst lazyLanguageLoaders = {};\nclass LazyLanguageLoader {\n static getOrCreate(languageId) {\n if (!lazyLanguageLoaders[languageId]) {\n lazyLanguageLoaders[languageId] = new LazyLanguageLoader(languageId);\n }\n return lazyLanguageLoaders[languageId];\n }\n constructor(languageId) {\n this._languageId = languageId;\n this._loadingTriggered = false;\n this._lazyLoadPromise = new Promise((resolve, reject) => {\n this._lazyLoadPromiseResolve = resolve;\n this._lazyLoadPromiseReject = reject;\n });\n }\n load() {\n if (!this._loadingTriggered) {\n this._loadingTriggered = true;\n languageDefinitions[this._languageId].loader().then(\n (mod) => this._lazyLoadPromiseResolve(mod),\n (err) => this._lazyLoadPromiseReject(err)\n );\n }\n return this._lazyLoadPromise;\n }\n}\nfunction registerLanguage(def) {\n const languageId = def.id;\n languageDefinitions[languageId] = def;\n languages.register(def);\n const lazyLanguageLoader = LazyLanguageLoader.getOrCreate(languageId);\n languages.registerTokensProviderFactory(languageId, {\n create: async () => {\n const mod = await lazyLanguageLoader.load();\n return mod.language;\n }\n });\n languages.onLanguageEncountered(languageId, async () => {\n const mod = await lazyLanguageLoader.load();\n languages.setLanguageConfiguration(languageId, mod.conf);\n });\n}\n\nexport { registerLanguage };\n",
7
7
  "import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"javascript\",\n extensions: [\".js\", \".es6\", \".jsx\", \".mjs\", \".cjs\"],\n firstLine: \"^#!.*\\\\bnode\",\n filenames: [\"jakefile\"],\n aliases: [\"JavaScript\", \"javascript\", \"js\"],\n mimetypes: [\"text/javascript\"],\n loader: () => import('./javascript.js')\n});\n",
8
- "/**\n * Field-schema vocabulary (specs/extensions.md §5.3, specs/relationships.md).\n *\n * JxFieldSchema is the JSON-Schema-subset shape for a single field inside a section entry schema\n * (content frontmatter fields, table columns). Recursive positions (`items`, nested `properties`)\n * reference the well-known **fields resource URI** — a schema resource the generated per-project\n * entry document re-embeds under the same `$id` with the effective union (core shape +\n * RelationshipRef + extension extras), shadowing the shipped default by standard compound-document\n * `$id` resolution. Extension fragments reference the same URI at their field positions.\n *\n * (An earlier design used `$dynamicRef`/`$dynamicAnchor` here; ajv restricts `$dynamicAnchor` to\n * schema-resource roots, which cannot express a non-root recursion unit, so the model uses plain\n * `$id` indirection instead — verified against ajv 8.20 / 2020-12.)\n */\n\n/** The well-known $id of the project field-schema union resource. */\nexport const PROJECT_FIELDS_SCHEMA_ID = \"https://jxsuite.com/schema/project/fields/v2\";\n\n/** The well-known $id of the document $paths-value union resource. */\nexport const DOCUMENT_PATHS_SCHEMA_ID = \"https://jxsuite.com/schema/document/paths/v2\";\n\nexport const jxFieldSchemaDef = {\n description:\n \"A single field definition inside a section entry schema — a small, recursive subset of \" +\n \"JSON Schema. Recursive positions reference the effective field union via the well-known \" +\n \"fields resource $id.\",\n properties: {\n default: {},\n description: { type: \"string\" },\n enum: { type: \"array\" },\n format: { type: \"string\" },\n items: { $ref: PROJECT_FIELDS_SCHEMA_ID },\n properties: {\n additionalProperties: { $ref: PROJECT_FIELDS_SCHEMA_ID },\n type: \"object\",\n },\n required: { items: { type: \"string\" }, type: \"array\" },\n type: {\n enum: [\"string\", \"number\", \"integer\", \"boolean\", \"array\", \"object\"],\n type: \"string\",\n },\n },\n required: [\"type\"],\n type: \"object\",\n} as const;\n\nexport const relationshipRefSchema = {\n description:\n \"Relationship reference field: points at a named entry of a referenceable section via \" +\n '\"#/<sectionKey>/<name>\" (specs/relationships.md). A bare reference is to-one; wrap in an ' +\n \"array field's items for to-many.\",\n properties: {\n $ref: { pattern: \"^#/[A-Za-z][A-Za-z0-9_-]*/[A-Za-z0-9._-]+$\", type: \"string\" },\n description: { type: \"string\" },\n },\n required: [\"$ref\"],\n type: \"object\",\n} as const;\n\n/**\n * The CORE `$paths` source shapes — the members the shipped default paths union carries, and the\n * ones every per-project entry document unions extension shapes on top of.\n *\n * These mirror `resolvePathEntries` in the compiler's pages-discovery exactly (specs/\n * site-architecture.md §4.3): an explicit value list, a JSON data-file reference, and the legacy\n * bare array of parameter objects. Anything else is dispatched by discriminator key to an\n * extension's `resolvePaths` capability, so extension shapes reach the union through the entry\n * document rather than from here.\n *\n * Each shape is CLOSED (`additionalProperties: false`). `$paths` is a build-time instruction with a\n * fully specified grammar and no forward-compatible extension points of its own — a stray or\n * misspelled key means the route silently expands to nothing, which is exactly the failure worth\n * catching in the editor.\n */\nexport const documentPathsCoreMembers = [\n {\n additionalProperties: false,\n description:\n 'Explicit value list: generates one page per value, bound to `param` (default \"value\").',\n properties: {\n param: { description: 'Route parameter to fill (default \"value\").', type: \"string\" },\n values: { description: \"The values to expand.\", type: \"array\" },\n },\n required: [\"values\"],\n type: \"object\",\n },\n {\n additionalProperties: false,\n description:\n \"JSON data-file source: loads a project-relative file that must contain an array, and \" +\n \"generates one page per item.\",\n properties: {\n $ref: {\n description: \"Project-relative path to a .json file containing an array.\",\n type: \"string\",\n },\n field: {\n description: 'Item field providing the parameter value (default \"id\").',\n type: \"string\",\n },\n param: { description: 'Route parameter to fill (default \"id\").', type: \"string\" },\n },\n required: [\"$ref\"],\n type: \"object\",\n },\n {\n description:\n \"Legacy explicit form: an array of ready-made parameter objects, used as-is with no \" +\n \"expansion. Prefer one of the source shapes above.\",\n items: { additionalProperties: { type: \"string\" }, type: \"object\" },\n type: \"array\",\n },\n] as const;\n\n/**\n * The extra member the SHIPPED DEFAULT union carries and a per-project entry document does not.\n *\n * A default cannot know which extensions a project enables, so without this any extension source\n * shape — `{ contentType: \"blog\" }` with the parser on — would be a FALSE ERROR wherever the\n * default is what is in play: the studio's offline fallback before per-project schemas arrive, and\n * clients that fetch the canonical URL. Spec §5.4 promises that path degrades to\n * _under-suggestion_, never false errors, so the default accepts any non-empty object and the entry\n * document — which does know the enabled extensions, and is what `jx validate` and every editor\n * actually resolve — is the strict one.\n */\nexport const documentPathsUnknownSourceMember = {\n description:\n \"A source shape contributed by an extension this schema cannot see. The project's generated \" +\n \"document.schema.json validates these exactly; enable the owning extension and regenerate \" +\n \"with `jx schema` to get precise checking here.\",\n minProperties: 1,\n type: \"object\",\n} as const;\n",
9
8
  "/**\n * Per-project schema emitters (specs/extensions.md §5.2).\n *\n * Pure functions: they emit the generated entry documents (project.schema.json and\n * document.schema.json) from already-resolved, project-relative fragment paths. All composition is\n * standard JSON Schema 2020-12:\n *\n * - A plain `allOf` over fragment `$ref`s, closed with `unevaluatedProperties: false`;\n * - The two well-known union resources (`PROJECT_FIELDS_SCHEMA_ID`, `DOCUMENT_PATHS_SCHEMA_ID`)\n * re-embedded under `$defs` with their canonical `$id`s, carrying the _effective_ unions.\n * Compound-document `$id` resolution makes every fragment's `$ref` to those URIs land on the\n * entry document's embed instead of the shipped defaults — the override mechanism.\n *\n * Inside the embeds all refs are canonical URIs (never relative paths): a `$ref` inside a resource\n * with an absolute `$id` resolves against that `$id`. Relative `./node_modules/...` paths appear\n * only in the entry document's own `allOf`/`$ref`, resolved against the file location. Hosts\n * validating with ajv should inject an `$id` set to the entry file's URL at load time so those\n * relative refs resolve (the committed files stay machine-path-free).\n */\n\nimport {\n DOCUMENT_PATHS_SCHEMA_ID,\n PROJECT_FIELDS_SCHEMA_ID,\n documentPathsCoreMembers,\n} from \"../defs/field-schema.schema\";\n\nexport { DOCUMENT_PATHS_SCHEMA_ID, PROJECT_FIELDS_SCHEMA_ID } from \"../defs/field-schema.schema\";\n\n/** The canonical $id of the core project fragment. */\nexport const PROJECT_CORE_SCHEMA_ID = \"https://jxsuite.com/schema/project/core/v2\";\n\nexport const GENERATED_SCHEMA_COMMENT =\n \"Generated by `jx schema` from project.json#/extensions — do not edit.\";\n\nexport interface ProjectSchemaInputs {\n /**\n * Project-relative path of the core fragment, e.g.\n * \"./node_modules/@jxsuite/schema/schemas/project.core.schema.json\".\n */\n corePath: string;\n /** Project-relative extension fragment paths, in extension declaration order. */\n fragments: string[];\n /**\n * Additional field-union members beyond the core field shape and RelationshipRef, as canonical\n * \"uri#/pointer\" refs (e.g. a connector's column extras). Never relative paths — they resolve\n * against the embed's $id.\n */\n fieldSchemaRefs?: string[];\n}\n\n/** Emit the `project.schema.json` entry document for a project. */\nexport function emitProjectSchema(inputs: ProjectSchemaInputs): Record<string, unknown> {\n const { corePath, fragments, fieldSchemaRefs = [] } = inputs;\n return {\n $comment: GENERATED_SCHEMA_COMMENT,\n $defs: {\n Fields: {\n $id: PROJECT_FIELDS_SCHEMA_ID,\n anyOf: [\n { $ref: `${PROJECT_CORE_SCHEMA_ID}#/$defs/JxFieldSchema` },\n { $ref: `${PROJECT_CORE_SCHEMA_ID}#/$defs/RelationshipRef` },\n ...fieldSchemaRefs.map((ref) => ({ $ref: ref })),\n ],\n },\n },\n $schema: \"https://json-schema.org/draft/2020-12/schema\",\n allOf: [{ $ref: corePath }, ...fragments.map((ref) => ({ $ref: ref }))],\n type: \"object\",\n unevaluatedProperties: false,\n };\n}\n\n// ─── Generic bundler (specs/extensions.md §5.4) ──────────────────────────────\n\n/** Injected JSON loader for {@link bundleSchema} — receives a normalized, slash-separated path. */\nexport type SchemaJsonLoader = (path: string) => Promise<Record<string, unknown>>;\n\n/**\n * Bundle an entry document into a single self-contained compound schema for hosts that cannot fetch\n * files (editor schema registration, cloud studio). Every relative-path `$ref` target is loaded\n * through the injected loader and embedded under the entry's `$defs`, keyed by its `$id` (or a\n * generated `urn:jx:bundled:*` one when the file declares none); the referencing `$ref`s are\n * rewritten to those canonical URIs. Resource boundaries are preserved: embedded resources keep\n * their `$id`s, refs inside an embedded absolute-`$id` resource are canonical and stay untouched,\n * and a resource whose `$id` is already present in the compound document is not embedded twice.\n *\n * @param {Record<string, unknown>} entry - The entry document (e.g. a parsed project.schema.json)\n * @param {SchemaJsonLoader} loadJson - Loader for `$ref` target files (host-restricted)\n * @param {string} baseDir - Directory the entry document's relative refs resolve against\n * @param {string[]} [alsoEmbed] - Relative paths of resources to embed even though no path-`$ref`\n * reaches them, because they are referenced only by canonical `$id` (a document fragment whose\n * `$defs` feed the paths union). Without this they would stay dangling.\n * @returns {Promise<Record<string, unknown>>} A new, self-contained schema (the input is not\n * mutated)\n */\nexport async function bundleSchema(\n entry: Record<string, unknown>,\n loadJson: SchemaJsonLoader,\n baseDir: string,\n alsoEmbed: string[] = [],\n): Promise<Record<string, unknown>> {\n const bundled = structuredClone(entry);\n const embeddedByPath = new Map<string, string>();\n const embeddedIds = new Set<string>();\n collectResourceIds(bundled, embeddedIds);\n let generatedCount = 0;\n\n /** Ordered queue of embeds so $defs insertion happens after the entry walk (stable output). */\n const embed = async (path: string): Promise<string> => {\n const normalized = normalizeSchemaPath(path);\n const prior = embeddedByPath.get(normalized);\n if (prior !== undefined) {\n return prior;\n }\n let resource: Record<string, unknown>;\n try {\n resource = structuredClone(await loadJson(normalized));\n } catch (error) {\n throw new Error(\n `bundleSchema: cannot load $ref target \"${normalized}\": ${errorText(error)}`,\n { cause: error },\n );\n }\n const ownId =\n typeof resource.$id === \"string\" && hasUriScheme(resource.$id) ? resource.$id : null;\n generatedCount += ownId === null ? 1 : 0;\n const id = ownId ?? `urn:jx:bundled:${generatedCount}`;\n embeddedByPath.set(normalized, id);\n if (embeddedIds.has(id)) {\n // The canonical resource is already part of the compound document — refs land on it.\n return id;\n }\n embeddedIds.add(id);\n resource.$id = id;\n await rewrite(resource, schemaDirOf(normalized), true);\n const defs = (bundled.$defs ??= {}) as Record<string, unknown>;\n defs[id] = resource;\n return id;\n };\n\n /**\n * Walk a (sub)schema rewriting relative-path `$ref`s. `fileDir` is the directory relative refs\n * resolve against, or null inside an embedded absolute-`$id` resource (canonical scope).\n */\n const rewrite = async (node: unknown, fileDir: string | null, isRoot = false): Promise<void> => {\n if (Array.isArray(node)) {\n for (const item of node) {\n await rewrite(item, fileDir);\n }\n return;\n }\n if (node === null || typeof node !== \"object\") {\n return;\n }\n const obj = node as Record<string, unknown>;\n let scope = fileDir;\n if (!isRoot && typeof obj.$id === \"string\" && hasUriScheme(obj.$id)) {\n // Entering an embedded resource with a canonical $id: refs inside resolve against that\n // $id (never the file location), so there is nothing to inline.\n scope = null;\n }\n const ref = obj.$ref;\n if (typeof ref === \"string\" && scope !== null && !ref.startsWith(\"#\") && !hasUriScheme(ref)) {\n const hashIndex = ref.indexOf(\"#\");\n const target = hashIndex === -1 ? ref : ref.slice(0, hashIndex);\n const fragment = hashIndex === -1 ? \"\" : ref.slice(hashIndex);\n if (target) {\n const id = await embed(`${scope}/${target}`);\n obj.$ref = `${id}${fragment}`;\n }\n }\n for (const value of Object.values(obj)) {\n await rewrite(value, scope);\n }\n };\n\n await rewrite(bundled, normalizeSchemaPath(baseDir), true);\n for (const path of alsoEmbed) {\n await embed(`${normalizeSchemaPath(baseDir)}/${path}`);\n }\n return bundled;\n}\n\n// ─── Single-resource flattening (specs/extensions.md §5.4) ───────────────────\n\n/**\n * Keywords whose value is a single subschema (or, for draft-07 tuple `items`, an array of them).\n * The flattener walks ONLY these keyword positions, never every object key: `examples`, `default`,\n * `const` and `enum` hold arbitrary instance data, and Jx document examples legitimately contain\n * `$ref` strings (`#/state/cart`) that must survive untouched.\n */\nconst SINGLE_SUBSCHEMA_KEYWORDS = [\n \"additionalItems\",\n \"additionalProperties\",\n \"contains\",\n \"contentSchema\",\n \"else\",\n \"if\",\n \"items\",\n \"not\",\n \"propertyNames\",\n \"then\",\n \"unevaluatedItems\",\n \"unevaluatedProperties\",\n] as const;\n\n/** Keywords whose value maps names to subschemas. */\nconst MAP_SUBSCHEMA_KEYWORDS = [\n \"$defs\",\n \"definitions\",\n \"dependencies\",\n \"dependentSchemas\",\n \"patternProperties\",\n \"properties\",\n] as const;\n\n/** Keywords whose value is an array of subschemas. */\nconst LIST_SUBSCHEMA_KEYWORDS = [\"allOf\", \"anyOf\", \"oneOf\", \"prefixItems\"] as const;\n\n/** True for a plain object node (a candidate subschema); booleans and arrays are not. */\nfunction isSchemaObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n/** Escape a `$defs` key for use as a JSON Pointer segment (RFC 6901). */\nfunction escapePointerSegment(segment: string): string {\n return segment.replaceAll(\"~\", \"~0\").replaceAll(\"/\", \"~1\");\n}\n\n/**\n * Walk the known subschema keyword positions of `node`.\n *\n * @param {Record<string, unknown>} node - The schema object to walk\n * @param {string} pointer - JSON Pointer of `node` within the document\n * @yields {[Record<string, unknown>, string]} Each subschema paired with its own JSON Pointer\n */\nfunction* subschemaEntries(\n node: Record<string, unknown>,\n pointer: string,\n): Generator<[Record<string, unknown>, string]> {\n for (const keyword of SINGLE_SUBSCHEMA_KEYWORDS) {\n const value = node[keyword];\n if (Array.isArray(value)) {\n for (const [index, item] of value.entries()) {\n if (isSchemaObject(item)) {\n yield [item, `${pointer}/${keyword}/${index}`];\n }\n }\n } else if (isSchemaObject(value)) {\n yield [value, `${pointer}/${keyword}`];\n }\n }\n for (const keyword of MAP_SUBSCHEMA_KEYWORDS) {\n const value = node[keyword];\n if (!isSchemaObject(value)) {\n continue;\n }\n for (const [name, item] of Object.entries(value)) {\n if (isSchemaObject(item)) {\n yield [item, `${pointer}/${keyword}/${escapePointerSegment(name)}`];\n }\n }\n }\n for (const keyword of LIST_SUBSCHEMA_KEYWORDS) {\n const value = node[keyword];\n if (!Array.isArray(value)) {\n continue;\n }\n for (const [index, item] of value.entries()) {\n if (isSchemaObject(item)) {\n yield [item, `${pointer}/${keyword}/${index}`];\n }\n }\n }\n}\n\n/**\n * A readable, collision-free `$defs` key for an embedded resource's `$id`: drop the scheme, the\n * authority, and the conventional `schema/` namespace segment, then join the remainder with dashes\n * (`https://jxsuite.com/schema/project/core/v2` → `project-core-v2`, `urn:jx:bundled:1` →\n * `jx-bundled-1`). Collisions get a numeric suffix, so output stays deterministic given the\n * emitters' stable `$defs` order.\n *\n * @param {string} id - The resource's canonical `$id`\n * @param {Set<string>} used - Keys already taken in the target `$defs` (mutated)\n * @returns {string}\n */\nfunction slugForSchemaId(id: string, used: Set<string>): string {\n let rest = id.replace(/^[a-zA-Z][a-zA-Z\\d+.-]*:/, \"\");\n if (rest.startsWith(\"//\")) {\n const slash = rest.indexOf(\"/\", 2);\n rest = slash === -1 ? \"\" : rest.slice(slash + 1);\n }\n rest = rest.replace(/^schema\\//, \"\");\n const base =\n rest\n .split(/[^a-zA-Z0-9]+/)\n .filter(Boolean)\n .join(\"-\") || \"resource\";\n let key = base;\n for (let n = 2; used.has(key); n += 1) {\n key = `${base}-${n}`;\n }\n used.add(key);\n return key;\n}\n\n/**\n * Collapse a bundled compound document into a SINGLE schema resource: embedded resources are\n * rekeyed from their canonical `$id`s to readable `$defs` slugs, their `$id`s are dropped, and\n * every `$ref` becomes a root-relative JSON Pointer (`#/$defs/project-core-v2/$defs/StyleObject`).\n *\n * Why this is required rather than cosmetic: VS Code's JSON language service (and Monaco, which\n * embeds it) implements neither half of compound-document resolution. It resolves a `#/pointer` ref\n * against the DOCUMENT ROOT — never re-based on an enclosing `$id` — so a fragment's own\n * `#/$defs/StyleObject` reports \"can not be resolved\"; and it treats any ref with a non-empty part\n * before `#` as EXTERNAL, fetching `https://jxsuite.com/schema/...` over the network instead of\n * matching the embedded resource, which fails offline and (when it succeeds) silently substitutes\n * the shipped defaults for the project's effective unions. Root-pointer-only refs are the one form\n * every consumer resolves identically — ajv, the language service, and Monaco alike.\n *\n * `$id` shadowing (§5.3) still decides the outcome; it is simply resolved AT FLATTEN TIME, since\n * refs to a shadowed `$id` rewrite to the pointer of the entry document's embed.\n *\n * @param {Record<string, unknown>} entry - A bundled compound document (output of\n * {@link bundleSchema})\n * @returns {Record<string, unknown>} A new single-resource schema (the input is not mutated)\n */\nexport function flattenSchema(entry: Record<string, unknown>): Record<string, unknown> {\n const flat = structuredClone(entry);\n\n // 1. Rekey URI-keyed `$defs` entries to readable slugs (pointers address them by key).\n if (isSchemaObject(flat.$defs)) {\n const used = new Set(Object.keys(flat.$defs).filter((key) => !hasUriScheme(key)));\n const renamed: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(flat.$defs)) {\n const id = isSchemaObject(value) && typeof value.$id === \"string\" ? value.$id : key;\n renamed[hasUriScheme(key) ? slugForSchemaId(id, used) : key] = value;\n }\n flat.$defs = renamed;\n }\n\n // 2. Map each embedded resource's `$id` to its pointer here (first wins, as the bundler embeds).\n const idToPointer = new Map<string, string>();\n const scan = (node: Record<string, unknown>, pointer: string): void => {\n const { $id } = node;\n if (typeof $id === \"string\" && hasUriScheme($id) && !idToPointer.has($id)) {\n idToPointer.set($id, pointer);\n }\n for (const [child, childPointer] of subschemaEntries(node, pointer)) {\n scan(child, childPointer);\n }\n };\n scan(flat, \"#\");\n\n // 3. Rewrite refs against the enclosing resource, then dissolve the resource boundary.\n const rewrite = (node: Record<string, unknown>, scope: string): void => {\n let inner = scope;\n const { $id } = node;\n if (typeof $id === \"string\" && hasUriScheme($id)) {\n inner = idToPointer.get($id) ?? scope;\n if (inner !== \"#\") {\n // The root keeps its identity; nested resources must not remain ref targets.\n delete node.$id;\n }\n }\n const ref = node.$ref;\n if (typeof ref === \"string\") {\n const hashIndex = ref.indexOf(\"#\");\n const target = hashIndex === -1 ? ref : ref.slice(0, hashIndex);\n const fragment = hashIndex === -1 ? \"\" : ref.slice(hashIndex + 1);\n if (target === \"\") {\n // A local pointer resolves against the resource it appears in, not the file.\n if (fragment.startsWith(\"/\")) {\n node.$ref = `${inner}${fragment}`;\n }\n } else {\n const base = idToPointer.get(target);\n if (base !== undefined) {\n node.$ref = fragment ? `${base}${fragment}` : base;\n }\n }\n }\n for (const [child] of subschemaEntries(node, inner)) {\n rewrite(child, inner);\n }\n };\n rewrite(flat, \"#\");\n return flat;\n}\n\n/** Collect every absolute `$id` already present in a document (embeds like the field union). */\nfunction collectResourceIds(node: unknown, out: Set<string>): void {\n if (Array.isArray(node)) {\n for (const item of node) {\n collectResourceIds(item, out);\n }\n return;\n }\n if (node === null || typeof node !== \"object\") {\n return;\n }\n const obj = node as Record<string, unknown>;\n if (typeof obj.$id === \"string\" && hasUriScheme(obj.$id)) {\n out.add(obj.$id);\n }\n for (const value of Object.values(obj)) {\n collectResourceIds(value, out);\n }\n}\n\n/** True when a ref/id carries a URI scheme (https:, urn:, file:) — i.e. is not a relative path. */\nfunction hasUriScheme(ref: string): boolean {\n return /^[a-zA-Z][a-zA-Z\\d+.-]*:/.test(ref);\n}\n\n/** Normalize a path to forward slashes, resolving \".\" and \"..\" segments (environment-agnostic). */\nfunction normalizeSchemaPath(path: string): string {\n const slashed = path.replaceAll(\"\\\\\", \"/\");\n const absolute = slashed.startsWith(\"/\");\n const parts: string[] = [];\n for (const segment of slashed.split(\"/\")) {\n if (segment === \"\" || segment === \".\") {\n continue;\n }\n if (segment === \"..\") {\n if (parts.length > 0 && parts.at(-1) !== \"..\") {\n parts.pop();\n } else if (!absolute) {\n parts.push(\"..\");\n }\n continue;\n }\n parts.push(segment);\n }\n return (absolute ? \"/\" : \"\") + parts.join(\"/\");\n}\n\n/** The directory portion of a normalized schema path (\".\" when there is none). */\nfunction schemaDirOf(path: string): string {\n const index = path.lastIndexOf(\"/\");\n if (index === -1) {\n return \".\";\n }\n return index === 0 ? \"/\" : path.slice(0, index);\n}\n\nfunction errorText(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nexport interface DocumentSchemaInputs {\n /**\n * Project-relative path of the core document schema, e.g.\n * \"./node_modules/@jxsuite/schema/schema.json\".\n */\n corePath: string;\n /** Canonical \"uri#/pointer\" refs unioned into the paths resource, in declaration order. */\n pathsValueRefs: string[];\n}\n\n/**\n * Emit the `document.schema.json` entry document for a project.\n *\n * The core reference goes in a single-member `allOf`, never a root-level `$ref`. They are\n * equivalent to a compliant validator, but VS Code's JSON language service resolves a `$ref` by\n * SHALLOW-MERGING the target's keys into the referencing node — from the root, that overwrites the\n * root's own `$defs` with the core resource's `$defs`, and every later `#/$defs/<embed>/...`\n * pointer stops resolving. Wrapping in `allOf` keeps the merge target off the root.\n *\n * @param {DocumentSchemaInputs} inputs - Core path and the contributed paths-union refs\n * @returns {Record<string, unknown>}\n */\nexport function emitDocumentSchema(inputs: DocumentSchemaInputs): Record<string, unknown> {\n const { corePath, pathsValueRefs } = inputs;\n return {\n $comment: GENERATED_SCHEMA_COMMENT,\n $defs: {\n /* The EFFECTIVE paths union: the core source shapes plus every extension-contributed one.\n Carrying the core members here (rather than leaving them to the core schema) is what makes\n the override additive — this embed shadows the shipped default by $id, so anything it omits\n stops validating. Mirrors the field union in emitProjectSchema, which names its core\n members the same way. */\n PathsValue: {\n $id: DOCUMENT_PATHS_SCHEMA_ID,\n anyOf: [...documentPathsCoreMembers, ...pathsValueRefs.map((ref) => ({ $ref: ref }))],\n },\n },\n $schema: \"https://json-schema.org/draft/2020-12/schema\",\n allOf: [{ $ref: corePath }],\n };\n}\n\n// ─── Composition (specs/extensions.md §5.2) ──────────────────────────────────\n\n/** Loader-resolvable refs to one extension's shipped schema fragments, as its manifest names them. */\nexport interface ExtensionFragmentRefs {\n /** Project fragment — plain `properties` for the extension's section keys. */\n project?: string | undefined;\n /** Document fragment — its `$defs` become `$paths` source-union members. */\n document?: string | undefined;\n /** Fields fragment — its `$defs` become Field-schema union members. */\n fields?: string | undefined;\n}\n\nexport interface ComposeProjectSchemasInputs {\n /** Ref to the core project fragment (`@jxsuite/schema/schemas/project.core.schema.json`). */\n coreProjectRef: string;\n /** Ref to the core document schema (`@jxsuite/schema/schema.json`). */\n coreDocumentRef: string;\n /** Enabled extensions in registry order; each contributes the fragments it ships. */\n extensions: ExtensionFragmentRefs[];\n /** Loads a ref's JSON. Every ref above and every `$ref` inside resolves through this ALONE. */\n loadJson: SchemaJsonLoader;\n /** Directory the refs resolve against (\"\" for hosts addressing by bare specifier). */\n baseDir: string;\n}\n\n/**\n * Compose a project's two committed entry documents from the core schemas and its enabled\n * extensions' fragments — bundled, then flattened to root JSON pointers (§5.2/§5.4).\n *\n * Host-agnostic by construction: every file it needs arrives through `loadJson`, so the same\n * composition runs over a filesystem (`jx schema`) and over a virtual tree of bundled artifacts\n * (the cloud session, which has no `node_modules` and no filesystem). That shared path is the point\n * — a project's schemas must not depend on which host generated them.\n *\n * @param {ComposeProjectSchemasInputs} inputs - Core refs, extension fragments, loader, base\n * @returns {Promise<{ project: Record<string, unknown>; document: Record<string, unknown> }>} The\n * self-contained entry documents, ready to write or to hand an editor\n */\nexport async function composeProjectSchemas(inputs: ComposeProjectSchemasInputs): Promise<{\n project: Record<string, unknown>;\n document: Record<string, unknown>;\n}> {\n const { baseDir, coreDocumentRef, coreProjectRef, extensions, loadJson } = inputs;\n\n const fragments: string[] = [];\n const pathsValueRefs: string[] = [];\n const documentFragments: string[] = [];\n const fieldSchemaRefs: string[] = [];\n for (const ext of extensions) {\n if (ext.project) {\n fragments.push(ext.project);\n }\n if (ext.document) {\n const documentRefs = await fragmentDefsRefs(ext.document, loadJson, baseDir);\n pathsValueRefs.push(...documentRefs);\n /* The paths union names this fragment's shapes by canonical $id only, so the bundler needs\n the path handed to it explicitly or those refs stay dangling. A fragment that contributed\n nothing (no $id, or no $defs) is left out rather than embedded unreferenced. */\n if (documentRefs.length > 0) {\n documentFragments.push(ext.document);\n }\n }\n // The `schemas.fields` manifest convention: a fragment whose $defs members are extension\n // Field extras, unioned into the per-project field resource (specs/extensions.md §5.3).\n if (ext.fields) {\n fieldSchemaRefs.push(...(await fragmentDefsRefs(ext.fields, loadJson, baseDir)));\n fragments.push(ext.fields);\n }\n }\n\n // Bundle then flatten: the emitted relative refs are an intermediate form only.\n const projectEntry = emitProjectSchema({ corePath: coreProjectRef, fieldSchemaRefs, fragments });\n const documentEntry = emitDocumentSchema({ corePath: coreDocumentRef, pathsValueRefs });\n return {\n document: flattenSchema(\n await bundleSchema(documentEntry, loadJson, baseDir, documentFragments),\n ),\n project: flattenSchema(await bundleSchema(projectEntry, loadJson, baseDir)),\n };\n}\n\n/**\n * Canonical \"uri#/pointer\" refs into a fragment's `$defs` shapes: one per `$defs` entry, addressed\n * by the fragment's own `$id` (refs inside the entry document's embeds resolve against canonical\n * URIs, never file paths). An `$id`-less or `$defs`-less fragment contributes no union members —\n * that is simply the shape of a fragment declaring only `properties`.\n *\n * An UNREADABLE fragment contributes nothing here but still fails the composition, because the\n * bundler goes on to embed the same ref and throws. That is deliberate: silently dropping it would\n * emit an entry document that under-validates the project with nothing to show for it. A host that\n * cannot supply an extension's fragments must leave that extension out of `extensions` entirely —\n * which is exactly what the cloud session does for packages it does not bundle.\n *\n * @param {string} ref - Loader-resolvable ref to the fragment, relative to `baseDir`\n * @param {SchemaJsonLoader} loadJson - The host's loader\n * @param {string} baseDir - Directory the ref resolves against\n * @returns {Promise<string[]>} One ref per `$defs` member, in declaration order\n */\nasync function fragmentDefsRefs(\n ref: string,\n loadJson: SchemaJsonLoader,\n baseDir: string,\n): Promise<string[]> {\n let fragment: { $id?: unknown; $defs?: Record<string, unknown> };\n try {\n fragment = await loadJson(normalizeSchemaPath(`${normalizeSchemaPath(baseDir)}/${ref}`));\n } catch {\n return [];\n }\n const { $id } = fragment;\n if (typeof $id !== \"string\" || !fragment.$defs) {\n return [];\n }\n return Object.keys(fragment.$defs).map((name) => `${$id}#/$defs/${name}`);\n}\n",
10
9
  "/** Monaco editor setup — workers, language contributions, and JX schema registration. */\n\n// @ts-expect-error — Monaco ESM contribution has no type declarations for named exports\nimport { jsonDefaults } from \"monaco-editor/esm/vs/language/json/monaco.contribution.js\";\nimport \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport \"monaco-editor/esm/vs/language/typescript/monaco.contribution.js\";\nimport \"monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution.js\";\n\nimport { flattenSchema } from \"@jxsuite/schema/project-schemas\";\nimport jxSchema from \"@jxsuite/schema/schema.json\";\nimport projectSchema from \"@jxsuite/schema/project-schema.json\";\n\n/* Re-exported for the modules that already imported it from here. New callers should reach for\n `./model-uri` directly — it is Monaco-free, and importing this module loads the editor. */\nexport { modelUriFor } from \"./model-uri\";\n\nconst WORKER_FILES: Record<string, string> = {\n editorWorkerService: \"editor.worker.js\",\n javascript: \"ts.worker.js\",\n json: \"json.worker.js\",\n typescript: \"ts.worker.js\",\n};\n\n/**\n * Resolve a Monaco worker to the PRE-BUNDLED copy that ships NEXT TO this bundle — `workers/`\n * beside `dist/studio.js`, written by scripts/build-workers.ts.\n *\n * Self-location via `import.meta.url` (Bun emits it verbatim for browser targets) is what makes one\n * expression correct on every host, because none of them agree on a prefix and two of them cannot\n * be served by one: the repo dev server mounts the shell at `/packages/studio/index.html`, the\n * packaged desktop app at `views://studio/index.html`, the desktop loopback server under\n * `/__studio__/`, and the cloud at `/edit/:owner/:repo@:branch` — a DEEP path, so even a\n * document-relative URL would resolve into the wrong directory there. The only invariant is the\n * bundle's own location.\n *\n * A root-absolute `/monaco-editor/esm/vs/...` (what this used to emit) resolved on exactly one of\n * them, the repo dev server, which serves bare specifiers out of the monorepo's `node_modules`.\n * Everywhere else it 404s — and a Monaco worker that fails to start takes the whole JSON language\n * service with it: no schema validation, no completion, no hover, and no error the user can see.\n *\n * @param {string} label - Monaco worker label (\"json\", \"typescript\", …)\n * @returns {string} Absolute URL of the worker bundle\n */\nexport function workerUrl(label: string): string {\n const file = WORKER_FILES[label] || WORKER_FILES.editorWorkerService!;\n return new URL(`workers/${file}`, import.meta.url).href;\n}\n\nself.MonacoEnvironment = {\n getWorker(_, label: string) {\n return new Worker(workerUrl(label), { type: \"module\" });\n },\n};\n\n/* Monaco caches glyph widths when an editor is created. JetBrains Mono is a\n vendored webfont (index.html @font-face) and may finish loading after the\n first editor mounts, so remeasure once all document fonts are ready to keep\n cursor and selection alignment correct. */\nif (typeof document !== \"undefined\" && document.fonts?.ready) {\n // oxlint-disable-next-line unicorn/prefer-top-level-await -- fire-and-forget: awaiting fonts.ready at top level would block module evaluation (and studio startup) until webfonts load\n void document.fonts.ready.then(async () => {\n const monaco = await import(\"monaco-editor/esm/vs/editor/editor.api.js\");\n monaco.editor.remeasureFonts();\n });\n}\n\n/** Folder globs whose JSON files validate against the (per-project or core) document schema. */\nconst DOCUMENT_FILE_MATCH = [\n \"pages/*.json\",\n \"pages/**/*.json\",\n \"layouts/*.json\",\n \"layouts/**/*.json\",\n \"components/*.json\",\n \"components/**/*.json\",\n \"elements/*.json\",\n \"elements/**/*.json\",\n];\n\n/**\n * Model ids the committed entry documents are bound by. A Jx project binds its files with a\n * RELATIVE in-document pointer (extensions.md §5.2/§5.4) — `project.json` carries `\"$schema\":\n * \"./project.schema.json\"` — and Monaco mounts every studio model at\n * `file:///<project-relative-path>` (canvas/canvas-render.ts), so the language service resolves\n * that pointer against the model's own directory and lands on the project root.\n *\n * The document id is the same target for a document that spells its pointer at the RIGHT depth\n * (`../document.schema.json` from `pages/`, `../../` from `pages/blog/`). A pointer with too few\n * `../` resolves to a file that does not exist and fails everywhere — Monaco, VS Code and ajv alike\n * — so it is an authoring error, not something to paper over with extra registrations.\n */\nconst PROJECT_ENTRY_SCHEMA_ID = \"file:///project.schema.json\";\nconst DOCUMENT_ENTRY_SCHEMA_ID = \"file:///document.schema.json\";\n\n/** The project-root files those ids belong to (`jx schema` writes exactly these two names). */\n\n/**\n * Register the JSON diagnostics schemas. Fetched per-project schemas are inline OBJECTS (never URLs\n * — `enableSchemaRequest` stays off), so backends must serve them PRE-BUNDLED; the bundled core\n * schemas remain the offline fallback.\n *\n * Each schema registers TWICE: once under its canonical `https://jxsuite.com/…` uri with the\n * fileMatch patterns that cover documents carrying no `$schema` of their own, and again under the\n * `file:///…` id above. The second registration is what makes the `$schema` binding work offline.\n * An in-document `$schema` takes ABSOLUTE precedence over fileMatch in the language service\n * (`getSchemaForResource` consults it first and returns early), and resolution goes through\n * `getOrAddSchemaHandle`, which checks the by-id registry BEFORE reaching for a request service.\n * Without the id registered there is no service to reach for, so every `project.json` reported\n * `Unable to load schema from '/project.schema.json'. No schema request service available` — and,\n * worse, resolved to an empty schema, so the fileMatch registration never ran and REAL violations\n * went unreported behind that one diagnostic.\n */\nfunction applyJsonSchemas(documentSchema: unknown, projectJsonSchema: unknown) {\n // oxlint-disable-next-line typescript/no-unsafe-call, typescript/no-unsafe-member-access -- jsonDefaults is imported from Monaco's untyped ESM contribution (see @ts-expect-error above); no type declarations exist for this named export\n jsonDefaults.setDiagnosticsOptions({\n allowComments: false,\n schemas: [\n {\n fileMatch: DOCUMENT_FILE_MATCH,\n schema: documentSchema,\n uri: \"https://jxsuite.com/schema/v1\",\n },\n {\n fileMatch: [\"project.json\"],\n schema: projectJsonSchema,\n uri: \"https://jxsuite.com/schema/project/v1\",\n },\n { schema: projectJsonSchema, uri: PROJECT_ENTRY_SCHEMA_ID },\n { schema: documentSchema, uri: DOCUMENT_ENTRY_SCHEMA_ID },\n ],\n validate: true,\n });\n}\n\n/* Flattened once at module load: the shipped core schemas reference the well-known union resources\n by canonical $id (the `$paths` source union, extensions.md §5.3), and Monaco resolves anything with\n a URI before the `#` by FETCHING it — with `enableSchemaRequest` off that just fails, leaving\n `$paths` reporting an unresolvable ref. Flattening rewrites those refs onto the shipped defaults\n embedded in the same document, which is exactly the right fallback semantics. */\nconst FALLBACK_DOCUMENT_SCHEMA = flattenSchema(jxSchema as Record<string, unknown>);\nconst FALLBACK_PROJECT_SCHEMA = flattenSchema(projectSchema as Record<string, unknown>);\n\n// Bundled core schemas register at module init — the offline fallback every platform starts from.\napplyJsonSchemas(FALLBACK_DOCUMENT_SCHEMA, FALLBACK_PROJECT_SCHEMA);\n\n/**\n * Swap Monaco's JSON diagnostics to the ACTIVE project's generated entry documents — the\n * pre-bundled payload behind the platform's optional `fetchProjectSchemas` member (dev server:\n * `/__studio/project-schemas`; desktop: RPC into the project session). Called on project\n * activation, after a `project.json` write, and on `extensions` changes.\n *\n * Takes an ALREADY-FETCHED payload rather than the platform, so ONE fetch can feed both Monaco and\n * the AI assistant's validator (format/format-host.ts). The backends regenerate stale entry\n * documents on demand and write them to disk, so a second concurrent fetch is not a harmless\n * duplicate — it races the first on the same two files.\n *\n * @param {object | null} schemas - Pre-bundled `{ document, project }` payload\n * @returns {boolean} True when per-project schemas were applied; false on fallback\n */\nexport function applyProjectSchemas(\n schemas: { project?: unknown; document?: unknown } | null | undefined,\n): boolean {\n const { document, project } = schemas ?? {};\n if (!document && !project) {\n return false;\n }\n applyJsonSchemas(document ?? FALLBACK_DOCUMENT_SCHEMA, project ?? FALLBACK_PROJECT_SCHEMA);\n return true;\n}\n\n/** Restore the bundled core schemas (project closed / tests). */\nexport function resetProjectSchemas(): void {\n applyJsonSchemas(FALLBACK_DOCUMENT_SCHEMA, FALLBACK_PROJECT_SCHEMA);\n}\n"
11
10
  ],
12
- "mappings": "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",
13
- "debugId": "56BC430732E0483364756E2164756E21",
11
+ "mappings": "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",
12
+ "debugId": "524AB4DB3A258B7964756E2164756E21",
14
13
  "names": []
15
14
  }
@@ -0,0 +1,21 @@
1
+ import {
2
+ openPublishPanel,
3
+ seedPublishConnected
4
+ } from "./studio-x9hmy5kr.js";
5
+ import"./studio-a7pzveq1.js";
6
+ import"./studio-myje51t3.js";
7
+ import"./studio-41exgzhq.js";
8
+ import"./studio-p471gg5n.js";
9
+ import"./studio-5x5774ak.js";
10
+ import"./studio-cjm7fdjf.js";
11
+ import"./studio-adn0z1k3.js";
12
+ import"./studio-sas7mt3k.js";
13
+ import"./studio-5ehhackm.js";
14
+ import"./studio-md4gps17.js";
15
+ export {
16
+ seedPublishConnected,
17
+ openPublishPanel
18
+ };
19
+
20
+ //# debugId=923981165D8192A764756E2164756E21
21
+ //# sourceMappingURL=publish-panel-m0fcgdrt.js.map
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "923981165D8192A764756E2164756E21",
8
+ "names": []
9
+ }