@codapet/design-system 0.1.9 → 0.2.1

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.d.mts CHANGED
@@ -288,7 +288,12 @@ declare function InputOTPSlot({ index, className, ...props }: React$1.ComponentP
288
288
  }): react_jsx_runtime.JSX.Element;
289
289
  declare function InputOTPSeparator({ ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
290
290
 
291
- declare function Label({ className, ...props }: React$1.ComponentProps<typeof LabelPrimitive.Root>): react_jsx_runtime.JSX.Element;
291
+ declare const labelTextVariants: (props?: ({
292
+ size?: "md" | "sm" | "lg" | "xs" | null | undefined;
293
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
294
+ declare function Label({ className, size, asChild, ...props }: React$1.ComponentProps<'label'> & VariantProps<typeof labelTextVariants> & {
295
+ asChild?: boolean;
296
+ }): react_jsx_runtime.JSX.Element;
292
297
 
293
298
  declare function Menubar({ className, ...props }: React$1.ComponentProps<typeof MenubarPrimitive.Root>): react_jsx_runtime.JSX.Element;
294
299
  declare function MenubarMenu({ ...props }: React$1.ComponentProps<typeof MenubarPrimitive.Menu>): react_jsx_runtime.JSX.Element;
@@ -483,8 +488,39 @@ declare function Toggle({ className, variant, size, ...props }: React$1.Componen
483
488
  declare function ToggleGroup({ className, variant, size, children, ...props }: React$1.ComponentProps<typeof ToggleGroupPrimitive.Root> & VariantProps<typeof toggleVariants>): react_jsx_runtime.JSX.Element;
484
489
  declare function ToggleGroupItem({ className, children, variant, size, ...props }: React$1.ComponentProps<typeof ToggleGroupPrimitive.Item> & VariantProps<typeof toggleVariants>): react_jsx_runtime.JSX.Element;
485
490
 
491
+ declare const displayTextVariants: (props?: ({
492
+ size?: "md" | "sm" | "lg" | null | undefined;
493
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
494
+ declare function DisplayHeading({ className, size, asChild, ...props }: React$1.ComponentProps<'h1'> & VariantProps<typeof displayTextVariants> & {
495
+ asChild?: boolean;
496
+ }): react_jsx_runtime.JSX.Element;
497
+ declare const bodyTextVariants: (props?: ({
498
+ size?: "md" | "sm" | "lg" | "xs" | null | undefined;
499
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
500
+ declare function Body({ className, size, asChild, ...props }: React$1.ComponentProps<'h1'> & VariantProps<typeof bodyTextVariants> & {
501
+ asChild?: boolean;
502
+ }): react_jsx_runtime.JSX.Element;
503
+ declare function HeadingXL({ className, asChild, ...props }: React$1.ComponentProps<'h1'> & {
504
+ asChild?: boolean;
505
+ }): react_jsx_runtime.JSX.Element;
506
+ declare function HeadingL({ className, asChild, ...props }: React$1.ComponentProps<'h2'> & {
507
+ asChild?: boolean;
508
+ }): react_jsx_runtime.JSX.Element;
509
+ declare function HeadingM({ className, asChild, ...props }: React$1.ComponentProps<'h3'> & {
510
+ asChild?: boolean;
511
+ }): react_jsx_runtime.JSX.Element;
512
+ declare function HeadingS({ className, asChild, ...props }: React$1.ComponentProps<'h4'> & {
513
+ asChild?: boolean;
514
+ }): react_jsx_runtime.JSX.Element;
515
+ declare function HeadingXS({ className, asChild, ...props }: React$1.ComponentProps<'h5'> & {
516
+ asChild?: boolean;
517
+ }): react_jsx_runtime.JSX.Element;
518
+ declare function HeadingXXS({ className, asChild, ...props }: React$1.ComponentProps<'h6'> & {
519
+ asChild?: boolean;
520
+ }): react_jsx_runtime.JSX.Element;
521
+
486
522
  declare function cn(...inputs: ClassValue[]): string;
487
523
 
488
524
  declare function useIsMobile(): boolean;
489
525
 
490
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, toggleVariants, useFormField, useIsMobile, useSidebar };
526
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Body, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DisplayHeading, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HeadingL, HeadingM, HeadingS, HeadingXL, HeadingXS, HeadingXXS, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, bodyTextVariants, buttonVariants, cn, displayTextVariants, labelTextVariants, navigationMenuTriggerStyle, toggleVariants, useFormField, useIsMobile, useSidebar };
package/dist/index.mjs CHANGED
@@ -142,7 +142,7 @@ import { Slot } from "@radix-ui/react-slot";
142
142
  import { cva as cva2 } from "class-variance-authority";
143
143
  import { jsx as jsx3 } from "react/jsx-runtime";
144
144
  var buttonVariants = cva2(
145
- "cursor-pointer active:opacity-70 inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-semibold transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
145
+ "cursor-pointer active:opacity-70 inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-semibold transition-colors transition-opacity disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none relative select-none will-change-auto focus-visible:before:absolute focus-visible:before:-inset-[3px] focus-visible:before:rounded-lg focus-visible:before:ring-2 focus-visible:before:ring-blue-500/80 focus-visible:before:pointer-events-none aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
146
146
  {
147
147
  variants: {
148
148
  variant: {
@@ -2101,7 +2101,7 @@ function DropdownMenuSubContent({
2101
2101
  // src/components/ui/form.tsx
2102
2102
  import * as React19 from "react";
2103
2103
  import "@radix-ui/react-label";
2104
- import { Slot as Slot4 } from "@radix-ui/react-slot";
2104
+ import { Slot as Slot5 } from "@radix-ui/react-slot";
2105
2105
  import {
2106
2106
  Controller,
2107
2107
  FormProvider,
@@ -2110,21 +2110,35 @@ import {
2110
2110
  } from "react-hook-form";
2111
2111
 
2112
2112
  // src/components/ui/label.tsx
2113
+ import { Slot as Slot4 } from "@radix-ui/react-slot";
2114
+ import { cva as cva4 } from "class-variance-authority";
2113
2115
  import "react";
2114
- import * as LabelPrimitive from "@radix-ui/react-label";
2115
2116
  import { jsx as jsx20 } from "react/jsx-runtime";
2117
+ var labelTextVariants = cva4("font-sans font-semibold ", {
2118
+ variants: {
2119
+ size: {
2120
+ lg: "text-base md:text-lg md:leading-[1.625rem] leading-[1.5rem]",
2121
+ md: "md:text-base text-sm md:leading-[1.5rem] leading-[1.25rem] ",
2122
+ sm: "md:text-sm text-xs md:leading-[1.25rem] leading-[1.125rem] ",
2123
+ xs: "text-xs leading-[1.125rem]"
2124
+ }
2125
+ },
2126
+ defaultVariants: {
2127
+ size: "md"
2128
+ }
2129
+ });
2116
2130
  function Label3({
2117
2131
  className,
2132
+ size,
2133
+ asChild = false,
2118
2134
  ...props
2119
2135
  }) {
2136
+ const Comp = asChild ? Slot4 : "label";
2120
2137
  return /* @__PURE__ */ jsx20(
2121
- LabelPrimitive.Root,
2138
+ Comp,
2122
2139
  {
2123
2140
  "data-slot": "label",
2124
- className: cn(
2125
- "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
2126
- className
2127
- ),
2141
+ className: cn(labelTextVariants({ size, className })),
2128
2142
  ...props
2129
2143
  }
2130
2144
  );
@@ -2193,7 +2207,7 @@ function FormLabel({
2193
2207
  function FormControl({ ...props }) {
2194
2208
  const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
2195
2209
  return /* @__PURE__ */ jsx21(
2196
- Slot4,
2210
+ Slot5,
2197
2211
  {
2198
2212
  "data-slot": "form-control",
2199
2213
  id: formItemId,
@@ -2587,7 +2601,7 @@ function MenubarSubContent({
2587
2601
  // src/components/ui/navigation-menu.tsx
2588
2602
  import "react";
2589
2603
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
2590
- import { cva as cva4 } from "class-variance-authority";
2604
+ import { cva as cva5 } from "class-variance-authority";
2591
2605
  import { ChevronDownIcon as ChevronDownIcon3 } from "lucide-react";
2592
2606
  import { jsx as jsx26, jsxs as jsxs13 } from "react/jsx-runtime";
2593
2607
  function NavigationMenu({
@@ -2642,7 +2656,7 @@ function NavigationMenuItem({
2642
2656
  }
2643
2657
  );
2644
2658
  }
2645
- var navigationMenuTriggerStyle = cva4(
2659
+ var navigationMenuTriggerStyle = cva5(
2646
2660
  "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
2647
2661
  );
2648
2662
  function NavigationMenuTrigger({
@@ -3379,8 +3393,8 @@ function SheetDescription({
3379
3393
 
3380
3394
  // src/components/ui/sidebar.tsx
3381
3395
  import * as React36 from "react";
3382
- import { Slot as Slot5 } from "@radix-ui/react-slot";
3383
- import { cva as cva5 } from "class-variance-authority";
3396
+ import { Slot as Slot6 } from "@radix-ui/react-slot";
3397
+ import { cva as cva6 } from "class-variance-authority";
3384
3398
  import { PanelLeftIcon } from "lucide-react";
3385
3399
 
3386
3400
  // src/hooks/use-mobile.ts
@@ -3787,7 +3801,7 @@ function SidebarGroupLabel({
3787
3801
  asChild = false,
3788
3802
  ...props
3789
3803
  }) {
3790
- const Comp = asChild ? Slot5 : "div";
3804
+ const Comp = asChild ? Slot6 : "div";
3791
3805
  return /* @__PURE__ */ jsx38(
3792
3806
  Comp,
3793
3807
  {
@@ -3807,7 +3821,7 @@ function SidebarGroupAction({
3807
3821
  asChild = false,
3808
3822
  ...props
3809
3823
  }) {
3810
- const Comp = asChild ? Slot5 : "button";
3824
+ const Comp = asChild ? Slot6 : "button";
3811
3825
  return /* @__PURE__ */ jsx38(
3812
3826
  Comp,
3813
3827
  {
@@ -3860,7 +3874,7 @@ function SidebarMenuItem({ className, ...props }) {
3860
3874
  }
3861
3875
  );
3862
3876
  }
3863
- var sidebarMenuButtonVariants = cva5(
3877
+ var sidebarMenuButtonVariants = cva6(
3864
3878
  "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
3865
3879
  {
3866
3880
  variants: {
@@ -3889,7 +3903,7 @@ function SidebarMenuButton({
3889
3903
  className,
3890
3904
  ...props
3891
3905
  }) {
3892
- const Comp = asChild ? Slot5 : "button";
3906
+ const Comp = asChild ? Slot6 : "button";
3893
3907
  const { isMobile, state } = useSidebar();
3894
3908
  const button = /* @__PURE__ */ jsx38(
3895
3909
  Comp,
@@ -3929,7 +3943,7 @@ function SidebarMenuAction({
3929
3943
  showOnHover = false,
3930
3944
  ...props
3931
3945
  }) {
3932
- const Comp = asChild ? Slot5 : "button";
3946
+ const Comp = asChild ? Slot6 : "button";
3933
3947
  return /* @__PURE__ */ jsx38(
3934
3948
  Comp,
3935
3949
  {
@@ -4045,7 +4059,7 @@ function SidebarMenuSubButton({
4045
4059
  className,
4046
4060
  ...props
4047
4061
  }) {
4048
- const Comp = asChild ? Slot5 : "a";
4062
+ const Comp = asChild ? Slot6 : "a";
4049
4063
  return /* @__PURE__ */ jsx38(
4050
4064
  Comp,
4051
4065
  {
@@ -4367,9 +4381,9 @@ function Textarea({ className, ...props }) {
4367
4381
  // src/components/ui/toggle.tsx
4368
4382
  import "react";
4369
4383
  import * as TogglePrimitive from "@radix-ui/react-toggle";
4370
- import { cva as cva6 } from "class-variance-authority";
4384
+ import { cva as cva7 } from "class-variance-authority";
4371
4385
  import { jsx as jsx45 } from "react/jsx-runtime";
4372
- var toggleVariants = cva6(
4386
+ var toggleVariants = cva7(
4373
4387
  "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap",
4374
4388
  {
4375
4389
  variants: {
@@ -4463,6 +4477,180 @@ function ToggleGroupItem({
4463
4477
  }
4464
4478
  );
4465
4479
  }
4480
+
4481
+ // src/components/ui/typography.tsx
4482
+ import { Slot as Slot7 } from "@radix-ui/react-slot";
4483
+ import { cva as cva8 } from "class-variance-authority";
4484
+ import "react";
4485
+ import { jsx as jsx47 } from "react/jsx-runtime";
4486
+ var displayTextVariants = cva8(
4487
+ "tracking-normal font-normal leading-none text-brand-dark font-serif italic",
4488
+ {
4489
+ variants: {
4490
+ size: {
4491
+ md: "text-[1.75rem] md:text-4xl leading-[2.75rem] md:leading-[4rem]",
4492
+ sm: "text-lg md:text-xl leading-[2.5rem] md:leading-[3rem]",
4493
+ lg: "text-4xl md:text-[3.25rem] leading-[4rem] md:leading-[5rem]"
4494
+ }
4495
+ },
4496
+ defaultVariants: {
4497
+ size: "md"
4498
+ }
4499
+ }
4500
+ );
4501
+ function DisplayHeading({
4502
+ className,
4503
+ size,
4504
+ asChild = false,
4505
+ ...props
4506
+ }) {
4507
+ const Comp = asChild ? Slot7 : "h1";
4508
+ return /* @__PURE__ */ jsx47(
4509
+ Comp,
4510
+ {
4511
+ "data-slot": "h1",
4512
+ className: cn(displayTextVariants({ size, className })),
4513
+ ...props
4514
+ }
4515
+ );
4516
+ }
4517
+ var bodyTextVariants = cva8("font-sans ", {
4518
+ variants: {
4519
+ size: {
4520
+ lg: "text-lg md:text-xl leading-[1.625rem] md:leading-[1.75rem]",
4521
+ md: "text-base leading-[1.5rem] ",
4522
+ sm: "text-sm leading-[1.25rem] ",
4523
+ xs: "text-xs leading-[1rem]"
4524
+ }
4525
+ },
4526
+ defaultVariants: {
4527
+ size: "md"
4528
+ }
4529
+ });
4530
+ function Body({
4531
+ className,
4532
+ size,
4533
+ asChild = false,
4534
+ ...props
4535
+ }) {
4536
+ const Comp = asChild ? Slot7 : "p";
4537
+ return /* @__PURE__ */ jsx47(
4538
+ Comp,
4539
+ {
4540
+ "data-slot": "h1",
4541
+ className: cn(bodyTextVariants({ size, className })),
4542
+ ...props
4543
+ }
4544
+ );
4545
+ }
4546
+ function HeadingXL({
4547
+ className,
4548
+ asChild = false,
4549
+ ...props
4550
+ }) {
4551
+ const Comp = asChild ? Slot7 : "h1";
4552
+ return /* @__PURE__ */ jsx47(
4553
+ Comp,
4554
+ {
4555
+ "data-slot": "h1",
4556
+ className: cn(
4557
+ "text-2xl md:text-[2rem] md:leading-[2.5rem] leading-[2rem] font-semibold font-sans",
4558
+ className
4559
+ ),
4560
+ ...props
4561
+ }
4562
+ );
4563
+ }
4564
+ function HeadingL({
4565
+ className,
4566
+ asChild = false,
4567
+ ...props
4568
+ }) {
4569
+ const Comp = asChild ? Slot7 : "h2";
4570
+ return /* @__PURE__ */ jsx47(
4571
+ Comp,
4572
+ {
4573
+ "data-slot": "h2",
4574
+ className: cn(
4575
+ "md:text-[1.5rem] text-[1.25rem] md:leading-[2rem] leading-[1.75rem] font-semibold font-sans",
4576
+ className
4577
+ ),
4578
+ ...props
4579
+ }
4580
+ );
4581
+ }
4582
+ function HeadingM({
4583
+ className,
4584
+ asChild = false,
4585
+ ...props
4586
+ }) {
4587
+ const Comp = asChild ? Slot7 : "h3";
4588
+ return /* @__PURE__ */ jsx47(
4589
+ Comp,
4590
+ {
4591
+ "data-slot": "h3",
4592
+ className: cn(
4593
+ "text-[1.125rem] md:text-xl md:leading-[1.75rem] leading-[1.625rem] font-semibold font-sans",
4594
+ className
4595
+ ),
4596
+ ...props
4597
+ }
4598
+ );
4599
+ }
4600
+ function HeadingS({
4601
+ className,
4602
+ asChild = false,
4603
+ ...props
4604
+ }) {
4605
+ const Comp = asChild ? Slot7 : "h4";
4606
+ return /* @__PURE__ */ jsx47(
4607
+ Comp,
4608
+ {
4609
+ "data-slot": "h4",
4610
+ className: cn(
4611
+ "text-base leading-[1.5rem] font-semibold font-sans",
4612
+ className
4613
+ ),
4614
+ ...props
4615
+ }
4616
+ );
4617
+ }
4618
+ function HeadingXS({
4619
+ className,
4620
+ asChild = false,
4621
+ ...props
4622
+ }) {
4623
+ const Comp = asChild ? Slot7 : "h5";
4624
+ return /* @__PURE__ */ jsx47(
4625
+ Comp,
4626
+ {
4627
+ "data-slot": "h5",
4628
+ className: cn(
4629
+ "text-sm leading-[1.25rem] font-semibold font-sans",
4630
+ className
4631
+ ),
4632
+ ...props
4633
+ }
4634
+ );
4635
+ }
4636
+ function HeadingXXS({
4637
+ className,
4638
+ asChild = false,
4639
+ ...props
4640
+ }) {
4641
+ const Comp = asChild ? Slot7 : "h6";
4642
+ return /* @__PURE__ */ jsx47(
4643
+ Comp,
4644
+ {
4645
+ "data-slot": "h5",
4646
+ className: cn(
4647
+ "text-xs leading-[1rem] font-semibold font-sans",
4648
+ className
4649
+ ),
4650
+ ...props
4651
+ }
4652
+ );
4653
+ }
4466
4654
  export {
4467
4655
  Accordion,
4468
4656
  AccordionContent,
@@ -4487,6 +4675,7 @@ export {
4487
4675
  AvatarFallback,
4488
4676
  AvatarImage,
4489
4677
  Badge,
4678
+ Body,
4490
4679
  Breadcrumb,
4491
4680
  BreadcrumbEllipsis,
4492
4681
  BreadcrumbItem,
@@ -4553,6 +4742,7 @@ export {
4553
4742
  DialogPortal,
4554
4743
  DialogTitle,
4555
4744
  DialogTrigger,
4745
+ DisplayHeading,
4556
4746
  Drawer,
4557
4747
  DrawerClose,
4558
4748
  DrawerContent,
@@ -4585,6 +4775,12 @@ export {
4585
4775
  FormItem,
4586
4776
  FormLabel,
4587
4777
  FormMessage,
4778
+ HeadingL,
4779
+ HeadingM,
4780
+ HeadingS,
4781
+ HeadingXL,
4782
+ HeadingXS,
4783
+ HeadingXXS,
4588
4784
  HoverCard,
4589
4785
  HoverCardContent,
4590
4786
  HoverCardTrigger,
@@ -4704,8 +4900,11 @@ export {
4704
4900
  TooltipProvider,
4705
4901
  TooltipTrigger,
4706
4902
  badgeVariants,
4903
+ bodyTextVariants,
4707
4904
  buttonVariants,
4708
4905
  cn,
4906
+ displayTextVariants,
4907
+ labelTextVariants,
4709
4908
  navigationMenuTriggerStyle,
4710
4909
  toggleVariants,
4711
4910
  useFormField,