dgz-ui-shared 1.0.40 → 1.0.41

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.
@@ -1,36 +1,36 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../jsx-runtime-DUiatUiq.cjs"),o=require("react"),q=require("../../lodash-C5w_OPmE.cjs"),P=require("../../utils-B6fNqzRf-BNysSCt9.cjs"),x=require("../../createLucideIcon-BnAj0RnC.cjs");/**
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../jsx-runtime-DUiatUiq.cjs"),l=require("react"),O=require("../../lodash-C5w_OPmE.cjs"),B=require("../../utils-B6fNqzRf-BNysSCt9.cjs"),L=require("../../_commonjsHelpers-DKOUU3wS.cjs"),k=require("../../createLucideIcon-BnAj0RnC.cjs");/**
2
2
  * @license lucide-react v0.511.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
5
5
  * See the LICENSE file in the root directory of this source tree.
6
- */const Z=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],G=x.createLucideIcon("chevron-left",Z);/**
6
+ */const Y=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],P=k.createLucideIcon("chevron-left",Y);/**
7
7
  * @license lucide-react v0.511.0 - ISC
8
8
  *
9
9
  * This source code is licensed under the ISC license.
10
10
  * See the LICENSE file in the root directory of this source tree.
11
- */const O=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],H=x.createLucideIcon("chevron-right",O);/**
11
+ */const Z=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],K=k.createLucideIcon("chevron-right",Z);/**
12
12
  * @license lucide-react v0.511.0 - ISC
13
13
  *
14
14
  * This source code is licensed under the ISC license.
15
15
  * See the LICENSE file in the root directory of this source tree.
16
- */const U=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],V=x.createLucideIcon("download",U);/**
16
+ */const V=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],W=k.createLucideIcon("download",V);/**
17
17
  * @license lucide-react v0.511.0 - ISC
18
18
  *
19
19
  * This source code is licensed under the ISC license.
20
20
  * See the LICENSE file in the root directory of this source tree.
21
- */const B=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],K=x.createLucideIcon("rotate-cw",B);/**
21
+ */const J=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Q=k.createLucideIcon("rotate-cw",J);/**
22
22
  * @license lucide-react v0.511.0 - ISC
23
23
  *
24
24
  * This source code is licensed under the ISC license.
25
25
  * See the LICENSE file in the root directory of this source tree.
26
- */const W=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],J=x.createLucideIcon("x",W);/**
26
+ */const ee=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],te=k.createLucideIcon("x",ee);/**
27
27
  * @license lucide-react v0.511.0 - ISC
28
28
  *
29
29
  * This source code is licensed under the ISC license.
30
30
  * See the LICENSE file in the root directory of this source tree.
31
- */const Q=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],ee=x.createLucideIcon("zoom-in",Q);/**
31
+ */const oe=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],ne=k.createLucideIcon("zoom-in",oe);/**
32
32
  * @license lucide-react v0.511.0 - ISC
33
33
  *
34
34
  * This source code is licensed under the ISC license.
35
35
  * See the LICENSE file in the root directory of this source tree.
36
- */const te=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],oe=x.createLucideIcon("zoom-out",te),se=(l,r)=>[{icon:t.jsxRuntimeExports.jsx(ee,{size:20}),onClick:()=>l(c=>Math.min(c*1.5,5)),label:"Zoom In"},{icon:t.jsxRuntimeExports.jsx(oe,{size:20}),onClick:()=>l(c=>Math.max(c/1.5,.5)),label:"Zoom Out"},{icon:t.jsxRuntimeExports.jsx(K,{size:20}),onClick:()=>r(c=>(c+90)%360),label:"Rotate"},{icon:t.jsxRuntimeExports.jsx(V,{size:20}),onClick:c=>{const b=document.createElement("a");b.href=c.src,b.download=`image-${c.id}`,b.click()},label:"Download"}],ne=o.memo(({image:l,index:r,onClick:c})=>t.jsxRuntimeExports.jsx("div",{className:"aspect-square cursor-pointer overflow-hidden rounded-lg bg-gray-200 transition-opacity hover:opacity-80",onClick:()=>c(r),children:t.jsxRuntimeExports.jsx("img",{src:l.thumbnail||l.src,alt:l.alt||`Image ${r+1}`,className:"h-full w-full object-cover"})},l.id)),le=({images:l,actionButtons:r=[],className:c,hasInfo:b,...X})=>{const[n,f]=o.useState(null),[d,R]=o.useState(!1),[g,m]=o.useState(1),[N,h]=o.useState(0),[a,p]=o.useState({x:0,y:0}),[i,j]=o.useState(!1),[y,C]=o.useState({x:0,y:0}),M=o.useMemo(()=>se(m,h),[m,h]),I=o.useMemo(()=>[...M,...r],[M,r]),F=o.useCallback(e=>{f(e),R(!0),m(1),h(0),p({x:0,y:0})},[]),k=o.useCallback(()=>{R(!1),f(null),m(1),h(0),p({x:0,y:0})},[]),v=o.useCallback(()=>{n!==null&&n>0&&(f(n-1),m(1),h(0),p({x:0,y:0}))},[n]),w=o.useCallback(()=>{n!==null&&n<l.length-1&&(f(n+1),m(1),h(0),p({x:0,y:0}))},[n,l.length]),z=o.useCallback(e=>{j(!0),C({x:e.clientX-a.x,y:e.clientY-a.y}),e.preventDefault()},[a]),L=o.useCallback(e=>{if(i){const s=e.clientX-y.x,E=e.clientY-y.y;p({x:s,y:E})}},[i,y]),$=o.useCallback(()=>{j(!1)},[]),D=o.useCallback(()=>{j(!1)},[]),S=o.useCallback(e=>{const s=e.touches[0];j(!0),C({x:s.clientX-a.x,y:s.clientY-a.y}),e.preventDefault()},[a]),_=o.useCallback(e=>{if(i){const s=e.touches[0],E=s.clientX-y.x,A=s.clientY-y.y;p({x:E,y:A})}},[i,y]),T=o.useCallback(()=>{j(!1)},[]);o.useEffect(()=>{const e=s=>{if(d)switch(s.key){case"Escape":k();break;case"ArrowLeft":s.preventDefault(),v();break;case"ArrowRight":s.preventDefault(),w();break}};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[d,v,w,k]),o.useEffect(()=>(d?document.body.style.overflow="hidden":document.body.style.overflow="unset",()=>{document.body.style.overflow="unset"}),[d]);const u=o.useMemo(()=>n!==null?l[n]:null,[n,l]),Y=o.useMemo(()=>!d||!u?null:t.jsxRuntimeExports.jsxs("div",{className:"bg-opacity-95 fixed inset-0 z-50 flex items-center justify-center bg-black",children:[u.title&&t.jsxRuntimeExports.jsx("div",{className:"absolute top-4 left-4 z-60",children:t.jsxRuntimeExports.jsx("h2",{className:"bg-opacity-50 rounded-lg bg-black px-4 py-2 text-xl font-semibold text-white",children:u.title})}),t.jsxRuntimeExports.jsxs("div",{className:"absolute top-4 right-4 z-60 flex items-center space-x-2",children:[I.map((e,s)=>t.jsxRuntimeExports.jsx("button",{onClick:()=>e.onClick(u),className:"bg-opacity-50 hover:bg-opacity-70 rounded-full bg-black p-2 text-white transition-all",title:e.label,children:e.icon},s)),t.jsxRuntimeExports.jsx("button",{onClick:k,className:"bg-opacity-50 hover:bg-opacity-70 rounded-full bg-black p-2 text-white transition-all",title:"Close (Esc)",children:t.jsxRuntimeExports.jsx(J,{size:20})})]}),q.lodashExports.isNumber(n)&&n>0&&t.jsxRuntimeExports.jsx("button",{onClick:v,className:"bg-opacity-50 hover:bg-opacity-70 absolute top-1/2 left-4 z-60 -translate-y-1/2 rounded-full bg-black p-3 text-white transition-all",title:"Previous (←)",children:t.jsxRuntimeExports.jsx(G,{size:24})}),q.lodashExports.isNumber(n)&&n<l.length-1&&t.jsxRuntimeExports.jsx("button",{onClick:w,className:"bg-opacity-50 hover:bg-opacity-70 absolute top-1/2 right-4 z-60 -translate-y-1/2 rounded-full bg-black p-3 text-white transition-all",title:"Next (→)",children:t.jsxRuntimeExports.jsx(H,{size:24})}),t.jsxRuntimeExports.jsx("div",{className:"flex max-h-full max-w-full items-center justify-center overflow-hidden p-8 select-none",onMouseDown:z,onMouseMove:L,onMouseUp:$,onMouseLeave:D,onTouchStart:S,onTouchMove:_,onTouchEnd:T,style:{cursor:i?"grabbing":"grab"},children:t.jsxRuntimeExports.jsx("img",{src:u.src,alt:u.alt||`Image ${n}`,className:"object-contain transition-transform duration-100 ease-out",style:{transform:`scale(${g}) rotate(${N}deg) translate(${a.x/g}px, ${a.y/g}px)`,willChange:i?"transform":"auto",maxWidth:"none",maxHeight:"none",width:"auto",height:"auto"},draggable:!1})}),t.jsxRuntimeExports.jsx("div",{className:"bg-opacity-50 absolute bottom-4 left-1/2 flex max-w-full -translate-x-1/2 space-x-2 overflow-x-auto rounded-lg bg-black p-3",children:l.map((e,s)=>t.jsxRuntimeExports.jsx("div",{className:`h-16 w-16 flex-shrink-0 cursor-pointer overflow-hidden rounded border-2 transition-all ${s===n?"border-white":"border-transparent hover:border-gray-400"}`,onClick:()=>f(s),children:t.jsxRuntimeExports.jsx("img",{src:e.thumbnail||e.src,alt:e.alt||`Thumbnail ${s+1}`,className:"h-full w-full object-cover"})},e.id))})]}),[d,u,I,k,n,v,l,w,z,L,$,D,S,_,T,i,g,N,a.x,a.y]);return t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsx("div",{...X,className:P.mo("grid grid-cols-1 gap-4 p-4 sm:grid-cols-3 lg:grid-cols-3 xl:grid-cols-3 2xl:grid-cols-4",c),children:l.map((e,s)=>t.jsxRuntimeExports.jsxs("div",{className:"relative",children:[t.jsxRuntimeExports.jsx(ne,{image:e,index:s,onClick:F},e.id),b&&e.title&&t.jsxRuntimeExports.jsx("div",{className:"bg-bg/50 text-secondary absolute bottom-0 flex min-h-10 w-full items-center justify-center",children:e.title})]}))}),Y]})},ce=o.memo(le);exports.MyGallery=ce;
36
+ */const se=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],le=k.createLucideIcon("zoom-out",se);var S={exports:{}},re=S.exports,U;function ae(){return U||(U=1,function(i,y){(function(d,j){j()})(re,function(){function d(e,t){return typeof t>"u"?t={autoBom:!1}:typeof t!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\uFEFF",e],{type:e.type}):e}function j(e,t,x){var o=new XMLHttpRequest;o.open("GET",e),o.responseType="blob",o.onload=function(){g(o.response,t,x)},o.onerror=function(){console.error("could not download file")},o.send()}function R(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch{}return 200<=t.status&&299>=t.status}function a(e){try{e.dispatchEvent(new MouseEvent("click"))}catch{var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var u=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof L.commonjsGlobal=="object"&&L.commonjsGlobal.global===L.commonjsGlobal?L.commonjsGlobal:void 0,p=u.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=u.saveAs||(typeof window!="object"||window!==u?function(){}:"download"in HTMLAnchorElement.prototype&&!p?function(e,t,x){var o=u.URL||u.webkitURL,r=document.createElement("a");t=t||e.name||"download",r.download=t,r.rel="noopener",typeof e=="string"?(r.href=e,r.origin===location.origin?a(r):R(r.href)?j(e,t,x):a(r,r.target="_blank")):(r.href=o.createObjectURL(e),setTimeout(function(){o.revokeObjectURL(r.href)},4e4),setTimeout(function(){a(r)},0))}:"msSaveOrOpenBlob"in navigator?function(e,t,x){if(t=t||e.name||"download",typeof e!="string")navigator.msSaveOrOpenBlob(d(e,x),t);else if(R(e))j(e,t,x);else{var o=document.createElement("a");o.href=e,o.target="_blank",setTimeout(function(){a(o)})}}:function(e,t,x,o){if(o=o||open("","_blank"),o&&(o.document.title=o.document.body.innerText="downloading..."),typeof e=="string")return j(e,t,x);var r=e.type==="application/octet-stream",b=/constructor/i.test(u.HTMLElement)||u.safari,m=/CriOS\/[\d]+/.test(navigator.userAgent);if((m||r&&b||p)&&typeof FileReader<"u"){var f=new FileReader;f.onloadend=function(){var v=f.result;v=m?v:v.replace(/^data:[^;]*;/,"data:attachment/file;"),o?o.location.href=v:location=v,o=null},f.readAsDataURL(e)}else{var h=u.URL||u.webkitURL,E=h.createObjectURL(e);o?o.location=E:location.href=E,o=null,setTimeout(function(){h.revokeObjectURL(E)},4e4)}});u.saveAs=g.saveAs=g,i.exports=g})}(S)),S.exports}var ce=ae();const ie=(i,y)=>[{icon:s.jsxRuntimeExports.jsx(ne,{size:20}),onClick:()=>i(d=>Math.min(d*1.5,5)),label:"Zoom In"},{icon:s.jsxRuntimeExports.jsx(le,{size:20}),onClick:()=>i(d=>Math.max(d/1.5,.5)),label:"Zoom Out"},{icon:s.jsxRuntimeExports.jsx(Q,{size:20}),onClick:()=>y(d=>(d+90)%360),label:"Rotate"},{icon:s.jsxRuntimeExports.jsx(W,{size:20}),onClick:d=>{ce.saveAs(d.src,d.title)},label:"Download"}],ue=l.memo(({image:i,index:y,onClick:d})=>s.jsxRuntimeExports.jsx("div",{className:"aspect-auto max-h-60 cursor-pointer overflow-hidden rounded-lg bg-gray-200 transition-opacity hover:opacity-80",onClick:()=>d(y),children:s.jsxRuntimeExports.jsx("img",{src:i.thumbnail||i.src,alt:i.alt||`Image ${y+1}`,className:"h-full w-full object-cover"})},i.id)),de=({images:i,actionButtons:y=[],className:d,hasInfo:j,...R})=>{const[a,u]=l.useState(null),[p,g]=l.useState(!1),[e,t]=l.useState(1),[x,o]=l.useState(0),[r,b]=l.useState({x:0,y:0}),[m,f]=l.useState(!1),[h,E]=l.useState({x:0,y:0}),v=l.useMemo(()=>ie(t,o),[t,o]),T=l.useMemo(()=>[...v,...y],[v,y]),X=l.useCallback(n=>{u(n),g(!0),t(1),o(0),b({x:0,y:0})},[]),M=l.useCallback(()=>{g(!1),u(null),t(1),o(0),b({x:0,y:0})},[]),N=l.useCallback(()=>{a!==null&&a>0&&(u(a-1),t(1),o(0),b({x:0,y:0}))},[a]),C=l.useCallback(()=>{a!==null&&a<i.length-1&&(u(a+1),t(1),o(0),b({x:0,y:0}))},[a,i.length]),A=l.useCallback(n=>{f(!0),E({x:n.clientX-r.x,y:n.clientY-r.y}),n.preventDefault()},[r]),D=l.useCallback(n=>{if(m){const c=n.clientX-h.x,_=n.clientY-h.y;b({x:c,y:_})}},[m,h]),I=l.useCallback(()=>{f(!1)},[]),z=l.useCallback(()=>{f(!1)},[]),F=l.useCallback(n=>{const c=n.touches[0];f(!0),E({x:c.clientX-r.x,y:c.clientY-r.y}),n.preventDefault()},[r]),$=l.useCallback(n=>{if(m){const c=n.touches[0],_=c.clientX-h.x,H=c.clientY-h.y;b({x:_,y:H})}},[m,h]),q=l.useCallback(()=>{f(!1)},[]);l.useEffect(()=>{const n=c=>{if(p)switch(c.key){case"Escape":M();break;case"ArrowLeft":c.preventDefault(),N();break;case"ArrowRight":c.preventDefault(),C();break}};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[p,N,C,M]),l.useEffect(()=>(p?document.body.style.overflow="hidden":document.body.style.overflow="unset",()=>{document.body.style.overflow="unset"}),[p]);const w=l.useMemo(()=>a!==null?i[a]:null,[a,i]),G=l.useMemo(()=>!p||!w?null:s.jsxRuntimeExports.jsxs("div",{className:"bg-opacity-95 bg-bg fixed inset-0 z-50 flex items-center justify-center",children:[w.title&&s.jsxRuntimeExports.jsx("div",{className:"absolute top-4 left-4 z-60",children:s.jsxRuntimeExports.jsx("h2",{className:"bg-opacity-50 bg-bg text-secondary rounded-lg px-4 py-2 text-xl font-semibold",children:w.title})}),s.jsxRuntimeExports.jsxs("div",{className:"absolute top-4 right-4 z-60 flex items-center space-x-2",children:[T.map((n,c)=>s.jsxRuntimeExports.jsx("button",{onClick:()=>n.onClick(w),className:"bg-opacity-50 hover:bg-opacity-70 bg-bg text-secondary rounded-full p-2 transition-all",title:n.label,children:n.icon},c)),s.jsxRuntimeExports.jsx("button",{onClick:M,className:"bg-opacity-50 hover:bg-opacity-70 bg-bg text-secondary rounded-full p-2 transition-all",title:"Close (Esc)",children:s.jsxRuntimeExports.jsx(te,{size:20})})]}),O.lodashExports.isNumber(a)&&a>0&&s.jsxRuntimeExports.jsx("button",{onClick:N,className:"bg-opacity-50 hover:bg-opacity-70 bg-bg text-secondary absolute top-1/2 left-4 z-60 -translate-y-1/2 rounded-full p-3 transition-all",title:"Previous (←)",children:s.jsxRuntimeExports.jsx(P,{size:24})}),O.lodashExports.isNumber(a)&&a<i.length-1&&s.jsxRuntimeExports.jsx("button",{onClick:C,className:"bg-opacity-0 hover:bg-opacity-100 text-secondary absolute top-1/2 right-4 z-60 -translate-y-1/2 rounded-full bg-black p-3 transition-all",title:"Next (→)",children:s.jsxRuntimeExports.jsx(K,{size:24})}),s.jsxRuntimeExports.jsx("div",{className:"flex max-h-full max-w-full items-center justify-center overflow-hidden p-8 select-none",onMouseDown:A,onMouseMove:D,onMouseUp:I,onMouseLeave:z,onTouchStart:F,onTouchMove:$,onTouchEnd:q,style:{cursor:m?"grabbing":"grab"},children:s.jsxRuntimeExports.jsx("img",{src:w.src,alt:w.alt||`Image ${a}`,className:"object-contain transition-transform duration-100 ease-out",style:{transform:`scale(${e}) rotate(${x}deg) translate(${r.x/e}px, ${r.y/e}px)`,willChange:m?"transform":"auto",maxWidth:"none",maxHeight:"none",width:"auto",height:"auto"},draggable:!1})}),s.jsxRuntimeExports.jsx("div",{className:"bg-bg absolute bottom-0 flex w-full items-center justify-center",children:s.jsxRuntimeExports.jsx("div",{className:"flex space-x-2 overflow-x-auto p-3",children:i.map((n,c)=>s.jsxRuntimeExports.jsx("div",{className:`h-16 w-16 flex-shrink-0 cursor-pointer overflow-hidden rounded border-2 transition-all ${c===a?"border-white":"border-transparent hover:border-gray-400"}`,onClick:()=>u(c),children:s.jsxRuntimeExports.jsx("img",{src:n.thumbnail||n.src,alt:n.alt||`Thumbnail ${c+1}`,className:"h-full w-full object-cover"})},n.id))})})]}),[p,w,T,M,a,N,i,C,A,D,I,z,F,$,q,m,e,x,r.x,r.y]);return s.jsxRuntimeExports.jsxs("div",{className:"w-full",children:[s.jsxRuntimeExports.jsx("div",{...R,className:B.mo("grid grid-cols-1 gap-4 p-4 sm:grid-cols-3 lg:grid-cols-3 xl:grid-cols-3 2xl:grid-cols-4",d),children:i.map((n,c)=>s.jsxRuntimeExports.jsxs("div",{className:"relative",children:[s.jsxRuntimeExports.jsx(ue,{image:n,index:c,onClick:X},n.id),j&&n.title&&s.jsxRuntimeExports.jsx("div",{className:"bg-bg/50 text-secondary absolute bottom-0 flex min-h-10 w-full items-center justify-center",children:n.title})]}))}),G]})},xe=l.memo(de);exports.MyGallery=xe;
@@ -1,271 +1,344 @@
1
- import { j as t } from "../../jsx-runtime-C5mzlN2N.js";
2
- import { memo as P, useState as u, useMemo as M, useCallback as c, useEffect as Y } from "react";
3
- import { l as A } from "../../lodash-CYNxjS-I.js";
4
- import { m as O } from "../../utils-B6fNqzRf-B1_jG1K7.js";
5
- import { c as h } from "../../createLucideIcon-B950nf2d.js";
1
+ import { j as s } from "../../jsx-runtime-C5mzlN2N.js";
2
+ import { memo as Y, useState as k, useMemo as R, useCallback as f, useEffect as H } from "react";
3
+ import { l as q } from "../../lodash-CYNxjS-I.js";
4
+ import { m as K } from "../../utils-B6fNqzRf-B1_jG1K7.js";
5
+ import { c as T } from "../../_commonjsHelpers-DaMA6jEr.js";
6
+ import { c as N } from "../../createLucideIcon-B950nf2d.js";
6
7
  /**
7
8
  * @license lucide-react v0.511.0 - ISC
8
9
  *
9
10
  * This source code is licensed under the ISC license.
10
11
  * See the LICENSE file in the root directory of this source tree.
11
12
  */
12
- const U = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]], V = h("chevron-left", U);
13
+ const V = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]], W = N("chevron-left", V);
13
14
  /**
14
15
  * @license lucide-react v0.511.0 - ISC
15
16
  *
16
17
  * This source code is licensed under the ISC license.
17
18
  * See the LICENSE file in the root directory of this source tree.
18
19
  */
19
- const K = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]], W = h("chevron-right", K);
20
+ const J = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]], Q = N("chevron-right", J);
20
21
  /**
21
22
  * @license lucide-react v0.511.0 - ISC
22
23
  *
23
24
  * This source code is licensed under the ISC license.
24
25
  * See the LICENSE file in the root directory of this source tree.
25
26
  */
26
- const B = [
27
+ const ee = [
27
28
  ["path", { d: "M12 15V3", key: "m9g1x1" }],
28
29
  ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }],
29
30
  ["path", { d: "m7 10 5 5 5-5", key: "brsn70" }]
30
- ], J = h("download", B);
31
+ ], te = N("download", ee);
31
32
  /**
32
33
  * @license lucide-react v0.511.0 - ISC
33
34
  *
34
35
  * This source code is licensed under the ISC license.
35
36
  * See the LICENSE file in the root directory of this source tree.
36
37
  */
37
- const Q = [
38
+ const oe = [
38
39
  ["path", { d: "M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8", key: "1p45f6" }],
39
40
  ["path", { d: "M21 3v5h-5", key: "1q7to0" }]
40
- ], ee = h("rotate-cw", Q);
41
+ ], ne = N("rotate-cw", oe);
41
42
  /**
42
43
  * @license lucide-react v0.511.0 - ISC
43
44
  *
44
45
  * This source code is licensed under the ISC license.
45
46
  * See the LICENSE file in the root directory of this source tree.
46
47
  */
47
- const te = [
48
+ const se = [
48
49
  ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
49
50
  ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
50
- ], oe = h("x", te);
51
+ ], le = N("x", se);
51
52
  /**
52
53
  * @license lucide-react v0.511.0 - ISC
53
54
  *
54
55
  * This source code is licensed under the ISC license.
55
56
  * See the LICENSE file in the root directory of this source tree.
56
57
  */
57
- const ne = [
58
+ const ae = [
58
59
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
59
60
  ["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
60
61
  ["line", { x1: "11", x2: "11", y1: "8", y2: "14", key: "1vmskp" }],
61
62
  ["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
62
- ], le = h("zoom-in", ne);
63
+ ], re = N("zoom-in", ae);
63
64
  /**
64
65
  * @license lucide-react v0.511.0 - ISC
65
66
  *
66
67
  * This source code is licensed under the ISC license.
67
68
  * See the LICENSE file in the root directory of this source tree.
68
69
  */
69
- const se = [
70
+ const ce = [
70
71
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
71
72
  ["line", { x1: "21", x2: "16.65", y1: "21", y2: "16.65", key: "13gj7c" }],
72
73
  ["line", { x1: "8", x2: "14", y1: "11", y2: "11", key: "durymu" }]
73
- ], ce = h("zoom-out", se), ae = (l, r) => [
74
+ ], ie = N("zoom-out", ce);
75
+ var S = { exports: {} }, ue = S.exports, B;
76
+ function de() {
77
+ return B || (B = 1, function(c, x) {
78
+ (function(u, w) {
79
+ w();
80
+ })(ue, function() {
81
+ function u(e, t) {
82
+ return typeof t > "u" ? t = { autoBom: !1 } : typeof t != "object" && (console.warn("Deprecated: Expected third argument to be a object"), t = { autoBom: !t }), t.autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type) ? new Blob(["\uFEFF", e], { type: e.type }) : e;
83
+ }
84
+ function w(e, t, d) {
85
+ var o = new XMLHttpRequest();
86
+ o.open("GET", e), o.responseType = "blob", o.onload = function() {
87
+ g(o.response, t, d);
88
+ }, o.onerror = function() {
89
+ console.error("could not download file");
90
+ }, o.send();
91
+ }
92
+ function E(e) {
93
+ var t = new XMLHttpRequest();
94
+ t.open("HEAD", e, !1);
95
+ try {
96
+ t.send();
97
+ } catch {
98
+ }
99
+ return 200 <= t.status && 299 >= t.status;
100
+ }
101
+ function a(e) {
102
+ try {
103
+ e.dispatchEvent(new MouseEvent("click"));
104
+ } catch {
105
+ var t = document.createEvent("MouseEvents");
106
+ t.initMouseEvent("click", !0, !0, window, 0, 0, 0, 80, 20, !1, !1, !1, !1, 0, null), e.dispatchEvent(t);
107
+ }
108
+ }
109
+ var i = typeof window == "object" && window.window === window ? window : typeof self == "object" && self.self === self ? self : typeof T == "object" && T.global === T ? T : void 0, p = i.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent), g = i.saveAs || (typeof window != "object" || window !== i ? function() {
110
+ } : "download" in HTMLAnchorElement.prototype && !p ? function(e, t, d) {
111
+ var o = i.URL || i.webkitURL, l = document.createElement("a");
112
+ t = t || e.name || "download", l.download = t, l.rel = "noopener", typeof e == "string" ? (l.href = e, l.origin === location.origin ? a(l) : E(l.href) ? w(e, t, d) : a(l, l.target = "_blank")) : (l.href = o.createObjectURL(e), setTimeout(function() {
113
+ o.revokeObjectURL(l.href);
114
+ }, 4e4), setTimeout(function() {
115
+ a(l);
116
+ }, 0));
117
+ } : "msSaveOrOpenBlob" in navigator ? function(e, t, d) {
118
+ if (t = t || e.name || "download", typeof e != "string") navigator.msSaveOrOpenBlob(u(e, d), t);
119
+ else if (E(e)) w(e, t, d);
120
+ else {
121
+ var o = document.createElement("a");
122
+ o.href = e, o.target = "_blank", setTimeout(function() {
123
+ a(o);
124
+ });
125
+ }
126
+ } : function(e, t, d, o) {
127
+ if (o = o || open("", "_blank"), o && (o.document.title = o.document.body.innerText = "downloading..."), typeof e == "string") return w(e, t, d);
128
+ var l = e.type === "application/octet-stream", v = /constructor/i.test(i.HTMLElement) || i.safari, h = /CriOS\/[\d]+/.test(navigator.userAgent);
129
+ if ((h || l && v || p) && typeof FileReader < "u") {
130
+ var m = new FileReader();
131
+ m.onloadend = function() {
132
+ var b = m.result;
133
+ b = h ? b : b.replace(/^data:[^;]*;/, "data:attachment/file;"), o ? o.location.href = b : location = b, o = null;
134
+ }, m.readAsDataURL(e);
135
+ } else {
136
+ var y = i.URL || i.webkitURL, M = y.createObjectURL(e);
137
+ o ? o.location = M : location.href = M, o = null, setTimeout(function() {
138
+ y.revokeObjectURL(M);
139
+ }, 4e4);
140
+ }
141
+ });
142
+ i.saveAs = g.saveAs = g, c.exports = g;
143
+ });
144
+ }(S)), S.exports;
145
+ }
146
+ var fe = de();
147
+ const he = (c, x) => [
74
148
  {
75
- icon: /* @__PURE__ */ t.jsx(le, { size: 20 }),
76
- onClick: () => l((s) => Math.min(s * 1.5, 5)),
149
+ icon: /* @__PURE__ */ s.jsx(re, { size: 20 }),
150
+ onClick: () => c((u) => Math.min(u * 1.5, 5)),
77
151
  label: "Zoom In"
78
152
  },
79
153
  {
80
- icon: /* @__PURE__ */ t.jsx(ce, { size: 20 }),
81
- onClick: () => l((s) => Math.max(s / 1.5, 0.5)),
154
+ icon: /* @__PURE__ */ s.jsx(ie, { size: 20 }),
155
+ onClick: () => c((u) => Math.max(u / 1.5, 0.5)),
82
156
  label: "Zoom Out"
83
157
  },
84
158
  {
85
- icon: /* @__PURE__ */ t.jsx(ee, { size: 20 }),
86
- onClick: () => r((s) => (s + 90) % 360),
159
+ icon: /* @__PURE__ */ s.jsx(ne, { size: 20 }),
160
+ onClick: () => x((u) => (u + 90) % 360),
87
161
  label: "Rotate"
88
162
  },
89
163
  {
90
- icon: /* @__PURE__ */ t.jsx(J, { size: 20 }),
91
- onClick: (s) => {
92
- const p = document.createElement("a");
93
- p.href = s.src, p.download = `image-${s.id}`, p.click();
164
+ icon: /* @__PURE__ */ s.jsx(te, { size: 20 }),
165
+ onClick: (u) => {
166
+ fe.saveAs(u.src, u.title);
94
167
  },
95
168
  label: "Download"
96
169
  }
97
- ], re = P(
170
+ ], pe = Y(
98
171
  ({
99
- image: l,
100
- index: r,
101
- onClick: s
102
- }) => /* @__PURE__ */ t.jsx(
172
+ image: c,
173
+ index: x,
174
+ onClick: u
175
+ }) => /* @__PURE__ */ s.jsx(
103
176
  "div",
104
177
  {
105
- className: "aspect-square cursor-pointer overflow-hidden rounded-lg bg-gray-200 transition-opacity hover:opacity-80",
106
- onClick: () => s(r),
107
- children: /* @__PURE__ */ t.jsx(
178
+ className: "aspect-auto max-h-60 cursor-pointer overflow-hidden rounded-lg bg-gray-200 transition-opacity hover:opacity-80",
179
+ onClick: () => u(x),
180
+ children: /* @__PURE__ */ s.jsx(
108
181
  "img",
109
182
  {
110
- src: l.thumbnail || l.src,
111
- alt: l.alt || `Image ${r + 1}`,
183
+ src: c.thumbnail || c.src,
184
+ alt: c.alt || `Image ${x + 1}`,
112
185
  className: "h-full w-full object-cover"
113
186
  }
114
187
  )
115
188
  },
116
- l.id
189
+ c.id
117
190
  )
118
- ), ie = ({
119
- images: l,
120
- actionButtons: r = [],
121
- className: s,
122
- hasInfo: p,
123
- ...Z
191
+ ), me = ({
192
+ images: c,
193
+ actionButtons: x = [],
194
+ className: u,
195
+ hasInfo: w,
196
+ ...E
124
197
  }) => {
125
- const [n, g] = u(null), [x, z] = u(!1), [k, y] = u(1), [$, m] = u(0), [a, b] = u({ x: 0, y: 0 }), [i, v] = u(!1), [f, D] = u({ x: 0, y: 0 }), _ = M(
126
- () => ae(y, m),
127
- [y, m]
128
- ), E = M(
129
- () => [..._, ...r],
130
- [_, r]
131
- ), q = c((e) => {
132
- g(e), z(!0), y(1), m(0), b({ x: 0, y: 0 });
133
- }, []), w = c(() => {
134
- z(!1), g(null), y(1), m(0), b({ x: 0, y: 0 });
135
- }, []), j = c(() => {
136
- n !== null && n > 0 && (g(n - 1), y(1), m(0), b({ x: 0, y: 0 }));
137
- }, [n]), N = c(() => {
138
- n !== null && n < l.length - 1 && (g(n + 1), y(1), m(0), b({ x: 0, y: 0 }));
139
- }, [n, l.length]), I = c(
140
- (e) => {
141
- v(!0), D({
142
- x: e.clientX - a.x,
143
- y: e.clientY - a.y
144
- }), e.preventDefault();
198
+ const [a, i] = k(null), [p, g] = k(!1), [e, t] = k(1), [d, o] = k(0), [l, v] = k({ x: 0, y: 0 }), [h, m] = k(!1), [y, M] = k({ x: 0, y: 0 }), b = R(
199
+ () => he(t, o),
200
+ [t, o]
201
+ ), D = R(
202
+ () => [...b, ...x],
203
+ [b, x]
204
+ ), G = f((n) => {
205
+ i(n), g(!0), t(1), o(0), v({ x: 0, y: 0 });
206
+ }, []), _ = f(() => {
207
+ g(!1), i(null), t(1), o(0), v({ x: 0, y: 0 });
208
+ }, []), L = f(() => {
209
+ a !== null && a > 0 && (i(a - 1), t(1), o(0), v({ x: 0, y: 0 }));
210
+ }, [a]), C = f(() => {
211
+ a !== null && a < c.length - 1 && (i(a + 1), t(1), o(0), v({ x: 0, y: 0 }));
212
+ }, [a, c.length]), z = f(
213
+ (n) => {
214
+ m(!0), M({
215
+ x: n.clientX - l.x,
216
+ y: n.clientY - l.y
217
+ }), n.preventDefault();
145
218
  },
146
- [a]
147
- ), T = c(
148
- (e) => {
149
- if (i) {
150
- const o = e.clientX - f.x, C = e.clientY - f.y;
151
- b({
152
- x: o,
153
- y: C
219
+ [l]
220
+ ), F = f(
221
+ (n) => {
222
+ if (h) {
223
+ const r = n.clientX - y.x, A = n.clientY - y.y;
224
+ v({
225
+ x: r,
226
+ y: A
154
227
  });
155
228
  }
156
229
  },
157
- [i, f]
158
- ), L = c(() => {
159
- v(!1);
160
- }, []), X = c(() => {
161
- v(!1);
162
- }, []), F = c(
163
- (e) => {
164
- const o = e.touches[0];
165
- v(!0), D({
166
- x: o.clientX - a.x,
167
- y: o.clientY - a.y
168
- }), e.preventDefault();
230
+ [h, y]
231
+ ), $ = f(() => {
232
+ m(!1);
233
+ }, []), O = f(() => {
234
+ m(!1);
235
+ }, []), U = f(
236
+ (n) => {
237
+ const r = n.touches[0];
238
+ m(!0), M({
239
+ x: r.clientX - l.x,
240
+ y: r.clientY - l.y
241
+ }), n.preventDefault();
169
242
  },
170
- [a]
171
- ), R = c(
172
- (e) => {
173
- if (i) {
174
- const o = e.touches[0], C = o.clientX - f.x, H = o.clientY - f.y;
175
- b({
176
- x: C,
177
- y: H
243
+ [l]
244
+ ), I = f(
245
+ (n) => {
246
+ if (h) {
247
+ const r = n.touches[0], A = r.clientX - y.x, Z = r.clientY - y.y;
248
+ v({
249
+ x: A,
250
+ y: Z
178
251
  });
179
252
  }
180
253
  },
181
- [i, f]
182
- ), S = c(() => {
183
- v(!1);
254
+ [h, y]
255
+ ), X = f(() => {
256
+ m(!1);
184
257
  }, []);
185
- Y(() => {
186
- const e = (o) => {
187
- if (x)
188
- switch (o.key) {
258
+ H(() => {
259
+ const n = (r) => {
260
+ if (p)
261
+ switch (r.key) {
189
262
  case "Escape":
190
- w();
263
+ _();
191
264
  break;
192
265
  case "ArrowLeft":
193
- o.preventDefault(), j();
266
+ r.preventDefault(), L();
194
267
  break;
195
268
  case "ArrowRight":
196
- o.preventDefault(), N();
269
+ r.preventDefault(), C();
197
270
  break;
198
271
  }
199
272
  };
200
- return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
201
- }, [x, j, N, w]), Y(() => (x ? document.body.style.overflow = "hidden" : document.body.style.overflow = "unset", () => {
273
+ return document.addEventListener("keydown", n), () => document.removeEventListener("keydown", n);
274
+ }, [p, L, C, _]), H(() => (p ? document.body.style.overflow = "hidden" : document.body.style.overflow = "unset", () => {
202
275
  document.body.style.overflow = "unset";
203
- }), [x]);
204
- const d = M(
205
- () => n !== null ? l[n] : null,
206
- [n, l]
207
- ), G = M(() => !x || !d ? null : /* @__PURE__ */ t.jsxs("div", { className: "bg-opacity-95 fixed inset-0 z-50 flex items-center justify-center bg-black", children: [
208
- d.title && /* @__PURE__ */ t.jsx("div", { className: "absolute top-4 left-4 z-60", children: /* @__PURE__ */ t.jsx("h2", { className: "bg-opacity-50 rounded-lg bg-black px-4 py-2 text-xl font-semibold text-white", children: d.title }) }),
209
- /* @__PURE__ */ t.jsxs("div", { className: "absolute top-4 right-4 z-60 flex items-center space-x-2", children: [
210
- E.map((e, o) => /* @__PURE__ */ t.jsx(
276
+ }), [p]);
277
+ const j = R(
278
+ () => a !== null ? c[a] : null,
279
+ [a, c]
280
+ ), P = R(() => !p || !j ? null : /* @__PURE__ */ s.jsxs("div", { className: "bg-opacity-95 bg-bg fixed inset-0 z-50 flex items-center justify-center", children: [
281
+ j.title && /* @__PURE__ */ s.jsx("div", { className: "absolute top-4 left-4 z-60", children: /* @__PURE__ */ s.jsx("h2", { className: "bg-opacity-50 bg-bg text-secondary rounded-lg px-4 py-2 text-xl font-semibold", children: j.title }) }),
282
+ /* @__PURE__ */ s.jsxs("div", { className: "absolute top-4 right-4 z-60 flex items-center space-x-2", children: [
283
+ D.map((n, r) => /* @__PURE__ */ s.jsx(
211
284
  "button",
212
285
  {
213
- onClick: () => e.onClick(d),
214
- className: "bg-opacity-50 hover:bg-opacity-70 rounded-full bg-black p-2 text-white transition-all",
215
- title: e.label,
216
- children: e.icon
286
+ onClick: () => n.onClick(j),
287
+ className: "bg-opacity-50 hover:bg-opacity-70 bg-bg text-secondary rounded-full p-2 transition-all",
288
+ title: n.label,
289
+ children: n.icon
217
290
  },
218
- o
291
+ r
219
292
  )),
220
- /* @__PURE__ */ t.jsx(
293
+ /* @__PURE__ */ s.jsx(
221
294
  "button",
222
295
  {
223
- onClick: w,
224
- className: "bg-opacity-50 hover:bg-opacity-70 rounded-full bg-black p-2 text-white transition-all",
296
+ onClick: _,
297
+ className: "bg-opacity-50 hover:bg-opacity-70 bg-bg text-secondary rounded-full p-2 transition-all",
225
298
  title: "Close (Esc)",
226
- children: /* @__PURE__ */ t.jsx(oe, { size: 20 })
299
+ children: /* @__PURE__ */ s.jsx(le, { size: 20 })
227
300
  }
228
301
  )
229
302
  ] }),
230
- A.isNumber(n) && n > 0 && /* @__PURE__ */ t.jsx(
303
+ q.isNumber(a) && a > 0 && /* @__PURE__ */ s.jsx(
231
304
  "button",
232
305
  {
233
- onClick: j,
234
- className: "bg-opacity-50 hover:bg-opacity-70 absolute top-1/2 left-4 z-60 -translate-y-1/2 rounded-full bg-black p-3 text-white transition-all",
306
+ onClick: L,
307
+ className: "bg-opacity-50 hover:bg-opacity-70 bg-bg text-secondary absolute top-1/2 left-4 z-60 -translate-y-1/2 rounded-full p-3 transition-all",
235
308
  title: "Previous (←)",
236
- children: /* @__PURE__ */ t.jsx(V, { size: 24 })
309
+ children: /* @__PURE__ */ s.jsx(W, { size: 24 })
237
310
  }
238
311
  ),
239
- A.isNumber(n) && n < l.length - 1 && /* @__PURE__ */ t.jsx(
312
+ q.isNumber(a) && a < c.length - 1 && /* @__PURE__ */ s.jsx(
240
313
  "button",
241
314
  {
242
- onClick: N,
243
- className: "bg-opacity-50 hover:bg-opacity-70 absolute top-1/2 right-4 z-60 -translate-y-1/2 rounded-full bg-black p-3 text-white transition-all",
315
+ onClick: C,
316
+ className: "bg-opacity-0 hover:bg-opacity-100 text-secondary absolute top-1/2 right-4 z-60 -translate-y-1/2 rounded-full bg-black p-3 transition-all",
244
317
  title: "Next (→)",
245
- children: /* @__PURE__ */ t.jsx(W, { size: 24 })
318
+ children: /* @__PURE__ */ s.jsx(Q, { size: 24 })
246
319
  }
247
320
  ),
248
- /* @__PURE__ */ t.jsx(
321
+ /* @__PURE__ */ s.jsx(
249
322
  "div",
250
323
  {
251
324
  className: "flex max-h-full max-w-full items-center justify-center overflow-hidden p-8 select-none",
252
- onMouseDown: I,
253
- onMouseMove: T,
254
- onMouseUp: L,
255
- onMouseLeave: X,
256
- onTouchStart: F,
257
- onTouchMove: R,
258
- onTouchEnd: S,
259
- style: { cursor: i ? "grabbing" : "grab" },
260
- children: /* @__PURE__ */ t.jsx(
325
+ onMouseDown: z,
326
+ onMouseMove: F,
327
+ onMouseUp: $,
328
+ onMouseLeave: O,
329
+ onTouchStart: U,
330
+ onTouchMove: I,
331
+ onTouchEnd: X,
332
+ style: { cursor: h ? "grabbing" : "grab" },
333
+ children: /* @__PURE__ */ s.jsx(
261
334
  "img",
262
335
  {
263
- src: d.src,
264
- alt: d.alt || `Image ${n}`,
336
+ src: j.src,
337
+ alt: j.alt || `Image ${a}`,
265
338
  className: "object-contain transition-transform duration-100 ease-out",
266
339
  style: {
267
- transform: `scale(${k}) rotate(${$}deg) translate(${a.x / k}px, ${a.y / k}px)`,
268
- willChange: i ? "transform" : "auto",
340
+ transform: `scale(${e}) rotate(${d}deg) translate(${l.x / e}px, ${l.y / e}px)`,
341
+ willChange: h ? "transform" : "auto",
269
342
  maxWidth: "none",
270
343
  maxHeight: "none",
271
344
  width: "auto",
@@ -276,76 +349,82 @@ const se = [
276
349
  )
277
350
  }
278
351
  ),
279
- /* @__PURE__ */ t.jsx("div", { className: "bg-opacity-50 absolute bottom-4 left-1/2 flex max-w-full -translate-x-1/2 space-x-2 overflow-x-auto rounded-lg bg-black p-3", children: l.map((e, o) => /* @__PURE__ */ t.jsx(
352
+ /* @__PURE__ */ s.jsx(
280
353
  "div",
281
354
  {
282
- className: `h-16 w-16 flex-shrink-0 cursor-pointer overflow-hidden rounded border-2 transition-all ${o === n ? "border-white" : "border-transparent hover:border-gray-400"}`,
283
- onClick: () => g(o),
284
- children: /* @__PURE__ */ t.jsx(
285
- "img",
355
+ className: "bg-bg absolute bottom-0 flex w-full items-center justify-center",
356
+ children: /* @__PURE__ */ s.jsx("div", { className: "flex space-x-2 overflow-x-auto p-3", children: c.map((n, r) => /* @__PURE__ */ s.jsx(
357
+ "div",
286
358
  {
287
- src: e.thumbnail || e.src,
288
- alt: e.alt || `Thumbnail ${o + 1}`,
289
- className: "h-full w-full object-cover"
290
- }
291
- )
292
- },
293
- e.id
294
- )) })
359
+ className: `h-16 w-16 flex-shrink-0 cursor-pointer overflow-hidden rounded border-2 transition-all ${r === a ? "border-white" : "border-transparent hover:border-gray-400"}`,
360
+ onClick: () => i(r),
361
+ children: /* @__PURE__ */ s.jsx(
362
+ "img",
363
+ {
364
+ src: n.thumbnail || n.src,
365
+ alt: n.alt || `Thumbnail ${r + 1}`,
366
+ className: "h-full w-full object-cover"
367
+ }
368
+ )
369
+ },
370
+ n.id
371
+ )) })
372
+ }
373
+ )
295
374
  ] }), [
296
- x,
297
- d,
298
- E,
299
- w,
300
- n,
375
+ p,
301
376
  j,
302
- l,
303
- N,
304
- I,
305
- T,
377
+ D,
378
+ _,
379
+ a,
306
380
  L,
307
- X,
381
+ c,
382
+ C,
383
+ z,
308
384
  F,
309
- R,
310
- S,
311
- i,
312
- k,
313
385
  $,
314
- a.x,
315
- a.y
386
+ O,
387
+ U,
388
+ I,
389
+ X,
390
+ h,
391
+ e,
392
+ d,
393
+ l.x,
394
+ l.y
316
395
  ]);
317
- return /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
318
- /* @__PURE__ */ t.jsx(
396
+ return /* @__PURE__ */ s.jsxs("div", { className: "w-full", children: [
397
+ /* @__PURE__ */ s.jsx(
319
398
  "div",
320
399
  {
321
- ...Z,
322
- className: O(
400
+ ...E,
401
+ className: K(
323
402
  "grid grid-cols-1 gap-4 p-4 sm:grid-cols-3 lg:grid-cols-3 xl:grid-cols-3 2xl:grid-cols-4",
324
- s
403
+ u
325
404
  ),
326
- children: l.map((e, o) => /* @__PURE__ */ t.jsxs("div", { className: "relative", children: [
327
- /* @__PURE__ */ t.jsx(
328
- re,
405
+ children: c.map((n, r) => /* @__PURE__ */ s.jsxs("div", { className: "relative", children: [
406
+ /* @__PURE__ */ s.jsx(
407
+ pe,
329
408
  {
330
- image: e,
331
- index: o,
332
- onClick: q
409
+ image: n,
410
+ index: r,
411
+ onClick: G
333
412
  },
334
- e.id
413
+ n.id
335
414
  ),
336
- p && e.title && /* @__PURE__ */ t.jsx(
415
+ w && n.title && /* @__PURE__ */ s.jsx(
337
416
  "div",
338
417
  {
339
418
  className: "bg-bg/50 text-secondary absolute bottom-0 flex min-h-10 w-full items-center justify-center",
340
- children: e.title
419
+ children: n.title
341
420
  }
342
421
  )
343
422
  ] }))
344
423
  }
345
424
  ),
346
- G
425
+ P
347
426
  ] });
348
- }, me = P(ie);
427
+ }, je = Y(me);
349
428
  export {
350
- me as MyGallery
429
+ je as MyGallery
351
430
  };
@@ -1,4 +1,4 @@
1
- /*! tailwindcss v4.1.7 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-normal:400;--font-weight-semibold:600;--font-weight-bold:700;--radius-xs:.125rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--primary:var(--color-neutral-950);--secondary:var(--color-neutral-alpha-13);--background:var(--color-neutral-0);--background-secondary:var(--color-neutral-50);--foreground:0 0% 3.9%;--card:0 0% 100%;--card-foreground:0 0% 3.9%;--popover:0 0% 100%;--popover-foreground:0 0% 3.9%;--muted:0 0% 96.1%;--muted-foreground:0 0% 45.1%;--accent:0 0% 96.1%;--accent-foreground:0 0% 9%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--border:#30303033;--input:0 0% 89.8%;--ring:0 0% 3.9%;--chart-1:12 76% 61%;--chart-2:173 58% 39%;--chart-3:197 37% 24%;--chart-4:43 74% 66%;--chart-5:27 87% 67%;--radius-xs:.125rem;--color-neutral-alpha-0:rgb(from var(--color-neutral-alpha-base)r g b/.01%);--color-neutral-alpha-1:rgb(from var(--color-neutral-alpha-base)r g b/3%);--color-neutral-alpha-2:rgb(from var(--color-neutral-alpha-base)r g b/5%);--color-neutral-alpha-3:rgb(from var(--color-neutral-alpha-base)r g b/7%);--color-neutral-alpha-4:rgb(from var(--color-neutral-alpha-base)r g b/10%);--color-neutral-alpha-5:rgb(from var(--color-neutral-alpha-base)r g b/16%);--color-neutral-alpha-6:rgb(from var(--color-neutral-alpha-base)r g b/20%);--color-neutral-alpha-7:rgb(from var(--color-neutral-alpha-base)r g b/24%);--color-neutral-alpha-8:rgb(from var(--color-neutral-alpha-base)r g b/28%);--color-neutral-alpha-9:rgb(from var(--color-neutral-alpha-base)r g b/32%);--color-neutral-alpha-10:rgb(from var(--color-neutral-alpha-base)r g b/40%);--color-neutral-alpha-11:rgb(from var(--color-neutral-alpha-base)r g b/48%);--color-neutral-alpha-12:rgb(from var(--color-neutral-alpha-base)r g b/56%);--color-neutral-alpha-13:rgb(from var(--color-neutral-alpha-base)r g b/64%);--color-neutral-alpha-14:rgb(from var(--color-neutral-alpha-base)r g b/72%);--color-neutral-alpha-15:rgb(from var(--color-neutral-alpha-base)r g b/80%);--color-neutral-alpha-16:rgb(from var(--color-neutral-alpha-base)r g b/88%);--color-neutral-inverted-0:rgb(from var(--color-neutral-base)r g b/.01%);--color-neutral-inverted-1:rgb(from var(--color-neutral-base)r g b/3%);--color-neutral-inverted-2:rgb(from var(--color-neutral-base)r g b/5%);--color-neutral-inverted-3:rgb(from var(--color-neutral-base)r g b/7%);--color-neutral-inverted-4:rgb(from var(--color-neutral-base)r g b/10%);--color-neutral-inverted-5:rgb(from var(--color-neutral-base)r g b/16%);--color-neutral-inverted-6:rgb(from var(--color-neutral-base)r g b/20%);--color-neutral-inverted-7:rgb(from var(--color-neutral-base)r g b/24%);--color-neutral-inverted-8:rgb(from var(--color-neutral-base)r g b/28%);--color-neutral-inverted-9:rgb(from var(--color-neutral-base)r g b/32%);--color-neutral-inverted-10:rgb(from var(--color-neutral-base)r g b/40%);--color-neutral-inverted-11:rgb(from var(--color-neutral-base)r g b/48%);--color-neutral-inverted-12:rgb(from var(--color-neutral-base)r g b/56%);--color-neutral-inverted-13:rgb(from var(--color-neutral-base)r g b/64%);--color-neutral-inverted-14:rgb(from var(--color-neutral-base)r g b/72%);--color-neutral-inverted-15:rgb(from var(--color-neutral-base)r g b/80%);--color-neutral-inverted-16:rgb(from var(--color-neutral-base)r g b/88%);--color-item-primary:var(--color-neutral-950);--color-item-secondary:var(--color-neutral-alpha-13);--color-item-tertiary:var(--color-neutral-alpha-10);--color-item-quaternary:var(--color-neutral-alpha-7);--color-item-primary-primary:var(--color-blue-600);--color-item-primary-primary-hover:var(--color-blue-700);--color-item-primary-primary-active:var(--color-blue-600);--color-item-primary-primary-focus:var(--color-blue-200);--color-item-primary-secondary:var(--color-neutral-0);--color-item-primary-secondary-hover:var(--color-neutral-50);--color-item-primary-secondary-active:var(--color-neutral-100);--color-item-primary-tertiary:var(--color-neutral-alpha-1);--color-item-primary-tertiary-hover:var(--color-neutral-alpha-2);--color-item-primary-tertiary-active:var(--color-neutral-alpha-3);--color-item-primary-ghost:var(--color-neutral-alpha-0);--color-item-primary-ghost-hover:var(--color-neutral-alpha-2);--color-item-primary-ghost-active:var(--color-neutral-alpha-3);--color-item-primary-destructive:var(--color-red-600);--color-item-primary-destructive-hover:var(--color-red-700);--color-item-primary-destructive-active:var(--color-red-600);--color-item-primary-destructive-focus:var(--color-red-200);--color-item-inverted:var(--color-neutral-0);--color-item-inverted-secondary:var(--color-neutral-inverted-13);--color-item-inverted-tertiary:var(--color-neutral-inverted-10);--color-item-inverted-quaternary:var(--color-neutral-inverted-7);--color-item-fixed:#090a0c;--color-item-fixed-secondary:#16191da3;--color-item-fixed-tertiary:#16191d66;--color-item-fixed-quaternary:#16191d3d;--color-item-fixed-inverted:var(--color-neutral-0);--color-item-fixed-inverted-secondary:var(--color-neutral-inverted-13);--color-item-fixed-inverted-tertiary:var(--color-neutral-inverted-10);--color-item-fixed-inverted-quaternary:var(--color-neutral-inverted-7);--color-surface-base-primary:var(--color-neutral-0);--color-surface-base-secondary:var(--color-neutral-50);--color-surface-base-tertiary:var(--color-neutral-100);--color-surface-component-primary:var(--color-neutral-0);--color-surface-component-secondary:var(--color-neutral-0);--color-surface-component-tertiary:var(--color-neutral-0);--color-surface-base-inverted:var(--color-neutral-950);--color-surface-overlay:#343434;--color-surface-muted:var(--color-neutral-0);--color-surface-muted-hover:var(--color-neutral-50);--color-surface-muted-pressed:var(--color-neutral-100);--color-shadows-inner-0:rgba(var(--color-neutral-base),0);--color-shadows-inner-1:#16191d;--color-shadows-inner-2:#16191d;--color-shadows-drop-1:#16191d;--color-shadows-drop-2:#16191d;--color-shadows-drop-3:#16191d;--color-shadows-drop-4:#16191d;--color-shadows-highlight-1:var(--color-blue-200);--color-shadows-highlight-2:var(--color-blue-500);--color-shadows-danger-1:var(--color-red-200);--color-shadows-danger-2:#ee3a3a;--color-shadows-card-border:#16191d;--color-shadows-card-border-2:#16191d;--color-border-base:var(--border);--color-border-alpha-strong:var(--color-neutral-alpha-6);--color-border-alpha-light:var(--color-neutral-alpha-3);--color-border-alpha-subtle:var(--color-neutral-alpha-4);--color-border-light:var(--color-neutral-200)}.dark{--background:var(--color-neutral-0);--background-secondary:var(--color-neutral-alpha-base);--foreground:0 0% 98%;--card:0 0% 3.9%;--card-foreground:0 0% 98%;--popover:0 0% 3.9%;--popover-foreground:0 0% 98%;--secondary:0 0% 14.9%;--secondary-foreground:0 0% 98%;--muted:0 0% 14.9%;--muted-foreground:0 0% 63.9%;--accent:0 0% 14.9%;--accent-foreground:0 0% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:0 0% 98%;--border:#fff3;--input:0 0% 14.9%;--ring:0 0% 83.1%;--chart-1:220 70% 50%;--chart-2:160 60% 45%;--chart-3:30 80% 55%;--chart-4:280 65% 60%;--chart-5:340 75% 55%;--sidebar:var(--background);--sidebar-foreground:#f4f4f5;--sidebar-primary:#1d4ed8;--sidebar-primary-foreground:#fff;--sidebar-accent:#27272a;--sidebar-accent-foreground:#f4f4f5;--sidebar-border:#27272a;--sidebar-ring:#3b82f6;--color-item-secondary:var(--color-neutral-inverted-13);--color-item-primary-tertiary:var(--color-neutral-inverted-2);--color-item-primary-tertiary-hover:var(--color-neutral-inverted-3);--color-item-primary-tertiary-active:var(--color-neutral-inverted-4);--color-surface-base-secondary:var(--color-neutral-inverted-2);--color-surface-base-tertiary:var(--color-neutral-200);--color-surface-component-primary:var(--color-neutral-100);--color-surface-component-secondary:var(--color-neutral-200);--color-surface-component-tertiary:#383838;--color-surface-base-inverted:var(--color-neutral-base);--color-surface-overlay:var(--color-neutral-inverted-3);--color-surface-muted:var(--color-neutral-100);--color-surface-muted-hover:var(--color-neutral-200);--color-surface-muted-pressed:#383838;--color-border-strong:var(--color-neutral-inverted-6);--color-shadow-inner-0:rgb(from var(--color-neutral-base)r g b/12%);--color-shadow-inner-1:rgb(from var(--color-neutral-base)r g b/8%);--color-shadow-inner-2:rgb(from var(--color-neutral-base)r g b/12%);--color-shadow-drop-1:#0000001f;--color-shadow-drop-2:#0003;--color-shadow-drop-3:#00000047;--color-shadow-drop-4:#0000005c;--color-shadow-card-border:rgb(from var(--color-neutral-base)r g b/12%);--color-shadow-card-border-2:rgb(from var(--color-neutral-base)r g b/0%);--color-border-alpha-strong:var(--color-neutral-inverted-6);--color-border-alpha-light:var(--color-neutral-inverted-4);--color-border-alpha-subtle:var(--color-neutral-inverted-5)}:root{--sidebar:var(--background-secondary);--sidebar-foreground:var(--primary);--sidebar-primary:#18181b;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#f4f4f5;--sidebar-accent-foreground:#18181b;--sidebar-border:#e5e7eb;--sidebar-ring:#3b82f6}*{border-color:var(--color-border-alpha-light)}body{background-color:var(--background);font-family:var(--font-family-base);color:var(--color-item-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer components;@layer utilities{.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing)*4)}.right-0{right:calc(var(--spacing)*0)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-auto{bottom:auto}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing)*4)}.z-50{z-index:50}.z-60{z-index:60}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing)*2)}.my-3{margin-block:calc(var(--spacing)*3)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.ml-auto{margin-left:auto}.flex{display:flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1}.size-full{width:100%;height:100%}.h-4{height:calc(var(--spacing)*4)}.h-8{height:calc(var(--spacing)*8)}.h-8\.5{height:calc(var(--spacing)*8.5)}.h-16{height:calc(var(--spacing)*16)}.h-\[1\.2rem\]{height:1.2rem}.h-full{height:100%}.max-h-\[calc\(100vh-2rem\)\]{max-height:calc(100vh - 2rem)}.max-h-full{max-height:100%}.min-h-10{min-height:calc(var(--spacing)*10)}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing)*4)}.w-9{width:calc(var(--spacing)*9)}.w-12{width:calc(var(--spacing)*12)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-17{width:calc(var(--spacing)*17)}.w-\[1\.2rem\]{width:1.2rem}.w-auto{width:auto}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-64{max-width:calc(var(--spacing)*64)}.max-w-\[95\%\]{max-width:95%}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-20{min-width:calc(var(--spacing)*20)}.min-w-40{min-width:calc(var(--spacing)*40)}.min-w-\[170px\]{min-width:170px}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-0{rotate:none}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*0)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*0)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-border-alpha-light{border-color:var(--color-border-alpha-light)}.border-border-alpha-strong{border-color:var(--color-border-alpha-strong)}.border-border-light{border-color:var(--color-border-light)}.border-item-destructive{border-color:var(--color-item-primary-destructive)}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.\!bg-transparent{background-color:#0000!important}.bg-bg\/50{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-bg\/50{background-color:color-mix(in oklab,var(--background)50%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-item-destructive-focus{background-color:var(--color-item-primary-destructive-focus)}.bg-transparent{background-color:#0000}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-2{padding-block:calc(var(--spacing)*2)}.py-8{padding-block:calc(var(--spacing)*8)}.pl-3{padding-left:calc(var(--spacing)*3)}.text-center{text-align:center}.text-left{text-align:left}.\!text-body-sm-regular{font-size:.875rem!important;line-height:var(--tw-leading,1.25rem)!important;font-weight:var(--tw-font-weight,400)!important}.text-body-sm-medium{font-size:.875rem;line-height:var(--tw-leading,1.25rem);font-weight:var(--tw-font-weight,500)}.text-body-xs-medium{font-size:.75rem;line-height:var(--tw-leading,1.125rem);font-weight:var(--tw-font-weight,500)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-ellipsis{text-overflow:ellipsis}.text-foreground{color:var(--foreground)}.text-gray-800{color:var(--color-gray-800)}.text-item-destructive{color:var(--color-item-primary-destructive)}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:var(--color-item-primary)}.text-red-600{color:var(--color-red-600)}.text-secondary{color:var(--color-item-secondary)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.accent-foreground{accent-color:var(--foreground)}.opacity-40{opacity:.4}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.duration-100{animation-duration:.1s}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}@media (hover:hover){.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:bg-item-destructive-focus:hover{background-color:var(--color-item-primary-destructive-focus)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:opacity-80:hover{opacity:.8}}.focus\:ring-item-destructive:focus{--tw-ring-color:var(--color-item-primary-destructive)}.focus\:ring-item-primary:focus{--tw-ring-color:var(--color-item-primary-primary)}@media (min-width:40rem){.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:48rem){.md\:inline{display:inline}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}}@media (min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:96rem){.\32xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:scale-0:is(.dark *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:scale-100:is(.dark *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:-rotate-90:is(.dark *){rotate:-90deg}.dark\:rotate-0:is(.dark *){rotate:none}.dark\:bg-transparent:is(.dark *){background-color:#0000}.\[\&\>tr\:nth-child\(even\)\]\:bg-bg-secondary>tr:nth-child(2n){background-color:var(--background-secondary)}}:root{--color-neutral-base:#fff;--color-neutral-0:var(--color-neutral-base);--color-neutral-50:#f9f9f9;--color-neutral-100:#f6f6f6;--color-neutral-200:#efefef;--color-neutral-300:#d8d8d8;--color-neutral-400:#a5a5a5;--color-neutral-500:#757575;--color-neutral-600:#525252;--color-neutral-700:#404040;--color-neutral-800:#252525;--color-neutral-900:#202020;--color-neutral-950:#171717;--color-neutral-alpha-base:#303030;--color-blue-50:#f0f7ff;--color-blue-100:#e5f2ff;--color-blue-200:#cce5ff;--color-blue-300:#9cf;--color-blue-400:#66b2ff;--color-blue-500:#1487fa;--color-blue-600:#1380ed;--color-blue-700:#1a79d8;--color-blue-800:#1d67b0;--color-blue-900:#1f558a;--color-blue-950:#173654;--color-green-50:#e8fcef;--color-green-100:#dcfce7;--color-green-200:#bbf7d0;--color-green-300:#81eea8;--color-green-400:#41dd7a;--color-green-500:#22c55d;--color-green-600:#17a34a;--color-green-700:#1a8f44;--color-green-800:#176936;--color-green-900:#14532d;--color-green-950:#052e16;--color-lime-50:#f3fddd;--color-lime-100:#ecfbcb;--color-lime-200:#d6f995;--color-lime-300:#bff164;--color-lime-400:#a3e635;--color-lime-500:#84cc15;--color-lime-600:#6bad0d;--color-lime-700:#581;--color-lime-800:#426713;--color-lime-900:#365313;--color-lime-950:#1b2d06;--color-cyan-50:#ecfeff;--color-cyan-100:#cefafe;--color-cyan-200:#a5f3fc;--color-cyan-300:#67e8f9;--color-cyan-400:#24d3ee;--color-cyan-500:#00c3e4;--color-cyan-600:#02abd3;--color-cyan-700:#0586a9;--color-cyan-800:#0d6783;--color-cyan-900:#164e63;--color-cyan-950:#093344;--color-orange-50:#fff7d6;--color-orange-100:#fef0b9;--color-orange-200:#fde277;--color-orange-300:#fbd44c;--color-orange-400:#fbbf24;--color-orange-500:#f59e0c;--color-orange-600:#d97708;--color-orange-700:#b4540a;--color-orange-800:#92400d;--color-orange-900:#78350f;--color-orange-950:#451b03;--color-red-50:#fef6f6;--color-red-100:#fee7e6;--color-red-200:#fed7d7;--color-red-300:#fdb9b9;--color-red-400:#f87171;--color-red-500:#ef4444;--color-red-600:#dc2625;--color-red-700:#c81e1d;--color-red-800:#a01c1c;--color-red-900:#7f1c1d;--color-red-950:#450a0a;--color-purple-50:#f5f3ff;--color-purple-100:#ede9fe;--color-purple-200:#ddd6fe;--color-purple-300:#c3b6fd;--color-purple-400:#a88bfa;--color-purple-500:#8b5cf6;--color-purple-600:#7c3aed;--color-purple-700:#6d28d9;--color-purple-800:#5b21b6;--color-purple-900:#4c1d95;--color-purple-950:#2e1065;--color-indigo-50:#eef2ff;--color-indigo-100:#ede9fe;--color-indigo-200:#ddd6fe;--color-indigo-300:#a5b4fc;--color-indigo-400:#818cf8;--color-indigo-500:#6366f1;--color-indigo-600:#4f46e5;--color-indigo-700:#4338ca;--color-indigo-800:#3730a3;--color-indigo-900:#312e81;--color-indigo-950:#1e1b4b}.dark{--color-neutral-0:#131313;--color-neutral-50:#161616;--color-neutral-100:#202020;--color-neutral-200:#252525;--color-neutral-300:#404040;--color-neutral-400:#525252;--color-neutral-500:#757575;--color-neutral-600:#a3a3a3;--color-neutral-700:#e5e5e5;--color-neutral-800:#f5f5f5;--color-neutral-900:#f8f8f8;--color-neutral-950:#fff;--color-neutral-alpha-base:#202020;--color-blue-50:#11273c;--color-blue-100:#1d4f81;--color-blue-200:#1b61a6;--color-blue-300:#1b76d0;--color-blue-400:#1282f3;--color-blue-500:#0078f0;--color-blue-600:#5cadff;--color-blue-700:#8fc7ff;--color-blue-800:#c2e0ff;--color-blue-900:#dbedff;--color-blue-950:#e5f2ff;--color-green-50:#042512;--color-green-100:#124a28;--color-green-200:#176936;--color-green-300:#1a8f44;--color-green-400:#17a34a;--color-green-500:#20bb58;--color-green-600:#41dd7a;--color-green-700:#78eda2;--color-green-800:#adf5c6;--color-green-900:#d5fbe2;--color-green-950:#e4fcec;--color-lime-50:#1e3107;--color-lime-100:#333;--color-lime-200:#436813;--color-lime-300:#558910;--color-lime-400:#66a60d;--color-lime-500:#81c714;--color-lime-600:#9ce425;--color-lime-700:#b9f057;--color-lime-800:#d4f890;--color-lime-900:#e7fabd;--color-lime-950:#f2fdd8;--color-cyan-50:#072936;--color-cyan-100:#134558;--color-cyan-200:#0c5b74;--color-cyan-300:#047e9f;--color-cyan-400:#02a4ca;--color-cyan-500:#00bbdb;--color-cyan-600:#1cd1ed;--color-cyan-700:#5de7f9;--color-cyan-800:#9cf2fc;--color-cyan-900:#c8f9fe;--color-cyan-950:#e5feff;--color-orange-50:#3b1703;--color-orange-100:#6d300e;--color-orange-200:#883c0c;--color-orange-300:#a94f09;--color-orange-400:#cf7108;--color-orange-500:#eb970a;--color-orange-600:#fbba14;--color-orange-700:#fbcf37;--color-orange-800:#fde37d;--color-orange-900:#fef0b9;--color-orange-950:#fff6d1;--color-red-50:#430909;--color-red-100:#751a1b;--color-red-200:#8f1919;--color-red-300:#bb1c1b;--color-red-400:#dc2423;--color-red-500:#ee3a3a;--color-red-600:#f75959;--color-red-700:#fc7373;--color-red-800:#fec8c8;--color-red-900:#fee2e1;--color-red-950:#fef1f1;--color-purple-50:#2a0f5c;--color-purple-100:#481b8d;--color-purple-200:#561fad;--color-purple-300:#6825d0;--color-purple-400:#7936ed;--color-purple-500:#8756f6;--color-purple-600:#a385fa;--color-purple-700:#beb0fd;--color-purple-800:#dad2fe;--color-purple-900:#e7e2fe;--color-purple-950:#f2f0ff;--color-indigo-50:#1e1b4b;--color-indigo-100:#312e81;--color-indigo-200:#3730a3;--color-indigo-300:#4338ca;--color-indigo-400:#4f46e5;--color-indigo-500:#6366f1;--color-indigo-600:#818cf8;--color-indigo-700:#a5b4fc;--color-indigo-800:#ddd6fe;--color-indigo-900:#ede9fe;--color-indigo-950:#eef2ff}.Toastify__toast-container.Toastify__toast-container--bottom-left{display:none}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}/*!
1
+ /*! tailwindcss v4.1.7 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-normal:400;--font-weight-semibold:600;--font-weight-bold:700;--radius-xs:.125rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--primary:var(--color-neutral-950);--secondary:var(--color-neutral-alpha-13);--background:var(--color-neutral-0);--background-secondary:var(--color-neutral-50);--foreground:0 0% 3.9%;--card:0 0% 100%;--card-foreground:0 0% 3.9%;--popover:0 0% 100%;--popover-foreground:0 0% 3.9%;--muted:0 0% 96.1%;--muted-foreground:0 0% 45.1%;--accent:0 0% 96.1%;--accent-foreground:0 0% 9%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--border:#30303033;--input:0 0% 89.8%;--ring:0 0% 3.9%;--chart-1:12 76% 61%;--chart-2:173 58% 39%;--chart-3:197 37% 24%;--chart-4:43 74% 66%;--chart-5:27 87% 67%;--radius-xs:.125rem;--color-neutral-alpha-0:rgb(from var(--color-neutral-alpha-base)r g b/.01%);--color-neutral-alpha-1:rgb(from var(--color-neutral-alpha-base)r g b/3%);--color-neutral-alpha-2:rgb(from var(--color-neutral-alpha-base)r g b/5%);--color-neutral-alpha-3:rgb(from var(--color-neutral-alpha-base)r g b/7%);--color-neutral-alpha-4:rgb(from var(--color-neutral-alpha-base)r g b/10%);--color-neutral-alpha-5:rgb(from var(--color-neutral-alpha-base)r g b/16%);--color-neutral-alpha-6:rgb(from var(--color-neutral-alpha-base)r g b/20%);--color-neutral-alpha-7:rgb(from var(--color-neutral-alpha-base)r g b/24%);--color-neutral-alpha-8:rgb(from var(--color-neutral-alpha-base)r g b/28%);--color-neutral-alpha-9:rgb(from var(--color-neutral-alpha-base)r g b/32%);--color-neutral-alpha-10:rgb(from var(--color-neutral-alpha-base)r g b/40%);--color-neutral-alpha-11:rgb(from var(--color-neutral-alpha-base)r g b/48%);--color-neutral-alpha-12:rgb(from var(--color-neutral-alpha-base)r g b/56%);--color-neutral-alpha-13:rgb(from var(--color-neutral-alpha-base)r g b/64%);--color-neutral-alpha-14:rgb(from var(--color-neutral-alpha-base)r g b/72%);--color-neutral-alpha-15:rgb(from var(--color-neutral-alpha-base)r g b/80%);--color-neutral-alpha-16:rgb(from var(--color-neutral-alpha-base)r g b/88%);--color-neutral-inverted-0:rgb(from var(--color-neutral-base)r g b/.01%);--color-neutral-inverted-1:rgb(from var(--color-neutral-base)r g b/3%);--color-neutral-inverted-2:rgb(from var(--color-neutral-base)r g b/5%);--color-neutral-inverted-3:rgb(from var(--color-neutral-base)r g b/7%);--color-neutral-inverted-4:rgb(from var(--color-neutral-base)r g b/10%);--color-neutral-inverted-5:rgb(from var(--color-neutral-base)r g b/16%);--color-neutral-inverted-6:rgb(from var(--color-neutral-base)r g b/20%);--color-neutral-inverted-7:rgb(from var(--color-neutral-base)r g b/24%);--color-neutral-inverted-8:rgb(from var(--color-neutral-base)r g b/28%);--color-neutral-inverted-9:rgb(from var(--color-neutral-base)r g b/32%);--color-neutral-inverted-10:rgb(from var(--color-neutral-base)r g b/40%);--color-neutral-inverted-11:rgb(from var(--color-neutral-base)r g b/48%);--color-neutral-inverted-12:rgb(from var(--color-neutral-base)r g b/56%);--color-neutral-inverted-13:rgb(from var(--color-neutral-base)r g b/64%);--color-neutral-inverted-14:rgb(from var(--color-neutral-base)r g b/72%);--color-neutral-inverted-15:rgb(from var(--color-neutral-base)r g b/80%);--color-neutral-inverted-16:rgb(from var(--color-neutral-base)r g b/88%);--color-item-primary:var(--color-neutral-950);--color-item-secondary:var(--color-neutral-alpha-13);--color-item-tertiary:var(--color-neutral-alpha-10);--color-item-quaternary:var(--color-neutral-alpha-7);--color-item-primary-primary:var(--color-blue-600);--color-item-primary-primary-hover:var(--color-blue-700);--color-item-primary-primary-active:var(--color-blue-600);--color-item-primary-primary-focus:var(--color-blue-200);--color-item-primary-secondary:var(--color-neutral-0);--color-item-primary-secondary-hover:var(--color-neutral-50);--color-item-primary-secondary-active:var(--color-neutral-100);--color-item-primary-tertiary:var(--color-neutral-alpha-1);--color-item-primary-tertiary-hover:var(--color-neutral-alpha-2);--color-item-primary-tertiary-active:var(--color-neutral-alpha-3);--color-item-primary-ghost:var(--color-neutral-alpha-0);--color-item-primary-ghost-hover:var(--color-neutral-alpha-2);--color-item-primary-ghost-active:var(--color-neutral-alpha-3);--color-item-primary-destructive:var(--color-red-600);--color-item-primary-destructive-hover:var(--color-red-700);--color-item-primary-destructive-active:var(--color-red-600);--color-item-primary-destructive-focus:var(--color-red-200);--color-item-inverted:var(--color-neutral-0);--color-item-inverted-secondary:var(--color-neutral-inverted-13);--color-item-inverted-tertiary:var(--color-neutral-inverted-10);--color-item-inverted-quaternary:var(--color-neutral-inverted-7);--color-item-fixed:#090a0c;--color-item-fixed-secondary:#16191da3;--color-item-fixed-tertiary:#16191d66;--color-item-fixed-quaternary:#16191d3d;--color-item-fixed-inverted:var(--color-neutral-0);--color-item-fixed-inverted-secondary:var(--color-neutral-inverted-13);--color-item-fixed-inverted-tertiary:var(--color-neutral-inverted-10);--color-item-fixed-inverted-quaternary:var(--color-neutral-inverted-7);--color-surface-base-primary:var(--color-neutral-0);--color-surface-base-secondary:var(--color-neutral-50);--color-surface-base-tertiary:var(--color-neutral-100);--color-surface-component-primary:var(--color-neutral-0);--color-surface-component-secondary:var(--color-neutral-0);--color-surface-component-tertiary:var(--color-neutral-0);--color-surface-base-inverted:var(--color-neutral-950);--color-surface-overlay:#343434;--color-surface-muted:var(--color-neutral-0);--color-surface-muted-hover:var(--color-neutral-50);--color-surface-muted-pressed:var(--color-neutral-100);--color-shadows-inner-0:rgba(var(--color-neutral-base),0);--color-shadows-inner-1:#16191d;--color-shadows-inner-2:#16191d;--color-shadows-drop-1:#16191d;--color-shadows-drop-2:#16191d;--color-shadows-drop-3:#16191d;--color-shadows-drop-4:#16191d;--color-shadows-highlight-1:var(--color-blue-200);--color-shadows-highlight-2:var(--color-blue-500);--color-shadows-danger-1:var(--color-red-200);--color-shadows-danger-2:#ee3a3a;--color-shadows-card-border:#16191d;--color-shadows-card-border-2:#16191d;--color-border-base:var(--border);--color-border-alpha-strong:var(--color-neutral-alpha-6);--color-border-alpha-light:var(--color-neutral-alpha-3);--color-border-alpha-subtle:var(--color-neutral-alpha-4);--color-border-light:var(--color-neutral-200)}.dark{--background:var(--color-neutral-0);--background-secondary:var(--color-neutral-alpha-base);--foreground:0 0% 98%;--card:0 0% 3.9%;--card-foreground:0 0% 98%;--popover:0 0% 3.9%;--popover-foreground:0 0% 98%;--secondary:0 0% 14.9%;--secondary-foreground:0 0% 98%;--muted:0 0% 14.9%;--muted-foreground:0 0% 63.9%;--accent:0 0% 14.9%;--accent-foreground:0 0% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:0 0% 98%;--border:#fff3;--input:0 0% 14.9%;--ring:0 0% 83.1%;--chart-1:220 70% 50%;--chart-2:160 60% 45%;--chart-3:30 80% 55%;--chart-4:280 65% 60%;--chart-5:340 75% 55%;--sidebar:var(--background);--sidebar-foreground:#f4f4f5;--sidebar-primary:#1d4ed8;--sidebar-primary-foreground:#fff;--sidebar-accent:#27272a;--sidebar-accent-foreground:#f4f4f5;--sidebar-border:#27272a;--sidebar-ring:#3b82f6;--color-item-secondary:var(--color-neutral-inverted-13);--color-item-primary-tertiary:var(--color-neutral-inverted-2);--color-item-primary-tertiary-hover:var(--color-neutral-inverted-3);--color-item-primary-tertiary-active:var(--color-neutral-inverted-4);--color-surface-base-secondary:var(--color-neutral-inverted-2);--color-surface-base-tertiary:var(--color-neutral-200);--color-surface-component-primary:var(--color-neutral-100);--color-surface-component-secondary:var(--color-neutral-200);--color-surface-component-tertiary:#383838;--color-surface-base-inverted:var(--color-neutral-base);--color-surface-overlay:var(--color-neutral-inverted-3);--color-surface-muted:var(--color-neutral-100);--color-surface-muted-hover:var(--color-neutral-200);--color-surface-muted-pressed:#383838;--color-border-strong:var(--color-neutral-inverted-6);--color-shadow-inner-0:rgb(from var(--color-neutral-base)r g b/12%);--color-shadow-inner-1:rgb(from var(--color-neutral-base)r g b/8%);--color-shadow-inner-2:rgb(from var(--color-neutral-base)r g b/12%);--color-shadow-drop-1:#0000001f;--color-shadow-drop-2:#0003;--color-shadow-drop-3:#00000047;--color-shadow-drop-4:#0000005c;--color-shadow-card-border:rgb(from var(--color-neutral-base)r g b/12%);--color-shadow-card-border-2:rgb(from var(--color-neutral-base)r g b/0%);--color-border-alpha-strong:var(--color-neutral-inverted-6);--color-border-alpha-light:var(--color-neutral-inverted-4);--color-border-alpha-subtle:var(--color-neutral-inverted-5)}:root{--sidebar:var(--background-secondary);--sidebar-foreground:var(--primary);--sidebar-primary:#18181b;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#f4f4f5;--sidebar-accent-foreground:#18181b;--sidebar-border:#e5e7eb;--sidebar-ring:#3b82f6}*{border-color:var(--color-border-alpha-light)}body{background-color:var(--background);font-family:var(--font-family-base);color:var(--color-item-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer components;@layer utilities{.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing)*4)}.right-0{right:calc(var(--spacing)*0)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-auto{bottom:auto}.left-4{left:calc(var(--spacing)*4)}.z-50{z-index:50}.z-60{z-index:60}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing)*2)}.my-3{margin-block:calc(var(--spacing)*3)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.ml-auto{margin-left:auto}.flex{display:flex}.grid{display:grid}.hidden{display:none}.aspect-auto{aspect-ratio:auto}.size-full{width:100%;height:100%}.h-4{height:calc(var(--spacing)*4)}.h-8{height:calc(var(--spacing)*8)}.h-8\.5{height:calc(var(--spacing)*8.5)}.h-16{height:calc(var(--spacing)*16)}.h-\[1\.2rem\]{height:1.2rem}.h-full{height:100%}.max-h-60{max-height:calc(var(--spacing)*60)}.max-h-\[calc\(100vh-2rem\)\]{max-height:calc(100vh - 2rem)}.max-h-full{max-height:100%}.min-h-10{min-height:calc(var(--spacing)*10)}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing)*4)}.w-9{width:calc(var(--spacing)*9)}.w-12{width:calc(var(--spacing)*12)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-17{width:calc(var(--spacing)*17)}.w-\[1\.2rem\]{width:1.2rem}.w-auto{width:auto}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-64{max-width:calc(var(--spacing)*64)}.max-w-\[95\%\]{max-width:95%}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-20{min-width:calc(var(--spacing)*20)}.min-w-40{min-width:calc(var(--spacing)*40)}.min-w-\[170px\]{min-width:170px}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-0{rotate:none}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*0)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*0)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-border-alpha-light{border-color:var(--color-border-alpha-light)}.border-border-alpha-strong{border-color:var(--color-border-alpha-strong)}.border-border-light{border-color:var(--color-border-light)}.border-item-destructive{border-color:var(--color-item-primary-destructive)}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.\!bg-transparent{background-color:#0000!important}.bg-bg,.bg-bg\/50{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-bg\/50{background-color:color-mix(in oklab,var(--background)50%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-item-destructive-focus{background-color:var(--color-item-primary-destructive-focus)}.bg-transparent{background-color:#0000}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-2{padding-block:calc(var(--spacing)*2)}.py-8{padding-block:calc(var(--spacing)*8)}.pl-3{padding-left:calc(var(--spacing)*3)}.text-center{text-align:center}.text-left{text-align:left}.\!text-body-sm-regular{font-size:.875rem!important;line-height:var(--tw-leading,1.25rem)!important;font-weight:var(--tw-font-weight,400)!important}.text-body-sm-medium{font-size:.875rem;line-height:var(--tw-leading,1.25rem);font-weight:var(--tw-font-weight,500)}.text-body-xs-medium{font-size:.75rem;line-height:var(--tw-leading,1.125rem);font-weight:var(--tw-font-weight,500)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-ellipsis{text-overflow:ellipsis}.text-foreground{color:var(--foreground)}.text-gray-800{color:var(--color-gray-800)}.text-item-destructive{color:var(--color-item-primary-destructive)}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:var(--color-item-primary)}.text-red-600{color:var(--color-red-600)}.text-secondary{color:var(--color-item-secondary)}.capitalize{text-transform:capitalize}.accent-foreground{accent-color:var(--foreground)}.opacity-40{opacity:.4}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.duration-100{animation-duration:.1s}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}@media (hover:hover){.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:bg-item-destructive-focus:hover{background-color:var(--color-item-primary-destructive-focus)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:opacity-80:hover{opacity:.8}}.focus\:ring-item-destructive:focus{--tw-ring-color:var(--color-item-primary-destructive)}.focus\:ring-item-primary:focus{--tw-ring-color:var(--color-item-primary-primary)}@media (min-width:40rem){.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:48rem){.md\:inline{display:inline}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}}@media (min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:96rem){.\32xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:scale-0:is(.dark *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:scale-100:is(.dark *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:-rotate-90:is(.dark *){rotate:-90deg}.dark\:rotate-0:is(.dark *){rotate:none}.dark\:bg-transparent:is(.dark *){background-color:#0000}.\[\&\>tr\:nth-child\(even\)\]\:bg-bg-secondary>tr:nth-child(2n){background-color:var(--background-secondary)}}:root{--color-neutral-base:#fff;--color-neutral-0:var(--color-neutral-base);--color-neutral-50:#f9f9f9;--color-neutral-100:#f6f6f6;--color-neutral-200:#efefef;--color-neutral-300:#d8d8d8;--color-neutral-400:#a5a5a5;--color-neutral-500:#757575;--color-neutral-600:#525252;--color-neutral-700:#404040;--color-neutral-800:#252525;--color-neutral-900:#202020;--color-neutral-950:#171717;--color-neutral-alpha-base:#303030;--color-blue-50:#f0f7ff;--color-blue-100:#e5f2ff;--color-blue-200:#cce5ff;--color-blue-300:#9cf;--color-blue-400:#66b2ff;--color-blue-500:#1487fa;--color-blue-600:#1380ed;--color-blue-700:#1a79d8;--color-blue-800:#1d67b0;--color-blue-900:#1f558a;--color-blue-950:#173654;--color-green-50:#e8fcef;--color-green-100:#dcfce7;--color-green-200:#bbf7d0;--color-green-300:#81eea8;--color-green-400:#41dd7a;--color-green-500:#22c55d;--color-green-600:#17a34a;--color-green-700:#1a8f44;--color-green-800:#176936;--color-green-900:#14532d;--color-green-950:#052e16;--color-lime-50:#f3fddd;--color-lime-100:#ecfbcb;--color-lime-200:#d6f995;--color-lime-300:#bff164;--color-lime-400:#a3e635;--color-lime-500:#84cc15;--color-lime-600:#6bad0d;--color-lime-700:#581;--color-lime-800:#426713;--color-lime-900:#365313;--color-lime-950:#1b2d06;--color-cyan-50:#ecfeff;--color-cyan-100:#cefafe;--color-cyan-200:#a5f3fc;--color-cyan-300:#67e8f9;--color-cyan-400:#24d3ee;--color-cyan-500:#00c3e4;--color-cyan-600:#02abd3;--color-cyan-700:#0586a9;--color-cyan-800:#0d6783;--color-cyan-900:#164e63;--color-cyan-950:#093344;--color-orange-50:#fff7d6;--color-orange-100:#fef0b9;--color-orange-200:#fde277;--color-orange-300:#fbd44c;--color-orange-400:#fbbf24;--color-orange-500:#f59e0c;--color-orange-600:#d97708;--color-orange-700:#b4540a;--color-orange-800:#92400d;--color-orange-900:#78350f;--color-orange-950:#451b03;--color-red-50:#fef6f6;--color-red-100:#fee7e6;--color-red-200:#fed7d7;--color-red-300:#fdb9b9;--color-red-400:#f87171;--color-red-500:#ef4444;--color-red-600:#dc2625;--color-red-700:#c81e1d;--color-red-800:#a01c1c;--color-red-900:#7f1c1d;--color-red-950:#450a0a;--color-purple-50:#f5f3ff;--color-purple-100:#ede9fe;--color-purple-200:#ddd6fe;--color-purple-300:#c3b6fd;--color-purple-400:#a88bfa;--color-purple-500:#8b5cf6;--color-purple-600:#7c3aed;--color-purple-700:#6d28d9;--color-purple-800:#5b21b6;--color-purple-900:#4c1d95;--color-purple-950:#2e1065;--color-indigo-50:#eef2ff;--color-indigo-100:#ede9fe;--color-indigo-200:#ddd6fe;--color-indigo-300:#a5b4fc;--color-indigo-400:#818cf8;--color-indigo-500:#6366f1;--color-indigo-600:#4f46e5;--color-indigo-700:#4338ca;--color-indigo-800:#3730a3;--color-indigo-900:#312e81;--color-indigo-950:#1e1b4b}.dark{--color-neutral-0:#131313;--color-neutral-50:#161616;--color-neutral-100:#202020;--color-neutral-200:#252525;--color-neutral-300:#404040;--color-neutral-400:#525252;--color-neutral-500:#757575;--color-neutral-600:#a3a3a3;--color-neutral-700:#e5e5e5;--color-neutral-800:#f5f5f5;--color-neutral-900:#f8f8f8;--color-neutral-950:#fff;--color-neutral-alpha-base:#202020;--color-blue-50:#11273c;--color-blue-100:#1d4f81;--color-blue-200:#1b61a6;--color-blue-300:#1b76d0;--color-blue-400:#1282f3;--color-blue-500:#0078f0;--color-blue-600:#5cadff;--color-blue-700:#8fc7ff;--color-blue-800:#c2e0ff;--color-blue-900:#dbedff;--color-blue-950:#e5f2ff;--color-green-50:#042512;--color-green-100:#124a28;--color-green-200:#176936;--color-green-300:#1a8f44;--color-green-400:#17a34a;--color-green-500:#20bb58;--color-green-600:#41dd7a;--color-green-700:#78eda2;--color-green-800:#adf5c6;--color-green-900:#d5fbe2;--color-green-950:#e4fcec;--color-lime-50:#1e3107;--color-lime-100:#333;--color-lime-200:#436813;--color-lime-300:#558910;--color-lime-400:#66a60d;--color-lime-500:#81c714;--color-lime-600:#9ce425;--color-lime-700:#b9f057;--color-lime-800:#d4f890;--color-lime-900:#e7fabd;--color-lime-950:#f2fdd8;--color-cyan-50:#072936;--color-cyan-100:#134558;--color-cyan-200:#0c5b74;--color-cyan-300:#047e9f;--color-cyan-400:#02a4ca;--color-cyan-500:#00bbdb;--color-cyan-600:#1cd1ed;--color-cyan-700:#5de7f9;--color-cyan-800:#9cf2fc;--color-cyan-900:#c8f9fe;--color-cyan-950:#e5feff;--color-orange-50:#3b1703;--color-orange-100:#6d300e;--color-orange-200:#883c0c;--color-orange-300:#a94f09;--color-orange-400:#cf7108;--color-orange-500:#eb970a;--color-orange-600:#fbba14;--color-orange-700:#fbcf37;--color-orange-800:#fde37d;--color-orange-900:#fef0b9;--color-orange-950:#fff6d1;--color-red-50:#430909;--color-red-100:#751a1b;--color-red-200:#8f1919;--color-red-300:#bb1c1b;--color-red-400:#dc2423;--color-red-500:#ee3a3a;--color-red-600:#f75959;--color-red-700:#fc7373;--color-red-800:#fec8c8;--color-red-900:#fee2e1;--color-red-950:#fef1f1;--color-purple-50:#2a0f5c;--color-purple-100:#481b8d;--color-purple-200:#561fad;--color-purple-300:#6825d0;--color-purple-400:#7936ed;--color-purple-500:#8756f6;--color-purple-600:#a385fa;--color-purple-700:#beb0fd;--color-purple-800:#dad2fe;--color-purple-900:#e7e2fe;--color-purple-950:#f2f0ff;--color-indigo-50:#1e1b4b;--color-indigo-100:#312e81;--color-indigo-200:#3730a3;--color-indigo-300:#4338ca;--color-indigo-400:#4f46e5;--color-indigo-500:#6366f1;--color-indigo-600:#818cf8;--color-indigo-700:#a5b4fc;--color-indigo-800:#ddd6fe;--color-indigo-900:#ede9fe;--color-indigo-950:#eef2ff}.Toastify__toast-container.Toastify__toast-container--bottom-left{display:none}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}/*!
2
2
  * FilePondPluginImagePreview 4.6.12
3
3
  * Licensed under MIT, https://opensource.org/licenses/MIT/
4
4
  * Please visit https://pqina.nl/filepond/ for details.
@@ -1,34 +1,20 @@
1
- /**
2
- * MyGallery Component
3
- *
4
- * A performant image gallery component with the following optimizations:
5
- * - Component memoization with React.memo to prevent unnecessary re-renders
6
- * - Memoized child components (Thumbnail) to optimize grid rendering
7
- * - Memoized FullscreenView to prevent recreation on state changes
8
- * - useCallback for all event handlers to maintain referential equality
9
- * - useMemo for computed values and arrays to prevent recreation
10
- * - Proper dependency arrays for all hooks
11
- *
12
- * These optimizations significantly improve performance, especially with large image collections
13
- * or when the component is part of a complex UI.
14
- */
15
1
  import React, { type HTMLAttributes } from 'react';
16
- export interface ImageItem {
2
+ export interface GalleryItem {
17
3
  id: string;
18
4
  src: string;
19
5
  thumbnail: string;
20
6
  alt: string;
21
7
  title?: string;
22
8
  }
23
- export interface ActionButton {
9
+ export interface GalleryActionButton {
24
10
  icon: React.ReactNode;
25
11
  label: string;
26
- onClick: (image: ImageItem) => void;
12
+ onClick: (image: GalleryItem) => void;
27
13
  className?: string;
28
14
  }
29
15
  export type MyGalleryProps = HTMLAttributes<HTMLDivElement> & {
30
- images: ImageItem[];
31
- actionButtons?: ActionButton[];
16
+ images: GalleryItem[];
17
+ actionButtons?: GalleryActionButton[];
32
18
  hasInfo?: true;
33
19
  };
34
20
  export declare const MyGallery: React.MemoExoticComponent<({ images, actionButtons, className, hasInfo, ...props }: MyGalleryProps) => import("react/jsx-runtime").JSX.Element>;
@@ -1 +1 @@
1
- {"version":3,"file":"MyGallery.d.ts","sourceRoot":"","sources":["../../../../src/components/gallery/MyGallery.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,EACZ,KAAK,cAAc,EAMpB,MAAM,OAAO,CAAC;AAaf,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAC5D,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB,CAAC;AAqZF,eAAO,MAAM,SAAS,sFAlVnB,cAAc,6CAkVgC,CAAC"}
1
+ {"version":3,"file":"MyGallery.d.ts","sourceRoot":"","sources":["../../../../src/components/gallery/MyGallery.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,cAAc,EAMpB,MAAM,OAAO,CAAC;AAcf,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAC5D,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACtC,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB,CAAC;AAwZF,eAAO,MAAM,SAAS,sFAxVnB,cAAc,6CAwVgC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dgz-ui-shared",
3
- "version": "1.0.40",
3
+ "version": "1.0.41",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -139,6 +139,7 @@
139
139
  "@tailwindcss/vite": "^4.1.7",
140
140
  "dayjs": "^1.11.13",
141
141
  "dgz-ui": "^1.2.18",
142
+ "file-saver": "^2.0.5",
142
143
  "filepond-plugin-file-validate-size": "^2.2.8",
143
144
  "filepond-plugin-file-validate-type": "^1.2.9",
144
145
  "filepond-plugin-image-preview": "^4.6.12",
@@ -164,6 +165,7 @@
164
165
  "@eslint/js": "^9.25.0",
165
166
  "@testing-library/jest-dom": "^6.6.3",
166
167
  "@testing-library/react": "^16.3.0",
168
+ "@types/file-saver": "^2.0.7",
167
169
  "@types/lodash": "^4.17.17",
168
170
  "@types/node": "^22.15.21",
169
171
  "@types/react": "^19.1.6",