@cytario/design 8.0.0 → 9.0.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 +114 -74
- package/dist/index.js +604 -483
- 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,18 +1411,22 @@ import {
|
|
|
1198
1411
|
TableBody as AriaTableBody,
|
|
1199
1412
|
TableHeader as AriaTableHeader
|
|
1200
1413
|
} from "react-aria-components";
|
|
1201
|
-
import { jsx as
|
|
1414
|
+
import { jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1202
1415
|
var tableSizeClass = {
|
|
1203
1416
|
compact: "[--table-row-py:theme(spacing.1)]",
|
|
1204
1417
|
comfortable: "[--table-row-py:theme(spacing.3)]"
|
|
1205
1418
|
};
|
|
1206
|
-
function Table2({
|
|
1207
|
-
|
|
1419
|
+
function Table2({
|
|
1420
|
+
size = "comfortable",
|
|
1421
|
+
className,
|
|
1422
|
+
...props
|
|
1423
|
+
}) {
|
|
1424
|
+
return /* @__PURE__ */ jsx17(
|
|
1208
1425
|
AriaTable,
|
|
1209
1426
|
{
|
|
1210
1427
|
...props,
|
|
1211
1428
|
className: [
|
|
1212
|
-
"w-full border-collapse text-
|
|
1429
|
+
"w-full border-collapse text-sm text-foreground",
|
|
1213
1430
|
tableSizeClass[size],
|
|
1214
1431
|
className
|
|
1215
1432
|
].filter(Boolean).join(" ")
|
|
@@ -1217,10 +1434,10 @@ function Table2({ size = "comfortable", className, ...props }) {
|
|
|
1217
1434
|
);
|
|
1218
1435
|
}
|
|
1219
1436
|
function TableHeader(props) {
|
|
1220
|
-
return /* @__PURE__ */
|
|
1437
|
+
return /* @__PURE__ */ jsx17(AriaTableHeader, { ...props });
|
|
1221
1438
|
}
|
|
1222
1439
|
function Column(props) {
|
|
1223
|
-
return /* @__PURE__ */
|
|
1440
|
+
return /* @__PURE__ */ jsx17(
|
|
1224
1441
|
AriaColumn,
|
|
1225
1442
|
{
|
|
1226
1443
|
...props,
|
|
@@ -1232,16 +1449,16 @@ function Column(props) {
|
|
|
1232
1449
|
].join(" "),
|
|
1233
1450
|
children: ({ allowsSorting, sortDirection }) => /* @__PURE__ */ jsxs9("span", { className: "inline-flex items-center gap-1", children: [
|
|
1234
1451
|
props.children,
|
|
1235
|
-
allowsSorting && /* @__PURE__ */
|
|
1452
|
+
allowsSorting && /* @__PURE__ */ jsx17("span", { "aria-hidden": "true", className: "text-muted-foreground", children: sortDirection === "ascending" ? "\u25B2" : sortDirection === "descending" ? "\u25BC" : "\u25B4" })
|
|
1236
1453
|
] })
|
|
1237
1454
|
}
|
|
1238
1455
|
);
|
|
1239
1456
|
}
|
|
1240
1457
|
function TableBody(props) {
|
|
1241
|
-
return /* @__PURE__ */
|
|
1458
|
+
return /* @__PURE__ */ jsx17(AriaTableBody, { ...props });
|
|
1242
1459
|
}
|
|
1243
1460
|
function Row(props) {
|
|
1244
|
-
return /* @__PURE__ */
|
|
1461
|
+
return /* @__PURE__ */ jsx17(
|
|
1245
1462
|
AriaRow,
|
|
1246
1463
|
{
|
|
1247
1464
|
...props,
|
|
@@ -1257,7 +1474,7 @@ function Row(props) {
|
|
|
1257
1474
|
);
|
|
1258
1475
|
}
|
|
1259
1476
|
function Cell(props) {
|
|
1260
|
-
return /* @__PURE__ */
|
|
1477
|
+
return /* @__PURE__ */ jsx17(
|
|
1261
1478
|
AriaCell,
|
|
1262
1479
|
{
|
|
1263
1480
|
...props,
|
|
@@ -1276,10 +1493,10 @@ import {
|
|
|
1276
1493
|
Modal,
|
|
1277
1494
|
ModalOverlay,
|
|
1278
1495
|
Dialog as AriaDialog,
|
|
1279
|
-
Heading
|
|
1496
|
+
Heading as Heading3
|
|
1280
1497
|
} from "react-aria-components";
|
|
1281
1498
|
import { X as X2 } from "lucide-react";
|
|
1282
|
-
import { Fragment as Fragment2, jsx as
|
|
1499
|
+
import { Fragment as Fragment2, jsx as jsx18, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1283
1500
|
var sizeStyles2 = {
|
|
1284
1501
|
sm: "max-w-md",
|
|
1285
1502
|
md: "max-w-lg",
|
|
@@ -1295,7 +1512,7 @@ function Dialog({
|
|
|
1295
1512
|
children,
|
|
1296
1513
|
className
|
|
1297
1514
|
}) {
|
|
1298
|
-
return /* @__PURE__ */
|
|
1515
|
+
return /* @__PURE__ */ jsx18(
|
|
1299
1516
|
ModalOverlay,
|
|
1300
1517
|
{
|
|
1301
1518
|
isOpen,
|
|
@@ -1307,7 +1524,7 @@ function Dialog({
|
|
|
1307
1524
|
"entering:animate-in entering:fade-in",
|
|
1308
1525
|
"exiting:animate-out exiting:fade-out"
|
|
1309
1526
|
].join(" "),
|
|
1310
|
-
children: /* @__PURE__ */
|
|
1527
|
+
children: /* @__PURE__ */ jsx18(
|
|
1311
1528
|
Modal,
|
|
1312
1529
|
{
|
|
1313
1530
|
className: [
|
|
@@ -1318,17 +1535,17 @@ function Dialog({
|
|
|
1318
1535
|
"exiting:animate-out exiting:zoom-out-95 exiting:fade-out",
|
|
1319
1536
|
className
|
|
1320
1537
|
].filter(Boolean).join(" "),
|
|
1321
|
-
children: /* @__PURE__ */
|
|
1538
|
+
children: /* @__PURE__ */ jsx18(AriaDialog, { className: "outline-none flex flex-col max-h-[85vh]", children: ({ close }) => /* @__PURE__ */ jsxs10(Fragment2, { children: [
|
|
1322
1539
|
/* @__PURE__ */ jsxs10("div", { className: "flex items-center justify-between px-6 py-4 border-b border-border", children: [
|
|
1323
|
-
/* @__PURE__ */
|
|
1324
|
-
|
|
1540
|
+
/* @__PURE__ */ jsx18(
|
|
1541
|
+
Heading3,
|
|
1325
1542
|
{
|
|
1326
1543
|
slot: "title",
|
|
1327
1544
|
className: "text-lg font-semibold text-foreground",
|
|
1328
1545
|
children: title
|
|
1329
1546
|
}
|
|
1330
1547
|
),
|
|
1331
|
-
/* @__PURE__ */
|
|
1548
|
+
/* @__PURE__ */ jsx18(
|
|
1332
1549
|
"button",
|
|
1333
1550
|
{
|
|
1334
1551
|
type: "button",
|
|
@@ -1340,11 +1557,11 @@ function Dialog({
|
|
|
1340
1557
|
"transition-colors"
|
|
1341
1558
|
].join(" "),
|
|
1342
1559
|
"aria-label": "Close",
|
|
1343
|
-
children: /* @__PURE__ */
|
|
1560
|
+
children: /* @__PURE__ */ jsx18(X2, { size: 20, "aria-hidden": "true" })
|
|
1344
1561
|
}
|
|
1345
1562
|
)
|
|
1346
1563
|
] }),
|
|
1347
|
-
/* @__PURE__ */
|
|
1564
|
+
/* @__PURE__ */ jsx18("div", { className: "px-6 py-4 overflow-y-auto", children })
|
|
1348
1565
|
] }) })
|
|
1349
1566
|
}
|
|
1350
1567
|
)
|
|
@@ -1353,7 +1570,7 @@ function Dialog({
|
|
|
1353
1570
|
}
|
|
1354
1571
|
|
|
1355
1572
|
// src/components/Dialog/DialogFooter.tsx
|
|
1356
|
-
import { jsx as
|
|
1573
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1357
1574
|
|
|
1358
1575
|
// src/components/Toast/Toast.tsx
|
|
1359
1576
|
import {
|
|
@@ -1366,7 +1583,7 @@ import {
|
|
|
1366
1583
|
} from "react";
|
|
1367
1584
|
import { createPortal as createPortal2 } from "react-dom";
|
|
1368
1585
|
import { CheckCircle as CheckCircle3, XCircle as XCircle2, Info as Info2, X as X3 } from "lucide-react";
|
|
1369
|
-
import { jsx as
|
|
1586
|
+
import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1370
1587
|
var ToastContext = createContext(null);
|
|
1371
1588
|
var toastCounter = 0;
|
|
1372
1589
|
var defaultDuration = {
|
|
@@ -1437,16 +1654,16 @@ function ToastItem({
|
|
|
1437
1654
|
config.containerClass
|
|
1438
1655
|
].join(" "),
|
|
1439
1656
|
children: [
|
|
1440
|
-
/* @__PURE__ */
|
|
1441
|
-
/* @__PURE__ */
|
|
1442
|
-
/* @__PURE__ */
|
|
1657
|
+
/* @__PURE__ */ jsx20(IconComponent, { size: 20, className: ["shrink-0 mt-0.5", config.iconClass].join(" "), "aria-hidden": "true" }),
|
|
1658
|
+
/* @__PURE__ */ jsx20("p", { className: "flex-1 text-sm font-medium", children: toast.message }),
|
|
1659
|
+
/* @__PURE__ */ jsx20(
|
|
1443
1660
|
"button",
|
|
1444
1661
|
{
|
|
1445
1662
|
type: "button",
|
|
1446
1663
|
onClick: dismiss,
|
|
1447
1664
|
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
1665
|
"aria-label": "Dismiss",
|
|
1449
|
-
children: /* @__PURE__ */
|
|
1666
|
+
children: /* @__PURE__ */ jsx20(X3, { size: 16, "aria-hidden": "true" })
|
|
1450
1667
|
}
|
|
1451
1668
|
)
|
|
1452
1669
|
]
|
|
@@ -1466,7 +1683,7 @@ function ToastContainer({
|
|
|
1466
1683
|
}) {
|
|
1467
1684
|
if (toasts.length === 0) return null;
|
|
1468
1685
|
return createPortal2(
|
|
1469
|
-
/* @__PURE__ */
|
|
1686
|
+
/* @__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
1687
|
document.body
|
|
1471
1688
|
);
|
|
1472
1689
|
}
|
|
@@ -1499,7 +1716,7 @@ function ToastProvider({ children, bridge, placement = "bottom-right" }) {
|
|
|
1499
1716
|
}, [bridge, addToast]);
|
|
1500
1717
|
return /* @__PURE__ */ jsxs11(ToastContext.Provider, { value: { toasts, addToast, removeToast }, children: [
|
|
1501
1718
|
children,
|
|
1502
|
-
/* @__PURE__ */
|
|
1719
|
+
/* @__PURE__ */ jsx20(ToastContainer, { toasts, removeToast, placement })
|
|
1503
1720
|
] });
|
|
1504
1721
|
}
|
|
1505
1722
|
function useToast() {
|
|
@@ -1515,7 +1732,7 @@ function useToast() {
|
|
|
1515
1732
|
}
|
|
1516
1733
|
|
|
1517
1734
|
// src/components/EmptyState/EmptyState.tsx
|
|
1518
|
-
import { jsx as
|
|
1735
|
+
import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1519
1736
|
function EmptyState({
|
|
1520
1737
|
icon,
|
|
1521
1738
|
title,
|
|
@@ -1531,10 +1748,10 @@ function EmptyState({
|
|
|
1531
1748
|
className
|
|
1532
1749
|
].filter(Boolean).join(" "),
|
|
1533
1750
|
children: [
|
|
1534
|
-
icon && /* @__PURE__ */
|
|
1535
|
-
/* @__PURE__ */
|
|
1536
|
-
description && /* @__PURE__ */
|
|
1537
|
-
action && /* @__PURE__ */
|
|
1751
|
+
icon && /* @__PURE__ */ jsx21(Icon, { icon, size: "xl", className: "text-muted-foreground" }),
|
|
1752
|
+
/* @__PURE__ */ jsx21("h3", { className: "text-lg font-semibold text-foreground mt-4", children: title }),
|
|
1753
|
+
description && /* @__PURE__ */ jsx21("p", { className: "text-sm text-muted-foreground mt-2 max-w-sm", children: description }),
|
|
1754
|
+
action && /* @__PURE__ */ jsx21("div", { className: "mt-6", children: action })
|
|
1538
1755
|
]
|
|
1539
1756
|
}
|
|
1540
1757
|
);
|
|
@@ -1545,9 +1762,9 @@ import {
|
|
|
1545
1762
|
Checkbox as AriaCheckbox
|
|
1546
1763
|
} from "react-aria-components";
|
|
1547
1764
|
import { Check as Check3 } from "lucide-react";
|
|
1548
|
-
import { Fragment as Fragment3, jsx as
|
|
1765
|
+
import { Fragment as Fragment3, jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1549
1766
|
function Checkbox({ children, className, ...props }) {
|
|
1550
|
-
return /* @__PURE__ */
|
|
1767
|
+
return /* @__PURE__ */ jsx22(
|
|
1551
1768
|
AriaCheckbox,
|
|
1552
1769
|
{
|
|
1553
1770
|
...props,
|
|
@@ -1567,12 +1784,12 @@ function Checkbox({ children, className, ...props }) {
|
|
|
1567
1784
|
isSelected || isIndeterminate ? "bg-primary border-primary" : "bg-background border-border group-hover:border-border"
|
|
1568
1785
|
].join(" "),
|
|
1569
1786
|
children: [
|
|
1570
|
-
isSelected && /* @__PURE__ */
|
|
1571
|
-
isIndeterminate && /* @__PURE__ */
|
|
1787
|
+
isSelected && /* @__PURE__ */ jsx22(Check3, { className: "w-4 h-4 text-primary-foreground", strokeWidth: 3 }),
|
|
1788
|
+
isIndeterminate && /* @__PURE__ */ jsx22("div", { className: "w-3 h-0.5 bg-primary-foreground rounded-full" })
|
|
1572
1789
|
]
|
|
1573
1790
|
}
|
|
1574
1791
|
),
|
|
1575
|
-
children && /* @__PURE__ */
|
|
1792
|
+
children && /* @__PURE__ */ jsx22("span", { children })
|
|
1576
1793
|
] })
|
|
1577
1794
|
}
|
|
1578
1795
|
);
|
|
@@ -1582,7 +1799,7 @@ function Checkbox({ children, className, ...props }) {
|
|
|
1582
1799
|
import {
|
|
1583
1800
|
Switch as AriaSwitch
|
|
1584
1801
|
} from "react-aria-components";
|
|
1585
|
-
import { Fragment as Fragment4, jsx as
|
|
1802
|
+
import { Fragment as Fragment4, jsx as jsx23, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1586
1803
|
var trackColorMap = {
|
|
1587
1804
|
primary: "bg-primary",
|
|
1588
1805
|
success: "bg-success",
|
|
@@ -1599,7 +1816,7 @@ function Switch({
|
|
|
1599
1816
|
...props
|
|
1600
1817
|
}) {
|
|
1601
1818
|
const isPreset = isPresetColor(color);
|
|
1602
|
-
return /* @__PURE__ */
|
|
1819
|
+
return /* @__PURE__ */ jsx23(
|
|
1603
1820
|
AriaSwitch,
|
|
1604
1821
|
{
|
|
1605
1822
|
...props,
|
|
@@ -1609,7 +1826,7 @@ function Switch({
|
|
|
1609
1826
|
className
|
|
1610
1827
|
].filter(Boolean).join(" "),
|
|
1611
1828
|
children: ({ isSelected }) => /* @__PURE__ */ jsxs14(Fragment4, { children: [
|
|
1612
|
-
/* @__PURE__ */
|
|
1829
|
+
/* @__PURE__ */ jsx23(
|
|
1613
1830
|
"div",
|
|
1614
1831
|
{
|
|
1615
1832
|
className: [
|
|
@@ -1618,7 +1835,7 @@ function Switch({
|
|
|
1618
1835
|
isSelected && isPreset ? trackColorMap[color] : !isSelected ? "bg-border" : ""
|
|
1619
1836
|
].join(" "),
|
|
1620
1837
|
style: isSelected && !isPreset ? { backgroundColor: color } : void 0,
|
|
1621
|
-
children: /* @__PURE__ */
|
|
1838
|
+
children: /* @__PURE__ */ jsx23(
|
|
1622
1839
|
"div",
|
|
1623
1840
|
{
|
|
1624
1841
|
className: [
|
|
@@ -1629,7 +1846,7 @@ function Switch({
|
|
|
1629
1846
|
)
|
|
1630
1847
|
}
|
|
1631
1848
|
),
|
|
1632
|
-
children && /* @__PURE__ */
|
|
1849
|
+
children && /* @__PURE__ */ jsx23("span", { children })
|
|
1633
1850
|
] })
|
|
1634
1851
|
}
|
|
1635
1852
|
);
|
|
@@ -1640,9 +1857,9 @@ import {
|
|
|
1640
1857
|
RadioGroup as AriaRadioGroup,
|
|
1641
1858
|
Radio as AriaRadio
|
|
1642
1859
|
} from "react-aria-components";
|
|
1643
|
-
import { Fragment as Fragment5, jsx as
|
|
1860
|
+
import { Fragment as Fragment5, jsx as jsx24, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1644
1861
|
function RadioGroup({ children, className, ...props }) {
|
|
1645
|
-
return /* @__PURE__ */
|
|
1862
|
+
return /* @__PURE__ */ jsx24(
|
|
1646
1863
|
AriaRadioGroup,
|
|
1647
1864
|
{
|
|
1648
1865
|
...props,
|
|
@@ -1656,7 +1873,7 @@ function RadioGroup({ children, className, ...props }) {
|
|
|
1656
1873
|
);
|
|
1657
1874
|
}
|
|
1658
1875
|
function Radio({ children, className, ...props }) {
|
|
1659
|
-
return /* @__PURE__ */
|
|
1876
|
+
return /* @__PURE__ */ jsx24(
|
|
1660
1877
|
AriaRadio,
|
|
1661
1878
|
{
|
|
1662
1879
|
...props,
|
|
@@ -1666,7 +1883,7 @@ function Radio({ children, className, ...props }) {
|
|
|
1666
1883
|
className
|
|
1667
1884
|
].filter(Boolean).join(" "),
|
|
1668
1885
|
children: ({ isSelected }) => /* @__PURE__ */ jsxs15(Fragment5, { children: [
|
|
1669
|
-
/* @__PURE__ */
|
|
1886
|
+
/* @__PURE__ */ jsx24(
|
|
1670
1887
|
"div",
|
|
1671
1888
|
{
|
|
1672
1889
|
className: [
|
|
@@ -1675,16 +1892,16 @@ function Radio({ children, className, ...props }) {
|
|
|
1675
1892
|
"group-focus-visible:ring-2 group-focus-visible:ring-ring group-focus-visible:ring-offset-2",
|
|
1676
1893
|
isSelected ? "border-primary" : "border-border group-hover:border-border"
|
|
1677
1894
|
].join(" "),
|
|
1678
|
-
children: isSelected && /* @__PURE__ */
|
|
1895
|
+
children: isSelected && /* @__PURE__ */ jsx24("div", { className: "w-2.5 h-2.5 rounded-full bg-primary" })
|
|
1679
1896
|
}
|
|
1680
1897
|
),
|
|
1681
|
-
children && /* @__PURE__ */
|
|
1898
|
+
children && /* @__PURE__ */ jsx24("span", { children })
|
|
1682
1899
|
] })
|
|
1683
1900
|
}
|
|
1684
1901
|
);
|
|
1685
1902
|
}
|
|
1686
1903
|
function RadioButton({ children, className, ...props }) {
|
|
1687
|
-
return /* @__PURE__ */
|
|
1904
|
+
return /* @__PURE__ */ jsx24(
|
|
1688
1905
|
AriaRadio,
|
|
1689
1906
|
{
|
|
1690
1907
|
...props,
|
|
@@ -1693,7 +1910,7 @@ function RadioButton({ children, className, ...props }) {
|
|
|
1693
1910
|
"disabled:opacity-50 disabled:cursor-default",
|
|
1694
1911
|
className
|
|
1695
1912
|
].filter(Boolean).join(" "),
|
|
1696
|
-
children: ({ isSelected }) => /* @__PURE__ */
|
|
1913
|
+
children: ({ isSelected }) => /* @__PURE__ */ jsx24(
|
|
1697
1914
|
"div",
|
|
1698
1915
|
{
|
|
1699
1916
|
className: [
|
|
@@ -1710,7 +1927,7 @@ function RadioButton({ children, className, ...props }) {
|
|
|
1710
1927
|
}
|
|
1711
1928
|
|
|
1712
1929
|
// src/components/Form/Fieldset/Fieldset.tsx
|
|
1713
|
-
import { jsx as
|
|
1930
|
+
import { jsx as jsx25, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1714
1931
|
function Fieldset({ legend, children, className }) {
|
|
1715
1932
|
return /* @__PURE__ */ jsxs16(
|
|
1716
1933
|
"fieldset",
|
|
@@ -1721,7 +1938,7 @@ function Fieldset({ legend, children, className }) {
|
|
|
1721
1938
|
className
|
|
1722
1939
|
].filter(Boolean).join(" "),
|
|
1723
1940
|
children: [
|
|
1724
|
-
legend && /* @__PURE__ */
|
|
1941
|
+
legend && /* @__PURE__ */ jsx25(
|
|
1725
1942
|
"legend",
|
|
1726
1943
|
{
|
|
1727
1944
|
className: [
|
|
@@ -1739,74 +1956,11 @@ function Fieldset({ legend, children, className }) {
|
|
|
1739
1956
|
);
|
|
1740
1957
|
}
|
|
1741
1958
|
|
|
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
1959
|
// src/components/Link/Link.tsx
|
|
1806
1960
|
import {
|
|
1807
1961
|
Link as AriaLink3
|
|
1808
1962
|
} from "react-aria-components";
|
|
1809
|
-
import { jsx as
|
|
1963
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
1810
1964
|
var variantStyles2 = {
|
|
1811
1965
|
default: [
|
|
1812
1966
|
"text-teal-700 underline",
|
|
@@ -1822,7 +1976,7 @@ function Link({
|
|
|
1822
1976
|
className,
|
|
1823
1977
|
...props
|
|
1824
1978
|
}) {
|
|
1825
|
-
return /* @__PURE__ */
|
|
1979
|
+
return /* @__PURE__ */ jsx26(
|
|
1826
1980
|
AriaLink3,
|
|
1827
1981
|
{
|
|
1828
1982
|
...props,
|
|
@@ -1843,20 +1997,20 @@ import {
|
|
|
1843
1997
|
Link as Link2
|
|
1844
1998
|
} from "react-aria-components";
|
|
1845
1999
|
import { ChevronRight as ChevronRight2 } from "lucide-react";
|
|
1846
|
-
import { Fragment as Fragment6, jsx as
|
|
2000
|
+
import { Fragment as Fragment6, jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1847
2001
|
function Breadcrumbs({ items, className }) {
|
|
1848
|
-
return /* @__PURE__ */
|
|
2002
|
+
return /* @__PURE__ */ jsx27(
|
|
1849
2003
|
"nav",
|
|
1850
2004
|
{
|
|
1851
2005
|
"aria-label": "Breadcrumb",
|
|
1852
2006
|
className,
|
|
1853
|
-
children: /* @__PURE__ */
|
|
2007
|
+
children: /* @__PURE__ */ jsx27(
|
|
1854
2008
|
AriaBreadcrumbs,
|
|
1855
2009
|
{
|
|
1856
2010
|
className: "flex items-center gap-1 text-sm min-w-0",
|
|
1857
2011
|
children: items.map((item, index) => {
|
|
1858
2012
|
const isLast = index === items.length - 1;
|
|
1859
|
-
return /* @__PURE__ */
|
|
2013
|
+
return /* @__PURE__ */ jsx27(
|
|
1860
2014
|
AriaBreadcrumb,
|
|
1861
2015
|
{
|
|
1862
2016
|
id: item.id,
|
|
@@ -1864,8 +2018,8 @@ function Breadcrumbs({ items, className }) {
|
|
|
1864
2018
|
"flex items-center gap-1",
|
|
1865
2019
|
isLast ? "min-w-0" : "shrink-0"
|
|
1866
2020
|
].join(" "),
|
|
1867
|
-
children: isLast ? /* @__PURE__ */
|
|
1868
|
-
/* @__PURE__ */
|
|
2021
|
+
children: isLast ? /* @__PURE__ */ jsx27("span", { className: "font-medium text-foreground truncate", children: item.label }) : /* @__PURE__ */ jsxs17(Fragment6, { children: [
|
|
2022
|
+
/* @__PURE__ */ jsx27(
|
|
1869
2023
|
Link2,
|
|
1870
2024
|
{
|
|
1871
2025
|
href: item.href,
|
|
@@ -1873,7 +2027,7 @@ function Breadcrumbs({ items, className }) {
|
|
|
1873
2027
|
children: item.label
|
|
1874
2028
|
}
|
|
1875
2029
|
),
|
|
1876
|
-
/* @__PURE__ */
|
|
2030
|
+
/* @__PURE__ */ jsx27(
|
|
1877
2031
|
ChevronRight2,
|
|
1878
2032
|
{
|
|
1879
2033
|
className: "shrink-0 text-slate-400",
|
|
@@ -1896,8 +2050,8 @@ function Breadcrumbs({ items, className }) {
|
|
|
1896
2050
|
import {
|
|
1897
2051
|
ToggleButton as AriaToggleButton2
|
|
1898
2052
|
} from "react-aria-components";
|
|
1899
|
-
import { twMerge as
|
|
1900
|
-
import { jsx as
|
|
2053
|
+
import { twMerge as twMerge11 } from "tailwind-merge";
|
|
2054
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
1901
2055
|
var squareSizeStyles2 = {
|
|
1902
2056
|
xs: "h-6 w-6 text-xs",
|
|
1903
2057
|
sm: "h-7 w-7 text-sm",
|
|
@@ -1942,11 +2096,11 @@ function ToggleButton({
|
|
|
1942
2096
|
...props
|
|
1943
2097
|
}) {
|
|
1944
2098
|
const styles = variantStyles3[variant];
|
|
1945
|
-
return /* @__PURE__ */
|
|
2099
|
+
return /* @__PURE__ */ jsx28(
|
|
1946
2100
|
AriaToggleButton2,
|
|
1947
2101
|
{
|
|
1948
2102
|
...props,
|
|
1949
|
-
className: ({ isSelected }) =>
|
|
2103
|
+
className: ({ isSelected }) => twMerge11(
|
|
1950
2104
|
"inline-flex items-center justify-center gap-2 cursor-pointer",
|
|
1951
2105
|
isSquare ? "rounded-none" : "rounded-md",
|
|
1952
2106
|
"font-medium",
|
|
@@ -1969,7 +2123,7 @@ import {
|
|
|
1969
2123
|
MenuItem as AriaMenuItem,
|
|
1970
2124
|
Popover as Popover2
|
|
1971
2125
|
} from "react-aria-components";
|
|
1972
|
-
import { twMerge as
|
|
2126
|
+
import { twMerge as twMerge12 } from "tailwind-merge";
|
|
1973
2127
|
|
|
1974
2128
|
// src/components/Menu/menuStyles.ts
|
|
1975
2129
|
var popoverStyles = `
|
|
@@ -1981,8 +2135,8 @@ var popoverStyles = `
|
|
|
1981
2135
|
`;
|
|
1982
2136
|
|
|
1983
2137
|
// src/components/Menu/Menu.tsx
|
|
1984
|
-
import { jsx as
|
|
1985
|
-
function
|
|
2138
|
+
import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2139
|
+
function Menu2({
|
|
1986
2140
|
items,
|
|
1987
2141
|
content,
|
|
1988
2142
|
children,
|
|
@@ -1996,7 +2150,7 @@ function Menu({
|
|
|
1996
2150
|
const selectionProps = selectionMode && selectionMode !== "none" ? { selectionMode, selectedKeys, defaultSelectedKeys, onSelectionChange } : {};
|
|
1997
2151
|
return /* @__PURE__ */ jsxs18(MenuTrigger, { children: [
|
|
1998
2152
|
children,
|
|
1999
|
-
/* @__PURE__ */
|
|
2153
|
+
/* @__PURE__ */ jsx29(Popover2, { className: twMerge12(popoverStyles, className), children: items ? /* @__PURE__ */ jsx29(
|
|
2000
2154
|
AriaMenu,
|
|
2001
2155
|
{
|
|
2002
2156
|
items,
|
|
@@ -2023,14 +2177,14 @@ function Menu({
|
|
|
2023
2177
|
item.isDanger ? "text-destructive" : "text-foreground"
|
|
2024
2178
|
].filter(Boolean).join(" "),
|
|
2025
2179
|
children: [
|
|
2026
|
-
item.icon && /* @__PURE__ */
|
|
2027
|
-
/* @__PURE__ */
|
|
2028
|
-
item.endContent && /* @__PURE__ */
|
|
2180
|
+
item.icon && /* @__PURE__ */ jsx29(Icon, { icon: item.icon, size: "sm" }),
|
|
2181
|
+
/* @__PURE__ */ jsx29("span", { className: "flex-1", children: item.label }),
|
|
2182
|
+
item.endContent && /* @__PURE__ */ jsx29("span", { className: "ml-auto flex items-center", children: item.endContent })
|
|
2029
2183
|
]
|
|
2030
2184
|
}
|
|
2031
2185
|
)
|
|
2032
2186
|
}
|
|
2033
|
-
) : /* @__PURE__ */
|
|
2187
|
+
) : /* @__PURE__ */ jsx29(
|
|
2034
2188
|
AriaMenu,
|
|
2035
2189
|
{
|
|
2036
2190
|
onAction: (key) => onAction?.(key),
|
|
@@ -2055,8 +2209,8 @@ import {
|
|
|
2055
2209
|
Popover as Popover3,
|
|
2056
2210
|
Pressable
|
|
2057
2211
|
} from "react-aria-components";
|
|
2058
|
-
import { twMerge as
|
|
2059
|
-
import { jsx as
|
|
2212
|
+
import { twMerge as twMerge13 } from "tailwind-merge";
|
|
2213
|
+
import { jsx as jsx30, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2060
2214
|
function useContextMenu({
|
|
2061
2215
|
content,
|
|
2062
2216
|
onAction,
|
|
@@ -2106,7 +2260,7 @@ function useContextMenu({
|
|
|
2106
2260
|
if (!open) close();
|
|
2107
2261
|
},
|
|
2108
2262
|
children: [
|
|
2109
|
-
/* @__PURE__ */
|
|
2263
|
+
/* @__PURE__ */ jsx30(Pressable, { children: /* @__PURE__ */ jsx30(
|
|
2110
2264
|
"span",
|
|
2111
2265
|
{
|
|
2112
2266
|
ref: anchorRef,
|
|
@@ -2115,14 +2269,14 @@ function useContextMenu({
|
|
|
2115
2269
|
style: { left: anchor?.x ?? 0, top: anchor?.y ?? 0 }
|
|
2116
2270
|
}
|
|
2117
2271
|
) }),
|
|
2118
|
-
/* @__PURE__ */
|
|
2272
|
+
/* @__PURE__ */ jsx30(
|
|
2119
2273
|
Popover3,
|
|
2120
2274
|
{
|
|
2121
2275
|
isNonModal: true,
|
|
2122
2276
|
placement: "bottom start",
|
|
2123
2277
|
ref: popoverRef,
|
|
2124
|
-
className:
|
|
2125
|
-
children: /* @__PURE__ */
|
|
2278
|
+
className: twMerge13(popoverStyles, className),
|
|
2279
|
+
children: /* @__PURE__ */ jsx30(
|
|
2126
2280
|
AriaMenu2,
|
|
2127
2281
|
{
|
|
2128
2282
|
autoFocus: "first",
|
|
@@ -2150,7 +2304,7 @@ function useContextMenu({
|
|
|
2150
2304
|
|
|
2151
2305
|
// src/components/Menu/MenuItem.tsx
|
|
2152
2306
|
import { MenuItem as AriaMenuItem2 } from "react-aria-components";
|
|
2153
|
-
import { jsx as
|
|
2307
|
+
import { jsx as jsx31, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2154
2308
|
function MenuItem({
|
|
2155
2309
|
id,
|
|
2156
2310
|
children,
|
|
@@ -2183,9 +2337,9 @@ function MenuItem({
|
|
|
2183
2337
|
className
|
|
2184
2338
|
].filter(Boolean).join(" "),
|
|
2185
2339
|
children: [
|
|
2186
|
-
icon && /* @__PURE__ */
|
|
2187
|
-
/* @__PURE__ */
|
|
2188
|
-
endContent && /* @__PURE__ */
|
|
2340
|
+
icon && /* @__PURE__ */ jsx31(Icon, { icon, size: "sm" }),
|
|
2341
|
+
/* @__PURE__ */ jsx31("span", { className: "flex-1", children }),
|
|
2342
|
+
endContent && /* @__PURE__ */ jsx31("span", { className: "ml-auto flex items-center", children: endContent })
|
|
2189
2343
|
]
|
|
2190
2344
|
}
|
|
2191
2345
|
);
|
|
@@ -2194,7 +2348,7 @@ function MenuItem({
|
|
|
2194
2348
|
// src/components/Menu/MenuCheckboxItem.tsx
|
|
2195
2349
|
import { MenuItem as AriaMenuItem3 } from "react-aria-components";
|
|
2196
2350
|
import { Check as Check4 } from "lucide-react";
|
|
2197
|
-
import { Fragment as Fragment7, jsx as
|
|
2351
|
+
import { Fragment as Fragment7, jsx as jsx32, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2198
2352
|
function MenuCheckboxItem({
|
|
2199
2353
|
id,
|
|
2200
2354
|
children,
|
|
@@ -2202,7 +2356,7 @@ function MenuCheckboxItem({
|
|
|
2202
2356
|
isDisabled,
|
|
2203
2357
|
className
|
|
2204
2358
|
}) {
|
|
2205
|
-
return /* @__PURE__ */
|
|
2359
|
+
return /* @__PURE__ */ jsx32(
|
|
2206
2360
|
AriaMenuItem3,
|
|
2207
2361
|
{
|
|
2208
2362
|
id,
|
|
@@ -2219,8 +2373,8 @@ function MenuCheckboxItem({
|
|
|
2219
2373
|
className
|
|
2220
2374
|
].filter(Boolean).join(" "),
|
|
2221
2375
|
children: ({ isSelected }) => /* @__PURE__ */ jsxs21(Fragment7, { children: [
|
|
2222
|
-
/* @__PURE__ */
|
|
2223
|
-
/* @__PURE__ */
|
|
2376
|
+
/* @__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" }) }),
|
|
2377
|
+
/* @__PURE__ */ jsx32("span", { className: "flex-1", children })
|
|
2224
2378
|
] })
|
|
2225
2379
|
}
|
|
2226
2380
|
);
|
|
@@ -2231,7 +2385,7 @@ import {
|
|
|
2231
2385
|
MenuSection as AriaMenuSection,
|
|
2232
2386
|
Header
|
|
2233
2387
|
} from "react-aria-components";
|
|
2234
|
-
import { jsx as
|
|
2388
|
+
import { jsx as jsx33, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2235
2389
|
function MenuSection({
|
|
2236
2390
|
header,
|
|
2237
2391
|
children,
|
|
@@ -2239,7 +2393,7 @@ function MenuSection({
|
|
|
2239
2393
|
className
|
|
2240
2394
|
}) {
|
|
2241
2395
|
return /* @__PURE__ */ jsxs22(AriaMenuSection, { className, "aria-label": ariaLabel, children: [
|
|
2242
|
-
header && /* @__PURE__ */
|
|
2396
|
+
header && /* @__PURE__ */ jsx33(
|
|
2243
2397
|
Header,
|
|
2244
2398
|
{
|
|
2245
2399
|
className: [
|
|
@@ -2258,16 +2412,16 @@ function MenuSection({
|
|
|
2258
2412
|
|
|
2259
2413
|
// src/components/Menu/MenuHeader.tsx
|
|
2260
2414
|
import { Header as Header2 } from "react-aria-components";
|
|
2261
|
-
import { jsx as
|
|
2415
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
2262
2416
|
function MenuHeader({ children, className }) {
|
|
2263
|
-
return /* @__PURE__ */
|
|
2417
|
+
return /* @__PURE__ */ jsx34(Header2, { className, children });
|
|
2264
2418
|
}
|
|
2265
2419
|
|
|
2266
2420
|
// src/components/Menu/MenuSeparator.tsx
|
|
2267
2421
|
import { Separator } from "react-aria-components";
|
|
2268
|
-
import { jsx as
|
|
2422
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
2269
2423
|
function MenuSeparator({ className }) {
|
|
2270
|
-
return /* @__PURE__ */
|
|
2424
|
+
return /* @__PURE__ */ jsx35(
|
|
2271
2425
|
Separator,
|
|
2272
2426
|
{
|
|
2273
2427
|
className: [
|
|
@@ -2284,17 +2438,17 @@ import {
|
|
|
2284
2438
|
Popover as AriaPopover,
|
|
2285
2439
|
Button as AriaButton3
|
|
2286
2440
|
} from "react-aria-components";
|
|
2287
|
-
import { twMerge as
|
|
2288
|
-
import { jsx as
|
|
2441
|
+
import { twMerge as twMerge14 } from "tailwind-merge";
|
|
2442
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
2289
2443
|
function Popover4({ children, isOpen, onOpenChange }) {
|
|
2290
|
-
return /* @__PURE__ */
|
|
2444
|
+
return /* @__PURE__ */ jsx36(DialogTrigger, { isOpen, onOpenChange, children });
|
|
2291
2445
|
}
|
|
2292
2446
|
function PopoverTrigger({ children, className }) {
|
|
2293
2447
|
const cx = `
|
|
2294
2448
|
inline-flex items-center bg-transparent border-none p-0 outline-none cursor-pointer
|
|
2295
2449
|
focus-visible:ring-2 focus-visible:ring-ring focus-visible:rounded-sm
|
|
2296
2450
|
`;
|
|
2297
|
-
return /* @__PURE__ */
|
|
2451
|
+
return /* @__PURE__ */ jsx36(AriaButton3, { className: twMerge14(cx, className), children });
|
|
2298
2452
|
}
|
|
2299
2453
|
function PopoverContent({
|
|
2300
2454
|
placement = "bottom",
|
|
@@ -2315,13 +2469,13 @@ function PopoverContent({
|
|
|
2315
2469
|
entering:placement-left:slide-in-from-right-1
|
|
2316
2470
|
entering:placement-right:slide-in-from-left-1
|
|
2317
2471
|
`;
|
|
2318
|
-
return /* @__PURE__ */
|
|
2472
|
+
return /* @__PURE__ */ jsx36(
|
|
2319
2473
|
AriaPopover,
|
|
2320
2474
|
{
|
|
2321
2475
|
...rest,
|
|
2322
2476
|
placement,
|
|
2323
2477
|
offset: offsetPx,
|
|
2324
|
-
className:
|
|
2478
|
+
className: twMerge14(cx, className),
|
|
2325
2479
|
children
|
|
2326
2480
|
}
|
|
2327
2481
|
);
|
|
@@ -2329,19 +2483,19 @@ function PopoverContent({
|
|
|
2329
2483
|
|
|
2330
2484
|
// src/components/Tabs/Tabs.tsx
|
|
2331
2485
|
import { createContext as createContext2, useContext as useContext2 } from "react";
|
|
2332
|
-
import { twMerge as
|
|
2486
|
+
import { twMerge as twMerge15 } from "tailwind-merge";
|
|
2333
2487
|
import {
|
|
2334
2488
|
Tabs as AriaTabs,
|
|
2335
2489
|
TabList as AriaTabList,
|
|
2336
2490
|
Tab as AriaTab,
|
|
2337
2491
|
TabPanel as AriaTabPanel
|
|
2338
2492
|
} from "react-aria-components";
|
|
2339
|
-
import { jsx as
|
|
2493
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
2340
2494
|
var TabsContext = createContext2({
|
|
2341
2495
|
variant: "underline",
|
|
2342
2496
|
size: "md"
|
|
2343
2497
|
});
|
|
2344
|
-
var
|
|
2498
|
+
var sizeStyles3 = {
|
|
2345
2499
|
sm: "px-3 py-1.5 text-sm",
|
|
2346
2500
|
md: "px-4 py-2 text-base",
|
|
2347
2501
|
lg: "px-6 py-3 text-lg"
|
|
@@ -2354,12 +2508,12 @@ function Tabs({
|
|
|
2354
2508
|
children,
|
|
2355
2509
|
...props
|
|
2356
2510
|
}) {
|
|
2357
|
-
return /* @__PURE__ */
|
|
2511
|
+
return /* @__PURE__ */ jsx37(TabsContext.Provider, { value: { variant, size }, children: /* @__PURE__ */ jsx37(
|
|
2358
2512
|
AriaTabs,
|
|
2359
2513
|
{
|
|
2360
2514
|
...props,
|
|
2361
2515
|
orientation,
|
|
2362
|
-
className:
|
|
2516
|
+
className: twMerge15(
|
|
2363
2517
|
orientation === "vertical" ? "flex" : "",
|
|
2364
2518
|
className
|
|
2365
2519
|
),
|
|
@@ -2374,11 +2528,11 @@ function TabList({
|
|
|
2374
2528
|
const { variant } = useContext2(TabsContext);
|
|
2375
2529
|
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
2530
|
const verticalStyles = variant === "unstyled" ? "flex-col" : variant === "underline" ? "flex-col border-b-0 border-r border-border" : "flex-col";
|
|
2377
|
-
return /* @__PURE__ */
|
|
2531
|
+
return /* @__PURE__ */ jsx37(
|
|
2378
2532
|
AriaTabList,
|
|
2379
2533
|
{
|
|
2380
2534
|
...props,
|
|
2381
|
-
className: ({ orientation }) =>
|
|
2535
|
+
className: ({ orientation }) => twMerge15(
|
|
2382
2536
|
baseStyles,
|
|
2383
2537
|
orientation === "vertical" ? verticalStyles : "",
|
|
2384
2538
|
className
|
|
@@ -2388,20 +2542,20 @@ function TabList({
|
|
|
2388
2542
|
}
|
|
2389
2543
|
function Tab({ className, ...props }) {
|
|
2390
2544
|
const { variant, size } = useContext2(TabsContext);
|
|
2391
|
-
return /* @__PURE__ */
|
|
2545
|
+
return /* @__PURE__ */ jsx37(
|
|
2392
2546
|
AriaTab,
|
|
2393
2547
|
{
|
|
2394
2548
|
...props,
|
|
2395
2549
|
className: ({ isSelected, isDisabled, isHovered, isPressed }) => {
|
|
2396
2550
|
if (variant === "unstyled") {
|
|
2397
|
-
return
|
|
2551
|
+
return twMerge15(
|
|
2398
2552
|
"cursor-pointer outline-none",
|
|
2399
2553
|
"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
2400
2554
|
isDisabled ? "opacity-50 pointer-events-none" : "",
|
|
2401
2555
|
className
|
|
2402
2556
|
);
|
|
2403
2557
|
}
|
|
2404
|
-
return
|
|
2558
|
+
return twMerge15(
|
|
2405
2559
|
// Base
|
|
2406
2560
|
"cursor-pointer outline-none transition-colors",
|
|
2407
2561
|
"font-medium",
|
|
@@ -2410,7 +2564,7 @@ function Tab({ className, ...props }) {
|
|
|
2410
2564
|
// Disabled
|
|
2411
2565
|
isDisabled ? "opacity-50 pointer-events-none" : "",
|
|
2412
2566
|
// Size
|
|
2413
|
-
|
|
2567
|
+
sizeStyles3[size],
|
|
2414
2568
|
...getTabVariantStyles(variant, {
|
|
2415
2569
|
isSelected,
|
|
2416
2570
|
isHovered,
|
|
@@ -2445,11 +2599,11 @@ function getTabVariantStyles(variant, state) {
|
|
|
2445
2599
|
}
|
|
2446
2600
|
function TabPanel({ className, ...props }) {
|
|
2447
2601
|
const { variant } = useContext2(TabsContext);
|
|
2448
|
-
return /* @__PURE__ */
|
|
2602
|
+
return /* @__PURE__ */ jsx37(
|
|
2449
2603
|
AriaTabPanel,
|
|
2450
2604
|
{
|
|
2451
2605
|
...props,
|
|
2452
|
-
className:
|
|
2606
|
+
className: twMerge15(
|
|
2453
2607
|
variant === "unstyled" ? "outline-none" : "mt-4 outline-none",
|
|
2454
2608
|
className
|
|
2455
2609
|
)
|
|
@@ -2467,16 +2621,16 @@ import {
|
|
|
2467
2621
|
|
|
2468
2622
|
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
2469
2623
|
import { createContext as createContext3, useContext as useContext3 } from "react";
|
|
2470
|
-
import { twMerge as
|
|
2624
|
+
import { twMerge as twMerge16 } from "tailwind-merge";
|
|
2471
2625
|
import {
|
|
2472
2626
|
ToggleButtonGroup as AriaToggleButtonGroup,
|
|
2473
2627
|
ToggleButton as AriaToggleButton3
|
|
2474
2628
|
} from "react-aria-components";
|
|
2475
|
-
import { jsx as
|
|
2629
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
2476
2630
|
var SegmentedControlContext = createContext3({
|
|
2477
2631
|
size: "md"
|
|
2478
2632
|
});
|
|
2479
|
-
var
|
|
2633
|
+
var sizeStyles4 = {
|
|
2480
2634
|
sm: "px-2.5 py-1 text-xs",
|
|
2481
2635
|
md: "px-3 py-1.5 text-sm",
|
|
2482
2636
|
lg: "px-4 py-2 text-base"
|
|
@@ -2492,7 +2646,7 @@ function SegmentedControl({
|
|
|
2492
2646
|
...props
|
|
2493
2647
|
}) {
|
|
2494
2648
|
const isNoneMode = selectionMode === "none";
|
|
2495
|
-
return /* @__PURE__ */
|
|
2649
|
+
return /* @__PURE__ */ jsx38(SegmentedControlContext.Provider, { value: { size }, children: /* @__PURE__ */ jsx38(
|
|
2496
2650
|
AriaToggleButtonGroup,
|
|
2497
2651
|
{
|
|
2498
2652
|
...props,
|
|
@@ -2500,7 +2654,7 @@ function SegmentedControl({
|
|
|
2500
2654
|
selectedKeys: isNoneMode ? /* @__PURE__ */ new Set() : selectedKeys,
|
|
2501
2655
|
defaultSelectedKeys: isNoneMode ? void 0 : defaultSelectedKeys,
|
|
2502
2656
|
onSelectionChange: isNoneMode ? void 0 : onSelectionChange,
|
|
2503
|
-
className:
|
|
2657
|
+
className: twMerge16(
|
|
2504
2658
|
"inline-flex items-center rounded-lg border border-border bg-muted p-0.5 gap-0.5",
|
|
2505
2659
|
className
|
|
2506
2660
|
),
|
|
@@ -2513,11 +2667,11 @@ function SegmentedControlItem({
|
|
|
2513
2667
|
...props
|
|
2514
2668
|
}) {
|
|
2515
2669
|
const { size } = useContext3(SegmentedControlContext);
|
|
2516
|
-
return /* @__PURE__ */
|
|
2670
|
+
return /* @__PURE__ */ jsx38(
|
|
2517
2671
|
AriaToggleButton3,
|
|
2518
2672
|
{
|
|
2519
2673
|
...props,
|
|
2520
|
-
className: ({ isSelected, isHovered, isPressed, isDisabled }) =>
|
|
2674
|
+
className: ({ isSelected, isHovered, isPressed, isDisabled }) => twMerge16(
|
|
2521
2675
|
// Base layout
|
|
2522
2676
|
"inline-flex items-center justify-center",
|
|
2523
2677
|
"rounded-md",
|
|
@@ -2528,7 +2682,7 @@ function SegmentedControlItem({
|
|
|
2528
2682
|
// Disabled
|
|
2529
2683
|
isDisabled && "opacity-50 pointer-events-none",
|
|
2530
2684
|
// Size
|
|
2531
|
-
|
|
2685
|
+
sizeStyles4[size],
|
|
2532
2686
|
// Selected state
|
|
2533
2687
|
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
2688
|
className
|
|
@@ -2538,40 +2692,43 @@ function SegmentedControlItem({
|
|
|
2538
2692
|
}
|
|
2539
2693
|
|
|
2540
2694
|
// 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"
|
|
2695
|
+
import { twMerge as twMerge17 } from "tailwind-merge";
|
|
2696
|
+
import { jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2697
|
+
var colorStyles = {
|
|
2698
|
+
purple: "bg-badge-purple-bg text-badge-purple-text border-badge-purple-text/20",
|
|
2699
|
+
teal: "bg-badge-teal-bg text-badge-teal-text border-badge-teal-text/20",
|
|
2700
|
+
rose: "bg-badge-rose-bg text-badge-rose-text border-badge-rose-text/20",
|
|
2701
|
+
slate: "bg-badge-slate-bg text-badge-slate-text border-badge-slate-text/20",
|
|
2702
|
+
green: "bg-badge-green-bg text-badge-green-text border-badge-green-text/20",
|
|
2703
|
+
amber: "bg-badge-amber-bg text-badge-amber-text border-badge-amber-text/20"
|
|
2551
2704
|
};
|
|
2552
|
-
var
|
|
2553
|
-
|
|
2554
|
-
|
|
2705
|
+
var sizeStyles5 = {
|
|
2706
|
+
xs: "px-1 py-0 text-[10px]",
|
|
2707
|
+
sm: "px-1.5 py-0.5 text-xs",
|
|
2708
|
+
md: "px-2 py-0.5 text-xs",
|
|
2709
|
+
lg: "px-2.5 py-1 text-sm"
|
|
2555
2710
|
};
|
|
2556
2711
|
function Badge({
|
|
2557
2712
|
children,
|
|
2558
|
-
|
|
2713
|
+
color = "slate",
|
|
2559
2714
|
size = "sm",
|
|
2560
2715
|
icon,
|
|
2561
|
-
className
|
|
2716
|
+
className,
|
|
2717
|
+
...rest
|
|
2562
2718
|
}) {
|
|
2563
2719
|
return /* @__PURE__ */ jsxs23(
|
|
2564
2720
|
"span",
|
|
2565
2721
|
{
|
|
2566
|
-
className:
|
|
2567
|
-
"inline-flex items-center gap-1 rounded-full",
|
|
2568
|
-
"
|
|
2569
|
-
|
|
2570
|
-
|
|
2722
|
+
className: twMerge17(
|
|
2723
|
+
"inline-flex items-center gap-1 rounded-full border",
|
|
2724
|
+
"font-medium leading-tight tracking-wider tabular-nums",
|
|
2725
|
+
colorStyles[color],
|
|
2726
|
+
sizeStyles5[size],
|
|
2571
2727
|
className
|
|
2572
2728
|
),
|
|
2729
|
+
...rest,
|
|
2573
2730
|
children: [
|
|
2574
|
-
icon && /* @__PURE__ */
|
|
2731
|
+
icon && /* @__PURE__ */ jsx39(Icon, { icon, size: "xs" }),
|
|
2575
2732
|
children
|
|
2576
2733
|
]
|
|
2577
2734
|
}
|
|
@@ -2579,87 +2736,29 @@ function Badge({
|
|
|
2579
2736
|
}
|
|
2580
2737
|
|
|
2581
2738
|
// 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",
|
|
2739
|
+
import { twMerge as twMerge18 } from "tailwind-merge";
|
|
2740
|
+
import { jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2741
|
+
function Card({ children, header, footer, className }) {
|
|
2742
|
+
const cx = twMerge18(
|
|
2743
|
+
`
|
|
2744
|
+
bg-card p-8
|
|
2745
|
+
border border-border
|
|
2746
|
+
rounded-lg
|
|
2747
|
+
shadow-sm
|
|
2748
|
+
`,
|
|
2606
2749
|
className
|
|
2607
2750
|
);
|
|
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
|
-
)
|
|
2751
|
+
return /* @__PURE__ */ jsxs24("div", { className: cx, children: [
|
|
2752
|
+
header && /* @__PURE__ */ jsx40("div", { className: "border-b border-border", children: header }),
|
|
2753
|
+
children,
|
|
2754
|
+
footer && /* @__PURE__ */ jsx40("div", { className: "border-t border-border", children: footer })
|
|
2639
2755
|
] });
|
|
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
2756
|
}
|
|
2658
2757
|
|
|
2659
2758
|
// src/components/DeltaIndicator/DeltaIndicator.tsx
|
|
2660
2759
|
import { ArrowUp as ArrowUp2, ArrowDown as ArrowDown2, Minus as Minus2 } from "lucide-react";
|
|
2661
|
-
import { twMerge as
|
|
2662
|
-
import { jsx as
|
|
2760
|
+
import { twMerge as twMerge19 } from "tailwind-merge";
|
|
2761
|
+
import { jsx as jsx41, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2663
2762
|
function getDirection(current, previous) {
|
|
2664
2763
|
const diff = current - previous;
|
|
2665
2764
|
if (diff > 0) return "increase";
|
|
@@ -2715,13 +2814,13 @@ function DeltaIndicator({
|
|
|
2715
2814
|
return /* @__PURE__ */ jsxs25(
|
|
2716
2815
|
"span",
|
|
2717
2816
|
{
|
|
2718
|
-
className:
|
|
2817
|
+
className: twMerge19(
|
|
2719
2818
|
"inline-flex items-center gap-1 font-medium",
|
|
2720
2819
|
"text-muted-foreground",
|
|
2721
2820
|
className
|
|
2722
2821
|
),
|
|
2723
2822
|
children: [
|
|
2724
|
-
label && /* @__PURE__ */
|
|
2823
|
+
label && /* @__PURE__ */ jsx41("span", { className: "text-sm text-muted-foreground mr-1", children: label }),
|
|
2725
2824
|
unavailableText
|
|
2726
2825
|
]
|
|
2727
2826
|
}
|
|
@@ -2754,7 +2853,7 @@ function DeltaIndicator({
|
|
|
2754
2853
|
return /* @__PURE__ */ jsxs25(
|
|
2755
2854
|
"span",
|
|
2756
2855
|
{
|
|
2757
|
-
className:
|
|
2856
|
+
className: twMerge19(
|
|
2758
2857
|
"inline-flex items-center gap-1 font-medium",
|
|
2759
2858
|
colorStyles2,
|
|
2760
2859
|
isPill && [
|
|
@@ -2765,8 +2864,8 @@ function DeltaIndicator({
|
|
|
2765
2864
|
className
|
|
2766
2865
|
),
|
|
2767
2866
|
children: [
|
|
2768
|
-
label && /* @__PURE__ */
|
|
2769
|
-
/* @__PURE__ */
|
|
2867
|
+
label && /* @__PURE__ */ jsx41("span", { className: "text-sm text-muted-foreground mr-1", children: label }),
|
|
2868
|
+
/* @__PURE__ */ jsx41(IconComponent, { size: 14, "aria-hidden": true }),
|
|
2770
2869
|
valueText
|
|
2771
2870
|
]
|
|
2772
2871
|
}
|
|
@@ -2774,8 +2873,8 @@ function DeltaIndicator({
|
|
|
2774
2873
|
}
|
|
2775
2874
|
|
|
2776
2875
|
// src/components/ProgressBar/ProgressBar.tsx
|
|
2777
|
-
import { twMerge as
|
|
2778
|
-
import { jsx as
|
|
2876
|
+
import { twMerge as twMerge20 } from "tailwind-merge";
|
|
2877
|
+
import { jsx as jsx42, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
2779
2878
|
var fillStyles = {
|
|
2780
2879
|
brand: "bg-progress-fill",
|
|
2781
2880
|
success: "bg-progress-fill-success",
|
|
@@ -2783,7 +2882,7 @@ var fillStyles = {
|
|
|
2783
2882
|
danger: "bg-progress-fill-danger",
|
|
2784
2883
|
neutral: "bg-muted-foreground"
|
|
2785
2884
|
};
|
|
2786
|
-
var
|
|
2885
|
+
var sizeStyles6 = {
|
|
2787
2886
|
sm: "h-1.5",
|
|
2788
2887
|
md: "h-3",
|
|
2789
2888
|
lg: "h-4"
|
|
@@ -2798,12 +2897,12 @@ function ProgressBar({
|
|
|
2798
2897
|
className
|
|
2799
2898
|
}) {
|
|
2800
2899
|
const clampedValue = Math.min(100, Math.max(0, value));
|
|
2801
|
-
return /* @__PURE__ */ jsxs26("div", { className:
|
|
2900
|
+
return /* @__PURE__ */ jsxs26("div", { className: twMerge20("w-full", className), children: [
|
|
2802
2901
|
(label || description || showValue) && /* @__PURE__ */ jsxs26("div", { className: "flex items-center justify-between mb-2", children: [
|
|
2803
|
-
/* @__PURE__ */
|
|
2804
|
-
/* @__PURE__ */
|
|
2902
|
+
/* @__PURE__ */ jsx42("span", { className: "text-sm font-medium text-foreground", children: label }),
|
|
2903
|
+
/* @__PURE__ */ jsx42("span", { className: "text-sm text-muted-foreground", children: description ?? (showValue ? `${clampedValue}%` : null) })
|
|
2805
2904
|
] }),
|
|
2806
|
-
/* @__PURE__ */
|
|
2905
|
+
/* @__PURE__ */ jsx42(
|
|
2807
2906
|
"div",
|
|
2808
2907
|
{
|
|
2809
2908
|
role: "progressbar",
|
|
@@ -2811,14 +2910,14 @@ function ProgressBar({
|
|
|
2811
2910
|
"aria-valuemin": 0,
|
|
2812
2911
|
"aria-valuemax": 100,
|
|
2813
2912
|
"aria-label": label ?? "Progress",
|
|
2814
|
-
className:
|
|
2913
|
+
className: twMerge20(
|
|
2815
2914
|
"w-full rounded-full bg-progress-track",
|
|
2816
|
-
|
|
2915
|
+
sizeStyles6[size]
|
|
2817
2916
|
),
|
|
2818
|
-
children: /* @__PURE__ */
|
|
2917
|
+
children: /* @__PURE__ */ jsx42(
|
|
2819
2918
|
"div",
|
|
2820
2919
|
{
|
|
2821
|
-
className:
|
|
2920
|
+
className: twMerge20(
|
|
2822
2921
|
"h-full rounded-full transition-all duration-300",
|
|
2823
2922
|
fillStyles[variant]
|
|
2824
2923
|
),
|
|
@@ -2838,8 +2937,8 @@ import {
|
|
|
2838
2937
|
AlertCircle as AlertCircle2,
|
|
2839
2938
|
CheckCircle2 as CheckCircle22
|
|
2840
2939
|
} from "lucide-react";
|
|
2841
|
-
import { twMerge as
|
|
2842
|
-
import { jsx as
|
|
2940
|
+
import { twMerge as twMerge21 } from "tailwind-merge";
|
|
2941
|
+
import { jsx as jsx43, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
2843
2942
|
var variantConfig2 = {
|
|
2844
2943
|
info: {
|
|
2845
2944
|
icon: Info3,
|
|
@@ -2887,19 +2986,19 @@ function Banner({
|
|
|
2887
2986
|
"div",
|
|
2888
2987
|
{
|
|
2889
2988
|
role: config.role,
|
|
2890
|
-
className:
|
|
2989
|
+
className: twMerge21(
|
|
2891
2990
|
"flex items-start gap-3 rounded-lg border px-4 py-3",
|
|
2892
2991
|
"text-sm",
|
|
2893
2992
|
config.containerClass,
|
|
2894
2993
|
className
|
|
2895
2994
|
),
|
|
2896
2995
|
children: [
|
|
2897
|
-
/* @__PURE__ */
|
|
2996
|
+
/* @__PURE__ */ jsx43(
|
|
2898
2997
|
Icon,
|
|
2899
2998
|
{
|
|
2900
2999
|
icon: resolvedIcon,
|
|
2901
3000
|
size: "md",
|
|
2902
|
-
className:
|
|
3001
|
+
className: twMerge21("mt-0.5", config.iconClass)
|
|
2903
3002
|
}
|
|
2904
3003
|
),
|
|
2905
3004
|
/* @__PURE__ */ jsxs27("div", { className: "flex-1", children: [
|
|
@@ -2909,14 +3008,14 @@ function Banner({
|
|
|
2909
3008
|
] }),
|
|
2910
3009
|
children
|
|
2911
3010
|
] }),
|
|
2912
|
-
dismissible && /* @__PURE__ */
|
|
3011
|
+
dismissible && /* @__PURE__ */ jsx43(
|
|
2913
3012
|
"button",
|
|
2914
3013
|
{
|
|
2915
3014
|
type: "button",
|
|
2916
3015
|
onClick: handleDismiss,
|
|
2917
3016
|
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
3017
|
"aria-label": "Dismiss",
|
|
2919
|
-
children: /* @__PURE__ */
|
|
3018
|
+
children: /* @__PURE__ */ jsx43(Icon, { icon: "X", size: "sm" })
|
|
2920
3019
|
}
|
|
2921
3020
|
)
|
|
2922
3021
|
]
|
|
@@ -2925,8 +3024,8 @@ function Banner({
|
|
|
2925
3024
|
}
|
|
2926
3025
|
|
|
2927
3026
|
// src/components/MetricCard/MetricCard.tsx
|
|
2928
|
-
import { twMerge as
|
|
2929
|
-
import { Fragment as
|
|
3027
|
+
import { twMerge as twMerge22 } from "tailwind-merge";
|
|
3028
|
+
import { Fragment as Fragment8, jsx as jsx44, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
2930
3029
|
var sizeConfig = {
|
|
2931
3030
|
sm: {
|
|
2932
3031
|
padding: "p-3",
|
|
@@ -2948,101 +3047,119 @@ function MetricCard({
|
|
|
2948
3047
|
className
|
|
2949
3048
|
}) {
|
|
2950
3049
|
const config = sizeConfig[size];
|
|
2951
|
-
const containerClass =
|
|
3050
|
+
const containerClass = twMerge22(
|
|
2952
3051
|
"bg-background border border-border rounded-lg shadow-sm",
|
|
2953
3052
|
config.padding,
|
|
2954
3053
|
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
3054
|
className
|
|
2956
3055
|
);
|
|
2957
|
-
const content = /* @__PURE__ */ jsxs28(
|
|
2958
|
-
/* @__PURE__ */
|
|
2959
|
-
/* @__PURE__ */
|
|
3056
|
+
const content = /* @__PURE__ */ jsxs28(Fragment8, { children: [
|
|
3057
|
+
/* @__PURE__ */ jsx44("div", { className: twMerge22(config.labelClass, "text-muted-foreground"), children: label }),
|
|
3058
|
+
/* @__PURE__ */ jsx44(
|
|
2960
3059
|
"div",
|
|
2961
3060
|
{
|
|
2962
|
-
className:
|
|
3061
|
+
className: twMerge22(
|
|
2963
3062
|
config.valueClass,
|
|
2964
3063
|
"font-semibold text-foreground mt-1 tabular-nums"
|
|
2965
3064
|
),
|
|
2966
3065
|
children: value
|
|
2967
3066
|
}
|
|
2968
3067
|
),
|
|
2969
|
-
secondary && /* @__PURE__ */
|
|
3068
|
+
secondary && /* @__PURE__ */ jsx44("div", { className: "mt-1 text-sm", children: secondary })
|
|
2970
3069
|
] });
|
|
2971
3070
|
if (href) {
|
|
2972
|
-
return /* @__PURE__ */
|
|
3071
|
+
return /* @__PURE__ */ jsx44("a", { href, className: containerClass, children: content });
|
|
2973
3072
|
}
|
|
2974
|
-
return /* @__PURE__ */
|
|
3073
|
+
return /* @__PURE__ */ jsx44("div", { className: containerClass, children: content });
|
|
2975
3074
|
}
|
|
2976
3075
|
|
|
2977
3076
|
// src/components/SectionHeader/SectionHeader.tsx
|
|
2978
|
-
import {
|
|
2979
|
-
import {
|
|
2980
|
-
|
|
2981
|
-
|
|
3077
|
+
import { forwardRef as forwardRef7 } from "react";
|
|
3078
|
+
import { twMerge as twMerge23 } from "tailwind-merge";
|
|
3079
|
+
import { jsx as jsx45, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3080
|
+
var SectionHeader = forwardRef7(
|
|
3081
|
+
function SectionHeader2({ title, as = "h2", children, className, ...rest }, ref) {
|
|
3082
|
+
return /* @__PURE__ */ jsxs29(
|
|
3083
|
+
"div",
|
|
3084
|
+
{
|
|
3085
|
+
ref,
|
|
3086
|
+
className: twMerge23(
|
|
3087
|
+
"flex flex-wrap items-center gap-3 pt-0 pb-4",
|
|
3088
|
+
className
|
|
3089
|
+
),
|
|
3090
|
+
...rest,
|
|
3091
|
+
children: [
|
|
3092
|
+
/* @__PURE__ */ jsx45(Heading, { as, children: title }),
|
|
3093
|
+
children && /* @__PURE__ */ jsx45("div", { className: "ml-auto flex flex-wrap items-center gap-2", children })
|
|
3094
|
+
]
|
|
3095
|
+
}
|
|
3096
|
+
);
|
|
3097
|
+
}
|
|
3098
|
+
);
|
|
3099
|
+
|
|
3100
|
+
// src/components/DescriptionList/DescriptionList.tsx
|
|
3101
|
+
import { createContext as createContext4, useContext as useContext4 } from "react";
|
|
3102
|
+
import { Button as AriaButton4 } from "react-aria-components";
|
|
3103
|
+
import { jsx as jsx46, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3104
|
+
var LayoutContext = createContext4("stacked");
|
|
3105
|
+
var listGapStyles = {
|
|
3106
|
+
stacked: "gap-4",
|
|
3107
|
+
horizontal: "gap-3"
|
|
3108
|
+
};
|
|
3109
|
+
function DescriptionList({
|
|
2982
3110
|
children,
|
|
3111
|
+
layout = "stacked",
|
|
2983
3112
|
className
|
|
2984
3113
|
}) {
|
|
2985
|
-
return /* @__PURE__ */
|
|
2986
|
-
"
|
|
3114
|
+
return /* @__PURE__ */ jsx46(LayoutContext.Provider, { value: layout, children: /* @__PURE__ */ jsx46(
|
|
3115
|
+
"dl",
|
|
2987
3116
|
{
|
|
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
|
-
]
|
|
3117
|
+
className: ["flex flex-col", listGapStyles[layout], className].filter(Boolean).join(" "),
|
|
3118
|
+
children
|
|
2996
3119
|
}
|
|
2997
|
-
);
|
|
3120
|
+
) });
|
|
2998
3121
|
}
|
|
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"
|
|
3122
|
+
var itemLayoutStyles = {
|
|
3123
|
+
stacked: "flex flex-col gap-1",
|
|
3124
|
+
horizontal: "grid grid-cols-[140px_1fr] gap-x-(--spacing-4) items-baseline"
|
|
3009
3125
|
};
|
|
3010
|
-
var
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3126
|
+
var labelClasses = "text-sm font-medium text-foreground";
|
|
3127
|
+
function DescriptionListItem({
|
|
3128
|
+
label,
|
|
3129
|
+
children,
|
|
3130
|
+
muted = false,
|
|
3131
|
+
fullValue
|
|
3132
|
+
}) {
|
|
3133
|
+
const layout = useContext4(LayoutContext);
|
|
3134
|
+
const valueClasses = [
|
|
3135
|
+
"text-sm m-0",
|
|
3136
|
+
muted ? "text-muted-foreground" : "text-foreground"
|
|
3137
|
+
].join(" ");
|
|
3138
|
+
const valueContent = /* @__PURE__ */ jsx46("dd", { className: valueClasses, children });
|
|
3139
|
+
return /* @__PURE__ */ jsxs30("div", { className: itemLayoutStyles[layout], children: [
|
|
3140
|
+
/* @__PURE__ */ jsx46("dt", { className: labelClasses, children: label }),
|
|
3141
|
+
fullValue ? /* @__PURE__ */ jsx46(Tooltip, { content: fullValue, children: /* @__PURE__ */ jsx46(AriaButton4, { className: "text-left outline-none cursor-default", children: valueContent }) }) : valueContent
|
|
3142
|
+
] });
|
|
3143
|
+
}
|
|
3144
|
+
DescriptionList.Item = DescriptionListItem;
|
|
3145
|
+
|
|
3146
|
+
// src/components/PathPill/PathPill.tsx
|
|
3147
|
+
import { twMerge as twMerge24 } from "tailwind-merge";
|
|
3148
|
+
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
3149
|
+
var hashColors = [
|
|
3150
|
+
"purple",
|
|
3151
|
+
"teal",
|
|
3152
|
+
"rose",
|
|
3153
|
+
"green",
|
|
3154
|
+
"amber"
|
|
3155
|
+
];
|
|
3015
3156
|
function pillColorFromName(name = "") {
|
|
3016
3157
|
let hash = 0;
|
|
3017
3158
|
for (let i = 0; i < name.length; i++) {
|
|
3018
3159
|
hash = name.charCodeAt(i) + ((hash << 5) - hash);
|
|
3019
3160
|
}
|
|
3020
|
-
return
|
|
3021
|
-
}
|
|
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 });
|
|
3161
|
+
return hashColors[Math.abs(hash) % hashColors.length];
|
|
3041
3162
|
}
|
|
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
3163
|
function PathPill({
|
|
3047
3164
|
children,
|
|
3048
3165
|
visibleCount,
|
|
@@ -3054,18 +3171,18 @@ function PathPill({
|
|
|
3054
3171
|
const effectiveVisible = visibleCount ?? segments.length;
|
|
3055
3172
|
const dotCount = Math.max(0, segments.length - effectiveVisible);
|
|
3056
3173
|
const fullPath = segments.join(" / ");
|
|
3057
|
-
return /* @__PURE__ */
|
|
3174
|
+
return /* @__PURE__ */ jsx47(
|
|
3058
3175
|
"div",
|
|
3059
3176
|
{
|
|
3060
|
-
className:
|
|
3177
|
+
className: twMerge24("relative flex", className),
|
|
3061
3178
|
"aria-label": `Path: ${fullPath}`,
|
|
3062
3179
|
children: segments.map((segment, i) => {
|
|
3063
3180
|
const isCollapsed = i < dotCount;
|
|
3064
3181
|
const isLast = i === segments.length - 1;
|
|
3065
|
-
const cx =
|
|
3182
|
+
const cx = twMerge24(!isLast && "pr-5 -mr-4", isCollapsed && "pr-3");
|
|
3066
3183
|
const color = colorFn ? colorFn(segment, i) : pillColorFromName(segment);
|
|
3067
|
-
return /* @__PURE__ */
|
|
3068
|
-
|
|
3184
|
+
return /* @__PURE__ */ jsx47(
|
|
3185
|
+
Badge,
|
|
3069
3186
|
{
|
|
3070
3187
|
className: cx,
|
|
3071
3188
|
color,
|
|
@@ -3080,9 +3197,9 @@ function PathPill({
|
|
|
3080
3197
|
}
|
|
3081
3198
|
|
|
3082
3199
|
// src/components/FormWizard/FormWizard.tsx
|
|
3083
|
-
import { createContext as
|
|
3084
|
-
import { jsx as
|
|
3085
|
-
var FormWizardContext =
|
|
3200
|
+
import { createContext as createContext5, useContext as useContext5, useCallback as useCallback4, useMemo } from "react";
|
|
3201
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
3202
|
+
var FormWizardContext = createContext5({
|
|
3086
3203
|
currentStep: 0,
|
|
3087
3204
|
totalSteps: 1,
|
|
3088
3205
|
canGoBack: false,
|
|
@@ -3091,7 +3208,7 @@ var FormWizardContext = createContext4({
|
|
|
3091
3208
|
isLastStep: true
|
|
3092
3209
|
});
|
|
3093
3210
|
function useFormWizard() {
|
|
3094
|
-
return
|
|
3211
|
+
return useContext5(FormWizardContext);
|
|
3095
3212
|
}
|
|
3096
3213
|
function FormWizard({
|
|
3097
3214
|
currentStep,
|
|
@@ -3101,7 +3218,7 @@ function FormWizard({
|
|
|
3101
3218
|
}) {
|
|
3102
3219
|
const canGoBack = currentStep > 0;
|
|
3103
3220
|
const isLastStep = currentStep >= totalSteps - 1;
|
|
3104
|
-
const goBack =
|
|
3221
|
+
const goBack = useCallback4(() => {
|
|
3105
3222
|
if (currentStep > 0) {
|
|
3106
3223
|
onStepChange(currentStep - 1);
|
|
3107
3224
|
}
|
|
@@ -3116,13 +3233,13 @@ function FormWizard({
|
|
|
3116
3233
|
}),
|
|
3117
3234
|
[currentStep, totalSteps, canGoBack, goBack, isLastStep]
|
|
3118
3235
|
);
|
|
3119
|
-
return /* @__PURE__ */
|
|
3236
|
+
return /* @__PURE__ */ jsx48(FormWizardContext.Provider, { value, children });
|
|
3120
3237
|
}
|
|
3121
3238
|
|
|
3122
3239
|
// src/components/FormWizard/FormWizardProgress.tsx
|
|
3123
|
-
import { jsx as
|
|
3240
|
+
import { jsx as jsx49, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
3124
3241
|
function CheckIcon() {
|
|
3125
|
-
return /* @__PURE__ */
|
|
3242
|
+
return /* @__PURE__ */ jsx49(
|
|
3126
3243
|
"svg",
|
|
3127
3244
|
{
|
|
3128
3245
|
"aria-hidden": "true",
|
|
@@ -3133,24 +3250,24 @@ function CheckIcon() {
|
|
|
3133
3250
|
strokeWidth: "2",
|
|
3134
3251
|
strokeLinecap: "round",
|
|
3135
3252
|
strokeLinejoin: "round",
|
|
3136
|
-
children: /* @__PURE__ */
|
|
3253
|
+
children: /* @__PURE__ */ jsx49("path", { d: "M3 8.5l3.5 3.5 6.5-7" })
|
|
3137
3254
|
}
|
|
3138
3255
|
);
|
|
3139
3256
|
}
|
|
3140
3257
|
function FormWizardProgress({ labels }) {
|
|
3141
3258
|
const { currentStep, totalSteps } = useFormWizard();
|
|
3142
|
-
return /* @__PURE__ */
|
|
3259
|
+
return /* @__PURE__ */ jsx49("nav", { "aria-label": "Form progress", children: /* @__PURE__ */ jsx49("ol", { className: "flex items-start", role: "list", children: labels.map((label, index) => {
|
|
3143
3260
|
const isCompleted = index < currentStep;
|
|
3144
3261
|
const isCurrent = index === currentStep;
|
|
3145
3262
|
const isFuture = index > currentStep;
|
|
3146
|
-
return /* @__PURE__ */
|
|
3263
|
+
return /* @__PURE__ */ jsxs31(
|
|
3147
3264
|
"li",
|
|
3148
3265
|
{
|
|
3149
3266
|
className: "flex flex-1 flex-col items-center",
|
|
3150
3267
|
"aria-current": isCurrent ? "step" : void 0,
|
|
3151
3268
|
children: [
|
|
3152
|
-
/* @__PURE__ */
|
|
3153
|
-
index > 0 ? /* @__PURE__ */
|
|
3269
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex w-full items-center", children: [
|
|
3270
|
+
index > 0 ? /* @__PURE__ */ jsx49(
|
|
3154
3271
|
"div",
|
|
3155
3272
|
{
|
|
3156
3273
|
"aria-hidden": "true",
|
|
@@ -3159,8 +3276,8 @@ function FormWizardProgress({ labels }) {
|
|
|
3159
3276
|
index <= currentStep ? "bg-primary" : "bg-border"
|
|
3160
3277
|
].join(" ")
|
|
3161
3278
|
}
|
|
3162
|
-
) : /* @__PURE__ */
|
|
3163
|
-
/* @__PURE__ */
|
|
3279
|
+
) : /* @__PURE__ */ jsx49("div", { className: "flex-1", "aria-hidden": "true" }),
|
|
3280
|
+
/* @__PURE__ */ jsx49(
|
|
3164
3281
|
"div",
|
|
3165
3282
|
{
|
|
3166
3283
|
className: [
|
|
@@ -3172,10 +3289,10 @@ function FormWizardProgress({ labels }) {
|
|
|
3172
3289
|
isFuture ? "border-2 border-border bg-background text-muted-foreground" : ""
|
|
3173
3290
|
].join(" "),
|
|
3174
3291
|
"aria-hidden": "true",
|
|
3175
|
-
children: isCompleted ? /* @__PURE__ */
|
|
3292
|
+
children: isCompleted ? /* @__PURE__ */ jsx49(CheckIcon, {}) : index + 1
|
|
3176
3293
|
}
|
|
3177
3294
|
),
|
|
3178
|
-
index < totalSteps - 1 ? /* @__PURE__ */
|
|
3295
|
+
index < totalSteps - 1 ? /* @__PURE__ */ jsx49(
|
|
3179
3296
|
"div",
|
|
3180
3297
|
{
|
|
3181
3298
|
"aria-hidden": "true",
|
|
@@ -3184,9 +3301,9 @@ function FormWizardProgress({ labels }) {
|
|
|
3184
3301
|
index < currentStep ? "bg-primary" : "bg-border"
|
|
3185
3302
|
].join(" ")
|
|
3186
3303
|
}
|
|
3187
|
-
) : /* @__PURE__ */
|
|
3304
|
+
) : /* @__PURE__ */ jsx49("div", { className: "flex-1", "aria-hidden": "true" })
|
|
3188
3305
|
] }),
|
|
3189
|
-
/* @__PURE__ */
|
|
3306
|
+
/* @__PURE__ */ jsx49(
|
|
3190
3307
|
"span",
|
|
3191
3308
|
{
|
|
3192
3309
|
className: [
|
|
@@ -3204,15 +3321,15 @@ function FormWizardProgress({ labels }) {
|
|
|
3204
3321
|
}
|
|
3205
3322
|
|
|
3206
3323
|
// src/components/FormWizard/FormWizardNav.tsx
|
|
3207
|
-
import { jsx as
|
|
3324
|
+
import { jsx as jsx50, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
3208
3325
|
function FormWizardNav({
|
|
3209
3326
|
onNext,
|
|
3210
3327
|
isSubmitting = false,
|
|
3211
3328
|
submitLabel = "Submit"
|
|
3212
3329
|
}) {
|
|
3213
3330
|
const { canGoBack, goBack, isLastStep } = useFormWizard();
|
|
3214
|
-
return /* @__PURE__ */
|
|
3215
|
-
canGoBack && /* @__PURE__ */
|
|
3331
|
+
return /* @__PURE__ */ jsxs32("div", { className: "flex items-center justify-end gap-3", children: [
|
|
3332
|
+
canGoBack && /* @__PURE__ */ jsx50(
|
|
3216
3333
|
Button,
|
|
3217
3334
|
{
|
|
3218
3335
|
variant: "secondary",
|
|
@@ -3222,7 +3339,7 @@ function FormWizardNav({
|
|
|
3222
3339
|
children: "Back"
|
|
3223
3340
|
}
|
|
3224
3341
|
),
|
|
3225
|
-
/* @__PURE__ */
|
|
3342
|
+
/* @__PURE__ */ jsx50(
|
|
3226
3343
|
Button,
|
|
3227
3344
|
{
|
|
3228
3345
|
variant: "primary",
|
|
@@ -3243,10 +3360,10 @@ export {
|
|
|
3243
3360
|
Card,
|
|
3244
3361
|
Cell,
|
|
3245
3362
|
Checkbox,
|
|
3246
|
-
ColorPurple700,
|
|
3247
|
-
ColorTeal500,
|
|
3248
3363
|
Column,
|
|
3249
3364
|
DeltaIndicator,
|
|
3365
|
+
Description,
|
|
3366
|
+
DescriptionList,
|
|
3250
3367
|
Dialog,
|
|
3251
3368
|
EmptyState,
|
|
3252
3369
|
Fieldset,
|
|
@@ -3256,7 +3373,10 @@ export {
|
|
|
3256
3373
|
H1,
|
|
3257
3374
|
H2,
|
|
3258
3375
|
H3,
|
|
3259
|
-
|
|
3376
|
+
H4,
|
|
3377
|
+
H5,
|
|
3378
|
+
H6,
|
|
3379
|
+
Heading,
|
|
3260
3380
|
Icon,
|
|
3261
3381
|
IconButton,
|
|
3262
3382
|
IconButtonLink,
|
|
@@ -3265,7 +3385,8 @@ export {
|
|
|
3265
3385
|
InputPassword,
|
|
3266
3386
|
Label,
|
|
3267
3387
|
Link,
|
|
3268
|
-
|
|
3388
|
+
Logo,
|
|
3389
|
+
Menu2 as Menu,
|
|
3269
3390
|
MenuCheckboxItem,
|
|
3270
3391
|
MenuHeader,
|
|
3271
3392
|
MenuItem,
|
|
@@ -3273,11 +3394,11 @@ export {
|
|
|
3273
3394
|
MenuSeparator,
|
|
3274
3395
|
MetricCard,
|
|
3275
3396
|
PathPill,
|
|
3276
|
-
Pill,
|
|
3277
3397
|
Popover4 as Popover,
|
|
3278
3398
|
PopoverContent,
|
|
3279
3399
|
PopoverTrigger,
|
|
3280
3400
|
ProgressBar,
|
|
3401
|
+
Prose,
|
|
3281
3402
|
Radio,
|
|
3282
3403
|
RadioButton,
|
|
3283
3404
|
RadioGroup,
|