@shapio/cms 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/assets/{AssetTile-C-Mu0BRF.js → AssetTile-CoNClUYS.js} +2 -2
- package/dist/admin/assets/{AssetTile-C-Mu0BRF.js.map → AssetTile-CoNClUYS.js.map} +1 -1
- package/dist/admin/assets/{AssistError-B-bnaHhJ.js → AssistError-BoejyShH.js} +2 -2
- package/dist/admin/assets/{AssistError-B-bnaHhJ.js.map → AssistError-BoejyShH.js.map} +1 -1
- package/dist/admin/assets/{BlockMenuItems-Dn9WULjL.js → BlockMenuItems-B2Jugisa.js} +2 -2
- package/dist/admin/assets/{BlockMenuItems-Dn9WULjL.js.map → BlockMenuItems-B2Jugisa.js.map} +1 -1
- package/dist/admin/assets/{Body-C0SwduLi.js → Body-D3GwLGaB.js} +2 -2
- package/dist/admin/assets/{Body-C0SwduLi.js.map → Body-D3GwLGaB.js.map} +1 -1
- package/dist/admin/assets/Builder-CmT5-8hI.js +2 -0
- package/dist/admin/assets/Builder-CmT5-8hI.js.map +1 -0
- package/dist/admin/assets/{ConfirmDialog-BfpN2MQx.js → ConfirmDialog-HS8Gc2t3.js} +2 -2
- package/dist/admin/assets/{ConfirmDialog-BfpN2MQx.js.map → ConfirmDialog-HS8Gc2t3.js.map} +1 -1
- package/dist/admin/assets/{CopyButton-Dxbzp7hC.js → CopyButton-DS-bAA23.js} +2 -2
- package/dist/admin/assets/{CopyButton-Dxbzp7hC.js.map → CopyButton-DS-bAA23.js.map} +1 -1
- package/dist/admin/assets/{CursorPager-DkZs6rPg.js → CursorPager-C6PyD3wE.js} +2 -2
- package/dist/admin/assets/{CursorPager-DkZs6rPg.js.map → CursorPager-C6PyD3wE.js.map} +1 -1
- package/dist/admin/assets/{FocalPoint-r1MG_y-r.js → FocalPoint-C62fRhmM.js} +2 -2
- package/dist/admin/assets/{FocalPoint-r1MG_y-r.js.map → FocalPoint-C62fRhmM.js.map} +1 -1
- package/dist/admin/assets/{Form-D8vp4Kd_.js → Form-CLEr5Csd.js} +2 -2
- package/dist/admin/assets/{Form-D8vp4Kd_.js.map → Form-CLEr5Csd.js.map} +1 -1
- package/dist/admin/assets/{FormCheckboxGroup-8ObPh9cH.js → FormCheckboxGroup-BrXY6qBg.js} +2 -2
- package/dist/admin/assets/{FormCheckboxGroup-8ObPh9cH.js.map → FormCheckboxGroup-BrXY6qBg.js.map} +1 -1
- package/dist/admin/assets/{FormRadioGroup-CAB3qzVS.js → FormRadioGroup-BjE1Jhar.js} +2 -2
- package/dist/admin/assets/{FormRadioGroup-CAB3qzVS.js.map → FormRadioGroup-BjE1Jhar.js.map} +1 -1
- package/dist/admin/assets/{FormSelectField-C7hE05Wq.js → FormSelectField-g4zrUlhv.js} +2 -2
- package/dist/admin/assets/{FormSelectField-C7hE05Wq.js.map → FormSelectField-g4zrUlhv.js.map} +1 -1
- package/dist/admin/assets/{FormSwitchField-7EEYkGOH.js → FormSwitchField-gciThNGV.js} +2 -2
- package/dist/admin/assets/{FormSwitchField-7EEYkGOH.js.map → FormSwitchField-gciThNGV.js.map} +1 -1
- package/dist/admin/assets/{FormTextareaField-BasuRoXW.js → FormTextareaField-tsS-UXym.js} +2 -2
- package/dist/admin/assets/{FormTextareaField-BasuRoXW.js.map → FormTextareaField-tsS-UXym.js.map} +1 -1
- package/dist/admin/assets/{HintedLabel-BDV81kIT.js → HintedLabel-CVe-PIyv.js} +2 -2
- package/dist/admin/assets/{HintedLabel-BDV81kIT.js.map → HintedLabel-CVe-PIyv.js.map} +1 -1
- package/dist/admin/assets/{InfoHint-DWn9kLf1.js → InfoHint-DtaHU1Cg.js} +2 -2
- package/dist/admin/assets/{InfoHint-DWn9kLf1.js.map → InfoHint-DtaHU1Cg.js.map} +1 -1
- package/dist/admin/assets/{InsertMenuItem-DhJk5BeH.js → InsertMenuItem-DlzaD9zr.js} +2 -2
- package/dist/admin/assets/{InsertMenuItem-DhJk5BeH.js.map → InsertMenuItem-DlzaD9zr.js.map} +1 -1
- package/dist/admin/assets/{Match-Zu4pwfCC.js → Match-ErAxnNAY.js} +2 -2
- package/dist/admin/assets/{Match-Zu4pwfCC.js.map → Match-ErAxnNAY.js.map} +1 -1
- package/dist/admin/assets/{QueryView-Cu-KPtQI.js → QueryView-C630REML.js} +2 -2
- package/dist/admin/assets/{QueryView-Cu-KPtQI.js.map → QueryView-C630REML.js.map} +1 -1
- package/dist/admin/assets/{RadioTile-Ci0LucKI.js → RadioTile-CD4mel7U.js} +2 -2
- package/dist/admin/assets/{RadioTile-Ci0LucKI.js.map → RadioTile-CD4mel7U.js.map} +1 -1
- package/dist/admin/assets/{RichTextField-BcYOFkeW.js → RichTextField-CxeVX6C-.js} +2 -2
- package/dist/admin/assets/{RichTextField-BcYOFkeW.js.map → RichTextField-CxeVX6C-.js.map} +1 -1
- package/dist/admin/assets/{RowTitle-BdDgA5Lb.js → RowTitle-B-7RptyN.js} +2 -2
- package/dist/admin/assets/{RowTitle-BdDgA5Lb.js.map → RowTitle-B-7RptyN.js.map} +1 -1
- package/dist/admin/assets/{SecretReveal-ai1uMW_b.js → SecretReveal-Dhw_dYxe.js} +2 -2
- package/dist/admin/assets/{SecretReveal-ai1uMW_b.js.map → SecretReveal-Dhw_dYxe.js.map} +1 -1
- package/dist/admin/assets/{SharedGlyph-y6ZsA_gz.js → SharedGlyph-97RaO6Bh.js} +2 -2
- package/dist/admin/assets/{SharedGlyph-y6ZsA_gz.js.map → SharedGlyph-97RaO6Bh.js.map} +1 -1
- package/dist/admin/assets/{StepList-xmD9CPZl.js → StepList--0Fiqsq-.js} +2 -2
- package/dist/admin/assets/{StepList-xmD9CPZl.js.map → StepList--0Fiqsq-.js.map} +1 -1
- package/dist/admin/assets/Structure-CoO3iah3.js +2 -0
- package/dist/admin/assets/{Structure-DGt-TDk5.js.map → Structure-CoO3iah3.js.map} +1 -1
- package/dist/admin/assets/{SuggestAltButton-D1-v_0wB.js → SuggestAltButton-Dlyxoypu.js} +2 -2
- package/dist/admin/assets/{SuggestAltButton-D1-v_0wB.js.map → SuggestAltButton-Dlyxoypu.js.map} +1 -1
- package/dist/admin/assets/{Thumbnail-cjA7fSWh.js → Thumbnail-BUYOr4XJ.js} +2 -2
- package/dist/admin/assets/{Thumbnail-cjA7fSWh.js.map → Thumbnail-BUYOr4XJ.js.map} +1 -1
- package/dist/admin/assets/{UnsavedChangesGuard-B57D0278.js → UnsavedChangesGuard-BfzHgUkF.js} +2 -2
- package/dist/admin/assets/{UnsavedChangesGuard-B57D0278.js.map → UnsavedChangesGuard-BfzHgUkF.js.map} +1 -1
- package/dist/admin/assets/{UserAvatar--pMv2i3c.js → UserAvatar-DNOWhSWS.js} +2 -2
- package/dist/admin/assets/{UserAvatar--pMv2i3c.js.map → UserAvatar-DNOWhSWS.js.map} +1 -1
- package/dist/admin/assets/{badge-C5oMRtwJ.js → badge-lJ4Ih_Zn.js} +2 -2
- package/dist/admin/assets/{badge-C5oMRtwJ.js.map → badge-lJ4Ih_Zn.js.map} +1 -1
- package/dist/admin/assets/{changeSets-CObZV8H2.js → changeSets-JmSyu3tu.js} +2 -2
- package/dist/admin/assets/{changeSets-CObZV8H2.js.map → changeSets-JmSyu3tu.js.map} +1 -1
- package/dist/admin/assets/{constants-DT4WPUvz.js → constants-ahk0YSYl.js} +2 -2
- package/dist/admin/assets/{constants-DT4WPUvz.js.map → constants-ahk0YSYl.js.map} +1 -1
- package/dist/admin/assets/content-DcvNzKGe.js +3 -0
- package/dist/admin/assets/content-DcvNzKGe.js.map +1 -0
- package/dist/admin/assets/{contentTypes-ArLEfM29.js → contentTypes-YAd-AzOF.js} +2 -2
- package/dist/admin/assets/{contentTypes-ArLEfM29.js.map → contentTypes-YAd-AzOF.js.map} +1 -1
- package/dist/admin/assets/{develop-DvKYqVeK.js → develop-DYwiTd6R.js} +3 -3
- package/dist/admin/assets/{develop-DvKYqVeK.js.map → develop-DYwiTd6R.js.map} +1 -1
- package/dist/admin/assets/{dropdown-menu-DPzDthV7.js → dropdown-menu-DiYSm-g3.js} +2 -2
- package/dist/admin/assets/{dropdown-menu-DPzDthV7.js.map → dropdown-menu-DiYSm-g3.js.map} +1 -1
- package/dist/admin/assets/{fileRoute-sJvv4Ipn.js → fileRoute-CVQpW8cj.js} +2 -2
- package/dist/admin/assets/{fileRoute-sJvv4Ipn.js.map → fileRoute-CVQpW8cj.js.map} +1 -1
- package/dist/admin/assets/{followPlural-tOh6gDgT.js → followPlural-BdqfEe48.js} +2 -2
- package/dist/admin/assets/{followPlural-tOh6gDgT.js.map → followPlural-BdqfEe48.js.map} +1 -1
- package/dist/admin/assets/{inbox-nfR2K7f6.js → inbox-CnzNfqt9.js} +2 -2
- package/dist/admin/assets/{inbox-nfR2K7f6.js.map → inbox-CnzNfqt9.js.map} +1 -1
- package/dist/admin/assets/index-6iVBpUhu.css +2 -0
- package/dist/admin/assets/index-D9KL7arJ.js +4 -0
- package/dist/admin/assets/index-D9KL7arJ.js.map +1 -0
- package/dist/admin/assets/{media-BzivlEh2.js → media-Cs9LCQcz.js} +2 -2
- package/dist/admin/assets/{media-BzivlEh2.js.map → media-Cs9LCQcz.js.map} +1 -1
- package/dist/admin/assets/{network-Cj04CpFi.js → network-DS8MW3AZ.js} +2 -2
- package/dist/admin/assets/{network-Cj04CpFi.js.map → network-DS8MW3AZ.js.map} +1 -1
- package/dist/admin/assets/{publishing-ChHkrwvr.js → publishing-C4YQ4XKt.js} +2 -2
- package/dist/admin/assets/{publishing-ChHkrwvr.js.map → publishing-C4YQ4XKt.js.map} +1 -1
- package/dist/admin/assets/{radio-group-DSK5LPaM.js → radio-group-zOsGAYRP.js} +2 -2
- package/dist/admin/assets/{radio-group-DSK5LPaM.js.map → radio-group-zOsGAYRP.js.map} +1 -1
- package/dist/admin/assets/{searchSchemas-BdwAFaVO.js → searchSchemas-BCRZ1jyL.js} +2 -2
- package/dist/admin/assets/{searchSchemas-BdwAFaVO.js.map → searchSchemas-BCRZ1jyL.js.map} +1 -1
- package/dist/admin/assets/{sections-iNOzo7pL.js → sections-v5Flaor9.js} +2 -2
- package/dist/admin/assets/{sections-iNOzo7pL.js.map → sections-v5Flaor9.js.map} +1 -1
- package/dist/admin/assets/{select-DyD7qIkJ.js → select-CpHp3YOH.js} +2 -2
- package/dist/admin/assets/{select-DyD7qIkJ.js.map → select-CpHp3YOH.js.map} +1 -1
- package/dist/admin/assets/{seo-uMm2fGPB.js → seo-1n9s7YuX.js} +2 -2
- package/dist/admin/assets/{seo-uMm2fGPB.js.map → seo-1n9s7YuX.js.map} +1 -1
- package/dist/admin/assets/{settings-CJVORrIV.js → settings-CuEO5l07.js} +2 -2
- package/dist/admin/assets/{settings-CJVORrIV.js.map → settings-CuEO5l07.js.map} +1 -1
- package/dist/admin/assets/{skeleton-B5GJgv7y.js → skeleton-DElTumgk.js} +2 -2
- package/dist/admin/assets/skeleton-DElTumgk.js.map +1 -0
- package/dist/admin/assets/src-Be3Ds5Dc.js +4 -0
- package/dist/admin/assets/src-Be3Ds5Dc.js.map +1 -0
- package/dist/admin/assets/{switch-DbIrjP3h.js → switch-CijNGYkG.js} +2 -2
- package/dist/admin/assets/{switch-DbIrjP3h.js.map → switch-CijNGYkG.js.map} +1 -1
- package/dist/admin/assets/tabs-CSqGW9Du.js +5 -0
- package/dist/admin/assets/tabs-CSqGW9Du.js.map +1 -0
- package/dist/admin/assets/{theme-C0Tv6M38.js → theme-CHHVK8Ps.js} +2 -2
- package/dist/admin/assets/{theme-C0Tv6M38.js.map → theme-CHHVK8Ps.js.map} +1 -1
- package/dist/admin/assets/{titles-uL13bpi8.js → titles-CQYc9nDQ.js} +2 -2
- package/dist/admin/assets/{titles-uL13bpi8.js.map → titles-CQYc9nDQ.js.map} +1 -1
- package/dist/admin/assets/{tooltip-BK5FqmJ0.js → tooltip-BXqFQv9N.js} +2 -2
- package/dist/admin/assets/{tooltip-BK5FqmJ0.js.map → tooltip-BXqFQv9N.js.map} +1 -1
- package/dist/admin/assets/{useContentSchema-BCdLYsKa.js → useContentSchema-Cvtes34f.js} +2 -2
- package/dist/admin/assets/{useContentSchema-BCdLYsKa.js.map → useContentSchema-Cvtes34f.js.map} +1 -1
- package/dist/admin/assets/{useDiscardGuard-CGFgC3xY.js → useDiscardGuard-BAEGkGK9.js} +2 -2
- package/dist/admin/assets/{useDiscardGuard-CGFgC3xY.js.map → useDiscardGuard-BAEGkGK9.js.map} +1 -1
- package/dist/admin/assets/{useMediaPickerDialog-BOkGEyG7.js → useMediaPickerDialog-CiN_pias.js} +2 -2
- package/dist/admin/assets/{useMediaPickerDialog-BOkGEyG7.js.map → useMediaPickerDialog-CiN_pias.js.map} +1 -1
- package/dist/admin/assets/{useMediaUploader-D1ouV8jc.js → useMediaUploader-CapEHBIt.js} +2 -2
- package/dist/admin/assets/{useMediaUploader-D1ouV8jc.js.map → useMediaUploader-CapEHBIt.js.map} +1 -1
- package/dist/admin/assets/usePaletteItems-wpn3ms6o.js +2 -0
- package/dist/admin/assets/usePaletteItems-wpn3ms6o.js.map +1 -0
- package/dist/admin/assets/{useResolvedScheme-D0moXjaP.js → useResolvedScheme-i1EwGHuF.js} +2 -2
- package/dist/admin/assets/{useResolvedScheme-D0moXjaP.js.map → useResolvedScheme-i1EwGHuF.js.map} +1 -1
- package/dist/admin/assets/{zod-CS0EvbwG.js → zod-79xzBIrW.js} +2 -2
- package/dist/admin/assets/{zod-CS0EvbwG.js.map → zod-79xzBIrW.js.map} +1 -1
- package/dist/admin/index.html +27 -27
- package/dist/cli.js +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/{public-BSbOGbK-.d.ts → public-CTK82y3t.d.ts} +2 -1
- package/dist/{worker-i1rY2TIZ.js → worker-BDYDbaea.js} +404 -201
- package/dist/worker-BDYDbaea.js.map +1 -0
- package/package.json +5 -5
- package/dist/admin/assets/Builder-C11yUgu9.js +0 -2
- package/dist/admin/assets/Builder-C11yUgu9.js.map +0 -1
- package/dist/admin/assets/Structure-DGt-TDk5.js +0 -2
- package/dist/admin/assets/content-HvisCB5m.js +0 -3
- package/dist/admin/assets/content-HvisCB5m.js.map +0 -1
- package/dist/admin/assets/index-Bbb2ER3l.css +0 -2
- package/dist/admin/assets/index-C6FrF34G.js +0 -4
- package/dist/admin/assets/index-C6FrF34G.js.map +0 -1
- package/dist/admin/assets/skeleton-B5GJgv7y.js.map +0 -1
- package/dist/admin/assets/src-B2qcqjNM.js +0 -4
- package/dist/admin/assets/src-B2qcqjNM.js.map +0 -1
- package/dist/admin/assets/tabs-BJhfL-lw.js +0 -5
- package/dist/admin/assets/tabs-BJhfL-lw.js.map +0 -1
- package/dist/admin/assets/usePaletteItems-neKzBlys.js +0 -2
- package/dist/admin/assets/usePaletteItems-neKzBlys.js.map +0 -1
- package/dist/worker-i1rY2TIZ.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{F as r,i,j as a,r as o,t as s}from"./cn-CL1YHRrS.js";import{c,i as l,l as u,n as d,o as f,r as p,s as ee,t as te,u as ne}from"./media-5ks_0Rre.js";import{T as re,h as ie}from"./auth-YVfK3SxF.js";import{A as ae,O as m,_ as oe,a as se,c as ce,d as le,f as ue,i as de,k as fe,l as pe,m as me,n as h,p as he,r as g,t as ge,u as _e,v as ve}from"./badge-C5oMRtwJ.js";import{o as ye}from"./RowTitle-BdDgA5Lb.js";import{t as be}from"./fileRoute-sJvv4Ipn.js";import{G as _,R as v,a as xe,c as Se,d as Ce,i as we,n as Te,o as Ee,s as De,u as Oe}from"./InfoHint-DWn9kLf1.js";import{N as y,O as ke,i as b,k as Ae,n as je,t as x}from"./skeleton-B5GJgv7y.js";import{a as Me,i as S,o as Ne,r as C,t as Pe}from"./ConfirmDialog-BfpN2MQx.js";import{t as Fe}from"./external-link-B8UFREQ_.js";import{t as Ie}from"./FocalPoint-r1MG_y-r.js";import{t as Le}from"./ellipsis-DEHUaCkn.js";import{a as Re,c as w,i as ze,n as Be,o as Ve,r as T,s as He}from"./Thumbnail-cjA7fSWh.js";import{t as E}from"./folder-plus-iDg1hhew.js";import{t as Ue}from"./globe-TooNSp9V.js";import{a as We,c as Ge,i as Ke,n as qe,o as Je,r as D,t as Ye}from"./useMediaUploader-D1ouV8jc.js";import{t as O}from"./inbox-B8c9Kj_z.js";import{a as k,l as Xe,p as Ze,r as Qe,t as $e}from"./dropdown-menu-DPzDthV7.js";import{t as A}from"./pencil-C7eD5mlZ.js";import{t as et}from"./switch-DbIrjP3h.js";import{c as tt,n as nt,o as j,r as rt,t as it,u as M}from"./zod-CS0EvbwG.js";import{t as N}from"./settle-LRKtTN_e.js";import{g as P,h as F,v as I}from"./table-DQ5ILlSh.js";import{t as at}from"./useDiscardGuard-CGFgC3xY.js";import{i as L,r as ot}from"./constants-DCtq_UOe.js";import{t as st}from"./SuggestAltButton-D1-v_0wB.js";import{t as ct}from"./Panel-ClY9b33D.js";import{t as lt}from"./CopyButton-Dxbzp7hC.js";import{t as R}from"./FormTextareaField-BasuRoXW.js";var z={name:`folder-input`,size:24,node:[[`path`,{d:`M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1`,key:`fm4g5t`}],[`path`,{d:`M2 13h10`,key:`pgb2dq`}],[`path`,{d:`m9 16 3-3-3-3`,key:`6m91ic`}]]};z.node;var ut=i(z),B={name:`folder-open`,size:24,node:[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]};B.node;var dt=i(B),V={name:`folder`,size:24,node:[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]};V.node;var H=i(V),U=e(t(),1),ft=P({filename:j().max(255,`validation.tooLong`),alt:I().max(1e3,`validation.tooLong`),caption:I().max(4e3,`validation.tooLong`),focalPoint:P({x:F().min(0).max(1),y:F().min(0).max(1)}).nullable()}),W=e=>({filename:e?.filename??``,alt:e?.alt??``,caption:e?.caption??``,focalPoint:e?.focalPoint??null}),pt=(e,t)=>({expectedVersion:e.version,...t.filename===e.filename?{}:{filename:t.filename.trim()},...t.alt===e.alt?{}:{alt:t.alt},...t.caption===e.caption?{}:{caption:t.caption},...JSON.stringify(t.focalPoint)===JSON.stringify(e.focalPoint)?{}:{focalPoint:t.focalPoint}}),mt=e=>{let t=u(),n=M({resolver:it(ft),defaultValues:W(e)}),{reset:r}=n;return(0,U.useEffect)(()=>{r(W(e)),t.reset()},[e?.id,r]),{form:n,onSubmit:n.handleSubmit(async n=>{if(!e)return;let i=await N(t.mutateAsync({id:e.id,input:pt(e,n)}));i.ok&&(r(W(i.value)),_.success(y.t(`media.details.saved`)))}),pending:t.isPending,error:t.error}},ht=e=>{let t=e instanceof r?e.details:void 0;return typeof t?.usageCount==`number`?t.usageCount:0},gt=(e,t,n)=>{let r=d(),[i,a]=(0,U.useState)(void 0),[o,s]=(0,U.useState)(!1),[c,l]=(0,U.useState)(0),u=e=>{_.success(y.t(`media.delete.done`,{name:e.filename})),n()};return{blockedUsageCount:i&&i.assetId===e?.id?i.usageCount:void 0,confirm:async()=>{if(e){try{await r.mutateAsync({id:e.id,force:!1})}catch(n){if(!ie(n,`MEDIA_IN_USE`))throw n;let i=ht(n);if(!t)throw a({assetId:e.id,usageCount:i}),n;r.reset(),l(i),s(!0);return}u(e)}},force:{open:o,usageCount:c,pending:r.isPending,error:r.error,onOpenChange:s,confirm:()=>{e&&r.mutate({id:e.id,force:!0},{onSuccess:()=>{s(!1),u(e)}})}}}},G=e(n(),1),_t=({asset:e,onDeleted:t})=>{let{t:n}=a(),{isOwner:r}=w(),i=gt(e,r,t),o=i.blockedUsageCount;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(C,{tone:`danger`,align:`start`,side:`top`,title:n(`media.delete.title`,{name:e.filename}),description:o===void 0?n(`media.delete.description`):`${n(`media.delete.inUseDescription`,{count:o})} ${n(`media.delete.onlyOwners`)}`,confirmLabel:n(`common.delete`),onConfirm:i.confirm,trigger:(0,G.jsxs)(b,{variant:`destructive-ghost`,children:[(0,G.jsx)(v,{"aria-hidden":`true`}),n(`media.delete.action`)]})}),(0,G.jsx)(Pe,{open:i.force.open,onOpenChange:i.force.onOpenChange,title:n(`media.delete.inUseTitle`),description:`${n(`media.delete.inUseDescription`,{count:i.force.usageCount})} ${n(`media.delete.ownerMayForce`)}`,confirmLabel:n(`media.delete.force`),destructive:!0,pending:i.force.pending,error:i.force.error,onConfirm:i.force.confirm})]})},vt=({asset:e,form:t,onSubmit:n,pending:r,error:i,readOnly:o})=>{let{t:s}=a(),c=tt({control:t.control,name:`focalPoint`}),l=T(e.mimeType);return(0,G.jsx)(`form`,{noValidate:!0,"aria-label":s(`media.details.formLabel`),onSubmit:e=>{e.preventDefault(),n()},children:(0,G.jsx)(`fieldset`,{disabled:o,className:`contents`,children:(0,G.jsxs)(Oe,{children:[(0,G.jsx)(nt,{control:t.control,name:`filename`,label:s(`media.fields.filename`),autoComplete:`off`}),l?(0,G.jsx)(R,{control:t.control,name:`alt`,label:s(`media.fields.alt`),rows:2,placeholder:s(`media.details.altHint`)}):null,l&&!o?(0,G.jsx)(st,{assetId:e.id,mimeType:e.mimeType,onSuggest:e=>t.setValue(`alt`,e,{shouldDirty:!0,shouldValidate:!0})}):null,(0,G.jsx)(R,{control:t.control,name:`caption`,label:s(`media.fields.caption`),rows:2}),l&&!o?(0,G.jsx)(Ie,{imageUrl:e.url,value:c.field.value,onChange:e=>c.field.onChange(e)}):null,(0,G.jsx)(S,{error:i}),o?null:(0,G.jsx)(`div`,{className:`flex justify-end`,children:(0,G.jsx)(oe,{pending:r,pendingLabel:s(`common.saving`),disabled:!t.formState.isDirty,children:s(`common.saveChanges`)})})]})})})},yt=e=>e.variants.find(e=>e.name===`w1280`&&e.url)?.url??e.variants.find(e=>e.name===`w640`&&e.url)?.url??e.url,bt=({asset:e})=>{let{t}=a();return T(e.mimeType)?(0,G.jsx)(`img`,{src:yt(e),alt:e.alt||t(`media.details.previewOf`,{name:e.filename}),className:`max-h-72 w-full rounded-lg border bg-muted object-contain`}):e.mimeType.startsWith(`video/`)?(0,G.jsx)(`video`,{src:e.url,controls:!0,preload:`metadata`,className:`max-h-72 w-full rounded-lg border bg-muted`}):e.mimeType.startsWith(`audio/`)?(0,G.jsx)(`audio`,{src:e.url,controls:!0,preload:`metadata`,className:`w-full`}):(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-3 rounded-lg border bg-muted px-4 py-8`,children:[(0,G.jsx)(ze,{mimeType:e.mimeType,className:`size-10 text-muted-foreground`}),(0,G.jsx)(b,{asChild:!0,variant:`outline`,size:`sm`,children:(0,G.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,children:[(0,G.jsx)(Fe,{"aria-hidden":`true`}),t(`media.details.openFile`)]})})]})},K=({title:e,children:t})=>(0,G.jsxs)(`section`,{className:`space-y-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold`,children:e}),t]}),xt=({assetId:e})=>{let{t}=a(),n=ee(e);return n.isPending?(0,G.jsx)(x,{className:`h-8 w-full`}):n.isError?(0,G.jsx)(g,{error:n.error,onRetry:()=>void n.refetch()}):n.data.total===0?(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`media.usage.none`)}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-sm`,children:t(`media.usage.count`,{count:n.data.total})}),(0,G.jsx)(`ul`,{className:`divide-y rounded-lg border`,children:n.data.items.map(e=>(0,G.jsxs)(`li`,{className:`flex min-w-0 items-center gap-2 px-3 py-2`,children:[(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs`,title:e.entryId,children:t(`media.usage.entry`,{id:e.entryId})}),(0,G.jsx)(ge,{variant:`outline`,className:`font-mono`,children:e.locale}),(0,G.jsx)(h,{size:`sm`,tone:e.state===`published`?`success`:`neutral`,label:e.state===`published`?t(`media.usage.published`):t(`media.usage.draft`)})]},`${e.entryId}:${e.fieldId}:${e.locale}:${e.state}`))})]})},St=({asset:e,canManage:t})=>{let{t:n}=a(),r=u(),[i,o]=(0,U.useState)(!1),s=e.visibility===`private`,c=s?`public`:`private`,l=n(s?`media.visibility.privateExplanation`:`media.visibility.publicExplanation`);return(0,G.jsxs)(Ee,{orientation:`horizontal`,children:[(0,G.jsxs)(De,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[s?(0,G.jsx)(ae,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):(0,G.jsx)(Ue,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}),(0,G.jsx)(Ce,{htmlFor:`asset-private`,children:n(`media.visibility.privateLabel`)})]}),(0,G.jsx)(Se,{id:`asset-private-description`,children:t?l:`${l} ${n(`media.visibility.needsManage`)}`})]}),(0,G.jsx)(C,{tone:c===`public`?`danger`:`default`,open:i,onOpenChange:o,title:n(c===`private`?`media.visibility.makePrivateTitle`:`media.visibility.makePublicTitle`),description:n(c===`private`?`media.visibility.makePrivateDescription`:`media.visibility.makePublicDescription`),confirmLabel:n(c===`private`?`media.visibility.makePrivate`:`media.visibility.makePublic`),onConfirm:()=>r.mutateAsync({id:e.id,input:{expectedVersion:e.version,visibility:c}}).then(()=>_.success(n(`media.visibility.changed`))),children:(0,G.jsx)(et,{id:`asset-private`,checked:s,disabled:!t||r.isPending,"aria-describedby":`asset-private-description`,onCheckedChange:()=>o(!0)})})]})},Ct=({assetId:e,onClose:t,onReplace:n})=>{let{t:r}=a(),i=l(e),o=i.data,{canWrite:s,canManage:c}=w(),u=mt(o),{requestOpenChange:d,discardPrompt:f}=at({dirty:u.form.formState.isDirty,pending:u.pending,onOpenChange:e=>{e||(u.form.reset(),t())}}),p=o?Ve[o.status]:void 0;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ce,{open:e!==void 0,onOpenChange:d,children:(0,G.jsxs)(_e,{size:`sm`,children:[(0,G.jsxs)(he,{children:[(0,G.jsx)(me,{className:`pr-8 break-all`,children:o?.filename??r(`media.details.title`)}),(0,G.jsx)(le,{className:`text-meta`,children:o?[Be(o.filename,o.mimeType),He(o.sizeBytes),o.width&&o.height?r(`media.dimensions`,{width:o.width,height:o.height}):``].filter(Boolean).join(` · `):r(`common.loading`)}),o&&p?(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 pt-1`,children:[(0,G.jsx)(h,{tone:p.tone,label:r(p.labelKey)}),o.visibility===`private`?(0,G.jsx)(h,{tone:`muted`,label:r(`media.visibility.private`)}):null,(0,G.jsx)(`span`,{className:`ml-auto`,children:(0,G.jsx)(lt,{value:o.url})})]}):null]}),(0,G.jsxs)(pe,{className:`space-y-6`,children:[i.isPending?(0,G.jsx)(ve,{rows:3}):null,i.isError?(0,G.jsx)(g,{error:i.error,onRetry:()=>void i.refetch()}):null,o&&p?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(bt,{asset:o}),o.urlExpiresAt?(0,G.jsx)(`p`,{className:`text-meta text-muted-foreground`,children:r(`media.details.signedLinkNote`)}):null,o.processingError?(0,G.jsxs)(Me,{variant:`destructive`,children:[(0,G.jsx)(fe,{"aria-hidden":`true`}),(0,G.jsx)(Ne,{children:o.processingError})]}):null]}),(0,G.jsx)(K,{title:r(`media.details.metadata`),children:(0,G.jsx)(vt,{asset:o,form:u.form,onSubmit:()=>void u.onSubmit(),pending:u.pending,error:u.error,readOnly:!s})}),(0,G.jsx)(K,{title:r(`media.usage.title`),children:(0,G.jsx)(xt,{assetId:o.id})}),(0,G.jsx)(K,{title:r(`media.visibility.title`),children:(0,G.jsx)(St,{asset:o,canManage:c})}),(0,G.jsx)(K,{title:r(`media.variants.title`),children:(0,G.jsx)(Re,{asset:o})})]}):null]}),o&&(s||c)?(0,G.jsxs)(ue,{className:`flex-row flex-wrap justify-between`,children:[c?(0,G.jsx)(_t,{asset:o,onDeleted:t}):null,s?(0,G.jsx)(D,{variant:`outline`,multiple:!1,label:r(`media.details.replace`),onFiles:([e])=>e?n(o.id,e):void 0,className:`ml-auto`}):null]}):null]})}),f]})},q=e=>e.dataTransfer.types.includes(`Files`),wt=({enabled:e,onFiles:t,children:n,className:r})=>{let{t:i}=a(),[o,c]=(0,U.useState)(!1),l=(0,U.useRef)(0);return e?(0,G.jsxs)(`div`,{className:s(`relative`,r),onDragEnter:e=>{q(e)&&(l.current+=1,c(!0))},onDragLeave:()=>{l.current=Math.max(0,l.current-1),l.current===0&&c(!1)},onDragOver:e=>{q(e)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)},onDrop:e=>{e.preventDefault(),l.current=0,c(!1);let n=[...e.dataTransfer.files];n.length>0&&t(n)},children:[n,o?(0,G.jsxs)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 z-20 flex flex-col items-center justify-center gap-2 rounded-xl border-2 border-dashed border-primary bg-background/90 text-primary`,children:[(0,G.jsx)(Je,{className:`size-8`}),(0,G.jsx)(`p`,{className:`font-semibold`,children:i(`media.upload.dropHere`)})]}):null]}):(0,G.jsx)(`div`,{className:r,children:n})},J=e=>{let t=Map.groupBy(e,t=>t.parentId&&e.some(e=>e.id===t.parentId)?t.parentId:null),n=(e,r)=>[...t.get(e)??[]].sort((e,t)=>e.name.localeCompare(t.name)).map(e=>({...e,depth:r,children:n(e.id,r+1)}));return n(null,0)},Y=e=>e.flatMap(e=>[e,...Y(e.children)]),Tt=P({name:j().max(255,`validation.tooLong`)}),Et=(e,t)=>{let n=te(),r=ne(),i=e.mode===`rename`?e.folder.name:``,a=M({resolver:it(Tt),defaultValues:{name:i}}),o=a.handleSubmit(async({name:i})=>{let a=i.trim();if(e.mode===`rename`&&a===e.folder.name){t();return}(await N(e.mode===`rename`?r.mutateAsync({id:e.folder.id,input:{expectedVersion:e.folder.version,name:a}}):n.mutateAsync({name:a,parentId:e.parentId}))).ok&&(_.success(y.t(e.mode===`rename`?`media.folders.renamed`:`media.folders.created`,{name:a})),t())}),s=e.mode===`rename`?r:n;return{form:a,onSubmit:o,initialName:i,pending:s.isPending,error:s.error}},X=({edit:e,onDone:t})=>{let{t:n}=a(),r=(0,U.useId)(),{form:i,onSubmit:s,initialName:c,pending:l,error:u}=Et(e,()=>t(!0)),{setFocus:d}=i;(0,U.useEffect)(()=>{d(`name`,{shouldSelect:!0})},[d]);let f=i.formState.errors.name?.message??(u?Ae(u):void 0),p=e.mode===`create`;return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`form`,{noValidate:!0,onSubmit:e=>void s(e),onKeyDown:e=>{e.key===`Escape`&&!l&&(e.preventDefault(),e.stopPropagation(),t(!0))},onBlur:e=>{let n=e.relatedTarget;n instanceof Node&&e.currentTarget.contains(n)||!l&&i.getValues(`name`).trim()===c&&t(!1)},className:`flex items-center gap-1 py-0.5 pl-1`,children:[p?(0,G.jsx)(E,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}):(0,G.jsx)(A,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}),(0,G.jsx)(je,{...i.register(`name`),inputSize:`sm`,autoComplete:`off`,spellCheck:!1,readOnly:l,"aria-label":p?n(`media.folders.newName`):n(`media.folders.renameLabel`,{name:e.folder.name}),"aria-invalid":f?!0:void 0,"aria-describedby":f?r:void 0,className:`h-8 px-2`}),(0,G.jsx)(b,{type:`submit`,variant:`ghost`,size:`icon-xs`,disabled:l,"aria-label":n(p?`media.folders.create`:`media.folders.saveName`),children:l?(0,G.jsx)(o,{"aria-hidden":`true`,className:`animate-spin`}):(0,G.jsx)(ke,{"aria-hidden":`true`})}),(0,G.jsx)(b,{type:`button`,variant:`ghost`,size:`icon-xs`,disabled:l,"aria-label":n(`common.cancel`),onClick:()=>t(!0),children:(0,G.jsx)(m,{"aria-hidden":`true`})})]}),(0,G.jsx)(`div`,{className:`pl-6`,children:(0,G.jsx)(rt,{id:r,message:f})})]})},Z=`flex h-9 min-w-0 items-center gap-2.5 rounded-lg text-left text-sm font-medium text-muted-foreground outline-none hover:bg-muted hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-[current=true]:bg-accent aria-[current=true]:font-semibold aria-[current=true]:text-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0`,Dt=({folder:e,canManage:t,actions:n})=>{let{t:r}=a(),i=(0,U.useRef)(!1),o=e=>()=>{i.current=!0,e()};return(0,G.jsxs)($e,{children:[(0,G.jsx)(C,{tone:`danger`,open:n.deletingId===e.id,onOpenChange:t=>n.onDeleteOpenChange(e,t),title:r(`media.folders.deleteTitle`,{name:e.name}),description:r(`media.folders.deleteDescription`),confirmLabel:r(`common.delete`),onConfirm:()=>n.onDelete(e),children:(0,G.jsx)(Ze,{asChild:!0,children:(0,G.jsx)(b,{variant:`ghost`,size:`icon-xs`,"aria-label":r(`media.folders.actions`,{name:e.name}),className:`absolute right-1.5`,"data-folder-menu":e.id,children:(0,G.jsx)(Le,{"aria-hidden":`true`})})})}),(0,G.jsxs)(Qe,{align:`end`,onCloseAutoFocus:e=>{i.current&&(i.current=!1,e.preventDefault())},children:[(0,G.jsxs)(k,{onSelect:o(()=>n.onCreate(e.id)),children:[(0,G.jsx)(E,{"aria-hidden":`true`}),r(`media.folders.newSubfolder`)]}),(0,G.jsxs)(k,{onSelect:o(()=>n.onRename(e)),children:[(0,G.jsx)(A,{"aria-hidden":`true`}),r(`media.folders.rename`)]}),t?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Xe,{}),(0,G.jsxs)(k,{variant:`destructive`,onSelect:o(()=>n.onDeleteOpenChange(e,!0)),children:[(0,G.jsx)(v,{"aria-hidden":`true`}),r(`common.delete`)]})]}):null]})]})},Q=({node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:c})=>{let l=e.id===t,u=l?dt:H,d=a?.mode===`rename`&&a.folder.id===e.id?a:void 0,f=a?.mode===`create`&&a.parentId===e.id?a:void 0;return(0,G.jsxs)(`li`,{children:[d?(0,G.jsx)(X,{edit:d,onDone:o}):(0,G.jsxs)(`div`,{className:`relative flex items-center`,children:[(0,G.jsxs)(`button`,{type:`button`,"aria-current":l?`true`:void 0,onClick:()=>c(e.id),className:s(Z,`flex-1 pl-2.5`,n?`pr-9`:`pr-2.5`),children:[(0,G.jsx)(u,{"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`truncate`,children:e.name}),(0,G.jsx)(`span`,{className:`ml-auto text-xs font-medium text-muted-foreground tabular-nums`,children:e.assetCount})]}),n?(0,G.jsx)(Dt,{folder:e,canManage:r,actions:i}):null]}),e.children.length>0||f?(0,G.jsxs)(`ul`,{className:`mt-0.5 ml-4 space-y-0.5 border-l pl-1.5`,children:[f?(0,G.jsx)(`li`,{children:(0,G.jsx)(X,{edit:f,onDone:o})}):null,e.children.map(e=>(0,G.jsx)(Q,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:c},e.id))]}):null]})},$=({current:e,icon:t,label:n,onClick:r})=>(0,G.jsxs)(`button`,{type:`button`,"aria-current":e?`true`:void 0,onClick:r,className:s(Z,`w-full px-2.5`),children:[t,(0,G.jsx)(`span`,{className:`truncate`,children:n})]}),Ot=({folders:e,current:t,canWrite:n,canManage:r,actions:i,editing:o,onEditDone:s,onSelect:c,className:l})=>{let{t:u}=a(),d=(0,U.useMemo)(()=>J(e??[]),[e]),f=o?.mode===`create`&&o.parentId===null?o:void 0;return(0,G.jsx)(ct,{title:u(`media.folders.title`),flush:!0,className:l,bodyClassName:`p-2`,children:(0,G.jsxs)(`nav`,{"aria-label":u(`media.folders.title`),className:`space-y-1`,children:[(0,G.jsxs)(`ul`,{className:`space-y-0.5`,children:[(0,G.jsx)(`li`,{children:(0,G.jsx)($,{current:t===void 0,icon:(0,G.jsx)(Ge,{"aria-hidden":`true`}),label:u(`media.folders.all`),onClick:()=>c(void 0)})}),(0,G.jsx)(`li`,{children:(0,G.jsx)($,{current:t===L,icon:(0,G.jsx)(O,{"aria-hidden":`true`}),label:u(`media.folders.unfiled`),onClick:()=>c(L)})})]}),e===void 0?(0,G.jsx)(x,{className:`h-8 w-full`}):d.length>0||f?(0,G.jsxs)(`ul`,{className:`space-y-0.5 border-t pt-1`,children:[f?(0,G.jsx)(`li`,{children:(0,G.jsx)(X,{edit:f,onDone:s})}):null,d.map(e=>(0,G.jsx)(Q,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:o,onEditDone:s,onSelect:c},e.id))]}):null]})})},kt=()=>{let[e,t]=(0,U.useState)(new Set);return{selected:e,toggle:(0,U.useCallback)((e,n)=>t(t=>{let r=new Set(t);return n?r.add(e):r.delete(e),r}),[]),clear:(0,U.useCallback)(()=>t(new Set),[])}},At=e=>{let t=e.mode===`rename`?e.folder.id:e.parentId,n=t===null?`[data-new-folder]`:`[data-folder-menu="${CSS.escape(t)}"]`;return document.querySelector(n)},jt=e=>{let[t,n]=(0,U.useState)(void 0),[r,i]=(0,U.useState)(void 0),a=p();return{actions:{onCreate:e=>n({mode:`create`,parentId:e}),onRename:e=>n({mode:`rename`,folder:e}),deletingId:r,onDeleteOpenChange:(e,t)=>i(t?e.id:void 0),onDelete:t=>a.mutateAsync(t.id).then(()=>{_.success(y.t(`media.folders.deleted`,{name:t.name})),e(t)})},editing:t,stopEditing:e=>{let r=t;n(void 0),r&&e&&requestAnimationFrame(()=>At(r)?.focus())}}},Mt=()=>{let e=ye({from:`/app/media`}),t=re({from:`/media`});return{search:e,setSearch:(e,n=!1)=>void t({search:t=>({...t,...e}),replace:n}),assetQuery:{...e.folder?{folder:e.folder}:{},...e.q?{search:e.q}:{},...e.type?{mimeType:ot[e.type]}:{}}}},Nt=e=>{if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;let t=[...e.currentTarget.querySelectorAll(`button:not(:disabled)`)];if(t.length===0)return;e.preventDefault();let n=t.findIndex(e=>e===document.activeElement),r=t.length-1;t[e.key===`Home`?0:e.key===`End`?r:e.key===`ArrowDown`?Math.min(n+1,r):Math.max(n-1,0)]?.focus()},Pt=(e,t)=>{let n=c(),[r,i]=(0,U.useState)(void 0);return{target:n.isPending?r:void 0,pending:n.isPending,error:n.error,reset:n.reset,moveTo:async r=>{i(r);let a=await N(n.mutateAsync({assetIds:[...e],folderId:r}));a.ok&&(_.success(y.t(`media.move.done`,{count:a.value.moved.length})),t())}}},Ft=({icon:e,label:t,depth:n,pending:r,disabled:i,onClick:a})=>(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,disabled:i,"aria-busy":r||void 0,onClick:a,style:{"--depth":n},className:s(Z,`w-full pr-2.5 pl-[calc(0.625rem+var(--depth)*1rem)] disabled:opacity-50`),children:[r?(0,G.jsx)(o,{"aria-hidden":`true`,className:`animate-spin`}):e,(0,G.jsx)(`span`,{className:`truncate`,children:t})]})}),It=({assetIds:e,onMoved:t})=>{let{t:n}=a(),r=(0,U.useId)(),[i,o]=(0,U.useState)(!1),s=f(),c=(0,U.useMemo)(()=>Y(J(s.data??[])),[s.data]),l=Pt(e,()=>{o(!1),t()});return(0,G.jsxs)(Te,{open:i,onOpenChange:e=>{l.pending||(e&&l.reset(),o(e))},modal:!0,children:[(0,G.jsx)(xe,{asChild:!0,children:(0,G.jsxs)(b,{size:`sm`,variant:`outline`,children:[(0,G.jsx)(ut,{"aria-hidden":`true`}),n(`media.move.action`)]})}),(0,G.jsxs)(we,{align:`end`,"aria-labelledby":r,className:`w-72 space-y-2 p-2`,children:[(0,G.jsx)(`p`,{id:r,className:`px-2.5 pt-1 text-sm font-semibold`,children:n(`media.move.title`,{count:e.length})}),(0,G.jsxs)(`ul`,{className:`max-h-72 space-y-0.5 overflow-y-auto`,onKeyDown:Nt,children:[(0,G.jsx)(Ft,{icon:(0,G.jsx)(O,{"aria-hidden":`true`}),label:n(`media.folders.none`),depth:0,pending:l.target===null,disabled:l.pending,onClick:()=>void l.moveTo(null)}),c.map(e=>(0,G.jsx)(Ft,{icon:(0,G.jsx)(H,{"aria-hidden":`true`}),label:e.name,depth:e.depth,pending:l.target===e.id,disabled:l.pending,onClick:()=>void l.moveTo(e.id)},e.id))]}),s.isPending?(0,G.jsx)(x,{className:`h-8 w-full`}):null,(0,G.jsx)(S,{error:l.error})]})]})},Lt=({selected:e,onClear:t})=>{let{t:n}=a();return(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded-xl border bg-accent py-1.5 pr-1.5 pl-4 text-accent-foreground`,children:[(0,G.jsx)(`span`,{role:`status`,"aria-live":`polite`,className:`mr-auto text-sm font-medium`,children:n(`media.selectedCount`,{count:e.size})}),(0,G.jsx)(It,{assetIds:[...e],onMoved:t}),(0,G.jsxs)(b,{size:`sm`,variant:`ghost`,onClick:t,children:[(0,G.jsx)(m,{"aria-hidden":`true`}),n(`media.clearSelection`)]})]})},Rt=be(`/app/media`)({component:()=>{let{t:e}=a(),{search:t,setSearch:n,assetQuery:r}=Mt(),i=f(),{canWrite:o,canManage:s}=w(),c=Ye(),l=kt(),u=jt(e=>{t.folder===e.id&&n({folder:void 0})}),d=t.folder&&t.folder!==`root`?t.folder:null,p=e=>c.enqueue(e,{folderId:d,visibility:`public`});return(0,G.jsxs)(se,{width:`full`,children:[(0,G.jsx)(de,{title:e(`media.title`),actions:o?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(b,{variant:`outline`,"data-new-folder":!0,onClick:()=>u.actions.onCreate(null),children:[(0,G.jsx)(E,{"aria-hidden":`true`}),e(`media.folders.new`)]}),(0,G.jsx)(D,{label:e(`media.upload.action`),onFiles:p})]}):null}),(0,G.jsxs)(`div`,{className:`grid gap-6 lg:grid-cols-[13.75rem_minmax(0,1fr)]`,children:[(0,G.jsx)(Ot,{folders:i.data,current:t.folder,canWrite:o,canManage:s,actions:u.actions,editing:u.editing,onEditDone:u.stopEditing,onSelect:e=>{l.clear(),n({folder:e})},className:`lg:self-start`}),(0,G.jsxs)(wt,{enabled:o,onFiles:p,className:`min-h-96 min-w-0 space-y-4`,children:[(0,G.jsx)(qe,{onRetry:c.retry,onDismiss:c.dismiss}),(0,G.jsx)(Ke,{query:t.q,type:t.type,view:t.view??`grid`,onQueryChange:e=>n({q:e},!0),onTypeChange:e=>n({type:e}),onViewChange:e=>n({view:e})}),l.selected.size>0?(0,G.jsx)(Lt,{selected:l.selected,onClear:l.clear}):null,(0,G.jsx)(We,{query:r,filtered:!!(t.q||t.type),view:t.view??`grid`,selected:l.selected,selectable:o,activeId:t.asset,onSelectChange:l.toggle,onOpen:e=>n({asset:e.id})})]})]}),(0,G.jsx)(Ct,{assetId:t.asset,onClose:()=>n({asset:void 0}),onReplace:(e,t)=>c.enqueue([t],{folderId:null,visibility:`public`,replaceAssetId:e})})]})}});export{Rt as mediaLazyRoute};
|
|
2
|
-
//# sourceMappingURL=media-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{F as r,i,j as a,r as o,t as s}from"./cn-CL1YHRrS.js";import{c,i as l,l as u,n as d,o as f,r as p,s as ee,t as te,u as ne}from"./media-5ks_0Rre.js";import{T as re,h as ie}from"./auth-YVfK3SxF.js";import{A as ae,O as m,_ as oe,a as se,c as ce,d as le,f as ue,i as de,k as fe,l as pe,m as me,n as h,p as he,r as g,t as ge,u as _e,v as ve}from"./badge-lJ4Ih_Zn.js";import{o as ye}from"./RowTitle-B-7RptyN.js";import{t as be}from"./fileRoute-CVQpW8cj.js";import{G as _,R as v,a as xe,c as Se,d as Ce,i as we,n as Te,o as Ee,s as De,u as Oe}from"./InfoHint-DtaHU1Cg.js";import{N as y,O as ke,i as b,k as Ae,n as je,t as x}from"./skeleton-DElTumgk.js";import{a as Me,i as S,o as Ne,r as C,t as Pe}from"./ConfirmDialog-HS8Gc2t3.js";import{t as Fe}from"./external-link-B8UFREQ_.js";import{t as Ie}from"./FocalPoint-C62fRhmM.js";import{t as Le}from"./ellipsis-DEHUaCkn.js";import{a as Re,c as w,i as ze,n as Be,o as Ve,r as T,s as He}from"./Thumbnail-BUYOr4XJ.js";import{t as E}from"./folder-plus-iDg1hhew.js";import{t as Ue}from"./globe-TooNSp9V.js";import{a as We,c as Ge,i as Ke,n as qe,o as Je,r as D,t as Ye}from"./useMediaUploader-CapEHBIt.js";import{t as O}from"./inbox-B8c9Kj_z.js";import{a as k,l as Xe,p as Ze,r as Qe,t as $e}from"./dropdown-menu-DiYSm-g3.js";import{t as A}from"./pencil-C7eD5mlZ.js";import{t as et}from"./switch-CijNGYkG.js";import{c as tt,n as nt,o as j,r as rt,t as it,u as M}from"./zod-79xzBIrW.js";import{t as N}from"./settle-LRKtTN_e.js";import{g as P,h as F,v as I}from"./table-DQ5ILlSh.js";import{t as at}from"./useDiscardGuard-BAEGkGK9.js";import{i as L,r as ot}from"./constants-DCtq_UOe.js";import{t as st}from"./SuggestAltButton-Dlyxoypu.js";import{t as ct}from"./Panel-ClY9b33D.js";import{t as lt}from"./CopyButton-DS-bAA23.js";import{t as R}from"./FormTextareaField-tsS-UXym.js";var z={name:`folder-input`,size:24,node:[[`path`,{d:`M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1`,key:`fm4g5t`}],[`path`,{d:`M2 13h10`,key:`pgb2dq`}],[`path`,{d:`m9 16 3-3-3-3`,key:`6m91ic`}]]};z.node;var ut=i(z),B={name:`folder-open`,size:24,node:[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]};B.node;var dt=i(B),V={name:`folder`,size:24,node:[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]};V.node;var H=i(V),U=e(t(),1),ft=P({filename:j().max(255,`validation.tooLong`),alt:I().max(1e3,`validation.tooLong`),caption:I().max(4e3,`validation.tooLong`),focalPoint:P({x:F().min(0).max(1),y:F().min(0).max(1)}).nullable()}),W=e=>({filename:e?.filename??``,alt:e?.alt??``,caption:e?.caption??``,focalPoint:e?.focalPoint??null}),pt=(e,t)=>({expectedVersion:e.version,...t.filename===e.filename?{}:{filename:t.filename.trim()},...t.alt===e.alt?{}:{alt:t.alt},...t.caption===e.caption?{}:{caption:t.caption},...JSON.stringify(t.focalPoint)===JSON.stringify(e.focalPoint)?{}:{focalPoint:t.focalPoint}}),mt=e=>{let t=u(),n=M({resolver:it(ft),defaultValues:W(e)}),{reset:r}=n;return(0,U.useEffect)(()=>{r(W(e)),t.reset()},[e?.id,r]),{form:n,onSubmit:n.handleSubmit(async n=>{if(!e)return;let i=await N(t.mutateAsync({id:e.id,input:pt(e,n)}));i.ok&&(r(W(i.value)),_.success(y.t(`media.details.saved`)))}),pending:t.isPending,error:t.error}},ht=e=>{let t=e instanceof r?e.details:void 0;return typeof t?.usageCount==`number`?t.usageCount:0},gt=(e,t,n)=>{let r=d(),[i,a]=(0,U.useState)(void 0),[o,s]=(0,U.useState)(!1),[c,l]=(0,U.useState)(0),u=e=>{_.success(y.t(`media.delete.done`,{name:e.filename})),n()};return{blockedUsageCount:i&&i.assetId===e?.id?i.usageCount:void 0,confirm:async()=>{if(e){try{await r.mutateAsync({id:e.id,force:!1})}catch(n){if(!ie(n,`MEDIA_IN_USE`))throw n;let i=ht(n);if(!t)throw a({assetId:e.id,usageCount:i}),n;r.reset(),l(i),s(!0);return}u(e)}},force:{open:o,usageCount:c,pending:r.isPending,error:r.error,onOpenChange:s,confirm:()=>{e&&r.mutate({id:e.id,force:!0},{onSuccess:()=>{s(!1),u(e)}})}}}},G=e(n(),1),_t=({asset:e,onDeleted:t})=>{let{t:n}=a(),{isOwner:r}=w(),i=gt(e,r,t),o=i.blockedUsageCount;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(C,{tone:`danger`,align:`start`,side:`top`,title:n(`media.delete.title`,{name:e.filename}),description:o===void 0?n(`media.delete.description`):`${n(`media.delete.inUseDescription`,{count:o})} ${n(`media.delete.onlyOwners`)}`,confirmLabel:n(`common.delete`),onConfirm:i.confirm,trigger:(0,G.jsxs)(b,{variant:`destructive-ghost`,children:[(0,G.jsx)(v,{"aria-hidden":`true`}),n(`media.delete.action`)]})}),(0,G.jsx)(Pe,{open:i.force.open,onOpenChange:i.force.onOpenChange,title:n(`media.delete.inUseTitle`),description:`${n(`media.delete.inUseDescription`,{count:i.force.usageCount})} ${n(`media.delete.ownerMayForce`)}`,confirmLabel:n(`media.delete.force`),destructive:!0,pending:i.force.pending,error:i.force.error,onConfirm:i.force.confirm})]})},vt=({asset:e,form:t,onSubmit:n,pending:r,error:i,readOnly:o})=>{let{t:s}=a(),c=tt({control:t.control,name:`focalPoint`}),l=T(e.mimeType);return(0,G.jsx)(`form`,{noValidate:!0,"aria-label":s(`media.details.formLabel`),onSubmit:e=>{e.preventDefault(),n()},children:(0,G.jsx)(`fieldset`,{disabled:o,className:`contents`,children:(0,G.jsxs)(Oe,{children:[(0,G.jsx)(nt,{control:t.control,name:`filename`,label:s(`media.fields.filename`),autoComplete:`off`}),l?(0,G.jsx)(R,{control:t.control,name:`alt`,label:s(`media.fields.alt`),rows:2,placeholder:s(`media.details.altHint`)}):null,l&&!o?(0,G.jsx)(st,{assetId:e.id,mimeType:e.mimeType,onSuggest:e=>t.setValue(`alt`,e,{shouldDirty:!0,shouldValidate:!0})}):null,(0,G.jsx)(R,{control:t.control,name:`caption`,label:s(`media.fields.caption`),rows:2}),l&&!o?(0,G.jsx)(Ie,{imageUrl:e.url,value:c.field.value,onChange:e=>c.field.onChange(e)}):null,(0,G.jsx)(S,{error:i}),o?null:(0,G.jsx)(`div`,{className:`flex justify-end`,children:(0,G.jsx)(oe,{pending:r,pendingLabel:s(`common.saving`),disabled:!t.formState.isDirty,children:s(`common.saveChanges`)})})]})})})},yt=e=>e.variants.find(e=>e.name===`w1280`&&e.url)?.url??e.variants.find(e=>e.name===`w640`&&e.url)?.url??e.url,bt=({asset:e})=>{let{t}=a();return T(e.mimeType)?(0,G.jsx)(`img`,{src:yt(e),alt:e.alt||t(`media.details.previewOf`,{name:e.filename}),className:`max-h-72 w-full rounded-lg border bg-muted object-contain`}):e.mimeType.startsWith(`video/`)?(0,G.jsx)(`video`,{src:e.url,controls:!0,preload:`metadata`,className:`max-h-72 w-full rounded-lg border bg-muted`}):e.mimeType.startsWith(`audio/`)?(0,G.jsx)(`audio`,{src:e.url,controls:!0,preload:`metadata`,className:`w-full`}):(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-3 rounded-lg border bg-muted px-4 py-8`,children:[(0,G.jsx)(ze,{mimeType:e.mimeType,className:`size-10 text-muted-foreground`}),(0,G.jsx)(b,{asChild:!0,variant:`outline`,size:`sm`,children:(0,G.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,children:[(0,G.jsx)(Fe,{"aria-hidden":`true`}),t(`media.details.openFile`)]})})]})},K=({title:e,children:t})=>(0,G.jsxs)(`section`,{className:`space-y-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold`,children:e}),t]}),xt=({assetId:e})=>{let{t}=a(),n=ee(e);return n.isPending?(0,G.jsx)(x,{className:`h-8 w-full`}):n.isError?(0,G.jsx)(g,{error:n.error,onRetry:()=>void n.refetch()}):n.data.total===0?(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`media.usage.none`)}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-sm`,children:t(`media.usage.count`,{count:n.data.total})}),(0,G.jsx)(`ul`,{className:`divide-y rounded-lg border`,children:n.data.items.map(e=>(0,G.jsxs)(`li`,{className:`flex min-w-0 items-center gap-2 px-3 py-2`,children:[(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs`,title:e.entryId,children:t(`media.usage.entry`,{id:e.entryId})}),(0,G.jsx)(ge,{variant:`outline`,className:`font-mono`,children:e.locale}),(0,G.jsx)(h,{size:`sm`,tone:e.state===`published`?`success`:`neutral`,label:e.state===`published`?t(`media.usage.published`):t(`media.usage.draft`)})]},`${e.entryId}:${e.fieldId}:${e.locale}:${e.state}`))})]})},St=({asset:e,canManage:t})=>{let{t:n}=a(),r=u(),[i,o]=(0,U.useState)(!1),s=e.visibility===`private`,c=s?`public`:`private`,l=n(s?`media.visibility.privateExplanation`:`media.visibility.publicExplanation`);return(0,G.jsxs)(Ee,{orientation:`horizontal`,children:[(0,G.jsxs)(De,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[s?(0,G.jsx)(ae,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):(0,G.jsx)(Ue,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}),(0,G.jsx)(Ce,{htmlFor:`asset-private`,children:n(`media.visibility.privateLabel`)})]}),(0,G.jsx)(Se,{id:`asset-private-description`,children:t?l:`${l} ${n(`media.visibility.needsManage`)}`})]}),(0,G.jsx)(C,{tone:c===`public`?`danger`:`default`,open:i,onOpenChange:o,title:n(c===`private`?`media.visibility.makePrivateTitle`:`media.visibility.makePublicTitle`),description:n(c===`private`?`media.visibility.makePrivateDescription`:`media.visibility.makePublicDescription`),confirmLabel:n(c===`private`?`media.visibility.makePrivate`:`media.visibility.makePublic`),onConfirm:()=>r.mutateAsync({id:e.id,input:{expectedVersion:e.version,visibility:c}}).then(()=>_.success(n(`media.visibility.changed`))),children:(0,G.jsx)(et,{id:`asset-private`,checked:s,disabled:!t||r.isPending,"aria-describedby":`asset-private-description`,onCheckedChange:()=>o(!0)})})]})},Ct=({assetId:e,onClose:t,onReplace:n})=>{let{t:r}=a(),i=l(e),o=i.data,{canWrite:s,canManage:c}=w(),u=mt(o),{requestOpenChange:d,discardPrompt:f}=at({dirty:u.form.formState.isDirty,pending:u.pending,onOpenChange:e=>{e||(u.form.reset(),t())}}),p=o?Ve[o.status]:void 0;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ce,{open:e!==void 0,onOpenChange:d,children:(0,G.jsxs)(_e,{size:`sm`,children:[(0,G.jsxs)(he,{children:[(0,G.jsx)(me,{className:`pr-8 break-all`,children:o?.filename??r(`media.details.title`)}),(0,G.jsx)(le,{className:`text-meta`,children:o?[Be(o.filename,o.mimeType),He(o.sizeBytes),o.width&&o.height?r(`media.dimensions`,{width:o.width,height:o.height}):``].filter(Boolean).join(` · `):r(`common.loading`)}),o&&p?(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 pt-1`,children:[(0,G.jsx)(h,{tone:p.tone,label:r(p.labelKey)}),o.visibility===`private`?(0,G.jsx)(h,{tone:`muted`,label:r(`media.visibility.private`)}):null,(0,G.jsx)(`span`,{className:`ml-auto`,children:(0,G.jsx)(lt,{value:o.url})})]}):null]}),(0,G.jsxs)(pe,{className:`space-y-6`,children:[i.isPending?(0,G.jsx)(ve,{rows:3}):null,i.isError?(0,G.jsx)(g,{error:i.error,onRetry:()=>void i.refetch()}):null,o&&p?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(bt,{asset:o}),o.urlExpiresAt?(0,G.jsx)(`p`,{className:`text-meta text-muted-foreground`,children:r(`media.details.signedLinkNote`)}):null,o.processingError?(0,G.jsxs)(Me,{variant:`destructive`,children:[(0,G.jsx)(fe,{"aria-hidden":`true`}),(0,G.jsx)(Ne,{children:o.processingError})]}):null]}),(0,G.jsx)(K,{title:r(`media.details.metadata`),children:(0,G.jsx)(vt,{asset:o,form:u.form,onSubmit:()=>void u.onSubmit(),pending:u.pending,error:u.error,readOnly:!s})}),(0,G.jsx)(K,{title:r(`media.usage.title`),children:(0,G.jsx)(xt,{assetId:o.id})}),(0,G.jsx)(K,{title:r(`media.visibility.title`),children:(0,G.jsx)(St,{asset:o,canManage:c})}),(0,G.jsx)(K,{title:r(`media.variants.title`),children:(0,G.jsx)(Re,{asset:o})})]}):null]}),o&&(s||c)?(0,G.jsxs)(ue,{className:`flex-row flex-wrap justify-between`,children:[c?(0,G.jsx)(_t,{asset:o,onDeleted:t}):null,s?(0,G.jsx)(D,{variant:`outline`,multiple:!1,label:r(`media.details.replace`),onFiles:([e])=>e?n(o.id,e):void 0,className:`ml-auto`}):null]}):null]})}),f]})},q=e=>e.dataTransfer.types.includes(`Files`),wt=({enabled:e,onFiles:t,children:n,className:r})=>{let{t:i}=a(),[o,c]=(0,U.useState)(!1),l=(0,U.useRef)(0);return e?(0,G.jsxs)(`div`,{className:s(`relative`,r),onDragEnter:e=>{q(e)&&(l.current+=1,c(!0))},onDragLeave:()=>{l.current=Math.max(0,l.current-1),l.current===0&&c(!1)},onDragOver:e=>{q(e)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)},onDrop:e=>{e.preventDefault(),l.current=0,c(!1);let n=[...e.dataTransfer.files];n.length>0&&t(n)},children:[n,o?(0,G.jsxs)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 z-20 flex flex-col items-center justify-center gap-2 rounded-xl border-2 border-dashed border-primary bg-background/90 text-primary`,children:[(0,G.jsx)(Je,{className:`size-8`}),(0,G.jsx)(`p`,{className:`font-semibold`,children:i(`media.upload.dropHere`)})]}):null]}):(0,G.jsx)(`div`,{className:r,children:n})},J=e=>{let t=Map.groupBy(e,t=>t.parentId&&e.some(e=>e.id===t.parentId)?t.parentId:null),n=(e,r)=>[...t.get(e)??[]].sort((e,t)=>e.name.localeCompare(t.name)).map(e=>({...e,depth:r,children:n(e.id,r+1)}));return n(null,0)},Y=e=>e.flatMap(e=>[e,...Y(e.children)]),Tt=P({name:j().max(255,`validation.tooLong`)}),Et=(e,t)=>{let n=te(),r=ne(),i=e.mode===`rename`?e.folder.name:``,a=M({resolver:it(Tt),defaultValues:{name:i}}),o=a.handleSubmit(async({name:i})=>{let a=i.trim();if(e.mode===`rename`&&a===e.folder.name){t();return}(await N(e.mode===`rename`?r.mutateAsync({id:e.folder.id,input:{expectedVersion:e.folder.version,name:a}}):n.mutateAsync({name:a,parentId:e.parentId}))).ok&&(_.success(y.t(e.mode===`rename`?`media.folders.renamed`:`media.folders.created`,{name:a})),t())}),s=e.mode===`rename`?r:n;return{form:a,onSubmit:o,initialName:i,pending:s.isPending,error:s.error}},X=({edit:e,onDone:t})=>{let{t:n}=a(),r=(0,U.useId)(),{form:i,onSubmit:s,initialName:c,pending:l,error:u}=Et(e,()=>t(!0)),{setFocus:d}=i;(0,U.useEffect)(()=>{d(`name`,{shouldSelect:!0})},[d]);let f=i.formState.errors.name?.message??(u?Ae(u):void 0),p=e.mode===`create`;return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`form`,{noValidate:!0,onSubmit:e=>void s(e),onKeyDown:e=>{e.key===`Escape`&&!l&&(e.preventDefault(),e.stopPropagation(),t(!0))},onBlur:e=>{let n=e.relatedTarget;n instanceof Node&&e.currentTarget.contains(n)||!l&&i.getValues(`name`).trim()===c&&t(!1)},className:`flex items-center gap-1 py-0.5 pl-1`,children:[p?(0,G.jsx)(E,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}):(0,G.jsx)(A,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}),(0,G.jsx)(je,{...i.register(`name`),inputSize:`sm`,autoComplete:`off`,spellCheck:!1,readOnly:l,"aria-label":p?n(`media.folders.newName`):n(`media.folders.renameLabel`,{name:e.folder.name}),"aria-invalid":f?!0:void 0,"aria-describedby":f?r:void 0,className:`h-8 px-2`}),(0,G.jsx)(b,{type:`submit`,variant:`ghost`,size:`icon-xs`,disabled:l,"aria-label":n(p?`media.folders.create`:`media.folders.saveName`),children:l?(0,G.jsx)(o,{"aria-hidden":`true`,className:`animate-spin`}):(0,G.jsx)(ke,{"aria-hidden":`true`})}),(0,G.jsx)(b,{type:`button`,variant:`ghost`,size:`icon-xs`,disabled:l,"aria-label":n(`common.cancel`),onClick:()=>t(!0),children:(0,G.jsx)(m,{"aria-hidden":`true`})})]}),(0,G.jsx)(`div`,{className:`pl-6`,children:(0,G.jsx)(rt,{id:r,message:f})})]})},Z=`flex h-9 min-w-0 items-center gap-2.5 rounded-lg text-left text-sm font-medium text-muted-foreground outline-none hover:bg-muted hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-[current=true]:bg-accent aria-[current=true]:font-semibold aria-[current=true]:text-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0`,Dt=({folder:e,canManage:t,actions:n})=>{let{t:r}=a(),i=(0,U.useRef)(!1),o=e=>()=>{i.current=!0,e()};return(0,G.jsxs)($e,{children:[(0,G.jsx)(C,{tone:`danger`,open:n.deletingId===e.id,onOpenChange:t=>n.onDeleteOpenChange(e,t),title:r(`media.folders.deleteTitle`,{name:e.name}),description:r(`media.folders.deleteDescription`),confirmLabel:r(`common.delete`),onConfirm:()=>n.onDelete(e),children:(0,G.jsx)(Ze,{asChild:!0,children:(0,G.jsx)(b,{variant:`ghost`,size:`icon-xs`,"aria-label":r(`media.folders.actions`,{name:e.name}),className:`absolute right-1.5`,"data-folder-menu":e.id,children:(0,G.jsx)(Le,{"aria-hidden":`true`})})})}),(0,G.jsxs)(Qe,{align:`end`,onCloseAutoFocus:e=>{i.current&&(i.current=!1,e.preventDefault())},children:[(0,G.jsxs)(k,{onSelect:o(()=>n.onCreate(e.id)),children:[(0,G.jsx)(E,{"aria-hidden":`true`}),r(`media.folders.newSubfolder`)]}),(0,G.jsxs)(k,{onSelect:o(()=>n.onRename(e)),children:[(0,G.jsx)(A,{"aria-hidden":`true`}),r(`media.folders.rename`)]}),t?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Xe,{}),(0,G.jsxs)(k,{variant:`destructive`,onSelect:o(()=>n.onDeleteOpenChange(e,!0)),children:[(0,G.jsx)(v,{"aria-hidden":`true`}),r(`common.delete`)]})]}):null]})]})},Q=({node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:c})=>{let l=e.id===t,u=l?dt:H,d=a?.mode===`rename`&&a.folder.id===e.id?a:void 0,f=a?.mode===`create`&&a.parentId===e.id?a:void 0;return(0,G.jsxs)(`li`,{children:[d?(0,G.jsx)(X,{edit:d,onDone:o}):(0,G.jsxs)(`div`,{className:`relative flex items-center`,children:[(0,G.jsxs)(`button`,{type:`button`,"aria-current":l?`true`:void 0,onClick:()=>c(e.id),className:s(Z,`flex-1 pl-2.5`,n?`pr-9`:`pr-2.5`),children:[(0,G.jsx)(u,{"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`truncate`,children:e.name}),(0,G.jsx)(`span`,{className:`ml-auto text-xs font-medium text-muted-foreground tabular-nums`,children:e.assetCount})]}),n?(0,G.jsx)(Dt,{folder:e,canManage:r,actions:i}):null]}),e.children.length>0||f?(0,G.jsxs)(`ul`,{className:`mt-0.5 ml-4 space-y-0.5 border-l pl-1.5`,children:[f?(0,G.jsx)(`li`,{children:(0,G.jsx)(X,{edit:f,onDone:o})}):null,e.children.map(e=>(0,G.jsx)(Q,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:a,onEditDone:o,onSelect:c},e.id))]}):null]})},$=({current:e,icon:t,label:n,onClick:r})=>(0,G.jsxs)(`button`,{type:`button`,"aria-current":e?`true`:void 0,onClick:r,className:s(Z,`w-full px-2.5`),children:[t,(0,G.jsx)(`span`,{className:`truncate`,children:n})]}),Ot=({folders:e,current:t,canWrite:n,canManage:r,actions:i,editing:o,onEditDone:s,onSelect:c,className:l})=>{let{t:u}=a(),d=(0,U.useMemo)(()=>J(e??[]),[e]),f=o?.mode===`create`&&o.parentId===null?o:void 0;return(0,G.jsx)(ct,{title:u(`media.folders.title`),flush:!0,className:l,bodyClassName:`p-2`,children:(0,G.jsxs)(`nav`,{"aria-label":u(`media.folders.title`),className:`space-y-1`,children:[(0,G.jsxs)(`ul`,{className:`space-y-0.5`,children:[(0,G.jsx)(`li`,{children:(0,G.jsx)($,{current:t===void 0,icon:(0,G.jsx)(Ge,{"aria-hidden":`true`}),label:u(`media.folders.all`),onClick:()=>c(void 0)})}),(0,G.jsx)(`li`,{children:(0,G.jsx)($,{current:t===L,icon:(0,G.jsx)(O,{"aria-hidden":`true`}),label:u(`media.folders.unfiled`),onClick:()=>c(L)})})]}),e===void 0?(0,G.jsx)(x,{className:`h-8 w-full`}):d.length>0||f?(0,G.jsxs)(`ul`,{className:`space-y-0.5 border-t pt-1`,children:[f?(0,G.jsx)(`li`,{children:(0,G.jsx)(X,{edit:f,onDone:s})}):null,d.map(e=>(0,G.jsx)(Q,{node:e,currentId:t,canWrite:n,canManage:r,actions:i,editing:o,onEditDone:s,onSelect:c},e.id))]}):null]})})},kt=()=>{let[e,t]=(0,U.useState)(new Set);return{selected:e,toggle:(0,U.useCallback)((e,n)=>t(t=>{let r=new Set(t);return n?r.add(e):r.delete(e),r}),[]),clear:(0,U.useCallback)(()=>t(new Set),[])}},At=e=>{let t=e.mode===`rename`?e.folder.id:e.parentId,n=t===null?`[data-new-folder]`:`[data-folder-menu="${CSS.escape(t)}"]`;return document.querySelector(n)},jt=e=>{let[t,n]=(0,U.useState)(void 0),[r,i]=(0,U.useState)(void 0),a=p();return{actions:{onCreate:e=>n({mode:`create`,parentId:e}),onRename:e=>n({mode:`rename`,folder:e}),deletingId:r,onDeleteOpenChange:(e,t)=>i(t?e.id:void 0),onDelete:t=>a.mutateAsync(t.id).then(()=>{_.success(y.t(`media.folders.deleted`,{name:t.name})),e(t)})},editing:t,stopEditing:e=>{let r=t;n(void 0),r&&e&&requestAnimationFrame(()=>At(r)?.focus())}}},Mt=()=>{let e=ye({from:`/app/media`}),t=re({from:`/media`});return{search:e,setSearch:(e,n=!1)=>void t({search:t=>({...t,...e}),replace:n}),assetQuery:{...e.folder?{folder:e.folder}:{},...e.q?{search:e.q}:{},...e.type?{mimeType:ot[e.type]}:{}}}},Nt=e=>{if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;let t=[...e.currentTarget.querySelectorAll(`button:not(:disabled)`)];if(t.length===0)return;e.preventDefault();let n=t.findIndex(e=>e===document.activeElement),r=t.length-1;t[e.key===`Home`?0:e.key===`End`?r:e.key===`ArrowDown`?Math.min(n+1,r):Math.max(n-1,0)]?.focus()},Pt=(e,t)=>{let n=c(),[r,i]=(0,U.useState)(void 0);return{target:n.isPending?r:void 0,pending:n.isPending,error:n.error,reset:n.reset,moveTo:async r=>{i(r);let a=await N(n.mutateAsync({assetIds:[...e],folderId:r}));a.ok&&(_.success(y.t(`media.move.done`,{count:a.value.moved.length})),t())}}},Ft=({icon:e,label:t,depth:n,pending:r,disabled:i,onClick:a})=>(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,disabled:i,"aria-busy":r||void 0,onClick:a,style:{"--depth":n},className:s(Z,`w-full pr-2.5 pl-[calc(0.625rem+var(--depth)*1rem)] disabled:opacity-50`),children:[r?(0,G.jsx)(o,{"aria-hidden":`true`,className:`animate-spin`}):e,(0,G.jsx)(`span`,{className:`truncate`,children:t})]})}),It=({assetIds:e,onMoved:t})=>{let{t:n}=a(),r=(0,U.useId)(),[i,o]=(0,U.useState)(!1),s=f(),c=(0,U.useMemo)(()=>Y(J(s.data??[])),[s.data]),l=Pt(e,()=>{o(!1),t()});return(0,G.jsxs)(Te,{open:i,onOpenChange:e=>{l.pending||(e&&l.reset(),o(e))},modal:!0,children:[(0,G.jsx)(xe,{asChild:!0,children:(0,G.jsxs)(b,{size:`sm`,variant:`outline`,children:[(0,G.jsx)(ut,{"aria-hidden":`true`}),n(`media.move.action`)]})}),(0,G.jsxs)(we,{align:`end`,"aria-labelledby":r,className:`w-72 space-y-2 p-2`,children:[(0,G.jsx)(`p`,{id:r,className:`px-2.5 pt-1 text-sm font-semibold`,children:n(`media.move.title`,{count:e.length})}),(0,G.jsxs)(`ul`,{className:`max-h-72 space-y-0.5 overflow-y-auto`,onKeyDown:Nt,children:[(0,G.jsx)(Ft,{icon:(0,G.jsx)(O,{"aria-hidden":`true`}),label:n(`media.folders.none`),depth:0,pending:l.target===null,disabled:l.pending,onClick:()=>void l.moveTo(null)}),c.map(e=>(0,G.jsx)(Ft,{icon:(0,G.jsx)(H,{"aria-hidden":`true`}),label:e.name,depth:e.depth,pending:l.target===e.id,disabled:l.pending,onClick:()=>void l.moveTo(e.id)},e.id))]}),s.isPending?(0,G.jsx)(x,{className:`h-8 w-full`}):null,(0,G.jsx)(S,{error:l.error})]})]})},Lt=({selected:e,onClear:t})=>{let{t:n}=a();return(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded-xl border bg-accent py-1.5 pr-1.5 pl-4 text-accent-foreground`,children:[(0,G.jsx)(`span`,{role:`status`,"aria-live":`polite`,className:`mr-auto text-sm font-medium`,children:n(`media.selectedCount`,{count:e.size})}),(0,G.jsx)(It,{assetIds:[...e],onMoved:t}),(0,G.jsxs)(b,{size:`sm`,variant:`ghost`,onClick:t,children:[(0,G.jsx)(m,{"aria-hidden":`true`}),n(`media.clearSelection`)]})]})},Rt=be(`/app/media`)({component:()=>{let{t:e}=a(),{search:t,setSearch:n,assetQuery:r}=Mt(),i=f(),{canWrite:o,canManage:s}=w(),c=Ye(),l=kt(),u=jt(e=>{t.folder===e.id&&n({folder:void 0})}),d=t.folder&&t.folder!==`root`?t.folder:null,p=e=>c.enqueue(e,{folderId:d,visibility:`public`});return(0,G.jsxs)(se,{width:`full`,children:[(0,G.jsx)(de,{title:e(`media.title`),actions:o?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(b,{variant:`outline`,"data-new-folder":!0,onClick:()=>u.actions.onCreate(null),children:[(0,G.jsx)(E,{"aria-hidden":`true`}),e(`media.folders.new`)]}),(0,G.jsx)(D,{label:e(`media.upload.action`),onFiles:p})]}):null}),(0,G.jsxs)(`div`,{className:`grid gap-6 lg:grid-cols-[13.75rem_minmax(0,1fr)]`,children:[(0,G.jsx)(Ot,{folders:i.data,current:t.folder,canWrite:o,canManage:s,actions:u.actions,editing:u.editing,onEditDone:u.stopEditing,onSelect:e=>{l.clear(),n({folder:e})},className:`lg:self-start`}),(0,G.jsxs)(wt,{enabled:o,onFiles:p,className:`min-h-96 min-w-0 space-y-4`,children:[(0,G.jsx)(qe,{onRetry:c.retry,onDismiss:c.dismiss}),(0,G.jsx)(Ke,{query:t.q,type:t.type,view:t.view??`grid`,onQueryChange:e=>n({q:e},!0),onTypeChange:e=>n({type:e}),onViewChange:e=>n({view:e})}),l.selected.size>0?(0,G.jsx)(Lt,{selected:l.selected,onClear:l.clear}):null,(0,G.jsx)(We,{query:r,filtered:!!(t.q||t.type),view:t.view??`grid`,selected:l.selected,selectable:o,activeId:t.asset,onSelectChange:l.toggle,onOpen:e=>n({asset:e.id})})]})]}),(0,G.jsx)(Ct,{assetId:t.asset,onClose:()=>n({asset:void 0}),onReplace:(e,t)=>c.enqueue([t],{folderId:null,visibility:`public`,replaceAssetId:e})})]})}});export{Rt as mediaLazyRoute};
|
|
2
|
+
//# sourceMappingURL=media-Cs9LCQcz.js.map
|