myoperator-mcp 0.2.126 → 0.2.127

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.
Files changed (2) hide show
  1. package/dist/index.js +387 -306
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -139,7 +139,7 @@ export interface AccordionProps
139
139
  onValueChange?: (value: string[]) => void;
140
140
  }
141
141
 
142
- const Accordion = React.forwardRef<HTMLDivElement, AccordionProps>(
142
+ const Accordion = React.forwardRef(
143
143
  (
144
144
  {
145
145
  className,
@@ -150,8 +150,8 @@ const Accordion = React.forwardRef<HTMLDivElement, AccordionProps>(
150
150
  onValueChange,
151
151
  children,
152
152
  ...props
153
- },
154
- ref
153
+ }: AccordionProps,
154
+ ref: React.Ref<HTMLDivElement>
155
155
  ) => {
156
156
  const [internalValue, setInternalValue] =
157
157
  React.useState<string[]>(defaultValue);
@@ -207,8 +207,8 @@ export interface AccordionItemProps
207
207
  disabled?: boolean;
208
208
  }
209
209
 
210
- const AccordionItem = React.forwardRef<HTMLDivElement, AccordionItemProps>(
211
- ({ className, value, disabled, children, ...props }, ref) => {
210
+ const AccordionItem = React.forwardRef(
211
+ ({ className, value, disabled, children, ...props }: AccordionItemProps, ref: React.Ref<HTMLDivElement>) => {
212
212
  const { value: openValues, variant } = useAccordionContext();
213
213
  const isOpen = openValues.includes(value);
214
214
 
@@ -248,10 +248,7 @@ export interface AccordionTriggerProps
248
248
  showChevron?: boolean;
249
249
  }
250
250
 
251
- const AccordionTrigger = React.forwardRef<
252
- HTMLButtonElement,
253
- AccordionTriggerProps
254
- >(({ className, showChevron = true, children, ...props }, ref) => {
251
+ const AccordionTrigger = React.forwardRef(({ className, showChevron = true, children, ...props }: AccordionTriggerProps, ref: React.Ref<HTMLButtonElement>) => {
255
252
  const {
256
253
  type,
257
254
  value: openValues,
@@ -310,10 +307,7 @@ export interface AccordionContentProps
310
307
  React.HTMLAttributes<HTMLDivElement>,
311
308
  VariantProps<typeof accordionContentVariants> {}
312
309
 
313
- const AccordionContent = React.forwardRef<
314
- HTMLDivElement,
315
- AccordionContentProps
316
- >(({ className, children, ...props }, ref) => {
310
+ const AccordionContent = React.forwardRef(({ className, children, ...props }: AccordionContentProps, ref: React.Ref<HTMLDivElement>) => {
317
311
  const { variant } = useAccordionContext();
318
312
  const { isOpen } = useAccordionItemContext();
319
313
  const contentRef = React.useRef<HTMLDivElement>(null);
@@ -448,7 +442,7 @@ export interface AlertProps
448
442
  defaultOpen?: boolean;
449
443
  }
450
444
 
451
- const Alert = React.forwardRef<HTMLDivElement, AlertProps>(
445
+ const Alert = React.forwardRef(
452
446
  (
453
447
  {
454
448
  className,
@@ -463,8 +457,8 @@ const Alert = React.forwardRef<HTMLDivElement, AlertProps>(
463
457
  defaultOpen = true,
464
458
  children,
465
459
  ...props
466
- },
467
- ref
460
+ }: AlertProps,
461
+ ref: React.Ref<HTMLDivElement>
468
462
  ) => {
469
463
  const [internalOpen, setInternalOpen] = React.useState(defaultOpen);
470
464
  const isControlled = controlledOpen !== undefined;
@@ -536,10 +530,7 @@ Alert.displayName = "Alert";
536
530
  /**
537
531
  * Alert title component for the heading text.
538
532
  */
539
- const AlertTitle = React.forwardRef<
540
- HTMLHeadingElement,
541
- React.HTMLAttributes<HTMLHeadingElement>
542
- >(({ className, children, ...props }, ref) => (
533
+ const AlertTitle = React.forwardRef(({ className, children, ...props }: React.HTMLAttributes<HTMLHeadingElement>, ref: React.Ref<HTMLHeadingElement>) => (
543
534
  <h5
544
535
  ref={ref}
545
536
  className={cn("font-semibold leading-tight tracking-tight", className)}
@@ -553,10 +544,7 @@ AlertTitle.displayName = "AlertTitle";
553
544
  /**
554
545
  * Alert description component for the body text.
555
546
  */
556
- const AlertDescription = React.forwardRef<
557
- HTMLParagraphElement,
558
- React.HTMLAttributes<HTMLParagraphElement>
559
- >(({ className, ...props }, ref) => (
547
+ const AlertDescription = React.forwardRef(({ className, ...props }: React.HTMLAttributes<HTMLParagraphElement>, ref: React.Ref<HTMLParagraphElement>) => (
560
548
  <p ref={ref} className={cn("m-0 mt-1 text-sm", className)} {...props} />
561
549
  ));
562
550
  AlertDescription.displayName = "AlertDescription";
@@ -648,7 +636,7 @@ export interface AvatarProps
648
636
  * <Avatar initials="AS" size="xs" />
649
637
  * \`\`\`
650
638
  */
651
- const Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(
639
+ const Avatar = React.forwardRef(
652
640
  (
653
641
  {
654
642
  className,
@@ -661,8 +649,8 @@ const Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(
661
649
  status,
662
650
  children,
663
651
  ...props
664
- },
665
- ref
652
+ }: AvatarProps,
653
+ ref: React.Ref<HTMLDivElement>
666
654
  ) => {
667
655
  const resolvedSize = size ?? "md";
668
656
  const displayInitials = initials ?? (name ? getInitials(name) : undefined);
@@ -774,7 +762,7 @@ export interface BadgeProps
774
762
  asChild?: boolean;
775
763
  }
776
764
 
777
- const Badge = React.forwardRef<HTMLDivElement, BadgeProps>(
765
+ const Badge = React.forwardRef(
778
766
  (
779
767
  {
780
768
  className,
@@ -785,8 +773,8 @@ const Badge = React.forwardRef<HTMLDivElement, BadgeProps>(
785
773
  asChild = false,
786
774
  children,
787
775
  ...props
788
- },
789
- ref
776
+ }: BadgeProps,
777
+ ref: React.Ref<HTMLDivElement>
790
778
  ) => {
791
779
  const Comp = asChild ? Slot : "div";
792
780
 
@@ -842,12 +830,12 @@ const buttonVariants = cva(
842
830
  success:
843
831
  "bg-semantic-success-primary text-semantic-text-inverted hover:bg-semantic-success-hover",
844
832
  outline:
845
- "border border-semantic-border-layout bg-semantic-bg-primary text-semantic-text-secondary hover:bg-semantic-primary-surface",
833
+ "border border-[var(--color-neutral-300,#D5D7DA)] bg-semantic-bg-primary text-semantic-text-secondary hover:bg-semantic-primary-surface",
846
834
  secondary:
847
835
  "bg-semantic-primary-surface text-semantic-text-secondary hover:bg-semantic-bg-hover",
848
836
  ghost:
849
837
  "text-semantic-text-muted hover:bg-semantic-bg-ui hover:text-semantic-text-primary",
850
- link: "text-semantic-text-secondary underline-offset-4 hover:underline",
838
+ link: "text-semantic-text-link underline-offset-4 hover:underline",
851
839
  dashed:
852
840
  "border border-dashed border-semantic-bg-hover bg-transparent text-semantic-text-muted hover:border-semantic-border-primary hover:text-semantic-text-secondary hover:bg-[var(--color-neutral-50)]",
853
841
  },
@@ -893,7 +881,7 @@ export interface ButtonProps
893
881
  loadingText?: string;
894
882
  }
895
883
 
896
- const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
884
+ const Button = React.forwardRef(
897
885
  (
898
886
  {
899
887
  className,
@@ -907,8 +895,8 @@ const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
907
895
  children,
908
896
  disabled,
909
897
  ...props
910
- },
911
- ref
898
+ }: ButtonProps,
899
+ ref: React.Ref<HTMLButtonElement>
912
900
  ) => {
913
901
  const Comp = asChild ? Slot : "button";
914
902
 
@@ -1030,10 +1018,7 @@ export interface CheckboxProps
1030
1018
  separateLabel?: boolean;
1031
1019
  }
1032
1020
 
1033
- const Checkbox = React.forwardRef<
1034
- React.ElementRef<typeof CheckboxPrimitive.Root>,
1035
- CheckboxProps
1036
- >(
1021
+ const Checkbox = React.forwardRef(
1037
1022
  (
1038
1023
  {
1039
1024
  className,
@@ -1046,8 +1031,8 @@ const Checkbox = React.forwardRef<
1046
1031
  id,
1047
1032
  disabled,
1048
1033
  ...props
1049
- },
1050
- ref
1034
+ }: CheckboxProps,
1035
+ ref: React.Ref<React.ElementRef<typeof CheckboxPrimitive.Root>>
1051
1036
  ) => {
1052
1037
  const checkbox = (
1053
1038
  <CheckboxPrimitive.Root
@@ -1221,10 +1206,7 @@ export interface ConfirmationModalProps {
1221
1206
  * />
1222
1207
  * \`\`\`
1223
1208
  */
1224
- const ConfirmationModal = React.forwardRef<
1225
- HTMLDivElement,
1226
- ConfirmationModalProps
1227
- >(
1209
+ const ConfirmationModal = React.forwardRef(
1228
1210
  (
1229
1211
  {
1230
1212
  open,
@@ -1239,8 +1221,8 @@ const ConfirmationModal = React.forwardRef<
1239
1221
  cancelButtonText = "Cancel",
1240
1222
  trigger,
1241
1223
  className,
1242
- },
1243
- ref
1224
+ }: ConfirmationModalProps,
1225
+ ref: React.Ref<HTMLDivElement>
1244
1226
  ) => {
1245
1227
  const handleConfirm = () => {
1246
1228
  onConfirm?.();
@@ -1319,7 +1301,7 @@ export interface ContactListItemProps
1319
1301
  * />
1320
1302
  * \`\`\`
1321
1303
  */
1322
- const ContactListItem = React.forwardRef<HTMLDivElement, ContactListItemProps>(
1304
+ const ContactListItem = React.forwardRef(
1323
1305
  (
1324
1306
  {
1325
1307
  name,
@@ -1330,8 +1312,8 @@ const ContactListItem = React.forwardRef<HTMLDivElement, ContactListItemProps>(
1330
1312
  onClick,
1331
1313
  className,
1332
1314
  ...props
1333
- },
1334
- ref
1315
+ }: ContactListItemProps,
1316
+ ref: React.Ref<HTMLDivElement>
1335
1317
  ) => {
1336
1318
  return (
1337
1319
  <div
@@ -1438,10 +1420,7 @@ export interface CreatableMultiSelectProps
1438
1420
  maxLengthPerItem?: number
1439
1421
  }
1440
1422
 
1441
- const CreatableMultiSelect = React.forwardRef<
1442
- HTMLDivElement,
1443
- CreatableMultiSelectProps
1444
- >(
1423
+ const CreatableMultiSelect = React.forwardRef(
1445
1424
  (
1446
1425
  {
1447
1426
  className,
@@ -1456,8 +1435,8 @@ const CreatableMultiSelect = React.forwardRef<
1456
1435
  maxItems,
1457
1436
  maxLengthPerItem,
1458
1437
  ...props
1459
- },
1460
- ref
1438
+ }: CreatableMultiSelectProps,
1439
+ ref: React.Ref<HTMLDivElement>
1461
1440
  ) => {
1462
1441
  const [isOpen, setIsOpen] = React.useState(false)
1463
1442
  const [inputValue, setInputValue] = React.useState("")
@@ -1733,7 +1712,7 @@ export interface CreatableSelectProps
1733
1712
  maxLength?: number
1734
1713
  }
1735
1714
 
1736
- const CreatableSelect = React.forwardRef<HTMLDivElement, CreatableSelectProps>(
1715
+ const CreatableSelect = React.forwardRef(
1737
1716
  (
1738
1717
  {
1739
1718
  className,
@@ -1746,8 +1725,8 @@ const CreatableSelect = React.forwardRef<HTMLDivElement, CreatableSelectProps>(
1746
1725
  disabled = false,
1747
1726
  maxLength,
1748
1727
  ...props
1749
- },
1750
- ref
1728
+ }: CreatableSelectProps,
1729
+ ref: React.Ref<HTMLDivElement>
1751
1730
  ) => {
1752
1731
  const [open, setOpen] = React.useState(false)
1753
1732
  const [search, setSearch] = React.useState("")
@@ -2028,8 +2007,8 @@ export interface DateDividerProps
2028
2007
  children: React.ReactNode;
2029
2008
  }
2030
2009
 
2031
- const DateDivider = React.forwardRef<HTMLDivElement, DateDividerProps>(
2032
- ({ className, children, ...props }, ref) => (
2010
+ const DateDivider = React.forwardRef(
2011
+ ({ className, children, ...props }: DateDividerProps, ref: React.Ref<HTMLDivElement>) => (
2033
2012
  <div
2034
2013
  ref={ref}
2035
2014
  className={cn("flex items-center gap-4 my-4", className)}
@@ -2115,10 +2094,7 @@ export interface DeleteConfirmationModalProps {
2115
2094
  * />
2116
2095
  * \`\`\`
2117
2096
  */
2118
- const DeleteConfirmationModal = React.forwardRef<
2119
- HTMLDivElement,
2120
- DeleteConfirmationModalProps
2121
- >(
2097
+ const DeleteConfirmationModal = React.forwardRef(
2122
2098
  (
2123
2099
  {
2124
2100
  open,
@@ -2134,8 +2110,8 @@ const DeleteConfirmationModal = React.forwardRef<
2134
2110
  cancelButtonText = "Cancel",
2135
2111
  trigger,
2136
2112
  className,
2137
- },
2138
- ref
2113
+ }: DeleteConfirmationModalProps,
2114
+ ref: React.Ref<HTMLDivElement>
2139
2115
  ) => {
2140
2116
  const [inputValue, setInputValue] = React.useState("");
2141
2117
  const isConfirmEnabled = inputValue === confirmText;
@@ -2231,10 +2207,7 @@ const DialogPortal = DialogPrimitive.Portal;
2231
2207
 
2232
2208
  const DialogClose = DialogPrimitive.Close;
2233
2209
 
2234
- const DialogOverlay = React.forwardRef<
2235
- React.ElementRef<typeof DialogPrimitive.Overlay>,
2236
- React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>
2237
- >(({ className, ...props }, ref) => (
2210
+ const DialogOverlay = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>, ref: React.Ref<React.ElementRef<typeof DialogPrimitive.Overlay>>) => (
2238
2211
  <DialogPrimitive.Overlay
2239
2212
  ref={ref}
2240
2213
  className={cn(
@@ -2292,10 +2265,7 @@ const hasDialogDescription = (children: React.ReactNode): boolean => {
2292
2265
  return found;
2293
2266
  };
2294
2267
 
2295
- const DialogContent = React.forwardRef<
2296
- React.ElementRef<typeof DialogPrimitive.Content>,
2297
- DialogContentProps
2298
- >(({ className, children, size, hideCloseButton = false, ...props }, ref) => {
2268
+ const DialogContent = React.forwardRef(({ className, children, size, hideCloseButton = false, ...props }: DialogContentProps, ref: React.Ref<React.ElementRef<typeof DialogPrimitive.Content>>) => {
2299
2269
  const hasDescription = hasDialogDescription(children);
2300
2270
 
2301
2271
  return (
@@ -2353,10 +2323,7 @@ const DialogFooter = ({
2353
2323
  );
2354
2324
  DialogFooter.displayName = "DialogFooter";
2355
2325
 
2356
- const DialogTitle = React.forwardRef<
2357
- React.ElementRef<typeof DialogPrimitive.Title>,
2358
- React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>
2359
- >(({ className, ...props }, ref) => (
2326
+ const DialogTitle = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>, ref: React.Ref<React.ElementRef<typeof DialogPrimitive.Title>>) => (
2360
2327
  <DialogPrimitive.Title
2361
2328
  ref={ref}
2362
2329
  className={cn(
@@ -2368,10 +2335,7 @@ const DialogTitle = React.forwardRef<
2368
2335
  ));
2369
2336
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
2370
2337
 
2371
- const DialogDescription = React.forwardRef<
2372
- React.ElementRef<typeof DialogPrimitive.Description>,
2373
- React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>
2374
- >(({ className, ...props }, ref) => (
2338
+ const DialogDescription = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>, ref: React.Ref<React.ElementRef<typeof DialogPrimitive.Description>>) => (
2375
2339
  <DialogPrimitive.Description
2376
2340
  ref={ref}
2377
2341
  className={cn("text-sm text-muted-foreground", className)}
@@ -2402,10 +2366,7 @@ import { cn } from "@/lib/utils";
2402
2366
 
2403
2367
  const DropdownMenu = DropdownMenuPrimitive.Root;
2404
2368
 
2405
- const DropdownMenuTrigger = React.forwardRef<
2406
- React.ElementRef<typeof DropdownMenuPrimitive.Trigger>,
2407
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Trigger>
2408
- >(({ className, ...props }, ref) => (
2369
+ const DropdownMenuTrigger = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Trigger>, ref: React.Ref<React.ElementRef<typeof DropdownMenuPrimitive.Trigger>>) => (
2409
2370
  <DropdownMenuPrimitive.Trigger
2410
2371
  ref={ref}
2411
2372
  className={cn("focus-visible:outline-none focus-visible:ring-0", className)}
@@ -2422,12 +2383,9 @@ const DropdownMenuSub = DropdownMenuPrimitive.Sub;
2422
2383
 
2423
2384
  const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
2424
2385
 
2425
- const DropdownMenuSubTrigger = React.forwardRef<
2426
- React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,
2427
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {
2386
+ const DropdownMenuSubTrigger = React.forwardRef(({ className, inset, children, ...props }: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {
2428
2387
  inset?: boolean;
2429
- }
2430
- >(({ className, inset, children, ...props }, ref) => (
2388
+ }, ref: React.Ref<React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>>) => (
2431
2389
  <DropdownMenuPrimitive.SubTrigger
2432
2390
  ref={ref}
2433
2391
  className={cn(
@@ -2444,10 +2402,7 @@ const DropdownMenuSubTrigger = React.forwardRef<
2444
2402
  DropdownMenuSubTrigger.displayName =
2445
2403
  DropdownMenuPrimitive.SubTrigger.displayName;
2446
2404
 
2447
- const DropdownMenuSubContent = React.forwardRef<
2448
- React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,
2449
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>
2450
- >(({ className, ...props }, ref) => (
2405
+ const DropdownMenuSubContent = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>, ref: React.Ref<React.ElementRef<typeof DropdownMenuPrimitive.SubContent>>) => (
2451
2406
  <DropdownMenuPrimitive.SubContent
2452
2407
  ref={ref}
2453
2408
  className={cn(
@@ -2460,10 +2415,7 @@ const DropdownMenuSubContent = React.forwardRef<
2460
2415
  DropdownMenuSubContent.displayName =
2461
2416
  DropdownMenuPrimitive.SubContent.displayName;
2462
2417
 
2463
- const DropdownMenuContent = React.forwardRef<
2464
- React.ElementRef<typeof DropdownMenuPrimitive.Content>,
2465
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>
2466
- >(({ className, sideOffset = 4, ...props }, ref) => (
2418
+ const DropdownMenuContent = React.forwardRef(({ className, sideOffset = 4, ...props }: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>, ref: React.Ref<React.ElementRef<typeof DropdownMenuPrimitive.Content>>) => (
2467
2419
  <DropdownMenuPrimitive.Portal>
2468
2420
  <DropdownMenuPrimitive.Content
2469
2421
  ref={ref}
@@ -2479,20 +2431,17 @@ const DropdownMenuContent = React.forwardRef<
2479
2431
  ));
2480
2432
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
2481
2433
 
2482
- const DropdownMenuItem = React.forwardRef<
2483
- React.ElementRef<typeof DropdownMenuPrimitive.Item>,
2484
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {
2434
+ const DropdownMenuItem = React.forwardRef(({ className, inset, children, description, suffix, ...props }: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {
2485
2435
  inset?: boolean;
2486
2436
  /** Secondary text displayed below children */
2487
2437
  description?: string;
2488
2438
  /** Content displayed at the right edge of the item */
2489
2439
  suffix?: React.ReactNode;
2490
- }
2491
- >(({ className, inset, children, description, suffix, ...props }, ref) => (
2440
+ }, ref: React.Ref<React.ElementRef<typeof DropdownMenuPrimitive.Item>>) => (
2492
2441
  <DropdownMenuPrimitive.Item
2493
2442
  ref={ref}
2494
2443
  className={cn(
2495
- "relative flex cursor-pointer select-none items-center rounded-sm px-2 py-2 text-sm text-semantic-text-secondary outline-none transition-colors focus:bg-semantic-bg-ui focus:text-semantic-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
2444
+ "relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-2 text-sm text-semantic-text-secondary outline-none transition-colors focus:bg-semantic-bg-ui focus:text-semantic-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
2496
2445
  inset && "pl-8",
2497
2446
  className
2498
2447
  )}
@@ -2513,15 +2462,12 @@ const DropdownMenuItem = React.forwardRef<
2513
2462
  ));
2514
2463
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
2515
2464
 
2516
- const DropdownMenuCheckboxItem = React.forwardRef<
2517
- React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,
2518
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem> & {
2465
+ const DropdownMenuCheckboxItem = React.forwardRef(({ className, children, checked, description, suffix, ...props }: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem> & {
2519
2466
  /** Secondary text displayed below children */
2520
2467
  description?: string;
2521
2468
  /** Content displayed at the right edge of the item */
2522
2469
  suffix?: React.ReactNode;
2523
- }
2524
- >(({ className, children, checked, description, suffix, ...props }, ref) => (
2470
+ }, ref: React.Ref<React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>>) => (
2525
2471
  <DropdownMenuPrimitive.CheckboxItem
2526
2472
  ref={ref}
2527
2473
  className={cn(
@@ -2552,15 +2498,12 @@ const DropdownMenuCheckboxItem = React.forwardRef<
2552
2498
  DropdownMenuCheckboxItem.displayName =
2553
2499
  DropdownMenuPrimitive.CheckboxItem.displayName;
2554
2500
 
2555
- const DropdownMenuRadioItem = React.forwardRef<
2556
- React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,
2557
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem> & {
2501
+ const DropdownMenuRadioItem = React.forwardRef(({ className, children, description, suffix, ...props }: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem> & {
2558
2502
  /** Secondary text displayed below children */
2559
2503
  description?: string;
2560
2504
  /** Content displayed at the right edge of the item */
2561
2505
  suffix?: React.ReactNode;
2562
- }
2563
- >(({ className, children, description, suffix, ...props }, ref) => (
2506
+ }, ref: React.Ref<React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>>) => (
2564
2507
  <DropdownMenuPrimitive.RadioItem
2565
2508
  ref={ref}
2566
2509
  className={cn(
@@ -2589,12 +2532,9 @@ const DropdownMenuRadioItem = React.forwardRef<
2589
2532
  ));
2590
2533
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
2591
2534
 
2592
- const DropdownMenuLabel = React.forwardRef<
2593
- React.ElementRef<typeof DropdownMenuPrimitive.Label>,
2594
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {
2535
+ const DropdownMenuLabel = React.forwardRef(({ className, inset, ...props }: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {
2595
2536
  inset?: boolean;
2596
- }
2597
- >(({ className, inset, ...props }, ref) => (
2537
+ }, ref: React.Ref<React.ElementRef<typeof DropdownMenuPrimitive.Label>>) => (
2598
2538
  <DropdownMenuPrimitive.Label
2599
2539
  ref={ref}
2600
2540
  className={cn(
@@ -2607,10 +2547,7 @@ const DropdownMenuLabel = React.forwardRef<
2607
2547
  ));
2608
2548
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
2609
2549
 
2610
- const DropdownMenuSeparator = React.forwardRef<
2611
- React.ElementRef<typeof DropdownMenuPrimitive.Separator>,
2612
- React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>
2613
- >(({ className, ...props }, ref) => (
2550
+ const DropdownMenuSeparator = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>, ref: React.Ref<React.ElementRef<typeof DropdownMenuPrimitive.Separator>>) => (
2614
2551
  <DropdownMenuPrimitive.Separator
2615
2552
  ref={ref}
2616
2553
  className={cn("-mx-1 my-1 h-px bg-semantic-border-layout", className)}
@@ -2777,7 +2714,7 @@ export interface FormModalProps {
2777
2714
  * </FormModal>
2778
2715
  * \`\`\`
2779
2716
  */
2780
- const FormModal = React.forwardRef<HTMLDivElement, FormModalProps>(
2717
+ const FormModal = React.forwardRef(
2781
2718
  (
2782
2719
  {
2783
2720
  open,
@@ -2793,8 +2730,8 @@ const FormModal = React.forwardRef<HTMLDivElement, FormModalProps>(
2793
2730
  disableSave = false,
2794
2731
  className,
2795
2732
  size = "sm",
2796
- },
2797
- ref
2733
+ }: FormModalProps,
2734
+ ref: React.Ref<HTMLDivElement>
2798
2735
  ) => {
2799
2736
  const handleSave = () => {
2800
2737
  onSave?.();
@@ -2868,8 +2805,8 @@ export interface ImageMediaProps extends React.HTMLAttributes<HTMLDivElement> {
2868
2805
  maxHeight?: number | string;
2869
2806
  }
2870
2807
 
2871
- const ImageMedia = React.forwardRef<HTMLDivElement, ImageMediaProps>(
2872
- ({ className, src, alt = "Image", maxHeight = 280, ...props }, ref) => {
2808
+ const ImageMedia = React.forwardRef(
2809
+ ({ className, src, alt = "Image", maxHeight = 280, ...props }: ImageMediaProps, ref: React.Ref<HTMLDivElement>) => {
2873
2810
  const maxHeightStyle =
2874
2811
  typeof maxHeight === "number" ? \`\${maxHeight}px\` : maxHeight;
2875
2812
 
@@ -2904,9 +2841,9 @@ const inputVariants = cva(
2904
2841
  variants: {
2905
2842
  state: {
2906
2843
  default:
2907
- "border border-semantic-border-input hover:border-semantic-border-input-focus focus:outline-none focus:border-semantic-border-input-focus focus:shadow-[0_0_0_1px_rgba(43,188,202,0.15)]",
2844
+ "border border-semantic-border-input focus:outline-none focus:border-semantic-border-input-focus focus:shadow-[0_0_0_1px_rgba(43,188,202,0.15)]",
2908
2845
  error:
2909
- "border border-semantic-error-primary/40 hover:border-semantic-error-primary focus:outline-none focus:border-semantic-error-primary focus:shadow-[0_0_0_1px_rgba(240,68,56,0.1)]",
2846
+ "border border-semantic-error-primary/40 focus:outline-none focus:border-semantic-error-primary focus:shadow-[0_0_0_1px_rgba(240,68,56,0.1)]",
2910
2847
  },
2911
2848
  },
2912
2849
  defaultVariants: {
@@ -2933,8 +2870,8 @@ export interface InputProps
2933
2870
  showCheckIcon?: boolean;
2934
2871
  }
2935
2872
 
2936
- const Input = React.forwardRef<HTMLInputElement, InputProps>(
2937
- ({ className, state, type, showCheckIcon, onFocus, onBlur, onWheel, ...props }, ref) => {
2873
+ const Input = React.forwardRef(
2874
+ ({ className, state, type, showCheckIcon, onFocus, onBlur, onWheel, ...props }: InputProps, ref: React.Ref<HTMLInputElement>) => {
2938
2875
  const [isFocused, setIsFocused] = React.useState(false);
2939
2876
 
2940
2877
  const inputEl = (
@@ -3078,7 +3015,7 @@ export interface MultiSelectProps extends VariantProps<
3078
3015
  * />
3079
3016
  * \`\`\`
3080
3017
  */
3081
- const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(
3018
+ const MultiSelect = React.forwardRef(
3082
3019
  (
3083
3020
  {
3084
3021
  label,
@@ -3101,8 +3038,8 @@ const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(
3101
3038
  state,
3102
3039
  id,
3103
3040
  name,
3104
- },
3105
- ref
3041
+ }: MultiSelectProps,
3042
+ ref: React.Ref<HTMLButtonElement>
3106
3043
  ) => {
3107
3044
  // Internal state for selected values (uncontrolled mode)
3108
3045
  const [internalValue, setInternalValue] =
@@ -3500,7 +3437,7 @@ export interface PageHeaderProps
3500
3437
  mobileOverflowLimit?: number;
3501
3438
  }
3502
3439
 
3503
- const PageHeader = React.forwardRef<HTMLDivElement, PageHeaderProps>(
3440
+ const PageHeader = React.forwardRef(
3504
3441
  (
3505
3442
  {
3506
3443
  className,
@@ -3516,8 +3453,8 @@ const PageHeader = React.forwardRef<HTMLDivElement, PageHeaderProps>(
3516
3453
  layout = "responsive",
3517
3454
  mobileOverflowLimit = 2,
3518
3455
  ...props
3519
- },
3520
- ref
3456
+ }: PageHeaderProps,
3457
+ ref: React.Ref<HTMLDivElement>
3521
3458
  ) => {
3522
3459
  // State for overflow expansion (moved to top level)
3523
3460
  const [isOverflowExpanded, setIsOverflowExpanded] = React.useState(false);
@@ -4083,7 +4020,7 @@ export interface PanelProps
4083
4020
  * </Panel>
4084
4021
  * \`\`\`
4085
4022
  */
4086
- const Panel = React.forwardRef<HTMLElement, PanelProps>(
4023
+ const Panel = React.forwardRef(
4087
4024
  (
4088
4025
  {
4089
4026
  open = true,
@@ -4097,8 +4034,8 @@ const Panel = React.forwardRef<HTMLElement, PanelProps>(
4097
4034
  "aria-label": ariaLabel,
4098
4035
  onKeyDown,
4099
4036
  ...props
4100
- },
4101
- ref
4037
+ }: PanelProps,
4038
+ ref: React.Ref<HTMLElement>
4102
4039
  ) => {
4103
4040
  const resolvedSize = size ?? "default";
4104
4041
  const widthClass = panelWidths[resolvedSize];
@@ -4207,7 +4144,7 @@ export interface PhoneInputProps
4207
4144
  wrapperClassName?: string;
4208
4145
  }
4209
4146
 
4210
- const PhoneInput = React.forwardRef<HTMLInputElement, PhoneInputProps>(
4147
+ const PhoneInput = React.forwardRef(
4211
4148
  (
4212
4149
  {
4213
4150
  className,
@@ -4218,8 +4155,8 @@ const PhoneInput = React.forwardRef<HTMLInputElement, PhoneInputProps>(
4218
4155
  wrapperClassName,
4219
4156
  disabled,
4220
4157
  ...props
4221
- },
4222
- ref
4158
+ }: PhoneInputProps,
4159
+ ref: React.Ref<HTMLInputElement>
4223
4160
  ) => {
4224
4161
  return (
4225
4162
  <div
@@ -4318,7 +4255,7 @@ export interface ReadableFieldProps
4318
4255
  * />
4319
4256
  * \`\`\`
4320
4257
  */
4321
- export const ReadableField = React.forwardRef<HTMLDivElement, ReadableFieldProps>(
4258
+ export const ReadableField = React.forwardRef(
4322
4259
  (
4323
4260
  {
4324
4261
  label,
@@ -4330,8 +4267,8 @@ export const ReadableField = React.forwardRef<HTMLDivElement, ReadableFieldProps
4330
4267
  className,
4331
4268
  inputClassName,
4332
4269
  ...props
4333
- },
4334
- ref
4270
+ }: ReadableFieldProps,
4271
+ ref: React.Ref<HTMLDivElement>
4335
4272
  ) => {
4336
4273
  const [copied, setCopied] = React.useState(false);
4337
4274
  const [isVisible, setIsVisible] = React.useState(!secret);
@@ -4503,8 +4440,8 @@ export interface ReplyQuoteProps extends React.HTMLAttributes<HTMLDivElement> {
4503
4440
  message: string;
4504
4441
  }
4505
4442
 
4506
- const ReplyQuote = React.forwardRef<HTMLDivElement, ReplyQuoteProps>(
4507
- ({ className, sender, message, onClick, onKeyDown, role, tabIndex, "aria-label": ariaLabel, ...props }, ref) => {
4443
+ const ReplyQuote = React.forwardRef(
4444
+ ({ className, sender, message, onClick, onKeyDown, role, tabIndex, "aria-label": ariaLabel, ...props }: ReplyQuoteProps, ref: React.Ref<HTMLDivElement>) => {
4508
4445
  const isInteractive = !!onClick;
4509
4446
 
4510
4447
  const handleKeyDown = React.useCallback(
@@ -4640,7 +4577,7 @@ export interface SelectFieldProps {
4640
4577
  * />
4641
4578
  * \`\`\`
4642
4579
  */
4643
- const SelectField = React.forwardRef<HTMLButtonElement, SelectFieldProps>(
4580
+ const SelectField = React.forwardRef(
4644
4581
  (
4645
4582
  {
4646
4583
  label,
@@ -4663,8 +4600,8 @@ const SelectField = React.forwardRef<HTMLButtonElement, SelectFieldProps>(
4663
4600
  labelClassName,
4664
4601
  id,
4665
4602
  name,
4666
- },
4667
- ref
4603
+ }: SelectFieldProps,
4604
+ ref: React.Ref<HTMLButtonElement>
4668
4605
  ) => {
4669
4606
  // Internal state for search
4670
4607
  const [searchQuery, setSearchQuery] = React.useState("");
@@ -4912,10 +4849,7 @@ const Select = SelectPrimitive.Root;
4912
4849
 
4913
4850
  const SelectGroup = SelectPrimitive.Group;
4914
4851
 
4915
- const SelectValue = React.forwardRef<
4916
- React.ElementRef<typeof SelectPrimitive.Value>,
4917
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Value>
4918
- >(({ className, ...props }, ref) => (
4852
+ const SelectValue = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Value>, ref: React.Ref<React.ElementRef<typeof SelectPrimitive.Value>>) => (
4919
4853
  <SelectPrimitive.Value
4920
4854
  ref={ref}
4921
4855
  className={cn("[&[data-placeholder]]:text-semantic-text-muted", className)}
@@ -4929,10 +4863,7 @@ export interface SelectTriggerProps
4929
4863
  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>,
4930
4864
  VariantProps<typeof selectTriggerVariants> {}
4931
4865
 
4932
- const SelectTrigger = React.forwardRef<
4933
- React.ElementRef<typeof SelectPrimitive.Trigger>,
4934
- SelectTriggerProps
4935
- >(({ className, state, children, ...props }, ref) => (
4866
+ const SelectTrigger = React.forwardRef(({ className, state, children, ...props }: SelectTriggerProps, ref: React.Ref<React.ElementRef<typeof SelectPrimitive.Trigger>>) => (
4936
4867
  <SelectPrimitive.Trigger
4937
4868
  ref={ref}
4938
4869
  className={cn(selectTriggerVariants({ state, className }))}
@@ -4946,10 +4877,7 @@ const SelectTrigger = React.forwardRef<
4946
4877
  ));
4947
4878
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
4948
4879
 
4949
- const SelectScrollUpButton = React.forwardRef<
4950
- React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,
4951
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>
4952
- >(({ className, ...props }, ref) => (
4880
+ const SelectScrollUpButton = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>, ref: React.Ref<React.ElementRef<typeof SelectPrimitive.ScrollUpButton>>) => (
4953
4881
  <SelectPrimitive.ScrollUpButton
4954
4882
  ref={ref}
4955
4883
  className={cn(
@@ -4963,10 +4891,7 @@ const SelectScrollUpButton = React.forwardRef<
4963
4891
  ));
4964
4892
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
4965
4893
 
4966
- const SelectScrollDownButton = React.forwardRef<
4967
- React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,
4968
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>
4969
- >(({ className, ...props }, ref) => (
4894
+ const SelectScrollDownButton = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>, ref: React.Ref<React.ElementRef<typeof SelectPrimitive.ScrollDownButton>>) => (
4970
4895
  <SelectPrimitive.ScrollDownButton
4971
4896
  ref={ref}
4972
4897
  className={cn(
@@ -5020,10 +4945,7 @@ function useUnlockBodyScroll() {
5020
4945
  }, []);
5021
4946
  }
5022
4947
 
5023
- const SelectContent = React.forwardRef<
5024
- React.ElementRef<typeof SelectPrimitive.Content>,
5025
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>
5026
- >(({ className, children, position = "popper", ...props }, ref) => {
4948
+ const SelectContent = React.forwardRef(({ className, children, position = "popper", ...props }: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>, ref: React.Ref<React.ElementRef<typeof SelectPrimitive.Content>>) => {
5027
4949
  useUnlockBodyScroll();
5028
4950
 
5029
4951
  return (
@@ -5061,10 +4983,7 @@ const SelectContent = React.forwardRef<
5061
4983
  });
5062
4984
  SelectContent.displayName = SelectPrimitive.Content.displayName;
5063
4985
 
5064
- const SelectLabel = React.forwardRef<
5065
- React.ElementRef<typeof SelectPrimitive.Label>,
5066
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>
5067
- >(({ className, ...props }, ref) => (
4986
+ const SelectLabel = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>, ref: React.Ref<React.ElementRef<typeof SelectPrimitive.Label>>) => (
5068
4987
  <SelectPrimitive.Label
5069
4988
  ref={ref}
5070
4989
  className={cn(
@@ -5076,10 +4995,7 @@ const SelectLabel = React.forwardRef<
5076
4995
  ));
5077
4996
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
5078
4997
 
5079
- const SelectItem = React.forwardRef<
5080
- React.ElementRef<typeof SelectPrimitive.Item>,
5081
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>
5082
- >(({ className, children, ...props }, ref) => (
4998
+ const SelectItem = React.forwardRef(({ className, children, ...props }: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>, ref: React.Ref<React.ElementRef<typeof SelectPrimitive.Item>>) => (
5083
4999
  <SelectPrimitive.Item
5084
5000
  ref={ref}
5085
5001
  className={cn(
@@ -5100,10 +5016,7 @@ const SelectItem = React.forwardRef<
5100
5016
  ));
5101
5017
  SelectItem.displayName = SelectPrimitive.Item.displayName;
5102
5018
 
5103
- const SelectSeparator = React.forwardRef<
5104
- React.ElementRef<typeof SelectPrimitive.Separator>,
5105
- React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>
5106
- >(({ className, ...props }, ref) => (
5019
+ const SelectSeparator = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>, ref: React.Ref<React.ElementRef<typeof SelectPrimitive.Separator>>) => (
5107
5020
  <SelectPrimitive.Separator
5108
5021
  ref={ref}
5109
5022
  className={cn("-mx-1 my-1 h-px bg-semantic-border-layout", className)}
@@ -5181,8 +5094,8 @@ export interface SkeletonProps
5181
5094
  height?: number | string;
5182
5095
  }
5183
5096
 
5184
- const Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(
5185
- ({ className, variant, shape, width, height, style, ...props }, ref) => {
5097
+ const Skeleton = React.forwardRef(
5098
+ ({ className, variant, shape, width, height, style, ...props }: SkeletonProps, ref: React.Ref<HTMLDivElement>) => {
5186
5099
  const dimensionStyle: React.CSSProperties = {
5187
5100
  ...style,
5188
5101
  ...(width !== undefined
@@ -5268,7 +5181,7 @@ export interface SpinnerProps
5268
5181
  "aria-label"?: string;
5269
5182
  }
5270
5183
 
5271
- const Spinner = React.forwardRef<HTMLDivElement, SpinnerProps>(
5184
+ const Spinner = React.forwardRef(
5272
5185
  (
5273
5186
  {
5274
5187
  className,
@@ -5276,8 +5189,8 @@ const Spinner = React.forwardRef<HTMLDivElement, SpinnerProps>(
5276
5189
  variant,
5277
5190
  "aria-label": ariaLabel = "Loading",
5278
5191
  ...props
5279
- },
5280
- ref
5192
+ }: SpinnerProps,
5193
+ ref: React.Ref<HTMLDivElement>
5281
5194
  ) => {
5282
5195
  const strokeWidth = strokeWidths[size || "default"] ?? 3;
5283
5196
  const radius = 10;
@@ -5410,13 +5323,10 @@ export interface SwitchProps
5410
5323
  labelPosition?: "left" | "right";
5411
5324
  }
5412
5325
 
5413
- const Switch = React.forwardRef<
5414
- React.ElementRef<typeof SwitchPrimitives.Root>,
5415
- SwitchProps
5416
- >(
5326
+ const Switch = React.forwardRef(
5417
5327
  (
5418
- { className, size, label, labelPosition = "right", disabled, ...props },
5419
- ref
5328
+ { className, size, label, labelPosition = "right", disabled, ...props }: SwitchProps,
5329
+ ref: React.Ref<React.ElementRef<typeof SwitchPrimitives.Root>>
5420
5330
  ) => {
5421
5331
  const switchElement = (
5422
5332
  <SwitchPrimitives.Root
@@ -5492,8 +5402,8 @@ export interface SystemMessageProps
5492
5402
  children: string;
5493
5403
  }
5494
5404
 
5495
- const SystemMessage = React.forwardRef<HTMLDivElement, SystemMessageProps>(
5496
- ({ className, children, ...props }, ref) => (
5405
+ const SystemMessage = React.forwardRef(
5406
+ ({ className, children, ...props }: SystemMessageProps, ref: React.Ref<HTMLDivElement>) => (
5497
5407
  <div
5498
5408
  ref={ref}
5499
5409
  className={cn("flex justify-center my-1", className)}
@@ -5571,8 +5481,8 @@ export interface TableProps
5571
5481
  wrapContent?: boolean;
5572
5482
  }
5573
5483
 
5574
- const Table = React.forwardRef<HTMLTableElement, TableProps>(
5575
- ({ className, size, withoutBorder, wrapContent, ...props }, ref) => (
5484
+ const Table = React.forwardRef(
5485
+ ({ className, size, withoutBorder, wrapContent, ...props }: TableProps, ref: React.Ref<HTMLTableElement>) => (
5576
5486
  <div
5577
5487
  className={cn(
5578
5488
  "relative w-full overflow-auto",
@@ -5593,10 +5503,7 @@ const Table = React.forwardRef<HTMLTableElement, TableProps>(
5593
5503
  );
5594
5504
  Table.displayName = "Table";
5595
5505
 
5596
- const TableHeader = React.forwardRef<
5597
- HTMLTableSectionElement,
5598
- React.HTMLAttributes<HTMLTableSectionElement>
5599
- >(({ className, ...props }, ref) => (
5506
+ const TableHeader = React.forwardRef(({ className, ...props }: React.HTMLAttributes<HTMLTableSectionElement>, ref: React.Ref<HTMLTableSectionElement>) => (
5600
5507
  <thead
5601
5508
  ref={ref}
5602
5509
  className={cn("bg-[var(--color-neutral-100)] [&_tr]:border-b", className)}
@@ -5615,8 +5522,8 @@ export interface TableBodyProps
5615
5522
  loadingColumns?: number;
5616
5523
  }
5617
5524
 
5618
- const TableBody = React.forwardRef<HTMLTableSectionElement, TableBodyProps>(
5619
- ({ className, isLoading, loadingRows = 5, loadingColumns = 5, children, ...props }, ref) => (
5525
+ const TableBody = React.forwardRef(
5526
+ ({ className, isLoading, loadingRows = 5, loadingColumns = 5, children, ...props }: TableBodyProps, ref: React.Ref<HTMLTableSectionElement>) => (
5620
5527
  <tbody
5621
5528
  ref={ref}
5622
5529
  className={cn("[&_tr:last-child]:border-0", className)}
@@ -5632,10 +5539,7 @@ const TableBody = React.forwardRef<HTMLTableSectionElement, TableBodyProps>(
5632
5539
  );
5633
5540
  TableBody.displayName = "TableBody";
5634
5541
 
5635
- const TableFooter = React.forwardRef<
5636
- HTMLTableSectionElement,
5637
- React.HTMLAttributes<HTMLTableSectionElement>
5638
- >(({ className, ...props }, ref) => (
5542
+ const TableFooter = React.forwardRef(({ className, ...props }: React.HTMLAttributes<HTMLTableSectionElement>, ref: React.Ref<HTMLTableSectionElement>) => (
5639
5543
  <tfoot
5640
5544
  ref={ref}
5641
5545
  className={cn(
@@ -5652,8 +5556,8 @@ export interface TableRowProps extends React.HTMLAttributes<HTMLTableRowElement>
5652
5556
  highlighted?: boolean;
5653
5557
  }
5654
5558
 
5655
- const TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(
5656
- ({ className, highlighted, ...props }, ref) => (
5559
+ const TableRow = React.forwardRef(
5560
+ ({ className, highlighted, ...props }: TableRowProps, ref: React.Ref<HTMLTableRowElement>) => (
5657
5561
  <tr
5658
5562
  ref={ref}
5659
5563
  className={cn(
@@ -5678,10 +5582,10 @@ export interface TableHeadProps extends React.ThHTMLAttributes<HTMLTableCellElem
5678
5582
  infoTooltip?: string;
5679
5583
  }
5680
5584
 
5681
- const TableHead = React.forwardRef<HTMLTableCellElement, TableHeadProps>(
5585
+ const TableHead = React.forwardRef(
5682
5586
  (
5683
- { className, sticky, sortDirection, infoTooltip, children, ...props },
5684
- ref
5587
+ { className, sticky, sortDirection, infoTooltip, children, ...props }: TableHeadProps,
5588
+ ref: React.Ref<HTMLTableCellElement>
5685
5589
  ) => (
5686
5590
  <th
5687
5591
  ref={ref}
@@ -5719,8 +5623,8 @@ export interface TableCellProps extends React.TdHTMLAttributes<HTMLTableCellElem
5719
5623
  sticky?: boolean;
5720
5624
  }
5721
5625
 
5722
- const TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(
5723
- ({ className, sticky, ...props }, ref) => (
5626
+ const TableCell = React.forwardRef(
5627
+ ({ className, sticky, ...props }: TableCellProps, ref: React.Ref<HTMLTableCellElement>) => (
5724
5628
  <td
5725
5629
  ref={ref}
5726
5630
  className={cn(
@@ -5734,10 +5638,7 @@ const TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(
5734
5638
  );
5735
5639
  TableCell.displayName = "TableCell";
5736
5640
 
5737
- const TableCaption = React.forwardRef<
5738
- HTMLTableCaptionElement,
5739
- React.HTMLAttributes<HTMLTableCaptionElement>
5740
- >(({ className, ...props }, ref) => (
5641
+ const TableCaption = React.forwardRef(({ className, ...props }: React.HTMLAttributes<HTMLTableCaptionElement>, ref: React.Ref<HTMLTableCaptionElement>) => (
5741
5642
  <caption
5742
5643
  ref={ref}
5743
5644
  className={cn("mt-4 text-sm text-semantic-text-muted", className)}
@@ -5826,8 +5727,8 @@ export interface TableToggleProps extends Omit<SwitchProps, "size"> {
5826
5727
  size?: "sm" | "default";
5827
5728
  }
5828
5729
 
5829
- const TableToggle = React.forwardRef<HTMLButtonElement, TableToggleProps>(
5830
- ({ size = "sm", ...props }, ref) => (
5730
+ const TableToggle = React.forwardRef(
5731
+ ({ size = "sm", ...props }: TableToggleProps, ref: React.Ref<HTMLButtonElement>) => (
5831
5732
  <Switch ref={ref} size={size} {...props} />
5832
5733
  )
5833
5734
  );
@@ -5877,10 +5778,7 @@ export interface TabsListProps
5877
5778
  fullWidth?: boolean
5878
5779
  }
5879
5780
 
5880
- const TabsList = React.forwardRef<
5881
- React.ComponentRef<typeof TabsPrimitive.List>,
5882
- TabsListProps
5883
- >(({ className, fullWidth, ...props }, ref) => (
5781
+ const TabsList = React.forwardRef(({ className, fullWidth, ...props }: TabsListProps, ref: React.Ref<React.ComponentRef<typeof TabsPrimitive.List>>) => (
5884
5782
  <TabsPrimitive.List
5885
5783
  ref={ref}
5886
5784
  className={cn(
@@ -5893,10 +5791,7 @@ const TabsList = React.forwardRef<
5893
5791
  ))
5894
5792
  TabsList.displayName = TabsPrimitive.List.displayName
5895
5793
 
5896
- const TabsTrigger = React.forwardRef<
5897
- React.ComponentRef<typeof TabsPrimitive.Trigger>,
5898
- React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>
5899
- >(({ className, ...props }, ref) => (
5794
+ const TabsTrigger = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>, ref: React.Ref<React.ComponentRef<typeof TabsPrimitive.Trigger>>) => (
5900
5795
  <TabsPrimitive.Trigger
5901
5796
  ref={ref}
5902
5797
  className={cn(
@@ -5911,10 +5806,7 @@ const TabsTrigger = React.forwardRef<
5911
5806
  ))
5912
5807
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName
5913
5808
 
5914
- const TabsContent = React.forwardRef<
5915
- React.ComponentRef<typeof TabsPrimitive.Content>,
5916
- React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>
5917
- >(({ className, ...props }, ref) => (
5809
+ const TabsContent = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>, ref: React.Ref<React.ComponentRef<typeof TabsPrimitive.Content>>) => (
5918
5810
  <TabsPrimitive.Content
5919
5811
  ref={ref}
5920
5812
  className={cn(
@@ -5978,8 +5870,8 @@ export interface TagProps
5978
5870
  label?: string;
5979
5871
  }
5980
5872
 
5981
- const Tag = React.forwardRef<HTMLSpanElement, TagProps>(
5982
- ({ className, variant, size, label, children, ...props }, ref) => {
5873
+ const Tag = React.forwardRef(
5874
+ ({ className, variant, size, label, children, ...props }: TagProps, ref: React.Ref<HTMLSpanElement>) => {
5983
5875
  return (
5984
5876
  <span
5985
5877
  className={cn(tagVariants({ variant, size, className }))}
@@ -5987,7 +5879,7 @@ const Tag = React.forwardRef<HTMLSpanElement, TagProps>(
5987
5879
  {...props}
5988
5880
  >
5989
5881
  {label && <span className="font-semibold mr-1">{label}</span>}
5990
- <span className="font-normal">{children}</span>
5882
+ <span className="font-normal inline-flex items-center gap-1">{children}</span>
5991
5883
  </span>
5992
5884
  );
5993
5885
  }
@@ -6064,16 +5956,7 @@ TagGroup.displayName = "TagGroup";
6064
5956
 
6065
5957
  export { Tag, TagGroup, tagVariants };
6066
5958
  `,
6067
- "text-field": `import {
6068
- forwardRef,
6069
- useRef,
6070
- useCallback,
6071
- useState,
6072
- useId,
6073
- type ChangeEvent,
6074
- type ReactNode,
6075
- type ComponentProps,
6076
- } from "react";
5959
+ "text-field": `import * as React from "react";
6077
5960
  import { cva, type VariantProps } from "class-variance-authority";
6078
5961
  import { Loader2, X } from "lucide-react";
6079
5962
 
@@ -6088,9 +5971,9 @@ const textFieldContainerVariants = cva(
6088
5971
  variants: {
6089
5972
  state: {
6090
5973
  default:
6091
- "border border-semantic-border-input focus-within:border-semantic-border-input-focus/50 focus-within:shadow-[0_0_0_1px_rgba(43,188,202,0.15)]",
5974
+ "border border-semantic-border-input focus-within:border-semantic-border-input-focus focus-within:shadow-[0_0_0_1px_rgba(43,188,202,0.15)]",
6092
5975
  error:
6093
- "border border-semantic-error-primary/40 focus-within:border-semantic-error-primary/60 focus-within:shadow-[0_0_0_1px_rgba(240,68,56,0.1)]",
5976
+ "border border-semantic-error-primary/40 focus-within:border-semantic-error-primary focus-within:shadow-[0_0_0_1px_rgba(240,68,56,0.1)]",
6094
5977
  },
6095
5978
  disabled: {
6096
5979
  true: "cursor-not-allowed opacity-50 bg-[var(--color-neutral-50)]",
@@ -6113,9 +5996,9 @@ const textFieldInputVariants = cva(
6113
5996
  variants: {
6114
5997
  state: {
6115
5998
  default:
6116
- "border border-semantic-border-input focus:outline-none focus:border-semantic-border-input-focus/50 focus:shadow-[0_0_0_1px_rgba(43,188,202,0.15)]",
5999
+ "border border-semantic-border-input focus:outline-none focus:border-semantic-border-input-focus focus:shadow-[0_0_0_1px_rgba(43,188,202,0.15)]",
6117
6000
  error:
6118
- "border border-semantic-error-primary/40 focus:outline-none focus:border-semantic-error-primary/60 focus:shadow-[0_0_0_1px_rgba(240,68,56,0.1)]",
6001
+ "border border-semantic-error-primary/40 focus:outline-none focus:border-semantic-error-primary focus:shadow-[0_0_0_1px_rgba(240,68,56,0.1)]",
6119
6002
  },
6120
6003
  size: {
6121
6004
  default: "h-[42px] px-4 py-2 text-base file:text-base",
@@ -6141,7 +6024,7 @@ const textFieldInputVariants = cva(
6141
6024
  */
6142
6025
  export interface TextFieldProps
6143
6026
  extends
6144
- Omit<ComponentProps<"input">, "size">,
6027
+ Omit<React.ComponentProps<"input">, "size">,
6145
6028
  VariantProps<typeof textFieldInputVariants> {
6146
6029
  /** Size of the text field \u2014 \`default\` (42px) or \`sm\` (36px, compact) */
6147
6030
  size?: "default" | "sm";
@@ -6154,9 +6037,9 @@ export interface TextFieldProps
6154
6037
  /** Error message - shows error state with red styling */
6155
6038
  error?: string;
6156
6039
  /** Icon displayed on the left inside the input */
6157
- leftIcon?: ReactNode;
6040
+ leftIcon?: React.ReactNode;
6158
6041
  /** Icon displayed on the right inside the input */
6159
- rightIcon?: ReactNode;
6042
+ rightIcon?: React.ReactNode;
6160
6043
  /** Text prefix inside input (e.g., "https://") */
6161
6044
  prefix?: string;
6162
6045
  /** Text suffix inside input (e.g., ".com") */
@@ -6177,7 +6060,7 @@ export interface TextFieldProps
6177
6060
  inputContainerClassName?: string;
6178
6061
  }
6179
6062
 
6180
- const TextField = forwardRef<HTMLInputElement, TextFieldProps>(
6063
+ const TextField = React.forwardRef(
6181
6064
  (
6182
6065
  {
6183
6066
  className,
@@ -6207,22 +6090,22 @@ const TextField = forwardRef<HTMLInputElement, TextFieldProps>(
6207
6090
  id,
6208
6091
  type,
6209
6092
  ...props
6210
- },
6211
- ref
6093
+ }: TextFieldProps,
6094
+ ref: React.ForwardedRef<HTMLInputElement>
6212
6095
  ) => {
6213
6096
  // Internal ref for programmatic control (e.g., clearable)
6214
- const internalRef = useRef<HTMLInputElement>(null);
6215
- const mergedRef = useCallback(
6097
+ const internalRef = React.useRef<HTMLInputElement | null>(null);
6098
+ const mergedRef = React.useCallback(
6216
6099
  (node: HTMLInputElement | null) => {
6217
6100
  internalRef.current = node;
6218
6101
  if (typeof ref === "function") ref(node);
6219
- else if (ref) ref.current = node;
6102
+ else if (ref && typeof ref === "object") ref.current = node;
6220
6103
  },
6221
6104
  [ref]
6222
6105
  );
6223
6106
 
6224
6107
  // Internal state for character count in uncontrolled mode
6225
- const [internalValue, setInternalValue] = useState(
6108
+ const [internalValue, setInternalValue] = React.useState(
6226
6109
  defaultValue ?? ""
6227
6110
  );
6228
6111
 
@@ -6234,7 +6117,7 @@ const TextField = forwardRef<HTMLInputElement, TextFieldProps>(
6234
6117
  const derivedState = error ? "error" : (state ?? "default");
6235
6118
 
6236
6119
  // Handle change for both controlled and uncontrolled
6237
- const handleChange = (e: ChangeEvent<HTMLInputElement>) => {
6120
+ const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
6238
6121
  if (!isControlled) {
6239
6122
  setInternalValue(e.target.value);
6240
6123
  }
@@ -6261,7 +6144,7 @@ const TextField = forwardRef<HTMLInputElement, TextFieldProps>(
6261
6144
  const charCount = String(currentValue).length;
6262
6145
 
6263
6146
  // Generate unique IDs for accessibility
6264
- const generatedId = useId();
6147
+ const generatedId = React.useId();
6265
6148
  const inputId = id || generatedId;
6266
6149
  const helperId = \`\${inputId}-helper\`;
6267
6150
  const errorId = \`\${inputId}-error\`;
@@ -6380,12 +6263,12 @@ const TextField = forwardRef<HTMLInputElement, TextFieldProps>(
6380
6263
  {error ? (
6381
6264
  <span
6382
6265
  id={errorId}
6383
- className="text-xs text-semantic-error-primary"
6266
+ className="text-sm text-semantic-error-primary"
6384
6267
  >
6385
6268
  {error}
6386
6269
  </span>
6387
6270
  ) : helperText ? (
6388
- <span id={helperId} className="text-xs text-semantic-text-muted">
6271
+ <span id={helperId} className="text-sm text-semantic-text-muted">
6389
6272
  {helperText}
6390
6273
  </span>
6391
6274
  ) : (
@@ -6394,7 +6277,7 @@ const TextField = forwardRef<HTMLInputElement, TextFieldProps>(
6394
6277
  {showCount && maxLength && (
6395
6278
  <span
6396
6279
  className={cn(
6397
- "text-xs",
6280
+ "text-sm",
6398
6281
  charCount > maxLength
6399
6282
  ? "text-semantic-error-primary"
6400
6283
  : "text-semantic-text-muted"
@@ -6412,6 +6295,210 @@ const TextField = forwardRef<HTMLInputElement, TextFieldProps>(
6412
6295
  TextField.displayName = "TextField";
6413
6296
 
6414
6297
  export { TextField, textFieldContainerVariants, textFieldInputVariants };
6298
+ `,
6299
+ "textarea": `import * as React from "react";
6300
+ import { cva, type VariantProps } from "class-variance-authority";
6301
+
6302
+ import { cn } from "@/lib/utils";
6303
+
6304
+ /**
6305
+ * Textarea variants for different visual states
6306
+ */
6307
+ const textareaVariants = cva(
6308
+ "w-full rounded bg-semantic-bg-primary text-semantic-text-primary outline-none transition-all placeholder:text-semantic-text-placeholder disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-[var(--color-neutral-50)]",
6309
+ {
6310
+ variants: {
6311
+ state: {
6312
+ default:
6313
+ "border border-semantic-border-input focus:outline-none focus:border-semantic-border-input-focus focus:shadow-[0_0_0_1px_rgba(43,188,202,0.15)]",
6314
+ error:
6315
+ "border border-semantic-error-primary/40 focus:outline-none focus:border-semantic-error-primary focus:shadow-[0_0_0_1px_rgba(240,68,56,0.1)]",
6316
+ },
6317
+ size: {
6318
+ default: "px-4 py-2.5 text-base",
6319
+ sm: "px-3 py-2 text-sm",
6320
+ },
6321
+ },
6322
+ defaultVariants: {
6323
+ state: "default",
6324
+ size: "default",
6325
+ },
6326
+ }
6327
+ );
6328
+
6329
+ /**
6330
+ * A multi-line text input with label, error state, helper text, character counter, and resize control.
6331
+ *
6332
+ * @example
6333
+ * \`\`\`tsx
6334
+ * <Textarea label="Description" placeholder="Enter description" />
6335
+ * <Textarea label="Notes" error="Too short" showCount maxLength={500} />
6336
+ * <Textarea label="JSON" rows={8} resize="vertical" />
6337
+ * \`\`\`
6338
+ */
6339
+ export interface TextareaProps
6340
+ extends Omit<React.ComponentProps<"textarea">, "size">,
6341
+ VariantProps<typeof textareaVariants> {
6342
+ /** Size of the textarea \u2014 \`default\` or \`sm\` (compact) */
6343
+ size?: "default" | "sm";
6344
+ /** Label text displayed above the textarea */
6345
+ label?: string;
6346
+ /** Shows red asterisk next to label when true */
6347
+ required?: boolean;
6348
+ /** Helper text displayed below the textarea */
6349
+ helperText?: string;
6350
+ /** Error message \u2014 shows error state with red styling */
6351
+ error?: string;
6352
+ /** Shows character count when maxLength is set */
6353
+ showCount?: boolean;
6354
+ /** Controls CSS resize behavior. Defaults to "none" */
6355
+ resize?: "none" | "vertical" | "horizontal" | "both";
6356
+ /** Additional class for the wrapper container */
6357
+ wrapperClassName?: string;
6358
+ /** Additional class for the label */
6359
+ labelClassName?: string;
6360
+ }
6361
+
6362
+ const Textarea = React.forwardRef(
6363
+ (
6364
+ {
6365
+ className,
6366
+ wrapperClassName,
6367
+ labelClassName,
6368
+ state,
6369
+ size,
6370
+ label,
6371
+ required,
6372
+ helperText,
6373
+ error,
6374
+ showCount,
6375
+ resize = "none",
6376
+ maxLength,
6377
+ rows = 4,
6378
+ value,
6379
+ defaultValue,
6380
+ onChange,
6381
+ disabled,
6382
+ id,
6383
+ ...props
6384
+ }: TextareaProps,
6385
+ ref: React.ForwardedRef<HTMLTextAreaElement>
6386
+ ) => {
6387
+ // Internal state for character count in uncontrolled mode
6388
+ const [internalValue, setInternalValue] = React.useState(
6389
+ defaultValue ?? ""
6390
+ );
6391
+
6392
+ // Determine if controlled
6393
+ const isControlled = value !== undefined;
6394
+ const currentValue = isControlled ? value : internalValue;
6395
+
6396
+ // Derive state from props
6397
+ const derivedState = error ? "error" : (state ?? "default");
6398
+
6399
+ // Handle change for both controlled and uncontrolled
6400
+ const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {
6401
+ if (!isControlled) {
6402
+ setInternalValue(e.target.value);
6403
+ }
6404
+ onChange?.(e);
6405
+ };
6406
+
6407
+ // Character count
6408
+ const charCount = String(currentValue).length;
6409
+
6410
+ // Generate unique IDs for accessibility
6411
+ const generatedId = React.useId();
6412
+ const textareaId = id || generatedId;
6413
+ const helperId = \`\${textareaId}-helper\`;
6414
+ const errorId = \`\${textareaId}-error\`;
6415
+
6416
+ // Determine aria-describedby
6417
+ const ariaDescribedBy = error ? errorId : helperText ? helperId : undefined;
6418
+
6419
+ // Resize class map
6420
+ const resizeClasses: Record<string, string> = {
6421
+ none: "resize-none",
6422
+ vertical: "resize-y",
6423
+ horizontal: "resize-x",
6424
+ both: "resize",
6425
+ };
6426
+
6427
+ return (
6428
+ <div className={cn("flex flex-col gap-1", wrapperClassName)}>
6429
+ {/* Label */}
6430
+ {label && (
6431
+ <label
6432
+ htmlFor={textareaId}
6433
+ className={cn(
6434
+ "text-sm font-medium text-semantic-text-muted",
6435
+ labelClassName
6436
+ )}
6437
+ >
6438
+ {label}
6439
+ {required && (
6440
+ <span className="text-semantic-error-primary ml-0.5">*</span>
6441
+ )}
6442
+ </label>
6443
+ )}
6444
+
6445
+ {/* Textarea */}
6446
+ <textarea
6447
+ ref={ref}
6448
+ id={textareaId}
6449
+ rows={rows}
6450
+ className={cn(
6451
+ textareaVariants({ state: derivedState, size, className }),
6452
+ resizeClasses[resize]
6453
+ )}
6454
+ disabled={disabled}
6455
+ maxLength={maxLength}
6456
+ value={isControlled ? value : undefined}
6457
+ defaultValue={!isControlled ? defaultValue : undefined}
6458
+ onChange={handleChange}
6459
+ aria-invalid={!!error}
6460
+ aria-describedby={ariaDescribedBy}
6461
+ {...props}
6462
+ />
6463
+
6464
+ {/* Helper text / Error message / Character count */}
6465
+ {(error || helperText || (showCount && maxLength)) && (
6466
+ <div className="flex justify-between items-start gap-2">
6467
+ {error ? (
6468
+ <span
6469
+ id={errorId}
6470
+ className="text-sm text-semantic-error-primary"
6471
+ >
6472
+ {error}
6473
+ </span>
6474
+ ) : helperText ? (
6475
+ <span id={helperId} className="text-sm text-semantic-text-muted">
6476
+ {helperText}
6477
+ </span>
6478
+ ) : (
6479
+ <span />
6480
+ )}
6481
+ {showCount && maxLength && (
6482
+ <span
6483
+ className={cn(
6484
+ "text-sm",
6485
+ charCount > maxLength
6486
+ ? "text-semantic-error-primary"
6487
+ : "text-semantic-text-muted"
6488
+ )}
6489
+ >
6490
+ {charCount}/{maxLength}
6491
+ </span>
6492
+ )}
6493
+ </div>
6494
+ )}
6495
+ </div>
6496
+ );
6497
+ }
6498
+ );
6499
+ Textarea.displayName = "Textarea";
6500
+
6501
+ export { Textarea, textareaVariants };
6415
6502
  `,
6416
6503
  "toast": `import * as React from "react";
6417
6504
  import * as ToastPrimitives from "@radix-ui/react-toast";
@@ -6422,10 +6509,7 @@ import { cn } from "@/lib/utils";
6422
6509
 
6423
6510
  const ToastProvider = ToastPrimitives.Provider;
6424
6511
 
6425
- const ToastViewport = React.forwardRef<
6426
- React.ElementRef<typeof ToastPrimitives.Viewport>,
6427
- React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>
6428
- >(({ className, ...props }, ref) => (
6512
+ const ToastViewport = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>, ref: React.Ref<React.ElementRef<typeof ToastPrimitives.Viewport>>) => (
6429
6513
  <ToastPrimitives.Viewport
6430
6514
  ref={ref}
6431
6515
  className={cn(
@@ -6459,11 +6543,8 @@ const toastVariants = cva(
6459
6543
  }
6460
6544
  );
6461
6545
 
6462
- const Toast = React.forwardRef<
6463
- React.ElementRef<typeof ToastPrimitives.Root>,
6464
- React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> &
6465
- VariantProps<typeof toastVariants>
6466
- >(({ className, variant, ...props }, ref) => {
6546
+ const Toast = React.forwardRef(({ className, variant, ...props }: React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> &
6547
+ VariantProps<typeof toastVariants>, ref: React.Ref<React.ElementRef<typeof ToastPrimitives.Root>>) => {
6467
6548
  return (
6468
6549
  <ToastPrimitives.Root
6469
6550
  ref={ref}
@@ -6474,10 +6555,7 @@ const Toast = React.forwardRef<
6474
6555
  });
6475
6556
  Toast.displayName = ToastPrimitives.Root.displayName;
6476
6557
 
6477
- const ToastAction = React.forwardRef<
6478
- React.ElementRef<typeof ToastPrimitives.Action>,
6479
- React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>
6480
- >(({ className, ...props }, ref) => (
6558
+ const ToastAction = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>, ref: React.Ref<React.ElementRef<typeof ToastPrimitives.Action>>) => (
6481
6559
  <ToastPrimitives.Action
6482
6560
  ref={ref}
6483
6561
  className={cn(
@@ -6493,10 +6571,7 @@ const ToastAction = React.forwardRef<
6493
6571
  ));
6494
6572
  ToastAction.displayName = ToastPrimitives.Action.displayName;
6495
6573
 
6496
- const ToastClose = React.forwardRef<
6497
- React.ElementRef<typeof ToastPrimitives.Close>,
6498
- React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>
6499
- >(({ className, ...props }, ref) => (
6574
+ const ToastClose = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>, ref: React.Ref<React.ElementRef<typeof ToastPrimitives.Close>>) => (
6500
6575
  <ToastPrimitives.Close
6501
6576
  ref={ref}
6502
6577
  className={cn(
@@ -6511,10 +6586,7 @@ const ToastClose = React.forwardRef<
6511
6586
  ));
6512
6587
  ToastClose.displayName = ToastPrimitives.Close.displayName;
6513
6588
 
6514
- const ToastTitle = React.forwardRef<
6515
- React.ElementRef<typeof ToastPrimitives.Title>,
6516
- React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>
6517
- >(({ className, ...props }, ref) => (
6589
+ const ToastTitle = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>, ref: React.Ref<React.ElementRef<typeof ToastPrimitives.Title>>) => (
6518
6590
  <ToastPrimitives.Title
6519
6591
  ref={ref}
6520
6592
  className={cn("text-sm font-semibold tracking-[0.014px]", className)}
@@ -6523,10 +6595,7 @@ const ToastTitle = React.forwardRef<
6523
6595
  ));
6524
6596
  ToastTitle.displayName = ToastPrimitives.Title.displayName;
6525
6597
 
6526
- const ToastDescription = React.forwardRef<
6527
- React.ElementRef<typeof ToastPrimitives.Description>,
6528
- React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>
6529
- >(({ className, ...props }, ref) => (
6598
+ const ToastDescription = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>, ref: React.Ref<React.ElementRef<typeof ToastPrimitives.Description>>) => (
6530
6599
  <ToastPrimitives.Description
6531
6600
  ref={ref}
6532
6601
  className={cn("text-xs tracking-[0.048px]", className)}
@@ -6911,10 +6980,7 @@ const Tooltip = TooltipPrimitive.Root;
6911
6980
 
6912
6981
  const TooltipTrigger = TooltipPrimitive.Trigger;
6913
6982
 
6914
- const TooltipContent = React.forwardRef<
6915
- React.ElementRef<typeof TooltipPrimitive.Content>,
6916
- React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>
6917
- >(({ className, sideOffset = 4, ...props }, ref) => (
6983
+ const TooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props }: React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>, ref: React.Ref<React.ElementRef<typeof TooltipPrimitive.Content>>) => (
6918
6984
  <TooltipPrimitive.Portal>
6919
6985
  <TooltipPrimitive.Content
6920
6986
  ref={ref}
@@ -6929,10 +6995,7 @@ const TooltipContent = React.forwardRef<
6929
6995
  ));
6930
6996
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
6931
6997
 
6932
- const TooltipArrow = React.forwardRef<
6933
- React.ElementRef<typeof TooltipPrimitive.Arrow>,
6934
- React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow>
6935
- >(({ className, ...props }, ref) => (
6998
+ const TooltipArrow = React.forwardRef(({ className, ...props }: React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow>, ref: React.Ref<React.ElementRef<typeof TooltipPrimitive.Arrow>>) => (
6936
6999
  <TooltipPrimitive.Arrow
6937
7000
  ref={ref}
6938
7001
  className={cn("fill-semantic-primary", className)}
@@ -7084,7 +7147,7 @@ export interface TypographyProps extends React.HTMLAttributes<HTMLElement> {
7084
7147
  * <Typography truncate>Very long text that will be truncated...</Typography>
7085
7148
  * \`\`\`
7086
7149
  */
7087
- const Typography = React.forwardRef<HTMLElement, TypographyProps>(
7150
+ const Typography = React.forwardRef(
7088
7151
  (
7089
7152
  {
7090
7153
  children,
@@ -7097,8 +7160,8 @@ const Typography = React.forwardRef<HTMLElement, TypographyProps>(
7097
7160
  tag,
7098
7161
  htmlFor,
7099
7162
  ...props
7100
- },
7101
- ref
7163
+ }: TypographyProps,
7164
+ ref: React.Ref<HTMLElement>
7102
7165
  ) => {
7103
7166
  const key: Key = \`\${kind}-\${variant}\`;
7104
7167
  const Tag = (tag || mapTagName[key]) as React.ElementType;
@@ -7159,8 +7222,8 @@ export interface UnreadSeparatorProps
7159
7222
  label?: string;
7160
7223
  }
7161
7224
 
7162
- const UnreadSeparator = React.forwardRef<HTMLDivElement, UnreadSeparatorProps>(
7163
- ({ className, count, label, ...props }, ref) => (
7225
+ const UnreadSeparator = React.forwardRef(
7226
+ ({ className, count, label, ...props }: UnreadSeparatorProps, ref: React.Ref<HTMLDivElement>) => (
7164
7227
  <div
7165
7228
  ref={ref}
7166
7229
  className={cn("flex items-center gap-4 my-2", className)}
@@ -8462,6 +8525,24 @@ var componentMetadata = {
8462
8525
  }
8463
8526
  ]
8464
8527
  },
8528
+ "textarea": {
8529
+ "name": "Textarea",
8530
+ "description": "A textarea component.",
8531
+ "dependencies": [
8532
+ "class-variance-authority",
8533
+ "clsx",
8534
+ "tailwind-merge"
8535
+ ],
8536
+ "props": [],
8537
+ "variants": [],
8538
+ "examples": [
8539
+ {
8540
+ "title": "Basic Textarea",
8541
+ "code": "<Textarea>Content</Textarea>",
8542
+ "description": "Simple textarea usage"
8543
+ }
8544
+ ]
8545
+ },
8465
8546
  "toast": {
8466
8547
  "name": "Toast",
8467
8548
  "description": "A toast component.",