@jxsuite/studio 8.0.1 → 9.0.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 (282) hide show
  1. package/dist/chunks/{2020-5wtzce5g.js → 2020-89fz3pfy.js} +3 -3
  2. package/dist/chunks/adapter-ay13gema.js +4 -0
  3. package/dist/chunks/add-new-flow-nmkqpjym.js +4 -0
  4. package/dist/chunks/cf-account-picker-2e06qxey.js +4 -0
  5. package/dist/chunks/cf-settings-5y04810c.js +4 -0
  6. package/dist/chunks/color-04361ttk.js +4 -0
  7. package/dist/chunks/{color-area-6rbra5dy.js → color-area-h8dbasp1.js} +2 -2
  8. package/dist/chunks/{color-field-gy56c94g.js → color-field-qv5r2b16.js} +3 -3
  9. package/dist/chunks/{color-slider-sqqdyf6c.js → color-slider-nz2mrzky.js} +2 -2
  10. package/dist/chunks/{combobox-72h32ejk.js → combobox-6hs00996.js} +2 -2
  11. package/dist/chunks/components-3vf75n83.js +4 -0
  12. package/dist/chunks/content-source-4f2raf4a.js +4 -0
  13. package/dist/chunks/{convert-to-repeater-he70fc2b.js → convert-to-repeater-j9hfcj4f.js} +3 -3
  14. package/dist/chunks/editor-645krvtz.js +4 -0
  15. package/dist/chunks/entry-commands-3qmv8wkr.js +4 -0
  16. package/dist/chunks/{extension-sections-0egb88dm.js → extension-sections-thfke054.js} +3 -3
  17. package/dist/chunks/file-ops-kkhp9ma7.js +4 -0
  18. package/dist/chunks/files-yswdhxrf.js +4 -0
  19. package/dist/chunks/format-host-4g8ex6bz.js +4 -0
  20. package/dist/chunks/fs-events-z9gpvc6t.js +4 -0
  21. package/dist/chunks/grid-open-fm4j183c.js +4 -0
  22. package/dist/chunks/{grid-view-qg1b5eqx.js → grid-view-7d2nx83y.js} +16 -15
  23. package/dist/chunks/{icons-63bjtbs7.js → icons-853n6qt3.js} +2 -2
  24. package/dist/chunks/{iframe-entry-pkgmcgp0.js → iframe-entry-2x9bn5ng.js} +4 -4
  25. package/dist/chunks/{iframe-entry-99nr5zfb.js → iframe-entry-42hpmwz5.js} +4 -4
  26. package/dist/chunks/{iframe-entry-76j8vwwx.js → iframe-entry-b5qgggyp.js} +2 -2
  27. package/dist/chunks/{iframe-entry-2zggzajv.js → iframe-entry-btck0e9s.js} +4 -4
  28. package/dist/chunks/iframe-host-q7fedsmr.js +4 -0
  29. package/dist/chunks/{index-32eqzv1k.js → index-jxmt7vh8.js} +3 -3
  30. package/dist/chunks/index-pt4wh98x.js +4 -0
  31. package/dist/chunks/{javascript-pjp734q4.js → javascript-vmqp56ke.js} +2 -2
  32. package/dist/chunks/{jsonMode-njkvsa02.js → jsonMode-n3wmpant.js} +5 -5
  33. package/dist/chunks/jx-validate-19y62knt.js +4 -0
  34. package/dist/chunks/layers-panel-1qvc83y9.js +4 -0
  35. package/dist/chunks/layers-qf0bc7ze.js +4 -0
  36. package/dist/chunks/{listbox-c421cf8c.js → listbox-7gka1h86.js} +2 -2
  37. package/dist/chunks/lit-html-wyqw04y2.js +4 -0
  38. package/dist/chunks/media-library-f9d5qcjb.js +4 -0
  39. package/dist/chunks/media-picker-rsb1fmk2.js +4 -0
  40. package/dist/chunks/{menu-bdpzbfvs.js → menu-d2jxpgma.js} +2 -2
  41. package/dist/chunks/{monaco-binding-vq1hgnn0.js → monaco-binding-wfhmz89d.js} +3 -3
  42. package/dist/chunks/monaco-buffer-ak0raadw.js +4 -0
  43. package/dist/chunks/{monaco-setup-xrd2cbkp.js → monaco-setup-fty7a8vg.js} +3 -3
  44. package/dist/chunks/notify-4qj70q0x.js +4 -0
  45. package/dist/chunks/parse-n8dfxnqf.js +4 -0
  46. package/dist/chunks/platform-ehg6t9vd.js +4 -0
  47. package/dist/chunks/{popover-b89sfej7.js → popover-9tf4cjrk.js} +2 -2
  48. package/dist/chunks/publish-panel-yhmda3cd.js +4 -0
  49. package/dist/chunks/{publish-quick-qx2455cj.js → publish-quick-12hh8926.js} +3 -3
  50. package/dist/chunks/publish-workspace-hx8qdv9p.js +4 -0
  51. package/dist/chunks/quick-search-r955m3q1.js +4 -0
  52. package/dist/chunks/references-8gxv0x7t.js +4 -0
  53. package/dist/chunks/right-panel-jarwqjpy.js +4 -0
  54. package/dist/chunks/source-control-84qt25m9.js +4 -0
  55. package/dist/chunks/{split-c9zfdgxf.js → split-m5rwn31z.js} +2 -2
  56. package/dist/chunks/studio-0nefxhar.js +7 -0
  57. package/dist/chunks/studio-0rg30pvs.js +5 -0
  58. package/dist/chunks/{studio-s32578pn.js → studio-14hh60j8.js} +4 -4
  59. package/dist/chunks/studio-1cfyd1ys.js +5 -0
  60. package/dist/chunks/studio-2bq7hheq.js +5 -0
  61. package/dist/chunks/{studio-zz9qe3rw.js → studio-32d8wyxq.js} +37 -37
  62. package/dist/chunks/studio-3hpcawh8.js +4 -0
  63. package/dist/chunks/{studio-svb7yyve.js → studio-4j35hgsw.js} +4 -4
  64. package/dist/chunks/{studio-x1x167jh.js → studio-4qg61g9j.js} +4 -4
  65. package/dist/chunks/studio-4rgem12q.js +5 -0
  66. package/dist/chunks/studio-6k9djnxw.js +5 -0
  67. package/dist/chunks/studio-6rbaedw2.js +9 -0
  68. package/dist/chunks/studio-732mw0g8.js +5 -0
  69. package/dist/chunks/studio-79r8msnr.js +7 -0
  70. package/dist/chunks/studio-7q6jdd4h.js +5 -0
  71. package/dist/chunks/{studio-r5qy30vx.js → studio-8hf8qcm1.js} +4 -4
  72. package/dist/chunks/{studio-8tr6cfrc.js → studio-8pne0rx4.js} +4 -4
  73. package/dist/chunks/{studio-y0n7yxea.js → studio-9179bsm7.js} +7 -7
  74. package/dist/chunks/{studio-pbxa5fpc.js → studio-9ff0vqff.js} +3 -3
  75. package/dist/chunks/studio-9gzvypw4.js +5 -0
  76. package/dist/chunks/studio-9ndgd55w.js +5 -0
  77. package/dist/chunks/studio-9ra9e7m4.js +5 -0
  78. package/dist/chunks/studio-a6e5fzve.js +5 -0
  79. package/dist/chunks/studio-a9k86nq6.js +5 -0
  80. package/dist/chunks/studio-ae7a69jc.js +6 -0
  81. package/dist/chunks/studio-aghsg0ds.js +7 -0
  82. package/dist/chunks/{studio-k3xxbagr.js → studio-ajw4k8hp.js} +3 -3
  83. package/dist/chunks/{studio-qmn1xc24.js → studio-apapy17g.js} +4 -4
  84. package/dist/chunks/{studio-8m0y2qe7.js → studio-by8x0jvc.js} +4 -4
  85. package/dist/chunks/{studio-wbcjbhy1.js → studio-c88gq88j.js} +5 -5
  86. package/dist/chunks/{studio-n0c5h6mf.js → studio-cg54vtet.js} +4 -4
  87. package/dist/chunks/studio-dvhxxxbd.js +5 -0
  88. package/dist/chunks/{studio-3q40e3rj.js → studio-e4rq6x0q.js} +4 -4
  89. package/dist/chunks/{studio-fbhxxc5f.js → studio-ekzbgnjp.js} +4 -4
  90. package/dist/chunks/studio-fg4fj9ec.js +10 -0
  91. package/dist/chunks/studio-fj6jzgxw.js +5 -0
  92. package/dist/chunks/{studio-nh6d342n.js → studio-g45r5vm8.js} +7 -7
  93. package/dist/chunks/{studio-a2bvaptz.js → studio-gczve8zf.js} +4 -4
  94. package/dist/chunks/studio-ge08zwpv.js +5 -0
  95. package/dist/chunks/studio-gk9yk8dj.js +12 -0
  96. package/dist/chunks/{studio-bbe4c90a.js → studio-gskkgfe3.js} +4 -4
  97. package/dist/chunks/{studio-83mk4bgg.js → studio-h4jbgne2.js} +8 -8
  98. package/dist/chunks/{studio-b7y5mr30.js → studio-hcy9zeac.js} +4 -4
  99. package/dist/chunks/studio-ht81xjkr.js +5 -0
  100. package/dist/chunks/{studio-jaaz8ce9.js → studio-jr30g4ae.js} +4 -4
  101. package/dist/chunks/{studio-qgh13jtz.js → studio-k5n4es74.js} +4 -4
  102. package/dist/chunks/{studio-ccv2svc6.js → studio-k6hbx2fc.js} +4 -4
  103. package/dist/chunks/{studio-9tmebf0s.js → studio-kqh7fxn6.js} +4 -4
  104. package/dist/chunks/{studio-q0mvbaq6.js → studio-kyw47pet.js} +4 -4
  105. package/dist/chunks/studio-mkw17ngg.js +5 -0
  106. package/dist/chunks/{studio-x9hsze61.js → studio-myb4mf0h.js} +4 -4
  107. package/dist/chunks/studio-n4qq1n57.js +5 -0
  108. package/dist/chunks/studio-nfmpmkqb.js +5 -0
  109. package/dist/chunks/studio-nfwacw31.js +5 -0
  110. package/dist/chunks/{studio-rthyg42z.js → studio-nm86874b.js} +172 -172
  111. package/dist/chunks/studio-nqexty8x.js +16 -0
  112. package/dist/chunks/studio-nr0kcqc6.js +5 -0
  113. package/dist/chunks/{studio-jsgf2q5k.js → studio-nvfa137z.js} +5 -5
  114. package/dist/chunks/studio-psh8mwnw.js +4 -0
  115. package/dist/chunks/studio-qd0cycm4.js +9 -0
  116. package/dist/chunks/{studio-tfkznv39.js → studio-qevf5z9d.js} +4 -4
  117. package/dist/chunks/studio-qs5fmhtj.js +14 -0
  118. package/dist/chunks/studio-ry4789ng.js +7 -0
  119. package/dist/chunks/studio-s4fq9jht.js +5 -0
  120. package/dist/chunks/studio-sc35ttdk.js +5 -0
  121. package/dist/chunks/studio-sm2f0sc6.js +6 -0
  122. package/dist/chunks/{studio-3qeh9t0h.js → studio-spza69tb.js} +5 -5
  123. package/dist/chunks/studio-t6dqnnft.js +5 -0
  124. package/dist/chunks/{studio-43sd2mam.js → studio-tfmhnwyr.js} +3 -3
  125. package/dist/chunks/studio-tn7v8gey.js +6 -0
  126. package/dist/chunks/{studio-tft6r105.js → studio-trcfer2b.js} +4 -4
  127. package/dist/chunks/studio-tyw7tk0x.js +5 -0
  128. package/dist/chunks/{studio-jcnsdaep.js → studio-tyzgte21.js} +4 -4
  129. package/dist/chunks/studio-vtey9w98.js +5 -0
  130. package/dist/chunks/studio-ws2r1d7e.js +5 -0
  131. package/dist/chunks/studio-x2trkhk5.js +5 -0
  132. package/dist/chunks/{studio-mn0476ag.js → studio-xzgp0cp7.js} +4 -4
  133. package/dist/chunks/studio-y47090vq.js +5 -0
  134. package/dist/chunks/{studio-5g0rprdt.js → studio-yjh9gddd.js} +5 -5
  135. package/dist/chunks/studio-ywf9y1e2.js +5 -0
  136. package/dist/chunks/{studio-k7evxqh4.js → studio-z1p91z5a.js} +4 -4
  137. package/dist/chunks/studio-ztppbam0.js +5 -0
  138. package/dist/chunks/{toast-host-1yg5ar8d.js → toast-host-g3r2s0kn.js} +2 -2
  139. package/dist/chunks/toast-w11qpkyz.js +4 -0
  140. package/dist/chunks/{tooltip-yypz28gq.js → tooltip-dj1pvgz7.js} +2 -2
  141. package/dist/chunks/{tree-9xa4hm7n.js → tree-j0ebwr5s.js} +2 -2
  142. package/dist/chunks/{tsMode-epyfz1hv.js → tsMode-byje4a01.js} +5 -5
  143. package/dist/chunks/workspace-7q4arnt3.js +4 -0
  144. package/dist/chunks/workspace-home-ge027kr6.js +4 -0
  145. package/dist/chunks/{ws-client-bv552sfx.js → ws-client-h09h6sqg.js} +3 -3
  146. package/dist/iframe-entry.js +14 -14
  147. package/dist/manifest.json +76 -76
  148. package/dist/studio.js +88 -88
  149. package/package.json +15 -16
  150. package/src/browse/component-examples.ts +15 -224
  151. package/src/browse/library-preview.ts +6 -13
  152. package/src/browse/preview-root.ts +7 -4
  153. package/src/canvas/canvas-utils.ts +18 -4
  154. package/src/canvas/iframe-editable-root.ts +13 -4
  155. package/src/canvas/iframe-entry.ts +3 -1
  156. package/src/canvas/iframe-interaction.ts +11 -2
  157. package/src/canvas/iframe-render.ts +25 -3
  158. package/src/canvas/preview-placeholder.ts +120 -0
  159. package/src/collab/collab-session.ts +6 -2
  160. package/src/commands/context.ts +4 -0
  161. package/src/commands/defaults.ts +2 -0
  162. package/src/commands/live-context.ts +2 -0
  163. package/src/editor/shortcuts.ts +3 -0
  164. package/src/files/files.ts +6 -3
  165. package/src/new-project/new-project-modal.ts +1 -4
  166. package/src/panels/ai-panel.ts +27 -34
  167. package/src/panels/component-preview.ts +5 -0
  168. package/src/panels/pane-context.ts +43 -18
  169. package/src/panels/site-model.ts +7 -19
  170. package/src/panels/site-panel.ts +2 -25
  171. package/src/panels/stylebook-doc.ts +2 -53
  172. package/src/platform.ts +20 -0
  173. package/src/platforms/devserver.ts +2 -120
  174. package/src/services/ai-ask.ts +29 -171
  175. package/src/services/ai-command-tools.ts +40 -50
  176. package/src/services/ai-import-tools.ts +4 -5
  177. package/src/services/ai-project-tools.ts +13 -3
  178. package/src/services/ai-tools.ts +26 -564
  179. package/src/services/ai-writes.ts +84 -2
  180. package/src/services/document-assistant.ts +29 -58
  181. package/src/services/harness/assistant-tools.ts +68 -0
  182. package/src/services/harness/interaction-store.ts +118 -0
  183. package/src/services/harness/studio-documents.ts +105 -0
  184. package/src/services/harness/turn-hooks.ts +1 -6
  185. package/src/services/project-adoption.ts +8 -16
  186. package/src/services/references.ts +0 -0
  187. package/src/services/tool-executor.ts +25 -22
  188. package/src/state.ts +3 -13
  189. package/src/style/stylebook-specimens.ts +11 -15
  190. package/src/surfaces/files-panel.json +12 -0
  191. package/src/surfaces/files-panel.ts +5 -2
  192. package/src/surfaces/pane-context.json +286 -265
  193. package/src/surfaces/pane-context.ts +17 -8
  194. package/src/surfaces/welcome.ts +4 -1
  195. package/src/tabs/selection.ts +14 -109
  196. package/src/tabs/tab.ts +15 -7
  197. package/src/tabs/transact.ts +316 -124
  198. package/src/types.ts +13 -8
  199. package/src/utils/geometry.ts +49 -2
  200. package/dist/chunks/adapter-5tphg7xe.js +0 -4
  201. package/dist/chunks/add-new-flow-psym14sn.js +0 -4
  202. package/dist/chunks/cf-account-picker-haqazq5r.js +0 -4
  203. package/dist/chunks/cf-settings-h2wrh6hq.js +0 -4
  204. package/dist/chunks/color-m7r1vk54.js +0 -4
  205. package/dist/chunks/components-r22xca09.js +0 -4
  206. package/dist/chunks/content-source-mmppmcyg.js +0 -4
  207. package/dist/chunks/editor-ccd9jwsa.js +0 -4
  208. package/dist/chunks/entry-commands-6qxz9e8p.js +0 -4
  209. package/dist/chunks/file-ops-qnab36ek.js +0 -4
  210. package/dist/chunks/files-rcn56qvm.js +0 -4
  211. package/dist/chunks/format-host-yxz0kjjs.js +0 -4
  212. package/dist/chunks/fs-events-d1qxq4z4.js +0 -4
  213. package/dist/chunks/grid-open-4z1g062t.js +0 -4
  214. package/dist/chunks/iframe-host-ssv7kyj0.js +0 -4
  215. package/dist/chunks/index-f0jn7nnp.js +0 -4
  216. package/dist/chunks/jx-validate-ttasrbh7.js +0 -4
  217. package/dist/chunks/layers-bgyr11tr.js +0 -4
  218. package/dist/chunks/layers-panel-7ez66zeq.js +0 -4
  219. package/dist/chunks/lit-html-v9gh687x.js +0 -4
  220. package/dist/chunks/media-library-sq468wts.js +0 -4
  221. package/dist/chunks/media-picker-shfe59pt.js +0 -4
  222. package/dist/chunks/monaco-buffer-3afgwvbp.js +0 -4
  223. package/dist/chunks/notify-kzrjr3fv.js +0 -4
  224. package/dist/chunks/parse-v77xtwv7.js +0 -4
  225. package/dist/chunks/platform-7v4rtd7m.js +0 -4
  226. package/dist/chunks/publish-panel-2z9gw8ee.js +0 -4
  227. package/dist/chunks/publish-workspace-wrc1dgwx.js +0 -4
  228. package/dist/chunks/quick-search-n0t0eqxb.js +0 -4
  229. package/dist/chunks/references-9547rg5s.js +0 -4
  230. package/dist/chunks/right-panel-wsgnr9pn.js +0 -4
  231. package/dist/chunks/source-control-kwktr9y6.js +0 -4
  232. package/dist/chunks/studio-03ct6yfv.js +0 -9
  233. package/dist/chunks/studio-07rcfje3.js +0 -5
  234. package/dist/chunks/studio-3e54qh39.js +0 -7
  235. package/dist/chunks/studio-3exxhz5g.js +0 -5
  236. package/dist/chunks/studio-3qqjeep5.js +0 -6
  237. package/dist/chunks/studio-4hp8pkyt.js +0 -5
  238. package/dist/chunks/studio-58xg6j2q.js +0 -9
  239. package/dist/chunks/studio-6m380wp7.js +0 -5
  240. package/dist/chunks/studio-80jyh1xh.js +0 -4
  241. package/dist/chunks/studio-8vcvfs7r.js +0 -6
  242. package/dist/chunks/studio-bavb31r0.js +0 -5
  243. package/dist/chunks/studio-c05wdnt3.js +0 -5
  244. package/dist/chunks/studio-d5grtb9e.js +0 -16
  245. package/dist/chunks/studio-df0baea9.js +0 -5
  246. package/dist/chunks/studio-dgk4dqtx.js +0 -7
  247. package/dist/chunks/studio-e1g64q43.js +0 -5
  248. package/dist/chunks/studio-ed1hp6zf.js +0 -6
  249. package/dist/chunks/studio-ed3xx40h.js +0 -7
  250. package/dist/chunks/studio-f14e1zdj.js +0 -5
  251. package/dist/chunks/studio-fyh0jc96.js +0 -5
  252. package/dist/chunks/studio-gcxk20n7.js +0 -5
  253. package/dist/chunks/studio-kt3pjkwd.js +0 -5
  254. package/dist/chunks/studio-m8g16bgz.js +0 -5
  255. package/dist/chunks/studio-mx1smyq0.js +0 -5
  256. package/dist/chunks/studio-nqxqf8p2.js +0 -4
  257. package/dist/chunks/studio-p4nrkvqr.js +0 -5
  258. package/dist/chunks/studio-pgmvdv7z.js +0 -7
  259. package/dist/chunks/studio-ph84avkf.js +0 -5
  260. package/dist/chunks/studio-q0tccd43.js +0 -5
  261. package/dist/chunks/studio-q7rtx6zq.js +0 -14
  262. package/dist/chunks/studio-qwdqwkj0.js +0 -5
  263. package/dist/chunks/studio-rj9eamf8.js +0 -5
  264. package/dist/chunks/studio-rptgsk96.js +0 -5
  265. package/dist/chunks/studio-s19tp1xr.js +0 -5
  266. package/dist/chunks/studio-syreb644.js +0 -5
  267. package/dist/chunks/studio-tf9jryb1.js +0 -10
  268. package/dist/chunks/studio-txf2kysx.js +0 -5
  269. package/dist/chunks/studio-v8867ddv.js +0 -12
  270. package/dist/chunks/studio-vxq7fcvv.js +0 -5
  271. package/dist/chunks/studio-w4rz9hdk.js +0 -5
  272. package/dist/chunks/studio-wc649wss.js +0 -5
  273. package/dist/chunks/studio-wys23mxz.js +0 -5
  274. package/dist/chunks/studio-y3ahhdpx.js +0 -5
  275. package/dist/chunks/studio-z97c48fk.js +0 -5
  276. package/dist/chunks/studio-zat62m0c.js +0 -5
  277. package/dist/chunks/studio-zcd2e7yz.js +0 -5
  278. package/dist/chunks/toast-1gv0h53h.js +0 -4
  279. package/dist/chunks/workspace-dz7nxfhv.js +0 -4
  280. package/dist/chunks/workspace-home-xsd7hkjw.js +0 -4
  281. package/src/services/directory-picker.ts +0 -187
  282. package/src/services/gated-registry.ts +0 -77
@@ -1,4 +1,4 @@
1
- import{Wt,yn,Lc,Ig,_y,Rg,Z0,ok,rk,sk,ak,lk,ck,dk,uk,hk}from"./studio-v8867ddv.js";import{pe}from"./studio-qgh13jtz.js";var b=pe(function(M){Object.defineProperty(M,"__esModule",{value:!0});M.dynamicAnchor=void 0;var _=Wt(),ge=Lc(),A=Z0(),_e=rk(),be={keyword:"$dynamicAnchor",schemaType:"string",code:(e)=>O(e,e.schema)};function O(e,t){let{gen:r,it:o}=e;o.schemaEnv.root.dynamicAnchors[t]=!0;let n=_._`${ge.default.dynamicAnchors}${_.getProperty(t)}`,s=o.errSchemaPath==="#"?o.validateName:ve(e);r.if(_._`!${n}`,()=>r.assign(n,s))}M.dynamicAnchor=O;function ve(e){let{schemaEnv:t,schema:r,self:o}=e.it,{root:n,baseId:s,localRefs:m,meta:c}=t.root,{schemaId:a}=o.opts,u=new A.SchemaEnv({schema:r,schemaId:a,root:n,baseId:s,localRefs:m,meta:c});return A.compileSchema.call(o,u),_e.getValidate(e,u)}M.default=be});var v=pe(function(N){Object.defineProperty(N,"__esModule",{value:!0});N.dynamicRef=void 0;var I=Wt(),qe=Lc(),x=rk(),Pe={keyword:"$dynamicRef",schemaType:"string",code:(e)=>w(e,e.schema)};function w(e,t){let{gen:r,keyword:o,it:n}=e;if(t[0]!=="#")throw Error(`"${o}" only supports hash fragment reference`);let s=t.slice(1);if(n.allErrors)m();else{let a=r.let("valid",!1);m(a),e.ok(a)}function m(a){if(n.schemaEnv.root.dynamicAnchors[s]){let u=r.let("_v",I._`${qe.default.dynamicAnchors}${I.getProperty(s)}`);r.if(u,c(u,a),c(n.validateName,a))}else c(n.validateName,a)()}function c(a,u){return u?()=>r.block(()=>{x.callRef(e,a),r.let(u,!0)}):()=>x.callRef(e,a)}}N.dynamicRef=w;N.default=Pe});var E=pe(function(k){Object.defineProperty(k,"__esModule",{value:!0});var Ae=b(),Oe=yn(),Me={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){if(e.schema)Ae.dynamicAnchor(e,"");else Oe.checkStrictMode(e.it,"$recursiveAnchor: false is ignored")}};k.default=Me});var V=pe(function(C){Object.defineProperty(C,"__esModule",{value:!0});var xe=v(),Ie={keyword:"$recursiveRef",schemaType:"string",code:(e)=>xe.dynamicRef(e,e.schema)};C.default=Ie});var K=pe(function(D){Object.defineProperty(D,"__esModule",{value:!0});var Ne=b(),Te=v(),ke=E(),Ee=V(),Ce=[Ne.default,Te.default,ke.default,Ee.default];D.default=Ce});var L=pe(function(z){Object.defineProperty(z,"__esModule",{value:!0});var G=lk(),De={keyword:"dependentRequired",type:"object",schemaType:"object",error:G.error,code:(e)=>G.validatePropertyDeps(e)};z.default=De});var Z=pe(function(U){Object.defineProperty(U,"__esModule",{value:!0});var Ge=lk(),ze={keyword:"dependentSchemas",type:"object",schemaType:"object",code:(e)=>Ge.validateSchemaDeps(e)};U.default=ze});var H=pe(function(F){Object.defineProperty(F,"__esModule",{value:!0});var Ue=yn(),Ze={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){if(t.contains===void 0)Ue.checkStrictMode(r,`"${e}" without "contains" is ignored`)}};F.default=Ze});var J=pe(function(B){Object.defineProperty(B,"__esModule",{value:!0});var He=L(),Be=Z(),Je=H(),Qe=[He.default,Be.default,Je.default];B.default=Qe});var X=pe(function(W){Object.defineProperty(W,"__esModule",{value:!0});var f=Wt(),Q=yn(),Xe=Lc(),Ye={message:"must NOT have unevaluated properties",params:({params:e})=>f._`{unevaluatedProperty: ${e.unevaluatedProperty}}`},et={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:Ye,code(e){let{gen:t,schema:r,data:o,errsCount:n,it:s}=e;if(!n)throw Error("ajv implementation error");let{allErrors:m,props:c}=s;if(c instanceof f.Name)t.if(f._`${c} !== true`,()=>t.forIn("key",o,(i)=>t.if(u(c,i),()=>a(i))));else if(c!==!0)t.forIn("key",o,(i)=>c===void 0?a(i):t.if(g(c,i),()=>a(i)));s.props=!0,e.ok(f._`${n} === ${Xe.default.errors}`);function a(i){if(r===!1){if(e.setParams({unevaluatedProperty:i}),e.error(),!m)t.break();return}if(!Q.alwaysValidSchema(s,r)){let p=t.name("valid");if(e.subschema({keyword:"unevaluatedProperties",dataProp:i,dataPropType:Q.Type.Str},p),!m)t.if(f.not(p),()=>t.break())}}function u(i,p){return f._`!${i} || !${i}[${p}]`}function g(i,p){let P=[];for(let R in i)if(i[R]===!0)P.push(f._`${p} !== ${R}`);return f.and(...P)}}};W.default=et});var te=pe(function(ee){Object.defineProperty(ee,"__esModule",{value:!0});var l=Wt(),Y=yn(),rt={message:({params:{len:e}})=>l.str`must NOT have more than ${e} items`,params:({params:{len:e}})=>l._`{limit: ${e}}`},at={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:rt,code(e){let{gen:t,schema:r,data:o,it:n}=e,s=n.items||0;if(s===!0)return;let m=t.const("len",l._`${o}.length`);if(r===!1)e.setParams({len:s}),e.fail(l._`${m} > ${s}`);else if(typeof r=="object"&&!Y.alwaysValidSchema(n,r)){let a=t.var("valid",l._`${m} <= ${s}`);t.if(l.not(a),()=>c(a,s)),e.ok(a)}n.items=!0;function c(a,u){t.forRange("i",u,m,(g)=>{if(e.subschema({keyword:"unevaluatedItems",dataProp:g,dataPropType:Y.Type.Num},a),!n.allErrors)t.if(l.not(a),()=>t.break())})}}};ee.default=at});var ae=pe(function(re){Object.defineProperty(re,"__esModule",{value:!0});var ot=X(),st=te(),it=[ot.default,st.default];re.default=it});var se=pe(function(oe){Object.defineProperty(oe,"__esModule",{value:!0});var dt=sk(),ut=ak(),mt=ck(),ft=K(),lt=J(),pt=ae(),yt=dk(),ne=uk(),ht=[ft.default,dt.default,ut.default,(0,mt.default)(!0),yt.default,ne.metadataVocabulary,ne.contentVocabulary,lt.default,pt.default];oe.default=ht});var ie=pe(function(ir,gt){gt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:!0,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:!0},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:!0}}}});var ce=pe(function(cr,_t){_t.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/applicator",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:"meta",title:"Applicator vocabulary meta-schema",type:["object","boolean"],properties:{prefixItems:{$ref:"#/$defs/schemaArray"},items:{$dynamicRef:"#meta"},contains:{$dynamicRef:"#meta"},additionalProperties:{$dynamicRef:"#meta"},properties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},patternProperties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},propertyNames:{format:"regex"},default:{}},dependentSchemas:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},propertyNames:{$dynamicRef:"#meta"},if:{$dynamicRef:"#meta"},then:{$dynamicRef:"#meta"},else:{$dynamicRef:"#meta"},allOf:{$ref:"#/$defs/schemaArray"},anyOf:{$ref:"#/$defs/schemaArray"},oneOf:{$ref:"#/$defs/schemaArray"},not:{$dynamicRef:"#meta"}},$defs:{schemaArray:{type:"array",minItems:1,items:{$dynamicRef:"#meta"}}}}});var de=pe(function(dr,bt){bt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}}});var ue=pe(function(ur,vt){vt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/content",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Content vocabulary meta-schema",type:["object","boolean"],properties:{contentEncoding:{type:"string"},contentMediaType:{type:"string"},contentSchema:{$dynamicRef:"#meta"}}}});var me=pe(function(mr,jt){jt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/core",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:"meta",title:"Core vocabulary meta-schema",type:["object","boolean"],properties:{$id:{$ref:"#/$defs/uriReferenceString",$comment:"Non-empty fragments not allowed.",pattern:"^[^#]*#?$"},$schema:{$ref:"#/$defs/uriString"},$ref:{$ref:"#/$defs/uriReferenceString"},$anchor:{$ref:"#/$defs/anchorString"},$dynamicRef:{$ref:"#/$defs/uriReferenceString"},$dynamicAnchor:{$ref:"#/$defs/anchorString"},$vocabulary:{type:"object",propertyNames:{$ref:"#/$defs/uriString"},additionalProperties:{type:"boolean"}},$comment:{type:"string"},$defs:{type:"object",additionalProperties:{$dynamicRef:"#meta"}}},$defs:{anchorString:{type:"string",pattern:"^[A-Za-z_][-A-Za-z0-9._]*$"},uriString:{type:"string",format:"uri"},uriReferenceString:{type:"string",format:"uri-reference"}}}});var fe=pe(function(fr,qt){qt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}}});var le=pe(function(lr,Pt){Pt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/meta-data",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:"meta",title:"Meta-data vocabulary meta-schema",type:["object","boolean"],properties:{title:{type:"string"},description:{type:"string"},default:!0,deprecated:{type:"boolean",default:!1},readOnly:{type:"boolean",default:!1},writeOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0}}}});var ye=pe(function(pr,Rt){Rt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/validation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:"meta",title:"Validation vocabulary meta-schema",type:["object","boolean"],properties:{type:{anyOf:[{$ref:"#/$defs/simpleTypes"},{type:"array",items:{$ref:"#/$defs/simpleTypes"},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/$defs/nonNegativeInteger"},minLength:{$ref:"#/$defs/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},maxItems:{$ref:"#/$defs/nonNegativeInteger"},minItems:{$ref:"#/$defs/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},maxContains:{$ref:"#/$defs/nonNegativeInteger"},minContains:{$ref:"#/$defs/nonNegativeInteger",default:1},maxProperties:{$ref:"#/$defs/nonNegativeInteger"},minProperties:{$ref:"#/$defs/nonNegativeIntegerDefault0"},required:{$ref:"#/$defs/stringArray"},dependentRequired:{type:"object",additionalProperties:{$ref:"#/$defs/stringArray"}}},$defs:{nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{$ref:"#/$defs/nonNegativeInteger",default:0},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}}}});var $e=pe(function(he){Object.defineProperty(he,"__esModule",{value:!0});var At=ie(),Ot=ce(),Mt=de(),St=ue(),xt=me(),It=fe(),wt=le(),Nt=ye(),Tt=["/properties"];function kt(e){return[At,Ot,Mt,St,xt,t(this,It),wt,t(this,Nt)].forEach((r)=>this.addMetaSchema(r,void 0,!1)),this;function t(r,o){return e?r.$dataMetaSchema(o,Tt):o}}he.default=kt});var Ft=pe(function(d,q){Object.defineProperty(d,"__esModule",{value:!0});d.MissingRefError=d.ValidationError=d.CodeGen=d.Name=d.nil=d.stringify=d.str=d._=d.KeywordCxt=d.Ajv2020=void 0;var Ct=ok(),Vt=se(),Dt=hk(),Kt=$e(),j="https://json-schema.org/draft/2020-12/schema";class h extends Ct.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){if(super._addVocabularies(),Vt.default.forEach((e)=>this.addVocabulary(e)),this.opts.discriminator)this.addKeyword(Dt.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;if(!t)return;Kt.default.call(this,e),this.refs["http://json-schema.org/schema"]=j}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(j)?j:void 0)}}d.Ajv2020=h;q.exports=d=h;q.exports.Ajv2020=h;Object.defineProperty(d,"__esModule",{value:!0});d.default=h;var Gt=Ig();Object.defineProperty(d,"KeywordCxt",{enumerable:!0,get:function(){return Gt.KeywordCxt}});var y=Wt();Object.defineProperty(d,"_",{enumerable:!0,get:function(){return y._}});Object.defineProperty(d,"str",{enumerable:!0,get:function(){return y.str}});Object.defineProperty(d,"stringify",{enumerable:!0,get:function(){return y.stringify}});Object.defineProperty(d,"nil",{enumerable:!0,get:function(){return y.nil}});Object.defineProperty(d,"Name",{enumerable:!0,get:function(){return y.Name}});Object.defineProperty(d,"CodeGen",{enumerable:!0,get:function(){return y.CodeGen}});var zt=_y();Object.defineProperty(d,"ValidationError",{enumerable:!0,get:function(){return zt.default}});var Lt=Rg();Object.defineProperty(d,"MissingRefError",{enumerable:!0,get:function(){return Lt.default}})});export default Ft();
1
+ import{zt,yn,Cc,Ng,Sy,Ag,Z0,ek,tk,nk,ik,ok,rk,sk,ak,lk}from"./studio-gk9yk8dj.js";import{pe}from"./studio-k5n4es74.js";var b=pe(function(M){Object.defineProperty(M,"__esModule",{value:!0});M.dynamicAnchor=void 0;var _=zt(),ge=Cc(),A=Z0(),_e=tk(),be={keyword:"$dynamicAnchor",schemaType:"string",code:(e)=>O(e,e.schema)};function O(e,t){let{gen:r,it:o}=e;o.schemaEnv.root.dynamicAnchors[t]=!0;let n=_._`${ge.default.dynamicAnchors}${_.getProperty(t)}`,s=o.errSchemaPath==="#"?o.validateName:ve(e);r.if(_._`!${n}`,()=>r.assign(n,s))}M.dynamicAnchor=O;function ve(e){let{schemaEnv:t,schema:r,self:o}=e.it,{root:n,baseId:s,localRefs:m,meta:c}=t.root,{schemaId:a}=o.opts,u=new A.SchemaEnv({schema:r,schemaId:a,root:n,baseId:s,localRefs:m,meta:c});return A.compileSchema.call(o,u),_e.getValidate(e,u)}M.default=be});var v=pe(function(N){Object.defineProperty(N,"__esModule",{value:!0});N.dynamicRef=void 0;var I=zt(),qe=Cc(),x=tk(),Pe={keyword:"$dynamicRef",schemaType:"string",code:(e)=>w(e,e.schema)};function w(e,t){let{gen:r,keyword:o,it:n}=e;if(t[0]!=="#")throw Error(`"${o}" only supports hash fragment reference`);let s=t.slice(1);if(n.allErrors)m();else{let a=r.let("valid",!1);m(a),e.ok(a)}function m(a){if(n.schemaEnv.root.dynamicAnchors[s]){let u=r.let("_v",I._`${qe.default.dynamicAnchors}${I.getProperty(s)}`);r.if(u,c(u,a),c(n.validateName,a))}else c(n.validateName,a)()}function c(a,u){return u?()=>r.block(()=>{x.callRef(e,a),r.let(u,!0)}):()=>x.callRef(e,a)}}N.dynamicRef=w;N.default=Pe});var E=pe(function(k){Object.defineProperty(k,"__esModule",{value:!0});var Ae=b(),Oe=yn(),Me={keyword:"$recursiveAnchor",schemaType:"boolean",code(e){if(e.schema)Ae.dynamicAnchor(e,"");else Oe.checkStrictMode(e.it,"$recursiveAnchor: false is ignored")}};k.default=Me});var V=pe(function(C){Object.defineProperty(C,"__esModule",{value:!0});var xe=v(),Ie={keyword:"$recursiveRef",schemaType:"string",code:(e)=>xe.dynamicRef(e,e.schema)};C.default=Ie});var K=pe(function(D){Object.defineProperty(D,"__esModule",{value:!0});var Ne=b(),Te=v(),ke=E(),Ee=V(),Ce=[Ne.default,Te.default,ke.default,Ee.default];D.default=Ce});var L=pe(function(z){Object.defineProperty(z,"__esModule",{value:!0});var G=ok(),De={keyword:"dependentRequired",type:"object",schemaType:"object",error:G.error,code:(e)=>G.validatePropertyDeps(e)};z.default=De});var Z=pe(function(U){Object.defineProperty(U,"__esModule",{value:!0});var Ge=ok(),ze={keyword:"dependentSchemas",type:"object",schemaType:"object",code:(e)=>Ge.validateSchemaDeps(e)};U.default=ze});var H=pe(function(F){Object.defineProperty(F,"__esModule",{value:!0});var Ue=yn(),Ze={keyword:["maxContains","minContains"],type:"array",schemaType:"number",code({keyword:e,parentSchema:t,it:r}){if(t.contains===void 0)Ue.checkStrictMode(r,`"${e}" without "contains" is ignored`)}};F.default=Ze});var J=pe(function(B){Object.defineProperty(B,"__esModule",{value:!0});var He=L(),Be=Z(),Je=H(),Qe=[He.default,Be.default,Je.default];B.default=Qe});var X=pe(function(W){Object.defineProperty(W,"__esModule",{value:!0});var f=zt(),Q=yn(),Xe=Cc(),Ye={message:"must NOT have unevaluated properties",params:({params:e})=>f._`{unevaluatedProperty: ${e.unevaluatedProperty}}`},et={keyword:"unevaluatedProperties",type:"object",schemaType:["boolean","object"],trackErrors:!0,error:Ye,code(e){let{gen:t,schema:r,data:o,errsCount:n,it:s}=e;if(!n)throw Error("ajv implementation error");let{allErrors:m,props:c}=s;if(c instanceof f.Name)t.if(f._`${c} !== true`,()=>t.forIn("key",o,(i)=>t.if(u(c,i),()=>a(i))));else if(c!==!0)t.forIn("key",o,(i)=>c===void 0?a(i):t.if(g(c,i),()=>a(i)));s.props=!0,e.ok(f._`${n} === ${Xe.default.errors}`);function a(i){if(r===!1){if(e.setParams({unevaluatedProperty:i}),e.error(),!m)t.break();return}if(!Q.alwaysValidSchema(s,r)){let p=t.name("valid");if(e.subschema({keyword:"unevaluatedProperties",dataProp:i,dataPropType:Q.Type.Str},p),!m)t.if(f.not(p),()=>t.break())}}function u(i,p){return f._`!${i} || !${i}[${p}]`}function g(i,p){let P=[];for(let R in i)if(i[R]===!0)P.push(f._`${p} !== ${R}`);return f.and(...P)}}};W.default=et});var te=pe(function(ee){Object.defineProperty(ee,"__esModule",{value:!0});var l=zt(),Y=yn(),rt={message:({params:{len:e}})=>l.str`must NOT have more than ${e} items`,params:({params:{len:e}})=>l._`{limit: ${e}}`},at={keyword:"unevaluatedItems",type:"array",schemaType:["boolean","object"],error:rt,code(e){let{gen:t,schema:r,data:o,it:n}=e,s=n.items||0;if(s===!0)return;let m=t.const("len",l._`${o}.length`);if(r===!1)e.setParams({len:s}),e.fail(l._`${m} > ${s}`);else if(typeof r=="object"&&!Y.alwaysValidSchema(n,r)){let a=t.var("valid",l._`${m} <= ${s}`);t.if(l.not(a),()=>c(a,s)),e.ok(a)}n.items=!0;function c(a,u){t.forRange("i",u,m,(g)=>{if(e.subschema({keyword:"unevaluatedItems",dataProp:g,dataPropType:Y.Type.Num},a),!n.allErrors)t.if(l.not(a),()=>t.break())})}}};ee.default=at});var ae=pe(function(re){Object.defineProperty(re,"__esModule",{value:!0});var ot=X(),st=te(),it=[ot.default,st.default];re.default=it});var se=pe(function(oe){Object.defineProperty(oe,"__esModule",{value:!0});var dt=nk(),ut=ik(),mt=rk(),ft=K(),lt=J(),pt=ae(),yt=sk(),ne=ak(),ht=[ft.default,dt.default,ut.default,(0,mt.default)(!0),yt.default,ne.metadataVocabulary,ne.contentVocabulary,lt.default,pt.default];oe.default=ht});var ie=pe(function(ir,gt){gt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/schema",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Core and Validation specifications meta-schema",allOf:[{$ref:"meta/core"},{$ref:"meta/applicator"},{$ref:"meta/unevaluated"},{$ref:"meta/validation"},{$ref:"meta/meta-data"},{$ref:"meta/format-annotation"},{$ref:"meta/content"}],type:["object","boolean"],$comment:"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",properties:{definitions:{$comment:'"definitions" has been replaced by "$defs".',type:"object",additionalProperties:{$dynamicRef:"#meta"},deprecated:!0,default:{}},dependencies:{$comment:'"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.',type:"object",additionalProperties:{anyOf:[{$dynamicRef:"#meta"},{$ref:"meta/validation#/$defs/stringArray"}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:'"$recursiveAnchor" has been replaced by "$dynamicAnchor".',$ref:"meta/core#/$defs/anchorString",deprecated:!0},$recursiveRef:{$comment:'"$recursiveRef" has been replaced by "$dynamicRef".',$ref:"meta/core#/$defs/uriReferenceString",deprecated:!0}}}});var ce=pe(function(cr,_t){_t.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/applicator",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:"meta",title:"Applicator vocabulary meta-schema",type:["object","boolean"],properties:{prefixItems:{$ref:"#/$defs/schemaArray"},items:{$dynamicRef:"#meta"},contains:{$dynamicRef:"#meta"},additionalProperties:{$dynamicRef:"#meta"},properties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},patternProperties:{type:"object",additionalProperties:{$dynamicRef:"#meta"},propertyNames:{format:"regex"},default:{}},dependentSchemas:{type:"object",additionalProperties:{$dynamicRef:"#meta"},default:{}},propertyNames:{$dynamicRef:"#meta"},if:{$dynamicRef:"#meta"},then:{$dynamicRef:"#meta"},else:{$dynamicRef:"#meta"},allOf:{$ref:"#/$defs/schemaArray"},anyOf:{$ref:"#/$defs/schemaArray"},oneOf:{$ref:"#/$defs/schemaArray"},not:{$dynamicRef:"#meta"}},$defs:{schemaArray:{type:"array",minItems:1,items:{$dynamicRef:"#meta"}}}}});var de=pe(function(dr,bt){bt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/unevaluated",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:"meta",title:"Unevaluated applicator vocabulary meta-schema",type:["object","boolean"],properties:{unevaluatedItems:{$dynamicRef:"#meta"},unevaluatedProperties:{$dynamicRef:"#meta"}}}});var ue=pe(function(ur,vt){vt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/content",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:"meta",title:"Content vocabulary meta-schema",type:["object","boolean"],properties:{contentEncoding:{type:"string"},contentMediaType:{type:"string"},contentSchema:{$dynamicRef:"#meta"}}}});var me=pe(function(mr,jt){jt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/core",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:"meta",title:"Core vocabulary meta-schema",type:["object","boolean"],properties:{$id:{$ref:"#/$defs/uriReferenceString",$comment:"Non-empty fragments not allowed.",pattern:"^[^#]*#?$"},$schema:{$ref:"#/$defs/uriString"},$ref:{$ref:"#/$defs/uriReferenceString"},$anchor:{$ref:"#/$defs/anchorString"},$dynamicRef:{$ref:"#/$defs/uriReferenceString"},$dynamicAnchor:{$ref:"#/$defs/anchorString"},$vocabulary:{type:"object",propertyNames:{$ref:"#/$defs/uriString"},additionalProperties:{type:"boolean"}},$comment:{type:"string"},$defs:{type:"object",additionalProperties:{$dynamicRef:"#meta"}}},$defs:{anchorString:{type:"string",pattern:"^[A-Za-z_][-A-Za-z0-9._]*$"},uriString:{type:"string",format:"uri"},uriReferenceString:{type:"string",format:"uri-reference"}}}});var fe=pe(function(fr,qt){qt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/format-annotation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:"meta",title:"Format vocabulary meta-schema for annotation results",type:["object","boolean"],properties:{format:{type:"string"}}}});var le=pe(function(lr,Pt){Pt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/meta-data",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:"meta",title:"Meta-data vocabulary meta-schema",type:["object","boolean"],properties:{title:{type:"string"},description:{type:"string"},default:!0,deprecated:{type:"boolean",default:!1},readOnly:{type:"boolean",default:!1},writeOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0}}}});var ye=pe(function(pr,Rt){Rt.exports={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://json-schema.org/draft/2020-12/meta/validation",$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:"meta",title:"Validation vocabulary meta-schema",type:["object","boolean"],properties:{type:{anyOf:[{$ref:"#/$defs/simpleTypes"},{type:"array",items:{$ref:"#/$defs/simpleTypes"},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/$defs/nonNegativeInteger"},minLength:{$ref:"#/$defs/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},maxItems:{$ref:"#/$defs/nonNegativeInteger"},minItems:{$ref:"#/$defs/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},maxContains:{$ref:"#/$defs/nonNegativeInteger"},minContains:{$ref:"#/$defs/nonNegativeInteger",default:1},maxProperties:{$ref:"#/$defs/nonNegativeInteger"},minProperties:{$ref:"#/$defs/nonNegativeIntegerDefault0"},required:{$ref:"#/$defs/stringArray"},dependentRequired:{type:"object",additionalProperties:{$ref:"#/$defs/stringArray"}}},$defs:{nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{$ref:"#/$defs/nonNegativeInteger",default:0},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}}}});var $e=pe(function(he){Object.defineProperty(he,"__esModule",{value:!0});var At=ie(),Ot=ce(),Mt=de(),St=ue(),xt=me(),It=fe(),wt=le(),Nt=ye(),Tt=["/properties"];function kt(e){return[At,Ot,Mt,St,xt,t(this,It),wt,t(this,Nt)].forEach((r)=>this.addMetaSchema(r,void 0,!1)),this;function t(r,o){return e?r.$dataMetaSchema(o,Tt):o}}he.default=kt});var Ht=pe(function(d,q){Object.defineProperty(d,"__esModule",{value:!0});d.MissingRefError=d.ValidationError=d.CodeGen=d.Name=d.nil=d.stringify=d.str=d._=d.KeywordCxt=d.Ajv2020=void 0;var Ct=ek(),Vt=se(),Dt=lk(),Kt=$e(),j="https://json-schema.org/draft/2020-12/schema";class h extends Ct.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){if(super._addVocabularies(),Vt.default.forEach((e)=>this.addVocabulary(e)),this.opts.discriminator)this.addKeyword(Dt.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;if(!t)return;Kt.default.call(this,e),this.refs["http://json-schema.org/schema"]=j}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(j)?j:void 0)}}d.Ajv2020=h;q.exports=d=h;q.exports.Ajv2020=h;Object.defineProperty(d,"__esModule",{value:!0});d.default=h;var Gt=Ng();Object.defineProperty(d,"KeywordCxt",{enumerable:!0,get:function(){return Gt.KeywordCxt}});var y=zt();Object.defineProperty(d,"_",{enumerable:!0,get:function(){return y._}});Object.defineProperty(d,"str",{enumerable:!0,get:function(){return y.str}});Object.defineProperty(d,"stringify",{enumerable:!0,get:function(){return y.stringify}});Object.defineProperty(d,"nil",{enumerable:!0,get:function(){return y.nil}});Object.defineProperty(d,"Name",{enumerable:!0,get:function(){return y.Name}});Object.defineProperty(d,"CodeGen",{enumerable:!0,get:function(){return y.CodeGen}});var Lt=Sy();Object.defineProperty(d,"ValidationError",{enumerable:!0,get:function(){return Lt.default}});var Ut=Ag();Object.defineProperty(d,"MissingRefError",{enumerable:!0,get:function(){return Ut.default}})});export default Ht();
2
2
 
3
- //# debugId=BFC533EA039AEEE364756E2164756E21
4
- //# sourceMappingURL=2020-5wtzce5g.js.map
3
+ //# debugId=7CF1490E9B70BC2164756E2164756E21
4
+ //# sourceMappingURL=2020-89fz3pfy.js.map
@@ -0,0 +1,4 @@
1
+ import{qs,Gs,Wr}from"./studio-g45r5vm8.js";export{Wr as draggable,qs as dropTargetForElements,Gs as monitorForElements};
2
+
3
+ //# debugId=6706B48D5462E95E64756E2164756E21
4
+ //# sourceMappingURL=adapter-ay13gema.js.map
@@ -0,0 +1,4 @@
1
+ import{te}from"./studio-psh8mwnw.js";import{p}from"./studio-9ndgd55w.js";import{g,C}from"./studio-tfmhnwyr.js";import"./studio-ajw4k8hp.js";import{Ot,Nt,dh,ae}from"./studio-qs5fmhtj.js";import"./studio-8pne0rx4.js";import{Ue,ft,T,R,Jt,rt,tt}from"./studio-myb4mf0h.js";import{Ht,Na,lr,Aa}from"./studio-a6e5fzve.js";import{Pn,Wt,ln,go}from"./studio-ztppbam0.js";import"./studio-4rgem12q.js";import{sS}from"./studio-fg4fj9ec.js";import"./studio-7q6jdd4h.js";import"./studio-by8x0jvc.js";import"./studio-8hf8qcm1.js";import"./studio-y47090vq.js";import"./studio-14hh60j8.js";import{Co,Gl}from"./studio-nqexty8x.js";import"./studio-0nefxhar.js";import"./studio-9179bsm7.js";import"./studio-yjh9gddd.js";import"./studio-t6dqnnft.js";import{zc,_a,Sa}from"./studio-vtey9w98.js";import{Zu,Lb}from"./studio-0rg30pvs.js";import{Ne,Ob}from"./studio-ekzbgnjp.js";import"./studio-g45r5vm8.js";import"./studio-x2trkhk5.js";import"./studio-ws2r1d7e.js";import"./studio-1cfyd1ys.js";import"./studio-4qg61g9j.js";import"./studio-79r8msnr.js";import{K_,OE,pw,X_,yi}from"./studio-ry4789ng.js";import"./studio-9ff0vqff.js";import"./studio-k6hbx2fc.js";import"./studio-nfmpmkqb.js";import"./studio-k1wvtp03.js";import{lm}from"./studio-ht81xjkr.js";import"./studio-cg54vtet.js";import"./studio-6rbaedw2.js";import"./studio-xzgp0cp7.js";import{tE,Gy}from"./studio-nvfa137z.js";import{tb,tw,Hs,$c,P_,sm,nw,F_,hE,Qa,j_,Mu,H_,cD,pE,am,nb,fE,mE,gE,dD,uD,B_}from"./studio-mkw17ngg.js";import{Kg}from"./studio-9gzvypw4.js";import{Jg,Sd,Cd}from"./studio-aghsg0ds.js";import{Qy,cE}from"./studio-fj6jzgxw.js";import{Ml}from"./studio-ge08zwpv.js";import"./studio-s4fq9jht.js";import{qE,bw}from"./studio-n4qq1n57.js";import{as}from"./studio-trcfer2b.js";import"./studio-ae7a69jc.js";import"./studio-spza69tb.js";import"./studio-kqh7fxn6.js";import{S,xn}from"./studio-9ra9e7m4.js";import{n,v}from"./studio-ywf9y1e2.js";var z={$schema:"https://jxsuite.com/schema/v1",$id:"StudioAddNew",$description:"Add new: the one dialog that creates a page, a collection, a template, a component, a collection entry or an upload (`specs/studio.md` §9.1.1). One `jx-dialog`, so the platform owns modality, Escape, the backdrop and focus restoration. The kinds run down the left as a radiogroup and the chosen kind's name and options fill the right; the line above the buttons is the derived result, the same `deriveCreation` the write performs, so what it says is what is written. Nothing here composes a path, judges a name or knows a format: `create/add-new-flow.ts` keeps every decision and hands this document rows that are already strings, flags that are already booleans and a refusal that is already a sentence.",tagName:"jx-dialog",$props:{headline:"Add new",confirmLabel:{$ref:"#/state/cta"},confirmDisabled:{$ref:"#/state/blocked"},cancelLabel:"Cancel",size:"lg"},attributes:{part:"add-new","data-kind":"${state.kind}"},onconfirm:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/confirm"},value:[]}]},oncancel:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/closed"},value:[]}]},onclose:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/closed"},value:[]}]},ondragover:{$prototype:"Function",body:[{preventDefault:!0}]},ondrop:{$prototype:"Function",body:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/drop"},value:[{$ref:"event#/dataTransfer/files"}]}]},style:{$description:"The board's two columns in the kit's scale. The kinds take a fixed gutter so the right side does not move under the reader as they switch kinds, and the options column scrolls on its own so a long template list never pushes the result line and the buttons off the dialog. No part here is named `field`, `label`, `body`, `error`, `text` or `actions`: the kit is light DOM, and `jx-textfield`, `jx-select` and `jx-dialog` each draw internal nodes under those names inside this same tree.",'& [part="sheet"]':{display:"flex",gap:"var(--jx-space-5)",minHeight:"360px"},'& [part="kinds-column"]':{flex:"0 0 208px",display:"flex",flexDirection:"column",gap:"var(--jx-space-3)",borderRight:"1px solid var(--border)",paddingRight:"var(--jx-space-3)"},'& [part="kinds"]':{display:"flex",flexDirection:"column",alignItems:"stretch",gap:"var(--jx-space-1)"},'& [part="kind"]':{display:"block"},'& [part="kind"] > [part="control"]':{$description:"A kind is a row with its own two lines, so the button's box stretches across the gutter and starts its content at the left edge rather than centring an icon.",width:"100%",height:"auto",justifyContent:"flex-start",alignItems:"flex-start",textAlign:"start",padding:"var(--jx-space-2) var(--jx-space-3)",gap:"var(--jx-space-3)"},'& [part="kind-text"]':{display:"flex",flexDirection:"column",gap:"2px"},'& [part="kind-name"]':{fontSize:"var(--jx-text-md)",color:"var(--fg)"},'& [part="kind-hint"], & [part="choice-note"]':{fontSize:"var(--jx-text-sm)",color:"var(--fg-dim)",whiteSpace:"normal"},'& [part="chord-note"], & [part="note"], & [part="kind-intro"], & [part="drop-summary"]':{margin:"0",fontSize:"var(--jx-text-sm)",color:"var(--fg-dim)"},'& [part="chord-note"]':{marginTop:"auto"},'& [part="detail"]':{flex:"1",minWidth:"0",display:"flex",flexDirection:"column",gap:"var(--jx-space-4)",maxHeight:"60vh",overflowY:"auto"},'& [part="options"]':{display:"flex",flexDirection:"column",gap:"var(--jx-space-3)"},'& [part="name-slot"], & [part="options-slot"], & [part="url-slot"], & [part="own-page-slot"], & [part="copy-slot"], & [part="locale-slot"], & [part="localized-slot"]':{$description:"Branch hosts are structure rather than layout: `display: contents` puts what they carry straight into the column, so one gap rule spaces every row whether it is drawn or not.",display:"contents"},'& [part="group-label"]':{margin:"0",fontSize:"var(--jx-text-sm)",color:"var(--fg-dim)"},'& [part="url-row"], & [part="pattern-row"]':{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"var(--jx-space-2)"},'& [part="url-label"]':{fontSize:"var(--jx-text-sm)",color:"var(--fg-dim)"},'& [part="route"], & [part="pattern"]':{fontFamily:"var(--font-mono)",fontSize:"var(--jx-text-sm)",color:"var(--fg)"},'& [part="start-row"]':{display:"flex",flexDirection:"column",gap:"var(--jx-space-2)"},'& [part="start-from"], & [part="wrap-in"], & [part="component-start"]':{display:"flex",flexWrap:"wrap",gap:"var(--jx-space-2)"},'& [part="choice-card"] > [part="control"]':{$description:"A choice is a card with a name and a note, as the board draws it: its own two lines inside one radio, so the reader hears one name and sees both.",minWidth:"132px",height:"auto",flexDirection:"column",alignItems:"flex-start",textAlign:"start",padding:"var(--jx-space-2) var(--jx-space-3)",gap:"2px"},'& [part="choice-name"]':{display:"block",fontSize:"var(--jx-text-md)",color:"var(--fg)"},'& [part="choice-note"]':{display:"block"},'& [part="presets"]':{display:"flex",flexWrap:"wrap",gap:"var(--jx-space-2)"},'& [part="drop"]':{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"var(--jx-space-2)",minHeight:"200px",padding:"var(--jx-space-5)",border:"1px dashed var(--border)",borderRadius:"var(--radius)",textAlign:"center"},'& [part="drop"][data-drop="true"]':{borderColor:"var(--accent)",background:"var(--accent-10)"},'& [part="drop-title"]':{margin:"0",fontSize:"var(--jx-text-md)",color:"var(--fg)"},'& [part="browse"]':{display:"inline-flex",alignItems:"center",gap:"var(--jx-space-2)",padding:"var(--jx-space-1) var(--jx-space-3)",border:"1px solid var(--border)",borderRadius:"var(--radius)",color:"var(--fg)",cursor:"pointer"},'& [part="browse"]:focus-within':{outline:"var(--jx-focus-ring)",outlineOffset:"2px"},'& [part="browse-input"]':{$description:"Visually hidden, never `display: none`: the input is the control, and a hidden-from-layout one cannot take focus from the keyboard. The label around it is what is drawn and what is clicked.",position:"absolute",width:"1px",height:"1px",opacity:"0",overflow:"hidden"},'& [part="saved"]':{margin:"0",paddingTop:"var(--jx-space-3)",borderTop:"1px solid var(--border)",fontSize:"var(--jx-text-sm)",color:"var(--fg-dim)",overflowWrap:"anywhere"}},children:[{tagName:"div",attributes:{part:"sheet"},children:[{tagName:"div",attributes:{part:"kinds-column"},children:[{tagName:"jx-action-group",attributes:{part:"kinds"},$props:{selects:"single",label:"What to create",orientation:"vertical",compact:!1},children:[{$prototype:"Array",items:{$ref:"#/state/kinds"},key:{$ref:"$map/item/id"},map:{tagName:"jx-action-button",attributes:{part:"kind","data-kind":"${$map.item.id}"},$props:{label:{$ref:"$map/item/label"},icon:{$ref:"$map/item/icon"},checked:{$ref:"$map/item/checked"}},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickKind"},value:[{$ref:"$map/item/id"}]}]},children:[{tagName:"span",attributes:{part:"kind-text"},children:[{tagName:"span",attributes:{part:"kind-name"},textContent:"${$map.item.label}"},{tagName:"span",attributes:{part:"kind-hint"},textContent:"${$map.item.hint}"}]}]}}]},{tagName:"p",attributes:{part:"chord-note"},textContent:"${state.chordNote}"}]},{tagName:"section",attributes:{part:"detail","aria-label":"${state.kindLabel}"},children:[{tagName:"p",attributes:{part:"kind-intro"},textContent:"${state.kindHint}"},{tagName:"div",attributes:{part:"name-slot",role:"none"},$switch:{$ref:"#/state/named"},cases:{true:{tagName:"jx-field",attributes:{part:"name-row"},$props:{span:!0,label:{$ref:"#/state/nameLabel"},invalid:{$ref:"#/state/invalid"}},children:[{tagName:"jx-textfield",attributes:{part:"name"},$props:{value:{$ref:"#/state/name"},placeholder:{$ref:"#/state/placeholder"},invalid:{$ref:"#/state/invalid"},error:{$ref:"#/state/error"},required:!0,autocomplete:"off"},oninput:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/setName"},value:[{$ref:"event#/target/value"}]}]},onkeydown:{$prototype:"Function",body:[{$switch:{$ref:"event#/key"},cases:{Enter:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/confirm"},value:[]}]}}]}}]}}},{tagName:"div",attributes:{part:"options-slot",role:"none"},$switch:{$ref:"#/state/kind"},cases:{page:{tagName:"div",attributes:{part:"options",role:"none"},children:[{tagName:"div",attributes:{part:"locale-slot",role:"none"},$switch:{$ref:"#/state/localeShown"},cases:{true:{tagName:"jx-field",attributes:{part:"locale-row"},$props:{span:!0,label:"Language"},children:[{tagName:"jx-select",attributes:{part:"locale"},$props:{size:"sm",label:"Language",options:{$ref:"#/state/localeOptions"},value:{$ref:"#/state/locale"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickLocale"},value:[{$ref:"event#/target/value"}]}]}}]}}},{tagName:"div",attributes:{part:"url-row"},children:[{tagName:"span",attributes:{part:"url-label"},textContent:"URL"},{tagName:"code",attributes:{part:"route"},textContent:"${state.route}"},{tagName:"jx-action-button",attributes:{part:"edit-url"},$props:{label:"Edit URL",toggles:!0,selected:{$ref:"#/state/editingUrl"},size:"sm"},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/toggleUrl"},value:[]}]},children:[{tagName:"span",textContent:"Edit"}]}]},{tagName:"div",attributes:{part:"url-slot",role:"none"},$switch:{$ref:"#/state/editingUrl"},cases:{true:{tagName:"jx-field",attributes:{part:"url-row-field"},$props:{span:!0,label:"URL"},children:[{tagName:"jx-textfield",attributes:{part:"url"},$props:{size:"sm",mono:!0,value:{$ref:"#/state/url"},placeholder:"/pricing"},oninput:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/setUrl"},value:[{$ref:"event#/target/value"}]}]},onkeydown:{$prototype:"Function",body:[{$switch:{$ref:"event#/key"},cases:{Enter:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/confirm"},value:[]}]}}]}}]}}},{tagName:"div",attributes:{part:"start-row"},children:[{tagName:"p",attributes:{part:"group-label"},textContent:"Start from"},{tagName:"jx-action-group",attributes:{part:"start-from"},$props:{selects:"single",label:"Start from",compact:!1},children:[{$prototype:"Array",items:{$ref:"#/state/startChoices"},key:{$ref:"$map/item/value"},map:{tagName:"jx-action-button",attributes:{part:"choice-card","data-value":"${$map.item.value}"},$props:{label:{$ref:"$map/item/label"},checked:{$ref:"$map/item/checked"},disabled:{$ref:"$map/item/disabled"},hint:{$ref:"$map/item/reason"},quiet:!1},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickStart"},value:[{$ref:"$map/item/value"}]}]},children:[{tagName:"span",attributes:{part:"choice-name"},textContent:"${$map.item.label}"},{tagName:"span",attributes:{part:"choice-note"},textContent:"${$map.item.note}"}]}}]}]}]},collection:{tagName:"div",attributes:{part:"options",role:"none"},children:[{tagName:"p",attributes:{part:"group-label"},textContent:"Each ${state.itemNoun} has"},{tagName:"jx-action-group",attributes:{part:"presets"},$props:{selects:"multiple",label:"Fields",compact:!1},children:[{$prototype:"Array",items:{$ref:"#/state/presets"},key:{$ref:"$map/item/id"},map:{tagName:"jx-action-button",attributes:{part:"preset","data-preset":"${$map.item.id}"},$props:{label:{$ref:"$map/item/label"},toggles:!0,selected:{$ref:"$map/item/selected"},quiet:!1,size:"sm",icon:{$ref:"$map/item/icon"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/togglePreset"},value:[{$ref:"$map/item/id"}]}]},children:[{tagName:"span",textContent:"${$map.item.label}"}]}}]},{tagName:"p",attributes:{part:"note"},textContent:"You can add or change fields later."},{tagName:"div",attributes:{part:"localized-slot",role:"none"},$switch:{$ref:"#/state/localizable"},cases:{true:{tagName:"jx-checkbox",attributes:{part:"localized"},$props:{checked:{$ref:"#/state/localized"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/setLocalized"},value:[{$ref:"event#/target/checked"}]}]},children:[{tagName:"span",textContent:"One folder per language (${state.localeSummary})"}]}}},{tagName:"jx-checkbox",attributes:{part:"own-page"},$props:{checked:{$ref:"#/state/ownPage"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/setOwnPage"},value:[{$ref:"event#/target/checked"}]}]},children:[{tagName:"span",textContent:"Give each ${state.itemNoun} its own page"}]},{tagName:"div",attributes:{part:"own-page-slot",role:"none"},$switch:{$ref:"#/state/ownPage"},cases:{true:{tagName:"div",attributes:{part:"pattern-row"},children:[{tagName:"span",attributes:{part:"url-label"},textContent:"at"},{tagName:"code",attributes:{part:"pattern"},textContent:"${state.pattern}"},{tagName:"span",attributes:{part:"url-label"},textContent:"using"},{tagName:"jx-select",attributes:{part:"page-template"},$props:{size:"sm",label:"Template for each page",options:{$ref:"#/state/templateOptions"},value:{$ref:"#/state/pageTemplate"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickPageTemplate"},value:[{$ref:"event#/target/value"}]}]}}]}}}]},template:{tagName:"div",attributes:{part:"options",role:"none"},children:[{tagName:"p",attributes:{part:"group-label"},textContent:"Wrap it in"},{tagName:"jx-action-group",attributes:{part:"wrap-in"},$props:{selects:"single",label:"Wrap it in",compact:!1},children:[{$prototype:"Array",items:{$ref:"#/state/wrapChoices"},key:{$ref:"$map/item/value"},map:{tagName:"jx-action-button",attributes:{part:"choice-card","data-value":"${$map.item.value}"},$props:{label:{$ref:"$map/item/label"},checked:{$ref:"$map/item/checked"},disabled:{$ref:"$map/item/disabled"},hint:{$ref:"$map/item/reason"},quiet:!1},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickWrap"},value:[{$ref:"$map/item/value"}]}]},children:[{tagName:"span",attributes:{part:"choice-name"},textContent:"${$map.item.label}"},{tagName:"span",attributes:{part:"choice-note"},textContent:"${$map.item.note}"}]}}]},{tagName:"p",attributes:{part:"note"},textContent:"Pages placed in this template fill its Content area. You can add more named areas later."}]},component:{tagName:"div",attributes:{part:"options",role:"none"},children:[{tagName:"p",attributes:{part:"group-label"},textContent:"Start from"},{tagName:"jx-action-group",attributes:{part:"component-start"},$props:{selects:"single",label:"Start from",compact:!1},children:[{$prototype:"Array",items:{$ref:"#/state/componentChoices"},key:{$ref:"$map/item/value"},map:{tagName:"jx-action-button",attributes:{part:"choice-card","data-value":"${$map.item.value}"},$props:{label:{$ref:"$map/item/label"},checked:{$ref:"$map/item/checked"},disabled:{$ref:"$map/item/disabled"},hint:{$ref:"$map/item/reason"},quiet:!1},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickComponentStart"},value:[{$ref:"$map/item/value"}]}]},children:[{tagName:"span",attributes:{part:"choice-name"},textContent:"${$map.item.label}"},{tagName:"span",attributes:{part:"choice-note"},textContent:"${$map.item.note}"}]}}]},{tagName:"div",attributes:{part:"copy-slot",role:"none"},$switch:{$ref:"#/state/copying"},cases:{true:{tagName:"jx-field",attributes:{part:"copy-row"},$props:{span:!0,label:"Copy of"},children:[{tagName:"jx-select",attributes:{part:"copy-of"},$props:{size:"sm",label:"Component to copy",options:{$ref:"#/state/copyOptions"},value:{$ref:"#/state/copyOf"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickCopy"},value:[{$ref:"event#/target/value"}]}]}}]}}},{tagName:"p",attributes:{part:"note"},textContent:"It appears under Components in the Site panel, ready to drag onto any page."}]},entry:{tagName:"div",attributes:{part:"options",role:"none"},children:[{tagName:"jx-field",attributes:{part:"collection-row"},$props:{span:!0,label:"Collection"},children:[{tagName:"jx-select",attributes:{part:"collection"},$props:{size:"sm",label:"Collection",options:{$ref:"#/state/collectionOptions"},value:{$ref:"#/state/collection"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickCollection"},value:[{$ref:"event#/target/value"}]}]}}]},{tagName:"div",attributes:{part:"locale-slot",role:"none"},$switch:{$ref:"#/state/localeShown"},cases:{true:{tagName:"jx-field",attributes:{part:"locale-row"},$props:{span:!0,label:"Language"},children:[{tagName:"jx-select",attributes:{part:"locale"},$props:{size:"sm",label:"Language",options:{$ref:"#/state/localeOptions"},value:{$ref:"#/state/locale"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickLocale"},value:[{$ref:"event#/target/value"}]}]}}]}}}]},media:{tagName:"div",attributes:{part:"drop","data-drop":"${state.dropActive}"},ondragover:{$prototype:"Function",body:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/dragOver"},value:[]}]},ondragleave:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/dragOut"},value:[]}]},children:[{tagName:"jx-icon",attributes:{part:"drop-glyph"},$props:{name:"upload-simple"}},{tagName:"p",attributes:{part:"drop-title"},textContent:"Drop images, video or documents"},{tagName:"label",attributes:{part:"browse"},children:[{tagName:"input",attributes:{part:"browse-input",type:"file",multiple:!0,accept:"${state.uploadAccept}"},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/choose"},value:[{$ref:"event#/target"}]}]}},{tagName:"span",textContent:"Browse files"}]},{tagName:"p",attributes:{part:"drop-summary"},textContent:"${state.fileSummary}"}]}}}]}]},{tagName:"p",attributes:{part:"saved","aria-live":"polite"},textContent:"${state.saved}"}]};T("add-new",z);function D(e){return{...e,blocked:!e.canConfirm,invalid:e.error!=="",named:e.kind!=="media"}}function E(e){let t=document.createElement("div");t.style.pointerEvents="auto",t.setAttribute(Ue,ft("dialog","add-new")),e.layer.append(t);let r=!1,o=()=>{if(r)return;r=!0,e.actions.closed()},l=()=>r,{actions:a}=e,d=g({...D(e.view),choose:a.choose,closed:o,confirm:a.confirm,dragOut:a.dragOut,dragOver:a.dragOver,drop:a.drop,pickCollection:a.pickCollection,pickComponentStart:a.pickComponentStart,pickCopy:a.pickCopy,pickKind:a.pickKind,pickLocale:a.pickLocale,pickPageTemplate:a.pickPageTemplate,pickStart:a.pickStart,pickWrap:a.pickWrap,setName:(m)=>{d.name=m,a.setName(m)},setLocalized:a.setLocalized,setOwnPage:a.setOwnPage,setUrl:(m)=>{d.url=m,a.setUrl(m)},toggleUrl:a.toggleUrl,togglePreset:a.togglePreset}),f=null,u=()=>{setTimeout(()=>{let m=f?.root;if(r||!(m instanceof HTMLElement))return;let c=m.querySelector('jx-textfield[part="name"]');if(c)dh(c,"all")},0)},b=R("add-new",d,t).then(async(m)=>{f=m;let c=m.root;if(l())return m.dispose(),c;if(await Jt(c),l())return c;if(Ot(c),d.named)u();return c});return{close(){let m=f?.root;if(m instanceof HTMLElement)Nt(m);f?.dispose(),f=null,t.remove(),o()},host:t,ready:b,update(m){Object.assign(d,D(m))}}}var y="Add new";async function W(){return(await tE()).map((t)=>({name:t.name,ref:t.path})).toSorted((t,r)=>t.name.localeCompare(r.name))}function _(){for(let e of K_("page")){if(e.ext===".json")continue;let t=Na(e.ext,"serialize");if(t)return{ext:e.ext,name:t.name}}return null}function B(){let e=lr(),t=e?.extensions[0];return e&&t?{ext:t,name:e.name}:null}function J(){return ln(S?.projectConfig??{}).i18n}async function V(e){let t={},{i18n:r}=ln(S?.projectConfig??{});for(let o of await sS(e)){let l=Pn(go(o,r));if(l!==null)t[l]=o}return t}async function L(){await Ht().catch(()=>{});let e=await Promise.all(bw().map(async(t)=>{let r={dir:t.dir,ext:t.ext,formatName:B_(t),name:t.name,schema:t.schema};if(nb(t))r.localeDirs=await V(t);return r}));return{i18n:J(),article:_(),collections:e,componentTags:Ne.map((t)=>t.tagName),copyableTags:Ne.filter((t)=>I(t)).map((t)=>t.tagName),contentFormat:B(),declaredContent:qE(),defaultLayout:S?.projectConfig?.defaults?.layout??null,hasSelection:Qy()!==null,layouts:await W()}}function I(e){let{path:t}=e;return n(t)&&e.source!=="npm"&&t.endsWith(".json")}async function Y(){let e=new Map;for(let t of Ne){let{path:r}=t;if(!I(t)||!n(r))continue;try{let o=JSON.parse(await p().readFile(r));if(v(o))e.set(t.tagName,o)}catch{}}return e}function U(e,t){let r=e.trim();if(r===Hs||r==="none"||r==="")return Hs;if(r===$c)return $c;let o=Qa(r);return t.find((a)=>Qa(a.ref)===o||Qa(a.ref)===`layouts/${o}`||Qa(a.ref)===`layouts/${o}.json`||a.name.toLowerCase()===r.toLowerCase())?.ref??null}function G(e,t){let r={};if(e.collection!==void 0)r.collection=e.collection;if(e.locale!==void 0){if(am(e.locale,t)===null){let o=t.i18n?.locales??[];throw RangeError(`command "file.new" argument "locale": "${e.locale}" is not a language this `+`project declares — declared: ${o.length===0?"none":o.join(", ")}`)}r.locale=e.locale}if(e.template!==void 0){let o=U(e.template,t.layouts);if(o===null){let l=t.layouts.map((a)=>Qa(a.ref));throw RangeError(`command "file.new" argument "template": "${e.template}" names no template — `+`declared: ${[Hs,$c,...l].join(", ")}`)}if(e.kind==="collection")r.pageTemplate=o===$c?Hs:o;else if(e.kind==="template")r.startFrom=o===Hs||o===$c?"":o;else r.startFrom=o}return r}async function Q(e){if(e.format===null)return Co(e.doc,null);return Aa(e.format,e.doc,{frontmatter:e.frontmatter??!0,mode:"roundtrip"})}async function F(e,t,r=!1){for(let o of dD(gE(e)))await Promise.all(o.map(async(l)=>{if(!r&&t.has(l))return;t.set(l,uD(l,t)?new Set:await pw(l))}))}function k(e){if(Kg(e),Cd(),e.some((t)=>t.startsWith("pages/")))Lb(),Jg();OE(e).then((t)=>{if(t)Cd(),xn("leftPanel")})}async function P(e,t,r){let o;try{o=await Q(t)}catch(l){throw C.error(`Could not prepare ${e}.`,{detail:te(l),path:e,source:y}),Error(`could not prepare ${e}`,{cause:l})}if(await X_(e,o,{quiet:r,source:y})===null)throw Error(`could not write ${e}`)}async function X(e){let t=e.config,r=S?.projectConfig?.content,o=v(r)?{...r}:{};if(o[t.name]=t.entry,!(await Gl({content:o})).ok)return null;let a=["project.json"],d=[];for(let u of[{body:e.content,path:e.path},...e.extraWrites])try{await P(u.path,u.body,!0),a.push(u.path)}catch{d.push(u.path)}if(d.length===0)C.success(`Created the ${t.name} collection`);else C.warn(`Created the ${t.name} collection, but ${d.join(" and ")} could not be written.`,{source:y});k(a),lm(t.name),rt("content.showCollection",{collection:t.name},y);let f={kind:"collection",path:`content/${t.name}`,wrote:a};if(e.route!==void 0)f.route=e.route;return f}async function M(e,t,r){if(e.kind==="media"){let l=await Sa(r,{dir:_a,only:"media"});if(l.length===0)return null;let a=l.map((d)=>d.path);return k(a),rt("media.browse",{select:l[0].path},y),{kind:"media",path:_a,wrote:a}}if(e.kind==="collection")return X(e);let o={kind:e.kind,path:e.path,wrote:[e.path]};if(e.route!==void 0)o.route=e.route;if(e.tag!==void 0)o.tag=e.tag;if(e.kind==="component"&&t.startFrom===P_){let l=await cE(e.tag);if(l===null)return null;return k([l]),await yi(l),o}try{await P(e.path,e.content,!1)}catch{return null}switch(k([e.path]),e.kind){case"component":{Ob(e.path,e.content.doc),await yi(e.path);break}case"template":{Gy(),await yi(e.path);break}case"entry":{if(t.collection!==void 0)lm(t.collection);await Ml(e.path);break}default:await yi(e.path)}return o}async function Ve(e){let t=e.kind??"page";if(t==="media")throw RangeError('command "file.new": Media is uploaded, not named; run file.new { kind: "media" } with no name to open the upload drop zone.');let r=await L(),o=G({...e,kind:t},r);if(t==="entry"&&o.collection===void 0&&r.collections.length===1)o.collection=r.collections[0].name;let l=fE(t,e.name,o,r),a=new Map;await F(l,a,!0);let d=mE(l,e.name,o,r,(u)=>a.get(u));if(d!=="")throw RangeError(`command "file.new": ${d}`);let f=await M(l,o,[]);if(f===null)throw Error(`file.new could not create ${l.path}; the reason is in Problems.`);return f}async function Ye(e){let t=await L(),r=t.collections.find((u)=>u.name===e);if(!r)return C.error(`"${e}" is not a collection this project declares.`,{source:y}),null;let o=`pages/${as(e)||e}`,l=`${o}/[slug].json`;if((await pw(o)).has("[slug].json"))return C.error(`${l} already exists.`,{detail:"Open it in Design and point its $paths at this collection, or rename it first.",path:l,source:y}),null;let d=cD(r.schema,r.formatName!==null),f=pE(e,d,j_(Mu(t),t),t);try{await P(l,{doc:f,format:null},!1)}catch{return null}return k([l]),l}function j(e){switch(e.kind){case"page":{let t={startFrom:e.pageStart};if(e.editingUrl)t.url=e.url;if(e.locale!=="")t.locale=e.locale;return t}case"template":return{startFrom:e.wrap};case"component":{let t={startFrom:e.componentStart};if(e.componentStart===sm&&e.copyOf!=="")t.copyOf=e.copyOf;return t}case"collection":return{fields:e.fields,localized:e.localized,ownPage:e.ownPage,pageTemplate:e.pageTemplate};case"entry":{let t={};if(e.collection!=="")t.collection=e.collection;if(e.locale!=="")t.locale=e.locale;return t}default:return{files:e.files.length}}}function w(e,t,r,o,l=""){return{checked:e===o?"true":"false",disabled:l!=="",label:t,note:r,reason:l,value:e}}function Z(e,t){let r=t.layouts.map((o)=>w(o.ref,o.name,t.defaultLayout!==null&&Qa(o.ref)===Qa(t.defaultLayout)?"the site's default":"a template",e.pageStart));if(t.article!==null)r.push(w($c,"Article","mostly writing",e.pageStart));return r.push(w(Hs,"Blank","no template",e.pageStart)),r}function q(){let e=Qy();if(!e)return"nothing selected";let r=1+(Array.isArray(e.node.children)?e.node.children.length:0);return r===1?"1 element":`${r} elements`}function ee(){let e=ae()?.keymap,t=e?.bindingsFor("file.new")??[];if(!e||t.length===0)return"";let[r,...o]=t.map((l)=>e.format(l));return o.length===0?`${r} opens this anywhere.`:`${r} opens this in the desktop app, ${o.join(" or ")} anywhere.`}function O(e,t,r,o){let l=tw[e.kind],a=tb.filter((s)=>s!=="entry"||t.collections.length>0).map((s)=>({checked:s===e.kind?"true":"false",hint:tw[s].hint,icon:tw[s].icon,id:s,label:tw[s].label})),d=r.config?.name??"",f=Zu(d===""?"items":d),u=t.i18n?.locales??[],b=t.collections.find((s)=>s.name===e.collection),m=u.length>0&&(e.kind==="page"||e.kind==="entry"&&b!==void 0&&nb(b)),c=[...t.layouts.map((s)=>({label:s.name,value:s.ref})),{label:"No template",value:Hs}];return{canConfirm:o===""&&!e.busy,chordNote:ee(),collection:e.collection,collectionOptions:t.collections.map((s)=>({label:Sd(s.name),value:s.name})),componentChoices:[w("blank","Blank","an empty block",e.componentStart),w(P_,"Current selection",q(),e.componentStart,t.hasSelection===!0?"":"Select an element on the canvas first."),w(sm,"Copy of…","an existing one",e.componentStart,(t.copyableTags??[]).length>0?"":"This project has no components of its own to copy yet.")],copyOf:e.copyOf,copyOptions:[...t.componentDocs?.keys()??[]].map((s)=>({label:`<${s}>`,value:s})),copying:e.componentStart===sm,cta:l.cta,dropActive:e.dropActive?"true":"false",editingUrl:e.editingUrl,error:e.touched||e.kind==="media"?e.kind==="media"?"":o:"",fileSummary:e.files.length===0?"":e.files.map((s)=>s.name).join(", "),itemNoun:f,kind:e.kind,kindHint:l.hint,kindLabel:l.label,kinds:a,locale:e.locale,localeOptions:u.map((s)=>({label:Wt(s),value:s})),localeShown:m,localeSummary:u.join(", "),localizable:u.length>0,localized:e.localized,name:e.name,nameLabel:l.nameLabel,ownPage:e.ownPage,pageTemplate:e.pageTemplate,pattern:r.route??`/${d===""?"items":d}/:slug`,placeholder:l.placeholder,presets:nw.filter((s)=>s!=="richText"||t.contentFormat!==null).map((s)=>{let x=e.fields.includes(s);return{icon:x?"check":"plus",id:s,label:F_[s].label,selected:x}}),route:r.route===void 0||r.route===""?"/":r.route,saved:r.saved,startChoices:Z(e,t),templateOptions:c,uploadAccept:zc(),url:e.url,wrapChoices:[...t.layouts.map((s)=>w(s.ref,s.name,"keeps its frame around this one",e.wrap)),w("","Nothing","a fresh frame",e.wrap)]}}function oe(e,t){let r=e.kind??"page";return r==="entry"&&t.collections.length===0?"page":r}var A=null;function Ge(e={}){if(A)return A.done;let t,r=new Promise((l)=>{t=l}),o={done:r,handle:null};return A=o,ne(e,t,o),r}async function ne(e,t,r){let o=await L(),l=new Map,a={busy:!1,collection:e.collection??o.collections[0]?.name??"",locale:am(e.locale,o)??o.i18n?.defaultLocale??"",localized:o.i18n!==null&&o.i18n!==void 0,componentStart:"blank",copyOf:"",dropActive:!1,editingUrl:!1,fields:[...hE],files:[],kind:oe(e,o),name:e.name??"",ownPage:!0,pageStart:H_(o,am(e.locale,o)??o.i18n?.defaultLocale??""),pageTemplate:Mu(o),templateChosen:e.template!==void 0,touched:(e.name??"")!=="",url:"",wrap:Mu(o)===Hs?"":Mu(o)};if(e.template!==void 0){let i=U(e.template,o.layouts);if(i!==null)a.pageStart=i,a.pageTemplate=i===$c?Hs:i,a.wrap=i===Hs||i===$c?"":i}if(o.contentFormat===null)a.fields=a.fields.filter((i)=>i!=="richText");let d=!1,f=null,u=()=>fE(a.kind,a.name,j(a),o),b=(i)=>mE(i,a.name,j(a),o,(h)=>l.get(h)),m=()=>{let i=u();if(r.handle?.update(O(a,o,i,b(i))),gE(i).some((h)=>!l.has(h)))F(i,l).then(()=>{if(!d){let h=u();r.handle?.update(O(a,o,h,b(h)))}})},c=(i)=>{i(),m()},s=async()=>{if(a.busy)return;a.touched=!0;let i=u();if(await F(i,l,!0),b(i)!==""){m();return}a.busy=!0,m();try{f=await M(i,j(a),a.files)}catch(N){C.error("Could not create it.",{detail:te(N),source:y}),f=null}if(a.busy=!1,f===null){m();return}r.handle?.close()},x=u(),K=E({actions:{choose:(i)=>{let h=[...i.files??[]];i.value="",c(()=>{a.files=[...a.files,...h]})},closed:()=>{if(d)return;d=!0,A=null,r.handle?.close(),t(f)},confirm:()=>{s()},dragOut:()=>{c(()=>{a.dropActive=!1})},dragOver:()=>{if(!a.dropActive)c(()=>{a.dropActive=!0})},drop:(i)=>{c(()=>{a.dropActive=!1;let h=i?[...i]:[];if(h.length>0)a.kind="media";a.files=[...a.files,...h]})},pickCollection:(i)=>{c(()=>{a.collection=i})},pickComponentStart:(i)=>{if(c(()=>{a.componentStart=i}),i===sm&&o.componentDocs===void 0)Y().then((h)=>{if(o.componentDocs=h,a.copyOf==="")a.copyOf=h.keys().next().value??"";if(!d)m()})},pickLocale:(i)=>{c(()=>{if(a.locale=i,!a.templateChosen)a.pageStart=H_(o,i)})},setLocalized:(i)=>{c(()=>{a.localized=i})},pickCopy:(i)=>{c(()=>{a.copyOf=i})},pickKind:(i)=>{c(()=>{a.kind=i})},pickPageTemplate:(i)=>{c(()=>{a.pageTemplate=i})},pickStart:(i)=>{c(()=>{a.pageStart=i,a.templateChosen=!0})},pickWrap:(i)=>{c(()=>{a.wrap=i})},setName:(i)=>{c(()=>{a.name=i,a.touched=!0})},setOwnPage:(i)=>{c(()=>{a.ownPage=i})},setUrl:(i)=>{c(()=>{a.url=i,a.touched=!0})},toggleUrl:()=>{c(()=>{if(!a.editingUrl)a.url=u().route??"/";a.editingUrl=!a.editingUrl})},togglePreset:(i)=>{c(()=>{let h=nw.find((N)=>N===i);if(h===void 0)return;a.fields=a.fields.includes(h)?a.fields.filter((N)=>N!==h):[...a.fields,h]})}},layer:tt("dialog"),view:O(a,o,x,b(x))});r.handle=K,m()}export{Ye as addCollectionPage,Ve as createDirect,Ge as openAddNew};
2
+
3
+ //# debugId=94CE043A585C626064756E2164756E21
4
+ //# sourceMappingURL=add-new-flow-nmkqpjym.js.map
@@ -0,0 +1,4 @@
1
+ import{te}from"./studio-psh8mwnw.js";import{p,_e}from"./studio-9ndgd55w.js";import{g}from"./studio-tfmhnwyr.js";import"./studio-ajw4k8hp.js";import{Ot,Nt}from"./studio-qs5fmhtj.js";import"./studio-8pne0rx4.js";import{Ue,ft,T,R,Jt,tt}from"./studio-myb4mf0h.js";import"./studio-79r8msnr.js";import"./studio-14hh60j8.js";import"./studio-nr0kcqc6.js";import"./studio-y47090vq.js";import{um}from"./studio-sc35ttdk.js";var d={$schema:"https://jxsuite.com/schema/v1",$id:"StudioCfAccountPicker",$description:"The Cloudflare account picker: which of the accounts this grant reaches should publishing and the assistant run against. A `jx-dialog`, so the platform owns modality, Escape, focus restoration and the backdrop — which is what retired the `sp-dialog-wrapper` this surface used to open by hand, along with the focus trap and the `aria-modal` slot `showDialog` wrapped around it. There is no confirming button: each row commits itself, because a picker whose answer is one of N rows has N answers rather than one. The adapter (`surfaces/cf-account-picker.ts`) hands in rows that are already strings and booleans — nothing here knows what `cf_account_required` is, which call refused, or whether the list came back empty because the grant reaches nothing or because Cloudflare could not be reached.",tagName:"jx-dialog",$props:{headline:"Choose a Cloudflare account",confirmLabel:"",cancelLabel:"Cancel",size:"sm"},attributes:{part:"cf-accounts"},oncancel:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/closed"},value:[]}]},onclose:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/closed"},value:[]}]},style:{$description:"The picker's own look. Four `.cf-account-picker*` rules in `styles/shell.css` become the parts below and one of them does not come with them: `min-width: 320px` was this surface sizing its own box, and `jx-dialog` is what sizes a dialog now — `sm` is `min(90vw, 24rem)`, which is wider than the 320px it asked for. The row shape came from `.prefs-account`, which the lit template BORROWED from Preferences › Accounts; it is copied here rather than shared, because a class in a stylesheet is a thing two surfaces can drift apart on and `preferences-dialog.ts` still draws its own rows from it. Three token repairs travel with them: `--spectrum-font-size-75` and `--spectrum-font-size-50` resolve only inside `<sp-theme>`, and a document mounted in the dialog layer is outside it, so every one of them would silently have taken its hard-coded fallback.",'& [part="picker"]':{display:"flex",flexDirection:"column",gap:"var(--jx-space-4)"},'& [part="intro"], & [part="empty"]':{$description:"The lede and the two absences read as the same secondary line, so they are one rule: the sentence over the list and the sentence drawn instead of it are the same voice.",margin:"0",fontSize:"var(--jx-text-md)",color:"var(--fg-dim)"},'& [part="failure"]':{$description:'A commit the broker refused, said above the list the reader is still looking at. It is not an announcement of the same thing twice: the list survives a refusal, because listing again is not what would fix an account Cloudflare will not accept, so the reason has to sit beside the rows that are still on offer. It is `failure` rather than `error` because every kit field draws a permanent, empty `[part="error"]` of its own, and the kit is light DOM: a rule on that name here would reach any field this dialog ever holds.',margin:"0",fontSize:"var(--jx-text-md)",color:"var(--danger)"},'& [part="fail"]':{$description:"The one state that offers a verb of its own. Retrying is right for a listing that never landed and wrong for a grant that genuinely reaches nothing, so the button lives in this branch rather than under both.",display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"var(--jx-space-3)"},'& [part="list"]':{display:"flex",flexDirection:"column",gap:"var(--jx-space-2)"},'& [part="row"]':{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"var(--jx-space-4)",padding:"var(--jx-space-3)",border:"1px solid var(--border)",borderRadius:"var(--radius)"},'& [part="text"]':{$description:"`min-width: 0` lets the column shrink below its content, so the name and id reflow inside the row instead of pushing its own button off the end of it; what lets them reflow is their own `overflow-wrap`. Nothing here ellipsizes. Unlike Preferences › Accounts, the row does not wrap its button onto a line of its own: in an `sm` dialog the arithmetic (a 120px basis, the gap and a 105px button against a 236px row) would wrap every row at rest.",display:"flex",flexDirection:"column",gap:"var(--jx-space-1)",minWidth:"0"},'& [part="name"]':{$description:"`overflow-wrap: anywhere` because Cloudflare names a new account after the email that opened it (`name@example.com's Account`), and an address has no break opportunity in it.",color:"var(--fg)",overflowWrap:"anywhere"},'& [part="detail"]':{$description:"The account id under the name. Two Cloudflare accounts may carry the same name and the id is what is stored, so the row shows both rather than the half a reader would have to guess from. `overflow-wrap: anywhere` because the id is 32 hex digits with no break opportunity: it measured 203px in a 119px column and ran under the row's own button. It reflows rather than ellipsizing, because the id is the half that tells two same-named accounts apart.",fontSize:"var(--jx-text-sm)",color:"var(--fg-dim)",overflowWrap:"anywhere"}},children:[{tagName:"div",attributes:{part:"picker"},children:[{tagName:"p",attributes:{part:"intro"},textContent:"Your Cloudflare login reaches more than one account. Publishing and the assistant both run against the one you pick; you can change it in Preferences › Accounts."},{tagName:"div",attributes:{part:"body-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/listState"},cases:{loading:{tagName:"p",attributes:{part:"empty"},textContent:"Reading your Cloudflare accounts…"},empty:{tagName:"p",attributes:{part:"empty"},textContent:"This Cloudflare login reaches no accounts. Create one at dash.cloudflare.com, then try again."},failed:{tagName:"div",attributes:{part:"fail"},children:[{tagName:"p",attributes:{part:"empty"},textContent:"${state.failureMessage}"},{tagName:"jx-button",attributes:{part:"retry"},$props:{size:"sm"},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/retry"},value:[]}]},children:[{tagName:"span",textContent:"Try again"}]}]},listed:{tagName:"div",attributes:{part:"listed",role:"none"},style:{display:"contents"},children:[{tagName:"div",attributes:{part:"failure-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/hasFailure"},cases:{true:{tagName:"p",attributes:{part:"failure"},textContent:"${state.failure}"}}},{tagName:"div",attributes:{part:"list"},children:[{$prototype:"Array",items:{$ref:"#/state/rows"},key:{$ref:"$map/item/id"},map:{tagName:"div",attributes:{part:"row","data-account":"${$map.item.id}"},children:[{tagName:"div",attributes:{part:"text"},children:[{tagName:"span",attributes:{part:"name"},textContent:"${$map.item.name}"},{tagName:"span",attributes:{part:"detail"},textContent:"${$map.item.id}"}]},{tagName:"jx-button",attributes:{part:"choose"},$props:{size:"sm",variant:"accent",disabled:{$ref:"$map/item/busy"}},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/choose"},value:[{$ref:"$map/item/id"}]}]},children:[{tagName:"span",textContent:"${$map.item.label}"}]}]}}]}]}}}]}]};T("cf-account-picker",d);function h(t){let a=t.choosing!=="";return{...t,failureMessage:`Cloudflare could not be reached: ${t.failure}`,hasFailure:t.failure!=="",listState:t.loading?"loading":t.accounts.length>0?"listed":t.failure!==""?"failed":"empty",rows:t.accounts.map((o)=>({busy:a,id:o.id,label:t.choosing===o.id?"Selecting…":"Use this account",name:o.name}))}}function f(t){let a=document.createElement("div");a.style.pointerEvents="auto",a.setAttribute(Ue,ft("dialog","cf-accounts")),t.layer.append(a);let o=!1,s=()=>{if(o)return;o=!0,t.onClosed()},u=()=>o,n=g({...h({accounts:[],choosing:"",failure:"",loading:!0}),choose:(e)=>{t.onChoose(e)},closed:s,retry:()=>{t.onRetry()}}),l=null,c=R("cf-account-picker",n,a).then(async(e)=>{l=e;let i=e.root;if(u())return e.dispose(),i;if(await Jt(i),u())return i;return Ot(i),i});return{close(){if(o)return;let e=l?.root;if(e instanceof HTMLElement)Nt(e);l?.dispose(),l=null,a.remove(),s()},host:a,ready:c,update(e){Object.assign(n,h({accounts:e.accounts??n.accounts,choosing:e.choosing??n.choosing,failure:e.failure??n.failure,loading:e.loading??n.loading}))}}}function w(){if(!_e())return!1;let t=p();return Boolean(t.cfAccounts&&t.cfSelectAccount)}function H(){if(!w())return Promise.resolve(null);return new Promise((t)=>{let a=[],o="",s=!1,u=(r)=>{if(s)return;s=!0,c.close(),t(r)};async function n(){c.update({failure:"",loading:!0});let r="";try{a=await p().cfAccounts?.()??[]}catch(e){a=[],r=te(e)}if(s)return;c.update({accounts:a,failure:r,loading:!1})}async function l(r){let e=a.find((i)=>i.id===r);if(!e||o!=="")return;o=r,c.update({choosing:r,failure:""});try{await p().cfSelectAccount?.({id:e.id,name:e.name})}catch(i){if(o="",!s)c.update({choosing:"",failure:te(i)});return}um(),u(e)}let c=f({layer:tt("dialog"),onChoose:(r)=>{l(r)},onClosed:()=>{u(null)},onRetry:()=>{n()}});n()})}export{H as openCfAccountPicker};
2
+
3
+ //# debugId=E1516EBEA40B12D864756E2164756E21
4
+ //# sourceMappingURL=cf-account-picker-2e06qxey.js.map
@@ -0,0 +1,4 @@
1
+ import{cb,DE,NE,Z2,AE}from"./studio-nr0kcqc6.js";import"./studio-14hh60j8.js";import"./studio-tfmhnwyr.js";import"./studio-9ndgd55w.js";export{AE as clearCfConnection,NE as getCfAccountId,cb as getCfToken,Z2 as setCfAccountId,DE as setCfToken};
2
+
3
+ //# debugId=9B842315B780DEB864756E2164756E21
4
+ //# sourceMappingURL=cf-settings-5y04810c.js.map
@@ -0,0 +1,4 @@
1
+ import{o,m,h,K,d,g,T,H,N,B,O,_,V,M,ee}from"./iframe-entry-btck0e9s.js";export{m as ARROW_SIGN,o as clamp,V as contrastRatio,g as formatHex,O as formatOklch,H as hsvToRgb,ee as inkOn,B as oklchToSrgb,d as parseColor,K as parseHex,M as preferredInk,_ as relativeLuminance,T as rgbToHsv,h as snapToStep,N as srgbToOklch};
2
+
3
+ //# debugId=A19EC30F547D156964756E2164756E21
4
+ //# sourceMappingURL=color-04361ttk.js.map
@@ -1,4 +1,4 @@
1
- import{m,h}from"./iframe-entry-2zggzajv.js";import{t}from"./iframe-entry-99nr5zfb.js";var b="jx-color-area",g={x:"saturation",y:"brightness"},E=new Map([["ArrowDown","y"],["ArrowLeft","x"],["ArrowRight","x"],["ArrowUp","y"]]),l=new WeakSet;function i(r){let e=r.currentTarget;return e instanceof HTMLElement&&e.localName===b?e:null}function f(r){return r.querySelector('[part="track"]')}function p(r){if(!(r instanceof Element))return null;let e=r.getAttribute("part");return e==="x"||e==="y"?e:null}function d(r){let e=Number(r.step);return Number.isFinite(e)&&e>0?e:1}function u(r,...e){for(let n of e)r.dispatchEvent(new Event(n,{bubbles:!0}))}function s(r,e,n){let o=g[e],a=h(n,d(r),0,100);if(r[o]===a)return!1;return r[o]=a,!0}function S(r,e){let n=i(e),o=p(e.target);if(!n||!o)return;e.stopPropagation(),s(r,o,Number(e.target.value)),u(n,"input")}function P(r,e){let n=i(e),o=p(e.target);if(!n||!o)return;e.stopPropagation(),s(r,o,Number(e.target.value)),u(n,"change")}function T(r,e){let n=i(e),o=p(e.target);if(!n||!o||r.disabled===!0)return;let a=E.get(e.key);if(!a)return;if(a===o&&!e.shiftKey)return;e.preventDefault(),e.stopPropagation();let c=d(r)*(e.shiftKey?10:1)*(m.get(e.key)??0);if(s(r,a,Number(r[g[a]])+c))u(n,"input","change")}function x(r,e,n){let o=f(e);if(!o)return!1;let a=o.getBoundingClientRect();if(a.width<=0||a.height<=0)return!1;let c=s(r,"x",(n.clientX-a.left)/a.width*100),A=s(r,"y",(1-(n.clientY-a.top)/a.height)*100);return c||A}function M(r,e){let n=i(e);if(!n||r.disabled===!0)return;e.preventDefault(),l.add(n);let o=f(n);if(o&&t(o.setPointerCapture))try{o.setPointerCapture(e.pointerId)}catch{}if(n.querySelector('[part="x"]')?.focus(),x(r,n,e))u(n,"input")}function w(r,e){let n=i(e);if(!n||!l.has(n))return;if(x(r,n,e))u(n,"input")}function H(r,e){let n=i(e);if(!n||!l.delete(n))return;let o=f(n);if(o&&t(o.releasePointerCapture)&&t(o.hasPointerCapture)&&o.hasPointerCapture(e.pointerId))o.releasePointerCapture(e.pointerId);u(n,"change")}export{P as onAreaAxisChange,S as onAreaAxisInput,T as onAreaKeydown,M as onAreaPointerDown,w as onAreaPointerMove,H as onAreaPointerUp};
1
+ import{m,h}from"./iframe-entry-btck0e9s.js";import{t}from"./iframe-entry-42hpmwz5.js";var b="jx-color-area",g={x:"saturation",y:"brightness"},E=new Map([["ArrowDown","y"],["ArrowLeft","x"],["ArrowRight","x"],["ArrowUp","y"]]),l=new WeakSet;function i(r){let e=r.currentTarget;return e instanceof HTMLElement&&e.localName===b?e:null}function f(r){return r.querySelector('[part="track"]')}function p(r){if(!(r instanceof Element))return null;let e=r.getAttribute("part");return e==="x"||e==="y"?e:null}function d(r){let e=Number(r.step);return Number.isFinite(e)&&e>0?e:1}function u(r,...e){for(let n of e)r.dispatchEvent(new Event(n,{bubbles:!0}))}function s(r,e,n){let o=g[e],a=h(n,d(r),0,100);if(r[o]===a)return!1;return r[o]=a,!0}function S(r,e){let n=i(e),o=p(e.target);if(!n||!o)return;e.stopPropagation(),s(r,o,Number(e.target.value)),u(n,"input")}function P(r,e){let n=i(e),o=p(e.target);if(!n||!o)return;e.stopPropagation(),s(r,o,Number(e.target.value)),u(n,"change")}function T(r,e){let n=i(e),o=p(e.target);if(!n||!o||r.disabled===!0)return;let a=E.get(e.key);if(!a)return;if(a===o&&!e.shiftKey)return;e.preventDefault(),e.stopPropagation();let c=d(r)*(e.shiftKey?10:1)*(m.get(e.key)??0);if(s(r,a,Number(r[g[a]])+c))u(n,"input","change")}function x(r,e,n){let o=f(e);if(!o)return!1;let a=o.getBoundingClientRect();if(a.width<=0||a.height<=0)return!1;let c=s(r,"x",(n.clientX-a.left)/a.width*100),A=s(r,"y",(1-(n.clientY-a.top)/a.height)*100);return c||A}function M(r,e){let n=i(e);if(!n||r.disabled===!0)return;e.preventDefault(),l.add(n);let o=f(n);if(o&&t(o.setPointerCapture))try{o.setPointerCapture(e.pointerId)}catch{}if(n.querySelector('[part="x"]')?.focus(),x(r,n,e))u(n,"input")}function w(r,e){let n=i(e);if(!n||!l.has(n))return;if(x(r,n,e))u(n,"input")}function H(r,e){let n=i(e);if(!n||!l.delete(n))return;let o=f(n);if(o&&t(o.releasePointerCapture)&&t(o.hasPointerCapture)&&o.hasPointerCapture(e.pointerId))o.releasePointerCapture(e.pointerId);u(n,"change")}export{P as onAreaAxisChange,S as onAreaAxisInput,T as onAreaKeydown,M as onAreaPointerDown,w as onAreaPointerMove,H as onAreaPointerUp};
2
2
 
3
3
  //# debugId=C085CB743BF776AB64756E2164756E21
4
- //# sourceMappingURL=color-area-6rbra5dy.js.map
4
+ //# sourceMappingURL=color-area-h8dbasp1.js.map
@@ -1,4 +1,4 @@
1
- import{d,g,T,P,N,k,M}from"./iframe-entry-2zggzajv.js";import{a,f}from"./iframe-entry-76j8vwwx.js";import{t}from"./iframe-entry-99nr5zfb.js";var E="jx-color-field",m=0,L=new WeakMap;function x(e){let n=e.currentTarget;return n instanceof HTMLElement&&n.localName===E?n:null}function y(e){let n=e.currentTarget??e.target;return n instanceof Element?n.closest(E):null}function F(e){return e.querySelector('[part="picker"]')}function S(e){return P({a:e.alpha===!0?Number(e.opacity)/100:1,h:Number(e.hue),s:Number(e.saturation),v:Number(e.brightness)})}function c(e,...n){for(let r of n)e.dispatchEvent(new Event(r,{bubbles:!0}))}function C(e,n){let r={...n,a:1};e.solid=g(r),e.ink=M(r)}function s(e){let n=S(e);e.value=e.format==="oklch"?k(N(n)):g(n),e.text=e.value,e.invalid=!1,C(e,n)}function v(e){let n=d(String(e.value??""))??d(String(e.resolved??""));if(e.invalid=!1,e.text=String(e.value??""),!n)return;if(C(e,n),g(n)===g(S(e)))return;let r=T(n);if(e.saturation=Number(r.s.toFixed(2)),e.brightness=Number(r.v.toFixed(2)),e.opacity=Number((r.a*100).toFixed(2)),r.s>0&&r.v>0)e.hue=Number(r.h.toFixed(2))}var O="[data-jx-channel]";function w(e){let{target:n}=e;return n instanceof Element?n.closest(O):null}function h(e){let{target:n}=e;return n!==null&&"value"in n?String(n.value??""):""}function H(e,n,r){let o=x(n);if(!o||n.target===o)return;let i=w(n),l=i?.dataset.jxChannel;if(!i||!l)return;if(n.stopPropagation(),l==="text"){let u=h(n);e.text=u;let b=d(u);if(r==="input"){e.invalid=!1;return}if(!b){e.invalid=u!=="";return}p(e,b),s(e),c(o,"input","change");return}if(l==="system"||l==="palette"){let u=d(h(n));if(!u)return;p(e,{...u,a:e.alpha===!0?Number(e.opacity)/100:1})}else if(l==="area")e.saturation=Number(i.saturation),e.brightness=Number(i.brightness);else if(l==="hue")e.hue=Number(i.value);else if(l==="opacity")e.opacity=Number(i.value);else return;s(e),c(o,r)}function p(e,n){let r=T(n);if(e.saturation=Number(r.s.toFixed(2)),e.brightness=Number(r.v.toFixed(2)),e.alpha===!0)e.opacity=Number((r.a*100).toFixed(2));if(r.s>0&&r.v>0)e.hue=Number(r.h.toFixed(2))}function V(e,n){H(e,n,"input")}function B(e,n){H(e,n,"change")}function q(e,n){let r=y(n),o=r?F(r):null;if(!r||!o||e.disabled===!0)return;if(e.expanded===!0){f(o);return}let i=r.getBoundingClientRect();o.x=Math.round(i.left),o.y=Math.round(i.bottom),a(o,n.currentTarget instanceof Element?n.currentTarget:r)}function G(e){return e===!0&&t(R())}function R(){return globalThis.EyeDropper}function I(e,n){let r=y(n),o=R();if(!r||!o||e.disabled===!0)return Promise.resolve();return new o().open().then((i)=>{let l=d(String(i?.sRGBHex??""));if(!l)return;p(e,l),s(e),c(r,"input","change")}).catch(()=>{})}function J(e,n){let r=x(n);if(!r)return;L.set(e,r),m+=1,e.uid=`jx-color-field-${m}`,v(e),new MutationObserver(()=>{v(e)}).observe(r,{attributeFilter:["data-resolved","data-value"],attributes:!0});let i=F(r);if(i)i.addEventListener("toggle",(l)=>{e.expanded="newState"in l&&l.newState==="open"})}export{G as eyeDropperAvailable,I as onEyeDropper,B as onFieldChange,V as onFieldInput,J as onFieldMount,q as onOpenPicker,v as syncFromValue};
1
+ import{d,g,T,H,N,O,M}from"./iframe-entry-btck0e9s.js";import{a,f}from"./iframe-entry-b5qgggyp.js";import{t}from"./iframe-entry-42hpmwz5.js";var E="jx-color-field",m=0,L=new WeakMap;function x(e){let n=e.currentTarget;return n instanceof HTMLElement&&n.localName===E?n:null}function y(e){let n=e.currentTarget??e.target;return n instanceof Element?n.closest(E):null}function F(e){return e.querySelector('[part="picker"]')}function S(e){return H({a:e.alpha===!0?Number(e.opacity)/100:1,h:Number(e.hue),s:Number(e.saturation),v:Number(e.brightness)})}function c(e,...n){for(let r of n)e.dispatchEvent(new Event(r,{bubbles:!0}))}function C(e,n){let r={...n,a:1};e.solid=g(r),e.ink=M(r)}function s(e){let n=S(e);e.value=e.format==="oklch"?O(N(n)):g(n),e.text=e.value,e.invalid=!1,C(e,n)}function v(e){let n=d(String(e.value??""))??d(String(e.resolved??""));if(e.invalid=!1,e.text=String(e.value??""),!n)return;if(C(e,n),g(n)===g(S(e)))return;let r=T(n);if(e.saturation=Number(r.s.toFixed(2)),e.brightness=Number(r.v.toFixed(2)),e.opacity=Number((r.a*100).toFixed(2)),r.s>0&&r.v>0)e.hue=Number(r.h.toFixed(2))}var k="[data-jx-channel]";function w(e){let{target:n}=e;return n instanceof Element?n.closest(k):null}function h(e){let{target:n}=e;return n!==null&&"value"in n?String(n.value??""):""}function P(e,n,r){let o=x(n);if(!o||n.target===o)return;let i=w(n),l=i?.dataset.jxChannel;if(!i||!l)return;if(n.stopPropagation(),l==="text"){let u=h(n);e.text=u;let b=d(u);if(r==="input"){e.invalid=!1;return}if(!b){e.invalid=u!=="";return}p(e,b),s(e),c(o,"input","change");return}if(l==="system"||l==="palette"){let u=d(h(n));if(!u)return;p(e,{...u,a:e.alpha===!0?Number(e.opacity)/100:1})}else if(l==="area")e.saturation=Number(i.saturation),e.brightness=Number(i.brightness);else if(l==="hue")e.hue=Number(i.value);else if(l==="opacity")e.opacity=Number(i.value);else return;s(e),c(o,r)}function p(e,n){let r=T(n);if(e.saturation=Number(r.s.toFixed(2)),e.brightness=Number(r.v.toFixed(2)),e.alpha===!0)e.opacity=Number((r.a*100).toFixed(2));if(r.s>0&&r.v>0)e.hue=Number(r.h.toFixed(2))}function V(e,n){P(e,n,"input")}function B(e,n){P(e,n,"change")}function q(e,n){let r=y(n),o=r?F(r):null;if(!r||!o||e.disabled===!0)return;if(e.expanded===!0){f(o);return}let i=r.getBoundingClientRect();o.x=Math.round(i.left),o.y=Math.round(i.bottom),a(o,n.currentTarget instanceof Element?n.currentTarget:r)}function G(e){return e===!0&&t(R())}function R(){return globalThis.EyeDropper}function I(e,n){let r=y(n),o=R();if(!r||!o||e.disabled===!0)return Promise.resolve();return new o().open().then((i)=>{let l=d(String(i?.sRGBHex??""));if(!l)return;p(e,l),s(e),c(r,"input","change")}).catch(()=>{})}function J(e,n){let r=x(n);if(!r)return;L.set(e,r),m+=1,e.uid=`jx-color-field-${m}`,v(e),new MutationObserver(()=>{v(e)}).observe(r,{attributeFilter:["data-resolved","data-value"],attributes:!0});let i=F(r);if(i)i.addEventListener("toggle",(l)=>{e.expanded="newState"in l&&l.newState==="open"})}export{G as eyeDropperAvailable,I as onEyeDropper,B as onFieldChange,V as onFieldInput,J as onFieldMount,q as onOpenPicker,v as syncFromValue};
2
2
 
3
- //# debugId=A9DF7907977CE30F64756E2164756E21
4
- //# sourceMappingURL=color-field-gy56c94g.js.map
3
+ //# debugId=6B348FD8E6E232B364756E2164756E21
4
+ //# sourceMappingURL=color-field-qv5r2b16.js.map
@@ -1,4 +1,4 @@
1
- import{m,h}from"./iframe-entry-2zggzajv.js";var p="jx-color-slider";function u(n){let e=n.currentTarget;return e instanceof HTMLElement&&e.localName===p?e:null}function b(n){return n.querySelector('input[part="input"]')}function i(n,...e){for(let t of e)n.dispatchEvent(new Event(t,{bubbles:!0}))}function d(n){let e=Number.isFinite(Number(n.min))?Number(n.min):0,t=Number(n.maxValue),r=Number(n.step);return{max:Number.isFinite(t)&&t>e?t:360,min:e,step:Number.isFinite(r)&&r>0?r:1}}function S(n,e){let t=u(e);if(!t||e.target===t)return;e.stopPropagation(),n.value=Number(e.target.value),i(t,"input")}function g(n,e){let t=u(e);if(!t||e.target===t)return;e.stopPropagation(),n.value=Number(e.target.value),i(t,"change")}function E(n,e){let t=u(e),r=m.get(e.key);if(!t||!r||!e.shiftKey||n.disabled===!0)return;e.preventDefault();let{max:s,min:c,step:l}=d(n),o=h(Number(n.value)+r*l*10,l,c,s);if(o===Number(n.value))return;n.value=o;let a=b(t);if(a)a.value=String(o);i(t,"input","change")}export{g as onSliderChange,S as onSliderInput,E as onSliderKeydown};
1
+ import{m,h}from"./iframe-entry-btck0e9s.js";var p="jx-color-slider";function u(n){let e=n.currentTarget;return e instanceof HTMLElement&&e.localName===p?e:null}function b(n){return n.querySelector('input[part="input"]')}function i(n,...e){for(let t of e)n.dispatchEvent(new Event(t,{bubbles:!0}))}function d(n){let e=Number.isFinite(Number(n.min))?Number(n.min):0,t=Number(n.maxValue),r=Number(n.step);return{max:Number.isFinite(t)&&t>e?t:360,min:e,step:Number.isFinite(r)&&r>0?r:1}}function S(n,e){let t=u(e);if(!t||e.target===t)return;e.stopPropagation(),n.value=Number(e.target.value),i(t,"input")}function g(n,e){let t=u(e);if(!t||e.target===t)return;e.stopPropagation(),n.value=Number(e.target.value),i(t,"change")}function E(n,e){let t=u(e),r=m.get(e.key);if(!t||!r||!e.shiftKey||n.disabled===!0)return;e.preventDefault();let{max:s,min:c,step:l}=d(n),o=h(Number(n.value)+r*l*10,l,c,s);if(o===Number(n.value))return;n.value=o;let a=b(t);if(a)a.value=String(o);i(t,"input","change")}export{g as onSliderChange,S as onSliderInput,E as onSliderKeydown};
2
2
 
3
3
  //# debugId=0E17FEC2B87B32AA64756E2164756E21
4
- //# sourceMappingURL=color-slider-sqqdyf6c.js.map
4
+ //# sourceMappingURL=color-slider-nz2mrzky.js.map
@@ -1,4 +1,4 @@
1
- import{a,f}from"./iframe-entry-76j8vwwx.js";var S="jx-combobox",s=0;function c(o){let n=o.currentTarget;return n instanceof Element?n.closest(S):null}function g(o){return o.querySelector('input[part="input"]')}function v(o){return o.querySelector('[part="popup"]')}function l(o){return Array.isArray(o.options)?o.options:[]}function C(o,...n){for(let e of n)o.dispatchEvent(new Event(e,{bubbles:!0}))}function m(o){return o.disabled!==!0&&o.readonly!==!0}function E(o){let n=v(o);if(!n)return;let e=o.getBoundingClientRect();n.x=Math.round(e.left),n.y=Math.round(e.bottom),a(n,o)}function u(o){let n=v(o);if(n)f(n)}function d(o,n){if(!m(o)||l(o).length===0)return!1;return E(n),!0}function w(o){let n=l(o),e=x(n,String(o.value??""));return e&&e.disabled!==!0?n.indexOf(e):-1}function b(o,n,e){let t=n<0?e>0?-1:0:n;for(let r of o.keys()){let i=((t+e*(r+1))%o.length+o.length)%o.length;if(o[i]?.disabled!==!0)return i}return-1}function x(o,n){let e=n.toLowerCase();return o.find((t)=>String(t.value).toLowerCase()===e)??null}function p(o,n,e){let t=String(e.value);o.value=t,o.committed=t,o.activeIndex=-1,u(n),g(n)?.focus(),C(n,"input","change")}function T(o,n){s+=1,o.uid=`jx-combobox-${s}`,o.committed=String(o.value??"")}function y(o,n){let e=c(n),t=n.target;if(!e||!(t instanceof HTMLInputElement))return;o.value=t.value,o.activeIndex=-1,d(o,e)}function I(o,n){let e="newState"in n&&n.newState==="open";if(o.open=e,!e)o.activeIndex=-1}function M(o,n){let e=c(n);if(!e||!m(o))return;if(o.open===!0){u(e);return}if(d(o,e))o.activeIndex=w(o);g(e)?.focus()}function h(o,n){let e=c(n),t="detail"in n?String(n.detail??""):"",r=x(l(o),t);if(!e||!r)return;p(o,e,r)}function H(o,n){let e=c(n);if(!e)return;let t=n.target instanceof HTMLInputElement?n.target:null,r=t?t.value:String(o.value??""),i=x(l(o),r);if(o.allowsCustomValue===!0||r===""||i){o.value=i?String(i.value):r,o.committed=String(o.value),u(e);return}n.stopPropagation(),o.value=String(o.committed??""),C(e,"change")}function k(o,n){let e=c(n);if(!e||n.ctrlKey||n.metaKey)return;let t=l(o),r=Number(o.activeIndex??-1);switch(n.key){case"ArrowDown":{if(!m(o))return;if(o.open!==!0){if(!d(o,e))return;o.activeIndex=n.altKey?w(o):b(t,-1,1)}else if(!n.altKey)o.activeIndex=b(t,r,1);break}case"ArrowUp":{if(!m(o))return;if(n.altKey){u(e);break}if(o.open!==!0){if(!d(o,e))return;o.activeIndex=b(t,-1,-1)}else o.activeIndex=b(t,r,-1);break}case"Enter":{let i=o.open===!0&&r>=0?t[r]:void 0;if(!i){if(o.open===!0)u(e);return}p(o,e,i);break}case"Tab":{let i=o.open===!0&&r>=0?t[r]:void 0;if(i)p(o,e,i);else u(e);return}case"Escape":{if(o.open!==!0)return;u(e),n.stopPropagation();break}default:return}n.preventDefault()}export{u as closeList,g as inputOf,w as landingIndex,T as mountCombobox,b as nextIndex,M as onComboboxButton,H as onComboboxCommit,y as onComboboxInput,k as onComboboxKeydown,h as onComboboxPick,I as onComboboxToggle,E as openList,x as rowFor};
1
+ import{a,f}from"./iframe-entry-b5qgggyp.js";var S="jx-combobox",s=0;function c(o){let n=o.currentTarget;return n instanceof Element?n.closest(S):null}function g(o){return o.querySelector('input[part="input"]')}function v(o){return o.querySelector('[part="popup"]')}function l(o){return Array.isArray(o.options)?o.options:[]}function C(o,...n){for(let e of n)o.dispatchEvent(new Event(e,{bubbles:!0}))}function m(o){return o.disabled!==!0&&o.readonly!==!0}function E(o){let n=v(o);if(!n)return;let e=o.getBoundingClientRect();n.x=Math.round(e.left),n.y=Math.round(e.bottom),a(n,o)}function u(o){let n=v(o);if(n)f(n)}function d(o,n){if(!m(o)||l(o).length===0)return!1;return E(n),!0}function w(o){let n=l(o),e=x(n,String(o.value??""));return e&&e.disabled!==!0?n.indexOf(e):-1}function b(o,n,e){let t=n<0?e>0?-1:0:n;for(let r of o.keys()){let i=((t+e*(r+1))%o.length+o.length)%o.length;if(o[i]?.disabled!==!0)return i}return-1}function x(o,n){let e=n.toLowerCase();return o.find((t)=>String(t.value).toLowerCase()===e)??null}function p(o,n,e){let t=String(e.value);o.value=t,o.committed=t,o.activeIndex=-1,u(n),g(n)?.focus(),C(n,"input","change")}function T(o,n){s+=1,o.uid=`jx-combobox-${s}`,o.committed=String(o.value??"")}function y(o,n){let e=c(n),t=n.target;if(!e||!(t instanceof HTMLInputElement))return;o.value=t.value,o.activeIndex=-1,d(o,e)}function I(o,n){let e="newState"in n&&n.newState==="open";if(o.open=e,!e)o.activeIndex=-1}function M(o,n){let e=c(n);if(!e||!m(o))return;if(o.open===!0){u(e);return}if(d(o,e))o.activeIndex=w(o);g(e)?.focus()}function h(o,n){let e=c(n),t="detail"in n?String(n.detail??""):"",r=x(l(o),t);if(!e||!r)return;p(o,e,r)}function H(o,n){let e=c(n);if(!e)return;let t=n.target instanceof HTMLInputElement?n.target:null,r=t?t.value:String(o.value??""),i=x(l(o),r);if(o.allowsCustomValue===!0||r===""||i){o.value=i?String(i.value):r,o.committed=String(o.value),u(e);return}n.stopPropagation(),o.value=String(o.committed??""),C(e,"change")}function k(o,n){let e=c(n);if(!e||n.ctrlKey||n.metaKey)return;let t=l(o),r=Number(o.activeIndex??-1);switch(n.key){case"ArrowDown":{if(!m(o))return;if(o.open!==!0){if(!d(o,e))return;o.activeIndex=n.altKey?w(o):b(t,-1,1)}else if(!n.altKey)o.activeIndex=b(t,r,1);break}case"ArrowUp":{if(!m(o))return;if(n.altKey){u(e);break}if(o.open!==!0){if(!d(o,e))return;o.activeIndex=b(t,-1,-1)}else o.activeIndex=b(t,r,-1);break}case"Enter":{let i=o.open===!0&&r>=0?t[r]:void 0;if(!i){if(o.open===!0)u(e);return}p(o,e,i);break}case"Tab":{let i=o.open===!0&&r>=0?t[r]:void 0;if(i)p(o,e,i);else u(e);return}case"Escape":{if(o.open!==!0)return;u(e),n.stopPropagation();break}default:return}n.preventDefault()}export{u as closeList,g as inputOf,w as landingIndex,T as mountCombobox,b as nextIndex,M as onComboboxButton,H as onComboboxCommit,y as onComboboxInput,k as onComboboxKeydown,h as onComboboxPick,I as onComboboxToggle,E as openList,x as rowFor};
2
2
 
3
3
  //# debugId=CECCAF00F5B2C12E64756E2164756E21
4
- //# sourceMappingURL=combobox-72h32ejk.js.map
4
+ //# sourceMappingURL=combobox-6hs00996.js.map
@@ -0,0 +1,4 @@
1
+ import{Ne,Zw,xa,Ob,Fc,jc}from"./studio-ekzbgnjp.js";import"./studio-9ndgd55w.js";export{Zw as _componentRegistryLoaded,Fc as buildComponentInstance,Ne as componentRegistry,jc as computeRelativePath,xa as loadComponentRegistry,Ob as noteComponentSaved};
2
+
3
+ //# debugId=FCFBCB13AFA3037764756E2164756E21
4
+ //# sourceMappingURL=components-3vf75n83.js.map
@@ -0,0 +1,4 @@
1
+ import{fb,rS,sS,mb,tT,nT,iT}from"./studio-fg4fj9ec.js";import"./studio-x2trkhk5.js";import"./studio-spza69tb.js";import"./studio-9179bsm7.js";import"./studio-0nefxhar.js";import"./studio-yjh9gddd.js";import"./studio-0rg30pvs.js";import"./studio-ekzbgnjp.js";import"./studio-nqexty8x.js";import"./studio-g45r5vm8.js";import"./studio-vtey9w98.js";import"./studio-t6dqnnft.js";import"./studio-y47090vq.js";import"./studio-14hh60j8.js";import"./studio-myb4mf0h.js";import"./studio-ajw4k8hp.js";import"./studio-qs5fmhtj.js";import"./studio-8hf8qcm1.js";import"./studio-7q6jdd4h.js";import"./studio-by8x0jvc.js";import"./studio-ztppbam0.js";import"./studio-4rgem12q.js";import"./studio-8pne0rx4.js";import"./studio-tfmhnwyr.js";import"./studio-psh8mwnw.js";import"./studio-a6e5fzve.js";import"./studio-9ndgd55w.js";export{rS as collectionDirs,fb as collectionInfo,sS as collectionSourceDirs,nT as createCollectionSource,iT as createPagesSource,mb as listCollectionEntryIds,tT as reloadDraftAwareGrids};
2
+
3
+ //# debugId=5EDD101C20492A8A64756E2164756E21
4
+ //# sourceMappingURL=content-source-4f2raf4a.js.map
@@ -1,4 +1,4 @@
1
- import{Me,Y,u}from"./studio-c05wdnt3.js";import{g}from"./studio-43sd2mam.js";import"./studio-kt3pjkwd.js";import"./studio-w4rz9hdk.js";import"./studio-z97c48fk.js";import"./studio-8tr6cfrc.js";import"./studio-k3xxbagr.js";import{Pt,Nt,uh}from"./studio-q7rtx6zq.js";import{qe,ft,T,R,Jt,tt}from"./studio-x9hsze61.js";import"./studio-nqxqf8p2.js";import{Ol}from"./studio-3qqjeep5.js";import"./studio-07rcfje3.js";import"./studio-k1wvtp03.js";import"./studio-5g0rprdt.js";import"./studio-s32578pn.js";import"./studio-d5grtb9e.js";import"./studio-fbhxxc5f.js";import"./studio-8m0y2qe7.js";import"./studio-ph84avkf.js";import"./studio-rj9eamf8.js";import"./studio-nh6d342n.js";import"./studio-mn0476ag.js";import"./studio-pbxa5fpc.js";import"./studio-n0c5h6mf.js";import"./studio-fyh0jc96.js";import"./studio-3exxhz5g.js";import"./studio-9tmebf0s.js";import{Aw}from"./studio-3qeh9t0h.js";import{lr,At,hi}from"./studio-gcxk20n7.js";import{oe}from"./studio-p4nrkvqr.js";import{v,$v}from"./studio-vxq7fcvv.js";var h={$schema:"https://jxsuite.com/schema/v1",$id:"StudioConvertRepeater",$description:'Repeat…: the dialog that turns the selected element into an `$prototype: "Array"` template. One `jx-dialog`, so the platform owns modality, Escape, the backdrop and focus restoration — which is what retired the `sp-dialog-wrapper` this surface used to open through its bare `open` attribute, and the hand-rolled `requestAnimationFrame` focus move that had to follow it. Three questions in one form: which state definition holds the items, and optionally which function filters and which sorts. The name field appears only when the answer to the first is "Create new…", because a definition that already exists needs no name. Nothing here knows what makes a definition an array — `editor/convert-to-repeater.ts` asks the plugin schemas, keeps the refusals and writes the repeater — and it hands over rows that are already strings.',tagName:"jx-dialog",$props:{headline:"Repeat…",confirmLabel:"Create Repeater",cancelLabel:"Cancel",size:"sm"},attributes:{part:"convert-repeater"},onconfirm:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/confirm"},value:[]}]},oncancel:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/closed"},value:[]}]},onclose:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/closed"},value:[]}]},style:{$description:"There is no stylesheet to transcribe: the lit version carried one inline `display:flex;flex-direction:column;gap:12px` on a wrapper div and nothing else, because `sp-field-label` and `sp-dialog-wrapper` drew the rest. Both of those are gone — the label is `jx-field`'s, which actually NAMES the control it wraps rather than sitting beside it, and the box is the dialog's — so the whole of this block is the one gap that separated the rows, said in the kit's scale instead of in the twelve pixels somebody typed.",'& [part="form"]':{display:"flex",flexDirection:"column",gap:"var(--jx-space-4)"},'& [part="new-slot"], & [part="functions-slot"], & [part="functions"]':{$description:"A branch host and the pair inside it are structure rather than layout: `display: contents` puts the rows they carry straight into the form's own column, so one gap rule spaces every row whether it is drawn or not.",display:"contents"}},children:[{tagName:"div",attributes:{part:"form"},children:[{tagName:"jx-field",attributes:{part:"source-row"},$props:{span:!0,label:"Items source"},children:[{tagName:"jx-select",attributes:{part:"source"},$props:{size:"sm",options:{$ref:"#/state/sourceOptions"},value:{$ref:"#/state/source"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickSource"},value:[{$ref:"event#/target/value"}]}]}}]},{tagName:"div",attributes:{part:"new-slot",role:"none"},$switch:{$ref:"#/state/creating"},cases:{true:{tagName:"jx-field",attributes:{part:"new-row"},$props:{span:!0,label:"New definition name",invalid:{$ref:"#/state/invalid"}},children:[{tagName:"jx-textfield",attributes:{part:"new-name"},$props:{size:"sm",placeholder:"myItems",value:{$ref:"#/state/newName"},invalid:{$ref:"#/state/invalid"},error:{$ref:"#/state/error"}},oninput:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/setName"},value:[{$ref:"event#/target/value"}]}]},onkeydown:{$prototype:"Function",body:[{$switch:{$ref:"event#/key"},cases:{Enter:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/confirm"},value:[]}]}}]}}]}}},{tagName:"div",attributes:{part:"functions-slot",role:"none"},$switch:{$ref:"#/state/hasFunctions"},cases:{true:{tagName:"div",attributes:{part:"functions",role:"none"},children:[{tagName:"jx-field",attributes:{part:"filter-row"},$props:{span:!0,label:"Filter (optional)"},children:[{tagName:"jx-select",attributes:{part:"filter"},$props:{size:"sm",options:{$ref:"#/state/functionOptions"},value:{$ref:"#/state/filter"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickFilter"},value:[{$ref:"event#/target/value"}]}]}}]},{tagName:"jx-field",attributes:{part:"sort-row"},$props:{span:!0,label:"Sort (optional)"},children:[{tagName:"jx-select",attributes:{part:"sort"},$props:{size:"sm",options:{$ref:"#/state/functionOptions"},value:{$ref:"#/state/sort"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickSort"},value:[{$ref:"event#/target/value"}]}]}}]}]}}}]}]};T("convert-repeater",h);var d="__new__";function y(r){return{...r,creating:r.source===d,functionOptions:[{label:"None",value:""},...r.functions.map((o)=>({label:o,value:o}))],hasFunctions:r.functions.length>0,invalid:r.error!=="",sourceOptions:[...r.sources.map((o)=>({label:o,value:o})),{label:"Create new…",value:d}]}}function w(r){let o=document.createElement("div");o.style.pointerEvents="auto",o.setAttribute(qe,ft("dialog","convert-repeater")),r.layer.append(o);let l=!1,i=()=>{if(l)return;l=!0,r.onClosed()},e=()=>l,s=g({...y(r.view),closed:i,confirm:()=>{r.onConfirm()},pickFilter:(t)=>{s.filter=t,r.onPickFilter(t)},pickSort:(t)=>{s.sort=t,r.onPickSort(t)},pickSource:(t)=>{s.source=t,r.onPickSource(t)},setName:(t)=>{s.newName=t,r.onName(t)}}),c=null,p=()=>{setTimeout(()=>{let t=c?.root;if(l||!(t instanceof HTMLElement))return;let a=t.querySelector('jx-textfield[part="new-name"]');if(a)uh(a,"all")},0)},f=R("convert-repeater",s,o).then(async(t)=>{c=t;let a=t.root;if(e())return t.dispose(),a;if(await Jt(a),e())return a;if(Pt(a),s.creating)p();return a});return{close(){let t=c?.root;if(t instanceof HTMLElement)Nt(t);c?.dispose(),c=null,o.remove(),i()},host:o,ready:f,update(t){let a=y(t),n=a.creating&&!s.creating,m=a.error!==""&&a.error===s.error;if(Object.assign(s,m?{...a,error:""}:a),m){let b=a.error;queueMicrotask(()=>{s.error=b})}if(n)p()}}}var C=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/;async function Z(){let r=u.value,o=Me(r?.session.selection);if(!r||!o||o.length<2)return;if(!oe(r.doc.document,o))return;let i=r.doc.document.state||{},e=await N(i);if(!e)return;Y(r,(s)=>{let c=s.doc.document;if(e.newDef){if(!c.state)c.state={};c.state[e.newDef.name]={default:[],type:"array"}}let p=At(o);if(!p)return;let f=hi(o),t=oe(c,p);if(!t?.children)return;let a=lr(t)[f],n={$prototype:"Array",items:e.items,map:a};if(e.filter)n.filter=e.filter;if(e.sort)n.sort=e.sort;t.children[f]=n})}async function S(r){let o=Object.entries(r).filter(([,i])=>v(i)&&(i.type==="array"||Array.isArray(i.default)||i.$prototype==="Array")).map(([i])=>i),l=u.value?.documentPath;for(let[i,e]of Object.entries(r)){if(!$v(e)||!e.$prototype||e.$prototype==="Array")continue;if(o.includes(i))continue;if((await Aw({...e.$src!=null&&{$src:e.$src},$prototype:e.$prototype},{...l!=null&&{documentPath:l}}))?.returns?.type==="array")o.push(i)}return o}async function N(r){let o=await S(r),l=Object.entries(r).filter(([,i])=>Ol(i)==="function").map(([i])=>i);return new Promise((i)=>{let e={error:"",filter:"",functions:l,newName:"",sort:"",source:o[0]??d,sources:o},s=!1,c=(n)=>{if(s)return;s=!0,a.close(),i(n)},p=(n)=>{e.error=n,a.update(e)},f=()=>({...e.filter&&{filter:{$ref:`#/state/${e.filter}`}},...e.sort&&{sort:{$ref:`#/state/${e.sort}`}}}),t=()=>{if(e.source!==d){c({items:{$ref:`#/state/${e.source}`},...f()});return}let n=e.newName.trim();if(!n){p("Enter a name for the new state definition.");return}if(r[n]){p(`"${n}" already exists.`);return}if(!C.test(n)){p("Invalid identifier name.");return}c({items:{$ref:`#/state/${n}`},...f(),newDef:{name:n}})},a=w({layer:tt("dialog"),onClosed:()=>c(null),onConfirm:t,onName:(n)=>{e.newName=n,e.error="",a.update(e)},onPickFilter:(n)=>{e.filter=n,a.update(e)},onPickSort:(n)=>{e.sort=n,a.update(e)},onPickSource:(n)=>{e.source=n,e.error="",a.update(e)},view:e})})}export{Z as convertToRepeater};
1
+ import{Oe,Y,u}from"./studio-ztppbam0.js";import{g}from"./studio-tfmhnwyr.js";import"./studio-4rgem12q.js";import"./studio-9ndgd55w.js";import"./studio-a6e5fzve.js";import"./studio-8pne0rx4.js";import"./studio-ajw4k8hp.js";import{Ot,Nt,dh}from"./studio-qs5fmhtj.js";import{Ue,ft,T,R,Jt,tt}from"./studio-myb4mf0h.js";import"./studio-psh8mwnw.js";import{Al}from"./studio-sm2f0sc6.js";import"./studio-nfmpmkqb.js";import"./studio-k1wvtp03.js";import"./studio-yjh9gddd.js";import"./studio-14hh60j8.js";import"./studio-nqexty8x.js";import"./studio-ekzbgnjp.js";import"./studio-by8x0jvc.js";import"./studio-t6dqnnft.js";import"./studio-0rg30pvs.js";import"./studio-g45r5vm8.js";import"./studio-xzgp0cp7.js";import"./studio-9ff0vqff.js";import"./studio-cg54vtet.js";import"./studio-7q6jdd4h.js";import"./studio-vtey9w98.js";import{Rw}from"./studio-spza69tb.js";import"./studio-kqh7fxn6.js";import{rr,Vt,zi}from"./studio-9ra9e7m4.js";import{oe}from"./studio-nfwacw31.js";import{v,Iv}from"./studio-ywf9y1e2.js";var h={$schema:"https://jxsuite.com/schema/v1",$id:"StudioConvertRepeater",$description:'Repeat…: the dialog that turns the selected element into an `$prototype: "Array"` template. One `jx-dialog`, so the platform owns modality, Escape, the backdrop and focus restoration — which is what retired the `sp-dialog-wrapper` this surface used to open through its bare `open` attribute, and the hand-rolled `requestAnimationFrame` focus move that had to follow it. Three questions in one form: which state definition holds the items, and optionally which function filters and which sorts. The name field appears only when the answer to the first is "Create new…", because a definition that already exists needs no name. Nothing here knows what makes a definition an array — `editor/convert-to-repeater.ts` asks the plugin schemas, keeps the refusals and writes the repeater — and it hands over rows that are already strings.',tagName:"jx-dialog",$props:{headline:"Repeat…",confirmLabel:"Create Repeater",cancelLabel:"Cancel",size:"sm"},attributes:{part:"convert-repeater"},onconfirm:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/confirm"},value:[]}]},oncancel:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/closed"},value:[]}]},onclose:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/closed"},value:[]}]},style:{$description:"There is no stylesheet to transcribe: the lit version carried one inline `display:flex;flex-direction:column;gap:12px` on a wrapper div and nothing else, because `sp-field-label` and `sp-dialog-wrapper` drew the rest. Both of those are gone — the label is `jx-field`'s, which actually NAMES the control it wraps rather than sitting beside it, and the box is the dialog's — so the whole of this block is the one gap that separated the rows, said in the kit's scale instead of in the twelve pixels somebody typed.",'& [part="form"]':{display:"flex",flexDirection:"column",gap:"var(--jx-space-4)"},'& [part="new-slot"], & [part="functions-slot"], & [part="functions"]':{$description:"A branch host and the pair inside it are structure rather than layout: `display: contents` puts the rows they carry straight into the form's own column, so one gap rule spaces every row whether it is drawn or not.",display:"contents"}},children:[{tagName:"div",attributes:{part:"form"},children:[{tagName:"jx-field",attributes:{part:"source-row"},$props:{span:!0,label:"Items source"},children:[{tagName:"jx-select",attributes:{part:"source"},$props:{size:"sm",options:{$ref:"#/state/sourceOptions"},value:{$ref:"#/state/source"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickSource"},value:[{$ref:"event#/target/value"}]}]}}]},{tagName:"div",attributes:{part:"new-slot",role:"none"},$switch:{$ref:"#/state/creating"},cases:{true:{tagName:"jx-field",attributes:{part:"new-row"},$props:{span:!0,label:"New definition name",invalid:{$ref:"#/state/invalid"}},children:[{tagName:"jx-textfield",attributes:{part:"new-name"},$props:{size:"sm",placeholder:"myItems",value:{$ref:"#/state/newName"},invalid:{$ref:"#/state/invalid"},error:{$ref:"#/state/error"}},oninput:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/setName"},value:[{$ref:"event#/target/value"}]}]},onkeydown:{$prototype:"Function",body:[{$switch:{$ref:"event#/key"},cases:{Enter:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/confirm"},value:[]}]}}]}}]}}},{tagName:"div",attributes:{part:"functions-slot",role:"none"},$switch:{$ref:"#/state/hasFunctions"},cases:{true:{tagName:"div",attributes:{part:"functions",role:"none"},children:[{tagName:"jx-field",attributes:{part:"filter-row"},$props:{span:!0,label:"Filter (optional)"},children:[{tagName:"jx-select",attributes:{part:"filter"},$props:{size:"sm",options:{$ref:"#/state/functionOptions"},value:{$ref:"#/state/filter"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickFilter"},value:[{$ref:"event#/target/value"}]}]}}]},{tagName:"jx-field",attributes:{part:"sort-row"},$props:{span:!0,label:"Sort (optional)"},children:[{tagName:"jx-select",attributes:{part:"sort"},$props:{size:"sm",options:{$ref:"#/state/functionOptions"},value:{$ref:"#/state/sort"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/pickSort"},value:[{$ref:"event#/target/value"}]}]}}]}]}}}]}]};T("convert-repeater",h);var d="__new__";function y(r){return{...r,creating:r.source===d,functionOptions:[{label:"None",value:""},...r.functions.map((o)=>({label:o,value:o}))],hasFunctions:r.functions.length>0,invalid:r.error!=="",sourceOptions:[...r.sources.map((o)=>({label:o,value:o})),{label:"Create new…",value:d}]}}function w(r){let o=document.createElement("div");o.style.pointerEvents="auto",o.setAttribute(Ue,ft("dialog","convert-repeater")),r.layer.append(o);let l=!1,i=()=>{if(l)return;l=!0,r.onClosed()},e=()=>l,s=g({...y(r.view),closed:i,confirm:()=>{r.onConfirm()},pickFilter:(t)=>{s.filter=t,r.onPickFilter(t)},pickSort:(t)=>{s.sort=t,r.onPickSort(t)},pickSource:(t)=>{s.source=t,r.onPickSource(t)},setName:(t)=>{s.newName=t,r.onName(t)}}),c=null,p=()=>{setTimeout(()=>{let t=c?.root;if(l||!(t instanceof HTMLElement))return;let a=t.querySelector('jx-textfield[part="new-name"]');if(a)dh(a,"all")},0)},f=R("convert-repeater",s,o).then(async(t)=>{c=t;let a=t.root;if(e())return t.dispose(),a;if(await Jt(a),e())return a;if(Ot(a),s.creating)p();return a});return{close(){let t=c?.root;if(t instanceof HTMLElement)Nt(t);c?.dispose(),c=null,o.remove(),i()},host:o,ready:f,update(t){let a=y(t),n=a.creating&&!s.creating,m=a.error!==""&&a.error===s.error;if(Object.assign(s,m?{...a,error:""}:a),m){let b=a.error;queueMicrotask(()=>{s.error=b})}if(n)p()}}}var C=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/;async function Z(){let r=u.value,o=Oe(r?.session.selection);if(!r||!o||o.length<2)return;if(!oe(r.doc.document,o))return;let i=r.doc.document.state||{},e=await N(i);if(!e)return;Y(r,(s)=>{let c=s.doc.document;if(e.newDef){if(!c.state)c.state={};c.state[e.newDef.name]={default:[],type:"array"}}let p=Vt(o);if(!p)return;let f=zi(o),t=oe(c,p);if(!t?.children)return;let a=rr(t)[f],n={$prototype:"Array",items:e.items,map:a};if(e.filter)n.filter=e.filter;if(e.sort)n.sort=e.sort;t.children[f]=n})}async function S(r){let o=Object.entries(r).filter(([,i])=>v(i)&&(i.type==="array"||Array.isArray(i.default)||i.$prototype==="Array")).map(([i])=>i),l=u.value?.documentPath;for(let[i,e]of Object.entries(r)){if(!Iv(e)||!e.$prototype||e.$prototype==="Array")continue;if(o.includes(i))continue;if((await Rw({...e.$src!=null&&{$src:e.$src},$prototype:e.$prototype},{...l!=null&&{documentPath:l}}))?.returns?.type==="array")o.push(i)}return o}async function N(r){let o=await S(r),l=Object.entries(r).filter(([,i])=>Al(i)==="function").map(([i])=>i);return new Promise((i)=>{let e={error:"",filter:"",functions:l,newName:"",sort:"",source:o[0]??d,sources:o},s=!1,c=(n)=>{if(s)return;s=!0,a.close(),i(n)},p=(n)=>{e.error=n,a.update(e)},f=()=>({...e.filter&&{filter:{$ref:`#/state/${e.filter}`}},...e.sort&&{sort:{$ref:`#/state/${e.sort}`}}}),t=()=>{if(e.source!==d){c({items:{$ref:`#/state/${e.source}`},...f()});return}let n=e.newName.trim();if(!n){p("Enter a name for the new state definition.");return}if(r[n]){p(`"${n}" already exists.`);return}if(!C.test(n)){p("Invalid identifier name.");return}c({items:{$ref:`#/state/${n}`},...f(),newDef:{name:n}})},a=w({layer:tt("dialog"),onClosed:()=>c(null),onConfirm:t,onName:(n)=>{e.newName=n,e.error="",a.update(e)},onPickFilter:(n)=>{e.filter=n,a.update(e)},onPickSort:(n)=>{e.sort=n,a.update(e)},onPickSource:(n)=>{e.source=n,e.error="",a.update(e)},view:e})})}export{Z as convertToRepeater};
2
2
 
3
- //# debugId=BEA176B1252A85C664756E2164756E21
4
- //# sourceMappingURL=convert-to-repeater-he70fc2b.js.map
3
+ //# debugId=D17B20DA01EE7AF464756E2164756E21
4
+ //# sourceMappingURL=convert-to-repeater-j9hfcj4f.js.map
@@ -0,0 +1,4 @@
1
+ import{H2,Wf,B2,z2,W2,np,V2,U2,ga,Y0,vd,q2,Wn,we}from"./studio-nm86874b.js";export{H2 as CancellationTokenSource,Wf as Emitter,B2 as KeyCode,z2 as KeyMod,ga as MarkerSeverity,Y0 as MarkerTag,W2 as Position,np as Range,V2 as Selection,U2 as SelectionDirection,q2 as Token,vd as Uri,Wn as editor,we as languages};
2
+
3
+ //# debugId=0ABAF5272BD2763564756E2164756E21
4
+ //# sourceMappingURL=editor-645krvtz.js.map
@@ -0,0 +1,4 @@
1
+ import{B_,Y2,bE}from"./studio-mkw17ngg.js";import"./studio-ge08zwpv.js";import"./studio-ht81xjkr.js";import"./studio-6rbaedw2.js";import"./studio-k6hbx2fc.js";import"./studio-nfmpmkqb.js";import"./studio-n4qq1n57.js";import"./studio-9ff0vqff.js";import"./studio-fg4fj9ec.js";import"./studio-cg54vtet.js";import"./studio-x2trkhk5.js";import"./studio-spza69tb.js";import"./studio-kqh7fxn6.js";import"./studio-9179bsm7.js";import"./studio-0nefxhar.js";import"./studio-yjh9gddd.js";import"./studio-0rg30pvs.js";import"./studio-ekzbgnjp.js";import"./studio-nqexty8x.js";import"./studio-g45r5vm8.js";import"./studio-vtey9w98.js";import"./studio-t6dqnnft.js";import"./studio-y47090vq.js";import"./studio-14hh60j8.js";import"./studio-myb4mf0h.js";import"./studio-ajw4k8hp.js";import"./studio-qs5fmhtj.js";import"./studio-8hf8qcm1.js";import"./studio-7q6jdd4h.js";import"./studio-by8x0jvc.js";import"./studio-ztppbam0.js";import"./studio-4rgem12q.js";import"./studio-8pne0rx4.js";import"./studio-tfmhnwyr.js";import"./studio-psh8mwnw.js";import"./studio-a6e5fzve.js";import"./studio-9ndgd55w.js";import"./studio-k1wvtp03.js";export{Y2 as createEntry,B_ as entryFormatName,bE as registerContentCommands};
2
+
3
+ //# debugId=B3F7191EB41FD41A64756E2164756E21
4
+ //# sourceMappingURL=entry-commands-3qmv8wkr.js.map
@@ -1,4 +1,4 @@
1
- import"./studio-w4rz9hdk.js";import{Ot,od,tu}from"./studio-z97c48fk.js";import"./studio-nqxqf8p2.js";import{g}from"./studio-43sd2mam.js";import"./studio-c05wdnt3.js";import"./studio-kt3pjkwd.js";import"./studio-8tr6cfrc.js";import"./studio-q7rtx6zq.js";import"./studio-07rcfje3.js";import"./studio-k3xxbagr.js";import{T,R,Zs,tt}from"./studio-x9hsze61.js";import"./studio-pbxa5fpc.js";import"./studio-k1wvtp03.js";import"./studio-jaaz8ce9.js";import{FR,jR,Ml,HR,Gk,Du}from"./studio-3q40e3rj.js";import{nS,zD,eT,nT}from"./studio-bavb31r0.js";import"./studio-fyh0jc96.js";import"./studio-8m0y2qe7.js";import"./studio-r5qy30vx.js";import"./studio-4hp8pkyt.js";import"./studio-s32578pn.js";import"./studio-d5grtb9e.js";import"./studio-3e54qh39.js";import"./studio-y0n7yxea.js";import"./studio-5g0rprdt.js";import"./studio-tf9jryb1.js";import"./studio-ph84avkf.js";import"./studio-3exxhz5g.js";import"./studio-rj9eamf8.js";import"./studio-fbhxxc5f.js";import"./studio-nh6d342n.js";import"./studio-q0tccd43.js";import"./studio-3qeh9t0h.js";import{n,S}from"./studio-vxq7fcvv.js";var h={$schema:"https://jxsuite.com/schema/v1",$id:"StudioDataActions",$description:"The actions row a data-domain settings section grows: test a connection, push the schema, open the rows as a grid. It is an ISLAND inside `surfaces/settings-contributed.json` — the generic contributed-section renderer stays extension-agnostic and draws an empty host, and `panels/data-grid.ts` mounts this into it — which is the seam that lets the data surface contribute verbs without the settings machinery learning what a connection is.",tagName:"div",attributes:{part:"data-actions"},style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"var(--jx-space-2)",fontFamily:"var(--jx-font-sans)",fontSize:"var(--jx-text-md)",'& [part="result"]':{fontSize:"var(--jx-text-sm)",color:"var(--fg-dim)"},'& [part="result"][data-ok="false"]':{color:"var(--danger)"},'& [part="result"][data-ok="true"]':{color:"var(--success, var(--accent))"}},children:[{tagName:"span",attributes:{part:"test-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/testState"},cases:{shown:{tagName:"jx-button",attributes:{part:"test"},$props:{variant:"secondary",size:"sm",disabled:{$ref:"#/state/testDisabled"}},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/test"},value:[]}]},children:[{tagName:"span",textContent:"${state.testLabel}"}]}}},{tagName:"jx-button",attributes:{part:"push"},$props:{variant:"secondary",size:"sm"},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/push"},value:[]}]},children:[{tagName:"span",textContent:"Push Schema"}]},{tagName:"jx-button",attributes:{part:"grid"},$props:{variant:"secondary",size:"sm"},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/openGrid"},value:[]}]},children:[{tagName:"span",textContent:"Open Data Grid"}]},{tagName:"span",attributes:{part:"result-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/resultState"},cases:{shown:{$description:"The last test's verdict, and a live region because it arrives after the press that asked for it.",tagName:"span",attributes:{part:"result",role:"status","data-ok":"${state.resultOk}",title:"${state.resultTitle}"},textContent:"${state.resultText}"}}}]};T("data-actions",h);function y(t,e){t.testState=e.testState,t.testLabel=e.testLabel,t.testDisabled=e.testDisabled,t.resultState=e.resultState,t.resultOk=e.resultOk,t.resultText=e.resultText,t.resultTitle=e.resultTitle}function b(t,e,o){let a=g({openGrid:o.openGrid,push:o.push,resultOk:"false",resultState:"hidden",resultText:"",resultTitle:"",test:o.test,testDisabled:!1,testLabel:"Test Connection",testState:"hidden"});y(a,e);let s=null,l=!1,r=R("data-actions",a,t).then((i)=>{let d=i.root;if(l)return i.dispose(),d;return s=i,d});return{dispose(){l=!0,s?.dispose(),s=null},ready:r,update:(i)=>y(a,i)}}var x={$schema:"https://jxsuite.com/schema/v1",$id:"StudioPushPlan",$description:"What pushing the schema would do, or what it did. The dry run is the whole point of the surface: a push rewrites a live database's shape, so the plan is read before the apply, and the confirm dialog around this document is the one that gates it. The ISLAND of `ui/layers.ts`'s confirm dialog rather than a dialog of its own (studio-ui-guidelines.md §12.5).",tagName:"div",attributes:{part:"plan"},style:{display:"flex",flexDirection:"column",gap:"var(--jx-space-2)",minWidth:"0",fontFamily:"var(--jx-font-sans)",fontSize:"var(--jx-text-md)",color:"var(--fg)",'& [part="steps"]':{margin:"0",padding:"0",listStyle:"none",display:"flex",flexDirection:"column",gap:"2px",maxHeight:"40vh",overflowY:"auto"},'& [part="step"]':{fontFamily:"var(--font-mono)",fontSize:"var(--jx-text-sm)",padding:"2px var(--jx-space-2)",borderLeft:"2px solid var(--border)"},'& [part="step"][data-kind="drop"]':{borderLeftColor:"var(--danger)"},'& [part="step"][data-kind="create"]':{borderLeftColor:"var(--success, var(--accent))"},'& [part="warning"]':{margin:"0",fontSize:"var(--jx-text-sm)",color:"var(--warning, var(--fg-dim))"},'& [part="failure"]':{$description:'`failure` rather than `error`: every kit field draws a permanent, empty `[part="error"]` of its own, and the kit is light DOM, so a rule on that name here would reach any field the plan ever holds.',margin:"0",fontSize:"var(--jx-text-sm)",color:"var(--danger)"}},children:[{tagName:"ul",attributes:{part:"steps"},children:[{$prototype:"Array",items:{$ref:"#/state/steps"},key:{$ref:"$map/item/key"},map:{tagName:"li",attributes:{part:"step","data-kind":"${$map.item.kind}"},textContent:"${$map.item.summary}"}}]},{$prototype:"Array",items:{$ref:"#/state/warnings"},key:{$ref:"$map/item/key"},map:{tagName:"p",attributes:{part:"warning"},textContent:"${$map.item.text}"}},{$prototype:"Array",items:{$ref:"#/state/errors"},key:{$ref:"$map/item/key"},map:{tagName:"p",attributes:{part:"failure",role:"alert"},textContent:"${$map.item.text}"}}]};T("push-plan",x);function v(t,e){let o=g({errors:e.errors,steps:e.steps,warnings:e.warnings}),a=null,s=!1,l=R("push-plan",o,t).then((r)=>{if(s)r.dispose();else a=r;return r.root});return{dispose(){s=!0,a?.dispose(),a=null},ready:l,update(r){o.steps=r.steps,o.warnings=r.warnings,o.errors=r.errors}}}var u=null;function P(){let t=u;u=null,t?.plan?.dispose(),t?.handle.close()}function D(t,e){return t.map((o,a)=>({key:`${e}:${a}`,text:o}))}function A(t){let e=t.phase==="done"?t.result:t.dryRun;return{errors:D(e?.errors??[],"error"),steps:(e?.plan??[]).map((o,a)=>({key:`${o.kind}:${a}`,kind:o.kind,summary:o.summary})),warnings:D(e?.warnings??[],"warning")}}function N(t){if(t.phase==="loading")return"Compiling plan…";if(t.phase==="applying")return"Applying…";if(t.phase==="done")return t.result?.applied?"Schema applied.":"Push failed.";let e=t.dryRun?.plan.length??0,o=t.dryRun?.errors?.length??0;return e===0&&o===0?"Nothing to push — the schema is up to date.":""}function m(){let t=u;if(!t)return;let e=t.phase==="confirm"&&(t.dryRun?.plan.length??0)>0;t.handle.update({cancelLabel:t.phase==="done"?"Close":"Cancel",confirmLabel:e?"Apply":"",message:N(t)}),t.plan?.update(A(t))}async function j(t,e){if(u)return;let o={connection:t,dryRun:null,onDone:e,phase:"loading",plan:null,result:null},a=Zs({cancelLabel:"Cancel",confirmLabel:"",headline:t?`Push Schema — ${t}`:"Push Schema",island:(i)=>{o.plan=v(i,A(o))},layer:tt("dialog"),message:"Compiling plan…",onCancel:P,onClosed:()=>{if(u===o)P()},onConfirm:()=>{E()},region:"data/push"}),s=Object.assign(o,{handle:a});u=s;let l={dryRun:!0};if(t!==void 0)l.connection=t;let r=await eT(l);if(u!==s)return;s.dryRun=r,s.phase="confirm",m()}async function E(){let t=u;if(!t)return;t.phase="applying",m();let e=await eT(t.connection===void 0?{}:{connection:t.connection});if(u!==t)return;t.result=e,t.phase="done",m(),t.onDone()}var c={pushing:!1,testResult:null,testing:null},w=new Map;function k(t,e){let{testResult:o}=c;return{resultOk:o?.ok?"true":"false",resultState:o?"shown":"hidden",resultText:o?`${o.connection}: ${o.ok?"connected":o.error??"failed"}`:"",resultTitle:o?.error??"",testDisabled:!e||c.testing!==null,testLabel:c.testing?"Testing…":"Test Connection",testState:t==="connections"?"shown":"hidden"}}function C(t){if(t!=="connections"&&t!=="data"||!nS())return null;return(e,o)=>V(e,t,o)}async function O(t,e){c.testing=t,c.testResult=null,e();let o=await zD(t);c.testing=null,c.testResult={...o,connection:t},e()}function V(t,e,o){let{rerender:a,selected:s}=o,l=w.get(t);if(l){l.update(k(e,s));return}let r=()=>e==="connections"?o.selected??void 0:void 0;w.set(t,b(t,k(e,s),{openGrid:()=>{Du(),nT()},push:()=>{j(r(),a)},test:()=>{let i=o.selected;if(i)O(i,a)}}))}var G=100;function M(t){let e=t.studio?.settings;if(!e)return null;let{key:o}=t.project,a=e.layout??"form",s=t.entrySchema??{},l=a==="map"?S(s.additionalProperties)?s.additionalProperties:{}:s,r=e.label??t.project.title??o,i={};if(e.entry!==void 0)i.entry=e.entry;if(e.layout!==void 0)i.layout=e.layout;return{contribution:{entrySchema:l,key:o,settings:i,title:r},group:jR(e.group)?e.group:FR,icon:e.icon,intro:n(e.intro)?e.intro:void 0,key:o,label:r,order:e.order??G}}var f=new Set,p=null;function dt(){return p??Promise.resolve()}function pt(){return p??=F().finally(()=>{p=null}),p}async function F(){let[t]=await Promise.all([od(),Ot()]),e=new Set;for(let o of t)for(let a of o.contributions){let s=M(a);if(!s)continue;let{contribution:l}=s;Ml({group:s.group,icon:s.icon,intro:s.intro,key:s.key,label:s.label,order:s.order,render:(r)=>{let i=C(s.key),d={formats:tu()};if(i!==null)d.actions=i;Gk(r,l,d)}}),e.add(s.key)}for(let o of f)if(!e.has(o))HR(o);f.clear();for(let o of e)f.add(o)}export{dt as extensionSectionsReady,pt as syncExtensionSettingsSections};
1
+ import"./studio-9ndgd55w.js";import{Ht,Qc,Xd}from"./studio-a6e5fzve.js";import"./studio-psh8mwnw.js";import{g}from"./studio-tfmhnwyr.js";import"./studio-ztppbam0.js";import"./studio-4rgem12q.js";import"./studio-8pne0rx4.js";import"./studio-qs5fmhtj.js";import"./studio-nfmpmkqb.js";import"./studio-ajw4k8hp.js";import{T,R,Ys,tt}from"./studio-myb4mf0h.js";import"./studio-9ff0vqff.js";import"./studio-k1wvtp03.js";import"./studio-jr30g4ae.js";import{MR,PR,Ol,FR,Wk,Iu}from"./studio-e4rq6x0q.js";import{nS,HD,YE,XE}from"./studio-1cfyd1ys.js";import"./studio-7q6jdd4h.js";import"./studio-by8x0jvc.js";import"./studio-8hf8qcm1.js";import"./studio-y47090vq.js";import"./studio-14hh60j8.js";import"./studio-nqexty8x.js";import"./studio-0nefxhar.js";import"./studio-9179bsm7.js";import"./studio-yjh9gddd.js";import"./studio-fg4fj9ec.js";import"./studio-t6dqnnft.js";import"./studio-vtey9w98.js";import"./studio-0rg30pvs.js";import"./studio-ekzbgnjp.js";import"./studio-g45r5vm8.js";import"./studio-x2trkhk5.js";import"./studio-spza69tb.js";import{n,_}from"./studio-ywf9y1e2.js";var h={$schema:"https://jxsuite.com/schema/v1",$id:"StudioDataActions",$description:"The actions row a data-domain settings section grows: test a connection, push the schema, open the rows as a grid. It is an ISLAND inside `surfaces/settings-contributed.json` — the generic contributed-section renderer stays extension-agnostic and draws an empty host, and `panels/data-grid.ts` mounts this into it — which is the seam that lets the data surface contribute verbs without the settings machinery learning what a connection is.",tagName:"div",attributes:{part:"data-actions"},style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"var(--jx-space-2)",fontFamily:"var(--jx-font-sans)",fontSize:"var(--jx-text-md)",'& [part="result"]':{fontSize:"var(--jx-text-sm)",color:"var(--fg-dim)"},'& [part="result"][data-ok="false"]':{color:"var(--danger)"},'& [part="result"][data-ok="true"]':{color:"var(--success, var(--accent))"}},children:[{tagName:"span",attributes:{part:"test-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/testState"},cases:{shown:{tagName:"jx-button",attributes:{part:"test"},$props:{variant:"secondary",size:"sm",disabled:{$ref:"#/state/testDisabled"}},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/test"},value:[]}]},children:[{tagName:"span",textContent:"${state.testLabel}"}]}}},{tagName:"jx-button",attributes:{part:"push"},$props:{variant:"secondary",size:"sm"},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/push"},value:[]}]},children:[{tagName:"span",textContent:"Push Schema"}]},{tagName:"jx-button",attributes:{part:"grid"},$props:{variant:"secondary",size:"sm"},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/openGrid"},value:[]}]},children:[{tagName:"span",textContent:"Open Data Grid"}]},{tagName:"span",attributes:{part:"result-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/resultState"},cases:{shown:{$description:"The last test's verdict, and a live region because it arrives after the press that asked for it.",tagName:"span",attributes:{part:"result",role:"status","data-ok":"${state.resultOk}",title:"${state.resultTitle}"},textContent:"${state.resultText}"}}}]};T("data-actions",h);function S(t,e){t.testState=e.testState,t.testLabel=e.testLabel,t.testDisabled=e.testDisabled,t.resultState=e.resultState,t.resultOk=e.resultOk,t.resultText=e.resultText,t.resultTitle=e.resultTitle}function y(t,e,o){let a=g({openGrid:o.openGrid,push:o.push,resultOk:"false",resultState:"hidden",resultText:"",resultTitle:"",test:o.test,testDisabled:!1,testLabel:"Test Connection",testState:"hidden"});S(a,e);let s=null,l=!1,r=R("data-actions",a,t).then((i)=>{let d=i.root;if(l)return i.dispose(),d;return s=i,d});return{dispose(){l=!0,s?.dispose(),s=null},ready:r,update:(i)=>S(a,i)}}var b={$schema:"https://jxsuite.com/schema/v1",$id:"StudioPushPlan",$description:"What pushing the schema would do, or what it did. The dry run is the whole point of the surface: a push rewrites a live database's shape, so the plan is read before the apply, and the confirm dialog around this document is the one that gates it. The ISLAND of `ui/layers.ts`'s confirm dialog rather than a dialog of its own (studio-ui-guidelines.md §12.5).",tagName:"div",attributes:{part:"plan"},style:{display:"flex",flexDirection:"column",gap:"var(--jx-space-2)",minWidth:"0",fontFamily:"var(--jx-font-sans)",fontSize:"var(--jx-text-md)",color:"var(--fg)",'& [part="steps"]':{margin:"0",padding:"0",listStyle:"none",display:"flex",flexDirection:"column",gap:"2px",maxHeight:"40vh",overflowY:"auto"},'& [part="step"]':{fontFamily:"var(--font-mono)",fontSize:"var(--jx-text-sm)",padding:"2px var(--jx-space-2)",borderLeft:"2px solid var(--border)"},'& [part="step"][data-kind="drop"]':{borderLeftColor:"var(--danger)"},'& [part="step"][data-kind="create"]':{borderLeftColor:"var(--success, var(--accent))"},'& [part="warning"]':{margin:"0",fontSize:"var(--jx-text-sm)",color:"var(--warning, var(--fg-dim))"},'& [part="failure"]':{$description:'`failure` rather than `error`: every kit field draws a permanent, empty `[part="error"]` of its own, and the kit is light DOM, so a rule on that name here would reach any field the plan ever holds.',margin:"0",fontSize:"var(--jx-text-sm)",color:"var(--danger)"}},children:[{tagName:"ul",attributes:{part:"steps"},children:[{$prototype:"Array",items:{$ref:"#/state/steps"},key:{$ref:"$map/item/key"},map:{tagName:"li",attributes:{part:"step","data-kind":"${$map.item.kind}"},textContent:"${$map.item.summary}"}}]},{$prototype:"Array",items:{$ref:"#/state/warnings"},key:{$ref:"$map/item/key"},map:{tagName:"p",attributes:{part:"warning"},textContent:"${$map.item.text}"}},{$prototype:"Array",items:{$ref:"#/state/errors"},key:{$ref:"$map/item/key"},map:{tagName:"p",attributes:{part:"failure",role:"alert"},textContent:"${$map.item.text}"}}]};T("push-plan",b);function x(t,e){let o=g({errors:e.errors,steps:e.steps,warnings:e.warnings}),a=null,s=!1,l=R("push-plan",o,t).then((r)=>{if(s)r.dispose();else a=r;return r.root});return{dispose(){s=!0,a?.dispose(),a=null},ready:l,update(r){o.steps=r.steps,o.warnings=r.warnings,o.errors=r.errors}}}var u=null;function v(){let t=u;u=null,t?.plan?.dispose(),t?.handle.close()}function P(t,e){return t.map((o,a)=>({key:`${e}:${a}`,text:o}))}function k(t){let e=t.phase==="done"?t.result:t.dryRun;return{errors:P(e?.errors??[],"error"),steps:(e?.plan??[]).map((o,a)=>({key:`${o.kind}:${a}`,kind:o.kind,summary:o.summary})),warnings:P(e?.warnings??[],"warning")}}function H(t){if(t.phase==="loading")return"Compiling plan…";if(t.phase==="applying")return"Applying…";if(t.phase==="done")return t.result?.applied?"Schema applied.":"Push failed.";let e=t.dryRun?.plan.length??0,o=t.dryRun?.errors?.length??0;return e===0&&o===0?"Nothing to push — the schema is up to date.":""}function m(){let t=u;if(!t)return;let e=t.phase==="confirm"&&(t.dryRun?.plan.length??0)>0;t.handle.update({cancelLabel:t.phase==="done"?"Close":"Cancel",confirmLabel:e?"Apply":"",message:H(t)}),t.plan?.update(k(t))}async function N(t,e){if(u)return;let o={connection:t,dryRun:null,onDone:e,phase:"loading",plan:null,result:null},a=Ys({cancelLabel:"Cancel",confirmLabel:"",headline:t?`Push Schema — ${t}`:"Push Schema",island:(i)=>{o.plan=x(i,k(o))},layer:tt("dialog"),message:"Compiling plan…",onCancel:v,onClosed:()=>{if(u===o)v()},onConfirm:()=>{j()},region:"data/push"}),s=Object.assign(o,{handle:a});u=s;let l={dryRun:!0};if(t!==void 0)l.connection=t;let r=await YE(l);if(u!==s)return;s.dryRun=r,s.phase="confirm",m()}async function j(){let t=u;if(!t)return;t.phase="applying",m();let e=await YE(t.connection===void 0?{}:{connection:t.connection});if(u!==t)return;t.result=e,t.phase="done",m(),t.onDone()}var c={pushing:!1,testResult:null,testing:null},D=new Map;function w(t,e){let{testResult:o}=c;return{resultOk:o?.ok?"true":"false",resultState:o?"shown":"hidden",resultText:o?`${o.connection}: ${o.ok?"connected":o.error??"failed"}`:"",resultTitle:o?.error??"",testDisabled:!e||c.testing!==null,testLabel:c.testing?"Testing…":"Test Connection",testState:t==="connections"?"shown":"hidden"}}function A(t){if(t!=="connections"&&t!=="data"||!nS())return null;return(e,o)=>O(e,t,o)}async function E(t,e){c.testing=t,c.testResult=null,e();let o=await HD(t);c.testing=null,c.testResult={...o,connection:t},e()}function O(t,e,o){let{rerender:a,selected:s}=o,l=D.get(t);if(l){l.update(w(e,s));return}let r=()=>e==="connections"?o.selected??void 0:void 0;D.set(t,y(t,w(e,s),{openGrid:()=>{Iu(),XE()},push:()=>{N(r(),a)},test:()=>{let i=o.selected;if(i)E(i,a)}}))}var V=100;function G(t){let e=t.studio?.settings;if(!e)return null;let{key:o}=t.project,a=e.layout??"form",s=t.entrySchema??{},l=a==="map"?_(s.additionalProperties)?s.additionalProperties:{}:s,r=e.label??t.project.title??o,i={};if(e.entry!==void 0)i.entry=e.entry;if(e.layout!==void 0)i.layout=e.layout;return{contribution:{entrySchema:l,key:o,settings:i,title:r},group:PR(e.group)?e.group:MR,icon:e.icon,intro:n(e.intro)?e.intro:void 0,key:o,label:r,order:e.order??V}}var f=new Set,p=null;function dt(){return p??Promise.resolve()}function pt(){return p??=M().finally(()=>{p=null}),p}async function M(){let[t]=await Promise.all([Qc(),Ht()]),e=new Set;for(let o of t)for(let a of o.contributions){let s=G(a);if(!s)continue;let{contribution:l}=s;Ol({group:s.group,icon:s.icon,intro:s.intro,key:s.key,label:s.label,order:s.order,render:(r)=>{let i=A(s.key),d={formats:Xd()};if(i!==null)d.actions=i;Wk(r,l,d)}}),e.add(s.key)}for(let o of f)if(!e.has(o))FR(o);f.clear();for(let o of e)f.add(o)}export{dt as extensionSectionsReady,pt as syncExtensionSettingsSections};
2
2
 
3
- //# debugId=3BFADC38F0673C4964756E2164756E21
4
- //# sourceMappingURL=extension-sections-0egb88dm.js.map
3
+ //# debugId=CC39B5A61A909D9F64756E2164756E21
4
+ //# sourceMappingURL=extension-sections-thfke054.js.map
@@ -0,0 +1,4 @@
1
+ import{QD,jr,AT,rP,OT,wp,MT,wb,xb}from"./studio-x2trkhk5.js";import"./studio-spza69tb.js";import"./studio-9179bsm7.js";import"./studio-0nefxhar.js";import"./studio-yjh9gddd.js";import"./studio-0rg30pvs.js";import"./studio-ekzbgnjp.js";import"./studio-nqexty8x.js";import"./studio-g45r5vm8.js";import"./studio-vtey9w98.js";import"./studio-t6dqnnft.js";import"./studio-y47090vq.js";import"./studio-14hh60j8.js";import"./studio-myb4mf0h.js";import"./studio-ajw4k8hp.js";import"./studio-qs5fmhtj.js";import"./studio-8hf8qcm1.js";import"./studio-7q6jdd4h.js";import"./studio-by8x0jvc.js";import"./studio-ztppbam0.js";import"./studio-4rgem12q.js";import"./studio-8pne0rx4.js";import"./studio-tfmhnwyr.js";import"./studio-psh8mwnw.js";import"./studio-a6e5fzve.js";import"./studio-9ndgd55w.js";export{wb as confirmFileDelete,MT as exportFile,rP as openFile,AT as parseCollabSource,QD as parseFormatSource,jr as parseSourceForPath,xb as renamePromptMessage,wp as saveFile,OT as setDocumentSavedListener};
2
+
3
+ //# debugId=12B19E983D3681CC64756E2164756E21
4
+ //# sourceMappingURL=file-ops-kkhp9ma7.js.map
@@ -0,0 +1,4 @@
1
+ import{Bs,pm,OE,ME,E2,PE,FE,jE,Z_,T2,hb,HE,L2,$2,BE,OD,I2,R2,pw,X_,MD,zE,D2,yi,Q_,WE,VE,fm,UE,N2,A2}from"./studio-ry4789ng.js";import"./studio-s4fq9jht.js";import"./studio-n4qq1n57.js";import"./studio-1cfyd1ys.js";import"./studio-9ff0vqff.js";import"./studio-fg4fj9ec.js";import"./studio-ws2r1d7e.js";import"./studio-79r8msnr.js";import"./studio-x2trkhk5.js";import"./studio-spza69tb.js";import"./studio-4qg61g9j.js";import"./studio-kqh7fxn6.js";import"./studio-9179bsm7.js";import"./studio-0nefxhar.js";import"./studio-yjh9gddd.js";import"./studio-0rg30pvs.js";import"./studio-ekzbgnjp.js";import"./studio-nqexty8x.js";import"./studio-g45r5vm8.js";import"./studio-vtey9w98.js";import"./studio-t6dqnnft.js";import"./studio-y47090vq.js";import"./studio-14hh60j8.js";import"./studio-myb4mf0h.js";import"./studio-ajw4k8hp.js";import"./studio-qs5fmhtj.js";import"./studio-8hf8qcm1.js";import"./studio-7q6jdd4h.js";import"./studio-by8x0jvc.js";import"./studio-ztppbam0.js";import"./studio-4rgem12q.js";import"./studio-8pne0rx4.js";import"./studio-tfmhnwyr.js";import"./studio-psh8mwnw.js";import"./studio-a6e5fzve.js";import"./studio-9ndgd55w.js";export{L2 as FILE_ROW_HEIGHT,BE as canMoveInto,R2 as createFileIn,Z_ as findHomePage,jE as initProjectRepo,$2 as isFileDrag,pw as listTakenNames,Bs as loadDirectory,PE as loadProject,pm as loadProjectDirectories,N2 as mountFilesPanel,MD as notifyMoveOutcome,Q_ as openFileInPane,yi as openFileInTab,T2 as openHomePage,hb as openLastSessionOrHome,FE as openProject,zE as parentDirOf,I2 as pickAndUploadTo,OE as refreshProjectDirectoriesFor,UE as registerFilesPanel,WE as reloadCleanTab,fm as reloadFileInTab,VE as reloadTabsIfChanged,HE as setSessionWorkspaceShow,E2 as setShowIgnoredFiles,D2 as settleRename,ME as showIgnoredFiles,A2 as unmountFilesPanel,OD as uploadFilesToDir,X_ as writeNewFile};
2
+
3
+ //# debugId=6E30048FC4EC2D3564756E2164756E21
4
+ //# sourceMappingURL=files-yswdhxrf.js.map
@@ -0,0 +1,4 @@
1
+ import{Ht,Lh,Qc,Cv,Ux,ec,Xd,Na,Wi,of,fn,ul,kv,lr,oI,Aa,rI}from"./studio-a6e5fzve.js";import"./studio-9ndgd55w.js";export{lr as defaultContentFormat,ul as documentExtensions,Na as formatByExtension,Wi as formatByName,fn as formatForPath,oI as formatParse,Aa as formatSerialize,Ux as getExtensionCatalog,Cv as getExtensions,Xd as getFormats,Qc as loadExtensions,Ht as loadFormats,of as noFormatError,ec as refreshExtensionUi,Lh as refreshFormats,kv as routedPageExtensions,rI as splitFormatDocument};
2
+
3
+ //# debugId=C90299CC3464784B64756E2164756E21
4
+ //# sourceMappingURL=format-host-4g8ex6bz.js.map
@@ -0,0 +1,4 @@
1
+ import{Ta,Hd,C$}from"./studio-8hf8qcm1.js";import"./studio-7q6jdd4h.js";import"./studio-by8x0jvc.js";import"./studio-ztppbam0.js";import"./studio-4rgem12q.js";import"./studio-8pne0rx4.js";import"./studio-tfmhnwyr.js";import"./studio-psh8mwnw.js";import"./studio-a6e5fzve.js";import"./studio-9ndgd55w.js";export{Hd as isRecentLocal,Ta as markLocalMutation,C$ as startFsSync};
2
+
3
+ //# debugId=488DC9A47953DD8E64756E2164756E21
4
+ //# sourceMappingURL=fs-events-z9gpvc6t.js.map
@@ -0,0 +1,4 @@
1
+ import{ZE,zD,oS,XE,QE}from"./studio-1cfyd1ys.js";import"./studio-fg4fj9ec.js";import"./studio-x2trkhk5.js";import"./studio-spza69tb.js";import"./studio-9179bsm7.js";import"./studio-0nefxhar.js";import"./studio-yjh9gddd.js";import"./studio-0rg30pvs.js";import"./studio-ekzbgnjp.js";import"./studio-nqexty8x.js";import"./studio-g45r5vm8.js";import"./studio-vtey9w98.js";import"./studio-t6dqnnft.js";import"./studio-y47090vq.js";import"./studio-14hh60j8.js";import"./studio-myb4mf0h.js";import"./studio-ajw4k8hp.js";import"./studio-qs5fmhtj.js";import"./studio-8hf8qcm1.js";import"./studio-7q6jdd4h.js";import"./studio-by8x0jvc.js";import"./studio-ztppbam0.js";import"./studio-4rgem12q.js";import"./studio-8pne0rx4.js";import"./studio-tfmhnwyr.js";import"./studio-psh8mwnw.js";import"./studio-a6e5fzve.js";import"./studio-9ndgd55w.js";export{zD as openCollectionGrid,ZE as openCsvGridTab,XE as openGridSourcePicker,oS as openPagesGrid,QE as registerGridCommands};
2
+
3
+ //# debugId=AD25A9B3B968468764756E2164756E21
4
+ //# sourceMappingURL=grid-open-fm4j183c.js.map