@ai-matrx/design-system 0.12.1 → 0.13.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
@@ -2910,11 +2910,60 @@ function SegmentedControl({
2910
2910
  );
2911
2911
  }
2912
2912
 
2913
+ // src/archive-filter.tsx
2914
+ import * as React24 from "react";
2915
+ import { jsx as jsx31, jsxs as jsxs17 } from "react/jsx-runtime";
2916
+ var ARCHIVE_FILTER_VALUES = ["active", "archived", "all"];
2917
+ var DEFAULT_ARCHIVE_FILTER = "active";
2918
+ var ARCHIVE_FILTER_LABELS = {
2919
+ active: "Active only",
2920
+ archived: "Archived only",
2921
+ all: "Active + archived"
2922
+ };
2923
+ function toArchiveFilter(value, fallback = DEFAULT_ARCHIVE_FILTER) {
2924
+ return ARCHIVE_FILTER_VALUES.includes(value) ? value : fallback;
2925
+ }
2926
+ function ArchiveFilter({
2927
+ value,
2928
+ onValueChange,
2929
+ counts,
2930
+ labels,
2931
+ size = "sm",
2932
+ className,
2933
+ "aria-label": ariaLabel = "Archive filter",
2934
+ disabled = false
2935
+ }) {
2936
+ const data = React24.useMemo(
2937
+ () => ARCHIVE_FILTER_VALUES.map((state) => {
2938
+ const text = labels?.[state] ?? ARCHIVE_FILTER_LABELS[state];
2939
+ const count = counts?.[state];
2940
+ return {
2941
+ value: state,
2942
+ disabled,
2943
+ label: typeof count === "number" ? /* @__PURE__ */ jsxs17("span", { className: "inline-flex items-center gap-1.5", children: [
2944
+ /* @__PURE__ */ jsx31("span", { children: text }),
2945
+ /* @__PURE__ */ jsx31("span", { className: "text-muted-foreground tabular-nums", children: count })
2946
+ ] }) : text
2947
+ };
2948
+ }),
2949
+ [counts, labels, disabled]
2950
+ );
2951
+ return /* @__PURE__ */ jsx31("div", { role: "group", "aria-label": ariaLabel, className: cn("inline-flex", className), children: /* @__PURE__ */ jsx31(
2952
+ SegmentedControl,
2953
+ {
2954
+ value,
2955
+ onValueChange: (next) => onValueChange(toArchiveFilter(next, value)),
2956
+ data,
2957
+ size
2958
+ }
2959
+ ) });
2960
+ }
2961
+
2913
2962
  // src/select.tsx
2914
2963
  import * as SelectPrimitive from "@radix-ui/react-select";
2915
2964
  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";
2965
+ import * as React25 from "react";
2966
+ import { jsx as jsx32, jsxs as jsxs18 } from "react/jsx-runtime";
2918
2967
  var Select = SelectPrimitive.Root;
2919
2968
  var SelectGroup = SelectPrimitive.Group;
2920
2969
  var SelectValue = SelectPrimitive.Value;
@@ -2933,7 +2982,7 @@ var selectTriggerVariants = cva4(
2933
2982
  }
2934
2983
  }
2935
2984
  );
2936
- var SelectTrigger = React24.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ jsxs17(
2985
+ var SelectTrigger = React25.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ jsxs18(
2937
2986
  SelectPrimitive.Trigger,
2938
2987
  {
2939
2988
  ref,
@@ -2941,12 +2990,12 @@ var SelectTrigger = React24.forwardRef(({ className, children, hideArrow = false
2941
2990
  ...props,
2942
2991
  children: [
2943
2992
  children,
2944
- !hideArrow && /* @__PURE__ */ jsx31(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx31(RadixChevronDownIcon, { className: "h-4 w-4 opacity-50" }) })
2993
+ !hideArrow && /* @__PURE__ */ jsx32(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx32(RadixChevronDownIcon, { className: "h-4 w-4 opacity-50" }) })
2945
2994
  ]
2946
2995
  }
2947
2996
  ));
2948
2997
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
2949
- var SelectScrollUpButton = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
2998
+ var SelectScrollUpButton = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
2950
2999
  SelectPrimitive.ScrollUpButton,
2951
3000
  {
2952
3001
  ref,
@@ -2955,11 +3004,11 @@ var SelectScrollUpButton = React24.forwardRef(({ className, ...props }, ref) =>
2955
3004
  className
2956
3005
  ),
2957
3006
  ...props,
2958
- children: /* @__PURE__ */ jsx31(RadixChevronUpIcon, {})
3007
+ children: /* @__PURE__ */ jsx32(RadixChevronUpIcon, {})
2959
3008
  }
2960
3009
  ));
2961
3010
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
2962
- var SelectScrollDownButton = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
3011
+ var SelectScrollDownButton = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
2963
3012
  SelectPrimitive.ScrollDownButton,
2964
3013
  {
2965
3014
  ref,
@@ -2968,11 +3017,11 @@ var SelectScrollDownButton = React24.forwardRef(({ className, ...props }, ref) =
2968
3017
  className
2969
3018
  ),
2970
3019
  ...props,
2971
- children: /* @__PURE__ */ jsx31(RadixChevronDownIcon, {})
3020
+ children: /* @__PURE__ */ jsx32(RadixChevronDownIcon, {})
2972
3021
  }
2973
3022
  ));
2974
3023
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
2975
- var SelectContent = React24.forwardRef(
3024
+ var SelectContent = React25.forwardRef(
2976
3025
  ({
2977
3026
  className,
2978
3027
  children,
@@ -2982,7 +3031,7 @@ var SelectContent = React24.forwardRef(
2982
3031
  ...props
2983
3032
  }, ref) => {
2984
3033
  const portalContainer = usePortalContainer(container);
2985
- return /* @__PURE__ */ jsx31(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs17(
3034
+ return /* @__PURE__ */ jsx32(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs18(
2986
3035
  SelectPrimitive.Content,
2987
3036
  {
2988
3037
  ref,
@@ -3000,8 +3049,8 @@ var SelectContent = React24.forwardRef(
3000
3049
  position,
3001
3050
  ...props,
3002
3051
  children: [
3003
- /* @__PURE__ */ jsx31(SelectScrollUpButton, {}),
3004
- /* @__PURE__ */ jsx31(
3052
+ /* @__PURE__ */ jsx32(SelectScrollUpButton, {}),
3053
+ /* @__PURE__ */ jsx32(
3005
3054
  SelectPrimitive.Viewport,
3006
3055
  {
3007
3056
  className: cn(
@@ -3011,14 +3060,14 @@ var SelectContent = React24.forwardRef(
3011
3060
  children
3012
3061
  }
3013
3062
  ),
3014
- /* @__PURE__ */ jsx31(SelectScrollDownButton, {})
3063
+ /* @__PURE__ */ jsx32(SelectScrollDownButton, {})
3015
3064
  ]
3016
3065
  }
3017
3066
  ) });
3018
3067
  }
3019
3068
  );
3020
3069
  SelectContent.displayName = SelectPrimitive.Content.displayName;
3021
- var SelectLabel = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
3070
+ var SelectLabel = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
3022
3071
  SelectPrimitive.Label,
3023
3072
  {
3024
3073
  ref,
@@ -3027,7 +3076,7 @@ var SelectLabel = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
3027
3076
  }
3028
3077
  ));
3029
3078
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
3030
- var SelectItem = React24.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ jsxs17(
3079
+ var SelectItem = React25.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ jsxs18(
3031
3080
  SelectPrimitive.Item,
3032
3081
  {
3033
3082
  ref,
@@ -3038,14 +3087,14 @@ var SelectItem = React24.forwardRef(({ className, children, description, ...prop
3038
3087
  ),
3039
3088
  ...props,
3040
3089
  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
3090
+ /* @__PURE__ */ jsx32("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx32(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx32(CheckIcon, { className: "h-4 w-4" }) }) }),
3091
+ /* @__PURE__ */ jsx32(SelectPrimitive.ItemText, { children }),
3092
+ description ? /* @__PURE__ */ jsx32("span", { className: "block text-xs leading-snug text-muted-foreground", children: description }) : null
3044
3093
  ]
3045
3094
  }
3046
3095
  ));
3047
3096
  SelectItem.displayName = SelectPrimitive.Item.displayName;
3048
- var SelectSeparator = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
3097
+ var SelectSeparator = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
3049
3098
  SelectPrimitive.Separator,
3050
3099
  {
3051
3100
  ref,
@@ -3057,9 +3106,9 @@ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
3057
3106
 
3058
3107
  // src/separator.tsx
3059
3108
  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(
3109
+ import * as React26 from "react";
3110
+ import { jsx as jsx33 } from "react/jsx-runtime";
3111
+ var Separator4 = React26.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx33(
3063
3112
  SeparatorPrimitive.Root,
3064
3113
  {
3065
3114
  ref,
@@ -3079,11 +3128,11 @@ Separator4.displayName = SeparatorPrimitive.Root.displayName;
3079
3128
  import * as SheetPrimitive from "@radix-ui/react-dialog";
3080
3129
  import { treeContainsComponent as treeContainsComponent4 } from "@ai-matrx/kit/react-tree";
3081
3130
  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) => {
3131
+ import * as React27 from "react";
3132
+ import { jsx as jsx34, jsxs as jsxs19 } from "react/jsx-runtime";
3133
+ var SheetContentBase = React27.forwardRef(({ ...props }, ref) => {
3085
3134
  const isModal = useRadixDialogModal();
3086
- return /* @__PURE__ */ jsx33(
3135
+ return /* @__PURE__ */ jsx34(
3087
3136
  SheetPrimitive.Content,
3088
3137
  {
3089
3138
  ...props,
@@ -3093,15 +3142,15 @@ var SheetContentBase = React26.forwardRef(({ ...props }, ref) => {
3093
3142
  );
3094
3143
  });
3095
3144
  SheetContentBase.displayName = "SheetContentBase";
3096
- var Sheet = React26.forwardRef(({ children, ...props }, _ref) => {
3145
+ var Sheet = React27.forwardRef(({ children, ...props }, _ref) => {
3097
3146
  const modal = props.modal ?? true;
3098
- return /* @__PURE__ */ jsx33(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx33(SheetPrimitive.Root, { ...props, modal, children }) });
3147
+ return /* @__PURE__ */ jsx34(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx34(SheetPrimitive.Root, { ...props, modal, children }) });
3099
3148
  });
3100
3149
  Sheet.displayName = "Sheet";
3101
3150
  var SheetTrigger = SheetPrimitive.Trigger;
3102
3151
  var SheetClose = SheetPrimitive.Close;
3103
3152
  var SheetPortal = SheetPrimitive.Portal;
3104
- var SheetOverlay = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
3153
+ var SheetOverlay = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
3105
3154
  SheetPrimitive.Overlay,
3106
3155
  {
3107
3156
  className: cn(
@@ -3138,7 +3187,7 @@ var sheetVariants = cva5(
3138
3187
  }
3139
3188
  }
3140
3189
  );
3141
- var SheetDescription = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
3190
+ var SheetDescription = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
3142
3191
  SheetPrimitive.Description,
3143
3192
  {
3144
3193
  ref,
@@ -3147,7 +3196,7 @@ var SheetDescription = React26.forwardRef(({ className, ...props }, ref) => /* @
3147
3196
  }
3148
3197
  ));
3149
3198
  SheetDescription.displayName = SheetPrimitive.Description.displayName;
3150
- var SheetContent = React26.forwardRef(
3199
+ var SheetContent = React27.forwardRef(
3151
3200
  ({
3152
3201
  side = "right",
3153
3202
  className,
@@ -3159,9 +3208,9 @@ var SheetContent = React26.forwardRef(
3159
3208
  ...props
3160
3209
  }, ref) => {
3161
3210
  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(
3211
+ return /* @__PURE__ */ jsxs19(SheetPortal, { children: [
3212
+ !hideOverlay && /* @__PURE__ */ jsx34(SheetOverlay, { className: overlayClassName }),
3213
+ /* @__PURE__ */ jsxs19(
3165
3214
  SheetContentBase,
3166
3215
  {
3167
3216
  ref,
@@ -3173,9 +3222,9 @@ var SheetContent = React26.forwardRef(
3173
3222
  ...hasDescription ? {} : { "aria-describedby": void 0 },
3174
3223
  ...props,
3175
3224
  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" })
3225
+ !hideCloseButton && /* @__PURE__ */ jsxs19(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: [
3226
+ /* @__PURE__ */ jsx34(Cross2Icon, { className: "h-4 w-4" }),
3227
+ /* @__PURE__ */ jsx34("span", { className: "sr-only", children: "Close" })
3179
3228
  ] }),
3180
3229
  children
3181
3230
  ]
@@ -3188,7 +3237,7 @@ SheetContent.displayName = SheetPrimitive.Content.displayName;
3188
3237
  var SheetHeader = ({
3189
3238
  className,
3190
3239
  ...props
3191
- }) => /* @__PURE__ */ jsx33(
3240
+ }) => /* @__PURE__ */ jsx34(
3192
3241
  "div",
3193
3242
  {
3194
3243
  className: cn(
@@ -3202,7 +3251,7 @@ SheetHeader.displayName = "SheetHeader";
3202
3251
  var SheetFooter = ({
3203
3252
  className,
3204
3253
  ...props
3205
- }) => /* @__PURE__ */ jsx33(
3254
+ }) => /* @__PURE__ */ jsx34(
3206
3255
  "div",
3207
3256
  {
3208
3257
  "data-slot": "sheet-footer",
@@ -3214,7 +3263,7 @@ var SheetFooter = ({
3214
3263
  }
3215
3264
  );
3216
3265
  SheetFooter.displayName = "SheetFooter";
3217
- var SheetTitle = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
3266
+ var SheetTitle = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
3218
3267
  SheetPrimitive.Title,
3219
3268
  {
3220
3269
  ref,
@@ -3225,9 +3274,9 @@ var SheetTitle = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE
3225
3274
  SheetTitle.displayName = SheetPrimitive.Title.displayName;
3226
3275
 
3227
3276
  // src/skeleton.tsx
3228
- import { jsx as jsx34 } from "react/jsx-runtime";
3277
+ import { jsx as jsx35 } from "react/jsx-runtime";
3229
3278
  function Skeleton({ className, animated = true, ...props }) {
3230
- return /* @__PURE__ */ jsx34(
3279
+ return /* @__PURE__ */ jsx35(
3231
3280
  "div",
3232
3281
  {
3233
3282
  "data-slot": "skeleton",
@@ -3243,8 +3292,8 @@ function Skeleton({ className, animated = true, ...props }) {
3243
3292
 
3244
3293
  // src/switch.tsx
3245
3294
  import * as SwitchPrimitives from "@radix-ui/react-switch";
3246
- import * as React27 from "react";
3247
- import { jsx as jsx35 } from "react/jsx-runtime";
3295
+ import * as React28 from "react";
3296
+ import { jsx as jsx36 } from "react/jsx-runtime";
3248
3297
  var SWITCH_SIZES = {
3249
3298
  sm: {
3250
3299
  root: "h-4 w-9 border-border data-[state=unchecked]:bg-input",
@@ -3255,7 +3304,7 @@ var SWITCH_SIZES = {
3255
3304
  thumb: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
3256
3305
  }
3257
3306
  };
3258
- var Switch = React27.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx35(
3307
+ var Switch = React28.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx36(
3259
3308
  SwitchPrimitives.Root,
3260
3309
  {
3261
3310
  ref,
@@ -3266,7 +3315,7 @@ var Switch = React27.forwardRef(({ className, size = "md", ...props }, ref) => /
3266
3315
  className
3267
3316
  ),
3268
3317
  ...props,
3269
- children: /* @__PURE__ */ jsx35(
3318
+ children: /* @__PURE__ */ jsx36(
3270
3319
  SwitchPrimitives.Thumb,
3271
3320
  {
3272
3321
  "data-slot": "switch-thumb",
@@ -3281,14 +3330,14 @@ var Switch = React27.forwardRef(({ className, size = "md", ...props }, ref) => /
3281
3330
  Switch.displayName = SwitchPrimitives.Root.displayName;
3282
3331
 
3283
3332
  // src/organization-picker.tsx
3284
- import { Fragment as Fragment2, jsx as jsx36, jsxs as jsxs19 } from "react/jsx-runtime";
3333
+ import { Fragment as Fragment2, jsx as jsx37, jsxs as jsxs20 } from "react/jsx-runtime";
3285
3334
  function OrganizationAbbreviation({
3286
3335
  abbreviation,
3287
3336
  name,
3288
3337
  className
3289
3338
  }) {
3290
3339
  const mark = abbreviation && abbreviation.trim() || name.trim().slice(0, 1) || "?";
3291
- return /* @__PURE__ */ jsx36(
3340
+ return /* @__PURE__ */ jsx37(
3292
3341
  "span",
3293
3342
  {
3294
3343
  className: cn(
@@ -3315,20 +3364,20 @@ function OrganizationPicker({
3315
3364
  }) {
3316
3365
  const active = organizations.find((o) => o.id === activeOrganizationId) ?? null;
3317
3366
  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: [
3367
+ return /* @__PURE__ */ jsxs20("div", { className: cn("flex flex-col", className), "data-slot": "organization-picker", children: [
3368
+ !hideHeading && /* @__PURE__ */ jsx37("p", { className: "px-2 py-1.5 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground", children: "Organization" }),
3369
+ loading ? /* @__PURE__ */ jsxs20("div", { className: "space-y-1 px-1 py-1", "aria-busy": "true", "aria-label": "Loading organizations", children: [
3370
+ /* @__PURE__ */ jsx37(Skeleton, { className: "h-7 rounded-md" }),
3371
+ /* @__PURE__ */ jsx37(Skeleton, { className: "h-7 rounded-md" })
3372
+ ] }) : loadFailed ? /* @__PURE__ */ jsx37("p", { className: "px-2 py-2 text-xs text-destructive", role: "alert", children: "Could not load organizations." }) : organizations.length === 0 ? /* @__PURE__ */ jsx37("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__ */ jsxs20(Fragment2, { children: [
3373
+ active ? /* @__PURE__ */ jsxs20("p", { className: "px-2 pb-1 text-[11px] text-muted-foreground", "data-slot": "organization-picker-status", children: [
3325
3374
  "Working in",
3326
3375
  " ",
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) => {
3376
+ /* @__PURE__ */ jsx37("span", { className: "font-medium text-foreground", children: active.name })
3377
+ ] }) : /* @__PURE__ */ jsx37("p", { className: "px-2 pb-1 text-[11px] text-destructive", "data-slot": "organization-picker-status", children: "No organization selected \u2014 pick one below." }),
3378
+ /* @__PURE__ */ jsx37("ul", { className: "max-h-72 overflow-y-auto", role: "listbox", "aria-label": "Organizations", children: organizations.map((org) => {
3330
3379
  const isActive = org.id === activeOrganizationId;
3331
- return /* @__PURE__ */ jsx36("li", { role: "none", children: /* @__PURE__ */ jsxs19(
3380
+ return /* @__PURE__ */ jsx37("li", { role: "none", children: /* @__PURE__ */ jsxs20(
3332
3381
  "button",
3333
3382
  {
3334
3383
  type: "button",
@@ -3345,7 +3394,7 @@ function OrganizationPicker({
3345
3394
  itemClassName
3346
3395
  ),
3347
3396
  children: [
3348
- /* @__PURE__ */ jsx36(
3397
+ /* @__PURE__ */ jsx37(
3349
3398
  OrganizationAbbreviation,
3350
3399
  {
3351
3400
  abbreviation: org.abbreviation,
@@ -3356,9 +3405,9 @@ function OrganizationPicker({
3356
3405
  )
3357
3406
  }
3358
3407
  ),
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(
3408
+ /* @__PURE__ */ jsx37("span", { className: "min-w-0 flex-1 truncate", children: org.name }),
3409
+ org.isPersonal && /* @__PURE__ */ jsx37("span", { className: "shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground", children: "Personal" }),
3410
+ isDefault(org.id) && /* @__PURE__ */ jsx37(
3362
3411
  StarIcon,
3363
3412
  {
3364
3413
  className: "h-[13px] w-[13px] shrink-0 fill-warning text-warning",
@@ -3367,14 +3416,14 @@ function OrganizationPicker({
3367
3416
  role: "img"
3368
3417
  }
3369
3418
  ),
3370
- isActive && /* @__PURE__ */ jsx36(LucideCheckIcon, { className: "h-[15px] w-[15px] shrink-0 text-primary" })
3419
+ isActive && /* @__PURE__ */ jsx37(LucideCheckIcon, { className: "h-[15px] w-[15px] shrink-0 text-primary" })
3371
3420
  ]
3372
3421
  }
3373
3422
  ) }, org.id);
3374
3423
  }) }),
3375
- onSetDefault && /* @__PURE__ */ jsxs19(Fragment2, { children: [
3376
- /* @__PURE__ */ jsx36("div", { className: "my-1 border-t border-border" }),
3377
- /* @__PURE__ */ jsx36(
3424
+ onSetDefault && /* @__PURE__ */ jsxs20(Fragment2, { children: [
3425
+ /* @__PURE__ */ jsx37("div", { className: "my-1 border-t border-border" }),
3426
+ /* @__PURE__ */ jsx37(
3378
3427
  DefaultOrganizationSwitch,
3379
3428
  {
3380
3429
  active,
@@ -3392,17 +3441,17 @@ function DefaultOrganizationSwitch({
3392
3441
  onChange
3393
3442
  }) {
3394
3443
  const disabled = !active;
3395
- return /* @__PURE__ */ jsxs19(
3444
+ return /* @__PURE__ */ jsxs20(
3396
3445
  "div",
3397
3446
  {
3398
3447
  className: "flex items-center justify-between gap-3 rounded-md px-2 py-1.5",
3399
3448
  "data-slot": "organization-picker-default",
3400
3449
  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" })
3450
+ /* @__PURE__ */ jsxs20("div", { className: "min-w-0", children: [
3451
+ /* @__PURE__ */ jsx37("p", { className: "text-xs font-medium text-foreground", children: "Set as my default" }),
3452
+ /* @__PURE__ */ jsx37("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
3453
  ] }),
3405
- /* @__PURE__ */ jsx36(
3454
+ /* @__PURE__ */ jsx37(
3406
3455
  Switch,
3407
3456
  {
3408
3457
  checked,
@@ -3418,7 +3467,7 @@ function DefaultOrganizationSwitch({
3418
3467
 
3419
3468
  // src/tabbed-bottom-sheet.tsx
3420
3469
  import { useState as useState7 } from "react";
3421
- import { jsx as jsx37, jsxs as jsxs20 } from "react/jsx-runtime";
3470
+ import { jsx as jsx38, jsxs as jsxs21 } from "react/jsx-runtime";
3422
3471
  function TabbedBottomSheet({
3423
3472
  open,
3424
3473
  onOpenChange,
@@ -3432,15 +3481,15 @@ function TabbedBottomSheet({
3432
3481
  if (open) setSelectedTabId(null);
3433
3482
  }
3434
3483
  const selectedTab = selectedTabId ? tabs.find((tab) => tab.id === selectedTabId) : null;
3435
- return /* @__PURE__ */ jsx37(
3484
+ return /* @__PURE__ */ jsx38(
3436
3485
  BottomSheet,
3437
3486
  {
3438
3487
  open,
3439
3488
  onOpenChange,
3440
3489
  title,
3441
3490
  size: "full",
3442
- children: /* @__PURE__ */ jsxs20("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
3443
- /* @__PURE__ */ jsx37(
3491
+ children: /* @__PURE__ */ jsxs21("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
3492
+ /* @__PURE__ */ jsx38(
3444
3493
  BottomSheetHeader,
3445
3494
  {
3446
3495
  title: selectedTab ? selectedTab.label : title,
@@ -3448,19 +3497,19 @@ function TabbedBottomSheet({
3448
3497
  onBack: () => setSelectedTabId(null)
3449
3498
  }
3450
3499
  ),
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) => {
3500
+ selectedTab ? /* @__PURE__ */ jsx38("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden pb-safe", children: selectedTab.content }) : /* @__PURE__ */ jsx38(BottomSheetBody, { children: /* @__PURE__ */ jsx38("ul", { className: "divide-y divide-border", children: tabs.map((tab) => {
3452
3501
  const Icon2 = tab.icon;
3453
- return /* @__PURE__ */ jsx37("li", { children: /* @__PURE__ */ jsxs20(
3502
+ return /* @__PURE__ */ jsx38("li", { children: /* @__PURE__ */ jsxs21(
3454
3503
  "button",
3455
3504
  {
3456
3505
  type: "button",
3457
3506
  onClick: () => setSelectedTabId(tab.id),
3458
3507
  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
3508
  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 }),
3509
+ Icon2 ? /* @__PURE__ */ jsx38(Icon2, { className: "h-5 w-5 shrink-0 text-muted-foreground" }) : null,
3510
+ /* @__PURE__ */ jsx38("span", { className: "min-w-0 flex-1 text-base text-foreground", children: tab.label }),
3462
3511
  tab.trailing,
3463
- /* @__PURE__ */ jsx37(ChevronRightIcon, { className: "h-5 w-5 shrink-0 text-muted-foreground" })
3512
+ /* @__PURE__ */ jsx38(ChevronRightIcon, { className: "h-5 w-5 shrink-0 text-muted-foreground" })
3464
3513
  ]
3465
3514
  }
3466
3515
  ) }, tab.id);
@@ -3471,19 +3520,19 @@ function TabbedBottomSheet({
3471
3520
  }
3472
3521
 
3473
3522
  // src/table.tsx
3474
- import * as React28 from "react";
3475
- import { jsx as jsx38 } from "react/jsx-runtime";
3523
+ import * as React29 from "react";
3524
+ import { jsx as jsx39 } from "react/jsx-runtime";
3476
3525
  var TABLE_SIZES = {
3477
3526
  sm: { head: "px-2", cell: "p-2" },
3478
3527
  md: { head: "px-3", cell: "p-3" }
3479
3528
  };
3480
- var TableSizeContext = React28.createContext("md");
3529
+ var TableSizeContext = React29.createContext("md");
3481
3530
  function useTableSize() {
3482
- return React28.useContext(TableSizeContext);
3531
+ return React29.useContext(TableSizeContext);
3483
3532
  }
3484
- var Table = React28.forwardRef(
3533
+ var Table = React29.forwardRef(
3485
3534
  ({ className, size = "md", wrap = true, wrapperClassName, ...props }, ref) => {
3486
- const table = /* @__PURE__ */ jsx38(
3535
+ const table = /* @__PURE__ */ jsx39(
3487
3536
  "table",
3488
3537
  {
3489
3538
  ref,
@@ -3493,7 +3542,7 @@ var Table = React28.forwardRef(
3493
3542
  ...props
3494
3543
  }
3495
3544
  );
3496
- return /* @__PURE__ */ jsx38(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ jsx38(
3545
+ return /* @__PURE__ */ jsx39(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ jsx39(
3497
3546
  "div",
3498
3547
  {
3499
3548
  "data-slot": "table-wrapper",
@@ -3504,7 +3553,7 @@ var Table = React28.forwardRef(
3504
3553
  }
3505
3554
  );
3506
3555
  Table.displayName = "Table";
3507
- var TableHeader = React28.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ jsx38(
3556
+ var TableHeader = React29.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ jsx39(
3508
3557
  "thead",
3509
3558
  {
3510
3559
  ref,
@@ -3518,7 +3567,7 @@ var TableHeader = React28.forwardRef(({ className, sticky = false, ...props }, r
3518
3567
  }
3519
3568
  ));
3520
3569
  TableHeader.displayName = "TableHeader";
3521
- var TableBody = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
3570
+ var TableBody = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
3522
3571
  "tbody",
3523
3572
  {
3524
3573
  ref,
@@ -3528,7 +3577,7 @@ var TableBody = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE_
3528
3577
  }
3529
3578
  ));
3530
3579
  TableBody.displayName = "TableBody";
3531
- var TableFooter = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
3580
+ var TableFooter = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
3532
3581
  "tfoot",
3533
3582
  {
3534
3583
  ref,
@@ -3541,7 +3590,7 @@ var TableFooter = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
3541
3590
  }
3542
3591
  ));
3543
3592
  TableFooter.displayName = "TableFooter";
3544
- var TableRow = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
3593
+ var TableRow = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
3545
3594
  "tr",
3546
3595
  {
3547
3596
  ref,
@@ -3554,9 +3603,9 @@ var TableRow = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__
3554
3603
  }
3555
3604
  ));
3556
3605
  TableRow.displayName = "TableRow";
3557
- var TableHead = React28.forwardRef(({ className, ...props }, ref) => {
3606
+ var TableHead = React29.forwardRef(({ className, ...props }, ref) => {
3558
3607
  const size = useTableSize();
3559
- return /* @__PURE__ */ jsx38(
3608
+ return /* @__PURE__ */ jsx39(
3560
3609
  "th",
3561
3610
  {
3562
3611
  ref,
@@ -3571,9 +3620,9 @@ var TableHead = React28.forwardRef(({ className, ...props }, ref) => {
3571
3620
  );
3572
3621
  });
3573
3622
  TableHead.displayName = "TableHead";
3574
- var TableCell = React28.forwardRef(({ className, ...props }, ref) => {
3623
+ var TableCell = React29.forwardRef(({ className, ...props }, ref) => {
3575
3624
  const size = useTableSize();
3576
- return /* @__PURE__ */ jsx38(
3625
+ return /* @__PURE__ */ jsx39(
3577
3626
  "td",
3578
3627
  {
3579
3628
  ref,
@@ -3588,7 +3637,7 @@ var TableCell = React28.forwardRef(({ className, ...props }, ref) => {
3588
3637
  );
3589
3638
  });
3590
3639
  TableCell.displayName = "TableCell";
3591
- var TableCaption = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
3640
+ var TableCaption = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
3592
3641
  "caption",
3593
3642
  {
3594
3643
  ref,
@@ -3601,11 +3650,11 @@ TableCaption.displayName = "TableCaption";
3601
3650
 
3602
3651
  // src/tabs.tsx
3603
3652
  import * as TabsPrimitive from "@radix-ui/react-tabs";
3604
- import * as React29 from "react";
3605
- import { jsx as jsx39 } from "react/jsx-runtime";
3653
+ import * as React30 from "react";
3654
+ import { jsx as jsx40 } from "react/jsx-runtime";
3606
3655
  var Tabs = TabsPrimitive.Root;
3607
3656
  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(
3657
+ var TabsList = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
3609
3658
  TabsPrimitive.List,
3610
3659
  {
3611
3660
  ref,
@@ -3618,7 +3667,7 @@ var TabsList = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__
3618
3667
  }
3619
3668
  ));
3620
3669
  TabsList.displayName = TabsPrimitive.List.displayName;
3621
- var TabsTrigger = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
3670
+ var TabsTrigger = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
3622
3671
  TabsPrimitive.Trigger,
3623
3672
  {
3624
3673
  ref,
@@ -3632,7 +3681,7 @@ var TabsTrigger = React29.forwardRef(({ className, ...props }, ref) => /* @__PUR
3632
3681
  }
3633
3682
  ));
3634
3683
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
3635
- var TabsTriggerCore = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
3684
+ var TabsTriggerCore = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
3636
3685
  TabsPrimitive.Trigger,
3637
3686
  {
3638
3687
  ref,
@@ -3642,7 +3691,7 @@ var TabsTriggerCore = React29.forwardRef(({ className, ...props }, ref) => /* @_
3642
3691
  }
3643
3692
  ));
3644
3693
  TabsTriggerCore.displayName = TabsPrimitive.Trigger.displayName;
3645
- var TabsContent = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
3694
+ var TabsContent = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
3646
3695
  TabsPrimitive.Content,
3647
3696
  {
3648
3697
  ref,
@@ -3658,8 +3707,8 @@ var TabsContent = React29.forwardRef(({ className, ...props }, ref) => /* @__PUR
3658
3707
  TabsContent.displayName = TabsPrimitive.Content.displayName;
3659
3708
 
3660
3709
  // src/textarea.tsx
3661
- import * as React30 from "react";
3662
- import { jsx as jsx40, jsxs as jsxs21 } from "react/jsx-runtime";
3710
+ import * as React31 from "react";
3711
+ import { jsx as jsx41, jsxs as jsxs22 } from "react/jsx-runtime";
3663
3712
  var FILL_HEIGHT_REGEX = /(?:^|\s)(h-full|h-dvh|flex-1|grow)(?:\s|$)/;
3664
3713
  var FILL_WIDTH_REGEX = /(?:^|\s)(w-full|w-screen)(?:\s|$)/;
3665
3714
  function getStretchClasses(className) {
@@ -3672,7 +3721,7 @@ function getStretchClasses(className) {
3672
3721
  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
3722
  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
3723
  function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
3675
- React30.useEffect(() => {
3724
+ React31.useEffect(() => {
3676
3725
  if (!autoGrow || !ref.current) return;
3677
3726
  const textarea = ref.current;
3678
3727
  textarea.style.height = "auto";
@@ -3688,8 +3737,8 @@ function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
3688
3737
  }, [value, autoGrow, minHeight, maxHeight, ref]);
3689
3738
  }
3690
3739
  function useMergedTextareaRef(forwarded) {
3691
- const internal = React30.useRef(null);
3692
- const callback = React30.useCallback(
3740
+ const internal = React31.useRef(null);
3741
+ const callback = React31.useCallback(
3693
3742
  (node) => {
3694
3743
  internal.current = node;
3695
3744
  if (typeof forwarded === "function") forwarded(node);
@@ -3706,13 +3755,13 @@ function boxStyle(minHeight, maxHeight) {
3706
3755
  maxHeight: maxHeight ? `${maxHeight}px` : void 0
3707
3756
  };
3708
3757
  }
3709
- var Textarea = React30.forwardRef(
3758
+ var Textarea = React31.forwardRef(
3710
3759
  ({ className, autoGrow, minHeight, maxHeight, wrapperClassName, ...props }, forwarded) => {
3711
3760
  const { ref, callback } = useMergedTextareaRef(forwarded);
3712
3761
  const stretchClasses = getStretchClasses(className);
3713
3762
  const needsWrapper = Boolean(wrapperClassName || stretchClasses);
3714
3763
  useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
3715
- const textarea = /* @__PURE__ */ jsx40(
3764
+ const textarea = /* @__PURE__ */ jsx41(
3716
3765
  "textarea",
3717
3766
  {
3718
3767
  ref: callback,
@@ -3728,15 +3777,15 @@ var Textarea = React30.forwardRef(
3728
3777
  }
3729
3778
  );
3730
3779
  if (!needsWrapper) return textarea;
3731
- return /* @__PURE__ */ jsx40("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
3780
+ return /* @__PURE__ */ jsx41("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
3732
3781
  }
3733
3782
  );
3734
3783
  Textarea.displayName = "Textarea";
3735
- var BasicTextarea = React30.forwardRef(
3784
+ var BasicTextarea = React31.forwardRef(
3736
3785
  ({ className, autoGrow, minHeight, maxHeight, ...props }, forwarded) => {
3737
3786
  const { ref, callback } = useMergedTextareaRef(forwarded);
3738
3787
  useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
3739
- return /* @__PURE__ */ jsx40(
3788
+ return /* @__PURE__ */ jsx41(
3740
3789
  "textarea",
3741
3790
  {
3742
3791
  ref: callback,
@@ -3754,7 +3803,7 @@ var BasicTextarea = React30.forwardRef(
3754
3803
  }
3755
3804
  );
3756
3805
  BasicTextarea.displayName = "BasicTextarea";
3757
- var TextareaWithPrefix = React30.forwardRef(
3806
+ var TextareaWithPrefix = React31.forwardRef(
3758
3807
  ({
3759
3808
  prefix,
3760
3809
  className,
@@ -3766,13 +3815,13 @@ var TextareaWithPrefix = React30.forwardRef(
3766
3815
  }, forwarded) => {
3767
3816
  const { ref, callback } = useMergedTextareaRef(forwarded);
3768
3817
  useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
3769
- return /* @__PURE__ */ jsxs21(
3818
+ return /* @__PURE__ */ jsxs22(
3770
3819
  "div",
3771
3820
  {
3772
3821
  className: cn("relative", getStretchClasses(className), wrapperClassName),
3773
3822
  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(
3823
+ prefix ? /* @__PURE__ */ jsx41("div", { className: "pointer-events-none absolute left-3 top-3 z-10 text-muted-foreground", children: prefix }) : null,
3824
+ /* @__PURE__ */ jsx41(
3776
3825
  "textarea",
3777
3826
  {
3778
3827
  ref: callback,
@@ -3851,14 +3900,14 @@ function useScrollFade() {
3851
3900
 
3852
3901
  // src/hover-card.tsx
3853
3902
  import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
3854
- import * as React31 from "react";
3855
- import { jsx as jsx41 } from "react/jsx-runtime";
3903
+ import * as React32 from "react";
3904
+ import { jsx as jsx42 } from "react/jsx-runtime";
3856
3905
  var HoverCard = HoverCardPrimitive.Root;
3857
3906
  var HoverCardTrigger = HoverCardPrimitive.Trigger;
3858
- var HoverCardContent = React31.forwardRef(
3907
+ var HoverCardContent = React32.forwardRef(
3859
3908
  ({ className, align = "center", sideOffset = 4, container, animated = true, ...props }, ref) => {
3860
3909
  const resolved = usePortalContainer(container);
3861
- return /* @__PURE__ */ jsx41(HoverCardPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx41(
3910
+ return /* @__PURE__ */ jsx42(HoverCardPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx42(
3862
3911
  HoverCardPrimitive.Content,
3863
3912
  {
3864
3913
  ref,
@@ -3879,9 +3928,9 @@ HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
3879
3928
 
3880
3929
  // src/radio-group.tsx
3881
3930
  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");
3931
+ import * as React33 from "react";
3932
+ import { jsx as jsx43 } from "react/jsx-runtime";
3933
+ var RadioGroupSizeContext = React33.createContext("md");
3885
3934
  var CONTROL_CLASSES = {
3886
3935
  sm: "h-3.5 w-3.5",
3887
3936
  md: "h-4 w-4",
@@ -3892,7 +3941,7 @@ var DOT_CLASSES = {
3892
3941
  md: "h-1.5 w-1.5",
3893
3942
  lg: "h-2 w-2"
3894
3943
  };
3895
- var RadioGroup3 = React32.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx42(RadioGroupSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx42(
3944
+ var RadioGroup3 = React33.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx43(RadioGroupSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx43(
3896
3945
  RadioGroupPrimitive.Root,
3897
3946
  {
3898
3947
  ref,
@@ -3902,10 +3951,10 @@ var RadioGroup3 = React32.forwardRef(({ className, size = "md", ...props }, ref)
3902
3951
  }
3903
3952
  ) }));
3904
3953
  RadioGroup3.displayName = RadioGroupPrimitive.Root.displayName;
3905
- var RadioGroupItem = React32.forwardRef(({ className, size, ...props }, ref) => {
3906
- const groupSize = React32.useContext(RadioGroupSizeContext);
3954
+ var RadioGroupItem = React33.forwardRef(({ className, size, ...props }, ref) => {
3955
+ const groupSize = React33.useContext(RadioGroupSizeContext);
3907
3956
  const resolved = size ?? groupSize;
3908
- return /* @__PURE__ */ jsx42(
3957
+ return /* @__PURE__ */ jsx43(
3909
3958
  RadioGroupPrimitive.Item,
3910
3959
  {
3911
3960
  ref,
@@ -3922,7 +3971,7 @@ var RadioGroupItem = React32.forwardRef(({ className, size, ...props }, ref) =>
3922
3971
  className
3923
3972
  ),
3924
3973
  ...props,
3925
- children: /* @__PURE__ */ jsx42(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx42(
3974
+ children: /* @__PURE__ */ jsx43(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx43(
3926
3975
  "div",
3927
3976
  {
3928
3977
  className: cn("rounded-full bg-primary-foreground", DOT_CLASSES[resolved])
@@ -3935,7 +3984,7 @@ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
3935
3984
 
3936
3985
  // src/resizable.tsx
3937
3986
  import { Group as Group4, Panel, Separator as Separator5 } from "react-resizable-panels";
3938
- import { jsx as jsx43 } from "react/jsx-runtime";
3987
+ import { jsx as jsx44 } from "react/jsx-runtime";
3939
3988
  var HANDLE_SIZES = {
3940
3989
  xs: "w-0.5 [&[aria-orientation=horizontal]]:h-0.5 [&[aria-orientation=horizontal]]:w-full",
3941
3990
  sm: "w-1 [&[aria-orientation=horizontal]]:h-1 [&[aria-orientation=horizontal]]:w-full",
@@ -3949,7 +3998,7 @@ var HANDLE_SIZES = {
3949
3998
  var ResizablePanelGroup = ({
3950
3999
  className,
3951
4000
  ...props
3952
- }) => /* @__PURE__ */ jsx43(
4001
+ }) => /* @__PURE__ */ jsx44(
3953
4002
  Group4,
3954
4003
  {
3955
4004
  "data-slot": "resizable-group",
@@ -3964,7 +4013,7 @@ var ResizableHandle = ({
3964
4013
  size = "xs",
3965
4014
  className,
3966
4015
  ...props
3967
- }) => /* @__PURE__ */ jsx43(
4016
+ }) => /* @__PURE__ */ jsx44(
3968
4017
  Separator5,
3969
4018
  {
3970
4019
  "data-slot": "resizable-handle",
@@ -3984,15 +4033,15 @@ var ResizableHandle = ({
3984
4033
  className
3985
4034
  ),
3986
4035
  ...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
4036
+ children: withHandle ? /* @__PURE__ */ jsx44("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__ */ jsx44(DragHandleDots2Icon, { className: "h-2.5 w-2.5 group-aria-[orientation=horizontal]/handle:rotate-90" }) }) : null
3988
4037
  }
3989
4038
  );
3990
4039
  ResizableHandle.displayName = "ResizableHandle";
3991
4040
 
3992
4041
  // src/slider.tsx
3993
4042
  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";
4043
+ import * as React34 from "react";
4044
+ import { jsx as jsx45, jsxs as jsxs23 } from "react/jsx-runtime";
3996
4045
  var TRACK_CLASSES = {
3997
4046
  sm: "h-1",
3998
4047
  md: "h-1.5",
@@ -4003,12 +4052,12 @@ var THUMB_CLASSES = {
4003
4052
  md: "h-4 w-4",
4004
4053
  lg: "h-5 w-5"
4005
4054
  };
4006
- var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
4055
+ var Slider = React34.forwardRef(({ className, size = "md", ...props }, ref) => {
4007
4056
  const thumbCount = Math.max(
4008
4057
  1,
4009
4058
  (props.value ?? props.defaultValue ?? [0]).length
4010
4059
  );
4011
- return /* @__PURE__ */ jsxs22(
4060
+ return /* @__PURE__ */ jsxs23(
4012
4061
  SliderPrimitive.Root,
4013
4062
  {
4014
4063
  ref,
@@ -4020,7 +4069,7 @@ var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
4020
4069
  ),
4021
4070
  ...props,
4022
4071
  children: [
4023
- /* @__PURE__ */ jsx44(
4072
+ /* @__PURE__ */ jsx45(
4024
4073
  SliderPrimitive.Track,
4025
4074
  {
4026
4075
  "data-slot": "slider-track",
@@ -4029,7 +4078,7 @@ var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
4029
4078
  TRACK_CLASSES[size],
4030
4079
  "data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"
4031
4080
  ),
4032
- children: /* @__PURE__ */ jsx44(
4081
+ children: /* @__PURE__ */ jsx45(
4033
4082
  SliderPrimitive.Range,
4034
4083
  {
4035
4084
  "data-slot": "slider-range",
@@ -4038,7 +4087,7 @@ var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
4038
4087
  )
4039
4088
  }
4040
4089
  ),
4041
- Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ jsx44(
4090
+ Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ jsx45(
4042
4091
  SliderPrimitive.Thumb,
4043
4092
  {
4044
4093
  "data-slot": "slider-thumb",
@@ -4065,8 +4114,8 @@ Slider.displayName = SliderPrimitive.Root.displayName;
4065
4114
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
4066
4115
  import * as TogglePrimitive from "@radix-ui/react-toggle";
4067
4116
  import { cva as cva6 } from "class-variance-authority";
4068
- import * as React34 from "react";
4069
- import { jsx as jsx45 } from "react/jsx-runtime";
4117
+ import * as React35 from "react";
4118
+ import { jsx as jsx46 } from "react/jsx-runtime";
4070
4119
  var toggleVariants = cva6(
4071
4120
  "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
4121
  {
@@ -4087,7 +4136,7 @@ var toggleVariants = cva6(
4087
4136
  }
4088
4137
  }
4089
4138
  );
4090
- var Toggle = React34.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx45(
4139
+ var Toggle = React35.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx46(
4091
4140
  TogglePrimitive.Root,
4092
4141
  {
4093
4142
  ref,
@@ -4097,21 +4146,21 @@ var Toggle = React34.forwardRef(({ className, variant, size, ...props }, ref) =>
4097
4146
  }
4098
4147
  ));
4099
4148
  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(
4149
+ var ToggleGroupContext = React35.createContext({ size: "default", variant: "default" });
4150
+ var ToggleGroup = React35.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx46(
4102
4151
  ToggleGroupPrimitive.Root,
4103
4152
  {
4104
4153
  ref,
4105
4154
  "data-slot": "toggle-group",
4106
4155
  className: cn("flex items-center justify-center gap-1", className),
4107
4156
  ...props,
4108
- children: /* @__PURE__ */ jsx45(ToggleGroupContext.Provider, { value: { variant, size }, children })
4157
+ children: /* @__PURE__ */ jsx46(ToggleGroupContext.Provider, { value: { variant, size }, children })
4109
4158
  }
4110
4159
  ));
4111
4160
  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(
4161
+ var ToggleGroupItem = React35.forwardRef(({ className, children, variant, size, ...props }, ref) => {
4162
+ const context = React35.useContext(ToggleGroupContext);
4163
+ return /* @__PURE__ */ jsx46(
4115
4164
  ToggleGroupPrimitive.Item,
4116
4165
  {
4117
4166
  ref,
@@ -4132,14 +4181,14 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
4132
4181
 
4133
4182
  // src/tooltip.tsx
4134
4183
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
4135
- import * as React35 from "react";
4136
- import { jsx as jsx46 } from "react/jsx-runtime";
4184
+ import * as React36 from "react";
4185
+ import { jsx as jsx47 } from "react/jsx-runtime";
4137
4186
  var TooltipProvider = TooltipPrimitive.Provider;
4138
4187
  var Tooltip = TooltipPrimitive.Root;
4139
4188
  var TooltipTrigger = TooltipPrimitive.Trigger;
4140
- var TooltipContent = React35.forwardRef(({ className, sideOffset = 4, container, animated = true, ...props }, ref) => {
4189
+ var TooltipContent = React36.forwardRef(({ className, sideOffset = 4, container, animated = true, ...props }, ref) => {
4141
4190
  const resolved = usePortalContainer(container);
4142
- return /* @__PURE__ */ jsx46(TooltipPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx46(
4191
+ return /* @__PURE__ */ jsx47(TooltipPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx47(
4143
4192
  TooltipPrimitive.Content,
4144
4193
  {
4145
4194
  ref,
@@ -4157,6 +4206,8 @@ var TooltipContent = React35.forwardRef(({ className, sideOffset = 4, container,
4157
4206
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
4158
4207
  export {
4159
4208
  ALL_MOTION_CLASSES,
4209
+ ARCHIVE_FILTER_LABELS,
4210
+ ARCHIVE_FILTER_VALUES,
4160
4211
  Accordion,
4161
4212
  AccordionContent,
4162
4213
  AccordionItem,
@@ -4176,6 +4227,7 @@ export {
4176
4227
  AlertDialogTitle,
4177
4228
  AlertDialogTrigger,
4178
4229
  AlertTitle,
4230
+ ArchiveFilter,
4179
4231
  Avatar,
4180
4232
  AvatarFallback,
4181
4233
  AvatarImage,
@@ -4226,6 +4278,7 @@ export {
4226
4278
  ContextMenuSubTrigger,
4227
4279
  ContextMenuTrigger,
4228
4280
  CreatablePicker,
4281
+ DEFAULT_ARCHIVE_FILTER,
4229
4282
  DEFAULT_SCORE_THRESHOLDS,
4230
4283
  Dialog,
4231
4284
  DialogClose,
@@ -4357,6 +4410,7 @@ export {
4357
4410
  scoreRingColorClasses,
4358
4411
  selectTriggerVariants,
4359
4412
  sheetVariants,
4413
+ toArchiveFilter,
4360
4414
  toggleVariants,
4361
4415
  useAccordionSize,
4362
4416
  useCardSize,