@cleen/ui-core 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,40 @@
1
+ # @cleen/ui-core
2
+
3
+ Shared foundation for the Cleen UI library — Tailwind CSS configuration, custom hooks, utilities, and theming primitives used by `@cleen/ui` and `@cleen/ui-pro`.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @cleen/ui-core
9
+ ```
10
+
11
+ ## Tailwind Setup
12
+
13
+ Extend your Tailwind config with the Cleen preset and import the CSS:
14
+
15
+ ```js
16
+ // tailwind.config.js
17
+ import cleenPreset from '@cleen/ui-core/tailwind-preset';
18
+
19
+ export default {
20
+ presets: [cleenPreset],
21
+ };
22
+ ```
23
+
24
+ ```css
25
+ /* your entry CSS */
26
+ @import '@cleen/ui-core/tailwind-entry.css';
27
+ ```
28
+
29
+ Or import the pre-built stylesheet directly:
30
+
31
+ ```js
32
+ import '@cleen/ui-core/styles.css';
33
+ ```
34
+
35
+ > **Note:** All Tailwind classes use the `cleen-` prefix. Components must be wrapped in a `.cleen` element for styles to apply.
36
+
37
+ ## Peer Dependencies
38
+
39
+ - `react` ^18.3.1
40
+ - `react-dom` ^18.3.1
@@ -0,0 +1,258 @@
1
+ import * as react from 'react';
2
+ import { RefObject, CSSProperties } from 'react';
3
+ import * as zustand_middleware from 'zustand/middleware';
4
+ import * as zustand from 'zustand';
5
+ import { ClassValue } from 'clsx';
6
+
7
+ interface UseAnimateNumberProps {
8
+ targetNumber: number;
9
+ defaultNumber?: number;
10
+ duration?: number;
11
+ disabled?: boolean;
12
+ easeOut?: boolean;
13
+ }
14
+ declare const useAnimateNumber: ({ targetNumber, defaultNumber, duration, disabled, easeOut, }: UseAnimateNumberProps) => number;
15
+
16
+ interface UseControlledProps<T> {
17
+ value?: T;
18
+ defaultValue?: T;
19
+ onChange?: (value: T) => void;
20
+ }
21
+ declare const useControlled: <T>({ value, defaultValue, onChange, }: UseControlledProps<T>) => {
22
+ value: T | undefined;
23
+ isControlled: boolean;
24
+ handleChange: (newValue: T) => void;
25
+ };
26
+
27
+ declare const useDebounce: <T>(value: T, delay: number) => T;
28
+
29
+ interface UseDisclosureProps {
30
+ value?: boolean;
31
+ setValue?: (value: boolean) => void;
32
+ }
33
+ declare const useDisclosure: (props?: UseDisclosureProps) => {
34
+ isOpen: boolean;
35
+ open: () => void;
36
+ close: () => void;
37
+ toggle: () => void;
38
+ };
39
+
40
+ interface UseFormProps<T> {
41
+ defaultValue: T | null;
42
+ resetOnDefaultValueChange?: boolean;
43
+ }
44
+ declare const useForm: <T extends Record<string, unknown>>({ defaultValue, resetOnDefaultValueChange, }: UseFormProps<T>) => {
45
+ form: T | null;
46
+ isDirty: boolean;
47
+ setForm: react.Dispatch<react.SetStateAction<T | null>>;
48
+ setField: (field: keyof T, value: T[keyof T]) => void;
49
+ reset: () => void;
50
+ };
51
+
52
+ interface UseOutsideClickProps {
53
+ refs: RefObject<HTMLElement | null>[];
54
+ handler: (event: MouseEvent | TouchEvent) => void;
55
+ enabled?: boolean;
56
+ }
57
+ declare function useOutsideClick({ refs, handler, enabled, }: UseOutsideClickProps): void;
58
+
59
+ interface PaginationOptions {
60
+ initialPage?: number;
61
+ initialPageSize?: number;
62
+ }
63
+ interface PaginationState {
64
+ page: number;
65
+ setPage: (page: number) => void;
66
+ pageSize: number;
67
+ setPageSize: (size: number) => void;
68
+ handleNextPage: (page: number) => void;
69
+ handlePreviousPage: (page: number) => void;
70
+ handlePageChange: (page: number) => void;
71
+ }
72
+ declare function usePaginationState(options?: PaginationOptions): PaginationState;
73
+
74
+ type Position = 'bottom-left' | 'bottom-right' | 'bottom' | 'top-left' | 'top-right' | 'top' | 'left' | 'right';
75
+
76
+ interface UsePositionCloseProps {
77
+ triggerRef: RefObject<HTMLElement | null>;
78
+ targetRef: RefObject<HTMLElement | null>;
79
+ position?: Position;
80
+ offset?: number;
81
+ isOpen: boolean;
82
+ }
83
+ /**
84
+ * Hook to calculate fixed positioning for overlays relative to trigger elements.
85
+ * Handles viewport-aware position optimization and click-outside detection.
86
+ */
87
+ declare const usePositionClose: ({ triggerRef, targetRef, position, offset, isOpen, }: UsePositionCloseProps) => {
88
+ positionStyles: {
89
+ top: number;
90
+ left: number;
91
+ } | {
92
+ top: number;
93
+ left: number;
94
+ };
95
+ optimalPosition: Position | undefined;
96
+ isMounted: boolean;
97
+ };
98
+
99
+ declare const useValidation: <T>(defaultValue: Partial<T>) => {
100
+ errors: Partial<T>;
101
+ setError: (field: keyof T, value: Partial<T>[keyof T]) => void;
102
+ setErrors: react.Dispatch<react.SetStateAction<Partial<T>>>;
103
+ clearError: (field: keyof T) => void;
104
+ clearErrors: () => void;
105
+ };
106
+
107
+ interface UseWidthDynamicResizeParams<T> {
108
+ ref: RefObject<T>;
109
+ skip?: boolean;
110
+ }
111
+ declare const useWidthDynamicResize: <T extends HTMLElement | null>({ ref, skip }: UseWidthDynamicResizeParams<T>, deps: unknown[]) => void;
112
+
113
+ declare const colorVars: readonly ["white", "black", "gray", "pink", "purple", "indigo", "blue", "primary", "success", "warning", "error", "brand", "sidebar", "background"];
114
+ type ColorVar = (typeof colorVars)[number];
115
+ interface UseCleenColorsStore {
116
+ colors: Partial<Record<ColorVar, string>>;
117
+ getColors: () => Partial<Record<ColorVar, string>>;
118
+ getColor: (color: ColorVar) => string;
119
+ setColor: (colorVar: ColorVar, value: string) => void;
120
+ setColors: (colors: Partial<Record<ColorVar, string>>) => void;
121
+ resetColors: () => void;
122
+ resetColor: (color: ColorVar) => void;
123
+ }
124
+ declare const useCleenColors: zustand.UseBoundStore<Omit<zustand.StoreApi<UseCleenColorsStore>, "setState" | "persist"> & {
125
+ setState(partial: UseCleenColorsStore | Partial<UseCleenColorsStore> | ((state: UseCleenColorsStore) => UseCleenColorsStore | Partial<UseCleenColorsStore>), replace?: false | undefined): unknown;
126
+ setState(state: UseCleenColorsStore | ((state: UseCleenColorsStore) => UseCleenColorsStore), replace: true): unknown;
127
+ persist: {
128
+ setOptions: (options: Partial<zustand_middleware.PersistOptions<UseCleenColorsStore, UseCleenColorsStore, unknown>>) => void;
129
+ clearStorage: () => void;
130
+ rehydrate: () => Promise<void> | void;
131
+ hasHydrated: () => boolean;
132
+ onHydrate: (fn: (state: UseCleenColorsStore) => void) => () => void;
133
+ onFinishHydration: (fn: (state: UseCleenColorsStore) => void) => () => void;
134
+ getOptions: () => Partial<zustand_middleware.PersistOptions<UseCleenColorsStore, UseCleenColorsStore, unknown>>;
135
+ };
136
+ }>;
137
+
138
+ interface UseCleenOverlays {
139
+ overlays: string[];
140
+ addOverlay: (id: string) => void;
141
+ removeOverlay: (id: string) => void;
142
+ clearOverlays: () => void;
143
+ }
144
+ declare const useCleenOverlays: zustand.UseBoundStore<Omit<zustand.StoreApi<UseCleenOverlays>, "setState" | "persist"> & {
145
+ setState(partial: UseCleenOverlays | Partial<UseCleenOverlays> | ((state: UseCleenOverlays) => UseCleenOverlays | Partial<UseCleenOverlays>), replace?: false | undefined): unknown;
146
+ setState(state: UseCleenOverlays | ((state: UseCleenOverlays) => UseCleenOverlays), replace: true): unknown;
147
+ persist: {
148
+ setOptions: (options: Partial<zustand_middleware.PersistOptions<UseCleenOverlays, UseCleenOverlays, unknown>>) => void;
149
+ clearStorage: () => void;
150
+ rehydrate: () => Promise<void> | void;
151
+ hasHydrated: () => boolean;
152
+ onHydrate: (fn: (state: UseCleenOverlays) => void) => () => void;
153
+ onFinishHydration: (fn: (state: UseCleenOverlays) => void) => () => void;
154
+ getOptions: () => Partial<zustand_middleware.PersistOptions<UseCleenOverlays, UseCleenOverlays, unknown>>;
155
+ };
156
+ }>;
157
+
158
+ interface ComponentClassnames<T extends {
159
+ classNames?: {
160
+ [key: string]: string | object;
161
+ };
162
+ }> {
163
+ className?: string;
164
+ classNames?: T['classNames'];
165
+ }
166
+ interface ComponentStyles<T extends {
167
+ styles?: {
168
+ [key: string]: CSSProperties | object;
169
+ };
170
+ }> {
171
+ style?: CSSProperties;
172
+ styles?: T['styles'];
173
+ }
174
+
175
+ type HintedString<KnownValues extends string> = (string & {}) | KnownValues;
176
+ type ArrayElement<ArrayType extends readonly unknown[]> = ArrayType extends readonly (infer ElementType)[] ? ElementType : never;
177
+
178
+ /** Minimal synchronous PCM WAV encoder – no extra deps needed =w= */
179
+ declare const encodeWav: (buffer: AudioBuffer) => Blob;
180
+ declare const trimBlob: (blob: Blob, startSec: number, endSec: number) => Promise<Blob>;
181
+
182
+ declare const cn: (...inputs: ClassValue[]) => string;
183
+
184
+ type RGBA = [number, number, number, number];
185
+ declare class ColorHelpers {
186
+ /**
187
+ * Calculates the Delta E (CIE94) between two RGB colors.
188
+ *
189
+ * Delta E is a metric for color difference. Based on the value, we can describe how different the colors are:
190
+ *
191
+ * Perception Levels:
192
+ * - Delta E <= 1.0: Not perceptible by human eyes.
193
+ * - Delta E between 1-2: Perceptible through close observation.
194
+ * - Delta E between 2-10: Perceptible at a glance.
195
+ * - Delta E between 11-49: Colors are more similar than opposite.
196
+ * - Delta E = 100: Colors are exact opposites.
197
+ *
198
+ * @param {Array<number>} rgb1 - The first RGB color as an array [R, G, B].
199
+ * @param {Array<number>} rgb2 - The second RGB color as an array [R, G, B].
200
+ * @returns {number} The Delta E value representing the difference between the two colors.
201
+ *
202
+ * @example
203
+ * deltaE([128, 0, 255], [128, 0, 255]); // 0
204
+ * deltaE([128, 0, 255], [128, 0, 230]); // 3.175
205
+ * deltaE([128, 0, 255], [255, 0, 0]); // 61.24
206
+ */
207
+ static deltaE(rgbA: RGBA, rgbB: RGBA): number;
208
+ static rgb2lab(rgb: RGBA): number[];
209
+ static isSimilar(color1: string, color2: string, defaultDeltaE?: number): boolean;
210
+ static adjustColorForContrast(hexColor: string, amount?: number): string;
211
+ static getComputedColor(color?: string): string | undefined;
212
+ static getComputedRgb(color?: string): string | undefined;
213
+ static trasparentize(color?: string, value?: number): string;
214
+ }
215
+
216
+ interface PicsumOptions {
217
+ width: number;
218
+ height?: number;
219
+ grayscale?: boolean;
220
+ blur?: number;
221
+ seed?: string;
222
+ }
223
+ declare const getRandomImageUrl: (options: PicsumOptions) => string;
224
+
225
+ /**
226
+ * Deep partial type — makes all properties optional recursively.
227
+ */
228
+ type PartialDeep<T> = T extends (...args: unknown[]) => unknown ? T : T extends Array<infer U> ? Array<PartialDeep<U>> : T extends object ? {
229
+ [K in keyof T]?: PartialDeep<T[K]>;
230
+ } : T | undefined;
231
+ /**
232
+ * Recursively apply values on top of default values.
233
+ *
234
+ * Rules / assumptions:
235
+ * - Plain objects are merged recursively.
236
+ * - Arrays are replaced entirely by provided values (not concatenated).
237
+ * - If a provided value is `undefined`, the default is kept.
238
+ * - If a provided value is `null`, it overrides the default.
239
+ * - Non-plain objects (Date, RegExp, Map, Set, class instances) are replaced by the provided value when present.
240
+ *
241
+ * Example:
242
+ * const defaults = { a: 1, b: { c: 2, d: [1] } };
243
+ * const vals = { b: { c: 3 } };
244
+ * applyDefaults(defaults, vals) // => { a: 1, b: { c: 3, d: [1] } }
245
+ */
246
+ declare function applyDefaults<T>(defaults: T, values?: PartialDeep<T>): T;
247
+
248
+ declare const calculateOptimalPosition: (overlayRect: DOMRect, triggerRect: DOMRect, preferredPosition: Position) => Position;
249
+ declare const calculatePositionValues: (overlayRect: DOMRect, triggerRect: DOMRect, position: Position, offset?: number) => {
250
+ top: number;
251
+ left: number;
252
+ };
253
+
254
+ declare const formatFileSize: (bytes?: number) => string;
255
+ declare const formatAudioTime: (seconds: number) => string;
256
+ declare const getCreatedDate: (date: string) => string;
257
+
258
+ export { type ArrayElement, ColorHelpers, type ColorVar, type ComponentClassnames, type ComponentStyles, type HintedString, type PartialDeep, type Position, applyDefaults, calculateOptimalPosition, calculatePositionValues, cn, encodeWav, formatAudioTime, formatFileSize, getCreatedDate, getRandomImageUrl, trimBlob, useAnimateNumber, useCleenColors, useCleenOverlays, useControlled, useDebounce, useDisclosure, useForm, useOutsideClick, usePaginationState, usePositionClose, useValidation, useWidthDynamicResize };
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ import{useEffect as M,useState as A}from"react";var E=n=>1-(1-n)*(1-n),ae=({targetNumber:n,defaultNumber:r=0,duration:t=1e3,disabled:e=!1,easeOut:o=!0})=>{let[s,i]=A(r);return M(()=>{if(e)return;let a=null,l=c=>{a||(a=c);let u=c-a,f=Math.min(u/t,1);o&&(f=E(f));let m=f*n;i(m),m<n&&requestAnimationFrame(l)};requestAnimationFrame(l)},[n,t,e,o]),e?n:s};import{useEffect as U,useState as B}from"react";var ue=({value:n,defaultValue:r,onChange:t})=>{let e=n!==void 0,[o,s]=B(r),i=e?n:o,a=l=>{e||s(l),t?.(l)};return U(()=>{e||s(n??r??void 0)},[n,r,e]),{value:i,isControlled:e,handleChange:a}};import{useEffect as D,useState as V}from"react";var de=(n,r)=>{let[t,e]=V(n);return D(()=>{let o=setTimeout(()=>{e(n)},r);return()=>{clearTimeout(o)}},[n,r]),t};import{useState as L}from"react";var ge=n=>{let[r,t]=L(!1),e=n?.value!==void 0?n.value:r;return{isOpen:e,open:()=>{t(!0),n?.setValue?.(!0)},close:()=>{t(!1),n?.setValue?.(!1)},toggle:()=>{t(a=>!a),n?.setValue?.(!e)}}};import{useEffect as R,useMemo as $,useState as j}from"react";var Ce=({defaultValue:n,resetOnDefaultValueChange:r=!0})=>{let[t,e]=j(n),o=()=>e(n),s=(a,l)=>{e(c=>({...c,[a]:l}))},i=$(()=>JSON.stringify(t)!==JSON.stringify(n),[t,n]);return R(()=>{n&&r&&e(n)},[n,r]),{form:t,isDirty:i,setForm:e,setField:s,reset:o}};import{useEffect as W}from"react";function Te({refs:n,handler:r,enabled:t=!0}){W(()=>{if(!t)return;let e=o=>{n.some(i=>{let a=i.current;return a?a.contains(o.target):!1})||setTimeout(()=>r(o),0)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}},[n,r,t])}import{useState as P}from"react";function ke(n={}){let{initialPage:r=1,initialPageSize:t=10}=n,[e,o]=P(r),[s,i]=P(t);return{page:e,setPage:o,pageSize:s,setPageSize:i,handleNextPage:u=>o(u),handlePreviousPage:u=>o(u),handlePageChange:u=>o(u)}}var T=(n,r,t)=>{let e={width:window.innerWidth,height:window.innerHeight},o=t;if(t==="left"||t==="right"){let l=t==="left",c=r.left,u=e.width-r.right;return l&&c<n.width&&u>n.width?"right":!l&&u<n.width&&c>n.width?"left":o}let s=t.startsWith("bottom"),i=e.height-r.bottom,a=r.top;if(s&&i<n.height&&a>n.height?o=t.replace("bottom","top"):!s&&t.startsWith("top")&&a<n.height&&i>n.height&&(o=t.replace("top","bottom")),t.includes("-")){let l=t.endsWith("left"),c=e.width-r.right,u=r.left;l&&c<n.width&&u>n.width?o=o.replace("left","right"):!l&&c<n.width&&u>n.width&&(o=o.replace("right","left"))}return o},x=(n,r,t,e)=>{if(!r)return{top:0,left:0};let o=window.scrollY,s=window.scrollX,i=e||0,a=0;t.startsWith("bottom")?a=r.bottom+o+i:t.startsWith("top")?a=r.top+o-(n?.height||0)-i:a=r.top+o+r.height/2-(n?.height||0)/2;let l=0;return t==="left"?l=r.left+s-(n?.width||0)-i:t==="right"?l=r.right+s+i:t.endsWith("left")||t==="bottom"||t==="top"?l=r.left+s:t.endsWith("right")&&(l=r.right+s-(n?.width||0)),(t==="bottom"||t==="top")&&(l=r.left+s+r.width/2-(n?.width||0)/2),{top:a,left:l}};import{useEffect as z,useMemo as F,useState as I}from"react";var Ee=({triggerRef:n,targetRef:r,position:t="bottom-left",offset:e=8,isOpen:o})=>{let[s,i]=I(!1),{positionStyles:a,optimalPosition:l}=F(()=>{if(s&&r.current&&n.current){let c=r.current.getBoundingClientRect(),u=n.current.getBoundingClientRect(),f=T(c,u,t);return{positionStyles:x(c,u,f,e),optimalPosition:f}}return{positionStyles:{top:0,left:0},optimal:t}},[n,r,t,e,s]);return z(()=>{i(!!o)},[o]),{positionStyles:a,optimalPosition:l,isMounted:s}};import{useCallback as h,useState as N}from"react";var De=n=>{let[r,t]=N(n),e=h((i,a)=>{t(l=>(l[i]=a,{...l}))},[]),o=h(()=>{t(n)},[n]),s=h(i=>{t(a=>(delete a[i],{...a}))},[]);return{errors:r,setError:e,setErrors:t,clearError:s,clearErrors:o}};import{useEffect as H}from"react";var Re=({ref:n,skip:r},t)=>{H(()=>{let e=n.current;if(!e||r)return;let o=e.offsetWidth;e.style.width=`${o}px`,requestAnimationFrame(()=>{e.style.width="auto";let s=e.offsetWidth;e.style.width=`${o}px`,e.offsetHeight,e.style.width=`${s}px`;let i=()=>{e&&(e.style.width="auto"),e?.removeEventListener("transitionend",i)};e.addEventListener("transitionend",i)})},t)};import{create as G}from"zustand";import{persist as q}from"zustand/middleware";var S="--cleen-",K=["white","black","gray","pink","purple","indigo","blue","primary","success","warning","error","brand","sidebar","background"],ze=G()(q((n,r)=>({colors:{},getColors:()=>{let t=r().colors;return K.reduce((e,o)=>(t[o]?e[o]=t[o]:e[o]=getComputedStyle(document.documentElement).getPropertyValue(`${S}${o}`),e),{})},getColor:t=>{let e=r().colors;return e[t]?e[t]:getComputedStyle(document.documentElement).getPropertyValue(`${S}${t}`)},setColors:t=>Object.entries(t).map(([e,o])=>n(s=>({colors:{...s.colors,[e]:o}}))),setColor:(t,e)=>{n(o=>({colors:{...o.colors,[t]:e}}))},resetColors:()=>{n({colors:{}})},resetColor:t=>{let e=r().colors;delete e[t],n({colors:e})}}),{name:"cleen-colors"}));import{create as X}from"zustand";import{persist as J}from"zustand/middleware";var He=X()(J(n=>({overlays:[],addOverlay:r=>{n(t=>({overlays:[...t.overlays,r]}))},removeOverlay:r=>{n(t=>({overlays:t.overlays.filter(e=>e!==r)}))},clearOverlays:()=>{n({overlays:[]})}}),{name:"cleen-overlays"}));var Y=n=>{let{numberOfChannels:r,sampleRate:t,length:e}=n,o=16,s=r*o/8,i=t*s,a=e*s,l=new ArrayBuffer(44+a),c=new DataView(l),u=(m,p)=>{for(let d=0;d<p.length;d++)c.setUint8(m+d,p.charCodeAt(d))};u(0,"RIFF"),c.setUint32(4,36+a,!0),u(8,"WAVE"),u(12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,r,!0),c.setUint32(24,t,!0),c.setUint32(28,i,!0),c.setUint16(32,s,!0),c.setUint16(34,o,!0),u(36,"data"),c.setUint32(40,a,!0);let f=44;for(let m=0;m<e;m++)for(let p=0;p<r;p++){let d=Math.max(-1,Math.min(1,n.getChannelData(p)[m]));c.setInt16(f,d<0?d*32768:d*32767,!0),f+=2}return new Blob([l],{type:"audio/wav"})},qe=async(n,r,t)=>{let e=new AudioContext,o=await e.decodeAudioData(await n.arrayBuffer());await e.close();let{sampleRate:s,numberOfChannels:i}=o,a=Math.round(r*s),l=Math.round(t*s),c=l-a,u=new AudioContext().createBuffer(i,c,s);for(let f=0;f<i;f++)u.copyToChannel(o.getChannelData(f).subarray(a,l),f);return Y(u)};import Q from"clsx";import{createTailwindMerge as Z,getDefaultConfig as _}from"tailwind-merge";var ee=()=>({..._(),prefix:"cleen-"}),te=Z(ee),Ye=(...n)=>te(Q(n));import{darken as ne,getLuminance as k,lighten as oe,parseToRgba as g,toHex as re,toRgba as O}from"color2k";var v=class n{static deltaE(r,t){let e=n.rgb2lab(r),o=n.rgb2lab(t),s=e[0]-o[0],i=e[1]-o[1],a=e[2]-o[2],l=Math.sqrt(e[1]*e[1]+e[2]*e[2]),c=Math.sqrt(o[1]*o[1]+o[2]*o[2]),u=l-c,f=i*i+a*a-u*u;f=f<0?0:Math.sqrt(f);let m=1+.045*l,p=1+.015*l,d=s/1,w=u/m,C=f/p,y=d*d+w*w+C*C;return y<0?0:Math.sqrt(y)}static rgb2lab(r){let t=r[0]/255,e=r[1]/255,o=r[2]/255,s,i,a;return t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92,o=o>.04045?Math.pow((o+.055)/1.055,2.4):o/12.92,s=(t*.4124+e*.3576+o*.1805)/.95047,i=(t*.2126+e*.7152+o*.0722)/1,a=(t*.0193+e*.1192+o*.9505)/1.08883,s=s>.008856?Math.pow(s,1/3):7.787*s+16/116,i=i>.008856?Math.pow(i,1/3):7.787*i+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,[116*i-16,500*(s-i),200*(i-a)]}static isSimilar(r,t,e=24){return n.deltaE(g(r),g(t))<e}static adjustColorForContrast(r,t=.25){let e=re(r),o=r;try{if((e.match(/^#f{2,}e{0,2}$/i)||k(e)>.98)&&(e="#ffffff"),k(e)>.6){let s=ne(e,t);o=O(s)}else{let s=oe(e,t);o=O(s)}return o}catch{return"rgba(var(--cleen-white)"}}static getComputedColor(r){if(!r?.includes("var("))return r;let t=r.match(/var\((--[^,)]+)/)?.[1];if(t&&typeof window<"u"){let e=getComputedStyle(document.documentElement).getPropertyValue(t).trim();return e?`rgb(${e})`:void 0}}static getComputedRgb(r){if(!r)return;if(!r?.includes("var(")){let[e,o,s]=g(r);return`${e}, ${o}, ${s}`}let t=r.match(/var\((--[^,)]+)/)?.[1];if(t&&typeof window<"u")return getComputedStyle(document.documentElement).getPropertyValue(t).trim()}static trasparentize(r,t=0){return`color-mix(in srgb, ${r} ${(1-t)*100}%, transparent)`}};var se="https://picsum.photos",et=n=>{let{width:r,height:t,grayscale:e,blur:o,seed:s}=n,i=se;s&&(i+=`/seed/${encodeURIComponent(s)}`),i+=`/${r}/${t||r}`;let a=new URLSearchParams;e&&a.append("grayscale",""),o&&a.append("blur",o.toString()),s&&a.append("seed",s);let l=a.toString();return l&&(i+=`?${l}`),i};function b(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)&&Object.prototype.toString.call(n)==="[object Object]"}function nt(n,r){let t=(o,s)=>{if(s===void 0)return e(o);if(b(o)&&b(s)){let i={};return new Set([...Object.keys(o),...Object.keys(s)]).forEach(l=>{let c=o[l],u=s[l];i[l]=t(c,u)}),i}return Array.isArray(o)||Array.isArray(s)?e(s===void 0?o:s):e(s!==void 0?s:o)},e=o=>{if(o!==void 0){if(o===null)return null;if(Array.isArray(o))return o.map(s=>e(s));if(b(o)){let s={};return Object.keys(o).forEach(i=>{s[i]=e(o[i])}),s}return o}};return t(n,r)}var rt=n=>{if(n===0||!n)return"0 B";let r=1024,t=["B","KB","MB","GB","TB"],e=Math.floor(Math.log(n)/Math.log(r));return Math.round(n/Math.pow(r,e))+" "+t[e]},st=n=>{let r=Math.floor(n/60),t=Math.floor(n%60);return`${String(r).padStart(2,"0")}:${String(t).padStart(2,"0")}`},it=n=>{let r=new Date(n),e=Math.abs(new Date().getTime()-r.getTime());return`Created ${Math.ceil(e/(1e3*60*60*24))} days ago`};export{v as ColorHelpers,nt as applyDefaults,T as calculateOptimalPosition,x as calculatePositionValues,Ye as cn,Y as encodeWav,st as formatAudioTime,rt as formatFileSize,it as getCreatedDate,et as getRandomImageUrl,qe as trimBlob,ae as useAnimateNumber,ze as useCleenColors,He as useCleenOverlays,ue as useControlled,de as useDebounce,ge as useDisclosure,Ce as useForm,Te as useOutsideClick,ke as usePaginationState,Ee as usePositionClose,De as useValidation,Re as useWidthDynamicResize};
@@ -0,0 +1,15 @@
1
+ :root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74d3c;--toastify-color-transparent:hsla(0,0%,100%,.7);--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-container-width:fit-content;--toastify-toast-width:320px;--toastify-toast-offset:16px;--toastify-toast-top:max(var(--toastify-toast-offset),env(safe-area-inset-top));--toastify-toast-right:max(var(--toastify-toast-offset),env(safe-area-inset-right));--toastify-toast-left:max(var(--toastify-toast-offset),env(safe-area-inset-left));--toastify-toast-bottom:max(var(--toastify-toast-offset),env(safe-area-inset-bottom));--toastify-toast-background:#fff;--toastify-toast-padding:14px;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-toast-bd-radius:6px;--toastify-toast-shadow:0px 4px 12px rgba(0,0,0,.1);--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-bgo:0.2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translateZ(var(--toastify-z-index));position:fixed;width:var(--toastify-container-width);box-sizing:border-box;color:#fff;display:flex;flex-direction:column}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translateX(-50%);align-items:center}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right);align-items:end}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translateX(-50%);align-items:center}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right);align-items:end}.Toastify__toast{--y:0;position:relative;touch-action:none;width:var(--toastify-toast-width);min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:var(--toastify-toast-padding);border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);z-index:0;display:flex;flex:1 auto;align-items:center;word-break:break-word}@media only screen and (max-width:480px){.Toastify__toast-container{width:100vw;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translateX(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:auto}.Toastify__toast{--toastify-toast-width:100%;margin-bottom:0;border-radius:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__close-button,.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g)*1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{margin-inline-end:10px;width:22px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;position:absolute;top:6px;right:6px;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:1;opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:auto;transform-origin:right;border-bottom-left-radius:0}.Toastify__progress-bar--wrp{position:absolute;overflow:hidden;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.rdp-root{--rdp-accent-color:blue;--rdp-accent-background-color:#f0f0ff;--rdp-day-height:44px;--rdp-day-width:44px;--rdp-day_button-border-radius:100%;--rdp-day_button-border:2px solid transparent;--rdp-day_button-height:42px;--rdp-day_button-width:42px;--rdp-day_button-mid-range-height:28px;--rdp-day_button-mid-range-width:28px;--rdp-selected-border:2px solid var(--rdp-accent-color);--rdp-disabled-opacity:0.5;--rdp-outside-opacity:0.75;--rdp-today-color:var(
2
+ --rdp-accent-color
3
+ );--rdp-dropdown-gap:0.5rem;--rdp-months-gap:2rem;--rdp-nav_button-disabled-opacity:0.5;--rdp-nav_button-height:2.25rem;--rdp-nav_button-width:2.25rem;--rdp-nav-height:2.75rem;--rdp-range_middle-background-color:var(
4
+ --rdp-accent-background-color
5
+ );--rdp-range_middle-color:inherit;--rdp-range_start-color:#fff;--rdp-range_start-background:linear-gradient(var(--rdp-gradient-direction),transparent 50%,var(--rdp-range_middle-background-color) 50%);--rdp-range_start-date-background-color:var(
6
+ --rdp-accent-color
7
+ );--rdp-range_end-background:linear-gradient(var(--rdp-gradient-direction),var(--rdp-range_middle-background-color) 50%,transparent 50%);--rdp-range_end-color:#fff;--rdp-range_end-date-background-color:var(
8
+ --rdp-accent-color
9
+ );--rdp-week_number-border-radius:100%;--rdp-week_number-border:2px solid transparent;--rdp-week_number-height:var(
10
+ --rdp-day-height
11
+ );--rdp-week_number-opacity:0.75;--rdp-week_number-width:var(
12
+ --rdp-day-width
13
+ );--rdp-weeknumber-text-align:center;--rdp-weekday-opacity:0.75;--rdp-weekday-padding:0.5rem 0rem;--rdp-weekday-text-align:center;--rdp-gradient-direction:90deg;--rdp-animation_duration:0.3s;--rdp-animation_timing:cubic-bezier(0.4,0,0.2,1)}.rdp-root[dir=rtl]{--rdp-gradient-direction:-90deg}.rdp-root[data-broadcast-calendar=true]{--rdp-outside-opacity:unset}.rdp-root{position:relative}.rdp-root,.rdp-root *{box-sizing:border-box}.rdp-day{width:var(--rdp-day-width);height:var(--rdp-day-height);text-align:center}.rdp-day_button{background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;justify-content:center;align-items:center;display:flex;width:var(--rdp-day_button-width);height:var(--rdp-day_button-height);border:var(--rdp-day_button-border);border-radius:var(--rdp-day_button-border-radius)}.rdp-day_button:disabled{cursor:revert}.rdp-caption_label{z-index:1;position:relative;display:inline-flex;align-items:center;white-space:nowrap;border:0}.rdp-dropdown:focus-visible~.rdp-caption_label{outline:5px auto Highlight;outline:5px auto -webkit-focus-ring-color}.rdp-button_next,.rdp-button_previous{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;-moz-appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;position:relative;appearance:none;width:var(--rdp-nav_button-width);height:var(--rdp-nav_button-height)}.rdp-button_next:disabled,.rdp-button_next[aria-disabled=true],.rdp-button_previous:disabled,.rdp-button_previous[aria-disabled=true]{cursor:revert;opacity:var(--rdp-nav_button-disabled-opacity)}.rdp-chevron{display:inline-block;fill:var(--rdp-accent-color)}.rdp-root[dir=rtl] .rdp-nav .rdp-chevron{transform:rotate(180deg);transform-origin:50%}.rdp-dropdowns{position:relative;display:inline-flex;align-items:center;gap:var(--rdp-dropdown-gap)}.rdp-dropdown{z-index:2;opacity:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;inset-block-start:0;inset-block-end:0;inset-inline-start:0;width:100%;margin:0;padding:0;cursor:inherit;border:none;line-height:inherit}.rdp-dropdown_root{position:relative;display:inline-flex;align-items:center}.rdp-dropdown_root[data-disabled=true] .rdp-chevron{opacity:var(--rdp-disabled-opacity)}.rdp-month_caption{display:flex;align-content:center;height:var(--rdp-nav-height);font-weight:700;font-size:large}.rdp-root[data-nav-layout=after] .rdp-month,.rdp-root[data-nav-layout=around] .rdp-month{position:relative}.rdp-root[data-nav-layout=around] .rdp-month_caption{justify-content:center;margin-inline-start:var(--rdp-nav_button-width);margin-inline-end:var(--rdp-nav_button-width);position:relative}.rdp-root[data-nav-layout=around] .rdp-button_previous{position:absolute;inset-inline-start:0;top:0;height:var(--rdp-nav-height);display:inline-flex}.rdp-root[data-nav-layout=around] .rdp-button_next{position:absolute;inset-inline-end:0;top:0;height:var(--rdp-nav-height);display:inline-flex;justify-content:center}.rdp-months{position:relative;display:flex;flex-wrap:wrap;gap:var(--rdp-months-gap);max-width:-moz-fit-content;max-width:fit-content}.rdp-month_grid{border-collapse:collapse}.rdp-nav{position:absolute;inset-block-start:0;inset-inline-end:0;display:flex;align-items:center;height:var(--rdp-nav-height)}.rdp-weekday{opacity:var(--rdp-weekday-opacity);padding:var(--rdp-weekday-padding);font-weight:500;font-size:smaller;text-align:var(--rdp-weekday-text-align);text-transform:var(--rdp-weekday-text-transform)}.rdp-week_number{opacity:var(--rdp-week_number-opacity);font-weight:400;font-size:small;height:var(--rdp-week_number-height);width:var(--rdp-week_number-width);border:var(--rdp-week_number-border);border-radius:var(--rdp-week_number-border-radius);text-align:var(--rdp-weeknumber-text-align)}.rdp-today:not(.rdp-outside){color:var(--rdp-today-color)}.rdp-selected{font-weight:700;font-size:large}.rdp-selected .rdp-day_button{border:var(--rdp-selected-border)}.rdp-outside{opacity:var(--rdp-outside-opacity)}.rdp-disabled{opacity:var(--rdp-disabled-opacity)}.rdp-hidden{visibility:hidden;color:var(--rdp-range_start-color)}.rdp-range_start{background:var(--rdp-range_start-background)}.rdp-range_start .rdp-day_button{background-color:var(--rdp-range_start-date-background-color);color:var(--rdp-range_start-color)}.rdp-range_middle{border-radius:100%}.rdp-range_middle .rdp-day_button{color:var(--rdp-range_middle-color);background-color:var(--rdp-accent-color);font-weight:400;margin:auto;width:var(--rdp-day_button-mid-range-width);height:var(--rdp-day_button-mid-range-height)}.rdp-range_end{background:var(--rdp-range_end-background);color:var(--rdp-range_end-color)}.rdp-range_end .rdp-day_button{color:var(--rdp-range_start-color);background-color:var(--rdp-range_end-date-background-color)}.rdp-range_start.rdp-range_end{background:revert}.rdp-focusable{cursor:pointer}@keyframes rdp-slide_in_left{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes rdp-slide_in_right{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes rdp-slide_out_left{0%{transform:translateX(0)}to{transform:translateX(-100%)}}@keyframes rdp-slide_out_right{0%{transform:translateX(0)}to{transform:translateX(100%)}}.rdp-weeks_before_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_before_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}@keyframes rdp-fade_in{0%{opacity:0}to{opacity:1}}@keyframes rdp-fade_out{0%{opacity:1}to{opacity:0}}.rdp-caption_after_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_after_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
14
+
15
+ /*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.cleen .cleen-pointer-events-none{pointer-events:none}.cleen .cleen-pointer-events-auto{pointer-events:auto}.cleen .cleen-fixed{position:fixed}.cleen .cleen-absolute{position:absolute}.cleen .cleen-relative{position:relative}.cleen .cleen-sticky{position:sticky}.cleen .cleen-inset-0{inset:0}.cleen .-cleen-right-1{right:-.25rem}.cleen .-cleen-top-1{top:-.25rem}.cleen .cleen-bottom-0{bottom:0}.cleen .cleen-left-0{left:0}.cleen .cleen-left-1{left:.25rem}.cleen .cleen-left-1\/2{left:50%}.cleen .cleen-left-3{left:.75rem}.cleen .cleen-left-\[calc\(50\%\+14px\)\]{left:calc(50% + 14px)}.cleen .cleen-right-0{right:0}.cleen .cleen-right-2{right:.5rem}.cleen .cleen-right-3{right:.75rem}.cleen .cleen-right-\[-4px\]{right:-4px}.cleen .cleen-top-0{top:0}.cleen .cleen-top-1\.5{top:.375rem}.cleen .cleen-top-1\/2{top:50%}.cleen .cleen-top-2{top:.5rem}.cleen .cleen-top-3{top:.75rem}.cleen .cleen-top-7{top:1.75rem}.cleen .cleen-top-\[20\%\]{top:20%}.cleen .cleen-z-10{z-index:10}.cleen .cleen-z-50{z-index:50}.cleen .cleen-z-\[1\]{z-index:1}.cleen .cleen-z-\[999\]{z-index:999}.cleen .cleen-col-span-2{grid-column:span 2/span 2}.cleen .cleen-col-span-5{grid-column:span 5/span 5}.cleen .cleen-col-span-7{grid-column:span 7/span 7}.cleen .cleen-col-span-full{grid-column:1/-1}.cleen .cleen-row-span-2{grid-row:span 2/span 2}.cleen .cleen-m-0{margin:0}.cleen .cleen-m-auto{margin:auto}.cleen .cleen-mx-auto{margin-left:auto;margin-right:auto}.cleen .cleen-my-0{margin-top:0;margin-bottom:0}.cleen .cleen-my-2{margin-top:.5rem;margin-bottom:.5rem}.cleen .cleen-my-4{margin-top:1rem;margin-bottom:1rem}.cleen .cleen-my-auto{margin-top:auto;margin-bottom:auto}.cleen .-cleen-mt-3{margin-top:-.75rem}.cleen .cleen-mb-1{margin-bottom:.25rem}.cleen .cleen-mb-1\.5{margin-bottom:.375rem}.cleen .cleen-mb-2{margin-bottom:.5rem}.cleen .cleen-mb-3{margin-bottom:.75rem}.cleen .cleen-mb-4{margin-bottom:1rem}.cleen .cleen-mb-8{margin-bottom:2rem}.cleen .cleen-mb-auto{margin-bottom:auto}.cleen .cleen-ml-1{margin-left:.25rem}.cleen .cleen-ml-2{margin-left:.5rem}.cleen .cleen-ml-3{margin-left:.75rem}.cleen .cleen-ml-auto{margin-left:auto}.cleen .cleen-mr-1{margin-right:.25rem}.cleen .cleen-mr-1\.5{margin-right:.375rem}.cleen .cleen-mt-1{margin-top:.25rem}.cleen .cleen-mt-2{margin-top:.5rem}.cleen .cleen-mt-3{margin-top:.75rem}.cleen .cleen-mt-6{margin-top:1.5rem}.cleen .cleen-mt-8{margin-top:2rem}.cleen .cleen-line-clamp-1{-webkit-line-clamp:1}.cleen .cleen-line-clamp-1,.cleen .cleen-line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.cleen .cleen-line-clamp-2{-webkit-line-clamp:2}.cleen .cleen-line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.cleen .cleen-block{display:block}.cleen .cleen-inline-block{display:inline-block}.cleen .cleen-flex{display:flex}.cleen .cleen-inline-flex{display:inline-flex}.cleen .cleen-grid{display:grid}.cleen .cleen-hidden{display:none}.cleen .cleen-aspect-video{aspect-ratio:16/9}.cleen .\!cleen-size-9{width:2.25rem!important;height:2.25rem!important}.cleen .cleen-size-1\.5{width:.375rem;height:.375rem}.cleen .cleen-size-10{width:2.5rem;height:2.5rem}.cleen .cleen-size-11{width:2.75rem;height:2.75rem}.cleen .cleen-size-12{width:3rem;height:3rem}.cleen .cleen-size-14{width:3.5rem;height:3.5rem}.cleen .cleen-size-2{width:.5rem;height:.5rem}.cleen .cleen-size-2\.5{width:.625rem;height:.625rem}.cleen .cleen-size-3{width:.75rem;height:.75rem}.cleen .cleen-size-3\.5{width:.875rem;height:.875rem}.cleen .cleen-size-4{width:1rem;height:1rem}.cleen .cleen-size-5{width:1.25rem;height:1.25rem}.cleen .cleen-size-6{width:1.5rem;height:1.5rem}.cleen .cleen-size-7{width:1.75rem;height:1.75rem}.cleen .cleen-size-8{width:2rem;height:2rem}.cleen .cleen-size-9{width:2.25rem;height:2.25rem}.cleen .cleen-size-\[30px\]{width:30px;height:30px}.cleen .cleen-size-\[50px\]{width:50px;height:50px}.cleen .cleen-size-fit{width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content}.cleen .cleen-size-full{width:100%;height:100%}.cleen .cleen-h-0{height:0}.cleen .cleen-h-0\.5{height:.125rem}.cleen .cleen-h-1{height:.25rem}.cleen .cleen-h-10{height:2.5rem}.cleen .cleen-h-11{height:2.75rem}.cleen .cleen-h-12{height:3rem}.cleen .cleen-h-14{height:3.5rem}.cleen .cleen-h-16{height:4rem}.cleen .cleen-h-2{height:.5rem}.cleen .cleen-h-20{height:5rem}.cleen .cleen-h-24{height:6rem}.cleen .cleen-h-28{height:7rem}.cleen .cleen-h-3{height:.75rem}.cleen .cleen-h-3\/5{height:60%}.cleen .cleen-h-4{height:1rem}.cleen .cleen-h-40{height:10rem}.cleen .cleen-h-48{height:12rem}.cleen .cleen-h-5{height:1.25rem}.cleen .cleen-h-6{height:1.5rem}.cleen .cleen-h-7{height:1.75rem}.cleen .cleen-h-8{height:2rem}.cleen .cleen-h-\[1px\]{height:1px}.cleen .cleen-h-\[200px\]{height:200px}.cleen .cleen-h-\[2px\]{height:2px}.cleen .cleen-h-\[300px\]{height:300px}.cleen .cleen-h-\[344px\]{height:344px}.cleen .cleen-h-\[600px\]{height:600px}.cleen .cleen-h-\[calc\(100\%-4px\)\]{height:calc(100% - 4px)}.cleen .cleen-h-fit{height:-moz-fit-content;height:fit-content}.cleen .cleen-h-full{height:100%}.cleen .cleen-h-max{height:-moz-max-content;height:max-content}.cleen .cleen-h-px{height:1px}.cleen .cleen-h-screen{height:100vh}.cleen .cleen-max-h-64{max-height:16rem}.cleen .cleen-max-h-\[600px\]{max-height:600px}.cleen .cleen-max-h-\[90vh\]{max-height:90vh}.cleen .cleen-max-h-fit{max-height:-moz-fit-content;max-height:fit-content}.cleen .\!cleen-min-h-\[36px\]{min-height:36px!important}.cleen .cleen-min-h-10{min-height:2.5rem}.cleen .cleen-min-h-20{min-height:5rem}.cleen .cleen-min-h-4{min-height:1rem}.cleen .cleen-min-h-5{min-height:1.25rem}.cleen .cleen-min-h-6{min-height:1.5rem}.cleen .cleen-min-h-\[24px\]{min-height:24px}.cleen .cleen-min-h-\[60px\]{min-height:60px}.cleen .cleen-w-0{width:0}.cleen .cleen-w-0\.5{width:.125rem}.cleen .cleen-w-1\/12{width:8.333333%}.cleen .cleen-w-1\/2{width:50%}.cleen .cleen-w-1\/4{width:25%}.cleen .cleen-w-10{width:2.5rem}.cleen .cleen-w-11{width:2.75rem}.cleen .cleen-w-11\/12{width:91.666667%}.cleen .cleen-w-12{width:3rem}.cleen .cleen-w-14{width:3.5rem}.cleen .cleen-w-16{width:4rem}.cleen .cleen-w-2{width:.5rem}.cleen .cleen-w-2\.5{width:.625rem}.cleen .cleen-w-2\/12{width:16.666667%}.cleen .cleen-w-2\/3{width:66.666667%}.cleen .cleen-w-2\/5{width:40%}.cleen .cleen-w-20{width:5rem}.cleen .cleen-w-24{width:6rem}.cleen .cleen-w-28{width:7rem}.cleen .cleen-w-3\/12{width:25%}.cleen .cleen-w-3\/4{width:75%}.cleen .cleen-w-3\/5{width:60%}.cleen .cleen-w-32{width:8rem}.cleen .cleen-w-4{width:1rem}.cleen .cleen-w-4\/5{width:80%}.cleen .cleen-w-5{width:1.25rem}.cleen .cleen-w-5\/6{width:83.333333%}.cleen .cleen-w-52{width:13rem}.cleen .cleen-w-6{width:1.5rem}.cleen .cleen-w-60{width:15rem}.cleen .cleen-w-72{width:18rem}.cleen .cleen-w-\[170px\]{width:170px}.cleen .cleen-w-\[1px\]{width:1px}.cleen .cleen-w-\[2px\]{width:2px}.cleen .cleen-w-\[300px\]{width:300px}.cleen .cleen-w-\[500px\]{width:500px}.cleen .cleen-w-\[80px\]{width:80px}.cleen .cleen-w-\[9px\]{width:9px}.cleen .cleen-w-\[calc\(100\%\+4px\)\]{width:calc(100% + 4px)}.cleen .cleen-w-\[calc\(100\%-30px\)\]{width:calc(100% - 30px)}.cleen .cleen-w-\[calc\(100\%-40px\)\]{width:calc(100% - 40px)}.cleen .cleen-w-fit{width:-moz-fit-content;width:fit-content}.cleen .cleen-w-full{width:100%}.cleen .cleen-w-max{width:-moz-max-content;width:max-content}.cleen .cleen-w-min{width:-moz-min-content;width:min-content}.cleen .cleen-w-screen{width:100vw}.cleen .cleen-min-w-0{min-width:0}.cleen .cleen-min-w-10{min-width:2.5rem}.cleen .cleen-min-w-4{min-width:1rem}.cleen .cleen-min-w-5{min-width:1.25rem}.cleen .cleen-min-w-6{min-width:1.5rem}.cleen .cleen-min-w-80{min-width:20rem}.cleen .cleen-min-w-\[140px\]{min-width:140px}.cleen .cleen-min-w-\[1px\]{min-width:1px}.cleen .cleen-min-w-full{min-width:100%}.cleen .cleen-min-w-max{min-width:-moz-max-content;min-width:max-content}.cleen .cleen-max-w-80{max-width:20rem}.cleen .cleen-max-w-\[120px\]{max-width:120px}.cleen .cleen-max-w-\[200px\]{max-width:200px}.cleen .cleen-max-w-fit{max-width:-moz-fit-content;max-width:fit-content}.cleen .cleen-max-w-full{max-width:100%}.cleen .cleen-max-w-lg{max-width:32rem}.cleen .cleen-flex-1{flex:1 1 0%}.cleen .cleen-flex-\[1_1_auto\]{flex:1 1 auto}.cleen .cleen-flex-shrink-0,.cleen .cleen-shrink-0{flex-shrink:0}.cleen .cleen-flex-grow{flex-grow:1}.cleen .cleen-table-fixed{table-layout:fixed}.cleen .-cleen-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cleen .-cleen-translate-y-1\/2,.cleen .cleen--translate-y-1\/2{--tw-translate-y:-50%}.cleen .-cleen-translate-y-1\/2,.cleen .cleen--translate-y-1\/2,.cleen .cleen-translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cleen .cleen-translate-x-0{--tw-translate-x:0px}.cleen .cleen-translate-x-5{--tw-translate-x:1.25rem}.cleen .cleen-translate-x-5,.cleen .cleen-translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cleen .cleen-translate-x-full{--tw-translate-x:100%}.cleen .cleen-translate-y-full{--tw-translate-y:100%}.cleen .-cleen-rotate-90,.cleen .cleen-translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cleen .-cleen-rotate-90{--tw-rotate:-90deg}.cleen .cleen-rotate-3{--tw-rotate:3deg}.cleen .cleen-rotate-3,.cleen .cleen-rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cleen .cleen-rotate-90{--tw-rotate:90deg}.cleen .cleen-scale-100{--tw-scale-x:1;--tw-scale-y:1}.cleen .cleen-scale-100,.cleen .cleen-scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cleen .cleen-scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.cleen .cleen-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes cleen-spin{to{transform:rotate(1turn)}}.cleen .cleen-animate-\[spin_0\.65s_linear_infinite\]{animation:cleen-spin .65s linear infinite}@keyframes cleen-pulse{50%{opacity:.5}}.cleen .cleen-animate-pulse{animation:cleen-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cleen .cleen-cursor-col-resize{cursor:col-resize}.cleen .cleen-cursor-default{cursor:default}.cleen .cleen-cursor-grab{cursor:grab}.cleen .cleen-cursor-not-allowed{cursor:not-allowed}.cleen .cleen-cursor-pointer{cursor:pointer}.cleen .cleen-cursor-text{cursor:text}.cleen .cleen-touch-none{touch-action:none}.cleen .cleen-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.cleen .cleen-list-none{list-style-type:none}.cleen .cleen-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.cleen .cleen-grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.cleen .cleen-flex-row{flex-direction:row}.cleen .cleen-flex-col{flex-direction:column}.cleen .cleen-flex-wrap{flex-wrap:wrap}.cleen .cleen-items-start{align-items:flex-start}.cleen .cleen-items-end{align-items:flex-end}.cleen .cleen-items-center{align-items:center}.cleen .cleen-items-stretch{align-items:stretch}.cleen .cleen-justify-start{justify-content:flex-start}.cleen .cleen-justify-end{justify-content:flex-end}.cleen .cleen-justify-center{justify-content:center}.cleen .cleen-justify-between{justify-content:space-between}.cleen .cleen-justify-around{justify-content:space-around}.cleen .cleen-gap-0{gap:0}.cleen .cleen-gap-0\.5{gap:.125rem}.cleen .cleen-gap-1{gap:.25rem}.cleen .cleen-gap-1\.5{gap:.375rem}.cleen .cleen-gap-2{gap:.5rem}.cleen .cleen-gap-2\.5{gap:.625rem}.cleen .cleen-gap-3{gap:.75rem}.cleen .cleen-gap-3\.5{gap:.875rem}.cleen .cleen-gap-4{gap:1rem}.cleen .cleen-gap-5{gap:1.25rem}.cleen .cleen-gap-6{gap:1.5rem}.cleen .cleen-gap-8{gap:2rem}.cleen :is(.cleen-space-y-0\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.cleen :is(.cleen-space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.cleen :is(.cleen-space-y-1\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.cleen :is(.cleen-space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.cleen :is(.cleen-space-y-3>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.cleen :is(.cleen-space-y-4>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.cleen :is(.cleen-space-y-5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.cleen :is(.cleen-space-y-6>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.cleen :is(.cleen-divide-y>:not([hidden])~:not([hidden])){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.cleen :is(.cleen-divide-gray\/10>:not([hidden])~:not([hidden])){border-color:rgba(var(--cleen-gray),.1)}.cleen .cleen-self-end{align-self:flex-end}.cleen .cleen-overflow-auto{overflow:auto}.cleen .cleen-overflow-hidden{overflow:hidden}.cleen .cleen-overflow-visible{overflow:visible}.cleen .cleen-overflow-scroll{overflow:scroll}.cleen .cleen-overflow-x-auto{overflow-x:auto}.cleen .cleen-overflow-y-auto{overflow-y:auto}.cleen .cleen-overflow-y-hidden{overflow-y:hidden}.cleen .cleen-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cleen .cleen-text-ellipsis{text-overflow:ellipsis}.cleen .cleen-whitespace-nowrap{white-space:nowrap}.cleen .cleen-whitespace-pre-wrap{white-space:pre-wrap}.cleen .cleen-text-nowrap{text-wrap:nowrap}.cleen .cleen-rounded{border-radius:.25rem}.cleen .cleen-rounded-2xl{border-radius:1rem}.cleen .cleen-rounded-\[10px\]{border-radius:10px}.cleen .cleen-rounded-\[50\%\]{border-radius:50%}.cleen .cleen-rounded-full{border-radius:9999px}.cleen .cleen-rounded-lg{border-radius:.5rem}.cleen .cleen-rounded-md{border-radius:.375rem}.cleen .cleen-rounded-none{border-radius:0}.cleen .cleen-rounded-sm{border-radius:.125rem}.cleen .cleen-rounded-xl{border-radius:.75rem}.cleen .cleen-rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.cleen .cleen-rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.cleen .cleen-rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.cleen .cleen-rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.cleen .cleen-rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.cleen .cleen-border{border-width:1px}.cleen .cleen-border-0{border-width:0}.cleen .cleen-border-2{border-width:2px}.cleen .cleen-border-4{border-width:4px}.cleen .cleen-border-\[2px\]{border-width:2px}.cleen .cleen-border-y-\[8px\]{border-top-width:8px;border-bottom-width:8px}.cleen .cleen-border-b{border-bottom-width:1px}.cleen .cleen-border-b-2{border-bottom-width:2px}.cleen .cleen-border-b-\[1px\]{border-bottom-width:1px}.cleen .cleen-border-l-2{border-left-width:2px}.cleen .cleen-border-l-\[14px\]{border-left-width:14px}.cleen .cleen-border-r{border-right-width:1px}.cleen .cleen-border-t,.cleen .cleen-border-t-\[1px\]{border-top-width:1px}.cleen .cleen-border-dashed{border-style:dashed}.cleen .cleen-border-none{border-style:none}.cleen .cleen-border-brand{border-color:rgba(var(--cleen-brand))}.cleen .cleen-border-error{border-color:rgba(var(--cleen-error))}.cleen .cleen-border-error\/20{border-color:rgba(var(--cleen-error),.2)}.cleen .cleen-border-error\/50{border-color:rgba(var(--cleen-error),.5)}.cleen .cleen-border-gray\/10{border-color:rgba(var(--cleen-gray),.1)}.cleen .cleen-border-gray\/15{border-color:rgba(var(--cleen-gray),.15)}.cleen .cleen-border-gray\/20{border-color:rgba(var(--cleen-gray),.2)}.cleen .cleen-border-gray\/25{border-color:rgba(var(--cleen-gray),.25)}.cleen .cleen-border-gray\/30{border-color:rgba(var(--cleen-gray),.3)}.cleen .cleen-border-gray\/60{border-color:rgba(var(--cleen-gray),.6)}.cleen .cleen-border-indigo\/50{border-color:rgba(var(--cleen-indigo),.5)}.cleen .cleen-border-pink\/50{border-color:rgba(var(--cleen-pink),.5)}.cleen .cleen-border-primary{border-color:rgba(var(--cleen-primary))}.cleen .cleen-border-primary\/20{border-color:rgba(var(--cleen-primary),.2)}.cleen .cleen-border-primary\/30{border-color:rgba(var(--cleen-primary),.3)}.cleen .cleen-border-primary\/50{border-color:rgba(var(--cleen-primary),.5)}.cleen .cleen-border-primary\/60{border-color:rgba(var(--cleen-primary),.6)}.cleen .cleen-border-purple\/20{border-color:rgba(var(--cleen-purple),.2)}.cleen .cleen-border-success\/20{border-color:rgba(var(--cleen-success),.2)}.cleen .cleen-border-transparent{border-color:transparent}.cleen .cleen-border-warning\/20{border-color:rgba(var(--cleen-warning),.2)}.cleen .cleen-border-white{border-color:rgba(var(--cleen-white))}.cleen .cleen-border-y-transparent{border-top-color:transparent;border-bottom-color:transparent}.cleen .cleen-border-b-gray\/10{border-bottom-color:rgba(var(--cleen-gray),.1)}.cleen .cleen-border-b-transparent{border-bottom-color:transparent}.cleen .cleen-border-l-gray\/40{border-left-color:rgba(var(--cleen-gray),.4)}.cleen .cleen-border-r-gray\/10{border-right-color:rgba(var(--cleen-gray),.1)}.cleen .cleen-border-t-gray\/10{border-top-color:rgba(var(--cleen-gray),.1)}.cleen .cleen-bg-background{background-color:rgba(var(--cleen-background))}.cleen .cleen-bg-black\/50{background-color:rgba(var(--cleen-black),.5)}.cleen .cleen-bg-brand{background-color:rgba(var(--cleen-brand))}.cleen .cleen-bg-brand\/10{background-color:rgba(var(--cleen-brand),.1)}.cleen .cleen-bg-error{background-color:rgba(var(--cleen-error))}.cleen .cleen-bg-error\/10{background-color:rgba(var(--cleen-error),.1)}.cleen .cleen-bg-error\/5{background-color:rgba(var(--cleen-error),.05)}.cleen .cleen-bg-error\/50{background-color:rgba(var(--cleen-error),.5)}.cleen .cleen-bg-error\/60{background-color:rgba(var(--cleen-error),.6)}.cleen .cleen-bg-error\/80{background-color:rgba(var(--cleen-error),.8)}.cleen .cleen-bg-gray\/10{background-color:rgba(var(--cleen-gray),.1)}.cleen .cleen-bg-gray\/15{background-color:rgba(var(--cleen-gray),.15)}.cleen .cleen-bg-gray\/20{background-color:rgba(var(--cleen-gray),.2)}.cleen .cleen-bg-gray\/30{background-color:rgba(var(--cleen-gray),.3)}.cleen .cleen-bg-gray\/5{background-color:rgba(var(--cleen-gray),.05)}.cleen .cleen-bg-gray\/50{background-color:rgba(var(--cleen-gray),.5)}.cleen .cleen-bg-gray\/80{background-color:rgba(var(--cleen-gray),.8)}.cleen .cleen-bg-indigo\/5{background-color:rgba(var(--cleen-indigo),.05)}.cleen .cleen-bg-indigo\/50{background-color:rgba(var(--cleen-indigo),.5)}.cleen .cleen-bg-pink\/5{background-color:rgba(var(--cleen-pink),.05)}.cleen .cleen-bg-pink\/50{background-color:rgba(var(--cleen-pink),.5)}.cleen .cleen-bg-primary{background-color:rgba(var(--cleen-primary))}.cleen .cleen-bg-primary\/10{background-color:rgba(var(--cleen-primary),.1)}.cleen .cleen-bg-primary\/5{background-color:rgba(var(--cleen-primary),.05)}.cleen .cleen-bg-primary\/50{background-color:rgba(var(--cleen-primary),.5)}.cleen .cleen-bg-primary\/60{background-color:rgba(var(--cleen-primary),.6)}.cleen .cleen-bg-primary\/80{background-color:rgba(var(--cleen-primary),.8)}.cleen .cleen-bg-purple\/5{background-color:rgba(var(--cleen-purple),.05)}.cleen .cleen-bg-purple\/50{background-color:rgba(var(--cleen-purple),.5)}.cleen .cleen-bg-sidebar{background-color:rgba(var(--cleen-sidebar))}.cleen .cleen-bg-success{background-color:rgba(var(--cleen-success))}.cleen .cleen-bg-success\/10{background-color:rgba(var(--cleen-success),.1)}.cleen .cleen-bg-success\/5{background-color:rgba(var(--cleen-success),.05)}.cleen .cleen-bg-success\/50{background-color:rgba(var(--cleen-success),.5)}.cleen .cleen-bg-transparent{background-color:transparent}.cleen .cleen-bg-warning\/5{background-color:rgba(var(--cleen-warning),.05)}.cleen .cleen-bg-warning\/50{background-color:rgba(var(--cleen-warning),.5)}.cleen .cleen-bg-warning\/80{background-color:rgba(var(--cleen-warning),.8)}.cleen .cleen-bg-white{background-color:rgba(var(--cleen-white))}.cleen .cleen-stroke-\[3px\]{stroke-width:3px}.cleen .cleen-object-cover{-o-object-fit:cover;object-fit:cover}.cleen .cleen-p-0{padding:0}.cleen .cleen-p-0\.5{padding:.125rem}.cleen .cleen-p-1{padding:.25rem}.cleen .cleen-p-1\.5{padding:.375rem}.cleen .cleen-p-2{padding:.5rem}.cleen .cleen-p-2\.5{padding:.625rem}.cleen .cleen-p-3{padding:.75rem}.cleen .cleen-p-4{padding:1rem}.cleen .cleen-p-5{padding:1.25rem}.cleen .cleen-p-6{padding:1.5rem}.cleen .cleen-p-8{padding:2rem}.cleen .\!cleen-px-3{padding-left:.75rem!important;padding-right:.75rem!important}.cleen .\!cleen-py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.cleen .cleen-px-1{padding-left:.25rem;padding-right:.25rem}.cleen .cleen-px-1\.5{padding-left:.375rem;padding-right:.375rem}.cleen .cleen-px-2{padding-left:.5rem;padding-right:.5rem}.cleen .cleen-px-3{padding-left:.75rem;padding-right:.75rem}.cleen .cleen-px-3\.5{padding-left:.875rem;padding-right:.875rem}.cleen .cleen-px-4{padding-left:1rem;padding-right:1rem}.cleen .cleen-px-5{padding-left:1.25rem;padding-right:1.25rem}.cleen .cleen-px-6{padding-left:1.5rem;padding-right:1.5rem}.cleen .cleen-px-8{padding-left:2rem;padding-right:2rem}.cleen .cleen-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.cleen .cleen-py-1{padding-top:.25rem;padding-bottom:.25rem}.cleen .cleen-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.cleen .cleen-py-12{padding-top:3rem;padding-bottom:3rem}.cleen .cleen-py-2{padding-top:.5rem;padding-bottom:.5rem}.cleen .cleen-py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.cleen .cleen-py-3{padding-top:.75rem;padding-bottom:.75rem}.cleen .cleen-py-4{padding-top:1rem;padding-bottom:1rem}.cleen .cleen-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.cleen .\!cleen-pl-2{padding-left:.5rem!important}.cleen .\!cleen-pr-2{padding-right:.5rem!important}.cleen .cleen-pb-0\.5{padding-bottom:.125rem}.cleen .cleen-pb-1\.5{padding-bottom:.375rem}.cleen .cleen-pb-3{padding-bottom:.75rem}.cleen .cleen-pb-4{padding-bottom:1rem}.cleen .cleen-pb-6{padding-bottom:1.5rem}.cleen .cleen-pb-8{padding-bottom:2rem}.cleen .cleen-pl-0{padding-left:0}.cleen .cleen-pl-1{padding-left:.25rem}.cleen .cleen-pl-12{padding-left:3rem}.cleen .cleen-pl-2{padding-left:.5rem}.cleen .cleen-pl-2\.5{padding-left:.625rem}.cleen .cleen-pl-3{padding-left:.75rem}.cleen .cleen-pl-3\.5{padding-left:.875rem}.cleen .cleen-pr-0{padding-right:0}.cleen .cleen-pr-2{padding-right:.5rem}.cleen .cleen-pt-0{padding-top:0}.cleen .cleen-pt-1{padding-top:.25rem}.cleen .cleen-pt-2{padding-top:.5rem}.cleen .cleen-pt-4{padding-top:1rem}.cleen .cleen-pt-6{padding-top:1.5rem}.cleen .cleen-pt-8{padding-top:2rem}.cleen .cleen-pt-9{padding-top:2.25rem}.cleen .cleen-text-left{text-align:left}.cleen .cleen-text-center{text-align:center}.cleen .cleen-text-2xl{font-size:1.5rem;line-height:2rem}.cleen .cleen-text-5xl{font-size:3rem;line-height:1}.cleen .cleen-text-\[10px\]{font-size:10px}.cleen .cleen-text-\[12px\]{font-size:12px}.cleen .cleen-text-\[14px\]{font-size:14px}.cleen .cleen-text-\[20px\]{font-size:20px}.cleen .cleen-text-\[8px\]{font-size:8px}.cleen .cleen-text-base{font-size:1rem;line-height:1.5rem}.cleen .cleen-text-lg{font-size:1.125rem;line-height:1.75rem}.cleen .cleen-text-sm{font-size:.875rem;line-height:1.25rem}.cleen .cleen-text-xl{font-size:1.25rem;line-height:1.75rem}.cleen .cleen-text-xs{font-size:.75rem;line-height:1rem}.cleen .cleen-font-bold{font-weight:700}.cleen .cleen-font-medium{font-weight:500}.cleen .cleen-font-normal{font-weight:400}.cleen .cleen-font-semibold{font-weight:600}.cleen .cleen-uppercase{text-transform:uppercase}.cleen .cleen-tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.cleen .cleen-leading-5{line-height:1.25rem}.cleen .cleen-leading-6{line-height:1.5rem}.cleen .cleen-leading-\[20px\]{line-height:20px}.cleen .cleen-text-black{color:rgba(var(--cleen-black))}.cleen .cleen-text-black\/60{color:rgba(var(--cleen-black),.6)}.cleen .cleen-text-error{color:rgba(var(--cleen-error))}.cleen .cleen-text-error\/60{color:rgba(var(--cleen-error),.6)}.cleen .cleen-text-gray{color:rgba(var(--cleen-gray))}.cleen .cleen-text-gray\/10{color:rgba(var(--cleen-gray),.1)}.cleen .cleen-text-gray\/20{color:rgba(var(--cleen-gray),.2)}.cleen .cleen-text-gray\/30{color:rgba(var(--cleen-gray),.3)}.cleen .cleen-text-gray\/40{color:rgba(var(--cleen-gray),.4)}.cleen .cleen-text-gray\/50{color:rgba(var(--cleen-gray),.5)}.cleen .cleen-text-gray\/60{color:rgba(var(--cleen-gray),.6)}.cleen .cleen-text-gray\/70{color:rgba(var(--cleen-gray),.7)}.cleen .cleen-text-gray\/80{color:rgba(var(--cleen-gray),.8)}.cleen .cleen-text-gray\/90{color:rgba(var(--cleen-gray),.9)}.cleen .cleen-text-indigo\/80{color:rgba(var(--cleen-indigo),.8)}.cleen .cleen-text-pink\/80{color:rgba(var(--cleen-pink),.8)}.cleen .cleen-text-primary{color:rgba(var(--cleen-primary))}.cleen .cleen-text-primary\/70{color:rgba(var(--cleen-primary),.7)}.cleen .cleen-text-purple\/80{color:rgba(var(--cleen-purple),.8)}.cleen .cleen-text-success{color:rgba(var(--cleen-success))}.cleen .cleen-text-transparent{color:transparent}.cleen .cleen-text-warning{color:rgba(var(--cleen-warning))}.cleen .cleen-text-white{color:rgba(var(--cleen-white))}.cleen .cleen-line-through{text-decoration-line:line-through}.cleen .cleen-opacity-0{opacity:0}.cleen .cleen-opacity-100{opacity:1}.cleen .cleen-opacity-30{opacity:.3}.cleen .cleen-opacity-50{opacity:.5}.cleen .cleen-opacity-60{opacity:.6}.cleen .cleen-opacity-90{opacity:.9}.cleen .\!cleen-shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.cleen .cleen-shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.cleen .cleen-shadow-\[0px_12px_16px_-4px_rgba\(var\(--cleen-gray\)\,0\.1\)\]{--tw-shadow:0px 12px 16px -4px rgba(var(--cleen-gray),0.1);--tw-shadow-colored:0px 12px 16px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.cleen .cleen-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.cleen .cleen-shadow-lg,.cleen .cleen-shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.cleen .cleen-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.cleen .cleen-shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.cleen .cleen-shadow-none,.cleen .cleen-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.cleen .cleen-shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.cleen .cleen-shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.cleen .cleen-outline-none{outline:2px solid transparent;outline-offset:2px}.cleen .cleen-ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.cleen .cleen-ring-0,.cleen .cleen-ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.cleen .cleen-ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.cleen .cleen-ring-primary{--tw-ring-color:rgba(var(--cleen-primary))}.cleen .cleen-ring-offset-1{--tw-ring-offset-width:1px}.cleen .cleen-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.cleen .cleen-transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.cleen .cleen-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.cleen .cleen-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.cleen .cleen-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.cleen .cleen-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.cleen .cleen-duration-100{transition-duration:.1s}.cleen .cleen-duration-150{transition-duration:.15s}.cleen .cleen-duration-200{transition-duration:.2s}.cleen .cleen-duration-300{transition-duration:.3s}.cleen .cleen-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.cleen .\[filter\:brightness\(0\)_saturate\(100\%\)_invert\(22\%\)_sepia\(12\%\)_saturate\(1405\%\)_hue-rotate\(179deg\)_brightness\(93\%\)_contrast\(86\%\)\]{filter:brightness(0) saturate(100%) invert(22%) sepia(12%) saturate(1405%) hue-rotate(179deg) brightness(93%) contrast(86%)}.cleen .\[filter\:brightness\(0\)_saturate\(100\%\)_invert\(54\%\)_sepia\(56\%\)_saturate\(7022\%\)_hue-rotate\(179deg\)_brightness\(102\%\)_contrast\(101\%\)\]{filter:brightness(0) saturate(100%) invert(54%) sepia(56%) saturate(7022%) hue-rotate(179deg) brightness(102%) contrast(101%)}.cleen-no-scrollbar::-webkit-scrollbar{display:none}.cleen-no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}:root{--cleen-white:255,255,255;--cleen-black:0,0,0;--cleen-gray:38,38,38;--cleen-pink:193,21,116;--cleen-purple:89,37,220;--cleen-indigo:53,56,205;--cleen-blue:23,92,211;--cleen-light-gray:200,200,200;--cleen-primary:0,133,211;--cleen-success:6,118,71;--cleen-warning:181,71,8;--cleen-error:180,35,24;--cleen-brand:68,129,193;--cleen-sidebar:249,250,251;--cleen-background:255,255,255;--cleen-accent:65,70,81;--toastify-color-light:rgb(var(--cleen-background));--toastify-text-color-light:rgba(var(--cleen-gray),0.6);--toastify-toast-shadow:0px 4px 12px rgba(var(--cleen-black),0.1);--toastify-color-info:rgb(var(--cleen-primary));--toastify-color-success:rgb(var(--cleen-success));--toastify-color-warning:rgb(var(--cleen-warning));--toastify-color-error:rgb(var(--cleen-error));.Toastify__close-button{color:rgb(var(--cleen-black))}.rdp-root{--rdp-accent-color:rgb(var(--cleen-primary));--rdp-accent-background-color:rgb(var(--cleen-background));--rdp-range_middle-color:rgb(var(--cleen-white))}.cleen-waveform ::part(region-handle){border-color:rgb(var(--cleen-black))!important}}.dark{--cleen-white:3,7,18;--cleen-black:243,244,246;--cleen-gray:209,213,219;--cleen-pink:236,72,153;--cleen-purple:168,85,247;--cleen-indigo:99,102,241;--cleen-blue:59,130,246;--cleen-light-gray:100,100,100;--cleen-primary:0,157,248;--cleen-success:34,197,94;--cleen-warning:251,191,36;--cleen-error:239,68,68;--cleen-brand:0,122,204;--cleen-sidebar:17,24,39;--cleen-background:3,7,18;--cleen-accent:255,255,255;.rdp-root{--rdp-range_middle-color:rgb(var(--cleen-black))}}.cleen .file\:cleen-hidden::file-selector-button{display:none}.cleen .placeholder\:cleen-hidden::-moz-placeholder{display:none}.cleen .placeholder\:cleen-hidden::placeholder{display:none}.cleen .placeholder\:cleen-font-normal::-moz-placeholder{font-weight:400}.cleen .placeholder\:cleen-font-normal::placeholder{font-weight:400}.cleen .placeholder\:cleen-text-gray\/50::-moz-placeholder{color:rgba(var(--cleen-gray),.5)}.cleen .placeholder\:cleen-text-gray\/50::placeholder{color:rgba(var(--cleen-gray),.5)}.cleen .after\:cleen-absolute:after{content:var(--tw-content);position:absolute}.cleen .after\:cleen-bottom-full:after{content:var(--tw-content);bottom:100%}.cleen .after\:cleen-left-\[calc\(50\%-6px\)\]:after{content:var(--tw-content);left:calc(50% - 6px)}.cleen .after\:cleen-left-full:after{content:var(--tw-content);left:100%}.cleen .after\:cleen-right-full:after{content:var(--tw-content);right:100%}.cleen .after\:cleen-top-\[calc\(50\%-6px\)\]:after{content:var(--tw-content);top:calc(50% - 6px)}.cleen .after\:cleen-top-full:after{content:var(--tw-content);top:100%}.cleen .after\:cleen-hidden:after{content:var(--tw-content);display:none}.cleen .after\:cleen-border-\[6px\]:after{content:var(--tw-content);border-width:6px}.cleen .after\:cleen-border-primary:after{content:var(--tw-content);border-color:rgba(var(--cleen-primary))}.cleen .after\:cleen-border-white:after{content:var(--tw-content);border-color:rgba(var(--cleen-white))}.cleen .after\:cleen-border-x-transparent:after{content:var(--tw-content);border-left-color:transparent;border-right-color:transparent}.cleen .after\:cleen-border-y-transparent:after{border-top-color:transparent}.cleen .after\:cleen-border-b-transparent:after,.cleen .after\:cleen-border-y-transparent:after{content:var(--tw-content);border-bottom-color:transparent}.cleen .after\:cleen-border-l-transparent:after{content:var(--tw-content);border-left-color:transparent}.cleen .after\:cleen-border-r-transparent:after{content:var(--tw-content);border-right-color:transparent}.cleen .after\:cleen-border-t-transparent:after{content:var(--tw-content);border-top-color:transparent}.cleen .after\:cleen-drop-shadow-\[-0\.25px_0_0\.5px_rgba\(var\(--cleen-black\)\2c 0\.1\)\]:after{--tw-drop-shadow:drop-shadow(-0.25px 0 0.5px rgba(var(--cleen-black),0.1))}.cleen .after\:cleen-drop-shadow-\[-0\.25px_0_0\.5px_rgba\(var\(--cleen-black\)\2c 0\.1\)\]:after,.cleen .after\:cleen-drop-shadow-\[0_-0\.25px_0\.5px_rgba\(var\(--cleen-black\)\2c 0\.1\)\]:after{content:var(--tw-content);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.cleen .after\:cleen-drop-shadow-\[0_-0\.25px_0\.5px_rgba\(var\(--cleen-black\)\2c 0\.1\)\]:after{--tw-drop-shadow:drop-shadow(0 -0.25px 0.5px rgba(var(--cleen-black),0.1))}.cleen .after\:cleen-drop-shadow-\[0_1px_0\.5px_rgba\(var\(--cleen-black\)\2c 0\.1\)\]:after{--tw-drop-shadow:drop-shadow(0 1px 0.5px rgba(var(--cleen-black),0.1))}.cleen .after\:cleen-drop-shadow-\[0_1px_0\.5px_rgba\(var\(--cleen-black\)\2c 0\.1\)\]:after,.cleen .after\:cleen-drop-shadow-\[1px_0_0\.5px_rgba\(var\(--cleen-black\)\2c 0\.1\)\]:after{content:var(--tw-content);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.cleen .after\:cleen-drop-shadow-\[1px_0_0\.5px_rgba\(var\(--cleen-black\)\2c 0\.1\)\]:after{--tw-drop-shadow:drop-shadow(1px 0 0.5px rgba(var(--cleen-black),0.1))}.cleen .after\:cleen-content-\[\"\"\]:after{--tw-content:"";content:var(--tw-content)}.cleen .hover\:cleen-scale-125:hover{--tw-scale-x:1.25;--tw-scale-y:1.25;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cleen .hover\:cleen-border-error\/70:hover{border-color:rgba(var(--cleen-error),.7)}.cleen .hover\:cleen-border-gray\/10:hover{border-color:rgba(var(--cleen-gray),.1)}.cleen .hover\:cleen-border-gray\/20:hover{border-color:rgba(var(--cleen-gray),.2)}.cleen .hover\:cleen-border-gray\/30:hover{border-color:rgba(var(--cleen-gray),.3)}.cleen .hover\:cleen-border-gray\/40:hover{border-color:rgba(var(--cleen-gray),.4)}.cleen .hover\:cleen-border-primary:hover{border-color:rgba(var(--cleen-primary))}.cleen .hover\:cleen-bg-brand\/10:hover{background-color:rgba(var(--cleen-brand),.1)}.cleen .hover\:cleen-bg-error:hover{background-color:rgba(var(--cleen-error))}.cleen .hover\:cleen-bg-error\/10:hover{background-color:rgba(var(--cleen-error),.1)}.cleen .hover\:cleen-bg-error\/60:hover{background-color:rgba(var(--cleen-error),.6)}.cleen .hover\:cleen-bg-gray\/10:hover{background-color:rgba(var(--cleen-gray),.1)}.cleen .hover\:cleen-bg-gray\/20:hover{background-color:rgba(var(--cleen-gray),.2)}.cleen .hover\:cleen-bg-gray\/30:hover{background-color:rgba(var(--cleen-gray),.3)}.cleen .hover\:cleen-bg-gray\/5:hover{background-color:rgba(var(--cleen-gray),.05)}.cleen .hover\:cleen-bg-primary:hover{background-color:rgba(var(--cleen-primary))}.cleen .hover\:cleen-bg-primary\/10:hover{background-color:rgba(var(--cleen-primary),.1)}.cleen .hover\:cleen-bg-primary\/5:hover{background-color:rgba(var(--cleen-primary),.05)}.cleen .hover\:cleen-bg-primary\/50:hover{background-color:rgba(var(--cleen-primary),.5)}.cleen .hover\:cleen-bg-primary\/60:hover{background-color:rgba(var(--cleen-primary),.6)}.cleen .hover\:cleen-bg-primary\/90:hover{background-color:rgba(var(--cleen-primary),.9)}.cleen .hover\:cleen-bg-success\/10:hover{background-color:rgba(var(--cleen-success),.1)}.cleen .hover\:cleen-bg-warning:hover{background-color:rgba(var(--cleen-warning))}.cleen .hover\:cleen-text-error:hover{color:rgba(var(--cleen-error))}.cleen .hover\:cleen-text-gray:hover{color:rgba(var(--cleen-gray))}.cleen .hover\:cleen-text-gray\/80:hover{color:rgba(var(--cleen-gray),.8)}.cleen .hover\:cleen-text-primary:hover{color:rgba(var(--cleen-primary))}.cleen .hover\:cleen-text-success:hover{color:rgba(var(--cleen-success))}.cleen .hover\:cleen-underline:hover{text-decoration-line:underline}.cleen .hover\:cleen-opacity-80:hover{opacity:.8}.cleen .hover\:cleen-shadow-\[0px_0px_0px_4px_rgba\(var\(--cleen-error\)\2c 0\.25\)\]:hover{--tw-shadow:0px 0px 0px 4px rgba(var(--cleen-error),0.25);--tw-shadow-colored:0px 0px 0px 4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.cleen .hover\:cleen-shadow-\[0px_0px_0px_4px_rgba\(var\(--cleen-gray\)\2c 0\.1\)\]:hover{--tw-shadow:0px 0px 0px 4px rgba(var(--cleen-gray),0.1);--tw-shadow-colored:0px 0px 0px 4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.cleen .hover\:cleen-shadow-\[0px_0px_0px_4px_rgba\(var\(--cleen-primary\)\2c 0\.25\)\]:hover{--tw-shadow:0px 0px 0px 4px rgba(var(--cleen-primary),0.25);--tw-shadow-colored:0px 0px 0px 4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.cleen .hover\:cleen-shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.cleen .focus\:cleen-bg-gray\/5:focus{background-color:rgba(var(--cleen-gray),.05)}.cleen .focus\:cleen-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.cleen .focus\:cleen-ring-4:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.cleen .focus\:cleen-ring-transparent:focus{--tw-ring-color:transparent}.cleen .focus-visible\:cleen-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.cleen .focus-visible\:cleen-outline:focus-visible{outline-style:solid}.cleen .focus-visible\:cleen-outline-2:focus-visible{outline-width:2px}.cleen .focus-visible\:cleen-outline-offset-2:focus-visible{outline-offset:2px}.cleen .focus-visible\:cleen-outline-indigo\/60:focus-visible{outline-color:rgba(var(--cleen-indigo),.6)}.cleen .active\:cleen-cursor-grabbing:active{cursor:grabbing}.cleen :is(.cleen-group[open] .group-open\:cleen-rotate-180){--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cleen :is(.cleen-group:hover .group-hover\:cleen-text-gray){color:rgba(var(--cleen-gray))}.cleen :is(.cleen-group:hover .group-hover\:cleen-text-gray\/60){color:rgba(var(--cleen-gray),.6)}.cleen :is(.cleen-group:hover .group-hover\:cleen-opacity-100){opacity:1}.cleen :is(.cleen-group:hover .group-hover\:\[filter\:brightness\(0\)_saturate\(100\%\)_invert\(54\%\)_sepia\(56\%\)_saturate\(7022\%\)_hue-rotate\(179deg\)_brightness\(102\%\)_contrast\(101\%\)\]){filter:brightness(0) saturate(100%) invert(54%) sepia(56%) saturate(7022%) hue-rotate(179deg) brightness(102%) contrast(101%)}.cleen .has-\[\:focus\]\:cleen-border:has(:focus){border-width:1px}.cleen .has-\[\:focus\]\:cleen-border-primary\/30:has(:focus){border-color:rgba(var(--cleen-primary),.3)}.cleen .has-\[\:focus\]\:cleen-shadow-\[0px_1px_2px_0px_rgba\(16\2c 24\2c 40\2c 0\.05\)\2c 0px_0px_0px_4px_rgba\(0\2c 149\2c 235\2c 0\.24\)\]:has(:focus){--tw-shadow:0px 1px 2px 0px rgba(16,24,40,.05),0px 0px 0px 4px rgba(0,149,235,.24);--tw-shadow-colored:0px 1px 2px 0px var(--tw-shadow-color),0px 0px 0px 4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.cleen .dark\:cleen-bg-black:is([class*=dark] *){background-color:rgba(var(--cleen-black))}.cleen .dark\:cleen-bg-white\/50:is([class*=dark] *){background-color:rgba(var(--cleen-white),.5)}@media (min-width:640px){.cleen .sm\:cleen-flex{display:flex}.cleen .sm\:cleen-text-sm{font-size:.875rem;line-height:1.25rem}.cleen .sm\:cleen-leading-6{line-height:1.5rem}}.cleen .\[\&\:\:-webkit-details-marker\]\:cleen-hidden::-webkit-details-marker{display:none}
package/package.json CHANGED
@@ -1,42 +1,42 @@
1
- {
2
- "name": "@cleen/ui-core",
3
- "version": "0.1.0",
4
- "private": false,
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "module": "./dist/index.js",
8
- "types": "./dist/index.d.ts",
9
- "exports": {
10
- ".": {
11
- "import": "./dist/index.js",
12
- "types": "./dist/index.d.ts"
13
- },
14
- "./tailwind-preset": "./tailwind.preset.js",
15
- "./tailwind-entry.css": "./tailwind-entry.css",
16
- "./styles.css": "./dist/styles.css"
17
- },
18
- "scripts": {
19
- "dev": "concurrently \"tsup --watch --onSuccess 'tsc'\" \"tailwindcss -w -c ./tailwind.config.js -i ./tailwind-entry.css -o ./dist/styles.css\"",
20
- "build": "tsup && tailwindcss -m -c ./tailwind.config.js -i ./tailwind-entry.css -o ./dist/styles.css",
21
- "typecheck": "tsc --noEmit",
22
- "lint": "eslint \"src/**/*.{ts,tsx}\"",
23
- "format": "prettier --write \"src/**/*.{ts,tsx}\""
24
- },
25
- "dependencies": {
26
- "clsx": "^2.1.1",
27
- "color2k": "^2.0.3",
28
- "tailwind-merge": "^2.6.0",
29
- "zustand": "^5.0.8"
30
- },
31
- "peerDependencies": {
32
- "react": "^18.3.1",
33
- "react-dom": "^18.3.1"
34
- },
35
- "devDependencies": {
36
- "@types/react": "^19.1.10",
37
- "concurrently": "^9.2.1",
38
- "tailwindcss": "^3.4.17",
39
- "tsup": "^8.5.1",
40
- "typescript": "~5.8.3"
41
- }
42
- }
1
+ {
2
+ "name": "@cleen/ui-core",
3
+ "version": "0.1.2",
4
+ "private": false,
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ },
14
+ "./tailwind-preset": "./tailwind.preset.js",
15
+ "./tailwind-entry.css": "./tailwind-entry.css",
16
+ "./styles.css": "./dist/styles.css"
17
+ },
18
+ "scripts": {
19
+ "dev": "concurrently \"tsup --watch --onSuccess 'tsc'\" \"tailwindcss -w -c ./tailwind.config.js -i ./tailwind-entry.css -o ./dist/styles.css\"",
20
+ "build": "tsup && tailwindcss -m -c ./tailwind.config.js -i ./tailwind-entry.css -o ./dist/styles.css",
21
+ "typecheck": "tsc --noEmit",
22
+ "lint": "eslint \"src/**/*.{ts,tsx}\"",
23
+ "format": "prettier --write \"src/**/*.{ts,tsx}\""
24
+ },
25
+ "dependencies": {
26
+ "clsx": "^2.1.1",
27
+ "color2k": "^2.0.3",
28
+ "tailwind-merge": "^2.6.0",
29
+ "zustand": "^5.0.8"
30
+ },
31
+ "peerDependencies": {
32
+ "react": "^18.3.1",
33
+ "react-dom": "^18.3.1"
34
+ },
35
+ "devDependencies": {
36
+ "@types/react": "^19.1.10",
37
+ "concurrently": "^9.2.1",
38
+ "tailwindcss": "^3.4.17",
39
+ "tsup": "^8.5.1",
40
+ "typescript": "~5.8.3"
41
+ }
42
+ }