gemini-uis 0.3.0 → 0.5.0

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/dist/index.d.ts CHANGED
@@ -80,6 +80,8 @@ export declare type CardRef = HTMLDivElement;
80
80
  */
81
81
  export declare type CardShadow = 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
82
82
 
83
+ export declare const CloseIcon: FC<IconProps>;
84
+
83
85
  /**
84
86
  * 合并 CSS 类名
85
87
  */
@@ -223,6 +225,148 @@ export declare type DividerRef = HTMLDivElement;
223
225
  */
224
226
  export declare type DividerThickness = 'thin' | 'medium' | 'thick' | 'extra-thick';
225
227
 
228
+ /**
229
+ * Drawer 组件 - 仿照 Ant Design 的抽屉组件
230
+ * 支持多个方向、自定义尺寸、遮罩层控制
231
+ *
232
+ * @example
233
+ * ```tsx
234
+ * // 基础用法
235
+ * <Drawer open={visible} onClose={() => setVisible(false)} title="标题">
236
+ * 内容
237
+ * </Drawer>
238
+ *
239
+ * // 从左侧展开
240
+ * <Drawer open={visible} placement="left" onClose={() => setVisible(false)}>
241
+ * 内容
242
+ * </Drawer>
243
+ *
244
+ * // 全屏抽屉
245
+ * <Drawer open={visible} size="full" onClose={() => setVisible(false)}>
246
+ * 内容
247
+ * </Drawer>
248
+ *
249
+ * // 带底部操作按钮
250
+ * <Drawer
251
+ * open={visible}
252
+ * onClose={() => setVisible(false)}
253
+ * footer={
254
+ * <Button onClick={() => setVisible(false)}>关闭</Button>
255
+ * }
256
+ * >
257
+ * 内容
258
+ * </Drawer>
259
+ * ```
260
+ */
261
+ export declare const Drawer: ForwardRefExoticComponent<DrawerProps & RefAttributes<HTMLDivElement>>;
262
+
263
+ /**
264
+ * Drawer 组件的位置类型
265
+ */
266
+ export declare type DrawerPlacement = 'top' | 'right' | 'bottom' | 'left';
267
+
268
+ /**
269
+ * Drawer 组件的属性接口
270
+ */
271
+ export declare interface DrawerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
272
+ /** 是否可见 */
273
+ open?: boolean;
274
+ /** 标题 */
275
+ title?: ReactNode;
276
+ /** 放置位置 */
277
+ placement?: DrawerPlacement;
278
+ /** 尺寸 */
279
+ size?: DrawerSize;
280
+ /** 是否显示遮罩 */
281
+ mask?: boolean;
282
+ /** 点击遮罩是否关闭 */
283
+ maskClosable?: boolean;
284
+ /** 是否显示关闭按钮 */
285
+ closable?: boolean;
286
+ /** 关闭按钮文本 */
287
+ closeIcon?: ReactNode;
288
+ /** 是否在关闭时销毁子元素 */
289
+ destroyOnClose?: boolean;
290
+ /** 自定义类名 */
291
+ className?: string;
292
+ /** 遮罩样式类名 */
293
+ maskClassName?: string;
294
+ /** 内容区域类名 */
295
+ bodyClassName?: string;
296
+ /** 头部区域类名 */
297
+ headerClassName?: string;
298
+ /** 底部区域类名 */
299
+ footerClassName?: string;
300
+ /** 子元素 */
301
+ children?: ReactNode;
302
+ /** 底部内容 */
303
+ footer?: ReactNode;
304
+ /** 额外的操作按钮 */
305
+ extra?: ReactNode;
306
+ /** 关闭回调 */
307
+ onClose?: () => void;
308
+ /** 打开后的回调 */
309
+ afterOpenChange?: (open: boolean) => void;
310
+ /** z-index */
311
+ zIndex?: number;
312
+ }
313
+
314
+ /**
315
+ * Drawer 组件的 ref 类型
316
+ */
317
+ export declare type DrawerRef = HTMLDivElement;
318
+
319
+ /**
320
+ * Drawer 组件的尺寸类型
321
+ */
322
+ export declare type DrawerSize = 'sm' | 'md' | 'lg' | 'full';
323
+
324
+ export declare const EmptyState: ForwardRefExoticComponent<EmptyStateProps & RefAttributes<HTMLDivElement>>;
325
+
326
+ /**
327
+ * 空状态组件的图标类型
328
+ */
329
+ export declare type EmptyStateIconType = 'search' | 'folder' | 'document' | 'users' | 'settings' | 'warning' | 'info' | 'success' | 'error';
330
+
331
+ /**
332
+ * 空状态组件的属性接口
333
+ */
334
+ export declare interface EmptyStateProps {
335
+ /** 图标类型 */
336
+ icon?: EmptyStateIconType | ReactNode;
337
+ /** 标题 */
338
+ title?: string;
339
+ /** 描述文本 */
340
+ description?: string;
341
+ /** 操作按钮 */
342
+ action?: ReactNode;
343
+ /** 尺寸 */
344
+ size?: EmptyStateSize;
345
+ /** 变体 */
346
+ variant?: EmptyStateVariant;
347
+ /** 自定义类名 */
348
+ className?: string;
349
+ /** 是否显示图标 */
350
+ showIcon?: boolean;
351
+ /** 自定义样式 */
352
+ style?: React.CSSProperties;
353
+ }
354
+
355
+ /**
356
+ * 空状态组件的引用类型
357
+ */
358
+ export declare type EmptyStateRef = HTMLDivElement;
359
+
360
+ /**
361
+ * 空状态组件的尺寸类型
362
+ */
363
+ export declare type EmptyStateSize = 'sm' | 'md' | 'lg';
364
+
365
+ /**
366
+ * 空状态组件的变体类型
367
+ */
368
+ export declare type EmptyStateVariant = 'default' | 'minimal' | 'card';
369
+
226
370
  export declare interface IconProps extends SVGProps<SVGSVGElement> {
227
371
  size?: number | string;
228
372
  className?: string;
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import { cloneElement, forwardRef, isValidElement, useCallback, useMemo, useState } from "react";
2
- import { jsx, jsxs } from "react/jsx-runtime";
1
+ import { cloneElement, forwardRef, isValidElement, startTransition, useCallback, useEffect, useMemo, useState } from "react";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  const getVariantStyles = (e) => {
4
- let d = {
4
+ let b = {
5
5
  primary: "bg-blue-600 text-white hover:bg-blue-700 focus:ring-blue-500",
6
6
  default: "bg-white text-gray-700 hover:bg-gray-50 focus:ring-gray-500 border border-gray-300",
7
7
  secondary: "bg-gray-100 text-gray-900 hover:bg-gray-200 focus:ring-gray-500 border border-gray-300",
@@ -10,36 +10,36 @@ const getVariantStyles = (e) => {
10
10
  text: "bg-transparent text-gray-700 focus:ring-gray-500",
11
11
  danger: "bg-red-600 text-white hover:bg-red-700 focus:ring-red-500"
12
12
  };
13
- return d[e] || d.primary;
13
+ return b[e] || b.primary;
14
14
  }, getSizeStyles = (e) => {
15
- let d = {
15
+ let b = {
16
16
  xs: "px-2 py-1 text-xs min-h-[1.5rem]",
17
17
  sm: "px-3 py-1.5 text-sm min-h-[2rem]",
18
18
  md: "px-4 py-2 text-sm min-h-[2.5rem]",
19
19
  lg: "px-6 py-3 text-base min-h-[3rem]",
20
20
  xl: "px-8 py-4 text-lg min-h-[3.5rem]"
21
21
  };
22
- return d[e] || d.md;
23
- }, getRoundedStyles$2 = (e) => e ? "rounded-lg" : "rounded-none", getButtonStyles = (e = "primary", d = "md", f = !1, p = !1, m = !1, h) => [
22
+ return b[e] || b.md;
23
+ }, getRoundedStyles$2 = (e) => e ? "rounded-lg" : "rounded-none", getButtonStyles = (e = "primary", b = "md", x = !1, S = !1, C = !1, w) => [
24
24
  "inline-flex items-center justify-center font-medium text-center transition-all duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-offset-2 cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed",
25
25
  getVariantStyles(e),
26
- getSizeStyles(d),
27
- getRoundedStyles$2(f),
28
- p ? "opacity-50 cursor-not-allowed" : "",
29
- m ? "cursor-wait" : "",
30
- h
26
+ getSizeStyles(b),
27
+ getRoundedStyles$2(x),
28
+ S ? "opacity-50 cursor-not-allowed" : "",
29
+ C ? "cursor-wait" : "",
30
+ w
31
31
  ].filter(Boolean).join(" ").replace(/\s+/g, " ").trim();
32
32
  function cn(...e) {
33
33
  return e.filter(Boolean).join(" ");
34
34
  }
35
- var cn_default = cn, LoadingIcon_default = ({ size: e = 16, className: d = "animate-spin", ...f }) => /* @__PURE__ */ jsxs("svg", {
35
+ var cn_default = cn, LoadingIcon_default = ({ size: e = 16, className: b = "animate-spin", ...x }) => /* @__PURE__ */ jsxs("svg", {
36
36
  width: e,
37
37
  height: e,
38
38
  xmlns: "http://www.w3.org/2000/svg",
39
39
  fill: "none",
40
40
  viewBox: "0 0 24 24",
41
- className: d,
42
- ...f,
41
+ className: b,
42
+ ...x,
43
43
  children: [/* @__PURE__ */ jsx("circle", {
44
44
  className: "opacity-25",
45
45
  cx: "12",
@@ -52,26 +52,39 @@ var cn_default = cn, LoadingIcon_default = ({ size: e = 16, className: d = "anim
52
52
  fill: "currentColor",
53
53
  d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
54
54
  })]
55
- }), Button_default = forwardRef(({ type: e = "primary", size: d = "md", rounded: f = !1, disabled: p = !1, loading: m = !1, className: h, children: v, htmlType: y = "button", onClick: b, ...S }, w) => {
56
- let T = p || m;
55
+ }), CloseIcon_default = ({ className: e = "w-6 h-6", size: b, strokeWidth: x = 2 }) => /* @__PURE__ */ jsx("svg", {
56
+ className: e,
57
+ width: b,
58
+ height: b,
59
+ fill: "none",
60
+ stroke: "currentColor",
61
+ viewBox: "0 0 24 24",
62
+ children: /* @__PURE__ */ jsx("path", {
63
+ strokeLinecap: "round",
64
+ strokeLinejoin: "round",
65
+ strokeWidth: x,
66
+ d: "M6 18L18 6M6 6l12 12"
67
+ })
68
+ }), Button_default = forwardRef(({ type: e = "primary", size: b = "md", rounded: x = !1, disabled: S = !1, loading: C = !1, className: w, children: T, htmlType: E = "button", onClick: D, ...k }, A) => {
69
+ let j = S || C;
57
70
  return /* @__PURE__ */ jsxs("button", {
58
- ref: w,
59
- type: y,
60
- disabled: T,
71
+ ref: A,
72
+ type: E,
73
+ disabled: j,
61
74
  onClick: (e) => {
62
- if (T) {
75
+ if (j) {
63
76
  e.preventDefault();
64
77
  return;
65
78
  }
66
- b?.(e);
79
+ D?.(e);
67
80
  },
68
- className: cn_default(getButtonStyles(e, d, f, T, m, h)),
69
- ...S,
70
- children: [m && /* @__PURE__ */ jsx(LoadingIcon_default, { className: "animate-spin w-4 h-4 mr-2" }), v]
81
+ className: cn_default(getButtonStyles(e, b, x, j, C, w)),
82
+ ...k,
83
+ children: [C && /* @__PURE__ */ jsx(LoadingIcon_default, { className: "animate-spin w-4 h-4 mr-2" }), T]
71
84
  });
72
85
  });
73
86
  const getShadowStyles = (e) => {
74
- let d = {
87
+ let b = {
75
88
  none: "",
76
89
  sm: "shadow-sm",
77
90
  md: "shadow-md",
@@ -79,9 +92,9 @@ const getShadowStyles = (e) => {
79
92
  xl: "shadow-xl",
80
93
  "2xl": "shadow-2xl"
81
94
  };
82
- return d[e] || d.none;
95
+ return b[e] || b.none;
83
96
  }, getBorderStyles = (e) => {
84
- let d = {
97
+ let b = {
85
98
  none: "",
86
99
  sm: "border border-gray-200",
87
100
  md: "border-2 border-gray-200",
@@ -89,40 +102,40 @@ const getShadowStyles = (e) => {
89
102
  xl: "border-8 border-gray-200",
90
103
  "2xl": "border-16 border-gray-200"
91
104
  };
92
- return d[e] || d.none;
93
- }, getRoundedStyles$1 = (e) => e ? "rounded-lg" : "rounded-none", getHoverStyles = (e = !1) => e ? "" : "hover:shadow-xl hover:scale-101 hover:-translate-y-1 hover:translate-x-1 origin-bottom-left", getCardStyles = (e = "none", d = "none", f = !1, p = !1, m) => {
94
- let h = getShadowStyles(e), g = getBorderStyles(d), _ = getRoundedStyles$1(f), v = getHoverStyles(p);
105
+ return b[e] || b.none;
106
+ }, getRoundedStyles$1 = (e) => e ? "rounded-lg" : "rounded-none", getHoverStyles = (e = !1) => e ? "" : "hover:shadow-xl hover:scale-101 hover:-translate-y-1 hover:translate-x-1 origin-bottom-left", getCardStyles = (e = "none", b = "none", x = !1, S = !1, C) => {
107
+ let w = getShadowStyles(e), T = getBorderStyles(b), E = getRoundedStyles$1(x), D = getHoverStyles(S);
95
108
  return [
96
109
  "block p-4 bg-white transition-all duration-300 ease-in-out cursor-pointer",
97
- m && /\bw-\w+/.test(m) ? "" : "w-full",
98
- h,
99
- g,
100
- _,
101
- v,
102
- m
110
+ C && /\bw-\w+/.test(C) ? "" : "w-full",
111
+ w,
112
+ T,
113
+ E,
114
+ D,
115
+ C
103
116
  ].filter(Boolean).join(" ").replace(/\s+/g, " ").trim();
104
117
  };
105
- var Card_default = forwardRef(({ shadow: e = "md", border: d = "sm", rounded: f = !1, disabledHover: p = !1, className: m, children: h, ..._ }, v) => /* @__PURE__ */ jsx("div", {
106
- ref: v,
107
- className: cn_default(getCardStyles(e, d, f, p, m)),
108
- ..._,
109
- children: h
118
+ var Card_default = forwardRef(({ shadow: e = "md", border: b = "sm", rounded: x = !1, disabledHover: S = !1, className: C, children: w, ...T }, E) => /* @__PURE__ */ jsx("div", {
119
+ ref: E,
120
+ className: cn_default(getCardStyles(e, b, x, S, C)),
121
+ ...T,
122
+ children: w
110
123
  }));
111
124
  const getCollapseSizeStyles = (e) => {
112
- let d = {
125
+ let b = {
113
126
  sm: "text-sm",
114
127
  md: "text-base",
115
128
  lg: "text-lg"
116
129
  };
117
- return d[e] || d.md;
118
- }, getCollapseVariantStyles = (e, d, f) => f ? "bg-transparent" : d || e === "bordered" ? "border border-gray-200 rounded-lg overflow-hidden" : "bg-white rounded-lg", getCollapseStyles = (e = "md", d = "default", f = !1, p = !1, m) => [
130
+ return b[e] || b.md;
131
+ }, getCollapseVariantStyles = (e, b, x) => x ? "bg-transparent" : b || e === "bordered" ? "border border-gray-200 rounded-lg overflow-hidden" : "bg-white rounded-lg", getCollapseStyles = (e = "md", b = "default", x = !1, S = !1, C) => [
119
132
  "w-full",
120
133
  getCollapseSizeStyles(e),
121
- getCollapseVariantStyles(d, f, p),
122
- m
134
+ getCollapseVariantStyles(b, x, S),
135
+ C
123
136
  ].filter(Boolean).join(" ").replace(/\s+/g, " ").trim();
124
- var DefaultArrowIcon = ({ isActive: e, disabled: d }) => /* @__PURE__ */ jsx("svg", {
125
- className: cn_default("shrink-0 size-4 transition-transform duration-200 ease-in-out", e ? "rotate-180" : "rotate-0", d ? "opacity-50" : ""),
137
+ var DefaultArrowIcon = ({ isActive: e, disabled: b }) => /* @__PURE__ */ jsx("svg", {
138
+ className: cn_default("shrink-0 size-4 transition-transform duration-200 ease-in-out", e ? "rotate-180" : "rotate-0", b ? "opacity-50" : ""),
126
139
  fill: "none",
127
140
  stroke: "currentColor",
128
141
  viewBox: "0 0 24 24",
@@ -133,81 +146,81 @@ var DefaultArrowIcon = ({ isActive: e, disabled: d }) => /* @__PURE__ */ jsx("sv
133
146
  strokeWidth: 2,
134
147
  d: "M19 9l-7 7-7-7"
135
148
  })
136
- }), CollapseCore = forwardRef(({ activeKey: d, defaultActiveKey: _, collapsible: v = "header", accordion: y = !1, bordered: b = !1, ghost: x = !1, size: S = "md", variant: C = "default", className: w, children: T, onChange: E, onExpand: D, onCollapse: O, ...k }, A) => {
137
- let [j, M] = useState(() => {
138
- let e = d || _;
149
+ }), CollapseCore = forwardRef(({ activeKey: b, defaultActiveKey: S, collapsible: w = "header", accordion: D = !1, bordered: O = !1, ghost: k = !1, size: A = "md", variant: j = "default", className: M, children: N, onChange: F, onExpand: I, onCollapse: L, ...R }, z) => {
150
+ let [B, V] = useState(() => {
151
+ let e = b || S;
139
152
  return Array.isArray(e) ? e : e ? [e] : [];
140
- }), N = useMemo(() => d === void 0 ? j : Array.isArray(d) ? d : [d], [d, j]), P = useCallback((e) => {
141
- if (v === "disabled") return;
142
- let f;
143
- f = y ? N.includes(e) ? [] : [e] : N.includes(e) ? N.filter((d) => d !== e) : [...N, e], d === void 0 && M(f), E?.(y ? f[0] || "" : f), f.includes(e) ? D?.(e) : O?.(e);
153
+ }), H = useMemo(() => b === void 0 ? B : Array.isArray(b) ? b : [b], [b, B]), U = useCallback((e) => {
154
+ if (w === "disabled") return;
155
+ let x;
156
+ x = D ? H.includes(e) ? [] : [e] : H.includes(e) ? H.filter((b) => b !== e) : [...H, e], b === void 0 && V(x), F?.(D ? x[0] || "" : x), x.includes(e) ? I?.(e) : L?.(e);
144
157
  }, [
145
- d,
146
- N,
147
- y,
148
- v,
149
- E,
158
+ b,
159
+ H,
150
160
  D,
151
- O
152
- ]), F = getCollapseStyles(S, C, b, x, w), I = useMemo(() => T ? Array.isArray(T) ? T.map((d, p) => {
153
- if (!isValidElement(d)) return d;
154
- let { ...m } = d.props, h = d.key || String(p), g = N.includes(h);
155
- return cloneElement(d, {
156
- ...m,
157
- isActive: g,
158
- onToggle: () => P(h),
159
- collapsible: v
161
+ w,
162
+ F,
163
+ I,
164
+ L
165
+ ]), W = getCollapseStyles(A, j, O, k, M), G = useMemo(() => N ? Array.isArray(N) ? N.map((b, S) => {
166
+ if (!isValidElement(b)) return b;
167
+ let { ...C } = b.props, T = b.key || String(S), E = H.includes(T);
168
+ return cloneElement(b, {
169
+ ...C,
170
+ isActive: E,
171
+ onToggle: () => U(T),
172
+ collapsible: w
160
173
  });
161
- }) : isValidElement(T) ? cloneElement(T, {
162
- ...T.props,
163
- isActive: N.includes(T.key || "filter"),
164
- onToggle: () => P(T.key || "filter"),
165
- collapsible: v
166
- }) : T : null, [
167
- T,
174
+ }) : isValidElement(N) ? cloneElement(N, {
175
+ ...N.props,
176
+ isActive: H.includes(N.key || "filter"),
177
+ onToggle: () => U(N.key || "filter"),
178
+ collapsible: w
179
+ }) : N : null, [
168
180
  N,
169
- P,
170
- v
181
+ H,
182
+ U,
183
+ w
171
184
  ]);
172
185
  return /* @__PURE__ */ jsx("div", {
173
- ref: A,
174
- className: cn_default(F),
175
- ...k,
176
- children: I
186
+ ref: z,
187
+ className: cn_default(W),
188
+ ...R,
189
+ children: G
177
190
  });
178
- }), CollapsePanel = forwardRef(({ key: e, header: d, children: f, disabled: p = !1, showArrow: m = !0, arrow: h, className: v, headerContainerClassName: y, headerContentClassName: b, contentClassName: x, onHeaderClick: S, isActive: C = !1, onToggle: w, collapsible: T = "header", ...E }, D) => {
179
- let O = () => {
180
- p || T === "disabled" || (S?.(e), w?.());
181
- }, k = (e) => {
182
- T !== "header" && (e.stopPropagation(), p || w?.());
183
- }, A = () => m ? h ? /* @__PURE__ */ jsx("span", {
184
- className: cn_default("shrink-0 transition-transform duration-200 ease-in-out", C ? "rotate-180" : "rotate-0", p ? "opacity-50" : "", T === "icon" ? "cursor-pointer" : ""),
185
- onClick: k,
186
- children: h
191
+ }), CollapsePanel = forwardRef(({ key: e, header: b, children: x, disabled: S = !1, showArrow: C = !0, arrow: w, className: T, headerContainerClassName: E, headerContentClassName: D, contentClassName: k, onHeaderClick: A, isActive: j = !1, onToggle: M, collapsible: N = "header", ...F }, I) => {
192
+ let L = () => {
193
+ S || N === "disabled" || (A?.(e), M?.());
194
+ }, R = (e) => {
195
+ N !== "header" && (e.stopPropagation(), S || M?.());
196
+ }, z = () => C ? w ? /* @__PURE__ */ jsx("span", {
197
+ className: cn_default("shrink-0 transition-transform duration-200 ease-in-out", j ? "rotate-180" : "rotate-0", S ? "opacity-50" : "", N === "icon" ? "cursor-pointer" : ""),
198
+ onClick: R,
199
+ children: w
187
200
  }) : /* @__PURE__ */ jsx(DefaultArrowIcon, {
188
- isActive: C,
189
- disabled: p
201
+ isActive: j,
202
+ disabled: S
190
203
  }) : null;
191
204
  return /* @__PURE__ */ jsxs("div", {
192
- ref: D,
193
- className: cn_default("border-b border-gray-200 last:border-b-0", v),
194
- ...E,
205
+ ref: I,
206
+ className: cn_default("border-b border-gray-200 last:border-b-0", T),
207
+ ...F,
195
208
  children: [/* @__PURE__ */ jsxs("div", {
196
- className: cn_default("flex items-center justify-between w-full text-left font-medium transition-colors duration-200", "px-4 py-3", p ? "opacity-50 cursor-not-allowed" : "cursor-pointer hover:bg-gray-50", "focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-inset", y),
197
- onClick: O,
198
- tabIndex: p ? -1 : 0,
209
+ className: cn_default("flex items-center justify-between w-full text-left font-medium transition-colors duration-200", "px-4 py-3", S ? "opacity-50 cursor-not-allowed" : "cursor-pointer hover:bg-gray-50", "focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-inset", E),
210
+ onClick: L,
211
+ tabIndex: S ? -1 : 0,
199
212
  role: "button",
200
- "aria-expanded": C,
201
- "aria-disabled": p,
213
+ "aria-expanded": j,
214
+ "aria-disabled": S,
202
215
  children: [/* @__PURE__ */ jsx("div", {
203
- className: cn_default("flex-1 pr-2", b),
204
- children: d
205
- }), A()]
216
+ className: cn_default("flex-1 pr-2", D),
217
+ children: b
218
+ }), z()]
206
219
  }), /* @__PURE__ */ jsx("div", {
207
- className: cn_default("overflow-hidden transition-all duration-300 ease-in-out", C ? "max-h-none opacity-100" : "max-h-0 opacity-0"),
220
+ className: cn_default("overflow-hidden transition-all duration-300 ease-in-out", j ? "max-h-none opacity-100" : "max-h-0 opacity-0"),
208
221
  children: /* @__PURE__ */ jsx("div", {
209
- className: cn_default("px-4 pb-4 text-gray-700", x),
210
- children: f
222
+ className: cn_default("px-4 pb-4 text-gray-700", k),
223
+ children: x
211
224
  })
212
225
  })]
213
226
  });
@@ -217,23 +230,388 @@ var Collapse_default = Object.assign(CollapseCore, { Panel: CollapsePanel });
217
230
  const getOrientationStyles = (e) => ({
218
231
  horizontal: "w-full h-0",
219
232
  vertical: "h-full w-0"
220
- })[e], getThicknessStyles = (e, d) => ({
221
- thin: d === "horizontal" ? "h-px" : "w-px",
222
- medium: d === "horizontal" ? "h-0.5" : "w-0.5",
223
- thick: d === "horizontal" ? "h-1" : "w-1",
224
- "extra-thick": d === "horizontal" ? "h-1.5" : "w-1.5"
225
- })[e], getRoundedStyles = (e) => e ? "rounded-full" : "rounded-none", getColorStyles = (e) => e ? `bg-[${e}]` : "bg-gray-200", getDashedStyles = (e) => e ? "border-dashed" : "border-solid", getLengthStyles = (e, d = "horizontal") => e && d === "horizontal" ? `w-[${e}%]` : "", getDividerStyles = (e = "horizontal", d = "medium", f = !1, p, m = !1, h, g) => g ? ["block", g].filter(Boolean).join(" ").trim() : [
233
+ })[e], getThicknessStyles = (e, b) => ({
234
+ thin: b === "horizontal" ? "h-px" : "w-px",
235
+ medium: b === "horizontal" ? "h-0.5" : "w-0.5",
236
+ thick: b === "horizontal" ? "h-1" : "w-1",
237
+ "extra-thick": b === "horizontal" ? "h-1.5" : "w-1.5"
238
+ })[e], getRoundedStyles = (e) => e ? "rounded-full" : "rounded-none", getColorStyles = (e) => e ? `bg-[${e}]` : "bg-gray-200", getDashedStyles = (e) => e ? "border-dashed" : "border-solid", getLengthStyles = (e, b = "horizontal") => e && b === "horizontal" ? `w-[${e}%]` : "", getDividerStyles = (e = "horizontal", b = "medium", x = !1, S, C = !1, w, T) => T ? ["block", T].filter(Boolean).join(" ").trim() : [
226
239
  e === "vertical" ? "bg-gray-200" : "border-0",
227
240
  getOrientationStyles(e),
228
- getThicknessStyles(d, e),
229
- getRoundedStyles(f),
230
- getColorStyles(p),
231
- getDashedStyles(m),
232
- getLengthStyles(h, e)
241
+ getThicknessStyles(b, e),
242
+ getRoundedStyles(x),
243
+ getColorStyles(S),
244
+ getDashedStyles(C),
245
+ getLengthStyles(w, e)
233
246
  ].filter(Boolean).join(" ").replace(/\s+/g, " ").trim();
234
- var Divider_default = forwardRef(({ orientation: e = "horizontal", thickness: d = "medium", rounded: f = !1, color: p, dashed: m = !1, length: h, className: _, ...v }, y) => /* @__PURE__ */ jsx("div", {
235
- ref: y,
236
- className: cn_default(getDividerStyles(e, d, f ?? !1, p, m, h, _), _),
237
- ...v
247
+ var Divider_default = forwardRef(({ orientation: e = "horizontal", thickness: b = "medium", rounded: x = !1, color: S, dashed: C = !1, length: w, className: T, ...E }, D) => /* @__PURE__ */ jsx("div", {
248
+ ref: D,
249
+ className: cn_default(getDividerStyles(e, b, x ?? !1, S, C, w, T), T),
250
+ ...E
238
251
  }));
239
- export { Button_default as Button, Card_default as Card, Collapse_default as Collapse, Divider_default as Divider, LoadingIcon_default as LoadingIcon, cn_default as cn };
252
+ const getDrawerPlacementStyles = (e) => {
253
+ let b = {
254
+ top: "top-0 left-0 right-0",
255
+ right: "top-0 right-0 bottom-0",
256
+ bottom: "bottom-0 left-0 right-0",
257
+ left: "top-0 left-0 bottom-0"
258
+ };
259
+ return b[e] || b.right;
260
+ }, getDrawerSizeStyles = (e, b) => {
261
+ let x = b === "left" || b === "right";
262
+ if (e === "full") return "w-screen h-screen";
263
+ let S = {
264
+ sm: x ? "w-64" : "h-64",
265
+ md: x ? "w-96" : "h-96",
266
+ lg: x ? "w-[46rem]" : "h-[46rem]"
267
+ };
268
+ return S[e] || S.md;
269
+ }, getDrawerTransformStyles = (e, b) => {
270
+ if (b) return "translate-x-0 translate-y-0";
271
+ let x = {
272
+ top: "-translate-y-full",
273
+ right: "translate-x-full",
274
+ bottom: "translate-y-full",
275
+ left: "-translate-x-full"
276
+ };
277
+ return x[e] || x.right;
278
+ }, getDrawerStyles = (e, b, x, S) => [
279
+ "fixed bg-white shadow-xl transition-transform duration-300 ease-out z-50 flex flex-col will-change-transform",
280
+ getDrawerPlacementStyles(e),
281
+ getDrawerSizeStyles(b, e),
282
+ getDrawerTransformStyles(e, x),
283
+ x ? "pointer-events-auto" : "pointer-events-none",
284
+ S
285
+ ].filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), getMaskStyles = (e, b) => [
286
+ "fixed inset-0 h-screen bg-black/50 transition-opacity duration-300 ease-out z-40",
287
+ e ? "opacity-100" : "opacity-0",
288
+ e ? "pointer-events-auto" : "pointer-events-none",
289
+ b
290
+ ].filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), getHeaderStyles = (e) => ["flex items-center justify-between px-6 py-4 border-b border-gray-200 flex-shrink-0", e].filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), getBodyStyles = (e) => ["min-h-0 flex-1 overflow-y-auto", e].filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), getFooterStyles = (e) => ["flex items-center justify-end px-6 py-4 border-t border-gray-200 flex-shrink-0 gap-2", e].filter(Boolean).join(" ").replace(/\s+/g, " ").trim();
291
+ var DefaultCloseIcon = () => /* @__PURE__ */ jsx(CloseIcon_default, { className: "w-5 h-5" }), Drawer_default = forwardRef(({ open: e = !1, title: b, placement: x = "right", size: T = "md", mask: k = !0, maskClosable: A = !0, closable: j = !0, closeIcon: M, destroyOnClose: N = !1, className: F, maskClassName: I, bodyClassName: L, headerClassName: R, footerClassName: z, children: B, footer: V, extra: H, onClose: U, afterOpenChange: W, zIndex: G = 1e3, ...K }, q) => {
292
+ let [J, Y] = useState(e), [X, Z] = useState(!1);
293
+ useEffect(() => {
294
+ if (e) startTransition(() => {
295
+ Y(!0);
296
+ }), requestAnimationFrame(() => {
297
+ requestAnimationFrame(() => {
298
+ Z(!0);
299
+ });
300
+ });
301
+ else {
302
+ startTransition(() => {
303
+ Z(!1);
304
+ });
305
+ let e = setTimeout(() => {
306
+ Y(!1);
307
+ }, 300);
308
+ return () => clearTimeout(e);
309
+ }
310
+ }, [e]), useEffect(() => {
311
+ if (!e) return;
312
+ let b = (e) => {
313
+ e.key === "Escape" && U && U();
314
+ };
315
+ return document.addEventListener("keydown", b), () => document.removeEventListener("keydown", b);
316
+ }, [e, U]);
317
+ let Q = useCallback(() => {
318
+ A && U && U();
319
+ }, [A, U]), $ = useCallback(() => {
320
+ U && U();
321
+ }, [U]);
322
+ return useEffect(() => {
323
+ W && W(e);
324
+ }, [e, W]), useEffect(() => {
325
+ if (!e) return;
326
+ let b = window.scrollY || 0, { style: x } = document.body, { style: S } = document.documentElement;
327
+ x.position = "fixed", x.top = `-${b}px`, x.left = "0", x.right = "0", x.width = "100%", x.overflow = "hidden", S.overflow = "hidden", S.overscrollBehavior = "none";
328
+ let C = (e) => e.preventDefault();
329
+ return window.addEventListener("touchmove", C, { passive: !1 }), window.addEventListener("wheel", C, { passive: !1 }), () => {
330
+ window.removeEventListener("touchmove", C), window.removeEventListener("wheel", C), x.position = "", x.top = "", x.left = "", x.right = "", x.width = "", x.overflow = "", S.overflow = "", S.overscrollBehavior = "", window.scrollTo(0, b);
331
+ };
332
+ }, [e]), !J && N || !J ? null : /* @__PURE__ */ jsxs(Fragment, { children: [k && /* @__PURE__ */ jsx("div", {
333
+ className: cn_default(getMaskStyles(X, I)),
334
+ style: { zIndex: G - 1 },
335
+ onClick: Q,
336
+ "aria-hidden": "true"
337
+ }), /* @__PURE__ */ jsxs("div", {
338
+ ref: q,
339
+ className: cn_default(getDrawerStyles(x, T, X, F)),
340
+ style: {
341
+ zIndex: G,
342
+ height: T === "full" && (x === "left" || x === "right") ? "100vh" : void 0
343
+ },
344
+ role: "dialog",
345
+ "aria-modal": "true",
346
+ "aria-labelledby": b ? "drawer-title" : void 0,
347
+ ...K,
348
+ children: [
349
+ (b || j || H) && /* @__PURE__ */ jsxs("div", {
350
+ className: cn_default(getHeaderStyles(R)),
351
+ children: [/* @__PURE__ */ jsxs("div", {
352
+ className: "flex items-center gap-4 flex-1",
353
+ children: [b && /* @__PURE__ */ jsx("h2", {
354
+ id: "drawer-title",
355
+ className: "text-lg font-semibold text-gray-900 flex-1",
356
+ children: b
357
+ }), H && /* @__PURE__ */ jsx("div", {
358
+ className: "flex items-center gap-2",
359
+ children: H
360
+ })]
361
+ }), j && /* @__PURE__ */ jsx("button", {
362
+ type: "button",
363
+ onClick: $,
364
+ className: "p-2 rounded-lg text-gray-500 hover:text-gray-700 hover:bg-gray-100 transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-gray-500 focus:ring-offset-2",
365
+ "aria-label": "关闭抽屉",
366
+ children: M || /* @__PURE__ */ jsx(DefaultCloseIcon, {})
367
+ })]
368
+ }),
369
+ /* @__PURE__ */ jsx("div", {
370
+ className: cn_default(getBodyStyles(L), "min-h-0 flex-1 overflow-y-auto"),
371
+ style: { overscrollBehavior: "contain" },
372
+ onWheel: (e) => {
373
+ e.stopPropagation();
374
+ },
375
+ onTouchMove: (e) => {
376
+ e.stopPropagation();
377
+ },
378
+ children: B
379
+ }),
380
+ V && /* @__PURE__ */ jsx("div", {
381
+ className: cn_default(getFooterStyles(z)),
382
+ children: V
383
+ })
384
+ ]
385
+ })] });
386
+ });
387
+ function getEmptyStateStyles(e = "md", b = "default", x) {
388
+ return cn_default("flex flex-col items-center justify-center text-center", {
389
+ sm: "py-8 px-4",
390
+ md: "py-12 px-6",
391
+ lg: "py-16 px-8"
392
+ }[e], {
393
+ default: "bg-gray-50 rounded-lg",
394
+ minimal: "bg-transparent",
395
+ card: "bg-white border border-gray-200 rounded-lg shadow-sm"
396
+ }[b], x);
397
+ }
398
+ function getIconContainerStyles(e = "md") {
399
+ return cn_default("flex items-center justify-center text-gray-400", {
400
+ sm: "w-12 h-12 mb-3",
401
+ md: "w-16 h-16 mb-4",
402
+ lg: "w-20 h-20 mb-6"
403
+ }[e]);
404
+ }
405
+ function getTitleStyles(e = "md") {
406
+ return cn_default("text-gray-900 mb-2", {
407
+ sm: "text-lg font-semibold",
408
+ md: "text-xl font-semibold",
409
+ lg: "text-2xl font-semibold"
410
+ }[e]);
411
+ }
412
+ function getDescriptionStyles(e = "md") {
413
+ return cn_default("text-gray-600 mb-4 max-w-md", {
414
+ sm: "text-sm",
415
+ md: "text-base",
416
+ lg: "text-lg"
417
+ }[e]);
418
+ }
419
+ function getActionStyles() {
420
+ return "mt-2";
421
+ }
422
+ function EmptyStateIcon({ type: e, className: b }) {
423
+ let x = {
424
+ search: /* @__PURE__ */ jsxs("svg", {
425
+ viewBox: "0 0 24 24",
426
+ fill: "none",
427
+ stroke: "currentColor",
428
+ strokeWidth: "1.5",
429
+ className: b,
430
+ children: [/* @__PURE__ */ jsx("circle", {
431
+ cx: "11",
432
+ cy: "11",
433
+ r: "8"
434
+ }), /* @__PURE__ */ jsx("path", { d: "m21 21-4.35-4.35" })]
435
+ }),
436
+ folder: /* @__PURE__ */ jsx("svg", {
437
+ viewBox: "0 0 24 24",
438
+ fill: "none",
439
+ stroke: "currentColor",
440
+ strokeWidth: "1.5",
441
+ className: b,
442
+ children: /* @__PURE__ */ jsx("path", { d: "M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z" })
443
+ }),
444
+ document: /* @__PURE__ */ jsxs("svg", {
445
+ viewBox: "0 0 24 24",
446
+ fill: "none",
447
+ stroke: "currentColor",
448
+ strokeWidth: "1.5",
449
+ className: b,
450
+ children: [
451
+ /* @__PURE__ */ jsx("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }),
452
+ /* @__PURE__ */ jsx("polyline", { points: "14,2 14,8 20,8" }),
453
+ /* @__PURE__ */ jsx("line", {
454
+ x1: "16",
455
+ y1: "13",
456
+ x2: "8",
457
+ y2: "13"
458
+ }),
459
+ /* @__PURE__ */ jsx("line", {
460
+ x1: "16",
461
+ y1: "17",
462
+ x2: "8",
463
+ y2: "17"
464
+ }),
465
+ /* @__PURE__ */ jsx("polyline", { points: "10,9 9,9 8,9" })
466
+ ]
467
+ }),
468
+ users: /* @__PURE__ */ jsxs("svg", {
469
+ viewBox: "0 0 24 24",
470
+ fill: "none",
471
+ stroke: "currentColor",
472
+ strokeWidth: "1.5",
473
+ className: b,
474
+ children: [
475
+ /* @__PURE__ */ jsx("path", { d: "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" }),
476
+ /* @__PURE__ */ jsx("circle", {
477
+ cx: "9",
478
+ cy: "7",
479
+ r: "4"
480
+ }),
481
+ /* @__PURE__ */ jsx("path", { d: "m22 21-2-2" }),
482
+ /* @__PURE__ */ jsx("path", { d: "m16 16 2 2" })
483
+ ]
484
+ }),
485
+ settings: /* @__PURE__ */ jsxs("svg", {
486
+ viewBox: "0 0 24 24",
487
+ fill: "none",
488
+ stroke: "currentColor",
489
+ strokeWidth: "1.5",
490
+ className: b,
491
+ children: [/* @__PURE__ */ jsx("circle", {
492
+ cx: "12",
493
+ cy: "12",
494
+ r: "3"
495
+ }), /* @__PURE__ */ jsx("path", { d: "M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1 1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z" })]
496
+ }),
497
+ warning: /* @__PURE__ */ jsxs("svg", {
498
+ viewBox: "0 0 24 24",
499
+ fill: "none",
500
+ stroke: "currentColor",
501
+ strokeWidth: "1.5",
502
+ className: b,
503
+ children: [
504
+ /* @__PURE__ */ jsx("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z" }),
505
+ /* @__PURE__ */ jsx("line", {
506
+ x1: "12",
507
+ y1: "9",
508
+ x2: "12",
509
+ y2: "13"
510
+ }),
511
+ /* @__PURE__ */ jsx("line", {
512
+ x1: "12",
513
+ y1: "17",
514
+ x2: "12.01",
515
+ y2: "17"
516
+ })
517
+ ]
518
+ }),
519
+ info: /* @__PURE__ */ jsxs("svg", {
520
+ viewBox: "0 0 24 24",
521
+ fill: "none",
522
+ stroke: "currentColor",
523
+ strokeWidth: "1.5",
524
+ className: b,
525
+ children: [
526
+ /* @__PURE__ */ jsx("circle", {
527
+ cx: "12",
528
+ cy: "12",
529
+ r: "10"
530
+ }),
531
+ /* @__PURE__ */ jsx("line", {
532
+ x1: "12",
533
+ y1: "16",
534
+ x2: "12",
535
+ y2: "12"
536
+ }),
537
+ /* @__PURE__ */ jsx("line", {
538
+ x1: "12",
539
+ y1: "8",
540
+ x2: "12.01",
541
+ y2: "8"
542
+ })
543
+ ]
544
+ }),
545
+ success: /* @__PURE__ */ jsxs("svg", {
546
+ viewBox: "0 0 24 24",
547
+ fill: "none",
548
+ stroke: "currentColor",
549
+ strokeWidth: "1.5",
550
+ className: b,
551
+ children: [/* @__PURE__ */ jsx("path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14" }), /* @__PURE__ */ jsx("polyline", { points: "22,4 12,14.01 9,11.01" })]
552
+ }),
553
+ error: /* @__PURE__ */ jsxs("svg", {
554
+ viewBox: "0 0 24 24",
555
+ fill: "none",
556
+ stroke: "currentColor",
557
+ strokeWidth: "1.5",
558
+ className: b,
559
+ children: [
560
+ /* @__PURE__ */ jsx("circle", {
561
+ cx: "12",
562
+ cy: "12",
563
+ r: "10"
564
+ }),
565
+ /* @__PURE__ */ jsx("line", {
566
+ x1: "15",
567
+ y1: "9",
568
+ x2: "9",
569
+ y2: "15"
570
+ }),
571
+ /* @__PURE__ */ jsx("line", {
572
+ x1: "9",
573
+ y1: "9",
574
+ x2: "15",
575
+ y2: "15"
576
+ })
577
+ ]
578
+ })
579
+ };
580
+ return x[e] || x.search;
581
+ }
582
+ const EmptyState = forwardRef(({ icon: e = "search", title: b, description: x, action: S, size: C = "md", variant: w = "default", className: T, showIcon: E = !0, style: D, ...k }, A) => {
583
+ let j = getEmptyStateStyles(C, w, T), M = getIconContainerStyles(C), N = getTitleStyles(C), P = getDescriptionStyles(C), F = getActionStyles(), I = () => E ? typeof e == "string" ? /* @__PURE__ */ jsx("div", {
584
+ className: M,
585
+ children: /* @__PURE__ */ jsx(EmptyStateIcon, {
586
+ type: e,
587
+ className: "w-full h-full"
588
+ })
589
+ }) : /* @__PURE__ */ jsx("div", {
590
+ className: M,
591
+ children: e
592
+ }) : null;
593
+ return /* @__PURE__ */ jsxs("div", {
594
+ ref: A,
595
+ className: j,
596
+ style: D,
597
+ ...k,
598
+ children: [
599
+ I(),
600
+ b && /* @__PURE__ */ jsx("h3", {
601
+ className: N,
602
+ children: b
603
+ }),
604
+ x && /* @__PURE__ */ jsx("p", {
605
+ className: P,
606
+ children: x
607
+ }),
608
+ S && /* @__PURE__ */ jsx("div", {
609
+ className: F,
610
+ children: S
611
+ })
612
+ ]
613
+ });
614
+ });
615
+ EmptyState.displayName = "EmptyState";
616
+ var EmptyState_default = EmptyState;
617
+ export { Button_default as Button, Card_default as Card, CloseIcon_default as CloseIcon, Collapse_default as Collapse, Divider_default as Divider, Drawer_default as Drawer, EmptyState_default as EmptyState, LoadingIcon_default as LoadingIcon, cn_default as cn };
package/dist/style.css CHANGED
@@ -1,3 +1,3 @@
1
1
  /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:#fb2c36;--color-red-600:#e40014;--color-red-700:#bf000f;--color-blue-50:#eff6ff;--color-blue-400:#54a2ff;--color-blue-500:#3080ff;--color-blue-600:#155dfc;--color-blue-700:#1447e6;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5dc;--color-gray-500:#6a7282;--color-gray-600:#4a5565;--color-gray-700:#364153;--color-gray-900:#101828;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--font-weight-medium:500;--font-weight-semibold:600;--radius-lg:.5rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}@supports (color:lab(0% 0 0)){:root,:host{--color-red-500:lab(55.4814% 75.0732 48.8528);--color-red-600:lab(48.4493% 77.4328 61.5452);--color-red-700:lab(40.4273% 67.2623 53.7441);--color-blue-50:lab(96.492% -1.14644 -5.11479);--color-blue-400:lab(65.0361% -1.42065 -56.9802);--color-blue-500:lab(54.1736% 13.3369 -74.6839);--color-blue-600:lab(44.0605% 29.0279 -86.0352);--color-blue-700:lab(36.9089% 35.0961 -85.6872);--color-gray-50:lab(98.2596% -.247031 -.706708);--color-gray-100:lab(96.1596% -.0823438 -1.13575);--color-gray-200:lab(91.6229% -.159115 -2.26791);--color-gray-300:lab(85.1236% -.612259 -3.7138);--color-gray-500:lab(47.7841% -.393182 -10.0268);--color-gray-600:lab(35.6337% -1.58697 -10.8425);--color-gray-700:lab(27.1134% -.956401 -12.3224);--color-gray-900:lab(8.11897% .811279 -12.254)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.fixed{position:fixed}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.table{display:table}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.h-0{height:calc(var(--spacing)*0)}.h-0\.5{height:calc(var(--spacing)*.5)}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-4{height:calc(var(--spacing)*4)}.h-24{height:calc(var(--spacing)*24)}.h-full{height:100%}.h-px{height:1px}.max-h-0{max-height:calc(var(--spacing)*0)}.max-h-none{max-height:none}.max-h-screen{max-height:100vh}.min-h-\[1\.5rem\]{min-height:1.5rem}.min-h-\[2\.5rem\]{min-height:2.5rem}.min-h-\[2rem\]{min-height:2rem}.min-h-\[3\.5rem\]{min-height:3.5rem}.min-h-\[3rem\]{min-height:3rem}.w-0{width:calc(var(--spacing)*0)}.w-0\.5{width:calc(var(--spacing)*.5)}.w-1{width:calc(var(--spacing)*1)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-4{width:calc(var(--spacing)*4)}.w-full{width:100%}.w-px{width:1px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.origin-bottom-left{transform-origin:0 100%}.rotate-0{rotate:none}.rotate-180{rotate:180deg}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-none{border-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-8{border-style:var(--tw-border-style);border-width:8px}.border-16{border-style:var(--tw-border-style);border-width:16px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-solid{--tw-border-style:solid;border-style:solid}.border-blue-400{border-color:var(--color-blue-400)}.border-blue-600{border-color:var(--color-blue-600)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-red-600{background-color:var(--color-red-600)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-4{padding:calc(var(--spacing)*4)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.pr-2{padding-right:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.text-center{text-align:center}.text-left{text-align:left}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{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,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:translate-x-1:hover{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-101:hover{--tw-scale-x:101%;--tw-scale-y:101%;--tw-scale-z:101%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:bg-blue-50:hover{background-color:var(--color-blue-50)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-gray-500:focus{--tw-ring-color:var(--color-gray-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus\:ring-inset:focus{--tw-ring-inset:inset}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:#fb2c36;--color-red-600:#e40014;--color-red-700:#bf000f;--color-blue-50:#eff6ff;--color-blue-200:#bedbff;--color-blue-400:#54a2ff;--color-blue-500:#3080ff;--color-blue-600:#155dfc;--color-blue-700:#1447e6;--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5dc;--color-gray-400:#99a1af;--color-gray-500:#6a7282;--color-gray-600:#4a5565;--color-gray-700:#364153;--color-gray-900:#101828;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}@supports (color:lab(0% 0 0)){:root,:host{--color-red-500:lab(55.4814% 75.0732 48.8528);--color-red-600:lab(48.4493% 77.4328 61.5452);--color-red-700:lab(40.4273% 67.2623 53.7441);--color-blue-50:lab(96.492% -1.14644 -5.11479);--color-blue-200:lab(86.15% -4.04379 -21.0797);--color-blue-400:lab(65.0361% -1.42065 -56.9802);--color-blue-500:lab(54.1736% 13.3369 -74.6839);--color-blue-600:lab(44.0605% 29.0279 -86.0352);--color-blue-700:lab(36.9089% 35.0961 -85.6872);--color-gray-50:lab(98.2596% -.247031 -.706708);--color-gray-100:lab(96.1596% -.0823438 -1.13575);--color-gray-200:lab(91.6229% -.159115 -2.26791);--color-gray-300:lab(85.1236% -.612259 -3.7138);--color-gray-400:lab(65.9269% -.832707 -8.17473);--color-gray-500:lab(47.7841% -.393182 -10.0268);--color-gray-600:lab(35.6337% -1.58697 -10.8425);--color-gray-700:lab(27.1134% -.956401 -12.3224);--color-gray-900:lab(8.11897% .811279 -12.254)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-40{z-index:40}.z-50{z-index:50}.mt-2{margin-top:calc(var(--spacing)*2)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.h-0{height:calc(var(--spacing)*0)}.h-0\.5{height:calc(var(--spacing)*.5)}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-24{height:calc(var(--spacing)*24)}.h-64{height:calc(var(--spacing)*64)}.h-96{height:calc(var(--spacing)*96)}.h-\[46rem\]{height:46rem}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-0{max-height:calc(var(--spacing)*0)}.max-h-none{max-height:none}.max-h-screen{max-height:100vh}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-\[1\.5rem\]{min-height:1.5rem}.min-h-\[2\.5rem\]{min-height:2.5rem}.min-h-\[2rem\]{min-height:2rem}.min-h-\[3\.5rem\]{min-height:3.5rem}.min-h-\[3rem\]{min-height:3rem}.w-0{width:calc(var(--spacing)*0)}.w-0\.5{width:calc(var(--spacing)*.5)}.w-1{width:calc(var(--spacing)*1)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-64{width:calc(var(--spacing)*64)}.w-96{width:calc(var(--spacing)*96)}.w-\[46rem\]{width:46rem}.w-full{width:100%}.w-px{width:1px}.w-screen{width:100vw}.max-w-md{max-width:var(--container-md)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.origin-bottom-left{transform-origin:0 100%}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-0{rotate:none}.rotate-180{rotate:180deg}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-none{border-radius:0}.rounded-l-xl{border-top-left-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-8{border-style:var(--tw-border-style);border-width:8px}.border-16{border-style:var(--tw-border-style);border-width:16px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-solid{--tw-border-style:solid;border-style:solid}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-400{border-color:var(--color-blue-400)}.border-blue-600{border-color:var(--color-blue-600)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black)40%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-red-600{background-color:var(--color-red-600)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.py-16{padding-block:calc(var(--spacing)*16)}.pr-2{padding-right:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.text-center{text-align:center}.text-left{text-align:left}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{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,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-transform{will-change:transform}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:translate-x-1:hover{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-101:hover{--tw-scale-x:101%;--tw-scale-y:101%;--tw-scale-z:101%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:bg-blue-50:hover{background-color:var(--color-blue-50)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-gray-500:focus{--tw-ring-color:var(--color-gray-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus\:ring-inset:focus{--tw-ring-inset:inset}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}
3
3
  /*$vite$:1*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gemini-uis",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",