@shapio/cms 0.5.7 → 0.5.8

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 (137) hide show
  1. package/dist/admin/assets/{AssetTile-H0hABhB2.js → AssetTile-BrMzsUZD.js} +2 -2
  2. package/dist/admin/assets/{AssetTile-H0hABhB2.js.map → AssetTile-BrMzsUZD.js.map} +1 -1
  3. package/dist/admin/assets/{AssistError-1s3PuY0X.js → AssistError-Cs-r9Ssc.js} +2 -2
  4. package/dist/admin/assets/{AssistError-1s3PuY0X.js.map → AssistError-Cs-r9Ssc.js.map} +1 -1
  5. package/dist/admin/assets/{BlockMenuItems-a8zXdfcF.js → BlockMenuItems-DsccXMc_.js} +2 -2
  6. package/dist/admin/assets/{BlockMenuItems-a8zXdfcF.js.map → BlockMenuItems-DsccXMc_.js.map} +1 -1
  7. package/dist/admin/assets/{Builder-60jO_nbS.js → Builder-DW-GJA_q.js} +2 -2
  8. package/dist/admin/assets/{Builder-60jO_nbS.js.map → Builder-DW-GJA_q.js.map} +1 -1
  9. package/dist/admin/assets/{CodeEditor-BLbJZE9v.js → CodeEditor-CBCR73Wd.js} +2 -2
  10. package/dist/admin/assets/{CodeEditor-BLbJZE9v.js.map → CodeEditor-CBCR73Wd.js.map} +1 -1
  11. package/dist/admin/assets/{CopyButton-BOtR_h1H.js → CopyButton-CxFsBHfF.js} +2 -2
  12. package/dist/admin/assets/{CopyButton-BOtR_h1H.js.map → CopyButton-CxFsBHfF.js.map} +1 -1
  13. package/dist/admin/assets/{CursorPager-DwLW13ov.js → CursorPager-BW2U3v6l.js} +2 -2
  14. package/dist/admin/assets/{CursorPager-DwLW13ov.js.map → CursorPager-BW2U3v6l.js.map} +1 -1
  15. package/dist/admin/assets/{FocalPoint-n-a_AXKN.js → FocalPoint-CpZTve1E.js} +2 -2
  16. package/dist/admin/assets/{FocalPoint-n-a_AXKN.js.map → FocalPoint-CpZTve1E.js.map} +1 -1
  17. package/dist/admin/assets/{Form-D_4fhOy0.js → Form-lNrRHc0I.js} +2 -2
  18. package/dist/admin/assets/{Form-D_4fhOy0.js.map → Form-lNrRHc0I.js.map} +1 -1
  19. package/dist/admin/assets/{FormCheckboxGroup-1fYisXrr.js → FormCheckboxGroup-DeeaYnzB.js} +2 -2
  20. package/dist/admin/assets/{FormCheckboxGroup-1fYisXrr.js.map → FormCheckboxGroup-DeeaYnzB.js.map} +1 -1
  21. package/dist/admin/assets/{FormRadioGroup-B0VZyb1t.js → FormRadioGroup-Cfx5pvzU.js} +2 -2
  22. package/dist/admin/assets/{FormRadioGroup-B0VZyb1t.js.map → FormRadioGroup-Cfx5pvzU.js.map} +1 -1
  23. package/dist/admin/assets/{FormSelectField-Br8bkwRF.js → FormSelectField-BzE9Lq9i.js} +2 -2
  24. package/dist/admin/assets/{FormSelectField-Br8bkwRF.js.map → FormSelectField-BzE9Lq9i.js.map} +1 -1
  25. package/dist/admin/assets/{FormSwitchField-d8G-YCSX.js → FormSwitchField-BLOh7qei.js} +2 -2
  26. package/dist/admin/assets/{FormSwitchField-d8G-YCSX.js.map → FormSwitchField-BLOh7qei.js.map} +1 -1
  27. package/dist/admin/assets/{FormTextareaField-BSKNeTPW.js → FormTextareaField-CO115n_u.js} +2 -2
  28. package/dist/admin/assets/{FormTextareaField-BSKNeTPW.js.map → FormTextareaField-CO115n_u.js.map} +1 -1
  29. package/dist/admin/assets/{HintedLabel-CiTDE112.js → HintedLabel-DzHnEdIK.js} +2 -2
  30. package/dist/admin/assets/{HintedLabel-CiTDE112.js.map → HintedLabel-DzHnEdIK.js.map} +1 -1
  31. package/dist/admin/assets/{InfoHint-B3XcXtiN.js → InfoHint-CSEtcHjL.js} +2 -2
  32. package/dist/admin/assets/{InfoHint-B3XcXtiN.js.map → InfoHint-CSEtcHjL.js.map} +1 -1
  33. package/dist/admin/assets/{InlineConfirm-BfsNH5S_.js → InlineConfirm-yW-iUKFC.js} +2 -2
  34. package/dist/admin/assets/{InlineConfirm-BfsNH5S_.js.map → InlineConfirm-yW-iUKFC.js.map} +1 -1
  35. package/dist/admin/assets/{InsertMenuItem-BGwDW_Lu.js → InsertMenuItem-CCr9e0qY.js} +2 -2
  36. package/dist/admin/assets/{InsertMenuItem-BGwDW_Lu.js.map → InsertMenuItem-CCr9e0qY.js.map} +1 -1
  37. package/dist/admin/assets/{Match-Dc8bXsKo.js → Match-CcD9KxHH.js} +2 -2
  38. package/dist/admin/assets/{Match-Dc8bXsKo.js.map → Match-CcD9KxHH.js.map} +1 -1
  39. package/dist/admin/assets/{NoAccess-CKEKPmqD.js → NoAccess-C8RLPN0I.js} +2 -2
  40. package/dist/admin/assets/{NoAccess-CKEKPmqD.js.map → NoAccess-C8RLPN0I.js.map} +1 -1
  41. package/dist/admin/assets/{QueryView-KFtwko9F.js → QueryView-xMP_uJ_t.js} +2 -2
  42. package/dist/admin/assets/{QueryView-KFtwko9F.js.map → QueryView-xMP_uJ_t.js.map} +1 -1
  43. package/dist/admin/assets/{RadioTile-CzfxWgHx.js → RadioTile-DQFmni5A.js} +2 -2
  44. package/dist/admin/assets/{RadioTile-CzfxWgHx.js.map → RadioTile-DQFmni5A.js.map} +1 -1
  45. package/dist/admin/assets/{RichTextField-BsBoOAP-.js → RichTextField-CVHRIbnu.js} +2 -2
  46. package/dist/admin/assets/{RichTextField-BsBoOAP-.js.map → RichTextField-CVHRIbnu.js.map} +1 -1
  47. package/dist/admin/assets/{RowTitle-Cn5mAU58.js → RowTitle-Bqt6evG9.js} +2 -2
  48. package/dist/admin/assets/{RowTitle-Cn5mAU58.js.map → RowTitle-Bqt6evG9.js.map} +1 -1
  49. package/dist/admin/assets/{SecretReveal-BCOJAisI.js → SecretReveal-Bm6nYg5J.js} +2 -2
  50. package/dist/admin/assets/{SecretReveal-BCOJAisI.js.map → SecretReveal-Bm6nYg5J.js.map} +1 -1
  51. package/dist/admin/assets/{SharedGlyph-CA8tb7UH.js → SharedGlyph-cUmTh0_C.js} +2 -2
  52. package/dist/admin/assets/{SharedGlyph-CA8tb7UH.js.map → SharedGlyph-cUmTh0_C.js.map} +1 -1
  53. package/dist/admin/assets/{StepList-sriwGP1e.js → StepList-BXGYD9eJ.js} +2 -2
  54. package/dist/admin/assets/{StepList-sriwGP1e.js.map → StepList-BXGYD9eJ.js.map} +1 -1
  55. package/dist/admin/assets/Structure-D8csgrIt.js +2 -0
  56. package/dist/admin/assets/{Structure-B2HZ9UZu.js.map → Structure-D8csgrIt.js.map} +1 -1
  57. package/dist/admin/assets/{SuggestAltButton-CqDLAuoa.js → SuggestAltButton-CvIoirnz.js} +2 -2
  58. package/dist/admin/assets/{SuggestAltButton-CqDLAuoa.js.map → SuggestAltButton-CvIoirnz.js.map} +1 -1
  59. package/dist/admin/assets/{Thumbnail-mFfESZiW.js → Thumbnail-DNj5TRBI.js} +2 -2
  60. package/dist/admin/assets/{Thumbnail-mFfESZiW.js.map → Thumbnail-DNj5TRBI.js.map} +1 -1
  61. package/dist/admin/assets/{UnsavedChangesGuard-C8cDQGEA.js → UnsavedChangesGuard-CUiuMklN.js} +2 -2
  62. package/dist/admin/assets/{UnsavedChangesGuard-C8cDQGEA.js.map → UnsavedChangesGuard-CUiuMklN.js.map} +1 -1
  63. package/dist/admin/assets/{UserAvatar-BItYDTyH.js → UserAvatar-p-jV-LoD.js} +2 -2
  64. package/dist/admin/assets/{UserAvatar-BItYDTyH.js.map → UserAvatar-p-jV-LoD.js.map} +1 -1
  65. package/dist/admin/assets/{badge-DNQwGXBl.js → badge-CqKF1pwz.js} +2 -2
  66. package/dist/admin/assets/{badge-DNQwGXBl.js.map → badge-CqKF1pwz.js.map} +1 -1
  67. package/dist/admin/assets/{changeSets-EMTUJT0M.js → changeSets-8EburmT0.js} +2 -2
  68. package/dist/admin/assets/{changeSets-EMTUJT0M.js.map → changeSets-8EburmT0.js.map} +1 -1
  69. package/dist/admin/assets/{constants-miV4q1ur.js → constants-a_15vqOh.js} +2 -2
  70. package/dist/admin/assets/{constants-miV4q1ur.js.map → constants-a_15vqOh.js.map} +1 -1
  71. package/dist/admin/assets/{content-CgZS_S7P.js → content-CAjkbZEY.js} +3 -3
  72. package/dist/admin/assets/content-CAjkbZEY.js.map +1 -0
  73. package/dist/admin/assets/{contentTypes-CQsHL657.js → contentTypes-84uc0bjR.js} +2 -2
  74. package/dist/admin/assets/{contentTypes-CQsHL657.js.map → contentTypes-84uc0bjR.js.map} +1 -1
  75. package/dist/admin/assets/{develop-9ZeAjSIw.js → develop-BOqvnlgt.js} +2 -2
  76. package/dist/admin/assets/{develop-9ZeAjSIw.js.map → develop-BOqvnlgt.js.map} +1 -1
  77. package/dist/admin/assets/{dropdown-menu-0dyAtBEd.js → dropdown-menu-_xfaEp5C.js} +2 -2
  78. package/dist/admin/assets/{dropdown-menu-0dyAtBEd.js.map → dropdown-menu-_xfaEp5C.js.map} +1 -1
  79. package/dist/admin/assets/{es2015-BJge4oQL.js → es2015-BHmI7wjK.js} +2 -2
  80. package/dist/admin/assets/es2015-BHmI7wjK.js.map +1 -0
  81. package/dist/admin/assets/{field-C6NmRYUN.js → field-COOzRptX.js} +2 -2
  82. package/dist/admin/assets/{field-C6NmRYUN.js.map → field-COOzRptX.js.map} +1 -1
  83. package/dist/admin/assets/{fileRoute-Bm90K4UY.js → fileRoute-s7mCMYUJ.js} +2 -2
  84. package/dist/admin/assets/{fileRoute-Bm90K4UY.js.map → fileRoute-s7mCMYUJ.js.map} +1 -1
  85. package/dist/admin/assets/{followPlural-DEr2kxEc.js → followPlural-Cm7v_Udv.js} +2 -2
  86. package/dist/admin/assets/{followPlural-DEr2kxEc.js.map → followPlural-Cm7v_Udv.js.map} +1 -1
  87. package/dist/admin/assets/{inbox-B8XZ8L6s.js → inbox-DGO2D8fa.js} +2 -2
  88. package/dist/admin/assets/{inbox-B8XZ8L6s.js.map → inbox-DGO2D8fa.js.map} +1 -1
  89. package/dist/admin/assets/{index-DoJsnLI1.js → index-BIIU9ZI6.js} +4 -4
  90. package/dist/admin/assets/{index-DoJsnLI1.js.map → index-BIIU9ZI6.js.map} +1 -1
  91. package/dist/admin/assets/{labels-B2HIVxXg.js → labels-DQckbLGW.js} +2 -2
  92. package/dist/admin/assets/{labels-B2HIVxXg.js.map → labels-DQckbLGW.js.map} +1 -1
  93. package/dist/admin/assets/{media-CtbfNgc-.js → media-CURizGns.js} +2 -2
  94. package/dist/admin/assets/{media-CtbfNgc-.js.map → media-CURizGns.js.map} +1 -1
  95. package/dist/admin/assets/{network--5X46kWN.js → network-BixABr0o.js} +2 -2
  96. package/dist/admin/assets/{network--5X46kWN.js.map → network-BixABr0o.js.map} +1 -1
  97. package/dist/admin/assets/{publishing-DdmWXRaM.js → publishing-Dke9bSKp.js} +2 -2
  98. package/dist/admin/assets/{publishing-DdmWXRaM.js.map → publishing-Dke9bSKp.js.map} +1 -1
  99. package/dist/admin/assets/{radio-group-BoN9R_3K.js → radio-group-4ok5evXq.js} +2 -2
  100. package/dist/admin/assets/{radio-group-BoN9R_3K.js.map → radio-group-4ok5evXq.js.map} +1 -1
  101. package/dist/admin/assets/{searchSchemas-DNjfDxmj.js → searchSchemas-CSScloG8.js} +2 -2
  102. package/dist/admin/assets/{searchSchemas-DNjfDxmj.js.map → searchSchemas-CSScloG8.js.map} +1 -1
  103. package/dist/admin/assets/{sections-BfxPwK0u.js → sections-DqBzSKMP.js} +2 -2
  104. package/dist/admin/assets/{sections-BfxPwK0u.js.map → sections-DqBzSKMP.js.map} +1 -1
  105. package/dist/admin/assets/{select-Bp8kO5Ko.js → select-C0USI-Ox.js} +2 -2
  106. package/dist/admin/assets/{select-Bp8kO5Ko.js.map → select-C0USI-Ox.js.map} +1 -1
  107. package/dist/admin/assets/{settings-TEbLvC-v.js → settings-B60vHpZd.js} +2 -2
  108. package/dist/admin/assets/{settings-TEbLvC-v.js.map → settings-B60vHpZd.js.map} +1 -1
  109. package/dist/admin/assets/{shapes-WrYO9Spf.js → shapes-B5twqZcp.js} +4 -4
  110. package/dist/admin/assets/{shapes-WrYO9Spf.js.map → shapes-B5twqZcp.js.map} +1 -1
  111. package/dist/admin/assets/{skeleton-vXOCdnJv.js → skeleton-B5MP72Kw.js} +2 -2
  112. package/dist/admin/assets/{skeleton-vXOCdnJv.js.map → skeleton-B5MP72Kw.js.map} +1 -1
  113. package/dist/admin/assets/{switch-B1xClhNG.js → switch-Dp6WYNam.js} +2 -2
  114. package/dist/admin/assets/{switch-B1xClhNG.js.map → switch-Dp6WYNam.js.map} +1 -1
  115. package/dist/admin/assets/{tooltip-CS_8cJu2.js → tooltip-BGP1DVBt.js} +2 -2
  116. package/dist/admin/assets/{tooltip-CS_8cJu2.js.map → tooltip-BGP1DVBt.js.map} +1 -1
  117. package/dist/admin/assets/{useDiscardGuard-CMMJgkI2.js → useDiscardGuard-BskWSlbT.js} +2 -2
  118. package/dist/admin/assets/{useDiscardGuard-CMMJgkI2.js.map → useDiscardGuard-BskWSlbT.js.map} +1 -1
  119. package/dist/admin/assets/{useMediaPickerDialog-xvQ8cofO.js → useMediaPickerDialog-CU-ekPqX.js} +2 -2
  120. package/dist/admin/assets/{useMediaPickerDialog-xvQ8cofO.js.map → useMediaPickerDialog-CU-ekPqX.js.map} +1 -1
  121. package/dist/admin/assets/{useMediaUploader-BVNTeSAU.js → useMediaUploader-CBcq1ICg.js} +2 -2
  122. package/dist/admin/assets/{useMediaUploader-BVNTeSAU.js.map → useMediaUploader-CBcq1ICg.js.map} +1 -1
  123. package/dist/admin/assets/{useResolvedScheme-CScQpr-P.js → useResolvedScheme-C8vcQVko.js} +2 -2
  124. package/dist/admin/assets/{useResolvedScheme-CScQpr-P.js.map → useResolvedScheme-C8vcQVko.js.map} +1 -1
  125. package/dist/admin/assets/{zod-hUh5nXnX.js → zod-Cry7YvLY.js} +2 -2
  126. package/dist/admin/assets/{zod-hUh5nXnX.js.map → zod-Cry7YvLY.js.map} +1 -1
  127. package/dist/admin/index.html +25 -25
  128. package/dist/cli.js +1 -1
  129. package/dist/{cliMain-D08HeAd_.js → cliMain-papyXJDd.js} +2 -2
  130. package/dist/{cliMain-D08HeAd_.js.map → cliMain-papyXJDd.js.map} +1 -1
  131. package/dist/index.js +1 -1
  132. package/dist/{worker-jspgh10V.js → worker-B-sC-eY2.js} +2 -2
  133. package/dist/{worker-jspgh10V.js.map → worker-B-sC-eY2.js.map} +1 -1
  134. package/package.json +5 -5
  135. package/dist/admin/assets/Structure-B2HZ9UZu.js +0 -2
  136. package/dist/admin/assets/content-CgZS_S7P.js.map +0 -1
  137. package/dist/admin/assets/es2015-BJge4oQL.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{T as e,w as t}from"./es2015-BJge4oQL.js";var n=(e,t)=>Object.hasOwn(e,t),r=r=>n(t.models.properties,r)?e.t(`models.properties.${r}`):r,i=r=>n(t.models.values,r)?e.t(`models.values.${r}`):r,a=r=>n(t.models.editors,r)?e.t(`models.editors.${r}`):r;export{r as n,i as r,a as t};
2
- //# sourceMappingURL=labels-B2HIVxXg.js.map
1
+ import{T as e,w as t}from"./es2015-BHmI7wjK.js";var n=(e,t)=>Object.hasOwn(e,t),r=r=>n(t.models.properties,r)?e.t(`models.properties.${r}`):r,i=r=>n(t.models.values,r)?e.t(`models.values.${r}`):r,a=r=>n(t.models.editors,r)?e.t(`models.editors.${r}`):r;export{r as n,i as r,a as t};
2
+ //# sourceMappingURL=labels-DQckbLGW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"labels-B2HIVxXg.js","names":["en","i18next","instance","translation_default","has","table","key","propertyLabel","valueLabel","value","editorLabel","id"],"sources":["../../src/features/Models/helpers/labels.ts"],"sourcesContent":["import { i18next } from '@/app/i18n';\nimport en from '@/locales/en/translation.json';\n\n/**\n * Labels for names that come from @shapio/schema at runtime (settings keys, editor IDs, option values).\n * Unknown names (e.g. a custom editor's ID) are shown as they are.\n */\nconst has = <T extends object>(table: T, key: string): key is Extract<keyof T, string> =>\n Object.hasOwn(table, key);\n\nexport const propertyLabel = (key: string): string =>\n has(en.models.properties, key) ? i18next.t(`models.properties.${key}`) : key;\n\nexport const valueLabel = (value: string): string =>\n has(en.models.values, value) ? i18next.t(`models.values.${value}`) : value;\n\nexport const editorLabel = (id: string): string =>\n has(en.models.editors, id) ? i18next.t(`models.editors.${id}`) : id;\n"],"mappings":"gDAOA,IAAMI,GAAyB,EAAU,IACvC,OAAO,OAAOC,EAAOC,CAAG,EAEbC,EAAiB,GAC5BH,EAAIJ,EAAG,OAAO,WAAYM,CAAG,EAAIL,EAAQ,EAAE,qBAAqBK,GAAK,EAAIA,EAE9DE,EAAc,GACzBJ,EAAIJ,EAAG,OAAO,OAAQS,CAAK,EAAIR,EAAQ,EAAE,iBAAiBQ,GAAO,EAAIA,EAE1DC,EAAe,GAC1BN,EAAIJ,EAAG,OAAO,QAASW,CAAE,EAAIV,EAAQ,EAAE,kBAAkBU,GAAI,EAAIA"}
1
+ {"version":3,"file":"labels-DQckbLGW.js","names":["en","i18next","instance","translation_default","has","table","key","propertyLabel","valueLabel","value","editorLabel","id"],"sources":["../../src/features/Models/helpers/labels.ts"],"sourcesContent":["import { i18next } from '@/app/i18n';\nimport en from '@/locales/en/translation.json';\n\n/**\n * Labels for names that come from @shapio/schema at runtime (settings keys, editor IDs, option values).\n * Unknown names (e.g. a custom editor's ID) are shown as they are.\n */\nconst has = <T extends object>(table: T, key: string): key is Extract<keyof T, string> =>\n Object.hasOwn(table, key);\n\nexport const propertyLabel = (key: string): string =>\n has(en.models.properties, key) ? i18next.t(`models.properties.${key}`) : key;\n\nexport const valueLabel = (value: string): string =>\n has(en.models.values, value) ? i18next.t(`models.values.${value}`) : value;\n\nexport const editorLabel = (id: string): string =>\n has(en.models.editors, id) ? i18next.t(`models.editors.${id}`) : id;\n"],"mappings":"gDAOA,IAAMI,GAAyB,EAAU,IACvC,OAAO,OAAOC,EAAOC,CAAG,EAEbC,EAAiB,GAC5BH,EAAIJ,EAAG,OAAO,WAAYM,CAAG,EAAIL,EAAQ,EAAE,qBAAqBK,GAAK,EAAIA,EAE9DE,EAAc,GACzBJ,EAAIJ,EAAG,OAAO,OAAQS,CAAK,EAAIR,EAAQ,EAAE,iBAAiBQ,GAAO,EAAIA,EAE1DC,EAAe,GAC1BN,EAAIJ,EAAG,OAAO,QAASW,CAAE,EAAIV,EAAQ,EAAE,kBAAkBU,GAAI,EAAIA"}
@@ -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{at as r}from"./src-ndgTSYLX.js";import{c as i,i as a,l as o,n as s,o as c,r as l,s as u,t as d,u as f}from"./media-BCnVhaDH.js";import{E as ee,S as te,g as ne}from"./auth-CQO4MBUj.js";import{A as re,O as p,_ as ie,a as ae,c as oe,d as se,f as ce,i as le,k as ue,l as de,m as fe,n as m,p as pe,r as h,t as me,u as he,v as ge}from"./badge-DNQwGXBl.js";import{m as _e,n as g,t as _}from"./createLucideIcon-CLmh7Go-.js";import{o as ve,t as ye}from"./RowTitle-Cn5mAU58.js";import{t as be}from"./fileRoute-Bm90K4UY.js";import{E as v,a as xe,i as Se,n as Ce}from"./InfoHint-B3XcXtiN.js";import{T as y,x as we}from"./es2015-BJge4oQL.js";import{c as Te,i as b,n as Ee,t as x}from"./skeleton-vXOCdnJv.js";import{a as S,o as De,r as Oe,s as ke,t as C}from"./InlineConfirm-BfsNH5S_.js";import{t as Ae}from"./external-link-CdG6kHfA.js";import{_ as w,a as je,n as Me,o as Ne,r as Pe,t as Fe}from"./field-C6NmRYUN.js";import{t as Ie}from"./FocalPoint-n-a_AXKN.js";import{t as Le}from"./ellipsis-F91991on.js";import{a as Re,c as T,i as ze,l as E,n as Be,o as Ve,r as D,s as He}from"./Thumbnail-mFfESZiW.js";import{t as O}from"./folder-plus-DIk0pWkP.js";import{t as Ue}from"./globe-DFr3Gd2w.js";import{a as We,c as Ge,i as Ke,n as qe,o as Je,r as k,t as Ye}from"./useMediaUploader-BVNTeSAU.js";import{t as A}from"./inbox-CySnQydm.js";import{a as j,l as Xe,p as Ze,r as Qe,t as $e}from"./dropdown-menu-0dyAtBEd.js";import{t as M}from"./cn-DVhJ55Mo.js";import{t as et}from"./switch-B1xClhNG.js";import{c as tt,n as nt,o as N,r as rt,t as it,u as P}from"./zod-hUh5nXnX.js";import{t as F}from"./settle-CFU6YpQ0.js";import{g as I,h as L,v as R}from"./table-zG68ipQc.js";import{t as at}from"./useDiscardGuard-CMMJgkI2.js";import{i as z,r as ot}from"./constants-DCtq_UOe.js";import{t as st}from"./SuggestAltButton-CqDLAuoa.js";import{t as ct}from"./Panel-Bcl09TtM.js";import{n as lt}from"./useContentSchema-DtYfhsd2.js";import{t as ut}from"./CopyButton-BOtR_h1H.js";import{t as B}from"./FormTextareaField-BSKNeTPW.js";import{t as dt}from"./entryLink-CVB-TdIn.js";var V={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`}]]};V.node;var ft=_(V),H={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`}]]};H.node;var pt=_(H),U={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`}]]};U.node;var W=_(U),G=e(t(),1),mt=I({filename:N().max(255,`validation.tooLong`),alt:R().max(1e3,`validation.tooLong`),caption:R().max(4e3,`validation.tooLong`),focalPoint:I({x:L().min(0).max(1),y:L().min(0).max(1)}).nullable()}),K=e=>({filename:e?.filename??``,alt:e?.alt??``,caption:e?.caption??``,focalPoint:e?.focalPoint??null}),ht=(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}}),gt=e=>{let t=o(),n=P({resolver:it(mt),defaultValues:K(e)}),{reset:r}=n;return(0,G.useEffect)(()=>{r(K(e)),t.reset()},[e?.id,r]),{form:n,onSubmit:n.handleSubmit(async n=>{if(!e)return;let i=await F(t.mutateAsync({id:e.id,input:ht(e,n)}));i.ok&&(r(K(i.value)),v.success(y.t(`media.details.saved`)))}),pending:t.isPending,error:t.error}},_t=e=>{let t=e instanceof _e?e.details:void 0;return typeof t?.usageCount==`number`?t.usageCount:0},vt=(e,t,n)=>{let r=s(),[i,a]=(0,G.useState)(void 0),[o,c]=(0,G.useState)(!1),[l,u]=(0,G.useState)(0),d=e=>{v.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(!ne(n,`MEDIA_IN_USE`))throw n;let i=_t(n);if(!t)throw a({assetId:e.id,usageCount:i}),n;r.reset(),u(i),c(!0);return}d(e)}},force:{open:o,usageCount:l,pending:r.isPending,error:r.error,onOpenChange:c,confirm:()=>{e&&r.mutate({id:e.id,force:!0},{onSuccess:()=>{c(!1),d(e)}})}}}},q=e(n(),1),yt=({asset:e,onDeleted:t})=>{let{t:n}=g(),{isOwner:r}=T(),i=vt(e,r,t),a=i.blockedUsageCount;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(C,{tone:`danger`,align:`start`,side:`top`,title:n(`media.delete.title`,{name:e.filename}),description:a===void 0?n(`media.delete.description`):`${n(`media.delete.inUseDescription`,{count:a})} ${n(`media.delete.onlyOwners`)}`,confirmLabel:n(`common.delete`),onConfirm:i.confirm,trigger:(0,q.jsxs)(b,{variant:`destructive-ghost`,children:[(0,q.jsx)(w,{"aria-hidden":`true`}),n(`media.delete.action`)]})}),(0,q.jsx)(Oe,{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})]})},bt=({asset:e,form:t,onSubmit:n,pending:r,error:i,readOnly:a})=>{let{t:o}=g(),s=tt({control:t.control,name:`focalPoint`}),c=D(e.mimeType);return(0,q.jsx)(`form`,{noValidate:!0,"aria-label":o(`media.details.formLabel`),onSubmit:e=>{e.preventDefault(),n()},children:(0,q.jsx)(`fieldset`,{disabled:a,className:`contents`,children:(0,q.jsxs)(je,{children:[(0,q.jsx)(nt,{control:t.control,name:`filename`,label:o(`media.fields.filename`),autoComplete:`off`}),c?(0,q.jsx)(B,{control:t.control,name:`alt`,label:o(`media.fields.alt`),rows:2,placeholder:o(`media.details.altHint`)}):null,c&&!a?(0,q.jsx)(st,{assetId:e.id,mimeType:e.mimeType,onSuggest:e=>t.setValue(`alt`,e,{shouldDirty:!0,shouldValidate:!0})}):null,(0,q.jsx)(B,{control:t.control,name:`caption`,label:o(`media.fields.caption`),rows:2}),c&&!a?(0,q.jsx)(Ie,{imageUrl:e.url,value:s.field.value,onChange:e=>s.field.onChange(e)}):null,(0,q.jsx)(S,{error:i}),a?null:(0,q.jsx)(`div`,{className:`flex justify-end`,children:(0,q.jsx)(ie,{pending:r,pendingLabel:o(`common.saving`),disabled:!t.formState.isDirty,children:o(`common.saveChanges`)})})]})})})},xt=e=>e.variants.find(e=>e.name===`w1280`&&e.url)?.url??e.variants.find(e=>e.name===`w640`&&e.url)?.url??e.url,St=({asset:e})=>{let{t}=g();return D(e.mimeType)?(0,q.jsx)(`img`,{src:xt(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,q.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,q.jsx)(`audio`,{src:e.url,controls:!0,preload:`metadata`,className:`w-full`}):(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-3 rounded-lg border bg-muted px-4 py-8`,children:[(0,q.jsx)(ze,{mimeType:e.mimeType,className:`size-10 text-muted-foreground`}),(0,q.jsx)(b,{asChild:!0,variant:`outline`,size:`sm`,children:(0,q.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,children:[(0,q.jsx)(Ae,{"aria-hidden":`true`}),t(`media.details.openFile`)]})})]})},J=({title:e,children:t})=>(0,q.jsxs)(`section`,{className:`space-y-3`,children:[(0,q.jsx)(`h3`,{className:`text-sm font-semibold`,children:e}),t]}),Ct=({usage:e,model:t})=>{let{t:n}=g();return(0,q.jsxs)(`li`,{className:`flex min-w-0 items-center gap-2 px-3 py-2`,children:[(0,q.jsx)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:t?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(ye,{asChild:!0,className:`block truncate text-sm`,children:(0,q.jsx)(te,{...dt(t.apiKey,e.entryId,t.kind,{locale:e.locale}),children:e.title??n(`content.untitled`)})}),(0,q.jsx)(`p`,{className:`truncate text-meta text-muted-foreground`,children:t.label})]}):(0,q.jsx)(`p`,{className:`truncate text-sm text-muted-foreground`,children:n(`media.usage.hidden`)})}),(0,q.jsx)(me,{variant:`outline`,className:`font-mono`,children:e.locale}),(0,q.jsx)(m,{size:`sm`,tone:e.state===`published`?`success`:`neutral`,label:e.state===`published`?n(`media.usage.published`):n(`media.usage.draft`)})]})},wt=({assetId:e})=>{let{t}=g(),n=u(e),{schema:r}=lt();return n.isPending?(0,q.jsx)(x,{className:`h-8 w-full`}):n.isError?(0,q.jsx)(h,{error:n.error,onRetry:()=>void n.refetch()}):n.data.total===0?(0,q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`media.usage.none`)}):(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsx)(`p`,{className:`text-sm`,children:t(`media.usage.count`,{count:n.data.total})}),(0,q.jsx)(`ul`,{className:`divide-y rounded-lg border`,children:n.data.items.map(e=>(0,q.jsx)(Ct,{usage:e,model:r?.models.get(e.modelId)},`${e.entryId}:${e.fieldId}:${e.locale}:${e.state}`))})]})},Tt=({asset:e,canManage:t})=>{let{t:n}=g(),r=o(),[i,a]=(0,G.useState)(!1),s=e.visibility===`private`,c=s?`public`:`private`,l=n(s?`media.visibility.privateExplanation`:`media.visibility.publicExplanation`);return(0,q.jsxs)(Fe,{orientation:`horizontal`,children:[(0,q.jsxs)(Me,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[s?(0,q.jsx)(re,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):(0,q.jsx)(Ue,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}),(0,q.jsx)(Ne,{htmlFor:`asset-private`,children:n(`media.visibility.privateLabel`)})]}),(0,q.jsx)(Pe,{id:`asset-private-description`,children:t?l:`${l} ${n(`media.visibility.needsManage`)}`})]}),(0,q.jsx)(C,{tone:c===`public`?`danger`:`default`,open:i,onOpenChange:a,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(()=>v.success(n(`media.visibility.changed`))),children:(0,q.jsx)(et,{id:`asset-private`,checked:s,disabled:!t||r.isPending,"aria-describedby":`asset-private-description`,onCheckedChange:()=>a(!0)})})]})},Et=({assetId:e,onClose:t,onReplace:n})=>{let{t:r}=g(),i=a(e),o=i.data,{canWrite:s,canManage:c}=T(),l=gt(o),{requestOpenChange:u,discardPrompt:d}=at({dirty:l.form.formState.isDirty,pending:l.pending,onOpenChange:e=>{e||(l.form.reset(),t())}}),f=o?Ve[o.status]:void 0;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(oe,{open:e!==void 0,onOpenChange:u,children:(0,q.jsxs)(he,{size:`sm`,children:[(0,q.jsxs)(pe,{children:[(0,q.jsx)(fe,{className:`pr-8 break-all`,children:o?.filename??r(`media.details.title`)}),(0,q.jsx)(se,{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&&f?(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 pt-1`,children:[(0,q.jsx)(m,{tone:f.tone,label:r(f.labelKey)}),o.visibility===`private`?(0,q.jsx)(m,{tone:`muted`,label:r(`media.visibility.private`)}):null,(0,q.jsx)(`span`,{className:`ml-auto`,children:(0,q.jsx)(ut,{value:o.url})})]}):null]}),(0,q.jsxs)(de,{className:`space-y-6`,children:[i.isPending?(0,q.jsx)(ge,{rows:3}):null,i.isError?(0,q.jsx)(h,{error:i.error,onRetry:()=>void i.refetch()}):null,o&&f?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`space-y-3`,children:[(0,q.jsx)(St,{asset:o}),o.urlExpiresAt?(0,q.jsx)(`p`,{className:`text-meta text-muted-foreground`,children:r(`media.details.signedLinkNote`)}):null,o.processingError?(0,q.jsxs)(De,{variant:`destructive`,children:[(0,q.jsx)(ue,{"aria-hidden":`true`}),(0,q.jsx)(ke,{children:o.processingError})]}):null]}),(0,q.jsx)(J,{title:r(`media.details.metadata`),children:(0,q.jsx)(bt,{asset:o,form:l.form,onSubmit:()=>void l.onSubmit(),pending:l.pending,error:l.error,readOnly:!s})}),(0,q.jsx)(J,{title:r(`media.usage.title`),children:(0,q.jsx)(wt,{assetId:o.id})}),(0,q.jsx)(J,{title:r(`media.visibility.title`),children:(0,q.jsx)(Tt,{asset:o,canManage:c})}),(0,q.jsx)(J,{title:r(`media.variants.title`),children:(0,q.jsx)(Re,{asset:o})})]}):null]}),o&&(s||c)?(0,q.jsxs)(ce,{className:`flex-row flex-wrap justify-between`,children:[c?(0,q.jsx)(yt,{asset:o,onDeleted:t}):null,s?(0,q.jsx)(k,{variant:`outline`,multiple:!1,label:r(`media.details.replace`),onFiles:([e])=>e?n(o.id,e):void 0,className:`ml-auto`}):null]}):null]})}),d]})},Y=e=>e.dataTransfer.types.includes(`Files`),Dt=({enabled:e,onFiles:t,children:n,className:r})=>{let{t:i}=g(),[a,o]=(0,G.useState)(!1),s=(0,G.useRef)(0);return e?(0,q.jsxs)(`div`,{className:M(`relative`,r),onDragEnter:e=>{Y(e)&&(s.current+=1,o(!0))},onDragLeave:()=>{s.current=Math.max(0,s.current-1),s.current===0&&o(!1)},onDragOver:e=>{Y(e)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)},onDrop:e=>{e.preventDefault(),s.current=0,o(!1);let n=[...e.dataTransfer.files];n.length>0&&t(n)},children:[n,a?(0,q.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,q.jsx)(Je,{className:`size-8`}),(0,q.jsx)(`p`,{className:`font-semibold`,children:i(`media.upload.dropHere`)})]}):null]}):(0,q.jsx)(`div`,{className:r,children:n})},X=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)},Z=e=>e.flatMap(e=>[e,...Z(e.children)]),Ot=I({name:N().max(255,`validation.tooLong`)}),kt=(e,t)=>{let n=d(),r=f(),i=e.mode===`rename`?e.folder.name:``,a=P({resolver:it(Ot),defaultValues:{name:i}}),o=a.handleSubmit(async({name:i})=>{let a=i.trim();if(e.mode===`rename`&&a===e.folder.name){t();return}(await F(e.mode===`rename`?r.mutateAsync({id:e.folder.id,input:{expectedVersion:e.folder.version,name:a}}):n.mutateAsync({name:a,parentId:e.parentId}))).ok&&(v.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}},Q=({edit:e,onDone:t})=>{let{t:n}=g(),i=(0,G.useId)(),{form:a,onSubmit:o,initialName:s,pending:c,error:l}=kt(e,()=>t(!0)),{setFocus:u}=a;(0,G.useEffect)(()=>{u(`name`,{shouldSelect:!0})},[u]);let d=a.formState.errors.name?.message??(l?we(l):void 0),f=e.mode===`create`;return(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`form`,{noValidate:!0,onSubmit:e=>void o(e),onKeyDown:e=>{e.key===`Escape`&&!c&&(e.preventDefault(),e.stopPropagation(),t(!0))},onBlur:e=>{let n=e.relatedTarget;n instanceof Node&&e.currentTarget.contains(n)||!c&&a.getValues(`name`).trim()===s&&t(!1)},className:`flex items-center gap-1 py-0.5 pl-1`,children:[f?(0,q.jsx)(O,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}):(0,q.jsx)(E,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}),(0,q.jsx)(Ee,{...a.register(`name`),inputSize:`sm`,autoComplete:`off`,spellCheck:!1,readOnly:c,"aria-label":f?n(`media.folders.newName`):n(`media.folders.renameLabel`,{name:e.folder.name}),"aria-invalid":d?!0:void 0,"aria-describedby":d?i:void 0,className:`h-8 px-2`}),(0,q.jsx)(b,{type:`submit`,variant:`ghost`,size:`icon-xs`,disabled:c,"aria-label":n(f?`media.folders.create`:`media.folders.saveName`),children:c?(0,q.jsx)(r,{"aria-hidden":`true`,className:`animate-spin`}):(0,q.jsx)(Te,{"aria-hidden":`true`})}),(0,q.jsx)(b,{type:`button`,variant:`ghost`,size:`icon-xs`,disabled:c,"aria-label":n(`common.cancel`),onClick:()=>t(!0),children:(0,q.jsx)(p,{"aria-hidden":`true`})})]}),(0,q.jsx)(`div`,{className:`pl-6`,children:(0,q.jsx)(rt,{id:i,message:d})})]})},$=`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`,At=({folder:e,canManage:t,actions:n})=>{let{t:r}=g(),i=(0,G.useRef)(!1),a=e=>()=>{i.current=!0,e()};return(0,q.jsxs)($e,{children:[(0,q.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,q.jsx)(Ze,{asChild:!0,children:(0,q.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,q.jsx)(Le,{"aria-hidden":`true`})})})}),(0,q.jsxs)(Qe,{align:`end`,onCloseAutoFocus:e=>{i.current&&(i.current=!1,e.preventDefault())},children:[(0,q.jsxs)(j,{onSelect:a(()=>n.onCreate(e.id)),children:[(0,q.jsx)(O,{"aria-hidden":`true`}),r(`media.folders.newSubfolder`)]}),(0,q.jsxs)(j,{onSelect:a(()=>n.onRename(e)),children:[(0,q.jsx)(E,{"aria-hidden":`true`}),r(`media.folders.rename`)]}),t?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Xe,{}),(0,q.jsxs)(j,{variant:`destructive`,onSelect:a(()=>n.onDeleteOpenChange(e,!0)),children:[(0,q.jsx)(w,{"aria-hidden":`true`}),r(`common.delete`)]})]}):null]})]})},jt=({node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:s})=>{let c=e.id===t,l=c?pt:W,u=a?.mode===`rename`&&a.folder.id===e.id?a:void 0,d=a?.mode===`create`&&a.parentId===e.id?a:void 0;return(0,q.jsxs)(`li`,{children:[u?(0,q.jsx)(Q,{edit:u,onDone:o}):(0,q.jsxs)(`div`,{className:`relative flex items-center`,children:[(0,q.jsxs)(`button`,{type:`button`,"aria-current":c?`true`:void 0,onClick:()=>s(e.id),className:M($,`flex-1 pl-2.5`,n?`pr-9`:`pr-2.5`),children:[(0,q.jsx)(l,{"aria-hidden":`true`}),(0,q.jsx)(`span`,{className:`truncate`,children:e.name}),(0,q.jsx)(`span`,{className:`ml-auto text-xs font-medium text-muted-foreground tabular-nums`,children:e.assetCount})]}),n?(0,q.jsx)(At,{folder:e,canManage:r,actions:i}):null]}),e.children.length>0||d?(0,q.jsxs)(`ul`,{className:`mt-0.5 ml-4 space-y-0.5 border-l pl-1.5`,children:[d?(0,q.jsx)(`li`,{children:(0,q.jsx)(Q,{edit:d,onDone:o})}):null,e.children.map(e=>(0,q.jsx)(jt,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:s},e.id))]}):null]})},Mt=({current:e,icon:t,label:n,onClick:r})=>(0,q.jsxs)(`button`,{type:`button`,"aria-current":e?`true`:void 0,onClick:r,className:M($,`w-full px-2.5`),children:[t,(0,q.jsx)(`span`,{className:`truncate`,children:n})]}),Nt=({folders:e,current:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:s,className:c})=>{let{t:l}=g(),u=(0,G.useMemo)(()=>X(e??[]),[e]),d=a?.mode===`create`&&a.parentId===null?a:void 0;return(0,q.jsx)(ct,{title:l(`media.folders.title`),flush:!0,className:c,bodyClassName:`p-2`,children:(0,q.jsxs)(`nav`,{"aria-label":l(`media.folders.title`),className:`space-y-1`,children:[(0,q.jsxs)(`ul`,{className:`space-y-0.5`,children:[(0,q.jsx)(`li`,{children:(0,q.jsx)(Mt,{current:t===void 0,icon:(0,q.jsx)(Ge,{"aria-hidden":`true`}),label:l(`media.folders.all`),onClick:()=>s(void 0)})}),(0,q.jsx)(`li`,{children:(0,q.jsx)(Mt,{current:t===z,icon:(0,q.jsx)(A,{"aria-hidden":`true`}),label:l(`media.folders.unfiled`),onClick:()=>s(z)})})]}),e===void 0?(0,q.jsx)(x,{className:`h-8 w-full`}):u.length>0||d?(0,q.jsxs)(`ul`,{className:`space-y-0.5 border-t pt-1`,children:[d?(0,q.jsx)(`li`,{children:(0,q.jsx)(Q,{edit:d,onDone:o})}):null,u.map(e=>(0,q.jsx)(jt,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:s},e.id))]}):null]})})},Pt=()=>{let[e,t]=(0,G.useState)(new Set);return{selected:e,toggle:(0,G.useCallback)((e,n)=>t(t=>{let r=new Set(t);return n?r.add(e):r.delete(e),r}),[]),clear:(0,G.useCallback)(()=>t(new Set),[])}},Ft=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)},It=e=>{let[t,n]=(0,G.useState)(void 0),[r,i]=(0,G.useState)(void 0),a=l();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(()=>{v.success(y.t(`media.folders.deleted`,{name:t.name})),e(t)})},editing:t,stopEditing:e=>{let r=t;n(void 0),r&&e&&requestAnimationFrame(()=>Ft(r)?.focus())}}},Lt=()=>{let e=ve({from:`/app/media`}),t=ee({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]}:{}}}},Rt=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()},zt=(e,t)=>{let n=i(),[r,a]=(0,G.useState)(void 0);return{target:n.isPending?r:void 0,pending:n.isPending,error:n.error,reset:n.reset,moveTo:async r=>{a(r);let i=await F(n.mutateAsync({assetIds:[...e],folderId:r}));i.ok&&(v.success(y.t(`media.move.done`,{count:i.value.moved.length})),t())}}},Bt=({icon:e,label:t,depth:n,pending:i,disabled:a,onClick:o})=>(0,q.jsx)(`li`,{children:(0,q.jsxs)(`button`,{type:`button`,disabled:a,"aria-busy":i||void 0,onClick:o,style:{"--depth":n},className:M($,`w-full pr-2.5 pl-[calc(0.625rem+var(--depth)*1rem)] disabled:opacity-50`),children:[i?(0,q.jsx)(r,{"aria-hidden":`true`,className:`animate-spin`}):e,(0,q.jsx)(`span`,{className:`truncate`,children:t})]})}),Vt=({assetIds:e,onMoved:t})=>{let{t:n}=g(),r=(0,G.useId)(),[i,a]=(0,G.useState)(!1),o=c(),s=(0,G.useMemo)(()=>Z(X(o.data??[])),[o.data]),l=zt(e,()=>{a(!1),t()});return(0,q.jsxs)(Ce,{open:i,onOpenChange:e=>{l.pending||(e&&l.reset(),a(e))},modal:!0,children:[(0,q.jsx)(xe,{asChild:!0,children:(0,q.jsxs)(b,{size:`sm`,variant:`outline`,children:[(0,q.jsx)(ft,{"aria-hidden":`true`}),n(`media.move.action`)]})}),(0,q.jsxs)(Se,{align:`end`,"aria-labelledby":r,className:`w-72 space-y-2 p-2`,children:[(0,q.jsx)(`p`,{id:r,className:`px-2.5 pt-1 text-sm font-semibold`,children:n(`media.move.title`,{count:e.length})}),(0,q.jsxs)(`ul`,{className:`max-h-72 space-y-0.5 overflow-y-auto`,onKeyDown:Rt,children:[(0,q.jsx)(Bt,{icon:(0,q.jsx)(A,{"aria-hidden":`true`}),label:n(`media.folders.none`),depth:0,pending:l.target===null,disabled:l.pending,onClick:()=>void l.moveTo(null)}),s.map(e=>(0,q.jsx)(Bt,{icon:(0,q.jsx)(W,{"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))]}),o.isPending?(0,q.jsx)(x,{className:`h-8 w-full`}):null,(0,q.jsx)(S,{error:l.error})]})]})},Ht=({selected:e,onClear:t})=>{let{t:n}=g();return(0,q.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,q.jsx)(`span`,{role:`status`,"aria-live":`polite`,className:`mr-auto text-sm font-medium`,children:n(`media.selectedCount`,{count:e.size})}),(0,q.jsx)(Vt,{assetIds:[...e],onMoved:t}),(0,q.jsxs)(b,{size:`sm`,variant:`ghost`,onClick:t,children:[(0,q.jsx)(p,{"aria-hidden":`true`}),n(`media.clearSelection`)]})]})},Ut=be(`/app/media`)({component:()=>{let{t:e}=g(),{search:t,setSearch:n,assetQuery:r}=Lt(),i=c(),{canWrite:a,canManage:o}=T(),s=Ye(),l=Pt(),u=It(e=>{t.folder===e.id&&n({folder:void 0})}),d=t.folder&&t.folder!==`root`?t.folder:null,f=e=>s.enqueue(e,{folderId:d,visibility:`public`});return(0,q.jsxs)(ae,{width:`full`,children:[(0,q.jsx)(le,{title:e(`media.title`),actions:a?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(b,{variant:`outline`,"data-new-folder":!0,onClick:()=>u.actions.onCreate(null),children:[(0,q.jsx)(O,{"aria-hidden":`true`}),e(`media.folders.new`)]}),(0,q.jsx)(k,{label:e(`media.upload.action`),onFiles:f})]}):null}),(0,q.jsxs)(`div`,{className:`grid gap-6 lg:grid-cols-[13.75rem_minmax(0,1fr)]`,children:[(0,q.jsx)(Nt,{folders:i.data,current:t.folder,canWrite:a,canManage:o,actions:u.actions,editing:u.editing,onEditDone:u.stopEditing,onSelect:e=>{l.clear(),n({folder:e})},className:`lg:self-start`}),(0,q.jsxs)(Dt,{enabled:a,onFiles:f,className:`min-h-96 min-w-0 space-y-4`,children:[(0,q.jsx)(qe,{onRetry:s.retry,onDismiss:s.dismiss}),(0,q.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,q.jsx)(Ht,{selected:l.selected,onClear:l.clear}):null,(0,q.jsx)(We,{query:r,filtered:!!(t.q||t.type),view:t.view??`grid`,selected:l.selected,selectable:a,activeId:t.asset,onSelectChange:l.toggle,onOpen:e=>n({asset:e.id})})]})]}),(0,q.jsx)(Et,{assetId:t.asset,onClose:()=>n({asset:void 0}),onReplace:(e,t)=>s.enqueue([t],{folderId:null,visibility:`public`,replaceAssetId:e})})]})}});export{Ut as mediaLazyRoute};
2
- //# sourceMappingURL=media-CtbfNgc-.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{at as r}from"./src-ndgTSYLX.js";import{c as i,i as a,l as o,n as s,o as c,r as l,s as u,t as d,u as f}from"./media-BCnVhaDH.js";import{E as ee,S as te,g as ne}from"./auth-CQO4MBUj.js";import{A as re,O as p,_ as ie,a as ae,c as oe,d as se,f as ce,i as le,k as ue,l as de,m as fe,n as m,p as pe,r as h,t as me,u as he,v as ge}from"./badge-CqKF1pwz.js";import{m as _e,n as g,t as _}from"./createLucideIcon-CLmh7Go-.js";import{o as ve,t as ye}from"./RowTitle-Bqt6evG9.js";import{t as be}from"./fileRoute-s7mCMYUJ.js";import{E as v,a as xe,i as Se,n as Ce}from"./InfoHint-CSEtcHjL.js";import{T as y,x as we}from"./es2015-BHmI7wjK.js";import{c as Te,i as b,n as Ee,t as x}from"./skeleton-B5MP72Kw.js";import{a as S,o as De,r as Oe,s as ke,t as C}from"./InlineConfirm-yW-iUKFC.js";import{t as Ae}from"./external-link-CdG6kHfA.js";import{_ as w,a as je,n as Me,o as Ne,r as Pe,t as Fe}from"./field-COOzRptX.js";import{t as Ie}from"./FocalPoint-CpZTve1E.js";import{t as Le}from"./ellipsis-F91991on.js";import{a as Re,c as T,i as ze,l as E,n as Be,o as Ve,r as D,s as He}from"./Thumbnail-DNj5TRBI.js";import{t as O}from"./folder-plus-DIk0pWkP.js";import{t as Ue}from"./globe-DFr3Gd2w.js";import{a as We,c as Ge,i as Ke,n as qe,o as Je,r as k,t as Ye}from"./useMediaUploader-CBcq1ICg.js";import{t as A}from"./inbox-CySnQydm.js";import{a as j,l as Xe,p as Ze,r as Qe,t as $e}from"./dropdown-menu-_xfaEp5C.js";import{t as M}from"./cn-DVhJ55Mo.js";import{t as et}from"./switch-Dp6WYNam.js";import{c as tt,n as nt,o as N,r as rt,t as it,u as P}from"./zod-Cry7YvLY.js";import{t as F}from"./settle-CFU6YpQ0.js";import{g as I,h as L,v as R}from"./table-zG68ipQc.js";import{t as at}from"./useDiscardGuard-BskWSlbT.js";import{i as z,r as ot}from"./constants-DCtq_UOe.js";import{t as st}from"./SuggestAltButton-CvIoirnz.js";import{t as ct}from"./Panel-Bcl09TtM.js";import{n as lt}from"./useContentSchema-DtYfhsd2.js";import{t as ut}from"./CopyButton-CxFsBHfF.js";import{t as B}from"./FormTextareaField-CO115n_u.js";import{t as dt}from"./entryLink-CVB-TdIn.js";var V={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`}]]};V.node;var ft=_(V),H={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`}]]};H.node;var pt=_(H),U={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`}]]};U.node;var W=_(U),G=e(t(),1),mt=I({filename:N().max(255,`validation.tooLong`),alt:R().max(1e3,`validation.tooLong`),caption:R().max(4e3,`validation.tooLong`),focalPoint:I({x:L().min(0).max(1),y:L().min(0).max(1)}).nullable()}),K=e=>({filename:e?.filename??``,alt:e?.alt??``,caption:e?.caption??``,focalPoint:e?.focalPoint??null}),ht=(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}}),gt=e=>{let t=o(),n=P({resolver:it(mt),defaultValues:K(e)}),{reset:r}=n;return(0,G.useEffect)(()=>{r(K(e)),t.reset()},[e?.id,r]),{form:n,onSubmit:n.handleSubmit(async n=>{if(!e)return;let i=await F(t.mutateAsync({id:e.id,input:ht(e,n)}));i.ok&&(r(K(i.value)),v.success(y.t(`media.details.saved`)))}),pending:t.isPending,error:t.error}},_t=e=>{let t=e instanceof _e?e.details:void 0;return typeof t?.usageCount==`number`?t.usageCount:0},vt=(e,t,n)=>{let r=s(),[i,a]=(0,G.useState)(void 0),[o,c]=(0,G.useState)(!1),[l,u]=(0,G.useState)(0),d=e=>{v.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(!ne(n,`MEDIA_IN_USE`))throw n;let i=_t(n);if(!t)throw a({assetId:e.id,usageCount:i}),n;r.reset(),u(i),c(!0);return}d(e)}},force:{open:o,usageCount:l,pending:r.isPending,error:r.error,onOpenChange:c,confirm:()=>{e&&r.mutate({id:e.id,force:!0},{onSuccess:()=>{c(!1),d(e)}})}}}},q=e(n(),1),yt=({asset:e,onDeleted:t})=>{let{t:n}=g(),{isOwner:r}=T(),i=vt(e,r,t),a=i.blockedUsageCount;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(C,{tone:`danger`,align:`start`,side:`top`,title:n(`media.delete.title`,{name:e.filename}),description:a===void 0?n(`media.delete.description`):`${n(`media.delete.inUseDescription`,{count:a})} ${n(`media.delete.onlyOwners`)}`,confirmLabel:n(`common.delete`),onConfirm:i.confirm,trigger:(0,q.jsxs)(b,{variant:`destructive-ghost`,children:[(0,q.jsx)(w,{"aria-hidden":`true`}),n(`media.delete.action`)]})}),(0,q.jsx)(Oe,{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})]})},bt=({asset:e,form:t,onSubmit:n,pending:r,error:i,readOnly:a})=>{let{t:o}=g(),s=tt({control:t.control,name:`focalPoint`}),c=D(e.mimeType);return(0,q.jsx)(`form`,{noValidate:!0,"aria-label":o(`media.details.formLabel`),onSubmit:e=>{e.preventDefault(),n()},children:(0,q.jsx)(`fieldset`,{disabled:a,className:`contents`,children:(0,q.jsxs)(je,{children:[(0,q.jsx)(nt,{control:t.control,name:`filename`,label:o(`media.fields.filename`),autoComplete:`off`}),c?(0,q.jsx)(B,{control:t.control,name:`alt`,label:o(`media.fields.alt`),rows:2,placeholder:o(`media.details.altHint`)}):null,c&&!a?(0,q.jsx)(st,{assetId:e.id,mimeType:e.mimeType,onSuggest:e=>t.setValue(`alt`,e,{shouldDirty:!0,shouldValidate:!0})}):null,(0,q.jsx)(B,{control:t.control,name:`caption`,label:o(`media.fields.caption`),rows:2}),c&&!a?(0,q.jsx)(Ie,{imageUrl:e.url,value:s.field.value,onChange:e=>s.field.onChange(e)}):null,(0,q.jsx)(S,{error:i}),a?null:(0,q.jsx)(`div`,{className:`flex justify-end`,children:(0,q.jsx)(ie,{pending:r,pendingLabel:o(`common.saving`),disabled:!t.formState.isDirty,children:o(`common.saveChanges`)})})]})})})},xt=e=>e.variants.find(e=>e.name===`w1280`&&e.url)?.url??e.variants.find(e=>e.name===`w640`&&e.url)?.url??e.url,St=({asset:e})=>{let{t}=g();return D(e.mimeType)?(0,q.jsx)(`img`,{src:xt(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,q.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,q.jsx)(`audio`,{src:e.url,controls:!0,preload:`metadata`,className:`w-full`}):(0,q.jsxs)(`div`,{className:`flex flex-col items-center gap-3 rounded-lg border bg-muted px-4 py-8`,children:[(0,q.jsx)(ze,{mimeType:e.mimeType,className:`size-10 text-muted-foreground`}),(0,q.jsx)(b,{asChild:!0,variant:`outline`,size:`sm`,children:(0,q.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,children:[(0,q.jsx)(Ae,{"aria-hidden":`true`}),t(`media.details.openFile`)]})})]})},J=({title:e,children:t})=>(0,q.jsxs)(`section`,{className:`space-y-3`,children:[(0,q.jsx)(`h3`,{className:`text-sm font-semibold`,children:e}),t]}),Ct=({usage:e,model:t})=>{let{t:n}=g();return(0,q.jsxs)(`li`,{className:`flex min-w-0 items-center gap-2 px-3 py-2`,children:[(0,q.jsx)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:t?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(ye,{asChild:!0,className:`block truncate text-sm`,children:(0,q.jsx)(te,{...dt(t.apiKey,e.entryId,t.kind,{locale:e.locale}),children:e.title??n(`content.untitled`)})}),(0,q.jsx)(`p`,{className:`truncate text-meta text-muted-foreground`,children:t.label})]}):(0,q.jsx)(`p`,{className:`truncate text-sm text-muted-foreground`,children:n(`media.usage.hidden`)})}),(0,q.jsx)(me,{variant:`outline`,className:`font-mono`,children:e.locale}),(0,q.jsx)(m,{size:`sm`,tone:e.state===`published`?`success`:`neutral`,label:e.state===`published`?n(`media.usage.published`):n(`media.usage.draft`)})]})},wt=({assetId:e})=>{let{t}=g(),n=u(e),{schema:r}=lt();return n.isPending?(0,q.jsx)(x,{className:`h-8 w-full`}):n.isError?(0,q.jsx)(h,{error:n.error,onRetry:()=>void n.refetch()}):n.data.total===0?(0,q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`media.usage.none`)}):(0,q.jsxs)(`div`,{className:`space-y-2`,children:[(0,q.jsx)(`p`,{className:`text-sm`,children:t(`media.usage.count`,{count:n.data.total})}),(0,q.jsx)(`ul`,{className:`divide-y rounded-lg border`,children:n.data.items.map(e=>(0,q.jsx)(Ct,{usage:e,model:r?.models.get(e.modelId)},`${e.entryId}:${e.fieldId}:${e.locale}:${e.state}`))})]})},Tt=({asset:e,canManage:t})=>{let{t:n}=g(),r=o(),[i,a]=(0,G.useState)(!1),s=e.visibility===`private`,c=s?`public`:`private`,l=n(s?`media.visibility.privateExplanation`:`media.visibility.publicExplanation`);return(0,q.jsxs)(Fe,{orientation:`horizontal`,children:[(0,q.jsxs)(Me,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[s?(0,q.jsx)(re,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):(0,q.jsx)(Ue,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}),(0,q.jsx)(Ne,{htmlFor:`asset-private`,children:n(`media.visibility.privateLabel`)})]}),(0,q.jsx)(Pe,{id:`asset-private-description`,children:t?l:`${l} ${n(`media.visibility.needsManage`)}`})]}),(0,q.jsx)(C,{tone:c===`public`?`danger`:`default`,open:i,onOpenChange:a,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(()=>v.success(n(`media.visibility.changed`))),children:(0,q.jsx)(et,{id:`asset-private`,checked:s,disabled:!t||r.isPending,"aria-describedby":`asset-private-description`,onCheckedChange:()=>a(!0)})})]})},Et=({assetId:e,onClose:t,onReplace:n})=>{let{t:r}=g(),i=a(e),o=i.data,{canWrite:s,canManage:c}=T(),l=gt(o),{requestOpenChange:u,discardPrompt:d}=at({dirty:l.form.formState.isDirty,pending:l.pending,onOpenChange:e=>{e||(l.form.reset(),t())}}),f=o?Ve[o.status]:void 0;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(oe,{open:e!==void 0,onOpenChange:u,children:(0,q.jsxs)(he,{size:`sm`,children:[(0,q.jsxs)(pe,{children:[(0,q.jsx)(fe,{className:`pr-8 break-all`,children:o?.filename??r(`media.details.title`)}),(0,q.jsx)(se,{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&&f?(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 pt-1`,children:[(0,q.jsx)(m,{tone:f.tone,label:r(f.labelKey)}),o.visibility===`private`?(0,q.jsx)(m,{tone:`muted`,label:r(`media.visibility.private`)}):null,(0,q.jsx)(`span`,{className:`ml-auto`,children:(0,q.jsx)(ut,{value:o.url})})]}):null]}),(0,q.jsxs)(de,{className:`space-y-6`,children:[i.isPending?(0,q.jsx)(ge,{rows:3}):null,i.isError?(0,q.jsx)(h,{error:i.error,onRetry:()=>void i.refetch()}):null,o&&f?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`space-y-3`,children:[(0,q.jsx)(St,{asset:o}),o.urlExpiresAt?(0,q.jsx)(`p`,{className:`text-meta text-muted-foreground`,children:r(`media.details.signedLinkNote`)}):null,o.processingError?(0,q.jsxs)(De,{variant:`destructive`,children:[(0,q.jsx)(ue,{"aria-hidden":`true`}),(0,q.jsx)(ke,{children:o.processingError})]}):null]}),(0,q.jsx)(J,{title:r(`media.details.metadata`),children:(0,q.jsx)(bt,{asset:o,form:l.form,onSubmit:()=>void l.onSubmit(),pending:l.pending,error:l.error,readOnly:!s})}),(0,q.jsx)(J,{title:r(`media.usage.title`),children:(0,q.jsx)(wt,{assetId:o.id})}),(0,q.jsx)(J,{title:r(`media.visibility.title`),children:(0,q.jsx)(Tt,{asset:o,canManage:c})}),(0,q.jsx)(J,{title:r(`media.variants.title`),children:(0,q.jsx)(Re,{asset:o})})]}):null]}),o&&(s||c)?(0,q.jsxs)(ce,{className:`flex-row flex-wrap justify-between`,children:[c?(0,q.jsx)(yt,{asset:o,onDeleted:t}):null,s?(0,q.jsx)(k,{variant:`outline`,multiple:!1,label:r(`media.details.replace`),onFiles:([e])=>e?n(o.id,e):void 0,className:`ml-auto`}):null]}):null]})}),d]})},Y=e=>e.dataTransfer.types.includes(`Files`),Dt=({enabled:e,onFiles:t,children:n,className:r})=>{let{t:i}=g(),[a,o]=(0,G.useState)(!1),s=(0,G.useRef)(0);return e?(0,q.jsxs)(`div`,{className:M(`relative`,r),onDragEnter:e=>{Y(e)&&(s.current+=1,o(!0))},onDragLeave:()=>{s.current=Math.max(0,s.current-1),s.current===0&&o(!1)},onDragOver:e=>{Y(e)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)},onDrop:e=>{e.preventDefault(),s.current=0,o(!1);let n=[...e.dataTransfer.files];n.length>0&&t(n)},children:[n,a?(0,q.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,q.jsx)(Je,{className:`size-8`}),(0,q.jsx)(`p`,{className:`font-semibold`,children:i(`media.upload.dropHere`)})]}):null]}):(0,q.jsx)(`div`,{className:r,children:n})},X=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)},Z=e=>e.flatMap(e=>[e,...Z(e.children)]),Ot=I({name:N().max(255,`validation.tooLong`)}),kt=(e,t)=>{let n=d(),r=f(),i=e.mode===`rename`?e.folder.name:``,a=P({resolver:it(Ot),defaultValues:{name:i}}),o=a.handleSubmit(async({name:i})=>{let a=i.trim();if(e.mode===`rename`&&a===e.folder.name){t();return}(await F(e.mode===`rename`?r.mutateAsync({id:e.folder.id,input:{expectedVersion:e.folder.version,name:a}}):n.mutateAsync({name:a,parentId:e.parentId}))).ok&&(v.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}},Q=({edit:e,onDone:t})=>{let{t:n}=g(),i=(0,G.useId)(),{form:a,onSubmit:o,initialName:s,pending:c,error:l}=kt(e,()=>t(!0)),{setFocus:u}=a;(0,G.useEffect)(()=>{u(`name`,{shouldSelect:!0})},[u]);let d=a.formState.errors.name?.message??(l?we(l):void 0),f=e.mode===`create`;return(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`form`,{noValidate:!0,onSubmit:e=>void o(e),onKeyDown:e=>{e.key===`Escape`&&!c&&(e.preventDefault(),e.stopPropagation(),t(!0))},onBlur:e=>{let n=e.relatedTarget;n instanceof Node&&e.currentTarget.contains(n)||!c&&a.getValues(`name`).trim()===s&&t(!1)},className:`flex items-center gap-1 py-0.5 pl-1`,children:[f?(0,q.jsx)(O,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}):(0,q.jsx)(E,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}),(0,q.jsx)(Ee,{...a.register(`name`),inputSize:`sm`,autoComplete:`off`,spellCheck:!1,readOnly:c,"aria-label":f?n(`media.folders.newName`):n(`media.folders.renameLabel`,{name:e.folder.name}),"aria-invalid":d?!0:void 0,"aria-describedby":d?i:void 0,className:`h-8 px-2`}),(0,q.jsx)(b,{type:`submit`,variant:`ghost`,size:`icon-xs`,disabled:c,"aria-label":n(f?`media.folders.create`:`media.folders.saveName`),children:c?(0,q.jsx)(r,{"aria-hidden":`true`,className:`animate-spin`}):(0,q.jsx)(Te,{"aria-hidden":`true`})}),(0,q.jsx)(b,{type:`button`,variant:`ghost`,size:`icon-xs`,disabled:c,"aria-label":n(`common.cancel`),onClick:()=>t(!0),children:(0,q.jsx)(p,{"aria-hidden":`true`})})]}),(0,q.jsx)(`div`,{className:`pl-6`,children:(0,q.jsx)(rt,{id:i,message:d})})]})},$=`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`,At=({folder:e,canManage:t,actions:n})=>{let{t:r}=g(),i=(0,G.useRef)(!1),a=e=>()=>{i.current=!0,e()};return(0,q.jsxs)($e,{children:[(0,q.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,q.jsx)(Ze,{asChild:!0,children:(0,q.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,q.jsx)(Le,{"aria-hidden":`true`})})})}),(0,q.jsxs)(Qe,{align:`end`,onCloseAutoFocus:e=>{i.current&&(i.current=!1,e.preventDefault())},children:[(0,q.jsxs)(j,{onSelect:a(()=>n.onCreate(e.id)),children:[(0,q.jsx)(O,{"aria-hidden":`true`}),r(`media.folders.newSubfolder`)]}),(0,q.jsxs)(j,{onSelect:a(()=>n.onRename(e)),children:[(0,q.jsx)(E,{"aria-hidden":`true`}),r(`media.folders.rename`)]}),t?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Xe,{}),(0,q.jsxs)(j,{variant:`destructive`,onSelect:a(()=>n.onDeleteOpenChange(e,!0)),children:[(0,q.jsx)(w,{"aria-hidden":`true`}),r(`common.delete`)]})]}):null]})]})},jt=({node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:s})=>{let c=e.id===t,l=c?pt:W,u=a?.mode===`rename`&&a.folder.id===e.id?a:void 0,d=a?.mode===`create`&&a.parentId===e.id?a:void 0;return(0,q.jsxs)(`li`,{children:[u?(0,q.jsx)(Q,{edit:u,onDone:o}):(0,q.jsxs)(`div`,{className:`relative flex items-center`,children:[(0,q.jsxs)(`button`,{type:`button`,"aria-current":c?`true`:void 0,onClick:()=>s(e.id),className:M($,`flex-1 pl-2.5`,n?`pr-9`:`pr-2.5`),children:[(0,q.jsx)(l,{"aria-hidden":`true`}),(0,q.jsx)(`span`,{className:`truncate`,children:e.name}),(0,q.jsx)(`span`,{className:`ml-auto text-xs font-medium text-muted-foreground tabular-nums`,children:e.assetCount})]}),n?(0,q.jsx)(At,{folder:e,canManage:r,actions:i}):null]}),e.children.length>0||d?(0,q.jsxs)(`ul`,{className:`mt-0.5 ml-4 space-y-0.5 border-l pl-1.5`,children:[d?(0,q.jsx)(`li`,{children:(0,q.jsx)(Q,{edit:d,onDone:o})}):null,e.children.map(e=>(0,q.jsx)(jt,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:s},e.id))]}):null]})},Mt=({current:e,icon:t,label:n,onClick:r})=>(0,q.jsxs)(`button`,{type:`button`,"aria-current":e?`true`:void 0,onClick:r,className:M($,`w-full px-2.5`),children:[t,(0,q.jsx)(`span`,{className:`truncate`,children:n})]}),Nt=({folders:e,current:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:s,className:c})=>{let{t:l}=g(),u=(0,G.useMemo)(()=>X(e??[]),[e]),d=a?.mode===`create`&&a.parentId===null?a:void 0;return(0,q.jsx)(ct,{title:l(`media.folders.title`),flush:!0,className:c,bodyClassName:`p-2`,children:(0,q.jsxs)(`nav`,{"aria-label":l(`media.folders.title`),className:`space-y-1`,children:[(0,q.jsxs)(`ul`,{className:`space-y-0.5`,children:[(0,q.jsx)(`li`,{children:(0,q.jsx)(Mt,{current:t===void 0,icon:(0,q.jsx)(Ge,{"aria-hidden":`true`}),label:l(`media.folders.all`),onClick:()=>s(void 0)})}),(0,q.jsx)(`li`,{children:(0,q.jsx)(Mt,{current:t===z,icon:(0,q.jsx)(A,{"aria-hidden":`true`}),label:l(`media.folders.unfiled`),onClick:()=>s(z)})})]}),e===void 0?(0,q.jsx)(x,{className:`h-8 w-full`}):u.length>0||d?(0,q.jsxs)(`ul`,{className:`space-y-0.5 border-t pt-1`,children:[d?(0,q.jsx)(`li`,{children:(0,q.jsx)(Q,{edit:d,onDone:o})}):null,u.map(e=>(0,q.jsx)(jt,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:s},e.id))]}):null]})})},Pt=()=>{let[e,t]=(0,G.useState)(new Set);return{selected:e,toggle:(0,G.useCallback)((e,n)=>t(t=>{let r=new Set(t);return n?r.add(e):r.delete(e),r}),[]),clear:(0,G.useCallback)(()=>t(new Set),[])}},Ft=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)},It=e=>{let[t,n]=(0,G.useState)(void 0),[r,i]=(0,G.useState)(void 0),a=l();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(()=>{v.success(y.t(`media.folders.deleted`,{name:t.name})),e(t)})},editing:t,stopEditing:e=>{let r=t;n(void 0),r&&e&&requestAnimationFrame(()=>Ft(r)?.focus())}}},Lt=()=>{let e=ve({from:`/app/media`}),t=ee({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]}:{}}}},Rt=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()},zt=(e,t)=>{let n=i(),[r,a]=(0,G.useState)(void 0);return{target:n.isPending?r:void 0,pending:n.isPending,error:n.error,reset:n.reset,moveTo:async r=>{a(r);let i=await F(n.mutateAsync({assetIds:[...e],folderId:r}));i.ok&&(v.success(y.t(`media.move.done`,{count:i.value.moved.length})),t())}}},Bt=({icon:e,label:t,depth:n,pending:i,disabled:a,onClick:o})=>(0,q.jsx)(`li`,{children:(0,q.jsxs)(`button`,{type:`button`,disabled:a,"aria-busy":i||void 0,onClick:o,style:{"--depth":n},className:M($,`w-full pr-2.5 pl-[calc(0.625rem+var(--depth)*1rem)] disabled:opacity-50`),children:[i?(0,q.jsx)(r,{"aria-hidden":`true`,className:`animate-spin`}):e,(0,q.jsx)(`span`,{className:`truncate`,children:t})]})}),Vt=({assetIds:e,onMoved:t})=>{let{t:n}=g(),r=(0,G.useId)(),[i,a]=(0,G.useState)(!1),o=c(),s=(0,G.useMemo)(()=>Z(X(o.data??[])),[o.data]),l=zt(e,()=>{a(!1),t()});return(0,q.jsxs)(Ce,{open:i,onOpenChange:e=>{l.pending||(e&&l.reset(),a(e))},modal:!0,children:[(0,q.jsx)(xe,{asChild:!0,children:(0,q.jsxs)(b,{size:`sm`,variant:`outline`,children:[(0,q.jsx)(ft,{"aria-hidden":`true`}),n(`media.move.action`)]})}),(0,q.jsxs)(Se,{align:`end`,"aria-labelledby":r,className:`w-72 space-y-2 p-2`,children:[(0,q.jsx)(`p`,{id:r,className:`px-2.5 pt-1 text-sm font-semibold`,children:n(`media.move.title`,{count:e.length})}),(0,q.jsxs)(`ul`,{className:`max-h-72 space-y-0.5 overflow-y-auto`,onKeyDown:Rt,children:[(0,q.jsx)(Bt,{icon:(0,q.jsx)(A,{"aria-hidden":`true`}),label:n(`media.folders.none`),depth:0,pending:l.target===null,disabled:l.pending,onClick:()=>void l.moveTo(null)}),s.map(e=>(0,q.jsx)(Bt,{icon:(0,q.jsx)(W,{"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))]}),o.isPending?(0,q.jsx)(x,{className:`h-8 w-full`}):null,(0,q.jsx)(S,{error:l.error})]})]})},Ht=({selected:e,onClear:t})=>{let{t:n}=g();return(0,q.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,q.jsx)(`span`,{role:`status`,"aria-live":`polite`,className:`mr-auto text-sm font-medium`,children:n(`media.selectedCount`,{count:e.size})}),(0,q.jsx)(Vt,{assetIds:[...e],onMoved:t}),(0,q.jsxs)(b,{size:`sm`,variant:`ghost`,onClick:t,children:[(0,q.jsx)(p,{"aria-hidden":`true`}),n(`media.clearSelection`)]})]})},Ut=be(`/app/media`)({component:()=>{let{t:e}=g(),{search:t,setSearch:n,assetQuery:r}=Lt(),i=c(),{canWrite:a,canManage:o}=T(),s=Ye(),l=Pt(),u=It(e=>{t.folder===e.id&&n({folder:void 0})}),d=t.folder&&t.folder!==`root`?t.folder:null,f=e=>s.enqueue(e,{folderId:d,visibility:`public`});return(0,q.jsxs)(ae,{width:`full`,children:[(0,q.jsx)(le,{title:e(`media.title`),actions:a?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(b,{variant:`outline`,"data-new-folder":!0,onClick:()=>u.actions.onCreate(null),children:[(0,q.jsx)(O,{"aria-hidden":`true`}),e(`media.folders.new`)]}),(0,q.jsx)(k,{label:e(`media.upload.action`),onFiles:f})]}):null}),(0,q.jsxs)(`div`,{className:`grid gap-6 lg:grid-cols-[13.75rem_minmax(0,1fr)]`,children:[(0,q.jsx)(Nt,{folders:i.data,current:t.folder,canWrite:a,canManage:o,actions:u.actions,editing:u.editing,onEditDone:u.stopEditing,onSelect:e=>{l.clear(),n({folder:e})},className:`lg:self-start`}),(0,q.jsxs)(Dt,{enabled:a,onFiles:f,className:`min-h-96 min-w-0 space-y-4`,children:[(0,q.jsx)(qe,{onRetry:s.retry,onDismiss:s.dismiss}),(0,q.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,q.jsx)(Ht,{selected:l.selected,onClear:l.clear}):null,(0,q.jsx)(We,{query:r,filtered:!!(t.q||t.type),view:t.view??`grid`,selected:l.selected,selectable:a,activeId:t.asset,onSelectChange:l.toggle,onOpen:e=>n({asset:e.id})})]})]}),(0,q.jsx)(Et,{assetId:t.asset,onClose:()=>n({asset:void 0}),onReplace:(e,t)=>s.enqueue([t],{folderId:null,visibility:`public`,replaceAssetId:e})})]})}});export{Ut as mediaLazyRoute};
2
+ //# sourceMappingURL=media-CURizGns.js.map