@northslopetech/altitude-ui 3.1.0 → 3.2.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.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  // src/components/ui/alert.tsx
2
- import * as React from "react";
3
- import { cva as cva2 } from "class-variance-authority";
2
+ import * as React2 from "react";
3
+ import { cva as cva3 } from "class-variance-authority";
4
4
 
5
5
  // src/lib/utils.ts
6
6
  import { clsx } from "clsx";
@@ -70,124 +70,6 @@ function cn(...inputs) {
70
70
  return twMerge(clsx(inputs));
71
71
  }
72
72
 
73
- // src/components/ui/alert.tsx
74
- import { jsx } from "react/jsx-runtime";
75
- var alertVariants = cva2(
76
- "relative flex flex-wrap w-full items-center data-[multiline]:items-start gap-4 rounded-md border px-4 py-3 [&>[data-slot=alert-body]>svg]:size-4 [&>[data-slot=alert-body]>svg]:shrink-0",
77
- {
78
- variants: {
79
- variant: {
80
- default: "surface-default border-default [&>[data-slot=alert-body]>svg]:text-default",
81
- info: "surface-info border-info [&>[data-slot=alert-body]>svg]:text-info",
82
- success: "surface-success border-success [&>[data-slot=alert-body]>svg]:text-success",
83
- warning: "surface-warning border-warning [&>[data-slot=alert-body]>svg]:text-warning",
84
- error: "surface-error border-error [&>[data-slot=alert-body]>svg]:text-error"
85
- }
86
- },
87
- defaultVariants: {
88
- variant: "default"
89
- }
90
- }
91
- );
92
- function Alert({ className, variant, ref, ...props }) {
93
- return /* @__PURE__ */ jsx(
94
- "div",
95
- {
96
- ref,
97
- "data-slot": "alert",
98
- role: variant === "warning" || variant === "error" ? "alert" : "status",
99
- className: cn(alertVariants({ variant }), className),
100
- ...props
101
- }
102
- );
103
- }
104
- function AlertBody({ className, ref, ...props }) {
105
- return /* @__PURE__ */ jsx(
106
- "div",
107
- {
108
- ref,
109
- "data-slot": "alert-body",
110
- className: cn(
111
- "grid flex-1 min-w-0 grid-cols-[auto_1fr] gap-x-3 gap-y-0.5 items-start [&>svg]:col-start-1 [&>svg]:row-start-1 [&>svg]:mt-0.5",
112
- className
113
- ),
114
- ...props
115
- }
116
- );
117
- }
118
- function AlertTitle({ className, ref, ...props }) {
119
- return /* @__PURE__ */ jsx(
120
- "p",
121
- {
122
- ref,
123
- "data-slot": "alert-title",
124
- className: cn(
125
- "col-start-2 row-start-1 type-body-sm-medium text-default",
126
- className
127
- ),
128
- ...props
129
- }
130
- );
131
- }
132
- function AlertDescription({
133
- className,
134
- ref: externalRef,
135
- ...props
136
- }) {
137
- const localRef = React.useRef(null);
138
- React.useLayoutEffect(() => {
139
- const el = localRef.current;
140
- if (!el) return;
141
- const alert = el.closest("[data-slot=alert]");
142
- if (!alert) return;
143
- const update = () => {
144
- const lineHeight = parseFloat(getComputedStyle(el).lineHeight);
145
- alert.toggleAttribute(
146
- "data-multiline",
147
- el.clientHeight > lineHeight * 1.5
148
- );
149
- };
150
- update();
151
- const resizeObserver = new ResizeObserver(update);
152
- resizeObserver.observe(el);
153
- return () => {
154
- resizeObserver.disconnect();
155
- alert.removeAttribute("data-multiline");
156
- };
157
- }, []);
158
- return /* @__PURE__ */ jsx(
159
- "p",
160
- {
161
- ref: (node) => {
162
- localRef.current = node;
163
- if (typeof externalRef === "function") externalRef(node);
164
- else if (externalRef)
165
- externalRef.current = node;
166
- },
167
- "data-slot": "alert-description",
168
- className: cn(
169
- "col-start-2 type-body-sm-regular text-secondary",
170
- className
171
- ),
172
- ...props
173
- }
174
- );
175
- }
176
- function AlertActions({ className, ref, ...props }) {
177
- return /* @__PURE__ */ jsx(
178
- "div",
179
- {
180
- ref,
181
- "data-slot": "alert-actions",
182
- className: cn("shrink-0 flex items-center gap-2", className),
183
- ...props
184
- }
185
- );
186
- }
187
-
188
- // src/components/ui/accordion.tsx
189
- import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion";
190
-
191
73
  // src/components/ui/icons.tsx
192
74
  import { LockIcon as PhosphorLock } from "@phosphor-icons/react/Lock";
193
75
  import { CheckIcon as PhosphorCheck } from "@phosphor-icons/react/Check";
@@ -248,7 +130,7 @@ import { SquaresFourIcon as PhosphorSquaresFour } from "@phosphor-icons/react/Sq
248
130
  import { MagnifyingGlassPlusIcon as PhosphorMagnifyingGlassPlus } from "@phosphor-icons/react/MagnifyingGlassPlus";
249
131
  import { MagnifyingGlassMinusIcon as PhosphorMagnifyingGlassMinus } from "@phosphor-icons/react/MagnifyingGlassMinus";
250
132
  import { SidebarSimpleIcon as PhosphorSidebarSimple } from "@phosphor-icons/react/SidebarSimple";
251
- import { jsx as jsx2 } from "react/jsx-runtime";
133
+ import { jsx } from "react/jsx-runtime";
252
134
  function createIcon(PhosphorIcon) {
253
135
  function Wrapped({
254
136
  className,
@@ -257,7 +139,7 @@ function createIcon(PhosphorIcon) {
257
139
  ref,
258
140
  ...props
259
141
  }) {
260
- return /* @__PURE__ */ jsx2(
142
+ return /* @__PURE__ */ jsx(
261
143
  PhosphorIcon,
262
144
  {
263
145
  ref,
@@ -331,81 +213,12 @@ var PanelIcon = createIcon(PhosphorSidebarSimple);
331
213
  var ZoomInIcon = createIcon(PhosphorMagnifyingGlassPlus);
332
214
  var ZoomOutIcon = createIcon(PhosphorMagnifyingGlassMinus);
333
215
 
334
- // src/components/ui/accordion.tsx
335
- import { jsx as jsx3, jsxs } from "react/jsx-runtime";
336
- function Accordion({ className, ref, ...props }) {
337
- return /* @__PURE__ */ jsx3(
338
- AccordionPrimitive.Root,
339
- {
340
- ref,
341
- "data-slot": "accordion",
342
- className: cn("flex w-full flex-col", className),
343
- ...props
344
- }
345
- );
346
- }
347
- function AccordionItem({ className, ref, ...props }) {
348
- return /* @__PURE__ */ jsx3(
349
- AccordionPrimitive.Item,
350
- {
351
- ref,
352
- "data-slot": "accordion-item",
353
- className: cn("border-b border-muted", className),
354
- ...props
355
- }
356
- );
357
- }
358
- function AccordionTrigger({
359
- className,
360
- children,
361
- ref,
362
- ...props
363
- }) {
364
- return /* @__PURE__ */ jsx3(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
365
- AccordionPrimitive.Trigger,
366
- {
367
- ref,
368
- "data-slot": "accordion-trigger",
369
- className: cn(
370
- "group/accordion-trigger flex flex-1 items-center justify-between py-4 type-body-sm-medium text-default outline-none focus-visible:rounded-sm focus-visible:ring-2 focus-visible:ring-focus-default data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
371
- className
372
- ),
373
- ...props,
374
- children: [
375
- children,
376
- /* @__PURE__ */ jsx3(CaretDownIcon, { className: "shrink-0 text-secondary group-data-[panel-open]/accordion-trigger:hidden" }),
377
- /* @__PURE__ */ jsx3(CaretUpIcon, { className: "hidden shrink-0 text-secondary group-data-[panel-open]/accordion-trigger:block" })
378
- ]
379
- }
380
- ) });
381
- }
382
- function AccordionContent({
383
- className,
384
- children,
385
- ref,
386
- ...props
387
- }) {
388
- return /* @__PURE__ */ jsx3(
389
- AccordionPrimitive.Panel,
390
- {
391
- ref,
392
- "data-slot": "accordion-content",
393
- className: cn(
394
- "h-(--accordion-panel-height) overflow-hidden transition-[height] duration-200 ease-out data-[ending-style]:h-0 data-[starting-style]:h-0",
395
- className
396
- ),
397
- ...props,
398
- children: /* @__PURE__ */ jsx3("div", { className: "pb-4 type-body-sm-regular text-default", children })
399
- }
400
- );
401
- }
402
-
403
216
  // src/components/ui/button.tsx
404
- import * as React2 from "react";
217
+ import * as React from "react";
405
218
  import { Button as ButtonPrimitive } from "@base-ui/react/button";
406
- import { cva as cva3 } from "class-variance-authority";
407
- import { jsx as jsx4 } from "react/jsx-runtime";
408
- var buttonVariants = cva3(
219
+ import { cva as cva2 } from "class-variance-authority";
220
+ import { jsx as jsx2 } from "react/jsx-runtime";
221
+ var buttonVariants = cva2(
409
222
  [
410
223
  // Base layout
411
224
  "inline-flex items-center justify-center gap-2 whitespace-nowrap",
@@ -451,7 +264,7 @@ var buttonVariants = cva3(
451
264
  ],
452
265
  "destructive-subtle": [
453
266
  // Base
454
- "interactive-default text-error shadow-xs",
267
+ "interactive-destructive-subtle interactive-destructive-subtle-fg shadow-xs",
455
268
  "border border-default",
456
269
  // Hover & active
457
270
  "hover:interactive-hover",
@@ -515,7 +328,7 @@ var buttonVariants = cva3(
515
328
  }
516
329
  }
517
330
  );
518
- var hasTextChildren = (children) => React2.Children.toArray(children).some(
331
+ var hasTextChildren = (children) => React.Children.toArray(children).some(
519
332
  (child) => typeof child === "string" && child.trim().length > 0
520
333
  );
521
334
  function Button({
@@ -529,7 +342,7 @@ function Button({
529
342
  }) {
530
343
  const isIconOnly = !hasTextChildren(children);
531
344
  const iconOnlyClasses = isIconOnly ? "aspect-square px-0 py-0" : void 0;
532
- return /* @__PURE__ */ jsx4(
345
+ return /* @__PURE__ */ jsx2(
533
346
  ButtonPrimitive,
534
347
  {
535
348
  "data-slot": "button",
@@ -546,6 +359,206 @@ function Button({
546
359
  );
547
360
  }
548
361
 
362
+ // src/components/ui/alert.tsx
363
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
364
+ var alertVariants = cva3(
365
+ "relative flex flex-wrap w-full items-center data-[multiline]:items-start gap-4 rounded-md px-4 py-3 [&>[data-slot=alert-body]>svg]:size-4 [&>[data-slot=alert-body]>svg]:shrink-0",
366
+ {
367
+ variants: {
368
+ variant: {
369
+ default: "surface-secondary [&>[data-slot=alert-body]>svg]:text-default",
370
+ info: "surface-info border-info [&>[data-slot=alert-body]>svg]:text-info",
371
+ success: "surface-success border-success [&>[data-slot=alert-body]>svg]:text-success",
372
+ warning: "surface-warning border-warning [&>[data-slot=alert-body]>svg]:text-warning",
373
+ error: "surface-error border-error [&>[data-slot=alert-body]>svg]:text-error"
374
+ }
375
+ },
376
+ defaultVariants: {
377
+ variant: "default"
378
+ }
379
+ }
380
+ );
381
+ function Alert({ className, variant, onDismiss, ref, ...props }) {
382
+ return /* @__PURE__ */ jsxs(
383
+ "div",
384
+ {
385
+ ref,
386
+ "data-slot": "alert",
387
+ role: variant === "warning" || variant === "error" ? "alert" : "status",
388
+ className: cn(alertVariants({ variant }), className),
389
+ ...props,
390
+ children: [
391
+ props.children,
392
+ onDismiss && /* @__PURE__ */ jsx3(
393
+ Button,
394
+ {
395
+ type: "button",
396
+ variant: "ghost",
397
+ size: "mini",
398
+ "aria-label": "Dismiss",
399
+ onClick: onDismiss,
400
+ className: "shrink-0 self-start",
401
+ children: /* @__PURE__ */ jsx3(CloseIcon, { size: 16 })
402
+ }
403
+ )
404
+ ]
405
+ }
406
+ );
407
+ }
408
+ function AlertBody({ className, ref, ...props }) {
409
+ return /* @__PURE__ */ jsx3(
410
+ "div",
411
+ {
412
+ ref,
413
+ "data-slot": "alert-body",
414
+ className: cn(
415
+ "grid flex-1 min-w-0 grid-cols-1 gap-y-0.5 items-start [&:has(>svg)]:grid-cols-[auto_1fr] [&:has(>svg)]:gap-x-3 [&>svg]:col-start-1 [&>svg]:row-start-1 [&>svg]:mt-0.5",
416
+ className
417
+ ),
418
+ ...props
419
+ }
420
+ );
421
+ }
422
+ function AlertTitle({ className, ref, ...props }) {
423
+ return /* @__PURE__ */ jsx3(
424
+ "p",
425
+ {
426
+ ref,
427
+ "data-slot": "alert-title",
428
+ className: cn(
429
+ "row-start-1 type-body-sm-medium text-default [div:has(>svg)>&]:col-start-2",
430
+ className
431
+ ),
432
+ ...props
433
+ }
434
+ );
435
+ }
436
+ function AlertDescription({
437
+ className,
438
+ ref: externalRef,
439
+ ...props
440
+ }) {
441
+ const localRef = React2.useRef(null);
442
+ React2.useLayoutEffect(() => {
443
+ const el = localRef.current;
444
+ if (!el) return;
445
+ const alert = el.closest("[data-slot=alert]");
446
+ if (!alert) return;
447
+ const update = () => {
448
+ const lineHeight = parseFloat(getComputedStyle(el).lineHeight);
449
+ alert.toggleAttribute(
450
+ "data-multiline",
451
+ el.clientHeight > lineHeight * 1.5
452
+ );
453
+ };
454
+ update();
455
+ const resizeObserver = new ResizeObserver(update);
456
+ resizeObserver.observe(el);
457
+ return () => {
458
+ resizeObserver.disconnect();
459
+ alert.removeAttribute("data-multiline");
460
+ };
461
+ }, []);
462
+ return /* @__PURE__ */ jsx3(
463
+ "p",
464
+ {
465
+ ref: (node) => {
466
+ localRef.current = node;
467
+ if (typeof externalRef === "function") externalRef(node);
468
+ else if (externalRef)
469
+ externalRef.current = node;
470
+ },
471
+ "data-slot": "alert-description",
472
+ className: cn(
473
+ "type-body-sm-regular text-secondary [div:has(>svg)>&]:col-start-2",
474
+ className
475
+ ),
476
+ ...props
477
+ }
478
+ );
479
+ }
480
+ function AlertActions({ className, ref, ...props }) {
481
+ return /* @__PURE__ */ jsx3(
482
+ "div",
483
+ {
484
+ ref,
485
+ "data-slot": "alert-actions",
486
+ className: cn("shrink-0 flex items-center gap-2", className),
487
+ ...props
488
+ }
489
+ );
490
+ }
491
+
492
+ // src/components/ui/accordion.tsx
493
+ import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion";
494
+ import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
495
+ function Accordion({ className, ref, ...props }) {
496
+ return /* @__PURE__ */ jsx4(
497
+ AccordionPrimitive.Root,
498
+ {
499
+ ref,
500
+ "data-slot": "accordion",
501
+ className: cn("flex w-full flex-col", className),
502
+ ...props
503
+ }
504
+ );
505
+ }
506
+ function AccordionItem({ className, ref, ...props }) {
507
+ return /* @__PURE__ */ jsx4(
508
+ AccordionPrimitive.Item,
509
+ {
510
+ ref,
511
+ "data-slot": "accordion-item",
512
+ className: cn("border-b border-muted", className),
513
+ ...props
514
+ }
515
+ );
516
+ }
517
+ function AccordionTrigger({
518
+ className,
519
+ children,
520
+ ref,
521
+ ...props
522
+ }) {
523
+ return /* @__PURE__ */ jsx4(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs2(
524
+ AccordionPrimitive.Trigger,
525
+ {
526
+ ref,
527
+ "data-slot": "accordion-trigger",
528
+ className: cn(
529
+ "group/accordion-trigger flex flex-1 items-center justify-between py-4 type-body-sm-medium text-default outline-none focus-visible:rounded-sm focus-visible:ring-2 focus-visible:ring-focus-default data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
530
+ className
531
+ ),
532
+ ...props,
533
+ children: [
534
+ children,
535
+ /* @__PURE__ */ jsx4(CaretDownIcon, { className: "shrink-0 text-secondary group-data-[panel-open]/accordion-trigger:hidden" }),
536
+ /* @__PURE__ */ jsx4(CaretUpIcon, { className: "hidden shrink-0 text-secondary group-data-[panel-open]/accordion-trigger:block" })
537
+ ]
538
+ }
539
+ ) });
540
+ }
541
+ function AccordionContent({
542
+ className,
543
+ children,
544
+ ref,
545
+ ...props
546
+ }) {
547
+ return /* @__PURE__ */ jsx4(
548
+ AccordionPrimitive.Panel,
549
+ {
550
+ ref,
551
+ "data-slot": "accordion-content",
552
+ className: cn(
553
+ "h-(--accordion-panel-height) overflow-hidden transition-[height] duration-200 ease-out data-[ending-style]:h-0 data-[starting-style]:h-0",
554
+ className
555
+ ),
556
+ ...props,
557
+ children: /* @__PURE__ */ jsx4("div", { className: "pb-4 type-body-sm-regular text-default", children })
558
+ }
559
+ );
560
+ }
561
+
549
562
  // src/components/ui/button-group.tsx
550
563
  import * as React3 from "react";
551
564
  import { mergeProps } from "@base-ui/react/merge-props";
@@ -958,7 +971,7 @@ function CardFooter({ className, ref, ...props }) {
958
971
  // src/components/ui/select.tsx
959
972
  import { Select as SelectPrimitive } from "@base-ui/react/select";
960
973
  import { cva as cva7 } from "class-variance-authority";
961
- import { jsx as jsx10, jsxs as jsxs2 } from "react/jsx-runtime";
974
+ import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
962
975
  var selectTriggerVariants = cva7(
963
976
  [
964
977
  // Layout
@@ -1003,7 +1016,7 @@ function SelectTrigger({
1003
1016
  ref,
1004
1017
  ...props
1005
1018
  }) {
1006
- return /* @__PURE__ */ jsxs2(
1019
+ return /* @__PURE__ */ jsxs3(
1007
1020
  SelectPrimitive.Trigger,
1008
1021
  {
1009
1022
  "data-slot": "select-trigger",
@@ -1043,7 +1056,7 @@ function SelectContent({
1043
1056
  positionerClassName
1044
1057
  ),
1045
1058
  ...props,
1046
- children: /* @__PURE__ */ jsxs2(
1059
+ children: /* @__PURE__ */ jsxs3(
1047
1060
  SelectPrimitive.Popup,
1048
1061
  {
1049
1062
  ref,
@@ -1167,7 +1180,7 @@ import { Combobox as ComboboxPrimitive } from "@base-ui/react";
1167
1180
  // src/components/ui/badge.tsx
1168
1181
  import * as React4 from "react";
1169
1182
  import { cva as cva8 } from "class-variance-authority";
1170
- import { jsxs as jsxs3 } from "react/jsx-runtime";
1183
+ import { jsxs as jsxs4 } from "react/jsx-runtime";
1171
1184
  var badgeVariants = cva8(
1172
1185
  [
1173
1186
  // Layout
@@ -1239,7 +1252,7 @@ function Badge({
1239
1252
  return null;
1240
1253
  }
1241
1254
  const circle = isSingleDisplayCharacter(children) && !iconLeft && !iconRight;
1242
- return /* @__PURE__ */ jsxs3(
1255
+ return /* @__PURE__ */ jsxs4(
1243
1256
  "span",
1244
1257
  {
1245
1258
  ...props,
@@ -1269,7 +1282,7 @@ function Badge({
1269
1282
  }
1270
1283
 
1271
1284
  // src/components/ui/combobox.tsx
1272
- import { jsx as jsx11, jsxs as jsxs4 } from "react/jsx-runtime";
1285
+ import { jsx as jsx11, jsxs as jsxs5 } from "react/jsx-runtime";
1273
1286
  var comboboxInputVariants = cva(
1274
1287
  [
1275
1288
  // Layout
@@ -1344,7 +1357,7 @@ function ComboboxInput({
1344
1357
  ref,
1345
1358
  ...props
1346
1359
  }) {
1347
- return /* @__PURE__ */ jsxs4(
1360
+ return /* @__PURE__ */ jsxs5(
1348
1361
  "div",
1349
1362
  {
1350
1363
  ref,
@@ -1434,7 +1447,7 @@ function ComboboxItem({
1434
1447
  children,
1435
1448
  ...props
1436
1449
  }) {
1437
- return /* @__PURE__ */ jsxs4(
1450
+ return /* @__PURE__ */ jsxs5(
1438
1451
  ComboboxPrimitive.Item,
1439
1452
  {
1440
1453
  "data-slot": "combobox-item",
@@ -1571,7 +1584,7 @@ function ComboboxChips({
1571
1584
  disabled = false,
1572
1585
  ...props
1573
1586
  }) {
1574
- return /* @__PURE__ */ jsxs4(
1587
+ return /* @__PURE__ */ jsxs5(
1575
1588
  ComboboxPrimitive.Chips,
1576
1589
  {
1577
1590
  "data-slot": "combobox-chips",
@@ -1592,7 +1605,7 @@ function ComboboxChip({
1592
1605
  removeLabel = "Remove",
1593
1606
  ...props
1594
1607
  }) {
1595
- return /* @__PURE__ */ jsxs4(
1608
+ return /* @__PURE__ */ jsxs5(
1596
1609
  ComboboxPrimitive.Chip,
1597
1610
  {
1598
1611
  "data-slot": "combobox-chip",
@@ -1659,7 +1672,7 @@ function Label({ className, ref, ...props }) {
1659
1672
  }
1660
1673
 
1661
1674
  // src/components/ui/field.tsx
1662
- import { jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
1675
+ import { jsx as jsx13, jsxs as jsxs6 } from "react/jsx-runtime";
1663
1676
  function FieldSet({ className, ...props }) {
1664
1677
  return /* @__PURE__ */ jsx13(
1665
1678
  "fieldset",
@@ -1810,7 +1823,7 @@ function FieldSeparator({
1810
1823
  className,
1811
1824
  ...props
1812
1825
  }) {
1813
- return /* @__PURE__ */ jsxs5(
1826
+ return /* @__PURE__ */ jsxs6(
1814
1827
  "div",
1815
1828
  {
1816
1829
  "data-slot": "field-separator",
@@ -1872,7 +1885,7 @@ function FieldError({
1872
1885
  // src/components/ui/dialog.tsx
1873
1886
  import * as React6 from "react";
1874
1887
  import { Dialog as DialogPrimitive } from "@base-ui/react/dialog";
1875
- import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
1888
+ import { jsx as jsx14, jsxs as jsxs7 } from "react/jsx-runtime";
1876
1889
  var DialogChromeContext = React6.createContext(null);
1877
1890
  function useDialogChrome() {
1878
1891
  return React6.useContext(DialogChromeContext) ?? { showCloseButton: false };
@@ -1882,7 +1895,7 @@ function DialogCloseControl({
1882
1895
  ref,
1883
1896
  ...props
1884
1897
  }) {
1885
- return /* @__PURE__ */ jsxs6(
1898
+ return /* @__PURE__ */ jsxs7(
1886
1899
  DialogPrimitive.Close,
1887
1900
  {
1888
1901
  ref,
@@ -1925,7 +1938,7 @@ function DialogContent({
1925
1938
  ref,
1926
1939
  ...props
1927
1940
  }) {
1928
- return /* @__PURE__ */ jsxs6(DialogPrimitive.Portal, { children: [
1941
+ return /* @__PURE__ */ jsxs7(DialogPrimitive.Portal, { children: [
1929
1942
  /* @__PURE__ */ jsx14(DialogOverlay, {}),
1930
1943
  /* @__PURE__ */ jsx14(DialogPrimitive.Viewport, { className: "fixed inset-0 z-50 flex items-start justify-center overflow-y-auto p-4 sm:items-center sm:p-6", children: /* @__PURE__ */ jsx14(
1931
1944
  DialogPrimitive.Popup,
@@ -1978,7 +1991,7 @@ function DialogHeader({
1978
1991
  ...props
1979
1992
  }) {
1980
1993
  const { showCloseButton } = useDialogChrome();
1981
- return /* @__PURE__ */ jsxs6(
1994
+ return /* @__PURE__ */ jsxs7(
1982
1995
  "div",
1983
1996
  {
1984
1997
  ref,
@@ -2023,7 +2036,7 @@ var DialogClose = DialogPrimitive.Close;
2023
2036
  // src/components/ui/drawer.tsx
2024
2037
  import * as React7 from "react";
2025
2038
  import { Drawer as DrawerPrimitive } from "vaul";
2026
- import { jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
2039
+ import { jsx as jsx15, jsxs as jsxs8 } from "react/jsx-runtime";
2027
2040
  var DrawerContext = React7.createContext({
2028
2041
  direction: "bottom"
2029
2042
  });
@@ -2046,9 +2059,9 @@ DrawerOverlay.displayName = "DrawerOverlay";
2046
2059
  var DrawerContent = React7.forwardRef(
2047
2060
  ({ className, children, ...props }, ref) => {
2048
2061
  const { direction } = React7.useContext(DrawerContext);
2049
- return /* @__PURE__ */ jsxs7(DrawerPortal, { children: [
2062
+ return /* @__PURE__ */ jsxs8(DrawerPortal, { children: [
2050
2063
  /* @__PURE__ */ jsx15(DrawerOverlay, {}),
2051
- /* @__PURE__ */ jsxs7(
2064
+ /* @__PURE__ */ jsxs8(
2052
2065
  DrawerPrimitive.Content,
2053
2066
  {
2054
2067
  ref,
@@ -2135,7 +2148,7 @@ DrawerFooter.displayName = "DrawerFooter";
2135
2148
  // src/components/ui/breadcrumb.tsx
2136
2149
  import { mergeProps as mergeProps2 } from "@base-ui/react/merge-props";
2137
2150
  import { useRender as useRender2 } from "@base-ui/react/use-render";
2138
- import { jsx as jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
2151
+ import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
2139
2152
  function Breadcrumb({ className, ref, ...props }) {
2140
2153
  return /* @__PURE__ */ jsx16(
2141
2154
  "nav",
@@ -2232,7 +2245,7 @@ function BreadcrumbEllipsis({
2232
2245
  ref,
2233
2246
  ...props
2234
2247
  }) {
2235
- return /* @__PURE__ */ jsxs8(
2248
+ return /* @__PURE__ */ jsxs9(
2236
2249
  "span",
2237
2250
  {
2238
2251
  "data-slot": "breadcrumb-ellipsis",
@@ -2254,7 +2267,7 @@ function BreadcrumbEllipsis({
2254
2267
 
2255
2268
  // src/components/ui/tooltip.tsx
2256
2269
  import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
2257
- import { jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
2270
+ import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
2258
2271
  function TooltipProvider({
2259
2272
  delay = 0,
2260
2273
  ...props
@@ -2284,7 +2297,7 @@ function TooltipContent({
2284
2297
  side,
2285
2298
  sideOffset,
2286
2299
  className: "isolate z-50",
2287
- children: /* @__PURE__ */ jsxs9(
2300
+ children: /* @__PURE__ */ jsxs10(
2288
2301
  TooltipPrimitive.Popup,
2289
2302
  {
2290
2303
  "data-slot": "tooltip-content",
@@ -2335,7 +2348,7 @@ function TooltipContent({
2335
2348
 
2336
2349
  // src/components/ui/toast.tsx
2337
2350
  import { Toast as ToastPrimitive } from "@base-ui/react/toast";
2338
- import { jsx as jsx18, jsxs as jsxs10 } from "react/jsx-runtime";
2351
+ import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
2339
2352
  var toastManager = ToastPrimitive.createToastManager();
2340
2353
  function emit(manager, type, title, options = {}) {
2341
2354
  const { description, duration, priority, action, id } = options;
@@ -2382,14 +2395,13 @@ var TYPE_ICON_COLOR = {
2382
2395
  warning: "text-warning"
2383
2396
  };
2384
2397
  var TYPE_SURFACE = {
2385
- default: "surface-default border-default",
2386
- success: "surface-success border-success",
2387
- error: "surface-error border-error",
2388
- info: "surface-info border-info",
2389
- warning: "surface-warning border-warning"
2398
+ default: "surface-default border border-default",
2399
+ success: "surface-success",
2400
+ error: "surface-error",
2401
+ info: "surface-info",
2402
+ warning: "surface-warning"
2390
2403
  };
2391
2404
  var VIEWPORT_POSITION = {
2392
- "top-left": "top-4 left-4 sm:top-8 sm:left-8",
2393
2405
  "top-center": "top-4 left-1/2 -translate-x-1/2 sm:top-8",
2394
2406
  "top-right": "top-4 right-4 sm:top-8 sm:right-8",
2395
2407
  "bottom-left": "bottom-4 left-4 sm:bottom-8 sm:left-8",
@@ -2421,7 +2433,7 @@ function ToastList({ side }) {
2421
2433
  side === "top" ? "top-0 origin-top" : "bottom-0 origin-bottom",
2422
2434
  // Surface — variant-tinted to match the Alert component (default = neutral)
2423
2435
  TYPE_SURFACE[type],
2424
- "rounded-lg border bg-clip-padding shadow-lg select-none",
2436
+ "rounded-lg bg-clip-padding shadow-lg select-none",
2425
2437
  // Collapsed transform: peek + shrink each toast behind the front one
2426
2438
  "[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+(var(--y-dir)*((var(--toast-index)*var(--peek))+(var(--shrink)*var(--height))))))_scale(var(--scale))]",
2427
2439
  // Expanded (hover/focus) transform: fan out by real heights + gap
@@ -2441,12 +2453,13 @@ function ToastList({ side }) {
2441
2453
  // Motion
2442
2454
  "[transition:transform_0.5s_cubic-bezier(0.22,1,0.36,1),opacity_0.4s,height_0.15s]"
2443
2455
  ),
2444
- children: /* @__PURE__ */ jsxs10(
2456
+ children: /* @__PURE__ */ jsxs11(
2445
2457
  ToastPrimitive.Content,
2446
2458
  {
2447
2459
  "data-slot": "toast-content",
2448
2460
  className: cn(
2449
- "flex h-full items-start gap-3 p-4 overflow-hidden",
2461
+ "flex h-full gap-3 px-4 py-3 overflow-hidden",
2462
+ item.description ? "items-start" : "items-center",
2450
2463
  "transition-opacity duration-[250ms] ease-[cubic-bezier(0.22,1,0.36,1)]",
2451
2464
  "data-behind:opacity-0 data-expanded:opacity-100"
2452
2465
  ),
@@ -2457,15 +2470,15 @@ function ToastList({ side }) {
2457
2470
  className: cn("mt-0.5 size-4 shrink-0", TYPE_ICON_COLOR[type])
2458
2471
  }
2459
2472
  ) : null,
2460
- /* @__PURE__ */ jsxs10("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
2473
+ /* @__PURE__ */ jsxs11("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
2461
2474
  /* @__PURE__ */ jsx18(
2462
2475
  ToastPrimitive.Title,
2463
2476
  {
2464
2477
  "data-slot": "toast-title",
2465
- className: "type-body-sm-medium text-default"
2478
+ className: item.description ? "type-body-sm-medium text-default" : "type-label-sm-medium text-default"
2466
2479
  }
2467
2480
  ),
2468
- /* @__PURE__ */ jsx18(
2481
+ item.description && /* @__PURE__ */ jsx18(
2469
2482
  ToastPrimitive.Description,
2470
2483
  {
2471
2484
  "data-slot": "toast-description",
@@ -2477,12 +2490,8 @@ function ToastList({ side }) {
2477
2490
  ToastPrimitive.Action,
2478
2491
  {
2479
2492
  "data-slot": "toast-action",
2480
- className: cn(
2481
- "shrink-0 rounded-md border border-default px-2.5 py-1",
2482
- "type-label-xs-medium text-default surface-default",
2483
- "transition-colors hover:surface-secondary",
2484
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus-default"
2485
- )
2493
+ render: /* @__PURE__ */ jsx18(Button, { variant: "default", size: "mini" }),
2494
+ ...item.actionProps
2486
2495
  }
2487
2496
  ) : null,
2488
2497
  /* @__PURE__ */ jsx18(
@@ -2525,7 +2534,7 @@ function Toaster({
2525
2534
  {
2526
2535
  "data-slot": "toaster",
2527
2536
  className: cn(
2528
- "fixed z-50 mx-auto flex w-[calc(100vw-2rem)] sm:w-[22.5rem]",
2537
+ "fixed z-50 mx-auto flex w-[calc(100vw-2rem)] sm:w-[400px]",
2529
2538
  VIEWPORT_POSITION[position],
2530
2539
  className
2531
2540
  ),
@@ -2683,7 +2692,7 @@ function PopoverDescription({
2683
2692
 
2684
2693
  // src/components/ui/sidebar.tsx
2685
2694
  import * as React8 from "react";
2686
- import { jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
2695
+ import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
2687
2696
  var SIDEBAR_CONSTANTS = {
2688
2697
  WIDTH: "144px",
2689
2698
  WIDTH_ICON: "48px"
@@ -2758,7 +2767,7 @@ function Sidebar({
2758
2767
  ...props
2759
2768
  }) {
2760
2769
  const { state } = useSidebar();
2761
- return /* @__PURE__ */ jsxs11(
2770
+ return /* @__PURE__ */ jsxs12(
2762
2771
  "aside",
2763
2772
  {
2764
2773
  ref,
@@ -2782,7 +2791,7 @@ function Sidebar({
2782
2791
  "div",
2783
2792
  {
2784
2793
  className: cn(
2785
- "fixed inset-y-0 z-10 h-svh w-[var(--sidebar-width)] transition-[left,right,width] duration-200 ease-linear flex left-0",
2794
+ "fixed inset-y-0 z-10 h-svh w-[var(--sidebar-width)] transition-[left,right,width] duration-200 ease-linear flex left-0 border-r border-[var(--color-sidebar-border)]",
2786
2795
  "group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)]"
2787
2796
  ),
2788
2797
  children: /* @__PURE__ */ jsx21(
@@ -2932,11 +2941,29 @@ function SidebarMenuButton({
2932
2941
  return button;
2933
2942
  }
2934
2943
  const tooltipProps = typeof tooltip === "string" ? { children: tooltip } : tooltip;
2935
- return /* @__PURE__ */ jsx21(TooltipProvider, { delay: 0, children: /* @__PURE__ */ jsxs11(Tooltip, { children: [
2944
+ return /* @__PURE__ */ jsx21(TooltipProvider, { delay: 0, children: /* @__PURE__ */ jsxs12(Tooltip, { children: [
2936
2945
  /* @__PURE__ */ jsx21(TooltipTrigger, { render: button }),
2937
2946
  /* @__PURE__ */ jsx21(TooltipContent, { side: "right", align: "center", ...tooltipProps })
2938
2947
  ] }) });
2939
2948
  }
2949
+ function SidebarSeparator({
2950
+ className,
2951
+ ref,
2952
+ ...props
2953
+ }) {
2954
+ return /* @__PURE__ */ jsx21(
2955
+ "div",
2956
+ {
2957
+ ref,
2958
+ "data-sidebar": "separator",
2959
+ className: cn(
2960
+ "border-t border-[var(--color-sidebar-border)] w-full",
2961
+ className
2962
+ ),
2963
+ ...props
2964
+ }
2965
+ );
2966
+ }
2940
2967
 
2941
2968
  // src/components/ui/calendar.tsx
2942
2969
  import * as React9 from "react";
@@ -3155,7 +3182,7 @@ CalendarDayButton.displayName = "CalendarDayButton";
3155
3182
 
3156
3183
  // src/components/ui/date-picker.tsx
3157
3184
  import * as React10 from "react";
3158
- import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
3185
+ import { jsx as jsx23, jsxs as jsxs13 } from "react/jsx-runtime";
3159
3186
  function DatePickerTrigger({
3160
3187
  label,
3161
3188
  placeholder = "Pick a date",
@@ -3164,7 +3191,7 @@ function DatePickerTrigger({
3164
3191
  ref,
3165
3192
  ...rest
3166
3193
  }) {
3167
- return /* @__PURE__ */ jsxs12(
3194
+ return /* @__PURE__ */ jsxs13(
3168
3195
  PopoverTrigger,
3169
3196
  {
3170
3197
  disabled,
@@ -3230,7 +3257,7 @@ function DatePicker(props) {
3230
3257
  month: "long",
3231
3258
  day: "numeric"
3232
3259
  }) : null;
3233
- return /* @__PURE__ */ jsxs12(Popover, { children: [
3260
+ return /* @__PURE__ */ jsxs13(Popover, { children: [
3234
3261
  /* @__PURE__ */ jsx23(
3235
3262
  DatePickerTrigger,
3236
3263
  {
@@ -3262,7 +3289,7 @@ function DatePicker(props) {
3262
3289
  // src/components/ui/upload.tsx
3263
3290
  import * as React11 from "react";
3264
3291
  import { cva as cva10 } from "class-variance-authority";
3265
- import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
3292
+ import { jsx as jsx24, jsxs as jsxs14 } from "react/jsx-runtime";
3266
3293
  var DEFAULT_MAX_FILE_SIZE = 10 * 1024 * 1024;
3267
3294
  var uploadVariants = cva10(
3268
3295
  "relative flex flex-col items-center justify-center rounded-lg transition-all duration-200 ease-in-out overflow-hidden w-full p-16 min-h-[200px]",
@@ -3364,13 +3391,13 @@ function Upload({
3364
3391
  const renderContent = () => {
3365
3392
  switch (effectiveState) {
3366
3393
  case "error":
3367
- return /* @__PURE__ */ jsxs13(
3394
+ return /* @__PURE__ */ jsxs14(
3368
3395
  "div",
3369
3396
  {
3370
3397
  className: "flex flex-col items-center text-center max-w-[289px]",
3371
3398
  style: { gap: "32px" },
3372
3399
  children: [
3373
- /* @__PURE__ */ jsxs13("div", { className: "space-y-4", children: [
3400
+ /* @__PURE__ */ jsxs14("div", { className: "space-y-4", children: [
3374
3401
  /* @__PURE__ */ jsx24(Text, { variant: "h5", children: "Upload fail" }),
3375
3402
  /* @__PURE__ */ jsx24(Text, { variant: "body-md", className: "text-error", children: errorMessage })
3376
3403
  ] }),
@@ -3388,14 +3415,14 @@ function Upload({
3388
3415
  }
3389
3416
  );
3390
3417
  case "uploading":
3391
- return /* @__PURE__ */ jsxs13(
3418
+ return /* @__PURE__ */ jsxs14(
3392
3419
  "div",
3393
3420
  {
3394
3421
  className: "flex flex-col items-center text-center max-w-[289px]",
3395
3422
  style: { gap: "32px" },
3396
3423
  children: [
3397
3424
  /* @__PURE__ */ jsx24(Text, { variant: "h5", className: "text-default", children: "Uploading files" }),
3398
- /* @__PURE__ */ jsxs13("div", { className: "w-full max-w-[720px] space-y-2", children: [
3425
+ /* @__PURE__ */ jsxs14("div", { className: "w-full max-w-[720px] space-y-2", children: [
3399
3426
  /* @__PURE__ */ jsx24("div", { className: "w-full surface-secondary rounded-full h-2", children: /* @__PURE__ */ jsx24(
3400
3427
  "div",
3401
3428
  {
@@ -3403,7 +3430,7 @@ function Upload({
3403
3430
  style: { width: `${progress}%` }
3404
3431
  }
3405
3432
  ) }),
3406
- /* @__PURE__ */ jsxs13(Text, { variant: "body-sm", className: "text-secondary text-center", children: [
3433
+ /* @__PURE__ */ jsxs14(Text, { variant: "body-sm", className: "text-secondary text-center", children: [
3407
3434
  Math.round(progress),
3408
3435
  "% complete"
3409
3436
  ] })
@@ -3417,20 +3444,20 @@ function Upload({
3417
3444
  {
3418
3445
  className: "flex flex-col items-center text-center max-w-[289px]",
3419
3446
  style: { gap: "32px" },
3420
- children: /* @__PURE__ */ jsxs13("div", { className: "space-y-4", children: [
3447
+ children: /* @__PURE__ */ jsxs14("div", { className: "space-y-4", children: [
3421
3448
  /* @__PURE__ */ jsx24(Text, { variant: "h5", className: "text-success", children: "Upload successful!" }),
3422
3449
  selectedFiles.length > 0 && /* @__PURE__ */ jsx24("div", { className: "text-center", children: selectedFiles.map((file, index) => /* @__PURE__ */ jsx24(Text, { variant: "body-sm", children: file.name }, index)) })
3423
3450
  ] })
3424
3451
  }
3425
3452
  );
3426
3453
  default:
3427
- return /* @__PURE__ */ jsxs13(
3454
+ return /* @__PURE__ */ jsxs14(
3428
3455
  "div",
3429
3456
  {
3430
3457
  className: "flex flex-col items-center text-center max-w-[289px]",
3431
3458
  style: { gap: "32px" },
3432
3459
  children: [
3433
- /* @__PURE__ */ jsxs13("div", { className: "space-y-4", children: [
3460
+ /* @__PURE__ */ jsxs14("div", { className: "space-y-4", children: [
3434
3461
  /* @__PURE__ */ jsx24(Text, { variant: "h5", className: "text-default", children: "Drag & drop files here" }),
3435
3462
  /* @__PURE__ */ jsx24(Text, { variant: "body-md", className: "text-secondary", children: "or click to browse from your computer" })
3436
3463
  ] }),
@@ -3448,7 +3475,7 @@ function Upload({
3448
3475
  children: "Choose files"
3449
3476
  }
3450
3477
  ),
3451
- /* @__PURE__ */ jsxs13(Text, { variant: "body-sm", className: "text-secondary", children: [
3478
+ /* @__PURE__ */ jsxs14(Text, { variant: "body-sm", className: "text-secondary", children: [
3452
3479
  "Supported file: ",
3453
3480
  getFileTypeDisplay(),
3454
3481
  /* @__PURE__ */ jsx24("br", {}),
@@ -3461,7 +3488,7 @@ function Upload({
3461
3488
  );
3462
3489
  }
3463
3490
  };
3464
- return /* @__PURE__ */ jsxs13(
3491
+ return /* @__PURE__ */ jsxs14(
3465
3492
  "div",
3466
3493
  {
3467
3494
  ref,
@@ -3629,7 +3656,7 @@ function AvatarGroupCount({
3629
3656
  // src/components/ui/checkbox.tsx
3630
3657
  import { Checkbox as CheckboxPrimitive } from "@base-ui/react/checkbox";
3631
3658
  import { cva as cva12 } from "class-variance-authority";
3632
- import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
3659
+ import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
3633
3660
  var checkboxVariants = cva12([
3634
3661
  // Base layout & appearance
3635
3662
  "peer group relative size-4 shrink-0",
@@ -3662,7 +3689,7 @@ function Checkbox({ className, ref, ...props }) {
3662
3689
  ref,
3663
3690
  className: cn(checkboxVariants(), className),
3664
3691
  ...props,
3665
- children: /* @__PURE__ */ jsxs14(
3692
+ children: /* @__PURE__ */ jsxs15(
3666
3693
  CheckboxPrimitive.Indicator,
3667
3694
  {
3668
3695
  "data-slot": "checkbox-indicator",
@@ -3694,7 +3721,7 @@ import * as React12 from "react";
3694
3721
  import { RadioGroup as RadioGroupPrimitive } from "@base-ui/react/radio-group";
3695
3722
  import { Radio as RadioPrimitive } from "@base-ui/react/radio";
3696
3723
  import { cva as cva13 } from "class-variance-authority";
3697
- import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
3724
+ import { jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
3698
3725
  var radioGroupVariants = cva13("flex", {
3699
3726
  variants: {
3700
3727
  orientation: {
@@ -3782,7 +3809,7 @@ function RadioGroupCard({
3782
3809
  }) {
3783
3810
  const generatedId = React12.useId();
3784
3811
  const itemId = id ?? generatedId;
3785
- return /* @__PURE__ */ jsxs15(
3812
+ return /* @__PURE__ */ jsxs16(
3786
3813
  "label",
3787
3814
  {
3788
3815
  ref,
@@ -3804,7 +3831,7 @@ function RadioGroupCard({
3804
3831
  ...props
3805
3832
  }
3806
3833
  ),
3807
- /* @__PURE__ */ jsxs15("div", { className: "flex flex-col gap-1.5 min-w-0 flex-1", children: [
3834
+ /* @__PURE__ */ jsxs16("div", { className: "flex flex-col gap-1.5 min-w-0 flex-1", children: [
3808
3835
  /* @__PURE__ */ jsx27("span", { className: "type-body-sm-medium text-default", children: label }),
3809
3836
  description && /* @__PURE__ */ jsx27("span", { className: "type-body-xs-regular text-secondary", children: description })
3810
3837
  ] }),
@@ -3875,7 +3902,7 @@ function Switch({ className, size, ref, ...props }) {
3875
3902
  // src/components/ui/slider.tsx
3876
3903
  import { Slider as SliderPrimitive } from "@base-ui/react/slider";
3877
3904
  import { cva as cva15 } from "class-variance-authority";
3878
- import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
3905
+ import { jsx as jsx29, jsxs as jsxs17 } from "react/jsx-runtime";
3879
3906
  var sliderControlVariants = cva15([
3880
3907
  // Base layout
3881
3908
  "relative flex w-full touch-none select-none items-center",
@@ -3941,7 +3968,7 @@ function Slider({
3941
3968
  max,
3942
3969
  thumbAlignment: "edge",
3943
3970
  ...props,
3944
- children: /* @__PURE__ */ jsxs16(
3971
+ children: /* @__PURE__ */ jsxs17(
3945
3972
  SliderPrimitive.Control,
3946
3973
  {
3947
3974
  "data-slot": "slider-control",
@@ -4250,13 +4277,13 @@ var tagVariants = cva18(
4250
4277
  {
4251
4278
  variants: {
4252
4279
  color: {
4253
- violet: "bg-violet-100 text-violet-800",
4254
- cyan: "bg-cyan-100 text-cyan-900",
4255
- indigo: "bg-indigo-100 text-indigo-800",
4256
- orange: "bg-orange-100 text-orange-900",
4257
- pink: "bg-pink-100 text-pink-900",
4258
- verdant: "bg-verdant-100 text-verdant-800",
4259
- stone: "bg-stone-200 text-stone-800"
4280
+ violet: "bg-violet-200 text-black",
4281
+ cyan: "bg-cyan-200 text-black",
4282
+ indigo: "bg-indigo-100 text-black",
4283
+ orange: "bg-orange-200 text-black",
4284
+ pink: "bg-pink-200 text-black",
4285
+ verdant: "bg-verdant-200 text-black",
4286
+ stone: "bg-stone-200 text-black"
4260
4287
  }
4261
4288
  },
4262
4289
  defaultVariants: {
@@ -4277,7 +4304,7 @@ function Tag({ className, color, ref, ...props }) {
4277
4304
 
4278
4305
  // src/components/ui/alert-dialog.tsx
4279
4306
  import { AlertDialog as AlertDialogPrimitive } from "@base-ui/react/alert-dialog";
4280
- import { jsx as jsx34, jsxs as jsxs17 } from "react/jsx-runtime";
4307
+ import { jsx as jsx34, jsxs as jsxs18 } from "react/jsx-runtime";
4281
4308
  function AlertDialog({ ...props }) {
4282
4309
  return /* @__PURE__ */ jsx34(AlertDialogPrimitive.Root, { "data-slot": "alert-dialog", ...props });
4283
4310
  }
@@ -4321,7 +4348,7 @@ function AlertDialogContent({
4321
4348
  ref,
4322
4349
  ...props
4323
4350
  }) {
4324
- return /* @__PURE__ */ jsxs17(AlertDialogPrimitive.Portal, { "data-slot": "alert-dialog-portal", children: [
4351
+ return /* @__PURE__ */ jsxs18(AlertDialogPrimitive.Portal, { "data-slot": "alert-dialog-portal", children: [
4325
4352
  /* @__PURE__ */ jsx34(AlertDialogOverlay, {}),
4326
4353
  /* @__PURE__ */ jsx34(
4327
4354
  AlertDialogPrimitive.Popup,
@@ -4809,7 +4836,7 @@ function TabsContent({ className, ...props }) {
4809
4836
  import { Menu as MenuPrimitive } from "@base-ui/react/menu";
4810
4837
  import { Separator as SeparatorPrimitive2 } from "@base-ui/react/separator";
4811
4838
  import { cva as cva21 } from "class-variance-authority";
4812
- import { jsx as jsx37, jsxs as jsxs18 } from "react/jsx-runtime";
4839
+ import { jsx as jsx37, jsxs as jsxs19 } from "react/jsx-runtime";
4813
4840
  var DropdownMenu = MenuPrimitive.Root;
4814
4841
  var DropdownMenuGroup = MenuPrimitive.Group;
4815
4842
  var DropdownMenuSub = MenuPrimitive.SubmenuRoot;
@@ -4873,7 +4900,7 @@ function DropdownMenuSubTrigger({
4873
4900
  ref,
4874
4901
  ...props
4875
4902
  }) {
4876
- return /* @__PURE__ */ jsxs18(
4903
+ return /* @__PURE__ */ jsxs19(
4877
4904
  MenuPrimitive.SubmenuTrigger,
4878
4905
  {
4879
4906
  "data-slot": "dropdown-sub-trigger",
@@ -4971,7 +4998,7 @@ function DropdownMenuCheckboxItem({
4971
4998
  ref,
4972
4999
  ...props
4973
5000
  }) {
4974
- return /* @__PURE__ */ jsxs18(
5001
+ return /* @__PURE__ */ jsxs19(
4975
5002
  MenuPrimitive.CheckboxItem,
4976
5003
  {
4977
5004
  "data-slot": "dropdown-checkbox-item",
@@ -5002,7 +5029,7 @@ function DropdownMenuRadioItem({
5002
5029
  ref,
5003
5030
  ...props
5004
5031
  }) {
5005
- return /* @__PURE__ */ jsxs18(
5032
+ return /* @__PURE__ */ jsxs19(
5006
5033
  MenuPrimitive.RadioItem,
5007
5034
  {
5008
5035
  "data-slot": "dropdown-radio-item",
@@ -5082,7 +5109,7 @@ function DropdownMenuShortcut({
5082
5109
  // src/components/ui/chart.tsx
5083
5110
  import * as React14 from "react";
5084
5111
  import * as RechartsPrimitive from "recharts";
5085
- import { Fragment, jsx as jsx38, jsxs as jsxs19 } from "react/jsx-runtime";
5112
+ import { Fragment, jsx as jsx38, jsxs as jsxs20 } from "react/jsx-runtime";
5086
5113
  var THEMES = { light: "", dark: ".dark" };
5087
5114
  var INITIAL_DIMENSION = { width: 320, height: 200 };
5088
5115
  var ChartContext = React14.createContext(null);
@@ -5103,7 +5130,7 @@ function ChartContainer({
5103
5130
  }) {
5104
5131
  const uniqueId = React14.useId();
5105
5132
  const chartId = `chart-${id ?? uniqueId.replace(/:/g, "")}`;
5106
- return /* @__PURE__ */ jsx38(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs19(
5133
+ return /* @__PURE__ */ jsx38(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs20(
5107
5134
  "div",
5108
5135
  {
5109
5136
  "data-slot": "chart",
@@ -5216,7 +5243,7 @@ function ChartTooltipContent({
5216
5243
  return null;
5217
5244
  }
5218
5245
  const nestLabel = payload.length === 1 && indicator !== "dot";
5219
- return /* @__PURE__ */ jsxs19(
5246
+ return /* @__PURE__ */ jsxs20(
5220
5247
  "div",
5221
5248
  {
5222
5249
  className: cn(
@@ -5236,7 +5263,7 @@ function ChartTooltipContent({
5236
5263
  "flex w-full flex-wrap items-stretch gap-1.5 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-secondary",
5237
5264
  indicator === "dot" && "items-center"
5238
5265
  ),
5239
- children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs19(Fragment, { children: [
5266
+ children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs20(Fragment, { children: [
5240
5267
  itemConfig?.icon ? /* @__PURE__ */ jsx38(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx38(
5241
5268
  "div",
5242
5269
  {
@@ -5255,7 +5282,7 @@ function ChartTooltipContent({
5255
5282
  }
5256
5283
  }
5257
5284
  ),
5258
- /* @__PURE__ */ jsxs19(
5285
+ /* @__PURE__ */ jsxs20(
5259
5286
  "div",
5260
5287
  {
5261
5288
  className: cn(
@@ -5263,7 +5290,7 @@ function ChartTooltipContent({
5263
5290
  nestLabel ? "items-end" : "items-center"
5264
5291
  ),
5265
5292
  children: [
5266
- /* @__PURE__ */ jsxs19("div", { className: "grid gap-1.5", children: [
5293
+ /* @__PURE__ */ jsxs20("div", { className: "grid gap-1.5", children: [
5267
5294
  nestLabel ? tooltipLabel : null,
5268
5295
  /* @__PURE__ */ jsx38("span", { className: "text-secondary", children: itemConfig?.label ?? item.name })
5269
5296
  ] }),
@@ -5304,7 +5331,7 @@ function ChartLegendContent({
5304
5331
  const key = `${nameKey ?? item.dataKey ?? "value"}`;
5305
5332
  const itemConfig = getPayloadConfigFromPayload(config, item, key);
5306
5333
  const indicatorColor = item.color ?? (itemConfig && "color" in itemConfig ? itemConfig.color : void 0);
5307
- return /* @__PURE__ */ jsxs19(
5334
+ return /* @__PURE__ */ jsxs20(
5308
5335
  "div",
5309
5336
  {
5310
5337
  className: cn(
@@ -5710,7 +5737,7 @@ import {
5710
5737
  import {
5711
5738
  flexRender
5712
5739
  } from "@tanstack/react-table";
5713
- import { jsx as jsx41, jsxs as jsxs20 } from "react/jsx-runtime";
5740
+ import { jsx as jsx41, jsxs as jsxs21 } from "react/jsx-runtime";
5714
5741
  function DataTableView({
5715
5742
  table,
5716
5743
  emptyState = "No results.",
@@ -5724,7 +5751,7 @@ function DataTableView({
5724
5751
  {
5725
5752
  className: cn("relative", loading && "opacity-50 pointer-events-none"),
5726
5753
  "aria-busy": loading || void 0,
5727
- children: /* @__PURE__ */ jsxs20(Table, { className, ...props, children: [
5754
+ children: /* @__PURE__ */ jsxs21(Table, { className, ...props, children: [
5728
5755
  /* @__PURE__ */ jsx41(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx41(TableRow, { children: headerGroup.headers.map((header) => {
5729
5756
  const sorted = header.column.getIsSorted();
5730
5757
  return /* @__PURE__ */ jsx41(
@@ -5768,7 +5795,7 @@ function DataTableView({
5768
5795
  }
5769
5796
 
5770
5797
  // src/components/ui/data-table/data-table-pagination.tsx
5771
- import { jsx as jsx42, jsxs as jsxs21 } from "react/jsx-runtime";
5798
+ import { jsx as jsx42, jsxs as jsxs22 } from "react/jsx-runtime";
5772
5799
  function DataTablePagination({
5773
5800
  table,
5774
5801
  pageSizeOptions = [10, 20, 50, 100],
@@ -5780,7 +5807,7 @@ function DataTablePagination({
5780
5807
  const from = totalRows > 0 ? pageIndex * pageSize + 1 : 0;
5781
5808
  const to = Math.min((pageIndex + 1) * pageSize, totalRows);
5782
5809
  const resolvedPageSizeOptions = pageSizeOptions.includes(pageSize) ? pageSizeOptions : [...pageSizeOptions, pageSize].sort((a, b) => a - b);
5783
- return /* @__PURE__ */ jsxs21(
5810
+ return /* @__PURE__ */ jsxs22(
5784
5811
  "div",
5785
5812
  {
5786
5813
  className: cn(
@@ -5798,7 +5825,7 @@ function DataTablePagination({
5798
5825
  children: totalRows > 0 ? `Showing ${from}\u2013${to} of ${totalRows}` : "No results"
5799
5826
  }
5800
5827
  ),
5801
- /* @__PURE__ */ jsxs21("div", { className: "flex items-center gap-1", children: [
5828
+ /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-1", children: [
5802
5829
  /* @__PURE__ */ jsx42(
5803
5830
  Button,
5804
5831
  {
@@ -5845,7 +5872,7 @@ function DataTablePagination({
5845
5872
  }
5846
5873
  )
5847
5874
  ] }),
5848
- /* @__PURE__ */ jsxs21("div", { className: "flex items-center gap-2", children: [
5875
+ /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2", children: [
5849
5876
  /* @__PURE__ */ jsx42(
5850
5877
  Text,
5851
5878
  {
@@ -5855,7 +5882,7 @@ function DataTablePagination({
5855
5882
  children: "Rows per page"
5856
5883
  }
5857
5884
  ),
5858
- /* @__PURE__ */ jsxs21(
5885
+ /* @__PURE__ */ jsxs22(
5859
5886
  Select,
5860
5887
  {
5861
5888
  value: pageSize.toString(),
@@ -5873,7 +5900,7 @@ function DataTablePagination({
5873
5900
  }
5874
5901
 
5875
5902
  // src/components/ui/data-table/data-table-column-header.tsx
5876
- import { jsx as jsx43, jsxs as jsxs22 } from "react/jsx-runtime";
5903
+ import { jsx as jsx43, jsxs as jsxs23 } from "react/jsx-runtime";
5877
5904
  function DataTableColumnHeader({
5878
5905
  column,
5879
5906
  title,
@@ -5893,7 +5920,7 @@ function DataTableColumnHeader({
5893
5920
  );
5894
5921
  }
5895
5922
  const sorted = column.getIsSorted();
5896
- return /* @__PURE__ */ jsxs22("div", { className: cn("flex items-center gap-2", className), ...props, children: [
5923
+ return /* @__PURE__ */ jsxs23("div", { className: cn("flex items-center gap-2", className), ...props, children: [
5897
5924
  /* @__PURE__ */ jsx43(Text, { as: "span", variant: "body-sm-medium", children: title }),
5898
5925
  /* @__PURE__ */ jsx43(
5899
5926
  Button,
@@ -5914,7 +5941,7 @@ function DataTableColumnHeader({
5914
5941
  }
5915
5942
 
5916
5943
  // src/components/ui/data-table/data-table.tsx
5917
- import { jsx as jsx44, jsxs as jsxs23 } from "react/jsx-runtime";
5944
+ import { jsx as jsx44, jsxs as jsxs24 } from "react/jsx-runtime";
5918
5945
  function createSelectColumn() {
5919
5946
  return {
5920
5947
  id: "select",
@@ -5995,7 +6022,7 @@ function DataTable({
5995
6022
  initialState: { pagination: { pageSize: initialPageSize } }
5996
6023
  }
5997
6024
  });
5998
- return /* @__PURE__ */ jsxs23("div", { children: [
6025
+ return /* @__PURE__ */ jsxs24("div", { children: [
5999
6026
  /* @__PURE__ */ jsx44(
6000
6027
  DataTableView,
6001
6028
  {
@@ -6010,12 +6037,12 @@ function DataTable({
6010
6037
  }
6011
6038
 
6012
6039
  // src/components/ui/data-table/data-table-view-options.tsx
6013
- import { jsx as jsx45, jsxs as jsxs24 } from "react/jsx-runtime";
6040
+ import { jsx as jsx45, jsxs as jsxs25 } from "react/jsx-runtime";
6014
6041
  function DataTableViewOptions({
6015
6042
  table,
6016
6043
  ...props
6017
6044
  }) {
6018
- return /* @__PURE__ */ jsxs24(DropdownMenu, { children: [
6045
+ return /* @__PURE__ */ jsxs25(DropdownMenu, { children: [
6019
6046
  /* @__PURE__ */ jsx45(
6020
6047
  DropdownMenuTrigger,
6021
6048
  {
@@ -6031,7 +6058,7 @@ function DataTableViewOptions({
6031
6058
  )
6032
6059
  }
6033
6060
  ),
6034
- /* @__PURE__ */ jsxs24(DropdownMenuContent, { align: "end", children: [
6061
+ /* @__PURE__ */ jsxs25(DropdownMenuContent, { align: "end", children: [
6035
6062
  /* @__PURE__ */ jsx45(DropdownMenuLabel, { children: "Toggle columns" }),
6036
6063
  /* @__PURE__ */ jsx45(DropdownMenuSeparator, {}),
6037
6064
  table.getAllColumns().filter((column) => column.getCanHide()).map((column) => /* @__PURE__ */ jsx45(
@@ -6272,6 +6299,7 @@ export {
6272
6299
  SidebarMenuButton,
6273
6300
  SidebarMenuItem,
6274
6301
  SidebarProvider,
6302
+ SidebarSeparator,
6275
6303
  Slider,
6276
6304
  StarIcon,
6277
6305
  StatementIcon,