gemini-uis 0.3.0 → 0.4.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,102 @@ 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
+
226
324
  export declare interface IconProps extends SVGProps<SVGSVGElement> {
227
325
  size?: number | string;
228
326
  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 v = {
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 v[e] || v.primary;
14
14
  }, getSizeStyles = (e) => {
15
- let d = {
15
+ let v = {
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 v[e] || v.md;
23
+ }, getRoundedStyles$2 = (e) => e ? "rounded-lg" : "rounded-none", getButtonStyles = (e = "primary", v = "md", y = !1, b = !1, x = !1, S) => [
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(v),
27
+ getRoundedStyles$2(y),
28
+ b ? "opacity-50 cursor-not-allowed" : "",
29
+ x ? "cursor-wait" : "",
30
+ S
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: v = "animate-spin", ...y }) => /* @__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: v,
42
+ ...y,
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: v, strokeWidth: y = 2 }) => /* @__PURE__ */ jsx("svg", {
56
+ className: e,
57
+ width: v,
58
+ height: v,
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: y,
66
+ d: "M6 18L18 6M6 6l12 12"
67
+ })
68
+ }), Button_default = forwardRef(({ type: e = "primary", size: v = "md", rounded: y = !1, disabled: b = !1, loading: x = !1, className: S, children: C, htmlType: w = "button", onClick: T, ...D }, O) => {
69
+ let k = b || x;
57
70
  return /* @__PURE__ */ jsxs("button", {
58
- ref: w,
59
- type: y,
60
- disabled: T,
71
+ ref: O,
72
+ type: w,
73
+ disabled: k,
61
74
  onClick: (e) => {
62
- if (T) {
75
+ if (k) {
63
76
  e.preventDefault();
64
77
  return;
65
78
  }
66
- b?.(e);
79
+ T?.(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, v, y, k, x, S)),
82
+ ...D,
83
+ children: [x && /* @__PURE__ */ jsx(LoadingIcon_default, { className: "animate-spin w-4 h-4 mr-2" }), C]
71
84
  });
72
85
  });
73
86
  const getShadowStyles = (e) => {
74
- let d = {
87
+ let v = {
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 v[e] || v.none;
83
96
  }, getBorderStyles = (e) => {
84
- let d = {
97
+ let v = {
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 v[e] || v.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", v = "none", y = !1, b = !1, x) => {
107
+ let S = getShadowStyles(e), C = getBorderStyles(v), w = getRoundedStyles$1(y), T = getHoverStyles(b);
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
+ x && /\bw-\w+/.test(x) ? "" : "w-full",
111
+ S,
112
+ C,
113
+ w,
114
+ T,
115
+ x
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: v = "sm", rounded: y = !1, disabledHover: b = !1, className: x, children: S, ...C }, w) => /* @__PURE__ */ jsx("div", {
119
+ ref: w,
120
+ className: cn_default(getCardStyles(e, v, y, b, x)),
121
+ ...C,
122
+ children: S
110
123
  }));
111
124
  const getCollapseSizeStyles = (e) => {
112
- let d = {
125
+ let v = {
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 v[e] || v.md;
131
+ }, getCollapseVariantStyles = (e, v, y) => y ? "bg-transparent" : v || e === "bordered" ? "border border-gray-200 rounded-lg overflow-hidden" : "bg-white rounded-lg", getCollapseStyles = (e = "md", v = "default", y = !1, b = !1, x) => [
119
132
  "w-full",
120
133
  getCollapseSizeStyles(e),
121
- getCollapseVariantStyles(d, f, p),
122
- m
134
+ getCollapseVariantStyles(v, y, b),
135
+ x
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: v }) => /* @__PURE__ */ jsx("svg", {
138
+ className: cn_default("shrink-0 size-4 transition-transform duration-200 ease-in-out", e ? "rotate-180" : "rotate-0", v ? "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: v, defaultActiveKey: b, collapsible: S = "header", accordion: T = !1, bordered: E = !1, ghost: D = !1, size: O = "md", variant: k = "default", className: A, children: j, onChange: M, onExpand: N, onCollapse: P, ...F }, I) => {
150
+ let [L, R] = useState(() => {
151
+ let e = v || b;
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
+ }), z = useMemo(() => v === void 0 ? L : Array.isArray(v) ? v : [v], [v, L]), B = useCallback((e) => {
154
+ if (S === "disabled") return;
155
+ let y;
156
+ y = T ? z.includes(e) ? [] : [e] : z.includes(e) ? z.filter((v) => v !== e) : [...z, e], v === void 0 && R(y), M?.(T ? y[0] || "" : y), y.includes(e) ? N?.(e) : P?.(e);
144
157
  }, [
145
- d,
146
- N,
147
- y,
148
158
  v,
149
- E,
150
- 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
160
- });
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, [
159
+ z,
167
160
  T,
161
+ S,
162
+ M,
168
163
  N,
169
- P,
170
- v
164
+ P
165
+ ]), V = getCollapseStyles(O, k, E, D, A), H = useMemo(() => j ? Array.isArray(j) ? j.map((v, b) => {
166
+ if (!isValidElement(v)) return v;
167
+ let { ...x } = v.props, C = v.key || String(b), w = z.includes(C);
168
+ return cloneElement(v, {
169
+ ...x,
170
+ isActive: w,
171
+ onToggle: () => B(C),
172
+ collapsible: S
173
+ });
174
+ }) : isValidElement(j) ? cloneElement(j, {
175
+ ...j.props,
176
+ isActive: z.includes(j.key || "filter"),
177
+ onToggle: () => B(j.key || "filter"),
178
+ collapsible: S
179
+ }) : j : null, [
180
+ j,
181
+ z,
182
+ B,
183
+ S
171
184
  ]);
172
185
  return /* @__PURE__ */ jsx("div", {
173
- ref: A,
174
- className: cn_default(F),
175
- ...k,
176
- children: I
186
+ ref: I,
187
+ className: cn_default(V),
188
+ ...F,
189
+ children: H
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: v, children: y, disabled: b = !1, showArrow: x = !0, arrow: S, className: C, headerContainerClassName: w, headerContentClassName: T, contentClassName: D, onHeaderClick: O, isActive: k = !1, onToggle: A, collapsible: j = "header", ...M }, N) => {
192
+ let P = () => {
193
+ b || j === "disabled" || (O?.(e), A?.());
194
+ }, F = (e) => {
195
+ j !== "header" && (e.stopPropagation(), b || A?.());
196
+ }, I = () => x ? S ? /* @__PURE__ */ jsx("span", {
197
+ className: cn_default("shrink-0 transition-transform duration-200 ease-in-out", k ? "rotate-180" : "rotate-0", b ? "opacity-50" : "", j === "icon" ? "cursor-pointer" : ""),
198
+ onClick: F,
199
+ children: S
187
200
  }) : /* @__PURE__ */ jsx(DefaultArrowIcon, {
188
- isActive: C,
189
- disabled: p
201
+ isActive: k,
202
+ disabled: b
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: N,
206
+ className: cn_default("border-b border-gray-200 last:border-b-0", C),
207
+ ...M,
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", b ? "opacity-50 cursor-not-allowed" : "cursor-pointer hover:bg-gray-50", "focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-inset", w),
210
+ onClick: P,
211
+ tabIndex: b ? -1 : 0,
199
212
  role: "button",
200
- "aria-expanded": C,
201
- "aria-disabled": p,
213
+ "aria-expanded": k,
214
+ "aria-disabled": b,
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", T),
217
+ children: v
218
+ }), I()]
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", k ? "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", D),
223
+ children: y
211
224
  })
212
225
  })]
213
226
  });
@@ -217,23 +230,158 @@ 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, v) => ({
234
+ thin: v === "horizontal" ? "h-px" : "w-px",
235
+ medium: v === "horizontal" ? "h-0.5" : "w-0.5",
236
+ thick: v === "horizontal" ? "h-1" : "w-1",
237
+ "extra-thick": v === "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, v = "horizontal") => e && v === "horizontal" ? `w-[${e}%]` : "", getDividerStyles = (e = "horizontal", v = "medium", y = !1, b, x = !1, S, C) => C ? ["block", C].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(v, e),
242
+ getRoundedStyles(y),
243
+ getColorStyles(b),
244
+ getDashedStyles(x),
245
+ getLengthStyles(S, 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: v = "medium", rounded: y = !1, color: b, dashed: x = !1, length: S, className: C, ...w }, T) => /* @__PURE__ */ jsx("div", {
248
+ ref: T,
249
+ className: cn_default(getDividerStyles(e, v, y ?? !1, b, x, S, C), C),
250
+ ...w
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 v = {
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 v[e] || v.right;
260
+ }, getDrawerSizeStyles = (e, v) => {
261
+ let y = v === "left" || v === "right";
262
+ if (e === "full") return "w-screen h-screen";
263
+ let b = {
264
+ sm: y ? "w-64" : "h-64",
265
+ md: y ? "w-96" : "h-96",
266
+ lg: y ? "w-[46rem]" : "h-[46rem]"
267
+ };
268
+ return b[e] || b.md;
269
+ }, getDrawerTransformStyles = (e, v) => {
270
+ if (v) return "translate-x-0 translate-y-0";
271
+ let y = {
272
+ top: "-translate-y-full",
273
+ right: "translate-x-full",
274
+ bottom: "translate-y-full",
275
+ left: "-translate-x-full"
276
+ };
277
+ return y[e] || y.right;
278
+ }, getDrawerStyles = (e, v, y, b) => [
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(v, e),
282
+ getDrawerTransformStyles(e, y),
283
+ y ? "pointer-events-auto" : "pointer-events-none",
284
+ b
285
+ ].filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), getMaskStyles = (e, v) => [
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
+ v
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: v, placement: y = "right", size: C = "md", mask: D = !0, maskClosable: O = !0, closable: k = !0, closeIcon: A, destroyOnClose: j = !1, className: M, maskClassName: N, bodyClassName: P, headerClassName: F, footerClassName: I, children: L, footer: R, extra: z, onClose: B, afterOpenChange: V, zIndex: H = 1e3, ...U }, W) => {
292
+ let [G, K] = useState(e), [q, J] = useState(!1);
293
+ useEffect(() => {
294
+ if (e) startTransition(() => {
295
+ K(!0);
296
+ }), requestAnimationFrame(() => {
297
+ requestAnimationFrame(() => {
298
+ J(!0);
299
+ });
300
+ });
301
+ else {
302
+ startTransition(() => {
303
+ J(!1);
304
+ });
305
+ let e = setTimeout(() => {
306
+ K(!1);
307
+ }, 300);
308
+ return () => clearTimeout(e);
309
+ }
310
+ }, [e]), useEffect(() => {
311
+ if (!e) return;
312
+ let v = (e) => {
313
+ e.key === "Escape" && B && B();
314
+ };
315
+ return document.addEventListener("keydown", v), () => document.removeEventListener("keydown", v);
316
+ }, [e, B]);
317
+ let Y = useCallback(() => {
318
+ O && B && B();
319
+ }, [O, B]), X = useCallback(() => {
320
+ B && B();
321
+ }, [B]);
322
+ return useEffect(() => {
323
+ V && V(e);
324
+ }, [e, V]), useEffect(() => {
325
+ if (!e) return;
326
+ let v = window.scrollY || 0, { style: y } = document.body, { style: b } = document.documentElement;
327
+ y.position = "fixed", y.top = `-${v}px`, y.left = "0", y.right = "0", y.width = "100%", y.overflow = "hidden", b.overflow = "hidden", b.overscrollBehavior = "none";
328
+ let x = (e) => e.preventDefault();
329
+ return window.addEventListener("touchmove", x, { passive: !1 }), window.addEventListener("wheel", x, { passive: !1 }), () => {
330
+ window.removeEventListener("touchmove", x), window.removeEventListener("wheel", x), y.position = "", y.top = "", y.left = "", y.right = "", y.width = "", y.overflow = "", b.overflow = "", b.overscrollBehavior = "", window.scrollTo(0, v);
331
+ };
332
+ }, [e]), !G && j || !G ? null : /* @__PURE__ */ jsxs(Fragment, { children: [D && /* @__PURE__ */ jsx("div", {
333
+ className: cn_default(getMaskStyles(q, N)),
334
+ style: { zIndex: H - 1 },
335
+ onClick: Y,
336
+ "aria-hidden": "true"
337
+ }), /* @__PURE__ */ jsxs("div", {
338
+ ref: W,
339
+ className: cn_default(getDrawerStyles(y, C, q, M)),
340
+ style: {
341
+ zIndex: H,
342
+ height: C === "full" && (y === "left" || y === "right") ? "100vh" : void 0
343
+ },
344
+ role: "dialog",
345
+ "aria-modal": "true",
346
+ "aria-labelledby": v ? "drawer-title" : void 0,
347
+ ...U,
348
+ children: [
349
+ (v || k || z) && /* @__PURE__ */ jsxs("div", {
350
+ className: cn_default(getHeaderStyles(F)),
351
+ children: [/* @__PURE__ */ jsxs("div", {
352
+ className: "flex items-center gap-4 flex-1",
353
+ children: [v && /* @__PURE__ */ jsx("h2", {
354
+ id: "drawer-title",
355
+ className: "text-lg font-semibold text-gray-900 flex-1",
356
+ children: v
357
+ }), z && /* @__PURE__ */ jsx("div", {
358
+ className: "flex items-center gap-2",
359
+ children: z
360
+ })]
361
+ }), k && /* @__PURE__ */ jsx("button", {
362
+ type: "button",
363
+ onClick: X,
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: A || /* @__PURE__ */ jsx(DefaultCloseIcon, {})
367
+ })]
368
+ }),
369
+ /* @__PURE__ */ jsx("div", {
370
+ className: cn_default(getBodyStyles(P), "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: L
379
+ }),
380
+ R && /* @__PURE__ */ jsx("div", {
381
+ className: cn_default(getFooterStyles(I)),
382
+ children: R
383
+ })
384
+ ]
385
+ })] });
386
+ });
387
+ 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, 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-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-black:#000;--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;--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-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{.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}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.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-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-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}.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)}: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-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)}.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-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.4.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",