@caqophony/ui 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/README.md +58 -5
- package/dist/chunk-BAW3RIMF.js +229 -0
- package/dist/chunk-DP5WQAPO.js +23 -0
- package/dist/{chunk-4YA6BZDJ.js → chunk-ODRGJV46.js} +3 -10
- package/dist/chunk-PKP3ZIRB.js +379 -0
- package/dist/chunk-Y6LCXEXZ.js +126 -0
- package/dist/icon.d-DQqyySj2.d.mts +82 -0
- package/dist/index.d.mts +28 -85
- package/dist/index.js +881 -1321
- package/dist/markdown.js +2 -1
- package/dist/marketing.d.mts +437 -0
- package/dist/marketing.js +1422 -0
- package/dist/material-art.d.mts +125 -0
- package/dist/material-art.js +204 -0
- package/dist/material-tones.d.mts +23 -0
- package/dist/material-tones.js +66 -0
- package/dist/material.d.mts +279 -0
- package/dist/material.js +711 -0
- package/package.json +19 -2
- package/styles.css +393 -0
package/dist/index.js
CHANGED
|
@@ -1,226 +1,45 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import {
|
|
3
|
-
MarkdownRenderer
|
|
4
|
-
|
|
5
|
-
} from "./chunk-4YA6BZDJ.js";
|
|
6
|
-
|
|
7
|
-
// src/button.tsx
|
|
8
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
9
|
-
import { cva } from "class-variance-authority";
|
|
10
|
-
import * as React from "react";
|
|
11
|
-
|
|
12
|
-
// src/icon.tsx
|
|
3
|
+
MarkdownRenderer
|
|
4
|
+
} from "./chunk-ODRGJV46.js";
|
|
13
5
|
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
Lock,
|
|
45
|
-
LogOut,
|
|
46
|
-
Mail,
|
|
47
|
-
MapPin,
|
|
48
|
-
Menu,
|
|
49
|
-
Package,
|
|
50
|
-
Pencil,
|
|
51
|
-
Phone,
|
|
52
|
-
Plus,
|
|
53
|
-
RefreshCw,
|
|
54
|
-
Rocket,
|
|
55
|
-
Search,
|
|
56
|
-
Settings,
|
|
57
|
-
Star,
|
|
58
|
-
Tag,
|
|
59
|
-
Trash2,
|
|
60
|
-
TriangleAlert,
|
|
61
|
-
Upload,
|
|
62
|
-
User,
|
|
63
|
-
Users,
|
|
64
|
-
X
|
|
65
|
-
} from "lucide-react";
|
|
66
|
-
import { jsx } from "react/jsx-runtime";
|
|
67
|
-
var ICONS = {
|
|
68
|
-
"arrow-left": ArrowLeft,
|
|
69
|
-
"arrow-right": ArrowRight,
|
|
70
|
-
bell: Bell,
|
|
71
|
-
calendar: Calendar,
|
|
72
|
-
check: Check,
|
|
73
|
-
"chevron-down": ChevronDown,
|
|
74
|
-
"chevron-left": ChevronLeft,
|
|
75
|
-
"chevron-right": ChevronRight,
|
|
76
|
-
"chevron-up": ChevronUp,
|
|
77
|
-
"circle-alert": CircleAlert,
|
|
78
|
-
"circle-check": CircleCheck,
|
|
79
|
-
"clipboard-list": ClipboardList,
|
|
80
|
-
clock: Clock,
|
|
81
|
-
database: Database,
|
|
82
|
-
download: Download,
|
|
83
|
-
ellipsis: Ellipsis,
|
|
84
|
-
"external-link": ExternalLink,
|
|
85
|
-
eye: Eye,
|
|
86
|
-
"eye-off": EyeOff,
|
|
87
|
-
"file-text": FileText,
|
|
88
|
-
filter: Filter,
|
|
89
|
-
folder: Folder,
|
|
90
|
-
heart: Heart,
|
|
91
|
-
house: House,
|
|
92
|
-
inbox: Inbox,
|
|
93
|
-
info: Info,
|
|
94
|
-
"layout-grid": LayoutGrid,
|
|
95
|
-
link: Link,
|
|
96
|
-
list: List,
|
|
97
|
-
loader: LoaderCircle,
|
|
98
|
-
lock: Lock,
|
|
99
|
-
"log-out": LogOut,
|
|
100
|
-
mail: Mail,
|
|
101
|
-
"map-pin": MapPin,
|
|
102
|
-
menu: Menu,
|
|
103
|
-
package: Package,
|
|
104
|
-
pencil: Pencil,
|
|
105
|
-
phone: Phone,
|
|
106
|
-
plus: Plus,
|
|
107
|
-
"refresh-cw": RefreshCw,
|
|
108
|
-
rocket: Rocket,
|
|
109
|
-
search: Search,
|
|
110
|
-
settings: Settings,
|
|
111
|
-
star: Star,
|
|
112
|
-
tag: Tag,
|
|
113
|
-
trash: Trash2,
|
|
114
|
-
"triangle-alert": TriangleAlert,
|
|
115
|
-
upload: Upload,
|
|
116
|
-
user: User,
|
|
117
|
-
users: Users,
|
|
118
|
-
x: X
|
|
119
|
-
};
|
|
120
|
-
var ICON_SIZES = {
|
|
121
|
-
xs: "size-3",
|
|
122
|
-
sm: "size-4",
|
|
123
|
-
md: "size-5",
|
|
124
|
-
lg: "size-6",
|
|
125
|
-
xl: "size-8"
|
|
126
|
-
};
|
|
127
|
-
function Icon({ name, size, className }) {
|
|
128
|
-
const Glyph = ICONS[name];
|
|
129
|
-
return /* @__PURE__ */ jsx(Glyph, { className: cn(ICON_SIZES[size], className), "aria-hidden": "true" });
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// src/spinner.tsx
|
|
133
|
-
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
134
|
-
function Spinner(props) {
|
|
135
|
-
const { size = "md", className } = props;
|
|
136
|
-
const glyph = /* @__PURE__ */ jsx2(Icon, { name: "loader", size, className: "animate-spin" });
|
|
137
|
-
if (props.decorative)
|
|
138
|
-
return /* @__PURE__ */ jsx2(
|
|
139
|
-
"span",
|
|
140
|
-
{
|
|
141
|
-
"aria-hidden": "true",
|
|
142
|
-
className: cn("inline-flex shrink-0 text-current", className),
|
|
143
|
-
children: glyph
|
|
144
|
-
}
|
|
145
|
-
);
|
|
146
|
-
return /* @__PURE__ */ jsxs(
|
|
147
|
-
"span",
|
|
148
|
-
{
|
|
149
|
-
role: "status",
|
|
150
|
-
className: cn("inline-flex shrink-0 text-current", className),
|
|
151
|
-
children: [
|
|
152
|
-
glyph,
|
|
153
|
-
/* @__PURE__ */ jsx2("span", { className: "sr-only", children: props.label })
|
|
154
|
-
]
|
|
155
|
-
}
|
|
156
|
-
);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// src/button.tsx
|
|
160
|
-
import { Fragment, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
161
|
-
var buttonVariants = cva(
|
|
162
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
163
|
-
{
|
|
164
|
-
variants: {
|
|
165
|
-
variant: {
|
|
166
|
-
default: "bg-primary-solid dark:bg-primary-solid text-primary-foreground dark:text-primary-foreground shadow hover:bg-primary-solid/90 dark:hover:bg-primary-solid/90",
|
|
167
|
-
destructive: "bg-intent-error-solid dark:bg-intent-error-solid text-intent-error-solid-fg dark:text-intent-error-solid-fg shadow-sm hover:bg-intent-error-solid/90 dark:hover:bg-intent-error-solid/90",
|
|
168
|
-
outline: "border border-border dark:border-border bg-background dark:bg-background text-foreground dark:text-foreground shadow-sm hover:bg-muted dark:hover:bg-muted hover:text-foreground dark:hover:text-foreground",
|
|
169
|
-
secondary: "bg-muted dark:bg-muted text-muted-foreground dark:text-muted-foreground shadow-sm hover:bg-muted/80 dark:hover:bg-muted/80",
|
|
170
|
-
ghost: "hover:bg-muted dark:hover:bg-muted hover:text-foreground dark:hover:text-foreground",
|
|
171
|
-
link: "text-primary-text dark:text-primary-text underline-offset-4 hover:underline"
|
|
172
|
-
},
|
|
173
|
-
size: {
|
|
174
|
-
default: "h-10 px-4 py-2",
|
|
175
|
-
sm: "h-9 rounded-md px-3",
|
|
176
|
-
lg: "h-11 rounded-md px-8",
|
|
177
|
-
icon: "size-10"
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
defaultVariants: {
|
|
181
|
-
variant: "default",
|
|
182
|
-
size: "default"
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
);
|
|
186
|
-
var Button = React.forwardRef(
|
|
187
|
-
({
|
|
188
|
-
className,
|
|
189
|
-
variant,
|
|
190
|
-
size,
|
|
191
|
-
asChild = false,
|
|
192
|
-
loading = false,
|
|
193
|
-
loadingText,
|
|
194
|
-
children,
|
|
195
|
-
disabled,
|
|
196
|
-
...props
|
|
197
|
-
}, ref) => {
|
|
198
|
-
const Comp = asChild && !loading ? Slot : "button";
|
|
199
|
-
const isDisabled = disabled || loading;
|
|
200
|
-
return /* @__PURE__ */ jsx3(
|
|
201
|
-
Comp,
|
|
202
|
-
{
|
|
203
|
-
className: cn(buttonVariants({ variant, size, className })),
|
|
204
|
-
ref,
|
|
205
|
-
disabled: isDisabled,
|
|
206
|
-
"aria-busy": loading,
|
|
207
|
-
...props,
|
|
208
|
-
children: loading ? /* @__PURE__ */ jsxs2(Fragment, { children: [
|
|
209
|
-
/* @__PURE__ */ jsx3(Spinner, { decorative: true, size: "sm" }),
|
|
210
|
-
/* @__PURE__ */ jsx3("span", { children: loadingText || children })
|
|
211
|
-
] }) : children
|
|
212
|
-
}
|
|
213
|
-
);
|
|
214
|
-
}
|
|
215
|
-
);
|
|
216
|
-
Button.displayName = "Button";
|
|
6
|
+
Button,
|
|
7
|
+
CONTENT_GUTTER,
|
|
8
|
+
Container,
|
|
9
|
+
NavDrawer,
|
|
10
|
+
NavbarMenu,
|
|
11
|
+
Spinner,
|
|
12
|
+
buttonVariants,
|
|
13
|
+
useModalSurface,
|
|
14
|
+
usePanelRef
|
|
15
|
+
} from "./chunk-PKP3ZIRB.js";
|
|
16
|
+
import {
|
|
17
|
+
Alert,
|
|
18
|
+
EMPTY_VALUE_GLYPH,
|
|
19
|
+
EmptyValue,
|
|
20
|
+
INTENT_SUBTLE_STYLES,
|
|
21
|
+
IntentBadge,
|
|
22
|
+
isEmptyValue
|
|
23
|
+
} from "./chunk-Y6LCXEXZ.js";
|
|
24
|
+
import {
|
|
25
|
+
ICONS,
|
|
26
|
+
ICON_SIZES,
|
|
27
|
+
Icon,
|
|
28
|
+
SCROLL_HINT_X,
|
|
29
|
+
SCROLL_HINT_Y,
|
|
30
|
+
SCROLL_HINT_Y_MARK,
|
|
31
|
+
ScrollHintXMark
|
|
32
|
+
} from "./chunk-BAW3RIMF.js";
|
|
33
|
+
import {
|
|
34
|
+
cn
|
|
35
|
+
} from "./chunk-DP5WQAPO.js";
|
|
217
36
|
|
|
218
37
|
// src/input.tsx
|
|
219
|
-
import * as
|
|
38
|
+
import * as React from "react";
|
|
220
39
|
|
|
221
40
|
// src/field.ts
|
|
222
|
-
import { cva
|
|
223
|
-
var fieldVariants =
|
|
41
|
+
import { cva } from "class-variance-authority";
|
|
42
|
+
var fieldVariants = cva(
|
|
224
43
|
"w-full min-w-0 rounded-md border bg-background text-foreground ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
225
44
|
{
|
|
226
45
|
variants: {
|
|
@@ -250,10 +69,10 @@ function fieldAria(error, errorMessageId) {
|
|
|
250
69
|
}
|
|
251
70
|
|
|
252
71
|
// src/input.tsx
|
|
253
|
-
import { jsx
|
|
254
|
-
var Input =
|
|
72
|
+
import { jsx } from "react/jsx-runtime";
|
|
73
|
+
var Input = React.forwardRef(
|
|
255
74
|
({ className, type, error, errorMessageId, size = "md", ...props }, ref) => {
|
|
256
|
-
return /* @__PURE__ */
|
|
75
|
+
return /* @__PURE__ */ jsx(
|
|
257
76
|
"input",
|
|
258
77
|
{
|
|
259
78
|
type,
|
|
@@ -274,9 +93,9 @@ var Input = React2.forwardRef(
|
|
|
274
93
|
Input.displayName = "Input";
|
|
275
94
|
|
|
276
95
|
// src/card.tsx
|
|
277
|
-
import * as
|
|
278
|
-
import { jsx as
|
|
279
|
-
var Card =
|
|
96
|
+
import * as React2 from "react";
|
|
97
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
98
|
+
var Card = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
280
99
|
"div",
|
|
281
100
|
{
|
|
282
101
|
ref,
|
|
@@ -290,7 +109,7 @@ var Card = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ j
|
|
|
290
109
|
}
|
|
291
110
|
));
|
|
292
111
|
Card.displayName = "Card";
|
|
293
|
-
var CardHeader =
|
|
112
|
+
var CardHeader = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
294
113
|
"div",
|
|
295
114
|
{
|
|
296
115
|
ref,
|
|
@@ -299,7 +118,7 @@ var CardHeader = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
299
118
|
}
|
|
300
119
|
));
|
|
301
120
|
CardHeader.displayName = "CardHeader";
|
|
302
|
-
var CardTitle =
|
|
121
|
+
var CardTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
303
122
|
"h3",
|
|
304
123
|
{
|
|
305
124
|
ref,
|
|
@@ -311,7 +130,7 @@ var CardTitle = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
311
130
|
}
|
|
312
131
|
));
|
|
313
132
|
CardTitle.displayName = "CardTitle";
|
|
314
|
-
var CardDescription =
|
|
133
|
+
var CardDescription = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
315
134
|
"p",
|
|
316
135
|
{
|
|
317
136
|
ref,
|
|
@@ -320,9 +139,9 @@ var CardDescription = React3.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
320
139
|
}
|
|
321
140
|
));
|
|
322
141
|
CardDescription.displayName = "CardDescription";
|
|
323
|
-
var CardContent =
|
|
142
|
+
var CardContent = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2("div", { ref, className: cn("p-6 pt-0", className), ...props }));
|
|
324
143
|
CardContent.displayName = "CardContent";
|
|
325
|
-
var CardFooter =
|
|
144
|
+
var CardFooter = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
326
145
|
"div",
|
|
327
146
|
{
|
|
328
147
|
ref,
|
|
@@ -334,12 +153,12 @@ CardFooter.displayName = "CardFooter";
|
|
|
334
153
|
|
|
335
154
|
// src/switch.tsx
|
|
336
155
|
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
337
|
-
import * as
|
|
338
|
-
import { jsx as
|
|
339
|
-
var Switch =
|
|
340
|
-
const generatedId =
|
|
156
|
+
import * as React3 from "react";
|
|
157
|
+
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
158
|
+
var Switch = React3.forwardRef(({ className, label, description, id, ...props }, ref) => {
|
|
159
|
+
const generatedId = React3.useId();
|
|
341
160
|
const switchId = id || generatedId;
|
|
342
|
-
const switchElement = /* @__PURE__ */
|
|
161
|
+
const switchElement = /* @__PURE__ */ jsx3(
|
|
343
162
|
SwitchPrimitives.Root,
|
|
344
163
|
{
|
|
345
164
|
className: cn(
|
|
@@ -353,7 +172,7 @@ var Switch = React4.forwardRef(({ className, label, description, id, ...props },
|
|
|
353
172
|
id: switchId,
|
|
354
173
|
ref,
|
|
355
174
|
...props,
|
|
356
|
-
children: /* @__PURE__ */
|
|
175
|
+
children: /* @__PURE__ */ jsx3(
|
|
357
176
|
SwitchPrimitives.Thumb,
|
|
358
177
|
{
|
|
359
178
|
className: cn(
|
|
@@ -368,10 +187,10 @@ var Switch = React4.forwardRef(({ className, label, description, id, ...props },
|
|
|
368
187
|
if (!label) {
|
|
369
188
|
return switchElement;
|
|
370
189
|
}
|
|
371
|
-
return /* @__PURE__ */
|
|
190
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
372
191
|
switchElement,
|
|
373
|
-
/* @__PURE__ */
|
|
374
|
-
/* @__PURE__ */
|
|
192
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
|
|
193
|
+
/* @__PURE__ */ jsx3(
|
|
375
194
|
"label",
|
|
376
195
|
{
|
|
377
196
|
htmlFor: switchId,
|
|
@@ -379,26 +198,26 @@ var Switch = React4.forwardRef(({ className, label, description, id, ...props },
|
|
|
379
198
|
children: label
|
|
380
199
|
}
|
|
381
200
|
),
|
|
382
|
-
description && /* @__PURE__ */
|
|
201
|
+
description && /* @__PURE__ */ jsx3("span", { className: "text-xs text-muted-foreground dark:text-muted-foreground", children: description })
|
|
383
202
|
] })
|
|
384
203
|
] });
|
|
385
204
|
});
|
|
386
205
|
Switch.displayName = "Switch";
|
|
387
206
|
|
|
388
207
|
// src/tooltip.tsx
|
|
389
|
-
import * as
|
|
208
|
+
import * as React4 from "react";
|
|
390
209
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
391
|
-
import { jsx as
|
|
210
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
392
211
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
393
212
|
var Tooltip = TooltipPrimitive.Root;
|
|
394
213
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
395
|
-
var TooltipContent =
|
|
214
|
+
var TooltipContent = React4.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
396
215
|
TooltipPrimitive.Content,
|
|
397
216
|
{
|
|
398
217
|
ref,
|
|
399
218
|
sideOffset,
|
|
400
219
|
className: cn(
|
|
401
|
-
"z-
|
|
220
|
+
"z-tooltip overflow-hidden rounded-md border border-border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
402
221
|
className
|
|
403
222
|
),
|
|
404
223
|
...props
|
|
@@ -407,9 +226,9 @@ var TooltipContent = React5.forwardRef(({ className, sideOffset = 4, ...props },
|
|
|
407
226
|
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
408
227
|
|
|
409
228
|
// src/label.tsx
|
|
410
|
-
import * as
|
|
411
|
-
import { jsx as
|
|
412
|
-
var Label =
|
|
229
|
+
import * as React5 from "react";
|
|
230
|
+
import { jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
231
|
+
var Label = React5.forwardRef(
|
|
413
232
|
({
|
|
414
233
|
className,
|
|
415
234
|
required = false,
|
|
@@ -419,7 +238,7 @@ var Label = React6.forwardRef(
|
|
|
419
238
|
size = "md",
|
|
420
239
|
children,
|
|
421
240
|
...props
|
|
422
|
-
}, ref) => /* @__PURE__ */
|
|
241
|
+
}, ref) => /* @__PURE__ */ jsxs2(
|
|
423
242
|
"label",
|
|
424
243
|
{
|
|
425
244
|
ref,
|
|
@@ -433,8 +252,8 @@ var Label = React6.forwardRef(
|
|
|
433
252
|
...props,
|
|
434
253
|
children: [
|
|
435
254
|
children,
|
|
436
|
-
required && /* @__PURE__ */
|
|
437
|
-
optional && /* @__PURE__ */
|
|
255
|
+
required && /* @__PURE__ */ jsx5("span", { className: "text-intent-error-foreground ml-1", "aria-hidden": "true", children: "*" }),
|
|
256
|
+
optional && /* @__PURE__ */ jsx5("span", { className: "ml-1 font-normal text-muted-foreground", children: "(optional)" })
|
|
438
257
|
]
|
|
439
258
|
}
|
|
440
259
|
)
|
|
@@ -442,7 +261,7 @@ var Label = React6.forwardRef(
|
|
|
442
261
|
Label.displayName = "Label";
|
|
443
262
|
|
|
444
263
|
// src/form-field.tsx
|
|
445
|
-
import { jsx as
|
|
264
|
+
import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
446
265
|
function FormField({
|
|
447
266
|
label,
|
|
448
267
|
name,
|
|
@@ -454,7 +273,7 @@ function FormField({
|
|
|
454
273
|
className
|
|
455
274
|
}) {
|
|
456
275
|
const hasError = Boolean(error);
|
|
457
|
-
return /* @__PURE__ */
|
|
276
|
+
return /* @__PURE__ */ jsxs3(
|
|
458
277
|
"div",
|
|
459
278
|
{
|
|
460
279
|
"aria-disabled": disabled || void 0,
|
|
@@ -464,9 +283,9 @@ function FormField({
|
|
|
464
283
|
className
|
|
465
284
|
),
|
|
466
285
|
children: [
|
|
467
|
-
/* @__PURE__ */
|
|
468
|
-
description && !hasError && /* @__PURE__ */
|
|
469
|
-
/* @__PURE__ */
|
|
286
|
+
/* @__PURE__ */ jsx6(Label, { htmlFor: name, required, error: hasError, children: label }),
|
|
287
|
+
description && !hasError && /* @__PURE__ */ jsx6("p", { className: "text-xs text-muted-foreground dark:text-muted-foreground", children: description }),
|
|
288
|
+
/* @__PURE__ */ jsx6(
|
|
470
289
|
"div",
|
|
471
290
|
{
|
|
472
291
|
className: cn(
|
|
@@ -478,15 +297,15 @@ function FormField({
|
|
|
478
297
|
children
|
|
479
298
|
}
|
|
480
299
|
),
|
|
481
|
-
hasError && /* @__PURE__ */
|
|
300
|
+
hasError && /* @__PURE__ */ jsxs3(
|
|
482
301
|
"p",
|
|
483
302
|
{
|
|
484
303
|
className: "text-intent-error-foreground dark:text-intent-error-foreground flex items-center gap-1 text-sm",
|
|
485
304
|
role: "alert",
|
|
486
305
|
"aria-live": "polite",
|
|
487
306
|
children: [
|
|
488
|
-
/* @__PURE__ */
|
|
489
|
-
/* @__PURE__ */
|
|
307
|
+
/* @__PURE__ */ jsx6(ErrorIcon, { className: "size-4 shrink-0" }),
|
|
308
|
+
/* @__PURE__ */ jsx6("span", { children: error })
|
|
490
309
|
]
|
|
491
310
|
}
|
|
492
311
|
)
|
|
@@ -495,7 +314,7 @@ function FormField({
|
|
|
495
314
|
);
|
|
496
315
|
}
|
|
497
316
|
function ErrorIcon({ className }) {
|
|
498
|
-
return /* @__PURE__ */
|
|
317
|
+
return /* @__PURE__ */ jsx6(
|
|
499
318
|
"svg",
|
|
500
319
|
{
|
|
501
320
|
className,
|
|
@@ -503,7 +322,7 @@ function ErrorIcon({ className }) {
|
|
|
503
322
|
viewBox: "0 0 24 24",
|
|
504
323
|
stroke: "currentColor",
|
|
505
324
|
strokeWidth: 2,
|
|
506
|
-
children: /* @__PURE__ */
|
|
325
|
+
children: /* @__PURE__ */ jsx6(
|
|
507
326
|
"path",
|
|
508
327
|
{
|
|
509
328
|
strokeLinecap: "round",
|
|
@@ -515,7 +334,7 @@ function ErrorIcon({ className }) {
|
|
|
515
334
|
);
|
|
516
335
|
}
|
|
517
336
|
function FormFieldGroup({ children, className }) {
|
|
518
|
-
return /* @__PURE__ */
|
|
337
|
+
return /* @__PURE__ */ jsx6("div", { className: cn("grid gap-4", "grid-cols-1 sm:grid-cols-2", className), children });
|
|
519
338
|
}
|
|
520
339
|
function FormSection({
|
|
521
340
|
title,
|
|
@@ -523,17 +342,17 @@ function FormSection({
|
|
|
523
342
|
children,
|
|
524
343
|
className
|
|
525
344
|
}) {
|
|
526
|
-
return /* @__PURE__ */
|
|
527
|
-
(title || description) && /* @__PURE__ */
|
|
528
|
-
title && /* @__PURE__ */
|
|
529
|
-
description && /* @__PURE__ */
|
|
345
|
+
return /* @__PURE__ */ jsxs3("fieldset", { className: cn("space-y-4", className), children: [
|
|
346
|
+
(title || description) && /* @__PURE__ */ jsxs3("div", { className: "space-y-1", children: [
|
|
347
|
+
title && /* @__PURE__ */ jsx6("legend", { className: "text-base font-medium text-foreground dark:text-foreground", children: title }),
|
|
348
|
+
description && /* @__PURE__ */ jsx6("p", { className: "text-sm text-muted-foreground dark:text-muted-foreground", children: description })
|
|
530
349
|
] }),
|
|
531
|
-
/* @__PURE__ */
|
|
350
|
+
/* @__PURE__ */ jsx6("div", { className: "space-y-4", children })
|
|
532
351
|
] });
|
|
533
352
|
}
|
|
534
353
|
function FormError({ error, className }) {
|
|
535
354
|
if (!error) return null;
|
|
536
|
-
return /* @__PURE__ */
|
|
355
|
+
return /* @__PURE__ */ jsx6(
|
|
537
356
|
"div",
|
|
538
357
|
{
|
|
539
358
|
className: cn(
|
|
@@ -542,16 +361,16 @@ function FormError({ error, className }) {
|
|
|
542
361
|
className
|
|
543
362
|
),
|
|
544
363
|
role: "alert",
|
|
545
|
-
children: /* @__PURE__ */
|
|
546
|
-
/* @__PURE__ */
|
|
547
|
-
/* @__PURE__ */
|
|
364
|
+
children: /* @__PURE__ */ jsxs3("div", { className: "flex gap-3", children: [
|
|
365
|
+
/* @__PURE__ */ jsx6(ErrorIcon, { className: "text-intent-error dark:text-intent-error size-5 shrink-0" }),
|
|
366
|
+
/* @__PURE__ */ jsx6("p", { className: "text-intent-error-foreground dark:text-intent-error-foreground text-sm", children: error })
|
|
548
367
|
] })
|
|
549
368
|
}
|
|
550
369
|
);
|
|
551
370
|
}
|
|
552
371
|
function FormSuccess({ message, className }) {
|
|
553
372
|
if (!message) return null;
|
|
554
|
-
return /* @__PURE__ */
|
|
373
|
+
return /* @__PURE__ */ jsx6(
|
|
555
374
|
"div",
|
|
556
375
|
{
|
|
557
376
|
className: cn(
|
|
@@ -560,15 +379,15 @@ function FormSuccess({ message, className }) {
|
|
|
560
379
|
className
|
|
561
380
|
),
|
|
562
381
|
role: "status",
|
|
563
|
-
children: /* @__PURE__ */
|
|
564
|
-
/* @__PURE__ */
|
|
565
|
-
/* @__PURE__ */
|
|
382
|
+
children: /* @__PURE__ */ jsxs3("div", { className: "flex gap-3", children: [
|
|
383
|
+
/* @__PURE__ */ jsx6(SuccessIcon, { className: "text-intent-success dark:text-intent-success size-5 shrink-0" }),
|
|
384
|
+
/* @__PURE__ */ jsx6("p", { className: "text-intent-success-foreground dark:text-intent-success-foreground text-sm", children: message })
|
|
566
385
|
] })
|
|
567
386
|
}
|
|
568
387
|
);
|
|
569
388
|
}
|
|
570
389
|
function SuccessIcon({ className }) {
|
|
571
|
-
return /* @__PURE__ */
|
|
390
|
+
return /* @__PURE__ */ jsx6(
|
|
572
391
|
"svg",
|
|
573
392
|
{
|
|
574
393
|
className,
|
|
@@ -576,7 +395,7 @@ function SuccessIcon({ className }) {
|
|
|
576
395
|
viewBox: "0 0 24 24",
|
|
577
396
|
stroke: "currentColor",
|
|
578
397
|
strokeWidth: 2,
|
|
579
|
-
children: /* @__PURE__ */
|
|
398
|
+
children: /* @__PURE__ */ jsx6(
|
|
580
399
|
"path",
|
|
581
400
|
{
|
|
582
401
|
strokeLinecap: "round",
|
|
@@ -589,7 +408,7 @@ function SuccessIcon({ className }) {
|
|
|
589
408
|
}
|
|
590
409
|
|
|
591
410
|
// src/global-error-content.tsx
|
|
592
|
-
import { jsx as
|
|
411
|
+
import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
593
412
|
function GlobalErrorContent({
|
|
594
413
|
error,
|
|
595
414
|
reset,
|
|
@@ -605,7 +424,7 @@ function GlobalErrorContent({
|
|
|
605
424
|
window.location.href = "/";
|
|
606
425
|
}
|
|
607
426
|
};
|
|
608
|
-
return /* @__PURE__ */
|
|
427
|
+
return /* @__PURE__ */ jsx7(
|
|
609
428
|
"div",
|
|
610
429
|
{
|
|
611
430
|
style: {
|
|
@@ -619,7 +438,7 @@ function GlobalErrorContent({
|
|
|
619
438
|
// gossamer-ignore
|
|
620
439
|
fontFamily: "system-ui, sans-serif"
|
|
621
440
|
},
|
|
622
|
-
children: /* @__PURE__ */
|
|
441
|
+
children: /* @__PURE__ */ jsxs4(
|
|
623
442
|
"div",
|
|
624
443
|
{
|
|
625
444
|
style: {
|
|
@@ -628,7 +447,7 @@ function GlobalErrorContent({
|
|
|
628
447
|
textAlign: "center"
|
|
629
448
|
},
|
|
630
449
|
children: [
|
|
631
|
-
/* @__PURE__ */
|
|
450
|
+
/* @__PURE__ */ jsx7(
|
|
632
451
|
"div",
|
|
633
452
|
{
|
|
634
453
|
style: {
|
|
@@ -642,7 +461,7 @@ function GlobalErrorContent({
|
|
|
642
461
|
alignItems: "center",
|
|
643
462
|
justifyContent: "center"
|
|
644
463
|
},
|
|
645
|
-
children: /* @__PURE__ */
|
|
464
|
+
children: /* @__PURE__ */ jsxs4(
|
|
646
465
|
"svg",
|
|
647
466
|
{
|
|
648
467
|
width: "32",
|
|
@@ -654,15 +473,15 @@ function GlobalErrorContent({
|
|
|
654
473
|
strokeLinecap: "round",
|
|
655
474
|
strokeLinejoin: "round",
|
|
656
475
|
children: [
|
|
657
|
-
/* @__PURE__ */
|
|
658
|
-
/* @__PURE__ */
|
|
659
|
-
/* @__PURE__ */
|
|
476
|
+
/* @__PURE__ */ jsx7("path", { d: "M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z" }),
|
|
477
|
+
/* @__PURE__ */ jsx7("line", { x1: "12", y1: "9", x2: "12", y2: "13" }),
|
|
478
|
+
/* @__PURE__ */ jsx7("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })
|
|
660
479
|
]
|
|
661
480
|
}
|
|
662
481
|
)
|
|
663
482
|
}
|
|
664
483
|
),
|
|
665
|
-
/* @__PURE__ */
|
|
484
|
+
/* @__PURE__ */ jsx7(
|
|
666
485
|
"h1",
|
|
667
486
|
{
|
|
668
487
|
style: {
|
|
@@ -675,7 +494,7 @@ function GlobalErrorContent({
|
|
|
675
494
|
children: "Critical Application Error"
|
|
676
495
|
}
|
|
677
496
|
),
|
|
678
|
-
/* @__PURE__ */
|
|
497
|
+
/* @__PURE__ */ jsxs4(
|
|
679
498
|
"p",
|
|
680
499
|
{
|
|
681
500
|
style: {
|
|
@@ -691,7 +510,7 @@ function GlobalErrorContent({
|
|
|
691
510
|
]
|
|
692
511
|
}
|
|
693
512
|
),
|
|
694
|
-
error.digest && /* @__PURE__ */
|
|
513
|
+
error.digest && /* @__PURE__ */ jsxs4(
|
|
695
514
|
"div",
|
|
696
515
|
{
|
|
697
516
|
style: {
|
|
@@ -702,7 +521,7 @@ function GlobalErrorContent({
|
|
|
702
521
|
marginBottom: "1.5rem"
|
|
703
522
|
},
|
|
704
523
|
children: [
|
|
705
|
-
/* @__PURE__ */
|
|
524
|
+
/* @__PURE__ */ jsx7(
|
|
706
525
|
"p",
|
|
707
526
|
{
|
|
708
527
|
style: {
|
|
@@ -714,7 +533,7 @@ function GlobalErrorContent({
|
|
|
714
533
|
children: "Error Reference"
|
|
715
534
|
}
|
|
716
535
|
),
|
|
717
|
-
/* @__PURE__ */
|
|
536
|
+
/* @__PURE__ */ jsx7(
|
|
718
537
|
"code",
|
|
719
538
|
{
|
|
720
539
|
style: {
|
|
@@ -729,7 +548,7 @@ function GlobalErrorContent({
|
|
|
729
548
|
]
|
|
730
549
|
}
|
|
731
550
|
),
|
|
732
|
-
customActions ?? /* @__PURE__ */
|
|
551
|
+
customActions ?? /* @__PURE__ */ jsxs4(
|
|
733
552
|
"div",
|
|
734
553
|
{
|
|
735
554
|
style: {
|
|
@@ -738,7 +557,7 @@ function GlobalErrorContent({
|
|
|
738
557
|
gap: "0.75rem"
|
|
739
558
|
},
|
|
740
559
|
children: [
|
|
741
|
-
/* @__PURE__ */
|
|
560
|
+
/* @__PURE__ */ jsxs4(
|
|
742
561
|
"button",
|
|
743
562
|
{
|
|
744
563
|
onClick: handleRetry,
|
|
@@ -759,7 +578,7 @@ function GlobalErrorContent({
|
|
|
759
578
|
gap: "0.5rem"
|
|
760
579
|
},
|
|
761
580
|
children: [
|
|
762
|
-
/* @__PURE__ */
|
|
581
|
+
/* @__PURE__ */ jsx7(
|
|
763
582
|
"svg",
|
|
764
583
|
{
|
|
765
584
|
width: "16",
|
|
@@ -768,14 +587,14 @@ function GlobalErrorContent({
|
|
|
768
587
|
fill: "none",
|
|
769
588
|
stroke: "currentColor",
|
|
770
589
|
strokeWidth: "2",
|
|
771
|
-
children: /* @__PURE__ */
|
|
590
|
+
children: /* @__PURE__ */ jsx7("path", { d: "M23 4v6h-6M1 20v-6h6M3.51 9a9 9 0 0114.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0020.49 15" })
|
|
772
591
|
}
|
|
773
592
|
),
|
|
774
593
|
"Try Again"
|
|
775
594
|
]
|
|
776
595
|
}
|
|
777
596
|
),
|
|
778
|
-
/* @__PURE__ */
|
|
597
|
+
/* @__PURE__ */ jsxs4(
|
|
779
598
|
"button",
|
|
780
599
|
{
|
|
781
600
|
onClick: handleGoHome,
|
|
@@ -797,7 +616,7 @@ function GlobalErrorContent({
|
|
|
797
616
|
gap: "0.5rem"
|
|
798
617
|
},
|
|
799
618
|
children: [
|
|
800
|
-
/* @__PURE__ */
|
|
619
|
+
/* @__PURE__ */ jsxs4(
|
|
801
620
|
"svg",
|
|
802
621
|
{
|
|
803
622
|
width: "16",
|
|
@@ -807,8 +626,8 @@ function GlobalErrorContent({
|
|
|
807
626
|
stroke: "currentColor",
|
|
808
627
|
strokeWidth: "2",
|
|
809
628
|
children: [
|
|
810
|
-
/* @__PURE__ */
|
|
811
|
-
/* @__PURE__ */
|
|
629
|
+
/* @__PURE__ */ jsx7("path", { d: "M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2V9z" }),
|
|
630
|
+
/* @__PURE__ */ jsx7("polyline", { points: "9,22 9,12 15,12 15,22" })
|
|
812
631
|
]
|
|
813
632
|
}
|
|
814
633
|
),
|
|
@@ -819,7 +638,7 @@ function GlobalErrorContent({
|
|
|
819
638
|
]
|
|
820
639
|
}
|
|
821
640
|
),
|
|
822
|
-
/* @__PURE__ */
|
|
641
|
+
/* @__PURE__ */ jsxs4(
|
|
823
642
|
"p",
|
|
824
643
|
{
|
|
825
644
|
style: {
|
|
@@ -831,7 +650,7 @@ function GlobalErrorContent({
|
|
|
831
650
|
children: [
|
|
832
651
|
"If this problem persists, please",
|
|
833
652
|
" ",
|
|
834
|
-
supportEmail ? /* @__PURE__ */
|
|
653
|
+
supportEmail ? /* @__PURE__ */ jsx7(
|
|
835
654
|
"a",
|
|
836
655
|
{
|
|
837
656
|
href: `mailto:${supportEmail}`,
|
|
@@ -852,96 +671,14 @@ function GlobalErrorContent({
|
|
|
852
671
|
|
|
853
672
|
// src/collapsible-sidebar.tsx
|
|
854
673
|
import {
|
|
855
|
-
useState
|
|
856
|
-
useEffect
|
|
674
|
+
useState,
|
|
675
|
+
useEffect,
|
|
857
676
|
useCallback,
|
|
858
677
|
createContext,
|
|
859
678
|
useContext
|
|
860
679
|
} from "react";
|
|
861
|
-
import { ChevronLeft
|
|
862
|
-
|
|
863
|
-
// src/nav-drawer.tsx
|
|
864
|
-
import * as React7 from "react";
|
|
865
|
-
import { Fragment as Fragment2, jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
866
|
-
function NavDrawer({
|
|
867
|
-
label,
|
|
868
|
-
side,
|
|
869
|
-
defaultOpen,
|
|
870
|
-
children
|
|
871
|
-
}) {
|
|
872
|
-
const [open, setOpen] = React7.useState(defaultOpen);
|
|
873
|
-
const id = React7.useId();
|
|
874
|
-
React7.useEffect(() => {
|
|
875
|
-
if (!open) return;
|
|
876
|
-
const onKey = (e) => {
|
|
877
|
-
if (e.key === "Escape") setOpen(false);
|
|
878
|
-
};
|
|
879
|
-
document.addEventListener("keydown", onKey);
|
|
880
|
-
return () => document.removeEventListener("keydown", onKey);
|
|
881
|
-
}, [open]);
|
|
882
|
-
const left = side === "left";
|
|
883
|
-
return /* @__PURE__ */ jsxs7(Fragment2, { children: [
|
|
884
|
-
/* @__PURE__ */ jsx11(
|
|
885
|
-
Button,
|
|
886
|
-
{
|
|
887
|
-
variant: "ghost",
|
|
888
|
-
size: "icon",
|
|
889
|
-
"aria-label": label,
|
|
890
|
-
"aria-expanded": open,
|
|
891
|
-
"aria-controls": open ? id : void 0,
|
|
892
|
-
onClick: () => setOpen(!open),
|
|
893
|
-
children: /* @__PURE__ */ jsx11(Icon, { name: "menu", size: "sm" })
|
|
894
|
-
}
|
|
895
|
-
),
|
|
896
|
-
open && /* @__PURE__ */ jsxs7("div", { className: "z-overlay fixed inset-0", children: [
|
|
897
|
-
/* @__PURE__ */ jsx11(
|
|
898
|
-
"div",
|
|
899
|
-
{
|
|
900
|
-
"aria-hidden": "true",
|
|
901
|
-
className: "absolute inset-0 bg-foreground/40",
|
|
902
|
-
onClick: () => setOpen(false)
|
|
903
|
-
}
|
|
904
|
-
),
|
|
905
|
-
/* @__PURE__ */ jsxs7(
|
|
906
|
-
"aside",
|
|
907
|
-
{
|
|
908
|
-
id,
|
|
909
|
-
"aria-label": label,
|
|
910
|
-
className: cn(
|
|
911
|
-
"absolute inset-y-0 flex w-72 max-w-[calc(100%-3rem)] flex-col overflow-y-auto bg-card shadow-lg",
|
|
912
|
-
left ? "left-0 border-r" : "right-0 border-l",
|
|
913
|
-
"border-border"
|
|
914
|
-
),
|
|
915
|
-
children: [
|
|
916
|
-
/* @__PURE__ */ jsx11(
|
|
917
|
-
"div",
|
|
918
|
-
{
|
|
919
|
-
className: cn(
|
|
920
|
-
"flex px-2 py-2",
|
|
921
|
-
left ? "justify-end" : "justify-start"
|
|
922
|
-
),
|
|
923
|
-
children: /* @__PURE__ */ jsx11(
|
|
924
|
-
Button,
|
|
925
|
-
{
|
|
926
|
-
variant: "ghost",
|
|
927
|
-
size: "icon",
|
|
928
|
-
"aria-label": "Close",
|
|
929
|
-
onClick: () => setOpen(false),
|
|
930
|
-
children: /* @__PURE__ */ jsx11(Icon, { name: "x", size: "sm" })
|
|
931
|
-
}
|
|
932
|
-
)
|
|
933
|
-
}
|
|
934
|
-
),
|
|
935
|
-
children
|
|
936
|
-
]
|
|
937
|
-
}
|
|
938
|
-
)
|
|
939
|
-
] })
|
|
940
|
-
] });
|
|
941
|
-
}
|
|
942
|
-
|
|
943
|
-
// src/collapsible-sidebar.tsx
|
|
944
|
-
import { jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
680
|
+
import { ChevronLeft, ChevronRight } from "lucide-react";
|
|
681
|
+
import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
945
682
|
var SidebarContext = createContext(null);
|
|
946
683
|
function useSidebar() {
|
|
947
684
|
const context = useContext(SidebarContext);
|
|
@@ -956,7 +693,7 @@ var DefaultLink = ({
|
|
|
956
693
|
href,
|
|
957
694
|
className,
|
|
958
695
|
children
|
|
959
|
-
}) => /* @__PURE__ */
|
|
696
|
+
}) => /* @__PURE__ */ jsx8("a", { href: String(href), className, children });
|
|
960
697
|
function CollapsibleSidebar({
|
|
961
698
|
storageKey = "sidebar-collapsed",
|
|
962
699
|
defaultCollapsed = false,
|
|
@@ -973,8 +710,8 @@ function CollapsibleSidebar({
|
|
|
973
710
|
navLabel = "Navigation",
|
|
974
711
|
defaultNavOpen = false
|
|
975
712
|
}) {
|
|
976
|
-
const [isCollapsed, setIsCollapsed] =
|
|
977
|
-
|
|
713
|
+
const [isCollapsed, setIsCollapsed] = useState(defaultCollapsed);
|
|
714
|
+
useEffect(() => {
|
|
978
715
|
const stored = localStorage.getItem(storageKey);
|
|
979
716
|
if (stored !== null) {
|
|
980
717
|
setIsCollapsed(stored === "true");
|
|
@@ -990,7 +727,7 @@ function CollapsibleSidebar({
|
|
|
990
727
|
const renderItem = (item, collapsed) => {
|
|
991
728
|
const Icon2 = item.icon;
|
|
992
729
|
const active = isActive?.(item.href) ?? false;
|
|
993
|
-
const linkContent = /* @__PURE__ */
|
|
730
|
+
const linkContent = /* @__PURE__ */ jsxs5(
|
|
994
731
|
LinkComponent,
|
|
995
732
|
{
|
|
996
733
|
href: item.href,
|
|
@@ -1000,10 +737,10 @@ function CollapsibleSidebar({
|
|
|
1000
737
|
active ? "bg-primary-solid text-primary-foreground" : "text-muted-foreground hover:bg-muted hover:text-foreground"
|
|
1001
738
|
),
|
|
1002
739
|
children: [
|
|
1003
|
-
/* @__PURE__ */
|
|
1004
|
-
!collapsed && /* @__PURE__ */
|
|
1005
|
-
/* @__PURE__ */
|
|
1006
|
-
item.description && /* @__PURE__ */
|
|
740
|
+
/* @__PURE__ */ jsx8(Icon2, { className: cn("size-5 shrink-0", collapsed && "size-5") }),
|
|
741
|
+
!collapsed && /* @__PURE__ */ jsxs5("div", { className: "min-w-0 flex-1 overflow-hidden", children: [
|
|
742
|
+
/* @__PURE__ */ jsx8("div", { className: "truncate text-sm font-medium", children: item.name }),
|
|
743
|
+
item.description && /* @__PURE__ */ jsx8(
|
|
1007
744
|
"div",
|
|
1008
745
|
{
|
|
1009
746
|
className: cn(
|
|
@@ -1020,32 +757,41 @@ function CollapsibleSidebar({
|
|
|
1020
757
|
}
|
|
1021
758
|
);
|
|
1022
759
|
if (collapsed) {
|
|
1023
|
-
return /* @__PURE__ */
|
|
1024
|
-
/* @__PURE__ */
|
|
1025
|
-
/* @__PURE__ */
|
|
1026
|
-
/* @__PURE__ */
|
|
1027
|
-
item.description && /* @__PURE__ */
|
|
760
|
+
return /* @__PURE__ */ jsxs5(Tooltip, { children: [
|
|
761
|
+
/* @__PURE__ */ jsx8(TooltipTrigger, { asChild: true, children: linkContent }),
|
|
762
|
+
/* @__PURE__ */ jsxs5(TooltipContent, { side: "right", className: "flex flex-col", children: [
|
|
763
|
+
/* @__PURE__ */ jsx8("span", { className: "font-medium", children: item.name }),
|
|
764
|
+
item.description && /* @__PURE__ */ jsx8("span", { className: "text-xs text-muted-foreground", children: item.description })
|
|
1028
765
|
] })
|
|
1029
766
|
] }, item.href);
|
|
1030
767
|
}
|
|
1031
|
-
return /* @__PURE__ */
|
|
768
|
+
return /* @__PURE__ */ jsx8("div", { children: linkContent }, item.href);
|
|
1032
769
|
};
|
|
1033
|
-
return /* @__PURE__ */
|
|
1034
|
-
/* @__PURE__ */
|
|
770
|
+
return /* @__PURE__ */ jsx8(SidebarContext.Provider, { value: { isCollapsed, toggle }, children: /* @__PURE__ */ jsxs5(TooltipProvider, { delayDuration: 100, children: [
|
|
771
|
+
/* @__PURE__ */ jsx8(
|
|
1035
772
|
"div",
|
|
1036
773
|
{
|
|
1037
774
|
className: cn(
|
|
1038
775
|
"flex min-h-screen w-14 flex-shrink-0 flex-col items-center border-r border-border bg-card py-2 lg:hidden",
|
|
1039
776
|
className
|
|
1040
777
|
),
|
|
1041
|
-
children: /* @__PURE__ */
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
778
|
+
children: /* @__PURE__ */ jsxs5(
|
|
779
|
+
NavDrawer,
|
|
780
|
+
{
|
|
781
|
+
label: navLabel,
|
|
782
|
+
side: "left",
|
|
783
|
+
closedFrom: "lg",
|
|
784
|
+
defaultOpen: defaultNavOpen,
|
|
785
|
+
children: [
|
|
786
|
+
header && /* @__PURE__ */ jsx8("div", { className: "border-b border-border px-4 pb-4", children: header }),
|
|
787
|
+
/* @__PURE__ */ jsx8("div", { className: "flex-1 space-y-1 p-2", children: items.map((item) => renderItem(item, false)) }),
|
|
788
|
+
footer && /* @__PURE__ */ jsx8("div", { className: "mt-auto border-t border-border p-2", children: footer })
|
|
789
|
+
]
|
|
790
|
+
}
|
|
791
|
+
)
|
|
1046
792
|
}
|
|
1047
793
|
),
|
|
1048
|
-
/* @__PURE__ */
|
|
794
|
+
/* @__PURE__ */ jsxs5(
|
|
1049
795
|
"nav",
|
|
1050
796
|
{
|
|
1051
797
|
className: cn(
|
|
@@ -1054,7 +800,7 @@ function CollapsibleSidebar({
|
|
|
1054
800
|
),
|
|
1055
801
|
style: { width: isCollapsed ? collapsedWidth : expandedWidth },
|
|
1056
802
|
children: [
|
|
1057
|
-
/* @__PURE__ */
|
|
803
|
+
/* @__PURE__ */ jsx8(
|
|
1058
804
|
"button",
|
|
1059
805
|
{
|
|
1060
806
|
onClick: toggle,
|
|
@@ -1062,10 +808,10 @@ function CollapsibleSidebar({
|
|
|
1062
808
|
"absolute -right-3 top-6 z-10 flex size-6 items-center justify-center rounded-full border border-border bg-card shadow-sm transition-colors hover:bg-muted"
|
|
1063
809
|
),
|
|
1064
810
|
"aria-label": isCollapsed ? "Expand sidebar" : "Collapse sidebar",
|
|
1065
|
-
children: isCollapsed ? /* @__PURE__ */
|
|
811
|
+
children: isCollapsed ? /* @__PURE__ */ jsx8(ChevronRight, { className: "size-4" }) : /* @__PURE__ */ jsx8(ChevronLeft, { className: "size-4" })
|
|
1066
812
|
}
|
|
1067
813
|
),
|
|
1068
|
-
(header || collapsedHeader) && /* @__PURE__ */
|
|
814
|
+
(header || collapsedHeader) && /* @__PURE__ */ jsx8(
|
|
1069
815
|
"div",
|
|
1070
816
|
{
|
|
1071
817
|
className: cn(
|
|
@@ -1075,8 +821,8 @@ function CollapsibleSidebar({
|
|
|
1075
821
|
children: isCollapsed ? collapsedHeader || null : header
|
|
1076
822
|
}
|
|
1077
823
|
),
|
|
1078
|
-
/* @__PURE__ */
|
|
1079
|
-
(footer || collapsedFooter) && /* @__PURE__ */
|
|
824
|
+
/* @__PURE__ */ jsx8("div", { className: "flex-1 space-y-1 overflow-y-auto p-2", children: items.map((item) => renderItem(item, isCollapsed)) }),
|
|
825
|
+
(footer || collapsedFooter) && /* @__PURE__ */ jsx8("div", { className: "mt-auto border-t border-border p-2", children: isCollapsed ? collapsedFooter || null : footer })
|
|
1080
826
|
]
|
|
1081
827
|
}
|
|
1082
828
|
)
|
|
@@ -1084,9 +830,9 @@ function CollapsibleSidebar({
|
|
|
1084
830
|
}
|
|
1085
831
|
|
|
1086
832
|
// src/accordion.tsx
|
|
1087
|
-
import { createContext as createContext2, useContext as useContext2, useState as
|
|
1088
|
-
import { ChevronDown
|
|
1089
|
-
import { jsx as
|
|
833
|
+
import { createContext as createContext2, useContext as useContext2, useState as useState2, useCallback as useCallback2, useId as useId2 } from "react";
|
|
834
|
+
import { ChevronDown } from "lucide-react";
|
|
835
|
+
import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1090
836
|
var AccordionContext = createContext2(null);
|
|
1091
837
|
var AccordionItemContext = createContext2(
|
|
1092
838
|
null
|
|
@@ -1115,7 +861,7 @@ function AccordionSingle({
|
|
|
1115
861
|
children,
|
|
1116
862
|
className
|
|
1117
863
|
}) {
|
|
1118
|
-
const [uncontrolledValue, setUncontrolledValue] =
|
|
864
|
+
const [uncontrolledValue, setUncontrolledValue] = useState2(defaultValue);
|
|
1119
865
|
const isControlled = controlledValue !== void 0;
|
|
1120
866
|
const value = isControlled ? controlledValue : uncontrolledValue;
|
|
1121
867
|
const handleValueChange = useCallback2(
|
|
@@ -1128,7 +874,7 @@ function AccordionSingle({
|
|
|
1128
874
|
},
|
|
1129
875
|
[value, collapsible, isControlled, onValueChange]
|
|
1130
876
|
);
|
|
1131
|
-
return /* @__PURE__ */
|
|
877
|
+
return /* @__PURE__ */ jsx9(
|
|
1132
878
|
AccordionContext.Provider,
|
|
1133
879
|
{
|
|
1134
880
|
value: {
|
|
@@ -1136,7 +882,7 @@ function AccordionSingle({
|
|
|
1136
882
|
value,
|
|
1137
883
|
onValueChange: handleValueChange
|
|
1138
884
|
},
|
|
1139
|
-
children: /* @__PURE__ */
|
|
885
|
+
children: /* @__PURE__ */ jsx9("div", { className: cn("space-y-2", className), "data-accordion-root": "", children })
|
|
1140
886
|
}
|
|
1141
887
|
);
|
|
1142
888
|
}
|
|
@@ -1147,7 +893,7 @@ function AccordionMultiple({
|
|
|
1147
893
|
children,
|
|
1148
894
|
className
|
|
1149
895
|
}) {
|
|
1150
|
-
const [uncontrolledValue, setUncontrolledValue] =
|
|
896
|
+
const [uncontrolledValue, setUncontrolledValue] = useState2(defaultValue);
|
|
1151
897
|
const isControlled = controlledValue !== void 0;
|
|
1152
898
|
const value = isControlled ? controlledValue : uncontrolledValue;
|
|
1153
899
|
const handleValueChange = useCallback2(
|
|
@@ -1160,7 +906,7 @@ function AccordionMultiple({
|
|
|
1160
906
|
},
|
|
1161
907
|
[value, isControlled, onValueChange]
|
|
1162
908
|
);
|
|
1163
|
-
return /* @__PURE__ */
|
|
909
|
+
return /* @__PURE__ */ jsx9(
|
|
1164
910
|
AccordionContext.Provider,
|
|
1165
911
|
{
|
|
1166
912
|
value: {
|
|
@@ -1168,15 +914,15 @@ function AccordionMultiple({
|
|
|
1168
914
|
value,
|
|
1169
915
|
onValueChange: handleValueChange
|
|
1170
916
|
},
|
|
1171
|
-
children: /* @__PURE__ */
|
|
917
|
+
children: /* @__PURE__ */ jsx9("div", { className: cn("space-y-2", className), "data-accordion-root": "", children })
|
|
1172
918
|
}
|
|
1173
919
|
);
|
|
1174
920
|
}
|
|
1175
921
|
function Accordion(props) {
|
|
1176
922
|
if (props.type === "multiple") {
|
|
1177
|
-
return /* @__PURE__ */
|
|
923
|
+
return /* @__PURE__ */ jsx9(AccordionMultiple, { ...props });
|
|
1178
924
|
}
|
|
1179
|
-
return /* @__PURE__ */
|
|
925
|
+
return /* @__PURE__ */ jsx9(AccordionSingle, { ...props });
|
|
1180
926
|
}
|
|
1181
927
|
function AccordionItem({
|
|
1182
928
|
value,
|
|
@@ -1186,15 +932,15 @@ function AccordionItem({
|
|
|
1186
932
|
testId
|
|
1187
933
|
}) {
|
|
1188
934
|
const { value: accordionValue, type } = useAccordion();
|
|
1189
|
-
const uniqueId =
|
|
935
|
+
const uniqueId = useId2();
|
|
1190
936
|
const triggerId = `accordion-trigger-${uniqueId}`;
|
|
1191
937
|
const contentId = `accordion-content-${uniqueId}`;
|
|
1192
938
|
const isOpen = type === "single" ? accordionValue === value : accordionValue.includes(value);
|
|
1193
|
-
return /* @__PURE__ */
|
|
939
|
+
return /* @__PURE__ */ jsx9(
|
|
1194
940
|
AccordionItemContext.Provider,
|
|
1195
941
|
{
|
|
1196
942
|
value: { value, isOpen, triggerId, contentId, disabled },
|
|
1197
|
-
children: /* @__PURE__ */
|
|
943
|
+
children: /* @__PURE__ */ jsx9(
|
|
1198
944
|
"div",
|
|
1199
945
|
{
|
|
1200
946
|
className: cn(
|
|
@@ -1220,7 +966,7 @@ function AccordionTrigger({
|
|
|
1220
966
|
}) {
|
|
1221
967
|
const { onValueChange } = useAccordion();
|
|
1222
968
|
const { value, isOpen, triggerId, contentId, disabled } = useAccordionItem();
|
|
1223
|
-
return /* @__PURE__ */
|
|
969
|
+
return /* @__PURE__ */ jsxs6(
|
|
1224
970
|
"button",
|
|
1225
971
|
{
|
|
1226
972
|
id: triggerId,
|
|
@@ -1239,14 +985,14 @@ function AccordionTrigger({
|
|
|
1239
985
|
"data-state": isOpen ? "open" : "closed",
|
|
1240
986
|
"data-testid": testId,
|
|
1241
987
|
children: [
|
|
1242
|
-
/* @__PURE__ */
|
|
1243
|
-
icon && /* @__PURE__ */
|
|
1244
|
-
/* @__PURE__ */
|
|
988
|
+
/* @__PURE__ */ jsxs6("span", { className: "flex items-center gap-3", children: [
|
|
989
|
+
icon && /* @__PURE__ */ jsx9("span", { className: "shrink-0", children: icon }),
|
|
990
|
+
/* @__PURE__ */ jsx9("span", { children })
|
|
1245
991
|
] }),
|
|
1246
|
-
/* @__PURE__ */
|
|
992
|
+
/* @__PURE__ */ jsxs6("span", { className: "flex items-center gap-2", children: [
|
|
1247
993
|
rightContent,
|
|
1248
|
-
/* @__PURE__ */
|
|
1249
|
-
|
|
994
|
+
/* @__PURE__ */ jsx9(
|
|
995
|
+
ChevronDown,
|
|
1250
996
|
{
|
|
1251
997
|
className: cn(
|
|
1252
998
|
"size-5 shrink-0 text-muted-foreground transition-transform duration-300 [transition-timing-function:cubic-bezier(0.32,0.72,0,1)]",
|
|
@@ -1266,7 +1012,7 @@ function AccordionContent({
|
|
|
1266
1012
|
testId
|
|
1267
1013
|
}) {
|
|
1268
1014
|
const { isOpen, contentId, triggerId } = useAccordionItem();
|
|
1269
|
-
return /* @__PURE__ */
|
|
1015
|
+
return /* @__PURE__ */ jsx9(
|
|
1270
1016
|
"div",
|
|
1271
1017
|
{
|
|
1272
1018
|
id: contentId,
|
|
@@ -1280,7 +1026,7 @@ function AccordionContent({
|
|
|
1280
1026
|
"grid transition-all duration-300 [transition-timing-function:cubic-bezier(0.32,0.72,0,1)]",
|
|
1281
1027
|
isOpen ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"
|
|
1282
1028
|
),
|
|
1283
|
-
children: /* @__PURE__ */
|
|
1029
|
+
children: /* @__PURE__ */ jsx9("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx9("div", { className: cn("px-4 pb-4", className), children }) })
|
|
1284
1030
|
}
|
|
1285
1031
|
);
|
|
1286
1032
|
}
|
|
@@ -1298,10 +1044,10 @@ function SimpleAccordion({
|
|
|
1298
1044
|
triggerTestId,
|
|
1299
1045
|
contentTestId
|
|
1300
1046
|
}) {
|
|
1301
|
-
const [uncontrolledOpen, setUncontrolledOpen] =
|
|
1047
|
+
const [uncontrolledOpen, setUncontrolledOpen] = useState2(defaultOpen);
|
|
1302
1048
|
const isControlled = controlledOpen !== void 0;
|
|
1303
1049
|
const isOpen = isControlled ? controlledOpen : uncontrolledOpen;
|
|
1304
|
-
const uniqueId =
|
|
1050
|
+
const uniqueId = useId2();
|
|
1305
1051
|
const triggerId = `simple-accordion-trigger-${uniqueId}`;
|
|
1306
1052
|
const contentId = `simple-accordion-content-${uniqueId}`;
|
|
1307
1053
|
const toggle = useCallback2(() => {
|
|
@@ -1311,7 +1057,7 @@ function SimpleAccordion({
|
|
|
1311
1057
|
}
|
|
1312
1058
|
onOpenChange?.(newValue);
|
|
1313
1059
|
}, [isOpen, isControlled, onOpenChange]);
|
|
1314
|
-
return /* @__PURE__ */
|
|
1060
|
+
return /* @__PURE__ */ jsxs6(
|
|
1315
1061
|
"div",
|
|
1316
1062
|
{
|
|
1317
1063
|
className: cn(
|
|
@@ -1320,7 +1066,7 @@ function SimpleAccordion({
|
|
|
1320
1066
|
),
|
|
1321
1067
|
"data-state": isOpen ? "open" : "closed",
|
|
1322
1068
|
children: [
|
|
1323
|
-
/* @__PURE__ */
|
|
1069
|
+
/* @__PURE__ */ jsxs6(
|
|
1324
1070
|
"button",
|
|
1325
1071
|
{
|
|
1326
1072
|
id: triggerId,
|
|
@@ -1338,14 +1084,14 @@ function SimpleAccordion({
|
|
|
1338
1084
|
"data-state": isOpen ? "open" : "closed",
|
|
1339
1085
|
"data-testid": triggerTestId,
|
|
1340
1086
|
children: [
|
|
1341
|
-
/* @__PURE__ */
|
|
1342
|
-
icon && /* @__PURE__ */
|
|
1343
|
-
/* @__PURE__ */
|
|
1087
|
+
/* @__PURE__ */ jsxs6("span", { className: "flex items-center gap-3", children: [
|
|
1088
|
+
icon && /* @__PURE__ */ jsx9("span", { className: "shrink-0", children: icon }),
|
|
1089
|
+
/* @__PURE__ */ jsx9("span", { children: title })
|
|
1344
1090
|
] }),
|
|
1345
|
-
/* @__PURE__ */
|
|
1091
|
+
/* @__PURE__ */ jsxs6("span", { className: "flex items-center gap-2", children: [
|
|
1346
1092
|
rightContent,
|
|
1347
|
-
/* @__PURE__ */
|
|
1348
|
-
|
|
1093
|
+
/* @__PURE__ */ jsx9(
|
|
1094
|
+
ChevronDown,
|
|
1349
1095
|
{
|
|
1350
1096
|
className: cn(
|
|
1351
1097
|
"size-5 shrink-0 text-muted-foreground transition-transform duration-300 [transition-timing-function:cubic-bezier(0.32,0.72,0,1)]",
|
|
@@ -1358,7 +1104,7 @@ function SimpleAccordion({
|
|
|
1358
1104
|
]
|
|
1359
1105
|
}
|
|
1360
1106
|
),
|
|
1361
|
-
/* @__PURE__ */
|
|
1107
|
+
/* @__PURE__ */ jsx9(
|
|
1362
1108
|
"div",
|
|
1363
1109
|
{
|
|
1364
1110
|
id: contentId,
|
|
@@ -1371,7 +1117,7 @@ function SimpleAccordion({
|
|
|
1371
1117
|
"grid transition-all duration-300 [transition-timing-function:cubic-bezier(0.32,0.72,0,1)]",
|
|
1372
1118
|
isOpen ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"
|
|
1373
1119
|
),
|
|
1374
|
-
children: /* @__PURE__ */
|
|
1120
|
+
children: /* @__PURE__ */ jsx9("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx9("div", { className: cn("px-4 pb-4", contentClassName), children }) })
|
|
1375
1121
|
}
|
|
1376
1122
|
)
|
|
1377
1123
|
]
|
|
@@ -1380,9 +1126,9 @@ function SimpleAccordion({
|
|
|
1380
1126
|
}
|
|
1381
1127
|
|
|
1382
1128
|
// src/confirm-dialog.tsx
|
|
1383
|
-
import * as
|
|
1129
|
+
import * as React6 from "react";
|
|
1384
1130
|
import { Loader2 } from "lucide-react";
|
|
1385
|
-
import { Fragment
|
|
1131
|
+
import { Fragment, jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1386
1132
|
function ConfirmDialog({
|
|
1387
1133
|
title,
|
|
1388
1134
|
message,
|
|
@@ -1397,25 +1143,19 @@ function ConfirmDialog({
|
|
|
1397
1143
|
confirmVariant = "default",
|
|
1398
1144
|
className
|
|
1399
1145
|
}) {
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
onCancel();
|
|
1404
|
-
}
|
|
1405
|
-
}
|
|
1406
|
-
document.addEventListener("keydown", handleKeyDown);
|
|
1407
|
-
return () => document.removeEventListener("keydown", handleKeyDown);
|
|
1408
|
-
}, [onCancel, isLoading]);
|
|
1409
|
-
return /* @__PURE__ */ jsx14(
|
|
1146
|
+
const panel = React6.useRef(null);
|
|
1147
|
+
useModalSurface(true, panel, isLoading ? void 0 : onCancel);
|
|
1148
|
+
return /* @__PURE__ */ jsx10(
|
|
1410
1149
|
"div",
|
|
1411
1150
|
{
|
|
1412
|
-
|
|
1151
|
+
ref: panel,
|
|
1152
|
+
className: "z-modal fixed inset-0 flex items-center justify-center bg-background/80 backdrop-blur-sm dark:bg-background/80",
|
|
1413
1153
|
role: "dialog",
|
|
1414
1154
|
"aria-modal": "true",
|
|
1415
1155
|
"aria-labelledby": "confirm-dialog-title",
|
|
1416
1156
|
"aria-describedby": "confirm-dialog-description",
|
|
1417
1157
|
"data-testid": dialogTestId,
|
|
1418
|
-
children: /* @__PURE__ */
|
|
1158
|
+
children: /* @__PURE__ */ jsxs7(
|
|
1419
1159
|
"div",
|
|
1420
1160
|
{
|
|
1421
1161
|
className: cn(
|
|
@@ -1424,7 +1164,7 @@ function ConfirmDialog({
|
|
|
1424
1164
|
className
|
|
1425
1165
|
),
|
|
1426
1166
|
children: [
|
|
1427
|
-
/* @__PURE__ */
|
|
1167
|
+
/* @__PURE__ */ jsx10(
|
|
1428
1168
|
"h3",
|
|
1429
1169
|
{
|
|
1430
1170
|
id: "confirm-dialog-title",
|
|
@@ -1432,7 +1172,7 @@ function ConfirmDialog({
|
|
|
1432
1172
|
children: title
|
|
1433
1173
|
}
|
|
1434
1174
|
),
|
|
1435
|
-
/* @__PURE__ */
|
|
1175
|
+
/* @__PURE__ */ jsx10(
|
|
1436
1176
|
"p",
|
|
1437
1177
|
{
|
|
1438
1178
|
id: "confirm-dialog-description",
|
|
@@ -1440,8 +1180,8 @@ function ConfirmDialog({
|
|
|
1440
1180
|
children: message
|
|
1441
1181
|
}
|
|
1442
1182
|
),
|
|
1443
|
-
/* @__PURE__ */
|
|
1444
|
-
/* @__PURE__ */
|
|
1183
|
+
/* @__PURE__ */ jsxs7("div", { className: "mt-6 flex justify-end gap-3", children: [
|
|
1184
|
+
/* @__PURE__ */ jsx10(
|
|
1445
1185
|
Button,
|
|
1446
1186
|
{
|
|
1447
1187
|
variant: "ghost",
|
|
@@ -1451,15 +1191,15 @@ function ConfirmDialog({
|
|
|
1451
1191
|
children: cancelLabel
|
|
1452
1192
|
}
|
|
1453
1193
|
),
|
|
1454
|
-
/* @__PURE__ */
|
|
1194
|
+
/* @__PURE__ */ jsx10(
|
|
1455
1195
|
Button,
|
|
1456
1196
|
{
|
|
1457
1197
|
variant: confirmVariant,
|
|
1458
1198
|
onClick: onConfirm,
|
|
1459
1199
|
disabled: isLoading,
|
|
1460
1200
|
"data-testid": confirmTestId,
|
|
1461
|
-
children: isLoading ? /* @__PURE__ */
|
|
1462
|
-
/* @__PURE__ */
|
|
1201
|
+
children: isLoading ? /* @__PURE__ */ jsxs7(Fragment, { children: [
|
|
1202
|
+
/* @__PURE__ */ jsx10(Loader2, { className: "mr-2 size-4 animate-spin" }),
|
|
1463
1203
|
confirmLabel,
|
|
1464
1204
|
"..."
|
|
1465
1205
|
] }) : confirmLabel
|
|
@@ -1474,10 +1214,10 @@ function ConfirmDialog({
|
|
|
1474
1214
|
}
|
|
1475
1215
|
|
|
1476
1216
|
// src/dicebear-avatar.tsx
|
|
1477
|
-
import * as
|
|
1478
|
-
import { cva as
|
|
1479
|
-
import { jsx as
|
|
1480
|
-
var avatarVariants =
|
|
1217
|
+
import * as React7 from "react";
|
|
1218
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
1219
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
1220
|
+
var avatarVariants = cva2(
|
|
1481
1221
|
"relative inline-flex shrink-0 overflow-hidden rounded-full bg-muted dark:bg-muted",
|
|
1482
1222
|
{
|
|
1483
1223
|
variants: {
|
|
@@ -1500,7 +1240,7 @@ function buildDiceBearUrl(seed, style = "adventurer-neutral") {
|
|
|
1500
1240
|
const encodedSeed = encodeURIComponent(seed);
|
|
1501
1241
|
return `${DICEBEAR_BASE_URL}/${style}/svg?seed=${encodedSeed}`;
|
|
1502
1242
|
}
|
|
1503
|
-
var DiceBearAvatar =
|
|
1243
|
+
var DiceBearAvatar = React7.forwardRef(
|
|
1504
1244
|
({
|
|
1505
1245
|
seed,
|
|
1506
1246
|
avatarStyle = "adventurer-neutral",
|
|
@@ -1510,18 +1250,18 @@ var DiceBearAvatar = React9.forwardRef(
|
|
|
1510
1250
|
className,
|
|
1511
1251
|
...props
|
|
1512
1252
|
}, ref) => {
|
|
1513
|
-
const [hasError, setHasError] =
|
|
1253
|
+
const [hasError, setHasError] = React7.useState(false);
|
|
1514
1254
|
const url = buildDiceBearUrl(seed, avatarStyle);
|
|
1515
|
-
|
|
1255
|
+
React7.useEffect(() => {
|
|
1516
1256
|
setHasError(false);
|
|
1517
1257
|
}, [seed, avatarStyle]);
|
|
1518
|
-
return /* @__PURE__ */
|
|
1258
|
+
return /* @__PURE__ */ jsx11(
|
|
1519
1259
|
"div",
|
|
1520
1260
|
{
|
|
1521
1261
|
ref,
|
|
1522
1262
|
className: cn(avatarVariants({ size }), className),
|
|
1523
1263
|
...props,
|
|
1524
|
-
children: hasError ? fallback ? /* @__PURE__ */
|
|
1264
|
+
children: hasError ? fallback ? /* @__PURE__ */ jsx11("div", { className: "flex h-full w-full items-center justify-center text-xs font-medium text-muted-foreground dark:text-muted-foreground", children: fallback }) : /* @__PURE__ */ jsx11("div", { className: "text-primary-text dark:text-primary-text flex h-full w-full items-center justify-center bg-primary/10 text-xs font-medium dark:bg-primary/10", children: seed.charAt(0).toUpperCase() }) : /* @__PURE__ */ jsx11(
|
|
1525
1265
|
"img",
|
|
1526
1266
|
{
|
|
1527
1267
|
src: url,
|
|
@@ -1537,14 +1277,14 @@ var DiceBearAvatar = React9.forwardRef(
|
|
|
1537
1277
|
DiceBearAvatar.displayName = "DiceBearAvatar";
|
|
1538
1278
|
|
|
1539
1279
|
// src/intent-icon.tsx
|
|
1540
|
-
import { Check
|
|
1541
|
-
import { jsx as
|
|
1280
|
+
import { Check, AlertTriangle, X, Info } from "lucide-react";
|
|
1281
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
1542
1282
|
var intentConfig = {
|
|
1543
1283
|
success: {
|
|
1544
1284
|
outerBg: "bg-[rgba(33,196,93,0.10)] dark:bg-[rgba(33,196,93,0.10)]",
|
|
1545
1285
|
innerBg: "bg-[rgba(33,196,93,0.20)] dark:bg-[rgba(33,196,93,0.20)]",
|
|
1546
1286
|
iconColor: "text-[#21c45d] dark:text-[#21c45d]",
|
|
1547
|
-
Icon:
|
|
1287
|
+
Icon: Check
|
|
1548
1288
|
},
|
|
1549
1289
|
warning: {
|
|
1550
1290
|
outerBg: "bg-[rgba(245,159,10,0.10)] dark:bg-[rgba(245,159,10,0.10)]",
|
|
@@ -1556,13 +1296,13 @@ var intentConfig = {
|
|
|
1556
1296
|
outerBg: "bg-[rgba(239,67,67,0.10)] dark:bg-[rgba(239,67,67,0.10)]",
|
|
1557
1297
|
innerBg: "bg-[rgba(239,67,67,0.20)] dark:bg-[rgba(239,67,67,0.20)]",
|
|
1558
1298
|
iconColor: "text-[#ef4343] dark:text-[#ef4343]",
|
|
1559
|
-
Icon:
|
|
1299
|
+
Icon: X
|
|
1560
1300
|
},
|
|
1561
1301
|
info: {
|
|
1562
1302
|
outerBg: "bg-[rgba(60,131,246,0.10)] dark:bg-[rgba(60,131,246,0.10)]",
|
|
1563
1303
|
innerBg: "bg-[rgba(60,131,246,0.20)] dark:bg-[rgba(60,131,246,0.20)]",
|
|
1564
1304
|
iconColor: "text-[#3c83f6] dark:text-[#3c83f6]",
|
|
1565
|
-
Icon:
|
|
1305
|
+
Icon: Info
|
|
1566
1306
|
}
|
|
1567
1307
|
};
|
|
1568
1308
|
var sizeConfig = {
|
|
@@ -1583,18 +1323,18 @@ function IntentIcon({
|
|
|
1583
1323
|
}) {
|
|
1584
1324
|
const { outerBg, innerBg, iconColor, Icon: Icon2 } = intentConfig[intent];
|
|
1585
1325
|
const { outer, inner, iconSize } = sizeConfig[size];
|
|
1586
|
-
return /* @__PURE__ */
|
|
1326
|
+
return /* @__PURE__ */ jsx12(
|
|
1587
1327
|
"div",
|
|
1588
1328
|
{
|
|
1589
1329
|
"data-testid": "intent-icon",
|
|
1590
1330
|
className: `${outer} ${outerBg} flex items-center justify-center`,
|
|
1591
|
-
children: /* @__PURE__ */
|
|
1331
|
+
children: /* @__PURE__ */ jsx12("div", { className: `${inner} ${innerBg} flex items-center justify-center`, children: /* @__PURE__ */ jsx12(Icon2, { className: iconColor, size: iconSize }) })
|
|
1592
1332
|
}
|
|
1593
1333
|
);
|
|
1594
1334
|
}
|
|
1595
1335
|
|
|
1596
1336
|
// src/section-heading.tsx
|
|
1597
|
-
import { jsx as
|
|
1337
|
+
import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1598
1338
|
var sizeConfig2 = {
|
|
1599
1339
|
display: {
|
|
1600
1340
|
className: "text-4xl font-bold leading-10",
|
|
@@ -1619,26 +1359,26 @@ function SectionHeading({
|
|
|
1619
1359
|
align = "center",
|
|
1620
1360
|
size = "h1"
|
|
1621
1361
|
}) {
|
|
1622
|
-
const { className: sizeClass, tag:
|
|
1623
|
-
return /* @__PURE__ */
|
|
1362
|
+
const { className: sizeClass, tag: Tag } = sizeConfig2[size];
|
|
1363
|
+
return /* @__PURE__ */ jsxs8(
|
|
1624
1364
|
"div",
|
|
1625
1365
|
{
|
|
1626
1366
|
"data-testid": "section-heading",
|
|
1627
1367
|
className: cn(
|
|
1628
|
-
"flex
|
|
1629
|
-
align === "center" && "items-center text-center",
|
|
1368
|
+
"flex flex-col gap-2",
|
|
1369
|
+
align === "center" && "mx-auto items-center text-center",
|
|
1630
1370
|
align === "left" && "items-start text-left"
|
|
1631
1371
|
),
|
|
1632
1372
|
children: [
|
|
1633
|
-
/* @__PURE__ */
|
|
1634
|
-
description && /* @__PURE__ */
|
|
1373
|
+
/* @__PURE__ */ jsx13(Tag, { className: cn("text-foreground dark:text-foreground", sizeClass), children: title }),
|
|
1374
|
+
description && /* @__PURE__ */ jsx13("p", { className: "max-w-[480px] text-sm font-normal leading-[21px] text-muted-foreground dark:text-muted-foreground", children: description })
|
|
1635
1375
|
]
|
|
1636
1376
|
}
|
|
1637
1377
|
);
|
|
1638
1378
|
}
|
|
1639
1379
|
|
|
1640
1380
|
// src/filter-chip.tsx
|
|
1641
|
-
import { jsx as
|
|
1381
|
+
import { jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1642
1382
|
function FilterChip({
|
|
1643
1383
|
label,
|
|
1644
1384
|
active = false,
|
|
@@ -1646,7 +1386,7 @@ function FilterChip({
|
|
|
1646
1386
|
size = "md",
|
|
1647
1387
|
onClick
|
|
1648
1388
|
}) {
|
|
1649
|
-
return /* @__PURE__ */
|
|
1389
|
+
return /* @__PURE__ */ jsxs9(
|
|
1650
1390
|
"button",
|
|
1651
1391
|
{
|
|
1652
1392
|
type: "button",
|
|
@@ -1662,21 +1402,21 @@ function FilterChip({
|
|
|
1662
1402
|
// State — inactive
|
|
1663
1403
|
!active && "border-border bg-background text-muted-foreground dark:border-border dark:bg-background dark:text-muted-foreground",
|
|
1664
1404
|
// State — active
|
|
1665
|
-
active && "
|
|
1405
|
+
active && "bg-primary-solid dark:bg-primary-solid border-transparent text-primary-foreground dark:border-transparent dark:text-primary-foreground",
|
|
1666
1406
|
// Hover
|
|
1667
1407
|
!active && "hover:bg-muted dark:hover:bg-muted",
|
|
1668
|
-
active && "hover:bg-
|
|
1408
|
+
active && "hover:bg-[color-mix(in_oklab,hsl(var(--primary-solid))_85%,black)] dark:hover:bg-[color-mix(in_oklab,hsl(var(--primary-solid))_85%,black)]"
|
|
1669
1409
|
),
|
|
1670
1410
|
children: [
|
|
1671
1411
|
label,
|
|
1672
|
-
count != null && /* @__PURE__ */
|
|
1412
|
+
count != null && /* @__PURE__ */ jsx14(
|
|
1673
1413
|
"span",
|
|
1674
1414
|
{
|
|
1675
1415
|
className: cn(
|
|
1676
1416
|
"inline-flex items-center justify-center rounded-full px-[5px] text-[11px] font-semibold",
|
|
1677
1417
|
"h-[18px] min-w-[18px]",
|
|
1678
1418
|
!active && "bg-muted text-muted-foreground dark:bg-muted dark:text-muted-foreground",
|
|
1679
|
-
active && "
|
|
1419
|
+
active && "text-primary-solid dark:text-primary-solid bg-primary-foreground dark:bg-primary-foreground"
|
|
1680
1420
|
),
|
|
1681
1421
|
children: count
|
|
1682
1422
|
}
|
|
@@ -1687,35 +1427,35 @@ function FilterChip({
|
|
|
1687
1427
|
}
|
|
1688
1428
|
|
|
1689
1429
|
// src/distribution-chip.tsx
|
|
1690
|
-
import { jsx as
|
|
1430
|
+
import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1691
1431
|
function DistributionChip({
|
|
1692
1432
|
count,
|
|
1693
1433
|
label,
|
|
1694
1434
|
dotClass,
|
|
1695
1435
|
testId
|
|
1696
1436
|
}) {
|
|
1697
|
-
return /* @__PURE__ */
|
|
1437
|
+
return /* @__PURE__ */ jsxs10(
|
|
1698
1438
|
"span",
|
|
1699
1439
|
{
|
|
1700
1440
|
"data-testid": testId,
|
|
1701
1441
|
className: "inline-flex items-center gap-1.5 rounded-full border border-border bg-card px-3 py-1 text-sm font-medium text-foreground",
|
|
1702
1442
|
children: [
|
|
1703
|
-
/* @__PURE__ */
|
|
1704
|
-
/* @__PURE__ */
|
|
1705
|
-
/* @__PURE__ */
|
|
1443
|
+
/* @__PURE__ */ jsx15("span", { className: `size-2 rounded-full ${dotClass}` }),
|
|
1444
|
+
/* @__PURE__ */ jsx15("span", { className: "tabular-nums", children: count }),
|
|
1445
|
+
/* @__PURE__ */ jsx15("span", { className: "text-muted-foreground", children: label })
|
|
1706
1446
|
]
|
|
1707
1447
|
}
|
|
1708
1448
|
);
|
|
1709
1449
|
}
|
|
1710
1450
|
|
|
1711
1451
|
// src/skeleton-bar.tsx
|
|
1712
|
-
import { jsx as
|
|
1452
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
1713
1453
|
function SkeletonBar({
|
|
1714
1454
|
width = "full",
|
|
1715
1455
|
height = 14,
|
|
1716
1456
|
className = ""
|
|
1717
1457
|
}) {
|
|
1718
|
-
return /* @__PURE__ */
|
|
1458
|
+
return /* @__PURE__ */ jsx16(
|
|
1719
1459
|
"div",
|
|
1720
1460
|
{
|
|
1721
1461
|
"data-testid": "skeleton-bar",
|
|
@@ -1733,9 +1473,9 @@ function SkeletonBar({
|
|
|
1733
1473
|
}
|
|
1734
1474
|
|
|
1735
1475
|
// src/skeleton-card.tsx
|
|
1736
|
-
import { jsx as
|
|
1476
|
+
import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1737
1477
|
function SkeletonCard({ className = "" }) {
|
|
1738
|
-
return /* @__PURE__ */
|
|
1478
|
+
return /* @__PURE__ */ jsxs11(
|
|
1739
1479
|
"div",
|
|
1740
1480
|
{
|
|
1741
1481
|
"data-testid": "skeleton-card",
|
|
@@ -1744,18 +1484,18 @@ function SkeletonCard({ className = "" }) {
|
|
|
1744
1484
|
className
|
|
1745
1485
|
),
|
|
1746
1486
|
children: [
|
|
1747
|
-
/* @__PURE__ */
|
|
1748
|
-
/* @__PURE__ */
|
|
1749
|
-
/* @__PURE__ */
|
|
1487
|
+
/* @__PURE__ */ jsx17(SkeletonBar, { width: 80, height: 10 }),
|
|
1488
|
+
/* @__PURE__ */ jsx17(SkeletonBar, { width: 60, height: 24 }),
|
|
1489
|
+
/* @__PURE__ */ jsx17(SkeletonBar, { width: 100, height: 10 })
|
|
1750
1490
|
]
|
|
1751
1491
|
}
|
|
1752
1492
|
);
|
|
1753
1493
|
}
|
|
1754
1494
|
|
|
1755
1495
|
// src/skeleton-row.tsx
|
|
1756
|
-
import { jsx as
|
|
1496
|
+
import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1757
1497
|
function SkeletonRow({ className = "" }) {
|
|
1758
|
-
return /* @__PURE__ */
|
|
1498
|
+
return /* @__PURE__ */ jsxs12(
|
|
1759
1499
|
"div",
|
|
1760
1500
|
{
|
|
1761
1501
|
"data-testid": "skeleton-row",
|
|
@@ -1764,10 +1504,10 @@ function SkeletonRow({ className = "" }) {
|
|
|
1764
1504
|
className
|
|
1765
1505
|
),
|
|
1766
1506
|
children: [
|
|
1767
|
-
/* @__PURE__ */
|
|
1768
|
-
/* @__PURE__ */
|
|
1769
|
-
/* @__PURE__ */
|
|
1770
|
-
/* @__PURE__ */
|
|
1507
|
+
/* @__PURE__ */ jsx18("div", { className: "h-9 w-9 flex-shrink-0 animate-pulse rounded-full bg-muted dark:bg-muted" }),
|
|
1508
|
+
/* @__PURE__ */ jsxs12("div", { className: "flex flex-1 flex-col gap-1.5", children: [
|
|
1509
|
+
/* @__PURE__ */ jsx18(SkeletonBar, { width: 200, height: 12 }),
|
|
1510
|
+
/* @__PURE__ */ jsx18(SkeletonBar, { width: 140, height: 10 })
|
|
1771
1511
|
] })
|
|
1772
1512
|
]
|
|
1773
1513
|
}
|
|
@@ -1775,10 +1515,10 @@ function SkeletonRow({ className = "" }) {
|
|
|
1775
1515
|
}
|
|
1776
1516
|
|
|
1777
1517
|
// src/stacked-list.tsx
|
|
1778
|
-
import * as
|
|
1779
|
-
import { jsx as
|
|
1780
|
-
var StackedList =
|
|
1781
|
-
({ className, divided = true, density = "default", ...props }, ref) => /* @__PURE__ */
|
|
1518
|
+
import * as React8 from "react";
|
|
1519
|
+
import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1520
|
+
var StackedList = React8.forwardRef(
|
|
1521
|
+
({ className, divided = true, density = "default", ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
1782
1522
|
"ul",
|
|
1783
1523
|
{
|
|
1784
1524
|
ref,
|
|
@@ -1790,7 +1530,7 @@ var StackedList = React10.forwardRef(
|
|
|
1790
1530
|
)
|
|
1791
1531
|
);
|
|
1792
1532
|
StackedList.displayName = "StackedList";
|
|
1793
|
-
var StackedListItem =
|
|
1533
|
+
var StackedListItem = React8.forwardRef(
|
|
1794
1534
|
({
|
|
1795
1535
|
className,
|
|
1796
1536
|
avatar,
|
|
@@ -1800,7 +1540,7 @@ var StackedListItem = React10.forwardRef(
|
|
|
1800
1540
|
action,
|
|
1801
1541
|
density = "default",
|
|
1802
1542
|
...props
|
|
1803
|
-
}, ref) => /* @__PURE__ */
|
|
1543
|
+
}, ref) => /* @__PURE__ */ jsxs13(
|
|
1804
1544
|
"li",
|
|
1805
1545
|
{
|
|
1806
1546
|
ref,
|
|
@@ -1811,9 +1551,9 @@ var StackedListItem = React10.forwardRef(
|
|
|
1811
1551
|
),
|
|
1812
1552
|
...props,
|
|
1813
1553
|
children: [
|
|
1814
|
-
avatar && /* @__PURE__ */
|
|
1815
|
-
/* @__PURE__ */
|
|
1816
|
-
/* @__PURE__ */
|
|
1554
|
+
avatar && /* @__PURE__ */ jsx19("div", { className: "flex-shrink-0", children: avatar }),
|
|
1555
|
+
/* @__PURE__ */ jsxs13("div", { className: "min-w-0 flex-1", children: [
|
|
1556
|
+
/* @__PURE__ */ jsx19(
|
|
1817
1557
|
"p",
|
|
1818
1558
|
{
|
|
1819
1559
|
className: cn(
|
|
@@ -1823,7 +1563,7 @@ var StackedListItem = React10.forwardRef(
|
|
|
1823
1563
|
children: title
|
|
1824
1564
|
}
|
|
1825
1565
|
),
|
|
1826
|
-
description && /* @__PURE__ */
|
|
1566
|
+
description && /* @__PURE__ */ jsx19(
|
|
1827
1567
|
"p",
|
|
1828
1568
|
{
|
|
1829
1569
|
className: cn(
|
|
@@ -1834,8 +1574,8 @@ var StackedListItem = React10.forwardRef(
|
|
|
1834
1574
|
}
|
|
1835
1575
|
)
|
|
1836
1576
|
] }),
|
|
1837
|
-
meta && /* @__PURE__ */
|
|
1838
|
-
action && /* @__PURE__ */
|
|
1577
|
+
meta && /* @__PURE__ */ jsx19("span", { className: "flex-shrink-0 text-sm text-muted-foreground", children: meta }),
|
|
1578
|
+
action && /* @__PURE__ */ jsx19("div", { className: "flex-shrink-0", children: action })
|
|
1839
1579
|
]
|
|
1840
1580
|
}
|
|
1841
1581
|
)
|
|
@@ -1843,8 +1583,8 @@ var StackedListItem = React10.forwardRef(
|
|
|
1843
1583
|
StackedListItem.displayName = "StackedListItem";
|
|
1844
1584
|
|
|
1845
1585
|
// src/grid-list.tsx
|
|
1846
|
-
import * as
|
|
1847
|
-
import { jsx as
|
|
1586
|
+
import * as React9 from "react";
|
|
1587
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
1848
1588
|
var COLUMN_CLASSES = {
|
|
1849
1589
|
2: "grid-cols-1 sm:grid-cols-2",
|
|
1850
1590
|
3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
|
|
@@ -1855,8 +1595,8 @@ var GAP_CLASSES = {
|
|
|
1855
1595
|
md: "gap-4",
|
|
1856
1596
|
lg: "gap-6"
|
|
1857
1597
|
};
|
|
1858
|
-
var GridList =
|
|
1859
|
-
({ className, columns = 3, gap = "md", ...props }, ref) => /* @__PURE__ */
|
|
1598
|
+
var GridList = React9.forwardRef(
|
|
1599
|
+
({ className, columns = 3, gap = "md", ...props }, ref) => /* @__PURE__ */ jsx20(
|
|
1860
1600
|
"div",
|
|
1861
1601
|
{
|
|
1862
1602
|
ref,
|
|
@@ -1871,8 +1611,8 @@ var GridList = React11.forwardRef(
|
|
|
1871
1611
|
)
|
|
1872
1612
|
);
|
|
1873
1613
|
GridList.displayName = "GridList";
|
|
1874
|
-
var GridListItem =
|
|
1875
|
-
({ className, hoverable = false, ...props }, ref) => /* @__PURE__ */
|
|
1614
|
+
var GridListItem = React9.forwardRef(
|
|
1615
|
+
({ className, hoverable = false, ...props }, ref) => /* @__PURE__ */ jsx20(
|
|
1876
1616
|
"div",
|
|
1877
1617
|
{
|
|
1878
1618
|
ref,
|
|
@@ -1888,8 +1628,8 @@ var GridListItem = React11.forwardRef(
|
|
|
1888
1628
|
GridListItem.displayName = "GridListItem";
|
|
1889
1629
|
|
|
1890
1630
|
// src/pagination.tsx
|
|
1891
|
-
import * as
|
|
1892
|
-
import { jsx as
|
|
1631
|
+
import * as React10 from "react";
|
|
1632
|
+
import { jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1893
1633
|
function getPageRange(current, total, siblings) {
|
|
1894
1634
|
const range = [];
|
|
1895
1635
|
const left = Math.max(2, current - siblings);
|
|
@@ -1901,7 +1641,7 @@ function getPageRange(current, total, siblings) {
|
|
|
1901
1641
|
if (total > 1) range.push(total);
|
|
1902
1642
|
return range;
|
|
1903
1643
|
}
|
|
1904
|
-
var PaginationButton =
|
|
1644
|
+
var PaginationButton = React10.forwardRef(({ className, active, disabled, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1905
1645
|
"button",
|
|
1906
1646
|
{
|
|
1907
1647
|
ref,
|
|
@@ -1918,7 +1658,7 @@ var PaginationButton = React12.forwardRef(({ className, active, disabled, ...pro
|
|
|
1918
1658
|
}
|
|
1919
1659
|
));
|
|
1920
1660
|
PaginationButton.displayName = "PaginationButton";
|
|
1921
|
-
var Pagination =
|
|
1661
|
+
var Pagination = React10.forwardRef(
|
|
1922
1662
|
({
|
|
1923
1663
|
className,
|
|
1924
1664
|
currentPage,
|
|
@@ -1934,7 +1674,7 @@ var Pagination = React12.forwardRef(
|
|
|
1934
1674
|
}
|
|
1935
1675
|
};
|
|
1936
1676
|
if (variant === "simple") {
|
|
1937
|
-
return /* @__PURE__ */
|
|
1677
|
+
return /* @__PURE__ */ jsxs14(
|
|
1938
1678
|
"nav",
|
|
1939
1679
|
{
|
|
1940
1680
|
ref,
|
|
@@ -1942,7 +1682,7 @@ var Pagination = React12.forwardRef(
|
|
|
1942
1682
|
className: cn("flex items-center justify-between", className),
|
|
1943
1683
|
...props,
|
|
1944
1684
|
children: [
|
|
1945
|
-
/* @__PURE__ */
|
|
1685
|
+
/* @__PURE__ */ jsx21(
|
|
1946
1686
|
PaginationButton,
|
|
1947
1687
|
{
|
|
1948
1688
|
onClick: () => handleChange(currentPage - 1),
|
|
@@ -1950,13 +1690,13 @@ var Pagination = React12.forwardRef(
|
|
|
1950
1690
|
children: "Previous"
|
|
1951
1691
|
}
|
|
1952
1692
|
),
|
|
1953
|
-
/* @__PURE__ */
|
|
1693
|
+
/* @__PURE__ */ jsxs14("span", { className: "text-sm text-muted-foreground", children: [
|
|
1954
1694
|
"Page ",
|
|
1955
1695
|
currentPage,
|
|
1956
1696
|
" of ",
|
|
1957
1697
|
totalPages
|
|
1958
1698
|
] }),
|
|
1959
|
-
/* @__PURE__ */
|
|
1699
|
+
/* @__PURE__ */ jsx21(
|
|
1960
1700
|
PaginationButton,
|
|
1961
1701
|
{
|
|
1962
1702
|
onClick: () => handleChange(currentPage + 1),
|
|
@@ -1969,7 +1709,7 @@ var Pagination = React12.forwardRef(
|
|
|
1969
1709
|
);
|
|
1970
1710
|
}
|
|
1971
1711
|
const pages = getPageRange(currentPage, totalPages, siblingCount);
|
|
1972
|
-
return /* @__PURE__ */
|
|
1712
|
+
return /* @__PURE__ */ jsxs14(
|
|
1973
1713
|
"nav",
|
|
1974
1714
|
{
|
|
1975
1715
|
ref,
|
|
@@ -1981,7 +1721,7 @@ var Pagination = React12.forwardRef(
|
|
|
1981
1721
|
),
|
|
1982
1722
|
...props,
|
|
1983
1723
|
children: [
|
|
1984
|
-
/* @__PURE__ */
|
|
1724
|
+
/* @__PURE__ */ jsx21(
|
|
1985
1725
|
PaginationButton,
|
|
1986
1726
|
{
|
|
1987
1727
|
onClick: () => handleChange(currentPage - 1),
|
|
@@ -1990,14 +1730,14 @@ var Pagination = React12.forwardRef(
|
|
|
1990
1730
|
}
|
|
1991
1731
|
),
|
|
1992
1732
|
pages.map(
|
|
1993
|
-
(page, i) => page === "ellipsis" ? /* @__PURE__ */
|
|
1733
|
+
(page, i) => page === "ellipsis" ? /* @__PURE__ */ jsx21(
|
|
1994
1734
|
"span",
|
|
1995
1735
|
{
|
|
1996
1736
|
className: "inline-flex h-9 min-w-9 items-center justify-center text-sm text-muted-foreground",
|
|
1997
1737
|
children: "..."
|
|
1998
1738
|
},
|
|
1999
1739
|
`ellipsis-${i}`
|
|
2000
|
-
) : /* @__PURE__ */
|
|
1740
|
+
) : /* @__PURE__ */ jsx21(
|
|
2001
1741
|
PaginationButton,
|
|
2002
1742
|
{
|
|
2003
1743
|
active: page === currentPage,
|
|
@@ -2007,7 +1747,7 @@ var Pagination = React12.forwardRef(
|
|
|
2007
1747
|
page
|
|
2008
1748
|
)
|
|
2009
1749
|
),
|
|
2010
|
-
/* @__PURE__ */
|
|
1750
|
+
/* @__PURE__ */ jsx21(
|
|
2011
1751
|
PaginationButton,
|
|
2012
1752
|
{
|
|
2013
1753
|
onClick: () => handleChange(currentPage + 1),
|
|
@@ -2023,106 +1763,9 @@ var Pagination = React12.forwardRef(
|
|
|
2023
1763
|
Pagination.displayName = "Pagination";
|
|
2024
1764
|
|
|
2025
1765
|
// src/stepper.tsx
|
|
2026
|
-
import * as
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
import * as React13 from "react";
|
|
2030
|
-
|
|
2031
|
-
// src/scroll-hint.ts
|
|
2032
|
-
var SCROLL_HINT_X = "";
|
|
2033
|
-
var SCROLL_HINT_X_MARK = "pointer-events-none sticky right-0 z-10 ml-2 flex w-6 shrink-0 items-center justify-end self-stretch data-[scroll-hint-state=end]:invisible data-[scroll-hint-state=none]:hidden";
|
|
2034
|
-
var SCROLL_HINT_X_PILL = "flex h-full max-h-6 w-6 items-center justify-center rounded-full border border-border bg-card text-muted-foreground shadow-sm";
|
|
2035
|
-
var SCROLL_HINT_Y = "[container-type:scroll-state]";
|
|
2036
|
-
var SCROLL_HINT_Y_MARK = "pointer-events-none sticky bottom-1 -mt-7 flex h-6 justify-center supports-[container-type:scroll-state]:[@container_not_scroll-state(scrollable:bottom)]:hidden";
|
|
2037
|
-
|
|
2038
|
-
// src/scroll-hint-watch.ts
|
|
2039
|
-
function scrollHintXState(box, slotWidth) {
|
|
2040
|
-
if (box.scrollWidth - slotWidth <= box.clientWidth + 1) return "none";
|
|
2041
|
-
return Math.abs(box.scrollLeft) + box.clientWidth >= box.scrollWidth - 1 ? "end" : "more";
|
|
2042
|
-
}
|
|
2043
|
-
function scrollHintXSlotWidth(mark, scroller) {
|
|
2044
|
-
const own = getComputedStyle(mark);
|
|
2045
|
-
if (own.display === "none") return 0;
|
|
2046
|
-
const px = (v, what) => {
|
|
2047
|
-
if (v === "normal") return 0;
|
|
2048
|
-
const n = Number.parseFloat(v);
|
|
2049
|
-
if (!Number.isFinite(n)) {
|
|
2050
|
-
throw new Error(
|
|
2051
|
-
`scrollHintXSlotWidth: ${what} is "${v}", not a length in px`
|
|
2052
|
-
);
|
|
2053
|
-
}
|
|
2054
|
-
return n;
|
|
2055
|
-
};
|
|
2056
|
-
const gap = mark.previousElementSibling === null ? 0 : px(getComputedStyle(scroller).columnGap, "the scroller's column-gap");
|
|
2057
|
-
return mark.getBoundingClientRect().width + px(own.marginLeft, "the mark's margin-left") + px(own.marginRight, "the mark's margin-right") + gap;
|
|
2058
|
-
}
|
|
2059
|
-
function watchScrollHintX(mark, write) {
|
|
2060
|
-
const scroller = mark.parentElement;
|
|
2061
|
-
if (scroller === null) {
|
|
2062
|
-
throw new Error(
|
|
2063
|
-
"watchScrollHintX: the mark has no parent element; it must be the last child of the box that scrolls on x"
|
|
2064
|
-
);
|
|
2065
|
-
}
|
|
2066
|
-
let last;
|
|
2067
|
-
const update = () => {
|
|
2068
|
-
const state = scrollHintXState(
|
|
2069
|
-
scroller,
|
|
2070
|
-
scrollHintXSlotWidth(mark, scroller)
|
|
2071
|
-
);
|
|
2072
|
-
if (state === last) return;
|
|
2073
|
-
last = state;
|
|
2074
|
-
write(state);
|
|
2075
|
-
};
|
|
2076
|
-
const resize = new ResizeObserver(update);
|
|
2077
|
-
const observeChildren = () => {
|
|
2078
|
-
for (const child of Array.from(scroller.children)) resize.observe(child);
|
|
2079
|
-
};
|
|
2080
|
-
resize.observe(scroller);
|
|
2081
|
-
observeChildren();
|
|
2082
|
-
const added = new MutationObserver(() => {
|
|
2083
|
-
observeChildren();
|
|
2084
|
-
update();
|
|
2085
|
-
});
|
|
2086
|
-
added.observe(scroller, { childList: true });
|
|
2087
|
-
scroller.addEventListener("scroll", update, { passive: true });
|
|
2088
|
-
update();
|
|
2089
|
-
return () => {
|
|
2090
|
-
scroller.removeEventListener("scroll", update);
|
|
2091
|
-
resize.disconnect();
|
|
2092
|
-
added.disconnect();
|
|
2093
|
-
};
|
|
2094
|
-
}
|
|
2095
|
-
|
|
2096
|
-
// src/scroll-hint-mark.tsx
|
|
2097
|
-
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
2098
|
-
function ScrollHintXMark() {
|
|
2099
|
-
const ref = React13.useRef(null);
|
|
2100
|
-
React13.useEffect(() => {
|
|
2101
|
-
const mark = ref.current;
|
|
2102
|
-
if (mark === null) {
|
|
2103
|
-
throw new Error(
|
|
2104
|
-
"ScrollHintXMark: the effect ran with no mounted mark (ref.current is null)"
|
|
2105
|
-
);
|
|
2106
|
-
}
|
|
2107
|
-
return watchScrollHintX(mark, (state) => {
|
|
2108
|
-
mark.dataset.scrollHintState = state;
|
|
2109
|
-
});
|
|
2110
|
-
}, []);
|
|
2111
|
-
return /* @__PURE__ */ jsx26(
|
|
2112
|
-
"div",
|
|
2113
|
-
{
|
|
2114
|
-
ref,
|
|
2115
|
-
"aria-hidden": "true",
|
|
2116
|
-
"data-scroll-hint": "x",
|
|
2117
|
-
className: SCROLL_HINT_X_MARK,
|
|
2118
|
-
children: /* @__PURE__ */ jsx26("span", { className: SCROLL_HINT_X_PILL, children: /* @__PURE__ */ jsx26(Icon, { name: "chevron-right", size: "sm" }) })
|
|
2119
|
-
}
|
|
2120
|
-
);
|
|
2121
|
-
}
|
|
2122
|
-
|
|
2123
|
-
// src/stepper.tsx
|
|
2124
|
-
import { jsx as jsx27, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2125
|
-
var StepContext = React14.createContext({
|
|
1766
|
+
import * as React11 from "react";
|
|
1767
|
+
import { jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1768
|
+
var StepContext = React11.createContext({
|
|
2126
1769
|
index: 0,
|
|
2127
1770
|
activeStep: 0,
|
|
2128
1771
|
isLast: false,
|
|
@@ -2139,7 +1782,7 @@ var LABEL_SIZE = {
|
|
|
2139
1782
|
md: "text-sm",
|
|
2140
1783
|
lg: "text-base"
|
|
2141
1784
|
};
|
|
2142
|
-
var StepperStep =
|
|
1785
|
+
var StepperStep = React11.forwardRef(
|
|
2143
1786
|
({
|
|
2144
1787
|
className,
|
|
2145
1788
|
label,
|
|
@@ -2151,10 +1794,10 @@ var StepperStep = React14.forwardRef(
|
|
|
2151
1794
|
href,
|
|
2152
1795
|
...props
|
|
2153
1796
|
}, ref) => {
|
|
2154
|
-
const { index, activeStep, isLast, variant, size } =
|
|
1797
|
+
const { index, activeStep, isLast, variant, size } = React11.useContext(StepContext);
|
|
2155
1798
|
const status = error ? "error" : disabled ? "disabled" : index < activeStep || completed ? "complete" : index === activeStep ? "current" : "upcoming";
|
|
2156
1799
|
const isCurrent = index === activeStep && !error && !disabled;
|
|
2157
|
-
const indicator = /* @__PURE__ */
|
|
1800
|
+
const indicator = /* @__PURE__ */ jsx22(
|
|
2158
1801
|
"div",
|
|
2159
1802
|
{
|
|
2160
1803
|
className: cn(
|
|
@@ -2172,7 +1815,7 @@ var StepperStep = React14.forwardRef(
|
|
|
2172
1815
|
}
|
|
2173
1816
|
);
|
|
2174
1817
|
if (variant === "vertical") {
|
|
2175
|
-
return /* @__PURE__ */
|
|
1818
|
+
return /* @__PURE__ */ jsxs15(
|
|
2176
1819
|
"div",
|
|
2177
1820
|
{
|
|
2178
1821
|
ref,
|
|
@@ -2182,9 +1825,9 @@ var StepperStep = React14.forwardRef(
|
|
|
2182
1825
|
className: cn("flex gap-3", disabled && "opacity-50", className),
|
|
2183
1826
|
...props,
|
|
2184
1827
|
children: [
|
|
2185
|
-
/* @__PURE__ */
|
|
1828
|
+
/* @__PURE__ */ jsxs15("div", { className: "flex flex-col items-center", children: [
|
|
2186
1829
|
indicator,
|
|
2187
|
-
!isLast && /* @__PURE__ */
|
|
1830
|
+
!isLast && /* @__PURE__ */ jsx22(
|
|
2188
1831
|
"div",
|
|
2189
1832
|
{
|
|
2190
1833
|
className: cn(
|
|
@@ -2196,8 +1839,8 @@ var StepperStep = React14.forwardRef(
|
|
|
2196
1839
|
}
|
|
2197
1840
|
)
|
|
2198
1841
|
] }),
|
|
2199
|
-
/* @__PURE__ */
|
|
2200
|
-
/* @__PURE__ */
|
|
1842
|
+
/* @__PURE__ */ jsxs15("div", { className: "pb-6", children: [
|
|
1843
|
+
/* @__PURE__ */ jsx22(
|
|
2201
1844
|
"p",
|
|
2202
1845
|
{
|
|
2203
1846
|
className: cn(
|
|
@@ -2208,15 +1851,15 @@ var StepperStep = React14.forwardRef(
|
|
|
2208
1851
|
children: label
|
|
2209
1852
|
}
|
|
2210
1853
|
),
|
|
2211
|
-
description && /* @__PURE__ */
|
|
1854
|
+
description && /* @__PURE__ */ jsx22("p", { className: "mt-0.5 text-xs text-muted-foreground", children: description })
|
|
2212
1855
|
] })
|
|
2213
1856
|
]
|
|
2214
1857
|
}
|
|
2215
1858
|
);
|
|
2216
1859
|
}
|
|
2217
|
-
const stepContent = /* @__PURE__ */
|
|
1860
|
+
const stepContent = /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-2", children: [
|
|
2218
1861
|
indicator,
|
|
2219
|
-
/* @__PURE__ */
|
|
1862
|
+
/* @__PURE__ */ jsx22(
|
|
2220
1863
|
"span",
|
|
2221
1864
|
{
|
|
2222
1865
|
className: cn(
|
|
@@ -2228,7 +1871,7 @@ var StepperStep = React14.forwardRef(
|
|
|
2228
1871
|
}
|
|
2229
1872
|
)
|
|
2230
1873
|
] });
|
|
2231
|
-
return /* @__PURE__ */
|
|
1874
|
+
return /* @__PURE__ */ jsxs15(
|
|
2232
1875
|
"div",
|
|
2233
1876
|
{
|
|
2234
1877
|
ref,
|
|
@@ -2238,7 +1881,7 @@ var StepperStep = React14.forwardRef(
|
|
|
2238
1881
|
className: cn("flex items-center", className),
|
|
2239
1882
|
...props,
|
|
2240
1883
|
children: [
|
|
2241
|
-
href && !disabled ? /* @__PURE__ */
|
|
1884
|
+
href && !disabled ? /* @__PURE__ */ jsx22(
|
|
2242
1885
|
"a",
|
|
2243
1886
|
{
|
|
2244
1887
|
href,
|
|
@@ -2247,7 +1890,7 @@ var StepperStep = React14.forwardRef(
|
|
|
2247
1890
|
children: stepContent
|
|
2248
1891
|
}
|
|
2249
1892
|
) : stepContent,
|
|
2250
|
-
!isLast && /* @__PURE__ */
|
|
1893
|
+
!isLast && /* @__PURE__ */ jsx22(
|
|
2251
1894
|
"div",
|
|
2252
1895
|
{
|
|
2253
1896
|
className: cn(
|
|
@@ -2262,7 +1905,7 @@ var StepperStep = React14.forwardRef(
|
|
|
2262
1905
|
}
|
|
2263
1906
|
);
|
|
2264
1907
|
StepperStep.displayName = "StepperStep";
|
|
2265
|
-
var Stepper =
|
|
1908
|
+
var Stepper = React11.forwardRef(
|
|
2266
1909
|
({
|
|
2267
1910
|
className,
|
|
2268
1911
|
variant = "horizontal",
|
|
@@ -2271,8 +1914,8 @@ var Stepper = React14.forwardRef(
|
|
|
2271
1914
|
children,
|
|
2272
1915
|
...props
|
|
2273
1916
|
}, ref) => {
|
|
2274
|
-
const steps =
|
|
2275
|
-
return /* @__PURE__ */
|
|
1917
|
+
const steps = React11.Children.toArray(children);
|
|
1918
|
+
return /* @__PURE__ */ jsxs15(
|
|
2276
1919
|
"div",
|
|
2277
1920
|
{
|
|
2278
1921
|
ref,
|
|
@@ -2284,7 +1927,7 @@ var Stepper = React14.forwardRef(
|
|
|
2284
1927
|
),
|
|
2285
1928
|
...props,
|
|
2286
1929
|
children: [
|
|
2287
|
-
steps.map((child, i) => /* @__PURE__ */
|
|
1930
|
+
steps.map((child, i) => /* @__PURE__ */ jsx22(
|
|
2288
1931
|
StepContext.Provider,
|
|
2289
1932
|
{
|
|
2290
1933
|
value: {
|
|
@@ -2298,7 +1941,7 @@ var Stepper = React14.forwardRef(
|
|
|
2298
1941
|
},
|
|
2299
1942
|
i
|
|
2300
1943
|
)),
|
|
2301
|
-
variant === "horizontal" && /* @__PURE__ */
|
|
1944
|
+
variant === "horizontal" && /* @__PURE__ */ jsx22(ScrollHintXMark, {})
|
|
2302
1945
|
]
|
|
2303
1946
|
}
|
|
2304
1947
|
);
|
|
@@ -2307,14 +1950,14 @@ var Stepper = React14.forwardRef(
|
|
|
2307
1950
|
Stepper.displayName = "Stepper";
|
|
2308
1951
|
|
|
2309
1952
|
// src/command-palette.tsx
|
|
2310
|
-
import * as
|
|
2311
|
-
import { Fragment as
|
|
1953
|
+
import * as React12 from "react";
|
|
1954
|
+
import { Fragment as Fragment2, jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2312
1955
|
var SIZE_CLASSES = {
|
|
2313
1956
|
sm: "max-w-sm",
|
|
2314
1957
|
md: "max-w-lg",
|
|
2315
1958
|
lg: "max-w-2xl"
|
|
2316
1959
|
};
|
|
2317
|
-
var CommandPalette =
|
|
1960
|
+
var CommandPalette = React12.forwardRef(
|
|
2318
1961
|
({
|
|
2319
1962
|
className,
|
|
2320
1963
|
open,
|
|
@@ -2325,9 +1968,9 @@ var CommandPalette = React15.forwardRef(
|
|
|
2325
1968
|
size = "md",
|
|
2326
1969
|
...props
|
|
2327
1970
|
}, ref) => {
|
|
2328
|
-
const [query, setQuery] =
|
|
2329
|
-
const [activeIndex, setActiveIndex] =
|
|
2330
|
-
|
|
1971
|
+
const [query, setQuery] = React12.useState("");
|
|
1972
|
+
const [activeIndex, setActiveIndex] = React12.useState(0);
|
|
1973
|
+
React12.useEffect(() => {
|
|
2331
1974
|
if (!open) return;
|
|
2332
1975
|
const handler = (e) => {
|
|
2333
1976
|
if (e.key === "Escape") onClose?.();
|
|
@@ -2347,7 +1990,7 @@ var CommandPalette = React15.forwardRef(
|
|
|
2347
1990
|
document.addEventListener("keydown", handler);
|
|
2348
1991
|
return () => document.removeEventListener("keydown", handler);
|
|
2349
1992
|
}, [open, onClose, results, activeIndex]);
|
|
2350
|
-
|
|
1993
|
+
React12.useEffect(() => {
|
|
2351
1994
|
setActiveIndex(0);
|
|
2352
1995
|
}, [query]);
|
|
2353
1996
|
if (!open) return null;
|
|
@@ -2360,15 +2003,15 @@ var CommandPalette = React15.forwardRef(
|
|
|
2360
2003
|
},
|
|
2361
2004
|
{}
|
|
2362
2005
|
);
|
|
2363
|
-
return /* @__PURE__ */
|
|
2364
|
-
/* @__PURE__ */
|
|
2006
|
+
return /* @__PURE__ */ jsxs16(Fragment2, { children: [
|
|
2007
|
+
/* @__PURE__ */ jsx23(
|
|
2365
2008
|
"div",
|
|
2366
2009
|
{
|
|
2367
2010
|
className: "z-modal fixed inset-0 bg-foreground/60",
|
|
2368
2011
|
onClick: onClose
|
|
2369
2012
|
}
|
|
2370
2013
|
),
|
|
2371
|
-
/* @__PURE__ */
|
|
2014
|
+
/* @__PURE__ */ jsx23("div", { className: "z-modal fixed inset-0 flex items-start justify-center pt-[15vh]", children: /* @__PURE__ */ jsxs16(
|
|
2372
2015
|
"div",
|
|
2373
2016
|
{
|
|
2374
2017
|
ref,
|
|
@@ -2379,9 +2022,9 @@ var CommandPalette = React15.forwardRef(
|
|
|
2379
2022
|
),
|
|
2380
2023
|
...props,
|
|
2381
2024
|
children: [
|
|
2382
|
-
/* @__PURE__ */
|
|
2383
|
-
/* @__PURE__ */
|
|
2384
|
-
/* @__PURE__ */
|
|
2025
|
+
/* @__PURE__ */ jsxs16("div", { className: "flex items-center border-b border-border px-4", children: [
|
|
2026
|
+
/* @__PURE__ */ jsx23("span", { className: "mr-2 text-muted-foreground", children: "\u2318" }),
|
|
2027
|
+
/* @__PURE__ */ jsx23(
|
|
2385
2028
|
"input",
|
|
2386
2029
|
{
|
|
2387
2030
|
type: "text",
|
|
@@ -2395,13 +2038,13 @@ var CommandPalette = React15.forwardRef(
|
|
|
2395
2038
|
autoFocus: true
|
|
2396
2039
|
}
|
|
2397
2040
|
),
|
|
2398
|
-
/* @__PURE__ */
|
|
2041
|
+
/* @__PURE__ */ jsx23("kbd", { className: "rounded border border-border px-1.5 py-0.5 text-xs text-muted-foreground", children: "Esc" })
|
|
2399
2042
|
] }),
|
|
2400
|
-
/* @__PURE__ */
|
|
2401
|
-
/* @__PURE__ */
|
|
2043
|
+
/* @__PURE__ */ jsx23("div", { className: "max-h-80 overflow-y-auto p-2", children: Object.entries(grouped).length === 0 ? /* @__PURE__ */ jsx23("p", { className: "py-6 text-center text-sm text-muted-foreground", children: "No results found" }) : Object.entries(grouped).map(([group, items]) => /* @__PURE__ */ jsxs16("div", { children: [
|
|
2044
|
+
/* @__PURE__ */ jsx23("p", { className: "px-2 py-1.5 text-xs font-medium text-muted-foreground", children: group }),
|
|
2402
2045
|
items.map((item) => {
|
|
2403
2046
|
const idx = results.indexOf(item);
|
|
2404
|
-
return /* @__PURE__ */
|
|
2047
|
+
return /* @__PURE__ */ jsxs16(
|
|
2405
2048
|
"button",
|
|
2406
2049
|
{
|
|
2407
2050
|
type: "button",
|
|
@@ -2415,9 +2058,9 @@ var CommandPalette = React15.forwardRef(
|
|
|
2415
2058
|
},
|
|
2416
2059
|
onMouseEnter: () => setActiveIndex(idx),
|
|
2417
2060
|
children: [
|
|
2418
|
-
item.icon && /* @__PURE__ */
|
|
2419
|
-
/* @__PURE__ */
|
|
2420
|
-
item.shortcut && /* @__PURE__ */
|
|
2061
|
+
item.icon && /* @__PURE__ */ jsx23("span", { className: "flex-shrink-0 text-muted-foreground", children: item.icon }),
|
|
2062
|
+
/* @__PURE__ */ jsx23("span", { className: "flex-1", children: item.label }),
|
|
2063
|
+
item.shortcut && /* @__PURE__ */ jsx23("kbd", { className: "rounded border border-border px-1.5 py-0.5 text-xs text-muted-foreground", children: item.shortcut })
|
|
2421
2064
|
]
|
|
2422
2065
|
},
|
|
2423
2066
|
item.id
|
|
@@ -2433,9 +2076,9 @@ var CommandPalette = React15.forwardRef(
|
|
|
2433
2076
|
CommandPalette.displayName = "CommandPalette";
|
|
2434
2077
|
|
|
2435
2078
|
// src/app-shell.tsx
|
|
2436
|
-
import * as
|
|
2437
|
-
import { jsx as
|
|
2438
|
-
var AppShell =
|
|
2079
|
+
import * as React13 from "react";
|
|
2080
|
+
import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2081
|
+
var AppShell = React13.forwardRef(
|
|
2439
2082
|
({
|
|
2440
2083
|
className,
|
|
2441
2084
|
variant = "stacked",
|
|
@@ -2450,7 +2093,7 @@ var AppShell = React16.forwardRef(
|
|
|
2450
2093
|
...props
|
|
2451
2094
|
}, ref) => {
|
|
2452
2095
|
if (variant === "stacked") {
|
|
2453
|
-
return /* @__PURE__ */
|
|
2096
|
+
return /* @__PURE__ */ jsxs17(
|
|
2454
2097
|
"div",
|
|
2455
2098
|
{
|
|
2456
2099
|
ref,
|
|
@@ -2458,13 +2101,13 @@ var AppShell = React16.forwardRef(
|
|
|
2458
2101
|
...props,
|
|
2459
2102
|
children: [
|
|
2460
2103
|
header,
|
|
2461
|
-
/* @__PURE__ */
|
|
2104
|
+
/* @__PURE__ */ jsx24("main", { className: "flex-1", children })
|
|
2462
2105
|
]
|
|
2463
2106
|
}
|
|
2464
2107
|
);
|
|
2465
2108
|
}
|
|
2466
2109
|
if (variant === "multi-column") {
|
|
2467
|
-
return /* @__PURE__ */
|
|
2110
|
+
return /* @__PURE__ */ jsxs17(
|
|
2468
2111
|
"div",
|
|
2469
2112
|
{
|
|
2470
2113
|
ref,
|
|
@@ -2474,7 +2117,7 @@ var AppShell = React16.forwardRef(
|
|
|
2474
2117
|
),
|
|
2475
2118
|
...props,
|
|
2476
2119
|
children: [
|
|
2477
|
-
sidebar && /* @__PURE__ */
|
|
2120
|
+
sidebar && /* @__PURE__ */ jsx24(
|
|
2478
2121
|
"aside",
|
|
2479
2122
|
{
|
|
2480
2123
|
className: cn(
|
|
@@ -2484,11 +2127,11 @@ var AppShell = React16.forwardRef(
|
|
|
2484
2127
|
children: sidebar
|
|
2485
2128
|
}
|
|
2486
2129
|
),
|
|
2487
|
-
/* @__PURE__ */
|
|
2130
|
+
/* @__PURE__ */ jsxs17("div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
2488
2131
|
header,
|
|
2489
|
-
/* @__PURE__ */
|
|
2490
|
-
/* @__PURE__ */
|
|
2491
|
-
detailPanel && /* @__PURE__ */
|
|
2132
|
+
/* @__PURE__ */ jsxs17("div", { className: "flex flex-1 flex-col lg:flex-row", children: [
|
|
2133
|
+
/* @__PURE__ */ jsx24("main", { className: "min-w-0 flex-1 overflow-y-auto", children }),
|
|
2134
|
+
detailPanel && /* @__PURE__ */ jsx24("aside", { className: "flex-shrink-0 border-t border-border bg-card lg:w-80 lg:border-l lg:border-t-0", children: detailPanel })
|
|
2492
2135
|
] })
|
|
2493
2136
|
] })
|
|
2494
2137
|
]
|
|
@@ -2496,7 +2139,7 @@ var AppShell = React16.forwardRef(
|
|
|
2496
2139
|
);
|
|
2497
2140
|
}
|
|
2498
2141
|
const left = sidebarPosition === "left";
|
|
2499
|
-
const column = sidebar && /* @__PURE__ */
|
|
2142
|
+
const column = sidebar && /* @__PURE__ */ jsx24(
|
|
2500
2143
|
"aside",
|
|
2501
2144
|
{
|
|
2502
2145
|
className: cn(
|
|
@@ -2507,7 +2150,7 @@ var AppShell = React16.forwardRef(
|
|
|
2507
2150
|
children: sidebar
|
|
2508
2151
|
}
|
|
2509
2152
|
);
|
|
2510
|
-
return /* @__PURE__ */
|
|
2153
|
+
return /* @__PURE__ */ jsxs17(
|
|
2511
2154
|
"div",
|
|
2512
2155
|
{
|
|
2513
2156
|
ref,
|
|
@@ -2515,19 +2158,20 @@ var AppShell = React16.forwardRef(
|
|
|
2515
2158
|
...props,
|
|
2516
2159
|
children: [
|
|
2517
2160
|
left && column,
|
|
2518
|
-
/* @__PURE__ */
|
|
2519
|
-
sidebar && /* @__PURE__ */
|
|
2161
|
+
/* @__PURE__ */ jsxs17("div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
2162
|
+
sidebar && /* @__PURE__ */ jsx24(
|
|
2520
2163
|
"div",
|
|
2521
2164
|
{
|
|
2522
2165
|
className: cn(
|
|
2523
2166
|
"flex items-center border-b border-border bg-card px-2 py-2 md:hidden",
|
|
2524
2167
|
!left && "justify-end"
|
|
2525
2168
|
),
|
|
2526
|
-
children: /* @__PURE__ */
|
|
2169
|
+
children: /* @__PURE__ */ jsx24(
|
|
2527
2170
|
NavDrawer,
|
|
2528
2171
|
{
|
|
2529
2172
|
label: navLabel,
|
|
2530
2173
|
side: left ? "left" : "right",
|
|
2174
|
+
closedFrom: "md",
|
|
2531
2175
|
defaultOpen: defaultNavOpen,
|
|
2532
2176
|
children: sidebar
|
|
2533
2177
|
}
|
|
@@ -2535,7 +2179,7 @@ var AppShell = React16.forwardRef(
|
|
|
2535
2179
|
}
|
|
2536
2180
|
),
|
|
2537
2181
|
header,
|
|
2538
|
-
/* @__PURE__ */
|
|
2182
|
+
/* @__PURE__ */ jsx24("main", { className: "min-w-0 flex-1 overflow-y-auto", children })
|
|
2539
2183
|
] }),
|
|
2540
2184
|
!left && column
|
|
2541
2185
|
]
|
|
@@ -2546,8 +2190,8 @@ var AppShell = React16.forwardRef(
|
|
|
2546
2190
|
AppShell.displayName = "AppShell";
|
|
2547
2191
|
|
|
2548
2192
|
// src/popover.tsx
|
|
2549
|
-
import * as
|
|
2550
|
-
import { Fragment as
|
|
2193
|
+
import * as React14 from "react";
|
|
2194
|
+
import { Fragment as Fragment3, jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2551
2195
|
var SIDE_CLASSES = {
|
|
2552
2196
|
top: "bottom-full mb-2",
|
|
2553
2197
|
bottom: "top-full mt-2",
|
|
@@ -2559,7 +2203,7 @@ var ALIGN_CLASSES = {
|
|
|
2559
2203
|
center: "left-1/2 -translate-x-1/2",
|
|
2560
2204
|
end: "right-0"
|
|
2561
2205
|
};
|
|
2562
|
-
var Popover =
|
|
2206
|
+
var Popover = React14.forwardRef(
|
|
2563
2207
|
({
|
|
2564
2208
|
className,
|
|
2565
2209
|
open,
|
|
@@ -2570,10 +2214,10 @@ var Popover = React17.forwardRef(
|
|
|
2570
2214
|
children,
|
|
2571
2215
|
...props
|
|
2572
2216
|
}, ref) => {
|
|
2573
|
-
const [internalOpen, setInternalOpen] =
|
|
2217
|
+
const [internalOpen, setInternalOpen] = React14.useState(false);
|
|
2574
2218
|
const isOpen = open ?? internalOpen;
|
|
2575
2219
|
const setOpen = onOpenChange ?? setInternalOpen;
|
|
2576
|
-
|
|
2220
|
+
React14.useEffect(() => {
|
|
2577
2221
|
if (!isOpen) return;
|
|
2578
2222
|
const handler = (e) => {
|
|
2579
2223
|
if (e.key === "Escape") setOpen(false);
|
|
@@ -2581,23 +2225,23 @@ var Popover = React17.forwardRef(
|
|
|
2581
2225
|
document.addEventListener("keydown", handler);
|
|
2582
2226
|
return () => document.removeEventListener("keydown", handler);
|
|
2583
2227
|
}, [isOpen, setOpen]);
|
|
2584
|
-
return /* @__PURE__ */
|
|
2228
|
+
return /* @__PURE__ */ jsxs18(
|
|
2585
2229
|
"div",
|
|
2586
2230
|
{
|
|
2587
2231
|
ref,
|
|
2588
2232
|
className: cn("relative inline-block", className),
|
|
2589
2233
|
...props,
|
|
2590
2234
|
children: [
|
|
2591
|
-
/* @__PURE__ */
|
|
2592
|
-
isOpen && /* @__PURE__ */
|
|
2593
|
-
/* @__PURE__ */
|
|
2235
|
+
/* @__PURE__ */ jsx25("div", { onClick: () => setOpen(!isOpen), children: trigger }),
|
|
2236
|
+
isOpen && /* @__PURE__ */ jsxs18(Fragment3, { children: [
|
|
2237
|
+
/* @__PURE__ */ jsx25(
|
|
2594
2238
|
"div",
|
|
2595
2239
|
{
|
|
2596
2240
|
className: "z-popover fixed inset-0",
|
|
2597
2241
|
onClick: () => setOpen(false)
|
|
2598
2242
|
}
|
|
2599
2243
|
),
|
|
2600
|
-
/* @__PURE__ */
|
|
2244
|
+
/* @__PURE__ */ jsx25(
|
|
2601
2245
|
"div",
|
|
2602
2246
|
{
|
|
2603
2247
|
className: cn(
|
|
@@ -2615,7 +2259,7 @@ var Popover = React17.forwardRef(
|
|
|
2615
2259
|
}
|
|
2616
2260
|
);
|
|
2617
2261
|
Popover.displayName = "Popover";
|
|
2618
|
-
var HoverCard =
|
|
2262
|
+
var HoverCard = React14.forwardRef(
|
|
2619
2263
|
({
|
|
2620
2264
|
className,
|
|
2621
2265
|
trigger,
|
|
@@ -2625,8 +2269,8 @@ var HoverCard = React17.forwardRef(
|
|
|
2625
2269
|
children,
|
|
2626
2270
|
...props
|
|
2627
2271
|
}, ref) => {
|
|
2628
|
-
const [open, setOpen] =
|
|
2629
|
-
const timeoutRef =
|
|
2272
|
+
const [open, setOpen] = React14.useState(false);
|
|
2273
|
+
const timeoutRef = React14.useRef();
|
|
2630
2274
|
const handleEnter = () => {
|
|
2631
2275
|
clearTimeout(timeoutRef.current);
|
|
2632
2276
|
timeoutRef.current = setTimeout(() => setOpen(true), delay);
|
|
@@ -2635,10 +2279,10 @@ var HoverCard = React17.forwardRef(
|
|
|
2635
2279
|
clearTimeout(timeoutRef.current);
|
|
2636
2280
|
timeoutRef.current = setTimeout(() => setOpen(false), 150);
|
|
2637
2281
|
};
|
|
2638
|
-
|
|
2282
|
+
React14.useEffect(() => {
|
|
2639
2283
|
return () => clearTimeout(timeoutRef.current);
|
|
2640
2284
|
}, []);
|
|
2641
|
-
return /* @__PURE__ */
|
|
2285
|
+
return /* @__PURE__ */ jsxs18(
|
|
2642
2286
|
"div",
|
|
2643
2287
|
{
|
|
2644
2288
|
ref,
|
|
@@ -2648,7 +2292,7 @@ var HoverCard = React17.forwardRef(
|
|
|
2648
2292
|
...props,
|
|
2649
2293
|
children: [
|
|
2650
2294
|
trigger,
|
|
2651
|
-
open && /* @__PURE__ */
|
|
2295
|
+
open && /* @__PURE__ */ jsx25(
|
|
2652
2296
|
"div",
|
|
2653
2297
|
{
|
|
2654
2298
|
className: cn(
|
|
@@ -2669,8 +2313,8 @@ var HoverCard = React17.forwardRef(
|
|
|
2669
2313
|
HoverCard.displayName = "HoverCard";
|
|
2670
2314
|
|
|
2671
2315
|
// src/calendar.tsx
|
|
2672
|
-
import * as
|
|
2673
|
-
import { Fragment as
|
|
2316
|
+
import * as React15 from "react";
|
|
2317
|
+
import { Fragment as Fragment4, jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2674
2318
|
function getDaysInMonth(year, month) {
|
|
2675
2319
|
return new Date(year, month + 1, 0).getDate();
|
|
2676
2320
|
}
|
|
@@ -2708,7 +2352,7 @@ var SIZE_CONFIG = {
|
|
|
2708
2352
|
dot: "h-1.5 w-1.5"
|
|
2709
2353
|
}
|
|
2710
2354
|
};
|
|
2711
|
-
var
|
|
2355
|
+
var Calendar = React15.forwardRef(
|
|
2712
2356
|
({
|
|
2713
2357
|
className,
|
|
2714
2358
|
value,
|
|
@@ -2724,16 +2368,16 @@ var Calendar2 = React18.forwardRef(
|
|
|
2724
2368
|
size = "md",
|
|
2725
2369
|
...props
|
|
2726
2370
|
}, ref) => {
|
|
2727
|
-
const today =
|
|
2371
|
+
const today = React15.useMemo(() => {
|
|
2728
2372
|
if (todayProp) return todayProp;
|
|
2729
2373
|
const now = Date.now();
|
|
2730
2374
|
const d = new Date(now);
|
|
2731
2375
|
return new Date(d.getFullYear(), d.getMonth(), d.getDate());
|
|
2732
2376
|
}, [todayProp]);
|
|
2733
2377
|
const initialDate = value ?? rangeStart ?? today;
|
|
2734
|
-
const [viewYear, setViewYear] =
|
|
2735
|
-
const [viewMonth, setViewMonth] =
|
|
2736
|
-
const [focusedDay, setFocusedDay] =
|
|
2378
|
+
const [viewYear, setViewYear] = React15.useState(initialDate.getFullYear());
|
|
2379
|
+
const [viewMonth, setViewMonth] = React15.useState(initialDate.getMonth());
|
|
2380
|
+
const [focusedDay, setFocusedDay] = React15.useState(null);
|
|
2737
2381
|
const daysInMonth = getDaysInMonth(viewYear, viewMonth);
|
|
2738
2382
|
const startDay = getStartDayOfWeek(viewYear, viewMonth);
|
|
2739
2383
|
const config = SIZE_CONFIG[size];
|
|
@@ -2867,7 +2511,7 @@ var Calendar2 = React18.forwardRef(
|
|
|
2867
2511
|
const cells = [];
|
|
2868
2512
|
for (let i = 0; i < startDay; i++) cells.push(null);
|
|
2869
2513
|
for (let d = 1; d <= daysInMonth; d++) cells.push(d);
|
|
2870
|
-
return /* @__PURE__ */
|
|
2514
|
+
return /* @__PURE__ */ jsxs19(
|
|
2871
2515
|
"div",
|
|
2872
2516
|
{
|
|
2873
2517
|
ref,
|
|
@@ -2882,8 +2526,8 @@ var Calendar2 = React18.forwardRef(
|
|
|
2882
2526
|
),
|
|
2883
2527
|
...props,
|
|
2884
2528
|
children: [
|
|
2885
|
-
/* @__PURE__ */
|
|
2886
|
-
/* @__PURE__ */
|
|
2529
|
+
/* @__PURE__ */ jsxs19("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
2530
|
+
/* @__PURE__ */ jsx26(
|
|
2887
2531
|
"button",
|
|
2888
2532
|
{
|
|
2889
2533
|
type: "button",
|
|
@@ -2894,7 +2538,7 @@ var Calendar2 = React18.forwardRef(
|
|
|
2894
2538
|
children: "\u2039"
|
|
2895
2539
|
}
|
|
2896
2540
|
),
|
|
2897
|
-
/* @__PURE__ */
|
|
2541
|
+
/* @__PURE__ */ jsx26(
|
|
2898
2542
|
"span",
|
|
2899
2543
|
{
|
|
2900
2544
|
className: "text-sm font-medium text-foreground",
|
|
@@ -2902,7 +2546,7 @@ var Calendar2 = React18.forwardRef(
|
|
|
2902
2546
|
children: formatMonth(viewYear, viewMonth)
|
|
2903
2547
|
}
|
|
2904
2548
|
),
|
|
2905
|
-
/* @__PURE__ */
|
|
2549
|
+
/* @__PURE__ */ jsx26(
|
|
2906
2550
|
"button",
|
|
2907
2551
|
{
|
|
2908
2552
|
type: "button",
|
|
@@ -2914,7 +2558,7 @@ var Calendar2 = React18.forwardRef(
|
|
|
2914
2558
|
}
|
|
2915
2559
|
)
|
|
2916
2560
|
] }),
|
|
2917
|
-
/* @__PURE__ */
|
|
2561
|
+
/* @__PURE__ */ jsx26("div", { role: "row", className: cn("grid grid-cols-7", config.gap), children: WEEKDAYS.map((day) => /* @__PURE__ */ jsx26(
|
|
2918
2562
|
"div",
|
|
2919
2563
|
{
|
|
2920
2564
|
role: "columnheader",
|
|
@@ -2926,9 +2570,9 @@ var Calendar2 = React18.forwardRef(
|
|
|
2926
2570
|
},
|
|
2927
2571
|
day
|
|
2928
2572
|
)) }),
|
|
2929
|
-
/* @__PURE__ */
|
|
2573
|
+
/* @__PURE__ */ jsx26("div", { className: cn("grid grid-cols-7", config.gap), children: cells.map((day, i) => {
|
|
2930
2574
|
if (day === null) {
|
|
2931
|
-
return /* @__PURE__ */
|
|
2575
|
+
return /* @__PURE__ */ jsx26("div", { className: config.cell }, `empty-${i}`);
|
|
2932
2576
|
}
|
|
2933
2577
|
const date = new Date(viewYear, viewMonth, day);
|
|
2934
2578
|
const disabled = isDisabled(day);
|
|
@@ -2951,7 +2595,7 @@ var Calendar2 = React18.forwardRef(
|
|
|
2951
2595
|
}
|
|
2952
2596
|
const isToday = isSameDay(date, today);
|
|
2953
2597
|
const eventDot = hasEvent(day);
|
|
2954
|
-
return /* @__PURE__ */
|
|
2598
|
+
return /* @__PURE__ */ jsxs19(
|
|
2955
2599
|
"button",
|
|
2956
2600
|
{
|
|
2957
2601
|
type: "button",
|
|
@@ -2970,7 +2614,7 @@ var Calendar2 = React18.forwardRef(
|
|
|
2970
2614
|
),
|
|
2971
2615
|
children: [
|
|
2972
2616
|
day,
|
|
2973
|
-
eventDot && /* @__PURE__ */
|
|
2617
|
+
eventDot && /* @__PURE__ */ jsx26(
|
|
2974
2618
|
"span",
|
|
2975
2619
|
{
|
|
2976
2620
|
className: cn(
|
|
@@ -2989,8 +2633,8 @@ var Calendar2 = React18.forwardRef(
|
|
|
2989
2633
|
);
|
|
2990
2634
|
}
|
|
2991
2635
|
);
|
|
2992
|
-
|
|
2993
|
-
var DatePicker =
|
|
2636
|
+
Calendar.displayName = "Calendar";
|
|
2637
|
+
var DatePicker = React15.forwardRef(
|
|
2994
2638
|
({
|
|
2995
2639
|
className,
|
|
2996
2640
|
variant = "single",
|
|
@@ -3009,7 +2653,7 @@ var DatePicker = React18.forwardRef(
|
|
|
3009
2653
|
disabled,
|
|
3010
2654
|
...props
|
|
3011
2655
|
}, ref) => {
|
|
3012
|
-
const [internalOpen, setInternalOpen] =
|
|
2656
|
+
const [internalOpen, setInternalOpen] = React15.useState(false);
|
|
3013
2657
|
const isOpen = controlledOpen ?? internalOpen;
|
|
3014
2658
|
const setOpen = onOpenChange ?? setInternalOpen;
|
|
3015
2659
|
const defaultPlaceholder = variant === "range" ? "Pick a date range" : "Pick a date";
|
|
@@ -3033,7 +2677,7 @@ var DatePicker = React18.forwardRef(
|
|
|
3033
2677
|
} else if (variant === "range" && rangeStart) {
|
|
3034
2678
|
displayText = rangeEnd ? `${formatDateForInput(rangeStart)} \u2013 ${formatDateForInput(rangeEnd)}` : formatDateForInput(rangeStart);
|
|
3035
2679
|
}
|
|
3036
|
-
return /* @__PURE__ */
|
|
2680
|
+
return /* @__PURE__ */ jsxs19(
|
|
3037
2681
|
"div",
|
|
3038
2682
|
{
|
|
3039
2683
|
ref,
|
|
@@ -3041,7 +2685,7 @@ var DatePicker = React18.forwardRef(
|
|
|
3041
2685
|
onKeyDown: handleKeyDown,
|
|
3042
2686
|
...props,
|
|
3043
2687
|
children: [
|
|
3044
|
-
/* @__PURE__ */
|
|
2688
|
+
/* @__PURE__ */ jsxs19(
|
|
3045
2689
|
"button",
|
|
3046
2690
|
{
|
|
3047
2691
|
type: "button",
|
|
@@ -3054,22 +2698,22 @@ var DatePicker = React18.forwardRef(
|
|
|
3054
2698
|
displayText ? "text-foreground" : "text-muted-foreground"
|
|
3055
2699
|
),
|
|
3056
2700
|
children: [
|
|
3057
|
-
/* @__PURE__ */
|
|
3058
|
-
/* @__PURE__ */
|
|
3059
|
-
/* @__PURE__ */
|
|
2701
|
+
/* @__PURE__ */ jsx26("span", { className: "text-muted-foreground", "aria-hidden": "true", children: "\u{1F4C5}" }),
|
|
2702
|
+
/* @__PURE__ */ jsx26("span", { className: "flex-1 text-left", children: displayText ?? placeholder ?? defaultPlaceholder }),
|
|
2703
|
+
/* @__PURE__ */ jsx26("span", { className: "text-muted-foreground", "aria-hidden": "true", children: "\u25BE" })
|
|
3060
2704
|
]
|
|
3061
2705
|
}
|
|
3062
2706
|
),
|
|
3063
|
-
isOpen && /* @__PURE__ */
|
|
3064
|
-
/* @__PURE__ */
|
|
2707
|
+
isOpen && /* @__PURE__ */ jsxs19(Fragment4, { children: [
|
|
2708
|
+
/* @__PURE__ */ jsx26(
|
|
3065
2709
|
"div",
|
|
3066
2710
|
{
|
|
3067
2711
|
className: "z-popover fixed inset-0",
|
|
3068
2712
|
onClick: () => setOpen(false)
|
|
3069
2713
|
}
|
|
3070
2714
|
),
|
|
3071
|
-
/* @__PURE__ */
|
|
3072
|
-
|
|
2715
|
+
/* @__PURE__ */ jsx26("div", { className: "z-popover absolute left-0 top-full mt-1", children: /* @__PURE__ */ jsx26(
|
|
2716
|
+
Calendar,
|
|
3073
2717
|
{
|
|
3074
2718
|
selectionMode: variant,
|
|
3075
2719
|
value: variant === "single" ? value : void 0,
|
|
@@ -3092,9 +2736,9 @@ var DatePicker = React18.forwardRef(
|
|
|
3092
2736
|
DatePicker.displayName = "DatePicker";
|
|
3093
2737
|
|
|
3094
2738
|
// src/navbar.tsx
|
|
3095
|
-
import * as
|
|
3096
|
-
import { jsx as
|
|
3097
|
-
var Navbar =
|
|
2739
|
+
import * as React16 from "react";
|
|
2740
|
+
import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2741
|
+
var Navbar = React16.forwardRef(
|
|
3098
2742
|
({
|
|
3099
2743
|
className,
|
|
3100
2744
|
variant = "simple",
|
|
@@ -3105,46 +2749,117 @@ var Navbar = React19.forwardRef(
|
|
|
3105
2749
|
secondaryNav,
|
|
3106
2750
|
children,
|
|
3107
2751
|
...props
|
|
3108
|
-
}, ref) =>
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
2752
|
+
}, ref) => {
|
|
2753
|
+
const hasLinks = React16.Children.toArray(children).length > 0;
|
|
2754
|
+
const hasSearch = variant === "withSearch" && Boolean(search);
|
|
2755
|
+
const folds = Boolean(actions) && (hasLinks || hasSearch);
|
|
2756
|
+
const filled = hasSearch || variant === "centered" && hasLinks;
|
|
2757
|
+
return /* @__PURE__ */ jsxs20(
|
|
2758
|
+
"header",
|
|
2759
|
+
{
|
|
2760
|
+
ref,
|
|
2761
|
+
className: cn(
|
|
2762
|
+
"border-b",
|
|
2763
|
+
transparent ? "border-transparent bg-transparent" : "border-border bg-card",
|
|
2764
|
+
className
|
|
2765
|
+
),
|
|
2766
|
+
...props,
|
|
2767
|
+
children: [
|
|
2768
|
+
/* @__PURE__ */ jsxs20(
|
|
2769
|
+
"div",
|
|
3123
2770
|
{
|
|
3124
2771
|
className: cn(
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
2772
|
+
"mx-auto flex min-h-14 max-w-content-xl items-center gap-x-4 gap-y-2 py-2 md:h-14 md:py-0",
|
|
2773
|
+
CONTENT_GUTTER,
|
|
2774
|
+
// nothing here can scroll or fold: the actions take their own row
|
|
2775
|
+
!hasLinks && !folds && "flex-wrap md:flex-nowrap"
|
|
3129
2776
|
),
|
|
3130
2777
|
children: [
|
|
3131
|
-
|
|
3132
|
-
|
|
2778
|
+
logo && /* @__PURE__ */ jsx27(
|
|
2779
|
+
"div",
|
|
2780
|
+
{
|
|
2781
|
+
className: cn(
|
|
2782
|
+
hasLinks && !folds ? "flex-shrink-0" : "min-w-0 md:flex-shrink-0"
|
|
2783
|
+
),
|
|
2784
|
+
children: logo
|
|
2785
|
+
}
|
|
2786
|
+
),
|
|
2787
|
+
hasLinks && /* @__PURE__ */ jsxs20(
|
|
2788
|
+
"nav",
|
|
2789
|
+
{
|
|
2790
|
+
className: cn(
|
|
2791
|
+
// W0 (#5823): the links scroll on a narrow screen, never push
|
|
2792
|
+
// the bar off the page
|
|
2793
|
+
folds ? "hidden md:flex" : "flex",
|
|
2794
|
+
"min-w-0 items-center gap-4 overflow-x-auto",
|
|
2795
|
+
variant === "centered" && "flex-1 [&>:first-child]:ml-auto [&>:nth-last-child(2)]:mr-auto"
|
|
2796
|
+
),
|
|
2797
|
+
children: [
|
|
2798
|
+
children,
|
|
2799
|
+
/* @__PURE__ */ jsx27(ScrollHintXMark, {})
|
|
2800
|
+
]
|
|
2801
|
+
}
|
|
2802
|
+
),
|
|
2803
|
+
hasSearch && /* @__PURE__ */ jsx27(
|
|
2804
|
+
"div",
|
|
2805
|
+
{
|
|
2806
|
+
className: cn(
|
|
2807
|
+
// space from its neighbours, never from the row's own edge
|
|
2808
|
+
"min-w-0 flex-1 px-4 first:pl-0 last:pr-0 md:min-w-48",
|
|
2809
|
+
folds && "hidden md:block"
|
|
2810
|
+
),
|
|
2811
|
+
children: search
|
|
2812
|
+
}
|
|
2813
|
+
),
|
|
2814
|
+
!filled && hasLinks && /* @__PURE__ */ jsx27("div", { className: "flex-1" }),
|
|
2815
|
+
actions && /* @__PURE__ */ jsx27(
|
|
2816
|
+
"div",
|
|
2817
|
+
{
|
|
2818
|
+
className: cn(
|
|
2819
|
+
folds ? "hidden md:flex" : "flex",
|
|
2820
|
+
"ml-auto min-w-0 flex-wrap items-center justify-end gap-2 md:shrink-0 md:flex-nowrap"
|
|
2821
|
+
),
|
|
2822
|
+
children: actions
|
|
2823
|
+
}
|
|
2824
|
+
),
|
|
2825
|
+
folds && /* @__PURE__ */ jsx27(
|
|
2826
|
+
NavbarMenu,
|
|
2827
|
+
{
|
|
2828
|
+
search: hasSearch ? search : void 0,
|
|
2829
|
+
links: hasLinks ? children : void 0,
|
|
2830
|
+
actions
|
|
2831
|
+
}
|
|
2832
|
+
)
|
|
3133
2833
|
]
|
|
3134
2834
|
}
|
|
3135
2835
|
),
|
|
3136
|
-
variant === "
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
2836
|
+
variant === "twoLevel" && secondaryNav && /* @__PURE__ */ jsx27(
|
|
2837
|
+
"div",
|
|
2838
|
+
{
|
|
2839
|
+
className: cn(
|
|
2840
|
+
"border-t",
|
|
2841
|
+
transparent ? "border-transparent" : "border-border"
|
|
2842
|
+
),
|
|
2843
|
+
children: /* @__PURE__ */ jsx27(
|
|
2844
|
+
"div",
|
|
2845
|
+
{
|
|
2846
|
+
className: cn("mx-auto max-w-content-xl py-2", CONTENT_GUTTER),
|
|
2847
|
+
children: /* @__PURE__ */ jsxs20("div", { className: "flex min-w-0 items-center gap-4 overflow-x-auto", children: [
|
|
2848
|
+
secondaryNav,
|
|
2849
|
+
/* @__PURE__ */ jsx27(ScrollHintXMark, {})
|
|
2850
|
+
] })
|
|
2851
|
+
}
|
|
2852
|
+
)
|
|
2853
|
+
}
|
|
2854
|
+
)
|
|
2855
|
+
]
|
|
2856
|
+
}
|
|
2857
|
+
);
|
|
2858
|
+
}
|
|
3144
2859
|
);
|
|
3145
2860
|
Navbar.displayName = "Navbar";
|
|
3146
|
-
var NavbarLink =
|
|
3147
|
-
({ className, active, ...props }, ref) => /* @__PURE__ */
|
|
2861
|
+
var NavbarLink = React16.forwardRef(
|
|
2862
|
+
({ className, active, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
3148
2863
|
"a",
|
|
3149
2864
|
{
|
|
3150
2865
|
ref,
|
|
@@ -3160,25 +2875,10 @@ var NavbarLink = React19.forwardRef(
|
|
|
3160
2875
|
NavbarLink.displayName = "NavbarLink";
|
|
3161
2876
|
|
|
3162
2877
|
// src/card-variants.tsx
|
|
3163
|
-
import * as
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3167
|
-
var EMPTY_VALUE_GLYPH = "\u2014";
|
|
3168
|
-
function isEmptyValue(value) {
|
|
3169
|
-
return value === null || value === void 0 || value === false || typeof value === "string" && value.trim() === "";
|
|
3170
|
-
}
|
|
3171
|
-
function EmptyValue({ className }) {
|
|
3172
|
-
return /* @__PURE__ */ jsxs24("span", { "data-empty-value": true, className: cn("text-muted-foreground", className), children: [
|
|
3173
|
-
/* @__PURE__ */ jsx33("span", { "aria-hidden": "true", children: EMPTY_VALUE_GLYPH }),
|
|
3174
|
-
/* @__PURE__ */ jsx33("span", { className: "sr-only", children: "Not set" })
|
|
3175
|
-
] });
|
|
3176
|
-
}
|
|
3177
|
-
|
|
3178
|
-
// src/card-variants.tsx
|
|
3179
|
-
import { jsx as jsx34, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3180
|
-
var HorizontalCard = React20.forwardRef(
|
|
3181
|
-
({ className, media, hoverable, children, ...props }, ref) => /* @__PURE__ */ jsxs25(
|
|
2878
|
+
import * as React17 from "react";
|
|
2879
|
+
import { jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2880
|
+
var HorizontalCard = React17.forwardRef(
|
|
2881
|
+
({ className, media, hoverable, children, ...props }, ref) => /* @__PURE__ */ jsxs21(
|
|
3182
2882
|
"div",
|
|
3183
2883
|
{
|
|
3184
2884
|
ref,
|
|
@@ -3189,15 +2889,15 @@ var HorizontalCard = React20.forwardRef(
|
|
|
3189
2889
|
),
|
|
3190
2890
|
...props,
|
|
3191
2891
|
children: [
|
|
3192
|
-
media && /* @__PURE__ */
|
|
3193
|
-
/* @__PURE__ */
|
|
2892
|
+
media && /* @__PURE__ */ jsx28("div", { className: "flex-shrink-0", children: media }),
|
|
2893
|
+
/* @__PURE__ */ jsx28("div", { className: "flex-1 p-4", children })
|
|
3194
2894
|
]
|
|
3195
2895
|
}
|
|
3196
2896
|
)
|
|
3197
2897
|
);
|
|
3198
2898
|
HorizontalCard.displayName = "HorizontalCard";
|
|
3199
|
-
var ImageCard =
|
|
3200
|
-
({ className, imageSrc, imageAlt, hoverable, children, ...props }, ref) => /* @__PURE__ */
|
|
2899
|
+
var ImageCard = React17.forwardRef(
|
|
2900
|
+
({ className, imageSrc, imageAlt, hoverable, children, ...props }, ref) => /* @__PURE__ */ jsxs21(
|
|
3201
2901
|
"div",
|
|
3202
2902
|
{
|
|
3203
2903
|
ref,
|
|
@@ -3208,7 +2908,7 @@ var ImageCard = React20.forwardRef(
|
|
|
3208
2908
|
),
|
|
3209
2909
|
...props,
|
|
3210
2910
|
children: [
|
|
3211
|
-
imageSrc && /* @__PURE__ */
|
|
2911
|
+
imageSrc && /* @__PURE__ */ jsx28("div", { className: "aspect-video w-full bg-muted", children: /* @__PURE__ */ jsx28(
|
|
3212
2912
|
"img",
|
|
3213
2913
|
{
|
|
3214
2914
|
src: imageSrc,
|
|
@@ -3216,13 +2916,13 @@ var ImageCard = React20.forwardRef(
|
|
|
3216
2916
|
className: "h-full w-full object-cover"
|
|
3217
2917
|
}
|
|
3218
2918
|
) }),
|
|
3219
|
-
/* @__PURE__ */
|
|
2919
|
+
/* @__PURE__ */ jsx28("div", { className: "p-4", children })
|
|
3220
2920
|
]
|
|
3221
2921
|
}
|
|
3222
2922
|
)
|
|
3223
2923
|
);
|
|
3224
2924
|
ImageCard.displayName = "ImageCard";
|
|
3225
|
-
var StatCardExtended =
|
|
2925
|
+
var StatCardExtended = React17.forwardRef(({ className, label, value, trend, icon, ...props }, ref) => /* @__PURE__ */ jsxs21(
|
|
3226
2926
|
"div",
|
|
3227
2927
|
{
|
|
3228
2928
|
ref,
|
|
@@ -3232,12 +2932,12 @@ var StatCardExtended = React20.forwardRef(({ className, label, value, trend, ico
|
|
|
3232
2932
|
),
|
|
3233
2933
|
...props,
|
|
3234
2934
|
children: [
|
|
3235
|
-
/* @__PURE__ */
|
|
3236
|
-
/* @__PURE__ */
|
|
3237
|
-
icon && /* @__PURE__ */
|
|
2935
|
+
/* @__PURE__ */ jsxs21("div", { className: "flex items-center justify-between", children: [
|
|
2936
|
+
/* @__PURE__ */ jsx28("span", { className: "text-sm text-muted-foreground", children: label }),
|
|
2937
|
+
icon && /* @__PURE__ */ jsx28("div", { className: "text-muted-foreground", children: icon })
|
|
3238
2938
|
] }),
|
|
3239
|
-
/* @__PURE__ */
|
|
3240
|
-
trend && /* @__PURE__ */
|
|
2939
|
+
/* @__PURE__ */ jsx28("p", { className: "mt-2 text-3xl font-bold text-foreground", children: isEmptyValue(value) ? /* @__PURE__ */ jsx28(EmptyValue, {}) : value }),
|
|
2940
|
+
trend && /* @__PURE__ */ jsxs21(
|
|
3241
2941
|
"p",
|
|
3242
2942
|
{
|
|
3243
2943
|
className: cn(
|
|
@@ -3257,8 +2957,8 @@ var StatCardExtended = React20.forwardRef(({ className, label, value, trend, ico
|
|
|
3257
2957
|
}
|
|
3258
2958
|
));
|
|
3259
2959
|
StatCardExtended.displayName = "StatCardExtended";
|
|
3260
|
-
var ActionCard =
|
|
3261
|
-
({ className, title, description, actions, children, ...props }, ref) => /* @__PURE__ */
|
|
2960
|
+
var ActionCard = React17.forwardRef(
|
|
2961
|
+
({ className, title, description, actions, children, ...props }, ref) => /* @__PURE__ */ jsxs21(
|
|
3262
2962
|
"div",
|
|
3263
2963
|
{
|
|
3264
2964
|
ref,
|
|
@@ -3268,12 +2968,12 @@ var ActionCard = React20.forwardRef(
|
|
|
3268
2968
|
),
|
|
3269
2969
|
...props,
|
|
3270
2970
|
children: [
|
|
3271
|
-
/* @__PURE__ */
|
|
3272
|
-
/* @__PURE__ */
|
|
3273
|
-
description && /* @__PURE__ */
|
|
2971
|
+
/* @__PURE__ */ jsxs21("div", { className: "p-6", children: [
|
|
2972
|
+
/* @__PURE__ */ jsx28("h3", { className: "font-semibold text-foreground", children: title }),
|
|
2973
|
+
description && /* @__PURE__ */ jsx28("p", { className: "mt-1 text-sm text-muted-foreground", children: description }),
|
|
3274
2974
|
children
|
|
3275
2975
|
] }),
|
|
3276
|
-
actions && /* @__PURE__ */
|
|
2976
|
+
actions && /* @__PURE__ */ jsx28("div", { className: "flex items-center gap-2 border-t border-border px-6 py-4", children: actions })
|
|
3277
2977
|
]
|
|
3278
2978
|
}
|
|
3279
2979
|
)
|
|
@@ -3281,9 +2981,8 @@ var ActionCard = React20.forwardRef(
|
|
|
3281
2981
|
ActionCard.displayName = "ActionCard";
|
|
3282
2982
|
|
|
3283
2983
|
// src/modal-dialog.tsx
|
|
3284
|
-
import * as
|
|
3285
|
-
import {
|
|
3286
|
-
import { Fragment as Fragment7, jsx as jsx35, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2984
|
+
import * as React18 from "react";
|
|
2985
|
+
import { Fragment as Fragment5, jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3287
2986
|
var SIZE_CLASSES2 = {
|
|
3288
2987
|
sm: "max-w-sm",
|
|
3289
2988
|
md: "max-w-md",
|
|
@@ -3291,20 +2990,14 @@ var SIZE_CLASSES2 = {
|
|
|
3291
2990
|
xl: "max-w-xl",
|
|
3292
2991
|
fullscreen: "max-w-full mx-4 my-4 h-[calc(100vh-2rem)]"
|
|
3293
2992
|
};
|
|
3294
|
-
var ModalDialog =
|
|
2993
|
+
var ModalDialog = React18.forwardRef(
|
|
3295
2994
|
({ className, open, onClose, size = "md", children, ...props }, ref) => {
|
|
3296
|
-
|
|
3297
|
-
|
|
3298
|
-
const handler = (e) => {
|
|
3299
|
-
if (e.key === "Escape") onClose?.();
|
|
3300
|
-
};
|
|
3301
|
-
document.addEventListener("keydown", handler);
|
|
3302
|
-
return () => document.removeEventListener("keydown", handler);
|
|
3303
|
-
}, [open, onClose]);
|
|
2995
|
+
const [panel, setPanel] = usePanelRef(ref);
|
|
2996
|
+
const place = useModalSurface(Boolean(open), panel, onClose);
|
|
3304
2997
|
if (!open) return null;
|
|
3305
|
-
return
|
|
3306
|
-
/* @__PURE__ */
|
|
3307
|
-
/* @__PURE__ */
|
|
2998
|
+
return place(
|
|
2999
|
+
/* @__PURE__ */ jsxs22(Fragment5, { children: [
|
|
3000
|
+
/* @__PURE__ */ jsx29(
|
|
3308
3001
|
"div",
|
|
3309
3002
|
{
|
|
3310
3003
|
className: "z-overlay fixed inset-0 bg-foreground/60 transition-opacity",
|
|
@@ -3312,10 +3005,10 @@ var ModalDialog = React21.forwardRef(
|
|
|
3312
3005
|
"aria-hidden": "true"
|
|
3313
3006
|
}
|
|
3314
3007
|
),
|
|
3315
|
-
/* @__PURE__ */
|
|
3008
|
+
/* @__PURE__ */ jsx29("div", { className: "z-modal fixed inset-0 flex items-center justify-center p-4", children: /* @__PURE__ */ jsx29(
|
|
3316
3009
|
"div",
|
|
3317
3010
|
{
|
|
3318
|
-
ref,
|
|
3011
|
+
ref: setPanel,
|
|
3319
3012
|
role: "dialog",
|
|
3320
3013
|
"aria-modal": "true",
|
|
3321
3014
|
className: cn(
|
|
@@ -3328,13 +3021,12 @@ var ModalDialog = React21.forwardRef(
|
|
|
3328
3021
|
children
|
|
3329
3022
|
}
|
|
3330
3023
|
) })
|
|
3331
|
-
] })
|
|
3332
|
-
document.body
|
|
3024
|
+
] })
|
|
3333
3025
|
);
|
|
3334
3026
|
}
|
|
3335
3027
|
);
|
|
3336
3028
|
ModalDialog.displayName = "ModalDialog";
|
|
3337
|
-
var ModalHeader =
|
|
3029
|
+
var ModalHeader = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
3338
3030
|
"div",
|
|
3339
3031
|
{
|
|
3340
3032
|
ref,
|
|
@@ -3343,9 +3035,9 @@ var ModalHeader = React21.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3343
3035
|
}
|
|
3344
3036
|
));
|
|
3345
3037
|
ModalHeader.displayName = "ModalHeader";
|
|
3346
|
-
var ModalBody =
|
|
3038
|
+
var ModalBody = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29("div", { ref, className: cn("px-6 py-4", className), ...props }));
|
|
3347
3039
|
ModalBody.displayName = "ModalBody";
|
|
3348
|
-
var ModalFooter =
|
|
3040
|
+
var ModalFooter = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
3349
3041
|
"div",
|
|
3350
3042
|
{
|
|
3351
3043
|
ref,
|
|
@@ -3359,9 +3051,8 @@ var ModalFooter = React21.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3359
3051
|
ModalFooter.displayName = "ModalFooter";
|
|
3360
3052
|
|
|
3361
3053
|
// src/drawer.tsx
|
|
3362
|
-
import * as
|
|
3363
|
-
import {
|
|
3364
|
-
import { Fragment as Fragment8, jsx as jsx36, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
3054
|
+
import * as React19 from "react";
|
|
3055
|
+
import { Fragment as Fragment6, jsx as jsx30, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3365
3056
|
var SIZE_CLASSES3 = {
|
|
3366
3057
|
left: { sm: "w-64", md: "w-80", lg: "w-96" },
|
|
3367
3058
|
right: { sm: "w-64", md: "w-80", lg: "w-96" },
|
|
@@ -3372,7 +3063,7 @@ var POSITION_CLASSES = {
|
|
|
3372
3063
|
right: "inset-y-0 right-0",
|
|
3373
3064
|
bottom: "inset-x-0 bottom-0"
|
|
3374
3065
|
};
|
|
3375
|
-
var Drawer =
|
|
3066
|
+
var Drawer = React19.forwardRef(
|
|
3376
3067
|
({
|
|
3377
3068
|
className,
|
|
3378
3069
|
open,
|
|
@@ -3382,18 +3073,12 @@ var Drawer = React22.forwardRef(
|
|
|
3382
3073
|
children,
|
|
3383
3074
|
...props
|
|
3384
3075
|
}, ref) => {
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
const handler = (e) => {
|
|
3388
|
-
if (e.key === "Escape") onClose?.();
|
|
3389
|
-
};
|
|
3390
|
-
document.addEventListener("keydown", handler);
|
|
3391
|
-
return () => document.removeEventListener("keydown", handler);
|
|
3392
|
-
}, [open, onClose]);
|
|
3076
|
+
const [panel, setPanel] = usePanelRef(ref);
|
|
3077
|
+
const place = useModalSurface(Boolean(open), panel, onClose);
|
|
3393
3078
|
if (!open) return null;
|
|
3394
|
-
return
|
|
3395
|
-
/* @__PURE__ */
|
|
3396
|
-
/* @__PURE__ */
|
|
3079
|
+
return place(
|
|
3080
|
+
/* @__PURE__ */ jsxs23(Fragment6, { children: [
|
|
3081
|
+
/* @__PURE__ */ jsx30(
|
|
3397
3082
|
"div",
|
|
3398
3083
|
{
|
|
3399
3084
|
className: "z-overlay fixed inset-0 bg-foreground/60 transition-opacity",
|
|
@@ -3401,10 +3086,10 @@ var Drawer = React22.forwardRef(
|
|
|
3401
3086
|
"aria-hidden": "true"
|
|
3402
3087
|
}
|
|
3403
3088
|
),
|
|
3404
|
-
/* @__PURE__ */
|
|
3089
|
+
/* @__PURE__ */ jsx30(
|
|
3405
3090
|
"div",
|
|
3406
3091
|
{
|
|
3407
|
-
ref,
|
|
3092
|
+
ref: setPanel,
|
|
3408
3093
|
role: "dialog",
|
|
3409
3094
|
"aria-modal": "true",
|
|
3410
3095
|
className: cn(
|
|
@@ -3420,13 +3105,12 @@ var Drawer = React22.forwardRef(
|
|
|
3420
3105
|
children
|
|
3421
3106
|
}
|
|
3422
3107
|
)
|
|
3423
|
-
] })
|
|
3424
|
-
document.body
|
|
3108
|
+
] })
|
|
3425
3109
|
);
|
|
3426
3110
|
}
|
|
3427
3111
|
);
|
|
3428
3112
|
Drawer.displayName = "Drawer";
|
|
3429
|
-
var DrawerHeader =
|
|
3113
|
+
var DrawerHeader = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
3430
3114
|
"div",
|
|
3431
3115
|
{
|
|
3432
3116
|
ref,
|
|
@@ -3435,7 +3119,7 @@ var DrawerHeader = React22.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
3435
3119
|
}
|
|
3436
3120
|
));
|
|
3437
3121
|
DrawerHeader.displayName = "DrawerHeader";
|
|
3438
|
-
var DrawerBody =
|
|
3122
|
+
var DrawerBody = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
3439
3123
|
"div",
|
|
3440
3124
|
{
|
|
3441
3125
|
ref,
|
|
@@ -3444,7 +3128,7 @@ var DrawerBody = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
3444
3128
|
}
|
|
3445
3129
|
));
|
|
3446
3130
|
DrawerBody.displayName = "DrawerBody";
|
|
3447
|
-
var DrawerFooter =
|
|
3131
|
+
var DrawerFooter = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
3448
3132
|
"div",
|
|
3449
3133
|
{
|
|
3450
3134
|
ref,
|
|
@@ -3458,10 +3142,10 @@ var DrawerFooter = React22.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
3458
3142
|
DrawerFooter.displayName = "DrawerFooter";
|
|
3459
3143
|
|
|
3460
3144
|
// src/form-layout.tsx
|
|
3461
|
-
import * as
|
|
3462
|
-
import { jsx as
|
|
3463
|
-
var FormLayout =
|
|
3464
|
-
({ className, layout = "stacked", ...props }, ref) => /* @__PURE__ */
|
|
3145
|
+
import * as React20 from "react";
|
|
3146
|
+
import { jsx as jsx31, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3147
|
+
var FormLayout = React20.forwardRef(
|
|
3148
|
+
({ className, layout = "stacked", ...props }, ref) => /* @__PURE__ */ jsx31(
|
|
3465
3149
|
"form",
|
|
3466
3150
|
{
|
|
3467
3151
|
ref,
|
|
@@ -3476,27 +3160,27 @@ var FormLayout = React23.forwardRef(
|
|
|
3476
3160
|
)
|
|
3477
3161
|
);
|
|
3478
3162
|
FormLayout.displayName = "FormLayout";
|
|
3479
|
-
var FormLayoutSection =
|
|
3163
|
+
var FormLayoutSection = React20.forwardRef(({ className, title, description, children, ...props }, ref) => /* @__PURE__ */ jsxs24(
|
|
3480
3164
|
"div",
|
|
3481
3165
|
{
|
|
3482
3166
|
ref,
|
|
3483
3167
|
className: cn("border-b border-border pb-6", className),
|
|
3484
3168
|
...props,
|
|
3485
3169
|
children: [
|
|
3486
|
-
(title || description) && /* @__PURE__ */
|
|
3487
|
-
title && /* @__PURE__ */
|
|
3488
|
-
description && /* @__PURE__ */
|
|
3170
|
+
(title || description) && /* @__PURE__ */ jsxs24("div", { className: "mb-4", children: [
|
|
3171
|
+
title && /* @__PURE__ */ jsx31("h3", { className: "text-base font-semibold text-foreground", children: title }),
|
|
3172
|
+
description && /* @__PURE__ */ jsx31("p", { className: "mt-1 text-sm text-muted-foreground", children: description })
|
|
3489
3173
|
] }),
|
|
3490
|
-
/* @__PURE__ */
|
|
3174
|
+
/* @__PURE__ */ jsx31("div", { className: "space-y-4", children })
|
|
3491
3175
|
]
|
|
3492
3176
|
}
|
|
3493
3177
|
));
|
|
3494
3178
|
FormLayoutSection.displayName = "FormLayoutSection";
|
|
3495
3179
|
|
|
3496
3180
|
// src/input-group.tsx
|
|
3497
|
-
import * as
|
|
3498
|
-
import { jsx as
|
|
3499
|
-
var InputGroup =
|
|
3181
|
+
import * as React21 from "react";
|
|
3182
|
+
import { jsx as jsx32, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3183
|
+
var InputGroup = React21.forwardRef(
|
|
3500
3184
|
({
|
|
3501
3185
|
className,
|
|
3502
3186
|
addon = "prefix",
|
|
@@ -3504,15 +3188,15 @@ var InputGroup = React24.forwardRef(
|
|
|
3504
3188
|
suffixContent,
|
|
3505
3189
|
children,
|
|
3506
3190
|
...props
|
|
3507
|
-
}, ref) => /* @__PURE__ */
|
|
3191
|
+
}, ref) => /* @__PURE__ */ jsxs25(
|
|
3508
3192
|
"div",
|
|
3509
3193
|
{
|
|
3510
3194
|
ref,
|
|
3511
3195
|
className: cn("flex rounded-md shadow-sm", className),
|
|
3512
3196
|
...props,
|
|
3513
3197
|
children: [
|
|
3514
|
-
(addon === "prefix" || addon === "both") && addonContent && /* @__PURE__ */
|
|
3515
|
-
/* @__PURE__ */
|
|
3198
|
+
(addon === "prefix" || addon === "both") && addonContent && /* @__PURE__ */ jsx32("span", { className: "inline-flex items-center rounded-l-md border border-r-0 border-input bg-muted px-3 text-sm text-muted-foreground", children: addonContent }),
|
|
3199
|
+
/* @__PURE__ */ jsx32(
|
|
3516
3200
|
"div",
|
|
3517
3201
|
{
|
|
3518
3202
|
className: cn(
|
|
@@ -3522,7 +3206,7 @@ var InputGroup = React24.forwardRef(
|
|
|
3522
3206
|
children
|
|
3523
3207
|
}
|
|
3524
3208
|
),
|
|
3525
|
-
(addon === "suffix" || addon === "both") && (suffixContent || addonContent) && /* @__PURE__ */
|
|
3209
|
+
(addon === "suffix" || addon === "both") && (suffixContent || addonContent) && /* @__PURE__ */ jsx32("span", { className: "inline-flex items-center rounded-r-md border border-l-0 border-input bg-muted px-3 text-sm text-muted-foreground", children: suffixContent || addonContent })
|
|
3526
3210
|
]
|
|
3527
3211
|
}
|
|
3528
3212
|
)
|
|
@@ -3530,9 +3214,9 @@ var InputGroup = React24.forwardRef(
|
|
|
3530
3214
|
InputGroup.displayName = "InputGroup";
|
|
3531
3215
|
|
|
3532
3216
|
// src/radio-group.tsx
|
|
3533
|
-
import * as
|
|
3534
|
-
import { jsx as
|
|
3535
|
-
var RadioGroup =
|
|
3217
|
+
import * as React22 from "react";
|
|
3218
|
+
import { jsx as jsx33, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
3219
|
+
var RadioGroup = React22.forwardRef(
|
|
3536
3220
|
({
|
|
3537
3221
|
className,
|
|
3538
3222
|
options,
|
|
@@ -3542,9 +3226,9 @@ var RadioGroup = React25.forwardRef(
|
|
|
3542
3226
|
name,
|
|
3543
3227
|
label,
|
|
3544
3228
|
...props
|
|
3545
|
-
}, ref) => /* @__PURE__ */
|
|
3546
|
-
label && /* @__PURE__ */
|
|
3547
|
-
/* @__PURE__ */
|
|
3229
|
+
}, ref) => /* @__PURE__ */ jsxs26("fieldset", { ref, className: cn("space-y-2", className), ...props, children: [
|
|
3230
|
+
label && /* @__PURE__ */ jsx33("legend", { className: "mb-2 text-sm font-medium text-foreground", children: label }),
|
|
3231
|
+
/* @__PURE__ */ jsx33(
|
|
3548
3232
|
"div",
|
|
3549
3233
|
{
|
|
3550
3234
|
className: cn(
|
|
@@ -3555,7 +3239,7 @@ var RadioGroup = React25.forwardRef(
|
|
|
3555
3239
|
children: options.map((option) => {
|
|
3556
3240
|
const isSelected = value === option.value;
|
|
3557
3241
|
if (variant === "card") {
|
|
3558
|
-
return /* @__PURE__ */
|
|
3242
|
+
return /* @__PURE__ */ jsxs26(
|
|
3559
3243
|
"label",
|
|
3560
3244
|
{
|
|
3561
3245
|
className: cn(
|
|
@@ -3563,7 +3247,7 @@ var RadioGroup = React25.forwardRef(
|
|
|
3563
3247
|
isSelected ? "border-primary bg-primary/5" : "border-border bg-card hover:bg-muted/50"
|
|
3564
3248
|
),
|
|
3565
3249
|
children: [
|
|
3566
|
-
/* @__PURE__ */
|
|
3250
|
+
/* @__PURE__ */ jsx33(
|
|
3567
3251
|
"input",
|
|
3568
3252
|
{
|
|
3569
3253
|
type: "radio",
|
|
@@ -3574,16 +3258,16 @@ var RadioGroup = React25.forwardRef(
|
|
|
3574
3258
|
className: "mt-0.5 h-4 w-4 accent-primary"
|
|
3575
3259
|
}
|
|
3576
3260
|
),
|
|
3577
|
-
/* @__PURE__ */
|
|
3578
|
-
/* @__PURE__ */
|
|
3579
|
-
option.description && /* @__PURE__ */
|
|
3261
|
+
/* @__PURE__ */ jsxs26("div", { children: [
|
|
3262
|
+
/* @__PURE__ */ jsx33("span", { className: "text-sm font-medium text-foreground", children: option.label }),
|
|
3263
|
+
option.description && /* @__PURE__ */ jsx33("p", { className: "mt-0.5 text-xs text-muted-foreground", children: option.description })
|
|
3580
3264
|
] })
|
|
3581
3265
|
]
|
|
3582
3266
|
},
|
|
3583
3267
|
option.value
|
|
3584
3268
|
);
|
|
3585
3269
|
}
|
|
3586
|
-
return /* @__PURE__ */
|
|
3270
|
+
return /* @__PURE__ */ jsxs26(
|
|
3587
3271
|
"label",
|
|
3588
3272
|
{
|
|
3589
3273
|
className: cn(
|
|
@@ -3592,7 +3276,7 @@ var RadioGroup = React25.forwardRef(
|
|
|
3592
3276
|
variant === "stacked" && isSelected && "border-primary bg-primary/5"
|
|
3593
3277
|
),
|
|
3594
3278
|
children: [
|
|
3595
|
-
/* @__PURE__ */
|
|
3279
|
+
/* @__PURE__ */ jsx33(
|
|
3596
3280
|
"input",
|
|
3597
3281
|
{
|
|
3598
3282
|
type: "radio",
|
|
@@ -3603,8 +3287,8 @@ var RadioGroup = React25.forwardRef(
|
|
|
3603
3287
|
className: "h-4 w-4 accent-primary"
|
|
3604
3288
|
}
|
|
3605
3289
|
),
|
|
3606
|
-
/* @__PURE__ */
|
|
3607
|
-
option.description && variant === "stacked" && /* @__PURE__ */
|
|
3290
|
+
/* @__PURE__ */ jsx33("span", { className: "text-sm text-foreground", children: option.label }),
|
|
3291
|
+
option.description && variant === "stacked" && /* @__PURE__ */ jsx33("span", { className: "ml-auto text-xs text-muted-foreground", children: option.description })
|
|
3608
3292
|
]
|
|
3609
3293
|
},
|
|
3610
3294
|
option.value
|
|
@@ -3617,9 +3301,9 @@ var RadioGroup = React25.forwardRef(
|
|
|
3617
3301
|
RadioGroup.displayName = "RadioGroup";
|
|
3618
3302
|
|
|
3619
3303
|
// src/combobox.tsx
|
|
3620
|
-
import * as
|
|
3621
|
-
import { jsx as
|
|
3622
|
-
var Combobox =
|
|
3304
|
+
import * as React23 from "react";
|
|
3305
|
+
import { jsx as jsx34, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
3306
|
+
var Combobox = React23.forwardRef(
|
|
3623
3307
|
({
|
|
3624
3308
|
className,
|
|
3625
3309
|
options,
|
|
@@ -3630,8 +3314,8 @@ var Combobox = React26.forwardRef(
|
|
|
3630
3314
|
filterable = true,
|
|
3631
3315
|
...props
|
|
3632
3316
|
}, ref) => {
|
|
3633
|
-
const [open, setOpen] =
|
|
3634
|
-
const [search, setSearch] =
|
|
3317
|
+
const [open, setOpen] = React23.useState(false);
|
|
3318
|
+
const [search, setSearch] = React23.useState("");
|
|
3635
3319
|
const selected = multi ? Array.isArray(value) ? value : [] : typeof value === "string" ? value : "";
|
|
3636
3320
|
const filtered = filterable ? options.filter(
|
|
3637
3321
|
(o) => o.label.toLowerCase().includes(search.toLowerCase())
|
|
@@ -3650,20 +3334,20 @@ var Combobox = React26.forwardRef(
|
|
|
3650
3334
|
}
|
|
3651
3335
|
};
|
|
3652
3336
|
const displayValue = multi ? null : options.find((o) => o.value === selected)?.label;
|
|
3653
|
-
return /* @__PURE__ */
|
|
3654
|
-
/* @__PURE__ */
|
|
3337
|
+
return /* @__PURE__ */ jsxs27("div", { ref, className: cn("relative", className), ...props, children: [
|
|
3338
|
+
/* @__PURE__ */ jsxs27(
|
|
3655
3339
|
"div",
|
|
3656
3340
|
{
|
|
3657
3341
|
className: "flex min-h-9 cursor-pointer items-center gap-1 rounded-md border border-input bg-background px-3 py-1.5",
|
|
3658
3342
|
onClick: () => setOpen(!open),
|
|
3659
3343
|
children: [
|
|
3660
|
-
multi && Array.isArray(selected) && selected.length > 0 ? /* @__PURE__ */
|
|
3344
|
+
multi && Array.isArray(selected) && selected.length > 0 ? /* @__PURE__ */ jsx34("div", { className: "flex flex-wrap gap-1", children: selected.map((v) => /* @__PURE__ */ jsxs27(
|
|
3661
3345
|
"span",
|
|
3662
3346
|
{
|
|
3663
3347
|
className: "text-primary-text inline-flex items-center gap-1 rounded bg-primary/10 px-2 py-0.5 text-xs font-medium",
|
|
3664
3348
|
children: [
|
|
3665
3349
|
options.find((o) => o.value === v)?.label,
|
|
3666
|
-
/* @__PURE__ */
|
|
3350
|
+
/* @__PURE__ */ jsx34(
|
|
3667
3351
|
"button",
|
|
3668
3352
|
{
|
|
3669
3353
|
type: "button",
|
|
@@ -3678,7 +3362,7 @@ var Combobox = React26.forwardRef(
|
|
|
3678
3362
|
]
|
|
3679
3363
|
},
|
|
3680
3364
|
v
|
|
3681
|
-
)) }) : /* @__PURE__ */
|
|
3365
|
+
)) }) : /* @__PURE__ */ jsx34(
|
|
3682
3366
|
"span",
|
|
3683
3367
|
{
|
|
3684
3368
|
className: cn(
|
|
@@ -3688,12 +3372,12 @@ var Combobox = React26.forwardRef(
|
|
|
3688
3372
|
children: displayValue || placeholder
|
|
3689
3373
|
}
|
|
3690
3374
|
),
|
|
3691
|
-
/* @__PURE__ */
|
|
3375
|
+
/* @__PURE__ */ jsx34("span", { className: "ml-auto text-muted-foreground", children: "\u25BE" })
|
|
3692
3376
|
]
|
|
3693
3377
|
}
|
|
3694
3378
|
),
|
|
3695
|
-
open && /* @__PURE__ */
|
|
3696
|
-
filterable && /* @__PURE__ */
|
|
3379
|
+
open && /* @__PURE__ */ jsxs27("div", { className: "z-dropdown absolute mt-1 w-full rounded-md border border-border bg-card shadow-lg", children: [
|
|
3380
|
+
filterable && /* @__PURE__ */ jsx34("div", { className: "border-b border-border p-2", children: /* @__PURE__ */ jsx34(
|
|
3697
3381
|
"input",
|
|
3698
3382
|
{
|
|
3699
3383
|
type: "text",
|
|
@@ -3704,9 +3388,9 @@ var Combobox = React26.forwardRef(
|
|
|
3704
3388
|
autoFocus: true
|
|
3705
3389
|
}
|
|
3706
3390
|
) }),
|
|
3707
|
-
/* @__PURE__ */
|
|
3391
|
+
/* @__PURE__ */ jsx34("div", { className: "max-h-60 overflow-y-auto p-1", children: filtered.length === 0 ? /* @__PURE__ */ jsx34("div", { className: "px-3 py-2 text-sm text-muted-foreground", children: "No results" }) : filtered.map((option) => {
|
|
3708
3392
|
const isSelected = multi ? Array.isArray(selected) && selected.includes(option.value) : selected === option.value;
|
|
3709
|
-
return /* @__PURE__ */
|
|
3393
|
+
return /* @__PURE__ */ jsxs27(
|
|
3710
3394
|
"button",
|
|
3711
3395
|
{
|
|
3712
3396
|
type: "button",
|
|
@@ -3716,9 +3400,9 @@ var Combobox = React26.forwardRef(
|
|
|
3716
3400
|
),
|
|
3717
3401
|
onClick: () => handleSelect(option.value),
|
|
3718
3402
|
children: [
|
|
3719
|
-
multi && /* @__PURE__ */
|
|
3403
|
+
multi && /* @__PURE__ */ jsx34("span", { className: "mr-2", children: isSelected ? "\u2611" : "\u2610" }),
|
|
3720
3404
|
option.label,
|
|
3721
|
-
!multi && isSelected && /* @__PURE__ */
|
|
3405
|
+
!multi && isSelected && /* @__PURE__ */ jsx34("span", { className: "text-primary-text ml-auto", children: "\u2713" })
|
|
3722
3406
|
]
|
|
3723
3407
|
},
|
|
3724
3408
|
option.value
|
|
@@ -3731,8 +3415,8 @@ var Combobox = React26.forwardRef(
|
|
|
3731
3415
|
Combobox.displayName = "Combobox";
|
|
3732
3416
|
|
|
3733
3417
|
// src/notification-banner.tsx
|
|
3734
|
-
import * as
|
|
3735
|
-
import { jsx as
|
|
3418
|
+
import * as React24 from "react";
|
|
3419
|
+
import { jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
3736
3420
|
var INTENT_STYLES = {
|
|
3737
3421
|
success: {
|
|
3738
3422
|
subtle: "bg-intent-success/10 text-intent-success-foreground border-intent-success/20",
|
|
@@ -3761,7 +3445,7 @@ var ICON_MAP = {
|
|
|
3761
3445
|
error: "circle-alert",
|
|
3762
3446
|
info: "info"
|
|
3763
3447
|
};
|
|
3764
|
-
var NotificationBanner =
|
|
3448
|
+
var NotificationBanner = React24.forwardRef(
|
|
3765
3449
|
({
|
|
3766
3450
|
className,
|
|
3767
3451
|
intent = "info",
|
|
@@ -3773,13 +3457,13 @@ var NotificationBanner = React27.forwardRef(
|
|
|
3773
3457
|
children,
|
|
3774
3458
|
...props
|
|
3775
3459
|
}, ref) => {
|
|
3776
|
-
const [dismissed, setDismissed] =
|
|
3460
|
+
const [dismissed, setDismissed] = React24.useState(false);
|
|
3777
3461
|
if (dismissed) return null;
|
|
3778
3462
|
const handleDismiss = () => {
|
|
3779
3463
|
setDismissed(true);
|
|
3780
3464
|
onDismiss?.();
|
|
3781
3465
|
};
|
|
3782
|
-
return /* @__PURE__ */
|
|
3466
|
+
return /* @__PURE__ */ jsxs28(
|
|
3783
3467
|
"div",
|
|
3784
3468
|
{
|
|
3785
3469
|
ref,
|
|
@@ -3791,13 +3475,13 @@ var NotificationBanner = React27.forwardRef(
|
|
|
3791
3475
|
),
|
|
3792
3476
|
...props,
|
|
3793
3477
|
children: [
|
|
3794
|
-
/* @__PURE__ */
|
|
3795
|
-
/* @__PURE__ */
|
|
3796
|
-
title && /* @__PURE__ */
|
|
3797
|
-
children && /* @__PURE__ */
|
|
3478
|
+
/* @__PURE__ */ jsx35("span", { className: "flex-shrink-0 pt-0.5", "aria-hidden": "true", children: /* @__PURE__ */ jsx35(Icon, { name: ICON_MAP[intent], size: "md" }) }),
|
|
3479
|
+
/* @__PURE__ */ jsxs28("div", { className: "min-w-0 flex-1", children: [
|
|
3480
|
+
title && /* @__PURE__ */ jsx35("p", { className: "font-semibold", children: title }),
|
|
3481
|
+
children && /* @__PURE__ */ jsx35("div", { className: cn(title && "mt-1", "text-sm"), children })
|
|
3798
3482
|
] }),
|
|
3799
|
-
action && /* @__PURE__ */
|
|
3800
|
-
dismissible && /* @__PURE__ */
|
|
3483
|
+
action && /* @__PURE__ */ jsx35("div", { className: "flex-shrink-0", children: action }),
|
|
3484
|
+
dismissible && /* @__PURE__ */ jsx35(
|
|
3801
3485
|
"button",
|
|
3802
3486
|
{
|
|
3803
3487
|
type: "button",
|
|
@@ -3815,9 +3499,9 @@ var NotificationBanner = React27.forwardRef(
|
|
|
3815
3499
|
NotificationBanner.displayName = "NotificationBanner";
|
|
3816
3500
|
|
|
3817
3501
|
// src/notification-panel.tsx
|
|
3818
|
-
import * as
|
|
3819
|
-
import { jsx as
|
|
3820
|
-
var NotificationPanel =
|
|
3502
|
+
import * as React25 from "react";
|
|
3503
|
+
import { jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3504
|
+
var NotificationPanel = React25.forwardRef(({ className, unreadCount = 0, onMarkAllRead, children, ...props }, ref) => /* @__PURE__ */ jsxs29(
|
|
3821
3505
|
"div",
|
|
3822
3506
|
{
|
|
3823
3507
|
ref,
|
|
@@ -3827,12 +3511,12 @@ var NotificationPanel = React28.forwardRef(({ className, unreadCount = 0, onMark
|
|
|
3827
3511
|
),
|
|
3828
3512
|
...props,
|
|
3829
3513
|
children: [
|
|
3830
|
-
/* @__PURE__ */
|
|
3831
|
-
/* @__PURE__ */
|
|
3514
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between border-b border-border px-4 py-3", children: [
|
|
3515
|
+
/* @__PURE__ */ jsxs29("h3", { className: "text-sm font-semibold text-foreground", children: [
|
|
3832
3516
|
"Notifications",
|
|
3833
|
-
unreadCount > 0 && /* @__PURE__ */
|
|
3517
|
+
unreadCount > 0 && /* @__PURE__ */ jsx36("span", { className: "bg-primary-solid ml-2 inline-flex h-5 min-w-5 items-center justify-center rounded-full px-1.5 text-xs text-primary-foreground", children: unreadCount })
|
|
3834
3518
|
] }),
|
|
3835
|
-
onMarkAllRead && unreadCount > 0 && /* @__PURE__ */
|
|
3519
|
+
onMarkAllRead && unreadCount > 0 && /* @__PURE__ */ jsx36(
|
|
3836
3520
|
"button",
|
|
3837
3521
|
{
|
|
3838
3522
|
type: "button",
|
|
@@ -3842,12 +3526,12 @@ var NotificationPanel = React28.forwardRef(({ className, unreadCount = 0, onMark
|
|
|
3842
3526
|
}
|
|
3843
3527
|
)
|
|
3844
3528
|
] }),
|
|
3845
|
-
/* @__PURE__ */
|
|
3529
|
+
/* @__PURE__ */ jsx36("div", { className: "max-h-80 divide-y divide-border overflow-y-auto", children })
|
|
3846
3530
|
]
|
|
3847
3531
|
}
|
|
3848
3532
|
));
|
|
3849
3533
|
NotificationPanel.displayName = "NotificationPanel";
|
|
3850
|
-
var NotificationPanelItem =
|
|
3534
|
+
var NotificationPanelItem = React25.forwardRef(({ className, title, description, time, unread, icon, ...props }, ref) => /* @__PURE__ */ jsxs29(
|
|
3851
3535
|
"div",
|
|
3852
3536
|
{
|
|
3853
3537
|
ref,
|
|
@@ -3858,9 +3542,9 @@ var NotificationPanelItem = React28.forwardRef(({ className, title, description,
|
|
|
3858
3542
|
),
|
|
3859
3543
|
...props,
|
|
3860
3544
|
children: [
|
|
3861
|
-
icon && /* @__PURE__ */
|
|
3862
|
-
/* @__PURE__ */
|
|
3863
|
-
/* @__PURE__ */
|
|
3545
|
+
icon && /* @__PURE__ */ jsx36("div", { className: "flex-shrink-0 pt-0.5", children: icon }),
|
|
3546
|
+
/* @__PURE__ */ jsxs29("div", { className: "min-w-0 flex-1", children: [
|
|
3547
|
+
/* @__PURE__ */ jsx36(
|
|
3864
3548
|
"p",
|
|
3865
3549
|
{
|
|
3866
3550
|
className: cn(
|
|
@@ -3870,22 +3554,22 @@ var NotificationPanelItem = React28.forwardRef(({ className, title, description,
|
|
|
3870
3554
|
children: title
|
|
3871
3555
|
}
|
|
3872
3556
|
),
|
|
3873
|
-
description && /* @__PURE__ */
|
|
3874
|
-
time && /* @__PURE__ */
|
|
3557
|
+
description && /* @__PURE__ */ jsx36("p", { className: "mt-0.5 text-xs text-muted-foreground", children: description }),
|
|
3558
|
+
time && /* @__PURE__ */ jsx36("p", { className: "mt-1 text-xs text-muted-foreground", children: time })
|
|
3875
3559
|
] }),
|
|
3876
|
-
unread && /* @__PURE__ */
|
|
3560
|
+
unread && /* @__PURE__ */ jsx36("div", { className: "flex-shrink-0 pt-1.5", children: /* @__PURE__ */ jsx36("div", { className: "h-2 w-2 rounded-full bg-primary" }) })
|
|
3877
3561
|
]
|
|
3878
3562
|
}
|
|
3879
3563
|
));
|
|
3880
3564
|
NotificationPanelItem.displayName = "NotificationPanelItem";
|
|
3881
3565
|
|
|
3882
3566
|
// src/skeleton-patterns.tsx
|
|
3883
|
-
import { jsx as
|
|
3567
|
+
import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3884
3568
|
function SkeletonBar2({
|
|
3885
3569
|
className,
|
|
3886
3570
|
...props
|
|
3887
3571
|
}) {
|
|
3888
|
-
return /* @__PURE__ */
|
|
3572
|
+
return /* @__PURE__ */ jsx37(
|
|
3889
3573
|
"div",
|
|
3890
3574
|
{
|
|
3891
3575
|
className: cn("animate-pulse rounded-md bg-muted", className),
|
|
@@ -3899,7 +3583,7 @@ function SkeletonTable({
|
|
|
3899
3583
|
columns = 4,
|
|
3900
3584
|
...props
|
|
3901
3585
|
}) {
|
|
3902
|
-
return /* @__PURE__ */
|
|
3586
|
+
return /* @__PURE__ */ jsxs30(
|
|
3903
3587
|
"div",
|
|
3904
3588
|
{
|
|
3905
3589
|
className: cn(
|
|
@@ -3908,15 +3592,15 @@ function SkeletonTable({
|
|
|
3908
3592
|
),
|
|
3909
3593
|
...props,
|
|
3910
3594
|
children: [
|
|
3911
|
-
/* @__PURE__ */
|
|
3912
|
-
Array.from({ length: rows }).map((_, row) => /* @__PURE__ */
|
|
3595
|
+
/* @__PURE__ */ jsx37("div", { className: "flex gap-4 border-b border-border bg-muted/50 px-4 py-3", children: Array.from({ length: columns }).map((_, i) => /* @__PURE__ */ jsx37(SkeletonBar2, { className: "h-4 flex-1" }, `h-${i}`)) }),
|
|
3596
|
+
Array.from({ length: rows }).map((_, row) => /* @__PURE__ */ jsx37(
|
|
3913
3597
|
"div",
|
|
3914
3598
|
{
|
|
3915
3599
|
className: cn(
|
|
3916
3600
|
"flex gap-4 px-4 py-3",
|
|
3917
3601
|
row < rows - 1 && "border-b border-border"
|
|
3918
3602
|
),
|
|
3919
|
-
children: Array.from({ length: columns }).map((_2, col) => /* @__PURE__ */
|
|
3603
|
+
children: Array.from({ length: columns }).map((_2, col) => /* @__PURE__ */ jsx37(
|
|
3920
3604
|
SkeletonBar2,
|
|
3921
3605
|
{
|
|
3922
3606
|
className: cn("h-4 flex-1", col === 0 && "max-w-[140px]")
|
|
@@ -3938,17 +3622,17 @@ function SkeletonCardGrid({
|
|
|
3938
3622
|
...props
|
|
3939
3623
|
}) {
|
|
3940
3624
|
const colClass = columns === 2 ? "grid-cols-1 sm:grid-cols-2" : "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3";
|
|
3941
|
-
return /* @__PURE__ */
|
|
3625
|
+
return /* @__PURE__ */ jsx37("div", { className: cn("grid gap-4", colClass, className), ...props, children: Array.from({ length: cards }).map((_, i) => /* @__PURE__ */ jsxs30(
|
|
3942
3626
|
"div",
|
|
3943
3627
|
{
|
|
3944
3628
|
className: "space-y-3 rounded-lg border border-border p-4",
|
|
3945
3629
|
children: [
|
|
3946
|
-
/* @__PURE__ */
|
|
3947
|
-
/* @__PURE__ */
|
|
3948
|
-
/* @__PURE__ */
|
|
3949
|
-
/* @__PURE__ */
|
|
3950
|
-
/* @__PURE__ */
|
|
3951
|
-
/* @__PURE__ */
|
|
3630
|
+
/* @__PURE__ */ jsx37(SkeletonBar2, { className: "h-4 w-3/4" }),
|
|
3631
|
+
/* @__PURE__ */ jsx37(SkeletonBar2, { className: "h-3 w-full" }),
|
|
3632
|
+
/* @__PURE__ */ jsx37(SkeletonBar2, { className: "h-3 w-5/6" }),
|
|
3633
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex gap-2 pt-2", children: [
|
|
3634
|
+
/* @__PURE__ */ jsx37(SkeletonBar2, { className: "h-6 w-6 rounded-full" }),
|
|
3635
|
+
/* @__PURE__ */ jsx37(SkeletonBar2, { className: "h-4 w-20" })
|
|
3952
3636
|
] })
|
|
3953
3637
|
]
|
|
3954
3638
|
},
|
|
@@ -3957,34 +3641,34 @@ function SkeletonCardGrid({
|
|
|
3957
3641
|
}
|
|
3958
3642
|
SkeletonCardGrid.displayName = "SkeletonCardGrid";
|
|
3959
3643
|
function SkeletonDetail({ className, ...props }) {
|
|
3960
|
-
return /* @__PURE__ */
|
|
3961
|
-
/* @__PURE__ */
|
|
3962
|
-
/* @__PURE__ */
|
|
3963
|
-
/* @__PURE__ */
|
|
3644
|
+
return /* @__PURE__ */ jsxs30("div", { className: cn("space-y-6", className), ...props, children: [
|
|
3645
|
+
/* @__PURE__ */ jsxs30("div", { className: "space-y-2", children: [
|
|
3646
|
+
/* @__PURE__ */ jsx37(SkeletonBar2, { className: "h-8 w-1/3" }),
|
|
3647
|
+
/* @__PURE__ */ jsx37(SkeletonBar2, { className: "h-4 w-2/3" })
|
|
3964
3648
|
] }),
|
|
3965
|
-
/* @__PURE__ */
|
|
3966
|
-
/* @__PURE__ */
|
|
3967
|
-
/* @__PURE__ */
|
|
3649
|
+
/* @__PURE__ */ jsx37("div", { className: "space-y-4", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ jsxs30("div", { className: "flex justify-between", children: [
|
|
3650
|
+
/* @__PURE__ */ jsx37(SkeletonBar2, { className: "h-4 w-24" }),
|
|
3651
|
+
/* @__PURE__ */ jsx37(SkeletonBar2, { className: "h-4 w-40" })
|
|
3968
3652
|
] }, `dl-${i}`)) }),
|
|
3969
|
-
/* @__PURE__ */
|
|
3970
|
-
/* @__PURE__ */
|
|
3971
|
-
/* @__PURE__ */
|
|
3972
|
-
/* @__PURE__ */
|
|
3653
|
+
/* @__PURE__ */ jsxs30("div", { className: "space-y-2", children: [
|
|
3654
|
+
/* @__PURE__ */ jsx37(SkeletonBar2, { className: "h-4 w-full" }),
|
|
3655
|
+
/* @__PURE__ */ jsx37(SkeletonBar2, { className: "h-4 w-full" }),
|
|
3656
|
+
/* @__PURE__ */ jsx37(SkeletonBar2, { className: "h-4 w-3/4" })
|
|
3973
3657
|
] })
|
|
3974
3658
|
] });
|
|
3975
3659
|
}
|
|
3976
3660
|
SkeletonDetail.displayName = "SkeletonDetail";
|
|
3977
3661
|
|
|
3978
3662
|
// src/toggle.tsx
|
|
3979
|
-
import * as
|
|
3980
|
-
import { jsx as
|
|
3663
|
+
import * as React26 from "react";
|
|
3664
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
3981
3665
|
var SIZE_CLASSES4 = {
|
|
3982
3666
|
sm: "h-8 px-2 text-xs",
|
|
3983
3667
|
md: "h-9 px-3 text-sm",
|
|
3984
3668
|
lg: "h-10 px-4 text-base"
|
|
3985
3669
|
};
|
|
3986
|
-
var Toggle =
|
|
3987
|
-
({ className, pressed, variant = "default", size = "md", ...props }, ref) => /* @__PURE__ */
|
|
3670
|
+
var Toggle = React26.forwardRef(
|
|
3671
|
+
({ className, pressed, variant = "default", size = "md", ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
3988
3672
|
"button",
|
|
3989
3673
|
{
|
|
3990
3674
|
ref,
|
|
@@ -4003,7 +3687,7 @@ var Toggle = React29.forwardRef(
|
|
|
4003
3687
|
)
|
|
4004
3688
|
);
|
|
4005
3689
|
Toggle.displayName = "Toggle";
|
|
4006
|
-
var ToggleGroup =
|
|
3690
|
+
var ToggleGroup = React26.forwardRef(
|
|
4007
3691
|
({
|
|
4008
3692
|
className,
|
|
4009
3693
|
type = "single",
|
|
@@ -4030,18 +3714,18 @@ var ToggleGroup = React29.forwardRef(
|
|
|
4030
3714
|
);
|
|
4031
3715
|
}
|
|
4032
3716
|
};
|
|
4033
|
-
return /* @__PURE__ */
|
|
3717
|
+
return /* @__PURE__ */ jsx38(
|
|
4034
3718
|
"div",
|
|
4035
3719
|
{
|
|
4036
3720
|
ref,
|
|
4037
3721
|
role: "group",
|
|
4038
3722
|
className: cn("inline-flex items-center gap-1", className),
|
|
4039
3723
|
...props,
|
|
4040
|
-
children:
|
|
4041
|
-
if (!
|
|
3724
|
+
children: React26.Children.map(children, (child) => {
|
|
3725
|
+
if (!React26.isValidElement(child)) return child;
|
|
4042
3726
|
const childProps = child.props;
|
|
4043
3727
|
const itemValue = childProps.value ?? "";
|
|
4044
|
-
return
|
|
3728
|
+
return React26.cloneElement(child, {
|
|
4045
3729
|
pressed: isPressed(itemValue),
|
|
4046
3730
|
variant,
|
|
4047
3731
|
size,
|
|
@@ -4058,8 +3742,8 @@ var ToggleGroup = React29.forwardRef(
|
|
|
4058
3742
|
ToggleGroup.displayName = "ToggleGroup";
|
|
4059
3743
|
|
|
4060
3744
|
// src/avatar-group.tsx
|
|
4061
|
-
import * as
|
|
4062
|
-
import { jsx as
|
|
3745
|
+
import * as React27 from "react";
|
|
3746
|
+
import { jsx as jsx39, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
4063
3747
|
var SIZE_MAP = {
|
|
4064
3748
|
xs: { avatar: "h-6 w-6", ring: "ring-1", text: "text-[10px]" },
|
|
4065
3749
|
sm: { avatar: "h-8 w-8", ring: "ring-2", text: "text-xs" },
|
|
@@ -4072,14 +3756,14 @@ var OVERLAP_MAP = {
|
|
|
4072
3756
|
md: "-ml-3",
|
|
4073
3757
|
lg: "-ml-3"
|
|
4074
3758
|
};
|
|
4075
|
-
var AvatarGroup =
|
|
3759
|
+
var AvatarGroup = React27.forwardRef(
|
|
4076
3760
|
({ className, max = 5, size = "md", children, ...props }, ref) => {
|
|
4077
|
-
const items =
|
|
3761
|
+
const items = React27.Children.toArray(children);
|
|
4078
3762
|
const visible = items.slice(0, max);
|
|
4079
3763
|
const overflow = items.length - max;
|
|
4080
3764
|
const sizeConfig3 = SIZE_MAP[size];
|
|
4081
|
-
return /* @__PURE__ */
|
|
4082
|
-
visible.map((child, i) => /* @__PURE__ */
|
|
3765
|
+
return /* @__PURE__ */ jsxs31("div", { ref, className: cn("flex items-center", className), ...props, children: [
|
|
3766
|
+
visible.map((child, i) => /* @__PURE__ */ jsx39(
|
|
4083
3767
|
"div",
|
|
4084
3768
|
{
|
|
4085
3769
|
className: cn(
|
|
@@ -4091,7 +3775,7 @@ var AvatarGroup = React30.forwardRef(
|
|
|
4091
3775
|
},
|
|
4092
3776
|
i
|
|
4093
3777
|
)),
|
|
4094
|
-
overflow > 0 && /* @__PURE__ */
|
|
3778
|
+
overflow > 0 && /* @__PURE__ */ jsx39(
|
|
4095
3779
|
"div",
|
|
4096
3780
|
{
|
|
4097
3781
|
className: cn(
|
|
@@ -4100,7 +3784,7 @@ var AvatarGroup = React30.forwardRef(
|
|
|
4100
3784
|
sizeConfig3.ring,
|
|
4101
3785
|
OVERLAP_MAP[size]
|
|
4102
3786
|
),
|
|
4103
|
-
children: /* @__PURE__ */
|
|
3787
|
+
children: /* @__PURE__ */ jsxs31(
|
|
4104
3788
|
"span",
|
|
4105
3789
|
{
|
|
4106
3790
|
className: cn(
|
|
@@ -4119,10 +3803,10 @@ var AvatarGroup = React30.forwardRef(
|
|
|
4119
3803
|
}
|
|
4120
3804
|
);
|
|
4121
3805
|
AvatarGroup.displayName = "AvatarGroup";
|
|
4122
|
-
var AvatarGroupItem =
|
|
3806
|
+
var AvatarGroupItem = React27.forwardRef(({ className, fallback, size = "md", alt, src, ...props }, ref) => {
|
|
4123
3807
|
const sizeConfig3 = SIZE_MAP[size];
|
|
4124
3808
|
if (!src && fallback) {
|
|
4125
|
-
return /* @__PURE__ */
|
|
3809
|
+
return /* @__PURE__ */ jsx39(
|
|
4126
3810
|
"div",
|
|
4127
3811
|
{
|
|
4128
3812
|
className: cn(
|
|
@@ -4136,7 +3820,7 @@ var AvatarGroupItem = React30.forwardRef(({ className, fallback, size = "md", al
|
|
|
4136
3820
|
}
|
|
4137
3821
|
);
|
|
4138
3822
|
}
|
|
4139
|
-
return /* @__PURE__ */
|
|
3823
|
+
return /* @__PURE__ */ jsx39(
|
|
4140
3824
|
"img",
|
|
4141
3825
|
{
|
|
4142
3826
|
ref,
|
|
@@ -4150,10 +3834,10 @@ var AvatarGroupItem = React30.forwardRef(({ className, fallback, size = "md", al
|
|
|
4150
3834
|
AvatarGroupItem.displayName = "AvatarGroupItem";
|
|
4151
3835
|
|
|
4152
3836
|
// src/tab-bar.tsx
|
|
4153
|
-
import * as
|
|
4154
|
-
import { jsx as
|
|
4155
|
-
var TabBar =
|
|
4156
|
-
({ className, variant = "underline", children, ...props }, ref) => /* @__PURE__ */
|
|
3837
|
+
import * as React28 from "react";
|
|
3838
|
+
import { jsx as jsx40, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
3839
|
+
var TabBar = React28.forwardRef(
|
|
3840
|
+
({ className, variant = "underline", children, ...props }, ref) => /* @__PURE__ */ jsxs32(
|
|
4157
3841
|
"div",
|
|
4158
3842
|
{
|
|
4159
3843
|
ref,
|
|
@@ -4173,21 +3857,21 @@ var TabBar = React31.forwardRef(
|
|
|
4173
3857
|
"data-variant": variant,
|
|
4174
3858
|
...props,
|
|
4175
3859
|
children: [
|
|
4176
|
-
|
|
4177
|
-
if (!
|
|
4178
|
-
return
|
|
3860
|
+
React28.Children.map(children, (child) => {
|
|
3861
|
+
if (!React28.isValidElement(child)) return child;
|
|
3862
|
+
return React28.cloneElement(
|
|
4179
3863
|
child,
|
|
4180
3864
|
{ _variant: variant }
|
|
4181
3865
|
);
|
|
4182
3866
|
}),
|
|
4183
|
-
/* @__PURE__ */
|
|
3867
|
+
/* @__PURE__ */ jsx40(ScrollHintXMark, {})
|
|
4184
3868
|
]
|
|
4185
3869
|
}
|
|
4186
3870
|
)
|
|
4187
3871
|
);
|
|
4188
3872
|
TabBar.displayName = "TabBar";
|
|
4189
|
-
var TabBarItem =
|
|
4190
|
-
({ className, active, disabled, _variant: variant = "underline", ...props }, ref) => /* @__PURE__ */
|
|
3873
|
+
var TabBarItem = React28.forwardRef(
|
|
3874
|
+
({ className, active, disabled, _variant: variant = "underline", ...props }, ref) => /* @__PURE__ */ jsx40(
|
|
4191
3875
|
"button",
|
|
4192
3876
|
{
|
|
4193
3877
|
ref,
|
|
@@ -4223,7 +3907,7 @@ var TabBarItem = React31.forwardRef(
|
|
|
4223
3907
|
TabBarItem.displayName = "TabBarItem";
|
|
4224
3908
|
|
|
4225
3909
|
// src/sticky-action-bar.tsx
|
|
4226
|
-
import { jsx as
|
|
3910
|
+
import { jsx as jsx41, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
4227
3911
|
function StickyActionBar({
|
|
4228
3912
|
context,
|
|
4229
3913
|
actions,
|
|
@@ -4231,7 +3915,7 @@ function StickyActionBar({
|
|
|
4231
3915
|
className,
|
|
4232
3916
|
testId = "sticky-action-bar"
|
|
4233
3917
|
}) {
|
|
4234
|
-
return /* @__PURE__ */
|
|
3918
|
+
return /* @__PURE__ */ jsx41(
|
|
4235
3919
|
"div",
|
|
4236
3920
|
{
|
|
4237
3921
|
"data-testid": testId,
|
|
@@ -4242,24 +3926,24 @@ function StickyActionBar({
|
|
|
4242
3926
|
topClassName,
|
|
4243
3927
|
className
|
|
4244
3928
|
),
|
|
4245
|
-
children: /* @__PURE__ */
|
|
4246
|
-
context != null ? /* @__PURE__ */
|
|
4247
|
-
/* @__PURE__ */
|
|
3929
|
+
children: /* @__PURE__ */ jsxs33("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [
|
|
3930
|
+
context != null ? /* @__PURE__ */ jsx41("div", { className: "flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1.5", children: context }) : /* @__PURE__ */ jsx41("span", {}),
|
|
3931
|
+
/* @__PURE__ */ jsx41("div", { className: "flex shrink-0 items-center gap-2", children: actions })
|
|
4248
3932
|
] })
|
|
4249
3933
|
}
|
|
4250
3934
|
);
|
|
4251
3935
|
}
|
|
4252
3936
|
|
|
4253
3937
|
// src/button-group.tsx
|
|
4254
|
-
import * as
|
|
4255
|
-
import { jsx as
|
|
3938
|
+
import * as React29 from "react";
|
|
3939
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
4256
3940
|
var SIZE_CLASSES5 = {
|
|
4257
3941
|
sm: "h-8 px-3 text-xs",
|
|
4258
3942
|
md: "h-9 px-4 text-sm",
|
|
4259
3943
|
lg: "h-10 px-5 text-base"
|
|
4260
3944
|
};
|
|
4261
|
-
var ButtonGroup =
|
|
4262
|
-
({ className, variant = "default", size = "md", children, ...props }, ref) => /* @__PURE__ */
|
|
3945
|
+
var ButtonGroup = React29.forwardRef(
|
|
3946
|
+
({ className, variant = "default", size = "md", children, ...props }, ref) => /* @__PURE__ */ jsx42(
|
|
4263
3947
|
"div",
|
|
4264
3948
|
{
|
|
4265
3949
|
ref,
|
|
@@ -4272,9 +3956,9 @@ var ButtonGroup = React32.forwardRef(
|
|
|
4272
3956
|
"data-variant": variant,
|
|
4273
3957
|
"data-size": size,
|
|
4274
3958
|
...props,
|
|
4275
|
-
children:
|
|
4276
|
-
if (!
|
|
4277
|
-
return
|
|
3959
|
+
children: React29.Children.map(children, (child) => {
|
|
3960
|
+
if (!React29.isValidElement(child)) return child;
|
|
3961
|
+
return React29.cloneElement(
|
|
4278
3962
|
child,
|
|
4279
3963
|
{ _variant: variant, _size: size }
|
|
4280
3964
|
);
|
|
@@ -4283,14 +3967,14 @@ var ButtonGroup = React32.forwardRef(
|
|
|
4283
3967
|
)
|
|
4284
3968
|
);
|
|
4285
3969
|
ButtonGroup.displayName = "ButtonGroup";
|
|
4286
|
-
var ButtonGroupItem =
|
|
3970
|
+
var ButtonGroupItem = React29.forwardRef(
|
|
4287
3971
|
({
|
|
4288
3972
|
className,
|
|
4289
3973
|
active,
|
|
4290
3974
|
_variant: variant = "default",
|
|
4291
3975
|
_size: size = "md",
|
|
4292
3976
|
...props
|
|
4293
|
-
}, ref) => /* @__PURE__ */
|
|
3977
|
+
}, ref) => /* @__PURE__ */ jsx42(
|
|
4294
3978
|
"button",
|
|
4295
3979
|
{
|
|
4296
3980
|
ref,
|
|
@@ -4331,9 +4015,9 @@ var ButtonGroupItem = React32.forwardRef(
|
|
|
4331
4015
|
ButtonGroupItem.displayName = "ButtonGroupItem";
|
|
4332
4016
|
|
|
4333
4017
|
// src/data-table.tsx
|
|
4334
|
-
import * as
|
|
4335
|
-
import { jsx as
|
|
4336
|
-
var DataTable =
|
|
4018
|
+
import * as React30 from "react";
|
|
4019
|
+
import { jsx as jsx43, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
4020
|
+
var DataTable = React30.forwardRef(
|
|
4337
4021
|
({
|
|
4338
4022
|
className,
|
|
4339
4023
|
density = "default",
|
|
@@ -4343,8 +4027,8 @@ var DataTable = React33.forwardRef(
|
|
|
4343
4027
|
}, ref) => (
|
|
4344
4028
|
// W1.5 Batch 0 (#5823): a flex row, so the x mark (`ScrollHintXMark`,
|
|
4345
4029
|
// last child) sits beside the table, not under it
|
|
4346
|
-
/* @__PURE__ */
|
|
4347
|
-
/* @__PURE__ */
|
|
4030
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex w-full overflow-x-auto", children: [
|
|
4031
|
+
/* @__PURE__ */ jsx43(
|
|
4348
4032
|
"table",
|
|
4349
4033
|
{
|
|
4350
4034
|
ref,
|
|
@@ -4358,12 +4042,12 @@ var DataTable = React33.forwardRef(
|
|
|
4358
4042
|
...props
|
|
4359
4043
|
}
|
|
4360
4044
|
),
|
|
4361
|
-
/* @__PURE__ */
|
|
4045
|
+
/* @__PURE__ */ jsx43(ScrollHintXMark, {})
|
|
4362
4046
|
] })
|
|
4363
4047
|
)
|
|
4364
4048
|
);
|
|
4365
4049
|
DataTable.displayName = "DataTable";
|
|
4366
|
-
var TableHeader =
|
|
4050
|
+
var TableHeader = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx43(
|
|
4367
4051
|
"thead",
|
|
4368
4052
|
{
|
|
4369
4053
|
ref,
|
|
@@ -4372,7 +4056,7 @@ var TableHeader = React33.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
4372
4056
|
}
|
|
4373
4057
|
));
|
|
4374
4058
|
TableHeader.displayName = "TableHeader";
|
|
4375
|
-
var TableBody =
|
|
4059
|
+
var TableBody = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx43(
|
|
4376
4060
|
"tbody",
|
|
4377
4061
|
{
|
|
4378
4062
|
ref,
|
|
@@ -4381,8 +4065,8 @@ var TableBody = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
4381
4065
|
}
|
|
4382
4066
|
));
|
|
4383
4067
|
TableBody.displayName = "TableBody";
|
|
4384
|
-
var TableRow =
|
|
4385
|
-
({ className, selected, ...props }, ref) => /* @__PURE__ */
|
|
4068
|
+
var TableRow = React30.forwardRef(
|
|
4069
|
+
({ className, selected, ...props }, ref) => /* @__PURE__ */ jsx43(
|
|
4386
4070
|
"tr",
|
|
4387
4071
|
{
|
|
4388
4072
|
ref,
|
|
@@ -4405,12 +4089,12 @@ var DENSITY_CELL = {
|
|
|
4405
4089
|
default: "px-4 py-2",
|
|
4406
4090
|
relaxed: "px-4 py-3"
|
|
4407
4091
|
};
|
|
4408
|
-
var TableCell =
|
|
4092
|
+
var TableCell = React30.forwardRef(
|
|
4409
4093
|
({ className, header, sortDirection, onSort, children, ...props }, ref) => {
|
|
4410
|
-
const
|
|
4094
|
+
const Tag = header ? "th" : "td";
|
|
4411
4095
|
const sortIndicator = sortDirection === "asc" ? " \u2191" : sortDirection === "desc" ? " \u2193" : "";
|
|
4412
|
-
return /* @__PURE__ */
|
|
4413
|
-
|
|
4096
|
+
return /* @__PURE__ */ jsxs34(
|
|
4097
|
+
Tag,
|
|
4414
4098
|
{
|
|
4415
4099
|
ref,
|
|
4416
4100
|
className: cn(
|
|
@@ -4424,14 +4108,14 @@ var TableCell = React33.forwardRef(
|
|
|
4424
4108
|
...props,
|
|
4425
4109
|
children: [
|
|
4426
4110
|
children,
|
|
4427
|
-
header && sortIndicator && /* @__PURE__ */
|
|
4111
|
+
header && sortIndicator && /* @__PURE__ */ jsx43("span", { className: "text-primary-text ml-1", children: sortIndicator })
|
|
4428
4112
|
]
|
|
4429
4113
|
}
|
|
4430
4114
|
);
|
|
4431
4115
|
}
|
|
4432
4116
|
);
|
|
4433
4117
|
TableCell.displayName = "TableCell";
|
|
4434
|
-
var TableCaption =
|
|
4118
|
+
var TableCaption = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx43(
|
|
4435
4119
|
"caption",
|
|
4436
4120
|
{
|
|
4437
4121
|
ref,
|
|
@@ -4442,15 +4126,15 @@ var TableCaption = React33.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
4442
4126
|
TableCaption.displayName = "TableCaption";
|
|
4443
4127
|
|
|
4444
4128
|
// src/stat-group.tsx
|
|
4445
|
-
import * as
|
|
4446
|
-
import { jsx as
|
|
4129
|
+
import * as React31 from "react";
|
|
4130
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
4447
4131
|
var COL_CLASSES = {
|
|
4448
4132
|
2: "grid-cols-1 sm:grid-cols-2",
|
|
4449
4133
|
3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
|
|
4450
4134
|
4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"
|
|
4451
4135
|
};
|
|
4452
|
-
var StatGroup =
|
|
4453
|
-
({ className, columns = 3, variant = "card", children, ...props }, ref) => /* @__PURE__ */
|
|
4136
|
+
var StatGroup = React31.forwardRef(
|
|
4137
|
+
({ className, columns = 3, variant = "card", children, ...props }, ref) => /* @__PURE__ */ jsx44(
|
|
4454
4138
|
"div",
|
|
4455
4139
|
{
|
|
4456
4140
|
ref,
|
|
@@ -4468,10 +4152,10 @@ var StatGroup = React34.forwardRef(
|
|
|
4468
4152
|
StatGroup.displayName = "StatGroup";
|
|
4469
4153
|
|
|
4470
4154
|
// src/description-list.tsx
|
|
4471
|
-
import * as
|
|
4472
|
-
import { jsx as
|
|
4473
|
-
var DescriptionLayoutContext =
|
|
4474
|
-
var DescriptionList =
|
|
4155
|
+
import * as React32 from "react";
|
|
4156
|
+
import { jsx as jsx45, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
4157
|
+
var DescriptionLayoutContext = React32.createContext("stacked");
|
|
4158
|
+
var DescriptionList = React32.forwardRef(({ className, layout = "stacked", ...props }, ref) => /* @__PURE__ */ jsx45(DescriptionLayoutContext.Provider, { value: layout, children: /* @__PURE__ */ jsx45(
|
|
4475
4159
|
"dl",
|
|
4476
4160
|
{
|
|
4477
4161
|
ref,
|
|
@@ -4485,10 +4169,10 @@ var DescriptionList = React35.forwardRef(({ className, layout = "stacked", ...pr
|
|
|
4485
4169
|
}
|
|
4486
4170
|
) }));
|
|
4487
4171
|
DescriptionList.displayName = "DescriptionList";
|
|
4488
|
-
var DescriptionItem =
|
|
4172
|
+
var DescriptionItem = React32.forwardRef(
|
|
4489
4173
|
({ className, label, value, ...props }, ref) => {
|
|
4490
|
-
const layout =
|
|
4491
|
-
return /* @__PURE__ */
|
|
4174
|
+
const layout = React32.useContext(DescriptionLayoutContext);
|
|
4175
|
+
return /* @__PURE__ */ jsxs35(
|
|
4492
4176
|
"div",
|
|
4493
4177
|
{
|
|
4494
4178
|
ref,
|
|
@@ -4500,7 +4184,7 @@ var DescriptionItem = React35.forwardRef(
|
|
|
4500
4184
|
),
|
|
4501
4185
|
...props,
|
|
4502
4186
|
children: [
|
|
4503
|
-
/* @__PURE__ */
|
|
4187
|
+
/* @__PURE__ */ jsx45(
|
|
4504
4188
|
"dt",
|
|
4505
4189
|
{
|
|
4506
4190
|
className: cn(
|
|
@@ -4510,7 +4194,7 @@ var DescriptionItem = React35.forwardRef(
|
|
|
4510
4194
|
children: label
|
|
4511
4195
|
}
|
|
4512
4196
|
),
|
|
4513
|
-
/* @__PURE__ */
|
|
4197
|
+
/* @__PURE__ */ jsx45(
|
|
4514
4198
|
"dd",
|
|
4515
4199
|
{
|
|
4516
4200
|
className: cn(
|
|
@@ -4518,7 +4202,7 @@ var DescriptionItem = React35.forwardRef(
|
|
|
4518
4202
|
layout !== "side-by-side" && "mt-1",
|
|
4519
4203
|
layout === "side-by-side" && "text-right"
|
|
4520
4204
|
),
|
|
4521
|
-
children: isEmptyValue(value) ? /* @__PURE__ */
|
|
4205
|
+
children: isEmptyValue(value) ? /* @__PURE__ */ jsx45(EmptyValue, {}) : value
|
|
4522
4206
|
}
|
|
4523
4207
|
)
|
|
4524
4208
|
]
|
|
@@ -4529,10 +4213,10 @@ var DescriptionItem = React35.forwardRef(
|
|
|
4529
4213
|
DescriptionItem.displayName = "DescriptionItem";
|
|
4530
4214
|
|
|
4531
4215
|
// src/activity-feed.tsx
|
|
4532
|
-
import * as
|
|
4533
|
-
import { jsx as
|
|
4534
|
-
var ActivityFeed =
|
|
4535
|
-
({ className, variant = "simple", ...props }, ref) => /* @__PURE__ */
|
|
4216
|
+
import * as React33 from "react";
|
|
4217
|
+
import { jsx as jsx46, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
4218
|
+
var ActivityFeed = React33.forwardRef(
|
|
4219
|
+
({ className, variant = "simple", ...props }, ref) => /* @__PURE__ */ jsx46(
|
|
4536
4220
|
"div",
|
|
4537
4221
|
{
|
|
4538
4222
|
ref,
|
|
@@ -4543,19 +4227,19 @@ var ActivityFeed = React36.forwardRef(
|
|
|
4543
4227
|
)
|
|
4544
4228
|
);
|
|
4545
4229
|
ActivityFeed.displayName = "ActivityFeed";
|
|
4546
|
-
var ActivityFeedItem =
|
|
4547
|
-
({ className, avatar, eventDescription, timestamp, isLast, ...props }, ref) => /* @__PURE__ */
|
|
4230
|
+
var ActivityFeedItem = React33.forwardRef(
|
|
4231
|
+
({ className, avatar, eventDescription, timestamp, isLast, ...props }, ref) => /* @__PURE__ */ jsxs36(
|
|
4548
4232
|
"div",
|
|
4549
4233
|
{
|
|
4550
4234
|
ref,
|
|
4551
4235
|
className: cn("relative flex gap-3 pb-6", className),
|
|
4552
4236
|
...props,
|
|
4553
4237
|
children: [
|
|
4554
|
-
!isLast && /* @__PURE__ */
|
|
4555
|
-
/* @__PURE__ */
|
|
4556
|
-
/* @__PURE__ */
|
|
4557
|
-
/* @__PURE__ */
|
|
4558
|
-
timestamp && /* @__PURE__ */
|
|
4238
|
+
!isLast && /* @__PURE__ */ jsx46("div", { className: "absolute left-5 top-10 -ml-px h-full w-0.5 bg-muted" }),
|
|
4239
|
+
/* @__PURE__ */ jsx46("div", { className: "relative flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-full bg-muted", children: avatar }),
|
|
4240
|
+
/* @__PURE__ */ jsxs36("div", { className: "min-w-0 flex-1 pt-1", children: [
|
|
4241
|
+
/* @__PURE__ */ jsx46("div", { className: "text-sm text-foreground", children: eventDescription }),
|
|
4242
|
+
timestamp && /* @__PURE__ */ jsx46("p", { className: "mt-0.5 text-xs text-muted-foreground", children: timestamp })
|
|
4559
4243
|
] })
|
|
4560
4244
|
]
|
|
4561
4245
|
}
|
|
@@ -4563,77 +4247,8 @@ var ActivityFeedItem = React36.forwardRef(
|
|
|
4563
4247
|
);
|
|
4564
4248
|
ActivityFeedItem.displayName = "ActivityFeedItem";
|
|
4565
4249
|
|
|
4566
|
-
// src/alert.tsx
|
|
4567
|
-
import * as React37 from "react";
|
|
4568
|
-
import { jsx as jsx53, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
4569
|
-
var INTENT_SUBTLE_STYLES = {
|
|
4570
|
-
success: "bg-intent-success/10 text-intent-success-foreground border-intent-success/20",
|
|
4571
|
-
warning: "bg-intent-warning/10 text-intent-warning-foreground border-intent-warning/20",
|
|
4572
|
-
error: "bg-intent-error/10 text-intent-error-foreground border-intent-error/20",
|
|
4573
|
-
info: "bg-intent-info/10 text-intent-info-foreground border-intent-info/20"
|
|
4574
|
-
};
|
|
4575
|
-
var SOLID_STYLES = {
|
|
4576
|
-
success: "border-transparent bg-intent-success-solid text-intent-success-solid-fg",
|
|
4577
|
-
warning: "border-transparent bg-intent-warning-solid text-intent-warning-solid-fg",
|
|
4578
|
-
error: "border-transparent bg-intent-error-solid text-intent-error-solid-fg",
|
|
4579
|
-
info: "border-transparent bg-intent-info-solid text-intent-info-solid-fg"
|
|
4580
|
-
};
|
|
4581
|
-
var OUTLINE_STYLES = {
|
|
4582
|
-
success: "border-intent-success-border text-intent-success-foreground bg-background",
|
|
4583
|
-
warning: "border-intent-warning-border text-intent-warning-foreground bg-background",
|
|
4584
|
-
error: "border-intent-error-border text-intent-error-foreground bg-background",
|
|
4585
|
-
info: "border-intent-info-border text-intent-info-foreground bg-background"
|
|
4586
|
-
};
|
|
4587
|
-
var ICON_MAP2 = {
|
|
4588
|
-
success: "circle-check",
|
|
4589
|
-
warning: "triangle-alert",
|
|
4590
|
-
error: "circle-alert",
|
|
4591
|
-
info: "info"
|
|
4592
|
-
};
|
|
4593
|
-
var Alert = React37.forwardRef(
|
|
4594
|
-
({
|
|
4595
|
-
className,
|
|
4596
|
-
intent = "info",
|
|
4597
|
-
variant = "subtle",
|
|
4598
|
-
title,
|
|
4599
|
-
dismissible,
|
|
4600
|
-
onDismiss,
|
|
4601
|
-
children,
|
|
4602
|
-
...props
|
|
4603
|
-
}, ref) => {
|
|
4604
|
-
const styles = variant === "solid" ? SOLID_STYLES[intent] : variant === "outline" ? OUTLINE_STYLES[intent] : INTENT_SUBTLE_STYLES[intent];
|
|
4605
|
-
return /* @__PURE__ */ jsxs41(
|
|
4606
|
-
"div",
|
|
4607
|
-
{
|
|
4608
|
-
ref,
|
|
4609
|
-
role: "alert",
|
|
4610
|
-
className: cn("flex gap-3 rounded-lg border p-4", styles, className),
|
|
4611
|
-
...props,
|
|
4612
|
-
children: [
|
|
4613
|
-
/* @__PURE__ */ jsx53("span", { className: "flex-shrink-0 pt-0.5", "aria-hidden": "true", children: /* @__PURE__ */ jsx53(Icon, { name: ICON_MAP2[intent], size: "md" }) }),
|
|
4614
|
-
/* @__PURE__ */ jsxs41("div", { className: "min-w-0 flex-1", children: [
|
|
4615
|
-
title && /* @__PURE__ */ jsx53("p", { className: "font-semibold", children: title }),
|
|
4616
|
-
children && /* @__PURE__ */ jsx53("div", { className: cn(title && "mt-1", "text-sm"), children })
|
|
4617
|
-
] }),
|
|
4618
|
-
dismissible && /* @__PURE__ */ jsx53(
|
|
4619
|
-
"button",
|
|
4620
|
-
{
|
|
4621
|
-
type: "button",
|
|
4622
|
-
onClick: onDismiss,
|
|
4623
|
-
className: "flex-shrink-0 hover:opacity-80",
|
|
4624
|
-
"aria-label": "Dismiss",
|
|
4625
|
-
children: "\u2715"
|
|
4626
|
-
}
|
|
4627
|
-
)
|
|
4628
|
-
]
|
|
4629
|
-
}
|
|
4630
|
-
);
|
|
4631
|
-
}
|
|
4632
|
-
);
|
|
4633
|
-
Alert.displayName = "Alert";
|
|
4634
|
-
|
|
4635
4250
|
// src/empty-state.tsx
|
|
4636
|
-
import { jsx as
|
|
4251
|
+
import { jsx as jsx47, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
4637
4252
|
function EmptyState({
|
|
4638
4253
|
icon: Icon2,
|
|
4639
4254
|
title,
|
|
@@ -4644,7 +4259,7 @@ function EmptyState({
|
|
|
4644
4259
|
className
|
|
4645
4260
|
}) {
|
|
4646
4261
|
const compact = size === "compact";
|
|
4647
|
-
return /* @__PURE__ */
|
|
4262
|
+
return /* @__PURE__ */ jsxs37(
|
|
4648
4263
|
"div",
|
|
4649
4264
|
{
|
|
4650
4265
|
"data-testid": testId,
|
|
@@ -4654,7 +4269,7 @@ function EmptyState({
|
|
|
4654
4269
|
className
|
|
4655
4270
|
),
|
|
4656
4271
|
children: [
|
|
4657
|
-
Icon2 && /* @__PURE__ */
|
|
4272
|
+
Icon2 && /* @__PURE__ */ jsx47(
|
|
4658
4273
|
"div",
|
|
4659
4274
|
{
|
|
4660
4275
|
"aria-hidden": "true",
|
|
@@ -4662,10 +4277,10 @@ function EmptyState({
|
|
|
4662
4277
|
"flex items-center justify-center rounded-full bg-primary/10 text-primary",
|
|
4663
4278
|
compact ? "mb-3 size-12" : "mb-5 size-16"
|
|
4664
4279
|
),
|
|
4665
|
-
children: /* @__PURE__ */
|
|
4280
|
+
children: /* @__PURE__ */ jsx47(Icon2, { className: compact ? "size-6" : "size-8" })
|
|
4666
4281
|
}
|
|
4667
4282
|
),
|
|
4668
|
-
/* @__PURE__ */
|
|
4283
|
+
/* @__PURE__ */ jsx47(
|
|
4669
4284
|
"h2",
|
|
4670
4285
|
{
|
|
4671
4286
|
className: cn(
|
|
@@ -4675,7 +4290,7 @@ function EmptyState({
|
|
|
4675
4290
|
children: title
|
|
4676
4291
|
}
|
|
4677
4292
|
),
|
|
4678
|
-
description && /* @__PURE__ */
|
|
4293
|
+
description && /* @__PURE__ */ jsx47(
|
|
4679
4294
|
"p",
|
|
4680
4295
|
{
|
|
4681
4296
|
className: cn(
|
|
@@ -4685,21 +4300,21 @@ function EmptyState({
|
|
|
4685
4300
|
children: description
|
|
4686
4301
|
}
|
|
4687
4302
|
),
|
|
4688
|
-
action && /* @__PURE__ */
|
|
4303
|
+
action && /* @__PURE__ */ jsx47("div", { className: compact ? "mt-4" : "mt-6", children: action })
|
|
4689
4304
|
]
|
|
4690
4305
|
}
|
|
4691
4306
|
);
|
|
4692
4307
|
}
|
|
4693
4308
|
|
|
4694
4309
|
// src/action-panel.tsx
|
|
4695
|
-
import * as
|
|
4696
|
-
import { Fragment as
|
|
4310
|
+
import * as React34 from "react";
|
|
4311
|
+
import { Fragment as Fragment7, jsx as jsx48, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
4697
4312
|
var BORDER_INTENT = {
|
|
4698
4313
|
default: "border-l-primary",
|
|
4699
4314
|
warning: "border-l-intent-warning",
|
|
4700
4315
|
destructive: "border-l-intent-error"
|
|
4701
4316
|
};
|
|
4702
|
-
var ActionPanel =
|
|
4317
|
+
var ActionPanel = React34.forwardRef(
|
|
4703
4318
|
({
|
|
4704
4319
|
className,
|
|
4705
4320
|
title,
|
|
@@ -4708,7 +4323,7 @@ var ActionPanel = React38.forwardRef(
|
|
|
4708
4323
|
variant = "simple",
|
|
4709
4324
|
intent = "default",
|
|
4710
4325
|
...props
|
|
4711
|
-
}, ref) => /* @__PURE__ */
|
|
4326
|
+
}, ref) => /* @__PURE__ */ jsx48(
|
|
4712
4327
|
"div",
|
|
4713
4328
|
{
|
|
4714
4329
|
ref,
|
|
@@ -4719,16 +4334,16 @@ var ActionPanel = React38.forwardRef(
|
|
|
4719
4334
|
className
|
|
4720
4335
|
),
|
|
4721
4336
|
...props,
|
|
4722
|
-
children: variant === "split" ? /* @__PURE__ */
|
|
4723
|
-
/* @__PURE__ */
|
|
4724
|
-
/* @__PURE__ */
|
|
4725
|
-
description && /* @__PURE__ */
|
|
4337
|
+
children: variant === "split" ? /* @__PURE__ */ jsxs38(Fragment7, { children: [
|
|
4338
|
+
/* @__PURE__ */ jsxs38("div", { className: "min-w-0", children: [
|
|
4339
|
+
/* @__PURE__ */ jsx48("h3", { className: "font-semibold text-foreground", children: title }),
|
|
4340
|
+
description && /* @__PURE__ */ jsx48("p", { className: "mt-1 text-sm text-muted-foreground", children: description })
|
|
4726
4341
|
] }),
|
|
4727
|
-
action && /* @__PURE__ */
|
|
4728
|
-
] }) : /* @__PURE__ */
|
|
4729
|
-
/* @__PURE__ */
|
|
4730
|
-
description && /* @__PURE__ */
|
|
4731
|
-
action && /* @__PURE__ */
|
|
4342
|
+
action && /* @__PURE__ */ jsx48("div", { className: "flex-shrink-0", children: action })
|
|
4343
|
+
] }) : /* @__PURE__ */ jsxs38(Fragment7, { children: [
|
|
4344
|
+
/* @__PURE__ */ jsx48("h3", { className: "font-semibold text-foreground", children: title }),
|
|
4345
|
+
description && /* @__PURE__ */ jsx48("p", { className: "mt-1 text-sm text-muted-foreground", children: description }),
|
|
4346
|
+
action && /* @__PURE__ */ jsx48("div", { className: "mt-4", children: action })
|
|
4732
4347
|
] })
|
|
4733
4348
|
}
|
|
4734
4349
|
)
|
|
@@ -4736,14 +4351,14 @@ var ActionPanel = React38.forwardRef(
|
|
|
4736
4351
|
ActionPanel.displayName = "ActionPanel";
|
|
4737
4352
|
|
|
4738
4353
|
// src/divider.tsx
|
|
4739
|
-
import * as
|
|
4740
|
-
import { jsx as
|
|
4354
|
+
import * as React35 from "react";
|
|
4355
|
+
import { jsx as jsx49, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
4741
4356
|
var VARIANT_CLASSES = {
|
|
4742
4357
|
solid: "border-solid",
|
|
4743
4358
|
dashed: "border-dashed",
|
|
4744
4359
|
dotted: "border-dotted"
|
|
4745
4360
|
};
|
|
4746
|
-
var Divider =
|
|
4361
|
+
var Divider = React35.forwardRef(
|
|
4747
4362
|
({
|
|
4748
4363
|
className,
|
|
4749
4364
|
label,
|
|
@@ -4753,7 +4368,7 @@ var Divider = React39.forwardRef(
|
|
|
4753
4368
|
...props
|
|
4754
4369
|
}, ref) => {
|
|
4755
4370
|
if (orientation === "vertical") {
|
|
4756
|
-
return /* @__PURE__ */
|
|
4371
|
+
return /* @__PURE__ */ jsx49(
|
|
4757
4372
|
"div",
|
|
4758
4373
|
{
|
|
4759
4374
|
ref,
|
|
@@ -4770,7 +4385,7 @@ var Divider = React39.forwardRef(
|
|
|
4770
4385
|
);
|
|
4771
4386
|
}
|
|
4772
4387
|
if (!label) {
|
|
4773
|
-
return /* @__PURE__ */
|
|
4388
|
+
return /* @__PURE__ */ jsx49(
|
|
4774
4389
|
"div",
|
|
4775
4390
|
{
|
|
4776
4391
|
ref,
|
|
@@ -4784,7 +4399,7 @@ var Divider = React39.forwardRef(
|
|
|
4784
4399
|
}
|
|
4785
4400
|
);
|
|
4786
4401
|
}
|
|
4787
|
-
return /* @__PURE__ */
|
|
4402
|
+
return /* @__PURE__ */ jsxs39(
|
|
4788
4403
|
"div",
|
|
4789
4404
|
{
|
|
4790
4405
|
ref,
|
|
@@ -4792,7 +4407,7 @@ var Divider = React39.forwardRef(
|
|
|
4792
4407
|
role: "separator",
|
|
4793
4408
|
...props,
|
|
4794
4409
|
children: [
|
|
4795
|
-
labelPosition !== "left" && /* @__PURE__ */
|
|
4410
|
+
labelPosition !== "left" && /* @__PURE__ */ jsx49(
|
|
4796
4411
|
"div",
|
|
4797
4412
|
{
|
|
4798
4413
|
className: cn(
|
|
@@ -4801,7 +4416,7 @@ var Divider = React39.forwardRef(
|
|
|
4801
4416
|
)
|
|
4802
4417
|
}
|
|
4803
4418
|
),
|
|
4804
|
-
/* @__PURE__ */
|
|
4419
|
+
/* @__PURE__ */ jsx49(
|
|
4805
4420
|
"span",
|
|
4806
4421
|
{
|
|
4807
4422
|
className: cn(
|
|
@@ -4811,7 +4426,7 @@ var Divider = React39.forwardRef(
|
|
|
4811
4426
|
children: label
|
|
4812
4427
|
}
|
|
4813
4428
|
),
|
|
4814
|
-
labelPosition !== "right" && /* @__PURE__ */
|
|
4429
|
+
labelPosition !== "right" && /* @__PURE__ */ jsx49(
|
|
4815
4430
|
"div",
|
|
4816
4431
|
{
|
|
4817
4432
|
className: cn(
|
|
@@ -4827,44 +4442,17 @@ var Divider = React39.forwardRef(
|
|
|
4827
4442
|
);
|
|
4828
4443
|
Divider.displayName = "Divider";
|
|
4829
4444
|
|
|
4830
|
-
// src/container.tsx
|
|
4831
|
-
import * as React40 from "react";
|
|
4832
|
-
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
4833
|
-
var SIZE_CLASSES6 = {
|
|
4834
|
-
sm: "max-w-content-sm",
|
|
4835
|
-
md: "max-w-content-md",
|
|
4836
|
-
lg: "max-w-content-lg",
|
|
4837
|
-
xl: "max-w-content-xl",
|
|
4838
|
-
full: "max-w-full"
|
|
4839
|
-
};
|
|
4840
|
-
var Container = React40.forwardRef(
|
|
4841
|
-
({ className, size = "xl", padded = true, ...props }, ref) => /* @__PURE__ */ jsx57(
|
|
4842
|
-
"div",
|
|
4843
|
-
{
|
|
4844
|
-
ref,
|
|
4845
|
-
className: cn(
|
|
4846
|
-
"mx-auto w-full",
|
|
4847
|
-
SIZE_CLASSES6[size],
|
|
4848
|
-
padded && "px-4 sm:px-6 lg:px-8",
|
|
4849
|
-
className
|
|
4850
|
-
),
|
|
4851
|
-
...props
|
|
4852
|
-
}
|
|
4853
|
-
)
|
|
4854
|
-
);
|
|
4855
|
-
Container.displayName = "Container";
|
|
4856
|
-
|
|
4857
4445
|
// src/page-content.tsx
|
|
4858
|
-
import * as
|
|
4859
|
-
import { jsx as
|
|
4446
|
+
import * as React36 from "react";
|
|
4447
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
4860
4448
|
var GAP_CLASSES2 = {
|
|
4861
4449
|
sm: "space-y-4",
|
|
4862
4450
|
md: "space-y-6",
|
|
4863
4451
|
lg: "space-y-8",
|
|
4864
4452
|
none: ""
|
|
4865
4453
|
};
|
|
4866
|
-
var PageContent =
|
|
4867
|
-
({ className, gap = "md", padded = true, children, ...props }, ref) => /* @__PURE__ */
|
|
4454
|
+
var PageContent = React36.forwardRef(
|
|
4455
|
+
({ className, gap = "md", padded = true, children, ...props }, ref) => /* @__PURE__ */ jsx50(
|
|
4868
4456
|
"div",
|
|
4869
4457
|
{
|
|
4870
4458
|
ref,
|
|
@@ -4877,14 +4465,14 @@ var PageContent = React41.forwardRef(
|
|
|
4877
4465
|
PageContent.displayName = "PageContent";
|
|
4878
4466
|
|
|
4879
4467
|
// src/media-object.tsx
|
|
4880
|
-
import * as
|
|
4881
|
-
import { jsx as
|
|
4468
|
+
import * as React37 from "react";
|
|
4469
|
+
import { jsx as jsx51, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
4882
4470
|
var MEDIA_SIZE = {
|
|
4883
4471
|
sm: "h-8 w-8",
|
|
4884
4472
|
md: "h-10 w-10",
|
|
4885
4473
|
lg: "h-12 w-12"
|
|
4886
4474
|
};
|
|
4887
|
-
var MediaObject =
|
|
4475
|
+
var MediaObject = React37.forwardRef(
|
|
4888
4476
|
({
|
|
4889
4477
|
className,
|
|
4890
4478
|
media,
|
|
@@ -4897,7 +4485,7 @@ var MediaObject = React42.forwardRef(
|
|
|
4897
4485
|
...props
|
|
4898
4486
|
}, ref) => {
|
|
4899
4487
|
if (stacked) {
|
|
4900
|
-
return /* @__PURE__ */
|
|
4488
|
+
return /* @__PURE__ */ jsxs40(
|
|
4901
4489
|
"div",
|
|
4902
4490
|
{
|
|
4903
4491
|
ref,
|
|
@@ -4907,17 +4495,17 @@ var MediaObject = React42.forwardRef(
|
|
|
4907
4495
|
),
|
|
4908
4496
|
...props,
|
|
4909
4497
|
children: [
|
|
4910
|
-
/* @__PURE__ */
|
|
4911
|
-
/* @__PURE__ */
|
|
4912
|
-
title && /* @__PURE__ */
|
|
4913
|
-
description && /* @__PURE__ */
|
|
4498
|
+
/* @__PURE__ */ jsx51("div", { className: cn("flex-shrink-0", MEDIA_SIZE[mediaSize]), children: media }),
|
|
4499
|
+
/* @__PURE__ */ jsxs40("div", { className: "min-w-0", children: [
|
|
4500
|
+
title && /* @__PURE__ */ jsx51("p", { className: "font-medium text-foreground", children: title }),
|
|
4501
|
+
description && /* @__PURE__ */ jsx51("p", { className: "text-sm text-muted-foreground", children: description })
|
|
4914
4502
|
] }),
|
|
4915
|
-
action && /* @__PURE__ */
|
|
4503
|
+
action && /* @__PURE__ */ jsx51("div", { children: action })
|
|
4916
4504
|
]
|
|
4917
4505
|
}
|
|
4918
4506
|
);
|
|
4919
4507
|
}
|
|
4920
|
-
return /* @__PURE__ */
|
|
4508
|
+
return /* @__PURE__ */ jsxs40(
|
|
4921
4509
|
"div",
|
|
4922
4510
|
{
|
|
4923
4511
|
ref,
|
|
@@ -4928,12 +4516,12 @@ var MediaObject = React42.forwardRef(
|
|
|
4928
4516
|
),
|
|
4929
4517
|
...props,
|
|
4930
4518
|
children: [
|
|
4931
|
-
/* @__PURE__ */
|
|
4932
|
-
/* @__PURE__ */
|
|
4933
|
-
title && /* @__PURE__ */
|
|
4934
|
-
description && /* @__PURE__ */
|
|
4519
|
+
/* @__PURE__ */ jsx51("div", { className: cn("flex-shrink-0", MEDIA_SIZE[mediaSize]), children: media }),
|
|
4520
|
+
/* @__PURE__ */ jsxs40("div", { className: "min-w-0 flex-1", children: [
|
|
4521
|
+
title && /* @__PURE__ */ jsx51("p", { className: "font-medium text-foreground", children: title }),
|
|
4522
|
+
description && /* @__PURE__ */ jsx51("p", { className: "text-sm text-muted-foreground", children: description })
|
|
4935
4523
|
] }),
|
|
4936
|
-
action && /* @__PURE__ */
|
|
4524
|
+
action && /* @__PURE__ */ jsx51("div", { className: "flex-shrink-0", children: action })
|
|
4937
4525
|
]
|
|
4938
4526
|
}
|
|
4939
4527
|
);
|
|
@@ -4942,16 +4530,16 @@ var MediaObject = React42.forwardRef(
|
|
|
4942
4530
|
MediaObject.displayName = "MediaObject";
|
|
4943
4531
|
|
|
4944
4532
|
// src/page-patterns.tsx
|
|
4945
|
-
import * as
|
|
4946
|
-
import { jsx as
|
|
4533
|
+
import * as React38 from "react";
|
|
4534
|
+
import { jsx as jsx52, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
4947
4535
|
var GUTTER_WIDTHS = {
|
|
4948
4536
|
/** A single column of reading or a short list. */
|
|
4949
4537
|
narrow: "max-w-content-md",
|
|
4950
4538
|
/** A detail or list page with a side panel. */
|
|
4951
4539
|
default: "max-w-content-xl"
|
|
4952
4540
|
};
|
|
4953
|
-
var PageGutter =
|
|
4954
|
-
({ className, width = "default", ...props }, ref) => /* @__PURE__ */
|
|
4541
|
+
var PageGutter = React38.forwardRef(
|
|
4542
|
+
({ className, width = "default", ...props }, ref) => /* @__PURE__ */ jsx52(
|
|
4955
4543
|
"div",
|
|
4956
4544
|
{
|
|
4957
4545
|
ref,
|
|
@@ -4965,29 +4553,29 @@ var PageGutter = React43.forwardRef(
|
|
|
4965
4553
|
)
|
|
4966
4554
|
);
|
|
4967
4555
|
PageGutter.displayName = "PageGutter";
|
|
4968
|
-
var PageHeading =
|
|
4969
|
-
({ className, title, description, meta, actions, ...props }, ref) => /* @__PURE__ */
|
|
4556
|
+
var PageHeading = React38.forwardRef(
|
|
4557
|
+
({ className, title, description, meta, actions, ...props }, ref) => /* @__PURE__ */ jsxs41(
|
|
4970
4558
|
"header",
|
|
4971
4559
|
{
|
|
4972
4560
|
ref,
|
|
4973
4561
|
className: cn(
|
|
4974
|
-
"flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",
|
|
4562
|
+
"flex flex-col gap-4 sm:flex-row sm:flex-wrap sm:items-start sm:justify-between",
|
|
4975
4563
|
className
|
|
4976
4564
|
),
|
|
4977
4565
|
...props,
|
|
4978
4566
|
children: [
|
|
4979
|
-
/* @__PURE__ */
|
|
4980
|
-
/* @__PURE__ */
|
|
4981
|
-
description && /* @__PURE__ */
|
|
4982
|
-
meta && /* @__PURE__ */
|
|
4567
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex min-w-0 flex-1 flex-col gap-1 sm:basis-80", children: [
|
|
4568
|
+
/* @__PURE__ */ jsx52("h1", { className: "break-words text-2xl font-semibold tracking-tight text-foreground sm:text-3xl", children: title }),
|
|
4569
|
+
description && /* @__PURE__ */ jsx52("p", { className: "break-words text-sm text-muted-foreground sm:text-base", children: description }),
|
|
4570
|
+
meta && /* @__PURE__ */ jsx52("div", { className: "mt-2 flex flex-wrap gap-2", children: meta })
|
|
4983
4571
|
] }),
|
|
4984
|
-
actions && /* @__PURE__ */
|
|
4572
|
+
actions && /* @__PURE__ */ jsx52("div", { className: "flex max-w-full shrink-0 flex-wrap items-center gap-2", children: actions })
|
|
4985
4573
|
]
|
|
4986
4574
|
}
|
|
4987
4575
|
)
|
|
4988
4576
|
);
|
|
4989
4577
|
PageHeading.displayName = "PageHeading";
|
|
4990
|
-
var SectionCard =
|
|
4578
|
+
var SectionCard = React38.forwardRef(
|
|
4991
4579
|
({
|
|
4992
4580
|
className,
|
|
4993
4581
|
title,
|
|
@@ -5000,14 +4588,14 @@ var SectionCard = React43.forwardRef(
|
|
|
5000
4588
|
}, ref) => {
|
|
5001
4589
|
const pad = size === "compact" ? "p-4" : "p-4 sm:p-6";
|
|
5002
4590
|
const hasHead = Boolean(title || description || actions);
|
|
5003
|
-
return /* @__PURE__ */
|
|
4591
|
+
return /* @__PURE__ */ jsxs41(
|
|
5004
4592
|
Card,
|
|
5005
4593
|
{
|
|
5006
4594
|
ref,
|
|
5007
4595
|
className: cn("min-w-0 overflow-hidden", className),
|
|
5008
4596
|
...props,
|
|
5009
4597
|
children: [
|
|
5010
|
-
hasHead && /* @__PURE__ */
|
|
4598
|
+
hasHead && /* @__PURE__ */ jsxs41(
|
|
5011
4599
|
"div",
|
|
5012
4600
|
{
|
|
5013
4601
|
className: cn(
|
|
@@ -5017,8 +4605,8 @@ var SectionCard = React43.forwardRef(
|
|
|
5017
4605
|
flush && children ? "border-b border-border" : ""
|
|
5018
4606
|
),
|
|
5019
4607
|
children: [
|
|
5020
|
-
/* @__PURE__ */
|
|
5021
|
-
title && /* @__PURE__ */
|
|
4608
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
4609
|
+
title && /* @__PURE__ */ jsx52(
|
|
5022
4610
|
"h2",
|
|
5023
4611
|
{
|
|
5024
4612
|
className: cn(
|
|
@@ -5028,36 +4616,36 @@ var SectionCard = React43.forwardRef(
|
|
|
5028
4616
|
children: title
|
|
5029
4617
|
}
|
|
5030
4618
|
),
|
|
5031
|
-
description && /* @__PURE__ */
|
|
4619
|
+
description && /* @__PURE__ */ jsx52("p", { className: "text-sm text-muted-foreground", children: description })
|
|
5032
4620
|
] }),
|
|
5033
|
-
actions && /* @__PURE__ */
|
|
4621
|
+
actions && /* @__PURE__ */ jsx52("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: actions })
|
|
5034
4622
|
]
|
|
5035
4623
|
}
|
|
5036
4624
|
),
|
|
5037
|
-
children !== void 0 && children !== null && /* @__PURE__ */
|
|
4625
|
+
children !== void 0 && children !== null && /* @__PURE__ */ jsx52("div", { className: cn("min-w-0", !flush && pad), children })
|
|
5038
4626
|
]
|
|
5039
4627
|
}
|
|
5040
4628
|
);
|
|
5041
4629
|
}
|
|
5042
4630
|
);
|
|
5043
4631
|
SectionCard.displayName = "SectionCard";
|
|
5044
|
-
var TabbedCard =
|
|
5045
|
-
({ className, tabs, tabsLabel, children, ...props }, ref) => /* @__PURE__ */
|
|
4632
|
+
var TabbedCard = React38.forwardRef(
|
|
4633
|
+
({ className, tabs, tabsLabel, children, ...props }, ref) => /* @__PURE__ */ jsxs41(
|
|
5046
4634
|
Card,
|
|
5047
4635
|
{
|
|
5048
4636
|
ref,
|
|
5049
4637
|
className: cn("min-w-0 overflow-hidden", className),
|
|
5050
4638
|
...props,
|
|
5051
4639
|
children: [
|
|
5052
|
-
/* @__PURE__ */
|
|
5053
|
-
/* @__PURE__ */
|
|
4640
|
+
/* @__PURE__ */ jsx52("div", { className: "px-4 pt-3 sm:px-6", children: /* @__PURE__ */ jsx52(TabBar, { variant: "underline", "aria-label": tabsLabel, children: tabs }) }),
|
|
4641
|
+
/* @__PURE__ */ jsx52("div", { className: "min-w-0 p-4 sm:p-6", children })
|
|
5054
4642
|
]
|
|
5055
4643
|
}
|
|
5056
4644
|
)
|
|
5057
4645
|
);
|
|
5058
4646
|
TabbedCard.displayName = "TabbedCard";
|
|
5059
|
-
var SidePanelLayout =
|
|
5060
|
-
({ className, aside, asideLabel, children, ...props }, ref) => /* @__PURE__ */
|
|
4647
|
+
var SidePanelLayout = React38.forwardRef(
|
|
4648
|
+
({ className, aside, asideLabel, children, ...props }, ref) => /* @__PURE__ */ jsxs41(
|
|
5061
4649
|
"div",
|
|
5062
4650
|
{
|
|
5063
4651
|
ref,
|
|
@@ -5067,8 +4655,8 @@ var SidePanelLayout = React43.forwardRef(
|
|
|
5067
4655
|
),
|
|
5068
4656
|
...props,
|
|
5069
4657
|
children: [
|
|
5070
|
-
/* @__PURE__ */
|
|
5071
|
-
/* @__PURE__ */
|
|
4658
|
+
/* @__PURE__ */ jsx52("div", { className: "flex min-w-0 flex-col gap-6 lg:col-span-2", children }),
|
|
4659
|
+
/* @__PURE__ */ jsx52(
|
|
5072
4660
|
"aside",
|
|
5073
4661
|
{
|
|
5074
4662
|
"aria-label": asideLabel,
|
|
@@ -5082,46 +4670,18 @@ var SidePanelLayout = React43.forwardRef(
|
|
|
5082
4670
|
);
|
|
5083
4671
|
SidePanelLayout.displayName = "SidePanelLayout";
|
|
5084
4672
|
|
|
5085
|
-
// src/intent-badge.tsx
|
|
5086
|
-
import * as React44 from "react";
|
|
5087
|
-
import { jsx as jsx61 } from "react/jsx-runtime";
|
|
5088
|
-
var INTENT_CLASSES = {
|
|
5089
|
-
neutral: "bg-muted text-muted-foreground border-border",
|
|
5090
|
-
// the primary tint is lighter than the intents': `primary-text` on a 10%
|
|
5091
|
-
// tint over the page grey drew 4.46:1 (W1 sheet), under AA
|
|
5092
|
-
primary: "bg-primary/5 text-primary-text border-primary/30",
|
|
5093
|
-
...INTENT_SUBTLE_STYLES
|
|
5094
|
-
};
|
|
5095
|
-
var IntentBadge = React44.forwardRef(
|
|
5096
|
-
({ className, intent = "neutral", children, ...props }, ref) => /* @__PURE__ */ jsx61(
|
|
5097
|
-
"span",
|
|
5098
|
-
{
|
|
5099
|
-
ref,
|
|
5100
|
-
title: typeof children === "string" ? children : void 0,
|
|
5101
|
-
className: cn(
|
|
5102
|
-
"inline-flex max-w-full items-center rounded-full border px-2.5 py-0.5 text-xs font-medium",
|
|
5103
|
-
INTENT_CLASSES[intent],
|
|
5104
|
-
className
|
|
5105
|
-
),
|
|
5106
|
-
...props,
|
|
5107
|
-
children: /* @__PURE__ */ jsx61("span", { className: "truncate", children: isEmptyValue(children) ? /* @__PURE__ */ jsx61(EmptyValue, {}) : children })
|
|
5108
|
-
}
|
|
5109
|
-
)
|
|
5110
|
-
);
|
|
5111
|
-
IntentBadge.displayName = "IntentBadge";
|
|
5112
|
-
|
|
5113
4673
|
// src/overflow-menu.tsx
|
|
5114
|
-
import * as
|
|
5115
|
-
import { Fragment as
|
|
4674
|
+
import * as React39 from "react";
|
|
4675
|
+
import { Fragment as Fragment8, jsx as jsx53, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
5116
4676
|
function OverflowMenu({
|
|
5117
4677
|
label,
|
|
5118
4678
|
items,
|
|
5119
4679
|
defaultOpen = false,
|
|
5120
4680
|
className
|
|
5121
4681
|
}) {
|
|
5122
|
-
const [open, setOpen] =
|
|
5123
|
-
const menuId =
|
|
5124
|
-
|
|
4682
|
+
const [open, setOpen] = React39.useState(defaultOpen);
|
|
4683
|
+
const menuId = React39.useId();
|
|
4684
|
+
React39.useEffect(() => {
|
|
5125
4685
|
if (!open) return;
|
|
5126
4686
|
const onKey = (e) => {
|
|
5127
4687
|
if (e.key === "Escape") setOpen(false);
|
|
@@ -5129,8 +4689,8 @@ function OverflowMenu({
|
|
|
5129
4689
|
document.addEventListener("keydown", onKey);
|
|
5130
4690
|
return () => document.removeEventListener("keydown", onKey);
|
|
5131
4691
|
}, [open]);
|
|
5132
|
-
return /* @__PURE__ */
|
|
5133
|
-
/* @__PURE__ */
|
|
4692
|
+
return /* @__PURE__ */ jsxs42("div", { className: cn("relative inline-block", className), children: [
|
|
4693
|
+
/* @__PURE__ */ jsx53(
|
|
5134
4694
|
Button,
|
|
5135
4695
|
{
|
|
5136
4696
|
variant: "outline",
|
|
@@ -5140,11 +4700,11 @@ function OverflowMenu({
|
|
|
5140
4700
|
"aria-expanded": open,
|
|
5141
4701
|
"aria-controls": open ? menuId : void 0,
|
|
5142
4702
|
onClick: () => setOpen(!open),
|
|
5143
|
-
children: /* @__PURE__ */
|
|
4703
|
+
children: /* @__PURE__ */ jsx53(Icon, { name: "ellipsis", size: "sm" })
|
|
5144
4704
|
}
|
|
5145
4705
|
),
|
|
5146
|
-
open && /* @__PURE__ */
|
|
5147
|
-
/* @__PURE__ */
|
|
4706
|
+
open && /* @__PURE__ */ jsxs42(Fragment8, { children: [
|
|
4707
|
+
/* @__PURE__ */ jsx53(
|
|
5148
4708
|
"div",
|
|
5149
4709
|
{
|
|
5150
4710
|
"aria-hidden": "true",
|
|
@@ -5152,14 +4712,14 @@ function OverflowMenu({
|
|
|
5152
4712
|
onClick: () => setOpen(false)
|
|
5153
4713
|
}
|
|
5154
4714
|
),
|
|
5155
|
-
/* @__PURE__ */
|
|
4715
|
+
/* @__PURE__ */ jsx53(
|
|
5156
4716
|
"div",
|
|
5157
4717
|
{
|
|
5158
4718
|
id: menuId,
|
|
5159
4719
|
role: "menu",
|
|
5160
4720
|
"aria-label": label,
|
|
5161
4721
|
className: "z-dropdown absolute right-0 top-full mt-2 flex w-56 max-w-[calc(100vw-2rem)] flex-col rounded-lg border border-border bg-popover p-1 text-popover-foreground shadow-lg",
|
|
5162
|
-
children: items.map((item) => /* @__PURE__ */
|
|
4722
|
+
children: items.map((item) => /* @__PURE__ */ jsxs42(
|
|
5163
4723
|
"button",
|
|
5164
4724
|
{
|
|
5165
4725
|
type: "button",
|
|
@@ -5174,8 +4734,8 @@ function OverflowMenu({
|
|
|
5174
4734
|
item.destructive ? "text-intent-error-foreground" : "text-popover-foreground"
|
|
5175
4735
|
),
|
|
5176
4736
|
children: [
|
|
5177
|
-
item.icon && /* @__PURE__ */
|
|
5178
|
-
/* @__PURE__ */
|
|
4737
|
+
item.icon && /* @__PURE__ */ jsx53(Icon, { name: item.icon, size: "sm" }),
|
|
4738
|
+
/* @__PURE__ */ jsx53("span", { className: "min-w-0 truncate", children: item.label })
|
|
5179
4739
|
]
|
|
5180
4740
|
},
|
|
5181
4741
|
item.label
|
|
@@ -5187,9 +4747,9 @@ function OverflowMenu({
|
|
|
5187
4747
|
}
|
|
5188
4748
|
|
|
5189
4749
|
// src/stage-list.tsx
|
|
5190
|
-
import * as
|
|
5191
|
-
import { jsx as
|
|
5192
|
-
var StageList =
|
|
4750
|
+
import * as React40 from "react";
|
|
4751
|
+
import { jsx as jsx54, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
4752
|
+
var StageList = React40.forwardRef(
|
|
5193
4753
|
({ stages, outcomes = [], current, ...props }, ref) => {
|
|
5194
4754
|
const at = stages.findIndex((s) => s.value === current);
|
|
5195
4755
|
const outcome = outcomes.find((s) => s.value === current);
|
|
@@ -5197,7 +4757,7 @@ var StageList = React46.forwardRef(
|
|
|
5197
4757
|
throw new Error(
|
|
5198
4758
|
`StageList: current "${current}" is not one of the stages (${stages.map((s) => s.value).join(", ")}) or outcomes (${outcomes.map((s) => s.value).join(", ") || "none"})`
|
|
5199
4759
|
);
|
|
5200
|
-
return /* @__PURE__ */
|
|
4760
|
+
return /* @__PURE__ */ jsxs43(
|
|
5201
4761
|
Stepper,
|
|
5202
4762
|
{
|
|
5203
4763
|
ref,
|
|
@@ -5206,7 +4766,7 @@ var StageList = React46.forwardRef(
|
|
|
5206
4766
|
activeStep: outcome ? stages.length : at,
|
|
5207
4767
|
...props,
|
|
5208
4768
|
children: [
|
|
5209
|
-
stages.map((s) => /* @__PURE__ */
|
|
4769
|
+
stages.map((s) => /* @__PURE__ */ jsx54(
|
|
5210
4770
|
StepperStep,
|
|
5211
4771
|
{
|
|
5212
4772
|
label: s.label,
|
|
@@ -5214,7 +4774,7 @@ var StageList = React46.forwardRef(
|
|
|
5214
4774
|
},
|
|
5215
4775
|
s.value
|
|
5216
4776
|
)),
|
|
5217
|
-
outcome && /* @__PURE__ */
|
|
4777
|
+
outcome && /* @__PURE__ */ jsx54(StepperStep, { label: outcome.label, error: true }, outcome.value)
|
|
5218
4778
|
]
|
|
5219
4779
|
}
|
|
5220
4780
|
);
|
|
@@ -5223,15 +4783,15 @@ var StageList = React46.forwardRef(
|
|
|
5223
4783
|
StageList.displayName = "StageList";
|
|
5224
4784
|
|
|
5225
4785
|
// src/clamped-list.tsx
|
|
5226
|
-
import * as
|
|
5227
|
-
import { jsx as
|
|
4786
|
+
import * as React41 from "react";
|
|
4787
|
+
import { jsx as jsx55, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
5228
4788
|
var MAX_HEIGHTS = {
|
|
5229
4789
|
sm: "max-h-48",
|
|
5230
4790
|
md: "max-h-72",
|
|
5231
4791
|
lg: "max-h-96"
|
|
5232
4792
|
};
|
|
5233
|
-
var ClampedList =
|
|
5234
|
-
({ className, label, maxHeight = "md", children, ...props }, ref) => /* @__PURE__ */
|
|
4793
|
+
var ClampedList = React41.forwardRef(
|
|
4794
|
+
({ className, label, maxHeight = "md", children, ...props }, ref) => /* @__PURE__ */ jsxs44(
|
|
5235
4795
|
"div",
|
|
5236
4796
|
{
|
|
5237
4797
|
ref,
|
|
@@ -5247,13 +4807,13 @@ var ClampedList = React47.forwardRef(
|
|
|
5247
4807
|
...props,
|
|
5248
4808
|
children: [
|
|
5249
4809
|
children,
|
|
5250
|
-
/* @__PURE__ */
|
|
4810
|
+
/* @__PURE__ */ jsx55(
|
|
5251
4811
|
"div",
|
|
5252
4812
|
{
|
|
5253
4813
|
"aria-hidden": "true",
|
|
5254
4814
|
"data-scroll-hint": "y",
|
|
5255
4815
|
className: SCROLL_HINT_Y_MARK,
|
|
5256
|
-
children: /* @__PURE__ */
|
|
4816
|
+
children: /* @__PURE__ */ jsx55("span", { className: "flex items-center rounded-full border border-border bg-card px-2 text-muted-foreground shadow-sm", children: /* @__PURE__ */ jsx55(Icon, { name: "chevron-down", size: "sm" }) })
|
|
5257
4817
|
}
|
|
5258
4818
|
)
|
|
5259
4819
|
]
|
|
@@ -5263,10 +4823,10 @@ var ClampedList = React47.forwardRef(
|
|
|
5263
4823
|
ClampedList.displayName = "ClampedList";
|
|
5264
4824
|
|
|
5265
4825
|
// src/textarea.tsx
|
|
5266
|
-
import * as
|
|
5267
|
-
import { jsx as
|
|
4826
|
+
import * as React42 from "react";
|
|
4827
|
+
import { jsx as jsx56, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
5268
4828
|
var lengthOf = (v) => v === void 0 ? 0 : Array.isArray(v) ? v.join(",").length : String(v).length;
|
|
5269
|
-
var Textarea =
|
|
4829
|
+
var Textarea = React42.forwardRef(
|
|
5270
4830
|
({
|
|
5271
4831
|
className,
|
|
5272
4832
|
error,
|
|
@@ -5281,11 +4841,11 @@ var Textarea = React48.forwardRef(
|
|
|
5281
4841
|
onChange,
|
|
5282
4842
|
...props
|
|
5283
4843
|
}, ref) => {
|
|
5284
|
-
const countId =
|
|
5285
|
-
const [typed, setTyped] =
|
|
4844
|
+
const countId = React42.useId();
|
|
4845
|
+
const [typed, setTyped] = React42.useState(() => lengthOf(defaultValue));
|
|
5286
4846
|
const count = value === void 0 ? typed : lengthOf(value);
|
|
5287
4847
|
const aria = fieldAria(error, errorMessageId);
|
|
5288
|
-
const field = /* @__PURE__ */
|
|
4848
|
+
const field = /* @__PURE__ */ jsx56(
|
|
5289
4849
|
"textarea",
|
|
5290
4850
|
{
|
|
5291
4851
|
ref,
|
|
@@ -5310,9 +4870,9 @@ var Textarea = React48.forwardRef(
|
|
|
5310
4870
|
);
|
|
5311
4871
|
if (!showCount) return field;
|
|
5312
4872
|
const atLimit = maxLength !== void 0 && count >= maxLength;
|
|
5313
|
-
return /* @__PURE__ */
|
|
4873
|
+
return /* @__PURE__ */ jsxs45("div", { className: "w-full min-w-0 space-y-1", children: [
|
|
5314
4874
|
field,
|
|
5315
|
-
/* @__PURE__ */
|
|
4875
|
+
/* @__PURE__ */ jsx56(
|
|
5316
4876
|
"p",
|
|
5317
4877
|
{
|
|
5318
4878
|
id: countId,
|
|
@@ -5329,8 +4889,8 @@ var Textarea = React48.forwardRef(
|
|
|
5329
4889
|
Textarea.displayName = "Textarea";
|
|
5330
4890
|
|
|
5331
4891
|
// src/select.tsx
|
|
5332
|
-
import * as
|
|
5333
|
-
import { jsx as
|
|
4892
|
+
import * as React43 from "react";
|
|
4893
|
+
import { jsx as jsx57, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
5334
4894
|
var CHEVRON_END = {
|
|
5335
4895
|
sm: "right-2.5",
|
|
5336
4896
|
md: "right-3",
|
|
@@ -5341,7 +4901,7 @@ var END_PADDING = {
|
|
|
5341
4901
|
md: "pr-9",
|
|
5342
4902
|
lg: "pr-10"
|
|
5343
4903
|
};
|
|
5344
|
-
var Select =
|
|
4904
|
+
var Select = React43.forwardRef(
|
|
5345
4905
|
({
|
|
5346
4906
|
className,
|
|
5347
4907
|
options,
|
|
@@ -5359,8 +4919,8 @@ var Select = React49.forwardRef(
|
|
|
5359
4919
|
"Select: pass `options` or `<option>` children, not both"
|
|
5360
4920
|
);
|
|
5361
4921
|
const showsPlaceholder = placeholder !== void 0 && value === void 0 && defaultValue === void 0;
|
|
5362
|
-
return /* @__PURE__ */
|
|
5363
|
-
/* @__PURE__ */
|
|
4922
|
+
return /* @__PURE__ */ jsxs46("div", { className: "relative w-full min-w-0", children: [
|
|
4923
|
+
/* @__PURE__ */ jsxs46(
|
|
5364
4924
|
"select",
|
|
5365
4925
|
{
|
|
5366
4926
|
ref,
|
|
@@ -5377,13 +4937,13 @@ var Select = React49.forwardRef(
|
|
|
5377
4937
|
),
|
|
5378
4938
|
...props,
|
|
5379
4939
|
children: [
|
|
5380
|
-
placeholder !== void 0 && /* @__PURE__ */
|
|
5381
|
-
options?.map((o) => /* @__PURE__ */
|
|
4940
|
+
placeholder !== void 0 && /* @__PURE__ */ jsx57("option", { value: "", disabled: true, hidden: true, children: placeholder }),
|
|
4941
|
+
options?.map((o) => /* @__PURE__ */ jsx57("option", { value: o.value, disabled: o.disabled, children: o.label }, o.value)),
|
|
5382
4942
|
children
|
|
5383
4943
|
]
|
|
5384
4944
|
}
|
|
5385
4945
|
),
|
|
5386
|
-
/* @__PURE__ */
|
|
4946
|
+
/* @__PURE__ */ jsx57(
|
|
5387
4947
|
Icon,
|
|
5388
4948
|
{
|
|
5389
4949
|
name: "chevron-down",
|
|
@@ -5400,13 +4960,13 @@ var Select = React49.forwardRef(
|
|
|
5400
4960
|
Select.displayName = "Select";
|
|
5401
4961
|
|
|
5402
4962
|
// src/checkbox.tsx
|
|
5403
|
-
import * as
|
|
5404
|
-
import { jsx as
|
|
4963
|
+
import * as React44 from "react";
|
|
4964
|
+
import { jsx as jsx58, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
5405
4965
|
var BOX = {
|
|
5406
4966
|
sm: "size-4",
|
|
5407
4967
|
md: "size-5"
|
|
5408
4968
|
};
|
|
5409
|
-
var Checkbox =
|
|
4969
|
+
var Checkbox = React44.forwardRef(
|
|
5410
4970
|
({
|
|
5411
4971
|
className,
|
|
5412
4972
|
indeterminate = false,
|
|
@@ -5420,23 +4980,23 @@ var Checkbox = React50.forwardRef(
|
|
|
5420
4980
|
id,
|
|
5421
4981
|
...props
|
|
5422
4982
|
}, ref) => {
|
|
5423
|
-
const autoId =
|
|
4983
|
+
const autoId = React44.useId();
|
|
5424
4984
|
const inputId = id ?? autoId;
|
|
5425
4985
|
const descId = `${inputId}-description`;
|
|
5426
4986
|
const errorId = `${inputId}-error`;
|
|
5427
|
-
const inner =
|
|
5428
|
-
|
|
4987
|
+
const inner = React44.useRef(null);
|
|
4988
|
+
React44.useImperativeHandle(ref, () => {
|
|
5429
4989
|
if (!inner.current) throw new Error("Checkbox: the input is not mounted");
|
|
5430
4990
|
return inner.current;
|
|
5431
4991
|
});
|
|
5432
|
-
|
|
4992
|
+
React44.useEffect(() => {
|
|
5433
4993
|
if (inner.current) inner.current.indeterminate = indeterminate;
|
|
5434
4994
|
}, [indeterminate]);
|
|
5435
4995
|
const hasError = Boolean(error);
|
|
5436
4996
|
const message = typeof error === "string" ? error : void 0;
|
|
5437
4997
|
const describedBy = [description ? descId : void 0, message ? errorId : void 0].filter(Boolean).join(" ") || void 0;
|
|
5438
|
-
return /* @__PURE__ */
|
|
5439
|
-
/* @__PURE__ */
|
|
4998
|
+
return /* @__PURE__ */ jsxs47("div", { className: cn("flex items-start gap-2", className), children: [
|
|
4999
|
+
/* @__PURE__ */ jsxs47(
|
|
5440
5000
|
"span",
|
|
5441
5001
|
{
|
|
5442
5002
|
className: cn(
|
|
@@ -5444,7 +5004,7 @@ var Checkbox = React50.forwardRef(
|
|
|
5444
5004
|
size === "sm" ? "mt-0.5" : "mt-px"
|
|
5445
5005
|
),
|
|
5446
5006
|
children: [
|
|
5447
|
-
/* @__PURE__ */
|
|
5007
|
+
/* @__PURE__ */ jsx58(
|
|
5448
5008
|
"input",
|
|
5449
5009
|
{
|
|
5450
5010
|
ref: inner,
|
|
@@ -5471,13 +5031,13 @@ var Checkbox = React50.forwardRef(
|
|
|
5471
5031
|
...props
|
|
5472
5032
|
}
|
|
5473
5033
|
),
|
|
5474
|
-
indeterminate ? /* @__PURE__ */
|
|
5034
|
+
indeterminate ? /* @__PURE__ */ jsx58(
|
|
5475
5035
|
"span",
|
|
5476
5036
|
{
|
|
5477
5037
|
"aria-hidden": "true",
|
|
5478
5038
|
className: "pointer-events-none absolute h-0.5 w-1/2 rounded-full bg-primary-foreground"
|
|
5479
5039
|
}
|
|
5480
|
-
) : /* @__PURE__ */
|
|
5040
|
+
) : /* @__PURE__ */ jsx58(
|
|
5481
5041
|
Icon,
|
|
5482
5042
|
{
|
|
5483
5043
|
name: "check",
|
|
@@ -5488,8 +5048,8 @@ var Checkbox = React50.forwardRef(
|
|
|
5488
5048
|
]
|
|
5489
5049
|
}
|
|
5490
5050
|
),
|
|
5491
|
-
(label || description || message) && /* @__PURE__ */
|
|
5492
|
-
label && /* @__PURE__ */
|
|
5051
|
+
(label || description || message) && /* @__PURE__ */ jsxs47("div", { className: "min-w-0 space-y-0.5", children: [
|
|
5052
|
+
label && /* @__PURE__ */ jsx58(
|
|
5493
5053
|
Label,
|
|
5494
5054
|
{
|
|
5495
5055
|
htmlFor: inputId,
|
|
@@ -5502,14 +5062,14 @@ var Checkbox = React50.forwardRef(
|
|
|
5502
5062
|
children: label
|
|
5503
5063
|
}
|
|
5504
5064
|
),
|
|
5505
|
-
description && /* @__PURE__ */
|
|
5506
|
-
message && /* @__PURE__ */
|
|
5065
|
+
description && /* @__PURE__ */ jsx58("p", { id: descId, className: "text-xs text-muted-foreground", children: description }),
|
|
5066
|
+
message && /* @__PURE__ */ jsx58("p", { id: errorId, className: "text-intent-error-foreground text-xs", children: message })
|
|
5507
5067
|
] })
|
|
5508
5068
|
] });
|
|
5509
5069
|
}
|
|
5510
5070
|
);
|
|
5511
5071
|
Checkbox.displayName = "Checkbox";
|
|
5512
|
-
var CheckboxGroup =
|
|
5072
|
+
var CheckboxGroup = React44.forwardRef(
|
|
5513
5073
|
({
|
|
5514
5074
|
className,
|
|
5515
5075
|
legend,
|
|
@@ -5522,8 +5082,8 @@ var CheckboxGroup = React50.forwardRef(
|
|
|
5522
5082
|
size = "md",
|
|
5523
5083
|
...props
|
|
5524
5084
|
}, ref) => {
|
|
5525
|
-
const errorId =
|
|
5526
|
-
return /* @__PURE__ */
|
|
5085
|
+
const errorId = React44.useId();
|
|
5086
|
+
return /* @__PURE__ */ jsxs47(
|
|
5527
5087
|
"fieldset",
|
|
5528
5088
|
{
|
|
5529
5089
|
ref,
|
|
@@ -5532,14 +5092,14 @@ var CheckboxGroup = React50.forwardRef(
|
|
|
5532
5092
|
className: cn("min-w-0 space-y-2", className),
|
|
5533
5093
|
...props,
|
|
5534
5094
|
children: [
|
|
5535
|
-
/* @__PURE__ */
|
|
5536
|
-
/* @__PURE__ */
|
|
5095
|
+
/* @__PURE__ */ jsx58("legend", { className: "mb-2 text-sm font-medium text-foreground", children: legend }),
|
|
5096
|
+
/* @__PURE__ */ jsx58(
|
|
5537
5097
|
"div",
|
|
5538
5098
|
{
|
|
5539
5099
|
className: cn(
|
|
5540
5100
|
orientation === "horizontal" ? "flex flex-wrap gap-x-6 gap-y-2" : "space-y-2"
|
|
5541
5101
|
),
|
|
5542
|
-
children: options.map((o) => /* @__PURE__ */
|
|
5102
|
+
children: options.map((o) => /* @__PURE__ */ jsx58(
|
|
5543
5103
|
Checkbox,
|
|
5544
5104
|
{
|
|
5545
5105
|
name,
|
|
@@ -5559,7 +5119,7 @@ var CheckboxGroup = React50.forwardRef(
|
|
|
5559
5119
|
))
|
|
5560
5120
|
}
|
|
5561
5121
|
),
|
|
5562
|
-
error && /* @__PURE__ */
|
|
5122
|
+
error && /* @__PURE__ */ jsx58("p", { id: errorId, className: "text-intent-error-foreground text-sm", children: error })
|
|
5563
5123
|
]
|
|
5564
5124
|
}
|
|
5565
5125
|
);
|
|
@@ -5568,15 +5128,15 @@ var CheckboxGroup = React50.forwardRef(
|
|
|
5568
5128
|
CheckboxGroup.displayName = "CheckboxGroup";
|
|
5569
5129
|
|
|
5570
5130
|
// src/progress.tsx
|
|
5571
|
-
import * as
|
|
5572
|
-
import { jsx as
|
|
5131
|
+
import * as React45 from "react";
|
|
5132
|
+
import { jsx as jsx59, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
5573
5133
|
var FILL = {
|
|
5574
5134
|
primary: "bg-primary-solid dark:bg-primary",
|
|
5575
5135
|
success: "bg-intent-success-solid dark:bg-intent-success",
|
|
5576
5136
|
warning: "bg-intent-warning-solid dark:bg-intent-warning",
|
|
5577
5137
|
error: "bg-intent-error-solid dark:bg-intent-error"
|
|
5578
5138
|
};
|
|
5579
|
-
var Progress =
|
|
5139
|
+
var Progress = React45.forwardRef(
|
|
5580
5140
|
({
|
|
5581
5141
|
className,
|
|
5582
5142
|
value,
|
|
@@ -5588,11 +5148,11 @@ var Progress = React51.forwardRef(
|
|
|
5588
5148
|
}, ref) => {
|
|
5589
5149
|
if (value !== void 0 && !(value >= 0 && value <= 100))
|
|
5590
5150
|
throw new Error(`Progress: value must be within 0\u2013100, got ${value}`);
|
|
5591
|
-
const labelId =
|
|
5151
|
+
const labelId = React45.useId();
|
|
5592
5152
|
const shown = Math.round(value ?? 0);
|
|
5593
|
-
return /* @__PURE__ */
|
|
5594
|
-
(label || showValue && value !== void 0) && /* @__PURE__ */
|
|
5595
|
-
label && /* @__PURE__ */
|
|
5153
|
+
return /* @__PURE__ */ jsxs48("div", { ref, className: cn("w-full min-w-0 space-y-1.5", className), children: [
|
|
5154
|
+
(label || showValue && value !== void 0) && /* @__PURE__ */ jsxs48("div", { className: "flex items-baseline justify-between gap-3 text-sm", children: [
|
|
5155
|
+
label && /* @__PURE__ */ jsx59(
|
|
5596
5156
|
"span",
|
|
5597
5157
|
{
|
|
5598
5158
|
id: labelId,
|
|
@@ -5600,12 +5160,12 @@ var Progress = React51.forwardRef(
|
|
|
5600
5160
|
children: label
|
|
5601
5161
|
}
|
|
5602
5162
|
),
|
|
5603
|
-
showValue && value !== void 0 && /* @__PURE__ */
|
|
5163
|
+
showValue && value !== void 0 && /* @__PURE__ */ jsxs48("span", { className: "ml-auto shrink-0 tabular-nums text-muted-foreground", children: [
|
|
5604
5164
|
shown,
|
|
5605
5165
|
"%"
|
|
5606
5166
|
] })
|
|
5607
5167
|
] }),
|
|
5608
|
-
/* @__PURE__ */
|
|
5168
|
+
/* @__PURE__ */ jsx59(
|
|
5609
5169
|
"div",
|
|
5610
5170
|
{
|
|
5611
5171
|
role: "progressbar",
|
|
@@ -5619,7 +5179,7 @@ var Progress = React51.forwardRef(
|
|
|
5619
5179
|
size === "sm" ? "h-1.5" : "h-2.5"
|
|
5620
5180
|
),
|
|
5621
5181
|
...props,
|
|
5622
|
-
children: /* @__PURE__ */
|
|
5182
|
+
children: /* @__PURE__ */ jsx59(
|
|
5623
5183
|
"div",
|
|
5624
5184
|
{
|
|
5625
5185
|
"data-ui-boundary": "",
|
|
@@ -5639,10 +5199,10 @@ var Progress = React51.forwardRef(
|
|
|
5639
5199
|
Progress.displayName = "Progress";
|
|
5640
5200
|
|
|
5641
5201
|
// src/hooks/use-debounce.ts
|
|
5642
|
-
import { useEffect as
|
|
5202
|
+
import { useEffect as useEffect7, useState as useState11 } from "react";
|
|
5643
5203
|
function useDebounce(value, ms) {
|
|
5644
|
-
const [debounced, setDebounced] =
|
|
5645
|
-
|
|
5204
|
+
const [debounced, setDebounced] = useState11(value);
|
|
5205
|
+
useEffect7(() => {
|
|
5646
5206
|
const handle = setTimeout(() => setDebounced(value), ms);
|
|
5647
5207
|
return () => clearTimeout(handle);
|
|
5648
5208
|
}, [value, ms]);
|
|
@@ -5664,7 +5224,7 @@ export {
|
|
|
5664
5224
|
Button,
|
|
5665
5225
|
ButtonGroup,
|
|
5666
5226
|
ButtonGroupItem,
|
|
5667
|
-
|
|
5227
|
+
Calendar,
|
|
5668
5228
|
Card,
|
|
5669
5229
|
CardContent,
|
|
5670
5230
|
CardDescription,
|