@mikenotthepope/substrateui 0.1.0 → 0.1.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/README.md CHANGED
@@ -66,17 +66,17 @@ Substrate UI uses three font families via CSS custom properties:
66
66
 
67
67
  | Token | Default Font | Purpose |
68
68
  | -------------- | --------------- | ---------- |
69
- | `--font-head` | Archivo Black | Headings |
69
+ | `--font-head` | Bricolage Grotesque | Headings |
70
70
  | `--font-sans` | Space Grotesk | Body text |
71
71
  | `--font-mono` | Space Mono | Code |
72
72
 
73
73
  **Next.js:**
74
74
 
75
75
  ```tsx
76
- import { Space_Grotesk, Archivo_Black, Space_Mono } from "next/font/google";
76
+ import { Space_Grotesk, Bricolage_Grotesque, Space_Mono } from "next/font/google";
77
77
 
78
78
  const sans = Space_Grotesk({ variable: "--font-sans", subsets: ["latin"], weight: "400" });
79
- const head = Archivo_Black({ variable: "--font-head", subsets: ["latin"], weight: "400" });
79
+ const head = Bricolage_Grotesque({ variable: "--font-head", subsets: ["latin"], weight: ["400", "700", "800"] });
80
80
  const mono = Space_Mono({ variable: "--font-mono", subsets: ["latin"], weight: "400" });
81
81
 
82
82
  export default function RootLayout({ children }) {
@@ -91,10 +91,10 @@ export default function RootLayout({ children }) {
91
91
  **Plain HTML / Vite:**
92
92
 
93
93
  ```html
94
- <link href="https://fonts.googleapis.com/css2?family=Archivo+Black&family=Space+Grotesk:wght@400;500;700&family=Space+Mono&display=swap" rel="stylesheet">
94
+ <link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@400;700;800&family=Space+Grotesk:wght@400;500;700&family=Space+Mono&display=swap" rel="stylesheet">
95
95
  <style>
96
96
  :root {
97
- --font-head: 'Archivo Black', sans-serif;
97
+ --font-head: 'Bricolage Grotesque', sans-serif;
98
98
  --font-sans: 'Space Grotesk', sans-serif;
99
99
  --font-mono: 'Space Mono', monospace;
100
100
  }
@@ -442,7 +442,7 @@
442
442
  --info: #60a5fa;
443
443
  --info-foreground: #000;
444
444
  --error: #f87171;
445
- --error-foreground: #7f1d1d;
445
+ --error-foreground: #000;
446
446
  --overlay: rgba(0, 0, 0, 0.85);
447
447
  --border: #000;
448
448
  --ring: #fff;
package/dist/index.d.mts CHANGED
@@ -98,7 +98,13 @@ declare const DrawerComponent: typeof Drawer & {
98
98
  Description: typeof DrawerDescription;
99
99
  };
100
100
 
101
- declare const AvatarComponent: React$1.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarProps & React$1.RefAttributes<HTMLSpanElement>, "ref"> & React$1.RefAttributes<HTMLSpanElement>> & {
101
+ declare const avatarVariants: (props?: ({
102
+ shape?: "circle" | "square" | "rounded" | "hexagon" | "diamond" | "squircle" | "shield" | null | undefined;
103
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
104
+ type AvatarShape = NonNullable<VariantProps<typeof avatarVariants>["shape"]>;
105
+ interface AvatarProps extends React$1.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>, VariantProps<typeof avatarVariants> {
106
+ }
107
+ declare const AvatarComponent: React$1.ForwardRefExoticComponent<AvatarProps & React$1.RefAttributes<HTMLSpanElement>> & {
102
108
  Image: React$1.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & React$1.RefAttributes<HTMLImageElement>, "ref"> & React$1.RefAttributes<HTMLImageElement>>;
103
109
  Fallback: React$1.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarFallbackProps & React$1.RefAttributes<HTMLSpanElement>, "ref"> & React$1.RefAttributes<HTMLSpanElement>>;
104
110
  };
@@ -153,6 +159,7 @@ declare const Checkbox: React$1.ForwardRefExoticComponent<ICheckboxProps & React
153
159
  declare const radioVariants: (props?: ({
154
160
  variant?: "default" | "outline" | "solid" | null | undefined;
155
161
  size?: "sm" | "md" | "lg" | null | undefined;
162
+ shape?: "circle" | "diamond" | null | undefined;
156
163
  } & class_variance_authority_types.ClassProp) | undefined) => string;
157
164
  interface IRadioGroupItemProps extends React$1.ComponentPropsWithoutRef<typeof RadioPrimitive.Item>, VariantProps<typeof radioVariants> {
158
165
  }
@@ -1212,4 +1219,4 @@ declare function NewsletterSignup({ title, subtitle, inputPlaceholder, buttonLab
1212
1219
 
1213
1220
  declare function cn(...classes: ClassNameValue[]): string;
1214
1221
 
1215
- export { AccordionComponent as Accordion, AlertComponent as Alert, AlertDialogComponent as AlertDialog, AnnouncementBanner, type AnnouncementBannerProps, AvatarComponent as Avatar, Badge, BreadcrumbComponent as Breadcrumb, Button, CTABanner, type CTABannerProps, Calendar, CardComponent as Card, CardGrid, type CardGridProps, CarouselComponent as Carousel, type CarouselApi, ChartComponent as Chart, type ChartConfig, Checkbox, CollapsibleComponent as Collapsible, ComboboxComponent as Combobox, CommandComponent as Command, Container, ContextMenuComponent as ContextMenu, DataTableComponent as DataTable, DialogComponent as Dialog, Divider, DrawerComponent as Drawer, DropdownMenuComponent as DropdownMenu, FAQ, type FAQItem, type FAQProps, type Feature, FeatureSection, type FeatureSectionProps, Flex, Footer, type FooterLinkGroup, type FooterProps, FormComponent as Form, FormLayout, Grid, Hero, type HeroProps, HoverCardComponent as HoverCard, type IAlertDialogContentProps, type IAlertProps, type IBadgeProps, type IBreadcrumbLinkProps, type IButtonProps, type ICalendarProps, type ICardProps, type ICarouselProps, type IChartContainerProps, type ICheckboxProps, type IComboboxItem, type IComboboxProps, type IContainerProps, type IDataTableProps, type IDialogContentProps, type IDividerProps, type IFlexProps, type IFormActionsProps, type IFormFieldProps, type IFormLayoutProps, type IFormRowProps, type IFormSectionProps, type IGridProps, type IIconButtonProps, type IImageCardProps, type IInputOTPProps, type IInputProps, type ILinkProps, type ILoaderProps, type IMarqueeProps, type IPaginationLinkProps, type IProgressProps, type IRadioGroupItemProps, type ISectionNavProps, type ISheetContentProps, type ISkeletonProps, type ISonnerProps, type IStackProps, type ITextareaProps, IconButton, ImageCard, Input, InputOTPComponent as InputOTP, Label, Link, Loader, LogoCloud, type LogoCloudProps, Marquee, MenuComponent as Menu, MenubarComponent as Menubar, type NavAuth, NavBar, type NavBarProps, type NavBrand, type NavLink, type NavMenuItem, NavigationMenuComponent as NavigationMenu, NewsletterSignup, type NewsletterSignupProps, Pagination, PopoverComponent as Popover, type PricingFeature, PricingTable, type PricingTableProps, type PricingTier, Progress, RadioGroup, ResizableComponent as Resizable, ScrollAreaComponent as ScrollArea, Section, SectionNav, type SectionNavItem, type SectionProps, Select, SheetComponent as Sheet, SidebarComponent as Sidebar, SimplePage, type SimplePageProps, Skeleton, Slider, Stack, type Stat, StatsBar, type StatsBarProps, Switch, TableComponent as Table, TabsComponent as Tabs, Testimonial, type TestimonialItem, type TestimonialProps, Text, Textarea, type ThemeConfig, ThemeProvider, ThemeToggle, type ThemeToggleProps, Toaster, TooltipComponent as Tooltip, TwoColumnLayoutComponent as TwoColumnLayout, alertVariants, badgeVariants, buttonVariants, cardVariants, cn, containerVariants, createTheme, dialogContentVariants, dividerVariants, flexVariants, gridVariants, iconButtonVariants, linkVariants, loaderVariants, navigationMenuTriggerStyle, sectionVariants, sheetContentVariants, sidebarMenuButtonVariants, stackVariants, useCarousel, useChart, useFormField, useSidebar, useTheme };
1222
+ export { AccordionComponent as Accordion, AlertComponent as Alert, AlertDialogComponent as AlertDialog, AnnouncementBanner, type AnnouncementBannerProps, AvatarComponent as Avatar, type AvatarShape, Badge, BreadcrumbComponent as Breadcrumb, Button, CTABanner, type CTABannerProps, Calendar, CardComponent as Card, CardGrid, type CardGridProps, CarouselComponent as Carousel, type CarouselApi, ChartComponent as Chart, type ChartConfig, Checkbox, CollapsibleComponent as Collapsible, ComboboxComponent as Combobox, CommandComponent as Command, Container, ContextMenuComponent as ContextMenu, DataTableComponent as DataTable, DialogComponent as Dialog, Divider, DrawerComponent as Drawer, DropdownMenuComponent as DropdownMenu, FAQ, type FAQItem, type FAQProps, type Feature, FeatureSection, type FeatureSectionProps, Flex, Footer, type FooterLinkGroup, type FooterProps, FormComponent as Form, FormLayout, Grid, Hero, type HeroProps, HoverCardComponent as HoverCard, type IAlertDialogContentProps, type IAlertProps, type IBadgeProps, type IBreadcrumbLinkProps, type IButtonProps, type ICalendarProps, type ICardProps, type ICarouselProps, type IChartContainerProps, type ICheckboxProps, type IComboboxItem, type IComboboxProps, type IContainerProps, type IDataTableProps, type IDialogContentProps, type IDividerProps, type IFlexProps, type IFormActionsProps, type IFormFieldProps, type IFormLayoutProps, type IFormRowProps, type IFormSectionProps, type IGridProps, type IIconButtonProps, type IImageCardProps, type IInputOTPProps, type IInputProps, type ILinkProps, type ILoaderProps, type IMarqueeProps, type IPaginationLinkProps, type IProgressProps, type IRadioGroupItemProps, type ISectionNavProps, type ISheetContentProps, type ISkeletonProps, type ISonnerProps, type IStackProps, type ITextareaProps, IconButton, ImageCard, Input, InputOTPComponent as InputOTP, Label, Link, Loader, LogoCloud, type LogoCloudProps, Marquee, MenuComponent as Menu, MenubarComponent as Menubar, type NavAuth, NavBar, type NavBarProps, type NavBrand, type NavLink, type NavMenuItem, NavigationMenuComponent as NavigationMenu, NewsletterSignup, type NewsletterSignupProps, Pagination, PopoverComponent as Popover, type PricingFeature, PricingTable, type PricingTableProps, type PricingTier, Progress, RadioGroup, ResizableComponent as Resizable, ScrollAreaComponent as ScrollArea, Section, SectionNav, type SectionNavItem, type SectionProps, Select, SheetComponent as Sheet, SidebarComponent as Sidebar, SimplePage, type SimplePageProps, Skeleton, Slider, Stack, type Stat, StatsBar, type StatsBarProps, Switch, TableComponent as Table, TabsComponent as Tabs, Testimonial, type TestimonialItem, type TestimonialProps, Text, Textarea, type ThemeConfig, ThemeProvider, ThemeToggle, type ThemeToggleProps, Toaster, TooltipComponent as Tooltip, TwoColumnLayoutComponent as TwoColumnLayout, alertVariants, avatarVariants, badgeVariants, buttonVariants, cardVariants, cn, containerVariants, createTheme, dialogContentVariants, dividerVariants, flexVariants, gridVariants, iconButtonVariants, linkVariants, loaderVariants, navigationMenuTriggerStyle, sectionVariants, sheetContentVariants, sidebarMenuButtonVariants, stackVariants, useCarousel, useChart, useFormField, useSidebar, useTheme };
package/dist/index.d.ts CHANGED
@@ -98,7 +98,13 @@ declare const DrawerComponent: typeof Drawer & {
98
98
  Description: typeof DrawerDescription;
99
99
  };
100
100
 
101
- declare const AvatarComponent: React$1.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarProps & React$1.RefAttributes<HTMLSpanElement>, "ref"> & React$1.RefAttributes<HTMLSpanElement>> & {
101
+ declare const avatarVariants: (props?: ({
102
+ shape?: "circle" | "square" | "rounded" | "hexagon" | "diamond" | "squircle" | "shield" | null | undefined;
103
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
104
+ type AvatarShape = NonNullable<VariantProps<typeof avatarVariants>["shape"]>;
105
+ interface AvatarProps extends React$1.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>, VariantProps<typeof avatarVariants> {
106
+ }
107
+ declare const AvatarComponent: React$1.ForwardRefExoticComponent<AvatarProps & React$1.RefAttributes<HTMLSpanElement>> & {
102
108
  Image: React$1.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & React$1.RefAttributes<HTMLImageElement>, "ref"> & React$1.RefAttributes<HTMLImageElement>>;
103
109
  Fallback: React$1.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarFallbackProps & React$1.RefAttributes<HTMLSpanElement>, "ref"> & React$1.RefAttributes<HTMLSpanElement>>;
104
110
  };
@@ -153,6 +159,7 @@ declare const Checkbox: React$1.ForwardRefExoticComponent<ICheckboxProps & React
153
159
  declare const radioVariants: (props?: ({
154
160
  variant?: "default" | "outline" | "solid" | null | undefined;
155
161
  size?: "sm" | "md" | "lg" | null | undefined;
162
+ shape?: "circle" | "diamond" | null | undefined;
156
163
  } & class_variance_authority_types.ClassProp) | undefined) => string;
157
164
  interface IRadioGroupItemProps extends React$1.ComponentPropsWithoutRef<typeof RadioPrimitive.Item>, VariantProps<typeof radioVariants> {
158
165
  }
@@ -1212,4 +1219,4 @@ declare function NewsletterSignup({ title, subtitle, inputPlaceholder, buttonLab
1212
1219
 
1213
1220
  declare function cn(...classes: ClassNameValue[]): string;
1214
1221
 
1215
- export { AccordionComponent as Accordion, AlertComponent as Alert, AlertDialogComponent as AlertDialog, AnnouncementBanner, type AnnouncementBannerProps, AvatarComponent as Avatar, Badge, BreadcrumbComponent as Breadcrumb, Button, CTABanner, type CTABannerProps, Calendar, CardComponent as Card, CardGrid, type CardGridProps, CarouselComponent as Carousel, type CarouselApi, ChartComponent as Chart, type ChartConfig, Checkbox, CollapsibleComponent as Collapsible, ComboboxComponent as Combobox, CommandComponent as Command, Container, ContextMenuComponent as ContextMenu, DataTableComponent as DataTable, DialogComponent as Dialog, Divider, DrawerComponent as Drawer, DropdownMenuComponent as DropdownMenu, FAQ, type FAQItem, type FAQProps, type Feature, FeatureSection, type FeatureSectionProps, Flex, Footer, type FooterLinkGroup, type FooterProps, FormComponent as Form, FormLayout, Grid, Hero, type HeroProps, HoverCardComponent as HoverCard, type IAlertDialogContentProps, type IAlertProps, type IBadgeProps, type IBreadcrumbLinkProps, type IButtonProps, type ICalendarProps, type ICardProps, type ICarouselProps, type IChartContainerProps, type ICheckboxProps, type IComboboxItem, type IComboboxProps, type IContainerProps, type IDataTableProps, type IDialogContentProps, type IDividerProps, type IFlexProps, type IFormActionsProps, type IFormFieldProps, type IFormLayoutProps, type IFormRowProps, type IFormSectionProps, type IGridProps, type IIconButtonProps, type IImageCardProps, type IInputOTPProps, type IInputProps, type ILinkProps, type ILoaderProps, type IMarqueeProps, type IPaginationLinkProps, type IProgressProps, type IRadioGroupItemProps, type ISectionNavProps, type ISheetContentProps, type ISkeletonProps, type ISonnerProps, type IStackProps, type ITextareaProps, IconButton, ImageCard, Input, InputOTPComponent as InputOTP, Label, Link, Loader, LogoCloud, type LogoCloudProps, Marquee, MenuComponent as Menu, MenubarComponent as Menubar, type NavAuth, NavBar, type NavBarProps, type NavBrand, type NavLink, type NavMenuItem, NavigationMenuComponent as NavigationMenu, NewsletterSignup, type NewsletterSignupProps, Pagination, PopoverComponent as Popover, type PricingFeature, PricingTable, type PricingTableProps, type PricingTier, Progress, RadioGroup, ResizableComponent as Resizable, ScrollAreaComponent as ScrollArea, Section, SectionNav, type SectionNavItem, type SectionProps, Select, SheetComponent as Sheet, SidebarComponent as Sidebar, SimplePage, type SimplePageProps, Skeleton, Slider, Stack, type Stat, StatsBar, type StatsBarProps, Switch, TableComponent as Table, TabsComponent as Tabs, Testimonial, type TestimonialItem, type TestimonialProps, Text, Textarea, type ThemeConfig, ThemeProvider, ThemeToggle, type ThemeToggleProps, Toaster, TooltipComponent as Tooltip, TwoColumnLayoutComponent as TwoColumnLayout, alertVariants, badgeVariants, buttonVariants, cardVariants, cn, containerVariants, createTheme, dialogContentVariants, dividerVariants, flexVariants, gridVariants, iconButtonVariants, linkVariants, loaderVariants, navigationMenuTriggerStyle, sectionVariants, sheetContentVariants, sidebarMenuButtonVariants, stackVariants, useCarousel, useChart, useFormField, useSidebar, useTheme };
1222
+ export { AccordionComponent as Accordion, AlertComponent as Alert, AlertDialogComponent as AlertDialog, AnnouncementBanner, type AnnouncementBannerProps, AvatarComponent as Avatar, type AvatarShape, Badge, BreadcrumbComponent as Breadcrumb, Button, CTABanner, type CTABannerProps, Calendar, CardComponent as Card, CardGrid, type CardGridProps, CarouselComponent as Carousel, type CarouselApi, ChartComponent as Chart, type ChartConfig, Checkbox, CollapsibleComponent as Collapsible, ComboboxComponent as Combobox, CommandComponent as Command, Container, ContextMenuComponent as ContextMenu, DataTableComponent as DataTable, DialogComponent as Dialog, Divider, DrawerComponent as Drawer, DropdownMenuComponent as DropdownMenu, FAQ, type FAQItem, type FAQProps, type Feature, FeatureSection, type FeatureSectionProps, Flex, Footer, type FooterLinkGroup, type FooterProps, FormComponent as Form, FormLayout, Grid, Hero, type HeroProps, HoverCardComponent as HoverCard, type IAlertDialogContentProps, type IAlertProps, type IBadgeProps, type IBreadcrumbLinkProps, type IButtonProps, type ICalendarProps, type ICardProps, type ICarouselProps, type IChartContainerProps, type ICheckboxProps, type IComboboxItem, type IComboboxProps, type IContainerProps, type IDataTableProps, type IDialogContentProps, type IDividerProps, type IFlexProps, type IFormActionsProps, type IFormFieldProps, type IFormLayoutProps, type IFormRowProps, type IFormSectionProps, type IGridProps, type IIconButtonProps, type IImageCardProps, type IInputOTPProps, type IInputProps, type ILinkProps, type ILoaderProps, type IMarqueeProps, type IPaginationLinkProps, type IProgressProps, type IRadioGroupItemProps, type ISectionNavProps, type ISheetContentProps, type ISkeletonProps, type ISonnerProps, type IStackProps, type ITextareaProps, IconButton, ImageCard, Input, InputOTPComponent as InputOTP, Label, Link, Loader, LogoCloud, type LogoCloudProps, Marquee, MenuComponent as Menu, MenubarComponent as Menubar, type NavAuth, NavBar, type NavBarProps, type NavBrand, type NavLink, type NavMenuItem, NavigationMenuComponent as NavigationMenu, NewsletterSignup, type NewsletterSignupProps, Pagination, PopoverComponent as Popover, type PricingFeature, PricingTable, type PricingTableProps, type PricingTier, Progress, RadioGroup, ResizableComponent as Resizable, ScrollAreaComponent as ScrollArea, Section, SectionNav, type SectionNavItem, type SectionProps, Select, SheetComponent as Sheet, SidebarComponent as Sidebar, SimplePage, type SimplePageProps, Skeleton, Slider, Stack, type Stat, StatsBar, type StatsBarProps, Switch, TableComponent as Table, TabsComponent as Tabs, Testimonial, type TestimonialItem, type TestimonialProps, Text, Textarea, type ThemeConfig, ThemeProvider, ThemeToggle, type ThemeToggleProps, Toaster, TooltipComponent as Tooltip, TwoColumnLayoutComponent as TwoColumnLayout, alertVariants, avatarVariants, badgeVariants, buttonVariants, cardVariants, cn, containerVariants, createTheme, dialogContentVariants, dividerVariants, flexVariants, gridVariants, iconButtonVariants, linkVariants, loaderVariants, navigationMenuTriggerStyle, sectionVariants, sheetContentVariants, sidebarMenuButtonVariants, stackVariants, useCarousel, useChart, useFormField, useSidebar, useTheme };
package/dist/index.js CHANGED
@@ -137,6 +137,7 @@ __export(index_exports, {
137
137
  Tooltip: () => TooltipComponent,
138
138
  TwoColumnLayout: () => TwoColumnLayoutComponent,
139
139
  alertVariants: () => alertVariants,
140
+ avatarVariants: () => avatarVariants,
140
141
  badgeVariants: () => badgeVariants,
141
142
  buttonVariants: () => buttonVariants,
142
143
  cardVariants: () => cardVariants,
@@ -532,18 +533,41 @@ var DrawerComponent = Object.assign(Drawer, {
532
533
  // components/ui/Avatar.tsx
533
534
  var React5 = __toESM(require("react"));
534
535
  var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"));
536
+ var import_class_variance_authority4 = require("class-variance-authority");
535
537
  var import_jsx_runtime6 = require("react/jsx-runtime");
538
+ var avatarVariants = (0, import_class_variance_authority4.cva)(
539
+ "relative flex h-10 w-10 border-2 overflow-hidden",
540
+ {
541
+ variants: {
542
+ shape: {
543
+ circle: "rounded-full",
544
+ square: "rounded-none",
545
+ rounded: "rounded-lg",
546
+ hexagon: "rounded-none border-0 [clip-path:polygon(50%_0%,100%_25%,100%_75%,50%_100%,0%_75%,0%_25%)]",
547
+ diamond: "rounded-none rotate-45 border-2",
548
+ squircle: "rounded-none border-0 [clip-path:url(#squircle)]",
549
+ shield: "rounded-none border-0 [clip-path:polygon(50%_0%,100%_0%,100%_70%,50%_100%,0%_70%,0%_0%)]"
550
+ }
551
+ },
552
+ defaultVariants: {
553
+ shape: "circle"
554
+ }
555
+ }
556
+ );
536
557
  var Avatar = React5.forwardRef((_a, ref) => {
537
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
538
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
558
+ var _b = _a, { className, shape = "circle", children } = _b, props = __objRest(_b, ["className", "shape", "children"]);
559
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
539
560
  AvatarPrimitive.Root,
540
- __spreadValues({
561
+ __spreadProps(__spreadValues({
541
562
  ref,
542
- className: cn(
543
- "relative flex h-10 w-10 border-2 rounded-full overflow-hidden",
544
- className
545
- )
546
- }, props)
563
+ "data-shape": shape,
564
+ className: cn(avatarVariants({ shape }), className)
565
+ }, props), {
566
+ children: [
567
+ shape === "squircle" && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("svg", { width: "0", height: "0", className: "absolute", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("clipPath", { id: "squircle", clipPathUnits: "objectBoundingBox", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M 0.5 0 C 0.9 0, 1 0.1, 1 0.5 C 1 0.9, 0.9 1, 0.5 1 C 0.1 1, 0 0.9, 0 0.5 C 0 0.1, 0.1 0, 0.5 0" }) }) }) }),
568
+ children
569
+ ]
570
+ })
547
571
  );
548
572
  });
549
573
  Avatar.displayName = "Avatar";
@@ -553,7 +577,10 @@ var AvatarImage = React5.forwardRef((_a, ref) => {
553
577
  AvatarPrimitive.Image,
554
578
  __spreadValues({
555
579
  ref,
556
- className: cn("aspect-square h-full w-full", className)
580
+ className: cn(
581
+ "aspect-square h-full w-full [[data-shape=diamond]>&]:-rotate-45",
582
+ className
583
+ )
557
584
  }, props)
558
585
  );
559
586
  });
@@ -565,7 +592,10 @@ var AvatarFallback = React5.forwardRef((_a, ref) => {
565
592
  __spreadValues({
566
593
  ref,
567
594
  className: cn(
568
- "flex h-full w-full items-center justify-center rounded-full bg-primary text-primary-foreground font-head text-sm",
595
+ "flex h-full w-full items-center justify-center bg-primary text-primary-foreground font-head text-sm",
596
+ "[[data-shape=circle]>&]:rounded-full",
597
+ "[[data-shape=rounded]>&]:rounded-lg",
598
+ "[[data-shape=diamond]>&]:-rotate-45",
569
599
  className
570
600
  )
571
601
  }, props)
@@ -781,10 +811,10 @@ Textarea.displayName = "Textarea";
781
811
  // components/ui/Checkbox.tsx
782
812
  var React10 = __toESM(require("react"));
783
813
  var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
784
- var import_class_variance_authority4 = require("class-variance-authority");
814
+ var import_class_variance_authority5 = require("class-variance-authority");
785
815
  var import_lucide_react2 = require("lucide-react");
786
816
  var import_jsx_runtime11 = require("react/jsx-runtime");
787
- var checkboxVariants = (0, import_class_variance_authority4.cva)("border-2 shrink-0 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50", {
817
+ var checkboxVariants = (0, import_class_variance_authority5.cva)("border-2 shrink-0 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50", {
788
818
  variants: {
789
819
  variant: {
790
820
  default: "data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
@@ -819,9 +849,9 @@ Checkbox.displayName = "Checkbox";
819
849
  // components/ui/RadioGroup.tsx
820
850
  var React11 = __toESM(require("react"));
821
851
  var RadioPrimitive = __toESM(require("@radix-ui/react-radio-group"));
822
- var import_class_variance_authority5 = require("class-variance-authority");
852
+ var import_class_variance_authority6 = require("class-variance-authority");
823
853
  var import_jsx_runtime12 = require("react/jsx-runtime");
824
- var radioVariants = (0, import_class_variance_authority5.cva)("border-2 border-border shrink-0 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50", {
854
+ var radioVariants = (0, import_class_variance_authority6.cva)("border-2 border-border shrink-0 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50", {
825
855
  variants: {
826
856
  variant: {
827
857
  default: "",
@@ -832,14 +862,19 @@ var radioVariants = (0, import_class_variance_authority5.cva)("border-2 border-b
832
862
  sm: "h-4 w-4",
833
863
  md: "h-5 w-5",
834
864
  lg: "h-6 w-6"
865
+ },
866
+ shape: {
867
+ circle: "rounded-full",
868
+ diamond: "rotate-45"
835
869
  }
836
870
  },
837
871
  defaultVariants: {
838
872
  variant: "default",
839
- size: "md"
873
+ size: "md",
874
+ shape: "circle"
840
875
  }
841
876
  });
842
- var radioIndicatorVariants = (0, import_class_variance_authority5.cva)("flex", {
877
+ var radioIndicatorVariants = (0, import_class_variance_authority6.cva)("flex", {
843
878
  variants: {
844
879
  variant: {
845
880
  default: "bg-primary border-2 border-border",
@@ -847,14 +882,19 @@ var radioIndicatorVariants = (0, import_class_variance_authority5.cva)("flex", {
847
882
  solid: "bg-border"
848
883
  },
849
884
  size: {
850
- sm: "h-2 w-2",
851
- md: "h-2.5 w-2.5",
852
- lg: "h-3.5 w-3.5"
885
+ sm: "h-2.5 w-2.5",
886
+ md: "h-3 w-3",
887
+ lg: "h-4 w-4"
888
+ },
889
+ shape: {
890
+ circle: "rounded-full",
891
+ diamond: ""
853
892
  }
854
893
  },
855
894
  defaultVariants: {
856
895
  variant: "default",
857
- size: "md"
896
+ size: "md",
897
+ shape: "circle"
858
898
  }
859
899
  });
860
900
  var RadioGroupRoot = React11.forwardRef((_a, ref) => {
@@ -869,15 +909,15 @@ var RadioGroupRoot = React11.forwardRef((_a, ref) => {
869
909
  });
870
910
  RadioGroupRoot.displayName = "RadioGroup";
871
911
  var RadioGroupItem = React11.forwardRef((_a, ref) => {
872
- var _b = _a, { className, size, variant, children } = _b, props = __objRest(_b, ["className", "size", "variant", "children"]);
912
+ var _b = _a, { className, size, variant, shape, children } = _b, props = __objRest(_b, ["className", "size", "variant", "shape", "children"]);
873
913
  return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
874
914
  RadioPrimitive.Item,
875
915
  __spreadProps(__spreadValues({
876
916
  ref,
877
- className: cn(radioVariants({ size, variant }), className)
917
+ className: cn(radioVariants({ size, variant, shape }), className)
878
918
  }, props), {
879
919
  children: [
880
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(RadioPrimitive.Indicator, { className: "flex justify-center items-center", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: radioIndicatorVariants({ size, variant }) }) }),
920
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(RadioPrimitive.Indicator, { className: "flex justify-center items-center", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: radioIndicatorVariants({ size, variant, shape }) }) }),
881
921
  children
882
922
  ]
883
923
  })
@@ -1139,7 +1179,7 @@ var FormActions = React15.forwardRef(
1139
1179
  __spreadValues({
1140
1180
  ref,
1141
1181
  className: cn(
1142
- "flex items-center gap-3 border-t-2 border-border pt-6",
1182
+ "flex items-center gap-3 border-t-2 border-border mt-6 pt-6",
1143
1183
  alignMap[align],
1144
1184
  className
1145
1185
  )
@@ -1156,11 +1196,11 @@ var FormLayout = Object.assign(FormLayoutRoot, {
1156
1196
  });
1157
1197
 
1158
1198
  // components/ui/Link.tsx
1159
- var import_class_variance_authority6 = require("class-variance-authority");
1199
+ var import_class_variance_authority7 = require("class-variance-authority");
1160
1200
  var import_react7 = __toESM(require("react"));
1161
1201
  var import_react_slot4 = require("@radix-ui/react-slot");
1162
1202
  var import_jsx_runtime18 = require("react/jsx-runtime");
1163
- var linkVariants = (0, import_class_variance_authority6.cva)(
1203
+ var linkVariants = (0, import_class_variance_authority7.cva)(
1164
1204
  "font-head inline-flex items-center gap-1 cursor-pointer transition-colors duration-200 underline-offset-4",
1165
1205
  {
1166
1206
  variants: {
@@ -1213,9 +1253,9 @@ Link.displayName = "Link";
1213
1253
 
1214
1254
  // components/ui/Alert.tsx
1215
1255
  var React17 = __toESM(require("react"));
1216
- var import_class_variance_authority7 = require("class-variance-authority");
1256
+ var import_class_variance_authority8 = require("class-variance-authority");
1217
1257
  var import_jsx_runtime19 = require("react/jsx-runtime");
1218
- var alertVariants = (0, import_class_variance_authority7.cva)(
1258
+ var alertVariants = (0, import_class_variance_authority8.cva)(
1219
1259
  "relative w-full border-2 border-border p-4",
1220
1260
  {
1221
1261
  variants: {
@@ -1279,11 +1319,11 @@ var AlertComponent = Object.assign(AlertRoot, {
1279
1319
  });
1280
1320
 
1281
1321
  // components/ui/IconButton.tsx
1282
- var import_class_variance_authority8 = require("class-variance-authority");
1322
+ var import_class_variance_authority9 = require("class-variance-authority");
1283
1323
  var import_react8 = __toESM(require("react"));
1284
1324
  var import_react_slot5 = require("@radix-ui/react-slot");
1285
1325
  var import_jsx_runtime20 = require("react/jsx-runtime");
1286
- var iconButtonVariants = (0, import_class_variance_authority8.cva)(
1326
+ var iconButtonVariants = (0, import_class_variance_authority9.cva)(
1287
1327
  "font-head transition-all outline-hidden cursor-pointer duration-200 inline-flex justify-center items-center disabled:opacity-60 disabled:cursor-not-allowed border-2 border-border",
1288
1328
  {
1289
1329
  variants: {
@@ -1336,9 +1376,9 @@ IconButton.displayName = "IconButton";
1336
1376
 
1337
1377
  // components/ui/Loader.tsx
1338
1378
  var React19 = __toESM(require("react"));
1339
- var import_class_variance_authority9 = require("class-variance-authority");
1379
+ var import_class_variance_authority10 = require("class-variance-authority");
1340
1380
  var import_jsx_runtime21 = require("react/jsx-runtime");
1341
- var loaderVariants = (0, import_class_variance_authority9.cva)("flex gap-1", {
1381
+ var loaderVariants = (0, import_class_variance_authority10.cva)("flex gap-1", {
1342
1382
  variants: {
1343
1383
  variant: {
1344
1384
  default: "[&>div]:bg-primary [&>div]:border-border",
@@ -1403,12 +1443,12 @@ Loader.displayName = "Loader";
1403
1443
  var React20 = __toESM(require("react"));
1404
1444
  var ReactDialog = __toESM(require("@radix-ui/react-dialog"));
1405
1445
  var import_react_visually_hidden = require("@radix-ui/react-visually-hidden");
1406
- var import_class_variance_authority10 = require("class-variance-authority");
1446
+ var import_class_variance_authority11 = require("class-variance-authority");
1407
1447
  var import_lucide_react4 = require("lucide-react");
1408
1448
  var import_jsx_runtime22 = require("react/jsx-runtime");
1409
1449
  var Dialog = ReactDialog.Root;
1410
1450
  var DialogTrigger = ReactDialog.Trigger;
1411
- var overlayVariants = (0, import_class_variance_authority10.cva)(
1451
+ var overlayVariants = (0, import_class_variance_authority11.cva)(
1412
1452
  "fixed inset-0 z-50 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
1413
1453
  {
1414
1454
  variants: {
@@ -1435,7 +1475,7 @@ var DialogOverlay = React20.forwardRef(
1435
1475
  }
1436
1476
  );
1437
1477
  DialogOverlay.displayName = "Dialog.Overlay";
1438
- var dialogContentVariants = (0, import_class_variance_authority10.cva)(
1478
+ var dialogContentVariants = (0, import_class_variance_authority11.cva)(
1439
1479
  "fixed left-[50%] top-[50%] z-50 grid w-full translate-x-[-50%] translate-y-[-50%] border-2 border-border bg-background shadow-lg duration-200 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
1440
1480
  {
1441
1481
  variants: {
@@ -1533,9 +1573,9 @@ var DialogComponent = Object.assign(Dialog, {
1533
1573
 
1534
1574
  // components/ui/Divider.tsx
1535
1575
  var React21 = __toESM(require("react"));
1536
- var import_class_variance_authority11 = require("class-variance-authority");
1576
+ var import_class_variance_authority12 = require("class-variance-authority");
1537
1577
  var import_jsx_runtime23 = require("react/jsx-runtime");
1538
- var dividerVariants = (0, import_class_variance_authority11.cva)("border-border", {
1578
+ var dividerVariants = (0, import_class_variance_authority12.cva)("border-border", {
1539
1579
  variants: {
1540
1580
  orientation: {
1541
1581
  horizontal: "w-full border-t-2",
@@ -1579,9 +1619,9 @@ Divider.displayName = "Divider";
1579
1619
 
1580
1620
  // components/ui/Stack.tsx
1581
1621
  var React22 = __toESM(require("react"));
1582
- var import_class_variance_authority12 = require("class-variance-authority");
1622
+ var import_class_variance_authority13 = require("class-variance-authority");
1583
1623
  var import_jsx_runtime24 = require("react/jsx-runtime");
1584
- var stackVariants = (0, import_class_variance_authority12.cva)("flex", {
1624
+ var stackVariants = (0, import_class_variance_authority13.cva)("flex", {
1585
1625
  variants: {
1586
1626
  direction: {
1587
1627
  vertical: "flex-col",
@@ -1651,9 +1691,9 @@ Stack.displayName = "Stack";
1651
1691
 
1652
1692
  // components/ui/Flex.tsx
1653
1693
  var React23 = __toESM(require("react"));
1654
- var import_class_variance_authority13 = require("class-variance-authority");
1694
+ var import_class_variance_authority14 = require("class-variance-authority");
1655
1695
  var import_jsx_runtime25 = require("react/jsx-runtime");
1656
- var flexVariants = (0, import_class_variance_authority13.cva)("flex", {
1696
+ var flexVariants = (0, import_class_variance_authority14.cva)("flex", {
1657
1697
  variants: {
1658
1698
  direction: {
1659
1699
  row: "flex-row",
@@ -1735,9 +1775,9 @@ Flex.displayName = "Flex";
1735
1775
 
1736
1776
  // components/ui/Grid.tsx
1737
1777
  var React24 = __toESM(require("react"));
1738
- var import_class_variance_authority14 = require("class-variance-authority");
1778
+ var import_class_variance_authority15 = require("class-variance-authority");
1739
1779
  var import_jsx_runtime26 = require("react/jsx-runtime");
1740
- var gridVariants = (0, import_class_variance_authority14.cva)("grid", {
1780
+ var gridVariants = (0, import_class_variance_authority15.cva)("grid", {
1741
1781
  variants: {
1742
1782
  columns: {
1743
1783
  1: "grid-cols-1",
@@ -1828,9 +1868,9 @@ Grid.displayName = "Grid";
1828
1868
 
1829
1869
  // components/ui/Container.tsx
1830
1870
  var React25 = __toESM(require("react"));
1831
- var import_class_variance_authority15 = require("class-variance-authority");
1871
+ var import_class_variance_authority16 = require("class-variance-authority");
1832
1872
  var import_jsx_runtime27 = require("react/jsx-runtime");
1833
- var containerVariants = (0, import_class_variance_authority15.cva)("mx-auto px-4 sm:px-6 lg:px-8", {
1873
+ var containerVariants = (0, import_class_variance_authority16.cva)("mx-auto px-4 sm:px-6 lg:px-8", {
1834
1874
  variants: {
1835
1875
  size: {
1836
1876
  sm: "max-w-2xl",
@@ -2889,7 +2929,7 @@ var MenubarComponent = Object.assign(MenubarRoot, {
2889
2929
  // components/ui/NavigationMenu.tsx
2890
2930
  var React38 = __toESM(require("react"));
2891
2931
  var NavigationMenuPrimitive = __toESM(require("@radix-ui/react-navigation-menu"));
2892
- var import_class_variance_authority16 = require("class-variance-authority");
2932
+ var import_class_variance_authority17 = require("class-variance-authority");
2893
2933
  var import_lucide_react9 = require("lucide-react");
2894
2934
  var import_jsx_runtime40 = require("react/jsx-runtime");
2895
2935
  var NavigationMenuRoot = React38.forwardRef((_a, ref) => {
@@ -2937,7 +2977,7 @@ var NavigationMenuItem = React38.forwardRef((_a, ref) => {
2937
2977
  );
2938
2978
  });
2939
2979
  NavigationMenuItem.displayName = "NavigationMenu.Item";
2940
- var navigationMenuTriggerStyle = (0, import_class_variance_authority16.cva)(
2980
+ var navigationMenuTriggerStyle = (0, import_class_variance_authority17.cva)(
2941
2981
  "group inline-flex h-10 w-max items-center justify-center bg-background text-foreground px-4 py-2 text-sm font-head transition-colors hover:bg-muted focus:outline-none disabled:pointer-events-none disabled:opacity-50"
2942
2982
  );
2943
2983
  var NavigationMenuTrigger = React38.forwardRef((_a, ref) => {
@@ -4206,7 +4246,7 @@ var Pagination = Object.assign(PaginationRoot, {
4206
4246
  // components/ui/Sheet.tsx
4207
4247
  var React49 = __toESM(require("react"));
4208
4248
  var SheetPrimitive = __toESM(require("@radix-ui/react-dialog"));
4209
- var import_class_variance_authority17 = require("class-variance-authority");
4249
+ var import_class_variance_authority18 = require("class-variance-authority");
4210
4250
  var import_lucide_react16 = require("lucide-react");
4211
4251
  var import_jsx_runtime53 = require("react/jsx-runtime");
4212
4252
  var Sheet = SheetPrimitive.Root;
@@ -4226,7 +4266,7 @@ var SheetOverlay = React49.forwardRef((_a, ref) => {
4226
4266
  );
4227
4267
  });
4228
4268
  SheetOverlay.displayName = "Sheet.Overlay";
4229
- var sheetContentVariants = (0, import_class_variance_authority17.cva)(
4269
+ var sheetContentVariants = (0, import_class_variance_authority18.cva)(
4230
4270
  "fixed z-50 flex flex-col gap-4 border-2 border-border bg-background transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
4231
4271
  {
4232
4272
  variants: {
@@ -4934,7 +4974,7 @@ var DataTableComponent = Object.assign(DataTableRoot, {
4934
4974
  // components/ui/Sidebar.tsx
4935
4975
  var React55 = __toESM(require("react"));
4936
4976
  var import_react_slot8 = require("@radix-ui/react-slot");
4937
- var import_class_variance_authority18 = require("class-variance-authority");
4977
+ var import_class_variance_authority19 = require("class-variance-authority");
4938
4978
  var import_lucide_react20 = require("lucide-react");
4939
4979
 
4940
4980
  // hooks/use-mobile.ts
@@ -5348,7 +5388,7 @@ var SidebarMenuItem = React55.forwardRef((_a, ref) => {
5348
5388
  );
5349
5389
  });
5350
5390
  SidebarMenuItem.displayName = "Sidebar.MenuItem";
5351
- var sidebarMenuButtonVariants = (0, import_class_variance_authority18.cva)(
5391
+ var sidebarMenuButtonVariants = (0, import_class_variance_authority19.cva)(
5352
5392
  "peer/menu-button flex w-full items-center gap-2 overflow-hidden outline-2 outline-transparent p-2 text-left text-sm ring-ring transition-[width,height,padding] hover:bg-primary hover:text-primary-foreground hover:outline-border focus-visible:outline-border focus-visible:text-primary-foreground focus-visible:bg-primary 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 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
5353
5393
  {
5354
5394
  variants: {
@@ -5988,9 +6028,9 @@ function Hero({
5988
6028
  }
5989
6029
 
5990
6030
  // components/landing/Section.tsx
5991
- var import_class_variance_authority19 = require("class-variance-authority");
6031
+ var import_class_variance_authority20 = require("class-variance-authority");
5992
6032
  var import_jsx_runtime66 = require("react/jsx-runtime");
5993
- var sectionVariants = (0, import_class_variance_authority19.cva)("w-full py-16 lg:py-24 scroll-mt-[120px]", {
6033
+ var sectionVariants = (0, import_class_variance_authority20.cva)("w-full py-16 lg:py-24 scroll-mt-[120px]", {
5994
6034
  variants: {
5995
6035
  background: {
5996
6036
  default: "bg-background",
@@ -6445,6 +6485,7 @@ function NewsletterSignup({
6445
6485
  Tooltip,
6446
6486
  TwoColumnLayout,
6447
6487
  alertVariants,
6488
+ avatarVariants,
6448
6489
  badgeVariants,
6449
6490
  buttonVariants,
6450
6491
  cardVariants,