@trading-game/design-intelligence-layer 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -64,7 +64,7 @@ declare function AvatarGroup({ className, ...props }: React$1.ComponentProps<"di
64
64
  declare function AvatarGroupCount({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
65
65
 
66
66
  declare const badgeVariants: (props?: ({
67
- variant?: "fill" | "default" | "default-success" | "default-fail" | "default-warning" | "fill-success" | "fill-fail" | "fill-warning" | "ghost" | "ghost-success" | "ghost-fail" | "ghost-warning" | null | undefined;
67
+ variant?: "fill" | "default" | "default-success" | "default-fail" | "default-warning" | "fill-success" | "fill-fail" | "fill-warning" | "fill-credit" | "ghost" | "ghost-success" | "ghost-fail" | "ghost-warning" | null | undefined;
68
68
  size?: "lg" | "md" | "sm" | null | undefined;
69
69
  } & class_variance_authority_types.ClassProp) | undefined) => string;
70
70
  declare function Badge({ className, variant, size, asChild, ...props }: React$1.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
@@ -618,17 +618,52 @@ declare function TabsContent({ className, ...props }: React$1.ComponentProps<typ
618
618
 
619
619
  declare function Textarea({ className, ...props }: React$1.ComponentProps<"textarea">): react_jsx_runtime.JSX.Element;
620
620
 
621
- interface TicketCardProps {
621
+ type TicketCardProps = {
622
+ className?: string;
623
+ /** Optional icon rendered inside the left ring circle. */
622
624
  icon?: React$1.ReactNode;
623
- label?: string;
624
- value?: string;
625
- stubIcon?: React$1.ReactNode;
626
- stubLabel?: string;
625
+ /** Small label shown above the value (e.g. "Total Balance"). */
626
+ label: string;
627
+ /** Main value text (e.g. "10,000.00"). */
628
+ value: string;
629
+ /** Optional muted currency/unit suffix next to value (e.g. "USDT"). */
630
+ currency?: string;
631
+ /** Label on the right stub button. */
632
+ stubLabel: string;
633
+ /** Called when the stub button is clicked. */
627
634
  onStubClick?: () => void;
635
+ /** Disables the stub button. */
628
636
  stubDisabled?: boolean;
637
+ /** Compact (mobile) layout — reduces horizontal padding from 16px to 8px. */
638
+ compact?: boolean;
639
+ };
640
+ declare function TicketCard({ className, icon, label, value, currency, stubLabel, onStubClick, stubDisabled, compact, }: TicketCardProps): react_jsx_runtime.JSX.Element;
641
+ type CreditTicketCardProps = {
629
642
  className?: string;
630
- }
631
- declare function TicketCard({ icon, label, value, stubIcon, stubLabel, onStubClick, stubDisabled, className, }: TicketCardProps): react_jsx_runtime.JSX.Element;
643
+ /** Optional icon rendered inside the left ring circle. */
644
+ icon?: React$1.ReactNode;
645
+ /** Small label shown above the value (e.g. "Total Balance"). */
646
+ label: string;
647
+ /** Main value text (e.g. "0 USD"). */
648
+ value: string;
649
+ /** Optional muted currency/unit suffix next to value (e.g. "USDT"). */
650
+ currency?: string;
651
+ /** Label on the right stub button. */
652
+ stubLabel: string;
653
+ /** Called when the stub button is clicked. */
654
+ onStubClick?: () => void;
655
+ /** Disables the stub button. */
656
+ stubDisabled?: boolean;
657
+ /** Credit amount shown in the badge (e.g. "0.00"). */
658
+ creditAmount?: string;
659
+ /** Currency shown in the credit badge (e.g. "USDT"). */
660
+ creditCurrency?: string;
661
+ /** Compact (mobile) layout — reduces horizontal padding from 16px to 8px. */
662
+ compact?: boolean;
663
+ };
664
+ declare function CreditTicketCard({ className, icon, label, value, currency, stubLabel, onStubClick, stubDisabled, creditAmount, creditCurrency, compact, }: CreditTicketCardProps): react_jsx_runtime.JSX.Element;
665
+ /** Alias for the Figma-named variant. */
666
+ declare const TicketCardDesktop: typeof TicketCard;
632
667
 
633
668
  declare const toggleVariants: (props?: ({
634
669
  variant?: "default" | "outline" | null | undefined;
@@ -645,4 +680,4 @@ declare function cn(...inputs: ClassValue[]): string;
645
680
 
646
681
  declare function useIsMobile(): boolean;
647
682
 
648
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, 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, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, 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, DirectionProvider, 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, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, Link, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationButton, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, 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, Spinner, Stepper, type StepperProps, type StepperSize, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, TicketCard, type TicketCardProps, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, inputVariants, linkVariants, navigationButtonVariants, navigationMenuTriggerStyle, tabsListVariants, toggleVariants, useComboboxAnchor, useDirection, useFormField, useIsMobile, useSidebar };
683
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, 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, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CreditTicketCard, type CreditTicketCardProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DirectionProvider, 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, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, Link, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationButton, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, 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, Spinner, Stepper, type StepperProps, type StepperSize, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, TicketCard, TicketCardDesktop, type TicketCardProps, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, inputVariants, linkVariants, navigationButtonVariants, navigationMenuTriggerStyle, tabsListVariants, toggleVariants, useComboboxAnchor, useDirection, useFormField, useIsMobile, useSidebar };
package/dist/index.d.ts CHANGED
@@ -64,7 +64,7 @@ declare function AvatarGroup({ className, ...props }: React$1.ComponentProps<"di
64
64
  declare function AvatarGroupCount({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
65
65
 
66
66
  declare const badgeVariants: (props?: ({
67
- variant?: "fill" | "default" | "default-success" | "default-fail" | "default-warning" | "fill-success" | "fill-fail" | "fill-warning" | "ghost" | "ghost-success" | "ghost-fail" | "ghost-warning" | null | undefined;
67
+ variant?: "fill" | "default" | "default-success" | "default-fail" | "default-warning" | "fill-success" | "fill-fail" | "fill-warning" | "fill-credit" | "ghost" | "ghost-success" | "ghost-fail" | "ghost-warning" | null | undefined;
68
68
  size?: "lg" | "md" | "sm" | null | undefined;
69
69
  } & class_variance_authority_types.ClassProp) | undefined) => string;
70
70
  declare function Badge({ className, variant, size, asChild, ...props }: React$1.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
@@ -618,17 +618,52 @@ declare function TabsContent({ className, ...props }: React$1.ComponentProps<typ
618
618
 
619
619
  declare function Textarea({ className, ...props }: React$1.ComponentProps<"textarea">): react_jsx_runtime.JSX.Element;
620
620
 
621
- interface TicketCardProps {
621
+ type TicketCardProps = {
622
+ className?: string;
623
+ /** Optional icon rendered inside the left ring circle. */
622
624
  icon?: React$1.ReactNode;
623
- label?: string;
624
- value?: string;
625
- stubIcon?: React$1.ReactNode;
626
- stubLabel?: string;
625
+ /** Small label shown above the value (e.g. "Total Balance"). */
626
+ label: string;
627
+ /** Main value text (e.g. "10,000.00"). */
628
+ value: string;
629
+ /** Optional muted currency/unit suffix next to value (e.g. "USDT"). */
630
+ currency?: string;
631
+ /** Label on the right stub button. */
632
+ stubLabel: string;
633
+ /** Called when the stub button is clicked. */
627
634
  onStubClick?: () => void;
635
+ /** Disables the stub button. */
628
636
  stubDisabled?: boolean;
637
+ /** Compact (mobile) layout — reduces horizontal padding from 16px to 8px. */
638
+ compact?: boolean;
639
+ };
640
+ declare function TicketCard({ className, icon, label, value, currency, stubLabel, onStubClick, stubDisabled, compact, }: TicketCardProps): react_jsx_runtime.JSX.Element;
641
+ type CreditTicketCardProps = {
629
642
  className?: string;
630
- }
631
- declare function TicketCard({ icon, label, value, stubIcon, stubLabel, onStubClick, stubDisabled, className, }: TicketCardProps): react_jsx_runtime.JSX.Element;
643
+ /** Optional icon rendered inside the left ring circle. */
644
+ icon?: React$1.ReactNode;
645
+ /** Small label shown above the value (e.g. "Total Balance"). */
646
+ label: string;
647
+ /** Main value text (e.g. "0 USD"). */
648
+ value: string;
649
+ /** Optional muted currency/unit suffix next to value (e.g. "USDT"). */
650
+ currency?: string;
651
+ /** Label on the right stub button. */
652
+ stubLabel: string;
653
+ /** Called when the stub button is clicked. */
654
+ onStubClick?: () => void;
655
+ /** Disables the stub button. */
656
+ stubDisabled?: boolean;
657
+ /** Credit amount shown in the badge (e.g. "0.00"). */
658
+ creditAmount?: string;
659
+ /** Currency shown in the credit badge (e.g. "USDT"). */
660
+ creditCurrency?: string;
661
+ /** Compact (mobile) layout — reduces horizontal padding from 16px to 8px. */
662
+ compact?: boolean;
663
+ };
664
+ declare function CreditTicketCard({ className, icon, label, value, currency, stubLabel, onStubClick, stubDisabled, creditAmount, creditCurrency, compact, }: CreditTicketCardProps): react_jsx_runtime.JSX.Element;
665
+ /** Alias for the Figma-named variant. */
666
+ declare const TicketCardDesktop: typeof TicketCard;
632
667
 
633
668
  declare const toggleVariants: (props?: ({
634
669
  variant?: "default" | "outline" | null | undefined;
@@ -645,4 +680,4 @@ declare function cn(...inputs: ClassValue[]): string;
645
680
 
646
681
  declare function useIsMobile(): boolean;
647
682
 
648
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, 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, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, 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, DirectionProvider, 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, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, Link, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationButton, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, 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, Spinner, Stepper, type StepperProps, type StepperSize, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, TicketCard, type TicketCardProps, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, inputVariants, linkVariants, navigationButtonVariants, navigationMenuTriggerStyle, tabsListVariants, toggleVariants, useComboboxAnchor, useDirection, useFormField, useIsMobile, useSidebar };
683
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, 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, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CreditTicketCard, type CreditTicketCardProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DirectionProvider, 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, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, Link, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationButton, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, 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, Spinner, Stepper, type StepperProps, type StepperSize, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, TicketCard, TicketCardDesktop, type TicketCardProps, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, inputVariants, linkVariants, navigationButtonVariants, navigationMenuTriggerStyle, tabsListVariants, toggleVariants, useComboboxAnchor, useDirection, useFormField, useIsMobile, useSidebar };
package/dist/index.js CHANGED
@@ -584,7 +584,7 @@ import { cva as cva3 } from "class-variance-authority";
584
584
  import { Slot as Slot2 } from "radix-ui";
585
585
  import { jsx as jsx8 } from "react/jsx-runtime";
586
586
  var badgeVariants = cva3(
587
- "inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent text-xs font-display font-semibold tracking-wide whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [&>svg]:pointer-events-none [&>svg]:size-3",
587
+ "inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent text-xs font-display font-semibold whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [&>svg]:pointer-events-none [&>svg]:size-3",
588
588
  {
589
589
  variants: {
590
590
  variant: {
@@ -598,6 +598,7 @@ var badgeVariants = cva3(
598
598
  "fill-success": "bg-semantic-win/10 border-transparent text-semantic-win",
599
599
  "fill-fail": "bg-semantic-loss/10 border-transparent text-semantic-loss",
600
600
  "fill-warning": "bg-semantic-warning/10 border-transparent text-semantic-warning",
601
+ "fill-credit": "bg-semantic-credit/16 border-transparent text-semantic-credit-text !text-xs !font-semibold",
601
602
  // Ghost (transparent)
602
603
  ghost: "bg-transparent border-transparent text-primary [a&]:hover:bg-secondary-hover [a&]:hover:text-primary",
603
604
  "ghost-success": "bg-transparent border-transparent text-semantic-win [a&]:hover:bg-semantic-win/10 [a&]:hover:text-semantic-win",
@@ -2400,7 +2401,7 @@ function CommandShortcut(_a) {
2400
2401
  __spreadValues({
2401
2402
  "data-slot": "command-shortcut",
2402
2403
  className: cn(
2403
- "ml-auto text-xs tracking-widest text-on-subtle",
2404
+ "ml-auto text-xs text-on-subtle",
2404
2405
  className
2405
2406
  )
2406
2407
  }, props)
@@ -2620,7 +2621,7 @@ function ContextMenuShortcut(_a) {
2620
2621
  __spreadValues({
2621
2622
  "data-slot": "context-menu-shortcut",
2622
2623
  className: cn(
2623
- "ml-auto text-xs tracking-widest text-on-subtle",
2624
+ "ml-auto text-xs text-on-subtle",
2624
2625
  className
2625
2626
  )
2626
2627
  }, props)
@@ -2931,7 +2932,7 @@ function DropdownMenuShortcut(_a) {
2931
2932
  __spreadValues({
2932
2933
  "data-slot": "dropdown-menu-shortcut",
2933
2934
  className: cn(
2934
- "ml-auto text-xs tracking-widest text-on-subtle",
2935
+ "ml-auto text-xs text-on-subtle",
2935
2936
  className
2936
2937
  )
2937
2938
  }, props)
@@ -3792,7 +3793,7 @@ import { cva as cva9 } from "class-variance-authority";
3792
3793
  import { Slot as Slot6 } from "radix-ui";
3793
3794
  import { jsx as jsx35 } from "react/jsx-runtime";
3794
3795
  var linkVariants = cva9(
3795
- "inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 active:opacity-60 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:inline font-display font-bold normal-case tracking-wide text-primary hover:underline decoration-2 underline-offset-4",
3796
+ "inline-flex shrink-0 items-center gap-1.5 whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 active:opacity-60 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:inline font-display font-bold normal-case text-primary hover:underline decoration-2 underline-offset-4",
3796
3797
  {
3797
3798
  variants: {
3798
3799
  size: {
@@ -4026,7 +4027,7 @@ function MenubarShortcut(_a) {
4026
4027
  __spreadValues({
4027
4028
  "data-slot": "menubar-shortcut",
4028
4029
  className: cn(
4029
- "ml-auto text-xs tracking-widest text-on-subtle",
4030
+ "ml-auto text-xs text-on-subtle",
4030
4031
  className
4031
4032
  )
4032
4033
  }, props)
@@ -4414,7 +4415,7 @@ function PaginationLink(_a) {
4414
4415
  "data-slot": "pagination-link",
4415
4416
  "data-active": isActive,
4416
4417
  className: cn(
4417
- "inline-flex shrink-0 items-center justify-center size-10 rounded-xs text-sm font-display font-bold uppercase tracking-wide whitespace-nowrap transition-[color,background-color,border-color] outline-none border",
4418
+ "inline-flex shrink-0 items-center justify-center size-10 rounded-xs text-sm font-display font-bold uppercase whitespace-nowrap transition-[color,background-color,border-color] outline-none border",
4418
4419
  isActive ? "bg-primary/10 border-primary text-primary" : "bg-transparent border-transparent text-on-prominent hover:bg-secondary-hover",
4419
4420
  className
4420
4421
  )
@@ -6275,95 +6276,158 @@ function TabsContent(_a) {
6275
6276
  }
6276
6277
 
6277
6278
  // components/ui/ticket-card.tsx
6278
- import { ArrowRight as ArrowRight2 } from "lucide-react";
6279
- import { jsx as jsx57, jsxs as jsxs27 } from "react/jsx-runtime";
6279
+ import { ArrowRight as ArrowRight2, TicketPlus } from "lucide-react";
6280
+ import { Fragment as Fragment3, jsx as jsx57, jsxs as jsxs27 } from "react/jsx-runtime";
6280
6281
  function TicketCard({
6282
+ className,
6281
6283
  icon,
6282
6284
  label,
6283
6285
  value,
6284
- stubIcon,
6286
+ currency,
6285
6287
  stubLabel,
6286
6288
  onStubClick,
6287
6289
  stubDisabled = false,
6288
- className
6290
+ compact = false
6289
6291
  }) {
6290
- return /* @__PURE__ */ jsxs27(
6291
- "div",
6292
- {
6293
- "data-slot": "ticket-card",
6294
- className: cn(
6295
- "relative flex w-full items-stretch rounded-sm",
6296
- "bg-subtle",
6297
- className
6298
- ),
6299
- children: [
6300
- /* @__PURE__ */ jsxs27("div", { className: "relative flex min-w-0 flex-1 items-center gap-3 px-4 py-4 sm:gap-4 sm:px-5", children: [
6301
- icon && /* @__PURE__ */ jsx57("div", { className: "flex shrink-0 size-11 rounded-full border-2 border-primary items-center justify-center text-primary sm:size-12", children: icon }),
6302
- /* @__PURE__ */ jsxs27("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5 overflow-hidden", children: [
6303
- label && /* @__PURE__ */ jsx57("span", { className: "text-on-subtle text-xs font-semibold", children: label }),
6304
- value && /* @__PURE__ */ jsx57("span", { className: "truncate text-lg font-bold text-on-prominent sm:text-xl", children: value })
6305
- ] }),
6306
- /* @__PURE__ */ jsx57(
6307
- "div",
6292
+ return /* @__PURE__ */ jsx57("div", { className: cn("flex w-full flex-col gap-2", className), children: /* @__PURE__ */ jsxs27("div", { className: "relative flex h-20 w-full items-stretch justify-between rounded-sm bg-subtle", children: [
6293
+ /* @__PURE__ */ jsxs27("div", { className: cn("flex flex-1 items-center overflow-hidden", compact ? "gap-2 px-2" : "gap-4 px-4"), children: [
6294
+ icon && /* @__PURE__ */ jsx57("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-full border-2 border-primary text-primary", children: icon }),
6295
+ /* @__PURE__ */ jsxs27("div", { className: "flex h-11 flex-col justify-center gap-1 whitespace-nowrap", children: [
6296
+ /* @__PURE__ */ jsx57("p", { className: "text-xs text-on-subtle", children: label }),
6297
+ /* @__PURE__ */ jsxs27("p", { className: "leading-none", children: [
6298
+ /* @__PURE__ */ jsx57("span", { className: "text-[20px] font-bold text-on-prominent", children: value }),
6299
+ currency && /* @__PURE__ */ jsxs27(Fragment3, { children: [
6300
+ " ",
6301
+ /* @__PURE__ */ jsx57("span", { className: "text-sm text-on-subtle", children: currency })
6302
+ ] })
6303
+ ] })
6304
+ ] })
6305
+ ] }),
6306
+ /* @__PURE__ */ jsx57("div", { "aria-hidden": true, className: "pointer-events-none absolute right-[88px] top-[-12px] z-10 size-6 rounded-full bg-prominent" }),
6307
+ /* @__PURE__ */ jsx57("div", { "aria-hidden": true, className: "pointer-events-none absolute right-[88px] top-[68px] z-10 size-6 rounded-full bg-prominent" }),
6308
+ /* @__PURE__ */ jsx57(
6309
+ "div",
6310
+ {
6311
+ "aria-hidden": true,
6312
+ className: "pointer-events-none absolute bottom-[12px] top-[12px] z-10 w-1 -translate-x-1/2",
6313
+ style: {
6314
+ right: 96,
6315
+ backgroundImage: "repeating-linear-gradient(to bottom, color-mix(in oklch, var(--border-subtle) 80%, black) 0px, color-mix(in oklch, var(--border-subtle) 80%, black) 3px, transparent 3px, transparent 6px)"
6316
+ }
6317
+ }
6318
+ ),
6319
+ /* @__PURE__ */ jsxs27(
6320
+ "button",
6321
+ {
6322
+ type: "button",
6323
+ onClick: onStubClick,
6324
+ disabled: stubDisabled,
6325
+ "aria-label": stubLabel,
6326
+ className: cn(
6327
+ "relative flex h-20 w-[100px] shrink-0 flex-col items-center justify-center gap-1 overflow-hidden rounded-r-sm bg-primary",
6328
+ "transition-colors duration-fast ease-standard",
6329
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
6330
+ stubDisabled ? "cursor-not-allowed opacity-50" : "hover:bg-primary-hover"
6331
+ ),
6332
+ children: [
6333
+ !stubDisabled && /* @__PURE__ */ jsx57(
6334
+ "span",
6308
6335
  {
6309
6336
  "aria-hidden": true,
6310
- className: "pointer-events-none absolute right-0 top-0 z-10 size-5 -translate-y-1/2 translate-x-1/2 rounded-full bg-prominent"
6337
+ className: "pointer-events-none absolute inset-0 [animation:stub-shimmer_1.5s_linear_infinite]",
6338
+ style: {
6339
+ background: "linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.30) 50%, transparent 100%)"
6340
+ }
6311
6341
  }
6312
6342
  ),
6313
- /* @__PURE__ */ jsx57(
6314
- "div",
6343
+ /* @__PURE__ */ jsx57(ArrowRight2, { className: "size-4 text-on-prominent-static-inverse" }),
6344
+ /* @__PURE__ */ jsx57("span", { className: "text-sm font-semibold text-on-prominent-static-inverse", children: stubLabel })
6345
+ ]
6346
+ }
6347
+ )
6348
+ ] }) });
6349
+ }
6350
+ function CreditTicketCard({
6351
+ className,
6352
+ icon,
6353
+ label,
6354
+ value,
6355
+ currency,
6356
+ stubLabel,
6357
+ onStubClick,
6358
+ stubDisabled = false,
6359
+ creditAmount = "0.00",
6360
+ creditCurrency = "USDT",
6361
+ compact = false
6362
+ }) {
6363
+ return /* @__PURE__ */ jsx57("div", { className: cn("flex w-full flex-col gap-2", className), children: /* @__PURE__ */ jsxs27("div", { className: "relative flex w-full items-stretch justify-between rounded-sm bg-subtle", children: [
6364
+ /* @__PURE__ */ jsxs27("div", { className: cn("flex flex-1 items-center overflow-hidden py-4", compact ? "gap-2 px-2" : "gap-4 px-4"), children: [
6365
+ icon && /* @__PURE__ */ jsx57("div", { className: "flex size-10 shrink-0 items-center justify-center rounded-full border-2 border-primary text-primary", children: icon }),
6366
+ /* @__PURE__ */ jsxs27("div", { className: "flex flex-col gap-2 whitespace-nowrap", children: [
6367
+ /* @__PURE__ */ jsxs27("div", { className: "flex flex-col gap-1", children: [
6368
+ /* @__PURE__ */ jsx57("p", { className: "text-xs text-on-subtle", children: label }),
6369
+ /* @__PURE__ */ jsxs27("p", { className: "leading-none", children: [
6370
+ /* @__PURE__ */ jsx57("span", { className: "text-[20px] font-bold text-on-prominent", children: value }),
6371
+ currency && /* @__PURE__ */ jsxs27(Fragment3, { children: [
6372
+ " ",
6373
+ /* @__PURE__ */ jsx57("span", { className: "text-sm text-on-subtle", children: currency })
6374
+ ] })
6375
+ ] })
6376
+ ] }),
6377
+ /* @__PURE__ */ jsxs27(Badge, { variant: "fill-credit", size: "sm", className: "!gap-1 !font-bold !tracking-normal", children: [
6378
+ /* @__PURE__ */ jsx57(TicketPlus, { className: "!size-3.5" }),
6379
+ "Credit: ",
6380
+ creditAmount,
6381
+ " ",
6382
+ creditCurrency
6383
+ ] })
6384
+ ] })
6385
+ ] }),
6386
+ /* @__PURE__ */ jsx57("div", { "aria-hidden": true, className: "pointer-events-none absolute right-[88px] top-[-12px] z-10 size-6 rounded-full bg-prominent" }),
6387
+ /* @__PURE__ */ jsx57("div", { "aria-hidden": true, className: "pointer-events-none absolute right-[88px] bottom-[-12px] z-10 size-6 rounded-full bg-prominent" }),
6388
+ /* @__PURE__ */ jsx57(
6389
+ "div",
6390
+ {
6391
+ "aria-hidden": true,
6392
+ className: "pointer-events-none absolute bottom-[12px] top-[12px] z-10 w-1 -translate-x-1/2",
6393
+ style: {
6394
+ right: 96,
6395
+ backgroundImage: "repeating-linear-gradient(to bottom, color-mix(in oklch, var(--border-subtle) 80%, black) 0px, color-mix(in oklch, var(--border-subtle) 80%, black) 3px, transparent 3px, transparent 6px)"
6396
+ }
6397
+ }
6398
+ ),
6399
+ /* @__PURE__ */ jsxs27(
6400
+ "button",
6401
+ {
6402
+ type: "button",
6403
+ onClick: onStubClick,
6404
+ disabled: stubDisabled,
6405
+ "aria-label": stubLabel,
6406
+ className: cn(
6407
+ "relative flex w-[100px] shrink-0 self-stretch flex-col items-center justify-center gap-1 overflow-hidden rounded-r-sm bg-primary",
6408
+ "transition-colors duration-fast ease-standard",
6409
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
6410
+ stubDisabled ? "cursor-not-allowed opacity-50" : "hover:bg-primary-hover"
6411
+ ),
6412
+ children: [
6413
+ !stubDisabled && /* @__PURE__ */ jsx57(
6414
+ "span",
6315
6415
  {
6316
6416
  "aria-hidden": true,
6317
- className: "pointer-events-none absolute bottom-0 right-0 z-10 size-5 translate-x-1/2 translate-y-1/2 rounded-full bg-prominent"
6417
+ className: "pointer-events-none absolute inset-0 [animation:stub-shimmer_1.5s_linear_infinite]",
6418
+ style: {
6419
+ background: "linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.30) 50%, transparent 100%)"
6420
+ }
6318
6421
  }
6319
6422
  ),
6320
- /* @__PURE__ */ jsx57(
6321
- "div",
6322
- {
6323
- "aria-hidden": true,
6324
- className: "pointer-events-none absolute bottom-4 right-0 top-4 -translate-x-1/2 border-l-2 border-dashed border-primary/30"
6325
- }
6326
- )
6327
- ] }),
6328
- /* @__PURE__ */ jsx57(
6329
- "div",
6330
- {
6331
- className: cn(
6332
- "relative z-[1] inline-flex max-w-[72%] shrink-0 self-stretch sm:max-w-[44%]"
6333
- ),
6334
- children: /* @__PURE__ */ jsxs27(
6335
- "button",
6336
- {
6337
- type: "button",
6338
- onClick: stubDisabled ? void 0 : onStubClick,
6339
- disabled: stubDisabled,
6340
- className: cn(
6341
- "relative box-border inline-flex h-full min-h-[3.25rem] min-w-[5.75rem] flex-col items-center justify-center gap-1.5 rounded-r-sm px-4 py-3 transition-colors sm:min-h-0 sm:gap-1.5 sm:px-5",
6342
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
6343
- stubDisabled ? "bg-primary/30 cursor-not-allowed opacity-50 pointer-events-none" : "bg-primary cursor-pointer hover:bg-primary-hover"
6344
- ),
6345
- children: [
6346
- !stubDisabled && /* @__PURE__ */ jsx57(
6347
- "span",
6348
- {
6349
- "aria-hidden": true,
6350
- className: "absolute inset-0 pointer-events-none [animation:stub-shimmer_1.5s_linear_infinite]",
6351
- style: {
6352
- background: "linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.30) 50%, transparent 100%)"
6353
- }
6354
- }
6355
- ),
6356
- stubIcon != null ? stubIcon : /* @__PURE__ */ jsx57(ArrowRight2, { className: "relative size-5 shrink-0 text-on-prominent-static-inverse" }),
6357
- stubLabel && /* @__PURE__ */ jsx57("span", { className: "max-w-full text-balance text-center text-xs font-bold leading-tight tracking-wide text-on-prominent-static-inverse sm:tracking-widest", children: stubLabel })
6358
- ]
6359
- }
6360
- )
6361
- }
6362
- )
6363
- ]
6364
- }
6365
- );
6423
+ /* @__PURE__ */ jsx57(ArrowRight2, { className: "size-4 text-on-prominent-static-inverse" }),
6424
+ /* @__PURE__ */ jsx57("span", { className: "text-sm font-semibold text-on-prominent-static-inverse", children: stubLabel })
6425
+ ]
6426
+ }
6427
+ )
6428
+ ] }) });
6366
6429
  }
6430
+ var TicketCardDesktop = TicketCard;
6367
6431
 
6368
6432
  // components/ui/toggle.tsx
6369
6433
  import { cva as cva14 } from "class-variance-authority";
@@ -6581,6 +6645,7 @@ export {
6581
6645
  ContextMenuSubContent,
6582
6646
  ContextMenuSubTrigger,
6583
6647
  ContextMenuTrigger,
6648
+ CreditTicketCard,
6584
6649
  Dialog,
6585
6650
  DialogClose,
6586
6651
  DialogContent,
@@ -6779,6 +6844,7 @@ export {
6779
6844
  TabsTrigger,
6780
6845
  Textarea,
6781
6846
  TicketCard,
6847
+ TicketCardDesktop,
6782
6848
  Toaster,
6783
6849
  Toggle,
6784
6850
  ToggleGroup,