@caqophony/ui 0.3.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -5
- package/dist/chunk-44GEHNZP.js +126 -0
- package/dist/chunk-DP5WQAPO.js +23 -0
- package/dist/chunk-I5DQCG6D.js +378 -0
- package/dist/chunk-ID7VBGJA.js +233 -0
- package/dist/{chunk-4YA6BZDJ.js → chunk-ODRGJV46.js} +3 -10
- package/dist/icon.d-DQqyySj2.d.mts +82 -0
- package/dist/index.d.mts +14 -82
- package/dist/index.js +803 -1351
- package/dist/markdown.js +2 -1
- package/dist/marketing.d.mts +444 -0
- package/dist/marketing.js +1439 -0
- package/dist/material-art.d.mts +137 -0
- package/dist/material-art.js +210 -0
- package/dist/material-tones.d.mts +23 -0
- package/dist/material-tones.js +66 -0
- package/dist/material.d.mts +615 -0
- package/dist/material.js +1066 -0
- package/package.json +19 -2
- package/styles.css +358 -3
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
|
+
Container,
|
|
8
|
+
NavDrawer,
|
|
9
|
+
NavbarMenu,
|
|
10
|
+
Spinner,
|
|
11
|
+
buttonVariants,
|
|
12
|
+
useModalSurface,
|
|
13
|
+
usePanelRef
|
|
14
|
+
} from "./chunk-I5DQCG6D.js";
|
|
15
|
+
import {
|
|
16
|
+
Alert,
|
|
17
|
+
EMPTY_VALUE_GLYPH,
|
|
18
|
+
EmptyValue,
|
|
19
|
+
INTENT_SUBTLE_STYLES,
|
|
20
|
+
IntentBadge,
|
|
21
|
+
isEmptyValue
|
|
22
|
+
} from "./chunk-44GEHNZP.js";
|
|
23
|
+
import {
|
|
24
|
+
CONTENT_GUTTER,
|
|
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-ID7VBGJA.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,114 +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 { createPortal } from "react-dom";
|
|
866
|
-
import { Fragment as Fragment2, jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
867
|
-
function NavDrawer({
|
|
868
|
-
label,
|
|
869
|
-
side,
|
|
870
|
-
closedFrom,
|
|
871
|
-
defaultOpen,
|
|
872
|
-
children
|
|
873
|
-
}) {
|
|
874
|
-
const [open, setOpen] = React7.useState(defaultOpen);
|
|
875
|
-
const id = React7.useId();
|
|
876
|
-
React7.useEffect(() => {
|
|
877
|
-
if (!open) return;
|
|
878
|
-
const onKey = (e) => {
|
|
879
|
-
if (e.key === "Escape") setOpen(false);
|
|
880
|
-
};
|
|
881
|
-
document.addEventListener("keydown", onKey);
|
|
882
|
-
return () => document.removeEventListener("keydown", onKey);
|
|
883
|
-
}, [open]);
|
|
884
|
-
const left = side === "left";
|
|
885
|
-
const drawer = open ? /* @__PURE__ */ jsxs7(
|
|
886
|
-
"div",
|
|
887
|
-
{
|
|
888
|
-
className: cn(
|
|
889
|
-
"z-overlay fixed inset-0",
|
|
890
|
-
closedFrom === "md" ? "md:hidden" : "lg:hidden"
|
|
891
|
-
),
|
|
892
|
-
children: [
|
|
893
|
-
/* @__PURE__ */ jsx11(
|
|
894
|
-
"div",
|
|
895
|
-
{
|
|
896
|
-
"aria-hidden": "true",
|
|
897
|
-
className: "absolute inset-0 bg-foreground/40",
|
|
898
|
-
onClick: () => setOpen(false)
|
|
899
|
-
}
|
|
900
|
-
),
|
|
901
|
-
/* @__PURE__ */ jsxs7(
|
|
902
|
-
"aside",
|
|
903
|
-
{
|
|
904
|
-
id,
|
|
905
|
-
"aria-label": label,
|
|
906
|
-
onClick: (e) => {
|
|
907
|
-
if (e.target instanceof Element && e.target.closest("a")) {
|
|
908
|
-
setOpen(false);
|
|
909
|
-
}
|
|
910
|
-
},
|
|
911
|
-
className: cn(
|
|
912
|
-
"absolute inset-y-0 flex w-72 max-w-[calc(100%-3rem)] flex-col overflow-y-auto bg-card shadow-lg",
|
|
913
|
-
left ? "left-0 border-r" : "right-0 border-l",
|
|
914
|
-
"border-border"
|
|
915
|
-
),
|
|
916
|
-
children: [
|
|
917
|
-
/* @__PURE__ */ jsx11(
|
|
918
|
-
"div",
|
|
919
|
-
{
|
|
920
|
-
className: cn(
|
|
921
|
-
"flex px-2 py-2",
|
|
922
|
-
left ? "justify-end" : "justify-start"
|
|
923
|
-
),
|
|
924
|
-
children: /* @__PURE__ */ jsx11(
|
|
925
|
-
Button,
|
|
926
|
-
{
|
|
927
|
-
variant: "ghost",
|
|
928
|
-
size: "icon",
|
|
929
|
-
"aria-label": "Close",
|
|
930
|
-
onClick: () => setOpen(false),
|
|
931
|
-
children: /* @__PURE__ */ jsx11(Icon, { name: "x", size: "sm" })
|
|
932
|
-
}
|
|
933
|
-
)
|
|
934
|
-
}
|
|
935
|
-
),
|
|
936
|
-
children
|
|
937
|
-
]
|
|
938
|
-
}
|
|
939
|
-
)
|
|
940
|
-
]
|
|
941
|
-
}
|
|
942
|
-
) : null;
|
|
943
|
-
const surface = drawer === null || typeof document === "undefined" ? drawer : createPortal(drawer, document.body);
|
|
944
|
-
return /* @__PURE__ */ jsxs7(Fragment2, { children: [
|
|
945
|
-
/* @__PURE__ */ jsx11(
|
|
946
|
-
Button,
|
|
947
|
-
{
|
|
948
|
-
variant: "ghost",
|
|
949
|
-
size: "icon",
|
|
950
|
-
"aria-label": label,
|
|
951
|
-
"aria-expanded": open,
|
|
952
|
-
"aria-controls": open ? id : void 0,
|
|
953
|
-
onClick: () => setOpen(!open),
|
|
954
|
-
children: /* @__PURE__ */ jsx11(Icon, { name: "menu", size: "sm" })
|
|
955
|
-
}
|
|
956
|
-
),
|
|
957
|
-
surface
|
|
958
|
-
] });
|
|
959
|
-
}
|
|
960
|
-
|
|
961
|
-
// src/collapsible-sidebar.tsx
|
|
962
|
-
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";
|
|
963
682
|
var SidebarContext = createContext(null);
|
|
964
683
|
function useSidebar() {
|
|
965
684
|
const context = useContext(SidebarContext);
|
|
@@ -974,7 +693,7 @@ var DefaultLink = ({
|
|
|
974
693
|
href,
|
|
975
694
|
className,
|
|
976
695
|
children
|
|
977
|
-
}) => /* @__PURE__ */
|
|
696
|
+
}) => /* @__PURE__ */ jsx8("a", { href: String(href), className, children });
|
|
978
697
|
function CollapsibleSidebar({
|
|
979
698
|
storageKey = "sidebar-collapsed",
|
|
980
699
|
defaultCollapsed = false,
|
|
@@ -991,8 +710,8 @@ function CollapsibleSidebar({
|
|
|
991
710
|
navLabel = "Navigation",
|
|
992
711
|
defaultNavOpen = false
|
|
993
712
|
}) {
|
|
994
|
-
const [isCollapsed, setIsCollapsed] =
|
|
995
|
-
|
|
713
|
+
const [isCollapsed, setIsCollapsed] = useState(defaultCollapsed);
|
|
714
|
+
useEffect(() => {
|
|
996
715
|
const stored = localStorage.getItem(storageKey);
|
|
997
716
|
if (stored !== null) {
|
|
998
717
|
setIsCollapsed(stored === "true");
|
|
@@ -1008,7 +727,7 @@ function CollapsibleSidebar({
|
|
|
1008
727
|
const renderItem = (item, collapsed) => {
|
|
1009
728
|
const Icon2 = item.icon;
|
|
1010
729
|
const active = isActive?.(item.href) ?? false;
|
|
1011
|
-
const linkContent = /* @__PURE__ */
|
|
730
|
+
const linkContent = /* @__PURE__ */ jsxs5(
|
|
1012
731
|
LinkComponent,
|
|
1013
732
|
{
|
|
1014
733
|
href: item.href,
|
|
@@ -1018,10 +737,10 @@ function CollapsibleSidebar({
|
|
|
1018
737
|
active ? "bg-primary-solid text-primary-foreground" : "text-muted-foreground hover:bg-muted hover:text-foreground"
|
|
1019
738
|
),
|
|
1020
739
|
children: [
|
|
1021
|
-
/* @__PURE__ */
|
|
1022
|
-
!collapsed && /* @__PURE__ */
|
|
1023
|
-
/* @__PURE__ */
|
|
1024
|
-
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(
|
|
1025
744
|
"div",
|
|
1026
745
|
{
|
|
1027
746
|
className: cn(
|
|
@@ -1038,25 +757,25 @@ function CollapsibleSidebar({
|
|
|
1038
757
|
}
|
|
1039
758
|
);
|
|
1040
759
|
if (collapsed) {
|
|
1041
|
-
return /* @__PURE__ */
|
|
1042
|
-
/* @__PURE__ */
|
|
1043
|
-
/* @__PURE__ */
|
|
1044
|
-
/* @__PURE__ */
|
|
1045
|
-
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 })
|
|
1046
765
|
] })
|
|
1047
766
|
] }, item.href);
|
|
1048
767
|
}
|
|
1049
|
-
return /* @__PURE__ */
|
|
768
|
+
return /* @__PURE__ */ jsx8("div", { children: linkContent }, item.href);
|
|
1050
769
|
};
|
|
1051
|
-
return /* @__PURE__ */
|
|
1052
|
-
/* @__PURE__ */
|
|
770
|
+
return /* @__PURE__ */ jsx8(SidebarContext.Provider, { value: { isCollapsed, toggle }, children: /* @__PURE__ */ jsxs5(TooltipProvider, { delayDuration: 100, children: [
|
|
771
|
+
/* @__PURE__ */ jsx8(
|
|
1053
772
|
"div",
|
|
1054
773
|
{
|
|
1055
774
|
className: cn(
|
|
1056
775
|
"flex min-h-screen w-14 flex-shrink-0 flex-col items-center border-r border-border bg-card py-2 lg:hidden",
|
|
1057
776
|
className
|
|
1058
777
|
),
|
|
1059
|
-
children: /* @__PURE__ */
|
|
778
|
+
children: /* @__PURE__ */ jsxs5(
|
|
1060
779
|
NavDrawer,
|
|
1061
780
|
{
|
|
1062
781
|
label: navLabel,
|
|
@@ -1064,15 +783,15 @@ function CollapsibleSidebar({
|
|
|
1064
783
|
closedFrom: "lg",
|
|
1065
784
|
defaultOpen: defaultNavOpen,
|
|
1066
785
|
children: [
|
|
1067
|
-
header && /* @__PURE__ */
|
|
1068
|
-
/* @__PURE__ */
|
|
1069
|
-
footer && /* @__PURE__ */
|
|
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 })
|
|
1070
789
|
]
|
|
1071
790
|
}
|
|
1072
791
|
)
|
|
1073
792
|
}
|
|
1074
793
|
),
|
|
1075
|
-
/* @__PURE__ */
|
|
794
|
+
/* @__PURE__ */ jsxs5(
|
|
1076
795
|
"nav",
|
|
1077
796
|
{
|
|
1078
797
|
className: cn(
|
|
@@ -1081,7 +800,7 @@ function CollapsibleSidebar({
|
|
|
1081
800
|
),
|
|
1082
801
|
style: { width: isCollapsed ? collapsedWidth : expandedWidth },
|
|
1083
802
|
children: [
|
|
1084
|
-
/* @__PURE__ */
|
|
803
|
+
/* @__PURE__ */ jsx8(
|
|
1085
804
|
"button",
|
|
1086
805
|
{
|
|
1087
806
|
onClick: toggle,
|
|
@@ -1089,10 +808,10 @@ function CollapsibleSidebar({
|
|
|
1089
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"
|
|
1090
809
|
),
|
|
1091
810
|
"aria-label": isCollapsed ? "Expand sidebar" : "Collapse sidebar",
|
|
1092
|
-
children: isCollapsed ? /* @__PURE__ */
|
|
811
|
+
children: isCollapsed ? /* @__PURE__ */ jsx8(ChevronRight, { className: "size-4" }) : /* @__PURE__ */ jsx8(ChevronLeft, { className: "size-4" })
|
|
1093
812
|
}
|
|
1094
813
|
),
|
|
1095
|
-
(header || collapsedHeader) && /* @__PURE__ */
|
|
814
|
+
(header || collapsedHeader) && /* @__PURE__ */ jsx8(
|
|
1096
815
|
"div",
|
|
1097
816
|
{
|
|
1098
817
|
className: cn(
|
|
@@ -1102,8 +821,8 @@ function CollapsibleSidebar({
|
|
|
1102
821
|
children: isCollapsed ? collapsedHeader || null : header
|
|
1103
822
|
}
|
|
1104
823
|
),
|
|
1105
|
-
/* @__PURE__ */
|
|
1106
|
-
(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 })
|
|
1107
826
|
]
|
|
1108
827
|
}
|
|
1109
828
|
)
|
|
@@ -1111,9 +830,9 @@ function CollapsibleSidebar({
|
|
|
1111
830
|
}
|
|
1112
831
|
|
|
1113
832
|
// src/accordion.tsx
|
|
1114
|
-
import { createContext as createContext2, useContext as useContext2, useState as
|
|
1115
|
-
import { ChevronDown
|
|
1116
|
-
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";
|
|
1117
836
|
var AccordionContext = createContext2(null);
|
|
1118
837
|
var AccordionItemContext = createContext2(
|
|
1119
838
|
null
|
|
@@ -1142,7 +861,7 @@ function AccordionSingle({
|
|
|
1142
861
|
children,
|
|
1143
862
|
className
|
|
1144
863
|
}) {
|
|
1145
|
-
const [uncontrolledValue, setUncontrolledValue] =
|
|
864
|
+
const [uncontrolledValue, setUncontrolledValue] = useState2(defaultValue);
|
|
1146
865
|
const isControlled = controlledValue !== void 0;
|
|
1147
866
|
const value = isControlled ? controlledValue : uncontrolledValue;
|
|
1148
867
|
const handleValueChange = useCallback2(
|
|
@@ -1155,7 +874,7 @@ function AccordionSingle({
|
|
|
1155
874
|
},
|
|
1156
875
|
[value, collapsible, isControlled, onValueChange]
|
|
1157
876
|
);
|
|
1158
|
-
return /* @__PURE__ */
|
|
877
|
+
return /* @__PURE__ */ jsx9(
|
|
1159
878
|
AccordionContext.Provider,
|
|
1160
879
|
{
|
|
1161
880
|
value: {
|
|
@@ -1163,7 +882,7 @@ function AccordionSingle({
|
|
|
1163
882
|
value,
|
|
1164
883
|
onValueChange: handleValueChange
|
|
1165
884
|
},
|
|
1166
|
-
children: /* @__PURE__ */
|
|
885
|
+
children: /* @__PURE__ */ jsx9("div", { className: cn("space-y-2", className), "data-accordion-root": "", children })
|
|
1167
886
|
}
|
|
1168
887
|
);
|
|
1169
888
|
}
|
|
@@ -1174,7 +893,7 @@ function AccordionMultiple({
|
|
|
1174
893
|
children,
|
|
1175
894
|
className
|
|
1176
895
|
}) {
|
|
1177
|
-
const [uncontrolledValue, setUncontrolledValue] =
|
|
896
|
+
const [uncontrolledValue, setUncontrolledValue] = useState2(defaultValue);
|
|
1178
897
|
const isControlled = controlledValue !== void 0;
|
|
1179
898
|
const value = isControlled ? controlledValue : uncontrolledValue;
|
|
1180
899
|
const handleValueChange = useCallback2(
|
|
@@ -1187,7 +906,7 @@ function AccordionMultiple({
|
|
|
1187
906
|
},
|
|
1188
907
|
[value, isControlled, onValueChange]
|
|
1189
908
|
);
|
|
1190
|
-
return /* @__PURE__ */
|
|
909
|
+
return /* @__PURE__ */ jsx9(
|
|
1191
910
|
AccordionContext.Provider,
|
|
1192
911
|
{
|
|
1193
912
|
value: {
|
|
@@ -1195,15 +914,15 @@ function AccordionMultiple({
|
|
|
1195
914
|
value,
|
|
1196
915
|
onValueChange: handleValueChange
|
|
1197
916
|
},
|
|
1198
|
-
children: /* @__PURE__ */
|
|
917
|
+
children: /* @__PURE__ */ jsx9("div", { className: cn("space-y-2", className), "data-accordion-root": "", children })
|
|
1199
918
|
}
|
|
1200
919
|
);
|
|
1201
920
|
}
|
|
1202
921
|
function Accordion(props) {
|
|
1203
922
|
if (props.type === "multiple") {
|
|
1204
|
-
return /* @__PURE__ */
|
|
923
|
+
return /* @__PURE__ */ jsx9(AccordionMultiple, { ...props });
|
|
1205
924
|
}
|
|
1206
|
-
return /* @__PURE__ */
|
|
925
|
+
return /* @__PURE__ */ jsx9(AccordionSingle, { ...props });
|
|
1207
926
|
}
|
|
1208
927
|
function AccordionItem({
|
|
1209
928
|
value,
|
|
@@ -1213,15 +932,15 @@ function AccordionItem({
|
|
|
1213
932
|
testId
|
|
1214
933
|
}) {
|
|
1215
934
|
const { value: accordionValue, type } = useAccordion();
|
|
1216
|
-
const uniqueId =
|
|
935
|
+
const uniqueId = useId2();
|
|
1217
936
|
const triggerId = `accordion-trigger-${uniqueId}`;
|
|
1218
937
|
const contentId = `accordion-content-${uniqueId}`;
|
|
1219
938
|
const isOpen = type === "single" ? accordionValue === value : accordionValue.includes(value);
|
|
1220
|
-
return /* @__PURE__ */
|
|
939
|
+
return /* @__PURE__ */ jsx9(
|
|
1221
940
|
AccordionItemContext.Provider,
|
|
1222
941
|
{
|
|
1223
942
|
value: { value, isOpen, triggerId, contentId, disabled },
|
|
1224
|
-
children: /* @__PURE__ */
|
|
943
|
+
children: /* @__PURE__ */ jsx9(
|
|
1225
944
|
"div",
|
|
1226
945
|
{
|
|
1227
946
|
className: cn(
|
|
@@ -1247,7 +966,7 @@ function AccordionTrigger({
|
|
|
1247
966
|
}) {
|
|
1248
967
|
const { onValueChange } = useAccordion();
|
|
1249
968
|
const { value, isOpen, triggerId, contentId, disabled } = useAccordionItem();
|
|
1250
|
-
return /* @__PURE__ */
|
|
969
|
+
return /* @__PURE__ */ jsxs6(
|
|
1251
970
|
"button",
|
|
1252
971
|
{
|
|
1253
972
|
id: triggerId,
|
|
@@ -1266,14 +985,14 @@ function AccordionTrigger({
|
|
|
1266
985
|
"data-state": isOpen ? "open" : "closed",
|
|
1267
986
|
"data-testid": testId,
|
|
1268
987
|
children: [
|
|
1269
|
-
/* @__PURE__ */
|
|
1270
|
-
icon && /* @__PURE__ */
|
|
1271
|
-
/* @__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 })
|
|
1272
991
|
] }),
|
|
1273
|
-
/* @__PURE__ */
|
|
992
|
+
/* @__PURE__ */ jsxs6("span", { className: "flex items-center gap-2", children: [
|
|
1274
993
|
rightContent,
|
|
1275
|
-
/* @__PURE__ */
|
|
1276
|
-
|
|
994
|
+
/* @__PURE__ */ jsx9(
|
|
995
|
+
ChevronDown,
|
|
1277
996
|
{
|
|
1278
997
|
className: cn(
|
|
1279
998
|
"size-5 shrink-0 text-muted-foreground transition-transform duration-300 [transition-timing-function:cubic-bezier(0.32,0.72,0,1)]",
|
|
@@ -1293,7 +1012,7 @@ function AccordionContent({
|
|
|
1293
1012
|
testId
|
|
1294
1013
|
}) {
|
|
1295
1014
|
const { isOpen, contentId, triggerId } = useAccordionItem();
|
|
1296
|
-
return /* @__PURE__ */
|
|
1015
|
+
return /* @__PURE__ */ jsx9(
|
|
1297
1016
|
"div",
|
|
1298
1017
|
{
|
|
1299
1018
|
id: contentId,
|
|
@@ -1307,7 +1026,7 @@ function AccordionContent({
|
|
|
1307
1026
|
"grid transition-all duration-300 [transition-timing-function:cubic-bezier(0.32,0.72,0,1)]",
|
|
1308
1027
|
isOpen ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"
|
|
1309
1028
|
),
|
|
1310
|
-
children: /* @__PURE__ */
|
|
1029
|
+
children: /* @__PURE__ */ jsx9("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx9("div", { className: cn("px-4 pb-4", className), children }) })
|
|
1311
1030
|
}
|
|
1312
1031
|
);
|
|
1313
1032
|
}
|
|
@@ -1325,10 +1044,10 @@ function SimpleAccordion({
|
|
|
1325
1044
|
triggerTestId,
|
|
1326
1045
|
contentTestId
|
|
1327
1046
|
}) {
|
|
1328
|
-
const [uncontrolledOpen, setUncontrolledOpen] =
|
|
1047
|
+
const [uncontrolledOpen, setUncontrolledOpen] = useState2(defaultOpen);
|
|
1329
1048
|
const isControlled = controlledOpen !== void 0;
|
|
1330
1049
|
const isOpen = isControlled ? controlledOpen : uncontrolledOpen;
|
|
1331
|
-
const uniqueId =
|
|
1050
|
+
const uniqueId = useId2();
|
|
1332
1051
|
const triggerId = `simple-accordion-trigger-${uniqueId}`;
|
|
1333
1052
|
const contentId = `simple-accordion-content-${uniqueId}`;
|
|
1334
1053
|
const toggle = useCallback2(() => {
|
|
@@ -1338,7 +1057,7 @@ function SimpleAccordion({
|
|
|
1338
1057
|
}
|
|
1339
1058
|
onOpenChange?.(newValue);
|
|
1340
1059
|
}, [isOpen, isControlled, onOpenChange]);
|
|
1341
|
-
return /* @__PURE__ */
|
|
1060
|
+
return /* @__PURE__ */ jsxs6(
|
|
1342
1061
|
"div",
|
|
1343
1062
|
{
|
|
1344
1063
|
className: cn(
|
|
@@ -1347,7 +1066,7 @@ function SimpleAccordion({
|
|
|
1347
1066
|
),
|
|
1348
1067
|
"data-state": isOpen ? "open" : "closed",
|
|
1349
1068
|
children: [
|
|
1350
|
-
/* @__PURE__ */
|
|
1069
|
+
/* @__PURE__ */ jsxs6(
|
|
1351
1070
|
"button",
|
|
1352
1071
|
{
|
|
1353
1072
|
id: triggerId,
|
|
@@ -1365,14 +1084,14 @@ function SimpleAccordion({
|
|
|
1365
1084
|
"data-state": isOpen ? "open" : "closed",
|
|
1366
1085
|
"data-testid": triggerTestId,
|
|
1367
1086
|
children: [
|
|
1368
|
-
/* @__PURE__ */
|
|
1369
|
-
icon && /* @__PURE__ */
|
|
1370
|
-
/* @__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 })
|
|
1371
1090
|
] }),
|
|
1372
|
-
/* @__PURE__ */
|
|
1091
|
+
/* @__PURE__ */ jsxs6("span", { className: "flex items-center gap-2", children: [
|
|
1373
1092
|
rightContent,
|
|
1374
|
-
/* @__PURE__ */
|
|
1375
|
-
|
|
1093
|
+
/* @__PURE__ */ jsx9(
|
|
1094
|
+
ChevronDown,
|
|
1376
1095
|
{
|
|
1377
1096
|
className: cn(
|
|
1378
1097
|
"size-5 shrink-0 text-muted-foreground transition-transform duration-300 [transition-timing-function:cubic-bezier(0.32,0.72,0,1)]",
|
|
@@ -1385,7 +1104,7 @@ function SimpleAccordion({
|
|
|
1385
1104
|
]
|
|
1386
1105
|
}
|
|
1387
1106
|
),
|
|
1388
|
-
/* @__PURE__ */
|
|
1107
|
+
/* @__PURE__ */ jsx9(
|
|
1389
1108
|
"div",
|
|
1390
1109
|
{
|
|
1391
1110
|
id: contentId,
|
|
@@ -1398,7 +1117,7 @@ function SimpleAccordion({
|
|
|
1398
1117
|
"grid transition-all duration-300 [transition-timing-function:cubic-bezier(0.32,0.72,0,1)]",
|
|
1399
1118
|
isOpen ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"
|
|
1400
1119
|
),
|
|
1401
|
-
children: /* @__PURE__ */
|
|
1120
|
+
children: /* @__PURE__ */ jsx9("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx9("div", { className: cn("px-4 pb-4", contentClassName), children }) })
|
|
1402
1121
|
}
|
|
1403
1122
|
)
|
|
1404
1123
|
]
|
|
@@ -1407,9 +1126,9 @@ function SimpleAccordion({
|
|
|
1407
1126
|
}
|
|
1408
1127
|
|
|
1409
1128
|
// src/confirm-dialog.tsx
|
|
1410
|
-
import * as
|
|
1129
|
+
import * as React6 from "react";
|
|
1411
1130
|
import { Loader2 } from "lucide-react";
|
|
1412
|
-
import { Fragment
|
|
1131
|
+
import { Fragment, jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1413
1132
|
function ConfirmDialog({
|
|
1414
1133
|
title,
|
|
1415
1134
|
message,
|
|
@@ -1424,25 +1143,19 @@ function ConfirmDialog({
|
|
|
1424
1143
|
confirmVariant = "default",
|
|
1425
1144
|
className
|
|
1426
1145
|
}) {
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
onCancel();
|
|
1431
|
-
}
|
|
1432
|
-
}
|
|
1433
|
-
document.addEventListener("keydown", handleKeyDown);
|
|
1434
|
-
return () => document.removeEventListener("keydown", handleKeyDown);
|
|
1435
|
-
}, [onCancel, isLoading]);
|
|
1436
|
-
return /* @__PURE__ */ jsx14(
|
|
1146
|
+
const panel = React6.useRef(null);
|
|
1147
|
+
useModalSurface(true, panel, isLoading ? void 0 : onCancel);
|
|
1148
|
+
return /* @__PURE__ */ jsx10(
|
|
1437
1149
|
"div",
|
|
1438
1150
|
{
|
|
1439
|
-
|
|
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",
|
|
1440
1153
|
role: "dialog",
|
|
1441
1154
|
"aria-modal": "true",
|
|
1442
1155
|
"aria-labelledby": "confirm-dialog-title",
|
|
1443
1156
|
"aria-describedby": "confirm-dialog-description",
|
|
1444
1157
|
"data-testid": dialogTestId,
|
|
1445
|
-
children: /* @__PURE__ */
|
|
1158
|
+
children: /* @__PURE__ */ jsxs7(
|
|
1446
1159
|
"div",
|
|
1447
1160
|
{
|
|
1448
1161
|
className: cn(
|
|
@@ -1451,7 +1164,7 @@ function ConfirmDialog({
|
|
|
1451
1164
|
className
|
|
1452
1165
|
),
|
|
1453
1166
|
children: [
|
|
1454
|
-
/* @__PURE__ */
|
|
1167
|
+
/* @__PURE__ */ jsx10(
|
|
1455
1168
|
"h3",
|
|
1456
1169
|
{
|
|
1457
1170
|
id: "confirm-dialog-title",
|
|
@@ -1459,7 +1172,7 @@ function ConfirmDialog({
|
|
|
1459
1172
|
children: title
|
|
1460
1173
|
}
|
|
1461
1174
|
),
|
|
1462
|
-
/* @__PURE__ */
|
|
1175
|
+
/* @__PURE__ */ jsx10(
|
|
1463
1176
|
"p",
|
|
1464
1177
|
{
|
|
1465
1178
|
id: "confirm-dialog-description",
|
|
@@ -1467,8 +1180,8 @@ function ConfirmDialog({
|
|
|
1467
1180
|
children: message
|
|
1468
1181
|
}
|
|
1469
1182
|
),
|
|
1470
|
-
/* @__PURE__ */
|
|
1471
|
-
/* @__PURE__ */
|
|
1183
|
+
/* @__PURE__ */ jsxs7("div", { className: "mt-6 flex justify-end gap-3", children: [
|
|
1184
|
+
/* @__PURE__ */ jsx10(
|
|
1472
1185
|
Button,
|
|
1473
1186
|
{
|
|
1474
1187
|
variant: "ghost",
|
|
@@ -1478,15 +1191,15 @@ function ConfirmDialog({
|
|
|
1478
1191
|
children: cancelLabel
|
|
1479
1192
|
}
|
|
1480
1193
|
),
|
|
1481
|
-
/* @__PURE__ */
|
|
1194
|
+
/* @__PURE__ */ jsx10(
|
|
1482
1195
|
Button,
|
|
1483
1196
|
{
|
|
1484
1197
|
variant: confirmVariant,
|
|
1485
1198
|
onClick: onConfirm,
|
|
1486
1199
|
disabled: isLoading,
|
|
1487
1200
|
"data-testid": confirmTestId,
|
|
1488
|
-
children: isLoading ? /* @__PURE__ */
|
|
1489
|
-
/* @__PURE__ */
|
|
1201
|
+
children: isLoading ? /* @__PURE__ */ jsxs7(Fragment, { children: [
|
|
1202
|
+
/* @__PURE__ */ jsx10(Loader2, { className: "mr-2 size-4 animate-spin" }),
|
|
1490
1203
|
confirmLabel,
|
|
1491
1204
|
"..."
|
|
1492
1205
|
] }) : confirmLabel
|
|
@@ -1501,10 +1214,10 @@ function ConfirmDialog({
|
|
|
1501
1214
|
}
|
|
1502
1215
|
|
|
1503
1216
|
// src/dicebear-avatar.tsx
|
|
1504
|
-
import * as
|
|
1505
|
-
import { cva as
|
|
1506
|
-
import { jsx as
|
|
1507
|
-
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(
|
|
1508
1221
|
"relative inline-flex shrink-0 overflow-hidden rounded-full bg-muted dark:bg-muted",
|
|
1509
1222
|
{
|
|
1510
1223
|
variants: {
|
|
@@ -1527,7 +1240,7 @@ function buildDiceBearUrl(seed, style = "adventurer-neutral") {
|
|
|
1527
1240
|
const encodedSeed = encodeURIComponent(seed);
|
|
1528
1241
|
return `${DICEBEAR_BASE_URL}/${style}/svg?seed=${encodedSeed}`;
|
|
1529
1242
|
}
|
|
1530
|
-
var DiceBearAvatar =
|
|
1243
|
+
var DiceBearAvatar = React7.forwardRef(
|
|
1531
1244
|
({
|
|
1532
1245
|
seed,
|
|
1533
1246
|
avatarStyle = "adventurer-neutral",
|
|
@@ -1537,18 +1250,18 @@ var DiceBearAvatar = React9.forwardRef(
|
|
|
1537
1250
|
className,
|
|
1538
1251
|
...props
|
|
1539
1252
|
}, ref) => {
|
|
1540
|
-
const [hasError, setHasError] =
|
|
1253
|
+
const [hasError, setHasError] = React7.useState(false);
|
|
1541
1254
|
const url = buildDiceBearUrl(seed, avatarStyle);
|
|
1542
|
-
|
|
1255
|
+
React7.useEffect(() => {
|
|
1543
1256
|
setHasError(false);
|
|
1544
1257
|
}, [seed, avatarStyle]);
|
|
1545
|
-
return /* @__PURE__ */
|
|
1258
|
+
return /* @__PURE__ */ jsx11(
|
|
1546
1259
|
"div",
|
|
1547
1260
|
{
|
|
1548
1261
|
ref,
|
|
1549
1262
|
className: cn(avatarVariants({ size }), className),
|
|
1550
1263
|
...props,
|
|
1551
|
-
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(
|
|
1552
1265
|
"img",
|
|
1553
1266
|
{
|
|
1554
1267
|
src: url,
|
|
@@ -1564,14 +1277,14 @@ var DiceBearAvatar = React9.forwardRef(
|
|
|
1564
1277
|
DiceBearAvatar.displayName = "DiceBearAvatar";
|
|
1565
1278
|
|
|
1566
1279
|
// src/intent-icon.tsx
|
|
1567
|
-
import { Check
|
|
1568
|
-
import { jsx as
|
|
1280
|
+
import { Check, AlertTriangle, X, Info } from "lucide-react";
|
|
1281
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
1569
1282
|
var intentConfig = {
|
|
1570
1283
|
success: {
|
|
1571
1284
|
outerBg: "bg-[rgba(33,196,93,0.10)] dark:bg-[rgba(33,196,93,0.10)]",
|
|
1572
1285
|
innerBg: "bg-[rgba(33,196,93,0.20)] dark:bg-[rgba(33,196,93,0.20)]",
|
|
1573
1286
|
iconColor: "text-[#21c45d] dark:text-[#21c45d]",
|
|
1574
|
-
Icon:
|
|
1287
|
+
Icon: Check
|
|
1575
1288
|
},
|
|
1576
1289
|
warning: {
|
|
1577
1290
|
outerBg: "bg-[rgba(245,159,10,0.10)] dark:bg-[rgba(245,159,10,0.10)]",
|
|
@@ -1583,13 +1296,13 @@ var intentConfig = {
|
|
|
1583
1296
|
outerBg: "bg-[rgba(239,67,67,0.10)] dark:bg-[rgba(239,67,67,0.10)]",
|
|
1584
1297
|
innerBg: "bg-[rgba(239,67,67,0.20)] dark:bg-[rgba(239,67,67,0.20)]",
|
|
1585
1298
|
iconColor: "text-[#ef4343] dark:text-[#ef4343]",
|
|
1586
|
-
Icon:
|
|
1299
|
+
Icon: X
|
|
1587
1300
|
},
|
|
1588
1301
|
info: {
|
|
1589
1302
|
outerBg: "bg-[rgba(60,131,246,0.10)] dark:bg-[rgba(60,131,246,0.10)]",
|
|
1590
1303
|
innerBg: "bg-[rgba(60,131,246,0.20)] dark:bg-[rgba(60,131,246,0.20)]",
|
|
1591
1304
|
iconColor: "text-[#3c83f6] dark:text-[#3c83f6]",
|
|
1592
|
-
Icon:
|
|
1305
|
+
Icon: Info
|
|
1593
1306
|
}
|
|
1594
1307
|
};
|
|
1595
1308
|
var sizeConfig = {
|
|
@@ -1610,18 +1323,18 @@ function IntentIcon({
|
|
|
1610
1323
|
}) {
|
|
1611
1324
|
const { outerBg, innerBg, iconColor, Icon: Icon2 } = intentConfig[intent];
|
|
1612
1325
|
const { outer, inner, iconSize } = sizeConfig[size];
|
|
1613
|
-
return /* @__PURE__ */
|
|
1326
|
+
return /* @__PURE__ */ jsx12(
|
|
1614
1327
|
"div",
|
|
1615
1328
|
{
|
|
1616
1329
|
"data-testid": "intent-icon",
|
|
1617
1330
|
className: `${outer} ${outerBg} flex items-center justify-center`,
|
|
1618
|
-
children: /* @__PURE__ */
|
|
1331
|
+
children: /* @__PURE__ */ jsx12("div", { className: `${inner} ${innerBg} flex items-center justify-center`, children: /* @__PURE__ */ jsx12(Icon2, { className: iconColor, size: iconSize }) })
|
|
1619
1332
|
}
|
|
1620
1333
|
);
|
|
1621
1334
|
}
|
|
1622
1335
|
|
|
1623
1336
|
// src/section-heading.tsx
|
|
1624
|
-
import { jsx as
|
|
1337
|
+
import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1625
1338
|
var sizeConfig2 = {
|
|
1626
1339
|
display: {
|
|
1627
1340
|
className: "text-4xl font-bold leading-10",
|
|
@@ -1646,26 +1359,26 @@ function SectionHeading({
|
|
|
1646
1359
|
align = "center",
|
|
1647
1360
|
size = "h1"
|
|
1648
1361
|
}) {
|
|
1649
|
-
const { className: sizeClass, tag:
|
|
1650
|
-
return /* @__PURE__ */
|
|
1362
|
+
const { className: sizeClass, tag: Tag } = sizeConfig2[size];
|
|
1363
|
+
return /* @__PURE__ */ jsxs8(
|
|
1651
1364
|
"div",
|
|
1652
1365
|
{
|
|
1653
1366
|
"data-testid": "section-heading",
|
|
1654
1367
|
className: cn(
|
|
1655
|
-
"flex
|
|
1368
|
+
"flex flex-col gap-2",
|
|
1656
1369
|
align === "center" && "mx-auto items-center text-center",
|
|
1657
1370
|
align === "left" && "items-start text-left"
|
|
1658
1371
|
),
|
|
1659
1372
|
children: [
|
|
1660
|
-
/* @__PURE__ */
|
|
1661
|
-
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 })
|
|
1662
1375
|
]
|
|
1663
1376
|
}
|
|
1664
1377
|
);
|
|
1665
1378
|
}
|
|
1666
1379
|
|
|
1667
1380
|
// src/filter-chip.tsx
|
|
1668
|
-
import { jsx as
|
|
1381
|
+
import { jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1669
1382
|
function FilterChip({
|
|
1670
1383
|
label,
|
|
1671
1384
|
active = false,
|
|
@@ -1673,7 +1386,7 @@ function FilterChip({
|
|
|
1673
1386
|
size = "md",
|
|
1674
1387
|
onClick
|
|
1675
1388
|
}) {
|
|
1676
|
-
return /* @__PURE__ */
|
|
1389
|
+
return /* @__PURE__ */ jsxs9(
|
|
1677
1390
|
"button",
|
|
1678
1391
|
{
|
|
1679
1392
|
type: "button",
|
|
@@ -1689,21 +1402,21 @@ function FilterChip({
|
|
|
1689
1402
|
// State — inactive
|
|
1690
1403
|
!active && "border-border bg-background text-muted-foreground dark:border-border dark:bg-background dark:text-muted-foreground",
|
|
1691
1404
|
// State — active
|
|
1692
|
-
active && "
|
|
1405
|
+
active && "bg-primary-solid dark:bg-primary-solid border-transparent text-primary-foreground dark:border-transparent dark:text-primary-foreground",
|
|
1693
1406
|
// Hover
|
|
1694
1407
|
!active && "hover:bg-muted dark:hover:bg-muted",
|
|
1695
|
-
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)]"
|
|
1696
1409
|
),
|
|
1697
1410
|
children: [
|
|
1698
1411
|
label,
|
|
1699
|
-
count != null && /* @__PURE__ */
|
|
1412
|
+
count != null && /* @__PURE__ */ jsx14(
|
|
1700
1413
|
"span",
|
|
1701
1414
|
{
|
|
1702
1415
|
className: cn(
|
|
1703
1416
|
"inline-flex items-center justify-center rounded-full px-[5px] text-[11px] font-semibold",
|
|
1704
1417
|
"h-[18px] min-w-[18px]",
|
|
1705
1418
|
!active && "bg-muted text-muted-foreground dark:bg-muted dark:text-muted-foreground",
|
|
1706
|
-
active && "
|
|
1419
|
+
active && "text-primary-solid dark:text-primary-solid bg-primary-foreground dark:bg-primary-foreground"
|
|
1707
1420
|
),
|
|
1708
1421
|
children: count
|
|
1709
1422
|
}
|
|
@@ -1714,35 +1427,35 @@ function FilterChip({
|
|
|
1714
1427
|
}
|
|
1715
1428
|
|
|
1716
1429
|
// src/distribution-chip.tsx
|
|
1717
|
-
import { jsx as
|
|
1430
|
+
import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1718
1431
|
function DistributionChip({
|
|
1719
1432
|
count,
|
|
1720
1433
|
label,
|
|
1721
1434
|
dotClass,
|
|
1722
1435
|
testId
|
|
1723
1436
|
}) {
|
|
1724
|
-
return /* @__PURE__ */
|
|
1437
|
+
return /* @__PURE__ */ jsxs10(
|
|
1725
1438
|
"span",
|
|
1726
1439
|
{
|
|
1727
1440
|
"data-testid": testId,
|
|
1728
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",
|
|
1729
1442
|
children: [
|
|
1730
|
-
/* @__PURE__ */
|
|
1731
|
-
/* @__PURE__ */
|
|
1732
|
-
/* @__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 })
|
|
1733
1446
|
]
|
|
1734
1447
|
}
|
|
1735
1448
|
);
|
|
1736
1449
|
}
|
|
1737
1450
|
|
|
1738
1451
|
// src/skeleton-bar.tsx
|
|
1739
|
-
import { jsx as
|
|
1452
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
1740
1453
|
function SkeletonBar({
|
|
1741
1454
|
width = "full",
|
|
1742
1455
|
height = 14,
|
|
1743
1456
|
className = ""
|
|
1744
1457
|
}) {
|
|
1745
|
-
return /* @__PURE__ */
|
|
1458
|
+
return /* @__PURE__ */ jsx16(
|
|
1746
1459
|
"div",
|
|
1747
1460
|
{
|
|
1748
1461
|
"data-testid": "skeleton-bar",
|
|
@@ -1760,9 +1473,9 @@ function SkeletonBar({
|
|
|
1760
1473
|
}
|
|
1761
1474
|
|
|
1762
1475
|
// src/skeleton-card.tsx
|
|
1763
|
-
import { jsx as
|
|
1476
|
+
import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1764
1477
|
function SkeletonCard({ className = "" }) {
|
|
1765
|
-
return /* @__PURE__ */
|
|
1478
|
+
return /* @__PURE__ */ jsxs11(
|
|
1766
1479
|
"div",
|
|
1767
1480
|
{
|
|
1768
1481
|
"data-testid": "skeleton-card",
|
|
@@ -1771,18 +1484,18 @@ function SkeletonCard({ className = "" }) {
|
|
|
1771
1484
|
className
|
|
1772
1485
|
),
|
|
1773
1486
|
children: [
|
|
1774
|
-
/* @__PURE__ */
|
|
1775
|
-
/* @__PURE__ */
|
|
1776
|
-
/* @__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 })
|
|
1777
1490
|
]
|
|
1778
1491
|
}
|
|
1779
1492
|
);
|
|
1780
1493
|
}
|
|
1781
1494
|
|
|
1782
1495
|
// src/skeleton-row.tsx
|
|
1783
|
-
import { jsx as
|
|
1496
|
+
import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1784
1497
|
function SkeletonRow({ className = "" }) {
|
|
1785
|
-
return /* @__PURE__ */
|
|
1498
|
+
return /* @__PURE__ */ jsxs12(
|
|
1786
1499
|
"div",
|
|
1787
1500
|
{
|
|
1788
1501
|
"data-testid": "skeleton-row",
|
|
@@ -1791,10 +1504,10 @@ function SkeletonRow({ className = "" }) {
|
|
|
1791
1504
|
className
|
|
1792
1505
|
),
|
|
1793
1506
|
children: [
|
|
1794
|
-
/* @__PURE__ */
|
|
1795
|
-
/* @__PURE__ */
|
|
1796
|
-
/* @__PURE__ */
|
|
1797
|
-
/* @__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 })
|
|
1798
1511
|
] })
|
|
1799
1512
|
]
|
|
1800
1513
|
}
|
|
@@ -1802,10 +1515,10 @@ function SkeletonRow({ className = "" }) {
|
|
|
1802
1515
|
}
|
|
1803
1516
|
|
|
1804
1517
|
// src/stacked-list.tsx
|
|
1805
|
-
import * as
|
|
1806
|
-
import { jsx as
|
|
1807
|
-
var StackedList =
|
|
1808
|
-
({ 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(
|
|
1809
1522
|
"ul",
|
|
1810
1523
|
{
|
|
1811
1524
|
ref,
|
|
@@ -1817,7 +1530,7 @@ var StackedList = React10.forwardRef(
|
|
|
1817
1530
|
)
|
|
1818
1531
|
);
|
|
1819
1532
|
StackedList.displayName = "StackedList";
|
|
1820
|
-
var StackedListItem =
|
|
1533
|
+
var StackedListItem = React8.forwardRef(
|
|
1821
1534
|
({
|
|
1822
1535
|
className,
|
|
1823
1536
|
avatar,
|
|
@@ -1827,7 +1540,7 @@ var StackedListItem = React10.forwardRef(
|
|
|
1827
1540
|
action,
|
|
1828
1541
|
density = "default",
|
|
1829
1542
|
...props
|
|
1830
|
-
}, ref) => /* @__PURE__ */
|
|
1543
|
+
}, ref) => /* @__PURE__ */ jsxs13(
|
|
1831
1544
|
"li",
|
|
1832
1545
|
{
|
|
1833
1546
|
ref,
|
|
@@ -1838,9 +1551,9 @@ var StackedListItem = React10.forwardRef(
|
|
|
1838
1551
|
),
|
|
1839
1552
|
...props,
|
|
1840
1553
|
children: [
|
|
1841
|
-
avatar && /* @__PURE__ */
|
|
1842
|
-
/* @__PURE__ */
|
|
1843
|
-
/* @__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(
|
|
1844
1557
|
"p",
|
|
1845
1558
|
{
|
|
1846
1559
|
className: cn(
|
|
@@ -1850,7 +1563,7 @@ var StackedListItem = React10.forwardRef(
|
|
|
1850
1563
|
children: title
|
|
1851
1564
|
}
|
|
1852
1565
|
),
|
|
1853
|
-
description && /* @__PURE__ */
|
|
1566
|
+
description && /* @__PURE__ */ jsx19(
|
|
1854
1567
|
"p",
|
|
1855
1568
|
{
|
|
1856
1569
|
className: cn(
|
|
@@ -1861,8 +1574,8 @@ var StackedListItem = React10.forwardRef(
|
|
|
1861
1574
|
}
|
|
1862
1575
|
)
|
|
1863
1576
|
] }),
|
|
1864
|
-
meta && /* @__PURE__ */
|
|
1865
|
-
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 })
|
|
1866
1579
|
]
|
|
1867
1580
|
}
|
|
1868
1581
|
)
|
|
@@ -1870,8 +1583,8 @@ var StackedListItem = React10.forwardRef(
|
|
|
1870
1583
|
StackedListItem.displayName = "StackedListItem";
|
|
1871
1584
|
|
|
1872
1585
|
// src/grid-list.tsx
|
|
1873
|
-
import * as
|
|
1874
|
-
import { jsx as
|
|
1586
|
+
import * as React9 from "react";
|
|
1587
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
1875
1588
|
var COLUMN_CLASSES = {
|
|
1876
1589
|
2: "grid-cols-1 sm:grid-cols-2",
|
|
1877
1590
|
3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
|
|
@@ -1882,8 +1595,8 @@ var GAP_CLASSES = {
|
|
|
1882
1595
|
md: "gap-4",
|
|
1883
1596
|
lg: "gap-6"
|
|
1884
1597
|
};
|
|
1885
|
-
var GridList =
|
|
1886
|
-
({ className, columns = 3, gap = "md", ...props }, ref) => /* @__PURE__ */
|
|
1598
|
+
var GridList = React9.forwardRef(
|
|
1599
|
+
({ className, columns = 3, gap = "md", ...props }, ref) => /* @__PURE__ */ jsx20(
|
|
1887
1600
|
"div",
|
|
1888
1601
|
{
|
|
1889
1602
|
ref,
|
|
@@ -1898,8 +1611,8 @@ var GridList = React11.forwardRef(
|
|
|
1898
1611
|
)
|
|
1899
1612
|
);
|
|
1900
1613
|
GridList.displayName = "GridList";
|
|
1901
|
-
var GridListItem =
|
|
1902
|
-
({ className, hoverable = false, ...props }, ref) => /* @__PURE__ */
|
|
1614
|
+
var GridListItem = React9.forwardRef(
|
|
1615
|
+
({ className, hoverable = false, ...props }, ref) => /* @__PURE__ */ jsx20(
|
|
1903
1616
|
"div",
|
|
1904
1617
|
{
|
|
1905
1618
|
ref,
|
|
@@ -1915,8 +1628,8 @@ var GridListItem = React11.forwardRef(
|
|
|
1915
1628
|
GridListItem.displayName = "GridListItem";
|
|
1916
1629
|
|
|
1917
1630
|
// src/pagination.tsx
|
|
1918
|
-
import * as
|
|
1919
|
-
import { jsx as
|
|
1631
|
+
import * as React10 from "react";
|
|
1632
|
+
import { jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1920
1633
|
function getPageRange(current, total, siblings) {
|
|
1921
1634
|
const range = [];
|
|
1922
1635
|
const left = Math.max(2, current - siblings);
|
|
@@ -1928,7 +1641,7 @@ function getPageRange(current, total, siblings) {
|
|
|
1928
1641
|
if (total > 1) range.push(total);
|
|
1929
1642
|
return range;
|
|
1930
1643
|
}
|
|
1931
|
-
var PaginationButton =
|
|
1644
|
+
var PaginationButton = React10.forwardRef(({ className, active, disabled, ...props }, ref) => /* @__PURE__ */ jsx21(
|
|
1932
1645
|
"button",
|
|
1933
1646
|
{
|
|
1934
1647
|
ref,
|
|
@@ -1945,7 +1658,7 @@ var PaginationButton = React12.forwardRef(({ className, active, disabled, ...pro
|
|
|
1945
1658
|
}
|
|
1946
1659
|
));
|
|
1947
1660
|
PaginationButton.displayName = "PaginationButton";
|
|
1948
|
-
var Pagination =
|
|
1661
|
+
var Pagination = React10.forwardRef(
|
|
1949
1662
|
({
|
|
1950
1663
|
className,
|
|
1951
1664
|
currentPage,
|
|
@@ -1961,7 +1674,7 @@ var Pagination = React12.forwardRef(
|
|
|
1961
1674
|
}
|
|
1962
1675
|
};
|
|
1963
1676
|
if (variant === "simple") {
|
|
1964
|
-
return /* @__PURE__ */
|
|
1677
|
+
return /* @__PURE__ */ jsxs14(
|
|
1965
1678
|
"nav",
|
|
1966
1679
|
{
|
|
1967
1680
|
ref,
|
|
@@ -1969,7 +1682,7 @@ var Pagination = React12.forwardRef(
|
|
|
1969
1682
|
className: cn("flex items-center justify-between", className),
|
|
1970
1683
|
...props,
|
|
1971
1684
|
children: [
|
|
1972
|
-
/* @__PURE__ */
|
|
1685
|
+
/* @__PURE__ */ jsx21(
|
|
1973
1686
|
PaginationButton,
|
|
1974
1687
|
{
|
|
1975
1688
|
onClick: () => handleChange(currentPage - 1),
|
|
@@ -1977,13 +1690,13 @@ var Pagination = React12.forwardRef(
|
|
|
1977
1690
|
children: "Previous"
|
|
1978
1691
|
}
|
|
1979
1692
|
),
|
|
1980
|
-
/* @__PURE__ */
|
|
1693
|
+
/* @__PURE__ */ jsxs14("span", { className: "text-sm text-muted-foreground", children: [
|
|
1981
1694
|
"Page ",
|
|
1982
1695
|
currentPage,
|
|
1983
1696
|
" of ",
|
|
1984
1697
|
totalPages
|
|
1985
1698
|
] }),
|
|
1986
|
-
/* @__PURE__ */
|
|
1699
|
+
/* @__PURE__ */ jsx21(
|
|
1987
1700
|
PaginationButton,
|
|
1988
1701
|
{
|
|
1989
1702
|
onClick: () => handleChange(currentPage + 1),
|
|
@@ -1996,7 +1709,7 @@ var Pagination = React12.forwardRef(
|
|
|
1996
1709
|
);
|
|
1997
1710
|
}
|
|
1998
1711
|
const pages = getPageRange(currentPage, totalPages, siblingCount);
|
|
1999
|
-
return /* @__PURE__ */
|
|
1712
|
+
return /* @__PURE__ */ jsxs14(
|
|
2000
1713
|
"nav",
|
|
2001
1714
|
{
|
|
2002
1715
|
ref,
|
|
@@ -2008,7 +1721,7 @@ var Pagination = React12.forwardRef(
|
|
|
2008
1721
|
),
|
|
2009
1722
|
...props,
|
|
2010
1723
|
children: [
|
|
2011
|
-
/* @__PURE__ */
|
|
1724
|
+
/* @__PURE__ */ jsx21(
|
|
2012
1725
|
PaginationButton,
|
|
2013
1726
|
{
|
|
2014
1727
|
onClick: () => handleChange(currentPage - 1),
|
|
@@ -2017,14 +1730,14 @@ var Pagination = React12.forwardRef(
|
|
|
2017
1730
|
}
|
|
2018
1731
|
),
|
|
2019
1732
|
pages.map(
|
|
2020
|
-
(page, i) => page === "ellipsis" ? /* @__PURE__ */
|
|
1733
|
+
(page, i) => page === "ellipsis" ? /* @__PURE__ */ jsx21(
|
|
2021
1734
|
"span",
|
|
2022
1735
|
{
|
|
2023
1736
|
className: "inline-flex h-9 min-w-9 items-center justify-center text-sm text-muted-foreground",
|
|
2024
1737
|
children: "..."
|
|
2025
1738
|
},
|
|
2026
1739
|
`ellipsis-${i}`
|
|
2027
|
-
) : /* @__PURE__ */
|
|
1740
|
+
) : /* @__PURE__ */ jsx21(
|
|
2028
1741
|
PaginationButton,
|
|
2029
1742
|
{
|
|
2030
1743
|
active: page === currentPage,
|
|
@@ -2034,7 +1747,7 @@ var Pagination = React12.forwardRef(
|
|
|
2034
1747
|
page
|
|
2035
1748
|
)
|
|
2036
1749
|
),
|
|
2037
|
-
/* @__PURE__ */
|
|
1750
|
+
/* @__PURE__ */ jsx21(
|
|
2038
1751
|
PaginationButton,
|
|
2039
1752
|
{
|
|
2040
1753
|
onClick: () => handleChange(currentPage + 1),
|
|
@@ -2050,106 +1763,9 @@ var Pagination = React12.forwardRef(
|
|
|
2050
1763
|
Pagination.displayName = "Pagination";
|
|
2051
1764
|
|
|
2052
1765
|
// src/stepper.tsx
|
|
2053
|
-
import * as
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
import * as React13 from "react";
|
|
2057
|
-
|
|
2058
|
-
// src/scroll-hint.ts
|
|
2059
|
-
var SCROLL_HINT_X = "";
|
|
2060
|
-
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";
|
|
2061
|
-
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";
|
|
2062
|
-
var SCROLL_HINT_Y = "[container-type:scroll-state]";
|
|
2063
|
-
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";
|
|
2064
|
-
|
|
2065
|
-
// src/scroll-hint-watch.ts
|
|
2066
|
-
function scrollHintXState(box, slotWidth) {
|
|
2067
|
-
if (box.scrollWidth - slotWidth <= box.clientWidth + 1) return "none";
|
|
2068
|
-
return Math.abs(box.scrollLeft) + box.clientWidth >= box.scrollWidth - 1 ? "end" : "more";
|
|
2069
|
-
}
|
|
2070
|
-
function scrollHintXSlotWidth(mark, scroller) {
|
|
2071
|
-
const own = getComputedStyle(mark);
|
|
2072
|
-
if (own.display === "none") return 0;
|
|
2073
|
-
const px = (v, what) => {
|
|
2074
|
-
if (v === "normal") return 0;
|
|
2075
|
-
const n = Number.parseFloat(v);
|
|
2076
|
-
if (!Number.isFinite(n)) {
|
|
2077
|
-
throw new Error(
|
|
2078
|
-
`scrollHintXSlotWidth: ${what} is "${v}", not a length in px`
|
|
2079
|
-
);
|
|
2080
|
-
}
|
|
2081
|
-
return n;
|
|
2082
|
-
};
|
|
2083
|
-
const gap = mark.previousElementSibling === null ? 0 : px(getComputedStyle(scroller).columnGap, "the scroller's column-gap");
|
|
2084
|
-
return mark.getBoundingClientRect().width + px(own.marginLeft, "the mark's margin-left") + px(own.marginRight, "the mark's margin-right") + gap;
|
|
2085
|
-
}
|
|
2086
|
-
function watchScrollHintX(mark, write) {
|
|
2087
|
-
const scroller = mark.parentElement;
|
|
2088
|
-
if (scroller === null) {
|
|
2089
|
-
throw new Error(
|
|
2090
|
-
"watchScrollHintX: the mark has no parent element; it must be the last child of the box that scrolls on x"
|
|
2091
|
-
);
|
|
2092
|
-
}
|
|
2093
|
-
let last;
|
|
2094
|
-
const update = () => {
|
|
2095
|
-
const state = scrollHintXState(
|
|
2096
|
-
scroller,
|
|
2097
|
-
scrollHintXSlotWidth(mark, scroller)
|
|
2098
|
-
);
|
|
2099
|
-
if (state === last) return;
|
|
2100
|
-
last = state;
|
|
2101
|
-
write(state);
|
|
2102
|
-
};
|
|
2103
|
-
const resize = new ResizeObserver(update);
|
|
2104
|
-
const observeChildren = () => {
|
|
2105
|
-
for (const child of Array.from(scroller.children)) resize.observe(child);
|
|
2106
|
-
};
|
|
2107
|
-
resize.observe(scroller);
|
|
2108
|
-
observeChildren();
|
|
2109
|
-
const added = new MutationObserver(() => {
|
|
2110
|
-
observeChildren();
|
|
2111
|
-
update();
|
|
2112
|
-
});
|
|
2113
|
-
added.observe(scroller, { childList: true });
|
|
2114
|
-
scroller.addEventListener("scroll", update, { passive: true });
|
|
2115
|
-
update();
|
|
2116
|
-
return () => {
|
|
2117
|
-
scroller.removeEventListener("scroll", update);
|
|
2118
|
-
resize.disconnect();
|
|
2119
|
-
added.disconnect();
|
|
2120
|
-
};
|
|
2121
|
-
}
|
|
2122
|
-
|
|
2123
|
-
// src/scroll-hint-mark.tsx
|
|
2124
|
-
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
2125
|
-
function ScrollHintXMark() {
|
|
2126
|
-
const ref = React13.useRef(null);
|
|
2127
|
-
React13.useEffect(() => {
|
|
2128
|
-
const mark = ref.current;
|
|
2129
|
-
if (mark === null) {
|
|
2130
|
-
throw new Error(
|
|
2131
|
-
"ScrollHintXMark: the effect ran with no mounted mark (ref.current is null)"
|
|
2132
|
-
);
|
|
2133
|
-
}
|
|
2134
|
-
return watchScrollHintX(mark, (state) => {
|
|
2135
|
-
mark.dataset.scrollHintState = state;
|
|
2136
|
-
});
|
|
2137
|
-
}, []);
|
|
2138
|
-
return /* @__PURE__ */ jsx26(
|
|
2139
|
-
"div",
|
|
2140
|
-
{
|
|
2141
|
-
ref,
|
|
2142
|
-
"aria-hidden": "true",
|
|
2143
|
-
"data-scroll-hint": "x",
|
|
2144
|
-
className: SCROLL_HINT_X_MARK,
|
|
2145
|
-
children: /* @__PURE__ */ jsx26("span", { className: SCROLL_HINT_X_PILL, children: /* @__PURE__ */ jsx26(Icon, { name: "chevron-right", size: "sm" }) })
|
|
2146
|
-
}
|
|
2147
|
-
);
|
|
2148
|
-
}
|
|
2149
|
-
|
|
2150
|
-
// src/stepper.tsx
|
|
2151
|
-
import { jsx as jsx27, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2152
|
-
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({
|
|
2153
1769
|
index: 0,
|
|
2154
1770
|
activeStep: 0,
|
|
2155
1771
|
isLast: false,
|
|
@@ -2166,7 +1782,7 @@ var LABEL_SIZE = {
|
|
|
2166
1782
|
md: "text-sm",
|
|
2167
1783
|
lg: "text-base"
|
|
2168
1784
|
};
|
|
2169
|
-
var StepperStep =
|
|
1785
|
+
var StepperStep = React11.forwardRef(
|
|
2170
1786
|
({
|
|
2171
1787
|
className,
|
|
2172
1788
|
label,
|
|
@@ -2178,10 +1794,10 @@ var StepperStep = React14.forwardRef(
|
|
|
2178
1794
|
href,
|
|
2179
1795
|
...props
|
|
2180
1796
|
}, ref) => {
|
|
2181
|
-
const { index, activeStep, isLast, variant, size } =
|
|
1797
|
+
const { index, activeStep, isLast, variant, size } = React11.useContext(StepContext);
|
|
2182
1798
|
const status = error ? "error" : disabled ? "disabled" : index < activeStep || completed ? "complete" : index === activeStep ? "current" : "upcoming";
|
|
2183
1799
|
const isCurrent = index === activeStep && !error && !disabled;
|
|
2184
|
-
const indicator = /* @__PURE__ */
|
|
1800
|
+
const indicator = /* @__PURE__ */ jsx22(
|
|
2185
1801
|
"div",
|
|
2186
1802
|
{
|
|
2187
1803
|
className: cn(
|
|
@@ -2199,7 +1815,7 @@ var StepperStep = React14.forwardRef(
|
|
|
2199
1815
|
}
|
|
2200
1816
|
);
|
|
2201
1817
|
if (variant === "vertical") {
|
|
2202
|
-
return /* @__PURE__ */
|
|
1818
|
+
return /* @__PURE__ */ jsxs15(
|
|
2203
1819
|
"div",
|
|
2204
1820
|
{
|
|
2205
1821
|
ref,
|
|
@@ -2209,9 +1825,9 @@ var StepperStep = React14.forwardRef(
|
|
|
2209
1825
|
className: cn("flex gap-3", disabled && "opacity-50", className),
|
|
2210
1826
|
...props,
|
|
2211
1827
|
children: [
|
|
2212
|
-
/* @__PURE__ */
|
|
1828
|
+
/* @__PURE__ */ jsxs15("div", { className: "flex flex-col items-center", children: [
|
|
2213
1829
|
indicator,
|
|
2214
|
-
!isLast && /* @__PURE__ */
|
|
1830
|
+
!isLast && /* @__PURE__ */ jsx22(
|
|
2215
1831
|
"div",
|
|
2216
1832
|
{
|
|
2217
1833
|
className: cn(
|
|
@@ -2223,8 +1839,8 @@ var StepperStep = React14.forwardRef(
|
|
|
2223
1839
|
}
|
|
2224
1840
|
)
|
|
2225
1841
|
] }),
|
|
2226
|
-
/* @__PURE__ */
|
|
2227
|
-
/* @__PURE__ */
|
|
1842
|
+
/* @__PURE__ */ jsxs15("div", { className: "pb-6", children: [
|
|
1843
|
+
/* @__PURE__ */ jsx22(
|
|
2228
1844
|
"p",
|
|
2229
1845
|
{
|
|
2230
1846
|
className: cn(
|
|
@@ -2235,15 +1851,15 @@ var StepperStep = React14.forwardRef(
|
|
|
2235
1851
|
children: label
|
|
2236
1852
|
}
|
|
2237
1853
|
),
|
|
2238
|
-
description && /* @__PURE__ */
|
|
1854
|
+
description && /* @__PURE__ */ jsx22("p", { className: "mt-0.5 text-xs text-muted-foreground", children: description })
|
|
2239
1855
|
] })
|
|
2240
1856
|
]
|
|
2241
1857
|
}
|
|
2242
1858
|
);
|
|
2243
1859
|
}
|
|
2244
|
-
const stepContent = /* @__PURE__ */
|
|
1860
|
+
const stepContent = /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-2", children: [
|
|
2245
1861
|
indicator,
|
|
2246
|
-
/* @__PURE__ */
|
|
1862
|
+
/* @__PURE__ */ jsx22(
|
|
2247
1863
|
"span",
|
|
2248
1864
|
{
|
|
2249
1865
|
className: cn(
|
|
@@ -2255,7 +1871,7 @@ var StepperStep = React14.forwardRef(
|
|
|
2255
1871
|
}
|
|
2256
1872
|
)
|
|
2257
1873
|
] });
|
|
2258
|
-
return /* @__PURE__ */
|
|
1874
|
+
return /* @__PURE__ */ jsxs15(
|
|
2259
1875
|
"div",
|
|
2260
1876
|
{
|
|
2261
1877
|
ref,
|
|
@@ -2265,7 +1881,7 @@ var StepperStep = React14.forwardRef(
|
|
|
2265
1881
|
className: cn("flex items-center", className),
|
|
2266
1882
|
...props,
|
|
2267
1883
|
children: [
|
|
2268
|
-
href && !disabled ? /* @__PURE__ */
|
|
1884
|
+
href && !disabled ? /* @__PURE__ */ jsx22(
|
|
2269
1885
|
"a",
|
|
2270
1886
|
{
|
|
2271
1887
|
href,
|
|
@@ -2274,7 +1890,7 @@ var StepperStep = React14.forwardRef(
|
|
|
2274
1890
|
children: stepContent
|
|
2275
1891
|
}
|
|
2276
1892
|
) : stepContent,
|
|
2277
|
-
!isLast && /* @__PURE__ */
|
|
1893
|
+
!isLast && /* @__PURE__ */ jsx22(
|
|
2278
1894
|
"div",
|
|
2279
1895
|
{
|
|
2280
1896
|
className: cn(
|
|
@@ -2289,7 +1905,7 @@ var StepperStep = React14.forwardRef(
|
|
|
2289
1905
|
}
|
|
2290
1906
|
);
|
|
2291
1907
|
StepperStep.displayName = "StepperStep";
|
|
2292
|
-
var Stepper =
|
|
1908
|
+
var Stepper = React11.forwardRef(
|
|
2293
1909
|
({
|
|
2294
1910
|
className,
|
|
2295
1911
|
variant = "horizontal",
|
|
@@ -2298,8 +1914,8 @@ var Stepper = React14.forwardRef(
|
|
|
2298
1914
|
children,
|
|
2299
1915
|
...props
|
|
2300
1916
|
}, ref) => {
|
|
2301
|
-
const steps =
|
|
2302
|
-
return /* @__PURE__ */
|
|
1917
|
+
const steps = React11.Children.toArray(children);
|
|
1918
|
+
return /* @__PURE__ */ jsxs15(
|
|
2303
1919
|
"div",
|
|
2304
1920
|
{
|
|
2305
1921
|
ref,
|
|
@@ -2311,7 +1927,7 @@ var Stepper = React14.forwardRef(
|
|
|
2311
1927
|
),
|
|
2312
1928
|
...props,
|
|
2313
1929
|
children: [
|
|
2314
|
-
steps.map((child, i) => /* @__PURE__ */
|
|
1930
|
+
steps.map((child, i) => /* @__PURE__ */ jsx22(
|
|
2315
1931
|
StepContext.Provider,
|
|
2316
1932
|
{
|
|
2317
1933
|
value: {
|
|
@@ -2325,7 +1941,7 @@ var Stepper = React14.forwardRef(
|
|
|
2325
1941
|
},
|
|
2326
1942
|
i
|
|
2327
1943
|
)),
|
|
2328
|
-
variant === "horizontal" && /* @__PURE__ */
|
|
1944
|
+
variant === "horizontal" && /* @__PURE__ */ jsx22(ScrollHintXMark, {})
|
|
2329
1945
|
]
|
|
2330
1946
|
}
|
|
2331
1947
|
);
|
|
@@ -2334,14 +1950,14 @@ var Stepper = React14.forwardRef(
|
|
|
2334
1950
|
Stepper.displayName = "Stepper";
|
|
2335
1951
|
|
|
2336
1952
|
// src/command-palette.tsx
|
|
2337
|
-
import * as
|
|
2338
|
-
import { Fragment as
|
|
1953
|
+
import * as React12 from "react";
|
|
1954
|
+
import { Fragment as Fragment2, jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2339
1955
|
var SIZE_CLASSES = {
|
|
2340
1956
|
sm: "max-w-sm",
|
|
2341
1957
|
md: "max-w-lg",
|
|
2342
1958
|
lg: "max-w-2xl"
|
|
2343
1959
|
};
|
|
2344
|
-
var CommandPalette =
|
|
1960
|
+
var CommandPalette = React12.forwardRef(
|
|
2345
1961
|
({
|
|
2346
1962
|
className,
|
|
2347
1963
|
open,
|
|
@@ -2352,9 +1968,9 @@ var CommandPalette = React15.forwardRef(
|
|
|
2352
1968
|
size = "md",
|
|
2353
1969
|
...props
|
|
2354
1970
|
}, ref) => {
|
|
2355
|
-
const [query, setQuery] =
|
|
2356
|
-
const [activeIndex, setActiveIndex] =
|
|
2357
|
-
|
|
1971
|
+
const [query, setQuery] = React12.useState("");
|
|
1972
|
+
const [activeIndex, setActiveIndex] = React12.useState(0);
|
|
1973
|
+
React12.useEffect(() => {
|
|
2358
1974
|
if (!open) return;
|
|
2359
1975
|
const handler = (e) => {
|
|
2360
1976
|
if (e.key === "Escape") onClose?.();
|
|
@@ -2374,7 +1990,7 @@ var CommandPalette = React15.forwardRef(
|
|
|
2374
1990
|
document.addEventListener("keydown", handler);
|
|
2375
1991
|
return () => document.removeEventListener("keydown", handler);
|
|
2376
1992
|
}, [open, onClose, results, activeIndex]);
|
|
2377
|
-
|
|
1993
|
+
React12.useEffect(() => {
|
|
2378
1994
|
setActiveIndex(0);
|
|
2379
1995
|
}, [query]);
|
|
2380
1996
|
if (!open) return null;
|
|
@@ -2387,15 +2003,15 @@ var CommandPalette = React15.forwardRef(
|
|
|
2387
2003
|
},
|
|
2388
2004
|
{}
|
|
2389
2005
|
);
|
|
2390
|
-
return /* @__PURE__ */
|
|
2391
|
-
/* @__PURE__ */
|
|
2006
|
+
return /* @__PURE__ */ jsxs16(Fragment2, { children: [
|
|
2007
|
+
/* @__PURE__ */ jsx23(
|
|
2392
2008
|
"div",
|
|
2393
2009
|
{
|
|
2394
2010
|
className: "z-modal fixed inset-0 bg-foreground/60",
|
|
2395
2011
|
onClick: onClose
|
|
2396
2012
|
}
|
|
2397
2013
|
),
|
|
2398
|
-
/* @__PURE__ */
|
|
2014
|
+
/* @__PURE__ */ jsx23("div", { className: "z-modal fixed inset-0 flex items-start justify-center pt-[15vh]", children: /* @__PURE__ */ jsxs16(
|
|
2399
2015
|
"div",
|
|
2400
2016
|
{
|
|
2401
2017
|
ref,
|
|
@@ -2406,9 +2022,9 @@ var CommandPalette = React15.forwardRef(
|
|
|
2406
2022
|
),
|
|
2407
2023
|
...props,
|
|
2408
2024
|
children: [
|
|
2409
|
-
/* @__PURE__ */
|
|
2410
|
-
/* @__PURE__ */
|
|
2411
|
-
/* @__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(
|
|
2412
2028
|
"input",
|
|
2413
2029
|
{
|
|
2414
2030
|
type: "text",
|
|
@@ -2422,13 +2038,13 @@ var CommandPalette = React15.forwardRef(
|
|
|
2422
2038
|
autoFocus: true
|
|
2423
2039
|
}
|
|
2424
2040
|
),
|
|
2425
|
-
/* @__PURE__ */
|
|
2041
|
+
/* @__PURE__ */ jsx23("kbd", { className: "rounded border border-border px-1.5 py-0.5 text-xs text-muted-foreground", children: "Esc" })
|
|
2426
2042
|
] }),
|
|
2427
|
-
/* @__PURE__ */
|
|
2428
|
-
/* @__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 }),
|
|
2429
2045
|
items.map((item) => {
|
|
2430
2046
|
const idx = results.indexOf(item);
|
|
2431
|
-
return /* @__PURE__ */
|
|
2047
|
+
return /* @__PURE__ */ jsxs16(
|
|
2432
2048
|
"button",
|
|
2433
2049
|
{
|
|
2434
2050
|
type: "button",
|
|
@@ -2442,9 +2058,9 @@ var CommandPalette = React15.forwardRef(
|
|
|
2442
2058
|
},
|
|
2443
2059
|
onMouseEnter: () => setActiveIndex(idx),
|
|
2444
2060
|
children: [
|
|
2445
|
-
item.icon && /* @__PURE__ */
|
|
2446
|
-
/* @__PURE__ */
|
|
2447
|
-
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 })
|
|
2448
2064
|
]
|
|
2449
2065
|
},
|
|
2450
2066
|
item.id
|
|
@@ -2460,9 +2076,9 @@ var CommandPalette = React15.forwardRef(
|
|
|
2460
2076
|
CommandPalette.displayName = "CommandPalette";
|
|
2461
2077
|
|
|
2462
2078
|
// src/app-shell.tsx
|
|
2463
|
-
import * as
|
|
2464
|
-
import { jsx as
|
|
2465
|
-
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(
|
|
2466
2082
|
({
|
|
2467
2083
|
className,
|
|
2468
2084
|
variant = "stacked",
|
|
@@ -2477,7 +2093,7 @@ var AppShell = React16.forwardRef(
|
|
|
2477
2093
|
...props
|
|
2478
2094
|
}, ref) => {
|
|
2479
2095
|
if (variant === "stacked") {
|
|
2480
|
-
return /* @__PURE__ */
|
|
2096
|
+
return /* @__PURE__ */ jsxs17(
|
|
2481
2097
|
"div",
|
|
2482
2098
|
{
|
|
2483
2099
|
ref,
|
|
@@ -2485,13 +2101,13 @@ var AppShell = React16.forwardRef(
|
|
|
2485
2101
|
...props,
|
|
2486
2102
|
children: [
|
|
2487
2103
|
header,
|
|
2488
|
-
/* @__PURE__ */
|
|
2104
|
+
/* @__PURE__ */ jsx24("main", { className: "flex-1", children })
|
|
2489
2105
|
]
|
|
2490
2106
|
}
|
|
2491
2107
|
);
|
|
2492
2108
|
}
|
|
2493
2109
|
if (variant === "multi-column") {
|
|
2494
|
-
return /* @__PURE__ */
|
|
2110
|
+
return /* @__PURE__ */ jsxs17(
|
|
2495
2111
|
"div",
|
|
2496
2112
|
{
|
|
2497
2113
|
ref,
|
|
@@ -2501,7 +2117,7 @@ var AppShell = React16.forwardRef(
|
|
|
2501
2117
|
),
|
|
2502
2118
|
...props,
|
|
2503
2119
|
children: [
|
|
2504
|
-
sidebar && /* @__PURE__ */
|
|
2120
|
+
sidebar && /* @__PURE__ */ jsx24(
|
|
2505
2121
|
"aside",
|
|
2506
2122
|
{
|
|
2507
2123
|
className: cn(
|
|
@@ -2511,11 +2127,11 @@ var AppShell = React16.forwardRef(
|
|
|
2511
2127
|
children: sidebar
|
|
2512
2128
|
}
|
|
2513
2129
|
),
|
|
2514
|
-
/* @__PURE__ */
|
|
2130
|
+
/* @__PURE__ */ jsxs17("div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
2515
2131
|
header,
|
|
2516
|
-
/* @__PURE__ */
|
|
2517
|
-
/* @__PURE__ */
|
|
2518
|
-
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 })
|
|
2519
2135
|
] })
|
|
2520
2136
|
] })
|
|
2521
2137
|
]
|
|
@@ -2523,7 +2139,7 @@ var AppShell = React16.forwardRef(
|
|
|
2523
2139
|
);
|
|
2524
2140
|
}
|
|
2525
2141
|
const left = sidebarPosition === "left";
|
|
2526
|
-
const column = sidebar && /* @__PURE__ */
|
|
2142
|
+
const column = sidebar && /* @__PURE__ */ jsx24(
|
|
2527
2143
|
"aside",
|
|
2528
2144
|
{
|
|
2529
2145
|
className: cn(
|
|
@@ -2534,7 +2150,7 @@ var AppShell = React16.forwardRef(
|
|
|
2534
2150
|
children: sidebar
|
|
2535
2151
|
}
|
|
2536
2152
|
);
|
|
2537
|
-
return /* @__PURE__ */
|
|
2153
|
+
return /* @__PURE__ */ jsxs17(
|
|
2538
2154
|
"div",
|
|
2539
2155
|
{
|
|
2540
2156
|
ref,
|
|
@@ -2542,15 +2158,15 @@ var AppShell = React16.forwardRef(
|
|
|
2542
2158
|
...props,
|
|
2543
2159
|
children: [
|
|
2544
2160
|
left && column,
|
|
2545
|
-
/* @__PURE__ */
|
|
2546
|
-
sidebar && /* @__PURE__ */
|
|
2161
|
+
/* @__PURE__ */ jsxs17("div", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
2162
|
+
sidebar && /* @__PURE__ */ jsx24(
|
|
2547
2163
|
"div",
|
|
2548
2164
|
{
|
|
2549
2165
|
className: cn(
|
|
2550
2166
|
"flex items-center border-b border-border bg-card px-2 py-2 md:hidden",
|
|
2551
2167
|
!left && "justify-end"
|
|
2552
2168
|
),
|
|
2553
|
-
children: /* @__PURE__ */
|
|
2169
|
+
children: /* @__PURE__ */ jsx24(
|
|
2554
2170
|
NavDrawer,
|
|
2555
2171
|
{
|
|
2556
2172
|
label: navLabel,
|
|
@@ -2563,7 +2179,7 @@ var AppShell = React16.forwardRef(
|
|
|
2563
2179
|
}
|
|
2564
2180
|
),
|
|
2565
2181
|
header,
|
|
2566
|
-
/* @__PURE__ */
|
|
2182
|
+
/* @__PURE__ */ jsx24("main", { className: "min-w-0 flex-1 overflow-y-auto", children })
|
|
2567
2183
|
] }),
|
|
2568
2184
|
!left && column
|
|
2569
2185
|
]
|
|
@@ -2574,8 +2190,8 @@ var AppShell = React16.forwardRef(
|
|
|
2574
2190
|
AppShell.displayName = "AppShell";
|
|
2575
2191
|
|
|
2576
2192
|
// src/popover.tsx
|
|
2577
|
-
import * as
|
|
2578
|
-
import { Fragment as
|
|
2193
|
+
import * as React14 from "react";
|
|
2194
|
+
import { Fragment as Fragment3, jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2579
2195
|
var SIDE_CLASSES = {
|
|
2580
2196
|
top: "bottom-full mb-2",
|
|
2581
2197
|
bottom: "top-full mt-2",
|
|
@@ -2587,7 +2203,7 @@ var ALIGN_CLASSES = {
|
|
|
2587
2203
|
center: "left-1/2 -translate-x-1/2",
|
|
2588
2204
|
end: "right-0"
|
|
2589
2205
|
};
|
|
2590
|
-
var Popover =
|
|
2206
|
+
var Popover = React14.forwardRef(
|
|
2591
2207
|
({
|
|
2592
2208
|
className,
|
|
2593
2209
|
open,
|
|
@@ -2598,10 +2214,10 @@ var Popover = React17.forwardRef(
|
|
|
2598
2214
|
children,
|
|
2599
2215
|
...props
|
|
2600
2216
|
}, ref) => {
|
|
2601
|
-
const [internalOpen, setInternalOpen] =
|
|
2217
|
+
const [internalOpen, setInternalOpen] = React14.useState(false);
|
|
2602
2218
|
const isOpen = open ?? internalOpen;
|
|
2603
2219
|
const setOpen = onOpenChange ?? setInternalOpen;
|
|
2604
|
-
|
|
2220
|
+
React14.useEffect(() => {
|
|
2605
2221
|
if (!isOpen) return;
|
|
2606
2222
|
const handler = (e) => {
|
|
2607
2223
|
if (e.key === "Escape") setOpen(false);
|
|
@@ -2609,23 +2225,23 @@ var Popover = React17.forwardRef(
|
|
|
2609
2225
|
document.addEventListener("keydown", handler);
|
|
2610
2226
|
return () => document.removeEventListener("keydown", handler);
|
|
2611
2227
|
}, [isOpen, setOpen]);
|
|
2612
|
-
return /* @__PURE__ */
|
|
2228
|
+
return /* @__PURE__ */ jsxs18(
|
|
2613
2229
|
"div",
|
|
2614
2230
|
{
|
|
2615
2231
|
ref,
|
|
2616
2232
|
className: cn("relative inline-block", className),
|
|
2617
2233
|
...props,
|
|
2618
2234
|
children: [
|
|
2619
|
-
/* @__PURE__ */
|
|
2620
|
-
isOpen && /* @__PURE__ */
|
|
2621
|
-
/* @__PURE__ */
|
|
2235
|
+
/* @__PURE__ */ jsx25("div", { onClick: () => setOpen(!isOpen), children: trigger }),
|
|
2236
|
+
isOpen && /* @__PURE__ */ jsxs18(Fragment3, { children: [
|
|
2237
|
+
/* @__PURE__ */ jsx25(
|
|
2622
2238
|
"div",
|
|
2623
2239
|
{
|
|
2624
2240
|
className: "z-popover fixed inset-0",
|
|
2625
2241
|
onClick: () => setOpen(false)
|
|
2626
2242
|
}
|
|
2627
2243
|
),
|
|
2628
|
-
/* @__PURE__ */
|
|
2244
|
+
/* @__PURE__ */ jsx25(
|
|
2629
2245
|
"div",
|
|
2630
2246
|
{
|
|
2631
2247
|
className: cn(
|
|
@@ -2643,7 +2259,7 @@ var Popover = React17.forwardRef(
|
|
|
2643
2259
|
}
|
|
2644
2260
|
);
|
|
2645
2261
|
Popover.displayName = "Popover";
|
|
2646
|
-
var HoverCard =
|
|
2262
|
+
var HoverCard = React14.forwardRef(
|
|
2647
2263
|
({
|
|
2648
2264
|
className,
|
|
2649
2265
|
trigger,
|
|
@@ -2653,8 +2269,8 @@ var HoverCard = React17.forwardRef(
|
|
|
2653
2269
|
children,
|
|
2654
2270
|
...props
|
|
2655
2271
|
}, ref) => {
|
|
2656
|
-
const [open, setOpen] =
|
|
2657
|
-
const timeoutRef =
|
|
2272
|
+
const [open, setOpen] = React14.useState(false);
|
|
2273
|
+
const timeoutRef = React14.useRef();
|
|
2658
2274
|
const handleEnter = () => {
|
|
2659
2275
|
clearTimeout(timeoutRef.current);
|
|
2660
2276
|
timeoutRef.current = setTimeout(() => setOpen(true), delay);
|
|
@@ -2663,10 +2279,10 @@ var HoverCard = React17.forwardRef(
|
|
|
2663
2279
|
clearTimeout(timeoutRef.current);
|
|
2664
2280
|
timeoutRef.current = setTimeout(() => setOpen(false), 150);
|
|
2665
2281
|
};
|
|
2666
|
-
|
|
2282
|
+
React14.useEffect(() => {
|
|
2667
2283
|
return () => clearTimeout(timeoutRef.current);
|
|
2668
2284
|
}, []);
|
|
2669
|
-
return /* @__PURE__ */
|
|
2285
|
+
return /* @__PURE__ */ jsxs18(
|
|
2670
2286
|
"div",
|
|
2671
2287
|
{
|
|
2672
2288
|
ref,
|
|
@@ -2676,7 +2292,7 @@ var HoverCard = React17.forwardRef(
|
|
|
2676
2292
|
...props,
|
|
2677
2293
|
children: [
|
|
2678
2294
|
trigger,
|
|
2679
|
-
open && /* @__PURE__ */
|
|
2295
|
+
open && /* @__PURE__ */ jsx25(
|
|
2680
2296
|
"div",
|
|
2681
2297
|
{
|
|
2682
2298
|
className: cn(
|
|
@@ -2697,8 +2313,8 @@ var HoverCard = React17.forwardRef(
|
|
|
2697
2313
|
HoverCard.displayName = "HoverCard";
|
|
2698
2314
|
|
|
2699
2315
|
// src/calendar.tsx
|
|
2700
|
-
import * as
|
|
2701
|
-
import { Fragment as
|
|
2316
|
+
import * as React15 from "react";
|
|
2317
|
+
import { Fragment as Fragment4, jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2702
2318
|
function getDaysInMonth(year, month) {
|
|
2703
2319
|
return new Date(year, month + 1, 0).getDate();
|
|
2704
2320
|
}
|
|
@@ -2736,7 +2352,7 @@ var SIZE_CONFIG = {
|
|
|
2736
2352
|
dot: "h-1.5 w-1.5"
|
|
2737
2353
|
}
|
|
2738
2354
|
};
|
|
2739
|
-
var
|
|
2355
|
+
var Calendar = React15.forwardRef(
|
|
2740
2356
|
({
|
|
2741
2357
|
className,
|
|
2742
2358
|
value,
|
|
@@ -2752,16 +2368,16 @@ var Calendar2 = React18.forwardRef(
|
|
|
2752
2368
|
size = "md",
|
|
2753
2369
|
...props
|
|
2754
2370
|
}, ref) => {
|
|
2755
|
-
const today =
|
|
2371
|
+
const today = React15.useMemo(() => {
|
|
2756
2372
|
if (todayProp) return todayProp;
|
|
2757
2373
|
const now = Date.now();
|
|
2758
2374
|
const d = new Date(now);
|
|
2759
2375
|
return new Date(d.getFullYear(), d.getMonth(), d.getDate());
|
|
2760
2376
|
}, [todayProp]);
|
|
2761
2377
|
const initialDate = value ?? rangeStart ?? today;
|
|
2762
|
-
const [viewYear, setViewYear] =
|
|
2763
|
-
const [viewMonth, setViewMonth] =
|
|
2764
|
-
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);
|
|
2765
2381
|
const daysInMonth = getDaysInMonth(viewYear, viewMonth);
|
|
2766
2382
|
const startDay = getStartDayOfWeek(viewYear, viewMonth);
|
|
2767
2383
|
const config = SIZE_CONFIG[size];
|
|
@@ -2895,7 +2511,7 @@ var Calendar2 = React18.forwardRef(
|
|
|
2895
2511
|
const cells = [];
|
|
2896
2512
|
for (let i = 0; i < startDay; i++) cells.push(null);
|
|
2897
2513
|
for (let d = 1; d <= daysInMonth; d++) cells.push(d);
|
|
2898
|
-
return /* @__PURE__ */
|
|
2514
|
+
return /* @__PURE__ */ jsxs19(
|
|
2899
2515
|
"div",
|
|
2900
2516
|
{
|
|
2901
2517
|
ref,
|
|
@@ -2910,8 +2526,8 @@ var Calendar2 = React18.forwardRef(
|
|
|
2910
2526
|
),
|
|
2911
2527
|
...props,
|
|
2912
2528
|
children: [
|
|
2913
|
-
/* @__PURE__ */
|
|
2914
|
-
/* @__PURE__ */
|
|
2529
|
+
/* @__PURE__ */ jsxs19("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
2530
|
+
/* @__PURE__ */ jsx26(
|
|
2915
2531
|
"button",
|
|
2916
2532
|
{
|
|
2917
2533
|
type: "button",
|
|
@@ -2922,7 +2538,7 @@ var Calendar2 = React18.forwardRef(
|
|
|
2922
2538
|
children: "\u2039"
|
|
2923
2539
|
}
|
|
2924
2540
|
),
|
|
2925
|
-
/* @__PURE__ */
|
|
2541
|
+
/* @__PURE__ */ jsx26(
|
|
2926
2542
|
"span",
|
|
2927
2543
|
{
|
|
2928
2544
|
className: "text-sm font-medium text-foreground",
|
|
@@ -2930,7 +2546,7 @@ var Calendar2 = React18.forwardRef(
|
|
|
2930
2546
|
children: formatMonth(viewYear, viewMonth)
|
|
2931
2547
|
}
|
|
2932
2548
|
),
|
|
2933
|
-
/* @__PURE__ */
|
|
2549
|
+
/* @__PURE__ */ jsx26(
|
|
2934
2550
|
"button",
|
|
2935
2551
|
{
|
|
2936
2552
|
type: "button",
|
|
@@ -2942,7 +2558,7 @@ var Calendar2 = React18.forwardRef(
|
|
|
2942
2558
|
}
|
|
2943
2559
|
)
|
|
2944
2560
|
] }),
|
|
2945
|
-
/* @__PURE__ */
|
|
2561
|
+
/* @__PURE__ */ jsx26("div", { role: "row", className: cn("grid grid-cols-7", config.gap), children: WEEKDAYS.map((day) => /* @__PURE__ */ jsx26(
|
|
2946
2562
|
"div",
|
|
2947
2563
|
{
|
|
2948
2564
|
role: "columnheader",
|
|
@@ -2954,9 +2570,9 @@ var Calendar2 = React18.forwardRef(
|
|
|
2954
2570
|
},
|
|
2955
2571
|
day
|
|
2956
2572
|
)) }),
|
|
2957
|
-
/* @__PURE__ */
|
|
2573
|
+
/* @__PURE__ */ jsx26("div", { className: cn("grid grid-cols-7", config.gap), children: cells.map((day, i) => {
|
|
2958
2574
|
if (day === null) {
|
|
2959
|
-
return /* @__PURE__ */
|
|
2575
|
+
return /* @__PURE__ */ jsx26("div", { className: config.cell }, `empty-${i}`);
|
|
2960
2576
|
}
|
|
2961
2577
|
const date = new Date(viewYear, viewMonth, day);
|
|
2962
2578
|
const disabled = isDisabled(day);
|
|
@@ -2979,7 +2595,7 @@ var Calendar2 = React18.forwardRef(
|
|
|
2979
2595
|
}
|
|
2980
2596
|
const isToday = isSameDay(date, today);
|
|
2981
2597
|
const eventDot = hasEvent(day);
|
|
2982
|
-
return /* @__PURE__ */
|
|
2598
|
+
return /* @__PURE__ */ jsxs19(
|
|
2983
2599
|
"button",
|
|
2984
2600
|
{
|
|
2985
2601
|
type: "button",
|
|
@@ -2998,7 +2614,7 @@ var Calendar2 = React18.forwardRef(
|
|
|
2998
2614
|
),
|
|
2999
2615
|
children: [
|
|
3000
2616
|
day,
|
|
3001
|
-
eventDot && /* @__PURE__ */
|
|
2617
|
+
eventDot && /* @__PURE__ */ jsx26(
|
|
3002
2618
|
"span",
|
|
3003
2619
|
{
|
|
3004
2620
|
className: cn(
|
|
@@ -3017,8 +2633,8 @@ var Calendar2 = React18.forwardRef(
|
|
|
3017
2633
|
);
|
|
3018
2634
|
}
|
|
3019
2635
|
);
|
|
3020
|
-
|
|
3021
|
-
var DatePicker =
|
|
2636
|
+
Calendar.displayName = "Calendar";
|
|
2637
|
+
var DatePicker = React15.forwardRef(
|
|
3022
2638
|
({
|
|
3023
2639
|
className,
|
|
3024
2640
|
variant = "single",
|
|
@@ -3037,7 +2653,7 @@ var DatePicker = React18.forwardRef(
|
|
|
3037
2653
|
disabled,
|
|
3038
2654
|
...props
|
|
3039
2655
|
}, ref) => {
|
|
3040
|
-
const [internalOpen, setInternalOpen] =
|
|
2656
|
+
const [internalOpen, setInternalOpen] = React15.useState(false);
|
|
3041
2657
|
const isOpen = controlledOpen ?? internalOpen;
|
|
3042
2658
|
const setOpen = onOpenChange ?? setInternalOpen;
|
|
3043
2659
|
const defaultPlaceholder = variant === "range" ? "Pick a date range" : "Pick a date";
|
|
@@ -3061,7 +2677,7 @@ var DatePicker = React18.forwardRef(
|
|
|
3061
2677
|
} else if (variant === "range" && rangeStart) {
|
|
3062
2678
|
displayText = rangeEnd ? `${formatDateForInput(rangeStart)} \u2013 ${formatDateForInput(rangeEnd)}` : formatDateForInput(rangeStart);
|
|
3063
2679
|
}
|
|
3064
|
-
return /* @__PURE__ */
|
|
2680
|
+
return /* @__PURE__ */ jsxs19(
|
|
3065
2681
|
"div",
|
|
3066
2682
|
{
|
|
3067
2683
|
ref,
|
|
@@ -3069,7 +2685,7 @@ var DatePicker = React18.forwardRef(
|
|
|
3069
2685
|
onKeyDown: handleKeyDown,
|
|
3070
2686
|
...props,
|
|
3071
2687
|
children: [
|
|
3072
|
-
/* @__PURE__ */
|
|
2688
|
+
/* @__PURE__ */ jsxs19(
|
|
3073
2689
|
"button",
|
|
3074
2690
|
{
|
|
3075
2691
|
type: "button",
|
|
@@ -3082,22 +2698,22 @@ var DatePicker = React18.forwardRef(
|
|
|
3082
2698
|
displayText ? "text-foreground" : "text-muted-foreground"
|
|
3083
2699
|
),
|
|
3084
2700
|
children: [
|
|
3085
|
-
/* @__PURE__ */
|
|
3086
|
-
/* @__PURE__ */
|
|
3087
|
-
/* @__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" })
|
|
3088
2704
|
]
|
|
3089
2705
|
}
|
|
3090
2706
|
),
|
|
3091
|
-
isOpen && /* @__PURE__ */
|
|
3092
|
-
/* @__PURE__ */
|
|
2707
|
+
isOpen && /* @__PURE__ */ jsxs19(Fragment4, { children: [
|
|
2708
|
+
/* @__PURE__ */ jsx26(
|
|
3093
2709
|
"div",
|
|
3094
2710
|
{
|
|
3095
2711
|
className: "z-popover fixed inset-0",
|
|
3096
2712
|
onClick: () => setOpen(false)
|
|
3097
2713
|
}
|
|
3098
2714
|
),
|
|
3099
|
-
/* @__PURE__ */
|
|
3100
|
-
|
|
2715
|
+
/* @__PURE__ */ jsx26("div", { className: "z-popover absolute left-0 top-full mt-1", children: /* @__PURE__ */ jsx26(
|
|
2716
|
+
Calendar,
|
|
3101
2717
|
{
|
|
3102
2718
|
selectionMode: variant,
|
|
3103
2719
|
value: variant === "single" ? value : void 0,
|
|
@@ -3120,35 +2736,9 @@ var DatePicker = React18.forwardRef(
|
|
|
3120
2736
|
DatePicker.displayName = "DatePicker";
|
|
3121
2737
|
|
|
3122
2738
|
// src/navbar.tsx
|
|
3123
|
-
import * as
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
import { jsx as jsx32, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3127
|
-
function NavbarMenu({
|
|
3128
|
-
search,
|
|
3129
|
-
links,
|
|
3130
|
-
actions,
|
|
3131
|
-
defaultOpen = false
|
|
3132
|
-
}) {
|
|
3133
|
-
return /* @__PURE__ */ jsx32("div", { className: "ml-auto md:hidden", children: /* @__PURE__ */ jsxs23(
|
|
3134
|
-
NavDrawer,
|
|
3135
|
-
{
|
|
3136
|
-
label: "Navigation",
|
|
3137
|
-
side: "right",
|
|
3138
|
-
closedFrom: "md",
|
|
3139
|
-
defaultOpen,
|
|
3140
|
-
children: [
|
|
3141
|
-
search && /* @__PURE__ */ jsx32("div", { className: "px-4 pb-3", children: search }),
|
|
3142
|
-
links && /* @__PURE__ */ jsx32("nav", { className: "flex flex-col px-4 pb-3 [&>a]:whitespace-normal [&>a]:py-2.5 [&>a]:text-base", children: links }),
|
|
3143
|
-
/* @__PURE__ */ jsx32("div", { className: "flex flex-col gap-2 border-t border-border p-4 [&>*]:w-full", children: actions })
|
|
3144
|
-
]
|
|
3145
|
-
}
|
|
3146
|
-
) });
|
|
3147
|
-
}
|
|
3148
|
-
|
|
3149
|
-
// src/navbar.tsx
|
|
3150
|
-
import { jsx as jsx33, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3151
|
-
var Navbar = React19.forwardRef(
|
|
2739
|
+
import * as React16 from "react";
|
|
2740
|
+
import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2741
|
+
var Navbar = React16.forwardRef(
|
|
3152
2742
|
({
|
|
3153
2743
|
className,
|
|
3154
2744
|
variant = "simple",
|
|
@@ -3160,31 +2750,32 @@ var Navbar = React19.forwardRef(
|
|
|
3160
2750
|
children,
|
|
3161
2751
|
...props
|
|
3162
2752
|
}, ref) => {
|
|
3163
|
-
const hasLinks =
|
|
2753
|
+
const hasLinks = React16.Children.toArray(children).length > 0;
|
|
3164
2754
|
const hasSearch = variant === "withSearch" && Boolean(search);
|
|
3165
2755
|
const folds = Boolean(actions) && (hasLinks || hasSearch);
|
|
3166
2756
|
const filled = hasSearch || variant === "centered" && hasLinks;
|
|
3167
|
-
return /* @__PURE__ */
|
|
2757
|
+
return /* @__PURE__ */ jsxs20(
|
|
3168
2758
|
"header",
|
|
3169
2759
|
{
|
|
3170
2760
|
ref,
|
|
3171
2761
|
className: cn(
|
|
3172
|
-
"border-b
|
|
3173
|
-
transparent ? "bg-transparent" : "bg-card",
|
|
2762
|
+
"border-b",
|
|
2763
|
+
transparent ? "border-transparent bg-transparent" : "border-border bg-card",
|
|
3174
2764
|
className
|
|
3175
2765
|
),
|
|
3176
2766
|
...props,
|
|
3177
2767
|
children: [
|
|
3178
|
-
/* @__PURE__ */
|
|
2768
|
+
/* @__PURE__ */ jsxs20(
|
|
3179
2769
|
"div",
|
|
3180
2770
|
{
|
|
3181
2771
|
className: cn(
|
|
3182
|
-
"mx-auto flex min-h-14 max-w-content-xl items-center gap-x-4 gap-y-2
|
|
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,
|
|
3183
2774
|
// nothing here can scroll or fold: the actions take their own row
|
|
3184
2775
|
!hasLinks && !folds && "flex-wrap md:flex-nowrap"
|
|
3185
2776
|
),
|
|
3186
2777
|
children: [
|
|
3187
|
-
logo && /* @__PURE__ */
|
|
2778
|
+
logo && /* @__PURE__ */ jsx27(
|
|
3188
2779
|
"div",
|
|
3189
2780
|
{
|
|
3190
2781
|
className: cn(
|
|
@@ -3193,7 +2784,7 @@ var Navbar = React19.forwardRef(
|
|
|
3193
2784
|
children: logo
|
|
3194
2785
|
}
|
|
3195
2786
|
),
|
|
3196
|
-
hasLinks && /* @__PURE__ */
|
|
2787
|
+
hasLinks && /* @__PURE__ */ jsxs20(
|
|
3197
2788
|
"nav",
|
|
3198
2789
|
{
|
|
3199
2790
|
className: cn(
|
|
@@ -3205,22 +2796,23 @@ var Navbar = React19.forwardRef(
|
|
|
3205
2796
|
),
|
|
3206
2797
|
children: [
|
|
3207
2798
|
children,
|
|
3208
|
-
/* @__PURE__ */
|
|
2799
|
+
/* @__PURE__ */ jsx27(ScrollHintXMark, {})
|
|
3209
2800
|
]
|
|
3210
2801
|
}
|
|
3211
2802
|
),
|
|
3212
|
-
hasSearch && /* @__PURE__ */
|
|
2803
|
+
hasSearch && /* @__PURE__ */ jsx27(
|
|
3213
2804
|
"div",
|
|
3214
2805
|
{
|
|
3215
2806
|
className: cn(
|
|
3216
|
-
|
|
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",
|
|
3217
2809
|
folds && "hidden md:block"
|
|
3218
2810
|
),
|
|
3219
2811
|
children: search
|
|
3220
2812
|
}
|
|
3221
2813
|
),
|
|
3222
|
-
!filled && hasLinks && /* @__PURE__ */
|
|
3223
|
-
actions && /* @__PURE__ */
|
|
2814
|
+
!filled && hasLinks && /* @__PURE__ */ jsx27("div", { className: "flex-1" }),
|
|
2815
|
+
actions && /* @__PURE__ */ jsx27(
|
|
3224
2816
|
"div",
|
|
3225
2817
|
{
|
|
3226
2818
|
className: cn(
|
|
@@ -3230,7 +2822,7 @@ var Navbar = React19.forwardRef(
|
|
|
3230
2822
|
children: actions
|
|
3231
2823
|
}
|
|
3232
2824
|
),
|
|
3233
|
-
folds && /* @__PURE__ */
|
|
2825
|
+
folds && /* @__PURE__ */ jsx27(
|
|
3234
2826
|
NavbarMenu,
|
|
3235
2827
|
{
|
|
3236
2828
|
search: hasSearch ? search : void 0,
|
|
@@ -3241,18 +2833,33 @@ var Navbar = React19.forwardRef(
|
|
|
3241
2833
|
]
|
|
3242
2834
|
}
|
|
3243
2835
|
),
|
|
3244
|
-
variant === "twoLevel" && secondaryNav && /* @__PURE__ */
|
|
3245
|
-
|
|
3246
|
-
|
|
3247
|
-
|
|
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
|
+
)
|
|
3248
2855
|
]
|
|
3249
2856
|
}
|
|
3250
2857
|
);
|
|
3251
2858
|
}
|
|
3252
2859
|
);
|
|
3253
2860
|
Navbar.displayName = "Navbar";
|
|
3254
|
-
var NavbarLink =
|
|
3255
|
-
({ className, active, ...props }, ref) => /* @__PURE__ */
|
|
2861
|
+
var NavbarLink = React16.forwardRef(
|
|
2862
|
+
({ className, active, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
3256
2863
|
"a",
|
|
3257
2864
|
{
|
|
3258
2865
|
ref,
|
|
@@ -3268,25 +2875,10 @@ var NavbarLink = React19.forwardRef(
|
|
|
3268
2875
|
NavbarLink.displayName = "NavbarLink";
|
|
3269
2876
|
|
|
3270
2877
|
// src/card-variants.tsx
|
|
3271
|
-
import * as
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
var EMPTY_VALUE_GLYPH = "\u2014";
|
|
3276
|
-
function isEmptyValue(value) {
|
|
3277
|
-
return value === null || value === void 0 || value === false || typeof value === "string" && value.trim() === "";
|
|
3278
|
-
}
|
|
3279
|
-
function EmptyValue({ className }) {
|
|
3280
|
-
return /* @__PURE__ */ jsxs25("span", { "data-empty-value": true, className: cn("text-muted-foreground", className), children: [
|
|
3281
|
-
/* @__PURE__ */ jsx34("span", { "aria-hidden": "true", children: EMPTY_VALUE_GLYPH }),
|
|
3282
|
-
/* @__PURE__ */ jsx34("span", { className: "sr-only", children: "Not set" })
|
|
3283
|
-
] });
|
|
3284
|
-
}
|
|
3285
|
-
|
|
3286
|
-
// src/card-variants.tsx
|
|
3287
|
-
import { jsx as jsx35, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
3288
|
-
var HorizontalCard = React20.forwardRef(
|
|
3289
|
-
({ className, media, hoverable, children, ...props }, ref) => /* @__PURE__ */ jsxs26(
|
|
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(
|
|
3290
2882
|
"div",
|
|
3291
2883
|
{
|
|
3292
2884
|
ref,
|
|
@@ -3297,15 +2889,15 @@ var HorizontalCard = React20.forwardRef(
|
|
|
3297
2889
|
),
|
|
3298
2890
|
...props,
|
|
3299
2891
|
children: [
|
|
3300
|
-
media && /* @__PURE__ */
|
|
3301
|
-
/* @__PURE__ */
|
|
2892
|
+
media && /* @__PURE__ */ jsx28("div", { className: "flex-shrink-0", children: media }),
|
|
2893
|
+
/* @__PURE__ */ jsx28("div", { className: "flex-1 p-4", children })
|
|
3302
2894
|
]
|
|
3303
2895
|
}
|
|
3304
2896
|
)
|
|
3305
2897
|
);
|
|
3306
2898
|
HorizontalCard.displayName = "HorizontalCard";
|
|
3307
|
-
var ImageCard =
|
|
3308
|
-
({ className, imageSrc, imageAlt, hoverable, children, ...props }, ref) => /* @__PURE__ */
|
|
2899
|
+
var ImageCard = React17.forwardRef(
|
|
2900
|
+
({ className, imageSrc, imageAlt, hoverable, children, ...props }, ref) => /* @__PURE__ */ jsxs21(
|
|
3309
2901
|
"div",
|
|
3310
2902
|
{
|
|
3311
2903
|
ref,
|
|
@@ -3316,7 +2908,7 @@ var ImageCard = React20.forwardRef(
|
|
|
3316
2908
|
),
|
|
3317
2909
|
...props,
|
|
3318
2910
|
children: [
|
|
3319
|
-
imageSrc && /* @__PURE__ */
|
|
2911
|
+
imageSrc && /* @__PURE__ */ jsx28("div", { className: "aspect-video w-full bg-muted", children: /* @__PURE__ */ jsx28(
|
|
3320
2912
|
"img",
|
|
3321
2913
|
{
|
|
3322
2914
|
src: imageSrc,
|
|
@@ -3324,13 +2916,13 @@ var ImageCard = React20.forwardRef(
|
|
|
3324
2916
|
className: "h-full w-full object-cover"
|
|
3325
2917
|
}
|
|
3326
2918
|
) }),
|
|
3327
|
-
/* @__PURE__ */
|
|
2919
|
+
/* @__PURE__ */ jsx28("div", { className: "p-4", children })
|
|
3328
2920
|
]
|
|
3329
2921
|
}
|
|
3330
2922
|
)
|
|
3331
2923
|
);
|
|
3332
2924
|
ImageCard.displayName = "ImageCard";
|
|
3333
|
-
var StatCardExtended =
|
|
2925
|
+
var StatCardExtended = React17.forwardRef(({ className, label, value, trend, icon, ...props }, ref) => /* @__PURE__ */ jsxs21(
|
|
3334
2926
|
"div",
|
|
3335
2927
|
{
|
|
3336
2928
|
ref,
|
|
@@ -3340,12 +2932,12 @@ var StatCardExtended = React20.forwardRef(({ className, label, value, trend, ico
|
|
|
3340
2932
|
),
|
|
3341
2933
|
...props,
|
|
3342
2934
|
children: [
|
|
3343
|
-
/* @__PURE__ */
|
|
3344
|
-
/* @__PURE__ */
|
|
3345
|
-
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 })
|
|
3346
2938
|
] }),
|
|
3347
|
-
/* @__PURE__ */
|
|
3348
|
-
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(
|
|
3349
2941
|
"p",
|
|
3350
2942
|
{
|
|
3351
2943
|
className: cn(
|
|
@@ -3365,8 +2957,8 @@ var StatCardExtended = React20.forwardRef(({ className, label, value, trend, ico
|
|
|
3365
2957
|
}
|
|
3366
2958
|
));
|
|
3367
2959
|
StatCardExtended.displayName = "StatCardExtended";
|
|
3368
|
-
var ActionCard =
|
|
3369
|
-
({ className, title, description, actions, children, ...props }, ref) => /* @__PURE__ */
|
|
2960
|
+
var ActionCard = React17.forwardRef(
|
|
2961
|
+
({ className, title, description, actions, children, ...props }, ref) => /* @__PURE__ */ jsxs21(
|
|
3370
2962
|
"div",
|
|
3371
2963
|
{
|
|
3372
2964
|
ref,
|
|
@@ -3376,12 +2968,12 @@ var ActionCard = React20.forwardRef(
|
|
|
3376
2968
|
),
|
|
3377
2969
|
...props,
|
|
3378
2970
|
children: [
|
|
3379
|
-
/* @__PURE__ */
|
|
3380
|
-
/* @__PURE__ */
|
|
3381
|
-
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 }),
|
|
3382
2974
|
children
|
|
3383
2975
|
] }),
|
|
3384
|
-
actions && /* @__PURE__ */
|
|
2976
|
+
actions && /* @__PURE__ */ jsx28("div", { className: "flex items-center gap-2 border-t border-border px-6 py-4", children: actions })
|
|
3385
2977
|
]
|
|
3386
2978
|
}
|
|
3387
2979
|
)
|
|
@@ -3389,9 +2981,8 @@ var ActionCard = React20.forwardRef(
|
|
|
3389
2981
|
ActionCard.displayName = "ActionCard";
|
|
3390
2982
|
|
|
3391
2983
|
// src/modal-dialog.tsx
|
|
3392
|
-
import * as
|
|
3393
|
-
import {
|
|
3394
|
-
import { Fragment as Fragment7, jsx as jsx36, jsxs as jsxs27 } 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";
|
|
3395
2986
|
var SIZE_CLASSES2 = {
|
|
3396
2987
|
sm: "max-w-sm",
|
|
3397
2988
|
md: "max-w-md",
|
|
@@ -3399,20 +2990,14 @@ var SIZE_CLASSES2 = {
|
|
|
3399
2990
|
xl: "max-w-xl",
|
|
3400
2991
|
fullscreen: "max-w-full mx-4 my-4 h-[calc(100vh-2rem)]"
|
|
3401
2992
|
};
|
|
3402
|
-
var ModalDialog =
|
|
2993
|
+
var ModalDialog = React18.forwardRef(
|
|
3403
2994
|
({ className, open, onClose, size = "md", children, ...props }, ref) => {
|
|
3404
|
-
|
|
3405
|
-
|
|
3406
|
-
const handler = (e) => {
|
|
3407
|
-
if (e.key === "Escape") onClose?.();
|
|
3408
|
-
};
|
|
3409
|
-
document.addEventListener("keydown", handler);
|
|
3410
|
-
return () => document.removeEventListener("keydown", handler);
|
|
3411
|
-
}, [open, onClose]);
|
|
2995
|
+
const [panel, setPanel] = usePanelRef(ref);
|
|
2996
|
+
const place = useModalSurface(Boolean(open), panel, onClose);
|
|
3412
2997
|
if (!open) return null;
|
|
3413
|
-
return
|
|
3414
|
-
/* @__PURE__ */
|
|
3415
|
-
/* @__PURE__ */
|
|
2998
|
+
return place(
|
|
2999
|
+
/* @__PURE__ */ jsxs22(Fragment5, { children: [
|
|
3000
|
+
/* @__PURE__ */ jsx29(
|
|
3416
3001
|
"div",
|
|
3417
3002
|
{
|
|
3418
3003
|
className: "z-overlay fixed inset-0 bg-foreground/60 transition-opacity",
|
|
@@ -3420,10 +3005,10 @@ var ModalDialog = React21.forwardRef(
|
|
|
3420
3005
|
"aria-hidden": "true"
|
|
3421
3006
|
}
|
|
3422
3007
|
),
|
|
3423
|
-
/* @__PURE__ */
|
|
3008
|
+
/* @__PURE__ */ jsx29("div", { className: "z-modal fixed inset-0 flex items-center justify-center p-4", children: /* @__PURE__ */ jsx29(
|
|
3424
3009
|
"div",
|
|
3425
3010
|
{
|
|
3426
|
-
ref,
|
|
3011
|
+
ref: setPanel,
|
|
3427
3012
|
role: "dialog",
|
|
3428
3013
|
"aria-modal": "true",
|
|
3429
3014
|
className: cn(
|
|
@@ -3436,13 +3021,12 @@ var ModalDialog = React21.forwardRef(
|
|
|
3436
3021
|
children
|
|
3437
3022
|
}
|
|
3438
3023
|
) })
|
|
3439
|
-
] })
|
|
3440
|
-
document.body
|
|
3024
|
+
] })
|
|
3441
3025
|
);
|
|
3442
3026
|
}
|
|
3443
3027
|
);
|
|
3444
3028
|
ModalDialog.displayName = "ModalDialog";
|
|
3445
|
-
var ModalHeader =
|
|
3029
|
+
var ModalHeader = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
3446
3030
|
"div",
|
|
3447
3031
|
{
|
|
3448
3032
|
ref,
|
|
@@ -3451,9 +3035,9 @@ var ModalHeader = React21.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3451
3035
|
}
|
|
3452
3036
|
));
|
|
3453
3037
|
ModalHeader.displayName = "ModalHeader";
|
|
3454
|
-
var ModalBody =
|
|
3038
|
+
var ModalBody = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29("div", { ref, className: cn("px-6 py-4", className), ...props }));
|
|
3455
3039
|
ModalBody.displayName = "ModalBody";
|
|
3456
|
-
var ModalFooter =
|
|
3040
|
+
var ModalFooter = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
3457
3041
|
"div",
|
|
3458
3042
|
{
|
|
3459
3043
|
ref,
|
|
@@ -3467,9 +3051,8 @@ var ModalFooter = React21.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3467
3051
|
ModalFooter.displayName = "ModalFooter";
|
|
3468
3052
|
|
|
3469
3053
|
// src/drawer.tsx
|
|
3470
|
-
import * as
|
|
3471
|
-
import {
|
|
3472
|
-
import { Fragment as Fragment8, jsx as jsx37, jsxs as jsxs28 } 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";
|
|
3473
3056
|
var SIZE_CLASSES3 = {
|
|
3474
3057
|
left: { sm: "w-64", md: "w-80", lg: "w-96" },
|
|
3475
3058
|
right: { sm: "w-64", md: "w-80", lg: "w-96" },
|
|
@@ -3480,7 +3063,7 @@ var POSITION_CLASSES = {
|
|
|
3480
3063
|
right: "inset-y-0 right-0",
|
|
3481
3064
|
bottom: "inset-x-0 bottom-0"
|
|
3482
3065
|
};
|
|
3483
|
-
var Drawer =
|
|
3066
|
+
var Drawer = React19.forwardRef(
|
|
3484
3067
|
({
|
|
3485
3068
|
className,
|
|
3486
3069
|
open,
|
|
@@ -3490,18 +3073,12 @@ var Drawer = React22.forwardRef(
|
|
|
3490
3073
|
children,
|
|
3491
3074
|
...props
|
|
3492
3075
|
}, ref) => {
|
|
3493
|
-
|
|
3494
|
-
|
|
3495
|
-
const handler = (e) => {
|
|
3496
|
-
if (e.key === "Escape") onClose?.();
|
|
3497
|
-
};
|
|
3498
|
-
document.addEventListener("keydown", handler);
|
|
3499
|
-
return () => document.removeEventListener("keydown", handler);
|
|
3500
|
-
}, [open, onClose]);
|
|
3076
|
+
const [panel, setPanel] = usePanelRef(ref);
|
|
3077
|
+
const place = useModalSurface(Boolean(open), panel, onClose);
|
|
3501
3078
|
if (!open) return null;
|
|
3502
|
-
return
|
|
3503
|
-
/* @__PURE__ */
|
|
3504
|
-
/* @__PURE__ */
|
|
3079
|
+
return place(
|
|
3080
|
+
/* @__PURE__ */ jsxs23(Fragment6, { children: [
|
|
3081
|
+
/* @__PURE__ */ jsx30(
|
|
3505
3082
|
"div",
|
|
3506
3083
|
{
|
|
3507
3084
|
className: "z-overlay fixed inset-0 bg-foreground/60 transition-opacity",
|
|
@@ -3509,10 +3086,10 @@ var Drawer = React22.forwardRef(
|
|
|
3509
3086
|
"aria-hidden": "true"
|
|
3510
3087
|
}
|
|
3511
3088
|
),
|
|
3512
|
-
/* @__PURE__ */
|
|
3089
|
+
/* @__PURE__ */ jsx30(
|
|
3513
3090
|
"div",
|
|
3514
3091
|
{
|
|
3515
|
-
ref,
|
|
3092
|
+
ref: setPanel,
|
|
3516
3093
|
role: "dialog",
|
|
3517
3094
|
"aria-modal": "true",
|
|
3518
3095
|
className: cn(
|
|
@@ -3528,13 +3105,12 @@ var Drawer = React22.forwardRef(
|
|
|
3528
3105
|
children
|
|
3529
3106
|
}
|
|
3530
3107
|
)
|
|
3531
|
-
] })
|
|
3532
|
-
document.body
|
|
3108
|
+
] })
|
|
3533
3109
|
);
|
|
3534
3110
|
}
|
|
3535
3111
|
);
|
|
3536
3112
|
Drawer.displayName = "Drawer";
|
|
3537
|
-
var DrawerHeader =
|
|
3113
|
+
var DrawerHeader = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
3538
3114
|
"div",
|
|
3539
3115
|
{
|
|
3540
3116
|
ref,
|
|
@@ -3543,7 +3119,7 @@ var DrawerHeader = React22.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
3543
3119
|
}
|
|
3544
3120
|
));
|
|
3545
3121
|
DrawerHeader.displayName = "DrawerHeader";
|
|
3546
|
-
var DrawerBody =
|
|
3122
|
+
var DrawerBody = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
3547
3123
|
"div",
|
|
3548
3124
|
{
|
|
3549
3125
|
ref,
|
|
@@ -3552,7 +3128,7 @@ var DrawerBody = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
3552
3128
|
}
|
|
3553
3129
|
));
|
|
3554
3130
|
DrawerBody.displayName = "DrawerBody";
|
|
3555
|
-
var DrawerFooter =
|
|
3131
|
+
var DrawerFooter = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
3556
3132
|
"div",
|
|
3557
3133
|
{
|
|
3558
3134
|
ref,
|
|
@@ -3566,10 +3142,10 @@ var DrawerFooter = React22.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
3566
3142
|
DrawerFooter.displayName = "DrawerFooter";
|
|
3567
3143
|
|
|
3568
3144
|
// src/form-layout.tsx
|
|
3569
|
-
import * as
|
|
3570
|
-
import { jsx as
|
|
3571
|
-
var FormLayout =
|
|
3572
|
-
({ 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(
|
|
3573
3149
|
"form",
|
|
3574
3150
|
{
|
|
3575
3151
|
ref,
|
|
@@ -3584,27 +3160,27 @@ var FormLayout = React23.forwardRef(
|
|
|
3584
3160
|
)
|
|
3585
3161
|
);
|
|
3586
3162
|
FormLayout.displayName = "FormLayout";
|
|
3587
|
-
var FormLayoutSection =
|
|
3163
|
+
var FormLayoutSection = React20.forwardRef(({ className, title, description, children, ...props }, ref) => /* @__PURE__ */ jsxs24(
|
|
3588
3164
|
"div",
|
|
3589
3165
|
{
|
|
3590
3166
|
ref,
|
|
3591
3167
|
className: cn("border-b border-border pb-6", className),
|
|
3592
3168
|
...props,
|
|
3593
3169
|
children: [
|
|
3594
|
-
(title || description) && /* @__PURE__ */
|
|
3595
|
-
title && /* @__PURE__ */
|
|
3596
|
-
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 })
|
|
3597
3173
|
] }),
|
|
3598
|
-
/* @__PURE__ */
|
|
3174
|
+
/* @__PURE__ */ jsx31("div", { className: "space-y-4", children })
|
|
3599
3175
|
]
|
|
3600
3176
|
}
|
|
3601
3177
|
));
|
|
3602
3178
|
FormLayoutSection.displayName = "FormLayoutSection";
|
|
3603
3179
|
|
|
3604
3180
|
// src/input-group.tsx
|
|
3605
|
-
import * as
|
|
3606
|
-
import { jsx as
|
|
3607
|
-
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(
|
|
3608
3184
|
({
|
|
3609
3185
|
className,
|
|
3610
3186
|
addon = "prefix",
|
|
@@ -3612,15 +3188,15 @@ var InputGroup = React24.forwardRef(
|
|
|
3612
3188
|
suffixContent,
|
|
3613
3189
|
children,
|
|
3614
3190
|
...props
|
|
3615
|
-
}, ref) => /* @__PURE__ */
|
|
3191
|
+
}, ref) => /* @__PURE__ */ jsxs25(
|
|
3616
3192
|
"div",
|
|
3617
3193
|
{
|
|
3618
3194
|
ref,
|
|
3619
3195
|
className: cn("flex rounded-md shadow-sm", className),
|
|
3620
3196
|
...props,
|
|
3621
3197
|
children: [
|
|
3622
|
-
(addon === "prefix" || addon === "both") && addonContent && /* @__PURE__ */
|
|
3623
|
-
/* @__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(
|
|
3624
3200
|
"div",
|
|
3625
3201
|
{
|
|
3626
3202
|
className: cn(
|
|
@@ -3630,7 +3206,7 @@ var InputGroup = React24.forwardRef(
|
|
|
3630
3206
|
children
|
|
3631
3207
|
}
|
|
3632
3208
|
),
|
|
3633
|
-
(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 })
|
|
3634
3210
|
]
|
|
3635
3211
|
}
|
|
3636
3212
|
)
|
|
@@ -3638,9 +3214,9 @@ var InputGroup = React24.forwardRef(
|
|
|
3638
3214
|
InputGroup.displayName = "InputGroup";
|
|
3639
3215
|
|
|
3640
3216
|
// src/radio-group.tsx
|
|
3641
|
-
import * as
|
|
3642
|
-
import { jsx as
|
|
3643
|
-
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(
|
|
3644
3220
|
({
|
|
3645
3221
|
className,
|
|
3646
3222
|
options,
|
|
@@ -3650,9 +3226,9 @@ var RadioGroup = React25.forwardRef(
|
|
|
3650
3226
|
name,
|
|
3651
3227
|
label,
|
|
3652
3228
|
...props
|
|
3653
|
-
}, ref) => /* @__PURE__ */
|
|
3654
|
-
label && /* @__PURE__ */
|
|
3655
|
-
/* @__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(
|
|
3656
3232
|
"div",
|
|
3657
3233
|
{
|
|
3658
3234
|
className: cn(
|
|
@@ -3663,7 +3239,7 @@ var RadioGroup = React25.forwardRef(
|
|
|
3663
3239
|
children: options.map((option) => {
|
|
3664
3240
|
const isSelected = value === option.value;
|
|
3665
3241
|
if (variant === "card") {
|
|
3666
|
-
return /* @__PURE__ */
|
|
3242
|
+
return /* @__PURE__ */ jsxs26(
|
|
3667
3243
|
"label",
|
|
3668
3244
|
{
|
|
3669
3245
|
className: cn(
|
|
@@ -3671,7 +3247,7 @@ var RadioGroup = React25.forwardRef(
|
|
|
3671
3247
|
isSelected ? "border-primary bg-primary/5" : "border-border bg-card hover:bg-muted/50"
|
|
3672
3248
|
),
|
|
3673
3249
|
children: [
|
|
3674
|
-
/* @__PURE__ */
|
|
3250
|
+
/* @__PURE__ */ jsx33(
|
|
3675
3251
|
"input",
|
|
3676
3252
|
{
|
|
3677
3253
|
type: "radio",
|
|
@@ -3682,16 +3258,16 @@ var RadioGroup = React25.forwardRef(
|
|
|
3682
3258
|
className: "mt-0.5 h-4 w-4 accent-primary"
|
|
3683
3259
|
}
|
|
3684
3260
|
),
|
|
3685
|
-
/* @__PURE__ */
|
|
3686
|
-
/* @__PURE__ */
|
|
3687
|
-
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 })
|
|
3688
3264
|
] })
|
|
3689
3265
|
]
|
|
3690
3266
|
},
|
|
3691
3267
|
option.value
|
|
3692
3268
|
);
|
|
3693
3269
|
}
|
|
3694
|
-
return /* @__PURE__ */
|
|
3270
|
+
return /* @__PURE__ */ jsxs26(
|
|
3695
3271
|
"label",
|
|
3696
3272
|
{
|
|
3697
3273
|
className: cn(
|
|
@@ -3700,7 +3276,7 @@ var RadioGroup = React25.forwardRef(
|
|
|
3700
3276
|
variant === "stacked" && isSelected && "border-primary bg-primary/5"
|
|
3701
3277
|
),
|
|
3702
3278
|
children: [
|
|
3703
|
-
/* @__PURE__ */
|
|
3279
|
+
/* @__PURE__ */ jsx33(
|
|
3704
3280
|
"input",
|
|
3705
3281
|
{
|
|
3706
3282
|
type: "radio",
|
|
@@ -3711,8 +3287,8 @@ var RadioGroup = React25.forwardRef(
|
|
|
3711
3287
|
className: "h-4 w-4 accent-primary"
|
|
3712
3288
|
}
|
|
3713
3289
|
),
|
|
3714
|
-
/* @__PURE__ */
|
|
3715
|
-
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 })
|
|
3716
3292
|
]
|
|
3717
3293
|
},
|
|
3718
3294
|
option.value
|
|
@@ -3725,9 +3301,9 @@ var RadioGroup = React25.forwardRef(
|
|
|
3725
3301
|
RadioGroup.displayName = "RadioGroup";
|
|
3726
3302
|
|
|
3727
3303
|
// src/combobox.tsx
|
|
3728
|
-
import * as
|
|
3729
|
-
import { jsx as
|
|
3730
|
-
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(
|
|
3731
3307
|
({
|
|
3732
3308
|
className,
|
|
3733
3309
|
options,
|
|
@@ -3738,8 +3314,8 @@ var Combobox = React26.forwardRef(
|
|
|
3738
3314
|
filterable = true,
|
|
3739
3315
|
...props
|
|
3740
3316
|
}, ref) => {
|
|
3741
|
-
const [open, setOpen] =
|
|
3742
|
-
const [search, setSearch] =
|
|
3317
|
+
const [open, setOpen] = React23.useState(false);
|
|
3318
|
+
const [search, setSearch] = React23.useState("");
|
|
3743
3319
|
const selected = multi ? Array.isArray(value) ? value : [] : typeof value === "string" ? value : "";
|
|
3744
3320
|
const filtered = filterable ? options.filter(
|
|
3745
3321
|
(o) => o.label.toLowerCase().includes(search.toLowerCase())
|
|
@@ -3758,20 +3334,20 @@ var Combobox = React26.forwardRef(
|
|
|
3758
3334
|
}
|
|
3759
3335
|
};
|
|
3760
3336
|
const displayValue = multi ? null : options.find((o) => o.value === selected)?.label;
|
|
3761
|
-
return /* @__PURE__ */
|
|
3762
|
-
/* @__PURE__ */
|
|
3337
|
+
return /* @__PURE__ */ jsxs27("div", { ref, className: cn("relative", className), ...props, children: [
|
|
3338
|
+
/* @__PURE__ */ jsxs27(
|
|
3763
3339
|
"div",
|
|
3764
3340
|
{
|
|
3765
3341
|
className: "flex min-h-9 cursor-pointer items-center gap-1 rounded-md border border-input bg-background px-3 py-1.5",
|
|
3766
3342
|
onClick: () => setOpen(!open),
|
|
3767
3343
|
children: [
|
|
3768
|
-
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(
|
|
3769
3345
|
"span",
|
|
3770
3346
|
{
|
|
3771
3347
|
className: "text-primary-text inline-flex items-center gap-1 rounded bg-primary/10 px-2 py-0.5 text-xs font-medium",
|
|
3772
3348
|
children: [
|
|
3773
3349
|
options.find((o) => o.value === v)?.label,
|
|
3774
|
-
/* @__PURE__ */
|
|
3350
|
+
/* @__PURE__ */ jsx34(
|
|
3775
3351
|
"button",
|
|
3776
3352
|
{
|
|
3777
3353
|
type: "button",
|
|
@@ -3786,7 +3362,7 @@ var Combobox = React26.forwardRef(
|
|
|
3786
3362
|
]
|
|
3787
3363
|
},
|
|
3788
3364
|
v
|
|
3789
|
-
)) }) : /* @__PURE__ */
|
|
3365
|
+
)) }) : /* @__PURE__ */ jsx34(
|
|
3790
3366
|
"span",
|
|
3791
3367
|
{
|
|
3792
3368
|
className: cn(
|
|
@@ -3796,12 +3372,12 @@ var Combobox = React26.forwardRef(
|
|
|
3796
3372
|
children: displayValue || placeholder
|
|
3797
3373
|
}
|
|
3798
3374
|
),
|
|
3799
|
-
/* @__PURE__ */
|
|
3375
|
+
/* @__PURE__ */ jsx34("span", { className: "ml-auto text-muted-foreground", children: "\u25BE" })
|
|
3800
3376
|
]
|
|
3801
3377
|
}
|
|
3802
3378
|
),
|
|
3803
|
-
open && /* @__PURE__ */
|
|
3804
|
-
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(
|
|
3805
3381
|
"input",
|
|
3806
3382
|
{
|
|
3807
3383
|
type: "text",
|
|
@@ -3812,9 +3388,9 @@ var Combobox = React26.forwardRef(
|
|
|
3812
3388
|
autoFocus: true
|
|
3813
3389
|
}
|
|
3814
3390
|
) }),
|
|
3815
|
-
/* @__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) => {
|
|
3816
3392
|
const isSelected = multi ? Array.isArray(selected) && selected.includes(option.value) : selected === option.value;
|
|
3817
|
-
return /* @__PURE__ */
|
|
3393
|
+
return /* @__PURE__ */ jsxs27(
|
|
3818
3394
|
"button",
|
|
3819
3395
|
{
|
|
3820
3396
|
type: "button",
|
|
@@ -3824,9 +3400,9 @@ var Combobox = React26.forwardRef(
|
|
|
3824
3400
|
),
|
|
3825
3401
|
onClick: () => handleSelect(option.value),
|
|
3826
3402
|
children: [
|
|
3827
|
-
multi && /* @__PURE__ */
|
|
3403
|
+
multi && /* @__PURE__ */ jsx34("span", { className: "mr-2", children: isSelected ? "\u2611" : "\u2610" }),
|
|
3828
3404
|
option.label,
|
|
3829
|
-
!multi && isSelected && /* @__PURE__ */
|
|
3405
|
+
!multi && isSelected && /* @__PURE__ */ jsx34("span", { className: "text-primary-text ml-auto", children: "\u2713" })
|
|
3830
3406
|
]
|
|
3831
3407
|
},
|
|
3832
3408
|
option.value
|
|
@@ -3839,8 +3415,8 @@ var Combobox = React26.forwardRef(
|
|
|
3839
3415
|
Combobox.displayName = "Combobox";
|
|
3840
3416
|
|
|
3841
3417
|
// src/notification-banner.tsx
|
|
3842
|
-
import * as
|
|
3843
|
-
import { jsx as
|
|
3418
|
+
import * as React24 from "react";
|
|
3419
|
+
import { jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
3844
3420
|
var INTENT_STYLES = {
|
|
3845
3421
|
success: {
|
|
3846
3422
|
subtle: "bg-intent-success/10 text-intent-success-foreground border-intent-success/20",
|
|
@@ -3869,7 +3445,7 @@ var ICON_MAP = {
|
|
|
3869
3445
|
error: "circle-alert",
|
|
3870
3446
|
info: "info"
|
|
3871
3447
|
};
|
|
3872
|
-
var NotificationBanner =
|
|
3448
|
+
var NotificationBanner = React24.forwardRef(
|
|
3873
3449
|
({
|
|
3874
3450
|
className,
|
|
3875
3451
|
intent = "info",
|
|
@@ -3881,13 +3457,13 @@ var NotificationBanner = React27.forwardRef(
|
|
|
3881
3457
|
children,
|
|
3882
3458
|
...props
|
|
3883
3459
|
}, ref) => {
|
|
3884
|
-
const [dismissed, setDismissed] =
|
|
3460
|
+
const [dismissed, setDismissed] = React24.useState(false);
|
|
3885
3461
|
if (dismissed) return null;
|
|
3886
3462
|
const handleDismiss = () => {
|
|
3887
3463
|
setDismissed(true);
|
|
3888
3464
|
onDismiss?.();
|
|
3889
3465
|
};
|
|
3890
|
-
return /* @__PURE__ */
|
|
3466
|
+
return /* @__PURE__ */ jsxs28(
|
|
3891
3467
|
"div",
|
|
3892
3468
|
{
|
|
3893
3469
|
ref,
|
|
@@ -3899,13 +3475,13 @@ var NotificationBanner = React27.forwardRef(
|
|
|
3899
3475
|
),
|
|
3900
3476
|
...props,
|
|
3901
3477
|
children: [
|
|
3902
|
-
/* @__PURE__ */
|
|
3903
|
-
/* @__PURE__ */
|
|
3904
|
-
title && /* @__PURE__ */
|
|
3905
|
-
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 })
|
|
3906
3482
|
] }),
|
|
3907
|
-
action && /* @__PURE__ */
|
|
3908
|
-
dismissible && /* @__PURE__ */
|
|
3483
|
+
action && /* @__PURE__ */ jsx35("div", { className: "flex-shrink-0", children: action }),
|
|
3484
|
+
dismissible && /* @__PURE__ */ jsx35(
|
|
3909
3485
|
"button",
|
|
3910
3486
|
{
|
|
3911
3487
|
type: "button",
|
|
@@ -3923,9 +3499,9 @@ var NotificationBanner = React27.forwardRef(
|
|
|
3923
3499
|
NotificationBanner.displayName = "NotificationBanner";
|
|
3924
3500
|
|
|
3925
3501
|
// src/notification-panel.tsx
|
|
3926
|
-
import * as
|
|
3927
|
-
import { jsx as
|
|
3928
|
-
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(
|
|
3929
3505
|
"div",
|
|
3930
3506
|
{
|
|
3931
3507
|
ref,
|
|
@@ -3935,12 +3511,12 @@ var NotificationPanel = React28.forwardRef(({ className, unreadCount = 0, onMark
|
|
|
3935
3511
|
),
|
|
3936
3512
|
...props,
|
|
3937
3513
|
children: [
|
|
3938
|
-
/* @__PURE__ */
|
|
3939
|
-
/* @__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: [
|
|
3940
3516
|
"Notifications",
|
|
3941
|
-
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 })
|
|
3942
3518
|
] }),
|
|
3943
|
-
onMarkAllRead && unreadCount > 0 && /* @__PURE__ */
|
|
3519
|
+
onMarkAllRead && unreadCount > 0 && /* @__PURE__ */ jsx36(
|
|
3944
3520
|
"button",
|
|
3945
3521
|
{
|
|
3946
3522
|
type: "button",
|
|
@@ -3950,12 +3526,12 @@ var NotificationPanel = React28.forwardRef(({ className, unreadCount = 0, onMark
|
|
|
3950
3526
|
}
|
|
3951
3527
|
)
|
|
3952
3528
|
] }),
|
|
3953
|
-
/* @__PURE__ */
|
|
3529
|
+
/* @__PURE__ */ jsx36("div", { className: "max-h-80 divide-y divide-border overflow-y-auto", children })
|
|
3954
3530
|
]
|
|
3955
3531
|
}
|
|
3956
3532
|
));
|
|
3957
3533
|
NotificationPanel.displayName = "NotificationPanel";
|
|
3958
|
-
var NotificationPanelItem =
|
|
3534
|
+
var NotificationPanelItem = React25.forwardRef(({ className, title, description, time, unread, icon, ...props }, ref) => /* @__PURE__ */ jsxs29(
|
|
3959
3535
|
"div",
|
|
3960
3536
|
{
|
|
3961
3537
|
ref,
|
|
@@ -3966,9 +3542,9 @@ var NotificationPanelItem = React28.forwardRef(({ className, title, description,
|
|
|
3966
3542
|
),
|
|
3967
3543
|
...props,
|
|
3968
3544
|
children: [
|
|
3969
|
-
icon && /* @__PURE__ */
|
|
3970
|
-
/* @__PURE__ */
|
|
3971
|
-
/* @__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(
|
|
3972
3548
|
"p",
|
|
3973
3549
|
{
|
|
3974
3550
|
className: cn(
|
|
@@ -3978,22 +3554,22 @@ var NotificationPanelItem = React28.forwardRef(({ className, title, description,
|
|
|
3978
3554
|
children: title
|
|
3979
3555
|
}
|
|
3980
3556
|
),
|
|
3981
|
-
description && /* @__PURE__ */
|
|
3982
|
-
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 })
|
|
3983
3559
|
] }),
|
|
3984
|
-
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" }) })
|
|
3985
3561
|
]
|
|
3986
3562
|
}
|
|
3987
3563
|
));
|
|
3988
3564
|
NotificationPanelItem.displayName = "NotificationPanelItem";
|
|
3989
3565
|
|
|
3990
3566
|
// src/skeleton-patterns.tsx
|
|
3991
|
-
import { jsx as
|
|
3567
|
+
import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3992
3568
|
function SkeletonBar2({
|
|
3993
3569
|
className,
|
|
3994
3570
|
...props
|
|
3995
3571
|
}) {
|
|
3996
|
-
return /* @__PURE__ */
|
|
3572
|
+
return /* @__PURE__ */ jsx37(
|
|
3997
3573
|
"div",
|
|
3998
3574
|
{
|
|
3999
3575
|
className: cn("animate-pulse rounded-md bg-muted", className),
|
|
@@ -4007,7 +3583,7 @@ function SkeletonTable({
|
|
|
4007
3583
|
columns = 4,
|
|
4008
3584
|
...props
|
|
4009
3585
|
}) {
|
|
4010
|
-
return /* @__PURE__ */
|
|
3586
|
+
return /* @__PURE__ */ jsxs30(
|
|
4011
3587
|
"div",
|
|
4012
3588
|
{
|
|
4013
3589
|
className: cn(
|
|
@@ -4016,15 +3592,15 @@ function SkeletonTable({
|
|
|
4016
3592
|
),
|
|
4017
3593
|
...props,
|
|
4018
3594
|
children: [
|
|
4019
|
-
/* @__PURE__ */
|
|
4020
|
-
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(
|
|
4021
3597
|
"div",
|
|
4022
3598
|
{
|
|
4023
3599
|
className: cn(
|
|
4024
3600
|
"flex gap-4 px-4 py-3",
|
|
4025
3601
|
row < rows - 1 && "border-b border-border"
|
|
4026
3602
|
),
|
|
4027
|
-
children: Array.from({ length: columns }).map((_2, col) => /* @__PURE__ */
|
|
3603
|
+
children: Array.from({ length: columns }).map((_2, col) => /* @__PURE__ */ jsx37(
|
|
4028
3604
|
SkeletonBar2,
|
|
4029
3605
|
{
|
|
4030
3606
|
className: cn("h-4 flex-1", col === 0 && "max-w-[140px]")
|
|
@@ -4046,17 +3622,17 @@ function SkeletonCardGrid({
|
|
|
4046
3622
|
...props
|
|
4047
3623
|
}) {
|
|
4048
3624
|
const colClass = columns === 2 ? "grid-cols-1 sm:grid-cols-2" : "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3";
|
|
4049
|
-
return /* @__PURE__ */
|
|
3625
|
+
return /* @__PURE__ */ jsx37("div", { className: cn("grid gap-4", colClass, className), ...props, children: Array.from({ length: cards }).map((_, i) => /* @__PURE__ */ jsxs30(
|
|
4050
3626
|
"div",
|
|
4051
3627
|
{
|
|
4052
3628
|
className: "space-y-3 rounded-lg border border-border p-4",
|
|
4053
3629
|
children: [
|
|
4054
|
-
/* @__PURE__ */
|
|
4055
|
-
/* @__PURE__ */
|
|
4056
|
-
/* @__PURE__ */
|
|
4057
|
-
/* @__PURE__ */
|
|
4058
|
-
/* @__PURE__ */
|
|
4059
|
-
/* @__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" })
|
|
4060
3636
|
] })
|
|
4061
3637
|
]
|
|
4062
3638
|
},
|
|
@@ -4065,34 +3641,34 @@ function SkeletonCardGrid({
|
|
|
4065
3641
|
}
|
|
4066
3642
|
SkeletonCardGrid.displayName = "SkeletonCardGrid";
|
|
4067
3643
|
function SkeletonDetail({ className, ...props }) {
|
|
4068
|
-
return /* @__PURE__ */
|
|
4069
|
-
/* @__PURE__ */
|
|
4070
|
-
/* @__PURE__ */
|
|
4071
|
-
/* @__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" })
|
|
4072
3648
|
] }),
|
|
4073
|
-
/* @__PURE__ */
|
|
4074
|
-
/* @__PURE__ */
|
|
4075
|
-
/* @__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" })
|
|
4076
3652
|
] }, `dl-${i}`)) }),
|
|
4077
|
-
/* @__PURE__ */
|
|
4078
|
-
/* @__PURE__ */
|
|
4079
|
-
/* @__PURE__ */
|
|
4080
|
-
/* @__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" })
|
|
4081
3657
|
] })
|
|
4082
3658
|
] });
|
|
4083
3659
|
}
|
|
4084
3660
|
SkeletonDetail.displayName = "SkeletonDetail";
|
|
4085
3661
|
|
|
4086
3662
|
// src/toggle.tsx
|
|
4087
|
-
import * as
|
|
4088
|
-
import { jsx as
|
|
3663
|
+
import * as React26 from "react";
|
|
3664
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
4089
3665
|
var SIZE_CLASSES4 = {
|
|
4090
3666
|
sm: "h-8 px-2 text-xs",
|
|
4091
3667
|
md: "h-9 px-3 text-sm",
|
|
4092
3668
|
lg: "h-10 px-4 text-base"
|
|
4093
3669
|
};
|
|
4094
|
-
var Toggle =
|
|
4095
|
-
({ 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(
|
|
4096
3672
|
"button",
|
|
4097
3673
|
{
|
|
4098
3674
|
ref,
|
|
@@ -4111,7 +3687,7 @@ var Toggle = React29.forwardRef(
|
|
|
4111
3687
|
)
|
|
4112
3688
|
);
|
|
4113
3689
|
Toggle.displayName = "Toggle";
|
|
4114
|
-
var ToggleGroup =
|
|
3690
|
+
var ToggleGroup = React26.forwardRef(
|
|
4115
3691
|
({
|
|
4116
3692
|
className,
|
|
4117
3693
|
type = "single",
|
|
@@ -4138,18 +3714,18 @@ var ToggleGroup = React29.forwardRef(
|
|
|
4138
3714
|
);
|
|
4139
3715
|
}
|
|
4140
3716
|
};
|
|
4141
|
-
return /* @__PURE__ */
|
|
3717
|
+
return /* @__PURE__ */ jsx38(
|
|
4142
3718
|
"div",
|
|
4143
3719
|
{
|
|
4144
3720
|
ref,
|
|
4145
3721
|
role: "group",
|
|
4146
3722
|
className: cn("inline-flex items-center gap-1", className),
|
|
4147
3723
|
...props,
|
|
4148
|
-
children:
|
|
4149
|
-
if (!
|
|
3724
|
+
children: React26.Children.map(children, (child) => {
|
|
3725
|
+
if (!React26.isValidElement(child)) return child;
|
|
4150
3726
|
const childProps = child.props;
|
|
4151
3727
|
const itemValue = childProps.value ?? "";
|
|
4152
|
-
return
|
|
3728
|
+
return React26.cloneElement(child, {
|
|
4153
3729
|
pressed: isPressed(itemValue),
|
|
4154
3730
|
variant,
|
|
4155
3731
|
size,
|
|
@@ -4166,8 +3742,8 @@ var ToggleGroup = React29.forwardRef(
|
|
|
4166
3742
|
ToggleGroup.displayName = "ToggleGroup";
|
|
4167
3743
|
|
|
4168
3744
|
// src/avatar-group.tsx
|
|
4169
|
-
import * as
|
|
4170
|
-
import { jsx as
|
|
3745
|
+
import * as React27 from "react";
|
|
3746
|
+
import { jsx as jsx39, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
4171
3747
|
var SIZE_MAP = {
|
|
4172
3748
|
xs: { avatar: "h-6 w-6", ring: "ring-1", text: "text-[10px]" },
|
|
4173
3749
|
sm: { avatar: "h-8 w-8", ring: "ring-2", text: "text-xs" },
|
|
@@ -4180,14 +3756,14 @@ var OVERLAP_MAP = {
|
|
|
4180
3756
|
md: "-ml-3",
|
|
4181
3757
|
lg: "-ml-3"
|
|
4182
3758
|
};
|
|
4183
|
-
var AvatarGroup =
|
|
3759
|
+
var AvatarGroup = React27.forwardRef(
|
|
4184
3760
|
({ className, max = 5, size = "md", children, ...props }, ref) => {
|
|
4185
|
-
const items =
|
|
3761
|
+
const items = React27.Children.toArray(children);
|
|
4186
3762
|
const visible = items.slice(0, max);
|
|
4187
3763
|
const overflow = items.length - max;
|
|
4188
3764
|
const sizeConfig3 = SIZE_MAP[size];
|
|
4189
|
-
return /* @__PURE__ */
|
|
4190
|
-
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(
|
|
4191
3767
|
"div",
|
|
4192
3768
|
{
|
|
4193
3769
|
className: cn(
|
|
@@ -4199,7 +3775,7 @@ var AvatarGroup = React30.forwardRef(
|
|
|
4199
3775
|
},
|
|
4200
3776
|
i
|
|
4201
3777
|
)),
|
|
4202
|
-
overflow > 0 && /* @__PURE__ */
|
|
3778
|
+
overflow > 0 && /* @__PURE__ */ jsx39(
|
|
4203
3779
|
"div",
|
|
4204
3780
|
{
|
|
4205
3781
|
className: cn(
|
|
@@ -4208,7 +3784,7 @@ var AvatarGroup = React30.forwardRef(
|
|
|
4208
3784
|
sizeConfig3.ring,
|
|
4209
3785
|
OVERLAP_MAP[size]
|
|
4210
3786
|
),
|
|
4211
|
-
children: /* @__PURE__ */
|
|
3787
|
+
children: /* @__PURE__ */ jsxs31(
|
|
4212
3788
|
"span",
|
|
4213
3789
|
{
|
|
4214
3790
|
className: cn(
|
|
@@ -4227,10 +3803,10 @@ var AvatarGroup = React30.forwardRef(
|
|
|
4227
3803
|
}
|
|
4228
3804
|
);
|
|
4229
3805
|
AvatarGroup.displayName = "AvatarGroup";
|
|
4230
|
-
var AvatarGroupItem =
|
|
3806
|
+
var AvatarGroupItem = React27.forwardRef(({ className, fallback, size = "md", alt, src, ...props }, ref) => {
|
|
4231
3807
|
const sizeConfig3 = SIZE_MAP[size];
|
|
4232
3808
|
if (!src && fallback) {
|
|
4233
|
-
return /* @__PURE__ */
|
|
3809
|
+
return /* @__PURE__ */ jsx39(
|
|
4234
3810
|
"div",
|
|
4235
3811
|
{
|
|
4236
3812
|
className: cn(
|
|
@@ -4244,7 +3820,7 @@ var AvatarGroupItem = React30.forwardRef(({ className, fallback, size = "md", al
|
|
|
4244
3820
|
}
|
|
4245
3821
|
);
|
|
4246
3822
|
}
|
|
4247
|
-
return /* @__PURE__ */
|
|
3823
|
+
return /* @__PURE__ */ jsx39(
|
|
4248
3824
|
"img",
|
|
4249
3825
|
{
|
|
4250
3826
|
ref,
|
|
@@ -4258,10 +3834,10 @@ var AvatarGroupItem = React30.forwardRef(({ className, fallback, size = "md", al
|
|
|
4258
3834
|
AvatarGroupItem.displayName = "AvatarGroupItem";
|
|
4259
3835
|
|
|
4260
3836
|
// src/tab-bar.tsx
|
|
4261
|
-
import * as
|
|
4262
|
-
import { jsx as
|
|
4263
|
-
var TabBar =
|
|
4264
|
-
({ 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(
|
|
4265
3841
|
"div",
|
|
4266
3842
|
{
|
|
4267
3843
|
ref,
|
|
@@ -4281,21 +3857,21 @@ var TabBar = React31.forwardRef(
|
|
|
4281
3857
|
"data-variant": variant,
|
|
4282
3858
|
...props,
|
|
4283
3859
|
children: [
|
|
4284
|
-
|
|
4285
|
-
if (!
|
|
4286
|
-
return
|
|
3860
|
+
React28.Children.map(children, (child) => {
|
|
3861
|
+
if (!React28.isValidElement(child)) return child;
|
|
3862
|
+
return React28.cloneElement(
|
|
4287
3863
|
child,
|
|
4288
3864
|
{ _variant: variant }
|
|
4289
3865
|
);
|
|
4290
3866
|
}),
|
|
4291
|
-
/* @__PURE__ */
|
|
3867
|
+
/* @__PURE__ */ jsx40(ScrollHintXMark, {})
|
|
4292
3868
|
]
|
|
4293
3869
|
}
|
|
4294
3870
|
)
|
|
4295
3871
|
);
|
|
4296
3872
|
TabBar.displayName = "TabBar";
|
|
4297
|
-
var TabBarItem =
|
|
4298
|
-
({ 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(
|
|
4299
3875
|
"button",
|
|
4300
3876
|
{
|
|
4301
3877
|
ref,
|
|
@@ -4331,7 +3907,7 @@ var TabBarItem = React31.forwardRef(
|
|
|
4331
3907
|
TabBarItem.displayName = "TabBarItem";
|
|
4332
3908
|
|
|
4333
3909
|
// src/sticky-action-bar.tsx
|
|
4334
|
-
import { jsx as
|
|
3910
|
+
import { jsx as jsx41, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
4335
3911
|
function StickyActionBar({
|
|
4336
3912
|
context,
|
|
4337
3913
|
actions,
|
|
@@ -4339,7 +3915,7 @@ function StickyActionBar({
|
|
|
4339
3915
|
className,
|
|
4340
3916
|
testId = "sticky-action-bar"
|
|
4341
3917
|
}) {
|
|
4342
|
-
return /* @__PURE__ */
|
|
3918
|
+
return /* @__PURE__ */ jsx41(
|
|
4343
3919
|
"div",
|
|
4344
3920
|
{
|
|
4345
3921
|
"data-testid": testId,
|
|
@@ -4350,24 +3926,24 @@ function StickyActionBar({
|
|
|
4350
3926
|
topClassName,
|
|
4351
3927
|
className
|
|
4352
3928
|
),
|
|
4353
|
-
children: /* @__PURE__ */
|
|
4354
|
-
context != null ? /* @__PURE__ */
|
|
4355
|
-
/* @__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 })
|
|
4356
3932
|
] })
|
|
4357
3933
|
}
|
|
4358
3934
|
);
|
|
4359
3935
|
}
|
|
4360
3936
|
|
|
4361
3937
|
// src/button-group.tsx
|
|
4362
|
-
import * as
|
|
4363
|
-
import { jsx as
|
|
3938
|
+
import * as React29 from "react";
|
|
3939
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
4364
3940
|
var SIZE_CLASSES5 = {
|
|
4365
3941
|
sm: "h-8 px-3 text-xs",
|
|
4366
3942
|
md: "h-9 px-4 text-sm",
|
|
4367
3943
|
lg: "h-10 px-5 text-base"
|
|
4368
3944
|
};
|
|
4369
|
-
var ButtonGroup =
|
|
4370
|
-
({ 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(
|
|
4371
3947
|
"div",
|
|
4372
3948
|
{
|
|
4373
3949
|
ref,
|
|
@@ -4380,9 +3956,9 @@ var ButtonGroup = React32.forwardRef(
|
|
|
4380
3956
|
"data-variant": variant,
|
|
4381
3957
|
"data-size": size,
|
|
4382
3958
|
...props,
|
|
4383
|
-
children:
|
|
4384
|
-
if (!
|
|
4385
|
-
return
|
|
3959
|
+
children: React29.Children.map(children, (child) => {
|
|
3960
|
+
if (!React29.isValidElement(child)) return child;
|
|
3961
|
+
return React29.cloneElement(
|
|
4386
3962
|
child,
|
|
4387
3963
|
{ _variant: variant, _size: size }
|
|
4388
3964
|
);
|
|
@@ -4391,14 +3967,14 @@ var ButtonGroup = React32.forwardRef(
|
|
|
4391
3967
|
)
|
|
4392
3968
|
);
|
|
4393
3969
|
ButtonGroup.displayName = "ButtonGroup";
|
|
4394
|
-
var ButtonGroupItem =
|
|
3970
|
+
var ButtonGroupItem = React29.forwardRef(
|
|
4395
3971
|
({
|
|
4396
3972
|
className,
|
|
4397
3973
|
active,
|
|
4398
3974
|
_variant: variant = "default",
|
|
4399
3975
|
_size: size = "md",
|
|
4400
3976
|
...props
|
|
4401
|
-
}, ref) => /* @__PURE__ */
|
|
3977
|
+
}, ref) => /* @__PURE__ */ jsx42(
|
|
4402
3978
|
"button",
|
|
4403
3979
|
{
|
|
4404
3980
|
ref,
|
|
@@ -4439,9 +4015,9 @@ var ButtonGroupItem = React32.forwardRef(
|
|
|
4439
4015
|
ButtonGroupItem.displayName = "ButtonGroupItem";
|
|
4440
4016
|
|
|
4441
4017
|
// src/data-table.tsx
|
|
4442
|
-
import * as
|
|
4443
|
-
import { jsx as
|
|
4444
|
-
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(
|
|
4445
4021
|
({
|
|
4446
4022
|
className,
|
|
4447
4023
|
density = "default",
|
|
@@ -4451,8 +4027,8 @@ var DataTable = React33.forwardRef(
|
|
|
4451
4027
|
}, ref) => (
|
|
4452
4028
|
// W1.5 Batch 0 (#5823): a flex row, so the x mark (`ScrollHintXMark`,
|
|
4453
4029
|
// last child) sits beside the table, not under it
|
|
4454
|
-
/* @__PURE__ */
|
|
4455
|
-
/* @__PURE__ */
|
|
4030
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex w-full overflow-x-auto", children: [
|
|
4031
|
+
/* @__PURE__ */ jsx43(
|
|
4456
4032
|
"table",
|
|
4457
4033
|
{
|
|
4458
4034
|
ref,
|
|
@@ -4466,12 +4042,12 @@ var DataTable = React33.forwardRef(
|
|
|
4466
4042
|
...props
|
|
4467
4043
|
}
|
|
4468
4044
|
),
|
|
4469
|
-
/* @__PURE__ */
|
|
4045
|
+
/* @__PURE__ */ jsx43(ScrollHintXMark, {})
|
|
4470
4046
|
] })
|
|
4471
4047
|
)
|
|
4472
4048
|
);
|
|
4473
4049
|
DataTable.displayName = "DataTable";
|
|
4474
|
-
var TableHeader =
|
|
4050
|
+
var TableHeader = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx43(
|
|
4475
4051
|
"thead",
|
|
4476
4052
|
{
|
|
4477
4053
|
ref,
|
|
@@ -4480,7 +4056,7 @@ var TableHeader = React33.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
4480
4056
|
}
|
|
4481
4057
|
));
|
|
4482
4058
|
TableHeader.displayName = "TableHeader";
|
|
4483
|
-
var TableBody =
|
|
4059
|
+
var TableBody = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx43(
|
|
4484
4060
|
"tbody",
|
|
4485
4061
|
{
|
|
4486
4062
|
ref,
|
|
@@ -4489,8 +4065,8 @@ var TableBody = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
4489
4065
|
}
|
|
4490
4066
|
));
|
|
4491
4067
|
TableBody.displayName = "TableBody";
|
|
4492
|
-
var TableRow =
|
|
4493
|
-
({ className, selected, ...props }, ref) => /* @__PURE__ */
|
|
4068
|
+
var TableRow = React30.forwardRef(
|
|
4069
|
+
({ className, selected, ...props }, ref) => /* @__PURE__ */ jsx43(
|
|
4494
4070
|
"tr",
|
|
4495
4071
|
{
|
|
4496
4072
|
ref,
|
|
@@ -4513,12 +4089,12 @@ var DENSITY_CELL = {
|
|
|
4513
4089
|
default: "px-4 py-2",
|
|
4514
4090
|
relaxed: "px-4 py-3"
|
|
4515
4091
|
};
|
|
4516
|
-
var TableCell =
|
|
4092
|
+
var TableCell = React30.forwardRef(
|
|
4517
4093
|
({ className, header, sortDirection, onSort, children, ...props }, ref) => {
|
|
4518
|
-
const
|
|
4094
|
+
const Tag = header ? "th" : "td";
|
|
4519
4095
|
const sortIndicator = sortDirection === "asc" ? " \u2191" : sortDirection === "desc" ? " \u2193" : "";
|
|
4520
|
-
return /* @__PURE__ */
|
|
4521
|
-
|
|
4096
|
+
return /* @__PURE__ */ jsxs34(
|
|
4097
|
+
Tag,
|
|
4522
4098
|
{
|
|
4523
4099
|
ref,
|
|
4524
4100
|
className: cn(
|
|
@@ -4532,14 +4108,14 @@ var TableCell = React33.forwardRef(
|
|
|
4532
4108
|
...props,
|
|
4533
4109
|
children: [
|
|
4534
4110
|
children,
|
|
4535
|
-
header && sortIndicator && /* @__PURE__ */
|
|
4111
|
+
header && sortIndicator && /* @__PURE__ */ jsx43("span", { className: "text-primary-text ml-1", children: sortIndicator })
|
|
4536
4112
|
]
|
|
4537
4113
|
}
|
|
4538
4114
|
);
|
|
4539
4115
|
}
|
|
4540
4116
|
);
|
|
4541
4117
|
TableCell.displayName = "TableCell";
|
|
4542
|
-
var TableCaption =
|
|
4118
|
+
var TableCaption = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx43(
|
|
4543
4119
|
"caption",
|
|
4544
4120
|
{
|
|
4545
4121
|
ref,
|
|
@@ -4550,15 +4126,15 @@ var TableCaption = React33.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
4550
4126
|
TableCaption.displayName = "TableCaption";
|
|
4551
4127
|
|
|
4552
4128
|
// src/stat-group.tsx
|
|
4553
|
-
import * as
|
|
4554
|
-
import { jsx as
|
|
4129
|
+
import * as React31 from "react";
|
|
4130
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
4555
4131
|
var COL_CLASSES = {
|
|
4556
4132
|
2: "grid-cols-1 sm:grid-cols-2",
|
|
4557
4133
|
3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
|
|
4558
4134
|
4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"
|
|
4559
4135
|
};
|
|
4560
|
-
var StatGroup =
|
|
4561
|
-
({ 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(
|
|
4562
4138
|
"div",
|
|
4563
4139
|
{
|
|
4564
4140
|
ref,
|
|
@@ -4576,10 +4152,10 @@ var StatGroup = React34.forwardRef(
|
|
|
4576
4152
|
StatGroup.displayName = "StatGroup";
|
|
4577
4153
|
|
|
4578
4154
|
// src/description-list.tsx
|
|
4579
|
-
import * as
|
|
4580
|
-
import { jsx as
|
|
4581
|
-
var DescriptionLayoutContext =
|
|
4582
|
-
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(
|
|
4583
4159
|
"dl",
|
|
4584
4160
|
{
|
|
4585
4161
|
ref,
|
|
@@ -4593,10 +4169,10 @@ var DescriptionList = React35.forwardRef(({ className, layout = "stacked", ...pr
|
|
|
4593
4169
|
}
|
|
4594
4170
|
) }));
|
|
4595
4171
|
DescriptionList.displayName = "DescriptionList";
|
|
4596
|
-
var DescriptionItem =
|
|
4172
|
+
var DescriptionItem = React32.forwardRef(
|
|
4597
4173
|
({ className, label, value, ...props }, ref) => {
|
|
4598
|
-
const layout =
|
|
4599
|
-
return /* @__PURE__ */
|
|
4174
|
+
const layout = React32.useContext(DescriptionLayoutContext);
|
|
4175
|
+
return /* @__PURE__ */ jsxs35(
|
|
4600
4176
|
"div",
|
|
4601
4177
|
{
|
|
4602
4178
|
ref,
|
|
@@ -4608,7 +4184,7 @@ var DescriptionItem = React35.forwardRef(
|
|
|
4608
4184
|
),
|
|
4609
4185
|
...props,
|
|
4610
4186
|
children: [
|
|
4611
|
-
/* @__PURE__ */
|
|
4187
|
+
/* @__PURE__ */ jsx45(
|
|
4612
4188
|
"dt",
|
|
4613
4189
|
{
|
|
4614
4190
|
className: cn(
|
|
@@ -4618,7 +4194,7 @@ var DescriptionItem = React35.forwardRef(
|
|
|
4618
4194
|
children: label
|
|
4619
4195
|
}
|
|
4620
4196
|
),
|
|
4621
|
-
/* @__PURE__ */
|
|
4197
|
+
/* @__PURE__ */ jsx45(
|
|
4622
4198
|
"dd",
|
|
4623
4199
|
{
|
|
4624
4200
|
className: cn(
|
|
@@ -4626,7 +4202,7 @@ var DescriptionItem = React35.forwardRef(
|
|
|
4626
4202
|
layout !== "side-by-side" && "mt-1",
|
|
4627
4203
|
layout === "side-by-side" && "text-right"
|
|
4628
4204
|
),
|
|
4629
|
-
children: isEmptyValue(value) ? /* @__PURE__ */
|
|
4205
|
+
children: isEmptyValue(value) ? /* @__PURE__ */ jsx45(EmptyValue, {}) : value
|
|
4630
4206
|
}
|
|
4631
4207
|
)
|
|
4632
4208
|
]
|
|
@@ -4637,10 +4213,10 @@ var DescriptionItem = React35.forwardRef(
|
|
|
4637
4213
|
DescriptionItem.displayName = "DescriptionItem";
|
|
4638
4214
|
|
|
4639
4215
|
// src/activity-feed.tsx
|
|
4640
|
-
import * as
|
|
4641
|
-
import { jsx as
|
|
4642
|
-
var ActivityFeed =
|
|
4643
|
-
({ 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(
|
|
4644
4220
|
"div",
|
|
4645
4221
|
{
|
|
4646
4222
|
ref,
|
|
@@ -4651,19 +4227,19 @@ var ActivityFeed = React36.forwardRef(
|
|
|
4651
4227
|
)
|
|
4652
4228
|
);
|
|
4653
4229
|
ActivityFeed.displayName = "ActivityFeed";
|
|
4654
|
-
var ActivityFeedItem =
|
|
4655
|
-
({ className, avatar, eventDescription, timestamp, isLast, ...props }, ref) => /* @__PURE__ */
|
|
4230
|
+
var ActivityFeedItem = React33.forwardRef(
|
|
4231
|
+
({ className, avatar, eventDescription, timestamp, isLast, ...props }, ref) => /* @__PURE__ */ jsxs36(
|
|
4656
4232
|
"div",
|
|
4657
4233
|
{
|
|
4658
4234
|
ref,
|
|
4659
4235
|
className: cn("relative flex gap-3 pb-6", className),
|
|
4660
4236
|
...props,
|
|
4661
4237
|
children: [
|
|
4662
|
-
!isLast && /* @__PURE__ */
|
|
4663
|
-
/* @__PURE__ */
|
|
4664
|
-
/* @__PURE__ */
|
|
4665
|
-
/* @__PURE__ */
|
|
4666
|
-
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 })
|
|
4667
4243
|
] })
|
|
4668
4244
|
]
|
|
4669
4245
|
}
|
|
@@ -4671,77 +4247,8 @@ var ActivityFeedItem = React36.forwardRef(
|
|
|
4671
4247
|
);
|
|
4672
4248
|
ActivityFeedItem.displayName = "ActivityFeedItem";
|
|
4673
4249
|
|
|
4674
|
-
// src/alert.tsx
|
|
4675
|
-
import * as React37 from "react";
|
|
4676
|
-
import { jsx as jsx54, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
4677
|
-
var INTENT_SUBTLE_STYLES = {
|
|
4678
|
-
success: "bg-intent-success/10 text-intent-success-foreground border-intent-success/20",
|
|
4679
|
-
warning: "bg-intent-warning/10 text-intent-warning-foreground border-intent-warning/20",
|
|
4680
|
-
error: "bg-intent-error/10 text-intent-error-foreground border-intent-error/20",
|
|
4681
|
-
info: "bg-intent-info/10 text-intent-info-foreground border-intent-info/20"
|
|
4682
|
-
};
|
|
4683
|
-
var SOLID_STYLES = {
|
|
4684
|
-
success: "border-transparent bg-intent-success-solid text-intent-success-solid-fg",
|
|
4685
|
-
warning: "border-transparent bg-intent-warning-solid text-intent-warning-solid-fg",
|
|
4686
|
-
error: "border-transparent bg-intent-error-solid text-intent-error-solid-fg",
|
|
4687
|
-
info: "border-transparent bg-intent-info-solid text-intent-info-solid-fg"
|
|
4688
|
-
};
|
|
4689
|
-
var OUTLINE_STYLES = {
|
|
4690
|
-
success: "border-intent-success-border text-intent-success-foreground bg-background",
|
|
4691
|
-
warning: "border-intent-warning-border text-intent-warning-foreground bg-background",
|
|
4692
|
-
error: "border-intent-error-border text-intent-error-foreground bg-background",
|
|
4693
|
-
info: "border-intent-info-border text-intent-info-foreground bg-background"
|
|
4694
|
-
};
|
|
4695
|
-
var ICON_MAP2 = {
|
|
4696
|
-
success: "circle-check",
|
|
4697
|
-
warning: "triangle-alert",
|
|
4698
|
-
error: "circle-alert",
|
|
4699
|
-
info: "info"
|
|
4700
|
-
};
|
|
4701
|
-
var Alert = React37.forwardRef(
|
|
4702
|
-
({
|
|
4703
|
-
className,
|
|
4704
|
-
intent = "info",
|
|
4705
|
-
variant = "subtle",
|
|
4706
|
-
title,
|
|
4707
|
-
dismissible,
|
|
4708
|
-
onDismiss,
|
|
4709
|
-
children,
|
|
4710
|
-
...props
|
|
4711
|
-
}, ref) => {
|
|
4712
|
-
const styles = variant === "solid" ? SOLID_STYLES[intent] : variant === "outline" ? OUTLINE_STYLES[intent] : INTENT_SUBTLE_STYLES[intent];
|
|
4713
|
-
return /* @__PURE__ */ jsxs42(
|
|
4714
|
-
"div",
|
|
4715
|
-
{
|
|
4716
|
-
ref,
|
|
4717
|
-
role: "alert",
|
|
4718
|
-
className: cn("flex gap-3 rounded-lg border p-4", styles, className),
|
|
4719
|
-
...props,
|
|
4720
|
-
children: [
|
|
4721
|
-
/* @__PURE__ */ jsx54("span", { className: "flex-shrink-0 pt-0.5", "aria-hidden": "true", children: /* @__PURE__ */ jsx54(Icon, { name: ICON_MAP2[intent], size: "md" }) }),
|
|
4722
|
-
/* @__PURE__ */ jsxs42("div", { className: "min-w-0 flex-1", children: [
|
|
4723
|
-
title && /* @__PURE__ */ jsx54("p", { className: "font-semibold", children: title }),
|
|
4724
|
-
children && /* @__PURE__ */ jsx54("div", { className: cn(title && "mt-1", "text-sm"), children })
|
|
4725
|
-
] }),
|
|
4726
|
-
dismissible && /* @__PURE__ */ jsx54(
|
|
4727
|
-
"button",
|
|
4728
|
-
{
|
|
4729
|
-
type: "button",
|
|
4730
|
-
onClick: onDismiss,
|
|
4731
|
-
className: "flex-shrink-0 hover:opacity-80",
|
|
4732
|
-
"aria-label": "Dismiss",
|
|
4733
|
-
children: "\u2715"
|
|
4734
|
-
}
|
|
4735
|
-
)
|
|
4736
|
-
]
|
|
4737
|
-
}
|
|
4738
|
-
);
|
|
4739
|
-
}
|
|
4740
|
-
);
|
|
4741
|
-
Alert.displayName = "Alert";
|
|
4742
|
-
|
|
4743
4250
|
// src/empty-state.tsx
|
|
4744
|
-
import { jsx as
|
|
4251
|
+
import { jsx as jsx47, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
4745
4252
|
function EmptyState({
|
|
4746
4253
|
icon: Icon2,
|
|
4747
4254
|
title,
|
|
@@ -4752,7 +4259,7 @@ function EmptyState({
|
|
|
4752
4259
|
className
|
|
4753
4260
|
}) {
|
|
4754
4261
|
const compact = size === "compact";
|
|
4755
|
-
return /* @__PURE__ */
|
|
4262
|
+
return /* @__PURE__ */ jsxs37(
|
|
4756
4263
|
"div",
|
|
4757
4264
|
{
|
|
4758
4265
|
"data-testid": testId,
|
|
@@ -4762,7 +4269,7 @@ function EmptyState({
|
|
|
4762
4269
|
className
|
|
4763
4270
|
),
|
|
4764
4271
|
children: [
|
|
4765
|
-
Icon2 && /* @__PURE__ */
|
|
4272
|
+
Icon2 && /* @__PURE__ */ jsx47(
|
|
4766
4273
|
"div",
|
|
4767
4274
|
{
|
|
4768
4275
|
"aria-hidden": "true",
|
|
@@ -4770,10 +4277,10 @@ function EmptyState({
|
|
|
4770
4277
|
"flex items-center justify-center rounded-full bg-primary/10 text-primary",
|
|
4771
4278
|
compact ? "mb-3 size-12" : "mb-5 size-16"
|
|
4772
4279
|
),
|
|
4773
|
-
children: /* @__PURE__ */
|
|
4280
|
+
children: /* @__PURE__ */ jsx47(Icon2, { className: compact ? "size-6" : "size-8" })
|
|
4774
4281
|
}
|
|
4775
4282
|
),
|
|
4776
|
-
/* @__PURE__ */
|
|
4283
|
+
/* @__PURE__ */ jsx47(
|
|
4777
4284
|
"h2",
|
|
4778
4285
|
{
|
|
4779
4286
|
className: cn(
|
|
@@ -4783,7 +4290,7 @@ function EmptyState({
|
|
|
4783
4290
|
children: title
|
|
4784
4291
|
}
|
|
4785
4292
|
),
|
|
4786
|
-
description && /* @__PURE__ */
|
|
4293
|
+
description && /* @__PURE__ */ jsx47(
|
|
4787
4294
|
"p",
|
|
4788
4295
|
{
|
|
4789
4296
|
className: cn(
|
|
@@ -4793,21 +4300,21 @@ function EmptyState({
|
|
|
4793
4300
|
children: description
|
|
4794
4301
|
}
|
|
4795
4302
|
),
|
|
4796
|
-
action && /* @__PURE__ */
|
|
4303
|
+
action && /* @__PURE__ */ jsx47("div", { className: compact ? "mt-4" : "mt-6", children: action })
|
|
4797
4304
|
]
|
|
4798
4305
|
}
|
|
4799
4306
|
);
|
|
4800
4307
|
}
|
|
4801
4308
|
|
|
4802
4309
|
// src/action-panel.tsx
|
|
4803
|
-
import * as
|
|
4804
|
-
import { Fragment as
|
|
4310
|
+
import * as React34 from "react";
|
|
4311
|
+
import { Fragment as Fragment7, jsx as jsx48, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
4805
4312
|
var BORDER_INTENT = {
|
|
4806
4313
|
default: "border-l-primary",
|
|
4807
4314
|
warning: "border-l-intent-warning",
|
|
4808
4315
|
destructive: "border-l-intent-error"
|
|
4809
4316
|
};
|
|
4810
|
-
var ActionPanel =
|
|
4317
|
+
var ActionPanel = React34.forwardRef(
|
|
4811
4318
|
({
|
|
4812
4319
|
className,
|
|
4813
4320
|
title,
|
|
@@ -4816,7 +4323,7 @@ var ActionPanel = React38.forwardRef(
|
|
|
4816
4323
|
variant = "simple",
|
|
4817
4324
|
intent = "default",
|
|
4818
4325
|
...props
|
|
4819
|
-
}, ref) => /* @__PURE__ */
|
|
4326
|
+
}, ref) => /* @__PURE__ */ jsx48(
|
|
4820
4327
|
"div",
|
|
4821
4328
|
{
|
|
4822
4329
|
ref,
|
|
@@ -4827,16 +4334,16 @@ var ActionPanel = React38.forwardRef(
|
|
|
4827
4334
|
className
|
|
4828
4335
|
),
|
|
4829
4336
|
...props,
|
|
4830
|
-
children: variant === "split" ? /* @__PURE__ */
|
|
4831
|
-
/* @__PURE__ */
|
|
4832
|
-
/* @__PURE__ */
|
|
4833
|
-
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 })
|
|
4834
4341
|
] }),
|
|
4835
|
-
action && /* @__PURE__ */
|
|
4836
|
-
] }) : /* @__PURE__ */
|
|
4837
|
-
/* @__PURE__ */
|
|
4838
|
-
description && /* @__PURE__ */
|
|
4839
|
-
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 })
|
|
4840
4347
|
] })
|
|
4841
4348
|
}
|
|
4842
4349
|
)
|
|
@@ -4844,14 +4351,14 @@ var ActionPanel = React38.forwardRef(
|
|
|
4844
4351
|
ActionPanel.displayName = "ActionPanel";
|
|
4845
4352
|
|
|
4846
4353
|
// src/divider.tsx
|
|
4847
|
-
import * as
|
|
4848
|
-
import { jsx as
|
|
4354
|
+
import * as React35 from "react";
|
|
4355
|
+
import { jsx as jsx49, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
4849
4356
|
var VARIANT_CLASSES = {
|
|
4850
4357
|
solid: "border-solid",
|
|
4851
4358
|
dashed: "border-dashed",
|
|
4852
4359
|
dotted: "border-dotted"
|
|
4853
4360
|
};
|
|
4854
|
-
var Divider =
|
|
4361
|
+
var Divider = React35.forwardRef(
|
|
4855
4362
|
({
|
|
4856
4363
|
className,
|
|
4857
4364
|
label,
|
|
@@ -4861,7 +4368,7 @@ var Divider = React39.forwardRef(
|
|
|
4861
4368
|
...props
|
|
4862
4369
|
}, ref) => {
|
|
4863
4370
|
if (orientation === "vertical") {
|
|
4864
|
-
return /* @__PURE__ */
|
|
4371
|
+
return /* @__PURE__ */ jsx49(
|
|
4865
4372
|
"div",
|
|
4866
4373
|
{
|
|
4867
4374
|
ref,
|
|
@@ -4878,7 +4385,7 @@ var Divider = React39.forwardRef(
|
|
|
4878
4385
|
);
|
|
4879
4386
|
}
|
|
4880
4387
|
if (!label) {
|
|
4881
|
-
return /* @__PURE__ */
|
|
4388
|
+
return /* @__PURE__ */ jsx49(
|
|
4882
4389
|
"div",
|
|
4883
4390
|
{
|
|
4884
4391
|
ref,
|
|
@@ -4892,7 +4399,7 @@ var Divider = React39.forwardRef(
|
|
|
4892
4399
|
}
|
|
4893
4400
|
);
|
|
4894
4401
|
}
|
|
4895
|
-
return /* @__PURE__ */
|
|
4402
|
+
return /* @__PURE__ */ jsxs39(
|
|
4896
4403
|
"div",
|
|
4897
4404
|
{
|
|
4898
4405
|
ref,
|
|
@@ -4900,7 +4407,7 @@ var Divider = React39.forwardRef(
|
|
|
4900
4407
|
role: "separator",
|
|
4901
4408
|
...props,
|
|
4902
4409
|
children: [
|
|
4903
|
-
labelPosition !== "left" && /* @__PURE__ */
|
|
4410
|
+
labelPosition !== "left" && /* @__PURE__ */ jsx49(
|
|
4904
4411
|
"div",
|
|
4905
4412
|
{
|
|
4906
4413
|
className: cn(
|
|
@@ -4909,7 +4416,7 @@ var Divider = React39.forwardRef(
|
|
|
4909
4416
|
)
|
|
4910
4417
|
}
|
|
4911
4418
|
),
|
|
4912
|
-
/* @__PURE__ */
|
|
4419
|
+
/* @__PURE__ */ jsx49(
|
|
4913
4420
|
"span",
|
|
4914
4421
|
{
|
|
4915
4422
|
className: cn(
|
|
@@ -4919,7 +4426,7 @@ var Divider = React39.forwardRef(
|
|
|
4919
4426
|
children: label
|
|
4920
4427
|
}
|
|
4921
4428
|
),
|
|
4922
|
-
labelPosition !== "right" && /* @__PURE__ */
|
|
4429
|
+
labelPosition !== "right" && /* @__PURE__ */ jsx49(
|
|
4923
4430
|
"div",
|
|
4924
4431
|
{
|
|
4925
4432
|
className: cn(
|
|
@@ -4935,44 +4442,17 @@ var Divider = React39.forwardRef(
|
|
|
4935
4442
|
);
|
|
4936
4443
|
Divider.displayName = "Divider";
|
|
4937
4444
|
|
|
4938
|
-
// src/container.tsx
|
|
4939
|
-
import * as React40 from "react";
|
|
4940
|
-
import { jsx as jsx58 } from "react/jsx-runtime";
|
|
4941
|
-
var SIZE_CLASSES6 = {
|
|
4942
|
-
sm: "max-w-content-sm",
|
|
4943
|
-
md: "max-w-content-md",
|
|
4944
|
-
lg: "max-w-content-lg",
|
|
4945
|
-
xl: "max-w-content-xl",
|
|
4946
|
-
full: "max-w-full"
|
|
4947
|
-
};
|
|
4948
|
-
var Container = React40.forwardRef(
|
|
4949
|
-
({ className, size = "xl", padded = true, ...props }, ref) => /* @__PURE__ */ jsx58(
|
|
4950
|
-
"div",
|
|
4951
|
-
{
|
|
4952
|
-
ref,
|
|
4953
|
-
className: cn(
|
|
4954
|
-
"mx-auto w-full",
|
|
4955
|
-
SIZE_CLASSES6[size],
|
|
4956
|
-
padded && "px-4 sm:px-6 lg:px-8",
|
|
4957
|
-
className
|
|
4958
|
-
),
|
|
4959
|
-
...props
|
|
4960
|
-
}
|
|
4961
|
-
)
|
|
4962
|
-
);
|
|
4963
|
-
Container.displayName = "Container";
|
|
4964
|
-
|
|
4965
4445
|
// src/page-content.tsx
|
|
4966
|
-
import * as
|
|
4967
|
-
import { jsx as
|
|
4446
|
+
import * as React36 from "react";
|
|
4447
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
4968
4448
|
var GAP_CLASSES2 = {
|
|
4969
4449
|
sm: "space-y-4",
|
|
4970
4450
|
md: "space-y-6",
|
|
4971
4451
|
lg: "space-y-8",
|
|
4972
4452
|
none: ""
|
|
4973
4453
|
};
|
|
4974
|
-
var PageContent =
|
|
4975
|
-
({ 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(
|
|
4976
4456
|
"div",
|
|
4977
4457
|
{
|
|
4978
4458
|
ref,
|
|
@@ -4985,14 +4465,14 @@ var PageContent = React41.forwardRef(
|
|
|
4985
4465
|
PageContent.displayName = "PageContent";
|
|
4986
4466
|
|
|
4987
4467
|
// src/media-object.tsx
|
|
4988
|
-
import * as
|
|
4989
|
-
import { jsx as
|
|
4468
|
+
import * as React37 from "react";
|
|
4469
|
+
import { jsx as jsx51, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
4990
4470
|
var MEDIA_SIZE = {
|
|
4991
4471
|
sm: "h-8 w-8",
|
|
4992
4472
|
md: "h-10 w-10",
|
|
4993
4473
|
lg: "h-12 w-12"
|
|
4994
4474
|
};
|
|
4995
|
-
var MediaObject =
|
|
4475
|
+
var MediaObject = React37.forwardRef(
|
|
4996
4476
|
({
|
|
4997
4477
|
className,
|
|
4998
4478
|
media,
|
|
@@ -5005,7 +4485,7 @@ var MediaObject = React42.forwardRef(
|
|
|
5005
4485
|
...props
|
|
5006
4486
|
}, ref) => {
|
|
5007
4487
|
if (stacked) {
|
|
5008
|
-
return /* @__PURE__ */
|
|
4488
|
+
return /* @__PURE__ */ jsxs40(
|
|
5009
4489
|
"div",
|
|
5010
4490
|
{
|
|
5011
4491
|
ref,
|
|
@@ -5015,17 +4495,17 @@ var MediaObject = React42.forwardRef(
|
|
|
5015
4495
|
),
|
|
5016
4496
|
...props,
|
|
5017
4497
|
children: [
|
|
5018
|
-
/* @__PURE__ */
|
|
5019
|
-
/* @__PURE__ */
|
|
5020
|
-
title && /* @__PURE__ */
|
|
5021
|
-
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 })
|
|
5022
4502
|
] }),
|
|
5023
|
-
action && /* @__PURE__ */
|
|
4503
|
+
action && /* @__PURE__ */ jsx51("div", { children: action })
|
|
5024
4504
|
]
|
|
5025
4505
|
}
|
|
5026
4506
|
);
|
|
5027
4507
|
}
|
|
5028
|
-
return /* @__PURE__ */
|
|
4508
|
+
return /* @__PURE__ */ jsxs40(
|
|
5029
4509
|
"div",
|
|
5030
4510
|
{
|
|
5031
4511
|
ref,
|
|
@@ -5036,12 +4516,12 @@ var MediaObject = React42.forwardRef(
|
|
|
5036
4516
|
),
|
|
5037
4517
|
...props,
|
|
5038
4518
|
children: [
|
|
5039
|
-
/* @__PURE__ */
|
|
5040
|
-
/* @__PURE__ */
|
|
5041
|
-
title && /* @__PURE__ */
|
|
5042
|
-
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 })
|
|
5043
4523
|
] }),
|
|
5044
|
-
action && /* @__PURE__ */
|
|
4524
|
+
action && /* @__PURE__ */ jsx51("div", { className: "flex-shrink-0", children: action })
|
|
5045
4525
|
]
|
|
5046
4526
|
}
|
|
5047
4527
|
);
|
|
@@ -5050,16 +4530,16 @@ var MediaObject = React42.forwardRef(
|
|
|
5050
4530
|
MediaObject.displayName = "MediaObject";
|
|
5051
4531
|
|
|
5052
4532
|
// src/page-patterns.tsx
|
|
5053
|
-
import * as
|
|
5054
|
-
import { jsx as
|
|
4533
|
+
import * as React38 from "react";
|
|
4534
|
+
import { jsx as jsx52, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
5055
4535
|
var GUTTER_WIDTHS = {
|
|
5056
4536
|
/** A single column of reading or a short list. */
|
|
5057
4537
|
narrow: "max-w-content-md",
|
|
5058
4538
|
/** A detail or list page with a side panel. */
|
|
5059
4539
|
default: "max-w-content-xl"
|
|
5060
4540
|
};
|
|
5061
|
-
var PageGutter =
|
|
5062
|
-
({ className, width = "default", ...props }, ref) => /* @__PURE__ */
|
|
4541
|
+
var PageGutter = React38.forwardRef(
|
|
4542
|
+
({ className, width = "default", ...props }, ref) => /* @__PURE__ */ jsx52(
|
|
5063
4543
|
"div",
|
|
5064
4544
|
{
|
|
5065
4545
|
ref,
|
|
@@ -5073,8 +4553,8 @@ var PageGutter = React43.forwardRef(
|
|
|
5073
4553
|
)
|
|
5074
4554
|
);
|
|
5075
4555
|
PageGutter.displayName = "PageGutter";
|
|
5076
|
-
var PageHeading =
|
|
5077
|
-
({ className, title, description, meta, actions, ...props }, ref) => /* @__PURE__ */
|
|
4556
|
+
var PageHeading = React38.forwardRef(
|
|
4557
|
+
({ className, title, description, meta, actions, ...props }, ref) => /* @__PURE__ */ jsxs41(
|
|
5078
4558
|
"header",
|
|
5079
4559
|
{
|
|
5080
4560
|
ref,
|
|
@@ -5084,18 +4564,18 @@ var PageHeading = React43.forwardRef(
|
|
|
5084
4564
|
),
|
|
5085
4565
|
...props,
|
|
5086
4566
|
children: [
|
|
5087
|
-
/* @__PURE__ */
|
|
5088
|
-
/* @__PURE__ */
|
|
5089
|
-
description && /* @__PURE__ */
|
|
5090
|
-
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 })
|
|
5091
4571
|
] }),
|
|
5092
|
-
actions && /* @__PURE__ */
|
|
4572
|
+
actions && /* @__PURE__ */ jsx52("div", { className: "flex max-w-full shrink-0 flex-wrap items-center gap-2", children: actions })
|
|
5093
4573
|
]
|
|
5094
4574
|
}
|
|
5095
4575
|
)
|
|
5096
4576
|
);
|
|
5097
4577
|
PageHeading.displayName = "PageHeading";
|
|
5098
|
-
var SectionCard =
|
|
4578
|
+
var SectionCard = React38.forwardRef(
|
|
5099
4579
|
({
|
|
5100
4580
|
className,
|
|
5101
4581
|
title,
|
|
@@ -5108,14 +4588,14 @@ var SectionCard = React43.forwardRef(
|
|
|
5108
4588
|
}, ref) => {
|
|
5109
4589
|
const pad = size === "compact" ? "p-4" : "p-4 sm:p-6";
|
|
5110
4590
|
const hasHead = Boolean(title || description || actions);
|
|
5111
|
-
return /* @__PURE__ */
|
|
4591
|
+
return /* @__PURE__ */ jsxs41(
|
|
5112
4592
|
Card,
|
|
5113
4593
|
{
|
|
5114
4594
|
ref,
|
|
5115
4595
|
className: cn("min-w-0 overflow-hidden", className),
|
|
5116
4596
|
...props,
|
|
5117
4597
|
children: [
|
|
5118
|
-
hasHead && /* @__PURE__ */
|
|
4598
|
+
hasHead && /* @__PURE__ */ jsxs41(
|
|
5119
4599
|
"div",
|
|
5120
4600
|
{
|
|
5121
4601
|
className: cn(
|
|
@@ -5125,8 +4605,8 @@ var SectionCard = React43.forwardRef(
|
|
|
5125
4605
|
flush && children ? "border-b border-border" : ""
|
|
5126
4606
|
),
|
|
5127
4607
|
children: [
|
|
5128
|
-
/* @__PURE__ */
|
|
5129
|
-
title && /* @__PURE__ */
|
|
4608
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
4609
|
+
title && /* @__PURE__ */ jsx52(
|
|
5130
4610
|
"h2",
|
|
5131
4611
|
{
|
|
5132
4612
|
className: cn(
|
|
@@ -5136,36 +4616,36 @@ var SectionCard = React43.forwardRef(
|
|
|
5136
4616
|
children: title
|
|
5137
4617
|
}
|
|
5138
4618
|
),
|
|
5139
|
-
description && /* @__PURE__ */
|
|
4619
|
+
description && /* @__PURE__ */ jsx52("p", { className: "text-sm text-muted-foreground", children: description })
|
|
5140
4620
|
] }),
|
|
5141
|
-
actions && /* @__PURE__ */
|
|
4621
|
+
actions && /* @__PURE__ */ jsx52("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: actions })
|
|
5142
4622
|
]
|
|
5143
4623
|
}
|
|
5144
4624
|
),
|
|
5145
|
-
children !== void 0 && children !== null && /* @__PURE__ */
|
|
4625
|
+
children !== void 0 && children !== null && /* @__PURE__ */ jsx52("div", { className: cn("min-w-0", !flush && pad), children })
|
|
5146
4626
|
]
|
|
5147
4627
|
}
|
|
5148
4628
|
);
|
|
5149
4629
|
}
|
|
5150
4630
|
);
|
|
5151
4631
|
SectionCard.displayName = "SectionCard";
|
|
5152
|
-
var TabbedCard =
|
|
5153
|
-
({ className, tabs, tabsLabel, children, ...props }, ref) => /* @__PURE__ */
|
|
4632
|
+
var TabbedCard = React38.forwardRef(
|
|
4633
|
+
({ className, tabs, tabsLabel, children, ...props }, ref) => /* @__PURE__ */ jsxs41(
|
|
5154
4634
|
Card,
|
|
5155
4635
|
{
|
|
5156
4636
|
ref,
|
|
5157
4637
|
className: cn("min-w-0 overflow-hidden", className),
|
|
5158
4638
|
...props,
|
|
5159
4639
|
children: [
|
|
5160
|
-
/* @__PURE__ */
|
|
5161
|
-
/* @__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 })
|
|
5162
4642
|
]
|
|
5163
4643
|
}
|
|
5164
4644
|
)
|
|
5165
4645
|
);
|
|
5166
4646
|
TabbedCard.displayName = "TabbedCard";
|
|
5167
|
-
var SidePanelLayout =
|
|
5168
|
-
({ className, aside, asideLabel, children, ...props }, ref) => /* @__PURE__ */
|
|
4647
|
+
var SidePanelLayout = React38.forwardRef(
|
|
4648
|
+
({ className, aside, asideLabel, children, ...props }, ref) => /* @__PURE__ */ jsxs41(
|
|
5169
4649
|
"div",
|
|
5170
4650
|
{
|
|
5171
4651
|
ref,
|
|
@@ -5175,8 +4655,8 @@ var SidePanelLayout = React43.forwardRef(
|
|
|
5175
4655
|
),
|
|
5176
4656
|
...props,
|
|
5177
4657
|
children: [
|
|
5178
|
-
/* @__PURE__ */
|
|
5179
|
-
/* @__PURE__ */
|
|
4658
|
+
/* @__PURE__ */ jsx52("div", { className: "flex min-w-0 flex-col gap-6 lg:col-span-2", children }),
|
|
4659
|
+
/* @__PURE__ */ jsx52(
|
|
5180
4660
|
"aside",
|
|
5181
4661
|
{
|
|
5182
4662
|
"aria-label": asideLabel,
|
|
@@ -5190,46 +4670,18 @@ var SidePanelLayout = React43.forwardRef(
|
|
|
5190
4670
|
);
|
|
5191
4671
|
SidePanelLayout.displayName = "SidePanelLayout";
|
|
5192
4672
|
|
|
5193
|
-
// src/intent-badge.tsx
|
|
5194
|
-
import * as React44 from "react";
|
|
5195
|
-
import { jsx as jsx62 } from "react/jsx-runtime";
|
|
5196
|
-
var INTENT_CLASSES = {
|
|
5197
|
-
neutral: "bg-muted text-muted-foreground border-border",
|
|
5198
|
-
// the primary tint is lighter than the intents': `primary-text` on a 10%
|
|
5199
|
-
// tint over the page grey drew 4.46:1 (W1 sheet), under AA
|
|
5200
|
-
primary: "bg-primary/5 text-primary-text border-primary/30",
|
|
5201
|
-
...INTENT_SUBTLE_STYLES
|
|
5202
|
-
};
|
|
5203
|
-
var IntentBadge = React44.forwardRef(
|
|
5204
|
-
({ className, intent = "neutral", children, ...props }, ref) => /* @__PURE__ */ jsx62(
|
|
5205
|
-
"span",
|
|
5206
|
-
{
|
|
5207
|
-
ref,
|
|
5208
|
-
title: typeof children === "string" ? children : void 0,
|
|
5209
|
-
className: cn(
|
|
5210
|
-
"inline-flex max-w-full items-center rounded-full border px-2.5 py-0.5 text-xs font-medium",
|
|
5211
|
-
INTENT_CLASSES[intent],
|
|
5212
|
-
className
|
|
5213
|
-
),
|
|
5214
|
-
...props,
|
|
5215
|
-
children: /* @__PURE__ */ jsx62("span", { className: "truncate", children: isEmptyValue(children) ? /* @__PURE__ */ jsx62(EmptyValue, {}) : children })
|
|
5216
|
-
}
|
|
5217
|
-
)
|
|
5218
|
-
);
|
|
5219
|
-
IntentBadge.displayName = "IntentBadge";
|
|
5220
|
-
|
|
5221
4673
|
// src/overflow-menu.tsx
|
|
5222
|
-
import * as
|
|
5223
|
-
import { Fragment as
|
|
4674
|
+
import * as React39 from "react";
|
|
4675
|
+
import { Fragment as Fragment8, jsx as jsx53, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
5224
4676
|
function OverflowMenu({
|
|
5225
4677
|
label,
|
|
5226
4678
|
items,
|
|
5227
4679
|
defaultOpen = false,
|
|
5228
4680
|
className
|
|
5229
4681
|
}) {
|
|
5230
|
-
const [open, setOpen] =
|
|
5231
|
-
const menuId =
|
|
5232
|
-
|
|
4682
|
+
const [open, setOpen] = React39.useState(defaultOpen);
|
|
4683
|
+
const menuId = React39.useId();
|
|
4684
|
+
React39.useEffect(() => {
|
|
5233
4685
|
if (!open) return;
|
|
5234
4686
|
const onKey = (e) => {
|
|
5235
4687
|
if (e.key === "Escape") setOpen(false);
|
|
@@ -5237,8 +4689,8 @@ function OverflowMenu({
|
|
|
5237
4689
|
document.addEventListener("keydown", onKey);
|
|
5238
4690
|
return () => document.removeEventListener("keydown", onKey);
|
|
5239
4691
|
}, [open]);
|
|
5240
|
-
return /* @__PURE__ */
|
|
5241
|
-
/* @__PURE__ */
|
|
4692
|
+
return /* @__PURE__ */ jsxs42("div", { className: cn("relative inline-block", className), children: [
|
|
4693
|
+
/* @__PURE__ */ jsx53(
|
|
5242
4694
|
Button,
|
|
5243
4695
|
{
|
|
5244
4696
|
variant: "outline",
|
|
@@ -5248,11 +4700,11 @@ function OverflowMenu({
|
|
|
5248
4700
|
"aria-expanded": open,
|
|
5249
4701
|
"aria-controls": open ? menuId : void 0,
|
|
5250
4702
|
onClick: () => setOpen(!open),
|
|
5251
|
-
children: /* @__PURE__ */
|
|
4703
|
+
children: /* @__PURE__ */ jsx53(Icon, { name: "ellipsis", size: "sm" })
|
|
5252
4704
|
}
|
|
5253
4705
|
),
|
|
5254
|
-
open && /* @__PURE__ */
|
|
5255
|
-
/* @__PURE__ */
|
|
4706
|
+
open && /* @__PURE__ */ jsxs42(Fragment8, { children: [
|
|
4707
|
+
/* @__PURE__ */ jsx53(
|
|
5256
4708
|
"div",
|
|
5257
4709
|
{
|
|
5258
4710
|
"aria-hidden": "true",
|
|
@@ -5260,14 +4712,14 @@ function OverflowMenu({
|
|
|
5260
4712
|
onClick: () => setOpen(false)
|
|
5261
4713
|
}
|
|
5262
4714
|
),
|
|
5263
|
-
/* @__PURE__ */
|
|
4715
|
+
/* @__PURE__ */ jsx53(
|
|
5264
4716
|
"div",
|
|
5265
4717
|
{
|
|
5266
4718
|
id: menuId,
|
|
5267
4719
|
role: "menu",
|
|
5268
4720
|
"aria-label": label,
|
|
5269
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",
|
|
5270
|
-
children: items.map((item) => /* @__PURE__ */
|
|
4722
|
+
children: items.map((item) => /* @__PURE__ */ jsxs42(
|
|
5271
4723
|
"button",
|
|
5272
4724
|
{
|
|
5273
4725
|
type: "button",
|
|
@@ -5282,8 +4734,8 @@ function OverflowMenu({
|
|
|
5282
4734
|
item.destructive ? "text-intent-error-foreground" : "text-popover-foreground"
|
|
5283
4735
|
),
|
|
5284
4736
|
children: [
|
|
5285
|
-
item.icon && /* @__PURE__ */
|
|
5286
|
-
/* @__PURE__ */
|
|
4737
|
+
item.icon && /* @__PURE__ */ jsx53(Icon, { name: item.icon, size: "sm" }),
|
|
4738
|
+
/* @__PURE__ */ jsx53("span", { className: "min-w-0 truncate", children: item.label })
|
|
5287
4739
|
]
|
|
5288
4740
|
},
|
|
5289
4741
|
item.label
|
|
@@ -5295,9 +4747,9 @@ function OverflowMenu({
|
|
|
5295
4747
|
}
|
|
5296
4748
|
|
|
5297
4749
|
// src/stage-list.tsx
|
|
5298
|
-
import * as
|
|
5299
|
-
import { jsx as
|
|
5300
|
-
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(
|
|
5301
4753
|
({ stages, outcomes = [], current, ...props }, ref) => {
|
|
5302
4754
|
const at = stages.findIndex((s) => s.value === current);
|
|
5303
4755
|
const outcome = outcomes.find((s) => s.value === current);
|
|
@@ -5305,7 +4757,7 @@ var StageList = React46.forwardRef(
|
|
|
5305
4757
|
throw new Error(
|
|
5306
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"})`
|
|
5307
4759
|
);
|
|
5308
|
-
return /* @__PURE__ */
|
|
4760
|
+
return /* @__PURE__ */ jsxs43(
|
|
5309
4761
|
Stepper,
|
|
5310
4762
|
{
|
|
5311
4763
|
ref,
|
|
@@ -5314,7 +4766,7 @@ var StageList = React46.forwardRef(
|
|
|
5314
4766
|
activeStep: outcome ? stages.length : at,
|
|
5315
4767
|
...props,
|
|
5316
4768
|
children: [
|
|
5317
|
-
stages.map((s) => /* @__PURE__ */
|
|
4769
|
+
stages.map((s) => /* @__PURE__ */ jsx54(
|
|
5318
4770
|
StepperStep,
|
|
5319
4771
|
{
|
|
5320
4772
|
label: s.label,
|
|
@@ -5322,7 +4774,7 @@ var StageList = React46.forwardRef(
|
|
|
5322
4774
|
},
|
|
5323
4775
|
s.value
|
|
5324
4776
|
)),
|
|
5325
|
-
outcome && /* @__PURE__ */
|
|
4777
|
+
outcome && /* @__PURE__ */ jsx54(StepperStep, { label: outcome.label, error: true }, outcome.value)
|
|
5326
4778
|
]
|
|
5327
4779
|
}
|
|
5328
4780
|
);
|
|
@@ -5331,15 +4783,15 @@ var StageList = React46.forwardRef(
|
|
|
5331
4783
|
StageList.displayName = "StageList";
|
|
5332
4784
|
|
|
5333
4785
|
// src/clamped-list.tsx
|
|
5334
|
-
import * as
|
|
5335
|
-
import { jsx as
|
|
4786
|
+
import * as React41 from "react";
|
|
4787
|
+
import { jsx as jsx55, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
5336
4788
|
var MAX_HEIGHTS = {
|
|
5337
4789
|
sm: "max-h-48",
|
|
5338
4790
|
md: "max-h-72",
|
|
5339
4791
|
lg: "max-h-96"
|
|
5340
4792
|
};
|
|
5341
|
-
var ClampedList =
|
|
5342
|
-
({ className, label, maxHeight = "md", children, ...props }, ref) => /* @__PURE__ */
|
|
4793
|
+
var ClampedList = React41.forwardRef(
|
|
4794
|
+
({ className, label, maxHeight = "md", children, ...props }, ref) => /* @__PURE__ */ jsxs44(
|
|
5343
4795
|
"div",
|
|
5344
4796
|
{
|
|
5345
4797
|
ref,
|
|
@@ -5355,13 +4807,13 @@ var ClampedList = React47.forwardRef(
|
|
|
5355
4807
|
...props,
|
|
5356
4808
|
children: [
|
|
5357
4809
|
children,
|
|
5358
|
-
/* @__PURE__ */
|
|
4810
|
+
/* @__PURE__ */ jsx55(
|
|
5359
4811
|
"div",
|
|
5360
4812
|
{
|
|
5361
4813
|
"aria-hidden": "true",
|
|
5362
4814
|
"data-scroll-hint": "y",
|
|
5363
4815
|
className: SCROLL_HINT_Y_MARK,
|
|
5364
|
-
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" }) })
|
|
5365
4817
|
}
|
|
5366
4818
|
)
|
|
5367
4819
|
]
|
|
@@ -5371,10 +4823,10 @@ var ClampedList = React47.forwardRef(
|
|
|
5371
4823
|
ClampedList.displayName = "ClampedList";
|
|
5372
4824
|
|
|
5373
4825
|
// src/textarea.tsx
|
|
5374
|
-
import * as
|
|
5375
|
-
import { jsx as
|
|
4826
|
+
import * as React42 from "react";
|
|
4827
|
+
import { jsx as jsx56, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
5376
4828
|
var lengthOf = (v) => v === void 0 ? 0 : Array.isArray(v) ? v.join(",").length : String(v).length;
|
|
5377
|
-
var Textarea =
|
|
4829
|
+
var Textarea = React42.forwardRef(
|
|
5378
4830
|
({
|
|
5379
4831
|
className,
|
|
5380
4832
|
error,
|
|
@@ -5389,11 +4841,11 @@ var Textarea = React48.forwardRef(
|
|
|
5389
4841
|
onChange,
|
|
5390
4842
|
...props
|
|
5391
4843
|
}, ref) => {
|
|
5392
|
-
const countId =
|
|
5393
|
-
const [typed, setTyped] =
|
|
4844
|
+
const countId = React42.useId();
|
|
4845
|
+
const [typed, setTyped] = React42.useState(() => lengthOf(defaultValue));
|
|
5394
4846
|
const count = value === void 0 ? typed : lengthOf(value);
|
|
5395
4847
|
const aria = fieldAria(error, errorMessageId);
|
|
5396
|
-
const field = /* @__PURE__ */
|
|
4848
|
+
const field = /* @__PURE__ */ jsx56(
|
|
5397
4849
|
"textarea",
|
|
5398
4850
|
{
|
|
5399
4851
|
ref,
|
|
@@ -5418,9 +4870,9 @@ var Textarea = React48.forwardRef(
|
|
|
5418
4870
|
);
|
|
5419
4871
|
if (!showCount) return field;
|
|
5420
4872
|
const atLimit = maxLength !== void 0 && count >= maxLength;
|
|
5421
|
-
return /* @__PURE__ */
|
|
4873
|
+
return /* @__PURE__ */ jsxs45("div", { className: "w-full min-w-0 space-y-1", children: [
|
|
5422
4874
|
field,
|
|
5423
|
-
/* @__PURE__ */
|
|
4875
|
+
/* @__PURE__ */ jsx56(
|
|
5424
4876
|
"p",
|
|
5425
4877
|
{
|
|
5426
4878
|
id: countId,
|
|
@@ -5437,8 +4889,8 @@ var Textarea = React48.forwardRef(
|
|
|
5437
4889
|
Textarea.displayName = "Textarea";
|
|
5438
4890
|
|
|
5439
4891
|
// src/select.tsx
|
|
5440
|
-
import * as
|
|
5441
|
-
import { jsx as
|
|
4892
|
+
import * as React43 from "react";
|
|
4893
|
+
import { jsx as jsx57, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
5442
4894
|
var CHEVRON_END = {
|
|
5443
4895
|
sm: "right-2.5",
|
|
5444
4896
|
md: "right-3",
|
|
@@ -5449,7 +4901,7 @@ var END_PADDING = {
|
|
|
5449
4901
|
md: "pr-9",
|
|
5450
4902
|
lg: "pr-10"
|
|
5451
4903
|
};
|
|
5452
|
-
var Select =
|
|
4904
|
+
var Select = React43.forwardRef(
|
|
5453
4905
|
({
|
|
5454
4906
|
className,
|
|
5455
4907
|
options,
|
|
@@ -5467,8 +4919,8 @@ var Select = React49.forwardRef(
|
|
|
5467
4919
|
"Select: pass `options` or `<option>` children, not both"
|
|
5468
4920
|
);
|
|
5469
4921
|
const showsPlaceholder = placeholder !== void 0 && value === void 0 && defaultValue === void 0;
|
|
5470
|
-
return /* @__PURE__ */
|
|
5471
|
-
/* @__PURE__ */
|
|
4922
|
+
return /* @__PURE__ */ jsxs46("div", { className: "relative w-full min-w-0", children: [
|
|
4923
|
+
/* @__PURE__ */ jsxs46(
|
|
5472
4924
|
"select",
|
|
5473
4925
|
{
|
|
5474
4926
|
ref,
|
|
@@ -5485,13 +4937,13 @@ var Select = React49.forwardRef(
|
|
|
5485
4937
|
),
|
|
5486
4938
|
...props,
|
|
5487
4939
|
children: [
|
|
5488
|
-
placeholder !== void 0 && /* @__PURE__ */
|
|
5489
|
-
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)),
|
|
5490
4942
|
children
|
|
5491
4943
|
]
|
|
5492
4944
|
}
|
|
5493
4945
|
),
|
|
5494
|
-
/* @__PURE__ */
|
|
4946
|
+
/* @__PURE__ */ jsx57(
|
|
5495
4947
|
Icon,
|
|
5496
4948
|
{
|
|
5497
4949
|
name: "chevron-down",
|
|
@@ -5508,13 +4960,13 @@ var Select = React49.forwardRef(
|
|
|
5508
4960
|
Select.displayName = "Select";
|
|
5509
4961
|
|
|
5510
4962
|
// src/checkbox.tsx
|
|
5511
|
-
import * as
|
|
5512
|
-
import { jsx as
|
|
4963
|
+
import * as React44 from "react";
|
|
4964
|
+
import { jsx as jsx58, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
5513
4965
|
var BOX = {
|
|
5514
4966
|
sm: "size-4",
|
|
5515
4967
|
md: "size-5"
|
|
5516
4968
|
};
|
|
5517
|
-
var Checkbox =
|
|
4969
|
+
var Checkbox = React44.forwardRef(
|
|
5518
4970
|
({
|
|
5519
4971
|
className,
|
|
5520
4972
|
indeterminate = false,
|
|
@@ -5528,23 +4980,23 @@ var Checkbox = React50.forwardRef(
|
|
|
5528
4980
|
id,
|
|
5529
4981
|
...props
|
|
5530
4982
|
}, ref) => {
|
|
5531
|
-
const autoId =
|
|
4983
|
+
const autoId = React44.useId();
|
|
5532
4984
|
const inputId = id ?? autoId;
|
|
5533
4985
|
const descId = `${inputId}-description`;
|
|
5534
4986
|
const errorId = `${inputId}-error`;
|
|
5535
|
-
const inner =
|
|
5536
|
-
|
|
4987
|
+
const inner = React44.useRef(null);
|
|
4988
|
+
React44.useImperativeHandle(ref, () => {
|
|
5537
4989
|
if (!inner.current) throw new Error("Checkbox: the input is not mounted");
|
|
5538
4990
|
return inner.current;
|
|
5539
4991
|
});
|
|
5540
|
-
|
|
4992
|
+
React44.useEffect(() => {
|
|
5541
4993
|
if (inner.current) inner.current.indeterminate = indeterminate;
|
|
5542
4994
|
}, [indeterminate]);
|
|
5543
4995
|
const hasError = Boolean(error);
|
|
5544
4996
|
const message = typeof error === "string" ? error : void 0;
|
|
5545
4997
|
const describedBy = [description ? descId : void 0, message ? errorId : void 0].filter(Boolean).join(" ") || void 0;
|
|
5546
|
-
return /* @__PURE__ */
|
|
5547
|
-
/* @__PURE__ */
|
|
4998
|
+
return /* @__PURE__ */ jsxs47("div", { className: cn("flex items-start gap-2", className), children: [
|
|
4999
|
+
/* @__PURE__ */ jsxs47(
|
|
5548
5000
|
"span",
|
|
5549
5001
|
{
|
|
5550
5002
|
className: cn(
|
|
@@ -5552,7 +5004,7 @@ var Checkbox = React50.forwardRef(
|
|
|
5552
5004
|
size === "sm" ? "mt-0.5" : "mt-px"
|
|
5553
5005
|
),
|
|
5554
5006
|
children: [
|
|
5555
|
-
/* @__PURE__ */
|
|
5007
|
+
/* @__PURE__ */ jsx58(
|
|
5556
5008
|
"input",
|
|
5557
5009
|
{
|
|
5558
5010
|
ref: inner,
|
|
@@ -5579,13 +5031,13 @@ var Checkbox = React50.forwardRef(
|
|
|
5579
5031
|
...props
|
|
5580
5032
|
}
|
|
5581
5033
|
),
|
|
5582
|
-
indeterminate ? /* @__PURE__ */
|
|
5034
|
+
indeterminate ? /* @__PURE__ */ jsx58(
|
|
5583
5035
|
"span",
|
|
5584
5036
|
{
|
|
5585
5037
|
"aria-hidden": "true",
|
|
5586
5038
|
className: "pointer-events-none absolute h-0.5 w-1/2 rounded-full bg-primary-foreground"
|
|
5587
5039
|
}
|
|
5588
|
-
) : /* @__PURE__ */
|
|
5040
|
+
) : /* @__PURE__ */ jsx58(
|
|
5589
5041
|
Icon,
|
|
5590
5042
|
{
|
|
5591
5043
|
name: "check",
|
|
@@ -5596,8 +5048,8 @@ var Checkbox = React50.forwardRef(
|
|
|
5596
5048
|
]
|
|
5597
5049
|
}
|
|
5598
5050
|
),
|
|
5599
|
-
(label || description || message) && /* @__PURE__ */
|
|
5600
|
-
label && /* @__PURE__ */
|
|
5051
|
+
(label || description || message) && /* @__PURE__ */ jsxs47("div", { className: "min-w-0 space-y-0.5", children: [
|
|
5052
|
+
label && /* @__PURE__ */ jsx58(
|
|
5601
5053
|
Label,
|
|
5602
5054
|
{
|
|
5603
5055
|
htmlFor: inputId,
|
|
@@ -5610,14 +5062,14 @@ var Checkbox = React50.forwardRef(
|
|
|
5610
5062
|
children: label
|
|
5611
5063
|
}
|
|
5612
5064
|
),
|
|
5613
|
-
description && /* @__PURE__ */
|
|
5614
|
-
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 })
|
|
5615
5067
|
] })
|
|
5616
5068
|
] });
|
|
5617
5069
|
}
|
|
5618
5070
|
);
|
|
5619
5071
|
Checkbox.displayName = "Checkbox";
|
|
5620
|
-
var CheckboxGroup =
|
|
5072
|
+
var CheckboxGroup = React44.forwardRef(
|
|
5621
5073
|
({
|
|
5622
5074
|
className,
|
|
5623
5075
|
legend,
|
|
@@ -5630,8 +5082,8 @@ var CheckboxGroup = React50.forwardRef(
|
|
|
5630
5082
|
size = "md",
|
|
5631
5083
|
...props
|
|
5632
5084
|
}, ref) => {
|
|
5633
|
-
const errorId =
|
|
5634
|
-
return /* @__PURE__ */
|
|
5085
|
+
const errorId = React44.useId();
|
|
5086
|
+
return /* @__PURE__ */ jsxs47(
|
|
5635
5087
|
"fieldset",
|
|
5636
5088
|
{
|
|
5637
5089
|
ref,
|
|
@@ -5640,14 +5092,14 @@ var CheckboxGroup = React50.forwardRef(
|
|
|
5640
5092
|
className: cn("min-w-0 space-y-2", className),
|
|
5641
5093
|
...props,
|
|
5642
5094
|
children: [
|
|
5643
|
-
/* @__PURE__ */
|
|
5644
|
-
/* @__PURE__ */
|
|
5095
|
+
/* @__PURE__ */ jsx58("legend", { className: "mb-2 text-sm font-medium text-foreground", children: legend }),
|
|
5096
|
+
/* @__PURE__ */ jsx58(
|
|
5645
5097
|
"div",
|
|
5646
5098
|
{
|
|
5647
5099
|
className: cn(
|
|
5648
5100
|
orientation === "horizontal" ? "flex flex-wrap gap-x-6 gap-y-2" : "space-y-2"
|
|
5649
5101
|
),
|
|
5650
|
-
children: options.map((o) => /* @__PURE__ */
|
|
5102
|
+
children: options.map((o) => /* @__PURE__ */ jsx58(
|
|
5651
5103
|
Checkbox,
|
|
5652
5104
|
{
|
|
5653
5105
|
name,
|
|
@@ -5667,7 +5119,7 @@ var CheckboxGroup = React50.forwardRef(
|
|
|
5667
5119
|
))
|
|
5668
5120
|
}
|
|
5669
5121
|
),
|
|
5670
|
-
error && /* @__PURE__ */
|
|
5122
|
+
error && /* @__PURE__ */ jsx58("p", { id: errorId, className: "text-intent-error-foreground text-sm", children: error })
|
|
5671
5123
|
]
|
|
5672
5124
|
}
|
|
5673
5125
|
);
|
|
@@ -5676,15 +5128,15 @@ var CheckboxGroup = React50.forwardRef(
|
|
|
5676
5128
|
CheckboxGroup.displayName = "CheckboxGroup";
|
|
5677
5129
|
|
|
5678
5130
|
// src/progress.tsx
|
|
5679
|
-
import * as
|
|
5680
|
-
import { jsx as
|
|
5131
|
+
import * as React45 from "react";
|
|
5132
|
+
import { jsx as jsx59, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
5681
5133
|
var FILL = {
|
|
5682
5134
|
primary: "bg-primary-solid dark:bg-primary",
|
|
5683
5135
|
success: "bg-intent-success-solid dark:bg-intent-success",
|
|
5684
5136
|
warning: "bg-intent-warning-solid dark:bg-intent-warning",
|
|
5685
5137
|
error: "bg-intent-error-solid dark:bg-intent-error"
|
|
5686
5138
|
};
|
|
5687
|
-
var Progress =
|
|
5139
|
+
var Progress = React45.forwardRef(
|
|
5688
5140
|
({
|
|
5689
5141
|
className,
|
|
5690
5142
|
value,
|
|
@@ -5696,11 +5148,11 @@ var Progress = React51.forwardRef(
|
|
|
5696
5148
|
}, ref) => {
|
|
5697
5149
|
if (value !== void 0 && !(value >= 0 && value <= 100))
|
|
5698
5150
|
throw new Error(`Progress: value must be within 0\u2013100, got ${value}`);
|
|
5699
|
-
const labelId =
|
|
5151
|
+
const labelId = React45.useId();
|
|
5700
5152
|
const shown = Math.round(value ?? 0);
|
|
5701
|
-
return /* @__PURE__ */
|
|
5702
|
-
(label || showValue && value !== void 0) && /* @__PURE__ */
|
|
5703
|
-
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(
|
|
5704
5156
|
"span",
|
|
5705
5157
|
{
|
|
5706
5158
|
id: labelId,
|
|
@@ -5708,12 +5160,12 @@ var Progress = React51.forwardRef(
|
|
|
5708
5160
|
children: label
|
|
5709
5161
|
}
|
|
5710
5162
|
),
|
|
5711
|
-
showValue && value !== void 0 && /* @__PURE__ */
|
|
5163
|
+
showValue && value !== void 0 && /* @__PURE__ */ jsxs48("span", { className: "ml-auto shrink-0 tabular-nums text-muted-foreground", children: [
|
|
5712
5164
|
shown,
|
|
5713
5165
|
"%"
|
|
5714
5166
|
] })
|
|
5715
5167
|
] }),
|
|
5716
|
-
/* @__PURE__ */
|
|
5168
|
+
/* @__PURE__ */ jsx59(
|
|
5717
5169
|
"div",
|
|
5718
5170
|
{
|
|
5719
5171
|
role: "progressbar",
|
|
@@ -5727,7 +5179,7 @@ var Progress = React51.forwardRef(
|
|
|
5727
5179
|
size === "sm" ? "h-1.5" : "h-2.5"
|
|
5728
5180
|
),
|
|
5729
5181
|
...props,
|
|
5730
|
-
children: /* @__PURE__ */
|
|
5182
|
+
children: /* @__PURE__ */ jsx59(
|
|
5731
5183
|
"div",
|
|
5732
5184
|
{
|
|
5733
5185
|
"data-ui-boundary": "",
|
|
@@ -5747,10 +5199,10 @@ var Progress = React51.forwardRef(
|
|
|
5747
5199
|
Progress.displayName = "Progress";
|
|
5748
5200
|
|
|
5749
5201
|
// src/hooks/use-debounce.ts
|
|
5750
|
-
import { useEffect as
|
|
5202
|
+
import { useEffect as useEffect7, useState as useState11 } from "react";
|
|
5751
5203
|
function useDebounce(value, ms) {
|
|
5752
|
-
const [debounced, setDebounced] =
|
|
5753
|
-
|
|
5204
|
+
const [debounced, setDebounced] = useState11(value);
|
|
5205
|
+
useEffect7(() => {
|
|
5754
5206
|
const handle = setTimeout(() => setDebounced(value), ms);
|
|
5755
5207
|
return () => clearTimeout(handle);
|
|
5756
5208
|
}, [value, ms]);
|
|
@@ -5772,7 +5224,7 @@ export {
|
|
|
5772
5224
|
Button,
|
|
5773
5225
|
ButtonGroup,
|
|
5774
5226
|
ButtonGroupItem,
|
|
5775
|
-
|
|
5227
|
+
Calendar,
|
|
5776
5228
|
Card,
|
|
5777
5229
|
CardContent,
|
|
5778
5230
|
CardDescription,
|