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