@cytario/design 8.0.0 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +1 -1
- package/dist/index.d.ts +133 -79
- package/dist/index.js +627 -497
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
- package/src/styles/theme.css +29 -30
- package/src/styles/tokens.css +2 -0
- package/assets/logos/cytario-logo-on-purple.svg +0 -1
package/dist/index.js
CHANGED
|
@@ -1,12 +1,62 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
// src/colors.ts
|
|
4
|
-
var ColorTeal500 = "#35b7b8";
|
|
5
|
-
var ColorPurple700 = "#5c2483";
|
|
6
|
-
|
|
7
3
|
// src/index.ts
|
|
8
4
|
import { RouterProvider } from "react-aria-components";
|
|
9
5
|
|
|
6
|
+
// src/components/Logo/Logo.tsx
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
var W = 56;
|
|
9
|
+
var H = 20;
|
|
10
|
+
var paths = {
|
|
11
|
+
c: "M7.043,15.648C7.043,15.744 7.025,15.781 6.949,15.799C6.347,16.046 5.593,16.103 4.859,16.103C1.808,16.103 0,14.002 0,11.279C0,8.479 2.072,6.398 5.179,6.398C6.121,6.398 6.629,6.493 6.949,6.606C7.025,6.644 7.043,6.7 7.043,6.814L7.025,8.497C7.025,8.63 6.949,8.63 6.874,8.612C6.479,8.46 5.989,8.365 5.255,8.365C3.54,8.365 2.335,9.387 2.335,11.203C2.335,13.266 3.823,14.059 5.273,14.059C5.951,14.059 6.535,14.002 6.912,13.87C7.006,13.833 7.043,13.89 7.043,13.965L7.043,15.648Z",
|
|
12
|
+
y: "M9.919,6.588C9.994,6.588 10.051,6.606 10.088,6.701C11.313,10.238 11.953,12.282 12.197,13.208C12.819,11.297 13.479,9.349 14.326,6.701C14.364,6.625 14.42,6.588 14.533,6.588L16.473,6.588C16.586,6.588 16.605,6.644 16.586,6.738C15.23,10.919 13.071,16.185 11.546,19.684C11.508,19.76 11.452,19.817 11.301,19.817L9.238,20C9.125,20 9.099,19.938 9.144,19.849C9.71,18.713 10.427,17.181 11.03,15.744C11.068,15.63 11.086,15.573 11.048,15.44C10.54,14.192 8.732,9.69 7.602,6.72C7.564,6.644 7.62,6.588 7.715,6.588L9.919,6.588Z",
|
|
13
|
+
t: "M22.706,15.61C22.706,15.725 22.688,15.8 22.593,15.838C22.085,16.027 21.614,16.102 20.992,16.102C19.448,16.102 18.525,15.346 18.525,13.473L18.525,8.498L17.338,8.498C17.244,8.48 17.206,8.441 17.206,8.328L17.206,6.738C17.206,6.625 17.244,6.587 17.357,6.587L18.525,6.583C18.543,5.921 18.525,4.912 18.525,4.26C18.543,4.166 18.581,4.109 18.675,4.09L20.674,3.912C20.764,3.904 20.806,3.912 20.806,4.007L20.806,6.583L22.65,6.587C22.744,6.587 22.781,6.625 22.781,6.72L22.781,8.365C22.781,8.46 22.744,8.498 22.65,8.498L20.804,8.498L20.804,12.981C20.804,13.813 21.067,14.211 21.878,14.211C22.122,14.211 22.33,14.193 22.593,14.135C22.65,14.116 22.706,14.135 22.706,14.248L22.706,15.61Z",
|
|
14
|
+
a: "M28.959,11.752C28.676,11.714 28.356,11.695 27.923,11.695C26.435,11.695 25.776,12.186 25.776,13C25.776,13.7 26.265,14.305 27.621,14.305C28.111,14.305 28.544,14.248 28.959,14.079L28.959,11.752ZM31.162,13.984C31.162,14.4 31.162,14.778 31.2,15.176C31.2,15.213 31.2,15.232 31.162,15.252C29.618,15.913 28.526,16.102 27.244,16.102C25.192,16.102 23.553,15.138 23.553,13C23.553,10.995 25.342,9.992 27.791,9.992C28.356,9.992 28.789,10.011 28.959,10.03L28.959,9.803C28.959,9.368 28.714,8.384 27.056,8.384C26.115,8.384 25.286,8.574 24.588,8.914C24.532,8.933 24.438,8.914 24.438,8.801L24.438,7.155C24.438,7.06 24.457,7.022 24.551,6.966C25.361,6.587 26.397,6.397 27.415,6.397C30.032,6.397 31.162,8.044 31.162,10.144L31.162,13.984Z",
|
|
15
|
+
r: "M34.267,6.588C34.381,6.588 34.438,6.625 34.475,6.738C34.569,6.984 34.644,7.458 34.663,7.874C35.304,7.079 36.327,6.398 37.627,6.398C37.739,6.398 37.827,6.453 37.827,6.594L37.827,8.535C37.827,8.63 37.789,8.668 37.658,8.668C36.321,8.63 35.21,9.103 34.776,9.671L34.776,15.762C34.776,15.876 34.72,15.913 34.606,15.913L32.648,15.913C32.516,15.913 32.478,15.856 32.478,15.762C32.478,15.762 32.485,7.369 32.485,6.701C32.485,6.606 32.504,6.588 32.598,6.588L34.267,6.588Z",
|
|
16
|
+
i: "M38.777,6.55C38.777,6.466 38.845,6.398 38.929,6.398C40.114,6.398 41.075,7.362 41.075,8.553L41.075,15.764C41.075,15.877 41.036,15.915 40.905,15.915L38.966,15.915C38.834,15.915 38.777,15.858 38.777,15.745L38.777,6.55Z",
|
|
17
|
+
o: "M47.169,14.138C45.576,14.123 44.297,12.814 44.311,11.214C44.326,9.615 45.629,8.329 47.222,8.344C48.815,8.359 50.094,9.668 50.079,11.268C50.065,12.868 48.761,14.153 47.169,14.138M47.876,6.482C47.119,6.369 46.014,6.446 45.46,6.41C43.518,6.279 42.185,4.377 42.182,2.485C42.181,1.047 41.374,0.235 40.308,0.039C39.63,-0.088 38.97,0.105 38.471,0.501C37.984,0.908 37.658,1.518 37.642,2.21C37.612,3.297 38.236,4.259 39.637,4.556C41.479,4.951 43.056,6.656 42.782,8.591C42.702,9.142 42.392,10.273 42.346,11.04C42.18,13.708 44.321,16.035 47.032,16.093C48.225,16.119 49.332,15.719 50.191,15.02C51.049,14.322 51.682,13.32 51.889,12.138C52.369,9.509 50.569,6.882 47.876,6.482",
|
|
18
|
+
"\xAE": "M54.243,7.684C54.243,7.493 54.104,7.355 53.837,7.355L53.499,7.355L53.499,8.006L53.837,8.006C54.104,8.006 54.243,7.884 54.243,7.684M53.499,8.224L53.499,8.893L53.257,8.893L53.257,7.137L53.837,7.137C54.235,7.137 54.494,7.346 54.494,7.676C54.494,7.937 54.33,8.11 54.088,8.18L54.581,8.893L54.295,8.893L53.845,8.224L53.499,8.224ZM55.212,8.015C55.212,7.207 54.65,6.633 53.837,6.633C53.023,6.633 52.452,7.207 52.452,8.015C52.452,8.832 53.023,9.405 53.837,9.405C54.65,9.405 55.212,8.832 55.212,8.015M52.21,8.015C52.21,7.085 52.894,6.398 53.837,6.398C54.78,6.398 55.463,7.085 55.463,8.015C55.463,8.954 54.78,9.64 53.837,9.64C52.894,9.64 52.21,8.954 52.21,8.015"
|
|
19
|
+
};
|
|
20
|
+
function Logo({
|
|
21
|
+
color,
|
|
22
|
+
highlightColor,
|
|
23
|
+
scale = 1,
|
|
24
|
+
className
|
|
25
|
+
}) {
|
|
26
|
+
const width = W * scale;
|
|
27
|
+
const height = H * scale;
|
|
28
|
+
const style = {
|
|
29
|
+
fill: "var(--logo-fill)",
|
|
30
|
+
...color && { "--logo-fill": color },
|
|
31
|
+
...highlightColor && { "--logo-highlight": highlightColor }
|
|
32
|
+
};
|
|
33
|
+
return /* @__PURE__ */ jsx(
|
|
34
|
+
"svg",
|
|
35
|
+
{
|
|
36
|
+
role: "img",
|
|
37
|
+
"aria-label": "Cytario Logo",
|
|
38
|
+
width,
|
|
39
|
+
height,
|
|
40
|
+
viewBox: `0 0 ${W} ${H}`,
|
|
41
|
+
className,
|
|
42
|
+
style,
|
|
43
|
+
children: Object.entries(paths).map(([key, d], i) => /* @__PURE__ */ jsx(
|
|
44
|
+
"path",
|
|
45
|
+
{
|
|
46
|
+
d,
|
|
47
|
+
"aria-hidden": "true",
|
|
48
|
+
style: {
|
|
49
|
+
fill: key === "o" ? "var(--logo-highlight)" : void 0,
|
|
50
|
+
animation: "logo-fade-in 0.4s ease-out both",
|
|
51
|
+
animationDelay: `${i * 0.06}s`
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
key
|
|
55
|
+
))
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
10
60
|
// src/components/Button/Button.tsx
|
|
11
61
|
import {
|
|
12
62
|
Button as AriaButton,
|
|
@@ -93,6 +143,7 @@ import {
|
|
|
93
143
|
AlignRight,
|
|
94
144
|
Archive,
|
|
95
145
|
ArrowDown,
|
|
146
|
+
ArrowLeft,
|
|
96
147
|
ArrowRight,
|
|
97
148
|
ArrowUp,
|
|
98
149
|
ArrowUpRight,
|
|
@@ -101,6 +152,7 @@ import {
|
|
|
101
152
|
BookmarkCheck,
|
|
102
153
|
Braces,
|
|
103
154
|
Building2,
|
|
155
|
+
Calendar,
|
|
104
156
|
Check,
|
|
105
157
|
CheckCircle,
|
|
106
158
|
CheckCircle2,
|
|
@@ -150,6 +202,7 @@ import {
|
|
|
150
202
|
Mail,
|
|
151
203
|
MapPin,
|
|
152
204
|
Maximize,
|
|
205
|
+
Menu,
|
|
153
206
|
Microscope,
|
|
154
207
|
Minus,
|
|
155
208
|
MoreVertical,
|
|
@@ -191,6 +244,54 @@ import {
|
|
|
191
244
|
ZoomIn,
|
|
192
245
|
ZoomOut
|
|
193
246
|
} from "lucide-react";
|
|
247
|
+
|
|
248
|
+
// src/components/Icon/icons/LinkedinIcon.tsx
|
|
249
|
+
import { forwardRef } from "react";
|
|
250
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
251
|
+
var LinkedinIcon = forwardRef(
|
|
252
|
+
function LinkedinIcon2({ size = 24, className, ...props }, ref) {
|
|
253
|
+
return /* @__PURE__ */ jsx2(
|
|
254
|
+
"svg",
|
|
255
|
+
{
|
|
256
|
+
ref,
|
|
257
|
+
width: size,
|
|
258
|
+
height: size,
|
|
259
|
+
viewBox: "0 0 24 24",
|
|
260
|
+
fill: "currentColor",
|
|
261
|
+
className,
|
|
262
|
+
"aria-hidden": "true",
|
|
263
|
+
focusable: false,
|
|
264
|
+
...props,
|
|
265
|
+
children: /* @__PURE__ */ jsx2("path", { d: "M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.063 2.063 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" })
|
|
266
|
+
}
|
|
267
|
+
);
|
|
268
|
+
}
|
|
269
|
+
);
|
|
270
|
+
|
|
271
|
+
// src/components/Icon/icons/GithubIcon.tsx
|
|
272
|
+
import { forwardRef as forwardRef2 } from "react";
|
|
273
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
274
|
+
var GithubIcon = forwardRef2(
|
|
275
|
+
function GithubIcon2({ size = 24, className, ...props }, ref) {
|
|
276
|
+
return /* @__PURE__ */ jsx3(
|
|
277
|
+
"svg",
|
|
278
|
+
{
|
|
279
|
+
ref,
|
|
280
|
+
width: size,
|
|
281
|
+
height: size,
|
|
282
|
+
viewBox: "0 0 24 24",
|
|
283
|
+
fill: "currentColor",
|
|
284
|
+
className,
|
|
285
|
+
"aria-hidden": "true",
|
|
286
|
+
focusable: false,
|
|
287
|
+
...props,
|
|
288
|
+
children: /* @__PURE__ */ jsx3("path", { d: "M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" })
|
|
289
|
+
}
|
|
290
|
+
);
|
|
291
|
+
}
|
|
292
|
+
);
|
|
293
|
+
|
|
294
|
+
// src/components/Icon/icon-registry.ts
|
|
194
295
|
var iconRegistry = {
|
|
195
296
|
AlertCircle,
|
|
196
297
|
AlertTriangle,
|
|
@@ -199,6 +300,7 @@ var iconRegistry = {
|
|
|
199
300
|
AlignRight,
|
|
200
301
|
Archive,
|
|
201
302
|
ArrowDown,
|
|
303
|
+
ArrowLeft,
|
|
202
304
|
ArrowRight,
|
|
203
305
|
ArrowUp,
|
|
204
306
|
ArrowUpRight,
|
|
@@ -207,6 +309,7 @@ var iconRegistry = {
|
|
|
207
309
|
BookmarkCheck,
|
|
208
310
|
Braces,
|
|
209
311
|
Building2,
|
|
312
|
+
Calendar,
|
|
210
313
|
Check,
|
|
211
314
|
CheckCircle,
|
|
212
315
|
CheckCircle2,
|
|
@@ -237,6 +340,7 @@ var iconRegistry = {
|
|
|
237
340
|
FolderPlus,
|
|
238
341
|
FolderTree,
|
|
239
342
|
Fullscreen,
|
|
343
|
+
Github: GithubIcon,
|
|
240
344
|
Grid2x2,
|
|
241
345
|
Grid3x3,
|
|
242
346
|
Heart,
|
|
@@ -250,12 +354,14 @@ var iconRegistry = {
|
|
|
250
354
|
Layers2,
|
|
251
355
|
LayoutDashboard,
|
|
252
356
|
LayoutGrid,
|
|
357
|
+
Linkedin: LinkedinIcon,
|
|
253
358
|
List,
|
|
254
359
|
ListFilter,
|
|
255
360
|
LogOut,
|
|
256
361
|
Mail,
|
|
257
362
|
MapPin,
|
|
258
363
|
Maximize,
|
|
364
|
+
Menu,
|
|
259
365
|
Microscope,
|
|
260
366
|
Minus,
|
|
261
367
|
MoreVertical,
|
|
@@ -299,7 +405,7 @@ var iconRegistry = {
|
|
|
299
405
|
};
|
|
300
406
|
|
|
301
407
|
// src/components/Icon/Icon.tsx
|
|
302
|
-
import { jsx } from "react/jsx-runtime";
|
|
408
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
303
409
|
var sizeMap = {
|
|
304
410
|
xs: 14,
|
|
305
411
|
sm: 16,
|
|
@@ -314,7 +420,7 @@ function Icon({
|
|
|
314
420
|
className
|
|
315
421
|
}) {
|
|
316
422
|
const Component = typeof icon === "string" ? iconRegistry[icon] : icon;
|
|
317
|
-
return /* @__PURE__ */
|
|
423
|
+
return /* @__PURE__ */ jsx4(
|
|
318
424
|
Component,
|
|
319
425
|
{
|
|
320
426
|
size: sizeMap[size],
|
|
@@ -328,7 +434,7 @@ function Icon({
|
|
|
328
434
|
|
|
329
435
|
// src/components/Spinner/Spinner.tsx
|
|
330
436
|
import { twMerge as twMerge2 } from "tailwind-merge";
|
|
331
|
-
import { jsx as
|
|
437
|
+
import { jsx as jsx5, jsxs } from "react/jsx-runtime";
|
|
332
438
|
function Spinner({
|
|
333
439
|
size = "md",
|
|
334
440
|
"aria-label": ariaLabel,
|
|
@@ -347,7 +453,7 @@ function Spinner({
|
|
|
347
453
|
width: sizeMap[size],
|
|
348
454
|
height: sizeMap[size],
|
|
349
455
|
children: [
|
|
350
|
-
/* @__PURE__ */
|
|
456
|
+
/* @__PURE__ */ jsx5(
|
|
351
457
|
"circle",
|
|
352
458
|
{
|
|
353
459
|
className: "opacity-25",
|
|
@@ -358,7 +464,7 @@ function Spinner({
|
|
|
358
464
|
strokeWidth: "4"
|
|
359
465
|
}
|
|
360
466
|
),
|
|
361
|
-
/* @__PURE__ */
|
|
467
|
+
/* @__PURE__ */ jsx5(
|
|
362
468
|
"path",
|
|
363
469
|
{
|
|
364
470
|
className: "opacity-75",
|
|
@@ -372,7 +478,7 @@ function Spinner({
|
|
|
372
478
|
}
|
|
373
479
|
|
|
374
480
|
// src/components/Button/Button.tsx
|
|
375
|
-
import { jsx as
|
|
481
|
+
import { jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
376
482
|
var buttonBaseClass = `
|
|
377
483
|
inline-flex items-center justify-center gap-2 shrink-0 cursor-pointer
|
|
378
484
|
rounded-full
|
|
@@ -402,19 +508,126 @@ function ButtonBase({
|
|
|
402
508
|
className
|
|
403
509
|
);
|
|
404
510
|
return /* @__PURE__ */ jsxs2(Component, { ...props, isDisabled: isDisabled || isLoading, className: cx, children: [
|
|
405
|
-
isLoading && /* @__PURE__ */
|
|
406
|
-
!isLoading && iconLeft && /* @__PURE__ */
|
|
511
|
+
isLoading && /* @__PURE__ */ jsx6(Spinner, { size }),
|
|
512
|
+
!isLoading && iconLeft && /* @__PURE__ */ jsx6(Icon, { icon: iconLeft, size }),
|
|
407
513
|
children,
|
|
408
|
-
!isLoading && iconRight && /* @__PURE__ */
|
|
514
|
+
!isLoading && iconRight && /* @__PURE__ */ jsx6(Icon, { icon: iconRight, size })
|
|
409
515
|
] });
|
|
410
516
|
}
|
|
411
517
|
function Button(props) {
|
|
412
|
-
return /* @__PURE__ */
|
|
518
|
+
return /* @__PURE__ */ jsx6(ButtonBase, { as: AriaButton, ...props });
|
|
413
519
|
}
|
|
414
520
|
function ButtonLink(props) {
|
|
415
|
-
return /* @__PURE__ */
|
|
521
|
+
return /* @__PURE__ */ jsx6(ButtonBase, { as: AriaLink, ...props });
|
|
416
522
|
}
|
|
417
523
|
|
|
524
|
+
// src/components/Heading/Heading.tsx
|
|
525
|
+
import { forwardRef as forwardRef3 } from "react";
|
|
526
|
+
import { twMerge as twMerge4 } from "tailwind-merge";
|
|
527
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
528
|
+
var sizeMap2 = {
|
|
529
|
+
h1: "text-4xl sm:text-5xl leading-tight font-bold",
|
|
530
|
+
h2: "text-2xl sm:text-3xl leading-tight font-bold",
|
|
531
|
+
h3: "text-lg sm:text-xl leading-snug font-bold",
|
|
532
|
+
h4: "text-base sm:text-lg font-semibold",
|
|
533
|
+
h5: "text-sm sm:text-base font-semibold",
|
|
534
|
+
h6: "text-sm font-semibold",
|
|
535
|
+
hero: "text-4xl sm:text-5xl lg:text-6xl leading-tight font-bold"
|
|
536
|
+
};
|
|
537
|
+
var Heading = forwardRef3(
|
|
538
|
+
function Heading2({ as: Tag2 = "h2", size, className, children, ...rest }, ref) {
|
|
539
|
+
const resolvedSize = size ?? Tag2;
|
|
540
|
+
const cx = twMerge4("text-inherit mb-4", sizeMap2[resolvedSize], className);
|
|
541
|
+
return /* @__PURE__ */ jsx7(Tag2, { ref, className: cx, ...rest, children });
|
|
542
|
+
}
|
|
543
|
+
);
|
|
544
|
+
var H1 = forwardRef3(
|
|
545
|
+
function H12(props, ref) {
|
|
546
|
+
return /* @__PURE__ */ jsx7(Heading, { ...props, ref, as: "h1" });
|
|
547
|
+
}
|
|
548
|
+
);
|
|
549
|
+
var H2 = forwardRef3(
|
|
550
|
+
function H22(props, ref) {
|
|
551
|
+
return /* @__PURE__ */ jsx7(Heading, { ...props, ref, as: "h2" });
|
|
552
|
+
}
|
|
553
|
+
);
|
|
554
|
+
var H3 = forwardRef3(
|
|
555
|
+
function H32(props, ref) {
|
|
556
|
+
return /* @__PURE__ */ jsx7(Heading, { ...props, ref, as: "h3" });
|
|
557
|
+
}
|
|
558
|
+
);
|
|
559
|
+
var H4 = forwardRef3(
|
|
560
|
+
function H42(props, ref) {
|
|
561
|
+
return /* @__PURE__ */ jsx7(Heading, { ...props, ref, as: "h4" });
|
|
562
|
+
}
|
|
563
|
+
);
|
|
564
|
+
var H5 = forwardRef3(
|
|
565
|
+
function H52(props, ref) {
|
|
566
|
+
return /* @__PURE__ */ jsx7(Heading, { ...props, ref, as: "h5" });
|
|
567
|
+
}
|
|
568
|
+
);
|
|
569
|
+
var H6 = forwardRef3(
|
|
570
|
+
function H62(props, ref) {
|
|
571
|
+
return /* @__PURE__ */ jsx7(Heading, { ...props, ref, as: "h6" });
|
|
572
|
+
}
|
|
573
|
+
);
|
|
574
|
+
|
|
575
|
+
// src/components/Prose/Prose.tsx
|
|
576
|
+
import { forwardRef as forwardRef4 } from "react";
|
|
577
|
+
import { twMerge as twMerge5 } from "tailwind-merge";
|
|
578
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
579
|
+
var sizeClasses = {
|
|
580
|
+
sm: "prose-sm",
|
|
581
|
+
default: "prose",
|
|
582
|
+
lg: "prose-lg",
|
|
583
|
+
xl: "prose-xl"
|
|
584
|
+
};
|
|
585
|
+
var Prose = forwardRef4(function Prose2({ size = "default", invert = false, className, children, ...rest }, ref) {
|
|
586
|
+
return /* @__PURE__ */ jsx8(
|
|
587
|
+
"div",
|
|
588
|
+
{
|
|
589
|
+
ref,
|
|
590
|
+
className: twMerge5(
|
|
591
|
+
"prose",
|
|
592
|
+
sizeClasses[size],
|
|
593
|
+
invert && "prose-invert",
|
|
594
|
+
"max-w-none",
|
|
595
|
+
className
|
|
596
|
+
),
|
|
597
|
+
...rest,
|
|
598
|
+
children
|
|
599
|
+
}
|
|
600
|
+
);
|
|
601
|
+
});
|
|
602
|
+
|
|
603
|
+
// src/components/Description/Description.tsx
|
|
604
|
+
import { forwardRef as forwardRef5 } from "react";
|
|
605
|
+
import { twMerge as twMerge6 } from "tailwind-merge";
|
|
606
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
607
|
+
var sizeClasses2 = {
|
|
608
|
+
sm: "text-sm md:text-base",
|
|
609
|
+
md: "text-base md:text-lg",
|
|
610
|
+
lg: "text-lg md:text-xl",
|
|
611
|
+
xl: "text-xl md:text-2xl"
|
|
612
|
+
};
|
|
613
|
+
var Description = forwardRef5(
|
|
614
|
+
function Description2({ size = "md", className, children, ...rest }, ref) {
|
|
615
|
+
return /* @__PURE__ */ jsx9(
|
|
616
|
+
"p",
|
|
617
|
+
{
|
|
618
|
+
ref,
|
|
619
|
+
className: twMerge6(
|
|
620
|
+
"text-pretty text-muted-foreground mb-4",
|
|
621
|
+
sizeClasses2[size],
|
|
622
|
+
className
|
|
623
|
+
),
|
|
624
|
+
...rest,
|
|
625
|
+
children
|
|
626
|
+
}
|
|
627
|
+
);
|
|
628
|
+
}
|
|
629
|
+
);
|
|
630
|
+
|
|
418
631
|
// src/components/Tooltip/Tooltip.tsx
|
|
419
632
|
import {
|
|
420
633
|
useEffect,
|
|
@@ -423,7 +636,7 @@ import {
|
|
|
423
636
|
useState
|
|
424
637
|
} from "react";
|
|
425
638
|
import { createPortal } from "react-dom";
|
|
426
|
-
import { jsx as
|
|
639
|
+
import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
427
640
|
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
|
|
428
641
|
var offsetThreshold = 5;
|
|
429
642
|
var tooltipDelay = 500;
|
|
@@ -516,7 +729,7 @@ function Tooltip({ content, children }) {
|
|
|
516
729
|
if (timerRef.current) clearTimeout(timerRef.current);
|
|
517
730
|
};
|
|
518
731
|
}, []);
|
|
519
|
-
const tooltipContent = isVisible && content != null ? /* @__PURE__ */
|
|
732
|
+
const tooltipContent = isVisible && content != null ? /* @__PURE__ */ jsx10(
|
|
520
733
|
"div",
|
|
521
734
|
{
|
|
522
735
|
ref: tooltipRef,
|
|
@@ -636,7 +849,7 @@ function useOverflowDetection(ref) {
|
|
|
636
849
|
}
|
|
637
850
|
|
|
638
851
|
// src/components/TruncatedText/TruncatedText.tsx
|
|
639
|
-
import { jsx as
|
|
852
|
+
import { jsx as jsx11, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
640
853
|
var spanCx = "truncate overflow-hidden whitespace-nowrap block min-w-0 w-full";
|
|
641
854
|
var copyCx = "hover:bg-accent transition-colors rounded cursor-pointer";
|
|
642
855
|
var leftStyle = { direction: "rtl", textAlign: "left" };
|
|
@@ -649,7 +862,7 @@ var handleCopyKeyDown = (handleClick) => (e) => {
|
|
|
649
862
|
handleClick();
|
|
650
863
|
}
|
|
651
864
|
};
|
|
652
|
-
var CopiedOverlay = () => /* @__PURE__ */
|
|
865
|
+
var CopiedOverlay = () => /* @__PURE__ */ jsx11(
|
|
653
866
|
"span",
|
|
654
867
|
{
|
|
655
868
|
role: "status",
|
|
@@ -665,7 +878,7 @@ var RightEllipsis = ({ children, copyValue }) => {
|
|
|
665
878
|
const isCopyable = copyValue != null;
|
|
666
879
|
const baseCx = isCopyable ? `${spanCx} ${copyCx} relative` : spanCx;
|
|
667
880
|
const cx = isCopied ? `${baseCx} text-transparent` : baseCx;
|
|
668
|
-
return /* @__PURE__ */
|
|
881
|
+
return /* @__PURE__ */ jsx11(Tooltip, { content: isTruncated ? children : null, children: /* @__PURE__ */ jsxs4(
|
|
669
882
|
"span",
|
|
670
883
|
{
|
|
671
884
|
ref,
|
|
@@ -677,7 +890,7 @@ var RightEllipsis = ({ children, copyValue }) => {
|
|
|
677
890
|
tabIndex: isCopyable ? 0 : void 0,
|
|
678
891
|
children: [
|
|
679
892
|
children,
|
|
680
|
-
isCopied && /* @__PURE__ */
|
|
893
|
+
isCopied && /* @__PURE__ */ jsx11(CopiedOverlay, {})
|
|
681
894
|
]
|
|
682
895
|
}
|
|
683
896
|
) });
|
|
@@ -689,7 +902,7 @@ var LeftEllipsis = ({ children, copyValue }) => {
|
|
|
689
902
|
const isCopyable = copyValue != null;
|
|
690
903
|
const baseCx = isCopyable ? `${spanCx} ${copyCx} relative` : spanCx;
|
|
691
904
|
const cx = isCopied ? `${baseCx} text-transparent` : baseCx;
|
|
692
|
-
return /* @__PURE__ */
|
|
905
|
+
return /* @__PURE__ */ jsx11(Tooltip, { content: isTruncated ? children : null, children: /* @__PURE__ */ jsxs4(
|
|
693
906
|
"span",
|
|
694
907
|
{
|
|
695
908
|
ref,
|
|
@@ -701,8 +914,8 @@ var LeftEllipsis = ({ children, copyValue }) => {
|
|
|
701
914
|
role: isCopyable ? "button" : void 0,
|
|
702
915
|
tabIndex: isCopyable ? 0 : void 0,
|
|
703
916
|
children: [
|
|
704
|
-
/* @__PURE__ */
|
|
705
|
-
isCopied && /* @__PURE__ */
|
|
917
|
+
/* @__PURE__ */ jsx11("bdi", { children }),
|
|
918
|
+
isCopied && /* @__PURE__ */ jsx11(CopiedOverlay, {})
|
|
706
919
|
]
|
|
707
920
|
}
|
|
708
921
|
) });
|
|
@@ -716,7 +929,7 @@ var MiddleEllipsisString = ({ text, copyValue }) => {
|
|
|
716
929
|
const isCopyable = copyValue != null;
|
|
717
930
|
const baseCx = isCopyable ? `${middleCx} ${copyCx} relative` : middleCx;
|
|
718
931
|
const cx = isCopied ? `${baseCx} text-transparent` : baseCx;
|
|
719
|
-
return /* @__PURE__ */
|
|
932
|
+
return /* @__PURE__ */ jsx11(Tooltip, { content: isTruncated ? text : null, children: /* @__PURE__ */ jsxs4(
|
|
720
933
|
"span",
|
|
721
934
|
{
|
|
722
935
|
ref,
|
|
@@ -729,16 +942,16 @@ var MiddleEllipsisString = ({ text, copyValue }) => {
|
|
|
729
942
|
tabIndex: isCopyable ? 0 : void 0,
|
|
730
943
|
children: [
|
|
731
944
|
displayed,
|
|
732
|
-
isCopied && /* @__PURE__ */
|
|
945
|
+
isCopied && /* @__PURE__ */ jsx11(CopiedOverlay, {})
|
|
733
946
|
]
|
|
734
947
|
}
|
|
735
948
|
) });
|
|
736
949
|
};
|
|
737
950
|
var TruncatedText = ({ children, ellipsis = "right", copyValue }) => {
|
|
738
|
-
if (ellipsis === "left") return /* @__PURE__ */
|
|
951
|
+
if (ellipsis === "left") return /* @__PURE__ */ jsx11(LeftEllipsis, { copyValue, children });
|
|
739
952
|
if (ellipsis === "middle" && typeof children === "string")
|
|
740
|
-
return /* @__PURE__ */
|
|
741
|
-
return /* @__PURE__ */
|
|
953
|
+
return /* @__PURE__ */ jsx11(MiddleEllipsisString, { text: children, copyValue });
|
|
954
|
+
return /* @__PURE__ */ jsx11(RightEllipsis, { copyValue, children });
|
|
742
955
|
};
|
|
743
956
|
|
|
744
957
|
// src/components/IconButton/IconButton.tsx
|
|
@@ -747,8 +960,8 @@ import {
|
|
|
747
960
|
Link as AriaLink2,
|
|
748
961
|
ToggleButton as AriaToggleButton
|
|
749
962
|
} from "react-aria-components";
|
|
750
|
-
import { twMerge as
|
|
751
|
-
import { jsx as
|
|
963
|
+
import { twMerge as twMerge7 } from "tailwind-merge";
|
|
964
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
752
965
|
var squareSizeStyles = {
|
|
753
966
|
xs: "h-7 w-7",
|
|
754
967
|
// 28px
|
|
@@ -771,7 +984,7 @@ function IconButtonBase({
|
|
|
771
984
|
ref,
|
|
772
985
|
...props
|
|
773
986
|
}) {
|
|
774
|
-
const cx =
|
|
987
|
+
const cx = twMerge7(
|
|
775
988
|
buttonBaseClass,
|
|
776
989
|
isLoading ? "pointer-events-none" : "",
|
|
777
990
|
variantStyles[variant],
|
|
@@ -780,7 +993,7 @@ function IconButtonBase({
|
|
|
780
993
|
squareSizeStyles[size],
|
|
781
994
|
className
|
|
782
995
|
);
|
|
783
|
-
return /* @__PURE__ */
|
|
996
|
+
return /* @__PURE__ */ jsx12(Tooltip, { content: label, children: /* @__PURE__ */ jsx12(
|
|
784
997
|
Component,
|
|
785
998
|
{
|
|
786
999
|
...props,
|
|
@@ -788,18 +1001,18 @@ function IconButtonBase({
|
|
|
788
1001
|
"aria-label": label,
|
|
789
1002
|
isDisabled: isDisabled || isLoading,
|
|
790
1003
|
className: cx,
|
|
791
|
-
children: isLoading ? /* @__PURE__ */
|
|
1004
|
+
children: isLoading ? /* @__PURE__ */ jsx12(Spinner, { size }) : /* @__PURE__ */ jsx12(Icon, { icon, size })
|
|
792
1005
|
}
|
|
793
1006
|
) });
|
|
794
1007
|
}
|
|
795
1008
|
function IconButton(props) {
|
|
796
|
-
return /* @__PURE__ */
|
|
1009
|
+
return /* @__PURE__ */ jsx12(IconButtonBase, { as: AriaButton2, ...props });
|
|
797
1010
|
}
|
|
798
1011
|
function IconButtonLink(props) {
|
|
799
|
-
return /* @__PURE__ */
|
|
1012
|
+
return /* @__PURE__ */ jsx12(IconButtonBase, { as: AriaLink2, ...props });
|
|
800
1013
|
}
|
|
801
1014
|
function IconButtonToggle(props) {
|
|
802
|
-
return /* @__PURE__ */
|
|
1015
|
+
return /* @__PURE__ */ jsx12(IconButtonBase, { as: AriaToggleButton, ...props });
|
|
803
1016
|
}
|
|
804
1017
|
|
|
805
1018
|
// src/components/Form/Input/Input.tsx
|
|
@@ -808,13 +1021,13 @@ import {
|
|
|
808
1021
|
Input as AriaInput,
|
|
809
1022
|
Text
|
|
810
1023
|
} from "react-aria-components";
|
|
811
|
-
import { twMerge as
|
|
1024
|
+
import { twMerge as twMerge8 } from "tailwind-merge";
|
|
812
1025
|
|
|
813
1026
|
// src/components/Form/Label/Label.tsx
|
|
814
1027
|
import {
|
|
815
1028
|
Label as AriaLabel
|
|
816
1029
|
} from "react-aria-components";
|
|
817
|
-
import { jsx as
|
|
1030
|
+
import { jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
818
1031
|
function Label({ isRequired, children, className, ...props }) {
|
|
819
1032
|
return /* @__PURE__ */ jsxs5(
|
|
820
1033
|
AriaLabel,
|
|
@@ -828,7 +1041,7 @@ function Label({ isRequired, children, className, ...props }) {
|
|
|
828
1041
|
].filter(Boolean).join(" "),
|
|
829
1042
|
children: [
|
|
830
1043
|
children,
|
|
831
|
-
isRequired && /* @__PURE__ */
|
|
1044
|
+
isRequired && /* @__PURE__ */ jsx13(
|
|
832
1045
|
"span",
|
|
833
1046
|
{
|
|
834
1047
|
"aria-hidden": "true",
|
|
@@ -842,7 +1055,7 @@ function Label({ isRequired, children, className, ...props }) {
|
|
|
842
1055
|
}
|
|
843
1056
|
|
|
844
1057
|
// src/components/Form/Input/Input.tsx
|
|
845
|
-
import { jsx as
|
|
1058
|
+
import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
846
1059
|
var alignClasses = {
|
|
847
1060
|
left: "text-left",
|
|
848
1061
|
center: "text-center",
|
|
@@ -875,13 +1088,13 @@ function Input({
|
|
|
875
1088
|
isDisabled,
|
|
876
1089
|
isRequired,
|
|
877
1090
|
isInvalid,
|
|
878
|
-
className:
|
|
1091
|
+
className: twMerge8("flex w-full flex-col gap-1", className),
|
|
879
1092
|
children: [
|
|
880
|
-
label && /* @__PURE__ */
|
|
1093
|
+
label && /* @__PURE__ */ jsx14(Label, { isRequired, children: label }),
|
|
881
1094
|
prefix ? /* @__PURE__ */ jsxs6(
|
|
882
1095
|
"div",
|
|
883
1096
|
{
|
|
884
|
-
className:
|
|
1097
|
+
className: twMerge8(
|
|
885
1098
|
"flex items-center overflow-hidden",
|
|
886
1099
|
radiusClass,
|
|
887
1100
|
"border",
|
|
@@ -892,10 +1105,10 @@ function Input({
|
|
|
892
1105
|
isDisabled && "opacity-50 pointer-events-none"
|
|
893
1106
|
),
|
|
894
1107
|
children: [
|
|
895
|
-
/* @__PURE__ */
|
|
1108
|
+
/* @__PURE__ */ jsx14(
|
|
896
1109
|
"span",
|
|
897
1110
|
{
|
|
898
|
-
className:
|
|
1111
|
+
className: twMerge8(
|
|
899
1112
|
"self-stretch flex items-center shrink-0 select-none",
|
|
900
1113
|
"bg-card",
|
|
901
1114
|
"border-r border-r-border",
|
|
@@ -905,11 +1118,11 @@ function Input({
|
|
|
905
1118
|
children: prefix
|
|
906
1119
|
}
|
|
907
1120
|
),
|
|
908
|
-
/* @__PURE__ */
|
|
1121
|
+
/* @__PURE__ */ jsx14(
|
|
909
1122
|
AriaInput,
|
|
910
1123
|
{
|
|
911
1124
|
placeholder,
|
|
912
|
-
className:
|
|
1125
|
+
className: twMerge8(
|
|
913
1126
|
"w-full bg-transparent",
|
|
914
1127
|
sizeStyles[size],
|
|
915
1128
|
alignClasses[align],
|
|
@@ -921,11 +1134,11 @@ function Input({
|
|
|
921
1134
|
)
|
|
922
1135
|
]
|
|
923
1136
|
}
|
|
924
|
-
) : /* @__PURE__ */
|
|
1137
|
+
) : /* @__PURE__ */ jsx14(
|
|
925
1138
|
AriaInput,
|
|
926
1139
|
{
|
|
927
1140
|
placeholder,
|
|
928
|
-
className:
|
|
1141
|
+
className: twMerge8(
|
|
929
1142
|
"w-full",
|
|
930
1143
|
sizeStyles[size],
|
|
931
1144
|
alignClasses[align],
|
|
@@ -941,8 +1154,8 @@ function Input({
|
|
|
941
1154
|
)
|
|
942
1155
|
}
|
|
943
1156
|
),
|
|
944
|
-
description && /* @__PURE__ */
|
|
945
|
-
isInvalid && /* @__PURE__ */
|
|
1157
|
+
description && /* @__PURE__ */ jsx14(Text, { slot: "description", className: "text-sm text-muted-foreground", children: description }),
|
|
1158
|
+
isInvalid && /* @__PURE__ */ jsx14(
|
|
946
1159
|
Text,
|
|
947
1160
|
{
|
|
948
1161
|
slot: "errorMessage",
|
|
@@ -957,11 +1170,11 @@ function Input({
|
|
|
957
1170
|
}
|
|
958
1171
|
|
|
959
1172
|
// src/components/Form/InputPassword/InputPassword.tsx
|
|
960
|
-
import { forwardRef, useId, useState as useState5 } from "react";
|
|
1173
|
+
import { forwardRef as forwardRef6, useId, useState as useState5 } from "react";
|
|
961
1174
|
import { Eye as Eye2, EyeOff as EyeOff2 } from "lucide-react";
|
|
962
|
-
import { twMerge as
|
|
963
|
-
import { jsx as
|
|
964
|
-
var InputPassword =
|
|
1175
|
+
import { twMerge as twMerge9 } from "tailwind-merge";
|
|
1176
|
+
import { jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1177
|
+
var InputPassword = forwardRef6(
|
|
965
1178
|
function InputPassword2({
|
|
966
1179
|
label,
|
|
967
1180
|
description,
|
|
@@ -986,7 +1199,7 @@ var InputPassword = forwardRef(
|
|
|
986
1199
|
const errId = isInvalid ? `${inputId}-error` : void 0;
|
|
987
1200
|
const describedBy = [descId, errId, ariaDescribedByProp].filter(Boolean).join(" ") || void 0;
|
|
988
1201
|
const toggleDisabled = isToggleDisabled ?? isDisabled;
|
|
989
|
-
return /* @__PURE__ */ jsxs7("div", { className:
|
|
1202
|
+
return /* @__PURE__ */ jsxs7("div", { className: twMerge9("flex w-full flex-col gap-1", className), children: [
|
|
990
1203
|
label && /* @__PURE__ */ jsxs7(
|
|
991
1204
|
"label",
|
|
992
1205
|
{
|
|
@@ -994,14 +1207,14 @@ var InputPassword = forwardRef(
|
|
|
994
1207
|
className: "text-sm font-medium text-foreground",
|
|
995
1208
|
children: [
|
|
996
1209
|
label,
|
|
997
|
-
isRequired && /* @__PURE__ */
|
|
1210
|
+
isRequired && /* @__PURE__ */ jsx15("span", { "aria-hidden": "true", className: "ml-0.5 text-destructive", children: "*" })
|
|
998
1211
|
]
|
|
999
1212
|
}
|
|
1000
1213
|
),
|
|
1001
1214
|
/* @__PURE__ */ jsxs7(
|
|
1002
1215
|
"div",
|
|
1003
1216
|
{
|
|
1004
|
-
className:
|
|
1217
|
+
className: twMerge9(
|
|
1005
1218
|
"flex items-center overflow-hidden rounded-md border bg-background",
|
|
1006
1219
|
"outline-none transition-colors",
|
|
1007
1220
|
isInvalid ? "border-destructive-border" : "border-border",
|
|
@@ -1009,7 +1222,7 @@ var InputPassword = forwardRef(
|
|
|
1009
1222
|
isDisabled && "opacity-50 pointer-events-none"
|
|
1010
1223
|
),
|
|
1011
1224
|
children: [
|
|
1012
|
-
/* @__PURE__ */
|
|
1225
|
+
/* @__PURE__ */ jsx15(
|
|
1013
1226
|
"input",
|
|
1014
1227
|
{
|
|
1015
1228
|
...inputProps,
|
|
@@ -1020,7 +1233,7 @@ var InputPassword = forwardRef(
|
|
|
1020
1233
|
disabled: isDisabled,
|
|
1021
1234
|
"aria-invalid": isInvalid || ariaInvalidProp,
|
|
1022
1235
|
"aria-describedby": describedBy,
|
|
1023
|
-
className:
|
|
1236
|
+
className: twMerge9(
|
|
1024
1237
|
"w-full bg-transparent text-foreground",
|
|
1025
1238
|
"placeholder:text-muted-foreground",
|
|
1026
1239
|
"outline-none border-none",
|
|
@@ -1028,7 +1241,7 @@ var InputPassword = forwardRef(
|
|
|
1028
1241
|
)
|
|
1029
1242
|
}
|
|
1030
1243
|
),
|
|
1031
|
-
/* @__PURE__ */
|
|
1244
|
+
/* @__PURE__ */ jsx15(
|
|
1032
1245
|
"button",
|
|
1033
1246
|
{
|
|
1034
1247
|
type: "button",
|
|
@@ -1036,20 +1249,20 @@ var InputPassword = forwardRef(
|
|
|
1036
1249
|
disabled: toggleDisabled,
|
|
1037
1250
|
tabIndex: toggleDisabled ? -1 : void 0,
|
|
1038
1251
|
onClick: () => setVisible((v) => !v),
|
|
1039
|
-
className:
|
|
1252
|
+
className: twMerge9(
|
|
1040
1253
|
"flex items-center justify-center shrink-0 self-stretch px-3 cursor-pointer",
|
|
1041
1254
|
"text-muted-foreground hover:text-foreground transition-colors",
|
|
1042
1255
|
"outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset",
|
|
1043
1256
|
"disabled:cursor-not-allowed disabled:opacity-50"
|
|
1044
1257
|
),
|
|
1045
|
-
children: /* @__PURE__ */
|
|
1258
|
+
children: /* @__PURE__ */ jsx15(Icon, { icon: visible ? EyeOff2 : Eye2, size: "sm" })
|
|
1046
1259
|
}
|
|
1047
1260
|
)
|
|
1048
1261
|
]
|
|
1049
1262
|
}
|
|
1050
1263
|
),
|
|
1051
|
-
description && /* @__PURE__ */
|
|
1052
|
-
isInvalid && /* @__PURE__ */
|
|
1264
|
+
description && /* @__PURE__ */ jsx15("p", { id: descId, className: "text-sm text-muted-foreground", children: description }),
|
|
1265
|
+
isInvalid && /* @__PURE__ */ jsx15("p", { id: errId, role: "alert", className: "text-sm text-destructive", children: errorMessage })
|
|
1053
1266
|
] });
|
|
1054
1267
|
}
|
|
1055
1268
|
);
|
|
@@ -1065,8 +1278,8 @@ import {
|
|
|
1065
1278
|
SelectValue,
|
|
1066
1279
|
Text as Text2
|
|
1067
1280
|
} from "react-aria-components";
|
|
1068
|
-
import { twMerge as
|
|
1069
|
-
import { Fragment, jsx as
|
|
1281
|
+
import { twMerge as twMerge10 } from "tailwind-merge";
|
|
1282
|
+
import { Fragment, jsx as jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1070
1283
|
function Select({
|
|
1071
1284
|
label,
|
|
1072
1285
|
items,
|
|
@@ -1088,14 +1301,14 @@ function Select({
|
|
|
1088
1301
|
isDisabled,
|
|
1089
1302
|
isRequired,
|
|
1090
1303
|
isInvalid: hasError,
|
|
1091
|
-
className:
|
|
1304
|
+
className: twMerge10("flex flex-col gap-1", className),
|
|
1092
1305
|
children: [
|
|
1093
|
-
label && /* @__PURE__ */
|
|
1306
|
+
label && /* @__PURE__ */ jsx16(Label, { isRequired, children: label }),
|
|
1094
1307
|
/* @__PURE__ */ jsxs8(
|
|
1095
1308
|
Button2,
|
|
1096
1309
|
{
|
|
1097
1310
|
"aria-required": isRequired || void 0,
|
|
1098
|
-
className:
|
|
1311
|
+
className: twMerge10(
|
|
1099
1312
|
`
|
|
1100
1313
|
inline-flex items-center justify-between
|
|
1101
1314
|
w-full rounded-md
|
|
@@ -1109,10 +1322,10 @@ function Select({
|
|
|
1109
1322
|
hasError ? "border-destructive-border" : "border-border"
|
|
1110
1323
|
),
|
|
1111
1324
|
children: [
|
|
1112
|
-
/* @__PURE__ */
|
|
1325
|
+
/* @__PURE__ */ jsx16(
|
|
1113
1326
|
SelectValue,
|
|
1114
1327
|
{
|
|
1115
|
-
className:
|
|
1328
|
+
className: twMerge10(
|
|
1116
1329
|
renderItem ? "min-w-0" : "truncate",
|
|
1117
1330
|
"data-placeholder:text-muted-foreground"
|
|
1118
1331
|
),
|
|
@@ -1123,11 +1336,11 @@ function Select({
|
|
|
1123
1336
|
}
|
|
1124
1337
|
}
|
|
1125
1338
|
),
|
|
1126
|
-
/* @__PURE__ */
|
|
1339
|
+
/* @__PURE__ */ jsx16(
|
|
1127
1340
|
ChevronDown2,
|
|
1128
1341
|
{
|
|
1129
1342
|
"aria-hidden": true,
|
|
1130
|
-
className:
|
|
1343
|
+
className: twMerge10(
|
|
1131
1344
|
"shrink-0 text-muted-foreground",
|
|
1132
1345
|
size === "sm" ? "h-3.5 w-3.5" : "h-4 w-4"
|
|
1133
1346
|
)
|
|
@@ -1136,8 +1349,8 @@ function Select({
|
|
|
1136
1349
|
]
|
|
1137
1350
|
}
|
|
1138
1351
|
),
|
|
1139
|
-
description && /* @__PURE__ */
|
|
1140
|
-
hasError && /* @__PURE__ */
|
|
1352
|
+
description && /* @__PURE__ */ jsx16(Text2, { slot: "description", className: "text-sm text-muted-foreground", children: description }),
|
|
1353
|
+
hasError && /* @__PURE__ */ jsx16(
|
|
1141
1354
|
Text2,
|
|
1142
1355
|
{
|
|
1143
1356
|
slot: "errorMessage",
|
|
@@ -1146,10 +1359,10 @@ function Select({
|
|
|
1146
1359
|
children: errorMessage
|
|
1147
1360
|
}
|
|
1148
1361
|
),
|
|
1149
|
-
/* @__PURE__ */
|
|
1362
|
+
/* @__PURE__ */ jsx16(
|
|
1150
1363
|
Popover,
|
|
1151
1364
|
{
|
|
1152
|
-
className:
|
|
1365
|
+
className: twMerge10(
|
|
1153
1366
|
"w-(--trigger-width)",
|
|
1154
1367
|
"rounded-md",
|
|
1155
1368
|
"border border-border",
|
|
@@ -1159,12 +1372,12 @@ function Select({
|
|
|
1159
1372
|
"entering:animate-in entering:fade-in",
|
|
1160
1373
|
"exiting:animate-out exiting:fade-out"
|
|
1161
1374
|
),
|
|
1162
|
-
children: /* @__PURE__ */
|
|
1375
|
+
children: /* @__PURE__ */ jsx16(ListBox, { className: "p-1 outline-none", items, children: (item) => /* @__PURE__ */ jsx16(
|
|
1163
1376
|
ListBoxItem,
|
|
1164
1377
|
{
|
|
1165
1378
|
id: item.id,
|
|
1166
1379
|
textValue: item.name,
|
|
1167
|
-
className:
|
|
1380
|
+
className: twMerge10(
|
|
1168
1381
|
`
|
|
1169
1382
|
flex items-center justify-between gap-2
|
|
1170
1383
|
rounded-sm
|
|
@@ -1177,8 +1390,8 @@ function Select({
|
|
|
1177
1390
|
sizeStyles[size]
|
|
1178
1391
|
),
|
|
1179
1392
|
children: ({ isSelected }) => /* @__PURE__ */ jsxs8(Fragment, { children: [
|
|
1180
|
-
/* @__PURE__ */
|
|
1181
|
-
isSelected && /* @__PURE__ */
|
|
1393
|
+
/* @__PURE__ */ jsx16("span", { className: renderItem ? "min-w-0 flex-1" : "truncate", children: renderItem ? renderItem(item) : item.name }),
|
|
1394
|
+
isSelected && /* @__PURE__ */ jsx16(Check2, { className: "h-4 w-4 shrink-0 text-primary" })
|
|
1182
1395
|
] })
|
|
1183
1396
|
}
|
|
1184
1397
|
) })
|
|
@@ -1198,75 +1411,88 @@ import {
|
|
|
1198
1411
|
TableBody as AriaTableBody,
|
|
1199
1412
|
TableHeader as AriaTableHeader
|
|
1200
1413
|
} from "react-aria-components";
|
|
1201
|
-
import {
|
|
1414
|
+
import { twMerge as twMerge11 } from "tailwind-merge";
|
|
1415
|
+
import { jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1202
1416
|
var tableSizeClass = {
|
|
1203
1417
|
compact: "[--table-row-py:theme(spacing.1)]",
|
|
1204
1418
|
comfortable: "[--table-row-py:theme(spacing.3)]"
|
|
1205
1419
|
};
|
|
1206
|
-
function Table2({
|
|
1207
|
-
|
|
1420
|
+
function Table2({
|
|
1421
|
+
size = "comfortable",
|
|
1422
|
+
className,
|
|
1423
|
+
...props
|
|
1424
|
+
}) {
|
|
1425
|
+
return /* @__PURE__ */ jsx17(
|
|
1208
1426
|
AriaTable,
|
|
1209
1427
|
{
|
|
1210
1428
|
...props,
|
|
1211
|
-
className:
|
|
1212
|
-
"w-full border-collapse text-
|
|
1429
|
+
className: twMerge11(
|
|
1430
|
+
"w-full border-collapse text-sm text-foreground",
|
|
1213
1431
|
tableSizeClass[size],
|
|
1214
1432
|
className
|
|
1215
|
-
|
|
1433
|
+
)
|
|
1216
1434
|
}
|
|
1217
1435
|
);
|
|
1218
1436
|
}
|
|
1219
1437
|
function TableHeader(props) {
|
|
1220
|
-
return /* @__PURE__ */
|
|
1438
|
+
return /* @__PURE__ */ jsx17(AriaTableHeader, { ...props });
|
|
1221
1439
|
}
|
|
1222
|
-
function Column(props) {
|
|
1223
|
-
return /* @__PURE__ */
|
|
1440
|
+
function Column({ className, ...props }) {
|
|
1441
|
+
return /* @__PURE__ */ jsx17(
|
|
1224
1442
|
AriaColumn,
|
|
1225
1443
|
{
|
|
1226
1444
|
...props,
|
|
1227
|
-
className:
|
|
1445
|
+
className: twMerge11(
|
|
1228
1446
|
"px-3 py-2 text-left font-semibold text-muted-foreground",
|
|
1229
1447
|
"border-b-2 border-border",
|
|
1230
1448
|
"cursor-default select-none outline-none",
|
|
1231
|
-
"focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-[-2px]"
|
|
1232
|
-
|
|
1449
|
+
"focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-[-2px]",
|
|
1450
|
+
className
|
|
1451
|
+
),
|
|
1233
1452
|
children: ({ allowsSorting, sortDirection }) => /* @__PURE__ */ jsxs9("span", { className: "inline-flex items-center gap-1", children: [
|
|
1234
1453
|
props.children,
|
|
1235
|
-
allowsSorting && /* @__PURE__ */
|
|
1454
|
+
allowsSorting && /* @__PURE__ */ jsx17("span", { "aria-hidden": "true", className: "text-muted-foreground", children: sortDirection === "ascending" ? "\u25B2" : sortDirection === "descending" ? "\u25BC" : "\u25B4" })
|
|
1236
1455
|
] })
|
|
1237
1456
|
}
|
|
1238
1457
|
);
|
|
1239
1458
|
}
|
|
1240
1459
|
function TableBody(props) {
|
|
1241
|
-
return /* @__PURE__ */
|
|
1460
|
+
return /* @__PURE__ */ jsx17(AriaTableBody, { ...props });
|
|
1242
1461
|
}
|
|
1243
|
-
function Row(
|
|
1244
|
-
|
|
1462
|
+
function Row({
|
|
1463
|
+
className,
|
|
1464
|
+
...props
|
|
1465
|
+
}) {
|
|
1466
|
+
return /* @__PURE__ */ jsx17(
|
|
1245
1467
|
AriaRow,
|
|
1246
1468
|
{
|
|
1247
1469
|
...props,
|
|
1248
|
-
className:
|
|
1470
|
+
className: twMerge11(
|
|
1249
1471
|
"border-b border-border",
|
|
1250
1472
|
"even:bg-card",
|
|
1251
1473
|
"hover:bg-muted",
|
|
1474
|
+
"data-[selected]:bg-accent",
|
|
1475
|
+
"data-[selected]:ring-2 data-[selected]:ring-ring data-[selected]:ring-inset",
|
|
1252
1476
|
"outline-none",
|
|
1253
1477
|
"focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-[-2px]",
|
|
1254
|
-
"transition-colors"
|
|
1255
|
-
|
|
1478
|
+
"transition-colors",
|
|
1479
|
+
className
|
|
1480
|
+
)
|
|
1256
1481
|
}
|
|
1257
1482
|
);
|
|
1258
1483
|
}
|
|
1259
|
-
function Cell(props) {
|
|
1260
|
-
return /* @__PURE__ */
|
|
1484
|
+
function Cell({ className, ...props }) {
|
|
1485
|
+
return /* @__PURE__ */ jsx17(
|
|
1261
1486
|
AriaCell,
|
|
1262
1487
|
{
|
|
1263
1488
|
...props,
|
|
1264
|
-
className:
|
|
1489
|
+
className: twMerge11(
|
|
1265
1490
|
"px-3 py-(--table-row-py)",
|
|
1266
1491
|
"text-foreground",
|
|
1267
1492
|
"outline-none",
|
|
1268
|
-
"focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-[-2px]"
|
|
1269
|
-
|
|
1493
|
+
"focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-[-2px]",
|
|
1494
|
+
className
|
|
1495
|
+
)
|
|
1270
1496
|
}
|
|
1271
1497
|
);
|
|
1272
1498
|
}
|
|
@@ -1276,10 +1502,10 @@ import {
|
|
|
1276
1502
|
Modal,
|
|
1277
1503
|
ModalOverlay,
|
|
1278
1504
|
Dialog as AriaDialog,
|
|
1279
|
-
Heading
|
|
1505
|
+
Heading as Heading3
|
|
1280
1506
|
} from "react-aria-components";
|
|
1281
1507
|
import { X as X2 } from "lucide-react";
|
|
1282
|
-
import { Fragment as Fragment2, jsx as
|
|
1508
|
+
import { Fragment as Fragment2, jsx as jsx18, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1283
1509
|
var sizeStyles2 = {
|
|
1284
1510
|
sm: "max-w-md",
|
|
1285
1511
|
md: "max-w-lg",
|
|
@@ -1295,7 +1521,7 @@ function Dialog({
|
|
|
1295
1521
|
children,
|
|
1296
1522
|
className
|
|
1297
1523
|
}) {
|
|
1298
|
-
return /* @__PURE__ */
|
|
1524
|
+
return /* @__PURE__ */ jsx18(
|
|
1299
1525
|
ModalOverlay,
|
|
1300
1526
|
{
|
|
1301
1527
|
isOpen,
|
|
@@ -1307,7 +1533,7 @@ function Dialog({
|
|
|
1307
1533
|
"entering:animate-in entering:fade-in",
|
|
1308
1534
|
"exiting:animate-out exiting:fade-out"
|
|
1309
1535
|
].join(" "),
|
|
1310
|
-
children: /* @__PURE__ */
|
|
1536
|
+
children: /* @__PURE__ */ jsx18(
|
|
1311
1537
|
Modal,
|
|
1312
1538
|
{
|
|
1313
1539
|
className: [
|
|
@@ -1318,17 +1544,17 @@ function Dialog({
|
|
|
1318
1544
|
"exiting:animate-out exiting:zoom-out-95 exiting:fade-out",
|
|
1319
1545
|
className
|
|
1320
1546
|
].filter(Boolean).join(" "),
|
|
1321
|
-
children: /* @__PURE__ */
|
|
1547
|
+
children: /* @__PURE__ */ jsx18(AriaDialog, { className: "outline-none flex flex-col max-h-[85vh]", children: ({ close }) => /* @__PURE__ */ jsxs10(Fragment2, { children: [
|
|
1322
1548
|
/* @__PURE__ */ jsxs10("div", { className: "flex items-center justify-between px-6 py-4 border-b border-border", children: [
|
|
1323
|
-
/* @__PURE__ */
|
|
1324
|
-
|
|
1549
|
+
/* @__PURE__ */ jsx18(
|
|
1550
|
+
Heading3,
|
|
1325
1551
|
{
|
|
1326
1552
|
slot: "title",
|
|
1327
1553
|
className: "text-lg font-semibold text-foreground",
|
|
1328
1554
|
children: title
|
|
1329
1555
|
}
|
|
1330
1556
|
),
|
|
1331
|
-
/* @__PURE__ */
|
|
1557
|
+
/* @__PURE__ */ jsx18(
|
|
1332
1558
|
"button",
|
|
1333
1559
|
{
|
|
1334
1560
|
type: "button",
|
|
@@ -1340,11 +1566,11 @@ function Dialog({
|
|
|
1340
1566
|
"transition-colors"
|
|
1341
1567
|
].join(" "),
|
|
1342
1568
|
"aria-label": "Close",
|
|
1343
|
-
children: /* @__PURE__ */
|
|
1569
|
+
children: /* @__PURE__ */ jsx18(X2, { size: 20, "aria-hidden": "true" })
|
|
1344
1570
|
}
|
|
1345
1571
|
)
|
|
1346
1572
|
] }),
|
|
1347
|
-
/* @__PURE__ */
|
|
1573
|
+
/* @__PURE__ */ jsx18("div", { className: "px-6 py-4 overflow-y-auto", children })
|
|
1348
1574
|
] }) })
|
|
1349
1575
|
}
|
|
1350
1576
|
)
|
|
@@ -1353,7 +1579,7 @@ function Dialog({
|
|
|
1353
1579
|
}
|
|
1354
1580
|
|
|
1355
1581
|
// src/components/Dialog/DialogFooter.tsx
|
|
1356
|
-
import { jsx as
|
|
1582
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1357
1583
|
|
|
1358
1584
|
// src/components/Toast/Toast.tsx
|
|
1359
1585
|
import {
|
|
@@ -1366,7 +1592,7 @@ import {
|
|
|
1366
1592
|
} from "react";
|
|
1367
1593
|
import { createPortal as createPortal2 } from "react-dom";
|
|
1368
1594
|
import { CheckCircle as CheckCircle3, XCircle as XCircle2, Info as Info2, X as X3 } from "lucide-react";
|
|
1369
|
-
import { jsx as
|
|
1595
|
+
import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1370
1596
|
var ToastContext = createContext(null);
|
|
1371
1597
|
var toastCounter = 0;
|
|
1372
1598
|
var defaultDuration = {
|
|
@@ -1437,16 +1663,16 @@ function ToastItem({
|
|
|
1437
1663
|
config.containerClass
|
|
1438
1664
|
].join(" "),
|
|
1439
1665
|
children: [
|
|
1440
|
-
/* @__PURE__ */
|
|
1441
|
-
/* @__PURE__ */
|
|
1442
|
-
/* @__PURE__ */
|
|
1666
|
+
/* @__PURE__ */ jsx20(IconComponent, { size: 20, className: ["shrink-0 mt-0.5", config.iconClass].join(" "), "aria-hidden": "true" }),
|
|
1667
|
+
/* @__PURE__ */ jsx20("p", { className: "flex-1 text-sm font-medium", children: toast.message }),
|
|
1668
|
+
/* @__PURE__ */ jsx20(
|
|
1443
1669
|
"button",
|
|
1444
1670
|
{
|
|
1445
1671
|
type: "button",
|
|
1446
1672
|
onClick: dismiss,
|
|
1447
1673
|
className: "shrink-0 rounded-sm p-0.5 opacity-70 hover:opacity-100 transition-opacity outline-none focus-visible:ring-2 focus-visible:ring-current",
|
|
1448
1674
|
"aria-label": "Dismiss",
|
|
1449
|
-
children: /* @__PURE__ */
|
|
1675
|
+
children: /* @__PURE__ */ jsx20(X3, { size: 16, "aria-hidden": "true" })
|
|
1450
1676
|
}
|
|
1451
1677
|
)
|
|
1452
1678
|
]
|
|
@@ -1466,7 +1692,7 @@ function ToastContainer({
|
|
|
1466
1692
|
}) {
|
|
1467
1693
|
if (toasts.length === 0) return null;
|
|
1468
1694
|
return createPortal2(
|
|
1469
|
-
/* @__PURE__ */
|
|
1695
|
+
/* @__PURE__ */ jsx20(PlacementContext.Provider, { value: placement, children: /* @__PURE__ */ jsx20("div", { className: containerPositionStyles[placement], children: toasts.map((toast) => /* @__PURE__ */ jsx20(ToastItem, { toast, onRemove: removeToast }, toast.id)) }) }),
|
|
1470
1696
|
document.body
|
|
1471
1697
|
);
|
|
1472
1698
|
}
|
|
@@ -1499,7 +1725,7 @@ function ToastProvider({ children, bridge, placement = "bottom-right" }) {
|
|
|
1499
1725
|
}, [bridge, addToast]);
|
|
1500
1726
|
return /* @__PURE__ */ jsxs11(ToastContext.Provider, { value: { toasts, addToast, removeToast }, children: [
|
|
1501
1727
|
children,
|
|
1502
|
-
/* @__PURE__ */
|
|
1728
|
+
/* @__PURE__ */ jsx20(ToastContainer, { toasts, removeToast, placement })
|
|
1503
1729
|
] });
|
|
1504
1730
|
}
|
|
1505
1731
|
function useToast() {
|
|
@@ -1515,7 +1741,7 @@ function useToast() {
|
|
|
1515
1741
|
}
|
|
1516
1742
|
|
|
1517
1743
|
// src/components/EmptyState/EmptyState.tsx
|
|
1518
|
-
import { jsx as
|
|
1744
|
+
import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1519
1745
|
function EmptyState({
|
|
1520
1746
|
icon,
|
|
1521
1747
|
title,
|
|
@@ -1531,10 +1757,10 @@ function EmptyState({
|
|
|
1531
1757
|
className
|
|
1532
1758
|
].filter(Boolean).join(" "),
|
|
1533
1759
|
children: [
|
|
1534
|
-
icon && /* @__PURE__ */
|
|
1535
|
-
/* @__PURE__ */
|
|
1536
|
-
description && /* @__PURE__ */
|
|
1537
|
-
action && /* @__PURE__ */
|
|
1760
|
+
icon && /* @__PURE__ */ jsx21(Icon, { icon, size: "xl", className: "text-muted-foreground" }),
|
|
1761
|
+
/* @__PURE__ */ jsx21("h3", { className: "text-lg font-semibold text-foreground mt-4", children: title }),
|
|
1762
|
+
description && /* @__PURE__ */ jsx21("p", { className: "text-sm text-muted-foreground mt-2 max-w-sm", children: description }),
|
|
1763
|
+
action && /* @__PURE__ */ jsx21("div", { className: "mt-6", children: action })
|
|
1538
1764
|
]
|
|
1539
1765
|
}
|
|
1540
1766
|
);
|
|
@@ -1545,9 +1771,9 @@ import {
|
|
|
1545
1771
|
Checkbox as AriaCheckbox
|
|
1546
1772
|
} from "react-aria-components";
|
|
1547
1773
|
import { Check as Check3 } from "lucide-react";
|
|
1548
|
-
import { Fragment as Fragment3, jsx as
|
|
1774
|
+
import { Fragment as Fragment3, jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1549
1775
|
function Checkbox({ children, className, ...props }) {
|
|
1550
|
-
return /* @__PURE__ */
|
|
1776
|
+
return /* @__PURE__ */ jsx22(
|
|
1551
1777
|
AriaCheckbox,
|
|
1552
1778
|
{
|
|
1553
1779
|
...props,
|
|
@@ -1567,12 +1793,12 @@ function Checkbox({ children, className, ...props }) {
|
|
|
1567
1793
|
isSelected || isIndeterminate ? "bg-primary border-primary" : "bg-background border-border group-hover:border-border"
|
|
1568
1794
|
].join(" "),
|
|
1569
1795
|
children: [
|
|
1570
|
-
isSelected && /* @__PURE__ */
|
|
1571
|
-
isIndeterminate && /* @__PURE__ */
|
|
1796
|
+
isSelected && /* @__PURE__ */ jsx22(Check3, { className: "w-4 h-4 text-primary-foreground", strokeWidth: 3 }),
|
|
1797
|
+
isIndeterminate && /* @__PURE__ */ jsx22("div", { className: "w-3 h-0.5 bg-primary-foreground rounded-full" })
|
|
1572
1798
|
]
|
|
1573
1799
|
}
|
|
1574
1800
|
),
|
|
1575
|
-
children && /* @__PURE__ */
|
|
1801
|
+
children && /* @__PURE__ */ jsx22("span", { children })
|
|
1576
1802
|
] })
|
|
1577
1803
|
}
|
|
1578
1804
|
);
|
|
@@ -1582,7 +1808,7 @@ function Checkbox({ children, className, ...props }) {
|
|
|
1582
1808
|
import {
|
|
1583
1809
|
Switch as AriaSwitch
|
|
1584
1810
|
} from "react-aria-components";
|
|
1585
|
-
import { Fragment as Fragment4, jsx as
|
|
1811
|
+
import { Fragment as Fragment4, jsx as jsx23, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1586
1812
|
var trackColorMap = {
|
|
1587
1813
|
primary: "bg-primary",
|
|
1588
1814
|
success: "bg-success",
|
|
@@ -1599,7 +1825,7 @@ function Switch({
|
|
|
1599
1825
|
...props
|
|
1600
1826
|
}) {
|
|
1601
1827
|
const isPreset = isPresetColor(color);
|
|
1602
|
-
return /* @__PURE__ */
|
|
1828
|
+
return /* @__PURE__ */ jsx23(
|
|
1603
1829
|
AriaSwitch,
|
|
1604
1830
|
{
|
|
1605
1831
|
...props,
|
|
@@ -1609,7 +1835,7 @@ function Switch({
|
|
|
1609
1835
|
className
|
|
1610
1836
|
].filter(Boolean).join(" "),
|
|
1611
1837
|
children: ({ isSelected }) => /* @__PURE__ */ jsxs14(Fragment4, { children: [
|
|
1612
|
-
/* @__PURE__ */
|
|
1838
|
+
/* @__PURE__ */ jsx23(
|
|
1613
1839
|
"div",
|
|
1614
1840
|
{
|
|
1615
1841
|
className: [
|
|
@@ -1618,7 +1844,7 @@ function Switch({
|
|
|
1618
1844
|
isSelected && isPreset ? trackColorMap[color] : !isSelected ? "bg-border" : ""
|
|
1619
1845
|
].join(" "),
|
|
1620
1846
|
style: isSelected && !isPreset ? { backgroundColor: color } : void 0,
|
|
1621
|
-
children: /* @__PURE__ */
|
|
1847
|
+
children: /* @__PURE__ */ jsx23(
|
|
1622
1848
|
"div",
|
|
1623
1849
|
{
|
|
1624
1850
|
className: [
|
|
@@ -1629,7 +1855,7 @@ function Switch({
|
|
|
1629
1855
|
)
|
|
1630
1856
|
}
|
|
1631
1857
|
),
|
|
1632
|
-
children && /* @__PURE__ */
|
|
1858
|
+
children && /* @__PURE__ */ jsx23("span", { children })
|
|
1633
1859
|
] })
|
|
1634
1860
|
}
|
|
1635
1861
|
);
|
|
@@ -1640,9 +1866,9 @@ import {
|
|
|
1640
1866
|
RadioGroup as AriaRadioGroup,
|
|
1641
1867
|
Radio as AriaRadio
|
|
1642
1868
|
} from "react-aria-components";
|
|
1643
|
-
import { Fragment as Fragment5, jsx as
|
|
1869
|
+
import { Fragment as Fragment5, jsx as jsx24, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1644
1870
|
function RadioGroup({ children, className, ...props }) {
|
|
1645
|
-
return /* @__PURE__ */
|
|
1871
|
+
return /* @__PURE__ */ jsx24(
|
|
1646
1872
|
AriaRadioGroup,
|
|
1647
1873
|
{
|
|
1648
1874
|
...props,
|
|
@@ -1656,7 +1882,7 @@ function RadioGroup({ children, className, ...props }) {
|
|
|
1656
1882
|
);
|
|
1657
1883
|
}
|
|
1658
1884
|
function Radio({ children, className, ...props }) {
|
|
1659
|
-
return /* @__PURE__ */
|
|
1885
|
+
return /* @__PURE__ */ jsx24(
|
|
1660
1886
|
AriaRadio,
|
|
1661
1887
|
{
|
|
1662
1888
|
...props,
|
|
@@ -1666,7 +1892,7 @@ function Radio({ children, className, ...props }) {
|
|
|
1666
1892
|
className
|
|
1667
1893
|
].filter(Boolean).join(" "),
|
|
1668
1894
|
children: ({ isSelected }) => /* @__PURE__ */ jsxs15(Fragment5, { children: [
|
|
1669
|
-
/* @__PURE__ */
|
|
1895
|
+
/* @__PURE__ */ jsx24(
|
|
1670
1896
|
"div",
|
|
1671
1897
|
{
|
|
1672
1898
|
className: [
|
|
@@ -1675,16 +1901,16 @@ function Radio({ children, className, ...props }) {
|
|
|
1675
1901
|
"group-focus-visible:ring-2 group-focus-visible:ring-ring group-focus-visible:ring-offset-2",
|
|
1676
1902
|
isSelected ? "border-primary" : "border-border group-hover:border-border"
|
|
1677
1903
|
].join(" "),
|
|
1678
|
-
children: isSelected && /* @__PURE__ */
|
|
1904
|
+
children: isSelected && /* @__PURE__ */ jsx24("div", { className: "w-2.5 h-2.5 rounded-full bg-primary" })
|
|
1679
1905
|
}
|
|
1680
1906
|
),
|
|
1681
|
-
children && /* @__PURE__ */
|
|
1907
|
+
children && /* @__PURE__ */ jsx24("span", { children })
|
|
1682
1908
|
] })
|
|
1683
1909
|
}
|
|
1684
1910
|
);
|
|
1685
1911
|
}
|
|
1686
1912
|
function RadioButton({ children, className, ...props }) {
|
|
1687
|
-
return /* @__PURE__ */
|
|
1913
|
+
return /* @__PURE__ */ jsx24(
|
|
1688
1914
|
AriaRadio,
|
|
1689
1915
|
{
|
|
1690
1916
|
...props,
|
|
@@ -1693,7 +1919,7 @@ function RadioButton({ children, className, ...props }) {
|
|
|
1693
1919
|
"disabled:opacity-50 disabled:cursor-default",
|
|
1694
1920
|
className
|
|
1695
1921
|
].filter(Boolean).join(" "),
|
|
1696
|
-
children: ({ isSelected }) => /* @__PURE__ */
|
|
1922
|
+
children: ({ isSelected }) => /* @__PURE__ */ jsx24(
|
|
1697
1923
|
"div",
|
|
1698
1924
|
{
|
|
1699
1925
|
className: [
|
|
@@ -1710,7 +1936,7 @@ function RadioButton({ children, className, ...props }) {
|
|
|
1710
1936
|
}
|
|
1711
1937
|
|
|
1712
1938
|
// src/components/Form/Fieldset/Fieldset.tsx
|
|
1713
|
-
import { jsx as
|
|
1939
|
+
import { jsx as jsx25, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1714
1940
|
function Fieldset({ legend, children, className }) {
|
|
1715
1941
|
return /* @__PURE__ */ jsxs16(
|
|
1716
1942
|
"fieldset",
|
|
@@ -1721,7 +1947,7 @@ function Fieldset({ legend, children, className }) {
|
|
|
1721
1947
|
className
|
|
1722
1948
|
].filter(Boolean).join(" "),
|
|
1723
1949
|
children: [
|
|
1724
|
-
legend && /* @__PURE__ */
|
|
1950
|
+
legend && /* @__PURE__ */ jsx25(
|
|
1725
1951
|
"legend",
|
|
1726
1952
|
{
|
|
1727
1953
|
className: [
|
|
@@ -1739,74 +1965,11 @@ function Fieldset({ legend, children, className }) {
|
|
|
1739
1965
|
);
|
|
1740
1966
|
}
|
|
1741
1967
|
|
|
1742
|
-
// src/components/Heading/Heading.tsx
|
|
1743
|
-
import { twMerge as twMerge8 } from "tailwind-merge";
|
|
1744
|
-
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
1745
|
-
var defaultSizeMap = {
|
|
1746
|
-
h1: "2xl",
|
|
1747
|
-
h2: "xl",
|
|
1748
|
-
h3: "lg",
|
|
1749
|
-
h4: "md",
|
|
1750
|
-
h5: "sm",
|
|
1751
|
-
h6: "xs"
|
|
1752
|
-
};
|
|
1753
|
-
var sizeStyles3 = {
|
|
1754
|
-
xs: "text-sm",
|
|
1755
|
-
sm: "text-base",
|
|
1756
|
-
md: "text-lg",
|
|
1757
|
-
lg: "text-xl",
|
|
1758
|
-
xl: "text-2xl",
|
|
1759
|
-
"2xl": "text-3xl",
|
|
1760
|
-
"3xl": "text-4xl"
|
|
1761
|
-
};
|
|
1762
|
-
var weightStyles = {
|
|
1763
|
-
semibold: "font-semibold",
|
|
1764
|
-
bold: "font-bold"
|
|
1765
|
-
};
|
|
1766
|
-
function Heading2({
|
|
1767
|
-
as: Tag2 = "h2",
|
|
1768
|
-
size,
|
|
1769
|
-
weight = "semibold",
|
|
1770
|
-
className,
|
|
1771
|
-
children
|
|
1772
|
-
}) {
|
|
1773
|
-
const resolvedSize = size ?? defaultSizeMap[Tag2];
|
|
1774
|
-
return /* @__PURE__ */ jsx20(
|
|
1775
|
-
Tag2,
|
|
1776
|
-
{
|
|
1777
|
-
className: twMerge8(
|
|
1778
|
-
weightStyles[weight],
|
|
1779
|
-
"text-foreground",
|
|
1780
|
-
sizeStyles3[resolvedSize],
|
|
1781
|
-
className
|
|
1782
|
-
),
|
|
1783
|
-
children
|
|
1784
|
-
}
|
|
1785
|
-
);
|
|
1786
|
-
}
|
|
1787
|
-
function H1(props) {
|
|
1788
|
-
return /* @__PURE__ */ jsx20(
|
|
1789
|
-
Heading2,
|
|
1790
|
-
{
|
|
1791
|
-
...props,
|
|
1792
|
-
as: "h1",
|
|
1793
|
-
size: props.size ?? "2xl",
|
|
1794
|
-
weight: props.weight ?? "bold"
|
|
1795
|
-
}
|
|
1796
|
-
);
|
|
1797
|
-
}
|
|
1798
|
-
function H2(props) {
|
|
1799
|
-
return /* @__PURE__ */ jsx20(Heading2, { ...props, as: "h2", size: props.size ?? "xl" });
|
|
1800
|
-
}
|
|
1801
|
-
function H3(props) {
|
|
1802
|
-
return /* @__PURE__ */ jsx20(Heading2, { ...props, as: "h3", size: props.size ?? "lg" });
|
|
1803
|
-
}
|
|
1804
|
-
|
|
1805
1968
|
// src/components/Link/Link.tsx
|
|
1806
1969
|
import {
|
|
1807
1970
|
Link as AriaLink3
|
|
1808
1971
|
} from "react-aria-components";
|
|
1809
|
-
import { jsx as
|
|
1972
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
1810
1973
|
var variantStyles2 = {
|
|
1811
1974
|
default: [
|
|
1812
1975
|
"text-teal-700 underline",
|
|
@@ -1822,7 +1985,7 @@ function Link({
|
|
|
1822
1985
|
className,
|
|
1823
1986
|
...props
|
|
1824
1987
|
}) {
|
|
1825
|
-
return /* @__PURE__ */
|
|
1988
|
+
return /* @__PURE__ */ jsx26(
|
|
1826
1989
|
AriaLink3,
|
|
1827
1990
|
{
|
|
1828
1991
|
...props,
|
|
@@ -1843,20 +2006,20 @@ import {
|
|
|
1843
2006
|
Link as Link2
|
|
1844
2007
|
} from "react-aria-components";
|
|
1845
2008
|
import { ChevronRight as ChevronRight2 } from "lucide-react";
|
|
1846
|
-
import { Fragment as Fragment6, jsx as
|
|
2009
|
+
import { Fragment as Fragment6, jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1847
2010
|
function Breadcrumbs({ items, className }) {
|
|
1848
|
-
return /* @__PURE__ */
|
|
2011
|
+
return /* @__PURE__ */ jsx27(
|
|
1849
2012
|
"nav",
|
|
1850
2013
|
{
|
|
1851
2014
|
"aria-label": "Breadcrumb",
|
|
1852
2015
|
className,
|
|
1853
|
-
children: /* @__PURE__ */
|
|
2016
|
+
children: /* @__PURE__ */ jsx27(
|
|
1854
2017
|
AriaBreadcrumbs,
|
|
1855
2018
|
{
|
|
1856
2019
|
className: "flex items-center gap-1 text-sm min-w-0",
|
|
1857
2020
|
children: items.map((item, index) => {
|
|
1858
2021
|
const isLast = index === items.length - 1;
|
|
1859
|
-
return /* @__PURE__ */
|
|
2022
|
+
return /* @__PURE__ */ jsx27(
|
|
1860
2023
|
AriaBreadcrumb,
|
|
1861
2024
|
{
|
|
1862
2025
|
id: item.id,
|
|
@@ -1864,8 +2027,8 @@ function Breadcrumbs({ items, className }) {
|
|
|
1864
2027
|
"flex items-center gap-1",
|
|
1865
2028
|
isLast ? "min-w-0" : "shrink-0"
|
|
1866
2029
|
].join(" "),
|
|
1867
|
-
children: isLast ? /* @__PURE__ */
|
|
1868
|
-
/* @__PURE__ */
|
|
2030
|
+
children: isLast ? /* @__PURE__ */ jsx27("span", { className: "font-medium text-foreground truncate", children: item.label }) : /* @__PURE__ */ jsxs17(Fragment6, { children: [
|
|
2031
|
+
/* @__PURE__ */ jsx27(
|
|
1869
2032
|
Link2,
|
|
1870
2033
|
{
|
|
1871
2034
|
href: item.href,
|
|
@@ -1873,7 +2036,7 @@ function Breadcrumbs({ items, className }) {
|
|
|
1873
2036
|
children: item.label
|
|
1874
2037
|
}
|
|
1875
2038
|
),
|
|
1876
|
-
/* @__PURE__ */
|
|
2039
|
+
/* @__PURE__ */ jsx27(
|
|
1877
2040
|
ChevronRight2,
|
|
1878
2041
|
{
|
|
1879
2042
|
className: "shrink-0 text-slate-400",
|
|
@@ -1896,8 +2059,8 @@ function Breadcrumbs({ items, className }) {
|
|
|
1896
2059
|
import {
|
|
1897
2060
|
ToggleButton as AriaToggleButton2
|
|
1898
2061
|
} from "react-aria-components";
|
|
1899
|
-
import { twMerge as
|
|
1900
|
-
import { jsx as
|
|
2062
|
+
import { twMerge as twMerge12 } from "tailwind-merge";
|
|
2063
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
1901
2064
|
var squareSizeStyles2 = {
|
|
1902
2065
|
xs: "h-6 w-6 text-xs",
|
|
1903
2066
|
sm: "h-7 w-7 text-sm",
|
|
@@ -1942,11 +2105,11 @@ function ToggleButton({
|
|
|
1942
2105
|
...props
|
|
1943
2106
|
}) {
|
|
1944
2107
|
const styles = variantStyles3[variant];
|
|
1945
|
-
return /* @__PURE__ */
|
|
2108
|
+
return /* @__PURE__ */ jsx28(
|
|
1946
2109
|
AriaToggleButton2,
|
|
1947
2110
|
{
|
|
1948
2111
|
...props,
|
|
1949
|
-
className: ({ isSelected }) =>
|
|
2112
|
+
className: ({ isSelected }) => twMerge12(
|
|
1950
2113
|
"inline-flex items-center justify-center gap-2 cursor-pointer",
|
|
1951
2114
|
isSquare ? "rounded-none" : "rounded-md",
|
|
1952
2115
|
"font-medium",
|
|
@@ -1969,7 +2132,7 @@ import {
|
|
|
1969
2132
|
MenuItem as AriaMenuItem,
|
|
1970
2133
|
Popover as Popover2
|
|
1971
2134
|
} from "react-aria-components";
|
|
1972
|
-
import { twMerge as
|
|
2135
|
+
import { twMerge as twMerge13 } from "tailwind-merge";
|
|
1973
2136
|
|
|
1974
2137
|
// src/components/Menu/menuStyles.ts
|
|
1975
2138
|
var popoverStyles = `
|
|
@@ -1981,8 +2144,8 @@ var popoverStyles = `
|
|
|
1981
2144
|
`;
|
|
1982
2145
|
|
|
1983
2146
|
// src/components/Menu/Menu.tsx
|
|
1984
|
-
import { jsx as
|
|
1985
|
-
function
|
|
2147
|
+
import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2148
|
+
function Menu2({
|
|
1986
2149
|
items,
|
|
1987
2150
|
content,
|
|
1988
2151
|
children,
|
|
@@ -1996,7 +2159,7 @@ function Menu({
|
|
|
1996
2159
|
const selectionProps = selectionMode && selectionMode !== "none" ? { selectionMode, selectedKeys, defaultSelectedKeys, onSelectionChange } : {};
|
|
1997
2160
|
return /* @__PURE__ */ jsxs18(MenuTrigger, { children: [
|
|
1998
2161
|
children,
|
|
1999
|
-
/* @__PURE__ */
|
|
2162
|
+
/* @__PURE__ */ jsx29(Popover2, { className: twMerge13(popoverStyles, className), children: items ? /* @__PURE__ */ jsx29(
|
|
2000
2163
|
AriaMenu,
|
|
2001
2164
|
{
|
|
2002
2165
|
items,
|
|
@@ -2023,14 +2186,14 @@ function Menu({
|
|
|
2023
2186
|
item.isDanger ? "text-destructive" : "text-foreground"
|
|
2024
2187
|
].filter(Boolean).join(" "),
|
|
2025
2188
|
children: [
|
|
2026
|
-
item.icon && /* @__PURE__ */
|
|
2027
|
-
/* @__PURE__ */
|
|
2028
|
-
item.endContent && /* @__PURE__ */
|
|
2189
|
+
item.icon && /* @__PURE__ */ jsx29(Icon, { icon: item.icon, size: "sm" }),
|
|
2190
|
+
/* @__PURE__ */ jsx29("span", { className: "flex-1", children: item.label }),
|
|
2191
|
+
item.endContent && /* @__PURE__ */ jsx29("span", { className: "ml-auto flex items-center", children: item.endContent })
|
|
2029
2192
|
]
|
|
2030
2193
|
}
|
|
2031
2194
|
)
|
|
2032
2195
|
}
|
|
2033
|
-
) : /* @__PURE__ */
|
|
2196
|
+
) : /* @__PURE__ */ jsx29(
|
|
2034
2197
|
AriaMenu,
|
|
2035
2198
|
{
|
|
2036
2199
|
onAction: (key) => onAction?.(key),
|
|
@@ -2055,8 +2218,8 @@ import {
|
|
|
2055
2218
|
Popover as Popover3,
|
|
2056
2219
|
Pressable
|
|
2057
2220
|
} from "react-aria-components";
|
|
2058
|
-
import { twMerge as
|
|
2059
|
-
import { jsx as
|
|
2221
|
+
import { twMerge as twMerge14 } from "tailwind-merge";
|
|
2222
|
+
import { jsx as jsx30, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2060
2223
|
function useContextMenu({
|
|
2061
2224
|
content,
|
|
2062
2225
|
onAction,
|
|
@@ -2106,7 +2269,7 @@ function useContextMenu({
|
|
|
2106
2269
|
if (!open) close();
|
|
2107
2270
|
},
|
|
2108
2271
|
children: [
|
|
2109
|
-
/* @__PURE__ */
|
|
2272
|
+
/* @__PURE__ */ jsx30(Pressable, { children: /* @__PURE__ */ jsx30(
|
|
2110
2273
|
"span",
|
|
2111
2274
|
{
|
|
2112
2275
|
ref: anchorRef,
|
|
@@ -2115,14 +2278,14 @@ function useContextMenu({
|
|
|
2115
2278
|
style: { left: anchor?.x ?? 0, top: anchor?.y ?? 0 }
|
|
2116
2279
|
}
|
|
2117
2280
|
) }),
|
|
2118
|
-
/* @__PURE__ */
|
|
2281
|
+
/* @__PURE__ */ jsx30(
|
|
2119
2282
|
Popover3,
|
|
2120
2283
|
{
|
|
2121
2284
|
isNonModal: true,
|
|
2122
2285
|
placement: "bottom start",
|
|
2123
2286
|
ref: popoverRef,
|
|
2124
|
-
className:
|
|
2125
|
-
children: /* @__PURE__ */
|
|
2287
|
+
className: twMerge14(popoverStyles, className),
|
|
2288
|
+
children: /* @__PURE__ */ jsx30(
|
|
2126
2289
|
AriaMenu2,
|
|
2127
2290
|
{
|
|
2128
2291
|
autoFocus: "first",
|
|
@@ -2150,7 +2313,7 @@ function useContextMenu({
|
|
|
2150
2313
|
|
|
2151
2314
|
// src/components/Menu/MenuItem.tsx
|
|
2152
2315
|
import { MenuItem as AriaMenuItem2 } from "react-aria-components";
|
|
2153
|
-
import { jsx as
|
|
2316
|
+
import { jsx as jsx31, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2154
2317
|
function MenuItem({
|
|
2155
2318
|
id,
|
|
2156
2319
|
children,
|
|
@@ -2183,9 +2346,9 @@ function MenuItem({
|
|
|
2183
2346
|
className
|
|
2184
2347
|
].filter(Boolean).join(" "),
|
|
2185
2348
|
children: [
|
|
2186
|
-
icon && /* @__PURE__ */
|
|
2187
|
-
/* @__PURE__ */
|
|
2188
|
-
endContent && /* @__PURE__ */
|
|
2349
|
+
icon && /* @__PURE__ */ jsx31(Icon, { icon, size: "sm" }),
|
|
2350
|
+
/* @__PURE__ */ jsx31("span", { className: "flex-1", children }),
|
|
2351
|
+
endContent && /* @__PURE__ */ jsx31("span", { className: "ml-auto flex items-center", children: endContent })
|
|
2189
2352
|
]
|
|
2190
2353
|
}
|
|
2191
2354
|
);
|
|
@@ -2194,7 +2357,7 @@ function MenuItem({
|
|
|
2194
2357
|
// src/components/Menu/MenuCheckboxItem.tsx
|
|
2195
2358
|
import { MenuItem as AriaMenuItem3 } from "react-aria-components";
|
|
2196
2359
|
import { Check as Check4 } from "lucide-react";
|
|
2197
|
-
import { Fragment as Fragment7, jsx as
|
|
2360
|
+
import { Fragment as Fragment7, jsx as jsx32, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2198
2361
|
function MenuCheckboxItem({
|
|
2199
2362
|
id,
|
|
2200
2363
|
children,
|
|
@@ -2202,7 +2365,7 @@ function MenuCheckboxItem({
|
|
|
2202
2365
|
isDisabled,
|
|
2203
2366
|
className
|
|
2204
2367
|
}) {
|
|
2205
|
-
return /* @__PURE__ */
|
|
2368
|
+
return /* @__PURE__ */ jsx32(
|
|
2206
2369
|
AriaMenuItem3,
|
|
2207
2370
|
{
|
|
2208
2371
|
id,
|
|
@@ -2219,8 +2382,8 @@ function MenuCheckboxItem({
|
|
|
2219
2382
|
className
|
|
2220
2383
|
].filter(Boolean).join(" "),
|
|
2221
2384
|
children: ({ isSelected }) => /* @__PURE__ */ jsxs21(Fragment7, { children: [
|
|
2222
|
-
/* @__PURE__ */
|
|
2223
|
-
/* @__PURE__ */
|
|
2385
|
+
/* @__PURE__ */ jsx32("span", { className: "flex items-center justify-center w-4 h-4 shrink-0", children: isSelected && /* @__PURE__ */ jsx32(Check4, { size: 14, className: "text-primary", "aria-hidden": "true" }) }),
|
|
2386
|
+
/* @__PURE__ */ jsx32("span", { className: "flex-1", children })
|
|
2224
2387
|
] })
|
|
2225
2388
|
}
|
|
2226
2389
|
);
|
|
@@ -2231,7 +2394,7 @@ import {
|
|
|
2231
2394
|
MenuSection as AriaMenuSection,
|
|
2232
2395
|
Header
|
|
2233
2396
|
} from "react-aria-components";
|
|
2234
|
-
import { jsx as
|
|
2397
|
+
import { jsx as jsx33, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2235
2398
|
function MenuSection({
|
|
2236
2399
|
header,
|
|
2237
2400
|
children,
|
|
@@ -2239,7 +2402,7 @@ function MenuSection({
|
|
|
2239
2402
|
className
|
|
2240
2403
|
}) {
|
|
2241
2404
|
return /* @__PURE__ */ jsxs22(AriaMenuSection, { className, "aria-label": ariaLabel, children: [
|
|
2242
|
-
header && /* @__PURE__ */
|
|
2405
|
+
header && /* @__PURE__ */ jsx33(
|
|
2243
2406
|
Header,
|
|
2244
2407
|
{
|
|
2245
2408
|
className: [
|
|
@@ -2258,16 +2421,16 @@ function MenuSection({
|
|
|
2258
2421
|
|
|
2259
2422
|
// src/components/Menu/MenuHeader.tsx
|
|
2260
2423
|
import { Header as Header2 } from "react-aria-components";
|
|
2261
|
-
import { jsx as
|
|
2424
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
2262
2425
|
function MenuHeader({ children, className }) {
|
|
2263
|
-
return /* @__PURE__ */
|
|
2426
|
+
return /* @__PURE__ */ jsx34(Header2, { className, children });
|
|
2264
2427
|
}
|
|
2265
2428
|
|
|
2266
2429
|
// src/components/Menu/MenuSeparator.tsx
|
|
2267
2430
|
import { Separator } from "react-aria-components";
|
|
2268
|
-
import { jsx as
|
|
2431
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
2269
2432
|
function MenuSeparator({ className }) {
|
|
2270
|
-
return /* @__PURE__ */
|
|
2433
|
+
return /* @__PURE__ */ jsx35(
|
|
2271
2434
|
Separator,
|
|
2272
2435
|
{
|
|
2273
2436
|
className: [
|
|
@@ -2284,17 +2447,17 @@ import {
|
|
|
2284
2447
|
Popover as AriaPopover,
|
|
2285
2448
|
Button as AriaButton3
|
|
2286
2449
|
} from "react-aria-components";
|
|
2287
|
-
import { twMerge as
|
|
2288
|
-
import { jsx as
|
|
2450
|
+
import { twMerge as twMerge15 } from "tailwind-merge";
|
|
2451
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
2289
2452
|
function Popover4({ children, isOpen, onOpenChange }) {
|
|
2290
|
-
return /* @__PURE__ */
|
|
2453
|
+
return /* @__PURE__ */ jsx36(DialogTrigger, { isOpen, onOpenChange, children });
|
|
2291
2454
|
}
|
|
2292
2455
|
function PopoverTrigger({ children, className }) {
|
|
2293
2456
|
const cx = `
|
|
2294
2457
|
inline-flex items-center bg-transparent border-none p-0 outline-none cursor-pointer
|
|
2295
2458
|
focus-visible:ring-2 focus-visible:ring-ring focus-visible:rounded-sm
|
|
2296
2459
|
`;
|
|
2297
|
-
return /* @__PURE__ */
|
|
2460
|
+
return /* @__PURE__ */ jsx36(AriaButton3, { className: twMerge15(cx, className), children });
|
|
2298
2461
|
}
|
|
2299
2462
|
function PopoverContent({
|
|
2300
2463
|
placement = "bottom",
|
|
@@ -2315,13 +2478,13 @@ function PopoverContent({
|
|
|
2315
2478
|
entering:placement-left:slide-in-from-right-1
|
|
2316
2479
|
entering:placement-right:slide-in-from-left-1
|
|
2317
2480
|
`;
|
|
2318
|
-
return /* @__PURE__ */
|
|
2481
|
+
return /* @__PURE__ */ jsx36(
|
|
2319
2482
|
AriaPopover,
|
|
2320
2483
|
{
|
|
2321
2484
|
...rest,
|
|
2322
2485
|
placement,
|
|
2323
2486
|
offset: offsetPx,
|
|
2324
|
-
className:
|
|
2487
|
+
className: twMerge15(cx, className),
|
|
2325
2488
|
children
|
|
2326
2489
|
}
|
|
2327
2490
|
);
|
|
@@ -2329,19 +2492,19 @@ function PopoverContent({
|
|
|
2329
2492
|
|
|
2330
2493
|
// src/components/Tabs/Tabs.tsx
|
|
2331
2494
|
import { createContext as createContext2, useContext as useContext2 } from "react";
|
|
2332
|
-
import { twMerge as
|
|
2495
|
+
import { twMerge as twMerge16 } from "tailwind-merge";
|
|
2333
2496
|
import {
|
|
2334
2497
|
Tabs as AriaTabs,
|
|
2335
2498
|
TabList as AriaTabList,
|
|
2336
2499
|
Tab as AriaTab,
|
|
2337
2500
|
TabPanel as AriaTabPanel
|
|
2338
2501
|
} from "react-aria-components";
|
|
2339
|
-
import { jsx as
|
|
2502
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
2340
2503
|
var TabsContext = createContext2({
|
|
2341
2504
|
variant: "underline",
|
|
2342
2505
|
size: "md"
|
|
2343
2506
|
});
|
|
2344
|
-
var
|
|
2507
|
+
var sizeStyles3 = {
|
|
2345
2508
|
sm: "px-3 py-1.5 text-sm",
|
|
2346
2509
|
md: "px-4 py-2 text-base",
|
|
2347
2510
|
lg: "px-6 py-3 text-lg"
|
|
@@ -2354,12 +2517,12 @@ function Tabs({
|
|
|
2354
2517
|
children,
|
|
2355
2518
|
...props
|
|
2356
2519
|
}) {
|
|
2357
|
-
return /* @__PURE__ */
|
|
2520
|
+
return /* @__PURE__ */ jsx37(TabsContext.Provider, { value: { variant, size }, children: /* @__PURE__ */ jsx37(
|
|
2358
2521
|
AriaTabs,
|
|
2359
2522
|
{
|
|
2360
2523
|
...props,
|
|
2361
2524
|
orientation,
|
|
2362
|
-
className:
|
|
2525
|
+
className: twMerge16(
|
|
2363
2526
|
orientation === "vertical" ? "flex" : "",
|
|
2364
2527
|
className
|
|
2365
2528
|
),
|
|
@@ -2374,11 +2537,11 @@ function TabList({
|
|
|
2374
2537
|
const { variant } = useContext2(TabsContext);
|
|
2375
2538
|
const baseStyles = variant === "unstyled" ? "flex items-center" : variant === "underline" ? "flex items-center border-b border-border" : "inline-flex items-center bg-muted rounded-lg p-1 gap-1";
|
|
2376
2539
|
const verticalStyles = variant === "unstyled" ? "flex-col" : variant === "underline" ? "flex-col border-b-0 border-r border-border" : "flex-col";
|
|
2377
|
-
return /* @__PURE__ */
|
|
2540
|
+
return /* @__PURE__ */ jsx37(
|
|
2378
2541
|
AriaTabList,
|
|
2379
2542
|
{
|
|
2380
2543
|
...props,
|
|
2381
|
-
className: ({ orientation }) =>
|
|
2544
|
+
className: ({ orientation }) => twMerge16(
|
|
2382
2545
|
baseStyles,
|
|
2383
2546
|
orientation === "vertical" ? verticalStyles : "",
|
|
2384
2547
|
className
|
|
@@ -2388,20 +2551,20 @@ function TabList({
|
|
|
2388
2551
|
}
|
|
2389
2552
|
function Tab({ className, ...props }) {
|
|
2390
2553
|
const { variant, size } = useContext2(TabsContext);
|
|
2391
|
-
return /* @__PURE__ */
|
|
2554
|
+
return /* @__PURE__ */ jsx37(
|
|
2392
2555
|
AriaTab,
|
|
2393
2556
|
{
|
|
2394
2557
|
...props,
|
|
2395
2558
|
className: ({ isSelected, isDisabled, isHovered, isPressed }) => {
|
|
2396
2559
|
if (variant === "unstyled") {
|
|
2397
|
-
return
|
|
2560
|
+
return twMerge16(
|
|
2398
2561
|
"cursor-pointer outline-none",
|
|
2399
2562
|
"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
2400
2563
|
isDisabled ? "opacity-50 pointer-events-none" : "",
|
|
2401
2564
|
className
|
|
2402
2565
|
);
|
|
2403
2566
|
}
|
|
2404
|
-
return
|
|
2567
|
+
return twMerge16(
|
|
2405
2568
|
// Base
|
|
2406
2569
|
"cursor-pointer outline-none transition-colors",
|
|
2407
2570
|
"font-medium",
|
|
@@ -2410,7 +2573,7 @@ function Tab({ className, ...props }) {
|
|
|
2410
2573
|
// Disabled
|
|
2411
2574
|
isDisabled ? "opacity-50 pointer-events-none" : "",
|
|
2412
2575
|
// Size
|
|
2413
|
-
|
|
2576
|
+
sizeStyles3[size],
|
|
2414
2577
|
...getTabVariantStyles(variant, {
|
|
2415
2578
|
isSelected,
|
|
2416
2579
|
isHovered,
|
|
@@ -2445,11 +2608,11 @@ function getTabVariantStyles(variant, state) {
|
|
|
2445
2608
|
}
|
|
2446
2609
|
function TabPanel({ className, ...props }) {
|
|
2447
2610
|
const { variant } = useContext2(TabsContext);
|
|
2448
|
-
return /* @__PURE__ */
|
|
2611
|
+
return /* @__PURE__ */ jsx37(
|
|
2449
2612
|
AriaTabPanel,
|
|
2450
2613
|
{
|
|
2451
2614
|
...props,
|
|
2452
|
-
className:
|
|
2615
|
+
className: twMerge16(
|
|
2453
2616
|
variant === "unstyled" ? "outline-none" : "mt-4 outline-none",
|
|
2454
2617
|
className
|
|
2455
2618
|
)
|
|
@@ -2467,16 +2630,16 @@ import {
|
|
|
2467
2630
|
|
|
2468
2631
|
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
2469
2632
|
import { createContext as createContext3, useContext as useContext3 } from "react";
|
|
2470
|
-
import { twMerge as
|
|
2633
|
+
import { twMerge as twMerge17 } from "tailwind-merge";
|
|
2471
2634
|
import {
|
|
2472
2635
|
ToggleButtonGroup as AriaToggleButtonGroup,
|
|
2473
2636
|
ToggleButton as AriaToggleButton3
|
|
2474
2637
|
} from "react-aria-components";
|
|
2475
|
-
import { jsx as
|
|
2638
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
2476
2639
|
var SegmentedControlContext = createContext3({
|
|
2477
2640
|
size: "md"
|
|
2478
2641
|
});
|
|
2479
|
-
var
|
|
2642
|
+
var sizeStyles4 = {
|
|
2480
2643
|
sm: "px-2.5 py-1 text-xs",
|
|
2481
2644
|
md: "px-3 py-1.5 text-sm",
|
|
2482
2645
|
lg: "px-4 py-2 text-base"
|
|
@@ -2492,7 +2655,7 @@ function SegmentedControl({
|
|
|
2492
2655
|
...props
|
|
2493
2656
|
}) {
|
|
2494
2657
|
const isNoneMode = selectionMode === "none";
|
|
2495
|
-
return /* @__PURE__ */
|
|
2658
|
+
return /* @__PURE__ */ jsx38(SegmentedControlContext.Provider, { value: { size }, children: /* @__PURE__ */ jsx38(
|
|
2496
2659
|
AriaToggleButtonGroup,
|
|
2497
2660
|
{
|
|
2498
2661
|
...props,
|
|
@@ -2500,7 +2663,7 @@ function SegmentedControl({
|
|
|
2500
2663
|
selectedKeys: isNoneMode ? /* @__PURE__ */ new Set() : selectedKeys,
|
|
2501
2664
|
defaultSelectedKeys: isNoneMode ? void 0 : defaultSelectedKeys,
|
|
2502
2665
|
onSelectionChange: isNoneMode ? void 0 : onSelectionChange,
|
|
2503
|
-
className:
|
|
2666
|
+
className: twMerge17(
|
|
2504
2667
|
"inline-flex items-center rounded-lg border border-border bg-muted p-0.5 gap-0.5",
|
|
2505
2668
|
className
|
|
2506
2669
|
),
|
|
@@ -2513,11 +2676,11 @@ function SegmentedControlItem({
|
|
|
2513
2676
|
...props
|
|
2514
2677
|
}) {
|
|
2515
2678
|
const { size } = useContext3(SegmentedControlContext);
|
|
2516
|
-
return /* @__PURE__ */
|
|
2679
|
+
return /* @__PURE__ */ jsx38(
|
|
2517
2680
|
AriaToggleButton3,
|
|
2518
2681
|
{
|
|
2519
2682
|
...props,
|
|
2520
|
-
className: ({ isSelected, isHovered, isPressed, isDisabled }) =>
|
|
2683
|
+
className: ({ isSelected, isHovered, isPressed, isDisabled }) => twMerge17(
|
|
2521
2684
|
// Base layout
|
|
2522
2685
|
"inline-flex items-center justify-center",
|
|
2523
2686
|
"rounded-md",
|
|
@@ -2528,7 +2691,7 @@ function SegmentedControlItem({
|
|
|
2528
2691
|
// Disabled
|
|
2529
2692
|
isDisabled && "opacity-50 pointer-events-none",
|
|
2530
2693
|
// Size
|
|
2531
|
-
|
|
2694
|
+
sizeStyles4[size],
|
|
2532
2695
|
// Selected state
|
|
2533
2696
|
isSelected ? "bg-background text-foreground shadow-sm font-semibold" : isPressed ? "bg-card text-foreground" : isHovered ? "bg-card text-foreground" : "bg-transparent text-muted-foreground",
|
|
2534
2697
|
className
|
|
@@ -2538,40 +2701,43 @@ function SegmentedControlItem({
|
|
|
2538
2701
|
}
|
|
2539
2702
|
|
|
2540
2703
|
// src/components/Badge/Badge.tsx
|
|
2541
|
-
import { twMerge as
|
|
2542
|
-
import { jsx as
|
|
2543
|
-
var
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
amber: "bg-badge-amber-bg text-badge-amber-text"
|
|
2704
|
+
import { twMerge as twMerge18 } from "tailwind-merge";
|
|
2705
|
+
import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2706
|
+
var colorStyles = {
|
|
2707
|
+
purple: "bg-badge-purple-bg text-badge-purple-text border-badge-purple-text/20",
|
|
2708
|
+
teal: "bg-badge-teal-bg text-badge-teal-text border-badge-teal-text/20",
|
|
2709
|
+
rose: "bg-badge-rose-bg text-badge-rose-text border-badge-rose-text/20",
|
|
2710
|
+
slate: "bg-badge-slate-bg text-badge-slate-text border-badge-slate-text/20",
|
|
2711
|
+
green: "bg-badge-green-bg text-badge-green-text border-badge-green-text/20",
|
|
2712
|
+
amber: "bg-badge-amber-bg text-badge-amber-text border-badge-amber-text/20"
|
|
2551
2713
|
};
|
|
2552
|
-
var
|
|
2553
|
-
|
|
2554
|
-
|
|
2714
|
+
var sizeStyles5 = {
|
|
2715
|
+
xs: "px-1 py-0 text-[10px]",
|
|
2716
|
+
sm: "px-1.5 py-0.5 text-xs",
|
|
2717
|
+
md: "px-2 py-0.5 text-xs",
|
|
2718
|
+
lg: "px-2.5 py-1 text-sm"
|
|
2555
2719
|
};
|
|
2556
2720
|
function Badge({
|
|
2557
2721
|
children,
|
|
2558
|
-
|
|
2722
|
+
color = "slate",
|
|
2559
2723
|
size = "sm",
|
|
2560
2724
|
icon,
|
|
2561
|
-
className
|
|
2725
|
+
className,
|
|
2726
|
+
...rest
|
|
2562
2727
|
}) {
|
|
2563
2728
|
return /* @__PURE__ */ jsxs23(
|
|
2564
2729
|
"span",
|
|
2565
2730
|
{
|
|
2566
|
-
className:
|
|
2567
|
-
"inline-flex items-center gap-1 rounded-full",
|
|
2568
|
-
"
|
|
2569
|
-
|
|
2570
|
-
|
|
2731
|
+
className: twMerge18(
|
|
2732
|
+
"inline-flex items-center gap-1 rounded-full border",
|
|
2733
|
+
"font-medium leading-tight tracking-wider tabular-nums",
|
|
2734
|
+
colorStyles[color],
|
|
2735
|
+
sizeStyles5[size],
|
|
2571
2736
|
className
|
|
2572
2737
|
),
|
|
2738
|
+
...rest,
|
|
2573
2739
|
children: [
|
|
2574
|
-
icon && /* @__PURE__ */
|
|
2740
|
+
icon && /* @__PURE__ */ jsx39(Icon, { icon, size: "xs" }),
|
|
2575
2741
|
children
|
|
2576
2742
|
]
|
|
2577
2743
|
}
|
|
@@ -2579,87 +2745,29 @@ function Badge({
|
|
|
2579
2745
|
}
|
|
2580
2746
|
|
|
2581
2747
|
// src/components/Card/Card.tsx
|
|
2582
|
-
import {
|
|
2583
|
-
import {
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
children,
|
|
2593
|
-
header,
|
|
2594
|
-
footer,
|
|
2595
|
-
padding = "md",
|
|
2596
|
-
href,
|
|
2597
|
-
onPress,
|
|
2598
|
-
interactive = false,
|
|
2599
|
-
className
|
|
2600
|
-
}) {
|
|
2601
|
-
const isInteractive = interactive || !!href || !!onPress;
|
|
2602
|
-
const containerClass = twMerge16(
|
|
2603
|
-
"bg-background border border-border rounded-lg overflow-hidden shadow-sm",
|
|
2604
|
-
isInteractive && "transition-all hover:shadow-md hover:border-ring cursor-pointer",
|
|
2605
|
-
(href || onPress) && "block focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 outline-none",
|
|
2748
|
+
import { twMerge as twMerge19 } from "tailwind-merge";
|
|
2749
|
+
import { jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2750
|
+
function Card({ children, header, footer, className }) {
|
|
2751
|
+
const cx = twMerge19(
|
|
2752
|
+
`
|
|
2753
|
+
bg-card p-8
|
|
2754
|
+
border border-border
|
|
2755
|
+
rounded-lg
|
|
2756
|
+
shadow-sm
|
|
2757
|
+
`,
|
|
2606
2758
|
className
|
|
2607
2759
|
);
|
|
2608
|
-
|
|
2609
|
-
(
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
onPress();
|
|
2613
|
-
}
|
|
2614
|
-
},
|
|
2615
|
-
[onPress]
|
|
2616
|
-
);
|
|
2617
|
-
const content = /* @__PURE__ */ jsxs24(Fragment8, { children: [
|
|
2618
|
-
header && /* @__PURE__ */ jsx35(
|
|
2619
|
-
"div",
|
|
2620
|
-
{
|
|
2621
|
-
className: twMerge16(
|
|
2622
|
-
"border-b border-border",
|
|
2623
|
-
paddingStyles[padding]
|
|
2624
|
-
),
|
|
2625
|
-
children: header
|
|
2626
|
-
}
|
|
2627
|
-
),
|
|
2628
|
-
/* @__PURE__ */ jsx35("div", { className: paddingStyles[padding], children }),
|
|
2629
|
-
footer && /* @__PURE__ */ jsx35(
|
|
2630
|
-
"div",
|
|
2631
|
-
{
|
|
2632
|
-
className: twMerge16(
|
|
2633
|
-
"border-t border-border",
|
|
2634
|
-
paddingStyles[padding]
|
|
2635
|
-
),
|
|
2636
|
-
children: footer
|
|
2637
|
-
}
|
|
2638
|
-
)
|
|
2760
|
+
return /* @__PURE__ */ jsxs24("div", { className: cx, children: [
|
|
2761
|
+
header && /* @__PURE__ */ jsx40("div", { className: "border-b border-border", children: header }),
|
|
2762
|
+
children,
|
|
2763
|
+
footer && /* @__PURE__ */ jsx40("div", { className: "border-t border-border", children: footer })
|
|
2639
2764
|
] });
|
|
2640
|
-
if (href) {
|
|
2641
|
-
return /* @__PURE__ */ jsx35("a", { href, className: containerClass, children: content });
|
|
2642
|
-
}
|
|
2643
|
-
if (onPress) {
|
|
2644
|
-
return /* @__PURE__ */ jsx35(
|
|
2645
|
-
"div",
|
|
2646
|
-
{
|
|
2647
|
-
role: "button",
|
|
2648
|
-
tabIndex: 0,
|
|
2649
|
-
className: containerClass,
|
|
2650
|
-
onClick: onPress,
|
|
2651
|
-
onKeyDown: handleKeyDown,
|
|
2652
|
-
children: content
|
|
2653
|
-
}
|
|
2654
|
-
);
|
|
2655
|
-
}
|
|
2656
|
-
return /* @__PURE__ */ jsx35("div", { className: containerClass, children: content });
|
|
2657
2765
|
}
|
|
2658
2766
|
|
|
2659
2767
|
// src/components/DeltaIndicator/DeltaIndicator.tsx
|
|
2660
2768
|
import { ArrowUp as ArrowUp2, ArrowDown as ArrowDown2, Minus as Minus2 } from "lucide-react";
|
|
2661
|
-
import { twMerge as
|
|
2662
|
-
import { jsx as
|
|
2769
|
+
import { twMerge as twMerge20 } from "tailwind-merge";
|
|
2770
|
+
import { jsx as jsx41, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2663
2771
|
function getDirection(current, previous) {
|
|
2664
2772
|
const diff = current - previous;
|
|
2665
2773
|
if (diff > 0) return "increase";
|
|
@@ -2715,13 +2823,13 @@ function DeltaIndicator({
|
|
|
2715
2823
|
return /* @__PURE__ */ jsxs25(
|
|
2716
2824
|
"span",
|
|
2717
2825
|
{
|
|
2718
|
-
className:
|
|
2826
|
+
className: twMerge20(
|
|
2719
2827
|
"inline-flex items-center gap-1 font-medium",
|
|
2720
2828
|
"text-muted-foreground",
|
|
2721
2829
|
className
|
|
2722
2830
|
),
|
|
2723
2831
|
children: [
|
|
2724
|
-
label && /* @__PURE__ */
|
|
2832
|
+
label && /* @__PURE__ */ jsx41("span", { className: "text-sm text-muted-foreground mr-1", children: label }),
|
|
2725
2833
|
unavailableText
|
|
2726
2834
|
]
|
|
2727
2835
|
}
|
|
@@ -2754,7 +2862,7 @@ function DeltaIndicator({
|
|
|
2754
2862
|
return /* @__PURE__ */ jsxs25(
|
|
2755
2863
|
"span",
|
|
2756
2864
|
{
|
|
2757
|
-
className:
|
|
2865
|
+
className: twMerge20(
|
|
2758
2866
|
"inline-flex items-center gap-1 font-medium",
|
|
2759
2867
|
colorStyles2,
|
|
2760
2868
|
isPill && [
|
|
@@ -2765,8 +2873,8 @@ function DeltaIndicator({
|
|
|
2765
2873
|
className
|
|
2766
2874
|
),
|
|
2767
2875
|
children: [
|
|
2768
|
-
label && /* @__PURE__ */
|
|
2769
|
-
/* @__PURE__ */
|
|
2876
|
+
label && /* @__PURE__ */ jsx41("span", { className: "text-sm text-muted-foreground mr-1", children: label }),
|
|
2877
|
+
/* @__PURE__ */ jsx41(IconComponent, { size: 14, "aria-hidden": true }),
|
|
2770
2878
|
valueText
|
|
2771
2879
|
]
|
|
2772
2880
|
}
|
|
@@ -2774,8 +2882,8 @@ function DeltaIndicator({
|
|
|
2774
2882
|
}
|
|
2775
2883
|
|
|
2776
2884
|
// src/components/ProgressBar/ProgressBar.tsx
|
|
2777
|
-
import { twMerge as
|
|
2778
|
-
import { jsx as
|
|
2885
|
+
import { twMerge as twMerge21 } from "tailwind-merge";
|
|
2886
|
+
import { jsx as jsx42, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2779
2887
|
var fillStyles = {
|
|
2780
2888
|
brand: "bg-progress-fill",
|
|
2781
2889
|
success: "bg-progress-fill-success",
|
|
@@ -2783,7 +2891,7 @@ var fillStyles = {
|
|
|
2783
2891
|
danger: "bg-progress-fill-danger",
|
|
2784
2892
|
neutral: "bg-muted-foreground"
|
|
2785
2893
|
};
|
|
2786
|
-
var
|
|
2894
|
+
var sizeStyles6 = {
|
|
2787
2895
|
sm: "h-1.5",
|
|
2788
2896
|
md: "h-3",
|
|
2789
2897
|
lg: "h-4"
|
|
@@ -2798,12 +2906,12 @@ function ProgressBar({
|
|
|
2798
2906
|
className
|
|
2799
2907
|
}) {
|
|
2800
2908
|
const clampedValue = Math.min(100, Math.max(0, value));
|
|
2801
|
-
return /* @__PURE__ */ jsxs26("div", { className:
|
|
2909
|
+
return /* @__PURE__ */ jsxs26("div", { className: twMerge21("w-full", className), children: [
|
|
2802
2910
|
(label || description || showValue) && /* @__PURE__ */ jsxs26("div", { className: "flex items-center justify-between mb-2", children: [
|
|
2803
|
-
/* @__PURE__ */
|
|
2804
|
-
/* @__PURE__ */
|
|
2911
|
+
/* @__PURE__ */ jsx42("span", { className: "text-sm font-medium text-foreground", children: label }),
|
|
2912
|
+
/* @__PURE__ */ jsx42("span", { className: "text-sm text-muted-foreground", children: description ?? (showValue ? `${clampedValue}%` : null) })
|
|
2805
2913
|
] }),
|
|
2806
|
-
/* @__PURE__ */
|
|
2914
|
+
/* @__PURE__ */ jsx42(
|
|
2807
2915
|
"div",
|
|
2808
2916
|
{
|
|
2809
2917
|
role: "progressbar",
|
|
@@ -2811,14 +2919,14 @@ function ProgressBar({
|
|
|
2811
2919
|
"aria-valuemin": 0,
|
|
2812
2920
|
"aria-valuemax": 100,
|
|
2813
2921
|
"aria-label": label ?? "Progress",
|
|
2814
|
-
className:
|
|
2922
|
+
className: twMerge21(
|
|
2815
2923
|
"w-full rounded-full bg-progress-track",
|
|
2816
|
-
|
|
2924
|
+
sizeStyles6[size]
|
|
2817
2925
|
),
|
|
2818
|
-
children: /* @__PURE__ */
|
|
2926
|
+
children: /* @__PURE__ */ jsx42(
|
|
2819
2927
|
"div",
|
|
2820
2928
|
{
|
|
2821
|
-
className:
|
|
2929
|
+
className: twMerge21(
|
|
2822
2930
|
"h-full rounded-full transition-all duration-300",
|
|
2823
2931
|
fillStyles[variant]
|
|
2824
2932
|
),
|
|
@@ -2838,8 +2946,8 @@ import {
|
|
|
2838
2946
|
AlertCircle as AlertCircle2,
|
|
2839
2947
|
CheckCircle2 as CheckCircle22
|
|
2840
2948
|
} from "lucide-react";
|
|
2841
|
-
import { twMerge as
|
|
2842
|
-
import { jsx as
|
|
2949
|
+
import { twMerge as twMerge22 } from "tailwind-merge";
|
|
2950
|
+
import { jsx as jsx43, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2843
2951
|
var variantConfig2 = {
|
|
2844
2952
|
info: {
|
|
2845
2953
|
icon: Info3,
|
|
@@ -2887,19 +2995,19 @@ function Banner({
|
|
|
2887
2995
|
"div",
|
|
2888
2996
|
{
|
|
2889
2997
|
role: config.role,
|
|
2890
|
-
className:
|
|
2998
|
+
className: twMerge22(
|
|
2891
2999
|
"flex items-start gap-3 rounded-lg border px-4 py-3",
|
|
2892
3000
|
"text-sm",
|
|
2893
3001
|
config.containerClass,
|
|
2894
3002
|
className
|
|
2895
3003
|
),
|
|
2896
3004
|
children: [
|
|
2897
|
-
/* @__PURE__ */
|
|
3005
|
+
/* @__PURE__ */ jsx43(
|
|
2898
3006
|
Icon,
|
|
2899
3007
|
{
|
|
2900
3008
|
icon: resolvedIcon,
|
|
2901
3009
|
size: "md",
|
|
2902
|
-
className:
|
|
3010
|
+
className: twMerge22("mt-0.5", config.iconClass)
|
|
2903
3011
|
}
|
|
2904
3012
|
),
|
|
2905
3013
|
/* @__PURE__ */ jsxs27("div", { className: "flex-1", children: [
|
|
@@ -2909,14 +3017,14 @@ function Banner({
|
|
|
2909
3017
|
] }),
|
|
2910
3018
|
children
|
|
2911
3019
|
] }),
|
|
2912
|
-
dismissible && /* @__PURE__ */
|
|
3020
|
+
dismissible && /* @__PURE__ */ jsx43(
|
|
2913
3021
|
"button",
|
|
2914
3022
|
{
|
|
2915
3023
|
type: "button",
|
|
2916
3024
|
onClick: handleDismiss,
|
|
2917
3025
|
className: "shrink-0 rounded-sm p-0.5 opacity-70 hover:opacity-100 transition-opacity outline-none focus-visible:ring-2 focus-visible:ring-current",
|
|
2918
3026
|
"aria-label": "Dismiss",
|
|
2919
|
-
children: /* @__PURE__ */
|
|
3027
|
+
children: /* @__PURE__ */ jsx43(Icon, { icon: "X", size: "sm" })
|
|
2920
3028
|
}
|
|
2921
3029
|
)
|
|
2922
3030
|
]
|
|
@@ -2925,8 +3033,8 @@ function Banner({
|
|
|
2925
3033
|
}
|
|
2926
3034
|
|
|
2927
3035
|
// src/components/MetricCard/MetricCard.tsx
|
|
2928
|
-
import { twMerge as
|
|
2929
|
-
import { Fragment as
|
|
3036
|
+
import { twMerge as twMerge23 } from "tailwind-merge";
|
|
3037
|
+
import { Fragment as Fragment8, jsx as jsx44, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
2930
3038
|
var sizeConfig = {
|
|
2931
3039
|
sm: {
|
|
2932
3040
|
padding: "p-3",
|
|
@@ -2948,101 +3056,119 @@ function MetricCard({
|
|
|
2948
3056
|
className
|
|
2949
3057
|
}) {
|
|
2950
3058
|
const config = sizeConfig[size];
|
|
2951
|
-
const containerClass =
|
|
3059
|
+
const containerClass = twMerge23(
|
|
2952
3060
|
"bg-background border border-border rounded-lg shadow-sm",
|
|
2953
3061
|
config.padding,
|
|
2954
3062
|
href && "block transition-shadow hover:shadow-md hover:border-ring focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 outline-none",
|
|
2955
3063
|
className
|
|
2956
3064
|
);
|
|
2957
|
-
const content = /* @__PURE__ */ jsxs28(
|
|
2958
|
-
/* @__PURE__ */
|
|
2959
|
-
/* @__PURE__ */
|
|
3065
|
+
const content = /* @__PURE__ */ jsxs28(Fragment8, { children: [
|
|
3066
|
+
/* @__PURE__ */ jsx44("div", { className: twMerge23(config.labelClass, "text-muted-foreground"), children: label }),
|
|
3067
|
+
/* @__PURE__ */ jsx44(
|
|
2960
3068
|
"div",
|
|
2961
3069
|
{
|
|
2962
|
-
className:
|
|
3070
|
+
className: twMerge23(
|
|
2963
3071
|
config.valueClass,
|
|
2964
3072
|
"font-semibold text-foreground mt-1 tabular-nums"
|
|
2965
3073
|
),
|
|
2966
3074
|
children: value
|
|
2967
3075
|
}
|
|
2968
3076
|
),
|
|
2969
|
-
secondary && /* @__PURE__ */
|
|
3077
|
+
secondary && /* @__PURE__ */ jsx44("div", { className: "mt-1 text-sm", children: secondary })
|
|
2970
3078
|
] });
|
|
2971
3079
|
if (href) {
|
|
2972
|
-
return /* @__PURE__ */
|
|
3080
|
+
return /* @__PURE__ */ jsx44("a", { href, className: containerClass, children: content });
|
|
2973
3081
|
}
|
|
2974
|
-
return /* @__PURE__ */
|
|
3082
|
+
return /* @__PURE__ */ jsx44("div", { className: containerClass, children: content });
|
|
2975
3083
|
}
|
|
2976
3084
|
|
|
2977
3085
|
// src/components/SectionHeader/SectionHeader.tsx
|
|
2978
|
-
import {
|
|
2979
|
-
import {
|
|
2980
|
-
|
|
2981
|
-
|
|
3086
|
+
import { forwardRef as forwardRef7 } from "react";
|
|
3087
|
+
import { twMerge as twMerge24 } from "tailwind-merge";
|
|
3088
|
+
import { jsx as jsx45, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3089
|
+
var SectionHeader = forwardRef7(
|
|
3090
|
+
function SectionHeader2({ title, as = "h2", children, className, ...rest }, ref) {
|
|
3091
|
+
return /* @__PURE__ */ jsxs29(
|
|
3092
|
+
"div",
|
|
3093
|
+
{
|
|
3094
|
+
ref,
|
|
3095
|
+
className: twMerge24(
|
|
3096
|
+
"flex flex-wrap items-center gap-3 pt-0 pb-4",
|
|
3097
|
+
className
|
|
3098
|
+
),
|
|
3099
|
+
...rest,
|
|
3100
|
+
children: [
|
|
3101
|
+
/* @__PURE__ */ jsx45(Heading, { as, children: title }),
|
|
3102
|
+
children && /* @__PURE__ */ jsx45("div", { className: "ml-auto flex flex-wrap items-center gap-2", children })
|
|
3103
|
+
]
|
|
3104
|
+
}
|
|
3105
|
+
);
|
|
3106
|
+
}
|
|
3107
|
+
);
|
|
3108
|
+
|
|
3109
|
+
// src/components/DescriptionList/DescriptionList.tsx
|
|
3110
|
+
import { createContext as createContext4, useContext as useContext4 } from "react";
|
|
3111
|
+
import { Button as AriaButton4 } from "react-aria-components";
|
|
3112
|
+
import { jsx as jsx46, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3113
|
+
var LayoutContext = createContext4("stacked");
|
|
3114
|
+
var listGapStyles = {
|
|
3115
|
+
stacked: "gap-4",
|
|
3116
|
+
horizontal: "gap-3"
|
|
3117
|
+
};
|
|
3118
|
+
function DescriptionList({
|
|
2982
3119
|
children,
|
|
3120
|
+
layout = "stacked",
|
|
2983
3121
|
className
|
|
2984
3122
|
}) {
|
|
2985
|
-
return /* @__PURE__ */
|
|
2986
|
-
"
|
|
3123
|
+
return /* @__PURE__ */ jsx46(LayoutContext.Provider, { value: layout, children: /* @__PURE__ */ jsx46(
|
|
3124
|
+
"dl",
|
|
2987
3125
|
{
|
|
2988
|
-
className:
|
|
2989
|
-
|
|
2990
|
-
className
|
|
2991
|
-
),
|
|
2992
|
-
children: [
|
|
2993
|
-
/* @__PURE__ */ jsx40(H2, { children: title }),
|
|
2994
|
-
children && /* @__PURE__ */ jsx40("div", { className: "ml-auto flex flex-wrap items-center gap-2", children })
|
|
2995
|
-
]
|
|
3126
|
+
className: ["flex flex-col", listGapStyles[layout], className].filter(Boolean).join(" "),
|
|
3127
|
+
children
|
|
2996
3128
|
}
|
|
2997
|
-
);
|
|
3129
|
+
) });
|
|
2998
3130
|
}
|
|
2999
|
-
|
|
3000
|
-
|
|
3001
|
-
|
|
3002
|
-
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
3003
|
-
var hashColors = {
|
|
3004
|
-
purple: "bg-badge-purple-bg text-badge-purple-text border-badge-purple-text/20",
|
|
3005
|
-
teal: "bg-badge-teal-bg text-badge-teal-text border-badge-teal-text/20",
|
|
3006
|
-
rose: "bg-badge-rose-bg text-badge-rose-text border-badge-rose-text/20",
|
|
3007
|
-
green: "bg-badge-green-bg text-badge-green-text border-badge-green-text/20",
|
|
3008
|
-
amber: "bg-badge-amber-bg text-badge-amber-text border-badge-amber-text/20"
|
|
3009
|
-
};
|
|
3010
|
-
var colorStyles = {
|
|
3011
|
-
...hashColors,
|
|
3012
|
-
slate: "bg-badge-slate-bg text-badge-slate-text border-badge-slate-text/20"
|
|
3131
|
+
var itemLayoutStyles = {
|
|
3132
|
+
stacked: "flex flex-col gap-1",
|
|
3133
|
+
horizontal: "grid grid-cols-[140px_1fr] gap-x-(--spacing-4) items-baseline"
|
|
3013
3134
|
};
|
|
3014
|
-
var
|
|
3135
|
+
var labelClasses = "text-sm font-medium text-foreground";
|
|
3136
|
+
function DescriptionListItem({
|
|
3137
|
+
label,
|
|
3138
|
+
children,
|
|
3139
|
+
muted = false,
|
|
3140
|
+
fullValue
|
|
3141
|
+
}) {
|
|
3142
|
+
const layout = useContext4(LayoutContext);
|
|
3143
|
+
const valueClasses = [
|
|
3144
|
+
"text-sm m-0",
|
|
3145
|
+
muted ? "text-muted-foreground" : "text-foreground"
|
|
3146
|
+
].join(" ");
|
|
3147
|
+
const valueContent = /* @__PURE__ */ jsx46("dd", { className: valueClasses, children });
|
|
3148
|
+
return /* @__PURE__ */ jsxs30("div", { className: itemLayoutStyles[layout], children: [
|
|
3149
|
+
/* @__PURE__ */ jsx46("dt", { className: labelClasses, children: label }),
|
|
3150
|
+
fullValue ? /* @__PURE__ */ jsx46(Tooltip, { content: fullValue, children: /* @__PURE__ */ jsx46(AriaButton4, { className: "text-left outline-none cursor-default", children: valueContent }) }) : valueContent
|
|
3151
|
+
] });
|
|
3152
|
+
}
|
|
3153
|
+
DescriptionList.Item = DescriptionListItem;
|
|
3154
|
+
|
|
3155
|
+
// src/components/PathPill/PathPill.tsx
|
|
3156
|
+
import { twMerge as twMerge25 } from "tailwind-merge";
|
|
3157
|
+
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
3158
|
+
var hashColors = [
|
|
3159
|
+
"purple",
|
|
3160
|
+
"teal",
|
|
3161
|
+
"rose",
|
|
3162
|
+
"green",
|
|
3163
|
+
"amber"
|
|
3164
|
+
];
|
|
3015
3165
|
function pillColorFromName(name = "") {
|
|
3016
3166
|
let hash = 0;
|
|
3017
3167
|
for (let i = 0; i < name.length; i++) {
|
|
3018
3168
|
hash = name.charCodeAt(i) + ((hash << 5) - hash);
|
|
3019
3169
|
}
|
|
3020
|
-
return
|
|
3170
|
+
return hashColors[Math.abs(hash) % hashColors.length];
|
|
3021
3171
|
}
|
|
3022
|
-
function Pill({
|
|
3023
|
-
children,
|
|
3024
|
-
color = pillColorFromName(children),
|
|
3025
|
-
className,
|
|
3026
|
-
...rest
|
|
3027
|
-
}) {
|
|
3028
|
-
const cx = twMerge22(
|
|
3029
|
-
`
|
|
3030
|
-
inline-flex items-center
|
|
3031
|
-
rounded-full
|
|
3032
|
-
border
|
|
3033
|
-
px-2 py-0.5
|
|
3034
|
-
text-xs font-medium
|
|
3035
|
-
leading-tight
|
|
3036
|
-
`,
|
|
3037
|
-
colorStyles[color],
|
|
3038
|
-
className
|
|
3039
|
-
);
|
|
3040
|
-
return /* @__PURE__ */ jsx41("span", { className: cx, ...rest, children });
|
|
3041
|
-
}
|
|
3042
|
-
|
|
3043
|
-
// src/components/Pill/PathPill.tsx
|
|
3044
|
-
import { twMerge as twMerge23 } from "tailwind-merge";
|
|
3045
|
-
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
3046
3172
|
function PathPill({
|
|
3047
3173
|
children,
|
|
3048
3174
|
visibleCount,
|
|
@@ -3054,18 +3180,18 @@ function PathPill({
|
|
|
3054
3180
|
const effectiveVisible = visibleCount ?? segments.length;
|
|
3055
3181
|
const dotCount = Math.max(0, segments.length - effectiveVisible);
|
|
3056
3182
|
const fullPath = segments.join(" / ");
|
|
3057
|
-
return /* @__PURE__ */
|
|
3183
|
+
return /* @__PURE__ */ jsx47(
|
|
3058
3184
|
"div",
|
|
3059
3185
|
{
|
|
3060
|
-
className:
|
|
3186
|
+
className: twMerge25("relative flex", className),
|
|
3061
3187
|
"aria-label": `Path: ${fullPath}`,
|
|
3062
3188
|
children: segments.map((segment, i) => {
|
|
3063
3189
|
const isCollapsed = i < dotCount;
|
|
3064
3190
|
const isLast = i === segments.length - 1;
|
|
3065
|
-
const cx =
|
|
3191
|
+
const cx = twMerge25(!isLast && "pr-5 -mr-4", isCollapsed && "pr-3");
|
|
3066
3192
|
const color = colorFn ? colorFn(segment, i) : pillColorFromName(segment);
|
|
3067
|
-
return /* @__PURE__ */
|
|
3068
|
-
|
|
3193
|
+
return /* @__PURE__ */ jsx47(
|
|
3194
|
+
Badge,
|
|
3069
3195
|
{
|
|
3070
3196
|
className: cx,
|
|
3071
3197
|
color,
|
|
@@ -3080,9 +3206,9 @@ function PathPill({
|
|
|
3080
3206
|
}
|
|
3081
3207
|
|
|
3082
3208
|
// src/components/FormWizard/FormWizard.tsx
|
|
3083
|
-
import { createContext as
|
|
3084
|
-
import { jsx as
|
|
3085
|
-
var FormWizardContext =
|
|
3209
|
+
import { createContext as createContext5, useContext as useContext5, useCallback as useCallback4, useMemo } from "react";
|
|
3210
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
3211
|
+
var FormWizardContext = createContext5({
|
|
3086
3212
|
currentStep: 0,
|
|
3087
3213
|
totalSteps: 1,
|
|
3088
3214
|
canGoBack: false,
|
|
@@ -3091,7 +3217,7 @@ var FormWizardContext = createContext4({
|
|
|
3091
3217
|
isLastStep: true
|
|
3092
3218
|
});
|
|
3093
3219
|
function useFormWizard() {
|
|
3094
|
-
return
|
|
3220
|
+
return useContext5(FormWizardContext);
|
|
3095
3221
|
}
|
|
3096
3222
|
function FormWizard({
|
|
3097
3223
|
currentStep,
|
|
@@ -3101,7 +3227,7 @@ function FormWizard({
|
|
|
3101
3227
|
}) {
|
|
3102
3228
|
const canGoBack = currentStep > 0;
|
|
3103
3229
|
const isLastStep = currentStep >= totalSteps - 1;
|
|
3104
|
-
const goBack =
|
|
3230
|
+
const goBack = useCallback4(() => {
|
|
3105
3231
|
if (currentStep > 0) {
|
|
3106
3232
|
onStepChange(currentStep - 1);
|
|
3107
3233
|
}
|
|
@@ -3116,13 +3242,13 @@ function FormWizard({
|
|
|
3116
3242
|
}),
|
|
3117
3243
|
[currentStep, totalSteps, canGoBack, goBack, isLastStep]
|
|
3118
3244
|
);
|
|
3119
|
-
return /* @__PURE__ */
|
|
3245
|
+
return /* @__PURE__ */ jsx48(FormWizardContext.Provider, { value, children });
|
|
3120
3246
|
}
|
|
3121
3247
|
|
|
3122
3248
|
// src/components/FormWizard/FormWizardProgress.tsx
|
|
3123
|
-
import { jsx as
|
|
3249
|
+
import { jsx as jsx49, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
3124
3250
|
function CheckIcon() {
|
|
3125
|
-
return /* @__PURE__ */
|
|
3251
|
+
return /* @__PURE__ */ jsx49(
|
|
3126
3252
|
"svg",
|
|
3127
3253
|
{
|
|
3128
3254
|
"aria-hidden": "true",
|
|
@@ -3133,24 +3259,24 @@ function CheckIcon() {
|
|
|
3133
3259
|
strokeWidth: "2",
|
|
3134
3260
|
strokeLinecap: "round",
|
|
3135
3261
|
strokeLinejoin: "round",
|
|
3136
|
-
children: /* @__PURE__ */
|
|
3262
|
+
children: /* @__PURE__ */ jsx49("path", { d: "M3 8.5l3.5 3.5 6.5-7" })
|
|
3137
3263
|
}
|
|
3138
3264
|
);
|
|
3139
3265
|
}
|
|
3140
3266
|
function FormWizardProgress({ labels }) {
|
|
3141
3267
|
const { currentStep, totalSteps } = useFormWizard();
|
|
3142
|
-
return /* @__PURE__ */
|
|
3268
|
+
return /* @__PURE__ */ jsx49("nav", { "aria-label": "Form progress", children: /* @__PURE__ */ jsx49("ol", { className: "flex items-start", role: "list", children: labels.map((label, index) => {
|
|
3143
3269
|
const isCompleted = index < currentStep;
|
|
3144
3270
|
const isCurrent = index === currentStep;
|
|
3145
3271
|
const isFuture = index > currentStep;
|
|
3146
|
-
return /* @__PURE__ */
|
|
3272
|
+
return /* @__PURE__ */ jsxs31(
|
|
3147
3273
|
"li",
|
|
3148
3274
|
{
|
|
3149
3275
|
className: "flex flex-1 flex-col items-center",
|
|
3150
3276
|
"aria-current": isCurrent ? "step" : void 0,
|
|
3151
3277
|
children: [
|
|
3152
|
-
/* @__PURE__ */
|
|
3153
|
-
index > 0 ? /* @__PURE__ */
|
|
3278
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex w-full items-center", children: [
|
|
3279
|
+
index > 0 ? /* @__PURE__ */ jsx49(
|
|
3154
3280
|
"div",
|
|
3155
3281
|
{
|
|
3156
3282
|
"aria-hidden": "true",
|
|
@@ -3159,8 +3285,8 @@ function FormWizardProgress({ labels }) {
|
|
|
3159
3285
|
index <= currentStep ? "bg-primary" : "bg-border"
|
|
3160
3286
|
].join(" ")
|
|
3161
3287
|
}
|
|
3162
|
-
) : /* @__PURE__ */
|
|
3163
|
-
/* @__PURE__ */
|
|
3288
|
+
) : /* @__PURE__ */ jsx49("div", { className: "flex-1", "aria-hidden": "true" }),
|
|
3289
|
+
/* @__PURE__ */ jsx49(
|
|
3164
3290
|
"div",
|
|
3165
3291
|
{
|
|
3166
3292
|
className: [
|
|
@@ -3172,10 +3298,10 @@ function FormWizardProgress({ labels }) {
|
|
|
3172
3298
|
isFuture ? "border-2 border-border bg-background text-muted-foreground" : ""
|
|
3173
3299
|
].join(" "),
|
|
3174
3300
|
"aria-hidden": "true",
|
|
3175
|
-
children: isCompleted ? /* @__PURE__ */
|
|
3301
|
+
children: isCompleted ? /* @__PURE__ */ jsx49(CheckIcon, {}) : index + 1
|
|
3176
3302
|
}
|
|
3177
3303
|
),
|
|
3178
|
-
index < totalSteps - 1 ? /* @__PURE__ */
|
|
3304
|
+
index < totalSteps - 1 ? /* @__PURE__ */ jsx49(
|
|
3179
3305
|
"div",
|
|
3180
3306
|
{
|
|
3181
3307
|
"aria-hidden": "true",
|
|
@@ -3184,9 +3310,9 @@ function FormWizardProgress({ labels }) {
|
|
|
3184
3310
|
index < currentStep ? "bg-primary" : "bg-border"
|
|
3185
3311
|
].join(" ")
|
|
3186
3312
|
}
|
|
3187
|
-
) : /* @__PURE__ */
|
|
3313
|
+
) : /* @__PURE__ */ jsx49("div", { className: "flex-1", "aria-hidden": "true" })
|
|
3188
3314
|
] }),
|
|
3189
|
-
/* @__PURE__ */
|
|
3315
|
+
/* @__PURE__ */ jsx49(
|
|
3190
3316
|
"span",
|
|
3191
3317
|
{
|
|
3192
3318
|
className: [
|
|
@@ -3204,15 +3330,15 @@ function FormWizardProgress({ labels }) {
|
|
|
3204
3330
|
}
|
|
3205
3331
|
|
|
3206
3332
|
// src/components/FormWizard/FormWizardNav.tsx
|
|
3207
|
-
import { jsx as
|
|
3333
|
+
import { jsx as jsx50, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
3208
3334
|
function FormWizardNav({
|
|
3209
3335
|
onNext,
|
|
3210
3336
|
isSubmitting = false,
|
|
3211
3337
|
submitLabel = "Submit"
|
|
3212
3338
|
}) {
|
|
3213
3339
|
const { canGoBack, goBack, isLastStep } = useFormWizard();
|
|
3214
|
-
return /* @__PURE__ */
|
|
3215
|
-
canGoBack && /* @__PURE__ */
|
|
3340
|
+
return /* @__PURE__ */ jsxs32("div", { className: "flex items-center justify-end gap-3", children: [
|
|
3341
|
+
canGoBack && /* @__PURE__ */ jsx50(
|
|
3216
3342
|
Button,
|
|
3217
3343
|
{
|
|
3218
3344
|
variant: "secondary",
|
|
@@ -3222,7 +3348,7 @@ function FormWizardNav({
|
|
|
3222
3348
|
children: "Back"
|
|
3223
3349
|
}
|
|
3224
3350
|
),
|
|
3225
|
-
/* @__PURE__ */
|
|
3351
|
+
/* @__PURE__ */ jsx50(
|
|
3226
3352
|
Button,
|
|
3227
3353
|
{
|
|
3228
3354
|
variant: "primary",
|
|
@@ -3243,10 +3369,10 @@ export {
|
|
|
3243
3369
|
Card,
|
|
3244
3370
|
Cell,
|
|
3245
3371
|
Checkbox,
|
|
3246
|
-
ColorPurple700,
|
|
3247
|
-
ColorTeal500,
|
|
3248
3372
|
Column,
|
|
3249
3373
|
DeltaIndicator,
|
|
3374
|
+
Description,
|
|
3375
|
+
DescriptionList,
|
|
3250
3376
|
Dialog,
|
|
3251
3377
|
EmptyState,
|
|
3252
3378
|
Fieldset,
|
|
@@ -3256,7 +3382,10 @@ export {
|
|
|
3256
3382
|
H1,
|
|
3257
3383
|
H2,
|
|
3258
3384
|
H3,
|
|
3259
|
-
|
|
3385
|
+
H4,
|
|
3386
|
+
H5,
|
|
3387
|
+
H6,
|
|
3388
|
+
Heading,
|
|
3260
3389
|
Icon,
|
|
3261
3390
|
IconButton,
|
|
3262
3391
|
IconButtonLink,
|
|
@@ -3265,7 +3394,8 @@ export {
|
|
|
3265
3394
|
InputPassword,
|
|
3266
3395
|
Label,
|
|
3267
3396
|
Link,
|
|
3268
|
-
|
|
3397
|
+
Logo,
|
|
3398
|
+
Menu2 as Menu,
|
|
3269
3399
|
MenuCheckboxItem,
|
|
3270
3400
|
MenuHeader,
|
|
3271
3401
|
MenuItem,
|
|
@@ -3273,11 +3403,11 @@ export {
|
|
|
3273
3403
|
MenuSeparator,
|
|
3274
3404
|
MetricCard,
|
|
3275
3405
|
PathPill,
|
|
3276
|
-
Pill,
|
|
3277
3406
|
Popover4 as Popover,
|
|
3278
3407
|
PopoverContent,
|
|
3279
3408
|
PopoverTrigger,
|
|
3280
3409
|
ProgressBar,
|
|
3410
|
+
Prose,
|
|
3281
3411
|
Radio,
|
|
3282
3412
|
RadioButton,
|
|
3283
3413
|
RadioGroup,
|