@jxsuite/studio 2.0.1 → 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-799jpvhm.js → components-2bpqp4mq.js} +5 -7
  7. package/dist/chunks/{components-799jpvhm.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-8jxwts2p.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-gs6kqdt1.js → studio-adn0z1k3.js} +14 -8
  74. package/dist/chunks/{studio-gs6kqdt1.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-esrewxap.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-v7jkjqng.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-jm0z592w.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 +21080 -32585
  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 +7 -0
  214. package/src/new-project/location-fields.ts +9 -1
  215. package/src/new-project/new-project-modal.ts +221 -245
  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 -53
  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 +30 -1
  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 +7 -1
  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-qr3drkkw.js +0 -531
  363. package/dist/chunks/extension-sections-qr3drkkw.js.map +0 -12
  364. package/dist/chunks/files-j8a1t06k.js +0 -50
  365. package/dist/chunks/files-j8a1t06k.js.map +0 -9
  366. package/dist/chunks/git-panel-xtq5z81x.js +0 -28
  367. package/dist/chunks/git-panel-xtq5z81x.js.map +0 -9
  368. package/dist/chunks/layers-panel-ancn2wpq.js +0 -26
  369. package/dist/chunks/layers-panel-ancn2wpq.js.map +0 -9
  370. package/dist/chunks/settings-modal-17ttr96g.js +0 -29
  371. package/dist/chunks/settings-modal-17ttr96g.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-0xgs7xrs.js +0 -429
  381. package/dist/chunks/studio-0xgs7xrs.js.map +0 -13
  382. package/dist/chunks/studio-4d8hzcz5.js +0 -3427
  383. package/dist/chunks/studio-4d8hzcz5.js.map +0 -26
  384. package/dist/chunks/studio-4k0m4fmp.js.map +0 -13
  385. package/dist/chunks/studio-9smfzqhc.js +0 -19
  386. package/dist/chunks/studio-9smfzqhc.js.map +0 -10
  387. package/dist/chunks/studio-jm0z592w.js.map +0 -115
  388. package/dist/chunks/studio-m2t4mdg5.js +0 -1854
  389. package/dist/chunks/studio-m2t4mdg5.js.map +0 -18
  390. package/dist/chunks/studio-n4p11dfy.js +0 -853
  391. package/dist/chunks/studio-n4p11dfy.js.map +0 -12
  392. package/dist/chunks/studio-qkvt37c0.js.map +0 -9
  393. package/dist/chunks/studio-sjh1wt1a.js +0 -3744
  394. package/dist/chunks/studio-sjh1wt1a.js.map +0 -22
  395. package/dist/chunks/studio-v7jkjqng.js.map +0 -46
  396. package/dist/chunks/studio-xq0t7n5t.js +0 -140
  397. package/dist/chunks/studio-xq0t7n5t.js.map +0 -10
  398. package/dist/chunks/studio-xze4zrs1.js.map +0 -10
  399. package/dist/chunks/studio-yfcstdzy.js +0 -399
  400. package/dist/chunks/studio-yfcstdzy.js.map +0 -12
  401. package/dist/chunks/studio-zp7jncs8.js +0 -469
  402. package/dist/chunks/studio-zp7jncs8.js.map +0 -14
  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-8jxwts2p.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-esrewxap.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
@@ -0,0 +1,301 @@
1
+ import {
2
+ renderContributedSection
3
+ } from "./studio-xa0ce0n7.js";
4
+ import {
5
+ registerSettingsSection,
6
+ unregisterSettingsSection
7
+ } from "./studio-7afd21nw.js";
8
+ import"./studio-c6s5getc.js";
9
+ import"./studio-wwseqyw0.js";
10
+ import {
11
+ dataSurfaceAvailable,
12
+ openGridSourcePicker,
13
+ pushSchema,
14
+ testConnection
15
+ } from "./studio-9je6w5sq.js";
16
+ import"./studio-xmvbhg31.js";
17
+ import"./studio-k2sxjph5.js";
18
+ import"./studio-6f0am8f2.js";
19
+ import"./studio-bw5dz6km.js";
20
+ import"./studio-f12h6177.js";
21
+ import"./studio-na6rwzhw.js";
22
+ import"./studio-myje51t3.js";
23
+ import"./studio-v96qfnww.js";
24
+ import {
25
+ openModal
26
+ } from "./studio-41exgzhq.js";
27
+ import"./studio-ckwz4d3x.js";
28
+ import"./studio-p471gg5n.js";
29
+ import {
30
+ html,
31
+ nothing
32
+ } from "./studio-5x5774ak.js";
33
+ import"./studio-bsxxx3x2.js";
34
+ import"./studio-s519zc99.js";
35
+ import"./studio-cjm7fdjf.js";
36
+ import {
37
+ getFormats,
38
+ loadExtensions,
39
+ loadFormats
40
+ } from "./studio-adn0z1k3.js";
41
+ import"./studio-sas7mt3k.js";
42
+ import"./studio-5ehhackm.js";
43
+ import"./studio-t5wqwzdh.js";
44
+ import"./studio-tr20m8g8.js";
45
+ import"./studio-md4gps17.js";
46
+
47
+ // src/panels/data-grid.ts
48
+ var pushDialog = null;
49
+ function closePushDialog() {
50
+ pushDialog?.handle.close();
51
+ pushDialog = null;
52
+ }
53
+ async function startPush(connection, onDone) {
54
+ if (pushDialog) {
55
+ return;
56
+ }
57
+ const handle = openModal(html``, { label: "Push Schema", onDismiss: closePushDialog });
58
+ pushDialog = { connection, handle, onDone, phase: "loading", plan: null, result: null };
59
+ renderPushDialog();
60
+ const plan = await pushSchema({
61
+ dryRun: true,
62
+ ...connection === undefined ? {} : { connection }
63
+ });
64
+ if (!pushDialog) {
65
+ return;
66
+ }
67
+ pushDialog.plan = plan;
68
+ pushDialog.phase = "confirm";
69
+ renderPushDialog();
70
+ }
71
+ async function applyPush() {
72
+ if (!pushDialog) {
73
+ return;
74
+ }
75
+ pushDialog.phase = "applying";
76
+ renderPushDialog();
77
+ const result = await pushSchema(pushDialog.connection === undefined ? {} : { connection: pushDialog.connection });
78
+ if (!pushDialog) {
79
+ return;
80
+ }
81
+ pushDialog.result = result;
82
+ pushDialog.phase = "done";
83
+ renderPushDialog();
84
+ pushDialog.onDone();
85
+ }
86
+ function pushDialogBody(state) {
87
+ if (state.phase === "loading" || state.phase === "applying") {
88
+ return html`<div class="push-dialog-status">
89
+ ${state.phase === "loading" ? "Compiling plan…" : "Applying…"}
90
+ </div>`;
91
+ }
92
+ const shown = state.phase === "done" ? state.result : state.plan;
93
+ const steps = shown?.plan ?? [];
94
+ const warnings = shown?.warnings ?? [];
95
+ const errors = shown?.errors ?? [];
96
+ return html`
97
+ <div class="push-dialog-plan">
98
+ ${state.phase === "done" ? html`<div class="push-dialog-status">
99
+ ${shown?.applied ? "Schema applied." : "Push failed."}
100
+ </div>` : steps.length === 0 && errors.length === 0 ? html`<div class="push-dialog-status">
101
+ Nothing to push — the schema is up to date.
102
+ </div>` : nothing}
103
+ <ul class="push-dialog-steps">
104
+ ${steps.map((step) => html`<li class="push-step push-step-${step.kind}">${step.summary}</li>`)}
105
+ </ul>
106
+ ${warnings.map((w) => html`<div class="push-dialog-warning">${w}</div>`)}
107
+ ${errors.map((e) => html`<div class="push-dialog-error">${e}</div>`)}
108
+ </div>
109
+ `;
110
+ }
111
+ function renderPushDialog() {
112
+ if (!pushDialog) {
113
+ return;
114
+ }
115
+ const state = pushDialog;
116
+ const confirmable = state.phase === "confirm" && (state.plan?.plan.length ?? 0) > 0;
117
+ const tpl = html`
118
+ <sp-underlay open @close=${closePushDialog}></sp-underlay>
119
+ <div class="settings-modal push-dialog">
120
+ <div class="settings-modal-header">
121
+ <h2 class="settings-modal-title">
122
+ Push Schema${state.connection ? html` — ${state.connection}` : nothing}
123
+ </h2>
124
+ </div>
125
+ <div class="settings-modal-body">${pushDialogBody(state)}</div>
126
+ <div class="push-dialog-actions">
127
+ <sp-action-button size="s" class="push-cancel" @click=${closePushDialog}>
128
+ ${state.phase === "done" ? "Close" : "Cancel"}
129
+ </sp-action-button>
130
+ ${confirmable ? html`<sp-action-button
131
+ size="s"
132
+ emphasized
133
+ class="push-apply"
134
+ @click=${() => {
135
+ applyPush();
136
+ }}
137
+ >Apply</sp-action-button
138
+ >` : nothing}
139
+ </div>
140
+ </div>
141
+ `;
142
+ state.handle.update(tpl);
143
+ }
144
+ var actionsState = { pushing: false, testResult: null, testing: null };
145
+ function dataSectionActions(sectionKey) {
146
+ if (sectionKey !== "connections" && sectionKey !== "data" || !dataSurfaceAvailable()) {
147
+ return null;
148
+ }
149
+ return (ctx) => renderSectionActions(sectionKey, ctx);
150
+ }
151
+ async function runTest(connection, rerender) {
152
+ actionsState.testing = connection;
153
+ actionsState.testResult = null;
154
+ rerender();
155
+ const result = await testConnection(connection);
156
+ actionsState.testing = null;
157
+ actionsState.testResult = { ...result, connection };
158
+ rerender();
159
+ }
160
+ function renderSectionActions(sectionKey, ctx) {
161
+ const { selected, rerender } = ctx;
162
+ const { testResult } = actionsState;
163
+ const pushTarget = sectionKey === "connections" && selected ? selected : undefined;
164
+ return html`
165
+ <div class="data-section-actions">
166
+ ${sectionKey === "connections" ? html`<sp-action-button
167
+ size="s"
168
+ class="data-action-test"
169
+ ?disabled=${!selected || actionsState.testing !== null}
170
+ @click=${() => {
171
+ if (selected) {
172
+ runTest(selected, rerender);
173
+ }
174
+ }}
175
+ >
176
+ ${actionsState.testing ? "Testing…" : "Test Connection"}
177
+ </sp-action-button>` : nothing}
178
+ <sp-action-button
179
+ size="s"
180
+ class="data-action-push"
181
+ @click=${() => {
182
+ startPush(pushTarget, rerender);
183
+ }}
184
+ >
185
+ Push Schema
186
+ </sp-action-button>
187
+ <sp-action-button
188
+ size="s"
189
+ class="data-action-grid"
190
+ @click=${() => {
191
+ openGridSourcePicker();
192
+ }}
193
+ >
194
+ Open Data Grid
195
+ </sp-action-button>
196
+ ${testResult ? html`<span
197
+ class="data-test-result ${testResult.ok ? "ok" : "failed"}"
198
+ title=${testResult.error ?? ""}
199
+ >
200
+ ${testResult.connection}:
201
+ ${testResult.ok ? "connected" : testResult.error ?? "failed"}
202
+ </span>` : nothing}
203
+ </div>
204
+ `;
205
+ }
206
+
207
+ // src/settings/extension-sections.ts
208
+ var DEFAULT_SECTION_ORDER = 100;
209
+ function deriveSettingsSection(info) {
210
+ const studio = info.studio;
211
+ const settings = studio?.settings;
212
+ if (!settings) {
213
+ return null;
214
+ }
215
+ const { key } = info.project;
216
+ const layout = settings.layout ?? "form";
217
+ const sectionSchema = info.entrySchema ?? {};
218
+ const entrySchema = layout === "map" ? typeof sectionSchema.additionalProperties === "object" ? sectionSchema.additionalProperties : {} : sectionSchema;
219
+ const label = settings.label ?? info.project.title ?? key;
220
+ return {
221
+ contribution: {
222
+ entrySchema,
223
+ key,
224
+ settings: {
225
+ ...settings.entry === undefined ? {} : { entry: settings.entry },
226
+ ...settings.layout === undefined ? {} : { layout: settings.layout }
227
+ },
228
+ title: label
229
+ },
230
+ icon: settings.icon,
231
+ key,
232
+ label,
233
+ order: settings.order ?? DEFAULT_SECTION_ORDER
234
+ };
235
+ }
236
+ var registeredKeys = new Set;
237
+ var _inFlight = null;
238
+ function extensionSectionsReady() {
239
+ return _inFlight ?? Promise.resolve();
240
+ }
241
+ function syncExtensionSettingsSections() {
242
+ _inFlight ??= runSync().finally(() => {
243
+ _inFlight = null;
244
+ });
245
+ return _inFlight;
246
+ }
247
+ async function runSync() {
248
+ const [extensions] = await Promise.all([loadExtensions(), loadFormats()]);
249
+ const next = new Set;
250
+ for (const ext of extensions) {
251
+ for (const info of ext.contributions) {
252
+ const derived = deriveSettingsSection(info);
253
+ if (!derived) {
254
+ continue;
255
+ }
256
+ const { contribution } = derived;
257
+ registerSettingsSection({
258
+ icon: derived.icon,
259
+ key: derived.key,
260
+ label: derived.label,
261
+ order: derived.order,
262
+ render: (container) => {
263
+ const actions = dataSectionActions(derived.key);
264
+ renderContributedSection(container, contribution, {
265
+ formats: getFormats(),
266
+ ...actions === null ? {} : { actions }
267
+ });
268
+ }
269
+ });
270
+ next.add(derived.key);
271
+ }
272
+ }
273
+ for (const key of registeredKeys) {
274
+ if (!next.has(key)) {
275
+ unregisterSettingsSection(key);
276
+ }
277
+ }
278
+ registeredKeys.clear();
279
+ for (const key of next) {
280
+ registeredKeys.add(key);
281
+ }
282
+ }
283
+ function resetExtensionSettingsSections() {
284
+ for (const key of registeredKeys) {
285
+ unregisterSettingsSection(key);
286
+ }
287
+ registeredKeys.clear();
288
+ }
289
+ function extensionSectionKeys() {
290
+ return [...registeredKeys];
291
+ }
292
+ export {
293
+ syncExtensionSettingsSections,
294
+ resetExtensionSettingsSections,
295
+ extensionSectionsReady,
296
+ extensionSectionKeys,
297
+ deriveSettingsSection
298
+ };
299
+
300
+ //# debugId=A98ABD052C3EAC0E64756E2164756E21
301
+ //# sourceMappingURL=extension-sections-6mqydz35.js.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/panels/data-grid.ts", "../src/settings/extension-sections.ts"],
4
+ "sourcesContent": [
5
+ "/// <reference lib=\"dom\" />\n/**\n * Data section actions — the owner console entry points over the platform's data surface.\n *\n * Integration: the settings modal's contributed sections stay fully generic — extension-sections\n * passes this module's {@link dataSectionActions} into the ContributedSectionOptions.actions slot\n * for the data-domain sections (\"connections\"/\"data\") whenever the platform implements the\n * protocol's data routes. Those actions surface Test Connection, Push Schema (dry-run plan\n * confirmation before apply), and Open Data Grid — which opens the grid-tab source picker; table\n * editing itself lives in the spreadsheet grid tabs (src/grid/), which replaced the old modal grid\n * at feature parity (paging, cell edit, add/delete row) and added batch save with undo.\n */\n\nimport { html, nothing } from \"lit-html\";\nimport { openModal } from \"../ui/layers\";\nimport { dataSurfaceAvailable, pushSchema, testConnection } from \"../services/data-service\";\nimport { openGridSourcePicker } from \"../grid/grid-open\";\nimport type { TemplateResult } from \"lit-html\";\nimport type { DataConnectionTestResult, DataPushResult } from \"../types\";\nimport type { SectionActionsContext } from \"../settings/contributed-section\";\n\n// ─── Grid opening (delegates to the grid-tab source picker) ──────────────────\n\n/** Reset all module UI state and close any open surfaces (test hook / project switch). */\nexport function resetDataGridState(): void {\n actionsState = { pushing: false, testResult: null, testing: null };\n closePushDialog();\n}\n\n/** True when the platform serves the data grid. */\nexport function isDataGridAvailable(): boolean {\n return dataSurfaceAvailable();\n}\n\n// ─── Push dialog (dry-run plan confirmation before apply) ─────────────────────\n\ninterface PushDialogState {\n handle: ReturnType<typeof openModal>;\n connection: string | undefined;\n phase: \"loading\" | \"confirm\" | \"applying\" | \"done\";\n plan: DataPushResult | null;\n result: DataPushResult | null;\n onDone: () => void;\n}\n\nlet pushDialog: PushDialogState | null = null;\n\n/** Close the push dialog (also part of resetDataGridState). */\nfunction closePushDialog(): void {\n pushDialog?.handle.close();\n pushDialog = null;\n}\n\n/** Start a push: dry-run first, then a confirmation dialog gates the apply. */\nexport async function startPush(connection: string | undefined, onDone: () => void) {\n if (pushDialog) {\n return;\n }\n const handle = openModal(html``, { label: \"Push Schema\", onDismiss: closePushDialog });\n pushDialog = { connection, handle, onDone, phase: \"loading\", plan: null, result: null };\n renderPushDialog();\n const plan = await pushSchema({\n dryRun: true,\n ...(connection === undefined ? {} : { connection }),\n });\n if (!pushDialog) {\n return;\n }\n pushDialog.plan = plan;\n pushDialog.phase = \"confirm\";\n renderPushDialog();\n}\n\nasync function applyPush(): Promise<void> {\n if (!pushDialog) {\n return;\n }\n pushDialog.phase = \"applying\";\n renderPushDialog();\n const result = await pushSchema(\n pushDialog.connection === undefined ? {} : { connection: pushDialog.connection },\n );\n if (!pushDialog) {\n return;\n }\n pushDialog.result = result;\n pushDialog.phase = \"done\";\n renderPushDialog();\n pushDialog.onDone();\n}\n\nfunction pushDialogBody(state: PushDialogState): TemplateResult {\n if (state.phase === \"loading\" || state.phase === \"applying\") {\n return html`<div class=\"push-dialog-status\">\n ${state.phase === \"loading\" ? \"Compiling plan…\" : \"Applying…\"}\n </div>`;\n }\n const shown = state.phase === \"done\" ? state.result : state.plan;\n const steps = shown?.plan ?? [];\n const warnings = shown?.warnings ?? [];\n const errors = shown?.errors ?? [];\n return html`\n <div class=\"push-dialog-plan\">\n ${\n state.phase === \"done\"\n ? html`<div class=\"push-dialog-status\">\n ${shown?.applied ? \"Schema applied.\" : \"Push failed.\"}\n </div>`\n : steps.length === 0 && errors.length === 0\n ? html`<div class=\"push-dialog-status\">\n Nothing to push — the schema is up to date.\n </div>`\n : nothing\n }\n <ul class=\"push-dialog-steps\">\n ${steps.map(\n (step) => html`<li class=\"push-step push-step-${step.kind}\">${step.summary}</li>`,\n )}\n </ul>\n ${warnings.map((w) => html`<div class=\"push-dialog-warning\">${w}</div>`)}\n ${errors.map((e) => html`<div class=\"push-dialog-error\">${e}</div>`)}\n </div>\n `;\n}\n\nfunction renderPushDialog(): void {\n if (!pushDialog) {\n return;\n }\n const state = pushDialog;\n const confirmable = state.phase === \"confirm\" && (state.plan?.plan.length ?? 0) > 0;\n const tpl = html`\n <sp-underlay open @close=${closePushDialog}></sp-underlay>\n <div class=\"settings-modal push-dialog\">\n <div class=\"settings-modal-header\">\n <h2 class=\"settings-modal-title\">\n Push Schema${state.connection ? html` — ${state.connection}` : nothing}\n </h2>\n </div>\n <div class=\"settings-modal-body\">${pushDialogBody(state)}</div>\n <div class=\"push-dialog-actions\">\n <sp-action-button size=\"s\" class=\"push-cancel\" @click=${closePushDialog}>\n ${state.phase === \"done\" ? \"Close\" : \"Cancel\"}\n </sp-action-button>\n ${\n confirmable\n ? html`<sp-action-button\n size=\"s\"\n emphasized\n class=\"push-apply\"\n @click=${() => {\n void applyPush();\n }}\n >Apply</sp-action-button\n >`\n : nothing\n }\n </div>\n </div>\n `;\n state.handle.update(tpl);\n}\n\n// ─── Contributed-section actions (Test / Push / Open grid) ────────────────────\n\ninterface ActionsState {\n /** Connection currently being tested, when any. */\n testing: string | null;\n testResult: (DataConnectionTestResult & { connection: string }) | null;\n pushing: boolean;\n}\n\nlet actionsState: ActionsState = { pushing: false, testResult: null, testing: null };\n\n/**\n * The actions renderer for a data-domain contributed section, or null when the section is not\n * data-domain or the platform lacks the data routes. Section keys \"connections\"/\"data\" are the\n * connector's host wire contract (the same literals the backend's data routes serve) — the generic\n * contributed-section renderer itself stays extension-agnostic.\n *\n * @param {string} sectionKey\n * @returns {((ctx: SectionActionsContext) => TemplateResult) | null}\n */\nexport function dataSectionActions(\n sectionKey: string,\n): ((ctx: SectionActionsContext) => TemplateResult) | null {\n if ((sectionKey !== \"connections\" && sectionKey !== \"data\") || !dataSurfaceAvailable()) {\n return null;\n }\n return (ctx) => renderSectionActions(sectionKey, ctx);\n}\n\nasync function runTest(connection: string, rerender: () => void): Promise<void> {\n actionsState.testing = connection;\n actionsState.testResult = null;\n rerender();\n const result = await testConnection(connection);\n actionsState.testing = null;\n actionsState.testResult = { ...result, connection };\n rerender();\n}\n\nfunction renderSectionActions(sectionKey: string, ctx: SectionActionsContext): TemplateResult {\n const { selected, rerender } = ctx;\n const { testResult } = actionsState;\n // On the connections section a selected entry scopes both Test and Push to that connection.\n const pushTarget = sectionKey === \"connections\" && selected ? selected : undefined;\n return html`\n <div class=\"data-section-actions\">\n ${\n sectionKey === \"connections\"\n ? html`<sp-action-button\n size=\"s\"\n class=\"data-action-test\"\n ?disabled=${!selected || actionsState.testing !== null}\n @click=${() => {\n if (selected) {\n void runTest(selected, rerender);\n }\n }}\n >\n ${actionsState.testing ? \"Testing…\" : \"Test Connection\"}\n </sp-action-button>`\n : nothing\n }\n <sp-action-button\n size=\"s\"\n class=\"data-action-push\"\n @click=${() => {\n void startPush(pushTarget, rerender);\n }}\n >\n Push Schema\n </sp-action-button>\n <sp-action-button\n size=\"s\"\n class=\"data-action-grid\"\n @click=${() => {\n void openGridSourcePicker();\n }}\n >\n Open Data Grid\n </sp-action-button>\n ${\n testResult\n ? html`<span\n class=\"data-test-result ${testResult.ok ? \"ok\" : \"failed\"}\"\n title=${testResult.error ?? \"\"}\n >\n ${testResult.connection}:\n ${testResult.ok ? \"connected\" : (testResult.error ?? \"failed\")}\n </span>`\n : nothing\n }\n </div>\n `;\n}\n",
6
+ "/// <reference lib=\"dom\" />\n/**\n * Extension settings sections — bridges the extensions payload (platform `listExtensions`) into the\n * Project Settings section registry. Every project-section contribution whose class declares a\n * `$studio.settings` block (specs/extensions.md §9.1) gets a section rendered generically by\n * renderContributedSection; sections vanish again when their extension is disabled. The studio\n * hard-codes nothing per extension — parser's Content Types section arrives through this exact\n * path.\n */\n\nimport { getFormats, loadExtensions, loadFormats } from \"../format/format-host\";\nimport { registerSettingsSection, unregisterSettingsSection } from \"./section-registry\";\nimport { renderContributedSection } from \"./contributed-section\";\nimport { dataSectionActions } from \"../panels/data-grid\";\nimport type { ExtensionContributionInfo } from \"../types\";\nimport type { JsonSchema } from \"../ui/schema-form\";\nimport type { SettingsContribution } from \"./contributed-section\";\n\n/** The `$studio.settings` block shape consumed here (nav metadata + the renderer inputs). */\ninterface StudioSettingsBlock {\n icon?: string;\n label?: string;\n order?: number;\n layout?: \"map\" | \"form\";\n entry?: SettingsContribution[\"settings\"][\"entry\"];\n}\n\n/** A contribution resolved into section-registry registration inputs. */\nexport interface DerivedSettingsSection {\n key: string;\n label: string;\n icon?: string | undefined;\n order: number;\n contribution: SettingsContribution;\n}\n\n/** Default sort position for contributed sections without an explicit `order`. */\nconst DEFAULT_SECTION_ORDER = 100;\n\n/**\n * Derive the section registration for one contribution, or null when its class declares no\n * `$studio.settings` block. The wire `entrySchema` is the SECTION value schema (`properties[<key>]`\n * of the project fragment); map layouts edit one entry at a time, so their form schema is that\n * section schema's `additionalProperties`.\n *\n * @param {ExtensionContributionInfo} info\n * @returns {DerivedSettingsSection | null}\n */\nexport function deriveSettingsSection(\n info: ExtensionContributionInfo,\n): DerivedSettingsSection | null {\n const studio = info.studio as { settings?: StudioSettingsBlock } | null | undefined;\n const settings = studio?.settings;\n if (!settings) {\n return null;\n }\n const { key } = info.project;\n const layout = settings.layout ?? \"form\";\n const sectionSchema = (info.entrySchema ?? {}) as JsonSchema & {\n additionalProperties?: JsonSchema | boolean;\n };\n const entrySchema =\n layout === \"map\"\n ? typeof sectionSchema.additionalProperties === \"object\"\n ? sectionSchema.additionalProperties\n : {}\n : (sectionSchema as JsonSchema);\n const label = settings.label ?? info.project.title ?? key;\n return {\n contribution: {\n entrySchema,\n key,\n settings: {\n ...(settings.entry === undefined ? {} : { entry: settings.entry }),\n ...(settings.layout === undefined ? {} : { layout: settings.layout }),\n },\n title: label,\n },\n icon: settings.icon,\n key,\n label,\n order: settings.order ?? DEFAULT_SECTION_ORDER,\n };\n}\n\n/** Section keys this module registered, so stale ones unregister on project/extension change. */\nconst registeredKeys = new Set<string>();\n\n/**\n * The sync currently running, so concurrent callers join it instead of racing it.\n *\n * This is half of the deep-link fix (plan §12 P6.2). `refreshExtensionUi` (`format/format-host.ts`)\n * fires this function **fire-and-forget** on project activation and after every `project.json`\n * write, and the settings surface used to start a SECOND, interleaved run and await only its own.\n * The two runs share {@link registeredKeys} and both reach {@link unregisterSettingsSection}, so a\n * key one run had just registered could be seen as stale by the other and unregistered — after the\n * awaited promise had already resolved. Coalescing makes \"the sections are ready\" one fact about\n * the registry rather than one fact per caller.\n */\nlet _inFlight: Promise<void> | null = null;\n\n/**\n * Await whatever contribution sync is in flight. Resolves immediately when none is.\n *\n * @returns {Promise<void>}\n */\nexport function extensionSectionsReady(): Promise<void> {\n return _inFlight ?? Promise.resolve();\n}\n\n/**\n * Load the extensions payload and (re)register a settings section per `$studio.settings`\n * contribution, unregistering sections whose extension is no longer enabled. Formats load alongside\n * so the `$formats` context root has data at render time. Call on project activation and after\n * project.json `extensions` changes; loadExtensions caches, so repeat calls are cheap.\n *\n * Concurrent calls share one run — see {@link _inFlight}.\n */\nexport function syncExtensionSettingsSections(): Promise<void> {\n _inFlight ??= runSync().finally(() => {\n _inFlight = null;\n });\n return _inFlight;\n}\n\n/** One pass over the extensions payload. Never called concurrently with itself. */\nasync function runSync(): Promise<void> {\n const [extensions] = await Promise.all([loadExtensions(), loadFormats()]);\n const next = new Set<string>();\n for (const ext of extensions) {\n for (const info of ext.contributions) {\n const derived = deriveSettingsSection(info);\n if (!derived) {\n continue;\n }\n const { contribution } = derived;\n registerSettingsSection({\n icon: derived.icon,\n key: derived.key,\n label: derived.label,\n order: derived.order,\n render: (container) => {\n // Data-domain sections get the Test/Push/Data-grid actions slot when the platform\n // Implements the protocol's data routes; every other section renders actions-free.\n const actions = dataSectionActions(derived.key);\n renderContributedSection(container, contribution, {\n formats: getFormats(),\n ...(actions === null ? {} : { actions }),\n });\n },\n });\n next.add(derived.key);\n }\n }\n for (const key of registeredKeys) {\n if (!next.has(key)) {\n unregisterSettingsSection(key);\n }\n }\n registeredKeys.clear();\n for (const key of next) {\n registeredKeys.add(key);\n }\n}\n\n/** Unregister every section this module added and forget them (project close / tests). */\nexport function resetExtensionSettingsSections(): void {\n for (const key of registeredKeys) {\n unregisterSettingsSection(key);\n }\n registeredKeys.clear();\n}\n\n/** The section keys currently registered by this module (diagnostics/tests). */\nexport function extensionSectionKeys(): string[] {\n return [...registeredKeys];\n}\n"
7
+ ],
8
+ "mappings": "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",
9
+ "debugId": "A98ABD052C3EAC0E64756E2164756E21",
10
+ "names": []
11
+ }
@@ -0,0 +1,70 @@
1
+ import {
2
+ FILE_ROW_HEIGHT,
3
+ createFileIn,
4
+ findHomePage,
5
+ initProjectRepo,
6
+ isFileDrag,
7
+ loadDirectory,
8
+ loadProject,
9
+ openFileInPane,
10
+ openFileInTab,
11
+ openHomePage,
12
+ openLastSessionOrHome,
13
+ openProject,
14
+ pickAndUploadTo,
15
+ registerFileTreeDnD,
16
+ registerFilesPanel,
17
+ reloadCleanTab,
18
+ reloadFileInTab,
19
+ renderFilesTemplate,
20
+ setupTreeKeyboard,
21
+ uploadFilesToDir
22
+ } from "./studio-94m77tgk.js";
23
+ import"./studio-dzcyvvvz.js";
24
+ import"./studio-50k77cca.js";
25
+ import"./studio-8jpzqk5s.js";
26
+ import"./studio-9je6w5sq.js";
27
+ import"./studio-xmvbhg31.js";
28
+ import"./studio-k2sxjph5.js";
29
+ import"./studio-6f0am8f2.js";
30
+ import"./studio-bw5dz6km.js";
31
+ import"./studio-f12h6177.js";
32
+ import"./studio-na6rwzhw.js";
33
+ import"./studio-myje51t3.js";
34
+ import"./studio-v96qfnww.js";
35
+ import"./studio-41exgzhq.js";
36
+ import"./studio-ckwz4d3x.js";
37
+ import"./studio-p471gg5n.js";
38
+ import"./studio-5x5774ak.js";
39
+ import"./studio-bsxxx3x2.js";
40
+ import"./studio-s519zc99.js";
41
+ import"./studio-cjm7fdjf.js";
42
+ import"./studio-adn0z1k3.js";
43
+ import"./studio-sas7mt3k.js";
44
+ import"./studio-5ehhackm.js";
45
+ import"./studio-md4gps17.js";
46
+ export {
47
+ uploadFilesToDir,
48
+ setupTreeKeyboard,
49
+ renderFilesTemplate,
50
+ reloadFileInTab,
51
+ reloadCleanTab,
52
+ registerFilesPanel,
53
+ registerFileTreeDnD,
54
+ pickAndUploadTo,
55
+ openProject,
56
+ openLastSessionOrHome,
57
+ openHomePage,
58
+ openFileInTab,
59
+ openFileInPane,
60
+ loadProject,
61
+ loadDirectory,
62
+ isFileDrag,
63
+ initProjectRepo,
64
+ findHomePage,
65
+ createFileIn,
66
+ FILE_ROW_HEIGHT
67
+ };
68
+
69
+ //# debugId=E277657AD24AE5BB64756E2164756E21
70
+ //# sourceMappingURL=files-8kn321h1.js.map
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "E277657AD24AE5BB64756E2164756E21",
8
+ "names": []
9
+ }
@@ -16,8 +16,8 @@ import {
16
16
  setExtensions,
17
17
  setFormats,
18
18
  splitFormatDocument
19
- } from "./studio-gs6kqdt1.js";
20
- import"./studio-9smfzqhc.js";
19
+ } from "./studio-adn0z1k3.js";
20
+ import"./studio-sas7mt3k.js";
21
21
  import"./studio-md4gps17.js";
22
22
  export {
23
23
  splitFormatDocument,
@@ -40,4 +40,4 @@ export {
40
40
  };
41
41
 
42
42
  //# debugId=02FB8D5E3DEEDEE364756E2164756E21
43
- //# sourceMappingURL=format-host-8jxwts2p.js.map
43
+ //# sourceMappingURL=format-host-mkwsmt8d.js.map
@@ -0,0 +1,51 @@
1
+ import {
2
+ cleanupGitPanel,
3
+ cloneRepository,
4
+ initRepository,
5
+ loadDiffForLens,
6
+ platformSupportsClone,
7
+ pushCurrentBranch,
8
+ readGitDiff,
9
+ refreshGitStatus,
10
+ registerGitPanel,
11
+ registerSourceControlCommands,
12
+ relativeDate,
13
+ renderGitPanel,
14
+ signInToGithub,
15
+ sourceControlCommands
16
+ } from "./studio-50k77cca.js";
17
+ import"./studio-8jpzqk5s.js";
18
+ import"./studio-xmvbhg31.js";
19
+ import"./studio-na6rwzhw.js";
20
+ import"./studio-myje51t3.js";
21
+ import"./studio-v96qfnww.js";
22
+ import"./studio-41exgzhq.js";
23
+ import"./studio-ckwz4d3x.js";
24
+ import"./studio-p471gg5n.js";
25
+ import"./studio-5x5774ak.js";
26
+ import"./studio-bsxxx3x2.js";
27
+ import"./studio-s519zc99.js";
28
+ import"./studio-cjm7fdjf.js";
29
+ import"./studio-adn0z1k3.js";
30
+ import"./studio-sas7mt3k.js";
31
+ import"./studio-5ehhackm.js";
32
+ import"./studio-md4gps17.js";
33
+ export {
34
+ sourceControlCommands,
35
+ signInToGithub,
36
+ renderGitPanel,
37
+ relativeDate,
38
+ registerSourceControlCommands,
39
+ registerGitPanel,
40
+ refreshGitStatus,
41
+ readGitDiff,
42
+ pushCurrentBranch,
43
+ platformSupportsClone,
44
+ loadDiffForLens,
45
+ initRepository,
46
+ cloneRepository,
47
+ cleanupGitPanel
48
+ };
49
+
50
+ //# debugId=A8C9428DF4D6702C64756E2164756E21
51
+ //# sourceMappingURL=git-panel-tjbr191d.js.map
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "A8C9428DF4D6702C64756E2164756E21",
8
+ "names": []
9
+ }
@@ -6,7 +6,7 @@ import {
6
6
  FRAME_DOC_SYNC,
7
7
  decodeFrame,
8
8
  encodeFrame
9
- } from "./studio-xze4zrs1.js";
9
+ } from "./studio-7bmdvzne.js";
10
10
  import {
11
11
  Doc,
12
12
  UndoManager,
@@ -17,6 +17,7 @@ import {
17
17
  YText,
18
18
  YTextEvent
19
19
  } from "./studio-xgm355mm.js";
20
+ import"./studio-dg7zyt5x.js";
20
21
  import {
21
22
  applyDocOpToDoc,
22
23
  childArray,
@@ -776,5 +777,5 @@ export {
776
777
  COLLAB_SCHEMA_VERSION
777
778
  };
778
779
 
779
- //# debugId=327F0AD793EF33AC64756E2164756E21
780
- //# sourceMappingURL=index-baeg2x3y.js.map
780
+ //# debugId=06970FB2D9E66E7364756E2164756E21
781
+ //# sourceMappingURL=index-7pxchcce.js.map