@shapio/cms 0.5.5 → 0.5.6
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.
- package/dist/admin/assets/{AssetTile-CaYPqR_F.js → AssetTile-_qRYsivK.js} +2 -2
- package/dist/admin/assets/{AssetTile-CaYPqR_F.js.map → AssetTile-_qRYsivK.js.map} +1 -1
- package/dist/admin/assets/{AssistError-drmpXSbS.js → AssistError-CMXQWiQo.js} +2 -2
- package/dist/admin/assets/{AssistError-drmpXSbS.js.map → AssistError-CMXQWiQo.js.map} +1 -1
- package/dist/admin/assets/{BlockMenuItems-D-jZ0oaU.js → BlockMenuItems-WIrbyv1a.js} +2 -2
- package/dist/admin/assets/{BlockMenuItems-D-jZ0oaU.js.map → BlockMenuItems-WIrbyv1a.js.map} +1 -1
- package/dist/admin/assets/{Body-Gn_z2KPN.js → Body-BYc1IVsQ.js} +2 -2
- package/dist/admin/assets/{Body-Gn_z2KPN.js.map → Body-BYc1IVsQ.js.map} +1 -1
- package/dist/admin/assets/Builder-CwHpRhZN.js +2 -0
- package/dist/admin/assets/Builder-CwHpRhZN.js.map +1 -0
- package/dist/admin/assets/{CodeEditor-CzRU6och.js → CodeEditor-NMvrWgxT.js} +2 -2
- package/dist/admin/assets/{CodeEditor-CzRU6och.js.map → CodeEditor-NMvrWgxT.js.map} +1 -1
- package/dist/admin/assets/{ConfirmDialog-DZRJfdvH.js → ConfirmDialog-Rd6WDt6q.js} +2 -2
- package/dist/admin/assets/{ConfirmDialog-DZRJfdvH.js.map → ConfirmDialog-Rd6WDt6q.js.map} +1 -1
- package/dist/admin/assets/{CopyButton-h4HYhnYp.js → CopyButton-B0RuxynJ.js} +2 -2
- package/dist/admin/assets/{CopyButton-h4HYhnYp.js.map → CopyButton-B0RuxynJ.js.map} +1 -1
- package/dist/admin/assets/{CursorPager-H4SpVYw7.js → CursorPager-CQZsKNxR.js} +2 -2
- package/dist/admin/assets/{CursorPager-H4SpVYw7.js.map → CursorPager-CQZsKNxR.js.map} +1 -1
- package/dist/admin/assets/{FocalPoint-CSeKI4Iw.js → FocalPoint-BYu2fOTb.js} +2 -2
- package/dist/admin/assets/{FocalPoint-CSeKI4Iw.js.map → FocalPoint-BYu2fOTb.js.map} +1 -1
- package/dist/admin/assets/{Form-DF_YmR1G.js → Form-CiZUsLPp.js} +2 -2
- package/dist/admin/assets/{Form-DF_YmR1G.js.map → Form-CiZUsLPp.js.map} +1 -1
- package/dist/admin/assets/{FormCheckboxGroup-V3IKrvzc.js → FormCheckboxGroup-Bz8KERs1.js} +2 -2
- package/dist/admin/assets/{FormCheckboxGroup-V3IKrvzc.js.map → FormCheckboxGroup-Bz8KERs1.js.map} +1 -1
- package/dist/admin/assets/{FormRadioGroup-DIv-MYgn.js → FormRadioGroup-c-wyx7dq.js} +2 -2
- package/dist/admin/assets/{FormRadioGroup-DIv-MYgn.js.map → FormRadioGroup-c-wyx7dq.js.map} +1 -1
- package/dist/admin/assets/{FormSelectField-CUhaPIMY.js → FormSelectField-ijG9qPpb.js} +2 -2
- package/dist/admin/assets/{FormSelectField-CUhaPIMY.js.map → FormSelectField-ijG9qPpb.js.map} +1 -1
- package/dist/admin/assets/{FormSwitchField-DW8ysyk_.js → FormSwitchField-Bp3hNpeP.js} +2 -2
- package/dist/admin/assets/{FormSwitchField-DW8ysyk_.js.map → FormSwitchField-Bp3hNpeP.js.map} +1 -1
- package/dist/admin/assets/{FormTextareaField-DbqZ-MwI.js → FormTextareaField-BSKMqHcW.js} +2 -2
- package/dist/admin/assets/{FormTextareaField-DbqZ-MwI.js.map → FormTextareaField-BSKMqHcW.js.map} +1 -1
- package/dist/admin/assets/{HintedLabel-BlLtqVVz.js → HintedLabel-BrLH4NQW.js} +2 -2
- package/dist/admin/assets/{HintedLabel-BlLtqVVz.js.map → HintedLabel-BrLH4NQW.js.map} +1 -1
- package/dist/admin/assets/{InfoHint-bYMd_t0J.js → InfoHint-Dyzyf59c.js} +2 -2
- package/dist/admin/assets/{InfoHint-bYMd_t0J.js.map → InfoHint-Dyzyf59c.js.map} +1 -1
- package/dist/admin/assets/{InsertMenuItem-D2HGERzb.js → InsertMenuItem-BvRDuXtd.js} +2 -2
- package/dist/admin/assets/{InsertMenuItem-D2HGERzb.js.map → InsertMenuItem-BvRDuXtd.js.map} +1 -1
- package/dist/admin/assets/{Match-GDx_orOH.js → Match-Bixf1ygj.js} +2 -2
- package/dist/admin/assets/{Match-GDx_orOH.js.map → Match-Bixf1ygj.js.map} +1 -1
- package/dist/admin/assets/{QueryView-UBO-U5Wo.js → QueryView--_vvV7dC.js} +2 -2
- package/dist/admin/assets/{QueryView-UBO-U5Wo.js.map → QueryView--_vvV7dC.js.map} +1 -1
- package/dist/admin/assets/{RadioTile-CJbIIV8t.js → RadioTile-BCp6auUz.js} +2 -2
- package/dist/admin/assets/{RadioTile-CJbIIV8t.js.map → RadioTile-BCp6auUz.js.map} +1 -1
- package/dist/admin/assets/{RichTextField-M7HyUhYF.js → RichTextField-fWNjndUc.js} +2 -2
- package/dist/admin/assets/{RichTextField-M7HyUhYF.js.map → RichTextField-fWNjndUc.js.map} +1 -1
- package/dist/admin/assets/{RowTitle-DoxDM1XL.js → RowTitle-B4CE8tt7.js} +2 -2
- package/dist/admin/assets/{RowTitle-DoxDM1XL.js.map → RowTitle-B4CE8tt7.js.map} +1 -1
- package/dist/admin/assets/{SecretReveal-kCkLH5jg.js → SecretReveal-BhSqdWqh.js} +2 -2
- package/dist/admin/assets/{SecretReveal-kCkLH5jg.js.map → SecretReveal-BhSqdWqh.js.map} +1 -1
- package/dist/admin/assets/{SharedGlyph-D1OMHXPf.js → SharedGlyph-71FTypoi.js} +2 -2
- package/dist/admin/assets/{SharedGlyph-D1OMHXPf.js.map → SharedGlyph-71FTypoi.js.map} +1 -1
- package/dist/admin/assets/StepList-CZJmwy9e.js +2 -0
- package/dist/admin/assets/StepList-CZJmwy9e.js.map +1 -0
- package/dist/admin/assets/Structure-Dk87778W.js +2 -0
- package/dist/admin/assets/{Structure-CO4aJZVP.js.map → Structure-Dk87778W.js.map} +1 -1
- package/dist/admin/assets/{SuggestAltButton-CbRUxD5s.js → SuggestAltButton-CxS8IR6m.js} +2 -2
- package/dist/admin/assets/{SuggestAltButton-CbRUxD5s.js.map → SuggestAltButton-CxS8IR6m.js.map} +1 -1
- package/dist/admin/assets/{Thumbnail-D1XuDElk.js → Thumbnail-BwbCNpgQ.js} +2 -2
- package/dist/admin/assets/{Thumbnail-D1XuDElk.js.map → Thumbnail-BwbCNpgQ.js.map} +1 -1
- package/dist/admin/assets/{UnsavedChangesGuard-C1n7egF6.js → UnsavedChangesGuard-C6nD55Fn.js} +2 -2
- package/dist/admin/assets/{UnsavedChangesGuard-C1n7egF6.js.map → UnsavedChangesGuard-C6nD55Fn.js.map} +1 -1
- package/dist/admin/assets/{UserAvatar-Bl32IpG_.js → UserAvatar-D7IbSpsP.js} +2 -2
- package/dist/admin/assets/{UserAvatar-Bl32IpG_.js.map → UserAvatar-D7IbSpsP.js.map} +1 -1
- package/dist/admin/assets/{badge-ydvfgE8a.js → badge-vLiQczOd.js} +2 -2
- package/dist/admin/assets/{badge-ydvfgE8a.js.map → badge-vLiQczOd.js.map} +1 -1
- package/dist/admin/assets/{changeSets-DgfCKja3.js → changeSets-D5VevASj.js} +2 -2
- package/dist/admin/assets/{changeSets-DgfCKja3.js.map → changeSets-D5VevASj.js.map} +1 -1
- package/dist/admin/assets/{constants-esJAnNTh.js → constants-CKGh8uwT.js} +2 -2
- package/dist/admin/assets/{constants-esJAnNTh.js.map → constants-CKGh8uwT.js.map} +1 -1
- package/dist/admin/assets/{content-DsMSB6Wb.js → content-Cbavyq0x.js} +3 -3
- package/dist/admin/assets/{content-DsMSB6Wb.js.map → content-Cbavyq0x.js.map} +1 -1
- package/dist/admin/assets/{contentTypes-C-AKiYu1.js → contentTypes-DzQ_0v36.js} +2 -2
- package/dist/admin/assets/{contentTypes-C-AKiYu1.js.map → contentTypes-DzQ_0v36.js.map} +1 -1
- package/dist/admin/assets/{develop-DL-2W9jv.js → develop-BDqMOEql.js} +2 -2
- package/dist/admin/assets/{develop-DL-2W9jv.js.map → develop-BDqMOEql.js.map} +1 -1
- package/dist/admin/assets/{dropdown-menu-C53v9ioW.js → dropdown-menu-CVAnm22s.js} +2 -2
- package/dist/admin/assets/{dropdown-menu-C53v9ioW.js.map → dropdown-menu-CVAnm22s.js.map} +1 -1
- package/dist/admin/assets/es2015-BKfbx3rz.js +42 -0
- package/dist/admin/assets/es2015-BKfbx3rz.js.map +1 -0
- package/dist/admin/assets/{field-W1dB_h6d.js → field-Bg-JRgsB.js} +2 -2
- package/dist/admin/assets/{field-W1dB_h6d.js.map → field-Bg-JRgsB.js.map} +1 -1
- package/dist/admin/assets/{fileRoute-DzWMBrRx.js → fileRoute-DQCI1nMN.js} +2 -2
- package/dist/admin/assets/{fileRoute-DzWMBrRx.js.map → fileRoute-DQCI1nMN.js.map} +1 -1
- package/dist/admin/assets/{followPlural-D-5ZJqJF.js → followPlural-D0bENI5E.js} +2 -2
- package/dist/admin/assets/{followPlural-D-5ZJqJF.js.map → followPlural-D0bENI5E.js.map} +1 -1
- package/dist/admin/assets/{inbox-DUqOrFEA.js → inbox-Dfy4YBZ2.js} +2 -2
- package/dist/admin/assets/{inbox-DUqOrFEA.js.map → inbox-Dfy4YBZ2.js.map} +1 -1
- package/dist/admin/assets/{index-D03RZB7e.js → index-M4TUI1dl.js} +4 -4
- package/dist/admin/assets/{index-D03RZB7e.js.map → index-M4TUI1dl.js.map} +1 -1
- package/dist/admin/assets/{labels-CHE0gg1n.js → labels-BrwwGWnv.js} +2 -2
- package/dist/admin/assets/{labels-CHE0gg1n.js.map → labels-BrwwGWnv.js.map} +1 -1
- package/dist/admin/assets/{media-BUUEsWxd.js → media-DBdx-UmR.js} +2 -2
- package/dist/admin/assets/{media-BUUEsWxd.js.map → media-DBdx-UmR.js.map} +1 -1
- package/dist/admin/assets/{network-Bolr2lmf.js → network-BpbMYp6D.js} +2 -2
- package/dist/admin/assets/{network-Bolr2lmf.js.map → network-BpbMYp6D.js.map} +1 -1
- package/dist/admin/assets/{publishing-ClNjPLQ9.js → publishing-CpSDO3M7.js} +2 -2
- package/dist/admin/assets/{publishing-ClNjPLQ9.js.map → publishing-CpSDO3M7.js.map} +1 -1
- package/dist/admin/assets/{radio-group-rFxn7cz2.js → radio-group-DQ3sC1ol.js} +2 -2
- package/dist/admin/assets/{radio-group-rFxn7cz2.js.map → radio-group-DQ3sC1ol.js.map} +1 -1
- package/dist/admin/assets/{searchSchemas-C4qp-vCa.js → searchSchemas-D4S2ceA0.js} +2 -2
- package/dist/admin/assets/{searchSchemas-C4qp-vCa.js.map → searchSchemas-D4S2ceA0.js.map} +1 -1
- package/dist/admin/assets/{sections-C7Z6Xd8r.js → sections-Cl1LrzqH.js} +2 -2
- package/dist/admin/assets/{sections-C7Z6Xd8r.js.map → sections-Cl1LrzqH.js.map} +1 -1
- package/dist/admin/assets/{select-DUhL27UN.js → select-DjCAH45V.js} +2 -2
- package/dist/admin/assets/{select-DUhL27UN.js.map → select-DjCAH45V.js.map} +1 -1
- package/dist/admin/assets/{seo-l1ZORjtv.js → seo-DJ4k3LtY.js} +2 -2
- package/dist/admin/assets/{seo-l1ZORjtv.js.map → seo-DJ4k3LtY.js.map} +1 -1
- package/dist/admin/assets/{settings-DgoG3H8C.js → settings-DRZ33PTg.js} +2 -2
- package/dist/admin/assets/{settings-DgoG3H8C.js.map → settings-DRZ33PTg.js.map} +1 -1
- package/dist/admin/assets/{shapes-BZ87ap5s.js → shapes-BJe3IMuj.js} +5 -5
- package/dist/admin/assets/{shapes-BZ87ap5s.js.map → shapes-BJe3IMuj.js.map} +1 -1
- package/dist/admin/assets/{skeleton-Dyi_b1wq.js → skeleton-D4eOLKLY.js} +2 -2
- package/dist/admin/assets/{skeleton-Dyi_b1wq.js.map → skeleton-D4eOLKLY.js.map} +1 -1
- package/dist/admin/assets/src-DUpL-qwG.js +7 -0
- package/dist/admin/assets/src-DUpL-qwG.js.map +1 -0
- package/dist/admin/assets/{switch-C3dDDUIk.js → switch-B2R13aVU.js} +2 -2
- package/dist/admin/assets/{switch-C3dDDUIk.js.map → switch-B2R13aVU.js.map} +1 -1
- package/dist/admin/assets/{theme-DPe080iG.js → theme-X-qeg74W.js} +2 -2
- package/dist/admin/assets/{theme-DPe080iG.js.map → theme-X-qeg74W.js.map} +1 -1
- package/dist/admin/assets/{titles-C5PaMgFJ.js → titles-CLh5ftA2.js} +2 -2
- package/dist/admin/assets/{titles-C5PaMgFJ.js.map → titles-CLh5ftA2.js.map} +1 -1
- package/dist/admin/assets/{tooltip-BEaZkRPK.js → tooltip-u2epXfJF.js} +2 -2
- package/dist/admin/assets/{tooltip-BEaZkRPK.js.map → tooltip-u2epXfJF.js.map} +1 -1
- package/dist/admin/assets/{useContentSchema-wLDa2L3f.js → useContentSchema-DaQHlL19.js} +2 -2
- package/dist/admin/assets/{useContentSchema-wLDa2L3f.js.map → useContentSchema-DaQHlL19.js.map} +1 -1
- package/dist/admin/assets/{useDiscardGuard-WTUINqD5.js → useDiscardGuard-BVJGUCiH.js} +2 -2
- package/dist/admin/assets/{useDiscardGuard-WTUINqD5.js.map → useDiscardGuard-BVJGUCiH.js.map} +1 -1
- package/dist/admin/assets/{useMediaPickerDialog-CFN9ZKfe.js → useMediaPickerDialog-C23eOHQR.js} +2 -2
- package/dist/admin/assets/{useMediaPickerDialog-CFN9ZKfe.js.map → useMediaPickerDialog-C23eOHQR.js.map} +1 -1
- package/dist/admin/assets/{useMediaUploader-B42H_CMG.js → useMediaUploader-CTViR0LX.js} +2 -2
- package/dist/admin/assets/{useMediaUploader-B42H_CMG.js.map → useMediaUploader-CTViR0LX.js.map} +1 -1
- package/dist/admin/assets/{useResolvedScheme-aV0QDPi3.js → useResolvedScheme-Cg8TdO85.js} +2 -2
- package/dist/admin/assets/{useResolvedScheme-aV0QDPi3.js.map → useResolvedScheme-Cg8TdO85.js.map} +1 -1
- package/dist/admin/assets/{zod-C-k48Hnc.js → zod-D5i60ErJ.js} +2 -2
- package/dist/admin/assets/{zod-C-k48Hnc.js.map → zod-D5i60ErJ.js.map} +1 -1
- package/dist/admin/index.html +27 -27
- package/dist/cli.js +10 -3
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.js +1 -1
- package/dist/{s3Adapter-sL1zP4Zl.js → s3Adapter-CtPzkzf0.js} +2 -2
- package/dist/{s3Adapter-sL1zP4Zl.js.map → s3Adapter-CtPzkzf0.js.map} +1 -1
- package/dist/{worker-DMES6pqh.js → worker-DRCCGGjl.js} +3823 -3719
- package/dist/worker-DRCCGGjl.js.map +1 -0
- package/package.json +5 -5
- package/dist/admin/assets/Builder-DyCcikfS.js +0 -2
- package/dist/admin/assets/Builder-DyCcikfS.js.map +0 -1
- package/dist/admin/assets/StepList-BIQjDaWQ.js +0 -2
- package/dist/admin/assets/StepList-BIQjDaWQ.js.map +0 -1
- package/dist/admin/assets/Structure-CO4aJZVP.js +0 -2
- package/dist/admin/assets/es2015-DrAA1N2V.js +0 -42
- package/dist/admin/assets/es2015-DrAA1N2V.js.map +0 -1
- package/dist/admin/assets/src-BcLeD2-K.js +0 -7
- package/dist/admin/assets/src-BcLeD2-K.js.map +0 -1
- package/dist/worker-DMES6pqh.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{T as e,w as t}from"./es2015-
|
|
2
|
-
//# sourceMappingURL=labels-
|
|
1
|
+
import{T as e,w as t}from"./es2015-BKfbx3rz.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-BrwwGWnv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels-
|
|
1
|
+
{"version":3,"file":"labels-BrwwGWnv.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{t as r}from"./loader-circle-C-9trZPI.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-VCJUbYzJ.js";import{T as ee,h as te}from"./auth-C4fHG9Iu.js";import{A as ne,O as p,_ as re,a as ie,c as ae,d as oe,f as se,i as ce,k as le,l as ue,m as de,n as m,p as fe,r as h,t as pe,u as me,v as he}from"./badge-ydvfgE8a.js";import{m as ge,n as g,t as _}from"./createLucideIcon-CqygG5K6.js";import{o as _e}from"./RowTitle-DoxDM1XL.js";import{t as ve}from"./fileRoute-DzWMBrRx.js";import{E as v,a as ye,i as be,n as xe}from"./InfoHint-bYMd_t0J.js";import{T as y,x as Se}from"./es2015-DrAA1N2V.js";import{c as Ce,i as b,n as we,t as x}from"./skeleton-Dyi_b1wq.js";import{a as Te,i as S,o as Ee,r as C,t as De}from"./ConfirmDialog-DZRJfdvH.js";import{t as Oe}from"./external-link-nZp2VpKw.js";import{_ as w,a as ke,n as Ae,o as je,r as Me,t as Ne}from"./field-W1dB_h6d.js";import{t as Pe}from"./FocalPoint-CSeKI4Iw.js";import{t as Fe}from"./ellipsis-BHtU4ov6.js";import{a as Ie,c as T,i as Le,n as Re,o as ze,r as E,s as Be}from"./Thumbnail-D1XuDElk.js";import{t as D}from"./folder-plus-B3L3b389.js";import{t as Ve}from"./globe-DKkjr9MZ.js";import{a as He,c as Ue,i as We,n as Ge,o as Ke,r as O,t as qe}from"./useMediaUploader-B42H_CMG.js";import{t as k}from"./inbox-BKqu1EfP.js";import{a as A,l as Je,p as Ye,r as Xe,t as Ze}from"./dropdown-menu-C53v9ioW.js";import{t as j}from"./pencil-BVSFlU14.js";import{t as M}from"./cn-DVhJ55Mo.js";import{t as Qe}from"./switch-C3dDDUIk.js";import{c as $e,n as et,o as N,r as tt,t as nt,u as P}from"./zod-C-k48Hnc.js";import{t as F}from"./settle-LRKtTN_e.js";import{g as I,h as L,v as R}from"./table-zG68ipQc.js";import{t as rt}from"./useDiscardGuard-WTUINqD5.js";import{i as z,r as it}from"./constants-DCtq_UOe.js";import{t as at}from"./SuggestAltButton-CbRUxD5s.js";import{t as ot}from"./Panel-B1TkcP8V.js";import{t as st}from"./CopyButton-h4HYhnYp.js";import{t as B}from"./FormTextareaField-DbqZ-MwI.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 ct=_(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 lt=_(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),ut=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}),dt=(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}}),ft=e=>{let t=o(),n=P({resolver:nt(ut),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:dt(e,n)}));i.ok&&(r(K(i.value)),v.success(y.t(`media.details.saved`)))}),pending:t.isPending,error:t.error}},pt=e=>{let t=e instanceof ge?e.details:void 0;return typeof t?.usageCount==`number`?t.usageCount:0},mt=(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(!te(n,`MEDIA_IN_USE`))throw n;let i=pt(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),ht=({asset:e,onDeleted:t})=>{let{t:n}=g(),{isOwner:r}=T(),i=mt(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)(De,{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})]})},gt=({asset:e,form:t,onSubmit:n,pending:r,error:i,readOnly:a})=>{let{t:o}=g(),s=$e({control:t.control,name:`focalPoint`}),c=E(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)(ke,{children:[(0,q.jsx)(et,{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)(at,{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)(Pe,{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)(re,{pending:r,pendingLabel:o(`common.saving`),disabled:!t.formState.isDirty,children:o(`common.saveChanges`)})})]})})})},_t=e=>e.variants.find(e=>e.name===`w1280`&&e.url)?.url??e.variants.find(e=>e.name===`w640`&&e.url)?.url??e.url,vt=({asset:e})=>{let{t}=g();return E(e.mimeType)?(0,q.jsx)(`img`,{src:_t(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)(Le,{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)(Oe,{"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]}),yt=({assetId:e})=>{let{t}=g(),n=u(e);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.jsxs)(`li`,{className:`flex min-w-0 items-center gap-2 px-3 py-2`,children:[(0,q.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,q.jsx)(pe,{variant:`outline`,className:`font-mono`,children:e.locale}),(0,q.jsx)(m,{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}`))})]})},bt=({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)(Ne,{orientation:`horizontal`,children:[(0,q.jsxs)(Ae,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[s?(0,q.jsx)(ne,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):(0,q.jsx)(Ve,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}),(0,q.jsx)(je,{htmlFor:`asset-private`,children:n(`media.visibility.privateLabel`)})]}),(0,q.jsx)(Me,{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)(Qe,{id:`asset-private`,checked:s,disabled:!t||r.isPending,"aria-describedby":`asset-private-description`,onCheckedChange:()=>a(!0)})})]})},xt=({assetId:e,onClose:t,onReplace:n})=>{let{t:r}=g(),i=a(e),o=i.data,{canWrite:s,canManage:c}=T(),l=ft(o),{requestOpenChange:u,discardPrompt:d}=rt({dirty:l.form.formState.isDirty,pending:l.pending,onOpenChange:e=>{e||(l.form.reset(),t())}}),f=o?ze[o.status]:void 0;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(ae,{open:e!==void 0,onOpenChange:u,children:(0,q.jsxs)(me,{size:`sm`,children:[(0,q.jsxs)(fe,{children:[(0,q.jsx)(de,{className:`pr-8 break-all`,children:o?.filename??r(`media.details.title`)}),(0,q.jsx)(oe,{className:`text-meta`,children:o?[Re(o.filename,o.mimeType),Be(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)(st,{value:o.url})})]}):null]}),(0,q.jsxs)(ue,{className:`space-y-6`,children:[i.isPending?(0,q.jsx)(he,{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)(vt,{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)(Te,{variant:`destructive`,children:[(0,q.jsx)(le,{"aria-hidden":`true`}),(0,q.jsx)(Ee,{children:o.processingError})]}):null]}),(0,q.jsx)(J,{title:r(`media.details.metadata`),children:(0,q.jsx)(gt,{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)(yt,{assetId:o.id})}),(0,q.jsx)(J,{title:r(`media.visibility.title`),children:(0,q.jsx)(bt,{asset:o,canManage:c})}),(0,q.jsx)(J,{title:r(`media.variants.title`),children:(0,q.jsx)(Ie,{asset:o})})]}):null]}),o&&(s||c)?(0,q.jsxs)(se,{className:`flex-row flex-wrap justify-between`,children:[c?(0,q.jsx)(ht,{asset:o,onDeleted:t}):null,s?(0,q.jsx)(O,{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`),St=({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)(Ke,{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)]),Ct=I({name:N().max(255,`validation.tooLong`)}),wt=(e,t)=>{let n=d(),r=f(),i=e.mode===`rename`?e.folder.name:``,a=P({resolver:nt(Ct),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}=wt(e,()=>t(!0)),{setFocus:u}=a;(0,G.useEffect)(()=>{u(`name`,{shouldSelect:!0})},[u]);let d=a.formState.errors.name?.message??(l?Se(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)(D,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}):(0,q.jsx)(j,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}),(0,q.jsx)(we,{...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)(Ce,{"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)(tt,{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`,Tt=({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)(Ze,{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)(Ye,{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)(Fe,{"aria-hidden":`true`})})})}),(0,q.jsxs)(Xe,{align:`end`,onCloseAutoFocus:e=>{i.current&&(i.current=!1,e.preventDefault())},children:[(0,q.jsxs)(A,{onSelect:a(()=>n.onCreate(e.id)),children:[(0,q.jsx)(D,{"aria-hidden":`true`}),r(`media.folders.newSubfolder`)]}),(0,q.jsxs)(A,{onSelect:a(()=>n.onRename(e)),children:[(0,q.jsx)(j,{"aria-hidden":`true`}),r(`media.folders.rename`)]}),t?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Je,{}),(0,q.jsxs)(A,{variant:`destructive`,onSelect:a(()=>n.onDeleteOpenChange(e,!0)),children:[(0,q.jsx)(w,{"aria-hidden":`true`}),r(`common.delete`)]})]}):null]})]})},Et=({node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:s})=>{let c=e.id===t,l=c?lt: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)(Tt,{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)(Et,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:s},e.id))]}):null]})},Dt=({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})]}),Ot=({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)(ot,{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)(Dt,{current:t===void 0,icon:(0,q.jsx)(Ue,{"aria-hidden":`true`}),label:l(`media.folders.all`),onClick:()=>s(void 0)})}),(0,q.jsx)(`li`,{children:(0,q.jsx)(Dt,{current:t===z,icon:(0,q.jsx)(k,{"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)(Et,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:s},e.id))]}):null]})})},kt=()=>{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),[])}},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,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(()=>At(r)?.focus())}}},Mt=()=>{let e=_e({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:it[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=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())}}},Ft=({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})]})}),It=({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=Pt(e,()=>{a(!1),t()});return(0,q.jsxs)(xe,{open:i,onOpenChange:e=>{l.pending||(e&&l.reset(),a(e))},modal:!0,children:[(0,q.jsx)(ye,{asChild:!0,children:(0,q.jsxs)(b,{size:`sm`,variant:`outline`,children:[(0,q.jsx)(ct,{"aria-hidden":`true`}),n(`media.move.action`)]})}),(0,q.jsxs)(be,{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:Nt,children:[(0,q.jsx)(Ft,{icon:(0,q.jsx)(k,{"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)(Ft,{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})]})]})},Lt=({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)(It,{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`)]})]})},Rt=ve(`/app/media`)({component:()=>{let{t:e}=g(),{search:t,setSearch:n,assetQuery:r}=Mt(),i=c(),{canWrite:a,canManage:o}=T(),s=qe(),l=kt(),u=jt(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)(ie,{width:`full`,children:[(0,q.jsx)(ce,{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)(D,{"aria-hidden":`true`}),e(`media.folders.new`)]}),(0,q.jsx)(O,{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)(Ot,{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)(St,{enabled:a,onFiles:f,className:`min-h-96 min-w-0 space-y-4`,children:[(0,q.jsx)(Ge,{onRetry:s.retry,onDismiss:s.dismiss}),(0,q.jsx)(We,{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)(Lt,{selected:l.selected,onClear:l.clear}):null,(0,q.jsx)(He,{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)(xt,{assetId:t.asset,onClose:()=>n({asset:void 0}),onReplace:(e,t)=>s.enqueue([t],{folderId:null,visibility:`public`,replaceAssetId:e})})]})}});export{Rt as mediaLazyRoute};
|
|
2
|
-
//# sourceMappingURL=media-
|
|
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{t as r}from"./loader-circle-C-9trZPI.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-VCJUbYzJ.js";import{T as ee,h as te}from"./auth-C4fHG9Iu.js";import{A as ne,O as p,_ as re,a as ie,c as ae,d as oe,f as se,i as ce,k as le,l as ue,m as de,n as m,p as fe,r as h,t as pe,u as me,v as he}from"./badge-vLiQczOd.js";import{m as ge,n as g,t as _}from"./createLucideIcon-CqygG5K6.js";import{o as _e}from"./RowTitle-B4CE8tt7.js";import{t as ve}from"./fileRoute-DQCI1nMN.js";import{E as v,a as ye,i as be,n as xe}from"./InfoHint-Dyzyf59c.js";import{T as y,x as Se}from"./es2015-BKfbx3rz.js";import{c as Ce,i as b,n as we,t as x}from"./skeleton-D4eOLKLY.js";import{a as Te,i as S,o as Ee,r as C,t as De}from"./ConfirmDialog-Rd6WDt6q.js";import{t as Oe}from"./external-link-nZp2VpKw.js";import{_ as w,a as ke,n as Ae,o as je,r as Me,t as Ne}from"./field-Bg-JRgsB.js";import{t as Pe}from"./FocalPoint-BYu2fOTb.js";import{t as Fe}from"./ellipsis-BHtU4ov6.js";import{a as Ie,c as T,i as Le,n as Re,o as ze,r as E,s as Be}from"./Thumbnail-BwbCNpgQ.js";import{t as D}from"./folder-plus-B3L3b389.js";import{t as Ve}from"./globe-DKkjr9MZ.js";import{a as He,c as Ue,i as We,n as Ge,o as Ke,r as O,t as qe}from"./useMediaUploader-CTViR0LX.js";import{t as k}from"./inbox-BKqu1EfP.js";import{a as A,l as Je,p as Ye,r as Xe,t as Ze}from"./dropdown-menu-CVAnm22s.js";import{t as j}from"./pencil-BVSFlU14.js";import{t as M}from"./cn-DVhJ55Mo.js";import{t as Qe}from"./switch-B2R13aVU.js";import{c as $e,n as et,o as N,r as tt,t as nt,u as P}from"./zod-D5i60ErJ.js";import{t as F}from"./settle-LRKtTN_e.js";import{g as I,h as L,v as R}from"./table-zG68ipQc.js";import{t as rt}from"./useDiscardGuard-BVJGUCiH.js";import{i as z,r as it}from"./constants-DCtq_UOe.js";import{t as at}from"./SuggestAltButton-CxS8IR6m.js";import{t as ot}from"./Panel-B1TkcP8V.js";import{t as st}from"./CopyButton-B0RuxynJ.js";import{t as B}from"./FormTextareaField-BSKMqHcW.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 ct=_(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 lt=_(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),ut=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}),dt=(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}}),ft=e=>{let t=o(),n=P({resolver:nt(ut),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:dt(e,n)}));i.ok&&(r(K(i.value)),v.success(y.t(`media.details.saved`)))}),pending:t.isPending,error:t.error}},pt=e=>{let t=e instanceof ge?e.details:void 0;return typeof t?.usageCount==`number`?t.usageCount:0},mt=(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(!te(n,`MEDIA_IN_USE`))throw n;let i=pt(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),ht=({asset:e,onDeleted:t})=>{let{t:n}=g(),{isOwner:r}=T(),i=mt(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)(De,{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})]})},gt=({asset:e,form:t,onSubmit:n,pending:r,error:i,readOnly:a})=>{let{t:o}=g(),s=$e({control:t.control,name:`focalPoint`}),c=E(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)(ke,{children:[(0,q.jsx)(et,{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)(at,{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)(Pe,{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)(re,{pending:r,pendingLabel:o(`common.saving`),disabled:!t.formState.isDirty,children:o(`common.saveChanges`)})})]})})})},_t=e=>e.variants.find(e=>e.name===`w1280`&&e.url)?.url??e.variants.find(e=>e.name===`w640`&&e.url)?.url??e.url,vt=({asset:e})=>{let{t}=g();return E(e.mimeType)?(0,q.jsx)(`img`,{src:_t(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)(Le,{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)(Oe,{"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]}),yt=({assetId:e})=>{let{t}=g(),n=u(e);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.jsxs)(`li`,{className:`flex min-w-0 items-center gap-2 px-3 py-2`,children:[(0,q.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,q.jsx)(pe,{variant:`outline`,className:`font-mono`,children:e.locale}),(0,q.jsx)(m,{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}`))})]})},bt=({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)(Ne,{orientation:`horizontal`,children:[(0,q.jsxs)(Ae,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[s?(0,q.jsx)(ne,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):(0,q.jsx)(Ve,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}),(0,q.jsx)(je,{htmlFor:`asset-private`,children:n(`media.visibility.privateLabel`)})]}),(0,q.jsx)(Me,{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)(Qe,{id:`asset-private`,checked:s,disabled:!t||r.isPending,"aria-describedby":`asset-private-description`,onCheckedChange:()=>a(!0)})})]})},xt=({assetId:e,onClose:t,onReplace:n})=>{let{t:r}=g(),i=a(e),o=i.data,{canWrite:s,canManage:c}=T(),l=ft(o),{requestOpenChange:u,discardPrompt:d}=rt({dirty:l.form.formState.isDirty,pending:l.pending,onOpenChange:e=>{e||(l.form.reset(),t())}}),f=o?ze[o.status]:void 0;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(ae,{open:e!==void 0,onOpenChange:u,children:(0,q.jsxs)(me,{size:`sm`,children:[(0,q.jsxs)(fe,{children:[(0,q.jsx)(de,{className:`pr-8 break-all`,children:o?.filename??r(`media.details.title`)}),(0,q.jsx)(oe,{className:`text-meta`,children:o?[Re(o.filename,o.mimeType),Be(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)(st,{value:o.url})})]}):null]}),(0,q.jsxs)(ue,{className:`space-y-6`,children:[i.isPending?(0,q.jsx)(he,{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)(vt,{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)(Te,{variant:`destructive`,children:[(0,q.jsx)(le,{"aria-hidden":`true`}),(0,q.jsx)(Ee,{children:o.processingError})]}):null]}),(0,q.jsx)(J,{title:r(`media.details.metadata`),children:(0,q.jsx)(gt,{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)(yt,{assetId:o.id})}),(0,q.jsx)(J,{title:r(`media.visibility.title`),children:(0,q.jsx)(bt,{asset:o,canManage:c})}),(0,q.jsx)(J,{title:r(`media.variants.title`),children:(0,q.jsx)(Ie,{asset:o})})]}):null]}),o&&(s||c)?(0,q.jsxs)(se,{className:`flex-row flex-wrap justify-between`,children:[c?(0,q.jsx)(ht,{asset:o,onDeleted:t}):null,s?(0,q.jsx)(O,{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`),St=({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)(Ke,{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)]),Ct=I({name:N().max(255,`validation.tooLong`)}),wt=(e,t)=>{let n=d(),r=f(),i=e.mode===`rename`?e.folder.name:``,a=P({resolver:nt(Ct),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}=wt(e,()=>t(!0)),{setFocus:u}=a;(0,G.useEffect)(()=>{u(`name`,{shouldSelect:!0})},[u]);let d=a.formState.errors.name?.message??(l?Se(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)(D,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}):(0,q.jsx)(j,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}),(0,q.jsx)(we,{...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)(Ce,{"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)(tt,{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`,Tt=({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)(Ze,{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)(Ye,{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)(Fe,{"aria-hidden":`true`})})})}),(0,q.jsxs)(Xe,{align:`end`,onCloseAutoFocus:e=>{i.current&&(i.current=!1,e.preventDefault())},children:[(0,q.jsxs)(A,{onSelect:a(()=>n.onCreate(e.id)),children:[(0,q.jsx)(D,{"aria-hidden":`true`}),r(`media.folders.newSubfolder`)]}),(0,q.jsxs)(A,{onSelect:a(()=>n.onRename(e)),children:[(0,q.jsx)(j,{"aria-hidden":`true`}),r(`media.folders.rename`)]}),t?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Je,{}),(0,q.jsxs)(A,{variant:`destructive`,onSelect:a(()=>n.onDeleteOpenChange(e,!0)),children:[(0,q.jsx)(w,{"aria-hidden":`true`}),r(`common.delete`)]})]}):null]})]})},Et=({node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:s})=>{let c=e.id===t,l=c?lt: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)(Tt,{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)(Et,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:s},e.id))]}):null]})},Dt=({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})]}),Ot=({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)(ot,{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)(Dt,{current:t===void 0,icon:(0,q.jsx)(Ue,{"aria-hidden":`true`}),label:l(`media.folders.all`),onClick:()=>s(void 0)})}),(0,q.jsx)(`li`,{children:(0,q.jsx)(Dt,{current:t===z,icon:(0,q.jsx)(k,{"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)(Et,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:s},e.id))]}):null]})})},kt=()=>{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),[])}},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,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(()=>At(r)?.focus())}}},Mt=()=>{let e=_e({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:it[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=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())}}},Ft=({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})]})}),It=({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=Pt(e,()=>{a(!1),t()});return(0,q.jsxs)(xe,{open:i,onOpenChange:e=>{l.pending||(e&&l.reset(),a(e))},modal:!0,children:[(0,q.jsx)(ye,{asChild:!0,children:(0,q.jsxs)(b,{size:`sm`,variant:`outline`,children:[(0,q.jsx)(ct,{"aria-hidden":`true`}),n(`media.move.action`)]})}),(0,q.jsxs)(be,{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:Nt,children:[(0,q.jsx)(Ft,{icon:(0,q.jsx)(k,{"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)(Ft,{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})]})]})},Lt=({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)(It,{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`)]})]})},Rt=ve(`/app/media`)({component:()=>{let{t:e}=g(),{search:t,setSearch:n,assetQuery:r}=Mt(),i=c(),{canWrite:a,canManage:o}=T(),s=qe(),l=kt(),u=jt(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)(ie,{width:`full`,children:[(0,q.jsx)(ce,{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)(D,{"aria-hidden":`true`}),e(`media.folders.new`)]}),(0,q.jsx)(O,{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)(Ot,{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)(St,{enabled:a,onFiles:f,className:`min-h-96 min-w-0 space-y-4`,children:[(0,q.jsx)(Ge,{onRetry:s.retry,onDismiss:s.dismiss}),(0,q.jsx)(We,{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)(Lt,{selected:l.selected,onClear:l.clear}):null,(0,q.jsx)(He,{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)(xt,{assetId:t.asset,onClose:()=>n({asset:void 0}),onReplace:(e,t)=>s.enqueue([t],{folderId:null,visibility:`public`,replaceAssetId:e})})]})}});export{Rt as mediaLazyRoute};
|
|
2
|
+
//# sourceMappingURL=media-DBdx-UmR.js.map
|