@shapio/cms 0.4.1 → 0.5.1

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 (270) hide show
  1. package/dist/admin/assets/{AssetTile-CoNClUYS.js → AssetTile-B8ftUG4s.js} +2 -2
  2. package/dist/admin/assets/{AssetTile-CoNClUYS.js.map → AssetTile-B8ftUG4s.js.map} +1 -1
  3. package/dist/admin/assets/{AssistError-BoejyShH.js → AssistError-BidlzaBY.js} +2 -2
  4. package/dist/admin/assets/{AssistError-BoejyShH.js.map → AssistError-BidlzaBY.js.map} +1 -1
  5. package/dist/admin/assets/{BlockMenuItems-B2Jugisa.js → BlockMenuItems-DfNBHqVM.js} +2 -2
  6. package/dist/admin/assets/{BlockMenuItems-B2Jugisa.js.map → BlockMenuItems-DfNBHqVM.js.map} +1 -1
  7. package/dist/admin/assets/{Body-D3GwLGaB.js → Body-C0oQSX6L.js} +2 -2
  8. package/dist/admin/assets/{Body-D3GwLGaB.js.map → Body-C0oQSX6L.js.map} +1 -1
  9. package/dist/admin/assets/{Builder-CmT5-8hI.js → Builder-Z_hcyzNW.js} +2 -2
  10. package/dist/admin/assets/{Builder-CmT5-8hI.js.map → Builder-Z_hcyzNW.js.map} +1 -1
  11. package/dist/admin/assets/{ConfirmDialog-HS8Gc2t3.js → ConfirmDialog-DVN-n-tE.js} +2 -2
  12. package/dist/admin/assets/{ConfirmDialog-HS8Gc2t3.js.map → ConfirmDialog-DVN-n-tE.js.map} +1 -1
  13. package/dist/admin/assets/{CopyButton-DS-bAA23.js → CopyButton--tHegXQr.js} +2 -2
  14. package/dist/admin/assets/{CopyButton-DS-bAA23.js.map → CopyButton--tHegXQr.js.map} +1 -1
  15. package/dist/admin/assets/{CursorPager-C6PyD3wE.js → CursorPager-Cb94mITn.js} +2 -2
  16. package/dist/admin/assets/{CursorPager-C6PyD3wE.js.map → CursorPager-Cb94mITn.js.map} +1 -1
  17. package/dist/admin/assets/{ExternalLink-KdO72pTj.js → ExternalLink-M1cb1n2n.js} +2 -2
  18. package/dist/admin/assets/{ExternalLink-KdO72pTj.js.map → ExternalLink-M1cb1n2n.js.map} +1 -1
  19. package/dist/admin/assets/{FocalPoint-C62fRhmM.js → FocalPoint-pTq17ngi.js} +2 -2
  20. package/dist/admin/assets/{FocalPoint-C62fRhmM.js.map → FocalPoint-pTq17ngi.js.map} +1 -1
  21. package/dist/admin/assets/{Form-CLEr5Csd.js → Form-4zah109J.js} +2 -2
  22. package/dist/admin/assets/{Form-CLEr5Csd.js.map → Form-4zah109J.js.map} +1 -1
  23. package/dist/admin/assets/FormCheckboxGroup-DAeuGKAU.js +2 -0
  24. package/dist/admin/assets/FormCheckboxGroup-DAeuGKAU.js.map +1 -0
  25. package/dist/admin/assets/{FormRadioGroup-BjE1Jhar.js → FormRadioGroup--xx08rw6.js} +2 -2
  26. package/dist/admin/assets/{FormRadioGroup-BjE1Jhar.js.map → FormRadioGroup--xx08rw6.js.map} +1 -1
  27. package/dist/admin/assets/{FormSelectField-g4zrUlhv.js → FormSelectField-DNOCQKqc.js} +2 -2
  28. package/dist/admin/assets/{FormSelectField-g4zrUlhv.js.map → FormSelectField-DNOCQKqc.js.map} +1 -1
  29. package/dist/admin/assets/{FormSwitchField-gciThNGV.js → FormSwitchField-BECl-pzH.js} +2 -2
  30. package/dist/admin/assets/{FormSwitchField-gciThNGV.js.map → FormSwitchField-BECl-pzH.js.map} +1 -1
  31. package/dist/admin/assets/{FormTextareaField-tsS-UXym.js → FormTextareaField-DmRuKDJ_.js} +2 -2
  32. package/dist/admin/assets/{FormTextareaField-tsS-UXym.js.map → FormTextareaField-DmRuKDJ_.js.map} +1 -1
  33. package/dist/admin/assets/{HintedLabel-CVe-PIyv.js → HintedLabel-DIEBvftx.js} +2 -2
  34. package/dist/admin/assets/{HintedLabel-CVe-PIyv.js.map → HintedLabel-DIEBvftx.js.map} +1 -1
  35. package/dist/admin/assets/{InfoHint-DtaHU1Cg.js → InfoHint-BdAadb9U.js} +2 -2
  36. package/dist/admin/assets/{InfoHint-DtaHU1Cg.js.map → InfoHint-BdAadb9U.js.map} +1 -1
  37. package/dist/admin/assets/{InsertMenuItem-DlzaD9zr.js → InsertMenuItem-oh0NJrhB.js} +2 -2
  38. package/dist/admin/assets/{InsertMenuItem-DlzaD9zr.js.map → InsertMenuItem-oh0NJrhB.js.map} +1 -1
  39. package/dist/admin/assets/{LinkTabs-stM3j4aH.js → LinkTabs-EBgHX4Uh.js} +2 -2
  40. package/dist/admin/assets/{LinkTabs-stM3j4aH.js.map → LinkTabs-EBgHX4Uh.js.map} +1 -1
  41. package/dist/admin/assets/{Match-ErAxnNAY.js → Match-CvpSNEfi.js} +2 -2
  42. package/dist/admin/assets/{Match-ErAxnNAY.js.map → Match-CvpSNEfi.js.map} +1 -1
  43. package/dist/admin/assets/{Panel-ClY9b33D.js → Panel-BV1BpNCn.js} +2 -2
  44. package/dist/admin/assets/{Panel-ClY9b33D.js.map → Panel-BV1BpNCn.js.map} +1 -1
  45. package/dist/admin/assets/{QueryView-C630REML.js → QueryView-Bbw1eiV2.js} +2 -2
  46. package/dist/admin/assets/{QueryView-C630REML.js.map → QueryView-Bbw1eiV2.js.map} +1 -1
  47. package/dist/admin/assets/{RadioTile-CD4mel7U.js → RadioTile-CSYW-8gL.js} +2 -2
  48. package/dist/admin/assets/{RadioTile-CD4mel7U.js.map → RadioTile-CSYW-8gL.js.map} +1 -1
  49. package/dist/admin/assets/{RichTextField-CxeVX6C-.js → RichTextField-BDb67rCi.js} +2 -2
  50. package/dist/admin/assets/{RichTextField-CxeVX6C-.js.map → RichTextField-BDb67rCi.js.map} +1 -1
  51. package/dist/admin/assets/{RowTitle-B-7RptyN.js → RowTitle-Cted2GP8.js} +2 -2
  52. package/dist/admin/assets/{RowTitle-B-7RptyN.js.map → RowTitle-Cted2GP8.js.map} +1 -1
  53. package/dist/admin/assets/SecretReveal-Ccaul96d.js +2 -0
  54. package/dist/admin/assets/SecretReveal-Ccaul96d.js.map +1 -0
  55. package/dist/admin/assets/{SharedGlyph-97RaO6Bh.js → SharedGlyph-BrLi3Hug.js} +2 -2
  56. package/dist/admin/assets/{SharedGlyph-97RaO6Bh.js.map → SharedGlyph-BrLi3Hug.js.map} +1 -1
  57. package/dist/admin/assets/{StepList--0Fiqsq-.js → StepList-BLvElvPV.js} +2 -2
  58. package/dist/admin/assets/{StepList--0Fiqsq-.js.map → StepList-BLvElvPV.js.map} +1 -1
  59. package/dist/admin/assets/Structure-CRNAuVY7.js +2 -0
  60. package/dist/admin/assets/{Structure-CoO3iah3.js.map → Structure-CRNAuVY7.js.map} +1 -1
  61. package/dist/admin/assets/{SubNavLink-YjjaDN40.js → SubNavLink-biGV5ozd.js} +2 -2
  62. package/dist/admin/assets/{SubNavLink-YjjaDN40.js.map → SubNavLink-biGV5ozd.js.map} +1 -1
  63. package/dist/admin/assets/{SuggestAltButton-Dlyxoypu.js → SuggestAltButton-CrFiRWGr.js} +2 -2
  64. package/dist/admin/assets/{SuggestAltButton-Dlyxoypu.js.map → SuggestAltButton-CrFiRWGr.js.map} +1 -1
  65. package/dist/admin/assets/{TextLink-DIqr5zkJ.js → TextLink-BPLbXw2n.js} +2 -2
  66. package/dist/admin/assets/{TextLink-DIqr5zkJ.js.map → TextLink-BPLbXw2n.js.map} +1 -1
  67. package/dist/admin/assets/{Thumbnail-BUYOr4XJ.js → Thumbnail-B_TWlgEz.js} +2 -2
  68. package/dist/admin/assets/{Thumbnail-BUYOr4XJ.js.map → Thumbnail-B_TWlgEz.js.map} +1 -1
  69. package/dist/admin/assets/{UnsavedChangesGuard-BfzHgUkF.js → UnsavedChangesGuard-CrzR2boF.js} +2 -2
  70. package/dist/admin/assets/{UnsavedChangesGuard-BfzHgUkF.js.map → UnsavedChangesGuard-CrzR2boF.js.map} +1 -1
  71. package/dist/admin/assets/{UserAvatar-DNOWhSWS.js → UserAvatar-W-S3st7E.js} +2 -2
  72. package/dist/admin/assets/{UserAvatar-DNOWhSWS.js.map → UserAvatar-W-S3st7E.js.map} +1 -1
  73. package/dist/admin/assets/{auth-YVfK3SxF.js → auth-cXFFyABE.js} +2 -2
  74. package/dist/admin/assets/{auth-YVfK3SxF.js.map → auth-cXFFyABE.js.map} +1 -1
  75. package/dist/admin/assets/{badge-lJ4Ih_Zn.js → badge-DrPwivGk.js} +2 -2
  76. package/dist/admin/assets/{badge-lJ4Ih_Zn.js.map → badge-DrPwivGk.js.map} +1 -1
  77. package/dist/admin/assets/{boxes-DRvd25_u.js → boxes-CKJ6P9VA.js} +2 -2
  78. package/dist/admin/assets/{boxes-DRvd25_u.js.map → boxes-CKJ6P9VA.js.map} +1 -1
  79. package/dist/admin/assets/{calendar-clock-VENf4s1R.js → calendar-clock-DPyjti63.js} +2 -2
  80. package/dist/admin/assets/{calendar-clock-VENf4s1R.js.map → calendar-clock-DPyjti63.js.map} +1 -1
  81. package/dist/admin/assets/{changeSets-JmSyu3tu.js → changeSets-DYGm5j1A.js} +2 -2
  82. package/dist/admin/assets/{changeSets-JmSyu3tu.js.map → changeSets-DYGm5j1A.js.map} +1 -1
  83. package/dist/admin/assets/chevron-left-DIp5sJuv.js +2 -0
  84. package/dist/admin/assets/{chevron-left-D2DnQyeV.js.map → chevron-left-DIp5sJuv.js.map} +1 -1
  85. package/dist/admin/assets/{circle-check-jmRQz1Jq.js → circle-check-VXPKg4cE.js} +2 -2
  86. package/dist/admin/assets/{circle-check-jmRQz1Jq.js.map → circle-check-VXPKg4cE.js.map} +1 -1
  87. package/dist/admin/assets/{clock-DrSTMGjp.js → clock-DNhupIko.js} +2 -2
  88. package/dist/admin/assets/{clock-DrSTMGjp.js.map → clock-DNhupIko.js.map} +1 -1
  89. package/dist/admin/assets/cn-CEPUgFbZ.js +2 -0
  90. package/dist/admin/assets/cn-CEPUgFbZ.js.map +1 -0
  91. package/dist/admin/assets/coerce-BxuBjZdf.js +2 -0
  92. package/dist/admin/assets/{coerce-B4MJTGg1.js.map → coerce-BxuBjZdf.js.map} +1 -1
  93. package/dist/admin/assets/{constants-ahk0YSYl.js → constants-B9cNrCXV.js} +2 -2
  94. package/dist/admin/assets/{constants-ahk0YSYl.js.map → constants-B9cNrCXV.js.map} +1 -1
  95. package/dist/admin/assets/{content-DcvNzKGe.js → content-DjyCdi4c.js} +3 -3
  96. package/dist/admin/assets/{content-DcvNzKGe.js.map → content-DjyCdi4c.js.map} +1 -1
  97. package/dist/admin/assets/{contentCounts-DzIvdeXR.js → contentCounts-CX15iYcR.js} +2 -2
  98. package/dist/admin/assets/{contentCounts-DzIvdeXR.js.map → contentCounts-CX15iYcR.js.map} +1 -1
  99. package/dist/admin/assets/{contentTypes-YAd-AzOF.js → contentTypes-FgyxLhlk.js} +2 -2
  100. package/dist/admin/assets/{contentTypes-YAd-AzOF.js.map → contentTypes-FgyxLhlk.js.map} +1 -1
  101. package/dist/admin/assets/{context-4Jl20mYc.js → context-FqJXjS5k.js} +2 -2
  102. package/dist/admin/assets/{context-4Jl20mYc.js.map → context-FqJXjS5k.js.map} +1 -1
  103. package/dist/admin/assets/{copy-t6kAFw-O.js → copy-CoHbtS-Y.js} +2 -2
  104. package/dist/admin/assets/{copy-t6kAFw-O.js.map → copy-CoHbtS-Y.js.map} +1 -1
  105. package/dist/admin/assets/{dateTimeLocal-IDUOKulz.js → dateTimeLocal-BxmDLO_H.js} +2 -2
  106. package/dist/admin/assets/{dateTimeLocal-IDUOKulz.js.map → dateTimeLocal-BxmDLO_H.js.map} +1 -1
  107. package/dist/admin/assets/{develop-DYwiTd6R.js → develop-gx8WeWv4.js} +2 -2
  108. package/dist/admin/assets/{develop-DYwiTd6R.js.map → develop-gx8WeWv4.js.map} +1 -1
  109. package/dist/admin/assets/{dropdown-menu-DiYSm-g3.js → dropdown-menu-BG1rctRQ.js} +2 -2
  110. package/dist/admin/assets/{dropdown-menu-DiYSm-g3.js.map → dropdown-menu-BG1rctRQ.js.map} +1 -1
  111. package/dist/admin/assets/{ellipsis-DEHUaCkn.js → ellipsis-DHfP1Ah2.js} +2 -2
  112. package/dist/admin/assets/{ellipsis-DEHUaCkn.js.map → ellipsis-DHfP1Ah2.js.map} +1 -1
  113. package/dist/admin/assets/{external-link-B8UFREQ_.js → external-link-itxcNtaX.js} +2 -2
  114. package/dist/admin/assets/{external-link-B8UFREQ_.js.map → external-link-itxcNtaX.js.map} +1 -1
  115. package/dist/admin/assets/{fileRoute-CVQpW8cj.js → fileRoute-BZ0pGGsh.js} +2 -2
  116. package/dist/admin/assets/{fileRoute-CVQpW8cj.js.map → fileRoute-BZ0pGGsh.js.map} +1 -1
  117. package/dist/admin/assets/{folder-plus-iDg1hhew.js → folder-plus-BgsfY_6i.js} +2 -2
  118. package/dist/admin/assets/{folder-plus-iDg1hhew.js.map → folder-plus-BgsfY_6i.js.map} +1 -1
  119. package/dist/admin/assets/{followPlural-BdqfEe48.js → followPlural-BqjqhHmz.js} +2 -2
  120. package/dist/admin/assets/{followPlural-BdqfEe48.js.map → followPlural-BqjqhHmz.js.map} +1 -1
  121. package/dist/admin/assets/{globe-TooNSp9V.js → globe-RjXj4P-A.js} +2 -2
  122. package/dist/admin/assets/{globe-TooNSp9V.js.map → globe-RjXj4P-A.js.map} +1 -1
  123. package/dist/admin/assets/{image-CXZXXH58.js → image-4itB4TLl.js} +2 -2
  124. package/dist/admin/assets/{image-CXZXXH58.js.map → image-4itB4TLl.js.map} +1 -1
  125. package/dist/admin/assets/{image-off-cxva5G-Y.js → image-off-CokIymyg.js} +2 -2
  126. package/dist/admin/assets/{image-off-cxva5G-Y.js.map → image-off-CokIymyg.js.map} +1 -1
  127. package/dist/admin/assets/{inbox-CnzNfqt9.js → inbox-8AAyyM0T.js} +2 -2
  128. package/dist/admin/assets/{inbox-CnzNfqt9.js.map → inbox-8AAyyM0T.js.map} +1 -1
  129. package/dist/admin/assets/{inbox-B8c9Kj_z.js → inbox-97pzmuus.js} +2 -2
  130. package/dist/admin/assets/{inbox-B8c9Kj_z.js.map → inbox-97pzmuus.js.map} +1 -1
  131. package/dist/admin/assets/{index-D9KL7arJ.js → index-cpiZvLck.js} +4 -4
  132. package/dist/admin/assets/{index-D9KL7arJ.js.map → index-cpiZvLck.js.map} +1 -1
  133. package/dist/admin/assets/{key-round-CFJ61iCd.js → key-round-Dc4_SOi-.js} +2 -2
  134. package/dist/admin/assets/{key-round-CFJ61iCd.js.map → key-round-Dc4_SOi-.js.map} +1 -1
  135. package/dist/admin/assets/{languages-eh7U4anI.js → languages-DR2K97A5.js} +2 -2
  136. package/dist/admin/assets/{languages-eh7U4anI.js.map → languages-DR2K97A5.js.map} +1 -1
  137. package/dist/admin/assets/{layers-mGfmMsKE.js → layers-ZPmcbieN.js} +2 -2
  138. package/dist/admin/assets/{layers-mGfmMsKE.js.map → layers-ZPmcbieN.js.map} +1 -1
  139. package/dist/admin/assets/{link-2-off-DbZzRN_w.js → link-2-off-D_5_hkT7.js} +2 -2
  140. package/dist/admin/assets/{link-2-off-DbZzRN_w.js.map → link-2-off-D_5_hkT7.js.map} +1 -1
  141. package/dist/admin/assets/{link-b2pFaN-A.js → link-BnDFFyvi.js} +2 -2
  142. package/dist/admin/assets/{link-b2pFaN-A.js.map → link-BnDFFyvi.js.map} +1 -1
  143. package/dist/admin/assets/{locales-oBD0q1pN.js → locales-D-21t-l-.js} +2 -2
  144. package/dist/admin/assets/{locales-oBD0q1pN.js.map → locales-D-21t-l-.js.map} +1 -1
  145. package/dist/admin/assets/{media-5ks_0Rre.js → media-D7aimjyy.js} +2 -2
  146. package/dist/admin/assets/{media-5ks_0Rre.js.map → media-D7aimjyy.js.map} +1 -1
  147. package/dist/admin/assets/{media-Cs9LCQcz.js → media-Db0cHYNY.js} +2 -2
  148. package/dist/admin/assets/{media-Cs9LCQcz.js.map → media-Db0cHYNY.js.map} +1 -1
  149. package/dist/admin/assets/network-l_oLT5fa.js +2 -0
  150. package/dist/admin/assets/network-l_oLT5fa.js.map +1 -0
  151. package/dist/admin/assets/{pencil-C7eD5mlZ.js → pencil-Cn8c_gtv.js} +2 -2
  152. package/dist/admin/assets/{pencil-C7eD5mlZ.js.map → pencil-Cn8c_gtv.js.map} +1 -1
  153. package/dist/admin/assets/{plus-BDZHQBlU.js → plus-yxvf4aAT.js} +2 -2
  154. package/dist/admin/assets/{plus-BDZHQBlU.js.map → plus-yxvf4aAT.js.map} +1 -1
  155. package/dist/admin/assets/{preload-helper-CJNJ4S3k.js → preload-helper-pwSesV5P.js} +2 -2
  156. package/dist/admin/assets/{preload-helper-CJNJ4S3k.js.map → preload-helper-pwSesV5P.js.map} +1 -1
  157. package/dist/admin/assets/{publishing-C4YQ4XKt.js → publishing-PQLCOnvu.js} +2 -2
  158. package/dist/admin/assets/{publishing-C4YQ4XKt.js.map → publishing-PQLCOnvu.js.map} +1 -1
  159. package/dist/admin/assets/{radio-group-zOsGAYRP.js → radio-group-Fc2ENIMO.js} +2 -2
  160. package/dist/admin/assets/{radio-group-zOsGAYRP.js.map → radio-group-Fc2ENIMO.js.map} +1 -1
  161. package/dist/admin/assets/{rotate-ccw-DCWwb4Ga.js → rotate-ccw-BHa0BHug.js} +2 -2
  162. package/dist/admin/assets/{rotate-ccw-DCWwb4Ga.js.map → rotate-ccw-BHa0BHug.js.map} +1 -1
  163. package/dist/admin/assets/{schedules-DXrBSypK.js → schedules-B8y_GnqX.js} +2 -2
  164. package/dist/admin/assets/{schedules-DXrBSypK.js.map → schedules-B8y_GnqX.js.map} +1 -1
  165. package/dist/admin/assets/{schema-B7L9OJrX.js → schema-BJHcYshf.js} +2 -2
  166. package/dist/admin/assets/{schema-B7L9OJrX.js.map → schema-BJHcYshf.js.map} +1 -1
  167. package/dist/admin/assets/{scroll-text-BLThe4Ki.js → scroll-text-BHLmZpBB.js} +2 -2
  168. package/dist/admin/assets/{scroll-text-BLThe4Ki.js.map → scroll-text-BHLmZpBB.js.map} +1 -1
  169. package/dist/admin/assets/{search-CcJQqtRw.js → search-D3GGSaSL.js} +2 -2
  170. package/dist/admin/assets/{search-CcJQqtRw.js.map → search-D3GGSaSL.js.map} +1 -1
  171. package/dist/admin/assets/{searchSchemas-BCRZ1jyL.js → searchSchemas-C4dnYI9a.js} +2 -2
  172. package/dist/admin/assets/{searchSchemas-BCRZ1jyL.js.map → searchSchemas-C4dnYI9a.js.map} +1 -1
  173. package/dist/admin/assets/{sections-v5Flaor9.js → sections-BWoTaw2B.js} +2 -2
  174. package/dist/admin/assets/{sections-v5Flaor9.js.map → sections-BWoTaw2B.js.map} +1 -1
  175. package/dist/admin/assets/{sections-TIN_Nl1b.js → sections-eeTU636D.js} +2 -2
  176. package/dist/admin/assets/{sections-TIN_Nl1b.js.map → sections-eeTU636D.js.map} +1 -1
  177. package/dist/admin/assets/{select-CpHp3YOH.js → select-BMi4G1Ib.js} +2 -2
  178. package/dist/admin/assets/{select-CpHp3YOH.js.map → select-BMi4G1Ib.js.map} +1 -1
  179. package/dist/admin/assets/{send-CbP0Rc9_.js → send-Bqhmg9HP.js} +2 -2
  180. package/dist/admin/assets/{send-CbP0Rc9_.js.map → send-Bqhmg9HP.js.map} +1 -1
  181. package/dist/admin/assets/{seo-1n9s7YuX.js → seo-BL9C7Yt3.js} +2 -2
  182. package/dist/admin/assets/{seo-1n9s7YuX.js.map → seo-BL9C7Yt3.js.map} +1 -1
  183. package/dist/admin/assets/settings-D-nW3wQb.js +2 -0
  184. package/dist/admin/assets/settings-D-nW3wQb.js.map +1 -0
  185. package/dist/admin/assets/skeleton-BPLAzyDo.js +42 -0
  186. package/dist/admin/assets/skeleton-BPLAzyDo.js.map +1 -0
  187. package/dist/admin/assets/{snapshots-DkyyrWX3.js → snapshots-COSUeZBP.js} +2 -2
  188. package/dist/admin/assets/{snapshots-DkyyrWX3.js.map → snapshots-COSUeZBP.js.map} +1 -1
  189. package/dist/admin/assets/{sparkles-D88gf3vX.js → sparkles-CykwtKTd.js} +2 -2
  190. package/dist/admin/assets/{sparkles-D88gf3vX.js.map → sparkles-CykwtKTd.js.map} +1 -1
  191. package/dist/admin/assets/{stableId-DlNKh3HM.js → stableId-DfJkQUV3.js} +2 -2
  192. package/dist/admin/assets/{stableId-DlNKh3HM.js.map → stableId-DfJkQUV3.js.map} +1 -1
  193. package/dist/admin/assets/{store-jUWyOXDG.js → store-GOGeP63I.js} +2 -2
  194. package/dist/admin/assets/{store-jUWyOXDG.js.map → store-GOGeP63I.js.map} +1 -1
  195. package/dist/admin/assets/{switch-CijNGYkG.js → switch-XRU_EOoM.js} +2 -2
  196. package/dist/admin/assets/{switch-CijNGYkG.js.map → switch-XRU_EOoM.js.map} +1 -1
  197. package/dist/admin/assets/{table-DQ5ILlSh.js → table-CLVW6uJB.js} +2 -2
  198. package/dist/admin/assets/{table-DQ5ILlSh.js.map → table-CLVW6uJB.js.map} +1 -1
  199. package/dist/admin/assets/{tabs-CSqGW9Du.js → tabs-DB42Xljn.js} +3 -3
  200. package/dist/admin/assets/{tabs-CSqGW9Du.js.map → tabs-DB42Xljn.js.map} +1 -1
  201. package/dist/admin/assets/{textarea-FwSvwmyT.js → textarea-DcsLGCkq.js} +2 -2
  202. package/dist/admin/assets/{textarea-FwSvwmyT.js.map → textarea-DcsLGCkq.js.map} +1 -1
  203. package/dist/admin/assets/{theme-CHHVK8Ps.js → theme-CnSar6tt.js} +2 -2
  204. package/dist/admin/assets/{theme-CHHVK8Ps.js.map → theme-CnSar6tt.js.map} +1 -1
  205. package/dist/admin/assets/{titles-CQYc9nDQ.js → titles-DluirfBO.js} +2 -2
  206. package/dist/admin/assets/{titles-CQYc9nDQ.js.map → titles-DluirfBO.js.map} +1 -1
  207. package/dist/admin/assets/{tokens-C-20gLAT.js → tokens-CQooB8Sf.js} +2 -2
  208. package/dist/admin/assets/{tokens-C-20gLAT.js.map → tokens-CQooB8Sf.js.map} +1 -1
  209. package/dist/admin/assets/{tooltip-BXqFQv9N.js → tooltip-xfZn0Fla.js} +2 -2
  210. package/dist/admin/assets/{tooltip-BXqFQv9N.js.map → tooltip-xfZn0Fla.js.map} +1 -1
  211. package/dist/admin/assets/{undo-2-CLy2zklL.js → undo-2-B_QjuGmR.js} +2 -2
  212. package/dist/admin/assets/{undo-2-CLy2zklL.js.map → undo-2-B_QjuGmR.js.map} +1 -1
  213. package/dist/admin/assets/{useAuditLabels-BJF7M5RY.js → useAuditLabels-BZPAj3wG.js} +2 -2
  214. package/dist/admin/assets/{useAuditLabels-BJF7M5RY.js.map → useAuditLabels-BZPAj3wG.js.map} +1 -1
  215. package/dist/admin/assets/{useConfirmTarget-BUvlrGSW.js → useConfirmTarget-B7iLg66j.js} +2 -2
  216. package/dist/admin/assets/{useConfirmTarget-BUvlrGSW.js.map → useConfirmTarget-B7iLg66j.js.map} +1 -1
  217. package/dist/admin/assets/{useContentSchema-Cvtes34f.js → useContentSchema-BTyBYURX.js} +2 -2
  218. package/dist/admin/assets/{useContentSchema-Cvtes34f.js.map → useContentSchema-BTyBYURX.js.map} +1 -1
  219. package/dist/admin/assets/{useCursorPager-CzB6NDOB.js → useCursorPager-CTGOzl69.js} +2 -2
  220. package/dist/admin/assets/{useCursorPager-CzB6NDOB.js.map → useCursorPager-CTGOzl69.js.map} +1 -1
  221. package/dist/admin/assets/{useDiscardGuard-BAEGkGK9.js → useDiscardGuard-CSkPw8iq.js} +2 -2
  222. package/dist/admin/assets/{useDiscardGuard-BAEGkGK9.js.map → useDiscardGuard-CSkPw8iq.js.map} +1 -1
  223. package/dist/admin/assets/{useMediaPickerDialog-CiN_pias.js → useMediaPickerDialog-W0jhN-hi.js} +2 -2
  224. package/dist/admin/assets/{useMediaPickerDialog-CiN_pias.js.map → useMediaPickerDialog-W0jhN-hi.js.map} +1 -1
  225. package/dist/admin/assets/{useMediaUploader-CapEHBIt.js → useMediaUploader-BC5zCkQt.js} +2 -2
  226. package/dist/admin/assets/{useMediaUploader-CapEHBIt.js.map → useMediaUploader-BC5zCkQt.js.map} +1 -1
  227. package/dist/admin/assets/{usePaletteItems-wpn3ms6o.js → usePaletteItems-CqcKndUT.js} +2 -2
  228. package/dist/admin/assets/{usePaletteItems-wpn3ms6o.js.map → usePaletteItems-CqcKndUT.js.map} +1 -1
  229. package/dist/admin/assets/{usePlaces-6iTN15Xy.js → usePlaces-o4Os5Nbv.js} +2 -2
  230. package/dist/admin/assets/{usePlaces-6iTN15Xy.js.map → usePlaces-o4Os5Nbv.js.map} +1 -1
  231. package/dist/admin/assets/{useQueries-CYfcxI0Q.js → useQueries-BTnSD0k5.js} +2 -2
  232. package/dist/admin/assets/{useQueries-CYfcxI0Q.js.map → useQueries-BTnSD0k5.js.map} +1 -1
  233. package/dist/admin/assets/{useResolvedScheme-i1EwGHuF.js → useResolvedScheme-SoI-2Faf.js} +2 -2
  234. package/dist/admin/assets/{useResolvedScheme-i1EwGHuF.js.map → useResolvedScheme-SoI-2Faf.js.map} +1 -1
  235. package/dist/admin/assets/{useSchemaScopeAccess-WQKmj8_3.js → useSchemaScopeAccess-B4-31q7m.js} +2 -2
  236. package/dist/admin/assets/{useSchemaScopeAccess-WQKmj8_3.js.map → useSchemaScopeAccess-B4-31q7m.js.map} +1 -1
  237. package/dist/admin/assets/{users-BgTNDPXx.js → users-BVuapb3u.js} +2 -2
  238. package/dist/admin/assets/{users-BgTNDPXx.js.map → users-BVuapb3u.js.map} +1 -1
  239. package/dist/admin/assets/{users-B01EH47o.js → users-Oj5V5za_.js} +2 -2
  240. package/dist/admin/assets/{users-B01EH47o.js.map → users-Oj5V5za_.js.map} +1 -1
  241. package/dist/admin/assets/{zod-79xzBIrW.js → zod-cTJwCa4E.js} +2 -2
  242. package/dist/admin/assets/{zod-79xzBIrW.js.map → zod-cTJwCa4E.js.map} +1 -1
  243. package/dist/admin/index.html +55 -55
  244. package/dist/cli.js +128 -21
  245. package/dist/cli.js.map +1 -1
  246. package/dist/config.d.ts +1 -1
  247. package/dist/index.d.ts +1 -1
  248. package/dist/index.js +1 -1
  249. package/dist/{public-CTK82y3t.d.ts → public-C027OJX6.d.ts} +13 -2
  250. package/dist/s3Adapter-BipoQiwQ.js +125 -0
  251. package/dist/s3Adapter-BipoQiwQ.js.map +1 -0
  252. package/dist/{worker-BDYDbaea.js → worker-BU-V4qbH.js} +555 -411
  253. package/dist/worker-BU-V4qbH.js.map +1 -0
  254. package/package.json +8 -5
  255. package/dist/admin/assets/FormCheckboxGroup-BrXY6qBg.js +0 -2
  256. package/dist/admin/assets/FormCheckboxGroup-BrXY6qBg.js.map +0 -1
  257. package/dist/admin/assets/SecretReveal-Dhw_dYxe.js +0 -2
  258. package/dist/admin/assets/SecretReveal-Dhw_dYxe.js.map +0 -1
  259. package/dist/admin/assets/Structure-CoO3iah3.js +0 -2
  260. package/dist/admin/assets/chevron-left-D2DnQyeV.js +0 -2
  261. package/dist/admin/assets/cn-CL1YHRrS.js +0 -2
  262. package/dist/admin/assets/cn-CL1YHRrS.js.map +0 -1
  263. package/dist/admin/assets/coerce-B4MJTGg1.js +0 -2
  264. package/dist/admin/assets/network-DS8MW3AZ.js +0 -2
  265. package/dist/admin/assets/network-DS8MW3AZ.js.map +0 -1
  266. package/dist/admin/assets/settings-CuEO5l07.js +0 -2
  267. package/dist/admin/assets/settings-CuEO5l07.js.map +0 -1
  268. package/dist/admin/assets/skeleton-DElTumgk.js +0 -42
  269. package/dist/admin/assets/skeleton-DElTumgk.js.map +0 -1
  270. package/dist/worker-BDYDbaea.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{i as e}from"./cn-CL1YHRrS.js";var t={name:`key-round`,size:24,node:[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]};t.node;var n=e(t);export{n as t};
2
- //# sourceMappingURL=key-round-CFJ61iCd.js.map
1
+ import{i as e}from"./cn-CEPUgFbZ.js";var t={name:`key-round`,size:24,node:[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]};t.node;var n=e(t);export{n as t};
2
+ //# sourceMappingURL=key-round-Dc4_SOi-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"key-round-CFJ61iCd.js","names":["createLucideIcon","__iconData","KeyRound"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/key-round.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"key-round\",\n size: 24,\n node: [\n [\n \"path\",\n {\n d: \"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z\",\n key: \"1s6t7t\"\n }\n ],\n [\"circle\", { cx: \"16.5\", cy: \"7.5\", r: \".5\", fill: \"currentColor\", key: \"w0ekpg\" }]\n ]\n};\n__iconData.node;\nconst KeyRound = createLucideIcon(__iconData);\n\nexport { __iconData, KeyRound as default };\n//# sourceMappingURL=key-round.mjs.map\n"],"ignoreList":[0],"mappings":"qCASA,IAAMC,EAAa,CACjB,KAAM,YACN,KAAM,GACN,KAAM,CACJ,CACE,OACA,CACE,EAAG,6KACH,IAAK,QACP,CACF,EACA,CAAC,SAAU,CAAE,GAAI,OAAQ,GAAI,MAAO,EAAG,KAAM,KAAM,eAAgB,IAAK,QAAS,CAAC,CACpF,CACF,EACAA,EAAW,KACX,IAAMC,EAAWF,EAAiBC,CAAU"}
1
+ {"version":3,"file":"key-round-Dc4_SOi-.js","names":["createLucideIcon","__iconData","KeyRound"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/key-round.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"key-round\",\n size: 24,\n node: [\n [\n \"path\",\n {\n d: \"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z\",\n key: \"1s6t7t\"\n }\n ],\n [\"circle\", { cx: \"16.5\", cy: \"7.5\", r: \".5\", fill: \"currentColor\", key: \"w0ekpg\" }]\n ]\n};\n__iconData.node;\nconst KeyRound = createLucideIcon(__iconData);\n\nexport { __iconData, KeyRound as default };\n//# sourceMappingURL=key-round.mjs.map\n"],"ignoreList":[0],"mappings":"qCASA,IAAMC,EAAa,CACjB,KAAM,YACN,KAAM,GACN,KAAM,CACJ,CACE,OACA,CACE,EAAG,6KACH,IAAK,QACP,CACF,EACA,CAAC,SAAU,CAAE,GAAI,OAAQ,GAAI,MAAO,EAAG,KAAM,KAAM,eAAgB,IAAK,QAAS,CAAC,CACpF,CACF,EACAA,EAAW,KACX,IAAMC,EAAWF,EAAiBC,CAAU"}
@@ -1,2 +1,2 @@
1
- import{i as e}from"./cn-CL1YHRrS.js";var t={name:`languages`,size:24,node:[[`path`,{d:`m5 8 6 6`,key:`1wu5hv`}],[`path`,{d:`m4 14 6-6 2-3`,key:`1k1g8d`}],[`path`,{d:`M2 5h12`,key:`or177f`}],[`path`,{d:`M7 2h1`,key:`1t2jsx`}],[`path`,{d:`m22 22-5-10-5 10`,key:`don7ne`}],[`path`,{d:`M14 18h6`,key:`1m8k6r`}]]};t.node;var n=e(t);export{n as t};
2
- //# sourceMappingURL=languages-eh7U4anI.js.map
1
+ import{i as e}from"./cn-CEPUgFbZ.js";var t={name:`languages`,size:24,node:[[`path`,{d:`m5 8 6 6`,key:`1wu5hv`}],[`path`,{d:`m4 14 6-6 2-3`,key:`1k1g8d`}],[`path`,{d:`M2 5h12`,key:`or177f`}],[`path`,{d:`M7 2h1`,key:`1t2jsx`}],[`path`,{d:`m22 22-5-10-5 10`,key:`don7ne`}],[`path`,{d:`M14 18h6`,key:`1m8k6r`}]]};t.node;var n=e(t);export{n as t};
2
+ //# sourceMappingURL=languages-DR2K97A5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"languages-eh7U4anI.js","names":["createLucideIcon","__iconData","Languages"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/languages.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"languages\",\n size: 24,\n node: [\n [\"path\", { d: \"m5 8 6 6\", key: \"1wu5hv\" }],\n [\"path\", { d: \"m4 14 6-6 2-3\", key: \"1k1g8d\" }],\n [\"path\", { d: \"M2 5h12\", key: \"or177f\" }],\n [\"path\", { d: \"M7 2h1\", key: \"1t2jsx\" }],\n [\"path\", { d: \"m22 22-5-10-5 10\", key: \"don7ne\" }],\n [\"path\", { d: \"M14 18h6\", key: \"1m8k6r\" }]\n ]\n};\n__iconData.node;\nconst Languages = createLucideIcon(__iconData);\n\nexport { __iconData, Languages as default };\n//# sourceMappingURL=languages.mjs.map\n"],"ignoreList":[0],"mappings":"qCASA,IAAMC,EAAa,CACjB,KAAM,YACN,KAAM,GACN,KAAM,CACJ,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,gBAAiB,IAAK,QAAS,CAAC,EAC9C,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAS,CAAC,EACxC,CAAC,OAAQ,CAAE,EAAG,SAAU,IAAK,QAAS,CAAC,EACvC,CAAC,OAAQ,CAAE,EAAG,mBAAoB,IAAK,QAAS,CAAC,EACjD,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,CAC3C,CACF,EACAA,EAAW,KACX,IAAMC,EAAYF,EAAiBC,CAAU"}
1
+ {"version":3,"file":"languages-DR2K97A5.js","names":["createLucideIcon","__iconData","Languages"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/languages.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"languages\",\n size: 24,\n node: [\n [\"path\", { d: \"m5 8 6 6\", key: \"1wu5hv\" }],\n [\"path\", { d: \"m4 14 6-6 2-3\", key: \"1k1g8d\" }],\n [\"path\", { d: \"M2 5h12\", key: \"or177f\" }],\n [\"path\", { d: \"M7 2h1\", key: \"1t2jsx\" }],\n [\"path\", { d: \"m22 22-5-10-5 10\", key: \"don7ne\" }],\n [\"path\", { d: \"M14 18h6\", key: \"1m8k6r\" }]\n ]\n};\n__iconData.node;\nconst Languages = createLucideIcon(__iconData);\n\nexport { __iconData, Languages as default };\n//# sourceMappingURL=languages.mjs.map\n"],"ignoreList":[0],"mappings":"qCASA,IAAMC,EAAa,CACjB,KAAM,YACN,KAAM,GACN,KAAM,CACJ,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,gBAAiB,IAAK,QAAS,CAAC,EAC9C,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAS,CAAC,EACxC,CAAC,OAAQ,CAAE,EAAG,SAAU,IAAK,QAAS,CAAC,EACvC,CAAC,OAAQ,CAAE,EAAG,mBAAoB,IAAK,QAAS,CAAC,EACjD,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,CAC3C,CACF,EACAA,EAAW,KACX,IAAMC,EAAYF,EAAiBC,CAAU"}
@@ -1,2 +1,2 @@
1
- import{i as e}from"./cn-CL1YHRrS.js";var t={name:`layers`,size:24,node:[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]],aliases:[`layers-3`]};t.node;var n=e(t);export{n as t};
2
- //# sourceMappingURL=layers-mGfmMsKE.js.map
1
+ import{i as e}from"./cn-CEPUgFbZ.js";var t={name:`layers`,size:24,node:[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]],aliases:[`layers-3`]};t.node;var n=e(t);export{n as t};
2
+ //# sourceMappingURL=layers-ZPmcbieN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layers-mGfmMsKE.js","names":["createLucideIcon","__iconData","Layers"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/layers.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"layers\",\n size: 24,\n node: [\n [\n \"path\",\n {\n d: \"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z\",\n key: \"zw3jo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12\",\n key: \"1wduqc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17\",\n key: \"kqbvx6\"\n }\n ]\n ],\n aliases: [\"layers-3\"]\n};\n__iconData.node;\nconst Layers = createLucideIcon(__iconData);\n\nexport { __iconData, Layers as default };\n//# sourceMappingURL=layers.mjs.map\n"],"ignoreList":[0],"mappings":"qCASA,IAAMC,EAAa,CACjB,KAAM,SACN,KAAM,GACN,KAAM,CACJ,CACE,OACA,CACE,EAAG,+GACH,IAAK,OACP,CACF,EACA,CACE,OACA,CACE,EAAG,4EACH,IAAK,QACP,CACF,EACA,CACE,OACA,CACE,EAAG,4EACH,IAAK,QACP,CACF,CACF,EACA,QAAS,CAAC,UAAU,CACtB,EACAA,EAAW,KACX,IAAMC,EAASF,EAAiBC,CAAU"}
1
+ {"version":3,"file":"layers-ZPmcbieN.js","names":["createLucideIcon","__iconData","Layers"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/layers.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"layers\",\n size: 24,\n node: [\n [\n \"path\",\n {\n d: \"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z\",\n key: \"zw3jo\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12\",\n key: \"1wduqc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17\",\n key: \"kqbvx6\"\n }\n ]\n ],\n aliases: [\"layers-3\"]\n};\n__iconData.node;\nconst Layers = createLucideIcon(__iconData);\n\nexport { __iconData, Layers as default };\n//# sourceMappingURL=layers.mjs.map\n"],"ignoreList":[0],"mappings":"qCASA,IAAMC,EAAa,CACjB,KAAM,SACN,KAAM,GACN,KAAM,CACJ,CACE,OACA,CACE,EAAG,+GACH,IAAK,OACP,CACF,EACA,CACE,OACA,CACE,EAAG,4EACH,IAAK,QACP,CACF,EACA,CACE,OACA,CACE,EAAG,4EACH,IAAK,QACP,CACF,CACF,EACA,QAAS,CAAC,UAAU,CACtB,EACAA,EAAW,KACX,IAAMC,EAASF,EAAiBC,CAAU"}
@@ -1,2 +1,2 @@
1
- import{i as e}from"./cn-CL1YHRrS.js";var t={name:`arrow-right`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]};t.node;var n=e(t),r={name:`link-2-off`,size:24,node:[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7`,key:`10o201`}],[`path`,{d:`M15 7h2a5 5 0 0 1 4 8`,key:`1d3206`}],[`line`,{x1:`8`,x2:`12`,y1:`12`,y2:`12`,key:`rvw6j4`}],[`line`,{x1:`2`,x2:`22`,y1:`2`,y2:`22`,key:`a6p6uj`}]]};r.node;var i=e(r);export{n,i as t};
2
- //# sourceMappingURL=link-2-off-DbZzRN_w.js.map
1
+ import{i as e}from"./cn-CEPUgFbZ.js";var t={name:`arrow-right`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]};t.node;var n=e(t),r={name:`link-2-off`,size:24,node:[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7`,key:`10o201`}],[`path`,{d:`M15 7h2a5 5 0 0 1 4 8`,key:`1d3206`}],[`line`,{x1:`8`,x2:`12`,y1:`12`,y2:`12`,key:`rvw6j4`}],[`line`,{x1:`2`,x2:`22`,y1:`2`,y2:`22`,key:`a6p6uj`}]]};r.node;var i=e(r);export{n,i as t};
2
+ //# sourceMappingURL=link-2-off-D_5_hkT7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"link-2-off-DbZzRN_w.js","names":["__iconData","createLucideIcon","__iconData$1","ArrowRight","__iconData","Link2Off"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/arrow-right.mjs","../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/link-2-off.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"arrow-right\",\n size: 24,\n node: [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"m12 5 7 7-7 7\", key: \"xquz4c\" }]\n ]\n};\n__iconData.node;\nconst ArrowRight = createLucideIcon(__iconData);\n\nexport { __iconData, ArrowRight as default };\n//# sourceMappingURL=arrow-right.mjs.map\n","/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"link-2-off\",\n size: 24,\n node: [\n [\"path\", { d: \"M9 17H7A5 5 0 0 1 7 7\", key: \"10o201\" }],\n [\"path\", { d: \"M15 7h2a5 5 0 0 1 4 8\", key: \"1d3206\" }],\n [\"line\", { x1: \"8\", x2: \"12\", y1: \"12\", y2: \"12\", key: \"rvw6j4\" }],\n [\"line\", { x1: \"2\", x2: \"22\", y1: \"2\", y2: \"22\", key: \"a6p6uj\" }]\n ]\n};\n__iconData.node;\nconst Link2Off = createLucideIcon(__iconData);\n\nexport { __iconData, Link2Off as default };\n//# sourceMappingURL=link-2-off.mjs.map\n"],"ignoreList":[0,1],"mappings":"qCASA,IAAMA,EAAa,CACjB,KAAM,cACN,KAAM,GACN,KAAM,CACJ,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,gBAAiB,IAAK,QAAS,CAAC,CAChD,CACF,EACAA,EAAW,KACX,IAAMG,EAAaF,EAAiBD,CAAU,ECTxCI,EAAa,CACjB,KAAM,aACN,KAAM,GACN,KAAM,CACJ,CAAC,OAAQ,CAAE,EAAG,wBAAyB,IAAK,QAAS,CAAC,EACtD,CAAC,OAAQ,CAAE,EAAG,wBAAyB,IAAK,QAAS,CAAC,EACtD,CAAC,OAAQ,CAAE,GAAI,IAAK,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,IAAK,QAAS,CAAC,EACjE,CAAC,OAAQ,CAAE,GAAI,IAAK,GAAI,KAAM,GAAI,IAAK,GAAI,KAAM,IAAK,QAAS,CAAC,CAClE,CACF,EACAA,EAAW,KACX,IAAMC,EAAWJ,EAAiBG,CAAU"}
1
+ {"version":3,"file":"link-2-off-D_5_hkT7.js","names":["__iconData","createLucideIcon","__iconData$1","ArrowRight","__iconData","Link2Off"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/arrow-right.mjs","../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/link-2-off.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"arrow-right\",\n size: 24,\n node: [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"m12 5 7 7-7 7\", key: \"xquz4c\" }]\n ]\n};\n__iconData.node;\nconst ArrowRight = createLucideIcon(__iconData);\n\nexport { __iconData, ArrowRight as default };\n//# sourceMappingURL=arrow-right.mjs.map\n","/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"link-2-off\",\n size: 24,\n node: [\n [\"path\", { d: \"M9 17H7A5 5 0 0 1 7 7\", key: \"10o201\" }],\n [\"path\", { d: \"M15 7h2a5 5 0 0 1 4 8\", key: \"1d3206\" }],\n [\"line\", { x1: \"8\", x2: \"12\", y1: \"12\", y2: \"12\", key: \"rvw6j4\" }],\n [\"line\", { x1: \"2\", x2: \"22\", y1: \"2\", y2: \"22\", key: \"a6p6uj\" }]\n ]\n};\n__iconData.node;\nconst Link2Off = createLucideIcon(__iconData);\n\nexport { __iconData, Link2Off as default };\n//# sourceMappingURL=link-2-off.mjs.map\n"],"ignoreList":[0,1],"mappings":"qCASA,IAAMA,EAAa,CACjB,KAAM,cACN,KAAM,GACN,KAAM,CACJ,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,gBAAiB,IAAK,QAAS,CAAC,CAChD,CACF,EACAA,EAAW,KACX,IAAMG,EAAaF,EAAiBD,CAAU,ECTxCI,EAAa,CACjB,KAAM,aACN,KAAM,GACN,KAAM,CACJ,CAAC,OAAQ,CAAE,EAAG,wBAAyB,IAAK,QAAS,CAAC,EACtD,CAAC,OAAQ,CAAE,EAAG,wBAAyB,IAAK,QAAS,CAAC,EACtD,CAAC,OAAQ,CAAE,GAAI,IAAK,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,IAAK,QAAS,CAAC,EACjE,CAAC,OAAQ,CAAE,GAAI,IAAK,GAAI,KAAM,GAAI,IAAK,GAAI,KAAM,IAAK,QAAS,CAAC,CAClE,CACF,EACAA,EAAW,KACX,IAAMC,EAAWJ,EAAiBG,CAAU"}
@@ -1,2 +1,2 @@
1
- import{i as e}from"./cn-CL1YHRrS.js";var t={name:`link`,size:24,node:[[`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`,key:`1cjeqo`}],[`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`,key:`19qd67`}]]};t.node;var n=e(t);export{n as t};
2
- //# sourceMappingURL=link-b2pFaN-A.js.map
1
+ import{i as e}from"./cn-CEPUgFbZ.js";var t={name:`link`,size:24,node:[[`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`,key:`1cjeqo`}],[`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`,key:`19qd67`}]]};t.node;var n=e(t);export{n as t};
2
+ //# sourceMappingURL=link-BnDFFyvi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"link-b2pFaN-A.js","names":["createLucideIcon","__iconData","Link"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/link.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"link\",\n size: 24,\n node: [\n [\"path\", { d: \"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\", key: \"1cjeqo\" }],\n [\"path\", { d: \"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\", key: \"19qd67\" }]\n ]\n};\n__iconData.node;\nconst Link = createLucideIcon(__iconData);\n\nexport { __iconData, Link as default };\n//# sourceMappingURL=link.mjs.map\n"],"ignoreList":[0],"mappings":"qCASA,IAAMC,EAAa,CACjB,KAAM,OACN,KAAM,GACN,KAAM,CACJ,CAAC,OAAQ,CAAE,EAAG,8DAA+D,IAAK,QAAS,CAAC,EAC5F,CAAC,OAAQ,CAAE,EAAG,+DAAgE,IAAK,QAAS,CAAC,CAC/F,CACF,EACAA,EAAW,KACX,IAAMC,EAAOF,EAAiBC,CAAU"}
1
+ {"version":3,"file":"link-BnDFFyvi.js","names":["createLucideIcon","__iconData","Link"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/link.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"link\",\n size: 24,\n node: [\n [\"path\", { d: \"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\", key: \"1cjeqo\" }],\n [\"path\", { d: \"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\", key: \"19qd67\" }]\n ]\n};\n__iconData.node;\nconst Link = createLucideIcon(__iconData);\n\nexport { __iconData, Link as default };\n//# sourceMappingURL=link.mjs.map\n"],"ignoreList":[0],"mappings":"qCASA,IAAMC,EAAa,CACjB,KAAM,OACN,KAAM,GACN,KAAM,CACJ,CAAC,OAAQ,CAAE,EAAG,8DAA+D,IAAK,QAAS,CAAC,EAC5F,CAAC,OAAQ,CAAE,EAAG,+DAAgE,IAAK,QAAS,CAAC,CAC/F,CACF,EACAA,EAAW,KACX,IAAMC,EAAOF,EAAiBC,CAAU"}
@@ -1,2 +1,2 @@
1
- import{H as e,P as t,V as n,bt as r,l as i,s as a}from"./cn-CL1YHRrS.js";var o={silent:!0},s=()=>e({queryKey:t.schema.locales,queryFn:()=>i.locales.list(),meta:o}),c=()=>{let e=r();return()=>e.invalidateQueries({queryKey:t.schema.all})},l=()=>{let e=c();return n({mutationKey:[`locales`,`create`],meta:o,mutationFn:e=>a(()=>i.locales.create(e)),onSuccess:e})},u=()=>{let e=c();return n({mutationKey:[`locales`,`update`],meta:o,mutationFn:({code:e,input:t})=>a(()=>i.locales.update(e,t)),onSuccess:e})},d=()=>{let e=c();return n({mutationKey:[`locales`,`setDefault`],meta:o,mutationFn:e=>a(()=>i.locales.setDefault(e,!0)),onSuccess:e})},f=()=>{let e=c();return n({mutationKey:[`locales`,`delete`],meta:o,mutationFn:({code:e,acknowledged:t})=>a(()=>i.locales.remove(e,t)),onSuccess:e})};export{u as a,d as i,f as n,s as r,l as t};
2
- //# sourceMappingURL=locales-oBD0q1pN.js.map
1
+ import{H as e,P as t,V as n,bt as r,l as i,s as a}from"./cn-CEPUgFbZ.js";var o={silent:!0},s=()=>e({queryKey:t.schema.locales,queryFn:()=>i.locales.list(),meta:o}),c=()=>{let e=r();return()=>e.invalidateQueries({queryKey:t.schema.all})},l=()=>{let e=c();return n({mutationKey:[`locales`,`create`],meta:o,mutationFn:e=>a(()=>i.locales.create(e)),onSuccess:e})},u=()=>{let e=c();return n({mutationKey:[`locales`,`update`],meta:o,mutationFn:({code:e,input:t})=>a(()=>i.locales.update(e,t)),onSuccess:e})},d=()=>{let e=c();return n({mutationKey:[`locales`,`setDefault`],meta:o,mutationFn:e=>a(()=>i.locales.setDefault(e,!0)),onSuccess:e})},f=()=>{let e=c();return n({mutationKey:[`locales`,`delete`],meta:o,mutationFn:({code:e,acknowledged:t})=>a(()=>i.locales.remove(e,t)),onSuccess:e})};export{u as a,d as i,f as n,s as r,l as t};
2
+ //# sourceMappingURL=locales-D-21t-l-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"locales-oBD0q1pN.js","names":["useQuery","queryKeys","useMutation","useQueryClient","adminApi","withCsrf","silent","useLocales","useInvalidateSchema","queryClient","useCreateLocale","invalidate","input","useUpdateLocale","code","useSetDefaultLocale","useDeleteLocale","acknowledged"],"sources":["../../src/api/locales.ts"],"sourcesContent":["import type { CreateLocaleInput, UpdateLocaleInput } from '@shapio/client';\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { adminApi } from './client';\nimport { withCsrf } from './csrf';\nimport { queryKeys } from './queryKeys';\n\nconst silent = { silent: true } as const;\n\nexport const useLocales = () =>\n useQuery({ queryKey: queryKeys.schema.locales, queryFn: () => adminApi.locales.list(), meta: silent });\n\n/** Locales are part of the schema snapshot: every change refreshes everything schema-derived. */\nconst useInvalidateSchema = () => {\n const queryClient = useQueryClient();\n return () => queryClient.invalidateQueries({ queryKey: queryKeys.schema.all });\n};\n\nexport const useCreateLocale = () => {\n const invalidate = useInvalidateSchema();\n return useMutation({\n mutationKey: ['locales', 'create'],\n meta: silent,\n mutationFn: (input: CreateLocaleInput) => withCsrf(() => adminApi.locales.create(input)),\n onSuccess: invalidate,\n });\n};\n\nexport const useUpdateLocale = () => {\n const invalidate = useInvalidateSchema();\n return useMutation({\n mutationKey: ['locales', 'update'],\n meta: silent,\n mutationFn: ({ code, input }: { code: string; input: UpdateLocaleInput }) =>\n withCsrf(() => adminApi.locales.update(code, input)),\n onSuccess: invalidate,\n });\n};\n\nexport const useSetDefaultLocale = () => {\n const invalidate = useInvalidateSchema();\n return useMutation({\n mutationKey: ['locales', 'setDefault'],\n meta: silent,\n mutationFn: (code: string) => withCsrf(() => adminApi.locales.setDefault(code, true)),\n onSuccess: invalidate,\n });\n};\n\n/** Without the acknowledgement, a locale holding content is refused with its content count (409). */\nexport const useDeleteLocale = () => {\n const invalidate = useInvalidateSchema();\n return useMutation({\n mutationKey: ['locales', 'delete'],\n meta: silent,\n mutationFn: ({ code, acknowledged }: { code: string; acknowledged: boolean }) =>\n withCsrf(() => adminApi.locales.remove(code, acknowledged)),\n onSuccess: invalidate,\n });\n};\n"],"mappings":"yEAMA,IAAMM,EAAS,CAAE,OAAQ,EAAK,EAEjBC,MACXP,EAAS,CAAE,SAAUC,EAAU,OAAO,QAAS,YAAeG,EAAS,QAAQ,KAAK,EAAG,KAAME,CAAO,CAAC,EAGjGE,MAA4B,CAChC,IAAMC,EAAcN,EAAe,EACnC,UAAaM,EAAY,kBAAkB,CAAE,SAAUR,EAAU,OAAO,GAAI,CAAC,CAC/E,EAEaS,MAAwB,CACnC,IAAMC,EAAaH,EAAoB,EACvC,OAAON,EAAY,CACjB,YAAa,CAAC,UAAW,QAAQ,EACjC,KAAMI,EACN,WAAa,GAA6BD,MAAeD,EAAS,QAAQ,OAAOQ,CAAK,CAAC,EACvF,UAAWD,CACb,CAAC,CACH,EAEaE,MAAwB,CACnC,IAAMF,EAAaH,EAAoB,EACvC,OAAON,EAAY,CACjB,YAAa,CAAC,UAAW,QAAQ,EACjC,KAAMI,EACN,YAAa,CAAE,OAAM,WACnBD,MAAeD,EAAS,QAAQ,OAAOU,EAAMF,CAAK,CAAC,EACrD,UAAWD,CACb,CAAC,CACH,EAEaI,MAA4B,CACvC,IAAMJ,EAAaH,EAAoB,EACvC,OAAON,EAAY,CACjB,YAAa,CAAC,UAAW,YAAY,EACrC,KAAMI,EACN,WAAa,GAAiBD,MAAeD,EAAS,QAAQ,WAAWU,EAAM,EAAI,CAAC,EACpF,UAAWH,CACb,CAAC,CACH,EAGaK,MAAwB,CACnC,IAAML,EAAaH,EAAoB,EACvC,OAAON,EAAY,CACjB,YAAa,CAAC,UAAW,QAAQ,EACjC,KAAMI,EACN,YAAa,CAAE,OAAM,kBACnBD,MAAeD,EAAS,QAAQ,OAAOU,EAAMG,CAAY,CAAC,EAC5D,UAAWN,CACb,CAAC,CACH"}
1
+ {"version":3,"file":"locales-D-21t-l-.js","names":["useQuery","queryKeys","useMutation","useQueryClient","adminApi","withCsrf","silent","useLocales","useInvalidateSchema","queryClient","useCreateLocale","invalidate","input","useUpdateLocale","code","useSetDefaultLocale","useDeleteLocale","acknowledged"],"sources":["../../src/api/locales.ts"],"sourcesContent":["import type { CreateLocaleInput, UpdateLocaleInput } from '@shapio/client';\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { adminApi } from './client';\nimport { withCsrf } from './csrf';\nimport { queryKeys } from './queryKeys';\n\nconst silent = { silent: true } as const;\n\nexport const useLocales = () =>\n useQuery({ queryKey: queryKeys.schema.locales, queryFn: () => adminApi.locales.list(), meta: silent });\n\n/** Locales are part of the schema snapshot: every change refreshes everything schema-derived. */\nconst useInvalidateSchema = () => {\n const queryClient = useQueryClient();\n return () => queryClient.invalidateQueries({ queryKey: queryKeys.schema.all });\n};\n\nexport const useCreateLocale = () => {\n const invalidate = useInvalidateSchema();\n return useMutation({\n mutationKey: ['locales', 'create'],\n meta: silent,\n mutationFn: (input: CreateLocaleInput) => withCsrf(() => adminApi.locales.create(input)),\n onSuccess: invalidate,\n });\n};\n\nexport const useUpdateLocale = () => {\n const invalidate = useInvalidateSchema();\n return useMutation({\n mutationKey: ['locales', 'update'],\n meta: silent,\n mutationFn: ({ code, input }: { code: string; input: UpdateLocaleInput }) =>\n withCsrf(() => adminApi.locales.update(code, input)),\n onSuccess: invalidate,\n });\n};\n\nexport const useSetDefaultLocale = () => {\n const invalidate = useInvalidateSchema();\n return useMutation({\n mutationKey: ['locales', 'setDefault'],\n meta: silent,\n mutationFn: (code: string) => withCsrf(() => adminApi.locales.setDefault(code, true)),\n onSuccess: invalidate,\n });\n};\n\n/** Without the acknowledgement, a locale holding content is refused with its content count (409). */\nexport const useDeleteLocale = () => {\n const invalidate = useInvalidateSchema();\n return useMutation({\n mutationKey: ['locales', 'delete'],\n meta: silent,\n mutationFn: ({ code, acknowledged }: { code: string; acknowledged: boolean }) =>\n withCsrf(() => adminApi.locales.remove(code, acknowledged)),\n onSuccess: invalidate,\n });\n};\n"],"mappings":"yEAMA,IAAMM,EAAS,CAAE,OAAQ,EAAK,EAEjBC,MACXP,EAAS,CAAE,SAAUC,EAAU,OAAO,QAAS,YAAeG,EAAS,QAAQ,KAAK,EAAG,KAAME,CAAO,CAAC,EAGjGE,MAA4B,CAChC,IAAMC,EAAcN,EAAe,EACnC,UAAaM,EAAY,kBAAkB,CAAE,SAAUR,EAAU,OAAO,GAAI,CAAC,CAC/E,EAEaS,MAAwB,CACnC,IAAMC,EAAaH,EAAoB,EACvC,OAAON,EAAY,CACjB,YAAa,CAAC,UAAW,QAAQ,EACjC,KAAMI,EACN,WAAa,GAA6BD,MAAeD,EAAS,QAAQ,OAAOQ,CAAK,CAAC,EACvF,UAAWD,CACb,CAAC,CACH,EAEaE,MAAwB,CACnC,IAAMF,EAAaH,EAAoB,EACvC,OAAON,EAAY,CACjB,YAAa,CAAC,UAAW,QAAQ,EACjC,KAAMI,EACN,YAAa,CAAE,OAAM,WACnBD,MAAeD,EAAS,QAAQ,OAAOU,EAAMF,CAAK,CAAC,EACrD,UAAWD,CACb,CAAC,CACH,EAEaI,MAA4B,CACvC,IAAMJ,EAAaH,EAAoB,EACvC,OAAON,EAAY,CACjB,YAAa,CAAC,UAAW,YAAY,EACrC,KAAMI,EACN,WAAa,GAAiBD,MAAeD,EAAS,QAAQ,WAAWU,EAAM,EAAI,CAAC,EACpF,UAAWH,CACb,CAAC,CACH,EAGaK,MAAwB,CACnC,IAAML,EAAaH,EAAoB,EACvC,OAAON,EAAY,CACjB,YAAa,CAAC,UAAW,QAAQ,EACjC,KAAMI,EACN,YAAa,CAAE,OAAM,kBACnBD,MAAeD,EAAS,QAAQ,OAAOU,EAAMG,CAAY,CAAC,EAC5D,UAAWN,CACb,CAAC,CACH"}
@@ -1,2 +1,2 @@
1
- import{$ as e,H as t,P as n,U as r,V as i,bt as a,l as o,nt as s,s as c,tt as l,ut as u}from"./cn-CL1YHRrS.js";var d=class extends e{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type=`infinite`,super.setOptions(e)}getOptimisticResult(e){return e._type=`infinite`,super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`forward`}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`backward`}}})}createResult(e,t){let{state:n}=e,r=super.createResult(e,t),{isFetching:i,isRefetching:a,isError:o,isRefetchError:c}=r,u=n.fetchMeta?.fetchMore?.direction,d=o&&u===`forward`,f=i&&u===`forward`,p=o&&u===`backward`,m=i&&u===`backward`;return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:l(t,n.data),hasPreviousPage:s(t,n.data),isFetchNextPageError:d,isFetchingNextPage:f,isFetchPreviousPageError:p,isFetchingPreviousPage:m,isRefetchError:c&&!d&&!p,isRefetching:a&&!f&&!m}}};function f(e,t){return r(e,d,t)}var p={silent:!0},m=2e3,h=e=>e.status===`processing`||e.variants.some(e=>e.status===`pending`),g=()=>t({queryKey:n.media.folders,queryFn:()=>o.media.folders.list()}),_=e=>f({queryKey:n.media.assets(e),queryFn:({pageParam:t})=>o.media.assets.list({...e,limit:48,...t?{cursor:t}:{}}),initialPageParam:void 0,getNextPageParam:e=>e.nextCursor??void 0,placeholderData:u,refetchInterval:e=>e.state.data?.pages.some(e=>e.items.some(h))?m:!1}),v=e=>t({queryKey:n.media.asset(e??``),queryFn:()=>o.media.assets.get(e??``),enabled:e!==void 0,refetchInterval:e=>e.state.data&&h(e.state.data)?m:!1}),y=e=>t({queryKey:n.media.usage(e??``),queryFn:()=>o.media.assets.usage(e??``),enabled:e!==void 0,meta:p}),b=()=>{let e=a();return()=>e.invalidateQueries({queryKey:n.media.all})},x=()=>{let e=a(),t=b();return i({mutationKey:[`media`,`assets`,`update`],meta:p,mutationFn:({id:e,input:t})=>c(()=>o.media.assets.update(e,t)),onSuccess:r=>(e.setQueryData(n.media.asset(r.id),r),t())})},S=()=>{let e=b();return i({mutationKey:[`media`,`assets`,`delete`],meta:p,mutationFn:({id:e,force:t})=>c(()=>o.media.assets.remove(e,{force:t})),onSuccess:e})},C=()=>{let e=b();return i({mutationKey:[`media`,`assets`,`move`],mutationFn:e=>c(()=>o.media.assets.move(e)),onSettled:e})},w=()=>{let e=b();return i({mutationKey:[`media`,`folders`,`create`],meta:p,mutationFn:e=>c(()=>o.media.folders.create(e)),onSuccess:e})},T=()=>{let e=b();return i({mutationKey:[`media`,`folders`,`update`],meta:p,mutationFn:({id:e,input:t})=>c(()=>o.media.folders.update(e,t)),onSuccess:e})},E=()=>{let e=b();return i({mutationKey:[`media`,`folders`,`delete`],mutationFn:e=>c(()=>o.media.folders.remove(e)),onSettled:e})};export{_ as a,C as c,f as d,v as i,x as l,S as n,g as o,E as r,y as s,w as t,T as u};
2
- //# sourceMappingURL=media-5ks_0Rre.js.map
1
+ import{$ as e,H as t,P as n,U as r,V as i,bt as a,l as o,nt as s,s as c,tt as l,ut as u}from"./cn-CEPUgFbZ.js";var d=class extends e{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type=`infinite`,super.setOptions(e)}getOptimisticResult(e){return e._type=`infinite`,super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`forward`}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`backward`}}})}createResult(e,t){let{state:n}=e,r=super.createResult(e,t),{isFetching:i,isRefetching:a,isError:o,isRefetchError:c}=r,u=n.fetchMeta?.fetchMore?.direction,d=o&&u===`forward`,f=i&&u===`forward`,p=o&&u===`backward`,m=i&&u===`backward`;return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:l(t,n.data),hasPreviousPage:s(t,n.data),isFetchNextPageError:d,isFetchingNextPage:f,isFetchPreviousPageError:p,isFetchingPreviousPage:m,isRefetchError:c&&!d&&!p,isRefetching:a&&!f&&!m}}};function f(e,t){return r(e,d,t)}var p={silent:!0},m=2e3,h=e=>e.status===`processing`||e.variants.some(e=>e.status===`pending`),g=()=>t({queryKey:n.media.folders,queryFn:()=>o.media.folders.list()}),_=e=>f({queryKey:n.media.assets(e),queryFn:({pageParam:t})=>o.media.assets.list({...e,limit:48,...t?{cursor:t}:{}}),initialPageParam:void 0,getNextPageParam:e=>e.nextCursor??void 0,placeholderData:u,refetchInterval:e=>e.state.data?.pages.some(e=>e.items.some(h))?m:!1}),v=e=>t({queryKey:n.media.asset(e??``),queryFn:()=>o.media.assets.get(e??``),enabled:e!==void 0,refetchInterval:e=>e.state.data&&h(e.state.data)?m:!1}),y=e=>t({queryKey:n.media.usage(e??``),queryFn:()=>o.media.assets.usage(e??``),enabled:e!==void 0,meta:p}),b=()=>{let e=a();return()=>e.invalidateQueries({queryKey:n.media.all})},x=()=>{let e=a(),t=b();return i({mutationKey:[`media`,`assets`,`update`],meta:p,mutationFn:({id:e,input:t})=>c(()=>o.media.assets.update(e,t)),onSuccess:r=>(e.setQueryData(n.media.asset(r.id),r),t())})},S=()=>{let e=b();return i({mutationKey:[`media`,`assets`,`delete`],meta:p,mutationFn:({id:e,force:t})=>c(()=>o.media.assets.remove(e,{force:t})),onSuccess:e})},C=()=>{let e=b();return i({mutationKey:[`media`,`assets`,`move`],mutationFn:e=>c(()=>o.media.assets.move(e)),onSettled:e})},w=()=>{let e=b();return i({mutationKey:[`media`,`folders`,`create`],meta:p,mutationFn:e=>c(()=>o.media.folders.create(e)),onSuccess:e})},T=()=>{let e=b();return i({mutationKey:[`media`,`folders`,`update`],meta:p,mutationFn:({id:e,input:t})=>c(()=>o.media.folders.update(e,t)),onSuccess:e})},E=()=>{let e=b();return i({mutationKey:[`media`,`folders`,`delete`],mutationFn:e=>c(()=>o.media.folders.remove(e)),onSettled:e})};export{_ as a,C as c,f as d,v as i,x as l,S as n,g as o,E as r,y as s,w as t,T as u};
2
+ //# sourceMappingURL=media-D7aimjyy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media-5ks_0Rre.js","names":["QueryObserver","useQuery","queryKeys","useBaseQuery","useMutation","useQueryClient","adminApi","hasPreviousPage","withCsrf","hasNextPage","keepPreviousData","InfiniteQueryObserver","client","options","query","parentResult","fetchDirection","state","isFetchNextPageError","isError","isFetchingNextPage","isFetching","isFetchPreviousPageError","isFetchingPreviousPage","isRefetchError","isRefetching","useInfiniteQuery","queryClient","silent","PROCESSING_POLL_MS","isProcessing","asset","variant","useMediaFolders","useMediaAssets","pageParam","page","useMediaAsset","id","useMediaUsage","useInvalidateMedia","useUpdateMediaAsset","invalidate","input","useDeleteMediaAsset","useMoveMediaAssets","useCreateMediaFolder","useUpdateMediaFolder","useDeleteMediaFolder"],"sources":["../../../../node_modules/.pnpm/@tanstack+query-core@5.104.0/node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js","../../../../node_modules/.pnpm/@tanstack+react-query@5.104.0_react@19.3.0/node_modules/@tanstack/react-query/build/modern/useInfiniteQuery.js","../../src/api/media.ts"],"sourcesContent":["import { hasNextPage, hasPreviousPage } from \"./infiniteQueryBehavior.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\n//#region src/infiniteQueryObserver.ts\n/**\n* An `InfiniteQueryObserver` extends `QueryObserver` to observe and switch\n* between infinite queries. It augments the base `QueryObserverResult` with\n* infinite-query-specific fields and methods, such as `hasNextPage` and\n* `fetchNextPage`, and is the primitive that framework adapters (e.g.\n* `useInfiniteQuery`) build their hooks on top of.\n*\n* @example\n* ```ts\n* const observer = new InfiniteQueryObserver(queryClient, {\n* queryKey: ['projects'],\n* queryFn: ({ pageParam }) => fetchProjects(pageParam),\n* initialPageParam: 0,\n* getNextPageParam: (lastPage) => lastPage.nextCursor,\n* })\n*\n* const unsubscribe = observer.subscribe((result) => console.log(result))\n* ```\n*/\nvar InfiniteQueryObserver = class extends QueryObserver {\n\tconstructor(client, options) {\n\t\tsuper(client, options);\n\t}\n\tbindMethods() {\n\t\tsuper.bindMethods();\n\t\tthis.fetchNextPage = this.fetchNextPage.bind(this);\n\t\tthis.fetchPreviousPage = this.fetchPreviousPage.bind(this);\n\t}\n\t/**\n\t* Updates the observer's options. Behaves the same as\n\t* `QueryObserver.setOptions`, additionally marking the options as\n\t* belonging to an infinite query before delegating to the base\n\t* implementation.\n\t*/\n\tsetOptions(options) {\n\t\toptions._type = \"infinite\";\n\t\tsuper.setOptions(options);\n\t}\n\t/**\n\t* The infinite-query counterpart of {@link QueryObserver#getOptimisticResult}, marking the\n\t* options as an infinite query before delegating to it. Called by framework adapters (e.g.\n\t* `useInfiniteQuery`) ahead of subscribing, to compute the current `InfiniteQueryObserverResult`\n\t* synchronously.\n\t*/\n\tgetOptimisticResult(options) {\n\t\toptions._type = \"infinite\";\n\t\treturn super.getOptimisticResult(options);\n\t}\n\t/**\n\t* Fetches the next page of the infinite query and returns a promise that\n\t* resolves with the resulting `InfiniteQueryObserverResult`. The page\n\t* param used for the fetch is determined by `getNextPageParam`, which\n\t* receives the current pages/page params and whose result also determines\n\t* `hasNextPage`.\n\t*\n\t* @example\n\t* ```ts\n\t* const { hasNextPage } = observer.getCurrentResult()\n\t*\n\t* if (hasNextPage) {\n\t* await observer.fetchNextPage()\n\t* }\n\t* ```\n\t*\n\t* @see {@link InfiniteQueryObserver#fetchPreviousPage}\n\t*/\n\tfetchNextPage(options) {\n\t\treturn this.fetch({\n\t\t\t...options,\n\t\t\tmeta: { fetchMore: { direction: \"forward\" } }\n\t\t});\n\t}\n\t/**\n\t* Fetches the previous page of the infinite query and returns a promise\n\t* that resolves with the resulting `InfiniteQueryObserverResult`. The page\n\t* param used for the fetch is determined by `getPreviousPageParam`, which\n\t* receives the current pages/page params and whose result also determines\n\t* `hasPreviousPage`.\n\t*\n\t* @example\n\t* ```ts\n\t* const { hasPreviousPage } = observer.getCurrentResult()\n\t*\n\t* if (hasPreviousPage) {\n\t* await observer.fetchPreviousPage()\n\t* }\n\t* ```\n\t*\n\t* @see {@link InfiniteQueryObserver#fetchNextPage}\n\t*/\n\tfetchPreviousPage(options) {\n\t\treturn this.fetch({\n\t\t\t...options,\n\t\t\tmeta: { fetchMore: { direction: \"backward\" } }\n\t\t});\n\t}\n\tcreateResult(query, options) {\n\t\tconst { state } = query;\n\t\tconst parentResult = super.createResult(query, options);\n\t\tconst { isFetching, isRefetching, isError, isRefetchError } = parentResult;\n\t\tconst fetchDirection = state.fetchMeta?.fetchMore?.direction;\n\t\tconst isFetchNextPageError = isError && fetchDirection === \"forward\";\n\t\tconst isFetchingNextPage = isFetching && fetchDirection === \"forward\";\n\t\tconst isFetchPreviousPageError = isError && fetchDirection === \"backward\";\n\t\tconst isFetchingPreviousPage = isFetching && fetchDirection === \"backward\";\n\t\treturn {\n\t\t\t...parentResult,\n\t\t\tfetchNextPage: this.fetchNextPage,\n\t\t\tfetchPreviousPage: this.fetchPreviousPage,\n\t\t\thasNextPage: hasNextPage(options, state.data),\n\t\t\thasPreviousPage: hasPreviousPage(options, state.data),\n\t\t\tisFetchNextPageError,\n\t\t\tisFetchingNextPage,\n\t\t\tisFetchPreviousPageError,\n\t\t\tisFetchingPreviousPage,\n\t\t\tisRefetchError: isRefetchError && !isFetchNextPageError && !isFetchPreviousPageError,\n\t\t\tisRefetching: isRefetching && !isFetchingNextPage && !isFetchingPreviousPage\n\t\t};\n\t}\n};\n//#endregion\nexport { InfiniteQueryObserver };\n\n//# sourceMappingURL=infiniteQueryObserver.js.map","\"use client\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nimport { InfiniteQueryObserver } from \"@tanstack/query-core\";\n//#region src/useInfiniteQuery.ts\nfunction useInfiniteQuery(options, queryClient) {\n\treturn useBaseQuery(options, InfiniteQueryObserver, queryClient);\n}\n//#endregion\nexport { useInfiniteQuery };\n\n//# sourceMappingURL=useInfiniteQuery.js.map","import type {\n CreateMediaFolderInput,\n MediaAsset,\n MediaAssetQuery,\n MoveMediaAssetsInput,\n UpdateMediaAssetInput,\n UpdateMediaFolderInput,\n} from '@shapio/client';\nimport {\n keepPreviousData,\n useInfiniteQuery,\n useMutation,\n useQuery,\n useQueryClient,\n} from '@tanstack/react-query';\nimport { adminApi } from './client';\nimport { withCsrf } from './csrf';\nimport { queryKeys } from './queryKeys';\n\nconst silent = { silent: true } as const;\n\nexport const MEDIA_PAGE_SIZE = 48;\n/** How often an asset whose variants are still being made is re-read. */\nconst PROCESSING_POLL_MS = 2000;\n\nconst isProcessing = (asset: MediaAsset) =>\n asset.status === 'processing' || asset.variants.some((variant) => variant.status === 'pending');\n\nexport const useMediaFolders = () =>\n useQuery({ queryKey: queryKeys.media.folders, queryFn: () => adminApi.media.folders.list() });\n\n/** Newest first, a page at a time; refreshed while anything shown is still processing. */\nexport const useMediaAssets = (query: Omit<MediaAssetQuery, 'cursor' | 'limit'>) =>\n useInfiniteQuery({\n queryKey: queryKeys.media.assets(query),\n queryFn: ({ pageParam }) =>\n adminApi.media.assets.list({\n ...query,\n limit: MEDIA_PAGE_SIZE,\n ...(pageParam ? { cursor: pageParam } : {}),\n }),\n initialPageParam: undefined as string | undefined,\n getNextPageParam: (page) => page.nextCursor ?? undefined,\n placeholderData: keepPreviousData,\n refetchInterval: (state) =>\n state.state.data?.pages.some((page) => page.items.some(isProcessing)) ? PROCESSING_POLL_MS : false,\n });\n\nexport const useMediaAsset = (id: string | undefined) =>\n useQuery({\n queryKey: queryKeys.media.asset(id ?? ''),\n queryFn: () => adminApi.media.assets.get(id ?? ''),\n enabled: id !== undefined,\n refetchInterval: (state) =>\n state.state.data && isProcessing(state.state.data) ? PROCESSING_POLL_MS : false,\n });\n\nexport const useMediaUsage = (id: string | undefined) =>\n useQuery({\n queryKey: queryKeys.media.usage(id ?? ''),\n queryFn: () => adminApi.media.assets.usage(id ?? ''),\n enabled: id !== undefined,\n meta: silent,\n });\n\nconst useInvalidateMedia = () => {\n const queryClient = useQueryClient();\n return () => queryClient.invalidateQueries({ queryKey: queryKeys.media.all });\n};\n\nexport const useUpdateMediaAsset = () => {\n const queryClient = useQueryClient();\n const invalidate = useInvalidateMedia();\n return useMutation({\n mutationKey: ['media', 'assets', 'update'],\n meta: silent,\n mutationFn: ({ id, input }: { id: string; input: UpdateMediaAssetInput }) =>\n withCsrf(() => adminApi.media.assets.update(id, input)),\n onSuccess: (asset) => {\n queryClient.setQueryData(queryKeys.media.asset(asset.id), asset);\n return invalidate();\n },\n });\n};\n\n/** 409 MEDIA_IN_USE comes back to the caller (the delete dialog explains it), so no toast here. */\nexport const useDeleteMediaAsset = () => {\n const invalidate = useInvalidateMedia();\n return useMutation({\n mutationKey: ['media', 'assets', 'delete'],\n meta: silent,\n mutationFn: ({ id, force }: { id: string; force: boolean }) =>\n withCsrf(() => adminApi.media.assets.remove(id, { force })),\n onSuccess: invalidate,\n });\n};\n\nexport const useMoveMediaAssets = () => {\n const invalidate = useInvalidateMedia();\n return useMutation({\n mutationKey: ['media', 'assets', 'move'],\n mutationFn: (input: MoveMediaAssetsInput) => withCsrf(() => adminApi.media.assets.move(input)),\n onSettled: invalidate,\n });\n};\n\nexport const useCreateMediaFolder = () => {\n const invalidate = useInvalidateMedia();\n return useMutation({\n mutationKey: ['media', 'folders', 'create'],\n meta: silent,\n mutationFn: (input: CreateMediaFolderInput) => withCsrf(() => adminApi.media.folders.create(input)),\n onSuccess: invalidate,\n });\n};\n\nexport const useUpdateMediaFolder = () => {\n const invalidate = useInvalidateMedia();\n return useMutation({\n mutationKey: ['media', 'folders', 'update'],\n meta: silent,\n mutationFn: ({ id, input }: { id: string; input: UpdateMediaFolderInput }) =>\n withCsrf(() => adminApi.media.folders.update(id, input)),\n onSuccess: invalidate,\n });\n};\n\nexport const useDeleteMediaFolder = () => {\n const invalidate = useInvalidateMedia();\n return useMutation({\n mutationKey: ['media', 'folders', 'delete'],\n mutationFn: (id: string) => withCsrf(() => adminApi.media.folders.remove(id)),\n onSettled: invalidate,\n });\n};\n"],"ignoreList":[0,1],"mappings":"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"}
1
+ {"version":3,"file":"media-D7aimjyy.js","names":["QueryObserver","useQuery","queryKeys","useBaseQuery","useMutation","useQueryClient","adminApi","hasPreviousPage","withCsrf","hasNextPage","keepPreviousData","InfiniteQueryObserver","client","options","query","parentResult","fetchDirection","state","isFetchNextPageError","isError","isFetchingNextPage","isFetching","isFetchPreviousPageError","isFetchingPreviousPage","isRefetchError","isRefetching","useInfiniteQuery","queryClient","silent","PROCESSING_POLL_MS","isProcessing","asset","variant","useMediaFolders","useMediaAssets","pageParam","page","useMediaAsset","id","useMediaUsage","useInvalidateMedia","useUpdateMediaAsset","invalidate","input","useDeleteMediaAsset","useMoveMediaAssets","useCreateMediaFolder","useUpdateMediaFolder","useDeleteMediaFolder"],"sources":["../../../../node_modules/.pnpm/@tanstack+query-core@5.104.0/node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js","../../../../node_modules/.pnpm/@tanstack+react-query@5.104.0_react@19.3.0/node_modules/@tanstack/react-query/build/modern/useInfiniteQuery.js","../../src/api/media.ts"],"sourcesContent":["import { hasNextPage, hasPreviousPage } from \"./infiniteQueryBehavior.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\n//#region src/infiniteQueryObserver.ts\n/**\n* An `InfiniteQueryObserver` extends `QueryObserver` to observe and switch\n* between infinite queries. It augments the base `QueryObserverResult` with\n* infinite-query-specific fields and methods, such as `hasNextPage` and\n* `fetchNextPage`, and is the primitive that framework adapters (e.g.\n* `useInfiniteQuery`) build their hooks on top of.\n*\n* @example\n* ```ts\n* const observer = new InfiniteQueryObserver(queryClient, {\n* queryKey: ['projects'],\n* queryFn: ({ pageParam }) => fetchProjects(pageParam),\n* initialPageParam: 0,\n* getNextPageParam: (lastPage) => lastPage.nextCursor,\n* })\n*\n* const unsubscribe = observer.subscribe((result) => console.log(result))\n* ```\n*/\nvar InfiniteQueryObserver = class extends QueryObserver {\n\tconstructor(client, options) {\n\t\tsuper(client, options);\n\t}\n\tbindMethods() {\n\t\tsuper.bindMethods();\n\t\tthis.fetchNextPage = this.fetchNextPage.bind(this);\n\t\tthis.fetchPreviousPage = this.fetchPreviousPage.bind(this);\n\t}\n\t/**\n\t* Updates the observer's options. Behaves the same as\n\t* `QueryObserver.setOptions`, additionally marking the options as\n\t* belonging to an infinite query before delegating to the base\n\t* implementation.\n\t*/\n\tsetOptions(options) {\n\t\toptions._type = \"infinite\";\n\t\tsuper.setOptions(options);\n\t}\n\t/**\n\t* The infinite-query counterpart of {@link QueryObserver#getOptimisticResult}, marking the\n\t* options as an infinite query before delegating to it. Called by framework adapters (e.g.\n\t* `useInfiniteQuery`) ahead of subscribing, to compute the current `InfiniteQueryObserverResult`\n\t* synchronously.\n\t*/\n\tgetOptimisticResult(options) {\n\t\toptions._type = \"infinite\";\n\t\treturn super.getOptimisticResult(options);\n\t}\n\t/**\n\t* Fetches the next page of the infinite query and returns a promise that\n\t* resolves with the resulting `InfiniteQueryObserverResult`. The page\n\t* param used for the fetch is determined by `getNextPageParam`, which\n\t* receives the current pages/page params and whose result also determines\n\t* `hasNextPage`.\n\t*\n\t* @example\n\t* ```ts\n\t* const { hasNextPage } = observer.getCurrentResult()\n\t*\n\t* if (hasNextPage) {\n\t* await observer.fetchNextPage()\n\t* }\n\t* ```\n\t*\n\t* @see {@link InfiniteQueryObserver#fetchPreviousPage}\n\t*/\n\tfetchNextPage(options) {\n\t\treturn this.fetch({\n\t\t\t...options,\n\t\t\tmeta: { fetchMore: { direction: \"forward\" } }\n\t\t});\n\t}\n\t/**\n\t* Fetches the previous page of the infinite query and returns a promise\n\t* that resolves with the resulting `InfiniteQueryObserverResult`. The page\n\t* param used for the fetch is determined by `getPreviousPageParam`, which\n\t* receives the current pages/page params and whose result also determines\n\t* `hasPreviousPage`.\n\t*\n\t* @example\n\t* ```ts\n\t* const { hasPreviousPage } = observer.getCurrentResult()\n\t*\n\t* if (hasPreviousPage) {\n\t* await observer.fetchPreviousPage()\n\t* }\n\t* ```\n\t*\n\t* @see {@link InfiniteQueryObserver#fetchNextPage}\n\t*/\n\tfetchPreviousPage(options) {\n\t\treturn this.fetch({\n\t\t\t...options,\n\t\t\tmeta: { fetchMore: { direction: \"backward\" } }\n\t\t});\n\t}\n\tcreateResult(query, options) {\n\t\tconst { state } = query;\n\t\tconst parentResult = super.createResult(query, options);\n\t\tconst { isFetching, isRefetching, isError, isRefetchError } = parentResult;\n\t\tconst fetchDirection = state.fetchMeta?.fetchMore?.direction;\n\t\tconst isFetchNextPageError = isError && fetchDirection === \"forward\";\n\t\tconst isFetchingNextPage = isFetching && fetchDirection === \"forward\";\n\t\tconst isFetchPreviousPageError = isError && fetchDirection === \"backward\";\n\t\tconst isFetchingPreviousPage = isFetching && fetchDirection === \"backward\";\n\t\treturn {\n\t\t\t...parentResult,\n\t\t\tfetchNextPage: this.fetchNextPage,\n\t\t\tfetchPreviousPage: this.fetchPreviousPage,\n\t\t\thasNextPage: hasNextPage(options, state.data),\n\t\t\thasPreviousPage: hasPreviousPage(options, state.data),\n\t\t\tisFetchNextPageError,\n\t\t\tisFetchingNextPage,\n\t\t\tisFetchPreviousPageError,\n\t\t\tisFetchingPreviousPage,\n\t\t\tisRefetchError: isRefetchError && !isFetchNextPageError && !isFetchPreviousPageError,\n\t\t\tisRefetching: isRefetching && !isFetchingNextPage && !isFetchingPreviousPage\n\t\t};\n\t}\n};\n//#endregion\nexport { InfiniteQueryObserver };\n\n//# sourceMappingURL=infiniteQueryObserver.js.map","\"use client\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nimport { InfiniteQueryObserver } from \"@tanstack/query-core\";\n//#region src/useInfiniteQuery.ts\nfunction useInfiniteQuery(options, queryClient) {\n\treturn useBaseQuery(options, InfiniteQueryObserver, queryClient);\n}\n//#endregion\nexport { useInfiniteQuery };\n\n//# sourceMappingURL=useInfiniteQuery.js.map","import type {\n CreateMediaFolderInput,\n MediaAsset,\n MediaAssetQuery,\n MoveMediaAssetsInput,\n UpdateMediaAssetInput,\n UpdateMediaFolderInput,\n} from '@shapio/client';\nimport {\n keepPreviousData,\n useInfiniteQuery,\n useMutation,\n useQuery,\n useQueryClient,\n} from '@tanstack/react-query';\nimport { adminApi } from './client';\nimport { withCsrf } from './csrf';\nimport { queryKeys } from './queryKeys';\n\nconst silent = { silent: true } as const;\n\nexport const MEDIA_PAGE_SIZE = 48;\n/** How often an asset whose variants are still being made is re-read. */\nconst PROCESSING_POLL_MS = 2000;\n\nconst isProcessing = (asset: MediaAsset) =>\n asset.status === 'processing' || asset.variants.some((variant) => variant.status === 'pending');\n\nexport const useMediaFolders = () =>\n useQuery({ queryKey: queryKeys.media.folders, queryFn: () => adminApi.media.folders.list() });\n\n/** Newest first, a page at a time; refreshed while anything shown is still processing. */\nexport const useMediaAssets = (query: Omit<MediaAssetQuery, 'cursor' | 'limit'>) =>\n useInfiniteQuery({\n queryKey: queryKeys.media.assets(query),\n queryFn: ({ pageParam }) =>\n adminApi.media.assets.list({\n ...query,\n limit: MEDIA_PAGE_SIZE,\n ...(pageParam ? { cursor: pageParam } : {}),\n }),\n initialPageParam: undefined as string | undefined,\n getNextPageParam: (page) => page.nextCursor ?? undefined,\n placeholderData: keepPreviousData,\n refetchInterval: (state) =>\n state.state.data?.pages.some((page) => page.items.some(isProcessing)) ? PROCESSING_POLL_MS : false,\n });\n\nexport const useMediaAsset = (id: string | undefined) =>\n useQuery({\n queryKey: queryKeys.media.asset(id ?? ''),\n queryFn: () => adminApi.media.assets.get(id ?? ''),\n enabled: id !== undefined,\n refetchInterval: (state) =>\n state.state.data && isProcessing(state.state.data) ? PROCESSING_POLL_MS : false,\n });\n\nexport const useMediaUsage = (id: string | undefined) =>\n useQuery({\n queryKey: queryKeys.media.usage(id ?? ''),\n queryFn: () => adminApi.media.assets.usage(id ?? ''),\n enabled: id !== undefined,\n meta: silent,\n });\n\nconst useInvalidateMedia = () => {\n const queryClient = useQueryClient();\n return () => queryClient.invalidateQueries({ queryKey: queryKeys.media.all });\n};\n\nexport const useUpdateMediaAsset = () => {\n const queryClient = useQueryClient();\n const invalidate = useInvalidateMedia();\n return useMutation({\n mutationKey: ['media', 'assets', 'update'],\n meta: silent,\n mutationFn: ({ id, input }: { id: string; input: UpdateMediaAssetInput }) =>\n withCsrf(() => adminApi.media.assets.update(id, input)),\n onSuccess: (asset) => {\n queryClient.setQueryData(queryKeys.media.asset(asset.id), asset);\n return invalidate();\n },\n });\n};\n\n/** 409 MEDIA_IN_USE comes back to the caller (the delete dialog explains it), so no toast here. */\nexport const useDeleteMediaAsset = () => {\n const invalidate = useInvalidateMedia();\n return useMutation({\n mutationKey: ['media', 'assets', 'delete'],\n meta: silent,\n mutationFn: ({ id, force }: { id: string; force: boolean }) =>\n withCsrf(() => adminApi.media.assets.remove(id, { force })),\n onSuccess: invalidate,\n });\n};\n\nexport const useMoveMediaAssets = () => {\n const invalidate = useInvalidateMedia();\n return useMutation({\n mutationKey: ['media', 'assets', 'move'],\n mutationFn: (input: MoveMediaAssetsInput) => withCsrf(() => adminApi.media.assets.move(input)),\n onSettled: invalidate,\n });\n};\n\nexport const useCreateMediaFolder = () => {\n const invalidate = useInvalidateMedia();\n return useMutation({\n mutationKey: ['media', 'folders', 'create'],\n meta: silent,\n mutationFn: (input: CreateMediaFolderInput) => withCsrf(() => adminApi.media.folders.create(input)),\n onSuccess: invalidate,\n });\n};\n\nexport const useUpdateMediaFolder = () => {\n const invalidate = useInvalidateMedia();\n return useMutation({\n mutationKey: ['media', 'folders', 'update'],\n meta: silent,\n mutationFn: ({ id, input }: { id: string; input: UpdateMediaFolderInput }) =>\n withCsrf(() => adminApi.media.folders.update(id, input)),\n onSuccess: invalidate,\n });\n};\n\nexport const useDeleteMediaFolder = () => {\n const invalidate = useInvalidateMedia();\n return useMutation({\n mutationKey: ['media', 'folders', 'delete'],\n mutationFn: (id: string) => withCsrf(() => adminApi.media.folders.remove(id)),\n onSettled: invalidate,\n });\n};\n"],"ignoreList":[0,1],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{F as r,i,j as a,r as o,t as s}from"./cn-CL1YHRrS.js";import{c,i as l,l as u,n as d,o as f,r as p,s as ee,t as te,u as ne}from"./media-5ks_0Rre.js";import{T as re,h as ie}from"./auth-YVfK3SxF.js";import{A as ae,O as m,_ as oe,a as se,c as ce,d as le,f as ue,i as de,k as fe,l as pe,m as me,n as h,p as he,r as g,t as ge,u as _e,v as ve}from"./badge-lJ4Ih_Zn.js";import{o as ye}from"./RowTitle-B-7RptyN.js";import{t as be}from"./fileRoute-CVQpW8cj.js";import{G as _,R as v,a as xe,c as Se,d as Ce,i as we,n as Te,o as Ee,s as De,u as Oe}from"./InfoHint-DtaHU1Cg.js";import{N as y,O as ke,i as b,k as Ae,n as je,t as x}from"./skeleton-DElTumgk.js";import{a as Me,i as S,o as Ne,r as C,t as Pe}from"./ConfirmDialog-HS8Gc2t3.js";import{t as Fe}from"./external-link-B8UFREQ_.js";import{t as Ie}from"./FocalPoint-C62fRhmM.js";import{t as Le}from"./ellipsis-DEHUaCkn.js";import{a as Re,c as w,i as ze,n as Be,o as Ve,r as T,s as He}from"./Thumbnail-BUYOr4XJ.js";import{t as E}from"./folder-plus-iDg1hhew.js";import{t as Ue}from"./globe-TooNSp9V.js";import{a as We,c as Ge,i as Ke,n as qe,o as Je,r as D,t as Ye}from"./useMediaUploader-CapEHBIt.js";import{t as O}from"./inbox-B8c9Kj_z.js";import{a as k,l as Xe,p as Ze,r as Qe,t as $e}from"./dropdown-menu-DiYSm-g3.js";import{t as A}from"./pencil-C7eD5mlZ.js";import{t as et}from"./switch-CijNGYkG.js";import{c as tt,n as nt,o as j,r as rt,t as it,u as M}from"./zod-79xzBIrW.js";import{t as N}from"./settle-LRKtTN_e.js";import{g as P,h as F,v as I}from"./table-DQ5ILlSh.js";import{t as at}from"./useDiscardGuard-BAEGkGK9.js";import{i as L,r as ot}from"./constants-DCtq_UOe.js";import{t as st}from"./SuggestAltButton-Dlyxoypu.js";import{t as ct}from"./Panel-ClY9b33D.js";import{t as lt}from"./CopyButton-DS-bAA23.js";import{t as R}from"./FormTextareaField-tsS-UXym.js";var z={name:`folder-input`,size:24,node:[[`path`,{d:`M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1`,key:`fm4g5t`}],[`path`,{d:`M2 13h10`,key:`pgb2dq`}],[`path`,{d:`m9 16 3-3-3-3`,key:`6m91ic`}]]};z.node;var ut=i(z),B={name:`folder-open`,size:24,node:[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]};B.node;var dt=i(B),V={name:`folder`,size:24,node:[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]};V.node;var H=i(V),U=e(t(),1),ft=P({filename:j().max(255,`validation.tooLong`),alt:I().max(1e3,`validation.tooLong`),caption:I().max(4e3,`validation.tooLong`),focalPoint:P({x:F().min(0).max(1),y:F().min(0).max(1)}).nullable()}),W=e=>({filename:e?.filename??``,alt:e?.alt??``,caption:e?.caption??``,focalPoint:e?.focalPoint??null}),pt=(e,t)=>({expectedVersion:e.version,...t.filename===e.filename?{}:{filename:t.filename.trim()},...t.alt===e.alt?{}:{alt:t.alt},...t.caption===e.caption?{}:{caption:t.caption},...JSON.stringify(t.focalPoint)===JSON.stringify(e.focalPoint)?{}:{focalPoint:t.focalPoint}}),mt=e=>{let t=u(),n=M({resolver:it(ft),defaultValues:W(e)}),{reset:r}=n;return(0,U.useEffect)(()=>{r(W(e)),t.reset()},[e?.id,r]),{form:n,onSubmit:n.handleSubmit(async n=>{if(!e)return;let i=await N(t.mutateAsync({id:e.id,input:pt(e,n)}));i.ok&&(r(W(i.value)),_.success(y.t(`media.details.saved`)))}),pending:t.isPending,error:t.error}},ht=e=>{let t=e instanceof r?e.details:void 0;return typeof t?.usageCount==`number`?t.usageCount:0},gt=(e,t,n)=>{let r=d(),[i,a]=(0,U.useState)(void 0),[o,s]=(0,U.useState)(!1),[c,l]=(0,U.useState)(0),u=e=>{_.success(y.t(`media.delete.done`,{name:e.filename})),n()};return{blockedUsageCount:i&&i.assetId===e?.id?i.usageCount:void 0,confirm:async()=>{if(e){try{await r.mutateAsync({id:e.id,force:!1})}catch(n){if(!ie(n,`MEDIA_IN_USE`))throw n;let i=ht(n);if(!t)throw a({assetId:e.id,usageCount:i}),n;r.reset(),l(i),s(!0);return}u(e)}},force:{open:o,usageCount:c,pending:r.isPending,error:r.error,onOpenChange:s,confirm:()=>{e&&r.mutate({id:e.id,force:!0},{onSuccess:()=>{s(!1),u(e)}})}}}},G=e(n(),1),_t=({asset:e,onDeleted:t})=>{let{t:n}=a(),{isOwner:r}=w(),i=gt(e,r,t),o=i.blockedUsageCount;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(C,{tone:`danger`,align:`start`,side:`top`,title:n(`media.delete.title`,{name:e.filename}),description:o===void 0?n(`media.delete.description`):`${n(`media.delete.inUseDescription`,{count:o})} ${n(`media.delete.onlyOwners`)}`,confirmLabel:n(`common.delete`),onConfirm:i.confirm,trigger:(0,G.jsxs)(b,{variant:`destructive-ghost`,children:[(0,G.jsx)(v,{"aria-hidden":`true`}),n(`media.delete.action`)]})}),(0,G.jsx)(Pe,{open:i.force.open,onOpenChange:i.force.onOpenChange,title:n(`media.delete.inUseTitle`),description:`${n(`media.delete.inUseDescription`,{count:i.force.usageCount})} ${n(`media.delete.ownerMayForce`)}`,confirmLabel:n(`media.delete.force`),destructive:!0,pending:i.force.pending,error:i.force.error,onConfirm:i.force.confirm})]})},vt=({asset:e,form:t,onSubmit:n,pending:r,error:i,readOnly:o})=>{let{t:s}=a(),c=tt({control:t.control,name:`focalPoint`}),l=T(e.mimeType);return(0,G.jsx)(`form`,{noValidate:!0,"aria-label":s(`media.details.formLabel`),onSubmit:e=>{e.preventDefault(),n()},children:(0,G.jsx)(`fieldset`,{disabled:o,className:`contents`,children:(0,G.jsxs)(Oe,{children:[(0,G.jsx)(nt,{control:t.control,name:`filename`,label:s(`media.fields.filename`),autoComplete:`off`}),l?(0,G.jsx)(R,{control:t.control,name:`alt`,label:s(`media.fields.alt`),rows:2,placeholder:s(`media.details.altHint`)}):null,l&&!o?(0,G.jsx)(st,{assetId:e.id,mimeType:e.mimeType,onSuggest:e=>t.setValue(`alt`,e,{shouldDirty:!0,shouldValidate:!0})}):null,(0,G.jsx)(R,{control:t.control,name:`caption`,label:s(`media.fields.caption`),rows:2}),l&&!o?(0,G.jsx)(Ie,{imageUrl:e.url,value:c.field.value,onChange:e=>c.field.onChange(e)}):null,(0,G.jsx)(S,{error:i}),o?null:(0,G.jsx)(`div`,{className:`flex justify-end`,children:(0,G.jsx)(oe,{pending:r,pendingLabel:s(`common.saving`),disabled:!t.formState.isDirty,children:s(`common.saveChanges`)})})]})})})},yt=e=>e.variants.find(e=>e.name===`w1280`&&e.url)?.url??e.variants.find(e=>e.name===`w640`&&e.url)?.url??e.url,bt=({asset:e})=>{let{t}=a();return T(e.mimeType)?(0,G.jsx)(`img`,{src:yt(e),alt:e.alt||t(`media.details.previewOf`,{name:e.filename}),className:`max-h-72 w-full rounded-lg border bg-muted object-contain`}):e.mimeType.startsWith(`video/`)?(0,G.jsx)(`video`,{src:e.url,controls:!0,preload:`metadata`,className:`max-h-72 w-full rounded-lg border bg-muted`}):e.mimeType.startsWith(`audio/`)?(0,G.jsx)(`audio`,{src:e.url,controls:!0,preload:`metadata`,className:`w-full`}):(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-3 rounded-lg border bg-muted px-4 py-8`,children:[(0,G.jsx)(ze,{mimeType:e.mimeType,className:`size-10 text-muted-foreground`}),(0,G.jsx)(b,{asChild:!0,variant:`outline`,size:`sm`,children:(0,G.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,children:[(0,G.jsx)(Fe,{"aria-hidden":`true`}),t(`media.details.openFile`)]})})]})},K=({title:e,children:t})=>(0,G.jsxs)(`section`,{className:`space-y-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold`,children:e}),t]}),xt=({assetId:e})=>{let{t}=a(),n=ee(e);return n.isPending?(0,G.jsx)(x,{className:`h-8 w-full`}):n.isError?(0,G.jsx)(g,{error:n.error,onRetry:()=>void n.refetch()}):n.data.total===0?(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`media.usage.none`)}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-sm`,children:t(`media.usage.count`,{count:n.data.total})}),(0,G.jsx)(`ul`,{className:`divide-y rounded-lg border`,children:n.data.items.map(e=>(0,G.jsxs)(`li`,{className:`flex min-w-0 items-center gap-2 px-3 py-2`,children:[(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs`,title:e.entryId,children:t(`media.usage.entry`,{id:e.entryId})}),(0,G.jsx)(ge,{variant:`outline`,className:`font-mono`,children:e.locale}),(0,G.jsx)(h,{size:`sm`,tone:e.state===`published`?`success`:`neutral`,label:e.state===`published`?t(`media.usage.published`):t(`media.usage.draft`)})]},`${e.entryId}:${e.fieldId}:${e.locale}:${e.state}`))})]})},St=({asset:e,canManage:t})=>{let{t:n}=a(),r=u(),[i,o]=(0,U.useState)(!1),s=e.visibility===`private`,c=s?`public`:`private`,l=n(s?`media.visibility.privateExplanation`:`media.visibility.publicExplanation`);return(0,G.jsxs)(Ee,{orientation:`horizontal`,children:[(0,G.jsxs)(De,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[s?(0,G.jsx)(ae,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):(0,G.jsx)(Ue,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}),(0,G.jsx)(Ce,{htmlFor:`asset-private`,children:n(`media.visibility.privateLabel`)})]}),(0,G.jsx)(Se,{id:`asset-private-description`,children:t?l:`${l} ${n(`media.visibility.needsManage`)}`})]}),(0,G.jsx)(C,{tone:c===`public`?`danger`:`default`,open:i,onOpenChange:o,title:n(c===`private`?`media.visibility.makePrivateTitle`:`media.visibility.makePublicTitle`),description:n(c===`private`?`media.visibility.makePrivateDescription`:`media.visibility.makePublicDescription`),confirmLabel:n(c===`private`?`media.visibility.makePrivate`:`media.visibility.makePublic`),onConfirm:()=>r.mutateAsync({id:e.id,input:{expectedVersion:e.version,visibility:c}}).then(()=>_.success(n(`media.visibility.changed`))),children:(0,G.jsx)(et,{id:`asset-private`,checked:s,disabled:!t||r.isPending,"aria-describedby":`asset-private-description`,onCheckedChange:()=>o(!0)})})]})},Ct=({assetId:e,onClose:t,onReplace:n})=>{let{t:r}=a(),i=l(e),o=i.data,{canWrite:s,canManage:c}=w(),u=mt(o),{requestOpenChange:d,discardPrompt:f}=at({dirty:u.form.formState.isDirty,pending:u.pending,onOpenChange:e=>{e||(u.form.reset(),t())}}),p=o?Ve[o.status]:void 0;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ce,{open:e!==void 0,onOpenChange:d,children:(0,G.jsxs)(_e,{size:`sm`,children:[(0,G.jsxs)(he,{children:[(0,G.jsx)(me,{className:`pr-8 break-all`,children:o?.filename??r(`media.details.title`)}),(0,G.jsx)(le,{className:`text-meta`,children:o?[Be(o.filename,o.mimeType),He(o.sizeBytes),o.width&&o.height?r(`media.dimensions`,{width:o.width,height:o.height}):``].filter(Boolean).join(` · `):r(`common.loading`)}),o&&p?(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 pt-1`,children:[(0,G.jsx)(h,{tone:p.tone,label:r(p.labelKey)}),o.visibility===`private`?(0,G.jsx)(h,{tone:`muted`,label:r(`media.visibility.private`)}):null,(0,G.jsx)(`span`,{className:`ml-auto`,children:(0,G.jsx)(lt,{value:o.url})})]}):null]}),(0,G.jsxs)(pe,{className:`space-y-6`,children:[i.isPending?(0,G.jsx)(ve,{rows:3}):null,i.isError?(0,G.jsx)(g,{error:i.error,onRetry:()=>void i.refetch()}):null,o&&p?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(bt,{asset:o}),o.urlExpiresAt?(0,G.jsx)(`p`,{className:`text-meta text-muted-foreground`,children:r(`media.details.signedLinkNote`)}):null,o.processingError?(0,G.jsxs)(Me,{variant:`destructive`,children:[(0,G.jsx)(fe,{"aria-hidden":`true`}),(0,G.jsx)(Ne,{children:o.processingError})]}):null]}),(0,G.jsx)(K,{title:r(`media.details.metadata`),children:(0,G.jsx)(vt,{asset:o,form:u.form,onSubmit:()=>void u.onSubmit(),pending:u.pending,error:u.error,readOnly:!s})}),(0,G.jsx)(K,{title:r(`media.usage.title`),children:(0,G.jsx)(xt,{assetId:o.id})}),(0,G.jsx)(K,{title:r(`media.visibility.title`),children:(0,G.jsx)(St,{asset:o,canManage:c})}),(0,G.jsx)(K,{title:r(`media.variants.title`),children:(0,G.jsx)(Re,{asset:o})})]}):null]}),o&&(s||c)?(0,G.jsxs)(ue,{className:`flex-row flex-wrap justify-between`,children:[c?(0,G.jsx)(_t,{asset:o,onDeleted:t}):null,s?(0,G.jsx)(D,{variant:`outline`,multiple:!1,label:r(`media.details.replace`),onFiles:([e])=>e?n(o.id,e):void 0,className:`ml-auto`}):null]}):null]})}),f]})},q=e=>e.dataTransfer.types.includes(`Files`),wt=({enabled:e,onFiles:t,children:n,className:r})=>{let{t:i}=a(),[o,c]=(0,U.useState)(!1),l=(0,U.useRef)(0);return e?(0,G.jsxs)(`div`,{className:s(`relative`,r),onDragEnter:e=>{q(e)&&(l.current+=1,c(!0))},onDragLeave:()=>{l.current=Math.max(0,l.current-1),l.current===0&&c(!1)},onDragOver:e=>{q(e)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)},onDrop:e=>{e.preventDefault(),l.current=0,c(!1);let n=[...e.dataTransfer.files];n.length>0&&t(n)},children:[n,o?(0,G.jsxs)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 z-20 flex flex-col items-center justify-center gap-2 rounded-xl border-2 border-dashed border-primary bg-background/90 text-primary`,children:[(0,G.jsx)(Je,{className:`size-8`}),(0,G.jsx)(`p`,{className:`font-semibold`,children:i(`media.upload.dropHere`)})]}):null]}):(0,G.jsx)(`div`,{className:r,children:n})},J=e=>{let t=Map.groupBy(e,t=>t.parentId&&e.some(e=>e.id===t.parentId)?t.parentId:null),n=(e,r)=>[...t.get(e)??[]].sort((e,t)=>e.name.localeCompare(t.name)).map(e=>({...e,depth:r,children:n(e.id,r+1)}));return n(null,0)},Y=e=>e.flatMap(e=>[e,...Y(e.children)]),Tt=P({name:j().max(255,`validation.tooLong`)}),Et=(e,t)=>{let n=te(),r=ne(),i=e.mode===`rename`?e.folder.name:``,a=M({resolver:it(Tt),defaultValues:{name:i}}),o=a.handleSubmit(async({name:i})=>{let a=i.trim();if(e.mode===`rename`&&a===e.folder.name){t();return}(await N(e.mode===`rename`?r.mutateAsync({id:e.folder.id,input:{expectedVersion:e.folder.version,name:a}}):n.mutateAsync({name:a,parentId:e.parentId}))).ok&&(_.success(y.t(e.mode===`rename`?`media.folders.renamed`:`media.folders.created`,{name:a})),t())}),s=e.mode===`rename`?r:n;return{form:a,onSubmit:o,initialName:i,pending:s.isPending,error:s.error}},X=({edit:e,onDone:t})=>{let{t:n}=a(),r=(0,U.useId)(),{form:i,onSubmit:s,initialName:c,pending:l,error:u}=Et(e,()=>t(!0)),{setFocus:d}=i;(0,U.useEffect)(()=>{d(`name`,{shouldSelect:!0})},[d]);let f=i.formState.errors.name?.message??(u?Ae(u):void 0),p=e.mode===`create`;return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`form`,{noValidate:!0,onSubmit:e=>void s(e),onKeyDown:e=>{e.key===`Escape`&&!l&&(e.preventDefault(),e.stopPropagation(),t(!0))},onBlur:e=>{let n=e.relatedTarget;n instanceof Node&&e.currentTarget.contains(n)||!l&&i.getValues(`name`).trim()===c&&t(!1)},className:`flex items-center gap-1 py-0.5 pl-1`,children:[p?(0,G.jsx)(E,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}):(0,G.jsx)(A,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}),(0,G.jsx)(je,{...i.register(`name`),inputSize:`sm`,autoComplete:`off`,spellCheck:!1,readOnly:l,"aria-label":p?n(`media.folders.newName`):n(`media.folders.renameLabel`,{name:e.folder.name}),"aria-invalid":f?!0:void 0,"aria-describedby":f?r:void 0,className:`h-8 px-2`}),(0,G.jsx)(b,{type:`submit`,variant:`ghost`,size:`icon-xs`,disabled:l,"aria-label":n(p?`media.folders.create`:`media.folders.saveName`),children:l?(0,G.jsx)(o,{"aria-hidden":`true`,className:`animate-spin`}):(0,G.jsx)(ke,{"aria-hidden":`true`})}),(0,G.jsx)(b,{type:`button`,variant:`ghost`,size:`icon-xs`,disabled:l,"aria-label":n(`common.cancel`),onClick:()=>t(!0),children:(0,G.jsx)(m,{"aria-hidden":`true`})})]}),(0,G.jsx)(`div`,{className:`pl-6`,children:(0,G.jsx)(rt,{id:r,message:f})})]})},Z=`flex h-9 min-w-0 items-center gap-2.5 rounded-lg text-left text-sm font-medium text-muted-foreground outline-none hover:bg-muted hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-[current=true]:bg-accent aria-[current=true]:font-semibold aria-[current=true]:text-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0`,Dt=({folder:e,canManage:t,actions:n})=>{let{t:r}=a(),i=(0,U.useRef)(!1),o=e=>()=>{i.current=!0,e()};return(0,G.jsxs)($e,{children:[(0,G.jsx)(C,{tone:`danger`,open:n.deletingId===e.id,onOpenChange:t=>n.onDeleteOpenChange(e,t),title:r(`media.folders.deleteTitle`,{name:e.name}),description:r(`media.folders.deleteDescription`),confirmLabel:r(`common.delete`),onConfirm:()=>n.onDelete(e),children:(0,G.jsx)(Ze,{asChild:!0,children:(0,G.jsx)(b,{variant:`ghost`,size:`icon-xs`,"aria-label":r(`media.folders.actions`,{name:e.name}),className:`absolute right-1.5`,"data-folder-menu":e.id,children:(0,G.jsx)(Le,{"aria-hidden":`true`})})})}),(0,G.jsxs)(Qe,{align:`end`,onCloseAutoFocus:e=>{i.current&&(i.current=!1,e.preventDefault())},children:[(0,G.jsxs)(k,{onSelect:o(()=>n.onCreate(e.id)),children:[(0,G.jsx)(E,{"aria-hidden":`true`}),r(`media.folders.newSubfolder`)]}),(0,G.jsxs)(k,{onSelect:o(()=>n.onRename(e)),children:[(0,G.jsx)(A,{"aria-hidden":`true`}),r(`media.folders.rename`)]}),t?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Xe,{}),(0,G.jsxs)(k,{variant:`destructive`,onSelect:o(()=>n.onDeleteOpenChange(e,!0)),children:[(0,G.jsx)(v,{"aria-hidden":`true`}),r(`common.delete`)]})]}):null]})]})},Q=({node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:c})=>{let l=e.id===t,u=l?dt:H,d=a?.mode===`rename`&&a.folder.id===e.id?a:void 0,f=a?.mode===`create`&&a.parentId===e.id?a:void 0;return(0,G.jsxs)(`li`,{children:[d?(0,G.jsx)(X,{edit:d,onDone:o}):(0,G.jsxs)(`div`,{className:`relative flex items-center`,children:[(0,G.jsxs)(`button`,{type:`button`,"aria-current":l?`true`:void 0,onClick:()=>c(e.id),className:s(Z,`flex-1 pl-2.5`,n?`pr-9`:`pr-2.5`),children:[(0,G.jsx)(u,{"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`truncate`,children:e.name}),(0,G.jsx)(`span`,{className:`ml-auto text-xs font-medium text-muted-foreground tabular-nums`,children:e.assetCount})]}),n?(0,G.jsx)(Dt,{folder:e,canManage:r,actions:i}):null]}),e.children.length>0||f?(0,G.jsxs)(`ul`,{className:`mt-0.5 ml-4 space-y-0.5 border-l pl-1.5`,children:[f?(0,G.jsx)(`li`,{children:(0,G.jsx)(X,{edit:f,onDone:o})}):null,e.children.map(e=>(0,G.jsx)(Q,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:c},e.id))]}):null]})},$=({current:e,icon:t,label:n,onClick:r})=>(0,G.jsxs)(`button`,{type:`button`,"aria-current":e?`true`:void 0,onClick:r,className:s(Z,`w-full px-2.5`),children:[t,(0,G.jsx)(`span`,{className:`truncate`,children:n})]}),Ot=({folders:e,current:t,canWrite:n,canManage:r,actions:i,editing:o,onEditDone:s,onSelect:c,className:l})=>{let{t:u}=a(),d=(0,U.useMemo)(()=>J(e??[]),[e]),f=o?.mode===`create`&&o.parentId===null?o:void 0;return(0,G.jsx)(ct,{title:u(`media.folders.title`),flush:!0,className:l,bodyClassName:`p-2`,children:(0,G.jsxs)(`nav`,{"aria-label":u(`media.folders.title`),className:`space-y-1`,children:[(0,G.jsxs)(`ul`,{className:`space-y-0.5`,children:[(0,G.jsx)(`li`,{children:(0,G.jsx)($,{current:t===void 0,icon:(0,G.jsx)(Ge,{"aria-hidden":`true`}),label:u(`media.folders.all`),onClick:()=>c(void 0)})}),(0,G.jsx)(`li`,{children:(0,G.jsx)($,{current:t===L,icon:(0,G.jsx)(O,{"aria-hidden":`true`}),label:u(`media.folders.unfiled`),onClick:()=>c(L)})})]}),e===void 0?(0,G.jsx)(x,{className:`h-8 w-full`}):d.length>0||f?(0,G.jsxs)(`ul`,{className:`space-y-0.5 border-t pt-1`,children:[f?(0,G.jsx)(`li`,{children:(0,G.jsx)(X,{edit:f,onDone:s})}):null,d.map(e=>(0,G.jsx)(Q,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:o,onEditDone:s,onSelect:c},e.id))]}):null]})})},kt=()=>{let[e,t]=(0,U.useState)(new Set);return{selected:e,toggle:(0,U.useCallback)((e,n)=>t(t=>{let r=new Set(t);return n?r.add(e):r.delete(e),r}),[]),clear:(0,U.useCallback)(()=>t(new Set),[])}},At=e=>{let t=e.mode===`rename`?e.folder.id:e.parentId,n=t===null?`[data-new-folder]`:`[data-folder-menu="${CSS.escape(t)}"]`;return document.querySelector(n)},jt=e=>{let[t,n]=(0,U.useState)(void 0),[r,i]=(0,U.useState)(void 0),a=p();return{actions:{onCreate:e=>n({mode:`create`,parentId:e}),onRename:e=>n({mode:`rename`,folder:e}),deletingId:r,onDeleteOpenChange:(e,t)=>i(t?e.id:void 0),onDelete:t=>a.mutateAsync(t.id).then(()=>{_.success(y.t(`media.folders.deleted`,{name:t.name})),e(t)})},editing:t,stopEditing:e=>{let r=t;n(void 0),r&&e&&requestAnimationFrame(()=>At(r)?.focus())}}},Mt=()=>{let e=ye({from:`/app/media`}),t=re({from:`/media`});return{search:e,setSearch:(e,n=!1)=>void t({search:t=>({...t,...e}),replace:n}),assetQuery:{...e.folder?{folder:e.folder}:{},...e.q?{search:e.q}:{},...e.type?{mimeType:ot[e.type]}:{}}}},Nt=e=>{if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;let t=[...e.currentTarget.querySelectorAll(`button:not(:disabled)`)];if(t.length===0)return;e.preventDefault();let n=t.findIndex(e=>e===document.activeElement),r=t.length-1;t[e.key===`Home`?0:e.key===`End`?r:e.key===`ArrowDown`?Math.min(n+1,r):Math.max(n-1,0)]?.focus()},Pt=(e,t)=>{let n=c(),[r,i]=(0,U.useState)(void 0);return{target:n.isPending?r:void 0,pending:n.isPending,error:n.error,reset:n.reset,moveTo:async r=>{i(r);let a=await N(n.mutateAsync({assetIds:[...e],folderId:r}));a.ok&&(_.success(y.t(`media.move.done`,{count:a.value.moved.length})),t())}}},Ft=({icon:e,label:t,depth:n,pending:r,disabled:i,onClick:a})=>(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,disabled:i,"aria-busy":r||void 0,onClick:a,style:{"--depth":n},className:s(Z,`w-full pr-2.5 pl-[calc(0.625rem+var(--depth)*1rem)] disabled:opacity-50`),children:[r?(0,G.jsx)(o,{"aria-hidden":`true`,className:`animate-spin`}):e,(0,G.jsx)(`span`,{className:`truncate`,children:t})]})}),It=({assetIds:e,onMoved:t})=>{let{t:n}=a(),r=(0,U.useId)(),[i,o]=(0,U.useState)(!1),s=f(),c=(0,U.useMemo)(()=>Y(J(s.data??[])),[s.data]),l=Pt(e,()=>{o(!1),t()});return(0,G.jsxs)(Te,{open:i,onOpenChange:e=>{l.pending||(e&&l.reset(),o(e))},modal:!0,children:[(0,G.jsx)(xe,{asChild:!0,children:(0,G.jsxs)(b,{size:`sm`,variant:`outline`,children:[(0,G.jsx)(ut,{"aria-hidden":`true`}),n(`media.move.action`)]})}),(0,G.jsxs)(we,{align:`end`,"aria-labelledby":r,className:`w-72 space-y-2 p-2`,children:[(0,G.jsx)(`p`,{id:r,className:`px-2.5 pt-1 text-sm font-semibold`,children:n(`media.move.title`,{count:e.length})}),(0,G.jsxs)(`ul`,{className:`max-h-72 space-y-0.5 overflow-y-auto`,onKeyDown:Nt,children:[(0,G.jsx)(Ft,{icon:(0,G.jsx)(O,{"aria-hidden":`true`}),label:n(`media.folders.none`),depth:0,pending:l.target===null,disabled:l.pending,onClick:()=>void l.moveTo(null)}),c.map(e=>(0,G.jsx)(Ft,{icon:(0,G.jsx)(H,{"aria-hidden":`true`}),label:e.name,depth:e.depth,pending:l.target===e.id,disabled:l.pending,onClick:()=>void l.moveTo(e.id)},e.id))]}),s.isPending?(0,G.jsx)(x,{className:`h-8 w-full`}):null,(0,G.jsx)(S,{error:l.error})]})]})},Lt=({selected:e,onClear:t})=>{let{t:n}=a();return(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded-xl border bg-accent py-1.5 pr-1.5 pl-4 text-accent-foreground`,children:[(0,G.jsx)(`span`,{role:`status`,"aria-live":`polite`,className:`mr-auto text-sm font-medium`,children:n(`media.selectedCount`,{count:e.size})}),(0,G.jsx)(It,{assetIds:[...e],onMoved:t}),(0,G.jsxs)(b,{size:`sm`,variant:`ghost`,onClick:t,children:[(0,G.jsx)(m,{"aria-hidden":`true`}),n(`media.clearSelection`)]})]})},Rt=be(`/app/media`)({component:()=>{let{t:e}=a(),{search:t,setSearch:n,assetQuery:r}=Mt(),i=f(),{canWrite:o,canManage:s}=w(),c=Ye(),l=kt(),u=jt(e=>{t.folder===e.id&&n({folder:void 0})}),d=t.folder&&t.folder!==`root`?t.folder:null,p=e=>c.enqueue(e,{folderId:d,visibility:`public`});return(0,G.jsxs)(se,{width:`full`,children:[(0,G.jsx)(de,{title:e(`media.title`),actions:o?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(b,{variant:`outline`,"data-new-folder":!0,onClick:()=>u.actions.onCreate(null),children:[(0,G.jsx)(E,{"aria-hidden":`true`}),e(`media.folders.new`)]}),(0,G.jsx)(D,{label:e(`media.upload.action`),onFiles:p})]}):null}),(0,G.jsxs)(`div`,{className:`grid gap-6 lg:grid-cols-[13.75rem_minmax(0,1fr)]`,children:[(0,G.jsx)(Ot,{folders:i.data,current:t.folder,canWrite:o,canManage:s,actions:u.actions,editing:u.editing,onEditDone:u.stopEditing,onSelect:e=>{l.clear(),n({folder:e})},className:`lg:self-start`}),(0,G.jsxs)(wt,{enabled:o,onFiles:p,className:`min-h-96 min-w-0 space-y-4`,children:[(0,G.jsx)(qe,{onRetry:c.retry,onDismiss:c.dismiss}),(0,G.jsx)(Ke,{query:t.q,type:t.type,view:t.view??`grid`,onQueryChange:e=>n({q:e},!0),onTypeChange:e=>n({type:e}),onViewChange:e=>n({view:e})}),l.selected.size>0?(0,G.jsx)(Lt,{selected:l.selected,onClear:l.clear}):null,(0,G.jsx)(We,{query:r,filtered:!!(t.q||t.type),view:t.view??`grid`,selected:l.selected,selectable:o,activeId:t.asset,onSelectChange:l.toggle,onOpen:e=>n({asset:e.id})})]})]}),(0,G.jsx)(Ct,{assetId:t.asset,onClose:()=>n({asset:void 0}),onReplace:(e,t)=>c.enqueue([t],{folderId:null,visibility:`public`,replaceAssetId:e})})]})}});export{Rt as mediaLazyRoute};
2
- //# sourceMappingURL=media-Cs9LCQcz.js.map
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{F as r,i,j as a,r as o,t as s}from"./cn-CEPUgFbZ.js";import{c,i as l,l as u,n as d,o as f,r as p,s as ee,t as te,u as ne}from"./media-D7aimjyy.js";import{T as re,h as ie}from"./auth-cXFFyABE.js";import{A as ae,O as m,_ as oe,a as se,c as ce,d as le,f as ue,i as de,k as fe,l as pe,m as me,n as h,p as he,r as g,t as ge,u as _e,v as ve}from"./badge-DrPwivGk.js";import{o as ye}from"./RowTitle-Cted2GP8.js";import{t as be}from"./fileRoute-BZ0pGGsh.js";import{G as _,R as v,a as xe,c as Se,d as Ce,i as we,n as Te,o as Ee,s as De,u as Oe}from"./InfoHint-BdAadb9U.js";import{N as y,O as ke,i as b,k as Ae,n as je,t as x}from"./skeleton-BPLAzyDo.js";import{a as Me,i as S,o as Ne,r as C,t as Pe}from"./ConfirmDialog-DVN-n-tE.js";import{t as Fe}from"./external-link-itxcNtaX.js";import{t as Ie}from"./FocalPoint-pTq17ngi.js";import{t as Le}from"./ellipsis-DHfP1Ah2.js";import{a as Re,c as w,i as ze,n as Be,o as Ve,r as T,s as He}from"./Thumbnail-B_TWlgEz.js";import{t as E}from"./folder-plus-BgsfY_6i.js";import{t as Ue}from"./globe-RjXj4P-A.js";import{a as We,c as Ge,i as Ke,n as qe,o as Je,r as D,t as Ye}from"./useMediaUploader-BC5zCkQt.js";import{t as O}from"./inbox-97pzmuus.js";import{a as k,l as Xe,p as Ze,r as Qe,t as $e}from"./dropdown-menu-BG1rctRQ.js";import{t as A}from"./pencil-Cn8c_gtv.js";import{t as et}from"./switch-XRU_EOoM.js";import{c as tt,n as nt,o as j,r as rt,t as it,u as M}from"./zod-cTJwCa4E.js";import{t as N}from"./settle-LRKtTN_e.js";import{g as P,h as F,v as I}from"./table-CLVW6uJB.js";import{t as at}from"./useDiscardGuard-CSkPw8iq.js";import{i as L,r as ot}from"./constants-DCtq_UOe.js";import{t as st}from"./SuggestAltButton-CrFiRWGr.js";import{t as ct}from"./Panel-BV1BpNCn.js";import{t as lt}from"./CopyButton--tHegXQr.js";import{t as R}from"./FormTextareaField-DmRuKDJ_.js";var z={name:`folder-input`,size:24,node:[[`path`,{d:`M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1`,key:`fm4g5t`}],[`path`,{d:`M2 13h10`,key:`pgb2dq`}],[`path`,{d:`m9 16 3-3-3-3`,key:`6m91ic`}]]};z.node;var ut=i(z),B={name:`folder-open`,size:24,node:[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]};B.node;var dt=i(B),V={name:`folder`,size:24,node:[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]};V.node;var H=i(V),U=e(t(),1),ft=P({filename:j().max(255,`validation.tooLong`),alt:I().max(1e3,`validation.tooLong`),caption:I().max(4e3,`validation.tooLong`),focalPoint:P({x:F().min(0).max(1),y:F().min(0).max(1)}).nullable()}),W=e=>({filename:e?.filename??``,alt:e?.alt??``,caption:e?.caption??``,focalPoint:e?.focalPoint??null}),pt=(e,t)=>({expectedVersion:e.version,...t.filename===e.filename?{}:{filename:t.filename.trim()},...t.alt===e.alt?{}:{alt:t.alt},...t.caption===e.caption?{}:{caption:t.caption},...JSON.stringify(t.focalPoint)===JSON.stringify(e.focalPoint)?{}:{focalPoint:t.focalPoint}}),mt=e=>{let t=u(),n=M({resolver:it(ft),defaultValues:W(e)}),{reset:r}=n;return(0,U.useEffect)(()=>{r(W(e)),t.reset()},[e?.id,r]),{form:n,onSubmit:n.handleSubmit(async n=>{if(!e)return;let i=await N(t.mutateAsync({id:e.id,input:pt(e,n)}));i.ok&&(r(W(i.value)),_.success(y.t(`media.details.saved`)))}),pending:t.isPending,error:t.error}},ht=e=>{let t=e instanceof r?e.details:void 0;return typeof t?.usageCount==`number`?t.usageCount:0},gt=(e,t,n)=>{let r=d(),[i,a]=(0,U.useState)(void 0),[o,s]=(0,U.useState)(!1),[c,l]=(0,U.useState)(0),u=e=>{_.success(y.t(`media.delete.done`,{name:e.filename})),n()};return{blockedUsageCount:i&&i.assetId===e?.id?i.usageCount:void 0,confirm:async()=>{if(e){try{await r.mutateAsync({id:e.id,force:!1})}catch(n){if(!ie(n,`MEDIA_IN_USE`))throw n;let i=ht(n);if(!t)throw a({assetId:e.id,usageCount:i}),n;r.reset(),l(i),s(!0);return}u(e)}},force:{open:o,usageCount:c,pending:r.isPending,error:r.error,onOpenChange:s,confirm:()=>{e&&r.mutate({id:e.id,force:!0},{onSuccess:()=>{s(!1),u(e)}})}}}},G=e(n(),1),_t=({asset:e,onDeleted:t})=>{let{t:n}=a(),{isOwner:r}=w(),i=gt(e,r,t),o=i.blockedUsageCount;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(C,{tone:`danger`,align:`start`,side:`top`,title:n(`media.delete.title`,{name:e.filename}),description:o===void 0?n(`media.delete.description`):`${n(`media.delete.inUseDescription`,{count:o})} ${n(`media.delete.onlyOwners`)}`,confirmLabel:n(`common.delete`),onConfirm:i.confirm,trigger:(0,G.jsxs)(b,{variant:`destructive-ghost`,children:[(0,G.jsx)(v,{"aria-hidden":`true`}),n(`media.delete.action`)]})}),(0,G.jsx)(Pe,{open:i.force.open,onOpenChange:i.force.onOpenChange,title:n(`media.delete.inUseTitle`),description:`${n(`media.delete.inUseDescription`,{count:i.force.usageCount})} ${n(`media.delete.ownerMayForce`)}`,confirmLabel:n(`media.delete.force`),destructive:!0,pending:i.force.pending,error:i.force.error,onConfirm:i.force.confirm})]})},vt=({asset:e,form:t,onSubmit:n,pending:r,error:i,readOnly:o})=>{let{t:s}=a(),c=tt({control:t.control,name:`focalPoint`}),l=T(e.mimeType);return(0,G.jsx)(`form`,{noValidate:!0,"aria-label":s(`media.details.formLabel`),onSubmit:e=>{e.preventDefault(),n()},children:(0,G.jsx)(`fieldset`,{disabled:o,className:`contents`,children:(0,G.jsxs)(Oe,{children:[(0,G.jsx)(nt,{control:t.control,name:`filename`,label:s(`media.fields.filename`),autoComplete:`off`}),l?(0,G.jsx)(R,{control:t.control,name:`alt`,label:s(`media.fields.alt`),rows:2,placeholder:s(`media.details.altHint`)}):null,l&&!o?(0,G.jsx)(st,{assetId:e.id,mimeType:e.mimeType,onSuggest:e=>t.setValue(`alt`,e,{shouldDirty:!0,shouldValidate:!0})}):null,(0,G.jsx)(R,{control:t.control,name:`caption`,label:s(`media.fields.caption`),rows:2}),l&&!o?(0,G.jsx)(Ie,{imageUrl:e.url,value:c.field.value,onChange:e=>c.field.onChange(e)}):null,(0,G.jsx)(S,{error:i}),o?null:(0,G.jsx)(`div`,{className:`flex justify-end`,children:(0,G.jsx)(oe,{pending:r,pendingLabel:s(`common.saving`),disabled:!t.formState.isDirty,children:s(`common.saveChanges`)})})]})})})},yt=e=>e.variants.find(e=>e.name===`w1280`&&e.url)?.url??e.variants.find(e=>e.name===`w640`&&e.url)?.url??e.url,bt=({asset:e})=>{let{t}=a();return T(e.mimeType)?(0,G.jsx)(`img`,{src:yt(e),alt:e.alt||t(`media.details.previewOf`,{name:e.filename}),className:`max-h-72 w-full rounded-lg border bg-muted object-contain`}):e.mimeType.startsWith(`video/`)?(0,G.jsx)(`video`,{src:e.url,controls:!0,preload:`metadata`,className:`max-h-72 w-full rounded-lg border bg-muted`}):e.mimeType.startsWith(`audio/`)?(0,G.jsx)(`audio`,{src:e.url,controls:!0,preload:`metadata`,className:`w-full`}):(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-3 rounded-lg border bg-muted px-4 py-8`,children:[(0,G.jsx)(ze,{mimeType:e.mimeType,className:`size-10 text-muted-foreground`}),(0,G.jsx)(b,{asChild:!0,variant:`outline`,size:`sm`,children:(0,G.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,children:[(0,G.jsx)(Fe,{"aria-hidden":`true`}),t(`media.details.openFile`)]})})]})},K=({title:e,children:t})=>(0,G.jsxs)(`section`,{className:`space-y-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold`,children:e}),t]}),xt=({assetId:e})=>{let{t}=a(),n=ee(e);return n.isPending?(0,G.jsx)(x,{className:`h-8 w-full`}):n.isError?(0,G.jsx)(g,{error:n.error,onRetry:()=>void n.refetch()}):n.data.total===0?(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`media.usage.none`)}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-sm`,children:t(`media.usage.count`,{count:n.data.total})}),(0,G.jsx)(`ul`,{className:`divide-y rounded-lg border`,children:n.data.items.map(e=>(0,G.jsxs)(`li`,{className:`flex min-w-0 items-center gap-2 px-3 py-2`,children:[(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs`,title:e.entryId,children:t(`media.usage.entry`,{id:e.entryId})}),(0,G.jsx)(ge,{variant:`outline`,className:`font-mono`,children:e.locale}),(0,G.jsx)(h,{size:`sm`,tone:e.state===`published`?`success`:`neutral`,label:e.state===`published`?t(`media.usage.published`):t(`media.usage.draft`)})]},`${e.entryId}:${e.fieldId}:${e.locale}:${e.state}`))})]})},St=({asset:e,canManage:t})=>{let{t:n}=a(),r=u(),[i,o]=(0,U.useState)(!1),s=e.visibility===`private`,c=s?`public`:`private`,l=n(s?`media.visibility.privateExplanation`:`media.visibility.publicExplanation`);return(0,G.jsxs)(Ee,{orientation:`horizontal`,children:[(0,G.jsxs)(De,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[s?(0,G.jsx)(ae,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):(0,G.jsx)(Ue,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}),(0,G.jsx)(Ce,{htmlFor:`asset-private`,children:n(`media.visibility.privateLabel`)})]}),(0,G.jsx)(Se,{id:`asset-private-description`,children:t?l:`${l} ${n(`media.visibility.needsManage`)}`})]}),(0,G.jsx)(C,{tone:c===`public`?`danger`:`default`,open:i,onOpenChange:o,title:n(c===`private`?`media.visibility.makePrivateTitle`:`media.visibility.makePublicTitle`),description:n(c===`private`?`media.visibility.makePrivateDescription`:`media.visibility.makePublicDescription`),confirmLabel:n(c===`private`?`media.visibility.makePrivate`:`media.visibility.makePublic`),onConfirm:()=>r.mutateAsync({id:e.id,input:{expectedVersion:e.version,visibility:c}}).then(()=>_.success(n(`media.visibility.changed`))),children:(0,G.jsx)(et,{id:`asset-private`,checked:s,disabled:!t||r.isPending,"aria-describedby":`asset-private-description`,onCheckedChange:()=>o(!0)})})]})},Ct=({assetId:e,onClose:t,onReplace:n})=>{let{t:r}=a(),i=l(e),o=i.data,{canWrite:s,canManage:c}=w(),u=mt(o),{requestOpenChange:d,discardPrompt:f}=at({dirty:u.form.formState.isDirty,pending:u.pending,onOpenChange:e=>{e||(u.form.reset(),t())}}),p=o?Ve[o.status]:void 0;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ce,{open:e!==void 0,onOpenChange:d,children:(0,G.jsxs)(_e,{size:`sm`,children:[(0,G.jsxs)(he,{children:[(0,G.jsx)(me,{className:`pr-8 break-all`,children:o?.filename??r(`media.details.title`)}),(0,G.jsx)(le,{className:`text-meta`,children:o?[Be(o.filename,o.mimeType),He(o.sizeBytes),o.width&&o.height?r(`media.dimensions`,{width:o.width,height:o.height}):``].filter(Boolean).join(` · `):r(`common.loading`)}),o&&p?(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 pt-1`,children:[(0,G.jsx)(h,{tone:p.tone,label:r(p.labelKey)}),o.visibility===`private`?(0,G.jsx)(h,{tone:`muted`,label:r(`media.visibility.private`)}):null,(0,G.jsx)(`span`,{className:`ml-auto`,children:(0,G.jsx)(lt,{value:o.url})})]}):null]}),(0,G.jsxs)(pe,{className:`space-y-6`,children:[i.isPending?(0,G.jsx)(ve,{rows:3}):null,i.isError?(0,G.jsx)(g,{error:i.error,onRetry:()=>void i.refetch()}):null,o&&p?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(bt,{asset:o}),o.urlExpiresAt?(0,G.jsx)(`p`,{className:`text-meta text-muted-foreground`,children:r(`media.details.signedLinkNote`)}):null,o.processingError?(0,G.jsxs)(Me,{variant:`destructive`,children:[(0,G.jsx)(fe,{"aria-hidden":`true`}),(0,G.jsx)(Ne,{children:o.processingError})]}):null]}),(0,G.jsx)(K,{title:r(`media.details.metadata`),children:(0,G.jsx)(vt,{asset:o,form:u.form,onSubmit:()=>void u.onSubmit(),pending:u.pending,error:u.error,readOnly:!s})}),(0,G.jsx)(K,{title:r(`media.usage.title`),children:(0,G.jsx)(xt,{assetId:o.id})}),(0,G.jsx)(K,{title:r(`media.visibility.title`),children:(0,G.jsx)(St,{asset:o,canManage:c})}),(0,G.jsx)(K,{title:r(`media.variants.title`),children:(0,G.jsx)(Re,{asset:o})})]}):null]}),o&&(s||c)?(0,G.jsxs)(ue,{className:`flex-row flex-wrap justify-between`,children:[c?(0,G.jsx)(_t,{asset:o,onDeleted:t}):null,s?(0,G.jsx)(D,{variant:`outline`,multiple:!1,label:r(`media.details.replace`),onFiles:([e])=>e?n(o.id,e):void 0,className:`ml-auto`}):null]}):null]})}),f]})},q=e=>e.dataTransfer.types.includes(`Files`),wt=({enabled:e,onFiles:t,children:n,className:r})=>{let{t:i}=a(),[o,c]=(0,U.useState)(!1),l=(0,U.useRef)(0);return e?(0,G.jsxs)(`div`,{className:s(`relative`,r),onDragEnter:e=>{q(e)&&(l.current+=1,c(!0))},onDragLeave:()=>{l.current=Math.max(0,l.current-1),l.current===0&&c(!1)},onDragOver:e=>{q(e)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)},onDrop:e=>{e.preventDefault(),l.current=0,c(!1);let n=[...e.dataTransfer.files];n.length>0&&t(n)},children:[n,o?(0,G.jsxs)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 z-20 flex flex-col items-center justify-center gap-2 rounded-xl border-2 border-dashed border-primary bg-background/90 text-primary`,children:[(0,G.jsx)(Je,{className:`size-8`}),(0,G.jsx)(`p`,{className:`font-semibold`,children:i(`media.upload.dropHere`)})]}):null]}):(0,G.jsx)(`div`,{className:r,children:n})},J=e=>{let t=Map.groupBy(e,t=>t.parentId&&e.some(e=>e.id===t.parentId)?t.parentId:null),n=(e,r)=>[...t.get(e)??[]].sort((e,t)=>e.name.localeCompare(t.name)).map(e=>({...e,depth:r,children:n(e.id,r+1)}));return n(null,0)},Y=e=>e.flatMap(e=>[e,...Y(e.children)]),Tt=P({name:j().max(255,`validation.tooLong`)}),Et=(e,t)=>{let n=te(),r=ne(),i=e.mode===`rename`?e.folder.name:``,a=M({resolver:it(Tt),defaultValues:{name:i}}),o=a.handleSubmit(async({name:i})=>{let a=i.trim();if(e.mode===`rename`&&a===e.folder.name){t();return}(await N(e.mode===`rename`?r.mutateAsync({id:e.folder.id,input:{expectedVersion:e.folder.version,name:a}}):n.mutateAsync({name:a,parentId:e.parentId}))).ok&&(_.success(y.t(e.mode===`rename`?`media.folders.renamed`:`media.folders.created`,{name:a})),t())}),s=e.mode===`rename`?r:n;return{form:a,onSubmit:o,initialName:i,pending:s.isPending,error:s.error}},X=({edit:e,onDone:t})=>{let{t:n}=a(),r=(0,U.useId)(),{form:i,onSubmit:s,initialName:c,pending:l,error:u}=Et(e,()=>t(!0)),{setFocus:d}=i;(0,U.useEffect)(()=>{d(`name`,{shouldSelect:!0})},[d]);let f=i.formState.errors.name?.message??(u?Ae(u):void 0),p=e.mode===`create`;return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`form`,{noValidate:!0,onSubmit:e=>void s(e),onKeyDown:e=>{e.key===`Escape`&&!l&&(e.preventDefault(),e.stopPropagation(),t(!0))},onBlur:e=>{let n=e.relatedTarget;n instanceof Node&&e.currentTarget.contains(n)||!l&&i.getValues(`name`).trim()===c&&t(!1)},className:`flex items-center gap-1 py-0.5 pl-1`,children:[p?(0,G.jsx)(E,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}):(0,G.jsx)(A,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}),(0,G.jsx)(je,{...i.register(`name`),inputSize:`sm`,autoComplete:`off`,spellCheck:!1,readOnly:l,"aria-label":p?n(`media.folders.newName`):n(`media.folders.renameLabel`,{name:e.folder.name}),"aria-invalid":f?!0:void 0,"aria-describedby":f?r:void 0,className:`h-8 px-2`}),(0,G.jsx)(b,{type:`submit`,variant:`ghost`,size:`icon-xs`,disabled:l,"aria-label":n(p?`media.folders.create`:`media.folders.saveName`),children:l?(0,G.jsx)(o,{"aria-hidden":`true`,className:`animate-spin`}):(0,G.jsx)(ke,{"aria-hidden":`true`})}),(0,G.jsx)(b,{type:`button`,variant:`ghost`,size:`icon-xs`,disabled:l,"aria-label":n(`common.cancel`),onClick:()=>t(!0),children:(0,G.jsx)(m,{"aria-hidden":`true`})})]}),(0,G.jsx)(`div`,{className:`pl-6`,children:(0,G.jsx)(rt,{id:r,message:f})})]})},Z=`flex h-9 min-w-0 items-center gap-2.5 rounded-lg text-left text-sm font-medium text-muted-foreground outline-none hover:bg-muted hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-[current=true]:bg-accent aria-[current=true]:font-semibold aria-[current=true]:text-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0`,Dt=({folder:e,canManage:t,actions:n})=>{let{t:r}=a(),i=(0,U.useRef)(!1),o=e=>()=>{i.current=!0,e()};return(0,G.jsxs)($e,{children:[(0,G.jsx)(C,{tone:`danger`,open:n.deletingId===e.id,onOpenChange:t=>n.onDeleteOpenChange(e,t),title:r(`media.folders.deleteTitle`,{name:e.name}),description:r(`media.folders.deleteDescription`),confirmLabel:r(`common.delete`),onConfirm:()=>n.onDelete(e),children:(0,G.jsx)(Ze,{asChild:!0,children:(0,G.jsx)(b,{variant:`ghost`,size:`icon-xs`,"aria-label":r(`media.folders.actions`,{name:e.name}),className:`absolute right-1.5`,"data-folder-menu":e.id,children:(0,G.jsx)(Le,{"aria-hidden":`true`})})})}),(0,G.jsxs)(Qe,{align:`end`,onCloseAutoFocus:e=>{i.current&&(i.current=!1,e.preventDefault())},children:[(0,G.jsxs)(k,{onSelect:o(()=>n.onCreate(e.id)),children:[(0,G.jsx)(E,{"aria-hidden":`true`}),r(`media.folders.newSubfolder`)]}),(0,G.jsxs)(k,{onSelect:o(()=>n.onRename(e)),children:[(0,G.jsx)(A,{"aria-hidden":`true`}),r(`media.folders.rename`)]}),t?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Xe,{}),(0,G.jsxs)(k,{variant:`destructive`,onSelect:o(()=>n.onDeleteOpenChange(e,!0)),children:[(0,G.jsx)(v,{"aria-hidden":`true`}),r(`common.delete`)]})]}):null]})]})},Q=({node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:c})=>{let l=e.id===t,u=l?dt:H,d=a?.mode===`rename`&&a.folder.id===e.id?a:void 0,f=a?.mode===`create`&&a.parentId===e.id?a:void 0;return(0,G.jsxs)(`li`,{children:[d?(0,G.jsx)(X,{edit:d,onDone:o}):(0,G.jsxs)(`div`,{className:`relative flex items-center`,children:[(0,G.jsxs)(`button`,{type:`button`,"aria-current":l?`true`:void 0,onClick:()=>c(e.id),className:s(Z,`flex-1 pl-2.5`,n?`pr-9`:`pr-2.5`),children:[(0,G.jsx)(u,{"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`truncate`,children:e.name}),(0,G.jsx)(`span`,{className:`ml-auto text-xs font-medium text-muted-foreground tabular-nums`,children:e.assetCount})]}),n?(0,G.jsx)(Dt,{folder:e,canManage:r,actions:i}):null]}),e.children.length>0||f?(0,G.jsxs)(`ul`,{className:`mt-0.5 ml-4 space-y-0.5 border-l pl-1.5`,children:[f?(0,G.jsx)(`li`,{children:(0,G.jsx)(X,{edit:f,onDone:o})}):null,e.children.map(e=>(0,G.jsx)(Q,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:c},e.id))]}):null]})},$=({current:e,icon:t,label:n,onClick:r})=>(0,G.jsxs)(`button`,{type:`button`,"aria-current":e?`true`:void 0,onClick:r,className:s(Z,`w-full px-2.5`),children:[t,(0,G.jsx)(`span`,{className:`truncate`,children:n})]}),Ot=({folders:e,current:t,canWrite:n,canManage:r,actions:i,editing:o,onEditDone:s,onSelect:c,className:l})=>{let{t:u}=a(),d=(0,U.useMemo)(()=>J(e??[]),[e]),f=o?.mode===`create`&&o.parentId===null?o:void 0;return(0,G.jsx)(ct,{title:u(`media.folders.title`),flush:!0,className:l,bodyClassName:`p-2`,children:(0,G.jsxs)(`nav`,{"aria-label":u(`media.folders.title`),className:`space-y-1`,children:[(0,G.jsxs)(`ul`,{className:`space-y-0.5`,children:[(0,G.jsx)(`li`,{children:(0,G.jsx)($,{current:t===void 0,icon:(0,G.jsx)(Ge,{"aria-hidden":`true`}),label:u(`media.folders.all`),onClick:()=>c(void 0)})}),(0,G.jsx)(`li`,{children:(0,G.jsx)($,{current:t===L,icon:(0,G.jsx)(O,{"aria-hidden":`true`}),label:u(`media.folders.unfiled`),onClick:()=>c(L)})})]}),e===void 0?(0,G.jsx)(x,{className:`h-8 w-full`}):d.length>0||f?(0,G.jsxs)(`ul`,{className:`space-y-0.5 border-t pt-1`,children:[f?(0,G.jsx)(`li`,{children:(0,G.jsx)(X,{edit:f,onDone:s})}):null,d.map(e=>(0,G.jsx)(Q,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:o,onEditDone:s,onSelect:c},e.id))]}):null]})})},kt=()=>{let[e,t]=(0,U.useState)(new Set);return{selected:e,toggle:(0,U.useCallback)((e,n)=>t(t=>{let r=new Set(t);return n?r.add(e):r.delete(e),r}),[]),clear:(0,U.useCallback)(()=>t(new Set),[])}},At=e=>{let t=e.mode===`rename`?e.folder.id:e.parentId,n=t===null?`[data-new-folder]`:`[data-folder-menu="${CSS.escape(t)}"]`;return document.querySelector(n)},jt=e=>{let[t,n]=(0,U.useState)(void 0),[r,i]=(0,U.useState)(void 0),a=p();return{actions:{onCreate:e=>n({mode:`create`,parentId:e}),onRename:e=>n({mode:`rename`,folder:e}),deletingId:r,onDeleteOpenChange:(e,t)=>i(t?e.id:void 0),onDelete:t=>a.mutateAsync(t.id).then(()=>{_.success(y.t(`media.folders.deleted`,{name:t.name})),e(t)})},editing:t,stopEditing:e=>{let r=t;n(void 0),r&&e&&requestAnimationFrame(()=>At(r)?.focus())}}},Mt=()=>{let e=ye({from:`/app/media`}),t=re({from:`/media`});return{search:e,setSearch:(e,n=!1)=>void t({search:t=>({...t,...e}),replace:n}),assetQuery:{...e.folder?{folder:e.folder}:{},...e.q?{search:e.q}:{},...e.type?{mimeType:ot[e.type]}:{}}}},Nt=e=>{if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;let t=[...e.currentTarget.querySelectorAll(`button:not(:disabled)`)];if(t.length===0)return;e.preventDefault();let n=t.findIndex(e=>e===document.activeElement),r=t.length-1;t[e.key===`Home`?0:e.key===`End`?r:e.key===`ArrowDown`?Math.min(n+1,r):Math.max(n-1,0)]?.focus()},Pt=(e,t)=>{let n=c(),[r,i]=(0,U.useState)(void 0);return{target:n.isPending?r:void 0,pending:n.isPending,error:n.error,reset:n.reset,moveTo:async r=>{i(r);let a=await N(n.mutateAsync({assetIds:[...e],folderId:r}));a.ok&&(_.success(y.t(`media.move.done`,{count:a.value.moved.length})),t())}}},Ft=({icon:e,label:t,depth:n,pending:r,disabled:i,onClick:a})=>(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,disabled:i,"aria-busy":r||void 0,onClick:a,style:{"--depth":n},className:s(Z,`w-full pr-2.5 pl-[calc(0.625rem+var(--depth)*1rem)] disabled:opacity-50`),children:[r?(0,G.jsx)(o,{"aria-hidden":`true`,className:`animate-spin`}):e,(0,G.jsx)(`span`,{className:`truncate`,children:t})]})}),It=({assetIds:e,onMoved:t})=>{let{t:n}=a(),r=(0,U.useId)(),[i,o]=(0,U.useState)(!1),s=f(),c=(0,U.useMemo)(()=>Y(J(s.data??[])),[s.data]),l=Pt(e,()=>{o(!1),t()});return(0,G.jsxs)(Te,{open:i,onOpenChange:e=>{l.pending||(e&&l.reset(),o(e))},modal:!0,children:[(0,G.jsx)(xe,{asChild:!0,children:(0,G.jsxs)(b,{size:`sm`,variant:`outline`,children:[(0,G.jsx)(ut,{"aria-hidden":`true`}),n(`media.move.action`)]})}),(0,G.jsxs)(we,{align:`end`,"aria-labelledby":r,className:`w-72 space-y-2 p-2`,children:[(0,G.jsx)(`p`,{id:r,className:`px-2.5 pt-1 text-sm font-semibold`,children:n(`media.move.title`,{count:e.length})}),(0,G.jsxs)(`ul`,{className:`max-h-72 space-y-0.5 overflow-y-auto`,onKeyDown:Nt,children:[(0,G.jsx)(Ft,{icon:(0,G.jsx)(O,{"aria-hidden":`true`}),label:n(`media.folders.none`),depth:0,pending:l.target===null,disabled:l.pending,onClick:()=>void l.moveTo(null)}),c.map(e=>(0,G.jsx)(Ft,{icon:(0,G.jsx)(H,{"aria-hidden":`true`}),label:e.name,depth:e.depth,pending:l.target===e.id,disabled:l.pending,onClick:()=>void l.moveTo(e.id)},e.id))]}),s.isPending?(0,G.jsx)(x,{className:`h-8 w-full`}):null,(0,G.jsx)(S,{error:l.error})]})]})},Lt=({selected:e,onClear:t})=>{let{t:n}=a();return(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded-xl border bg-accent py-1.5 pr-1.5 pl-4 text-accent-foreground`,children:[(0,G.jsx)(`span`,{role:`status`,"aria-live":`polite`,className:`mr-auto text-sm font-medium`,children:n(`media.selectedCount`,{count:e.size})}),(0,G.jsx)(It,{assetIds:[...e],onMoved:t}),(0,G.jsxs)(b,{size:`sm`,variant:`ghost`,onClick:t,children:[(0,G.jsx)(m,{"aria-hidden":`true`}),n(`media.clearSelection`)]})]})},Rt=be(`/app/media`)({component:()=>{let{t:e}=a(),{search:t,setSearch:n,assetQuery:r}=Mt(),i=f(),{canWrite:o,canManage:s}=w(),c=Ye(),l=kt(),u=jt(e=>{t.folder===e.id&&n({folder:void 0})}),d=t.folder&&t.folder!==`root`?t.folder:null,p=e=>c.enqueue(e,{folderId:d,visibility:`public`});return(0,G.jsxs)(se,{width:`full`,children:[(0,G.jsx)(de,{title:e(`media.title`),actions:o?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(b,{variant:`outline`,"data-new-folder":!0,onClick:()=>u.actions.onCreate(null),children:[(0,G.jsx)(E,{"aria-hidden":`true`}),e(`media.folders.new`)]}),(0,G.jsx)(D,{label:e(`media.upload.action`),onFiles:p})]}):null}),(0,G.jsxs)(`div`,{className:`grid gap-6 lg:grid-cols-[13.75rem_minmax(0,1fr)]`,children:[(0,G.jsx)(Ot,{folders:i.data,current:t.folder,canWrite:o,canManage:s,actions:u.actions,editing:u.editing,onEditDone:u.stopEditing,onSelect:e=>{l.clear(),n({folder:e})},className:`lg:self-start`}),(0,G.jsxs)(wt,{enabled:o,onFiles:p,className:`min-h-96 min-w-0 space-y-4`,children:[(0,G.jsx)(qe,{onRetry:c.retry,onDismiss:c.dismiss}),(0,G.jsx)(Ke,{query:t.q,type:t.type,view:t.view??`grid`,onQueryChange:e=>n({q:e},!0),onTypeChange:e=>n({type:e}),onViewChange:e=>n({view:e})}),l.selected.size>0?(0,G.jsx)(Lt,{selected:l.selected,onClear:l.clear}):null,(0,G.jsx)(We,{query:r,filtered:!!(t.q||t.type),view:t.view??`grid`,selected:l.selected,selectable:o,activeId:t.asset,onSelectChange:l.toggle,onOpen:e=>n({asset:e.id})})]})]}),(0,G.jsx)(Ct,{assetId:t.asset,onClose:()=>n({asset:void 0}),onReplace:(e,t)=>c.enqueue([t],{folderId:null,visibility:`public`,replaceAssetId:e})})]})}});export{Rt as mediaLazyRoute};
2
+ //# sourceMappingURL=media-Db0cHYNY.js.map