1import{c as pe,j as s,H as Pe,r as F,u as Se,b as _e}from"./app-PpSv_f_7.js";import{c as $e,q as Re,d as Ie,B as he}from"./app-logo-icon-rTpc8Hb8.js";import{C as Ne}from"./confirm-dialog-9zfbmold.js";import{a as Ue,d as ke,C as Le,c as De,b as Fe}from"./card-DSKZ7SNW.js";import{L as be}from"./label-DR4yWumI.js";import{d as Te,X as we}from"./sheet-CpFRJKkC.js";import{a as Ee,e as Me}from"./app-layout-CsEQgLLx.js";import{m as Qe}from"./index-DEUTWzWj.js";import{U as Ce}from"./upload-DV8D7YCv.js";import{R as qe}from"./refresh-cw-D0O-7ccC.js";/* empty css */import"./dialog-QkWjKomb.js";import"./index-w45nBav0.js";import"./index-eZOuQ71z.js";import"./index-Dz0JFX31.js";const Ae=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],ze=$e("ChevronLeft",Ae),_=l=>({url:_.url(l),method:"get"});_.definition={methods:["get","head"],url:"/pictures"};_.url=l=>_.definition.url+Re(l);_.get=l=>({url:_.url(l),method:"get"});_.head=l=>({url:_.url(l),method:"head"});const ye=l=>({action:_.url(l),method:"get"});ye.get=l=>({action:_.url(l),method:"get"});ye.head=l=>({action:_.url({[l?.mergeQuery?"mergeQuery":"query"]:{_method:"HEAD",...l?.query??l?.mergeQuery??{}}}),method:"get"});_.form=ye;const N=(l,e)=>({url:N.url(l,e),method:"put"});N.definition={methods:["put","patch"],url:"/pictures/{picture}"};N.url=(l,e)=>{(typeof l=="string"||typeof l=="number")&&(l={picture:l}),typeof l=="object"&&!Array.isArray(l)&&"id"in l&&(l={picture:l.id}),Array.isArray(l)&&(l={picture:l[0]}),l=Ie(l);const t={picture:typeof l.picture=="object"?l.picture.id:l.picture};return N.definition.url.replace("{picture}",t.picture.toString()).replace(/\/+$/,"")+Re(e)};N.put=(l,e)=>({url:N.url(l,e),method:"put"});N.patch=(l,e)=>({url:N.url(l,e),method:"patch"});const je=(l,e)=>({action:N.url(l,{[e?.mergeQuery?"mergeQuery":"query"]:{_method:"PUT",...e?.query??e?.mergeQuery??{}}}),method:"post"});je.put=(l,e)=>({action:N.url(l,{[e?.mergeQuery?"mergeQuery":"query"]:{_method:"PUT",...e?.query??e?.mergeQuery??{}}}),method:"post"});je.patch=(l,e)=>({action:N.url(l,{[e?.mergeQuery?"mergeQuery":"query"]:{_method:"PATCH",...e?.query??e?.mergeQuery??{}}}),method:"post"});N.form=je;const me={index:_,update:N},He=[{title:"Management",href:Qe().url},{title:"Pictures",href:me.index.url()}];function Oe(l){const e=pe.c(24),{urls:t,hasCustom:a,intervalMs:c,transitionMs:i}=l,[r,p]=F.useState(0);t.length>0&&r>=t.length&&p(0);let v,b;e[0]!==c||e[1]!==t.length?(v=()=>{if(t.length<=1)return;const o=setInterval(()=>p(n=>(n+1)%t.length),c);return()=>clearInterval(o)},b=[t.length,c],e[0]=c,e[1]=t.length,e[2]=v,e[3]=b):(v=e[2],b=e[3]),F.useEffect(v,b);let R;e[4]!==t.length?(R=()=>p(o=>(o-1+t.length)%t.length),e[4]=t.length,e[5]=R):R=e[5];const g=R;let P;e[6]!==t.length?(P=()=>p(o=>(o+1)%t.length),e[6]=t.length,e[7]=P):P=e[7];const w=P;let y;e[8]!==r||e[9]!==i||e[10]!==t?(y=t.length===1?s.jsx("img",{src:t[0],alt:"Slide 1",className:"h-full w-full object-cover"}):t.map((o,n)=>s.jsx("img",{src:o,alt:`Slide ${n+1}`,style:{transitionDuration:`${i}ms`},"aria-hidden":n!==r,className:`absolute inset-0 h-full w-full object-cover transition-opacity ${n===r?"opacity-100":"opacity-0"}`},o)),e[8]=r,e[9]=i,e[10]=t,e[11]=y):y=e[11];let h;e[12]!==r||e[13]!==w||e[14]!==g||e[15]!==t?(h=t.length>1&&s.jsxs(s.Fragment,{children:[s.jsx("button",{type:"button",onClick:g,className:"absolute top-1/2 left-2 -translate-y-1/2 rounded-full bg-black/50 p-1 text-white opacity-0 transition-opacity group-hover:opacity-100","aria-label":"Previous image",children:s.jsx(ze,{className:"h-5 w-5"})}),s.jsx("button",{type:"button",onClick:w,className:"absolute top-1/2 right-2 -translate-y-1/2 rounded-full bg-black/50 p-1 text-white opacity-0 transition-opacity group-hover:opacity-100","aria-label":"Next image",children:s.jsx(Me,{className:"h-5 w-5"})}),s.jsx("div",{className:"absolute bottom-2 left-1/2 flex -translate-x-1/2 gap-1",children:t.map((o,n)=>s.jsx("button",{type:"button",onClick:()=>p(n),"aria-label":`Go to image ${n+1}`,className:`h-1.5 w-1.5 rounded-full transition-colors ${n===r?"bg-white":"bg-white/50"}`},o))}),s.jsxs("span",{className:"absolute top-2 left-2 rounded-full bg-black/50 px-2 py-0.5 text-xs text-white",children:[Math.min(r,t.length-1)+1," / ",t.length]})]}),e[12]=r,e[13]=w,e[14]=g,e[15]=t,e[16]=h):h=e[16];
1const T=`absolute top-2 right-2 rounded-full px-2 py-0.5 text-xs ${a?"bg-primary/90 text-primary-foreground":"bg-secondary text-secondary-foreground"}`,x=a?"Custom":"Default";let C;e[17]!==T||e[18]!==x?(C=s.jsx("span",{className:T,children:x}),e[17]=T,e[18]=x,e[19]=C):C=e[19];let d;return e[20]!==y||e[21]!==h||e[22]!==C?(d=s.jsxs("div",{className:"group relative aspect-video w-full overflow-hidden rounded-lg border bg-muted",children:[y,h,C]}),e[20]=y,e[21]=h,e[22]=C,e[23]=d):d=e[23],d}function Be(l){const e=pe.c(61),{image:t,onPreviewChange:a}=l;let c;e[0]!==t.slide_interval_ms||e[1]!==t.transition_ms?(c={slide_interval_ms:t.slide_interval_ms,transition_ms:t.transition_ms},e[0]=t.slide_interval_ms,e[1]=t.transition_ms,e[2]=c):c=e[2];const{data:i,setData:r,put:p,processing:v}=Se(c);let b;e[3]!==i.transition_ms||e[4]!==a||e[5]!==r?(b=f=>{r("slide_interval_ms",f),a(f,i.transition_ms)},e[3]=i.transition_ms,e[4]=a,e[5]=r,e[6]=b):b=e[6];const R=b;let g;e[7]!==i.slide_interval_ms||e[8]!==a||e[9]!==r?(g=f=>{r("transition_ms",f),a(i.slide_interval_ms,f)},e[7]=i.slide_interval_ms,e[8]=a,e[9]=r,e[10]=g):g=e[10];const P=g;let w;e[11]!==t.id||e[12]!==p?(w=f=>{f.preventDefault(),p(me.update.url(t.id),{preserveScroll:!0})},e[11]=t.id,e[12]=p,e[13]=w):w=e[13];const y=w;let h;e[14]===Symbol.for("react.memo_cache_sentinel")?(h=s.jsx("p",{className:"text-sm font-medium",children:"Slideshow Timing"}),e[14]=h):h=e[14];const T=`interval-${t.id}`;let x;e[15]!==T?(x=s.jsx(be,{htmlFor:T,className:"text-sm",children:"Slide duration"}),e[15]=T,e[16]=x):x=e[16];const C=i.slide_interval_ms/1e3;let d;e[17]!==C?(d=C.toFixed(1),e[17]=C,e[18]=d):d=e[18];let o;e[19]!==d?(o=s.jsxs("span",{className:"w-12 text-right text-sm text-muted-foreground tabular-nums",children:[d,"s"]}),e[19]=d,e[20]=o):o=e[20];let n;e[21]!==o||e[22]!==x?(n=s.jsxs("div",{className:"flex items-center justify-between",children:[x,o]}),e[21]=o,e[22]=x,e[23]=n):n=e[23];const G=`interval-${t.id}`;let S;e[24]!==R?(S=f=>R(Number(f.target.value)),e[24]=R,e[25]=S):S=e[25];let E;e[26]!==i.slide_interval_ms||e[27]!==G||e[28]!==S?(E=s.jsx("input",{id:G,type:"range",min:1e3,max:3e4,step:500,value:i.slide_interval_ms,onChange:S,className:"w-full accent-primary"}),e[26]=i.slide_interval_ms,e[27]=G,e[28]=S,e[29]=E):E=e[29];let M;e[30]===Symbol.for("react.memo_cache_sentinel")?(M=s.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[s.jsx("span",{children:"1s"}),s.jsx("span",{children:"30s"})]}),e[30]=M):M=e[30];let Q;e[31]!==n||e[32]!==E?(Q=s.jsxs("div",{className:"space-y-1.5",children:[n,E,M]}),e[31]=n,e[32]=E,e[33]=Q):Q=e[33];const q=`transition-${t.id}`;let $;e[34]!==q?($=s.jsx(be,{htmlFor:q,className:"text-sm",children:"Fade duration"}),e[34]=q,e[35]=$):$=e[35];const A=i.transition_ms/1e3;let L;e[36]!==A?(L=A.toFixed(1),e[36]=A,e[37]=L):L=e[37];let I;e[38]!==L?(I=s.jsxs("span",{className:"w-12 text-right text-sm text-muted-foreground tabular-nums",children:[L,"s"]}),e[38]=L,e[39]=I):I=e[39];let j;e[40]!==$||e[41]!==I?(j=s.jsxs("div",{className:"flex items-center justify-between",children:[$,I]}),e[40]=$,e[41]=I,e[42]=j):j=e[42];const z=`transition-${t.id}`;let D;e[43]!==P?(D=f=>P(Number(f.target.value)),e[43]=P,e[44]=D):D=e[44];let U;e[45]!==i.transition_ms||e[46]!==z||e[47]!==D?(U=s.jsx("input",{id:z,type:"range",min:100,max:3e3,step:100,value:i.transition_ms,onChange:D,className:"w-full accent-primary"}),e[45]=i.transition_ms,e[46]=z,e[47]=D,e[48]=U):U=e[48];let H;e[49]===Symbol.for("react.memo_cache_sentinel")?(H=s.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[s.jsx("span",{children:"0.1s"}),s.jsx("span",{children:"3s"})]}),e[49]=H):H=e[49];let k;e[50]!==j||e[51]!==U?(k=s.jsxs("div",{className:"space-y-1.5",children:[j,U,H]}),e[50]=j,e[51]=U,e[52]=k):k=e[52];const J=v?"Savingâ¦":"Save timing";let u;e[53]!==v||e[54]!==J?(u=s.jsx(he,{type:"submit",size:"sm",variant:"outline",disabled:v,children:J}),e[53]=v,e[54]=J,e[55]=u):u=e[55];let O;return e[56]!==y||e[57]!==Q||e[58]!==k||e[59]!==u?(O=s.jsxs("form",{onSubmit:y,className:"space-y-4 border-t pt-4",children:[h,Q,k,u]}),e[56]=y,e[57]=Q,e[58]=k,e[59]=u,e[60]=O):O=e[60],O}function Ge(l){const e=pe.c(82),{image:t}=l,{toast:a}=Te();let c;e[0]===Symbol.for("react.memo_cache_sentinel")?(c=[],e[0]=c):c=e[0];const[i,r]=F.useState(c);let p;e[1]===Symbol.for("react.memo_cache_sentinel")?(p=[],e[1]=p):p=e[1];const v=F.useRef(p),[b,R]=F.useState(null),[g,P]=F.useState(null),[w,y]=F.useState(!1),[h,T]=F.useState(t.slide_interval_ms),[x,C]=F.useState(t.transition_ms);let d;e[2]===Symbol.for("react.memo_cache_sentinel")?(d={images:[]},e[2]=d):d=e[2];const{data:o,setData:n,put:G,processing:S,errors:E}=Se(d);let M;e[3]===Symbol.for("react.memo_cache_sentinel")?(M=m=>{v.current.forEach(Ke),v.current=m,r(m)},e[3]=M):M=e[3];const Q=M;let q,$;e[4]===Symbol.for("react.memo_cache_sentinel")?(q=()=>()=>v.current.forEach(Xe),$=[],e[4]=q,e[5]=$):(q=e[4],$=e[5]),F.useEffect(q,$);let A;e[6]!==n?(A=m=>{const B=Array.from(m.target.files??[]);n("images",B),Q(B.map(We)),m.target.value=""},e[6]=n,e[7]=A):A=e[7];const L=A;let I;e[8]!==n?(I=()=>{n("images",[]),Q([])},e[8]=n,e[9]=I):I=e[9];const j=I;let z;
1e[10]!==j||e[11]!==o.images.length||e[12]!==t.id||e[13]!==G?(z=m=>{m.preventDefault(),o.images.length&&G(me.update.url(t.id),{preserveScroll:!0,forceFormData:!0,onSuccess:()=>j()})},e[10]=j,e[11]=o.images.length,e[12]=t.id,e[13]=G,e[14]=z):z=e[14];const D=z;let U;e[15]!==t.id||e[16]!==a?(U=m=>{R(m),_e.put(me.update.url(t.id),{remove_index:m},{preserveScroll:!0,onError:()=>a({title:"Remove failed",description:"The image could not be removed.",variant:"destructive"}),onFinish:()=>R(null)})},e[15]=t.id,e[16]=a,e[17]=U):U=e[17];const H=U;let k;e[18]!==t.id||e[19]!==a?(k=()=>{_e.put(me.update.url(t.id),{remove_image:!0},{preserveScroll:!0,onError:()=>a({title:"Restore failed",description:"The default image could not be restored.",variant:"destructive"})})},e[18]=t.id,e[19]=a,e[20]=k):k=e[20];const J=k,u=!!(t.paths&&t.paths.length>0),O=(t.paths?.length??0)>=2,f=E.images??E["images.0"];let W;e[21]!==t.label?(W=s.jsx(Ue,{children:t.label}),e[21]=t.label,e[22]=W):W=e[22];let X;e[23]!==t.description?(X=t.description&&s.jsx(ke,{children:t.description}),e[23]=t.description,e[24]=X):X=e[24];let K;e[25]!==W||e[26]!==X?(K=s.jsxs(Le,{children:[W,X]}),e[25]=W,e[26]=X,e[27]=K):K=e[27];let V;e[28]!==u||e[29]!==t.image_urls||e[30]!==h||e[31]!==x?(V=s.jsx(Oe,{urls:t.image_urls,hasCustom:u,intervalMs:h,transitionMs:x}),e[28]=u,e[29]=t.image_urls,e[30]=h,e[31]=x,e[32]=V):V=e[32];let Y;e[33]!==u||e[34]!==t.image_urls||e[35]!==b?(Y=u&&s.jsx("div",{className:"flex flex-wrap gap-2",children:t.image_urls.map((m,B)=>s.jsxs("div",{className:"group/thumb relative",children:[s.jsx("img",{src:m,alt:`Image ${B+1}`,loading:"lazy",className:"h-16 w-24 rounded border object-cover"}),s.jsx("button",{type:"button",onClick:()=>P(B),disabled:b===B,className:"absolute -top-1.5 -right-1.5 flex h-5 w-5 items-center justify-center rounded-full bg-destructive text-destructive-foreground opacity-0 transition-opacity group-hover/thumb:opacity-100 disabled:opacity-50","aria-label":"Remove this image",children:s.jsx(we,{className:"h-3 w-3"})})]},m))}),e[33]=u,e[34]=t.image_urls,e[35]=b,e[36]=Y):Y=e[36];let Z;e[37]!==j||e[38]!==L||e[39]!==t.id||e[40]!==i?(Z=i.length>0?s.jsxs("div",{className:"space-y-2",children:[s.jsxs(be,{children:["Selected (",i.length," file",i.length>1?"s":"",")"]}),s.jsxs("div",{className:"flex flex-wrap items-start gap-2",children:[i.map(Je),s.jsxs(he,{type:"button",variant:"outline",size:"sm",onClick:j,className:"self-start",children:[s.jsx(we,{className:"mr-1 h-4 w-4"}),"Cancel"]})]})]}):s.jsxs("label",{htmlFor:`image-${t.id}`,className:"flex h-24 w-full cursor-pointer flex-col items-center justify-center rounded-lg border-2 border-dashed border-muted-foreground/25 transition-colors hover:border-muted-foreground/50 hover:bg-muted/50",children:[s.jsx(Ce,{className:"mb-1 h-6 w-6 text-muted-foreground"}),s.jsx("span",{className:"text-sm text-muted-foreground",children:"Click to upload images"}),s.jsx("span",{className:"text-xs text-muted-foreground",children:"PNG, JPG, WEBP up to 100 MB each"}),s.jsx("input",{id:`image-${t.id}`,type:"file",accept:"image/*",multiple:!0,className:"sr-only",onChange:L})]}),e[37]=j,e[38]=L,e[39]=t.id,e[40]=i,e[41]=Z):Z=e[41];let ee;e[42]!==f?(ee=f&&s.jsx("p",{className:"text-sm text-destructive",children:f}),e[42]=f,e[43]=ee):ee=e[43];const ge=S||i.length===0;let de;e[44]===Symbol.for("react.memo_cache_sentinel")?(de=s.jsx(Ce,{className:"mr-1 h-4 w-4"}),e[44]=de):de=e[44];const xe=S?"Uploadingâ¦":i.length>1?`Upload ${i.length} Images`:"Upload Image";let te;e[45]!==ge||e[46]!==xe?(te=s.jsxs(he,{type:"submit",size:"sm",disabled:ge,children:[de,xe]}),e[45]=ge,e[46]=xe,e[47]=te):te=e[47];let se;e[48]!==u||e[49]!==S?(se=u&&s.jsxs(he,{type:"button",variant:"outline",size:"sm",onClick:()=>y(!0),disabled:S,children:[s.jsx(qe,{className:"mr-1 h-4 w-4"}),"Restore Default"]}),e[48]=u,e[49]=S,e[50]=se):se=e[50];let le;e[51]!==te||e[52]!==se?(le=s.jsxs("div",{className:"flex gap-2",children:[te,se]}),e[51]=te,e[52]=se,e[53]=le):le=e[53];let ie;e[54]!==D||e[55]!==Z||e[56]!==ee||e[57]!==le?(ie=s.jsxs("form",{onSubmit:D,className:"space-y-3",children:[Z,ee,le]}),e[54]=D,e[55]=Z,e[56]=ee,e[57]=le,e[58]=ie):ie=e[58];let re;e[59]!==t||e[60]!==O?(re=O&&s.jsx(Be,{image:t,onPreviewChange:(m,B)=>{T(m),C(B)}}),e[59]=t,e[60]=O,e[61]=re):re=e[61];const ve=g!==null;let ue;e[62]===Symbol.for("react.memo_cache_sentinel")?(ue=m=>!m&&P(null),e[62]=ue):ue=e[62];let ne;e[63]!==g||e[64]!==H?(ne=()=>
1g!==null&&H(g),e[63]=g,e[64]=H,e[65]=ne):ne=e[65];let ae;e[66]!==ve||e[67]!==ne?(ae=s.jsx(Ne,{open:ve,onOpenChange:ue,title:"Remove this image?",description:"The image will be removed from the slideshow.",confirmLabel:"Remove",onConfirm:ne}),e[66]=ve,e[67]=ne,e[68]=ae):ae=e[68];let oe;e[69]!==w||e[70]!==J?(oe=s.jsx(Ne,{open:w,onOpenChange:y,title:"Restore default image?",description:"All custom images will be removed and the default restored.",confirmLabel:"Restore",onConfirm:J}),e[69]=w,e[70]=J,e[71]=oe):oe=e[71];let ce;e[72]!==V||e[73]!==Y||e[74]!==ie||e[75]!==re||e[76]!==ae||e[77]!==oe?(ce=s.jsxs(De,{className:"space-y-4",children:[V,Y,ie,re,ae,oe]}),e[72]=V,e[73]=Y,e[74]=ie,e[75]=re,e[76]=ae,e[77]=oe,e[78]=ce):ce=e[78];let fe;return e[79]!==K||e[80]!==ce?(fe=s.jsxs(Fe,{children:[K,ce]}),e[79]=K,e[80]=ce,e[81]=fe):fe=e[81],fe}function Je(l,e){return s.jsx("img",{src:l,alt:`Preview ${e+1}`,className:"h-16 w-24 rounded-lg border object-cover"},l)}function We(l){return URL.createObjectURL(l)}function Xe(l){return URL.revokeObjectURL(l)}function Ke(l){return URL.revokeObjectURL(l)}function ft(l){const e=pe.c(6),{images:t}=l;let a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a=s.jsx(Pe,{title:"Pictures"}),e[0]=a):a=e[0];let c;e[1]===Symbol.for("react.memo_cache_sentinel")?(c=s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:"Site Pictures"}),s.jsx("p",{className:"mt-1 text-muted-foreground",children:"Manage the public-facing images displayed on the website."})]}),e[1]=c):c=e[1];let i;e[2]!==t?(i=t.map(Ve),e[2]=t,e[3]=i):i=e[3];let r;return e[4]!==i?(r=s.jsxs(Ee,{breadcrumbs:He,children:[a,s.jsxs("div",{className:"flex flex-col gap-6 p-4",children:[c,s.jsx("div",{className:"grid gap-6 md:grid-cols-2 lg:grid-cols-3",children:i})]})]}),e[4]=i,e[5]=r):r=e[5],r}function Ve(l){return s.jsx(Ge,{image:l},l.id)}export{ft as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.