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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2
|
-
import { memo as
|
|
3
|
-
import { l as
|
|
4
|
-
import { m as
|
|
5
|
-
import { c as
|
|
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
|
|
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
|
|
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
|
|
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
|
-
],
|
|
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
|
|
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
|
-
],
|
|
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
|
|
48
|
+
const se = [
|
|
48
49
|
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
|
|
49
50
|
["path", { d: "m6 6 12 12", key: "d8bk6v" }]
|
|
50
|
-
],
|
|
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
|
|
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
|
-
],
|
|
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
|
|
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
|
-
],
|
|
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__ */
|
|
76
|
-
onClick: () =>
|
|
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__ */
|
|
81
|
-
onClick: () =>
|
|
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__ */
|
|
86
|
-
onClick: () =>
|
|
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__ */
|
|
91
|
-
onClick: (
|
|
92
|
-
|
|
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
|
-
],
|
|
170
|
+
], pe = Y(
|
|
98
171
|
({
|
|
99
|
-
image:
|
|
100
|
-
index:
|
|
101
|
-
onClick:
|
|
102
|
-
}) => /* @__PURE__ */
|
|
172
|
+
image: c,
|
|
173
|
+
index: x,
|
|
174
|
+
onClick: u
|
|
175
|
+
}) => /* @__PURE__ */ s.jsx(
|
|
103
176
|
"div",
|
|
104
177
|
{
|
|
105
|
-
className: "aspect-
|
|
106
|
-
onClick: () =>
|
|
107
|
-
children: /* @__PURE__ */
|
|
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:
|
|
111
|
-
alt:
|
|
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
|
-
|
|
189
|
+
c.id
|
|
117
190
|
)
|
|
118
|
-
),
|
|
119
|
-
images:
|
|
120
|
-
actionButtons:
|
|
121
|
-
className:
|
|
122
|
-
hasInfo:
|
|
123
|
-
...
|
|
191
|
+
), me = ({
|
|
192
|
+
images: c,
|
|
193
|
+
actionButtons: x = [],
|
|
194
|
+
className: u,
|
|
195
|
+
hasInfo: w,
|
|
196
|
+
...E
|
|
124
197
|
}) => {
|
|
125
|
-
const [
|
|
126
|
-
() =>
|
|
127
|
-
[
|
|
128
|
-
),
|
|
129
|
-
() => [...
|
|
130
|
-
[
|
|
131
|
-
),
|
|
132
|
-
|
|
133
|
-
}, []),
|
|
134
|
-
|
|
135
|
-
}, []),
|
|
136
|
-
|
|
137
|
-
}, [
|
|
138
|
-
|
|
139
|
-
}, [
|
|
140
|
-
(
|
|
141
|
-
|
|
142
|
-
x:
|
|
143
|
-
y:
|
|
144
|
-
}),
|
|
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
|
-
[
|
|
147
|
-
),
|
|
148
|
-
(
|
|
149
|
-
if (
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
x:
|
|
153
|
-
y:
|
|
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
|
-
[
|
|
158
|
-
),
|
|
159
|
-
|
|
160
|
-
}, []),
|
|
161
|
-
|
|
162
|
-
}, []),
|
|
163
|
-
(
|
|
164
|
-
const
|
|
165
|
-
|
|
166
|
-
x:
|
|
167
|
-
y:
|
|
168
|
-
}),
|
|
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
|
-
[
|
|
171
|
-
),
|
|
172
|
-
(
|
|
173
|
-
if (
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
x:
|
|
177
|
-
y:
|
|
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
|
-
[
|
|
182
|
-
),
|
|
183
|
-
|
|
254
|
+
[h, y]
|
|
255
|
+
), X = f(() => {
|
|
256
|
+
m(!1);
|
|
184
257
|
}, []);
|
|
185
|
-
|
|
186
|
-
const
|
|
187
|
-
if (
|
|
188
|
-
switch (
|
|
258
|
+
H(() => {
|
|
259
|
+
const n = (r) => {
|
|
260
|
+
if (p)
|
|
261
|
+
switch (r.key) {
|
|
189
262
|
case "Escape":
|
|
190
|
-
|
|
263
|
+
_();
|
|
191
264
|
break;
|
|
192
265
|
case "ArrowLeft":
|
|
193
|
-
|
|
266
|
+
r.preventDefault(), L();
|
|
194
267
|
break;
|
|
195
268
|
case "ArrowRight":
|
|
196
|
-
|
|
269
|
+
r.preventDefault(), C();
|
|
197
270
|
break;
|
|
198
271
|
}
|
|
199
272
|
};
|
|
200
|
-
return document.addEventListener("keydown",
|
|
201
|
-
}, [
|
|
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
|
-
}), [
|
|
204
|
-
const
|
|
205
|
-
() =>
|
|
206
|
-
[
|
|
207
|
-
),
|
|
208
|
-
|
|
209
|
-
/* @__PURE__ */
|
|
210
|
-
|
|
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: () =>
|
|
214
|
-
className: "bg-opacity-50 hover:bg-opacity-70 rounded-full
|
|
215
|
-
title:
|
|
216
|
-
children:
|
|
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
|
-
|
|
291
|
+
r
|
|
219
292
|
)),
|
|
220
|
-
/* @__PURE__ */
|
|
293
|
+
/* @__PURE__ */ s.jsx(
|
|
221
294
|
"button",
|
|
222
295
|
{
|
|
223
|
-
onClick:
|
|
224
|
-
className: "bg-opacity-50 hover:bg-opacity-70 rounded-full
|
|
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__ */
|
|
299
|
+
children: /* @__PURE__ */ s.jsx(le, { size: 20 })
|
|
227
300
|
}
|
|
228
301
|
)
|
|
229
302
|
] }),
|
|
230
|
-
|
|
303
|
+
q.isNumber(a) && a > 0 && /* @__PURE__ */ s.jsx(
|
|
231
304
|
"button",
|
|
232
305
|
{
|
|
233
|
-
onClick:
|
|
234
|
-
className: "bg-opacity-50 hover:bg-opacity-70 absolute top-1/2 left-4 z-60 -translate-y-1/2 rounded-full
|
|
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__ */
|
|
309
|
+
children: /* @__PURE__ */ s.jsx(W, { size: 24 })
|
|
237
310
|
}
|
|
238
311
|
),
|
|
239
|
-
|
|
312
|
+
q.isNumber(a) && a < c.length - 1 && /* @__PURE__ */ s.jsx(
|
|
240
313
|
"button",
|
|
241
314
|
{
|
|
242
|
-
onClick:
|
|
243
|
-
className: "bg-opacity-
|
|
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__ */
|
|
318
|
+
children: /* @__PURE__ */ s.jsx(Q, { size: 24 })
|
|
246
319
|
}
|
|
247
320
|
),
|
|
248
|
-
/* @__PURE__ */
|
|
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:
|
|
253
|
-
onMouseMove:
|
|
254
|
-
onMouseUp:
|
|
255
|
-
onMouseLeave:
|
|
256
|
-
onTouchStart:
|
|
257
|
-
onTouchMove:
|
|
258
|
-
onTouchEnd:
|
|
259
|
-
style: { cursor:
|
|
260
|
-
children: /* @__PURE__ */
|
|
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:
|
|
264
|
-
alt:
|
|
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(${
|
|
268
|
-
willChange:
|
|
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__ */
|
|
352
|
+
/* @__PURE__ */ s.jsx(
|
|
280
353
|
"div",
|
|
281
354
|
{
|
|
282
|
-
className:
|
|
283
|
-
|
|
284
|
-
|
|
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
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
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
|
-
|
|
297
|
-
d,
|
|
298
|
-
E,
|
|
299
|
-
w,
|
|
300
|
-
n,
|
|
375
|
+
p,
|
|
301
376
|
j,
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
T,
|
|
377
|
+
D,
|
|
378
|
+
_,
|
|
379
|
+
a,
|
|
306
380
|
L,
|
|
307
|
-
|
|
381
|
+
c,
|
|
382
|
+
C,
|
|
383
|
+
z,
|
|
308
384
|
F,
|
|
309
|
-
R,
|
|
310
|
-
S,
|
|
311
|
-
i,
|
|
312
|
-
k,
|
|
313
385
|
$,
|
|
314
|
-
|
|
315
|
-
|
|
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__ */
|
|
318
|
-
/* @__PURE__ */
|
|
396
|
+
return /* @__PURE__ */ s.jsxs("div", { className: "w-full", children: [
|
|
397
|
+
/* @__PURE__ */ s.jsx(
|
|
319
398
|
"div",
|
|
320
399
|
{
|
|
321
|
-
...
|
|
322
|
-
className:
|
|
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
|
-
|
|
403
|
+
u
|
|
325
404
|
),
|
|
326
|
-
children:
|
|
327
|
-
/* @__PURE__ */
|
|
328
|
-
|
|
405
|
+
children: c.map((n, r) => /* @__PURE__ */ s.jsxs("div", { className: "relative", children: [
|
|
406
|
+
/* @__PURE__ */ s.jsx(
|
|
407
|
+
pe,
|
|
329
408
|
{
|
|
330
|
-
image:
|
|
331
|
-
index:
|
|
332
|
-
onClick:
|
|
409
|
+
image: n,
|
|
410
|
+
index: r,
|
|
411
|
+
onClick: G
|
|
333
412
|
},
|
|
334
|
-
|
|
413
|
+
n.id
|
|
335
414
|
),
|
|
336
|
-
|
|
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:
|
|
419
|
+
children: n.title
|
|
341
420
|
}
|
|
342
421
|
)
|
|
343
422
|
] }))
|
|
344
423
|
}
|
|
345
424
|
),
|
|
346
|
-
|
|
425
|
+
P
|
|
347
426
|
] });
|
|
348
|
-
},
|
|
427
|
+
}, je = Y(me);
|
|
349
428
|
export {
|
|
350
|
-
|
|
429
|
+
je as MyGallery
|
|
351
430
|
};
|
package/dist/dgz-ui-shared.css
CHANGED
|
@@ -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
|
|
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
|
|
9
|
+
export interface GalleryActionButton {
|
|
24
10
|
icon: React.ReactNode;
|
|
25
11
|
label: string;
|
|
26
|
-
onClick: (image:
|
|
12
|
+
onClick: (image: GalleryItem) => void;
|
|
27
13
|
className?: string;
|
|
28
14
|
}
|
|
29
15
|
export type MyGalleryProps = HTMLAttributes<HTMLDivElement> & {
|
|
30
|
-
images:
|
|
31
|
-
actionButtons?:
|
|
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
|
|
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.
|
|
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",
|