@assure-one/design-system 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import * as React13 from 'react';
2
+ import * as React36 from 'react';
3
3
  import { forwardRef, useState, useCallback, useId, useRef, useImperativeHandle, useEffect, createContext, useContext, useMemo } from 'react';
4
4
  import * as AccordionPrimitive from '@radix-ui/react-accordion';
5
5
  import { clsx } from 'clsx';
@@ -272,6 +272,7 @@ var systemTokens = {
272
272
  },
273
273
  layout: {
274
274
  shellSidebarWidth: "var(--shell-sidebar-w)",
275
+ shellSidebarRailWidth: "var(--shell-sidebar-w-rail)",
275
276
  shellHeaderHeight: "var(--shell-header-h)",
276
277
  contentPad: "var(--content-pad)"
277
278
  },
@@ -451,7 +452,7 @@ function MenuIcon({ size = 24, ...props }) {
451
452
  {
452
453
  d: "M3 12h18M3 6h18M3 18h18",
453
454
  stroke: "currentColor",
454
- strokeWidth: "2",
455
+ strokeWidth: "1.5",
455
456
  strokeLinecap: "round"
456
457
  }
457
458
  ) });
@@ -2107,7 +2108,19 @@ function MicrosoftBrandIcon({ size = 24, ...props }) {
2107
2108
  /* @__PURE__ */ jsx("rect", { x: "13", y: "13", width: "10", height: "10", fill: "#FFB900" })
2108
2109
  ] });
2109
2110
  }
2110
- var Accordion = React13.forwardRef(function Accordion2({ className, ...props }, ref) {
2111
+ function FilterIcon({ size = 24, ...props }) {
2112
+ return /* @__PURE__ */ jsx(Icon, { size, ...props, children: /* @__PURE__ */ jsx(
2113
+ "path",
2114
+ {
2115
+ d: "M3 4h18l-7 8v6l-4 2v-8L3 4z",
2116
+ stroke: "currentColor",
2117
+ strokeWidth: "1.5",
2118
+ strokeLinecap: "round",
2119
+ strokeLinejoin: "round"
2120
+ }
2121
+ ) });
2122
+ }
2123
+ var Accordion = React36.forwardRef(function Accordion2({ className, ...props }, ref) {
2111
2124
  return /* @__PURE__ */ jsx(
2112
2125
  AccordionPrimitive.Root,
2113
2126
  {
@@ -2118,11 +2131,11 @@ var Accordion = React13.forwardRef(function Accordion2({ className, ...props },
2118
2131
  );
2119
2132
  });
2120
2133
  Accordion.displayName = AccordionPrimitive.Root.displayName;
2121
- var AccordionItem = React13.forwardRef(function AccordionItem2({ className, ...props }, ref) {
2134
+ var AccordionItem = React36.forwardRef(function AccordionItem2({ className, ...props }, ref) {
2122
2135
  return /* @__PURE__ */ jsx(AccordionPrimitive.Item, { ref, className: cn(className), ...props });
2123
2136
  });
2124
2137
  AccordionItem.displayName = AccordionPrimitive.Item.displayName;
2125
- var AccordionTrigger = React13.forwardRef(function AccordionTrigger2({ children, className, ...props }, ref) {
2138
+ var AccordionTrigger = React36.forwardRef(function AccordionTrigger2({ children, className, ...props }, ref) {
2126
2139
  return /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
2127
2140
  AccordionPrimitive.Trigger,
2128
2141
  {
@@ -2150,7 +2163,7 @@ var AccordionTrigger = React13.forwardRef(function AccordionTrigger2({ children,
2150
2163
  ) });
2151
2164
  });
2152
2165
  AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
2153
- var AccordionContent = React13.forwardRef(function AccordionContent2({ children, className, ...props }, ref) {
2166
+ var AccordionContent = React36.forwardRef(function AccordionContent2({ children, className, ...props }, ref) {
2154
2167
  return /* @__PURE__ */ jsx(
2155
2168
  AccordionPrimitive.Content,
2156
2169
  {
@@ -2170,7 +2183,7 @@ AccordionContent.displayName = AccordionPrimitive.Content.displayName;
2170
2183
  var AlertDialog = AlertDialogPrimitive.Root;
2171
2184
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
2172
2185
  var AlertDialogPortal = AlertDialogPrimitive.Portal;
2173
- var AlertDialogOverlay = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2186
+ var AlertDialogOverlay = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2174
2187
  AlertDialogPrimitive.Overlay,
2175
2188
  {
2176
2189
  ref,
@@ -2185,7 +2198,7 @@ var AlertDialogOverlay = React13.forwardRef(({ className, ...props }, ref) => /*
2185
2198
  }
2186
2199
  ));
2187
2200
  AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
2188
- var AlertDialogContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
2201
+ var AlertDialogContent = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
2189
2202
  /* @__PURE__ */ jsx(AlertDialogOverlay, {}),
2190
2203
  /* @__PURE__ */ jsx(
2191
2204
  AlertDialogPrimitive.Content,
@@ -2220,7 +2233,7 @@ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx(
2220
2233
  }
2221
2234
  );
2222
2235
  AlertDialogFooter.displayName = "AlertDialogFooter";
2223
- var AlertDialogTitle = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2236
+ var AlertDialogTitle = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2224
2237
  AlertDialogPrimitive.Title,
2225
2238
  {
2226
2239
  ref,
@@ -2232,7 +2245,7 @@ var AlertDialogTitle = React13.forwardRef(({ className, ...props }, ref) => /* @
2232
2245
  }
2233
2246
  ));
2234
2247
  AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
2235
- var AlertDialogDescription = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2248
+ var AlertDialogDescription = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2236
2249
  AlertDialogPrimitive.Description,
2237
2250
  {
2238
2251
  ref,
@@ -2241,7 +2254,7 @@ var AlertDialogDescription = React13.forwardRef(({ className, ...props }, ref) =
2241
2254
  }
2242
2255
  ));
2243
2256
  AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
2244
- var AlertDialogAction = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2257
+ var AlertDialogAction = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2245
2258
  AlertDialogPrimitive.Action,
2246
2259
  {
2247
2260
  ref,
@@ -2257,7 +2270,7 @@ var AlertDialogAction = React13.forwardRef(({ className, ...props }, ref) => /*
2257
2270
  }
2258
2271
  ));
2259
2272
  AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
2260
- var AlertDialogCancel = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
2273
+ var AlertDialogCancel = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
2261
2274
  AlertDialogPrimitive.Cancel,
2262
2275
  {
2263
2276
  ref,
@@ -2355,7 +2368,7 @@ var AlertDescription = forwardRef(function AlertDescription2({ className, ...pro
2355
2368
  return /* @__PURE__ */ jsx("p", { ref, className: cn("text-sm opacity-90", className), ...props });
2356
2369
  });
2357
2370
  AlertDescription.displayName = "AlertDescription";
2358
- var AspectRatio = React13.forwardRef(function AspectRatio2({ className, ratio = 16 / 9, ...props }, ref) {
2371
+ var AspectRatio = React36.forwardRef(function AspectRatio2({ className, ratio = 16 / 9, ...props }, ref) {
2359
2372
  return /* @__PURE__ */ jsx(
2360
2373
  AspectRatioPrimitive.Root,
2361
2374
  {
@@ -2408,7 +2421,7 @@ var statusDotSizes = {
2408
2421
  function getInitials(name) {
2409
2422
  return name.split(" ").map((part) => part[0]).filter(Boolean).slice(0, 2).join("").toUpperCase();
2410
2423
  }
2411
- var Avatar = React13.forwardRef(
2424
+ var Avatar = React36.forwardRef(
2412
2425
  function Avatar2({ src, alt, name, size = "md", variant = "initials", status, className, ...props }, ref) {
2413
2426
  const initials = name ? getInitials(name) : "?";
2414
2427
  const resolvedSize = size ?? "md";
@@ -2697,7 +2710,7 @@ function Calendar({
2697
2710
  classNames,
2698
2711
  ...props
2699
2712
  }) {
2700
- const { modifiers, modifiersClassNames } = React13.useMemo(() => {
2713
+ const { modifiers, modifiersClassNames } = React36.useMemo(() => {
2701
2714
  const buckets = {};
2702
2715
  for (const h of highlights) {
2703
2716
  const key = h.color ?? "primary";
@@ -2712,7 +2725,7 @@ function Calendar({
2712
2725
  }
2713
2726
  return { modifiers: mods, modifiersClassNames: modClasses };
2714
2727
  }, [highlights]);
2715
- const disabledMatcher = React13.useMemo(() => {
2728
+ const disabledMatcher = React36.useMemo(() => {
2716
2729
  if (!minDate && !maxDate) return void 0;
2717
2730
  if (minDate && maxDate) return [{ before: minDate }, { after: maxDate }];
2718
2731
  if (minDate) return { before: minDate };
@@ -2844,8 +2857,8 @@ var CardAction = forwardRef(
2844
2857
  }
2845
2858
  );
2846
2859
  CardAction.displayName = "CardAction";
2847
- var Checkbox = React13.forwardRef(function Checkbox2({ label, indeterminate, checked, defaultChecked, className, id: providedId, ...props }, ref) {
2848
- const generatedId = React13.useId();
2860
+ var Checkbox = React36.forwardRef(function Checkbox2({ label, indeterminate, checked, defaultChecked, className, id: providedId, ...props }, ref) {
2861
+ const generatedId = React36.useId();
2849
2862
  const id = providedId ?? generatedId;
2850
2863
  const resolvedChecked = indeterminate ? "indeterminate" : checked;
2851
2864
  return /* @__PURE__ */ jsxs("div", { className: "inline-flex items-center gap-2", children: [
@@ -2885,7 +2898,7 @@ Checkbox.displayName = CheckboxPrimitive.Root.displayName;
2885
2898
  var SelectRoot = SelectPrimitive.Root;
2886
2899
  var SelectGroup = SelectPrimitive.Group;
2887
2900
  var SelectValue = SelectPrimitive.Value;
2888
- var SelectTrigger = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2901
+ var SelectTrigger = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2889
2902
  SelectPrimitive.Trigger,
2890
2903
  {
2891
2904
  ref,
@@ -2916,7 +2929,7 @@ var SelectTrigger = React13.forwardRef(({ className, children, ...props }, ref)
2916
2929
  }
2917
2930
  ));
2918
2931
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
2919
- var SelectScrollUpButton = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2932
+ var SelectScrollUpButton = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2920
2933
  SelectPrimitive.ScrollUpButton,
2921
2934
  {
2922
2935
  ref,
@@ -2926,7 +2939,7 @@ var SelectScrollUpButton = React13.forwardRef(({ className, ...props }, ref) =>
2926
2939
  }
2927
2940
  ));
2928
2941
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
2929
- var SelectScrollDownButton = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2942
+ var SelectScrollDownButton = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2930
2943
  SelectPrimitive.ScrollDownButton,
2931
2944
  {
2932
2945
  ref,
@@ -2936,7 +2949,7 @@ var SelectScrollDownButton = React13.forwardRef(({ className, ...props }, ref) =
2936
2949
  }
2937
2950
  ));
2938
2951
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
2939
- var SelectContent = React13.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
2952
+ var SelectContent = React36.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
2940
2953
  SelectPrimitive.Content,
2941
2954
  {
2942
2955
  ref,
@@ -2970,7 +2983,7 @@ var SelectContent = React13.forwardRef(({ className, children, position = "poppe
2970
2983
  }
2971
2984
  ) }));
2972
2985
  SelectContent.displayName = SelectPrimitive.Content.displayName;
2973
- var SelectLabel = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2986
+ var SelectLabel = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2974
2987
  SelectPrimitive.Label,
2975
2988
  {
2976
2989
  ref,
@@ -2982,7 +2995,7 @@ var SelectLabel = React13.forwardRef(({ className, ...props }, ref) => /* @__PUR
2982
2995
  }
2983
2996
  ));
2984
2997
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
2985
- var SelectItem = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2998
+ var SelectItem = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2986
2999
  SelectPrimitive.Item,
2987
3000
  {
2988
3001
  ref,
@@ -3003,7 +3016,7 @@ var SelectItem = React13.forwardRef(({ className, children, ...props }, ref) =>
3003
3016
  }
3004
3017
  ));
3005
3018
  SelectItem.displayName = SelectPrimitive.Item.displayName;
3006
- var SelectSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3019
+ var SelectSeparator = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3007
3020
  SelectPrimitive.Separator,
3008
3021
  {
3009
3022
  ref,
@@ -3087,11 +3100,11 @@ function ClientSelect({
3087
3100
  ] });
3088
3101
  }
3089
3102
  ClientSelect.displayName = "ClientSelect";
3090
- var Collapsible = React13.forwardRef(function Collapsible2({ className, ...props }, ref) {
3103
+ var Collapsible = React36.forwardRef(function Collapsible2({ className, ...props }, ref) {
3091
3104
  return /* @__PURE__ */ jsx(CollapsiblePrimitive.Root, { ref, className: cn(className), ...props });
3092
3105
  });
3093
3106
  Collapsible.displayName = CollapsiblePrimitive.Root.displayName;
3094
- var CollapsibleTrigger = React13.forwardRef(function CollapsibleTrigger2({ className, ...props }, ref) {
3107
+ var CollapsibleTrigger = React36.forwardRef(function CollapsibleTrigger2({ className, ...props }, ref) {
3095
3108
  return /* @__PURE__ */ jsx(
3096
3109
  CollapsiblePrimitive.Trigger,
3097
3110
  {
@@ -3106,7 +3119,7 @@ var CollapsibleTrigger = React13.forwardRef(function CollapsibleTrigger2({ class
3106
3119
  );
3107
3120
  });
3108
3121
  CollapsibleTrigger.displayName = CollapsiblePrimitive.Trigger.displayName;
3109
- var CollapsibleContent = React13.forwardRef(function CollapsibleContent2({ className, ...props }, ref) {
3122
+ var CollapsibleContent = React36.forwardRef(function CollapsibleContent2({ className, ...props }, ref) {
3110
3123
  return /* @__PURE__ */ jsx(
3111
3124
  CollapsiblePrimitive.Content,
3112
3125
  {
@@ -3183,7 +3196,7 @@ ComingSoon.displayName = "ComingSoon";
3183
3196
  var Dialog = DialogPrimitive.Root;
3184
3197
  var DialogTrigger = DialogPrimitive.Trigger;
3185
3198
  var DialogPortal = DialogPrimitive.Portal;
3186
- var DialogOverlay = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3199
+ var DialogOverlay = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3187
3200
  DialogPrimitive.Overlay,
3188
3201
  {
3189
3202
  ref,
@@ -3204,7 +3217,7 @@ var dialogSizeStyles = {
3204
3217
  lg: "max-w-2xl",
3205
3218
  full: "max-w-[calc(100vw-2rem)]"
3206
3219
  };
3207
- var DialogContent = React13.forwardRef(({ size = "md", showCloseButton = true, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
3220
+ var DialogContent = React36.forwardRef(({ size = "md", showCloseButton = true, className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
3208
3221
  /* @__PURE__ */ jsx(DialogOverlay, {}),
3209
3222
  /* @__PURE__ */ jsxs(
3210
3223
  DialogPrimitive.Content,
@@ -3245,7 +3258,7 @@ var DialogContent = React13.forwardRef(({ size = "md", showCloseButton = true, c
3245
3258
  )
3246
3259
  ] }));
3247
3260
  DialogContent.displayName = DialogPrimitive.Content.displayName;
3248
- var DialogClose = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Close, { ref, className: cn(className), ...props }));
3261
+ var DialogClose = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Close, { ref, className: cn(className), ...props }));
3249
3262
  DialogClose.displayName = "DialogClose";
3250
3263
  var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex flex-col gap-1.5 pr-8", className), ...props });
3251
3264
  DialogHeader.displayName = "DialogHeader";
@@ -3260,7 +3273,7 @@ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx(
3260
3273
  }
3261
3274
  );
3262
3275
  DialogFooter.displayName = "DialogFooter";
3263
- var DialogTitle = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3276
+ var DialogTitle = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3264
3277
  DialogPrimitive.Title,
3265
3278
  {
3266
3279
  ref,
@@ -3272,7 +3285,7 @@ var DialogTitle = React13.forwardRef(({ className, ...props }, ref) => /* @__PUR
3272
3285
  }
3273
3286
  ));
3274
3287
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
3275
- var DialogDescription = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3288
+ var DialogDescription = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3276
3289
  DialogPrimitive.Description,
3277
3290
  {
3278
3291
  ref,
@@ -3302,17 +3315,17 @@ function CommandPalette({
3302
3315
  onOpenChange,
3303
3316
  placeholder = "Type a command or search..."
3304
3317
  }) {
3305
- const [internalOpen, setInternalOpen] = React13.useState(false);
3318
+ const [internalOpen, setInternalOpen] = React36.useState(false);
3306
3319
  const isControlled = controlledOpen !== void 0;
3307
3320
  const open = isControlled ? controlledOpen : internalOpen;
3308
- const setOpen = React13.useCallback(
3321
+ const setOpen = React36.useCallback(
3309
3322
  (value) => {
3310
3323
  if (!isControlled) setInternalOpen(value);
3311
3324
  onOpenChange?.(value);
3312
3325
  },
3313
3326
  [isControlled, onOpenChange]
3314
3327
  );
3315
- React13.useEffect(() => {
3328
+ React36.useEffect(() => {
3316
3329
  function handleKeyDown(e) {
3317
3330
  if ((e.metaKey || e.ctrlKey) && e.key === "k") {
3318
3331
  e.preventDefault();
@@ -3462,8 +3475,8 @@ function ConfirmActionButton({
3462
3475
  destructive = true,
3463
3476
  contentClassName
3464
3477
  }) {
3465
- const [open, setOpen] = React13.useState(false);
3466
- const [pending, setPending] = React13.useState(false);
3478
+ const [open, setOpen] = React36.useState(false);
3479
+ const [pending, setPending] = React36.useState(false);
3467
3480
  const handleConfirm = async (event) => {
3468
3481
  event.preventDefault();
3469
3482
  setPending(true);
@@ -3514,7 +3527,7 @@ var ContextMenuGroup = ContextMenuPrimitive.Group;
3514
3527
  var ContextMenuPortal = ContextMenuPrimitive.Portal;
3515
3528
  var ContextMenuSub = ContextMenuPrimitive.Sub;
3516
3529
  var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
3517
- var ContextMenuSubTrigger = React13.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
3530
+ var ContextMenuSubTrigger = React36.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
3518
3531
  ContextMenuPrimitive.SubTrigger,
3519
3532
  {
3520
3533
  ref,
@@ -3535,7 +3548,7 @@ var ContextMenuSubTrigger = React13.forwardRef(({ className, inset, children, ..
3535
3548
  }
3536
3549
  ));
3537
3550
  ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
3538
- var ContextMenuSubContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3551
+ var ContextMenuSubContent = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3539
3552
  ContextMenuPrimitive.SubContent,
3540
3553
  {
3541
3554
  ref,
@@ -3551,7 +3564,7 @@ var ContextMenuSubContent = React13.forwardRef(({ className, ...props }, ref) =>
3551
3564
  }
3552
3565
  ));
3553
3566
  ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
3554
- var ContextMenuContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
3567
+ var ContextMenuContent = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
3555
3568
  ContextMenuPrimitive.Content,
3556
3569
  {
3557
3570
  ref,
@@ -3567,7 +3580,7 @@ var ContextMenuContent = React13.forwardRef(({ className, ...props }, ref) => /*
3567
3580
  }
3568
3581
  ) }));
3569
3582
  ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
3570
- var ContextMenuItem = React13.forwardRef(({ className, destructive, inset, ...props }, ref) => /* @__PURE__ */ jsx(
3583
+ var ContextMenuItem = React36.forwardRef(({ className, destructive, inset, ...props }, ref) => /* @__PURE__ */ jsx(
3571
3584
  ContextMenuPrimitive.Item,
3572
3585
  {
3573
3586
  ref,
@@ -3585,7 +3598,7 @@ var ContextMenuItem = React13.forwardRef(({ className, destructive, inset, ...pr
3585
3598
  }
3586
3599
  ));
3587
3600
  ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
3588
- var ContextMenuCheckboxItem = React13.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
3601
+ var ContextMenuCheckboxItem = React36.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
3589
3602
  ContextMenuPrimitive.CheckboxItem,
3590
3603
  {
3591
3604
  ref,
@@ -3605,7 +3618,7 @@ var ContextMenuCheckboxItem = React13.forwardRef(({ className, children, checked
3605
3618
  }
3606
3619
  ));
3607
3620
  ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
3608
- var ContextMenuRadioItem = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
3621
+ var ContextMenuRadioItem = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
3609
3622
  ContextMenuPrimitive.RadioItem,
3610
3623
  {
3611
3624
  ref,
@@ -3624,7 +3637,7 @@ var ContextMenuRadioItem = React13.forwardRef(({ className, children, ...props }
3624
3637
  }
3625
3638
  ));
3626
3639
  ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
3627
- var ContextMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
3640
+ var ContextMenuLabel = React36.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
3628
3641
  ContextMenuPrimitive.Label,
3629
3642
  {
3630
3643
  ref,
@@ -3637,7 +3650,7 @@ var ContextMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref)
3637
3650
  }
3638
3651
  ));
3639
3652
  ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
3640
- var ContextMenuSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3653
+ var ContextMenuSeparator = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3641
3654
  ContextMenuPrimitive.Separator,
3642
3655
  {
3643
3656
  ref,
@@ -3686,7 +3699,7 @@ var PopoverTrigger = PopoverPrimitive.Trigger;
3686
3699
  var PopoverAnchor = PopoverPrimitive.Anchor;
3687
3700
  var PopoverPortal = PopoverPrimitive.Portal;
3688
3701
  var PopoverClose = PopoverPrimitive.Close;
3689
- var PopoverContent = React13.forwardRef(({ className, align = "center", side = "bottom", sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
3702
+ var PopoverContent = React36.forwardRef(({ className, align = "center", side = "bottom", sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
3690
3703
  PopoverPrimitive.Content,
3691
3704
  {
3692
3705
  ref,
@@ -3896,13 +3909,50 @@ var DatePicker = forwardRef(function DatePicker2({
3896
3909
  ] });
3897
3910
  });
3898
3911
  DatePicker.displayName = "DatePicker";
3912
+ var chipVariants = cva(
3913
+ cn(
3914
+ "inline-flex items-center gap-1 rounded-full px-2.5 py-1",
3915
+ "text-[12px] font-medium",
3916
+ "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)]",
3917
+ "motion-reduce:transition-none",
3918
+ "focus-visible:outline-none focus-visible:[box-shadow:var(--shadow-focus-ring)]"
3919
+ ),
3920
+ {
3921
+ variants: {
3922
+ variant: {
3923
+ primary: "bg-primary/10 text-primary hover:bg-primary/15",
3924
+ neutral: "bg-muted text-fg-2 hover:bg-muted/80"
3925
+ }
3926
+ },
3927
+ defaultVariants: {
3928
+ variant: "primary"
3929
+ }
3930
+ }
3931
+ );
3932
+ var DismissibleChip = React36.forwardRef(function DismissibleChip2({ label, onDismiss, variant, className, ...props }, ref) {
3933
+ return /* @__PURE__ */ jsxs(
3934
+ "button",
3935
+ {
3936
+ ref,
3937
+ type: "button",
3938
+ onClick: onDismiss,
3939
+ "aria-label": typeof label === "string" ? `Remove ${label} filter` : "Remove filter",
3940
+ className: cn(chipVariants({ variant }), className),
3941
+ ...props,
3942
+ children: [
3943
+ /* @__PURE__ */ jsx("span", { children: label }),
3944
+ /* @__PURE__ */ jsx(XIcon, { size: 12, "aria-hidden": "true" })
3945
+ ]
3946
+ }
3947
+ );
3948
+ });
3899
3949
  var DropdownMenu = DropdownMenuPrimitive.Root;
3900
3950
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
3901
3951
  var DropdownMenuGroup = DropdownMenuPrimitive.Group;
3902
3952
  var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
3903
3953
  var DropdownMenuSub = DropdownMenuPrimitive.Sub;
3904
3954
  var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
3905
- var DropdownMenuSubTrigger = React13.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
3955
+ var DropdownMenuSubTrigger = React36.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
3906
3956
  DropdownMenuPrimitive.SubTrigger,
3907
3957
  {
3908
3958
  ref,
@@ -3923,7 +3973,7 @@ var DropdownMenuSubTrigger = React13.forwardRef(({ className, inset, children, .
3923
3973
  }
3924
3974
  ));
3925
3975
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
3926
- var DropdownMenuSubContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3976
+ var DropdownMenuSubContent = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
3927
3977
  DropdownMenuPrimitive.SubContent,
3928
3978
  {
3929
3979
  ref,
@@ -3939,7 +3989,7 @@ var DropdownMenuSubContent = React13.forwardRef(({ className, ...props }, ref) =
3939
3989
  }
3940
3990
  ));
3941
3991
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
3942
- var DropdownMenuContent = React13.forwardRef(({ className, sideOffset = 6, align = "start", ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
3992
+ var DropdownMenuContent = React36.forwardRef(({ className, sideOffset = 6, align = "start", ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
3943
3993
  DropdownMenuPrimitive.Content,
3944
3994
  {
3945
3995
  ref,
@@ -3957,7 +4007,7 @@ var DropdownMenuContent = React13.forwardRef(({ className, sideOffset = 6, align
3957
4007
  }
3958
4008
  ) }));
3959
4009
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
3960
- var DropdownMenuItem = React13.forwardRef(({ className, destructive, inset, ...props }, ref) => /* @__PURE__ */ jsx(
4010
+ var DropdownMenuItem = React36.forwardRef(({ className, destructive, inset, ...props }, ref) => /* @__PURE__ */ jsx(
3961
4011
  DropdownMenuPrimitive.Item,
3962
4012
  {
3963
4013
  ref,
@@ -3975,7 +4025,7 @@ var DropdownMenuItem = React13.forwardRef(({ className, destructive, inset, ...p
3975
4025
  }
3976
4026
  ));
3977
4027
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
3978
- var DropdownMenuCheckboxItem = React13.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
4028
+ var DropdownMenuCheckboxItem = React36.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
3979
4029
  DropdownMenuPrimitive.CheckboxItem,
3980
4030
  {
3981
4031
  ref,
@@ -3995,7 +4045,7 @@ var DropdownMenuCheckboxItem = React13.forwardRef(({ className, children, checke
3995
4045
  }
3996
4046
  ));
3997
4047
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
3998
- var DropdownMenuRadioItem = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
4048
+ var DropdownMenuRadioItem = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
3999
4049
  DropdownMenuPrimitive.RadioItem,
4000
4050
  {
4001
4051
  ref,
@@ -4014,7 +4064,7 @@ var DropdownMenuRadioItem = React13.forwardRef(({ className, children, ...props
4014
4064
  }
4015
4065
  ));
4016
4066
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
4017
- var DropdownMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
4067
+ var DropdownMenuLabel = React36.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
4018
4068
  DropdownMenuPrimitive.Label,
4019
4069
  {
4020
4070
  ref,
@@ -4027,7 +4077,7 @@ var DropdownMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref)
4027
4077
  }
4028
4078
  ));
4029
4079
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
4030
- var DropdownMenuSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
4080
+ var DropdownMenuSeparator = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
4031
4081
  DropdownMenuPrimitive.Separator,
4032
4082
  {
4033
4083
  ref,
@@ -4229,7 +4279,7 @@ function FormSuccess({ children, className, ...props }) {
4229
4279
  var HoverCard = HoverCardPrimitive.Root;
4230
4280
  var HoverCardTrigger = HoverCardPrimitive.Trigger;
4231
4281
  var HoverCardPortal = HoverCardPrimitive.Portal;
4232
- var HoverCardContent = React13.forwardRef(({ className, align = "center", side = "bottom", sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx(HoverCardPrimitive.Portal, { children: /* @__PURE__ */ jsx(
4282
+ var HoverCardContent = React36.forwardRef(({ className, align = "center", side = "bottom", sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx(HoverCardPrimitive.Portal, { children: /* @__PURE__ */ jsx(
4233
4283
  HoverCardPrimitive.Content,
4234
4284
  {
4235
4285
  ref,
@@ -4391,8 +4441,8 @@ var kbdClass2 = cn(
4391
4441
  "[border-bottom-width:1.5px]"
4392
4442
  );
4393
4443
  function KeyboardShortcutsDialog() {
4394
- const [open, setOpen] = React13.useState(false);
4395
- React13.useEffect(() => {
4444
+ const [open, setOpen] = React36.useState(false);
4445
+ React36.useEffect(() => {
4396
4446
  function handleKeyDown(e) {
4397
4447
  const target = e.target;
4398
4448
  if (target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement || target instanceof HTMLSelectElement || target?.isContentEditable) {
@@ -4428,7 +4478,7 @@ function KeyboardShortcutsDialog() {
4428
4478
  className: "flex items-center justify-between gap-3 py-1",
4429
4479
  children: [
4430
4480
  /* @__PURE__ */ jsx("span", { className: "text-fg text-sm", children: shortcut.description }),
4431
- /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-1", children: shortcut.keys.map((key, i) => /* @__PURE__ */ jsxs(React13.Fragment, { children: [
4481
+ /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-1", children: shortcut.keys.map((key, i) => /* @__PURE__ */ jsxs(React36.Fragment, { children: [
4432
4482
  i > 0 && /* @__PURE__ */ jsx("span", { className: "text-fg-4 mx-0.5 text-[11px]", children: "then" }),
4433
4483
  /* @__PURE__ */ jsx("kbd", { className: kbdClass2, children: key })
4434
4484
  ] }, i)) })
@@ -4447,7 +4497,7 @@ function KeyboardShortcutsDialog() {
4447
4497
  var labelVariants = cva(
4448
4498
  "text-[13px] font-medium leading-none text-fg select-none peer-disabled:cursor-not-allowed peer-disabled:text-fg-disabled has-[+input:disabled]:text-fg-disabled"
4449
4499
  );
4450
- var Label4 = React13.forwardRef(
4500
+ var Label4 = React36.forwardRef(
4451
4501
  function Label5({ children, required, className, ...props }, ref) {
4452
4502
  return /* @__PURE__ */ jsxs(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props, children: [
4453
4503
  children,
@@ -4669,7 +4719,7 @@ function MultiSelectField({
4669
4719
  size = "md",
4670
4720
  id
4671
4721
  }) {
4672
- const selected = React13.useMemo(
4722
+ const selected = React36.useMemo(
4673
4723
  () => new Set(value ? value.split(",").filter(Boolean) : []),
4674
4724
  [value]
4675
4725
  );
@@ -4682,7 +4732,7 @@ function MultiSelectField({
4682
4732
  }
4683
4733
  onChange(Array.from(next).join(","));
4684
4734
  };
4685
- const generatedId = React13.useId();
4735
+ const generatedId = React36.useId();
4686
4736
  const groupId = id ?? generatedId;
4687
4737
  return /* @__PURE__ */ jsxs("div", { className: cn("w-full", className), children: [
4688
4738
  /* @__PURE__ */ jsx(
@@ -5090,12 +5140,12 @@ var ProgressRing = forwardRef(function ProgressRing2({ value, max = 100, size =
5090
5140
  );
5091
5141
  });
5092
5142
  ProgressRing.displayName = "ProgressRing";
5093
- var RadioGroup3 = React13.forwardRef(function RadioGroup4({ className, ...props }, ref) {
5143
+ var RadioGroup3 = React36.forwardRef(function RadioGroup4({ className, ...props }, ref) {
5094
5144
  return /* @__PURE__ */ jsx(RadioGroupPrimitive.Root, { ref, className: cn("grid gap-2", className), ...props });
5095
5145
  });
5096
5146
  RadioGroup3.displayName = RadioGroupPrimitive.Root.displayName;
5097
- var RadioGroupItem = React13.forwardRef(function RadioGroupItem2({ className, label, id: providedId, ...props }, ref) {
5098
- const generatedId = React13.useId();
5147
+ var RadioGroupItem = React36.forwardRef(function RadioGroupItem2({ className, label, id: providedId, ...props }, ref) {
5148
+ const generatedId = React36.useId();
5099
5149
  const id = providedId ?? generatedId;
5100
5150
  const root = /* @__PURE__ */ jsx(
5101
5151
  RadioGroupPrimitive.Item,
@@ -5130,7 +5180,7 @@ var RadioGroupItem = React13.forwardRef(function RadioGroupItem2({ className, la
5130
5180
  ] });
5131
5181
  });
5132
5182
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
5133
- var ScrollArea = React13.forwardRef(function ScrollArea2({ className, children, ...props }, ref) {
5183
+ var ScrollArea = React36.forwardRef(function ScrollArea2({ className, children, ...props }, ref) {
5134
5184
  return /* @__PURE__ */ jsxs(
5135
5185
  ScrollAreaPrimitive.Root,
5136
5186
  {
@@ -5146,7 +5196,7 @@ var ScrollArea = React13.forwardRef(function ScrollArea2({ className, children,
5146
5196
  );
5147
5197
  });
5148
5198
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
5149
- var ScrollBar = React13.forwardRef(function ScrollBar2({ className, orientation = "vertical", ...props }, ref) {
5199
+ var ScrollBar = React36.forwardRef(function ScrollBar2({ className, orientation = "vertical", ...props }, ref) {
5150
5200
  return /* @__PURE__ */ jsx(
5151
5201
  ScrollAreaPrimitive.ScrollAreaScrollbar,
5152
5202
  {
@@ -5208,7 +5258,7 @@ var searchInputVariants = cva(
5208
5258
  }
5209
5259
  }
5210
5260
  );
5211
- var SearchInput = React13.forwardRef(
5261
+ var SearchInput = React36.forwardRef(
5212
5262
  function SearchInput2({
5213
5263
  value,
5214
5264
  onValueChange,
@@ -5221,8 +5271,8 @@ var SearchInput = React13.forwardRef(
5221
5271
  ...props
5222
5272
  }, ref) {
5223
5273
  const debouncedValue = useDebounce(value, debounceMs);
5224
- const isFirstRender = React13.useRef(true);
5225
- React13.useEffect(() => {
5274
+ const isFirstRender = React36.useRef(true);
5275
+ React36.useEffect(() => {
5226
5276
  if (isFirstRender.current) {
5227
5277
  isFirstRender.current = false;
5228
5278
  return;
@@ -5290,27 +5340,27 @@ function SearchSelect({
5290
5340
  className,
5291
5341
  disabled = false
5292
5342
  }) {
5293
- const [search, setSearch] = React13.useState("");
5294
- const [open, setOpen] = React13.useState(false);
5295
- const selectedIds = React13.useMemo(() => new Set(selected.map((s) => s.id)), [selected]);
5296
- const filtered = React13.useMemo(
5343
+ const [search, setSearch] = React36.useState("");
5344
+ const [open, setOpen] = React36.useState(false);
5345
+ const selectedIds = React36.useMemo(() => new Set(selected.map((s) => s.id)), [selected]);
5346
+ const filtered = React36.useMemo(
5297
5347
  () => options.filter((opt) => !selectedIds.has(opt.id)),
5298
5348
  [options, selectedIds]
5299
5349
  );
5300
5350
  const trimmedSearch = search.trim();
5301
- const hasExactMatch = React13.useMemo(
5351
+ const hasExactMatch = React36.useMemo(
5302
5352
  () => options.some((opt) => opt.label.toLowerCase() === trimmedSearch.toLowerCase()),
5303
5353
  [options, trimmedSearch]
5304
5354
  );
5305
5355
  const showCreate = !!onCreate && trimmedSearch.length > 0 && !hasExactMatch;
5306
- const handleSelect = React13.useCallback(
5356
+ const handleSelect = React36.useCallback(
5307
5357
  (option) => {
5308
5358
  onSelect(option);
5309
5359
  setSearch("");
5310
5360
  },
5311
5361
  [onSelect]
5312
5362
  );
5313
- const handleCreate = React13.useCallback(() => {
5363
+ const handleCreate = React36.useCallback(() => {
5314
5364
  if (onCreate && trimmedSearch) {
5315
5365
  onCreate(trimmedSearch);
5316
5366
  setSearch("");
@@ -5536,7 +5586,7 @@ var SectionHead = forwardRef(function SectionHead2({ eyebrow, title, meta, class
5536
5586
  );
5537
5587
  });
5538
5588
  SectionHead.displayName = "SectionHead";
5539
- var Separator4 = React13.forwardRef(function Separator5({ className, orientation = "horizontal", decorative = true, ...props }, ref) {
5589
+ var Separator4 = React36.forwardRef(function Separator5({ className, orientation = "horizontal", decorative = true, ...props }, ref) {
5540
5590
  return /* @__PURE__ */ jsx(
5541
5591
  SeparatorPrimitive.Root,
5542
5592
  {
@@ -5553,13 +5603,13 @@ var Separator4 = React13.forwardRef(function Separator5({ className, orientation
5553
5603
  );
5554
5604
  });
5555
5605
  Separator4.displayName = SeparatorPrimitive.Root.displayName;
5556
- var SheetSideContext = React13.createContext({});
5606
+ var SheetSideContext = React36.createContext({});
5557
5607
  var Sheet = ({ side, children, ...props }) => /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...props, children: /* @__PURE__ */ jsx(SheetSideContext, { value: { side }, children }) });
5558
5608
  Sheet.displayName = "Sheet";
5559
5609
  var SheetTrigger = DialogPrimitive.Trigger;
5560
5610
  var SheetClose = DialogPrimitive.Close;
5561
5611
  var SheetPortal = DialogPrimitive.Portal;
5562
- var SheetOverlay = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5612
+ var SheetOverlay = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5563
5613
  DialogPrimitive.Overlay,
5564
5614
  {
5565
5615
  ref,
@@ -5604,8 +5654,8 @@ var sheetVariants = cva(
5604
5654
  defaultVariants: { side: "right" }
5605
5655
  }
5606
5656
  );
5607
- var SheetContent = React13.forwardRef(({ side, className, children, showCloseButton = true, ...props }, ref) => {
5608
- const ctx = React13.use(SheetSideContext);
5657
+ var SheetContent = React36.forwardRef(({ side, className, children, showCloseButton = true, ...props }, ref) => {
5658
+ const ctx = React36.use(SheetSideContext);
5609
5659
  const resolvedSide = side ?? ctx.side ?? "right";
5610
5660
  return /* @__PURE__ */ jsxs(SheetPortal, { children: [
5611
5661
  /* @__PURE__ */ jsx(SheetOverlay, {}),
@@ -5650,7 +5700,7 @@ var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx(
5650
5700
  }
5651
5701
  );
5652
5702
  SheetFooter.displayName = "SheetFooter";
5653
- var SheetTitle = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5703
+ var SheetTitle = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5654
5704
  DialogPrimitive.Title,
5655
5705
  {
5656
5706
  ref,
@@ -5662,7 +5712,7 @@ var SheetTitle = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE
5662
5712
  }
5663
5713
  ));
5664
5714
  SheetTitle.displayName = DialogPrimitive.Title.displayName;
5665
- var SheetDescription = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Description, { ref, className: cn("text-fg-3 text-sm", className), ...props }));
5715
+ var SheetDescription = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Description, { ref, className: cn("text-fg-3 text-sm", className), ...props }));
5666
5716
  SheetDescription.displayName = DialogPrimitive.Description.displayName;
5667
5717
  var sideDrawerVariants = cva(
5668
5718
  cn(
@@ -5819,7 +5869,7 @@ var SkeletonCircle = forwardRef(
5819
5869
  }
5820
5870
  );
5821
5871
  SkeletonCircle.displayName = "SkeletonCircle";
5822
- var Slider = React13.forwardRef(
5872
+ var Slider = React36.forwardRef(
5823
5873
  function Slider2({
5824
5874
  className,
5825
5875
  label,
@@ -5831,7 +5881,7 @@ var Slider = React13.forwardRef(
5831
5881
  defaultValue,
5832
5882
  ...props
5833
5883
  }, ref) {
5834
- const generatedId = React13.useId();
5884
+ const generatedId = React36.useId();
5835
5885
  const id = providedId ?? generatedId;
5836
5886
  const displayValue = (() => {
5837
5887
  const v = value ?? defaultValue;
@@ -6119,9 +6169,9 @@ var switchThumbVariants = cva(
6119
6169
  }
6120
6170
  }
6121
6171
  );
6122
- var Switch = React13.forwardRef(
6172
+ var Switch = React36.forwardRef(
6123
6173
  function Switch2({ label, size, className, id: providedId, ...props }, ref) {
6124
- const generatedId = React13.useId();
6174
+ const generatedId = React36.useId();
6125
6175
  const id = providedId ?? generatedId;
6126
6176
  const root = /* @__PURE__ */ jsx(
6127
6177
  SwitchPrimitive.Root,
@@ -6253,13 +6303,13 @@ var TableCaption = forwardRef(
6253
6303
  }
6254
6304
  );
6255
6305
  TableCaption.displayName = "TableCaption";
6256
- var Tabs = React13.forwardRef(
6306
+ var Tabs = React36.forwardRef(
6257
6307
  function Tabs2({ className, ...props }, ref) {
6258
6308
  return /* @__PURE__ */ jsx(TabsPrimitive.Root, { ref, className: cn(className), ...props });
6259
6309
  }
6260
6310
  );
6261
6311
  Tabs.displayName = TabsPrimitive.Root.displayName;
6262
- var TabsList = React13.forwardRef(function TabsList2({ className, ...props }, ref) {
6312
+ var TabsList = React36.forwardRef(function TabsList2({ className, ...props }, ref) {
6263
6313
  return /* @__PURE__ */ jsx(
6264
6314
  TabsPrimitive.List,
6265
6315
  {
@@ -6282,13 +6332,16 @@ var triggerVariants = cva(
6282
6332
  {
6283
6333
  variants: {
6284
6334
  variant: {
6285
- // §5.16: tab current = text-accent + 2px accent underline (tabs are
6286
- // interaction, so cyan; Pro purple is reserved for selection state
6287
- // on list/dropdown surfaces).
6335
+ // §5.16: tab current = 2px accent underline + bold foreground text.
6336
+ // The cyan rule carries the brand statement (tabs are interaction,
6337
+ // so cyan; Pro purple is reserved for selection state on
6338
+ // list/dropdown surfaces). The active LABEL stays in `text-fg` for
6339
+ // legibility — accent on text was too low-contrast against the page
6340
+ // background, especially in dark mode.
6288
6341
  underline: cn(
6289
6342
  "rounded-none bg-transparent px-3.5 py-2.5",
6290
6343
  "border-b-2 border-transparent -mb-px",
6291
- "data-[state=active]:border-accent data-[state=active]:text-accent"
6344
+ "data-[state=active]:border-accent data-[state=active]:text-fg data-[state=active]:font-semibold"
6292
6345
  ),
6293
6346
  pill: cn(
6294
6347
  "rounded-pill px-3 py-1.5",
@@ -6301,7 +6354,7 @@ var triggerVariants = cva(
6301
6354
  }
6302
6355
  }
6303
6356
  );
6304
- var TabsTrigger = React13.forwardRef(function TabsTrigger2({ className, variant, ...props }, ref) {
6357
+ var TabsTrigger = React36.forwardRef(function TabsTrigger2({ className, variant, ...props }, ref) {
6305
6358
  return /* @__PURE__ */ jsx(
6306
6359
  TabsPrimitive.Trigger,
6307
6360
  {
@@ -6312,7 +6365,7 @@ var TabsTrigger = React13.forwardRef(function TabsTrigger2({ className, variant,
6312
6365
  );
6313
6366
  });
6314
6367
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
6315
- var TabsContent = React13.forwardRef(function TabsContent2({ className, ...props }, ref) {
6368
+ var TabsContent = React36.forwardRef(function TabsContent2({ className, ...props }, ref) {
6316
6369
  return /* @__PURE__ */ jsx(
6317
6370
  TabsPrimitive.Content,
6318
6371
  {
@@ -6337,7 +6390,7 @@ function TeamMemberSelect({
6337
6390
  placeholder = "Select team member...",
6338
6391
  className
6339
6392
  }) {
6340
- const options = React13.useMemo(() => {
6393
+ const options = React36.useMemo(() => {
6341
6394
  const meBadge = /* @__PURE__ */ jsx(
6342
6395
  Badge,
6343
6396
  {
@@ -6604,10 +6657,10 @@ var itemVariants = cva(
6604
6657
  }
6605
6658
  }
6606
6659
  );
6607
- var ToggleGroupContext = React13.createContext({
6660
+ var ToggleGroupContext = React36.createContext({
6608
6661
  variant: "default"
6609
6662
  });
6610
- var ToggleGroup = React13.forwardRef(function ToggleGroup2({ className, variant, children, ...props }, ref) {
6663
+ var ToggleGroup = React36.forwardRef(function ToggleGroup2({ className, variant, children, ...props }, ref) {
6611
6664
  return /* @__PURE__ */ jsx(
6612
6665
  ToggleGroupPrimitive.Root,
6613
6666
  {
@@ -6619,8 +6672,8 @@ var ToggleGroup = React13.forwardRef(function ToggleGroup2({ className, variant,
6619
6672
  );
6620
6673
  });
6621
6674
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
6622
- var ToggleGroupItem = React13.forwardRef(function ToggleGroupItem2({ className, variant, ...props }, ref) {
6623
- const ctx = React13.useContext(ToggleGroupContext);
6675
+ var ToggleGroupItem = React36.forwardRef(function ToggleGroupItem2({ className, variant, ...props }, ref) {
6676
+ const ctx = React36.useContext(ToggleGroupContext);
6624
6677
  return /* @__PURE__ */ jsx(
6625
6678
  ToggleGroupPrimitive.Item,
6626
6679
  {
@@ -6639,7 +6692,7 @@ var Tooltip = ({ delayMs, delayDuration, children, ...props }) => {
6639
6692
  return /* @__PURE__ */ jsx(TooltipPrimitive.Provider, { delayDuration: resolvedDelay, children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, { delayDuration: resolvedDelay, ...props, children }) });
6640
6693
  };
6641
6694
  Tooltip.displayName = "Tooltip";
6642
- var TooltipContent = React13.forwardRef(({ className, sideOffset = 6, ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(
6695
+ var TooltipContent = React36.forwardRef(({ className, sideOffset = 6, ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(
6643
6696
  TooltipPrimitive.Content,
6644
6697
  {
6645
6698
  ref,
@@ -6691,88 +6744,420 @@ var Content15 = forwardRef(function Content16({ padBottom, className, style, ...
6691
6744
  );
6692
6745
  });
6693
6746
  Content15.displayName = "Content";
6694
- var Sidebar = forwardRef(function Sidebar2({ className, ...props }, ref) {
6695
- return /* @__PURE__ */ jsx(
6696
- "aside",
6697
- {
6698
- ref,
6699
- className: cn(
6700
- "scrollbar-thin flex h-dvh w-[var(--shell-sidebar-w)] shrink-0 flex-col overflow-y-auto",
6701
- "border-rule bg-bg-2 border-r px-3 pt-4 pb-4",
6702
- className
6703
- ),
6704
- ...props
6747
+ var SidebarContext = React36.createContext(null);
6748
+ var NOOP_CONTEXT = {
6749
+ state: "expanded",
6750
+ setState: () => {
6751
+ },
6752
+ toggle: () => {
6753
+ },
6754
+ collapsible: false
6755
+ };
6756
+ function useSidebarState() {
6757
+ return React36.useContext(SidebarContext) ?? NOOP_CONTEXT;
6758
+ }
6759
+ var DEFAULT_SHORTCUT = "Mod+\\";
6760
+ function readStorage(key) {
6761
+ if (!key || typeof window === "undefined") return null;
6762
+ try {
6763
+ const v = window.localStorage.getItem(key);
6764
+ return v === "rail" || v === "expanded" ? v : null;
6765
+ } catch {
6766
+ return null;
6767
+ }
6768
+ }
6769
+ function SidebarProvider({
6770
+ children,
6771
+ state: controlled,
6772
+ defaultState = "expanded",
6773
+ onStateChange,
6774
+ storageKey,
6775
+ shortcut = DEFAULT_SHORTCUT
6776
+ }) {
6777
+ const [uncontrolled, setUncontrolled] = React36.useState(() => {
6778
+ if (controlled !== void 0) return controlled;
6779
+ const stored = readStorage(storageKey);
6780
+ return stored ?? defaultState;
6781
+ });
6782
+ React36.useEffect(() => {
6783
+ if (controlled !== void 0) return;
6784
+ const stored = readStorage(storageKey);
6785
+ if (stored && stored !== uncontrolled) setUncontrolled(stored);
6786
+ }, []);
6787
+ const state = controlled ?? uncontrolled;
6788
+ const setState = React36.useCallback(
6789
+ (next) => {
6790
+ if (controlled === void 0) setUncontrolled(next);
6791
+ onStateChange?.(next);
6792
+ if (storageKey && typeof window !== "undefined") {
6793
+ try {
6794
+ window.localStorage.setItem(storageKey, next);
6795
+ } catch {
6796
+ }
6797
+ }
6798
+ },
6799
+ [controlled, onStateChange, storageKey]
6800
+ );
6801
+ const toggle = React36.useCallback(() => {
6802
+ setState(state === "expanded" ? "rail" : "expanded");
6803
+ }, [state, setState]);
6804
+ React36.useEffect(() => {
6805
+ if (!shortcut) return;
6806
+ const parts = shortcut.split("+");
6807
+ const key = parts.pop() ?? "";
6808
+ const wantMod = parts.includes("Mod");
6809
+ const wantShift = parts.includes("Shift");
6810
+ const wantAlt = parts.includes("Alt");
6811
+ function onKey(e) {
6812
+ const isMac = typeof navigator !== "undefined" && /Mac|iPhone|iPad/.test(navigator.platform);
6813
+ const mod = isMac ? e.metaKey : e.ctrlKey;
6814
+ if (e.key.toLowerCase() !== key.toLowerCase()) return;
6815
+ if (wantMod !== mod) return;
6816
+ if (wantShift !== e.shiftKey) return;
6817
+ if (wantAlt !== e.altKey) return;
6818
+ e.preventDefault();
6819
+ toggle();
6820
+ }
6821
+ window.addEventListener("keydown", onKey);
6822
+ return () => window.removeEventListener("keydown", onKey);
6823
+ }, [shortcut, toggle]);
6824
+ const value = React36.useMemo(
6825
+ () => ({ state, setState, toggle, collapsible: true }),
6826
+ [state, setState, toggle]
6827
+ );
6828
+ return /* @__PURE__ */ jsx(SidebarContext.Provider, { value, children });
6829
+ }
6830
+ SidebarProvider.displayName = "SidebarProvider";
6831
+ var PEEK_ENTER_DELAY_MS = 100;
6832
+ var PEEK_LEAVE_DELAY_MS = 200;
6833
+ var Sidebar = React36.forwardRef(function Sidebar2({ className, collapsible = false, onMouseEnter, onMouseLeave, style, ...props }, ref) {
6834
+ const ctx = React36.useContext(SidebarContext);
6835
+ const state = collapsible && ctx ? ctx.state : "expanded";
6836
+ const [peek, setPeek] = React36.useState(false);
6837
+ const enterTimer = React36.useRef(null);
6838
+ const leaveTimer = React36.useRef(null);
6839
+ const clearTimers = React36.useCallback(() => {
6840
+ if (enterTimer.current != null) {
6841
+ window.clearTimeout(enterTimer.current);
6842
+ enterTimer.current = null;
6843
+ }
6844
+ if (leaveTimer.current != null) {
6845
+ window.clearTimeout(leaveTimer.current);
6846
+ leaveTimer.current = null;
6705
6847
  }
6848
+ }, []);
6849
+ React36.useEffect(() => () => clearTimers(), [clearTimers]);
6850
+ React36.useEffect(() => {
6851
+ if (state === "expanded") {
6852
+ clearTimers();
6853
+ setPeek(false);
6854
+ }
6855
+ }, [state, clearTimers]);
6856
+ const handleEnter = (e) => {
6857
+ onMouseEnter?.(e);
6858
+ if (!collapsible || state !== "rail") return;
6859
+ if (leaveTimer.current != null) {
6860
+ window.clearTimeout(leaveTimer.current);
6861
+ leaveTimer.current = null;
6862
+ }
6863
+ if (peek) return;
6864
+ enterTimer.current = window.setTimeout(() => setPeek(true), PEEK_ENTER_DELAY_MS);
6865
+ };
6866
+ const handleLeave = (e) => {
6867
+ onMouseLeave?.(e);
6868
+ if (!collapsible) return;
6869
+ if (enterTimer.current != null) {
6870
+ window.clearTimeout(enterTimer.current);
6871
+ enterTimer.current = null;
6872
+ }
6873
+ if (!peek) return;
6874
+ leaveTimer.current = window.setTimeout(() => setPeek(false), PEEK_LEAVE_DELAY_MS);
6875
+ };
6876
+ const labelsHidden = state === "rail" && !peek;
6877
+ const effectiveWidth = labelsHidden ? "var(--shell-sidebar-w-rail)" : "var(--shell-sidebar-w)";
6878
+ return (
6879
+ // Hover-peek is *enhancement only*: the canonical way to toggle the
6880
+ // sidebar is <SidebarTrigger> (button) or the Mod+\ shortcut, both
6881
+ // fully keyboard- and screen-reader-accessible. The mouse handlers
6882
+ // here exist to widen the column on pointer hover, which has no
6883
+ // keyboard analogue and intentionally so.
6884
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
6885
+ /* @__PURE__ */ jsx(
6886
+ "aside",
6887
+ {
6888
+ ref,
6889
+ "data-state": state,
6890
+ "data-peek": peek ? "true" : void 0,
6891
+ "data-labels": labelsHidden ? "hide" : "show",
6892
+ "data-collapsible": collapsible ? "true" : void 0,
6893
+ suppressHydrationWarning: true,
6894
+ onMouseEnter: handleEnter,
6895
+ onMouseLeave: handleLeave,
6896
+ style: { width: effectiveWidth, ...style },
6897
+ className: cn(
6898
+ "group/sidebar scrollbar-thin flex h-dvh shrink-0 flex-col overflow-y-auto",
6899
+ "border-rule bg-bg-2 border-r px-3 pt-4 pb-4",
6900
+ // 220ms feels right for a ~192px width sweep — slower than the
6901
+ // 150ms `--duration-fast` (which reads as a snap on this size of
6902
+ // movement) but well short of `--duration-slow` (which feels
6903
+ // sluggish). `will-change` hints the compositor so the column
6904
+ // doesn't repaint every frame mid-transition.
6905
+ "transition-[width,box-shadow] duration-[220ms] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
6906
+ "[will-change:width]",
6907
+ // Peek overlay: float above the canvas without reflowing layout.
6908
+ "data-[peek=true]:fixed data-[peek=true]:top-0 data-[peek=true]:left-0",
6909
+ "data-[peek=true]:z-[var(--z-overlay)] data-[peek=true]:shadow-pop",
6910
+ // Padding is held constant across states so icons keep their
6911
+ // horizontal anchor when the column widens — peek expands the
6912
+ // labels rightward rather than shifting the icons leftward.
6913
+ className
6914
+ ),
6915
+ ...props
6916
+ }
6917
+ )
6706
6918
  );
6707
6919
  });
6708
6920
  Sidebar.displayName = "Sidebar";
6709
- var SidebarBrand = forwardRef(function SidebarBrand2({ className, ...props }, ref) {
6710
- return /* @__PURE__ */ jsx("div", { ref, className: cn("px-2 pt-1 pb-4", className), ...props });
6711
- });
6921
+ var SidebarTrigger = React36.forwardRef(
6922
+ function SidebarTrigger2({
6923
+ className,
6924
+ expandLabel = "Expand sidebar",
6925
+ collapseLabel = "Collapse sidebar",
6926
+ onClick,
6927
+ ...props
6928
+ }, ref) {
6929
+ const ctx = React36.useContext(SidebarContext);
6930
+ if (!ctx) return null;
6931
+ const { state, toggle } = ctx;
6932
+ const label = state === "expanded" ? collapseLabel : expandLabel;
6933
+ return /* @__PURE__ */ jsx(
6934
+ "button",
6935
+ {
6936
+ ref,
6937
+ type: "button",
6938
+ "aria-label": label,
6939
+ "aria-expanded": state === "expanded",
6940
+ onClick: (e) => {
6941
+ onClick?.(e);
6942
+ if (!e.defaultPrevented) toggle();
6943
+ },
6944
+ className: cn(
6945
+ "inline-flex size-7 shrink-0 items-center justify-center rounded-md",
6946
+ "text-fg-3 hover:bg-bg-3 hover:text-fg",
6947
+ "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
6948
+ "focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
6949
+ "[&_svg]:size-4",
6950
+ className
6951
+ ),
6952
+ ...props,
6953
+ children: state === "expanded" ? /* @__PURE__ */ jsx(PanelLeftCloseIcon, {}) : /* @__PURE__ */ jsx(PanelLeftIcon, {})
6954
+ }
6955
+ );
6956
+ }
6957
+ );
6958
+ SidebarTrigger.displayName = "SidebarTrigger";
6959
+ var SidebarBrand = React36.forwardRef(
6960
+ function SidebarBrand2({ className, ...props }, ref) {
6961
+ return /* @__PURE__ */ jsx(
6962
+ "div",
6963
+ {
6964
+ ref,
6965
+ className: cn(
6966
+ "flex min-w-0 items-center gap-2 px-2 pt-1 pb-4",
6967
+ className
6968
+ ),
6969
+ ...props
6970
+ }
6971
+ );
6972
+ }
6973
+ );
6712
6974
  SidebarBrand.displayName = "SidebarBrand";
6713
- var SidebarSection = forwardRef(
6975
+ var SidebarBrandText = React36.forwardRef(
6976
+ function SidebarBrandText2({ className, ...props }, ref) {
6977
+ return /* @__PURE__ */ jsx(
6978
+ "span",
6979
+ {
6980
+ ref,
6981
+ "aria-hidden": "false",
6982
+ className: cn(
6983
+ "min-w-0 truncate",
6984
+ // Smooth fade + width collapse on rail. Keeps the wordmark
6985
+ // legible up to the moment the column reaches rail width, then
6986
+ // fully drops out (visibility:hidden cuts hit-testing).
6987
+ "transition-[opacity,max-width] duration-[180ms] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
6988
+ "max-w-[160px] opacity-100",
6989
+ "group-data-[labels=hide]/sidebar:max-w-0 group-data-[labels=hide]/sidebar:opacity-0 group-data-[labels=hide]/sidebar:invisible",
6990
+ className
6991
+ ),
6992
+ ...props
6993
+ }
6994
+ );
6995
+ }
6996
+ );
6997
+ SidebarBrandText.displayName = "SidebarBrandText";
6998
+ var SidebarGroupScopeContext = React36.createContext(null);
6999
+ var SidebarSection = React36.forwardRef(
6714
7000
  function SidebarSection2({ label, tone = "pro", className, children, ...props }, ref) {
6715
- return /* @__PURE__ */ jsxs("div", { ref, className: cn("mb-4", className), ...props, children: [
6716
- label != null && /* @__PURE__ */ jsx("div", { className: "mb-1 flex items-center justify-between px-2.5 py-1", children: /* @__PURE__ */ jsx(
6717
- "span",
6718
- {
6719
- className: cn(
6720
- "font-mono text-[11px] tracking-[0.14em] uppercase",
6721
- tone === "muted" ? "text-fg-3" : "text-pro-fg"
7001
+ const ariaLabel = typeof label === "string" ? label : typeof label === "number" ? String(label) : void 0;
7002
+ const [exclusiveId, setExclusiveIdState] = React36.useState(null);
7003
+ const setExclusive = React36.useCallback(
7004
+ (id) => setExclusiveIdState(id),
7005
+ []
7006
+ );
7007
+ const scope = React36.useMemo(
7008
+ () => ({ exclusiveId, setExclusive }),
7009
+ [exclusiveId, setExclusive]
7010
+ );
7011
+ return /* @__PURE__ */ jsx(SidebarGroupScopeContext.Provider, { value: scope, children: /* @__PURE__ */ jsxs(
7012
+ "div",
7013
+ {
7014
+ ref,
7015
+ role: ariaLabel ? "group" : void 0,
7016
+ "aria-label": ariaLabel,
7017
+ className: cn(
7018
+ "mb-4",
7019
+ // In rail, the visible section labels disappear and the only
7020
+ // grouping cue is a thin rule. No extra mb/pb — the border
7021
+ // itself separates groups, so inter-section spacing matches
7022
+ // intra-section spacing and the rail stays dense.
7023
+ "group-data-[labels=hide]/sidebar:mb-0 group-data-[labels=hide]/sidebar:border-b group-data-[labels=hide]/sidebar:border-rule group-data-[labels=hide]/sidebar:pb-0 group-data-[labels=hide]/sidebar:last:border-b-0",
7024
+ className
7025
+ ),
7026
+ ...props,
7027
+ children: [
7028
+ label != null && /* @__PURE__ */ jsx(
7029
+ "div",
7030
+ {
7031
+ className: cn(
7032
+ "mb-1 flex items-center justify-between px-2.5 py-1",
7033
+ "transition-opacity duration-[180ms] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
7034
+ "opacity-100",
7035
+ "group-data-[labels=hide]/sidebar:invisible group-data-[labels=hide]/sidebar:opacity-0"
7036
+ ),
7037
+ children: /* @__PURE__ */ jsx(
7038
+ "span",
7039
+ {
7040
+ className: cn(
7041
+ "font-mono text-[11px] tracking-[0.14em] uppercase",
7042
+ tone === "muted" ? "text-fg-3" : "text-pro-fg"
7043
+ ),
7044
+ children: label
7045
+ }
7046
+ )
7047
+ }
6722
7048
  ),
6723
- children: label
6724
- }
6725
- ) }),
6726
- children
6727
- ] });
7049
+ children
7050
+ ]
7051
+ }
7052
+ ) });
6728
7053
  }
6729
7054
  );
6730
7055
  SidebarSection.displayName = "SidebarSection";
6731
- var SidebarLink = forwardRef(function SidebarLink2({ href, icon, active = false, asChild, className, children, ...props }, ref) {
6732
- const Comp = asChild ? Slot : "a";
6733
- return /* @__PURE__ */ jsx(
6734
- Comp,
6735
- {
6736
- ref,
6737
- ...asChild ? {} : { href },
6738
- "data-active": active ? "true" : void 0,
6739
- "aria-current": active ? "page" : void 0,
6740
- className: cn(
6741
- "group relative mb-px flex items-center gap-2.5 rounded-md px-2.5 py-1.5",
6742
- "text-fg-2 text-[13px] font-normal no-underline",
6743
- "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)]",
6744
- "motion-reduce:transition-none",
6745
- "hover:bg-bg-3 hover:text-fg",
6746
- "focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
6747
- "data-[active=true]:bg-pro-bg data-[active=true]:text-pro-fg data-[active=true]:font-medium",
6748
- // Active rail: 2px wide, 16px tall, anchored to the link's own left
6749
- // edge (no parent-padding dependency fixes G12).
6750
- "data-[active=true]:before:absolute data-[active=true]:before:content-['']",
6751
- "data-[active=true]:before:top-1/2 data-[active=true]:before:left-0",
6752
- "data-[active=true]:before:h-4 data-[active=true]:before:w-[2px] data-[active=true]:before:-translate-y-1/2",
6753
- "data-[active=true]:before:bg-pro-fg data-[active=true]:before:rounded-r-full",
6754
- "motion-reduce:transition-none",
6755
- "[&_svg]:size-3.5 [&_svg]:shrink-0 [&_svg]:opacity-85",
6756
- className
6757
- ),
6758
- ...props,
6759
- children: asChild ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
6760
- icon,
6761
- /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate", children })
6762
- ] })
6763
- }
6764
- );
6765
- });
7056
+ var SidebarLink = React36.forwardRef(
7057
+ function SidebarLink2({ href, icon, active = false, asChild, className, children, ...props }, ref) {
7058
+ const Comp = asChild ? Slot : "a";
7059
+ return /* @__PURE__ */ jsx(
7060
+ Comp,
7061
+ {
7062
+ ref,
7063
+ ...asChild ? {} : { href },
7064
+ "data-active": active ? "true" : void 0,
7065
+ "aria-current": active ? "page" : void 0,
7066
+ className: cn(
7067
+ "group/link relative mb-px flex items-center gap-2.5 rounded-md px-2.5 py-1.5",
7068
+ "text-fg-2 text-[13px] font-normal no-underline",
7069
+ "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)]",
7070
+ "motion-reduce:transition-none",
7071
+ "hover:bg-bg-3 hover:text-fg",
7072
+ "focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
7073
+ "data-[active=true]:bg-pro-bg data-[active=true]:text-pro-fg data-[active=true]:font-medium",
7074
+ // In rail, the icon itself carries the active state rather
7075
+ // than just the rule bar — color is more legible than a 2px
7076
+ // vertical mark at the column's left edge when labels are
7077
+ // hidden. The full-opacity icon override (`opacity-100`)
7078
+ // counters the default `[&_svg]:opacity-85` so the active
7079
+ // icon doesn't read as "still inactive but darker".
7080
+ "group-data-[labels=hide]/sidebar:data-[active=true]:[&_svg]:text-pro-fg group-data-[labels=hide]/sidebar:data-[active=true]:[&_svg]:opacity-100",
7081
+ // Active rail: 2px wide, 16px tall, anchored to the link's
7082
+ // own left edge — no parent-padding dependency. Continues
7083
+ // working unchanged when the aside narrows to a rail.
7084
+ "data-[active=true]:before:absolute data-[active=true]:before:content-['']",
7085
+ "data-[active=true]:before:top-1/2 data-[active=true]:before:left-0",
7086
+ "data-[active=true]:before:h-4 data-[active=true]:before:w-[2px] data-[active=true]:before:-translate-y-1/2",
7087
+ "data-[active=true]:before:bg-pro-fg data-[active=true]:before:rounded-r-full",
7088
+ // Padding/gap stay constant so the icon stays under the cursor
7089
+ // when the column widens during peek. The label simply collapses
7090
+ // to width 0 via <SidebarLinkLabel>.
7091
+ "[&_svg]:size-3.5 [&_svg]:shrink-0 [&_svg]:opacity-85",
7092
+ className
7093
+ ),
7094
+ ...props,
7095
+ children: asChild ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
7096
+ icon,
7097
+ /* @__PURE__ */ jsx(
7098
+ "span",
7099
+ {
7100
+ className: cn(
7101
+ "min-w-0 flex-1 truncate",
7102
+ "transition-[opacity,max-width] duration-[180ms] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
7103
+ "max-w-full opacity-100",
7104
+ "group-data-[labels=hide]/sidebar:max-w-0 group-data-[labels=hide]/sidebar:opacity-0 group-data-[labels=hide]/sidebar:invisible"
7105
+ ),
7106
+ children
7107
+ }
7108
+ )
7109
+ ] })
7110
+ }
7111
+ );
7112
+ }
7113
+ );
6766
7114
  SidebarLink.displayName = "SidebarLink";
7115
+ var SidebarLinkLabel = React36.forwardRef(
7116
+ function SidebarLinkLabel2({ className, ...props }, ref) {
7117
+ return /* @__PURE__ */ jsx(
7118
+ "span",
7119
+ {
7120
+ ref,
7121
+ className: cn(
7122
+ "min-w-0 flex-1 truncate",
7123
+ // Fade + collapse instead of hard display:none so a single
7124
+ // 180ms opacity tween covers all labels in lockstep with the
7125
+ // 220ms aside-width transition — no snap on the last frame.
7126
+ "transition-[opacity,max-width] duration-[180ms] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
7127
+ "max-w-full opacity-100",
7128
+ "group-data-[labels=hide]/sidebar:max-w-0 group-data-[labels=hide]/sidebar:opacity-0 group-data-[labels=hide]/sidebar:invisible",
7129
+ className
7130
+ ),
7131
+ ...props
7132
+ }
7133
+ );
7134
+ }
7135
+ );
7136
+ SidebarLinkLabel.displayName = "SidebarLinkLabel";
7137
+ var SidebarLinkAction = React36.forwardRef(
7138
+ function SidebarLinkAction2({ className, ...props }, ref) {
7139
+ return /* @__PURE__ */ jsx(
7140
+ "span",
7141
+ {
7142
+ ref,
7143
+ className: cn(
7144
+ "transition-opacity duration-[180ms] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
7145
+ "opacity-100",
7146
+ "group-data-[labels=hide]/sidebar:invisible group-data-[labels=hide]/sidebar:opacity-0",
7147
+ className
7148
+ ),
7149
+ ...props
7150
+ }
7151
+ );
7152
+ }
7153
+ );
7154
+ SidebarLinkAction.displayName = "SidebarLinkAction";
6767
7155
  var sidebarLinkBadgeVariants = cva(
6768
- "ml-auto inline-flex shrink-0 items-center justify-center font-mono tabular-nums",
7156
+ "ml-auto inline-flex shrink-0 items-center justify-center font-mono tabular-nums group-data-[labels=hide]/sidebar:hidden",
6769
7157
  {
6770
7158
  variants: {
6771
7159
  tone: {
6772
- // Default: bare mono digit, picks up Pro fg on the active link.
6773
- default: "text-[10.5px] text-fg-4 group-data-[active=true]:text-pro-fg",
6774
- // Semantic pills — for nav items with action signals
6775
- // (unread messages, due tasks, blocked actions).
7160
+ default: "text-[10.5px] text-fg-4 group-data-[active=true]/link:text-pro-fg",
6776
7161
  danger: "rounded-pill bg-danger-bg px-1.5 py-0.5 text-[10.5px] text-danger-fg",
6777
7162
  warning: "rounded-pill bg-warning-bg px-1.5 py-0.5 text-[10.5px] text-warning-fg",
6778
7163
  neutral: "rounded-pill bg-bg-3 px-1.5 py-0.5 text-[10.5px] text-fg-2"
@@ -6781,34 +7166,176 @@ var sidebarLinkBadgeVariants = cva(
6781
7166
  defaultVariants: { tone: "default" }
6782
7167
  }
6783
7168
  );
6784
- var SidebarLinkBadge = forwardRef(
7169
+ var SidebarLinkBadge = React36.forwardRef(
6785
7170
  function SidebarLinkBadge2({ tone, className, ...props }, ref) {
6786
7171
  return /* @__PURE__ */ jsx("span", { ref, className: cn(sidebarLinkBadgeVariants({ tone }), className), ...props });
6787
7172
  }
6788
7173
  );
6789
7174
  SidebarLinkBadge.displayName = "SidebarLinkBadge";
6790
- var SidebarFooter = forwardRef(function SidebarFooter2({ className, ...props }, ref) {
6791
- return /* @__PURE__ */ jsx(
6792
- "div",
6793
- {
6794
- ref,
6795
- className: cn(
6796
- "border-rule mt-auto flex items-center gap-2.5 border-t px-2 pt-2.5 pb-1",
6797
- "text-fg-3 text-xs",
6798
- className
6799
- ),
6800
- ...props
6801
- }
6802
- );
6803
- });
7175
+ var SidebarLinkGroup = React36.forwardRef(
7176
+ function SidebarLinkGroup2({
7177
+ id: idProp,
7178
+ icon,
7179
+ label,
7180
+ href,
7181
+ active = false,
7182
+ defaultOpen = false,
7183
+ open: controlled,
7184
+ onOpenChange,
7185
+ onActivate,
7186
+ className,
7187
+ children,
7188
+ ...props
7189
+ }, ref) {
7190
+ const reactId = React36.useId();
7191
+ const id = idProp ?? reactId;
7192
+ const scope = React36.useContext(SidebarGroupScopeContext);
7193
+ const [uncontrolledOpen, setUncontrolledOpen] = React36.useState(defaultOpen);
7194
+ const open = controlled ?? uncontrolledOpen;
7195
+ const setOpen = React36.useCallback(
7196
+ (next) => {
7197
+ if (controlled === void 0) setUncontrolledOpen(next);
7198
+ onOpenChange?.(next);
7199
+ },
7200
+ [controlled, onOpenChange]
7201
+ );
7202
+ React36.useEffect(() => {
7203
+ if (scope?.exclusiveId && scope.exclusiveId !== id && open) {
7204
+ setOpen(false);
7205
+ }
7206
+ }, [scope?.exclusiveId, id, open, setOpen]);
7207
+ const handleBodyClick = (e) => {
7208
+ onActivate?.(e);
7209
+ if (e.defaultPrevented) return;
7210
+ scope?.setExclusive(id);
7211
+ setOpen(true);
7212
+ };
7213
+ const handleChevronClick = (e) => {
7214
+ e.preventDefault();
7215
+ e.stopPropagation();
7216
+ setOpen(!open);
7217
+ };
7218
+ const contentId = `${id}-content`;
7219
+ const bodyClassName = cn(
7220
+ "group/link relative flex flex-1 items-center gap-2.5 rounded-md px-2.5 py-1.5",
7221
+ "text-fg-2 text-[13px] font-normal no-underline",
7222
+ "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)]",
7223
+ "motion-reduce:transition-none",
7224
+ "hover:bg-bg-3 hover:text-fg",
7225
+ "focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
7226
+ "data-[active=true]:bg-pro-bg data-[active=true]:text-pro-fg data-[active=true]:font-medium",
7227
+ // In rail, color carries active state since the chevron is hidden.
7228
+ "group-data-[labels=hide]/sidebar:data-[active=true]:[&_svg]:text-pro-fg group-data-[labels=hide]/sidebar:data-[active=true]:[&_svg]:opacity-100",
7229
+ // Active rail mark — anchored to body row's left edge.
7230
+ "data-[active=true]:before:absolute data-[active=true]:before:content-['']",
7231
+ "data-[active=true]:before:top-1/2 data-[active=true]:before:left-0",
7232
+ "data-[active=true]:before:h-4 data-[active=true]:before:w-[2px] data-[active=true]:before:-translate-y-1/2",
7233
+ "data-[active=true]:before:bg-pro-fg data-[active=true]:before:rounded-r-full",
7234
+ "[&_svg]:size-3.5 [&_svg]:shrink-0 [&_svg]:opacity-85"
7235
+ );
7236
+ const labelSpan = /* @__PURE__ */ jsx(
7237
+ "span",
7238
+ {
7239
+ className: cn(
7240
+ "min-w-0 flex-1 truncate",
7241
+ "transition-[opacity,max-width] duration-[180ms] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
7242
+ "max-w-full opacity-100",
7243
+ "group-data-[labels=hide]/sidebar:max-w-0 group-data-[labels=hide]/sidebar:opacity-0 group-data-[labels=hide]/sidebar:invisible"
7244
+ ),
7245
+ children: label
7246
+ }
7247
+ );
7248
+ return /* @__PURE__ */ jsx("div", { ref, className: cn("mb-px", className), ...props, children: /* @__PURE__ */ jsxs(Collapsible, { open, onOpenChange: setOpen, children: [
7249
+ /* @__PURE__ */ jsxs("div", { className: "flex items-stretch", children: [
7250
+ /* @__PURE__ */ jsxs(
7251
+ "a",
7252
+ {
7253
+ href,
7254
+ "data-active": active ? "true" : void 0,
7255
+ "aria-current": active ? "page" : void 0,
7256
+ onClick: handleBodyClick,
7257
+ className: bodyClassName,
7258
+ children: [
7259
+ icon,
7260
+ labelSpan
7261
+ ]
7262
+ }
7263
+ ),
7264
+ /* @__PURE__ */ jsx(
7265
+ "button",
7266
+ {
7267
+ type: "button",
7268
+ "aria-expanded": open,
7269
+ "aria-controls": contentId,
7270
+ "aria-label": open ? "Collapse section" : "Expand section",
7271
+ onClick: handleChevronClick,
7272
+ className: cn(
7273
+ "ml-px inline-flex size-7 shrink-0 items-center justify-center rounded-md",
7274
+ "text-fg-4 hover:bg-bg-3 hover:text-fg-2",
7275
+ "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
7276
+ "focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
7277
+ "[&_svg]:size-3.5 [&_svg]:shrink-0 [&_svg]:transition-transform [&_svg]:duration-[var(--duration-fast)] [&_svg]:ease-[var(--ease-out-quart)] motion-reduce:[&_svg]:transition-none",
7278
+ // Hide in rail — content tree is hidden too, so the
7279
+ // affordance has nothing to control.
7280
+ "group-data-[labels=hide]/sidebar:hidden"
7281
+ ),
7282
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: open ? "" : "-rotate-90" })
7283
+ }
7284
+ )
7285
+ ] }),
7286
+ /* @__PURE__ */ jsx(
7287
+ CollapsibleContent,
7288
+ {
7289
+ id: contentId,
7290
+ className: cn(
7291
+ // Indent column + connecting rule. Children render as
7292
+ // standard <SidebarLink>s and keep their own active-rail
7293
+ // indicator, which lands flush at the indented column's
7294
+ // left edge.
7295
+ "group-data-[labels=hide]/sidebar:hidden"
7296
+ ),
7297
+ children: /* @__PURE__ */ jsx("div", { className: "border-rule mt-px ml-[18px] border-l pl-2", children })
7298
+ }
7299
+ )
7300
+ ] }) });
7301
+ }
7302
+ );
7303
+ SidebarLinkGroup.displayName = "SidebarLinkGroup";
7304
+ var SidebarFooter = React36.forwardRef(
7305
+ function SidebarFooter2({ className, ...props }, ref) {
7306
+ return /* @__PURE__ */ jsx(
7307
+ "div",
7308
+ {
7309
+ ref,
7310
+ className: cn(
7311
+ "border-rule mt-auto flex items-center gap-2.5 border-t px-2 pt-2.5 pb-1",
7312
+ "text-fg-3 text-xs",
7313
+ className
7314
+ ),
7315
+ ...props
7316
+ }
7317
+ );
7318
+ }
7319
+ );
6804
7320
  SidebarFooter.displayName = "SidebarFooter";
6805
- var SidebarUser = forwardRef(function SidebarUser2({ name, subtitle, avatarSrc, className, ...props }, ref) {
7321
+ var SidebarUser = React36.forwardRef(function SidebarUser2({ name, subtitle, avatarSrc, className, ...props }, ref) {
6806
7322
  return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex min-w-0 items-center gap-2.5", className), ...props, children: [
6807
7323
  /* @__PURE__ */ jsx(Avatar, { size: "sm", variant: "branded", name, src: avatarSrc ?? void 0 }),
6808
- /* @__PURE__ */ jsxs("div", { className: "min-w-0 leading-tight", children: [
6809
- /* @__PURE__ */ jsx("div", { className: "text-fg truncate text-[13px] font-medium", children: name }),
6810
- subtitle != null && /* @__PURE__ */ jsx("div", { className: "text-fg-4 truncate font-mono text-[10.5px]", children: subtitle })
6811
- ] })
7324
+ /* @__PURE__ */ jsxs(
7325
+ "div",
7326
+ {
7327
+ className: cn(
7328
+ "min-w-0 leading-tight",
7329
+ "transition-[opacity,max-width] duration-[180ms] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
7330
+ "max-w-full opacity-100",
7331
+ "group-data-[labels=hide]/sidebar:max-w-0 group-data-[labels=hide]/sidebar:opacity-0 group-data-[labels=hide]/sidebar:invisible"
7332
+ ),
7333
+ children: [
7334
+ /* @__PURE__ */ jsx("div", { className: "text-fg truncate text-[13px] font-medium", children: name }),
7335
+ subtitle != null && /* @__PURE__ */ jsx("div", { className: "text-fg-4 truncate font-mono text-[10.5px]", children: subtitle })
7336
+ ]
7337
+ }
7338
+ )
6812
7339
  ] });
6813
7340
  });
6814
7341
  SidebarUser.displayName = "SidebarUser";
@@ -7532,6 +8059,6 @@ var KbdHint = forwardRef(function KbdHint2({ className, children, ...props }, re
7532
8059
  });
7533
8060
  KbdHint.displayName = "KbdHint";
7534
8061
 
7535
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityItem, ActivityList, Alert, AlertCircleIcon, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AlertTriangleIcon, AppHeader, AppHeaderActions, AppHeaderBreadcrumb, AppHeaderSearch, AppHeaderTitle, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowRightSmallIcon, ArrowUpIcon, AspectRatio, AtSignIcon, Avatar, Badge, BarChartIcon, BellIcon, Blockquote, BoldIcon, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BriefcaseIcon, Building2Icon, BuildingIcon, Button, Calendar, CalendarIcon, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChatBubbleIcon, CheckCircle2Icon, CheckIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CircleDotIcon, CircleIcon, ClientSelect, ClipboardCheckIcon, ClockIcon, CloseIcon, Collapsible, CollapsibleContent, CollapsibleTrigger, ComingSoon, CommandIcon, CommandPalette, ConfirmActionButton, Content15 as Content, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, CopyIcon, CornerDownLeftIcon, CreditCardIcon, DATE_DISPLAY_PLACEHOLDER, DangerAction, DataTable, DataTableBody, DataTableCell, DataTableCellDue, DataTableCellId, DataTableCellMono, DataTableCellName, DataTableCheckbox, DataTableHead, DataTableHeader, DataTablePagination, DataTableResultsCount, DataTableRow, DataTableSearch, DataTableSpacer, DataTableToolbar, DatePicker, DetailGrid, DetailMain, DetailSpine, DetailSpineHeader, DetailSpineSection, DetailSpineStats, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DocumentIcon, DollarSignIcon, DownloadIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EyeIcon, EyeOffIcon, Eyebrow, FileIcon, FileReturnIcon, FileTextIcon, FileUpload, FilterChip, FlagIcon, FolderClosedIcon, FolderOpenIcon, FolderPlusIcon, FormError, FormSuccess, GlobeIcon, GoogleBrandIcon, HelpCircleIcon, HistoryIcon, HomeIcon, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, IconAction, InboxIcon, InfoIcon, Input, ItalicIcon, Kanban, KanbanCard, KanbanColumn, KanbanIcon, KbdHint, KeyIcon, KeyboardShortcutsDialog, Label4 as Label, LayoutDashboardIcon, LayoutGridIcon, LayoutListIcon, LightningIcon, Link2Icon, LinkAction, LinkButton, LinkIcon, ListChecksIcon, ListIcon, ListOrderedIcon, LoaderIcon, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, Logo, MailIcon, Main, MapPinIcon, MenuIcon, MessageCircleIcon, MessageCircleWarningIcon, MicrosoftBrandIcon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, MoveIcon, MultiFilterPill, MultiSelectField, MutedSpec, Numeric, OTPInput, PageHeader, PageHeaderSep, PageHeaderSpec, Pagination, PaletteIcon, PanelLeftCloseIcon, PanelLeftIcon, PaperclipIcon, PenSignIcon, PencilIcon, PhoneIcon, PhoneInput, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, PrimaryAction, ProgressBar, ProgressRing, RadioGroup3 as RadioGroup, RadioGroupItem, ReceiptIcon, ReplyIcon, RotateCcwIcon, SaveIcon, ScrollArea, ScrollBar, SearchIcon, SearchInput, SearchSelect, SecondaryAction, Section, SectionHead, SectionHeader, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectRoot, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SendIcon, Separator4 as Separator, SettingsIcon, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Shell, ShieldIcon, SideDrawer, Sidebar, SidebarBrand, SidebarFooter, SidebarLink, SidebarLinkBadge, SidebarSection, SidebarUser, Skeleton, SkeletonCircle, SkeletonText, SlashIcon, Slider, SmartphoneIcon, SparkleIcon, SparklesIcon, StarIcon, StarRating, Stat, Stepper, StrikethroughIcon, SubmitButton, SunIcon, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableIcon, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagIcon, TeamIcon, TeamMemberSelect, Textarea, ToastProvider, ToggleGroup, ToggleGroupItem, Toolbar, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, Trash2Icon, TrashIcon, UnderlineIcon, UploadIcon, UserCircleIcon, UserIcon, UsersIcon, VisuallyHidden, WorkflowIcon, XIcon, ZoomInIcon, ZoomOutIcon, alertVariants, badgeVariants, buttonVariants, cardVariants, cn, colors, displayToIso, filterChipVariants, inputVariants, isoToDisplay, kanbanCardVariants, labelVariants, progressBarVariants, progressRingVariants, radii, reference, searchInputVariants, shadows, sidebarLinkBadgeVariants, spacing, starRatingVariants, surfaces, systemTokens, textareaVariants, typography, useToast };
8062
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityItem, ActivityList, Alert, AlertCircleIcon, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AlertTriangleIcon, AppHeader, AppHeaderActions, AppHeaderBreadcrumb, AppHeaderSearch, AppHeaderTitle, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowRightSmallIcon, ArrowUpIcon, AspectRatio, AtSignIcon, Avatar, Badge, BarChartIcon, BellIcon, Blockquote, BoldIcon, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BriefcaseIcon, Building2Icon, BuildingIcon, Button, Calendar, CalendarIcon, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChatBubbleIcon, CheckCircle2Icon, CheckIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CircleDotIcon, CircleIcon, ClientSelect, ClipboardCheckIcon, ClockIcon, CloseIcon, Collapsible, CollapsibleContent, CollapsibleTrigger, ComingSoon, CommandIcon, CommandPalette, ConfirmActionButton, Content15 as Content, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, CopyIcon, CornerDownLeftIcon, CreditCardIcon, DATE_DISPLAY_PLACEHOLDER, DangerAction, DataTable, DataTableBody, DataTableCell, DataTableCellDue, DataTableCellId, DataTableCellMono, DataTableCellName, DataTableCheckbox, DataTableHead, DataTableHeader, DataTablePagination, DataTableResultsCount, DataTableRow, DataTableSearch, DataTableSpacer, DataTableToolbar, DatePicker, DetailGrid, DetailMain, DetailSpine, DetailSpineHeader, DetailSpineSection, DetailSpineStats, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DismissibleChip, DocumentIcon, DollarSignIcon, DownloadIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EyeIcon, EyeOffIcon, Eyebrow, FileIcon, FileReturnIcon, FileTextIcon, FileUpload, FilterChip, FilterIcon, FlagIcon, FolderClosedIcon, FolderOpenIcon, FolderPlusIcon, FormError, FormSuccess, GlobeIcon, GoogleBrandIcon, HelpCircleIcon, HistoryIcon, HomeIcon, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, IconAction, InboxIcon, InfoIcon, Input, ItalicIcon, Kanban, KanbanCard, KanbanColumn, KanbanIcon, KbdHint, KeyIcon, KeyboardShortcutsDialog, Label4 as Label, LayoutDashboardIcon, LayoutGridIcon, LayoutListIcon, LightningIcon, Link2Icon, LinkAction, LinkButton, LinkIcon, ListChecksIcon, ListIcon, ListOrderedIcon, LoaderIcon, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, Logo, MailIcon, Main, MapPinIcon, MenuIcon, MessageCircleIcon, MessageCircleWarningIcon, MicrosoftBrandIcon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, MoveIcon, MultiFilterPill, MultiSelectField, MutedSpec, Numeric, OTPInput, PageHeader, PageHeaderSep, PageHeaderSpec, Pagination, PaletteIcon, PanelLeftCloseIcon, PanelLeftIcon, PaperclipIcon, PenSignIcon, PencilIcon, PhoneIcon, PhoneInput, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, PrimaryAction, ProgressBar, ProgressRing, RadioGroup3 as RadioGroup, RadioGroupItem, ReceiptIcon, ReplyIcon, RotateCcwIcon, SaveIcon, ScrollArea, ScrollBar, SearchIcon, SearchInput, SearchSelect, SecondaryAction, Section, SectionHead, SectionHeader, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectRoot, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SendIcon, Separator4 as Separator, SettingsIcon, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Shell, ShieldIcon, SideDrawer, Sidebar, SidebarBrand, SidebarBrandText, SidebarFooter, SidebarLink, SidebarLinkAction, SidebarLinkBadge, SidebarLinkGroup, SidebarLinkLabel, SidebarProvider, SidebarSection, SidebarTrigger, SidebarUser, Skeleton, SkeletonCircle, SkeletonText, SlashIcon, Slider, SmartphoneIcon, SparkleIcon, SparklesIcon, StarIcon, StarRating, Stat, Stepper, StrikethroughIcon, SubmitButton, SunIcon, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableIcon, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagIcon, TeamIcon, TeamMemberSelect, Textarea, ToastProvider, ToggleGroup, ToggleGroupItem, Toolbar, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, Trash2Icon, TrashIcon, UnderlineIcon, UploadIcon, UserCircleIcon, UserIcon, UsersIcon, VisuallyHidden, WorkflowIcon, XIcon, ZoomInIcon, ZoomOutIcon, alertVariants, badgeVariants, buttonVariants, cardVariants, cn, colors, displayToIso, filterChipVariants, inputVariants, isoToDisplay, kanbanCardVariants, labelVariants, progressBarVariants, progressRingVariants, radii, reference, searchInputVariants, shadows, sidebarLinkBadgeVariants, spacing, starRatingVariants, surfaces, systemTokens, textareaVariants, typography, useSidebarState, useToast };
7536
8063
  //# sourceMappingURL=index.js.map
7537
8064
  //# sourceMappingURL=index.js.map