@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 +40 -0
- package/dist/index.d.ts +258 -0
- package/dist/index.js +1 -0
- package/dist/styles.css +15 -0
- package/package.json +42 -42
- package/tailwind-entry.css +86 -81
- package/tailwind.config.js +10 -10
- package/tailwind.preset.js +30 -30
- package/src/hooks/useAnimateNumber.ts +0 -56
- package/src/hooks/useControlled.ts +0 -40
- package/src/hooks/useDebounce.ts +0 -17
- package/src/hooks/useDisclosure.ts +0 -33
- package/src/hooks/useForm.ts +0 -38
- package/src/hooks/useOutsideClick.ts +0 -42
- package/src/hooks/usePaginationState.ts +0 -39
- package/src/hooks/usePositionClose.ts +0 -69
- package/src/hooks/useValidation.ts +0 -33
- package/src/hooks/useWatchResize.ts +0 -52
- package/src/index.ts +0 -21
- package/src/store/colors.ts +0 -98
- package/src/types/position.ts +0 -9
- package/src/types/styles.ts +0 -24
- package/src/types/utils.ts +0 -6
- package/src/utils/audio.ts +0 -69
- package/src/utils/cn.ts +0 -13
- package/src/utils/colors.ts +0 -159
- package/src/utils/images.ts +0 -42
- package/src/utils/object.ts +0 -86
- package/src/utils/position.ts +0 -140
- package/src/utils/string.ts +0 -27
- package/styles/react-day-styles.css +0 -457
- package/tsconfig.json +0 -27
- package/tsup.config.ts +0 -10
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
|
package/dist/index.d.ts
ADDED
|
@@ -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};
|
package/dist/styles.css
ADDED
|
@@ -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.
|
|
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
|
+
}
|