@jxsuite/studio 9.0.0 → 10.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/dist/chunks/{2020-89fz3pfy.js → 2020-mkb0qa6p.js} +3 -3
  2. package/dist/chunks/adapter-xcpsmecx.js +4 -0
  3. package/dist/chunks/{add-new-flow-nmkqpjym.js → add-new-flow-ptmhmzr9.js} +3 -3
  4. package/dist/chunks/{cf-account-picker-2e06qxey.js → cf-account-picker-z1sgwpwd.js} +3 -3
  5. package/dist/chunks/cf-settings-xqvhxxe9.js +4 -0
  6. package/dist/chunks/components-whsc81a7.js +4 -0
  7. package/dist/chunks/content-source-jwtxg78w.js +4 -0
  8. package/dist/chunks/{convert-to-repeater-j9hfcj4f.js → convert-to-repeater-f92ey3kp.js} +3 -3
  9. package/dist/chunks/editor-zdqdpq1x.js +4 -0
  10. package/dist/chunks/entry-commands-w8p2fbpt.js +4 -0
  11. package/dist/chunks/{extension-sections-thfke054.js → extension-sections-y2p1te2r.js} +3 -3
  12. package/dist/chunks/file-ops-13ab4swj.js +4 -0
  13. package/dist/chunks/files-zbc8p6v1.js +4 -0
  14. package/dist/chunks/format-host-zjsbktbx.js +4 -0
  15. package/dist/chunks/fs-events-t6x0hch6.js +4 -0
  16. package/dist/chunks/grid-open-fyzdwpkh.js +4 -0
  17. package/dist/chunks/{grid-view-7d2nx83y.js → grid-view-r22jsqht.js} +5 -5
  18. package/dist/chunks/iframe-host-kbyqc7pt.js +4 -0
  19. package/dist/chunks/index-6nvj89vb.js +4 -0
  20. package/dist/chunks/{index-jxmt7vh8.js → index-pxwwf00y.js} +3 -3
  21. package/dist/chunks/{javascript-vmqp56ke.js → javascript-pzqryby6.js} +2 -2
  22. package/dist/chunks/{jsonMode-n3wmpant.js → jsonMode-tcnyxyap.js} +5 -5
  23. package/dist/chunks/jx-validate-5sp8a4rm.js +4 -0
  24. package/dist/chunks/layers-panel-qrxj9vr2.js +4 -0
  25. package/dist/chunks/layers-tpzayggx.js +4 -0
  26. package/dist/chunks/lit-html-x6nrxsx3.js +4 -0
  27. package/dist/chunks/media-library-ywppnjrz.js +4 -0
  28. package/dist/chunks/media-picker-etxgc8qq.js +4 -0
  29. package/dist/chunks/{monaco-binding-wfhmz89d.js → monaco-binding-bqpge64f.js} +3 -3
  30. package/dist/chunks/monaco-buffer-qrnqhk0b.js +4 -0
  31. package/dist/chunks/{monaco-setup-fty7a8vg.js → monaco-setup-1mkab762.js} +3 -3
  32. package/dist/chunks/notify-kcv38wwe.js +4 -0
  33. package/dist/chunks/parse-df2kkmhc.js +4 -0
  34. package/dist/chunks/platform-dtsysmyd.js +4 -0
  35. package/dist/chunks/publish-panel-evb1rcxt.js +4 -0
  36. package/dist/chunks/{publish-quick-12hh8926.js → publish-quick-m9vkhahq.js} +3 -3
  37. package/dist/chunks/publish-workspace-ktk9h536.js +4 -0
  38. package/dist/chunks/quick-search-2f47fxcw.js +4 -0
  39. package/dist/chunks/references-5w6ajjv7.js +4 -0
  40. package/dist/chunks/right-panel-kz0a6byf.js +4 -0
  41. package/dist/chunks/source-control-1phx90zk.js +4 -0
  42. package/dist/chunks/{studio-qevf5z9d.js → studio-07k0geap.js} +4 -4
  43. package/dist/chunks/{studio-k5n4es74.js → studio-0g2sm01j.js} +4 -4
  44. package/dist/chunks/{studio-7q6jdd4h.js → studio-0hr000ba.js} +4 -4
  45. package/dist/chunks/{studio-e4rq6x0q.js → studio-1wyp7dt5.js} +4 -4
  46. package/dist/chunks/{studio-vtey9w98.js → studio-20ap8dds.js} +4 -4
  47. package/dist/chunks/studio-291gqh98.js +5 -0
  48. package/dist/chunks/{studio-32d8wyxq.js → studio-37twdaf7.js} +30 -30
  49. package/dist/chunks/{studio-8pne0rx4.js → studio-4nkm4404.js} +4 -4
  50. package/dist/chunks/{studio-z1p91z5a.js → studio-4smcnv33.js} +4 -4
  51. package/dist/chunks/{studio-s4fq9jht.js → studio-4zqfw5ha.js} +4 -4
  52. package/dist/chunks/{studio-n4qq1n57.js → studio-56egy6vf.js} +4 -4
  53. package/dist/chunks/{studio-t6dqnnft.js → studio-5dmgmyw4.js} +4 -4
  54. package/dist/chunks/{studio-9ff0vqff.js → studio-5e7p1vgd.js} +4 -4
  55. package/dist/chunks/{studio-4qg61g9j.js → studio-5m0w815d.js} +4 -4
  56. package/dist/chunks/{studio-0rg30pvs.js → studio-695k95bw.js} +4 -4
  57. package/dist/chunks/{studio-spza69tb.js → studio-6vwvshw8.js} +5 -5
  58. package/dist/chunks/{studio-ae7a69jc.js → studio-76t560kn.js} +5 -5
  59. package/dist/chunks/{studio-9gzvypw4.js → studio-7823f0g8.js} +4 -4
  60. package/dist/chunks/{studio-gskkgfe3.js → studio-7vb997ff.js} +4 -4
  61. package/dist/chunks/{studio-sc35ttdk.js → studio-8486jn4r.js} +4 -4
  62. package/dist/chunks/{studio-a6e5fzve.js → studio-848rk4p1.js} +4 -4
  63. package/dist/chunks/{studio-tyzgte21.js → studio-8jb31dcf.js} +4 -4
  64. package/dist/chunks/{studio-jr30g4ae.js → studio-8qejv8yf.js} +4 -4
  65. package/dist/chunks/studio-8x8616xd.js +5 -0
  66. package/dist/chunks/{studio-kyw47pet.js → studio-9b7177jq.js} +4 -4
  67. package/dist/chunks/{studio-gk9yk8dj.js → studio-9cp96v90.js} +6 -6
  68. package/dist/chunks/{studio-h4jbgne2.js → studio-9rcbvksg.js} +6 -6
  69. package/dist/chunks/{studio-3hpcawh8.js → studio-a3s6frde.js} +3 -3
  70. package/dist/chunks/{studio-tfmhnwyr.js → studio-ahf3cspq.js} +3 -3
  71. package/dist/chunks/{studio-6rbaedw2.js → studio-bkmv1h3e.js} +6 -6
  72. package/dist/chunks/{studio-4j35hgsw.js → studio-brdp85q7.js} +4 -4
  73. package/dist/chunks/{studio-hcy9zeac.js → studio-cgb97rwv.js} +4 -4
  74. package/dist/chunks/{studio-gczve8zf.js → studio-ch8gt8vt.js} +3 -3
  75. package/dist/chunks/studio-cqf1k4qk.js +5 -0
  76. package/dist/chunks/{studio-myb4mf0h.js → studio-cvz0e00f.js} +4 -4
  77. package/dist/chunks/{studio-nqexty8x.js → studio-dbgv4fv9.js} +14 -14
  78. package/dist/chunks/{studio-8hf8qcm1.js → studio-dy2xtt7a.js} +4 -4
  79. package/dist/chunks/{studio-c88gq88j.js → studio-eesyjg7h.js} +5 -5
  80. package/dist/chunks/studio-et6t8g4m.js +4 -0
  81. package/dist/chunks/{studio-qs5fmhtj.js → studio-f2j9et3h.js} +8 -8
  82. package/dist/chunks/{studio-79r8msnr.js → studio-fep7hr66.js} +4 -4
  83. package/dist/chunks/{studio-1cfyd1ys.js → studio-fyf7j57j.js} +3 -3
  84. package/dist/chunks/{studio-mkw17ngg.js → studio-g5prntab.js} +4 -4
  85. package/dist/chunks/{studio-x2trkhk5.js → studio-ga77mf07.js} +4 -4
  86. package/dist/chunks/{studio-yjh9gddd.js → studio-ggm7zf70.js} +5 -5
  87. package/dist/chunks/studio-h7gy12h2.js +5 -0
  88. package/dist/chunks/{studio-qd0cycm4.js → studio-hsr3k06v.js} +5 -5
  89. package/dist/chunks/{studio-ztppbam0.js → studio-j933k8nr.js} +4 -4
  90. package/dist/chunks/studio-jgbvqcgh.js +5 -0
  91. package/dist/chunks/{studio-xzgp0cp7.js → studio-jh6t5qz4.js} +4 -4
  92. package/dist/chunks/{studio-k6hbx2fc.js → studio-jw0q5j6k.js} +4 -4
  93. package/dist/chunks/studio-k4xc5g6h.js +5 -0
  94. package/dist/chunks/{studio-fg4fj9ec.js → studio-mwnmzx7g.js} +6 -6
  95. package/dist/chunks/{studio-ekzbgnjp.js → studio-nf0pqpbj.js} +4 -4
  96. package/dist/chunks/{studio-sm2f0sc6.js → studio-p0nf2e1f.js} +5 -5
  97. package/dist/chunks/{studio-by8x0jvc.js → studio-pd9dsqpq.js} +4 -4
  98. package/dist/chunks/{studio-cg54vtet.js → studio-pmzg17fj.js} +4 -4
  99. package/dist/chunks/{studio-ht81xjkr.js → studio-pzfa2vmb.js} +4 -4
  100. package/dist/chunks/{studio-9179bsm7.js → studio-qyb5bebs.js} +7 -7
  101. package/dist/chunks/{studio-aghsg0ds.js → studio-rf8d6p9f.js} +6 -6
  102. package/dist/chunks/{studio-9ra9e7m4.js → studio-rt498t2v.js} +4 -4
  103. package/dist/chunks/{studio-trcfer2b.js → studio-s0fg2wav.js} +4 -4
  104. package/dist/chunks/studio-sd07xva5.js +6 -0
  105. package/dist/chunks/{studio-apapy17g.js → studio-skynbac3.js} +2 -2
  106. package/dist/chunks/{studio-nvfa137z.js → studio-t3j8htp7.js} +5 -5
  107. package/dist/chunks/{studio-ry4789ng.js → studio-thj81e98.js} +6 -6
  108. package/dist/chunks/{studio-nfwacw31.js → studio-tpy3rdxn.js} +4 -4
  109. package/dist/chunks/{studio-g45r5vm8.js → studio-va0e63sk.js} +4 -4
  110. package/dist/chunks/{studio-kqh7fxn6.js → studio-vcz63n42.js} +4 -4
  111. package/dist/chunks/studio-vffwe9k7.js +5 -0
  112. package/dist/chunks/{studio-nm86874b.js → studio-vjhej0w5.js} +123 -123
  113. package/dist/chunks/{studio-ws2r1d7e.js → studio-vxjap704.js} +4 -4
  114. package/dist/chunks/{studio-9ndgd55w.js → studio-w67vfgy5.js} +4 -4
  115. package/dist/chunks/{studio-ajw4k8hp.js → studio-x2metr13.js} +3 -3
  116. package/dist/chunks/{studio-14hh60j8.js → studio-xebavr9s.js} +4 -4
  117. package/dist/chunks/{studio-4rgem12q.js → studio-yg5n49za.js} +4 -4
  118. package/dist/chunks/{studio-6k9djnxw.js → studio-yhz5b313.js} +4 -4
  119. package/dist/chunks/{studio-nfmpmkqb.js → studio-zacvfm31.js} +4 -4
  120. package/dist/chunks/{studio-ywf9y1e2.js → studio-zsjpsw08.js} +4 -4
  121. package/dist/chunks/{studio-0nefxhar.js → studio-zxm98z2m.js} +6 -6
  122. package/dist/chunks/{tsMode-byje4a01.js → tsMode-6vwhy6ty.js} +5 -5
  123. package/dist/chunks/workspace-d65bz1qk.js +4 -0
  124. package/dist/chunks/workspace-home-vbg9b3jh.js +4 -0
  125. package/dist/chunks/{ws-client-h09h6sqg.js → ws-client-zcxkfgmf.js} +3 -3
  126. package/dist/iframe-entry.js +8 -8
  127. package/dist/manifest.json +74 -74
  128. package/dist/studio.js +86 -84
  129. package/package.json +11 -11
  130. package/src/canvas/iframe-editable-root.ts +32 -2
  131. package/src/format/format-host.ts +1 -1
  132. package/src/github/github-auth-status.ts +2 -2
  133. package/src/media/media-library.ts +73 -3
  134. package/src/packages/ensure-deps.ts +5 -5
  135. package/src/packages/pull-package-sync.ts +4 -4
  136. package/src/panels/activity-panel.ts +1 -1
  137. package/src/platform-errors.ts +17 -1
  138. package/src/platforms/cloud.ts +62 -34
  139. package/src/publish/publish-changes.ts +136 -4
  140. package/src/settings/extension-commands.ts +1 -1
  141. package/src/settings/extension-rows.ts +1 -6
  142. package/src/settings/extensions-section.ts +3 -6
  143. package/src/surfaces/block-action-bar.json +1 -3
  144. package/src/surfaces/media-library.json +35 -0
  145. package/src/surfaces/media-library.ts +2 -0
  146. package/src/surfaces/menu.ts +62 -1
  147. package/src/surfaces/settings-packages.ts +1 -1
  148. package/src/types.ts +24 -8
  149. package/src/ui/layers.ts +1 -1
  150. package/src/ui/progress-modal.ts +3 -3
  151. package/dist/chunks/adapter-ay13gema.js +0 -4
  152. package/dist/chunks/cf-settings-5y04810c.js +0 -4
  153. package/dist/chunks/components-3vf75n83.js +0 -4
  154. package/dist/chunks/content-source-4f2raf4a.js +0 -4
  155. package/dist/chunks/editor-645krvtz.js +0 -4
  156. package/dist/chunks/entry-commands-3qmv8wkr.js +0 -4
  157. package/dist/chunks/file-ops-kkhp9ma7.js +0 -4
  158. package/dist/chunks/files-yswdhxrf.js +0 -4
  159. package/dist/chunks/format-host-4g8ex6bz.js +0 -4
  160. package/dist/chunks/fs-events-z9gpvc6t.js +0 -4
  161. package/dist/chunks/grid-open-fm4j183c.js +0 -4
  162. package/dist/chunks/iframe-host-q7fedsmr.js +0 -4
  163. package/dist/chunks/index-pt4wh98x.js +0 -4
  164. package/dist/chunks/jx-validate-19y62knt.js +0 -4
  165. package/dist/chunks/layers-panel-1qvc83y9.js +0 -4
  166. package/dist/chunks/layers-qf0bc7ze.js +0 -4
  167. package/dist/chunks/lit-html-wyqw04y2.js +0 -4
  168. package/dist/chunks/media-library-f9d5qcjb.js +0 -4
  169. package/dist/chunks/media-picker-rsb1fmk2.js +0 -4
  170. package/dist/chunks/monaco-buffer-ak0raadw.js +0 -4
  171. package/dist/chunks/notify-4qj70q0x.js +0 -4
  172. package/dist/chunks/parse-n8dfxnqf.js +0 -4
  173. package/dist/chunks/platform-ehg6t9vd.js +0 -4
  174. package/dist/chunks/publish-panel-yhmda3cd.js +0 -4
  175. package/dist/chunks/publish-workspace-hx8qdv9p.js +0 -4
  176. package/dist/chunks/quick-search-r955m3q1.js +0 -4
  177. package/dist/chunks/references-8gxv0x7t.js +0 -4
  178. package/dist/chunks/right-panel-jarwqjpy.js +0 -4
  179. package/dist/chunks/source-control-84qt25m9.js +0 -4
  180. package/dist/chunks/studio-2bq7hheq.js +0 -5
  181. package/dist/chunks/studio-a9k86nq6.js +0 -5
  182. package/dist/chunks/studio-dvhxxxbd.js +0 -5
  183. package/dist/chunks/studio-fj6jzgxw.js +0 -5
  184. package/dist/chunks/studio-ge08zwpv.js +0 -5
  185. package/dist/chunks/studio-nr0kcqc6.js +0 -5
  186. package/dist/chunks/studio-psh8mwnw.js +0 -4
  187. package/dist/chunks/studio-tn7v8gey.js +0 -6
  188. package/dist/chunks/studio-y47090vq.js +0 -5
  189. package/dist/chunks/workspace-7q4arnt3.js +0 -4
  190. package/dist/chunks/workspace-home-ge027kr6.js +0 -4
@@ -1,4 +0,0 @@
1
- import{k2,Rk}from"./studio-tn7v8gey.js";import"./studio-qd0cycm4.js";import"./studio-sm2f0sc6.js";import"./studio-fj6jzgxw.js";import"./studio-xzgp0cp7.js";import"./studio-k6hbx2fc.js";import"./studio-nfmpmkqb.js";import"./studio-s4fq9jht.js";import"./studio-9ff0vqff.js";import"./studio-ae7a69jc.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{Rk as registerLayersPanel,k2 as startLayerTitleEdit};
2
-
3
- //# debugId=F5D8D0CE9225B14C64756E2164756E21
4
- //# sourceMappingURL=layers-panel-1qvc83y9.js.map
@@ -1,4 +0,0 @@
1
- import{tt,f$,Ub,m$,qo,pC,xi,Zs,qb,g$}from"./studio-myb4mf0h.js";import"./studio-ajw4k8hp.js";import"./studio-qs5fmhtj.js";import"./studio-8pne0rx4.js";import"./studio-tfmhnwyr.js";import"./studio-psh8mwnw.js";export{qb as clearLayerSlot,Zs as getLayerSlot,f$ as initLayers,Ub as isModalOpen,m$ as isPopoverOpen,tt as layerHost,g$ as overlayIdleBlockers,qo as showConfirmDialog,xi as showPromptDialog,pC as showSaveDiscardDialog};
2
-
3
- //# debugId=3E1ED8836792A73C64756E2164756E21
4
- //# sourceMappingURL=layers-qf0bc7ze.js.map
@@ -1,4 +0,0 @@
1
- import{Vr,Uc,mt,b$,io}from"./studio-ajw4k8hp.js";export{b$ as _$LH,Vr as html,Uc as noChange,mt as nothing,io as render};
2
-
3
- //# debugId=1015D970555A7F2364756E2164756E21
4
- //# sourceMappingURL=lit-html-wyqw04y2.js.map
@@ -1,4 +0,0 @@
1
- import{tP,xw,O2,fS,_w,LT,$T,M2,nP,iP,mS,oP,IT}from"./studio-dvhxxxbd.js";import"./studio-ae7a69jc.js";import"./studio-cg54vtet.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{tP as MEDIA_HOME_MODE,M2 as applyMediaBrowse,mS as closeMediaPickDialog,O2 as deleteMediaFile,_w as detachMediaLibrary,$T as focusMediaHome,fS as mediaLibraryMounted,oP as openMediaPickDialog,LT as renderMediaLibrary,iP as requestMediaReplace,nP as requestMediaUpload,IT as resetMediaLibrary,xw as selectedEntry};
2
-
3
- //# debugId=1B85E04D283C816864756E2164756E21
4
- //# sourceMappingURL=media-library-f9d5qcjb.js.map
@@ -1,4 +0,0 @@
1
- import{DT,NT,Wu,kw,P2,vS,F2,yS,Hl,bm}from"./studio-cg54vtet.js";import"./studio-kqh7fxn6.js";import"./studio-vtey9w98.js";import"./studio-t6dqnnft.js";import"./studio-myb4mf0h.js";import"./studio-ajw4k8hp.js";import"./studio-qs5fmhtj.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{kw as invalidateMediaCache,DT as isMediaScanPath,Hl as mountMediaPicker,NT as onProjectMediaChange,P2 as openFullMediaPicker,yS as pickAndUpload,Wu as projectMediaFiles,vS as showMediaPickerPopover,bm as unmountMediaPicker,F2 as uploadAndAssign};
2
-
3
- //# debugId=88DBECDD754458E264756E2164756E21
4
- //# sourceMappingURL=media-picker-rsb1fmk2.js.map
@@ -1,4 +0,0 @@
1
- import{Kp,mv,gv,K$,Jd,Jp,Yd,Yp}from"./studio-4rgem12q.js";import"./studio-tfmhnwyr.js";export{Kp as BUFFER_COMMIT,Jd as bufferIsLive,Jp as bufferMovedOn,mv as bufferWrites,K$ as cancelBufferWrites,gv as commitBufferWrites,Yd as commitTabBuffers,Yp as tabBufferUnsaved};
2
-
3
- //# debugId=24FF16FC222AB9A964756E2164756E21
4
- //# sourceMappingURL=monaco-buffer-ak0raadw.js.map
@@ -1,4 +0,0 @@
1
- import{Zd,ea,C,Th,dl,tf,_v}from"./studio-tfmhnwyr.js";export{dl as clearProblems,Th as dismiss,C as notify,_v as problemCount,tf as problemFindings,ea as problems,Zd as toasts};
2
-
3
- //# debugId=EBC10BE25E1B2B1364756E2164756E21
4
- //# sourceMappingURL=notify-4qj70q0x.js.map
@@ -1,4 +0,0 @@
1
- import{te}from"./studio-psh8mwnw.js";export{te as errorMessage};
2
-
3
- //# debugId=D3614DDDB37A108F64756E2164756E21
4
- //# sourceMappingURL=parse-n8dfxnqf.js.map
@@ -1,4 +0,0 @@
1
- import{rf,sI,Ev,aI,p,_e}from"./studio-9ndgd55w.js";export{rf as canOpenProject,p as getPlatform,_e as hasPlatform,Ev as launcherSignal,aI as platformInFlight,sI as registerPlatform};
2
-
3
- //# debugId=CDDAFCE41C3095D264756E2164756E21
4
- //# sourceMappingURL=platform-ehg6t9vd.js.map
@@ -1,4 +0,0 @@
1
- import{wk,K2}from"./studio-6k9djnxw.js";import"./studio-nr0kcqc6.js";import"./studio-0nefxhar.js";import"./studio-nqexty8x.js";import"./studio-y47090vq.js";import"./studio-14hh60j8.js";import"./studio-myb4mf0h.js";import"./studio-ajw4k8hp.js";import"./studio-qs5fmhtj.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{K2 as openPublishPanel,wk as seedPublishConnected};
2
-
3
- //# debugId=4578D6069A04EAE964756E2164756E21
4
- //# sourceMappingURL=publish-panel-yhmda3cd.js.map
@@ -1,4 +0,0 @@
1
- import{nR,xk,o_,r_,_k}from"./studio-gczve8zf.js";import"./studio-a9k86nq6.js";import"./studio-ws2r1d7e.js";import"./studio-79r8msnr.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-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{r_ as detachPublishWorkspace,xk as focusPublishHome,o_ as publishWorkspaceMounted,_k as renderPublishWorkspace,nR as showPublishTab};
2
-
3
- //# debugId=D7F8A122C50D058864756E2164756E21
4
- //# sourceMappingURL=publish-workspace-hx8qdv9p.js.map
@@ -1,4 +0,0 @@
1
- import{Sk,Bg}from"./studio-z1p91z5a.js";import"./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{Sk as initQuickSearch,Bg as openQuickSearch};
2
-
3
- //# debugId=3681C735EE63CC3764756E2164756E21
4
- //# sourceMappingURL=quick-search-r955m3q1.js.map
@@ -1,4 +0,0 @@
1
- import{hh,Bd,La,k$,Sr,E$,Xb,T$,Qb}from"./studio-7q6jdd4h.js";import"./studio-psh8mwnw.js";import"./studio-9ndgd55w.js";export{Sr as invalidateUsages,La as loadUsages,E$ as onUsagesInvalidated,Bd as peekUsages,k$ as retryUsages,Qb as usageFiles,Xb as usageHeadline,T$ as usageWarning,hh as usagesSupported};
2
-
3
- //# debugId=620C7A34ED0773A364756E2164756E21
4
- //# sourceMappingURL=references-8gxv0x7t.js.map
@@ -1,4 +0,0 @@
1
- import{dR,Ck,J2,kk,zg,Dl,Su}from"./studio-hcy9zeac.js";import"./studio-qd0cycm4.js";import"./studio-sm2f0sc6.js";import"./studio-nvfa137z.js";import"./studio-xzgp0cp7.js";import"./studio-ht81xjkr.js";import"./studio-6rbaedw2.js";import"./studio-nfmpmkqb.js";import"./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-ae7a69jc.js";import"./studio-cg54vtet.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";import"./studio-k1wvtp03.js";export{Dl as inspectorTab,Ck as mount,zg as render,kk as restingInspectorTab,Su as setInspectorTab,dR as stripOf,J2 as unmount};
2
-
3
- //# debugId=7DCA18538EC5265964756E2164756E21
4
- //# sourceMappingURL=right-panel-jarwqjpy.js.map
@@ -1,4 +0,0 @@
1
- import{Ws,rT,cS,dS,bb,wa,sT,aT,lT,cT,dT,uT,hT,pT,fT,mT,gT,bT,vT,yT,uS,wT,xT,ww,_T,ST,vb,CT}from"./studio-ws2r1d7e.js";import"./studio-79r8msnr.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-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{ST as armGitPoll,uS as changeRow,yT as checkoutBranch,vb as cleanupSourceControl,dS as cloneRepository,xT as commitRow,vT as createBranch,bT as discardFile,cS as fetchGitLog,hT as fetchRemote,wT as groupFilesByComponent,gT as includeNewChanges,_T as lastUpdatedLabel,lT as loadDiffForLens,rT as noteFileSaved,uT as openFileComparison,wa as platformHostsGit,sT as platformOpensPullRequests,bb as platformSupportsClone,pT as pullRemote,Ws as refreshGitStatus,CT as registerSourceControlCommands,ww as relativeDate,dT as runCloneRepository,mT as setAllIncluded,fT as setIncluded,cT as setSourceControlDeps,aT as statusTag};
2
-
3
- //# debugId=DB3FA1E26A1C157464756E2164756E21
4
- //# sourceMappingURL=source-control-84qt25m9.js.map
@@ -1,5 +0,0 @@
1
- import{_x,Yl,al,m,_i,jt}from"./studio-ztppbam0.js";import{fS,_w,LT}from"./studio-dvhxxxbd.js";import{Yk,Zk,ZR}from"./studio-aghsg0ds.js";import{o_,r_,_k}from"./studio-gczve8zf.js";var n={children:[],tagName:"div"},C2=new Set(Object.values(_x));function n_(e){return C2.has(e)}function bk(e){let o=Yl(e),r=m.tabs.get(o);if(r)return jt(o),r;return _i({capabilities:{modes:[_x[e]]},document:structuredClone(n),documentPath:null,id:o})}function vk(e,o){_i({background:!0,capabilities:{modes:[_x[e]]},document:structuredClone(n),documentPath:null,id:Yl(e),paneId:o})}function i_(e,o){let r=al(o.id);if(r==="media")return fS(e,o);if(r==="content")return Yk(e,o);return o_(e,o)}function Fg(e){_w(e),Zk(e),r_(e)}function yk(e,o){let{paneId:r}=e;if(i_(r,o))return;Fg(r);let t=al(o.id);if(t==="media"){LT(e,o);return}if(t==="content"){ZR(e,o);return}_k(e,o)}
2
- export{C2,n_,bk,vk,i_,Fg,yk};
3
-
4
- //# debugId=20CAC9A67B2FAB9564756E2164756E21
5
- //# sourceMappingURL=studio-2bq7hheq.js.map
@@ -1,5 +0,0 @@
1
- import{p,_e}from"./studio-9ndgd55w.js";import{ae}from"./studio-qs5fmhtj.js";import{C}from"./studio-tfmhnwyr.js";import{te}from"./studio-psh8mwnw.js";import{pO,Vn,Ce,ui}from"./studio-ztppbam0.js";import{km,h}from"./studio-nqexty8x.js";import{zl,Sb,Ri,Nd,SS}from"./studio-0nefxhar.js";import{Vs}from"./studio-9179bsm7.js";import{Ws,wa,sT}from"./studio-ws2r1d7e.js";import{as}from"./studio-trcfer2b.js";import{S}from"./studio-9ra9e7m4.js";import{le}from"./studio-k5n4es74.js";var g={attempts:6,delayMs:5000};function P(e,t){return`https://dash.cloudflare.com/${e}/pages/view/${t}`}async function k(e){if(e>0)await new Promise((t)=>{setTimeout(t,e)})}async function d(e={}){let t=Ri(),r=new AbortController,i=Vs({cancel:()=>{r.abort()},source:"Publish",status:"Starting…",steps:["Push to the remote","Ask Cloudflare for the deployment"],title:"Deploy"});i.step("Push to the remote");try{await p().gitPush({setUpstream:!0}),i.log("Pushed the current branch.")}catch(a){return i.log(te(a)),i.fail("Could not push to the remote.",{action:"git.push"}),!1}if(!t)return i.done("Pushed. No provider is connected, so nothing was asked to build it."),!0;i.step("Ask Cloudflare for the deployment");let n=e.attempts??g.attempts,s=e.delayMs??g.delayMs;for(let a=0;a<n;a+=1){if(r.signal.aborted)return!1;let o;try{o=await Sb(t)}catch(l){return i.log(te(l)),i.fail("Cloudflare did not answer.",{action:"publish.deploy"}),!1}if(o)return Nd(o),i.log(`${o.stage}: ${o.status} — ${o.url}`),i.done(`${o.stage}: ${o.status}`),!0;await k(s)}if(r.signal.aborted)return!1;return Nd(null),i.done("Pushed. Cloudflare has not reported a deployment yet."),!0}function x(){return[{category:"Publish",id:"publish.setUp",level:"project",menus:["commandbar/overflow","palette"],group:"8_publish",requires:"an open project on a platform that can reach the Cloudflare API",when:(e)=>e.project.open,enablement:(e)=>e.capability.publish,run:async()=>{let{openPublishPanel:e}=await (le("yhmda3cd"),import("./publish-panel-yhmda3cd.js"));e()},title:"Set Up Publishing"},{category:"Publish",id:"publish.deploy",level:"project",menus:["commandbar/overflow","palette"],group:"8_publish",requires:"a repository with a remote and a connected deploy provider, on a platform that can reach the Cloudflare API",when:(e)=>e.project.open,enablement:(e)=>e.project.isRepo&&Ri()!==void 0&&e.capability.publish,run:async()=>{await d()},title:"Deploy"},{category:"Publish",id:"publish.openDashboard",level:"project",menus:["commandbar/overflow","palette"],group:"8_publish",requires:"a connected deploy provider, on a platform that can reach the Cloudflare API",when:(e)=>e.project.open,enablement:(e)=>Ri()!==void 0&&e.capability.publish,run:()=>{let e=Ri();if(e)window.open(P(e.accountId,e.projectName),"_blank","noopener")},title:"Open Deployment Dashboard"},{category:"Publish",id:"publish.quick",level:"project",menus:["commandbar/overflow","palette"],group:"8_publish",requires:"a project tracked by git",when:(e)=>e.project.open,enablement:(e)=>e.project.isRepo,run:async()=>{let{openQuickPublish:e}=await (le("12hh8926"),import("./publish-quick-12hh8926.js"));e()},title:"Quick Publish"},{args:Ce({tab:ui(km,"Which view of the Publish workspace to show: review (the changes and where they go), deploys (the live site and its deployments), branches, or hosting (where the project is saved and hosted). Defaults to the view the workspace was left on.")},[]),category:"Publish",id:"publish.open",level:"project",menus:["never"],group:"8_publish",requires:"an open project",enablement:(e)=>e.project.open,run:async(e,t)=>{let r=t.tab===void 0?null:Vn("publish.open",t,"tab",km),i=ae();if(!i)throw Error(`command "publish.open" needs the window's command registry`);if(await i.run("view.setWorkspace",{workspace:"publish"}),r!==null){let{showPublishTab:n}=await (le("hx8qdv9p"),import("./publish-workspace-hx8qdv9p.js"));n(r)}},title:"Show Publish"}]}function iR(e){e.registerAll(x())}function u(){let e=h.git.status?.remotes;return Array.isArray(e)&&e.length>0?e[0]??"":""}function c(){return h.git.branches?.current||h.git.status?.branch||""}function b(){return Ri()!==void 0&&zl()&&u()!==""}function D(){let e=Ri();return e?.productionUrl??e?.projectName??""}function y(e){return`studio/${as(e).replaceAll(/-+/g,"-").replaceAll(/^-|-$/g,"").slice(0,48).replace(/-$/,"")||"changes"}`}function f(){return h.git.branches?.defaultBranch??""}function jg(){if(!sT())return"This host cannot open a pull request yet. Publish live, or create a branch under Branches and push it.";if(wa()){let e=f(),t=c();if(!e||!t||t===e)return`Every commit to ${e||"the default branch"} on this host is live. Create a branch under Branches and send it for review from there.`;return""}if(u()==="")return"A pull request needs a remote. Create the GitHub repository under Hosting first.";return""}function j(){let e=c()||"the current branch";if(b())return`Commits to ${e} and deploys to ${D()}.`;if(wa())return`Commits to ${e} on GitHub.`;let t=u();return t?`Commits to ${e} and pushes it to ${t}.`:`Commits to ${e}. This repository has no remote, so nothing leaves this machine.`}function A(){let e=c()||"the current branch";if(wa())return`Commits to ${e} and opens a pull request from it into ${f()||"the default branch"}.`;let t=h.git.commitMessage.trim();return`Saves to ${t?y(t):"a new studio/ branch"}, pushes it and opens a pull request into ${e}.`}function Ey(e){let t=jg();return[{checked:e==="live"?"true":"false",disabled:!1,label:"Publish live",note:j(),reason:"",value:"live"},{checked:e==="review"?"true":"false",disabled:t!=="",label:"Send for review",note:A(),reason:t,value:"review"}]}function qf(e){return e==="review"&&jg()!==""?"live":e}function oR(e){if(e==="review")return"Send for review";if(b())return"Publish live";return wa()||u()!==""?"Commit and push":"Commit"}function w(e){let t=h.git.status?.files??[];return e?t:t.filter((r)=>Boolean(r.staged))}function Gf(e,t=!1){let{status:r}=h.git;if(!S||!r?.isRepo)return"Track this project with git first.";if(h.git.loading)return"Source control is busy.";if(r.files.length===0)return"There is nothing to publish.";if(w(t).length===0)return"Include at least one change.";if(!h.git.commitMessage.trim())return"Write a summary of the change first.";return e==="review"?jg():""}function v(){return(h.git.status?.files??[]).map((e)=>`${e.status}:${e.path}`).join("|")}function s_(){return _e()&&p().buildSite!==void 0}async function rR(){if(!s_()||h.publish.build.state==="running")return;let e=p().buildSite;if(!e)return;h.publish.build.state="running",h.publish.build.text="Building the site…",h.publish.build.for=v();try{let t=await e();if(t.errors.length>0)h.publish.build.state="failed",h.publish.build.text=`Built with ${t.errors.length} error(s): ${t.errors[0]}`;else h.publish.build.state="passed",h.publish.build.text=t.mode==="live"?`${t.routes} page(s) render. This host previews the working tree; it does not build.`:`Site builds: ${t.routes} page(s).`}catch(t){h.publish.build.state="failed",h.publish.build.text=`The site could not be built: ${te(t)}`}}function Hg(){let e=[],t=SS();if(e.push(t?{command:t.command,key:"deploy",state:t.state==="unknown"?"unknown":"todo",text:`${t.label}: ${t.detail}`}:{command:"",key:"deploy",state:"done",text:"Everything this project needs to ship is in place."}),s_()){let r=h.publish.build.for===v()||h.publish.build.state==="running";e.push(r&&h.publish.build.state!=="idle"?{command:"",key:"build",state:h.publish.build.state==="passed"?"done":h.publish.build.state==="failed"?"failed":"running",text:h.publish.build.text}:{command:"",key:"build",state:"unknown",text:"The site has not been built with these changes."})}return e}function sR(e){let t=e.filter((r)=>r.state!=="done");if(t.length===0)return"Checks passed: ready to publish.";return t.map((r)=>r.text).join(" · ")}function aR(){return h.publish.review.number>0?{number:h.publish.review.number,url:h.publish.review.url}:null}function R(e){if(!h.git.commitMessage)h.git.commitMessage=e}async function Ty(e,t={}){let r=t.includeAll??!1,i=Gf(e,r);if(i)return h.git.error=i,!1;let n=h.git.commitMessage.trim(),s=p();h.git.commitMessage="",h.git.loading=!0,h.git.error=null,await pO();let a=!1,o=!0;try{if(r){let l=w(!0).filter((m)=>!m.staged).map((m)=>m.path);if(l.length>0)await s.gitStage(l)}if(e==="review")await B(s,n,()=>{a=!0});else if(await s.gitCommit(n),a=!0,b())h.git.loading=!1,o=await d();else if(!wa()&&u()!=="")await s.gitPush();return await Ws(),o}catch(l){if(h.git.error=te(l),h.git.loading=!1,!a)R(n);return!1}}async function q(e,t,r){if(wa()){await e.gitCommit(t),r();let s=f();return s?{base:s,title:t}:{title:t}}let i=c(),n=y(t);return await e.gitCreateBranch(n),await e.gitCommit(t),r(),await e.gitPush({setUpstream:!0}),i?{base:i,head:n,title:t}:{head:n,title:t}}async function B(e,t,r){let i=e.createPullRequest;if(!i)throw Error(jg());let n=await i(await q(e,t,r));h.publish.review.number=n.number,h.publish.review.url=n.url,C.success(`Pull request #${n.number} opened for review.`,{detail:n.url,key:"publish.review",source:"Publish"})}
2
- export{iR,jg,Ey,qf,oR,Gf,s_,rR,Hg,sR,aR,Ty};
3
-
4
- //# debugId=CFBF8664A829941A64756E2164756E21
5
- //# sourceMappingURL=studio-a9k86nq6.js.map
@@ -1,5 +0,0 @@
1
- import{te}from"./studio-psh8mwnw.js";import{p}from"./studio-9ndgd55w.js";import{g,C}from"./studio-tfmhnwyr.js";import{hh,Sr,E$}from"./studio-7q6jdd4h.js";import{Ot,Nt}from"./studio-qs5fmhtj.js";import{Ue,wi,ft,T,R,Jt,tt}from"./studio-myb4mf0h.js";import{m,u,Kd}from"./studio-ztppbam0.js";import{zd}from"./studio-by8x0jvc.js";import{He}from"./studio-t6dqnnft.js";import{zc,_a,XL,dA,QL,Sa,hA,pA,Fb,tr}from"./studio-vtey9w98.js";import{Ow,Gu}from"./studio-9179bsm7.js";import{NT,Wu}from"./studio-cg54vtet.js";import{jT,HT,BT,zT,_b}from"./studio-4qg61g9j.js";import{bp}from"./studio-ae7a69jc.js";import{Rd,Dd,qu,_p,Aw}from"./studio-kqh7fxn6.js";import{n,_}from"./studio-ywf9y1e2.js";import{le}from"./studio-k5n4es74.js";var D=[{key:"all",label:"All media"},{key:"image",label:"Images"},{key:"video",label:"Video"},{key:"audio",label:"Audio"},{key:"document",label:"Documents"},{key:"font",label:"Fonts"},{key:"unused",label:"Unused"}],pS=D.map((e)=>e.key);function ae(e){return pS.some((t)=>t===e)}function F(e){return D.find((t)=>t.key===e)?.label??"All media"}var K=[{key:"newest",label:"Newest"},{key:"name",label:"Name"},{key:"size",label:"Size"}],Ne=K.map((e)=>e.key);function re(e){return Ne.some((t)=>t===e)}function z(e,t,i){switch(t){case"all":return!0;case"unused":return i!==null&&i.has(e.file);default:return e.kind===t}}function U(e,t){let i=t.trim().toLowerCase();return i===""||e.name.toLowerCase().includes(i)}function W(e,t){return e.filter((a)=>z(a,t.filter,t.unused)&&U(a,t.query)).toSorted((a,r)=>je(t.sort,a,r)||a.file.localeCompare(r.file))}function je(e,t,i){switch(e){case"name":return t.name.localeCompare(i.name,void 0,{numeric:!0,sensitivity:"base"});case"size":return(i.bytes??-1)-(t.bytes??-1);default:return(i.modified??"").localeCompare(t.modified??"")}}function ne(e,t){let i={all:e.length,audio:0,document:0,font:0,image:0,unused:t===null?null:e.filter((a)=>t.has(a.file)).length,video:0};for(let a of e)i[a.kind]=(i[a.kind]??0)+1;return i}var Ce=132,ie=12;function oe(e){return Math.max(1,Math.floor((e+ie)/(Ce+ie)))}function se(e,t,i,a,r=!1){if(a===0)return null;let o=Math.min(Math.max(e,0),a-1),l=o-o%i,c;switch(t){case"ArrowRight":{c=o+1;break}case"ArrowLeft":{c=o-1;break}case"ArrowDown":{c=o+i;break}case"ArrowUp":{c=o-i;break}case"Home":{c=r?0:l;break}case"End":{c=r?a-1:Math.min(l+i-1,a-1);break}default:return null}return c<0||c>=a?o:c}var de={$schema:"https://jxsuite.com/schema/v1",$id:"StudioMediaLibrary",$description:"The Media workspace's library (`specs/studio.md` §22.6): the project's media as filters, a grid and the selected file's detail. ONE document in two modes. In `manage` it is the Media home tab, with Replace, Open in viewer and Delete under the detail; in `pick` it is the full-size picker inside a `jx-dialog` (`media-pick-dialog.json`), and the dialog's own footer answers Cancel or Use <file>. `media/media-library.ts` keeps every decision (which files a filter keeps, the sort, what a count may claim, where an arrow lands, what Replace writes) and hands this document strings and discriminants. **Unused is drawn with no number until the usage sweep has settled**, and Missing alt text and tags are not drawn at all: each needs a store that does not exist, and a filter that cannot be answered is not shipped as one that always answers nothing.",tagName:"div",attributes:{part:"media-library","data-jx-region":"${state.region}","data-mode":"${state.mode}","data-drop":"${state.dropActive}"},style:{$description:"Three columns over the whole stage: the filters, the grid with its toolbar, and the selected file's detail. Fills the pane's stage by its own geometry, as the workspace home does: the stage is `position: relative` (`pane-grid.json`). In pick mode the same columns fill the dialog's body instead, so the root's box is the only thing that differs between the two modes.",position:"absolute",inset:"0",display:"grid",gridTemplateColumns:"200px minmax(0, 1fr) 300px",boxSizing:"border-box",fontFamily:"var(--jx-font-sans)",fontSize:"var(--jx-text-md)",color:"var(--fg)",background:"var(--bg)",'&[data-mode="pick"]':{$description:"Inside a dialog there is no stage to fill: the box is the dialog body's, at a height the dialog can scroll within.",position:"relative",inset:"auto",height:"min(70vh, 620px)",gridTemplateColumns:"150px minmax(0, 1fr) 210px"},'&[data-drop="true"]':{$description:"The drop affordance is a STATE the flow holds, not a class a handler adds and forgets to take off.",outline:"2px dashed var(--accent)",outlineOffset:"-4px"},'& [part="filters"]':{display:"flex",flexDirection:"column",gap:"2px",padding:"var(--jx-space-3) var(--jx-space-2)",borderRight:"1px solid var(--border)",background:"var(--bg-panel)",overflowY:"auto"},'& [part="filters-heading"]':{margin:"0",padding:"var(--jx-space-2) var(--jx-space-2) var(--jx-space-1)",fontSize:"var(--jx-text-xs)",fontWeight:"600",letterSpacing:"0.06em",textTransform:"uppercase",color:"var(--fg-dim)"},'& [part="filter"]':{display:"flex",alignItems:"center",gap:"var(--jx-space-2)",height:"30px",padding:"0 var(--jx-space-2)",border:"none",borderRadius:"var(--radius)",background:"none",color:"var(--fg)",font:"inherit",textAlign:"left",cursor:"pointer"},'& [part="filter"]:hover':{background:"var(--hover-bg)"},'& [part="filter"][aria-pressed="true"]':{background:"color-mix(in srgb, var(--accent) 16%, transparent)",color:"var(--fg)",fontWeight:"600"},'& [part="filter"]:focus-visible':{outline:"var(--jx-focus-ring)",outlineOffset:"-2px"},'& [part="filter-count"]':{marginLeft:"auto",fontSize:"var(--jx-text-xs)",color:"var(--fg-dim)",fontWeight:"400"},'& [part="main"]':{display:"flex",flexDirection:"column",minWidth:"0",minHeight:"0"},'& [part="toolbar"]':{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"var(--jx-space-3)",padding:"var(--jx-space-3) var(--jx-space-4)",borderBottom:"1px solid var(--border)"},'& [part="title"]':{margin:"0 auto 0 0",fontSize:"var(--jx-text-lg)",fontWeight:"600"},'& [part="search"]':{width:"220px"},'& [part="sort"]':{width:"130px"},'& [part="upload"], & [part="empty-upload"]':{$description:"A LABEL around the file picker, not a button that clicks a hidden one: the picker is the control, so it takes focus, Enter opens it and a screen reader announces a file upload. A plain element because a label forwards a click to the input it contains and a custom element between the two would break that.",position:"relative",display:"inline-flex",alignItems:"center",gap:"6px",height:"28px",padding:"0 var(--jx-space-3)",border:"1px solid var(--border)",borderRadius:"var(--radius)",background:"var(--bg-panel)",color:"var(--fg)",font:"inherit",cursor:"pointer",":hover":{background:"var(--hover-bg)"},":has(:focus-visible)":{outline:"var(--jx-focus-ring)",outlineOffset:"2px"}},'& [part="upload-input"], & [part="replace-input"]':{$description:"Out of the way but still FOCUSABLE: `display: none` would take the control out of the tab order, and the label around it draws the focus ring for it.",position:"absolute",width:"1px",height:"1px",opacity:"0",pointerEvents:"none"},'& [part="upload-glyph"]':{"--jx-icon-size":"16px"},'& [part="body"]':{flex:"1",minHeight:"0",overflowY:"auto",padding:"var(--jx-space-4)"},'& [part="grid"]':{$description:"auto-fill over a minimum tile width; `media/media-library-model.ts` `gridColumns` does the same arithmetic, so ArrowDown lands on the tile drawn under the current one. Keep the two numbers in step.",display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(132px, 1fr))",gap:"12px",alignContent:"start"},'& [part="tile"]':{display:"flex",flexDirection:"column",gap:"4px",padding:"4px",borderRadius:"var(--jx-radius-md, 6px)",border:"2px solid transparent",cursor:"pointer",minWidth:"0",outline:"none"},'& [part="tile"]:hover':{background:"var(--hover-bg)"},'& [part="tile"][aria-selected="true"]':{borderColor:"var(--accent)"},'& [part="tile"]:focus-visible':{outline:"var(--jx-focus-ring)",outlineOffset:"2px"},'& [part="thumb"]':{display:"flex",alignItems:"center",justifyContent:"center",aspectRatio:"4 / 3",borderRadius:"var(--radius)",background:"var(--bg-input)",overflow:"hidden",color:"var(--fg-dim)","--jx-icon-size":"28px"},'& [part="thumb-img"]':{width:"100%",height:"100%",objectFit:"cover"},'& [part="tile-name"]':{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"var(--jx-text-sm)"},'& [part="tile-caption"]':{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"var(--jx-text-xs)",color:"var(--fg-dim)",minHeight:"1em"},'& [part="empty"]':{display:"flex",flexDirection:"column",alignItems:"center",gap:"var(--jx-space-3)",padding:"48px var(--jx-space-6)",textAlign:"center",color:"var(--fg-dim)","--jx-icon-size":"40px"},'& [part="empty-title"]':{margin:"0",fontSize:"var(--jx-text-lg)",fontWeight:"600",color:"var(--fg)"},'& [part="empty-detail"]':{margin:"0",maxWidth:"42ch",lineHeight:"1.5"},'& [part="detail"]':{display:"flex",flexDirection:"column",gap:"var(--jx-space-3)",padding:"var(--jx-space-4)",borderLeft:"1px solid var(--border)",background:"var(--bg-panel)",overflowY:"auto",minWidth:"0"},'& [part="detail-hint"]':{margin:"auto 0",textAlign:"center",color:"var(--fg-dim)"},'& [part="detail-preview"]':{display:"flex",alignItems:"center",justifyContent:"center",minHeight:"140px",maxHeight:"220px",borderRadius:"var(--radius)",background:"var(--bg-input)",overflow:"hidden",color:"var(--fg-dim)","--jx-icon-size":"40px"},'& [part="preview-img"], & [part="preview-video"]':{maxWidth:"100%",maxHeight:"220px",objectFit:"contain"},'& [part="preview-audio"]':{width:"100%"},'& [part="preview-specimen"]':{$description:"The viewer's specimen at a side pane's size. The face arrives as the `@font-face` the flow writes under a family name generated from the path (`media/media-pane.ts` `specimenOf`); the element carries only that name, as a custom property, and the fallback stack is a rule, here.",display:"flex",flexDirection:"column",gap:"var(--jx-space-2)",padding:"var(--jx-space-4)",maxWidth:"100%",color:"var(--fg)",fontFamily:"var(--jx-specimen-family, system-ui), system-ui, sans-serif"},'& [part="specimen-line"]':{margin:"0",lineHeight:"1.3",overflowWrap:"anywhere"},'& [part="specimen-line"][data-size="32"]':{fontSize:"32px"},'& [part="specimen-line"][data-size="14"]':{fontSize:"var(--jx-text-md)"},'& [part="detail-name"]':{margin:"0",fontSize:"var(--jx-text-md)",fontWeight:"600",overflowWrap:"anywhere"},'& [part="facts"]':{margin:"0",color:"var(--fg-dim)",fontSize:"var(--jx-text-sm)"},'& [part="group-title"]':{margin:"0",fontSize:"var(--jx-text-xs)",fontWeight:"600",color:"var(--fg-dim)"},'& [part="url"]':{display:"flex",alignItems:"center",gap:"var(--jx-space-2)",minWidth:"0"},'& [part="url-value"]':{flex:"1",minWidth:"0",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--jx-font-mono)",fontSize:"var(--jx-text-sm)"},'& [part="usage"]':{display:"flex",flexDirection:"column",gap:"var(--jx-space-1)"},'& [part="usage-headline"]':{margin:"0",fontSize:"var(--jx-text-sm)"},'& [part="usage-list"]':{margin:"0",padding:"0",listStyle:"none",display:"flex",flexDirection:"column",gap:"2px"},'& [part="usage-row"]':{display:"flex",alignItems:"center",gap:"var(--jx-space-2)"},'& [part="usage-link"]':{flex:"1",minWidth:"0",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",border:"none",background:"none",padding:"0",color:"var(--accent)",font:"inherit",fontSize:"var(--jx-text-sm)",textAlign:"left",cursor:"pointer",":hover":{textDecoration:"underline"},":focus-visible":{outline:"var(--jx-focus-ring)"}},'& [part="usage-count"]':{fontSize:"var(--jx-text-xs)",color:"var(--fg-dim)"},'& [part="actions"]':{display:"flex",flexWrap:"wrap",gap:"var(--jx-space-2)",marginTop:"var(--jx-space-2)"},'& [part="replace"]':{position:"relative",display:"inline-flex",alignItems:"center",height:"28px",padding:"0 var(--jx-space-3)",border:"1px solid var(--border)",borderRadius:"var(--radius)",background:"var(--bg)",color:"var(--fg)",font:"inherit",cursor:"pointer",":hover":{background:"var(--hover-bg)"},":has(:focus-visible)":{outline:"var(--jx-focus-ring)",outlineOffset:"2px"}}},ondragover:{$prototype:"Function",body:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/dragOver"},value:[]}],description:"A file dropped ANYWHERE on the library uploads, to the destination the Upload label names before the drop: public/media/."},ondragleave:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/dragOut"},value:[]}]},ondrop:{$prototype:"Function",body:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/drop"},value:[{$ref:"event#/dataTransfer/files"}]}]},children:[{tagName:"nav",attributes:{part:"filters","aria-label":"Media filters"},children:[{tagName:"h2",attributes:{part:"filters-heading"},textContent:"Library"},{$prototype:"Array",items:{$ref:"#/state/filters"},key:{$ref:"$map/item/key"},map:{tagName:"button",attributes:{part:"filter",type:"button","aria-pressed":"${$map.item.pressed}","data-filter":"${$map.item.key}"},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/setFilter"},value:[{$ref:"$map/item/key"}]}]},children:[{tagName:"span",attributes:{part:"filter-label"},textContent:"${$map.item.label}"},{tagName:"span",attributes:{part:"filter-count"},textContent:"${$map.item.count}"}]}}]},{tagName:"section",attributes:{part:"main","aria-labelledby":"${state.titleId}"},children:[{tagName:"header",attributes:{part:"toolbar"},children:[{tagName:"h2",attributes:{part:"title",id:"${state.titleId}"},textContent:"${state.title}"},{tagName:"jx-textfield",attributes:{part:"search"},$props:{type:"search",size:"sm",label:"Search media",placeholder:"Search by name…",autocomplete:"off",value:{$ref:"#/state/query"}},oninput:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/setQuery"},value:[{$ref:"event#/target/value"}]}]}},{tagName:"jx-select",attributes:{part:"sort"},$props:{label:"Sort",size:"sm",options:{$ref:"#/state/sortOptions"},value:{$ref:"#/state/sort"}},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/setSort"},value:[{$ref:"event#/target/value"}]}]}},{tagName:"label",attributes:{part:"upload",title:"${state.uploadHint}"},children:[{tagName:"input",attributes:{part:"upload-input",type:"file",multiple:!0,accept:"${state.uploadAccept}"},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/upload"},value:[{$ref:"event#/target"}]}],description:"The picker itself, so the destination in the label's tooltip is visible BEFORE the files are chosen. The flow takes the element rather than the file list because a file input that is not cleared refuses the same file twice."}},{tagName:"jx-icon",attributes:{part:"upload-glyph","aria-hidden":"true"},$props:{name:"upload-simple"}},{tagName:"span",textContent:"Upload"}]}]},{tagName:"div",attributes:{part:"body"},children:[{tagName:"div",attributes:{part:"grid-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/gridState"},cases:{loading:{tagName:"p",attributes:{part:"empty",role:"status"},textContent:"Reading the project's media…"},counting:{tagName:"p",attributes:{part:"empty",role:"status"},textContent:"${state.countingLabel}"},empty:{tagName:"div",attributes:{part:"empty"},children:[{tagName:"jx-icon",attributes:{part:"empty-glyph","aria-hidden":"true"},$props:{name:"image"}},{tagName:"p",attributes:{part:"empty-title"},textContent:"${state.emptyTitle}"},{tagName:"p",attributes:{part:"empty-detail"},textContent:"${state.emptyDetail}"},{tagName:"label",attributes:{part:"empty-upload",title:"${state.uploadHint}"},children:[{tagName:"input",attributes:{part:"upload-input",type:"file",multiple:!0,accept:"${state.uploadAccept}"},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/upload"},value:[{$ref:"event#/target"}]}],description:"The picker itself, so the destination in the label's tooltip is visible BEFORE the files are chosen. The flow takes the element rather than the file list because a file input that is not cleared refuses the same file twice."}},{tagName:"jx-icon",attributes:{part:"upload-glyph","aria-hidden":"true"},$props:{name:"upload-simple"}},{tagName:"span",textContent:"Upload"}]}]},nomatch:{tagName:"div",attributes:{part:"empty"},children:[{tagName:"jx-icon",attributes:{part:"empty-glyph","aria-hidden":"true"},$props:{name:"image"}},{tagName:"p",attributes:{part:"empty-title"},textContent:"${state.emptyTitle}"},{tagName:"p",attributes:{part:"empty-detail"},textContent:"${state.emptyDetail}"},{tagName:"jx-button",attributes:{part:"reset"},$props:{size:"sm",variant:"secondary"},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/reset"},value:[]}]},children:[{tagName:"span",textContent:"Show all media"}]}]},listed:{tagName:"div",attributes:{part:"grid",role:"listbox","aria-labelledby":"${state.titleId}"},onkeydown:{$prototype:"Function",body:[{$switch:{$ref:"event#/key"},cases:{ArrowRight:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/key"},value:[{$ref:"event#/key"},{$ref:"event#/ctrlKey"}]}],ArrowLeft:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/key"},value:[{$ref:"event#/key"},{$ref:"event#/ctrlKey"}]}],ArrowDown:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/key"},value:[{$ref:"event#/key"},{$ref:"event#/ctrlKey"}]}],ArrowUp:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/key"},value:[{$ref:"event#/key"},{$ref:"event#/ctrlKey"}]}],Home:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/key"},value:[{$ref:"event#/key"},{$ref:"event#/ctrlKey"}]}],End:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/key"},value:[{$ref:"event#/key"},{$ref:"event#/ctrlKey"}]}],Enter:[{preventDefault:!0},{operator:"call",target:{$ref:"#/state/activateSelected"},value:[]}]}}],description:"The grid pattern: arrows move one tile, Home and End to the ends of the row, Ctrl+Home and Ctrl+End to the ends of the grid, and Enter opens the selected file (in pick mode, uses it). The flow computes where the move lands; the tile that receives it takes focus, so the roving tabindex follows the selection."},children:[{$prototype:"Array",items:{$ref:"#/state/tiles"},key:{$ref:"$map/item/key"},map:{tagName:"div",attributes:{part:"tile",role:"option","aria-selected":"${$map.item.selected}",tabindex:"${$map.item.tabindex}","data-file":"${$map.item.file}",title:"${$map.item.name}"},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/select"},value:[{$ref:"$map/item/file"}]}]},onfocus:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/focusTile"},value:[{$ref:"$map/item/file"}]}],description:"Selection follows focus, the listbox pattern: a Tab onto the grid lands on the roving stop and selects it, so the first Enter opens (in pick mode, uses) the tile the focus ring is on rather than nothing."},ondblclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/activate"},value:[{$ref:"$map/item/file"}]}]},children:[{tagName:"div",attributes:{part:"thumb"},children:[{tagName:"div",attributes:{part:"thumb-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"$map/item/thumbState"},cases:{image:{tagName:"img",attributes:{part:"thumb-img",src:"${$map.item.thumbSrc}",alt:"",draggable:"false"},onload:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/measure"},value:[{$ref:"$map/item/file"},{$ref:"event#/target/naturalWidth"},{$ref:"event#/target/naturalHeight"}]}]}},pending:{tagName:"span",attributes:{part:"thumb-pending","aria-hidden":"true"}},glyph:{tagName:"jx-icon",attributes:{part:"thumb-glyph","aria-hidden":"true"},$props:{name:{$ref:"$map/item/glyph"}}}},$description:"The thumbnail is asked for when the tile scrolls into view, not when the grid is built: `pending` until the flow's observer reports the tile, then the picture. A file the browser draws no picture of shows its kind's glyph."}]},{tagName:"span",attributes:{part:"tile-name"},textContent:"${$map.item.name}"},{tagName:"span",attributes:{part:"tile-caption"},textContent:"${$map.item.caption}"}]}}]}}}]}]},{tagName:"aside",attributes:{part:"detail","aria-label":"Details"},children:[{tagName:"div",attributes:{part:"detail-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/detailState"},cases:{none:{tagName:"p",attributes:{part:"detail-hint"},textContent:"${state.detailHint}"},shown:{tagName:"div",attributes:{part:"detail-body",role:"none"},style:{display:"contents"},children:[{tagName:"div",attributes:{part:"detail-preview"},children:[{tagName:"div",attributes:{part:"preview-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/previewKind"},cases:{image:{tagName:"img",attributes:{part:"preview-img",src:"${state.previewSrc}",alt:""},onload:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/measure"},value:[{$ref:"#/state/selectedFile"},{$ref:"event#/target/naturalWidth"},{$ref:"event#/target/naturalHeight"}]}]}},video:{tagName:"video",attributes:{part:"preview-video",src:"${state.previewSrc}",controls:!0}},audio:{tagName:"audio",attributes:{part:"preview-audio",src:"${state.previewSrc}",controls:!0}},font:{tagName:"div",attributes:{part:"preview-specimen",style:"${state.previewSpecimenFamily}"},children:[{tagName:"style",textContent:"${state.previewFontFace}"},{tagName:"p",attributes:{part:"specimen-line","data-size":"32"},textContent:"Aa"},{tagName:"p",attributes:{part:"specimen-line","data-size":"14"},textContent:"${state.previewSpecimen}"}]},glyph:{tagName:"jx-icon",attributes:{part:"preview-glyph","aria-hidden":"true"},$props:{name:{$ref:"#/state/previewGlyph"}}}}}]},{tagName:"h3",attributes:{part:"detail-name"},textContent:"${state.detailName}"},{tagName:"p",attributes:{part:"facts"},textContent:"${state.detailFacts}"},{tagName:"div",attributes:{part:"url-group"},children:[{tagName:"h4",attributes:{part:"group-title"},textContent:"Site URL"},{tagName:"div",attributes:{part:"url"},children:[{tagName:"code",attributes:{part:"url-value"},textContent:"${state.detailRef}"},{tagName:"jx-action-button",attributes:{part:"copy"},$props:{size:"sm",quiet:!0,hint:"Copy the site URL"},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/copyRef"},value:[]}]},children:[{tagName:"span",textContent:"Copy"}]}]}]},{tagName:"div",attributes:{part:"usage-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/usageState"},cases:{shown:{tagName:"div",attributes:{part:"usage"},children:[{tagName:"h4",attributes:{part:"group-title"},textContent:"Used on"},{tagName:"p",attributes:{part:"usage-headline"},textContent:"${state.usageHeadline}"},{tagName:"div",attributes:{part:"usage-list-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/hasUsageFiles"},cases:{true:{tagName:"ul",attributes:{part:"usage-list"},children:[{$prototype:"Array",items:{$ref:"#/state/usageFiles"},key:{$ref:"$map/item/path"},map:{tagName:"li",attributes:{part:"usage-row","data-usage":"${$map.item.path}"},children:[{tagName:"button",attributes:{part:"usage-link",type:"button",title:"Open ${$map.item.path}"},textContent:"${$map.item.path}",onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/openDocument"},value:[{$ref:"$map/item/path"}]}]}},{tagName:"span",attributes:{part:"usage-count"},textContent:"${$map.item.count}"}]}}]}}}]}},$description:'Hidden on a host with no reference index, which is a different fact from "nothing uses it": a confident zero is the one answer this pane must never invent.'},{tagName:"div",attributes:{part:"actions-slot",role:"none"},style:{display:"contents"},$switch:{$ref:"#/state/mode"},cases:{manage:{tagName:"div",attributes:{part:"actions"},children:[{tagName:"label",attributes:{part:"replace",title:"Replace ${state.detailName} everywhere it is used"},children:[{tagName:"input",attributes:{part:"replace-input",type:"file",accept:"${state.replaceAccept}"},onchange:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/replace"},value:[{$ref:"event#/target"}]}],description:"Replace writes the chosen file over this one's path, so every reference keeps resolving and now shows the new bytes (studio.md §9.3). The element rather than the list, so the input can be cleared."}},{tagName:"span",textContent:"Replace"}]},{tagName:"jx-button",attributes:{part:"open-viewer"},$props:{size:"sm",variant:"secondary"},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/openViewer"},value:[]}]},children:[{tagName:"span",textContent:"Open in viewer"}]},{tagName:"jx-button",attributes:{part:"delete"},$props:{size:"sm",variant:"negative"},onclick:{$prototype:"Function",body:[{operator:"call",target:{$ref:"#/state/remove"},value:[]}]},children:[{tagName:"span",textContent:"Delete"}]}]}},$description:"Manage mode's actions. Pick mode has none here: its answer is the dialog's own footer, Cancel and Use <file>."}]}}}]}]};T("media-library",de);function Ee(){return{countingLabel:"",detailFacts:"",detailHint:"",detailName:"",detailRef:"",detailState:"none",dropActive:"false",emptyDetail:"",emptyTitle:"",filters:[],gridState:"loading",mode:"manage",previewFontFace:"",previewGlyph:"",previewKind:"glyph",previewSpecimen:"",previewSpecimenFamily:"",previewSrc:"",query:"",region:"",replaceAccept:"",selectedFile:"",sort:"",sortOptions:[],tiles:[],title:"",titleId:"",uploadAccept:"",uploadHint:"",usageFiles:[],usageHeadline:"",usageState:"hidden"}}function pe(e,t){Object.assign(e,t),e.hasUsageFiles=t.usageFiles.length>0}function Ae(e){let t=n(e)?void 0:e.attributes?.part;return n(t)?t:""}function Ie(e){let t=e?.$map,i=_(t)&&"item"in t?t.item:void 0;return _(i)&&"file"in i&&n(i.file)?i.file:null}function q(e,t,i,a){if(a.clear)e.replaceChildren();let{tileHost:r,gridHost:o,inputHost:l,...c}=i,s=g({...Ee(),...c,hasUsageFiles:!1});pe(s,t);let h=null,w=!1,P=R("media-library",s,e,{onNodeCreated:(f,d,k,Te)=>{if(w||!(f instanceof HTMLElement))return;let H=Ae(k);if(H==="tile"){let ee=Ie(Te);if(ee!==null)r(f,ee)}else if(H==="grid")o(f);else if(f instanceof HTMLInputElement&&H==="upload-input")l(f,"upload");else if(f instanceof HTMLInputElement&&H==="replace-input")l(f,"replace")}}).then((f)=>{if(w)f.dispose();else h=f;return f.root});return{attached:()=>{if(w)return!1;let f=h?.root;return f===void 0?!0:f instanceof HTMLElement&&e.contains(f)},dispose(){w=!0,h?.dispose(),h=null},ready:P,update:(f)=>pe(s,f)}}var ce={$schema:"https://jxsuite.com/schema/v1",$id:"StudioMediaPickDialog",$description:"The full-size media picker (`specs/studio.md` §9.3): a `jx-dialog` whose body is the Media workspace's own library surface in pick mode, so the picker and the workspace are one surface at two sizes. The dialog owns modality, Escape, the backdrop and focus restoration, and its footer is the answer: Cancel, or Use <file>, disabled until a file is chosen. The body is an ISLAND: this document draws the slot and nothing in it, and `surfaces/media-pick-dialog.ts` mounts `media-library.json` there through `onNodeCreated`.",tagName:"jx-dialog",$props:{headline:{$ref:"#/state/headline"},confirmLabel:{$ref:"#/state/confirmLabel"},confirmDisabled:{$ref:"#/state/blocked"},cancelLabel:"Cancel",dismissible:!0,size:"xl"},attributes:{part:"media-pick"},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:[]}]},children:[{tagName:"div",attributes:{part:"library-slot"},style:{$description:"The library's box in pick mode is its own (`media-library.json`, `data-mode=\"pick\"`); the slot only gives it the dialog body's width.",minWidth:"0"}}]};T("media-pick-dialog",ce);var V="media-picker";function Oe(e){let t=n(e)?void 0:e.attributes?.part;return n(t)?t:""}function ue(e){let t=document.createElement("div");t.style.pointerEvents="auto",t.setAttribute(Ue,ft("dialog",V)),e.layer.append(t);let i=!1,a=()=>{if(i)return;i=!0,e.closed()},r=()=>i,o=g({...e.view,closed:a,confirm:e.confirm}),l=null,c=R("media-pick-dialog",o,t,{onNodeCreated:(s,h,w)=>{if(!r()&&s instanceof HTMLElement&&Oe(w)==="library-slot")e.body(s)}}).then(async(s)=>{l=s;let h=s.root;if(r())return s.dispose(),h;if(await Jt(h),!r())Ot(h);return h});return{close(){let s=l?.root;if(s instanceof HTMLElement)Nt(s);l?.dispose(),l=null,t.remove(),a()},host:t,ready:c,update(s){Object.assign(o,s)}}}var tP="media-home",ve={audio:"play",document:"file-text",font:"text-aa",image:"image",video:"play"},Pe={audio:"Audio",document:"Document",font:"Font",image:"Image",video:"Video"},y={filter:"all",query:"",sort:"newest",selected:null},j=null,x=null,A=0,I=0,E=!1,G=0;function Y(){x=null,E=!1,A=0,I=0,G+=1}function Ke(){return[...S].some((e)=>!e.disposed&&e.choice.filter==="unused")}async function ze(e){if(E||x!==null||!hh())return;let t=G;E=!0,A=0,I=e.length;let i=new Set;for(let a of e){let r=await Gu(a.file);if(t!==G)return;if(!Ke()){Y();return}if(r.status==="ready"&&r.result.files.length===0)i.add(a.file);A+=1,b()}x=i,E=!1,b()}var S=new Set,M=new Map,J=new Set,L=null;function be(){if(L!==null)return;let e=()=>{Y(),b()},t=NT(e),i=E$(e);L=()=>{t(),i()}}function _e(){if(S.size===0&&L)L(),L=null}function v(e){if(!e.disposed){if(e.handle?.update(X(e)),e.onSelect?.(),We(e),e.focusOwed)queueMicrotask(()=>Le(e));we(e)}}function We(e){let t=e.reveal,i=t===null?void 0:e.tiles.get(t);if(i?.isConnected)e.reveal=null,i.scrollIntoView({block:"nearest"})}function we(e){if(e.sweepTimer!==null||e.disposed)return;e.sweepTimer=setTimeout(()=>{e.sweepTimer=null,e.observer.releaseDetached();for(let[t,i]of e.tiles)if(!i.isConnected)e.tiles.delete(t);for(let t of[e.inputs.upload,e.inputs.replace])for(let i of t)if(!i.isConnected)t.delete(i)},0)}function xe(e){return[...e].find((t)=>t.isConnected)??null}function b(){for(let e of S)v(e)}function Q(e){if(e.disposed=!0,e.sweepTimer!==null)clearTimeout(e.sweepTimer),e.sweepTimer=null;e.inputs.upload.clear(),e.inputs.replace.clear(),e.observer.destroy(),e.handle?.dispose(),e.handle=null,e.tiles.clear(),S.delete(e),_e()}function $e(e){let t=Wu(),i=t===null?null:e.images?t.filter((r)=>r.isImage):t;return{files:(i??[]).map((r)=>{let o=Dd(r.file);return{bytes:o?.bytes??null,file:r.file,kind:r.kind,modified:o?.modified??null,name:r.name}}),listed:i}}function qe(e){return D.filter((t)=>(t.key!=="unused"||hh())&&(!e.images||t.key==="image"||t.key==="unused"))}function xw(e){let{filter:t,query:i,selected:a}=e.choice;if(a===null)return null;let r=Wu()?.find((l)=>l.file===a)??null;if(r===null||e.images&&!r.isImage)return null;let o={bytes:null,file:r.file,kind:r.kind,modified:null,name:r.name};return z(o,t,x)&&U(o,i)?r:null}function Ve(e,t){if(t===0)return{emptyDetail:`Upload files or drop them anywhere here. They are saved under ${e.uploadDir}/, and anything already under public/ or a collection's images/ folder is listed here too.`,emptyTitle:e.images?"No images yet":"No media yet"};let{filter:i,query:a}=e.choice;if(a.trim()!=="")return{emptyDetail:`Nothing in ${F(i)} matches it.`,emptyTitle:`No matches for “${a.trim()}”`};if(i==="unused")return{emptyDetail:"Every file is referenced by at least one document.",emptyTitle:"No unused media"};return{emptyDetail:`${t} ${t===1?"file":"files"} in the project, none of them ${F(i).toLowerCase()}.`,emptyTitle:`No ${F(i).toLowerCase()}`}}function X(e){let{choice:t}=e,{files:i,listed:a}=$e(e),r=ne(i,x),o=qe(e);if(!o.some((d)=>d.key===t.filter))t.filter=o[0]?.key??"all";let l=W(i,{filter:t.filter,query:t.query,sort:t.sort,unused:x}),c=Wu();if(t.filter==="unused"&&c!==null)ze(c);let s="listed";if(a===null)s="loading";else if(t.filter==="unused"&&x===null)s="counting";else if(i.length===0||l.length===0)s=i.length===0?"empty":"nomatch";let h=xw(e),w=l.some((d)=>d.file===t.selected)?t.selected:l[0]?.file??null,P=l.map((d)=>{let k=d.kind==="image";return{caption:Aw(Dd(d.file))||Pe[d.kind],file:d.file,glyph:ve[d.kind],key:d.file,name:d.name,selected:d.file===t.selected?"true":"false",tabindex:d.file===w?"0":"-1",thumbSrc:k&&e.visible.has(d.file)?tr(d.file):"",thumbState:k?e.visible.has(d.file)?"image":"pending":"glyph"}}),f=e.images&&t.filter==="image"?"Images":F(t.filter);return{countingLabel:I>0?`Counting references… ${A} of ${I}`:"Counting references…",dropActive:e.dropActive?"true":"false",filters:o.map((d)=>{let k=r[d.key];return{count:k===null?"":String(k),key:d.key,label:e.images&&d.key==="image"?"All images":d.label,pressed:d.key===t.filter?"true":"false"}}),gridState:s,mode:e.mode,query:t.query,region:e.region,sort:t.sort,sortOptions:K.map((d)=>({label:d.label,value:d.key})),tiles:P,title:f,titleId:`media-library-title-${e.region.replaceAll(/[^\w-]/g,"-")}`,uploadAccept:e.images?"image/*":zc(),uploadHint:`Upload into ${e.uploadDir}/`,...Ve(e,i.length),...Be(e,h)}}function Be(e,t){if(t===null)return{detailFacts:"",detailHint:e.mode==="pick"?"Choose a file to use it.":"Select a file to see its details.",detailName:"",detailRef:"",detailState:"none",previewFontFace:"",previewGlyph:"",previewKind:"glyph",previewSpecimen:"",previewSpecimenFamily:"",previewSrc:"",replaceAccept:"",selectedFile:"",usageFiles:[],usageHeadline:"",usageState:"hidden"};let i=Dd(t.file),a=Ow(t.file);if(!Rd(t.file))qu(t.file).then(b);if(a===null||a.status==="pending")Gu(t.file).then(b);let r=jT(t.file),o=r==="image"||r==="video"||r==="audio"||r==="font"?r:"glyph",l=o==="font"?BT(t.file):{fontFace:"",specimen:"",specimenFamily:""};return{detailFacts:HT(t.file,i),detailHint:"",detailName:t.name,detailRef:t.ref,detailState:"shown",previewFontFace:l.fontFace,previewGlyph:ve[t.kind],previewKind:o,previewSpecimen:l.specimen,previewSpecimenFamily:l.specimenFamily,previewSrc:o==="glyph"?"":tr(t.file),replaceAccept:hA(t.file),selectedFile:t.file,...zT(a)}}var fe=null,me=null;function Ge(){return fe??=(le("yswdhxrf"),import("./files-yswdhxrf.js")),fe}function Ye(){return me??=(le("kkhp9ma7"),import("./file-ops-kkhp9ma7.js")),me}function Z(e){try{e.showPicker()}catch{e.focus()}}function N(e,t){e.choice.selected=t,v(e)}async function ge(e,t){let i=await Sa([...t],{dir:e.uploadDir,only:e.images?"image":"media"}),[a]=i;if(!a)return;if(e.choice.filter!=="all"&&e.choice.filter!==a.kind)e.choice.filter=e.images?"image":"all";e.choice.query="",e.reveal=a.path,N(e,a.path)}async function O2(e){let t=e.split("/").pop()??e,{confirmFileDelete:i}=await Ye();if(!await i({name:t,path:e}))return!1;let{markLocalMutation:a}=await (le("z9gpvc6t"),import("./fs-events-z9gpvc6t.js"));try{a(e),await p().deleteFile(e)}catch(l){return C.error(`Could not delete ${t}.`,{detail:te(l),path:e,source:"Media"}),!1}if(zd([e]),Sr(),m.tabs.has(e))Kd(e);for(let l of S)if(l.choice.selected===e)l.choice.selected=null;if(y.selected===e)y.selected=null;let r=Fb(e),o=await Je(r,a);return await QL(o?Fb(r):r),C.success(`Deleted ${t}`),!0}async function Je(e,t){if(!dA(e))return!1;let i=p();try{if((await i.listDirectory(e)).length>0)return!1;return t(e),await i.deleteFile(e),!0}catch{return!1}}function Me(e){return{activate:(t)=>{N(e,t),he(e,t)},activateSelected:()=>{let{selected:t}=e.choice;if(t!==null)he(e,t)},copyRef:()=>{let t=xw(e);if(t&&"clipboard"in navigator)navigator.clipboard.writeText(t.ref)},dragOut:()=>{if(e.dropActive)e.dropActive=!1,v(e)},dragOver:()=>{if(!e.dropActive)e.dropActive=!0,v(e)},drop:(t)=>{if(e.dropActive=!1,v(e),t?.length)ge(e,t)},focusTile:(t)=>{if(e.choice.selected!==t)N(e,t)},gridHost:(t)=>{e.grid=t},inputHost:(t,i)=>{e.inputs[i].add(t),we(e);let a=j;if(e.mode==="manage"&&a?.role===i&&(i==="upload"||a.file===e.choice.selected))j=null,Z(t)},key:(t,i)=>Qe(e,t,i),measure:(t,i,a)=>{if(_p(t,i,a))b();else if(!Rd(t))qu(t).then(b)},openDocument:(t)=>{Ge().then(({openFileInTab:i})=>i(t))},openViewer:()=>{let{selected:t}=e.choice;if(t!==null)_b(t)},remove:()=>{let{selected:t}=e.choice;if(t!==null)O2(t)},replace:(t)=>{let[i]=t.files??[];t.value="";let{selected:a}=e.choice;if(i&&a!==null)pA(a,i).then(b)},reset:()=>{e.choice.filter=e.images?"image":"all",e.choice.query="",v(e)},select:(t)=>N(e,t),setFilter:(t)=>{if(ae(t))e.choice.filter=t,v(e)},setQuery:(t)=>{e.choice.query=t,v(e)},setSort:(t)=>{if(re(t))e.choice.sort=t,v(e)},tileHost:(t,i)=>{e.tiles.set(i,t),ke.set(t,i),e.observer.observe(t)},upload:(t)=>{let i=[...t.files??[]];if(t.value="",i.length>0)ge(e,i)}}}function he(e,t){if(e.mode==="pick"){let i=xw(e);if(i)e.onPick?.(i);return}_b(t)}function Qe(e,t,i){let{files:a}=$e(e),r=W(a,{filter:e.choice.filter,query:e.choice.query,sort:e.choice.sort,unused:x}),o=r.findIndex((h)=>h.file===e.choice.selected),l=e.grid?oe(He(e.grid).width):1,c=o===-1?r.length>0?0:null:se(o,t,l,r.length,i),s=c===null?void 0:r[c];if(!s)return;N(e,s.file),e.tiles.get(s.file)?.focus()}var ke=new WeakMap;function Se(e,t,i,a,r,o){let l={choice:t,disposed:!1,dropActive:!1,grid:null,handle:null,images:r,inputs:{replace:new Set,upload:new Set},mode:e,observer:bp((c)=>{let s=ke.get(c);if(s!==void 0&&!l.visible.has(s))l.visible.add(s),Xe(l)}),onPick:null,onSelect:null,paneId:a,reveal:null,focusOwed:!1,region:i,sweepTimer:null,tiles:new Map,uploadDir:o,visible:new Set};return l}var B=new Set;function Xe(e){if(B.has(e))return;B.add(e),queueMicrotask(()=>{B.delete(e),v(e)})}function fS(e,t){let i=M.get(e);return i!==void 0&&i.tabId===t.id&&i.wrap.isConnected&&i.mount.handle!==null&&i.mount.handle.attached()}function _w(e){let t=M.get(e);if(!t)return;Q(t.mount),M.delete(e)}function LT(e,t){let{paneId:i,wrap:a}=e;if(fS(i,t))return;_w(i);let r=Se("manage",y,wi(i,"media-library"),i,!1,_a);if(S.add(r),be(),r.handle=q(a,X(r),Me(r),{clear:!0}),M.set(i,{mount:r,tabId:t.id,wrap:a}),J.delete(i))Fe(r)}async function Fe(e){await e.handle?.ready,Le(e,!0)}function Le(e,t=e.focusOwed){if(!t||e.disposed)return;let{selected:i}=e.choice,a=(i===null?void 0:e.tiles.get(i))??[...e.tiles.values()].find((r)=>r.getAttribute("tabindex")==="0");if(a?.isConnected){e.focusOwed=!1,a.focus();return}e.focusOwed=!0}function $T(e){let t=M.get(e);if(t?.wrap.isConnected&&t.mount.handle?.attached()===!0){Fe(t.mount);return}J.add(e)}function M2(e){if(e.filter!==void 0)y.filter=e.filter;if(e.query!==void 0)y.query=e.query;if(e.select!==void 0){if(y.selected=e.select,y.filter!=="all")y.filter="all";y.query=""}b()}function nP(){let e=[...M.values()].map((t)=>xe(t.mount.inputs.upload)).find((t)=>t!==null)??null;if(e){Z(e);return}j={file:null,role:"upload"}}function iP(e){M2({select:e});let t=null;for(let i of M.values())if(i.mount.choice.selected===e)t??=xe(i.mount.inputs.replace);if(t){Z(t);return}j={file:e,role:"replace"}}var O=null;function ye(e){let t=xw(e);return{blocked:t===null,confirmLabel:t?`Use ${t.name}`:e.images?"Use image":"Use file",headline:e.images?"Choose an image":"Choose media"}}function mS(){let e=O;if(O=null,e)Q(e.mount),e.dialog.close()}function oP(e){mS();let t={filter:e.images?"image":"all",query:"",selected:null,sort:"newest"},i=Se("pick",t,`${ft("dialog",V)}/library`,null,e.images,XL(u.value?.documentPath??null)),a=(o)=>{mS(),e.onPick(o.ref)};i.onPick=a,S.add(i),be();let r=ue({body:(o)=>{i.handle=q(o,X(i),Me(i),{clear:!1})},closed:()=>{if(O?.mount===i)mS();else Q(i)},confirm:()=>{let o=xw(i);if(o)a(o)},layer:tt("dialog"),view:ye(i)});i.onSelect=()=>r.update(ye(i)),O={dialog:r,mount:i}}function IT(){mS();for(let e of M.keys())_w(e);y.filter="all",y.query="",y.selected=null,y.sort="newest",j=null,J.clear(),Y()}
2
- export{pS,tP,xw,O2,fS,_w,LT,$T,M2,nP,iP,mS,oP,IT};
3
-
4
- //# debugId=06DC0765C6515CCB64756E2164756E21
5
- //# sourceMappingURL=studio-dvhxxxbd.js.map
@@ -1,5 +0,0 @@
1
- import{te}from"./studio-psh8mwnw.js";import{Oe,ir,Vd,u}from"./studio-ztppbam0.js";import{C}from"./studio-tfmhnwyr.js";import{p}from"./studio-9ndgd55w.js";import{Ne,xa,jc}from"./studio-ekzbgnjp.js";import{xi}from"./studio-myb4mf0h.js";import{aw,ab}from"./studio-k6hbx2fc.js";import{xS}from"./studio-x2trkhk5.js";import{Co}from"./studio-nqexty8x.js";import{Vt,zi}from"./studio-9ra9e7m4.js";import{oe}from"./studio-nfwacw31.js";import{_,it}from"./studio-ywf9y1e2.js";function Qy(){let t=u.value,e=Oe(t?.session.selection);if(!t||!e||e.length<2)return null;let o=oe(t.doc.document,e);if(!o||!o.tagName)return null;return{node:o,path:e}}async function rm(){let t=Qy();if(!t)return;let e=await b(g(t.node));if(!e)return;await cE(e.toLowerCase())}async function cE(t){let e=u.value,o=Qy();if(!e||!o)return null;let{node:m,path:d}=o,l=v(m);l.tagName=t;let r=`components/${t}.json`,c=jc(e.documentPath,r),f=d;if(!Vd(e,(n)=>{let s=Vt(f)??[],h=zi(f),a=n;for(let i of s)a=a[i];if(!Array.isArray(a.children))a.children=[];if(a.children[h]={tagName:t},!n.$elements)n.$elements=[];if(!n.$elements.some((i)=>_(i)&&("$ref"in i)&&i.$ref===c))n.$elements.push({$ref:c})}))return null;try{await p().writeFile(r,Co(l,null)),await xa();let s=xS(l);if(C.success(`Converted to <${t}>`),s)C.warn(`<${t}> has a slot problem: ${s}`,{path:r,source:"Components",tier:"problem"});return r}catch(n){return C.error(`Could not save the <${t}> component.`,{detail:te(n),path:r,source:"Components"}),null}}function g(t){if(t.$id){let o=ab(t.$id);if(o!=="")return o}let e=(it(t.tagName)||"div").toLowerCase();return e.includes("-")?e:ab(e)}function v(t){let e=ir(t);return delete e.$id,delete e.$layout,delete e.$paths,e}function N(t){let e=t.trim().toLowerCase(),o=aw(e);if(o!=="")return o;return Ne.some((m)=>m.tagName===e)?`Component <${e}> already exists`:""}function b(t){return xi("Convert to Component",{confirmLabel:"Convert",message:"Enter a hyphenated tag name for the new component.",placeholder:"my-component",validate:N,value:t})}
2
- export{Qy,rm,cE};
3
-
4
- //# debugId=B779E539D8F1AECD64756E2164756E21
5
- //# sourceMappingURL=studio-fj6jzgxw.js.map
@@ -1,5 +0,0 @@
1
- import{Un,m,jt}from"./studio-ztppbam0.js";import{kD}from"./studio-6rbaedw2.js";import{Xu}from"./studio-0rg30pvs.js";import{le}from"./studio-k5n4es74.js";var e="edit",a=new Set(["edit","design"]);function r(t){for(let i of m.tabs.values())if(i.documentPath===t)return i;return null}async function Ml(t){if(!Xu(t)){let o=Un(t);if(o&&!o.fileBacked)return kD(t);let{openFileInTab:s}=await (le("yswdhxrf"),import("./files-yswdhxrf.js"));return await s(t),r(t)}let{openFileInTab:i}=await (le("yswdhxrf"),import("./files-yswdhxrf.js"));await i(t);let n=r(t);if(!n)return null;if(!a.has(n.session.ui.canvasMode)&&n.capabilities.modes.includes(e))n.session.ui.canvasMode=e,n.session.ui.preview=!1;return jt(n.id),n}
2
- export{Ml};
3
-
4
- //# debugId=C86248B95CF9AA2164756E2164756E21
5
- //# sourceMappingURL=studio-ge08zwpv.js.map
@@ -1,5 +0,0 @@
1
- import{pt,Uo,xr,Ap}from"./studio-14hh60j8.js";function cb(){return Uo(pt.cfToken)}function DE(t){xr(pt.cfToken,t||"")}function NE(){return Uo(pt.cfAccountId)}function Z2(t){xr(pt.cfAccountId,t||"")}function AE(){Ap([pt.cfToken,pt.cfAccountId])}
2
- export{cb,DE,NE,Z2,AE};
3
-
4
- //# debugId=25989528E8543C3764756E2164756E21
5
- //# sourceMappingURL=studio-nr0kcqc6.js.map
@@ -1,4 +0,0 @@
1
- function te(n){return n instanceof Error?n.message:String(n)}export{te};
2
-
3
- //# debugId=8FF17FDC69C606A164756E2164756E21
4
- //# sourceMappingURL=studio-psh8mwnw.js.map