@ai-matrx/design-system 0.12.1 → 0.14.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
@@ -35,6 +35,16 @@ function ChevronLeftIcon(props) {
35
35
  function ChevronRightIcon(props) {
36
36
  return /* @__PURE__ */ jsx("svg", { ...lucideProps(props), children: /* @__PURE__ */ jsx("path", { d: "m9 18 6-6-6-6" }) });
37
37
  }
38
+ function ChevronDownIcon(props) {
39
+ return /* @__PURE__ */ jsx("svg", { ...lucideProps(props), children: /* @__PURE__ */ jsx("path", { d: "m6 9 6 6 6-6" }) });
40
+ }
41
+ function ArchiveIcon(props) {
42
+ return /* @__PURE__ */ jsxs("svg", { ...lucideProps(props), children: [
43
+ /* @__PURE__ */ jsx("rect", { width: "20", height: "5", x: "2", y: "3", rx: "1" }),
44
+ /* @__PURE__ */ jsx("path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8" }),
45
+ /* @__PURE__ */ jsx("path", { d: "M10 12h4" })
46
+ ] });
47
+ }
38
48
  function MoreHorizontalIcon(props) {
39
49
  return /* @__PURE__ */ jsxs("svg", { ...lucideProps(props), children: [
40
50
  /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "1" }),
@@ -2910,11 +2920,98 @@ function SegmentedControl({
2910
2920
  );
2911
2921
  }
2912
2922
 
2923
+ // src/archive-filter.tsx
2924
+ import * as React24 from "react";
2925
+ import { jsx as jsx31, jsxs as jsxs17 } from "react/jsx-runtime";
2926
+ var ARCHIVE_FILTER_VALUES = ["active", "archived", "all"];
2927
+ var DEFAULT_ARCHIVE_FILTER = "active";
2928
+ var ARCHIVE_LABEL = "Archived";
2929
+ var ARCHIVE_FILTER_LABELS = {
2930
+ active: "Active only",
2931
+ archived: `${ARCHIVE_LABEL} only`,
2932
+ all: "Active + archived"
2933
+ };
2934
+ function archiveFilterFromDisclosure(open) {
2935
+ return open ? "all" : DEFAULT_ARCHIVE_FILTER;
2936
+ }
2937
+ function toArchiveFilter(value, fallback = DEFAULT_ARCHIVE_FILTER) {
2938
+ return ARCHIVE_FILTER_VALUES.includes(value) ? value : fallback;
2939
+ }
2940
+ function ArchiveFilter({
2941
+ value,
2942
+ onValueChange,
2943
+ counts,
2944
+ labels,
2945
+ size = "sm",
2946
+ className,
2947
+ "aria-label": ariaLabel = "Archive filter",
2948
+ disabled = false
2949
+ }) {
2950
+ const data = React24.useMemo(
2951
+ () => ARCHIVE_FILTER_VALUES.map((state) => {
2952
+ const text = labels?.[state] ?? ARCHIVE_FILTER_LABELS[state];
2953
+ const count = counts?.[state];
2954
+ return {
2955
+ value: state,
2956
+ disabled,
2957
+ label: typeof count === "number" ? /* @__PURE__ */ jsxs17("span", { className: "inline-flex items-center gap-1.5", children: [
2958
+ /* @__PURE__ */ jsx31("span", { children: text }),
2959
+ /* @__PURE__ */ jsx31("span", { className: "text-muted-foreground tabular-nums", children: count })
2960
+ ] }) : text
2961
+ };
2962
+ }),
2963
+ [counts, labels, disabled]
2964
+ );
2965
+ return /* @__PURE__ */ jsx31("div", { role: "group", "aria-label": ariaLabel, className: cn("inline-flex", className), children: /* @__PURE__ */ jsx31(
2966
+ SegmentedControl,
2967
+ {
2968
+ value,
2969
+ onValueChange: (next) => onValueChange(toArchiveFilter(next, value)),
2970
+ data,
2971
+ size
2972
+ }
2973
+ ) });
2974
+ }
2975
+
2976
+ // src/archived-disclosure.tsx
2977
+ import { jsx as jsx32, jsxs as jsxs18 } from "react/jsx-runtime";
2978
+ function ArchivedDisclosure({
2979
+ count,
2980
+ open,
2981
+ onOpenChange,
2982
+ children,
2983
+ label = ARCHIVE_LABEL,
2984
+ countLabel,
2985
+ keepWhileOpen = false,
2986
+ className,
2987
+ contentClassName
2988
+ }) {
2989
+ if (count <= 0 && !(open && keepWhileOpen)) return null;
2990
+ const parenthetical = countLabel === void 0 ? String(count) : countLabel;
2991
+ return /* @__PURE__ */ jsxs18("div", { className: cn("min-w-0", className), children: [
2992
+ /* @__PURE__ */ jsxs18(
2993
+ "button",
2994
+ {
2995
+ type: "button",
2996
+ onClick: () => onOpenChange(!open),
2997
+ "aria-expanded": open,
2998
+ className: "flex w-full items-center gap-2 rounded-lg px-2 py-2 text-sm text-muted-foreground hover:bg-accent active:bg-accent",
2999
+ children: [
3000
+ open ? /* @__PURE__ */ jsx32(ChevronDownIcon, { className: "h-4 w-4 shrink-0" }) : /* @__PURE__ */ jsx32(ChevronRightIcon, { className: "h-4 w-4 shrink-0" }),
3001
+ /* @__PURE__ */ jsx32(ArchiveIcon, { className: "h-4 w-4 shrink-0" }),
3002
+ /* @__PURE__ */ jsx32("span", { className: "truncate", children: parenthetical === null ? label : `${label} (${parenthetical})` })
3003
+ ]
3004
+ }
3005
+ ),
3006
+ open && children ? /* @__PURE__ */ jsx32("div", { className: cn("mt-1", contentClassName), children }) : null
3007
+ ] });
3008
+ }
3009
+
2913
3010
  // src/select.tsx
2914
3011
  import * as SelectPrimitive from "@radix-ui/react-select";
2915
3012
  import { cva as cva4 } from "class-variance-authority";
2916
- import * as React24 from "react";
2917
- import { jsx as jsx31, jsxs as jsxs17 } from "react/jsx-runtime";
3013
+ import * as React25 from "react";
3014
+ import { jsx as jsx33, jsxs as jsxs19 } from "react/jsx-runtime";
2918
3015
  var Select = SelectPrimitive.Root;
2919
3016
  var SelectGroup = SelectPrimitive.Group;
2920
3017
  var SelectValue = SelectPrimitive.Value;
@@ -2933,7 +3030,7 @@ var selectTriggerVariants = cva4(
2933
3030
  }
2934
3031
  }
2935
3032
  );
2936
- var SelectTrigger = React24.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ jsxs17(
3033
+ var SelectTrigger = React25.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ jsxs19(
2937
3034
  SelectPrimitive.Trigger,
2938
3035
  {
2939
3036
  ref,
@@ -2941,12 +3038,12 @@ var SelectTrigger = React24.forwardRef(({ className, children, hideArrow = false
2941
3038
  ...props,
2942
3039
  children: [
2943
3040
  children,
2944
- !hideArrow && /* @__PURE__ */ jsx31(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx31(RadixChevronDownIcon, { className: "h-4 w-4 opacity-50" }) })
3041
+ !hideArrow && /* @__PURE__ */ jsx33(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx33(RadixChevronDownIcon, { className: "h-4 w-4 opacity-50" }) })
2945
3042
  ]
2946
3043
  }
2947
3044
  ));
2948
3045
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
2949
- var SelectScrollUpButton = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
3046
+ var SelectScrollUpButton = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
2950
3047
  SelectPrimitive.ScrollUpButton,
2951
3048
  {
2952
3049
  ref,
@@ -2955,11 +3052,11 @@ var SelectScrollUpButton = React24.forwardRef(({ className, ...props }, ref) =>
2955
3052
  className
2956
3053
  ),
2957
3054
  ...props,
2958
- children: /* @__PURE__ */ jsx31(RadixChevronUpIcon, {})
3055
+ children: /* @__PURE__ */ jsx33(RadixChevronUpIcon, {})
2959
3056
  }
2960
3057
  ));
2961
3058
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
2962
- var SelectScrollDownButton = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
3059
+ var SelectScrollDownButton = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
2963
3060
  SelectPrimitive.ScrollDownButton,
2964
3061
  {
2965
3062
  ref,
@@ -2968,11 +3065,11 @@ var SelectScrollDownButton = React24.forwardRef(({ className, ...props }, ref) =
2968
3065
  className
2969
3066
  ),
2970
3067
  ...props,
2971
- children: /* @__PURE__ */ jsx31(RadixChevronDownIcon, {})
3068
+ children: /* @__PURE__ */ jsx33(RadixChevronDownIcon, {})
2972
3069
  }
2973
3070
  ));
2974
3071
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
2975
- var SelectContent = React24.forwardRef(
3072
+ var SelectContent = React25.forwardRef(
2976
3073
  ({
2977
3074
  className,
2978
3075
  children,
@@ -2982,7 +3079,7 @@ var SelectContent = React24.forwardRef(
2982
3079
  ...props
2983
3080
  }, ref) => {
2984
3081
  const portalContainer = usePortalContainer(container);
2985
- return /* @__PURE__ */ jsx31(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs17(
3082
+ return /* @__PURE__ */ jsx33(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs19(
2986
3083
  SelectPrimitive.Content,
2987
3084
  {
2988
3085
  ref,
@@ -3000,8 +3097,8 @@ var SelectContent = React24.forwardRef(
3000
3097
  position,
3001
3098
  ...props,
3002
3099
  children: [
3003
- /* @__PURE__ */ jsx31(SelectScrollUpButton, {}),
3004
- /* @__PURE__ */ jsx31(
3100
+ /* @__PURE__ */ jsx33(SelectScrollUpButton, {}),
3101
+ /* @__PURE__ */ jsx33(
3005
3102
  SelectPrimitive.Viewport,
3006
3103
  {
3007
3104
  className: cn(
@@ -3011,14 +3108,14 @@ var SelectContent = React24.forwardRef(
3011
3108
  children
3012
3109
  }
3013
3110
  ),
3014
- /* @__PURE__ */ jsx31(SelectScrollDownButton, {})
3111
+ /* @__PURE__ */ jsx33(SelectScrollDownButton, {})
3015
3112
  ]
3016
3113
  }
3017
3114
  ) });
3018
3115
  }
3019
3116
  );
3020
3117
  SelectContent.displayName = SelectPrimitive.Content.displayName;
3021
- var SelectLabel = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
3118
+ var SelectLabel = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
3022
3119
  SelectPrimitive.Label,
3023
3120
  {
3024
3121
  ref,
@@ -3027,7 +3124,7 @@ var SelectLabel = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
3027
3124
  }
3028
3125
  ));
3029
3126
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
3030
- var SelectItem = React24.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ jsxs17(
3127
+ var SelectItem = React25.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ jsxs19(
3031
3128
  SelectPrimitive.Item,
3032
3129
  {
3033
3130
  ref,
@@ -3038,14 +3135,14 @@ var SelectItem = React24.forwardRef(({ className, children, description, ...prop
3038
3135
  ),
3039
3136
  ...props,
3040
3137
  children: [
3041
- /* @__PURE__ */ jsx31("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx31(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx31(CheckIcon, { className: "h-4 w-4" }) }) }),
3042
- /* @__PURE__ */ jsx31(SelectPrimitive.ItemText, { children }),
3043
- description ? /* @__PURE__ */ jsx31("span", { className: "block text-xs leading-snug text-muted-foreground", children: description }) : null
3138
+ /* @__PURE__ */ jsx33("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx33(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx33(CheckIcon, { className: "h-4 w-4" }) }) }),
3139
+ /* @__PURE__ */ jsx33(SelectPrimitive.ItemText, { children }),
3140
+ description ? /* @__PURE__ */ jsx33("span", { className: "block text-xs leading-snug text-muted-foreground", children: description }) : null
3044
3141
  ]
3045
3142
  }
3046
3143
  ));
3047
3144
  SelectItem.displayName = SelectPrimitive.Item.displayName;
3048
- var SelectSeparator = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
3145
+ var SelectSeparator = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
3049
3146
  SelectPrimitive.Separator,
3050
3147
  {
3051
3148
  ref,
@@ -3057,9 +3154,9 @@ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
3057
3154
 
3058
3155
  // src/separator.tsx
3059
3156
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
3060
- import * as React25 from "react";
3061
- import { jsx as jsx32 } from "react/jsx-runtime";
3062
- var Separator4 = React25.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx32(
3157
+ import * as React26 from "react";
3158
+ import { jsx as jsx34 } from "react/jsx-runtime";
3159
+ var Separator4 = React26.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx34(
3063
3160
  SeparatorPrimitive.Root,
3064
3161
  {
3065
3162
  ref,
@@ -3079,11 +3176,11 @@ Separator4.displayName = SeparatorPrimitive.Root.displayName;
3079
3176
  import * as SheetPrimitive from "@radix-ui/react-dialog";
3080
3177
  import { treeContainsComponent as treeContainsComponent4 } from "@ai-matrx/kit/react-tree";
3081
3178
  import { cva as cva5 } from "class-variance-authority";
3082
- import * as React26 from "react";
3083
- import { jsx as jsx33, jsxs as jsxs18 } from "react/jsx-runtime";
3084
- var SheetContentBase = React26.forwardRef(({ ...props }, ref) => {
3179
+ import * as React27 from "react";
3180
+ import { jsx as jsx35, jsxs as jsxs20 } from "react/jsx-runtime";
3181
+ var SheetContentBase = React27.forwardRef(({ ...props }, ref) => {
3085
3182
  const isModal = useRadixDialogModal();
3086
- return /* @__PURE__ */ jsx33(
3183
+ return /* @__PURE__ */ jsx35(
3087
3184
  SheetPrimitive.Content,
3088
3185
  {
3089
3186
  ...props,
@@ -3093,15 +3190,15 @@ var SheetContentBase = React26.forwardRef(({ ...props }, ref) => {
3093
3190
  );
3094
3191
  });
3095
3192
  SheetContentBase.displayName = "SheetContentBase";
3096
- var Sheet = React26.forwardRef(({ children, ...props }, _ref) => {
3193
+ var Sheet = React27.forwardRef(({ children, ...props }, _ref) => {
3097
3194
  const modal = props.modal ?? true;
3098
- return /* @__PURE__ */ jsx33(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx33(SheetPrimitive.Root, { ...props, modal, children }) });
3195
+ return /* @__PURE__ */ jsx35(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx35(SheetPrimitive.Root, { ...props, modal, children }) });
3099
3196
  });
3100
3197
  Sheet.displayName = "Sheet";
3101
3198
  var SheetTrigger = SheetPrimitive.Trigger;
3102
3199
  var SheetClose = SheetPrimitive.Close;
3103
3200
  var SheetPortal = SheetPrimitive.Portal;
3104
- var SheetOverlay = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
3201
+ var SheetOverlay = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
3105
3202
  SheetPrimitive.Overlay,
3106
3203
  {
3107
3204
  className: cn(
@@ -3138,7 +3235,7 @@ var sheetVariants = cva5(
3138
3235
  }
3139
3236
  }
3140
3237
  );
3141
- var SheetDescription = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
3238
+ var SheetDescription = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
3142
3239
  SheetPrimitive.Description,
3143
3240
  {
3144
3241
  ref,
@@ -3147,7 +3244,7 @@ var SheetDescription = React26.forwardRef(({ className, ...props }, ref) => /* @
3147
3244
  }
3148
3245
  ));
3149
3246
  SheetDescription.displayName = SheetPrimitive.Description.displayName;
3150
- var SheetContent = React26.forwardRef(
3247
+ var SheetContent = React27.forwardRef(
3151
3248
  ({
3152
3249
  side = "right",
3153
3250
  className,
@@ -3159,9 +3256,9 @@ var SheetContent = React26.forwardRef(
3159
3256
  ...props
3160
3257
  }, ref) => {
3161
3258
  const hasDescription = treeContainsComponent4(children, SheetDescription) || treeContainsComponent4(children, SheetPrimitive.Description);
3162
- return /* @__PURE__ */ jsxs18(SheetPortal, { children: [
3163
- !hideOverlay && /* @__PURE__ */ jsx33(SheetOverlay, { className: overlayClassName }),
3164
- /* @__PURE__ */ jsxs18(
3259
+ return /* @__PURE__ */ jsxs20(SheetPortal, { children: [
3260
+ !hideOverlay && /* @__PURE__ */ jsx35(SheetOverlay, { className: overlayClassName }),
3261
+ /* @__PURE__ */ jsxs20(
3165
3262
  SheetContentBase,
3166
3263
  {
3167
3264
  ref,
@@ -3173,9 +3270,9 @@ var SheetContent = React26.forwardRef(
3173
3270
  ...hasDescription ? {} : { "aria-describedby": void 0 },
3174
3271
  ...props,
3175
3272
  children: [
3176
- !hideCloseButton && /* @__PURE__ */ jsxs18(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
3177
- /* @__PURE__ */ jsx33(Cross2Icon, { className: "h-4 w-4" }),
3178
- /* @__PURE__ */ jsx33("span", { className: "sr-only", children: "Close" })
3273
+ !hideCloseButton && /* @__PURE__ */ jsxs20(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
3274
+ /* @__PURE__ */ jsx35(Cross2Icon, { className: "h-4 w-4" }),
3275
+ /* @__PURE__ */ jsx35("span", { className: "sr-only", children: "Close" })
3179
3276
  ] }),
3180
3277
  children
3181
3278
  ]
@@ -3188,7 +3285,7 @@ SheetContent.displayName = SheetPrimitive.Content.displayName;
3188
3285
  var SheetHeader = ({
3189
3286
  className,
3190
3287
  ...props
3191
- }) => /* @__PURE__ */ jsx33(
3288
+ }) => /* @__PURE__ */ jsx35(
3192
3289
  "div",
3193
3290
  {
3194
3291
  className: cn(
@@ -3202,7 +3299,7 @@ SheetHeader.displayName = "SheetHeader";
3202
3299
  var SheetFooter = ({
3203
3300
  className,
3204
3301
  ...props
3205
- }) => /* @__PURE__ */ jsx33(
3302
+ }) => /* @__PURE__ */ jsx35(
3206
3303
  "div",
3207
3304
  {
3208
3305
  "data-slot": "sheet-footer",
@@ -3214,7 +3311,7 @@ var SheetFooter = ({
3214
3311
  }
3215
3312
  );
3216
3313
  SheetFooter.displayName = "SheetFooter";
3217
- var SheetTitle = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
3314
+ var SheetTitle = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
3218
3315
  SheetPrimitive.Title,
3219
3316
  {
3220
3317
  ref,
@@ -3225,9 +3322,9 @@ var SheetTitle = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE
3225
3322
  SheetTitle.displayName = SheetPrimitive.Title.displayName;
3226
3323
 
3227
3324
  // src/skeleton.tsx
3228
- import { jsx as jsx34 } from "react/jsx-runtime";
3325
+ import { jsx as jsx36 } from "react/jsx-runtime";
3229
3326
  function Skeleton({ className, animated = true, ...props }) {
3230
- return /* @__PURE__ */ jsx34(
3327
+ return /* @__PURE__ */ jsx36(
3231
3328
  "div",
3232
3329
  {
3233
3330
  "data-slot": "skeleton",
@@ -3243,8 +3340,8 @@ function Skeleton({ className, animated = true, ...props }) {
3243
3340
 
3244
3341
  // src/switch.tsx
3245
3342
  import * as SwitchPrimitives from "@radix-ui/react-switch";
3246
- import * as React27 from "react";
3247
- import { jsx as jsx35 } from "react/jsx-runtime";
3343
+ import * as React28 from "react";
3344
+ import { jsx as jsx37 } from "react/jsx-runtime";
3248
3345
  var SWITCH_SIZES = {
3249
3346
  sm: {
3250
3347
  root: "h-4 w-9 border-border data-[state=unchecked]:bg-input",
@@ -3255,7 +3352,7 @@ var SWITCH_SIZES = {
3255
3352
  thumb: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
3256
3353
  }
3257
3354
  };
3258
- var Switch = React27.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx35(
3355
+ var Switch = React28.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx37(
3259
3356
  SwitchPrimitives.Root,
3260
3357
  {
3261
3358
  ref,
@@ -3266,7 +3363,7 @@ var Switch = React27.forwardRef(({ className, size = "md", ...props }, ref) => /
3266
3363
  className
3267
3364
  ),
3268
3365
  ...props,
3269
- children: /* @__PURE__ */ jsx35(
3366
+ children: /* @__PURE__ */ jsx37(
3270
3367
  SwitchPrimitives.Thumb,
3271
3368
  {
3272
3369
  "data-slot": "switch-thumb",
@@ -3281,14 +3378,14 @@ var Switch = React27.forwardRef(({ className, size = "md", ...props }, ref) => /
3281
3378
  Switch.displayName = SwitchPrimitives.Root.displayName;
3282
3379
 
3283
3380
  // src/organization-picker.tsx
3284
- import { Fragment as Fragment2, jsx as jsx36, jsxs as jsxs19 } from "react/jsx-runtime";
3381
+ import { Fragment as Fragment2, jsx as jsx38, jsxs as jsxs21 } from "react/jsx-runtime";
3285
3382
  function OrganizationAbbreviation({
3286
3383
  abbreviation,
3287
3384
  name,
3288
3385
  className
3289
3386
  }) {
3290
3387
  const mark = abbreviation && abbreviation.trim() || name.trim().slice(0, 1) || "?";
3291
- return /* @__PURE__ */ jsx36(
3388
+ return /* @__PURE__ */ jsx38(
3292
3389
  "span",
3293
3390
  {
3294
3391
  className: cn(
@@ -3315,20 +3412,20 @@ function OrganizationPicker({
3315
3412
  }) {
3316
3413
  const active = organizations.find((o) => o.id === activeOrganizationId) ?? null;
3317
3414
  const isDefault = (id) => !!defaultOrganizationId && id === defaultOrganizationId;
3318
- return /* @__PURE__ */ jsxs19("div", { className: cn("flex flex-col", className), "data-slot": "organization-picker", children: [
3319
- !hideHeading && /* @__PURE__ */ jsx36("p", { className: "px-2 py-1.5 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground", children: "Organization" }),
3320
- loading ? /* @__PURE__ */ jsxs19("div", { className: "space-y-1 px-1 py-1", "aria-busy": "true", "aria-label": "Loading organizations", children: [
3321
- /* @__PURE__ */ jsx36(Skeleton, { className: "h-7 rounded-md" }),
3322
- /* @__PURE__ */ jsx36(Skeleton, { className: "h-7 rounded-md" })
3323
- ] }) : loadFailed ? /* @__PURE__ */ jsx36("p", { className: "px-2 py-2 text-xs text-destructive", role: "alert", children: "Could not load organizations." }) : organizations.length === 0 ? /* @__PURE__ */ jsx36("p", { className: "px-2 py-2 text-xs text-muted-foreground", children: "Your account is not a member of any organization. Ask an administrator to add you to one." }) : /* @__PURE__ */ jsxs19(Fragment2, { children: [
3324
- active ? /* @__PURE__ */ jsxs19("p", { className: "px-2 pb-1 text-[11px] text-muted-foreground", "data-slot": "organization-picker-status", children: [
3415
+ return /* @__PURE__ */ jsxs21("div", { className: cn("flex flex-col", className), "data-slot": "organization-picker", children: [
3416
+ !hideHeading && /* @__PURE__ */ jsx38("p", { className: "px-2 py-1.5 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground", children: "Organization" }),
3417
+ loading ? /* @__PURE__ */ jsxs21("div", { className: "space-y-1 px-1 py-1", "aria-busy": "true", "aria-label": "Loading organizations", children: [
3418
+ /* @__PURE__ */ jsx38(Skeleton, { className: "h-7 rounded-md" }),
3419
+ /* @__PURE__ */ jsx38(Skeleton, { className: "h-7 rounded-md" })
3420
+ ] }) : loadFailed ? /* @__PURE__ */ jsx38("p", { className: "px-2 py-2 text-xs text-destructive", role: "alert", children: "Could not load organizations." }) : organizations.length === 0 ? /* @__PURE__ */ jsx38("p", { className: "px-2 py-2 text-xs text-muted-foreground", children: "Your account is not a member of any organization. Ask an administrator to add you to one." }) : /* @__PURE__ */ jsxs21(Fragment2, { children: [
3421
+ active ? /* @__PURE__ */ jsxs21("p", { className: "px-2 pb-1 text-[11px] text-muted-foreground", "data-slot": "organization-picker-status", children: [
3325
3422
  "Working in",
3326
3423
  " ",
3327
- /* @__PURE__ */ jsx36("span", { className: "font-medium text-foreground", children: active.name })
3328
- ] }) : /* @__PURE__ */ jsx36("p", { className: "px-2 pb-1 text-[11px] text-destructive", "data-slot": "organization-picker-status", children: "No organization selected \u2014 pick one below." }),
3329
- /* @__PURE__ */ jsx36("ul", { className: "max-h-72 overflow-y-auto", role: "listbox", "aria-label": "Organizations", children: organizations.map((org) => {
3424
+ /* @__PURE__ */ jsx38("span", { className: "font-medium text-foreground", children: active.name })
3425
+ ] }) : /* @__PURE__ */ jsx38("p", { className: "px-2 pb-1 text-[11px] text-destructive", "data-slot": "organization-picker-status", children: "No organization selected \u2014 pick one below." }),
3426
+ /* @__PURE__ */ jsx38("ul", { className: "max-h-72 overflow-y-auto", role: "listbox", "aria-label": "Organizations", children: organizations.map((org) => {
3330
3427
  const isActive = org.id === activeOrganizationId;
3331
- return /* @__PURE__ */ jsx36("li", { role: "none", children: /* @__PURE__ */ jsxs19(
3428
+ return /* @__PURE__ */ jsx38("li", { role: "none", children: /* @__PURE__ */ jsxs21(
3332
3429
  "button",
3333
3430
  {
3334
3431
  type: "button",
@@ -3345,7 +3442,7 @@ function OrganizationPicker({
3345
3442
  itemClassName
3346
3443
  ),
3347
3444
  children: [
3348
- /* @__PURE__ */ jsx36(
3445
+ /* @__PURE__ */ jsx38(
3349
3446
  OrganizationAbbreviation,
3350
3447
  {
3351
3448
  abbreviation: org.abbreviation,
@@ -3356,9 +3453,9 @@ function OrganizationPicker({
3356
3453
  )
3357
3454
  }
3358
3455
  ),
3359
- /* @__PURE__ */ jsx36("span", { className: "min-w-0 flex-1 truncate", children: org.name }),
3360
- org.isPersonal && /* @__PURE__ */ jsx36("span", { className: "shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground", children: "Personal" }),
3361
- isDefault(org.id) && /* @__PURE__ */ jsx36(
3456
+ /* @__PURE__ */ jsx38("span", { className: "min-w-0 flex-1 truncate", children: org.name }),
3457
+ org.isPersonal && /* @__PURE__ */ jsx38("span", { className: "shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground", children: "Personal" }),
3458
+ isDefault(org.id) && /* @__PURE__ */ jsx38(
3362
3459
  StarIcon,
3363
3460
  {
3364
3461
  className: "h-[13px] w-[13px] shrink-0 fill-warning text-warning",
@@ -3367,14 +3464,14 @@ function OrganizationPicker({
3367
3464
  role: "img"
3368
3465
  }
3369
3466
  ),
3370
- isActive && /* @__PURE__ */ jsx36(LucideCheckIcon, { className: "h-[15px] w-[15px] shrink-0 text-primary" })
3467
+ isActive && /* @__PURE__ */ jsx38(LucideCheckIcon, { className: "h-[15px] w-[15px] shrink-0 text-primary" })
3371
3468
  ]
3372
3469
  }
3373
3470
  ) }, org.id);
3374
3471
  }) }),
3375
- onSetDefault && /* @__PURE__ */ jsxs19(Fragment2, { children: [
3376
- /* @__PURE__ */ jsx36("div", { className: "my-1 border-t border-border" }),
3377
- /* @__PURE__ */ jsx36(
3472
+ onSetDefault && /* @__PURE__ */ jsxs21(Fragment2, { children: [
3473
+ /* @__PURE__ */ jsx38("div", { className: "my-1 border-t border-border" }),
3474
+ /* @__PURE__ */ jsx38(
3378
3475
  DefaultOrganizationSwitch,
3379
3476
  {
3380
3477
  active,
@@ -3392,17 +3489,17 @@ function DefaultOrganizationSwitch({
3392
3489
  onChange
3393
3490
  }) {
3394
3491
  const disabled = !active;
3395
- return /* @__PURE__ */ jsxs19(
3492
+ return /* @__PURE__ */ jsxs21(
3396
3493
  "div",
3397
3494
  {
3398
3495
  className: "flex items-center justify-between gap-3 rounded-md px-2 py-1.5",
3399
3496
  "data-slot": "organization-picker-default",
3400
3497
  children: [
3401
- /* @__PURE__ */ jsxs19("div", { className: "min-w-0", children: [
3402
- /* @__PURE__ */ jsx36("p", { className: "text-xs font-medium text-foreground", children: "Set as my default" }),
3403
- /* @__PURE__ */ jsx36("p", { className: "truncate text-[11px] text-muted-foreground", children: disabled ? "Select an organization first" : checked ? `Next startup opens ${active.name}` : "Auto-select this at startup" })
3498
+ /* @__PURE__ */ jsxs21("div", { className: "min-w-0", children: [
3499
+ /* @__PURE__ */ jsx38("p", { className: "text-xs font-medium text-foreground", children: "Set as my default" }),
3500
+ /* @__PURE__ */ jsx38("p", { className: "truncate text-[11px] text-muted-foreground", children: disabled ? "Select an organization first" : checked ? `Next startup opens ${active.name}` : "Auto-select this at startup" })
3404
3501
  ] }),
3405
- /* @__PURE__ */ jsx36(
3502
+ /* @__PURE__ */ jsx38(
3406
3503
  Switch,
3407
3504
  {
3408
3505
  checked,
@@ -3418,7 +3515,7 @@ function DefaultOrganizationSwitch({
3418
3515
 
3419
3516
  // src/tabbed-bottom-sheet.tsx
3420
3517
  import { useState as useState7 } from "react";
3421
- import { jsx as jsx37, jsxs as jsxs20 } from "react/jsx-runtime";
3518
+ import { jsx as jsx39, jsxs as jsxs22 } from "react/jsx-runtime";
3422
3519
  function TabbedBottomSheet({
3423
3520
  open,
3424
3521
  onOpenChange,
@@ -3432,15 +3529,15 @@ function TabbedBottomSheet({
3432
3529
  if (open) setSelectedTabId(null);
3433
3530
  }
3434
3531
  const selectedTab = selectedTabId ? tabs.find((tab) => tab.id === selectedTabId) : null;
3435
- return /* @__PURE__ */ jsx37(
3532
+ return /* @__PURE__ */ jsx39(
3436
3533
  BottomSheet,
3437
3534
  {
3438
3535
  open,
3439
3536
  onOpenChange,
3440
3537
  title,
3441
3538
  size: "full",
3442
- children: /* @__PURE__ */ jsxs20("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
3443
- /* @__PURE__ */ jsx37(
3539
+ children: /* @__PURE__ */ jsxs22("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
3540
+ /* @__PURE__ */ jsx39(
3444
3541
  BottomSheetHeader,
3445
3542
  {
3446
3543
  title: selectedTab ? selectedTab.label : title,
@@ -3448,19 +3545,19 @@ function TabbedBottomSheet({
3448
3545
  onBack: () => setSelectedTabId(null)
3449
3546
  }
3450
3547
  ),
3451
- selectedTab ? /* @__PURE__ */ jsx37("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden pb-safe", children: selectedTab.content }) : /* @__PURE__ */ jsx37(BottomSheetBody, { children: /* @__PURE__ */ jsx37("ul", { className: "divide-y divide-border", children: tabs.map((tab) => {
3548
+ selectedTab ? /* @__PURE__ */ jsx39("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden pb-safe", children: selectedTab.content }) : /* @__PURE__ */ jsx39(BottomSheetBody, { children: /* @__PURE__ */ jsx39("ul", { className: "divide-y divide-border", children: tabs.map((tab) => {
3452
3549
  const Icon2 = tab.icon;
3453
- return /* @__PURE__ */ jsx37("li", { children: /* @__PURE__ */ jsxs20(
3550
+ return /* @__PURE__ */ jsx39("li", { children: /* @__PURE__ */ jsxs22(
3454
3551
  "button",
3455
3552
  {
3456
3553
  type: "button",
3457
3554
  onClick: () => setSelectedTabId(tab.id),
3458
3555
  className: "flex w-full items-center gap-3 px-4 py-3.5 text-left transition-colors hover:bg-muted/60 active:bg-muted",
3459
3556
  children: [
3460
- Icon2 ? /* @__PURE__ */ jsx37(Icon2, { className: "h-5 w-5 shrink-0 text-muted-foreground" }) : null,
3461
- /* @__PURE__ */ jsx37("span", { className: "min-w-0 flex-1 text-base text-foreground", children: tab.label }),
3557
+ Icon2 ? /* @__PURE__ */ jsx39(Icon2, { className: "h-5 w-5 shrink-0 text-muted-foreground" }) : null,
3558
+ /* @__PURE__ */ jsx39("span", { className: "min-w-0 flex-1 text-base text-foreground", children: tab.label }),
3462
3559
  tab.trailing,
3463
- /* @__PURE__ */ jsx37(ChevronRightIcon, { className: "h-5 w-5 shrink-0 text-muted-foreground" })
3560
+ /* @__PURE__ */ jsx39(ChevronRightIcon, { className: "h-5 w-5 shrink-0 text-muted-foreground" })
3464
3561
  ]
3465
3562
  }
3466
3563
  ) }, tab.id);
@@ -3471,19 +3568,19 @@ function TabbedBottomSheet({
3471
3568
  }
3472
3569
 
3473
3570
  // src/table.tsx
3474
- import * as React28 from "react";
3475
- import { jsx as jsx38 } from "react/jsx-runtime";
3571
+ import * as React29 from "react";
3572
+ import { jsx as jsx40 } from "react/jsx-runtime";
3476
3573
  var TABLE_SIZES = {
3477
3574
  sm: { head: "px-2", cell: "p-2" },
3478
3575
  md: { head: "px-3", cell: "p-3" }
3479
3576
  };
3480
- var TableSizeContext = React28.createContext("md");
3577
+ var TableSizeContext = React29.createContext("md");
3481
3578
  function useTableSize() {
3482
- return React28.useContext(TableSizeContext);
3579
+ return React29.useContext(TableSizeContext);
3483
3580
  }
3484
- var Table = React28.forwardRef(
3581
+ var Table = React29.forwardRef(
3485
3582
  ({ className, size = "md", wrap = true, wrapperClassName, ...props }, ref) => {
3486
- const table = /* @__PURE__ */ jsx38(
3583
+ const table = /* @__PURE__ */ jsx40(
3487
3584
  "table",
3488
3585
  {
3489
3586
  ref,
@@ -3493,7 +3590,7 @@ var Table = React28.forwardRef(
3493
3590
  ...props
3494
3591
  }
3495
3592
  );
3496
- return /* @__PURE__ */ jsx38(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ jsx38(
3593
+ return /* @__PURE__ */ jsx40(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ jsx40(
3497
3594
  "div",
3498
3595
  {
3499
3596
  "data-slot": "table-wrapper",
@@ -3504,7 +3601,7 @@ var Table = React28.forwardRef(
3504
3601
  }
3505
3602
  );
3506
3603
  Table.displayName = "Table";
3507
- var TableHeader = React28.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ jsx38(
3604
+ var TableHeader = React29.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ jsx40(
3508
3605
  "thead",
3509
3606
  {
3510
3607
  ref,
@@ -3518,7 +3615,7 @@ var TableHeader = React28.forwardRef(({ className, sticky = false, ...props }, r
3518
3615
  }
3519
3616
  ));
3520
3617
  TableHeader.displayName = "TableHeader";
3521
- var TableBody = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
3618
+ var TableBody = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
3522
3619
  "tbody",
3523
3620
  {
3524
3621
  ref,
@@ -3528,7 +3625,7 @@ var TableBody = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE_
3528
3625
  }
3529
3626
  ));
3530
3627
  TableBody.displayName = "TableBody";
3531
- var TableFooter = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
3628
+ var TableFooter = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
3532
3629
  "tfoot",
3533
3630
  {
3534
3631
  ref,
@@ -3541,7 +3638,7 @@ var TableFooter = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
3541
3638
  }
3542
3639
  ));
3543
3640
  TableFooter.displayName = "TableFooter";
3544
- var TableRow = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
3641
+ var TableRow = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
3545
3642
  "tr",
3546
3643
  {
3547
3644
  ref,
@@ -3554,9 +3651,9 @@ var TableRow = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__
3554
3651
  }
3555
3652
  ));
3556
3653
  TableRow.displayName = "TableRow";
3557
- var TableHead = React28.forwardRef(({ className, ...props }, ref) => {
3654
+ var TableHead = React29.forwardRef(({ className, ...props }, ref) => {
3558
3655
  const size = useTableSize();
3559
- return /* @__PURE__ */ jsx38(
3656
+ return /* @__PURE__ */ jsx40(
3560
3657
  "th",
3561
3658
  {
3562
3659
  ref,
@@ -3571,9 +3668,9 @@ var TableHead = React28.forwardRef(({ className, ...props }, ref) => {
3571
3668
  );
3572
3669
  });
3573
3670
  TableHead.displayName = "TableHead";
3574
- var TableCell = React28.forwardRef(({ className, ...props }, ref) => {
3671
+ var TableCell = React29.forwardRef(({ className, ...props }, ref) => {
3575
3672
  const size = useTableSize();
3576
- return /* @__PURE__ */ jsx38(
3673
+ return /* @__PURE__ */ jsx40(
3577
3674
  "td",
3578
3675
  {
3579
3676
  ref,
@@ -3588,7 +3685,7 @@ var TableCell = React28.forwardRef(({ className, ...props }, ref) => {
3588
3685
  );
3589
3686
  });
3590
3687
  TableCell.displayName = "TableCell";
3591
- var TableCaption = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
3688
+ var TableCaption = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
3592
3689
  "caption",
3593
3690
  {
3594
3691
  ref,
@@ -3601,11 +3698,11 @@ TableCaption.displayName = "TableCaption";
3601
3698
 
3602
3699
  // src/tabs.tsx
3603
3700
  import * as TabsPrimitive from "@radix-ui/react-tabs";
3604
- import * as React29 from "react";
3605
- import { jsx as jsx39 } from "react/jsx-runtime";
3701
+ import * as React30 from "react";
3702
+ import { jsx as jsx41 } from "react/jsx-runtime";
3606
3703
  var Tabs = TabsPrimitive.Root;
3607
3704
  var TABS_TRIGGER_BASE = "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm";
3608
- var TabsList = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
3705
+ var TabsList = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
3609
3706
  TabsPrimitive.List,
3610
3707
  {
3611
3708
  ref,
@@ -3618,7 +3715,7 @@ var TabsList = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__
3618
3715
  }
3619
3716
  ));
3620
3717
  TabsList.displayName = TabsPrimitive.List.displayName;
3621
- var TabsTrigger = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
3718
+ var TabsTrigger = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
3622
3719
  TabsPrimitive.Trigger,
3623
3720
  {
3624
3721
  ref,
@@ -3632,7 +3729,7 @@ var TabsTrigger = React29.forwardRef(({ className, ...props }, ref) => /* @__PUR
3632
3729
  }
3633
3730
  ));
3634
3731
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
3635
- var TabsTriggerCore = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
3732
+ var TabsTriggerCore = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
3636
3733
  TabsPrimitive.Trigger,
3637
3734
  {
3638
3735
  ref,
@@ -3642,7 +3739,7 @@ var TabsTriggerCore = React29.forwardRef(({ className, ...props }, ref) => /* @_
3642
3739
  }
3643
3740
  ));
3644
3741
  TabsTriggerCore.displayName = TabsPrimitive.Trigger.displayName;
3645
- var TabsContent = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
3742
+ var TabsContent = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
3646
3743
  TabsPrimitive.Content,
3647
3744
  {
3648
3745
  ref,
@@ -3658,8 +3755,8 @@ var TabsContent = React29.forwardRef(({ className, ...props }, ref) => /* @__PUR
3658
3755
  TabsContent.displayName = TabsPrimitive.Content.displayName;
3659
3756
 
3660
3757
  // src/textarea.tsx
3661
- import * as React30 from "react";
3662
- import { jsx as jsx40, jsxs as jsxs21 } from "react/jsx-runtime";
3758
+ import * as React31 from "react";
3759
+ import { jsx as jsx42, jsxs as jsxs23 } from "react/jsx-runtime";
3663
3760
  var FILL_HEIGHT_REGEX = /(?:^|\s)(h-full|h-dvh|flex-1|grow)(?:\s|$)/;
3664
3761
  var FILL_WIDTH_REGEX = /(?:^|\s)(w-full|w-screen)(?:\s|$)/;
3665
3762
  function getStretchClasses(className) {
@@ -3672,7 +3769,7 @@ function getStretchClasses(className) {
3672
3769
  var TEXTAREA_ELEVATED_CLASS = "flex h-auto w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground shadow-textarea transition duration-400 placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[2px] focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50";
3673
3770
  var TEXTAREA_CONTROL_CLASS = "flex w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm text-foreground shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50";
3674
3771
  function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
3675
- React30.useEffect(() => {
3772
+ React31.useEffect(() => {
3676
3773
  if (!autoGrow || !ref.current) return;
3677
3774
  const textarea = ref.current;
3678
3775
  textarea.style.height = "auto";
@@ -3688,8 +3785,8 @@ function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
3688
3785
  }, [value, autoGrow, minHeight, maxHeight, ref]);
3689
3786
  }
3690
3787
  function useMergedTextareaRef(forwarded) {
3691
- const internal = React30.useRef(null);
3692
- const callback = React30.useCallback(
3788
+ const internal = React31.useRef(null);
3789
+ const callback = React31.useCallback(
3693
3790
  (node) => {
3694
3791
  internal.current = node;
3695
3792
  if (typeof forwarded === "function") forwarded(node);
@@ -3706,13 +3803,13 @@ function boxStyle(minHeight, maxHeight) {
3706
3803
  maxHeight: maxHeight ? `${maxHeight}px` : void 0
3707
3804
  };
3708
3805
  }
3709
- var Textarea = React30.forwardRef(
3806
+ var Textarea = React31.forwardRef(
3710
3807
  ({ className, autoGrow, minHeight, maxHeight, wrapperClassName, ...props }, forwarded) => {
3711
3808
  const { ref, callback } = useMergedTextareaRef(forwarded);
3712
3809
  const stretchClasses = getStretchClasses(className);
3713
3810
  const needsWrapper = Boolean(wrapperClassName || stretchClasses);
3714
3811
  useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
3715
- const textarea = /* @__PURE__ */ jsx40(
3812
+ const textarea = /* @__PURE__ */ jsx42(
3716
3813
  "textarea",
3717
3814
  {
3718
3815
  ref: callback,
@@ -3728,15 +3825,15 @@ var Textarea = React30.forwardRef(
3728
3825
  }
3729
3826
  );
3730
3827
  if (!needsWrapper) return textarea;
3731
- return /* @__PURE__ */ jsx40("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
3828
+ return /* @__PURE__ */ jsx42("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
3732
3829
  }
3733
3830
  );
3734
3831
  Textarea.displayName = "Textarea";
3735
- var BasicTextarea = React30.forwardRef(
3832
+ var BasicTextarea = React31.forwardRef(
3736
3833
  ({ className, autoGrow, minHeight, maxHeight, ...props }, forwarded) => {
3737
3834
  const { ref, callback } = useMergedTextareaRef(forwarded);
3738
3835
  useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
3739
- return /* @__PURE__ */ jsx40(
3836
+ return /* @__PURE__ */ jsx42(
3740
3837
  "textarea",
3741
3838
  {
3742
3839
  ref: callback,
@@ -3754,7 +3851,7 @@ var BasicTextarea = React30.forwardRef(
3754
3851
  }
3755
3852
  );
3756
3853
  BasicTextarea.displayName = "BasicTextarea";
3757
- var TextareaWithPrefix = React30.forwardRef(
3854
+ var TextareaWithPrefix = React31.forwardRef(
3758
3855
  ({
3759
3856
  prefix,
3760
3857
  className,
@@ -3766,13 +3863,13 @@ var TextareaWithPrefix = React30.forwardRef(
3766
3863
  }, forwarded) => {
3767
3864
  const { ref, callback } = useMergedTextareaRef(forwarded);
3768
3865
  useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
3769
- return /* @__PURE__ */ jsxs21(
3866
+ return /* @__PURE__ */ jsxs23(
3770
3867
  "div",
3771
3868
  {
3772
3869
  className: cn("relative", getStretchClasses(className), wrapperClassName),
3773
3870
  children: [
3774
- prefix ? /* @__PURE__ */ jsx40("div", { className: "pointer-events-none absolute left-3 top-3 z-10 text-muted-foreground", children: prefix }) : null,
3775
- /* @__PURE__ */ jsx40(
3871
+ prefix ? /* @__PURE__ */ jsx42("div", { className: "pointer-events-none absolute left-3 top-3 z-10 text-muted-foreground", children: prefix }) : null,
3872
+ /* @__PURE__ */ jsx42(
3776
3873
  "textarea",
3777
3874
  {
3778
3875
  ref: callback,
@@ -3851,14 +3948,14 @@ function useScrollFade() {
3851
3948
 
3852
3949
  // src/hover-card.tsx
3853
3950
  import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
3854
- import * as React31 from "react";
3855
- import { jsx as jsx41 } from "react/jsx-runtime";
3951
+ import * as React32 from "react";
3952
+ import { jsx as jsx43 } from "react/jsx-runtime";
3856
3953
  var HoverCard = HoverCardPrimitive.Root;
3857
3954
  var HoverCardTrigger = HoverCardPrimitive.Trigger;
3858
- var HoverCardContent = React31.forwardRef(
3955
+ var HoverCardContent = React32.forwardRef(
3859
3956
  ({ className, align = "center", sideOffset = 4, container, animated = true, ...props }, ref) => {
3860
3957
  const resolved = usePortalContainer(container);
3861
- return /* @__PURE__ */ jsx41(HoverCardPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx41(
3958
+ return /* @__PURE__ */ jsx43(HoverCardPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx43(
3862
3959
  HoverCardPrimitive.Content,
3863
3960
  {
3864
3961
  ref,
@@ -3879,9 +3976,9 @@ HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
3879
3976
 
3880
3977
  // src/radio-group.tsx
3881
3978
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
3882
- import * as React32 from "react";
3883
- import { jsx as jsx42 } from "react/jsx-runtime";
3884
- var RadioGroupSizeContext = React32.createContext("md");
3979
+ import * as React33 from "react";
3980
+ import { jsx as jsx44 } from "react/jsx-runtime";
3981
+ var RadioGroupSizeContext = React33.createContext("md");
3885
3982
  var CONTROL_CLASSES = {
3886
3983
  sm: "h-3.5 w-3.5",
3887
3984
  md: "h-4 w-4",
@@ -3892,7 +3989,7 @@ var DOT_CLASSES = {
3892
3989
  md: "h-1.5 w-1.5",
3893
3990
  lg: "h-2 w-2"
3894
3991
  };
3895
- var RadioGroup3 = React32.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx42(RadioGroupSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx42(
3992
+ var RadioGroup3 = React33.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx44(RadioGroupSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx44(
3896
3993
  RadioGroupPrimitive.Root,
3897
3994
  {
3898
3995
  ref,
@@ -3902,10 +3999,10 @@ var RadioGroup3 = React32.forwardRef(({ className, size = "md", ...props }, ref)
3902
3999
  }
3903
4000
  ) }));
3904
4001
  RadioGroup3.displayName = RadioGroupPrimitive.Root.displayName;
3905
- var RadioGroupItem = React32.forwardRef(({ className, size, ...props }, ref) => {
3906
- const groupSize = React32.useContext(RadioGroupSizeContext);
4002
+ var RadioGroupItem = React33.forwardRef(({ className, size, ...props }, ref) => {
4003
+ const groupSize = React33.useContext(RadioGroupSizeContext);
3907
4004
  const resolved = size ?? groupSize;
3908
- return /* @__PURE__ */ jsx42(
4005
+ return /* @__PURE__ */ jsx44(
3909
4006
  RadioGroupPrimitive.Item,
3910
4007
  {
3911
4008
  ref,
@@ -3922,7 +4019,7 @@ var RadioGroupItem = React32.forwardRef(({ className, size, ...props }, ref) =>
3922
4019
  className
3923
4020
  ),
3924
4021
  ...props,
3925
- children: /* @__PURE__ */ jsx42(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx42(
4022
+ children: /* @__PURE__ */ jsx44(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx44(
3926
4023
  "div",
3927
4024
  {
3928
4025
  className: cn("rounded-full bg-primary-foreground", DOT_CLASSES[resolved])
@@ -3935,7 +4032,7 @@ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
3935
4032
 
3936
4033
  // src/resizable.tsx
3937
4034
  import { Group as Group4, Panel, Separator as Separator5 } from "react-resizable-panels";
3938
- import { jsx as jsx43 } from "react/jsx-runtime";
4035
+ import { jsx as jsx45 } from "react/jsx-runtime";
3939
4036
  var HANDLE_SIZES = {
3940
4037
  xs: "w-0.5 [&[aria-orientation=horizontal]]:h-0.5 [&[aria-orientation=horizontal]]:w-full",
3941
4038
  sm: "w-1 [&[aria-orientation=horizontal]]:h-1 [&[aria-orientation=horizontal]]:w-full",
@@ -3949,7 +4046,7 @@ var HANDLE_SIZES = {
3949
4046
  var ResizablePanelGroup = ({
3950
4047
  className,
3951
4048
  ...props
3952
- }) => /* @__PURE__ */ jsx43(
4049
+ }) => /* @__PURE__ */ jsx45(
3953
4050
  Group4,
3954
4051
  {
3955
4052
  "data-slot": "resizable-group",
@@ -3964,7 +4061,7 @@ var ResizableHandle = ({
3964
4061
  size = "xs",
3965
4062
  className,
3966
4063
  ...props
3967
- }) => /* @__PURE__ */ jsx43(
4064
+ }) => /* @__PURE__ */ jsx45(
3968
4065
  Separator5,
3969
4066
  {
3970
4067
  "data-slot": "resizable-handle",
@@ -3984,15 +4081,15 @@ var ResizableHandle = ({
3984
4081
  className
3985
4082
  ),
3986
4083
  ...props,
3987
- children: withHandle ? /* @__PURE__ */ jsx43("div", { className: "z-10 flex h-8 w-4 items-center justify-center rounded-sm border bg-border group-aria-[orientation=horizontal]/handle:h-4 group-aria-[orientation=horizontal]/handle:w-8", children: /* @__PURE__ */ jsx43(DragHandleDots2Icon, { className: "h-2.5 w-2.5 group-aria-[orientation=horizontal]/handle:rotate-90" }) }) : null
4084
+ children: withHandle ? /* @__PURE__ */ jsx45("div", { className: "z-10 flex h-8 w-4 items-center justify-center rounded-sm border bg-border group-aria-[orientation=horizontal]/handle:h-4 group-aria-[orientation=horizontal]/handle:w-8", children: /* @__PURE__ */ jsx45(DragHandleDots2Icon, { className: "h-2.5 w-2.5 group-aria-[orientation=horizontal]/handle:rotate-90" }) }) : null
3988
4085
  }
3989
4086
  );
3990
4087
  ResizableHandle.displayName = "ResizableHandle";
3991
4088
 
3992
4089
  // src/slider.tsx
3993
4090
  import * as SliderPrimitive from "@radix-ui/react-slider";
3994
- import * as React33 from "react";
3995
- import { jsx as jsx44, jsxs as jsxs22 } from "react/jsx-runtime";
4091
+ import * as React34 from "react";
4092
+ import { jsx as jsx46, jsxs as jsxs24 } from "react/jsx-runtime";
3996
4093
  var TRACK_CLASSES = {
3997
4094
  sm: "h-1",
3998
4095
  md: "h-1.5",
@@ -4003,12 +4100,12 @@ var THUMB_CLASSES = {
4003
4100
  md: "h-4 w-4",
4004
4101
  lg: "h-5 w-5"
4005
4102
  };
4006
- var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
4103
+ var Slider = React34.forwardRef(({ className, size = "md", ...props }, ref) => {
4007
4104
  const thumbCount = Math.max(
4008
4105
  1,
4009
4106
  (props.value ?? props.defaultValue ?? [0]).length
4010
4107
  );
4011
- return /* @__PURE__ */ jsxs22(
4108
+ return /* @__PURE__ */ jsxs24(
4012
4109
  SliderPrimitive.Root,
4013
4110
  {
4014
4111
  ref,
@@ -4020,7 +4117,7 @@ var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
4020
4117
  ),
4021
4118
  ...props,
4022
4119
  children: [
4023
- /* @__PURE__ */ jsx44(
4120
+ /* @__PURE__ */ jsx46(
4024
4121
  SliderPrimitive.Track,
4025
4122
  {
4026
4123
  "data-slot": "slider-track",
@@ -4029,7 +4126,7 @@ var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
4029
4126
  TRACK_CLASSES[size],
4030
4127
  "data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"
4031
4128
  ),
4032
- children: /* @__PURE__ */ jsx44(
4129
+ children: /* @__PURE__ */ jsx46(
4033
4130
  SliderPrimitive.Range,
4034
4131
  {
4035
4132
  "data-slot": "slider-range",
@@ -4038,7 +4135,7 @@ var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
4038
4135
  )
4039
4136
  }
4040
4137
  ),
4041
- Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ jsx44(
4138
+ Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ jsx46(
4042
4139
  SliderPrimitive.Thumb,
4043
4140
  {
4044
4141
  "data-slot": "slider-thumb",
@@ -4065,8 +4162,8 @@ Slider.displayName = SliderPrimitive.Root.displayName;
4065
4162
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
4066
4163
  import * as TogglePrimitive from "@radix-ui/react-toggle";
4067
4164
  import { cva as cva6 } from "class-variance-authority";
4068
- import * as React34 from "react";
4069
- import { jsx as jsx45 } from "react/jsx-runtime";
4165
+ import * as React35 from "react";
4166
+ import { jsx as jsx47 } from "react/jsx-runtime";
4070
4167
  var toggleVariants = cva6(
4071
4168
  "inline-flex cursor-pointer items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
4072
4169
  {
@@ -4087,7 +4184,7 @@ var toggleVariants = cva6(
4087
4184
  }
4088
4185
  }
4089
4186
  );
4090
- var Toggle = React34.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx45(
4187
+ var Toggle = React35.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx47(
4091
4188
  TogglePrimitive.Root,
4092
4189
  {
4093
4190
  ref,
@@ -4097,21 +4194,21 @@ var Toggle = React34.forwardRef(({ className, variant, size, ...props }, ref) =>
4097
4194
  }
4098
4195
  ));
4099
4196
  Toggle.displayName = TogglePrimitive.Root.displayName;
4100
- var ToggleGroupContext = React34.createContext({ size: "default", variant: "default" });
4101
- var ToggleGroup = React34.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx45(
4197
+ var ToggleGroupContext = React35.createContext({ size: "default", variant: "default" });
4198
+ var ToggleGroup = React35.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx47(
4102
4199
  ToggleGroupPrimitive.Root,
4103
4200
  {
4104
4201
  ref,
4105
4202
  "data-slot": "toggle-group",
4106
4203
  className: cn("flex items-center justify-center gap-1", className),
4107
4204
  ...props,
4108
- children: /* @__PURE__ */ jsx45(ToggleGroupContext.Provider, { value: { variant, size }, children })
4205
+ children: /* @__PURE__ */ jsx47(ToggleGroupContext.Provider, { value: { variant, size }, children })
4109
4206
  }
4110
4207
  ));
4111
4208
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
4112
- var ToggleGroupItem = React34.forwardRef(({ className, children, variant, size, ...props }, ref) => {
4113
- const context = React34.useContext(ToggleGroupContext);
4114
- return /* @__PURE__ */ jsx45(
4209
+ var ToggleGroupItem = React35.forwardRef(({ className, children, variant, size, ...props }, ref) => {
4210
+ const context = React35.useContext(ToggleGroupContext);
4211
+ return /* @__PURE__ */ jsx47(
4115
4212
  ToggleGroupPrimitive.Item,
4116
4213
  {
4117
4214
  ref,
@@ -4132,14 +4229,14 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
4132
4229
 
4133
4230
  // src/tooltip.tsx
4134
4231
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
4135
- import * as React35 from "react";
4136
- import { jsx as jsx46 } from "react/jsx-runtime";
4232
+ import * as React36 from "react";
4233
+ import { jsx as jsx48 } from "react/jsx-runtime";
4137
4234
  var TooltipProvider = TooltipPrimitive.Provider;
4138
4235
  var Tooltip = TooltipPrimitive.Root;
4139
4236
  var TooltipTrigger = TooltipPrimitive.Trigger;
4140
- var TooltipContent = React35.forwardRef(({ className, sideOffset = 4, container, animated = true, ...props }, ref) => {
4237
+ var TooltipContent = React36.forwardRef(({ className, sideOffset = 4, container, animated = true, ...props }, ref) => {
4141
4238
  const resolved = usePortalContainer(container);
4142
- return /* @__PURE__ */ jsx46(TooltipPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx46(
4239
+ return /* @__PURE__ */ jsx48(TooltipPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx48(
4143
4240
  TooltipPrimitive.Content,
4144
4241
  {
4145
4242
  ref,
@@ -4157,6 +4254,9 @@ var TooltipContent = React35.forwardRef(({ className, sideOffset = 4, container,
4157
4254
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
4158
4255
  export {
4159
4256
  ALL_MOTION_CLASSES,
4257
+ ARCHIVE_FILTER_LABELS,
4258
+ ARCHIVE_FILTER_VALUES,
4259
+ ARCHIVE_LABEL,
4160
4260
  Accordion,
4161
4261
  AccordionContent,
4162
4262
  AccordionItem,
@@ -4176,6 +4276,8 @@ export {
4176
4276
  AlertDialogTitle,
4177
4277
  AlertDialogTrigger,
4178
4278
  AlertTitle,
4279
+ ArchiveFilter,
4280
+ ArchivedDisclosure,
4179
4281
  Avatar,
4180
4282
  AvatarFallback,
4181
4283
  AvatarImage,
@@ -4226,6 +4328,7 @@ export {
4226
4328
  ContextMenuSubTrigger,
4227
4329
  ContextMenuTrigger,
4228
4330
  CreatablePicker,
4331
+ DEFAULT_ARCHIVE_FILTER,
4229
4332
  DEFAULT_SCORE_THRESHOLDS,
4230
4333
  Dialog,
4231
4334
  DialogClose,
@@ -4350,6 +4453,7 @@ export {
4350
4453
  TooltipProvider,
4351
4454
  TooltipTrigger,
4352
4455
  alertVariants,
4456
+ archiveFilterFromDisclosure,
4353
4457
  badgeVariants,
4354
4458
  buttonVariants,
4355
4459
  cn,
@@ -4357,6 +4461,7 @@ export {
4357
4461
  scoreRingColorClasses,
4358
4462
  selectTriggerVariants,
4359
4463
  sheetVariants,
4464
+ toArchiveFilter,
4360
4465
  toggleVariants,
4361
4466
  useAccordionSize,
4362
4467
  useCardSize,