listpage-next 0.0.244 → 0.0.246

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.
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ export interface MenuItem {
3
+ id: string;
4
+ label: string;
5
+ icon?: React.ReactNode;
6
+ path?: string;
7
+ children?: MenuItem[];
8
+ badge?: number | string;
9
+ }
10
+ interface InternalSidebarItemProps {
11
+ item: MenuItem;
12
+ isCollapsed: boolean;
13
+ isActive: boolean;
14
+ activePath?: string;
15
+ expandedIds: string[];
16
+ onToggleExpand: (id: string) => void;
17
+ onNavigate?: (path: string) => void;
18
+ level?: number;
19
+ }
20
+ export declare const SidebarItem: React.FC<InternalSidebarItemProps>;
21
+ export {};
@@ -0,0 +1,81 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import "react";
3
+ import { ChevronDown, Circle } from "lucide-react";
4
+ const SidebarItem = ({ item, isCollapsed, isActive, activePath, expandedIds, onToggleExpand, onNavigate, level = 0 })=>{
5
+ const hasChildren = item.children && item.children.length > 0;
6
+ const isExpanded = expandedIds.includes(item.id);
7
+ const handleClick = (e)=>{
8
+ e.stopPropagation();
9
+ if (hasChildren) onToggleExpand(item.id);
10
+ else if (item.path) onNavigate?.(item.path);
11
+ };
12
+ const paddingLeft = isCollapsed ? '0' : `${12 * level + 12}px`;
13
+ return /*#__PURE__*/ jsxs("div", {
14
+ className: "w-full select-none mb-0.5",
15
+ children: [
16
+ /*#__PURE__*/ jsxs("div", {
17
+ onClick: handleClick,
18
+ className: `
19
+ relative flex items-center justify-between py-1.5 px-2 mx-2 rounded-md cursor-pointer transition-all duration-200 group
20
+ ${isActive ? 'bg-[#007AFF] text-white shadow-sm' : 'text-neutral-400 hover:bg-white/10 hover:text-neutral-200'}
21
+ ${isCollapsed ? 'justify-center mx-2 px-0' : ''}
22
+ `,
23
+ style: {
24
+ paddingLeft: isCollapsed ? 0 : paddingLeft,
25
+ paddingRight: isCollapsed ? 0 : '8px'
26
+ },
27
+ title: item.label,
28
+ children: [
29
+ /*#__PURE__*/ jsxs("div", {
30
+ className: `flex items-center ${isCollapsed ? 'justify-center w-full' : 'gap-2.5 overflow-hidden'}`,
31
+ children: [
32
+ /*#__PURE__*/ jsx("span", {
33
+ className: `shrink-0 transition-opacity ${isActive ? 'opacity-100' : 'opacity-70 group-hover:opacity-100'}`,
34
+ children: item.icon ? /*#__PURE__*/ jsx("div", {
35
+ className: `${isActive ? 'text-white' : ''}`,
36
+ children: item.icon
37
+ }) : /*#__PURE__*/ jsx(Circle, {
38
+ size: 4,
39
+ className: isActive ? 'fill-current text-white' : 'text-neutral-500'
40
+ })
41
+ }),
42
+ !isCollapsed && /*#__PURE__*/ jsx("span", {
43
+ className: `truncate text-[13px] leading-none ${isActive ? 'font-medium' : 'font-normal'}`,
44
+ children: item.label
45
+ })
46
+ ]
47
+ }),
48
+ !isCollapsed && /*#__PURE__*/ jsxs("div", {
49
+ className: "flex items-center gap-2",
50
+ children: [
51
+ item.badge && /*#__PURE__*/ jsx("span", {
52
+ className: `text-[10px] px-1.5 py-px rounded-full font-medium ${isActive ? 'bg-white/20 text-white' : 'bg-white/10 text-neutral-400'}`,
53
+ children: item.badge
54
+ }),
55
+ hasChildren && /*#__PURE__*/ jsx("span", {
56
+ className: `transition-transform duration-200 ${isExpanded ? 'rotate-180' : ''} ${isActive ? 'text-white/70' : 'text-neutral-600'}`,
57
+ children: /*#__PURE__*/ jsx(ChevronDown, {
58
+ size: 12
59
+ })
60
+ })
61
+ ]
62
+ })
63
+ ]
64
+ }),
65
+ hasChildren && !isCollapsed && /*#__PURE__*/ jsx("div", {
66
+ className: `overflow-hidden transition-all duration-300 ease-in-out ${isExpanded ? 'max-h-[500px] opacity-100' : 'max-h-0 opacity-0'}`,
67
+ children: item.children?.map((child)=>/*#__PURE__*/ jsx(SidebarItem, {
68
+ item: child,
69
+ isCollapsed: isCollapsed,
70
+ isActive: child.path === activePath,
71
+ activePath: activePath,
72
+ expandedIds: expandedIds,
73
+ onToggleExpand: onToggleExpand,
74
+ onNavigate: onNavigate,
75
+ level: level + 1
76
+ }, child.id))
77
+ })
78
+ ]
79
+ });
80
+ };
81
+ export { SidebarItem };
@@ -0,0 +1,10 @@
1
+ import { MenuItem } from './SiderItem';
2
+ export interface MenuProps {
3
+ title?: string;
4
+ items: MenuItem[];
5
+ isCollapsed?: boolean;
6
+ activePath?: string;
7
+ defaultActivePath?: string;
8
+ onNavigate?: (path: string) => void;
9
+ }
10
+ export declare const Menu: (props: MenuProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,42 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import { SidebarItem } from "./SiderItem.js";
4
+ import { useControllableValue } from "ahooks";
5
+ const Menu = (props)=>{
6
+ const { items, isCollapsed, title } = props;
7
+ const [activePath, setActivePath] = useControllableValue(props, {
8
+ valuePropName: 'activePath',
9
+ trigger: 'onNavigate',
10
+ defaultValuePropName: 'defaultActivePath',
11
+ defaultValue: ''
12
+ });
13
+ const [expandedIds, setExpandedIds] = useState([]);
14
+ const handleToggleExpand = (id)=>{
15
+ setExpandedIds((prev)=>prev.includes(id) ? prev.filter((item)=>item !== id) : [
16
+ ...prev,
17
+ id
18
+ ]);
19
+ };
20
+ return /*#__PURE__*/ jsxs("div", {
21
+ className: "flex-1 overflow-y-auto overflow-x-hidden py-2 px-2 scrollbar-hide",
22
+ children: [
23
+ !isCollapsed && title && /*#__PURE__*/ jsx("div", {
24
+ className: "px-3 mb-2 mt-2 text-[11px] font-medium text-neutral-500 uppercase tracking-widest",
25
+ children: "菜单"
26
+ }),
27
+ /*#__PURE__*/ jsx("nav", {
28
+ className: "space-y-0.5",
29
+ children: items.map((item)=>/*#__PURE__*/ jsx(SidebarItem, {
30
+ item: item,
31
+ isCollapsed: isCollapsed ?? false,
32
+ isActive: item.path === activePath,
33
+ activePath: activePath,
34
+ expandedIds: expandedIds,
35
+ onToggleExpand: handleToggleExpand,
36
+ onNavigate: setActivePath
37
+ }, item.id))
38
+ })
39
+ ]
40
+ });
41
+ };
42
+ export { Menu };
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ export type StatusTagProps = {
3
+ color?: string;
4
+ dotColor?: string;
5
+ status?: 'success' | 'warning' | 'processing' | 'error' | 'default';
6
+ children?: ReactNode;
7
+ loading?: boolean;
8
+ };
9
+ export declare const StatusTag: (props: StatusTagProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,57 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Loader2 } from "lucide-react";
3
+ const StatusTag = (props)=>{
4
+ const { color, children, loading, status } = props;
5
+ const { dot: dotColor, text: textColor } = getColor(color);
6
+ return /*#__PURE__*/ jsxs("span", {
7
+ className: `inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium border ${textColor || getStatusColor(status)}`,
8
+ children: [
9
+ /*#__PURE__*/ jsx("span", {
10
+ className: `w-1.5 h-1.5 rounded-full ${dotColor || getDotColor(status)} mr-1.5 animate-pulse`
11
+ }),
12
+ loading && /*#__PURE__*/ jsx(Loader2, {
13
+ className: "w-3 h-3 mr-1.5 animate-spin"
14
+ }),
15
+ children
16
+ ]
17
+ });
18
+ };
19
+ const getColor = (color)=>{
20
+ if (!color) return {
21
+ dot: null,
22
+ text: null
23
+ };
24
+ return {
25
+ dot: `bg-${color}-500`,
26
+ text: `text-${color}-400 bg-${color}-400/10 border-${color}-400/20`
27
+ };
28
+ };
29
+ const getStatusColor = (status)=>{
30
+ switch(status){
31
+ case 'success':
32
+ return 'text-green-400 bg-green-400/10 border-green-400/20';
33
+ case 'processing':
34
+ return 'text-blue-400 bg-blue-400/10 border-blue-400/20';
35
+ case 'warning':
36
+ return 'text-yellow-400 bg-yellow-400/10 border-yellow-400/20';
37
+ case 'error':
38
+ return 'text-red-400 bg-red-400/10 border-red-400/20';
39
+ default:
40
+ return 'text-gray-400 bg-gray-400/10 border-gray-400/20';
41
+ }
42
+ };
43
+ const getDotColor = (status)=>{
44
+ switch(status){
45
+ case 'success':
46
+ return 'bg-green-500';
47
+ case 'processing':
48
+ return 'bg-blue-500';
49
+ case 'warning':
50
+ return 'bg-yellow-500';
51
+ case 'error':
52
+ return 'bg-red-500';
53
+ default:
54
+ return 'bg-gray-500';
55
+ }
56
+ };
57
+ export { StatusTag };
@@ -0,0 +1,13 @@
1
+ import { ReactNode } from 'react';
2
+ export interface TabsProps {
3
+ defaultActiveTab?: string;
4
+ activeTab?: string;
5
+ onTabChange?: (tab: string) => void;
6
+ tabs: {
7
+ icon?: ReactNode;
8
+ label: ReactNode;
9
+ value: string;
10
+ }[];
11
+ extra?: ReactNode;
12
+ }
13
+ export declare const Tabs: (props: TabsProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,36 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useControllableValue } from "ahooks";
3
+ const Tabs = (props)=>{
4
+ const { tabs = [], defaultActiveTab, extra } = props;
5
+ const [activeTab, setActiveTab] = useControllableValue(props, {
6
+ defaultValue: defaultActiveTab || tabs[0]?.value || '',
7
+ valuePropName: 'activeTab',
8
+ trigger: 'onTabChange'
9
+ });
10
+ return /*#__PURE__*/ jsxs("div", {
11
+ className: "h-10 bg-gray-900 border-b border-gray-800 flex items-center px-4 space-x-1 select-none shrink-0",
12
+ children: [
13
+ /*#__PURE__*/ jsx("div", {
14
+ className: "flex items-center space-x-1 shrink-0 grow",
15
+ children: tabs.map((tab)=>{
16
+ const { icon, label, value } = tab;
17
+ return /*#__PURE__*/ jsxs("button", {
18
+ onClick: ()=>setActiveTab(value),
19
+ className: `cursor-pointer flex items-center space-x-2 px-4 py-2 text-xs font-medium border-b-2 transition-colors ${activeTab === value ? 'border-indigo-500 text-white bg-gray-800/50' : 'border-transparent text-gray-500 hover:text-gray-300 hover:bg-gray-800/30'}`,
20
+ children: [
21
+ icon,
22
+ /*#__PURE__*/ jsx("span", {
23
+ children: label
24
+ })
25
+ ]
26
+ }, value);
27
+ })
28
+ }),
29
+ /*#__PURE__*/ jsx("div", {
30
+ className: "flex shrink-0",
31
+ children: extra
32
+ })
33
+ ]
34
+ });
35
+ };
36
+ export { Tabs };
@@ -1,3 +1,6 @@
1
1
  export { PromptEditor, type PromptEditorProps } from './PromptEditor';
2
2
  export { Button, type ButtonProps } from './Button';
3
3
  export { LogPreview, type LogPreviewProps, type LogEntry } from './LogPreview';
4
+ export { StatusTag, type StatusTagProps } from './StatusTag';
5
+ export { Tabs, type TabsProps } from './Tabs';
6
+ export { Menu, type MenuProps } from './Menu';
package/dist/ui/index.js CHANGED
@@ -1,4 +1,7 @@
1
1
  import { PromptEditor } from "./PromptEditor/index.js";
2
2
  import { Button } from "./Button/index.js";
3
3
  import { LogPreview } from "./LogPreview/index.js";
4
- export { Button, LogPreview, PromptEditor };
4
+ import { StatusTag } from "./StatusTag/index.js";
5
+ import { Tabs } from "./Tabs/index.js";
6
+ import { Menu } from "./Menu/index.js";
7
+ export { Button, LogPreview, Menu, PromptEditor, StatusTag, Tabs };
package/dist/ui.css CHANGED
@@ -7,30 +7,76 @@
7
7
  "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
8
8
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
9
9
  "Courier New", monospace;
10
+ --color-red-400: oklch(70.4% 0.191 22.216);
10
11
  --color-red-500: oklch(63.7% 0.237 25.331);
12
+ --color-orange-400: oklch(75% 0.183 55.934);
13
+ --color-orange-500: oklch(70.5% 0.213 47.604);
14
+ --color-amber-400: oklch(82.8% 0.189 84.429);
15
+ --color-amber-500: oklch(76.9% 0.188 70.08);
16
+ --color-yellow-400: oklch(85.2% 0.199 91.936);
11
17
  --color-yellow-500: oklch(79.5% 0.184 86.047);
18
+ --color-lime-400: oklch(84.1% 0.238 128.85);
19
+ --color-lime-500: oklch(76.8% 0.233 130.85);
20
+ --color-green-400: oklch(79.2% 0.209 151.711);
12
21
  --color-green-500: oklch(72.3% 0.219 149.579);
22
+ --color-emerald-400: oklch(76.5% 0.177 163.223);
23
+ --color-emerald-500: oklch(69.6% 0.17 162.48);
24
+ --color-teal-400: oklch(77.7% 0.152 181.912);
25
+ --color-teal-500: oklch(70.4% 0.14 182.503);
26
+ --color-cyan-400: oklch(78.9% 0.154 211.53);
27
+ --color-cyan-500: oklch(71.5% 0.143 215.221);
28
+ --color-sky-400: oklch(74.6% 0.16 232.661);
29
+ --color-sky-500: oklch(68.5% 0.169 237.323);
30
+ --color-blue-400: oklch(70.7% 0.165 254.624);
13
31
  --color-blue-500: oklch(62.3% 0.214 259.815);
14
32
  --color-blue-600: oklch(54.6% 0.245 262.881);
15
33
  --color-blue-900: oklch(37.9% 0.146 265.522);
34
+ --color-indigo-400: oklch(67.3% 0.182 276.935);
35
+ --color-indigo-500: oklch(58.5% 0.233 277.117);
36
+ --color-violet-400: oklch(70.2% 0.183 293.541);
37
+ --color-violet-500: oklch(60.6% 0.25 292.717);
38
+ --color-purple-400: oklch(71.4% 0.203 305.504);
39
+ --color-purple-500: oklch(62.7% 0.265 303.9);
40
+ --color-fuchsia-400: oklch(74% 0.238 322.16);
41
+ --color-fuchsia-500: oklch(66.7% 0.295 322.15);
42
+ --color-pink-400: oklch(71.8% 0.202 349.761);
43
+ --color-pink-500: oklch(65.6% 0.241 354.308);
44
+ --color-rose-400: oklch(71.2% 0.194 13.428);
45
+ --color-rose-500: oklch(64.5% 0.246 16.439);
16
46
  --color-slate-300: oklch(86.9% 0.022 252.894);
47
+ --color-slate-400: oklch(70.4% 0.04 256.788);
48
+ --color-slate-500: oklch(55.4% 0.046 257.417);
17
49
  --color-gray-300: oklch(87.2% 0.01 258.338);
50
+ --color-gray-400: oklch(70.7% 0.022 261.325);
18
51
  --color-gray-500: oklch(55.1% 0.027 264.364);
19
52
  --color-gray-600: oklch(44.6% 0.03 256.802);
20
53
  --color-gray-700: oklch(37.3% 0.034 259.733);
21
54
  --color-gray-800: oklch(27.8% 0.033 256.848);
22
55
  --color-gray-900: oklch(21% 0.034 264.665);
23
56
  --color-gray-950: oklch(13% 0.028 261.692);
57
+ --color-zinc-400: oklch(70.5% 0.015 286.067);
58
+ --color-zinc-500: oklch(55.2% 0.016 285.938);
59
+ --color-neutral-200: oklch(92.2% 0 0);
60
+ --color-neutral-400: oklch(70.8% 0 0);
61
+ --color-neutral-500: oklch(55.6% 0 0);
62
+ --color-neutral-600: oklch(43.9% 0 0);
63
+ --color-stone-400: oklch(70.9% 0.01 56.259);
64
+ --color-stone-500: oklch(55.3% 0.013 58.071);
24
65
  --color-white: #fff;
25
66
  --spacing: 0.25rem;
26
67
  --text-xs: 0.75rem;
27
68
  --text-xs--line-height: calc(1 / 0.75);
28
69
  --text-sm: 0.875rem;
29
70
  --text-sm--line-height: calc(1.25 / 0.875);
71
+ --font-weight-normal: 400;
30
72
  --font-weight-medium: 500;
31
73
  --font-weight-bold: 700;
74
+ --tracking-widest: 0.1em;
75
+ --radius-md: 0.375rem;
32
76
  --radius-lg: 0.5rem;
77
+ --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
33
78
  --animate-spin: spin 1s linear infinite;
79
+ --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
34
80
  --default-transition-duration: 150ms;
35
81
  --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
36
82
  --default-font-family: var(--font-sans);
@@ -213,9 +259,24 @@
213
259
  max-width: 96rem;
214
260
  }
215
261
  }
262
+ .mx-2 {
263
+ margin-inline: calc(var(--spacing) * 2);
264
+ }
265
+ .mt-2 {
266
+ margin-top: calc(var(--spacing) * 2);
267
+ }
268
+ .mr-1\.5 {
269
+ margin-right: calc(var(--spacing) * 1.5);
270
+ }
271
+ .mb-0\.5 {
272
+ margin-bottom: calc(var(--spacing) * 0.5);
273
+ }
216
274
  .mb-1 {
217
275
  margin-bottom: calc(var(--spacing) * 1);
218
276
  }
277
+ .mb-2 {
278
+ margin-bottom: calc(var(--spacing) * 2);
279
+ }
219
280
  .block {
220
281
  display: block;
221
282
  }
@@ -231,12 +292,36 @@
231
292
  .table {
232
293
  display: table;
233
294
  }
295
+ .h-1\.5 {
296
+ height: calc(var(--spacing) * 1.5);
297
+ }
298
+ .h-3 {
299
+ height: calc(var(--spacing) * 3);
300
+ }
301
+ .h-10 {
302
+ height: calc(var(--spacing) * 10);
303
+ }
234
304
  .h-full {
235
305
  height: 100%;
236
306
  }
307
+ .max-h-0 {
308
+ max-height: calc(var(--spacing) * 0);
309
+ }
310
+ .max-h-\[500px\] {
311
+ max-height: 500px;
312
+ }
313
+ .w-1\.5 {
314
+ width: calc(var(--spacing) * 1.5);
315
+ }
316
+ .w-3 {
317
+ width: calc(var(--spacing) * 3);
318
+ }
237
319
  .w-12 {
238
320
  width: calc(var(--spacing) * 12);
239
321
  }
322
+ .w-full {
323
+ width: 100%;
324
+ }
240
325
  .flex-1 {
241
326
  flex: 1;
242
327
  }
@@ -249,12 +334,21 @@
249
334
  .flex-grow {
250
335
  flex-grow: 1;
251
336
  }
337
+ .grow {
338
+ flex-grow: 1;
339
+ }
252
340
  .border-collapse {
253
341
  border-collapse: collapse;
254
342
  }
343
+ .rotate-180 {
344
+ rotate: 180deg;
345
+ }
255
346
  .transform {
256
347
  transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
257
348
  }
349
+ .animate-pulse {
350
+ animation: var(--animate-pulse);
351
+ }
258
352
  .animate-spin {
259
353
  animation: var(--animate-spin);
260
354
  }
@@ -270,52 +364,479 @@
270
364
  .items-center {
271
365
  align-items: center;
272
366
  }
367
+ .justify-between {
368
+ justify-content: space-between;
369
+ }
370
+ .justify-center {
371
+ justify-content: center;
372
+ }
273
373
  .gap-2 {
274
374
  gap: calc(var(--spacing) * 2);
275
375
  }
376
+ .gap-2\.5 {
377
+ gap: calc(var(--spacing) * 2.5);
378
+ }
276
379
  .gap-3 {
277
380
  gap: calc(var(--spacing) * 3);
278
381
  }
382
+ .space-y-0\.5 {
383
+ :where(& > :not(:last-child)) {
384
+ --tw-space-y-reverse: 0;
385
+ margin-block-start: calc(calc(var(--spacing) * 0.5) * var(--tw-space-y-reverse));
386
+ margin-block-end: calc(calc(var(--spacing) * 0.5) * calc(1 - var(--tw-space-y-reverse)));
387
+ }
388
+ }
389
+ .space-x-1 {
390
+ :where(& > :not(:last-child)) {
391
+ --tw-space-x-reverse: 0;
392
+ margin-inline-start: calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));
393
+ margin-inline-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)));
394
+ }
395
+ }
396
+ .space-x-2 {
397
+ :where(& > :not(:last-child)) {
398
+ --tw-space-x-reverse: 0;
399
+ margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));
400
+ margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));
401
+ }
402
+ }
403
+ .truncate {
404
+ overflow: hidden;
405
+ text-overflow: ellipsis;
406
+ white-space: nowrap;
407
+ }
279
408
  .overflow-auto {
280
409
  overflow: auto;
281
410
  }
282
411
  .overflow-hidden {
283
412
  overflow: hidden;
284
413
  }
414
+ .overflow-x-hidden {
415
+ overflow-x: hidden;
416
+ }
285
417
  .overflow-y-auto {
286
418
  overflow-y: auto;
287
419
  }
288
420
  .rounded {
289
421
  border-radius: 0.25rem;
290
422
  }
423
+ .rounded-full {
424
+ border-radius: calc(infinity * 1px);
425
+ }
291
426
  .rounded-lg {
292
427
  border-radius: var(--radius-lg);
293
428
  }
429
+ .rounded-md {
430
+ border-radius: var(--radius-md);
431
+ }
294
432
  .border {
295
433
  border-style: var(--tw-border-style);
296
434
  border-width: 1px;
297
435
  }
436
+ .border-b {
437
+ border-bottom-style: var(--tw-border-style);
438
+ border-bottom-width: 1px;
439
+ }
440
+ .border-b-2 {
441
+ border-bottom-style: var(--tw-border-style);
442
+ border-bottom-width: 2px;
443
+ }
444
+ .border-amber-400\/20 {
445
+ border-color: color-mix(in srgb, oklch(82.8% 0.189 84.429) 20%, transparent);
446
+ @supports (color: color-mix(in lab, red, red)) {
447
+ border-color: color-mix(in oklab, var(--color-amber-400) 20%, transparent);
448
+ }
449
+ }
450
+ .border-blue-400\/20 {
451
+ border-color: color-mix(in srgb, oklch(70.7% 0.165 254.624) 20%, transparent);
452
+ @supports (color: color-mix(in lab, red, red)) {
453
+ border-color: color-mix(in oklab, var(--color-blue-400) 20%, transparent);
454
+ }
455
+ }
456
+ .border-cyan-400\/20 {
457
+ border-color: color-mix(in srgb, oklch(78.9% 0.154 211.53) 20%, transparent);
458
+ @supports (color: color-mix(in lab, red, red)) {
459
+ border-color: color-mix(in oklab, var(--color-cyan-400) 20%, transparent);
460
+ }
461
+ }
462
+ .border-emerald-400\/20 {
463
+ border-color: color-mix(in srgb, oklch(76.5% 0.177 163.223) 20%, transparent);
464
+ @supports (color: color-mix(in lab, red, red)) {
465
+ border-color: color-mix(in oklab, var(--color-emerald-400) 20%, transparent);
466
+ }
467
+ }
468
+ .border-fuchsia-400\/20 {
469
+ border-color: color-mix(in srgb, oklch(74% 0.238 322.16) 20%, transparent);
470
+ @supports (color: color-mix(in lab, red, red)) {
471
+ border-color: color-mix(in oklab, var(--color-fuchsia-400) 20%, transparent);
472
+ }
473
+ }
474
+ .border-gray-400\/20 {
475
+ border-color: color-mix(in srgb, oklch(70.7% 0.022 261.325) 20%, transparent);
476
+ @supports (color: color-mix(in lab, red, red)) {
477
+ border-color: color-mix(in oklab, var(--color-gray-400) 20%, transparent);
478
+ }
479
+ }
298
480
  .border-gray-700 {
299
481
  border-color: var(--color-gray-700);
300
482
  }
301
483
  .border-gray-800 {
302
484
  border-color: var(--color-gray-800);
303
485
  }
486
+ .border-green-400\/20 {
487
+ border-color: color-mix(in srgb, oklch(79.2% 0.209 151.711) 20%, transparent);
488
+ @supports (color: color-mix(in lab, red, red)) {
489
+ border-color: color-mix(in oklab, var(--color-green-400) 20%, transparent);
490
+ }
491
+ }
492
+ .border-indigo-400\/20 {
493
+ border-color: color-mix(in srgb, oklch(67.3% 0.182 276.935) 20%, transparent);
494
+ @supports (color: color-mix(in lab, red, red)) {
495
+ border-color: color-mix(in oklab, var(--color-indigo-400) 20%, transparent);
496
+ }
497
+ }
498
+ .border-indigo-500 {
499
+ border-color: var(--color-indigo-500);
500
+ }
501
+ .border-lime-400\/20 {
502
+ border-color: color-mix(in srgb, oklch(84.1% 0.238 128.85) 20%, transparent);
503
+ @supports (color: color-mix(in lab, red, red)) {
504
+ border-color: color-mix(in oklab, var(--color-lime-400) 20%, transparent);
505
+ }
506
+ }
507
+ .border-neutral-400\/20 {
508
+ border-color: color-mix(in srgb, oklch(70.8% 0 0) 20%, transparent);
509
+ @supports (color: color-mix(in lab, red, red)) {
510
+ border-color: color-mix(in oklab, var(--color-neutral-400) 20%, transparent);
511
+ }
512
+ }
513
+ .border-orange-400\/20 {
514
+ border-color: color-mix(in srgb, oklch(75% 0.183 55.934) 20%, transparent);
515
+ @supports (color: color-mix(in lab, red, red)) {
516
+ border-color: color-mix(in oklab, var(--color-orange-400) 20%, transparent);
517
+ }
518
+ }
519
+ .border-pink-400\/20 {
520
+ border-color: color-mix(in srgb, oklch(71.8% 0.202 349.761) 20%, transparent);
521
+ @supports (color: color-mix(in lab, red, red)) {
522
+ border-color: color-mix(in oklab, var(--color-pink-400) 20%, transparent);
523
+ }
524
+ }
525
+ .border-purple-400\/20 {
526
+ border-color: color-mix(in srgb, oklch(71.4% 0.203 305.504) 20%, transparent);
527
+ @supports (color: color-mix(in lab, red, red)) {
528
+ border-color: color-mix(in oklab, var(--color-purple-400) 20%, transparent);
529
+ }
530
+ }
531
+ .border-red-400\/20 {
532
+ border-color: color-mix(in srgb, oklch(70.4% 0.191 22.216) 20%, transparent);
533
+ @supports (color: color-mix(in lab, red, red)) {
534
+ border-color: color-mix(in oklab, var(--color-red-400) 20%, transparent);
535
+ }
536
+ }
537
+ .border-rose-400\/20 {
538
+ border-color: color-mix(in srgb, oklch(71.2% 0.194 13.428) 20%, transparent);
539
+ @supports (color: color-mix(in lab, red, red)) {
540
+ border-color: color-mix(in oklab, var(--color-rose-400) 20%, transparent);
541
+ }
542
+ }
543
+ .border-sky-400\/20 {
544
+ border-color: color-mix(in srgb, oklch(74.6% 0.16 232.661) 20%, transparent);
545
+ @supports (color: color-mix(in lab, red, red)) {
546
+ border-color: color-mix(in oklab, var(--color-sky-400) 20%, transparent);
547
+ }
548
+ }
549
+ .border-slate-400\/20 {
550
+ border-color: color-mix(in srgb, oklch(70.4% 0.04 256.788) 20%, transparent);
551
+ @supports (color: color-mix(in lab, red, red)) {
552
+ border-color: color-mix(in oklab, var(--color-slate-400) 20%, transparent);
553
+ }
554
+ }
555
+ .border-stone-400\/20 {
556
+ border-color: color-mix(in srgb, oklch(70.9% 0.01 56.259) 20%, transparent);
557
+ @supports (color: color-mix(in lab, red, red)) {
558
+ border-color: color-mix(in oklab, var(--color-stone-400) 20%, transparent);
559
+ }
560
+ }
561
+ .border-teal-400\/20 {
562
+ border-color: color-mix(in srgb, oklch(77.7% 0.152 181.912) 20%, transparent);
563
+ @supports (color: color-mix(in lab, red, red)) {
564
+ border-color: color-mix(in oklab, var(--color-teal-400) 20%, transparent);
565
+ }
566
+ }
567
+ .border-transparent {
568
+ border-color: transparent;
569
+ }
570
+ .border-violet-400\/20 {
571
+ border-color: color-mix(in srgb, oklch(70.2% 0.183 293.541) 20%, transparent);
572
+ @supports (color: color-mix(in lab, red, red)) {
573
+ border-color: color-mix(in oklab, var(--color-violet-400) 20%, transparent);
574
+ }
575
+ }
576
+ .border-yellow-400\/20 {
577
+ border-color: color-mix(in srgb, oklch(85.2% 0.199 91.936) 20%, transparent);
578
+ @supports (color: color-mix(in lab, red, red)) {
579
+ border-color: color-mix(in oklab, var(--color-yellow-400) 20%, transparent);
580
+ }
581
+ }
582
+ .border-zinc-400\/20 {
583
+ border-color: color-mix(in srgb, oklch(70.5% 0.015 286.067) 20%, transparent);
584
+ @supports (color: color-mix(in lab, red, red)) {
585
+ border-color: color-mix(in oklab, var(--color-zinc-400) 20%, transparent);
586
+ }
587
+ }
304
588
  .bg-\[\#0B1120\] {
305
589
  background-color: #0B1120;
306
590
  }
591
+ .bg-\[\#007AFF\] {
592
+ background-color: #007AFF;
593
+ }
594
+ .bg-amber-400\/10 {
595
+ background-color: color-mix(in srgb, oklch(82.8% 0.189 84.429) 10%, transparent);
596
+ @supports (color: color-mix(in lab, red, red)) {
597
+ background-color: color-mix(in oklab, var(--color-amber-400) 10%, transparent);
598
+ }
599
+ }
600
+ .bg-amber-500 {
601
+ background-color: var(--color-amber-500);
602
+ }
603
+ .bg-blue-400\/10 {
604
+ background-color: color-mix(in srgb, oklch(70.7% 0.165 254.624) 10%, transparent);
605
+ @supports (color: color-mix(in lab, red, red)) {
606
+ background-color: color-mix(in oklab, var(--color-blue-400) 10%, transparent);
607
+ }
608
+ }
609
+ .bg-blue-500 {
610
+ background-color: var(--color-blue-500);
611
+ }
307
612
  .bg-blue-600 {
308
613
  background-color: var(--color-blue-600);
309
614
  }
615
+ .bg-cyan-400\/10 {
616
+ background-color: color-mix(in srgb, oklch(78.9% 0.154 211.53) 10%, transparent);
617
+ @supports (color: color-mix(in lab, red, red)) {
618
+ background-color: color-mix(in oklab, var(--color-cyan-400) 10%, transparent);
619
+ }
620
+ }
621
+ .bg-cyan-500 {
622
+ background-color: var(--color-cyan-500);
623
+ }
624
+ .bg-emerald-400\/10 {
625
+ background-color: color-mix(in srgb, oklch(76.5% 0.177 163.223) 10%, transparent);
626
+ @supports (color: color-mix(in lab, red, red)) {
627
+ background-color: color-mix(in oklab, var(--color-emerald-400) 10%, transparent);
628
+ }
629
+ }
630
+ .bg-emerald-500 {
631
+ background-color: var(--color-emerald-500);
632
+ }
633
+ .bg-fuchsia-400\/10 {
634
+ background-color: color-mix(in srgb, oklch(74% 0.238 322.16) 10%, transparent);
635
+ @supports (color: color-mix(in lab, red, red)) {
636
+ background-color: color-mix(in oklab, var(--color-fuchsia-400) 10%, transparent);
637
+ }
638
+ }
639
+ .bg-fuchsia-500 {
640
+ background-color: var(--color-fuchsia-500);
641
+ }
642
+ .bg-gray-400\/10 {
643
+ background-color: color-mix(in srgb, oklch(70.7% 0.022 261.325) 10%, transparent);
644
+ @supports (color: color-mix(in lab, red, red)) {
645
+ background-color: color-mix(in oklab, var(--color-gray-400) 10%, transparent);
646
+ }
647
+ }
648
+ .bg-gray-500 {
649
+ background-color: var(--color-gray-500);
650
+ }
651
+ .bg-gray-800\/50 {
652
+ background-color: color-mix(in srgb, oklch(27.8% 0.033 256.848) 50%, transparent);
653
+ @supports (color: color-mix(in lab, red, red)) {
654
+ background-color: color-mix(in oklab, var(--color-gray-800) 50%, transparent);
655
+ }
656
+ }
657
+ .bg-gray-900 {
658
+ background-color: var(--color-gray-900);
659
+ }
310
660
  .bg-gray-950 {
311
661
  background-color: var(--color-gray-950);
312
662
  }
663
+ .bg-green-400\/10 {
664
+ background-color: color-mix(in srgb, oklch(79.2% 0.209 151.711) 10%, transparent);
665
+ @supports (color: color-mix(in lab, red, red)) {
666
+ background-color: color-mix(in oklab, var(--color-green-400) 10%, transparent);
667
+ }
668
+ }
669
+ .bg-green-500 {
670
+ background-color: var(--color-green-500);
671
+ }
672
+ .bg-indigo-400\/10 {
673
+ background-color: color-mix(in srgb, oklch(67.3% 0.182 276.935) 10%, transparent);
674
+ @supports (color: color-mix(in lab, red, red)) {
675
+ background-color: color-mix(in oklab, var(--color-indigo-400) 10%, transparent);
676
+ }
677
+ }
678
+ .bg-indigo-500 {
679
+ background-color: var(--color-indigo-500);
680
+ }
681
+ .bg-lime-400\/10 {
682
+ background-color: color-mix(in srgb, oklch(84.1% 0.238 128.85) 10%, transparent);
683
+ @supports (color: color-mix(in lab, red, red)) {
684
+ background-color: color-mix(in oklab, var(--color-lime-400) 10%, transparent);
685
+ }
686
+ }
687
+ .bg-lime-500 {
688
+ background-color: var(--color-lime-500);
689
+ }
690
+ .bg-neutral-400\/10 {
691
+ background-color: color-mix(in srgb, oklch(70.8% 0 0) 10%, transparent);
692
+ @supports (color: color-mix(in lab, red, red)) {
693
+ background-color: color-mix(in oklab, var(--color-neutral-400) 10%, transparent);
694
+ }
695
+ }
696
+ .bg-neutral-500 {
697
+ background-color: var(--color-neutral-500);
698
+ }
699
+ .bg-orange-400\/10 {
700
+ background-color: color-mix(in srgb, oklch(75% 0.183 55.934) 10%, transparent);
701
+ @supports (color: color-mix(in lab, red, red)) {
702
+ background-color: color-mix(in oklab, var(--color-orange-400) 10%, transparent);
703
+ }
704
+ }
705
+ .bg-orange-500 {
706
+ background-color: var(--color-orange-500);
707
+ }
708
+ .bg-pink-400\/10 {
709
+ background-color: color-mix(in srgb, oklch(71.8% 0.202 349.761) 10%, transparent);
710
+ @supports (color: color-mix(in lab, red, red)) {
711
+ background-color: color-mix(in oklab, var(--color-pink-400) 10%, transparent);
712
+ }
713
+ }
714
+ .bg-pink-500 {
715
+ background-color: var(--color-pink-500);
716
+ }
717
+ .bg-purple-400\/10 {
718
+ background-color: color-mix(in srgb, oklch(71.4% 0.203 305.504) 10%, transparent);
719
+ @supports (color: color-mix(in lab, red, red)) {
720
+ background-color: color-mix(in oklab, var(--color-purple-400) 10%, transparent);
721
+ }
722
+ }
723
+ .bg-purple-500 {
724
+ background-color: var(--color-purple-500);
725
+ }
726
+ .bg-red-400\/10 {
727
+ background-color: color-mix(in srgb, oklch(70.4% 0.191 22.216) 10%, transparent);
728
+ @supports (color: color-mix(in lab, red, red)) {
729
+ background-color: color-mix(in oklab, var(--color-red-400) 10%, transparent);
730
+ }
731
+ }
732
+ .bg-red-500 {
733
+ background-color: var(--color-red-500);
734
+ }
735
+ .bg-rose-400\/10 {
736
+ background-color: color-mix(in srgb, oklch(71.2% 0.194 13.428) 10%, transparent);
737
+ @supports (color: color-mix(in lab, red, red)) {
738
+ background-color: color-mix(in oklab, var(--color-rose-400) 10%, transparent);
739
+ }
740
+ }
741
+ .bg-rose-500 {
742
+ background-color: var(--color-rose-500);
743
+ }
744
+ .bg-sky-400\/10 {
745
+ background-color: color-mix(in srgb, oklch(74.6% 0.16 232.661) 10%, transparent);
746
+ @supports (color: color-mix(in lab, red, red)) {
747
+ background-color: color-mix(in oklab, var(--color-sky-400) 10%, transparent);
748
+ }
749
+ }
750
+ .bg-sky-500 {
751
+ background-color: var(--color-sky-500);
752
+ }
753
+ .bg-slate-400\/10 {
754
+ background-color: color-mix(in srgb, oklch(70.4% 0.04 256.788) 10%, transparent);
755
+ @supports (color: color-mix(in lab, red, red)) {
756
+ background-color: color-mix(in oklab, var(--color-slate-400) 10%, transparent);
757
+ }
758
+ }
759
+ .bg-slate-500 {
760
+ background-color: var(--color-slate-500);
761
+ }
762
+ .bg-stone-400\/10 {
763
+ background-color: color-mix(in srgb, oklch(70.9% 0.01 56.259) 10%, transparent);
764
+ @supports (color: color-mix(in lab, red, red)) {
765
+ background-color: color-mix(in oklab, var(--color-stone-400) 10%, transparent);
766
+ }
767
+ }
768
+ .bg-stone-500 {
769
+ background-color: var(--color-stone-500);
770
+ }
771
+ .bg-teal-400\/10 {
772
+ background-color: color-mix(in srgb, oklch(77.7% 0.152 181.912) 10%, transparent);
773
+ @supports (color: color-mix(in lab, red, red)) {
774
+ background-color: color-mix(in oklab, var(--color-teal-400) 10%, transparent);
775
+ }
776
+ }
777
+ .bg-teal-500 {
778
+ background-color: var(--color-teal-500);
779
+ }
780
+ .bg-violet-400\/10 {
781
+ background-color: color-mix(in srgb, oklch(70.2% 0.183 293.541) 10%, transparent);
782
+ @supports (color: color-mix(in lab, red, red)) {
783
+ background-color: color-mix(in oklab, var(--color-violet-400) 10%, transparent);
784
+ }
785
+ }
786
+ .bg-violet-500 {
787
+ background-color: var(--color-violet-500);
788
+ }
789
+ .bg-white\/10 {
790
+ background-color: color-mix(in srgb, #fff 10%, transparent);
791
+ @supports (color: color-mix(in lab, red, red)) {
792
+ background-color: color-mix(in oklab, var(--color-white) 10%, transparent);
793
+ }
794
+ }
795
+ .bg-white\/20 {
796
+ background-color: color-mix(in srgb, #fff 20%, transparent);
797
+ @supports (color: color-mix(in lab, red, red)) {
798
+ background-color: color-mix(in oklab, var(--color-white) 20%, transparent);
799
+ }
800
+ }
801
+ .bg-yellow-400\/10 {
802
+ background-color: color-mix(in srgb, oklch(85.2% 0.199 91.936) 10%, transparent);
803
+ @supports (color: color-mix(in lab, red, red)) {
804
+ background-color: color-mix(in oklab, var(--color-yellow-400) 10%, transparent);
805
+ }
806
+ }
807
+ .bg-yellow-500 {
808
+ background-color: var(--color-yellow-500);
809
+ }
810
+ .bg-zinc-400\/10 {
811
+ background-color: color-mix(in srgb, oklch(70.5% 0.015 286.067) 10%, transparent);
812
+ @supports (color: color-mix(in lab, red, red)) {
813
+ background-color: color-mix(in oklab, var(--color-zinc-400) 10%, transparent);
814
+ }
815
+ }
816
+ .bg-zinc-500 {
817
+ background-color: var(--color-zinc-500);
818
+ }
819
+ .fill-current {
820
+ fill: currentcolor;
821
+ }
313
822
  .p-0\.5 {
314
823
  padding: calc(var(--spacing) * 0.5);
315
824
  }
316
825
  .p-4 {
317
826
  padding: calc(var(--spacing) * 4);
318
827
  }
828
+ .px-0 {
829
+ padding-inline: calc(var(--spacing) * 0);
830
+ }
831
+ .px-1\.5 {
832
+ padding-inline: calc(var(--spacing) * 1.5);
833
+ }
834
+ .px-2 {
835
+ padding-inline: calc(var(--spacing) * 2);
836
+ }
837
+ .px-2\.5 {
838
+ padding-inline: calc(var(--spacing) * 2.5);
839
+ }
319
840
  .px-3 {
320
841
  padding-inline: calc(var(--spacing) * 3);
321
842
  }
@@ -337,6 +858,9 @@
337
858
  .py-2\.5 {
338
859
  padding-block: calc(var(--spacing) * 2.5);
339
860
  }
861
+ .py-px {
862
+ padding-block: 1px;
863
+ }
340
864
  .text-center {
341
865
  text-align: center;
342
866
  }
@@ -351,6 +875,19 @@
351
875
  font-size: var(--text-xs);
352
876
  line-height: var(--tw-leading, var(--text-xs--line-height));
353
877
  }
878
+ .text-\[10px\] {
879
+ font-size: 10px;
880
+ }
881
+ .text-\[11px\] {
882
+ font-size: 11px;
883
+ }
884
+ .text-\[13px\] {
885
+ font-size: 13px;
886
+ }
887
+ .leading-none {
888
+ --tw-leading: 1;
889
+ line-height: 1;
890
+ }
354
891
  .font-bold {
355
892
  --tw-font-weight: var(--font-weight-bold);
356
893
  font-weight: var(--font-weight-bold);
@@ -359,43 +896,148 @@
359
896
  --tw-font-weight: var(--font-weight-medium);
360
897
  font-weight: var(--font-weight-medium);
361
898
  }
899
+ .font-normal {
900
+ --tw-font-weight: var(--font-weight-normal);
901
+ font-weight: var(--font-weight-normal);
902
+ }
903
+ .tracking-widest {
904
+ --tw-tracking: var(--tracking-widest);
905
+ letter-spacing: var(--tracking-widest);
906
+ }
362
907
  .break-all {
363
908
  word-break: break-all;
364
909
  }
365
910
  .whitespace-pre-wrap {
366
911
  white-space: pre-wrap;
367
912
  }
913
+ .text-amber-400 {
914
+ color: var(--color-amber-400);
915
+ }
916
+ .text-blue-400 {
917
+ color: var(--color-blue-400);
918
+ }
368
919
  .text-blue-500 {
369
920
  color: var(--color-blue-500);
370
921
  }
922
+ .text-cyan-400 {
923
+ color: var(--color-cyan-400);
924
+ }
925
+ .text-emerald-400 {
926
+ color: var(--color-emerald-400);
927
+ }
928
+ .text-fuchsia-400 {
929
+ color: var(--color-fuchsia-400);
930
+ }
371
931
  .text-gray-300 {
372
932
  color: var(--color-gray-300);
373
933
  }
934
+ .text-gray-400 {
935
+ color: var(--color-gray-400);
936
+ }
937
+ .text-gray-500 {
938
+ color: var(--color-gray-500);
939
+ }
374
940
  .text-gray-600 {
375
941
  color: var(--color-gray-600);
376
942
  }
943
+ .text-green-400 {
944
+ color: var(--color-green-400);
945
+ }
377
946
  .text-green-500 {
378
947
  color: var(--color-green-500);
379
948
  }
949
+ .text-indigo-400 {
950
+ color: var(--color-indigo-400);
951
+ }
952
+ .text-lime-400 {
953
+ color: var(--color-lime-400);
954
+ }
955
+ .text-neutral-400 {
956
+ color: var(--color-neutral-400);
957
+ }
958
+ .text-neutral-500 {
959
+ color: var(--color-neutral-500);
960
+ }
961
+ .text-neutral-600 {
962
+ color: var(--color-neutral-600);
963
+ }
964
+ .text-orange-400 {
965
+ color: var(--color-orange-400);
966
+ }
967
+ .text-pink-400 {
968
+ color: var(--color-pink-400);
969
+ }
970
+ .text-purple-400 {
971
+ color: var(--color-purple-400);
972
+ }
973
+ .text-red-400 {
974
+ color: var(--color-red-400);
975
+ }
380
976
  .text-red-500 {
381
977
  color: var(--color-red-500);
382
978
  }
979
+ .text-rose-400 {
980
+ color: var(--color-rose-400);
981
+ }
982
+ .text-sky-400 {
983
+ color: var(--color-sky-400);
984
+ }
383
985
  .text-slate-300 {
384
986
  color: var(--color-slate-300);
385
987
  }
988
+ .text-slate-400 {
989
+ color: var(--color-slate-400);
990
+ }
991
+ .text-stone-400 {
992
+ color: var(--color-stone-400);
993
+ }
994
+ .text-teal-400 {
995
+ color: var(--color-teal-400);
996
+ }
997
+ .text-violet-400 {
998
+ color: var(--color-violet-400);
999
+ }
386
1000
  .text-white {
387
1001
  color: var(--color-white);
388
1002
  }
1003
+ .text-white\/70 {
1004
+ color: color-mix(in srgb, #fff 70%, transparent);
1005
+ @supports (color: color-mix(in lab, red, red)) {
1006
+ color: color-mix(in oklab, var(--color-white) 70%, transparent);
1007
+ }
1008
+ }
1009
+ .text-yellow-400 {
1010
+ color: var(--color-yellow-400);
1011
+ }
389
1012
  .text-yellow-500 {
390
1013
  color: var(--color-yellow-500);
391
1014
  }
1015
+ .text-zinc-400 {
1016
+ color: var(--color-zinc-400);
1017
+ }
1018
+ .uppercase {
1019
+ text-transform: uppercase;
1020
+ }
392
1021
  .italic {
393
1022
  font-style: italic;
394
1023
  }
1024
+ .opacity-0 {
1025
+ opacity: 0%;
1026
+ }
1027
+ .opacity-70 {
1028
+ opacity: 70%;
1029
+ }
1030
+ .opacity-100 {
1031
+ opacity: 100%;
1032
+ }
395
1033
  .shadow-lg {
396
1034
  --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
397
1035
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
398
1036
  }
1037
+ .shadow-sm {
1038
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1039
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1040
+ }
399
1041
  .shadow-blue-900\/20 {
400
1042
  --tw-shadow-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 20%, transparent);
401
1043
  @supports (color: color-mix(in lab, red, red)) {
@@ -424,14 +1066,39 @@
424
1066
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
425
1067
  transition-duration: var(--tw-duration, var(--default-transition-duration));
426
1068
  }
1069
+ .transition-opacity {
1070
+ transition-property: opacity;
1071
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1072
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1073
+ }
1074
+ .transition-transform {
1075
+ transition-property: transform, translate, scale, rotate;
1076
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1077
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1078
+ }
1079
+ .duration-200 {
1080
+ --tw-duration: 200ms;
1081
+ transition-duration: 200ms;
1082
+ }
427
1083
  .duration-300 {
428
1084
  --tw-duration: 300ms;
429
1085
  transition-duration: 300ms;
430
1086
  }
1087
+ .ease-in-out {
1088
+ --tw-ease: var(--ease-in-out);
1089
+ transition-timing-function: var(--ease-in-out);
1090
+ }
431
1091
  .select-none {
432
1092
  -webkit-user-select: none;
433
1093
  user-select: none;
434
1094
  }
1095
+ .group-hover\:opacity-100 {
1096
+ &:is(:where(.group):hover *) {
1097
+ @media (hover: hover) {
1098
+ opacity: 100%;
1099
+ }
1100
+ }
1101
+ }
435
1102
  .hover\:scale-\[1\.02\] {
436
1103
  &:hover {
437
1104
  @media (hover: hover) {
@@ -453,6 +1120,16 @@
453
1120
  }
454
1121
  }
455
1122
  }
1123
+ .hover\:bg-gray-800\/30 {
1124
+ &:hover {
1125
+ @media (hover: hover) {
1126
+ background-color: color-mix(in srgb, oklch(27.8% 0.033 256.848) 30%, transparent);
1127
+ @supports (color: color-mix(in lab, red, red)) {
1128
+ background-color: color-mix(in oklab, var(--color-gray-800) 30%, transparent);
1129
+ }
1130
+ }
1131
+ }
1132
+ }
456
1133
  .hover\:bg-gray-900\/50 {
457
1134
  &:hover {
458
1135
  @media (hover: hover) {
@@ -463,6 +1140,30 @@
463
1140
  }
464
1141
  }
465
1142
  }
1143
+ .hover\:bg-white\/10 {
1144
+ &:hover {
1145
+ @media (hover: hover) {
1146
+ background-color: color-mix(in srgb, #fff 10%, transparent);
1147
+ @supports (color: color-mix(in lab, red, red)) {
1148
+ background-color: color-mix(in oklab, var(--color-white) 10%, transparent);
1149
+ }
1150
+ }
1151
+ }
1152
+ }
1153
+ .hover\:text-gray-300 {
1154
+ &:hover {
1155
+ @media (hover: hover) {
1156
+ color: var(--color-gray-300);
1157
+ }
1158
+ }
1159
+ }
1160
+ .hover\:text-neutral-200 {
1161
+ &:hover {
1162
+ @media (hover: hover) {
1163
+ color: var(--color-neutral-200);
1164
+ }
1165
+ }
1166
+ }
466
1167
  .hover\:text-white {
467
1168
  &:hover {
468
1169
  @media (hover: hover) {
@@ -545,15 +1246,33 @@
545
1246
  syntax: "*";
546
1247
  inherits: false;
547
1248
  }
1249
+ @property --tw-space-y-reverse {
1250
+ syntax: "*";
1251
+ inherits: false;
1252
+ initial-value: 0;
1253
+ }
1254
+ @property --tw-space-x-reverse {
1255
+ syntax: "*";
1256
+ inherits: false;
1257
+ initial-value: 0;
1258
+ }
548
1259
  @property --tw-border-style {
549
1260
  syntax: "*";
550
1261
  inherits: false;
551
1262
  initial-value: solid;
552
1263
  }
1264
+ @property --tw-leading {
1265
+ syntax: "*";
1266
+ inherits: false;
1267
+ }
553
1268
  @property --tw-font-weight {
554
1269
  syntax: "*";
555
1270
  inherits: false;
556
1271
  }
1272
+ @property --tw-tracking {
1273
+ syntax: "*";
1274
+ inherits: false;
1275
+ }
557
1276
  @property --tw-shadow {
558
1277
  syntax: "*";
559
1278
  inherits: false;
@@ -681,11 +1400,20 @@
681
1400
  syntax: "*";
682
1401
  inherits: false;
683
1402
  }
1403
+ @property --tw-ease {
1404
+ syntax: "*";
1405
+ inherits: false;
1406
+ }
684
1407
  @keyframes spin {
685
1408
  to {
686
1409
  transform: rotate(360deg);
687
1410
  }
688
1411
  }
1412
+ @keyframes pulse {
1413
+ 50% {
1414
+ opacity: 0.5;
1415
+ }
1416
+ }
689
1417
  @layer properties {
690
1418
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
691
1419
  *, ::before, ::after, ::backdrop {
@@ -694,8 +1422,12 @@
694
1422
  --tw-rotate-z: initial;
695
1423
  --tw-skew-x: initial;
696
1424
  --tw-skew-y: initial;
1425
+ --tw-space-y-reverse: 0;
1426
+ --tw-space-x-reverse: 0;
697
1427
  --tw-border-style: solid;
1428
+ --tw-leading: initial;
698
1429
  --tw-font-weight: initial;
1430
+ --tw-tracking: initial;
699
1431
  --tw-shadow: 0 0 #0000;
700
1432
  --tw-shadow-color: initial;
701
1433
  --tw-shadow-alpha: 100%;
@@ -725,6 +1457,7 @@
725
1457
  --tw-drop-shadow-alpha: 100%;
726
1458
  --tw-drop-shadow-size: initial;
727
1459
  --tw-duration: initial;
1460
+ --tw-ease: initial;
728
1461
  }
729
1462
  }
730
1463
  }
@@ -0,0 +1,14 @@
1
+ export interface PrismaClientOptions {
2
+ baseURL: string;
3
+ headers?: Record<string, string>;
4
+ }
5
+ export declare class PrismaClient {
6
+ private options;
7
+ constructor(options: PrismaClientOptions);
8
+ /**
9
+ * 创建模型代理 (Model Delegate)
10
+ * 拦截 db.user.findMany() 中的 .findMany
11
+ */
12
+ private createModelDelegate;
13
+ private request;
14
+ }
@@ -0,0 +1,44 @@
1
+ class PrismaClient {
2
+ options;
3
+ constructor(options){
4
+ this.options = options;
5
+ return new Proxy(this, {
6
+ get: (target, prop)=>{
7
+ if (prop in target || 'string' != typeof prop || 'then' === prop) return target[prop];
8
+ return this.createModelDelegate(prop);
9
+ }
10
+ });
11
+ }
12
+ createModelDelegate(modelName) {
13
+ return new Proxy({}, {
14
+ get: (_target, actionName)=>{
15
+ if ('string' != typeof actionName || 'then' === actionName) return;
16
+ return async (args)=>this.request(modelName, actionName, args);
17
+ }
18
+ });
19
+ }
20
+ async request(modelName, actionName, args) {
21
+ const baseUrl = this.options.baseURL;
22
+ try {
23
+ const response = await fetch(baseUrl, {
24
+ method: 'POST',
25
+ headers: {
26
+ 'Content-Type': 'application/json',
27
+ ...this.options.headers
28
+ },
29
+ body: JSON.stringify({
30
+ model: modelName,
31
+ action: actionName,
32
+ args: args || {}
33
+ })
34
+ });
35
+ const responseData = await response.json();
36
+ if (!response.ok) throw new Error(responseData?.error || `Prisma Request Failed: ${response.statusText}`);
37
+ return void 0 !== responseData.result ? responseData.result : responseData;
38
+ } catch (error) {
39
+ console.error(`[PrismaClient] Error executing ${modelName}.${actionName}:`, error);
40
+ throw error;
41
+ }
42
+ }
43
+ }
44
+ export { PrismaClient };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "listpage-next",
3
- "version": "0.0.244",
3
+ "version": "0.0.246",
4
4
  "description": "A React component library for creating filter forms with Ant Design",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -18,6 +18,10 @@
18
18
  "types": "./dist/features/*/index.d.ts",
19
19
  "import": "./dist/features/*/index.js"
20
20
  },
21
+ "./utils/*": {
22
+ "types": "./dist/utils/*/index.d.ts",
23
+ "import": "./dist/utils/*/index.js"
24
+ },
21
25
  "./ui.css": "./dist/ui.css"
22
26
  },
23
27
  "types": "./dist/index.d.ts",