@trading-game/design-intelligence-layer 0.14.0 → 0.15.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/AGENTS.md +140 -1
- package/README.md +17 -8
- package/dist/index.cjs +530 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +206 -17
- package/dist/index.d.ts +206 -17
- package/dist/index.js +522 -21
- package/dist/index.js.map +1 -1
- package/guides/design-system-guide/trading-game-ds-guide.md +199 -33
- package/guides/rules/design-system-consuming-project.mdc +19 -11
- package/package.json +1 -1
- package/src/styles.css +22 -0
package/dist/index.d.cts
CHANGED
|
@@ -65,7 +65,7 @@ declare function AvatarGroup({ className, ...props }: React$1.ComponentProps<"di
|
|
|
65
65
|
declare function AvatarGroupCount({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
66
66
|
|
|
67
67
|
declare const badgeVariants: (props?: ({
|
|
68
|
-
variant?: "fill" | "default" | "standard" | "default-success" | "default-fail" | "default-warning" | "fill-success" | "fill-fail" | "fill-warning" | "fill-
|
|
68
|
+
variant?: "fill" | "default" | "standard" | "default-success" | "default-fail" | "default-warning" | "fill-success" | "fill-fail" | "fill-warning" | "fill-credit" | "ghost" | "ghost-success" | "ghost-fail" | "ghost-warning" | null | undefined;
|
|
69
69
|
size?: "lg" | "md" | "sm" | null | undefined;
|
|
70
70
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
71
71
|
declare function Badge({ className, variant, size, asChild, ...props }: React$1.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
|
|
@@ -662,7 +662,7 @@ type TicketCardProps = {
|
|
|
662
662
|
compact?: boolean;
|
|
663
663
|
};
|
|
664
664
|
declare function TicketCard({ className, icon, label, value, currency, stubLabel, onStubClick, stubDisabled, compact, }: TicketCardProps): react_jsx_runtime.JSX.Element;
|
|
665
|
-
type
|
|
665
|
+
type CreditTicketCardProps = {
|
|
666
666
|
className?: string;
|
|
667
667
|
/** Optional icon rendered inside the left ring circle. */
|
|
668
668
|
icon?: React$1.ReactNode;
|
|
@@ -678,45 +678,49 @@ type BoostTicketCardProps = {
|
|
|
678
678
|
onStubClick?: () => void;
|
|
679
679
|
/** Disables the stub button. */
|
|
680
680
|
stubDisabled?: boolean;
|
|
681
|
-
/**
|
|
682
|
-
|
|
683
|
-
/**
|
|
684
|
-
|
|
681
|
+
/** Optional leading icon shown inside the credit badge. */
|
|
682
|
+
badgeIcon?: React$1.ReactNode;
|
|
683
|
+
/** Prefix label shown inside the badge (e.g. "Credit", "Bonus"). */
|
|
684
|
+
badgeLabel?: string;
|
|
685
|
+
/** Value shown in the badge (e.g. "0.00"). */
|
|
686
|
+
badgeValue?: string;
|
|
687
|
+
/** Currency shown in the badge (e.g. "USDT"). */
|
|
688
|
+
badgeCurrency?: string;
|
|
685
689
|
/**
|
|
686
|
-
* Optional content for the
|
|
687
|
-
* info icon on the
|
|
690
|
+
* Optional content for the badge info tooltip. When provided, the trailing
|
|
691
|
+
* info icon on the badge becomes a focusable button that opens a
|
|
688
692
|
* tooltip with this content on hover/focus. When omitted, the info icon is
|
|
689
693
|
* not rendered.
|
|
690
694
|
*/
|
|
691
|
-
|
|
695
|
+
badgeInfo?: React$1.ReactNode;
|
|
692
696
|
/**
|
|
693
|
-
* Side the
|
|
697
|
+
* Side the badge info tooltip opens on (desktop only — mobile always renders
|
|
694
698
|
* the info as a bottom-sheet drawer). Defaults to `"top"` to preserve the
|
|
695
699
|
* current behaviour.
|
|
696
700
|
*/
|
|
697
|
-
|
|
701
|
+
badgeInfoSide?: "top" | "bottom" | "left" | "right";
|
|
698
702
|
/**
|
|
699
|
-
* Alignment of the
|
|
703
|
+
* Alignment of the badge info tooltip relative to its trigger (desktop only).
|
|
700
704
|
* Defaults to `"center"`.
|
|
701
705
|
*/
|
|
702
|
-
|
|
706
|
+
badgeInfoAlign?: "start" | "center" | "end";
|
|
703
707
|
/**
|
|
704
708
|
* Heading shown at the top of the mobile drawer (forwarded to
|
|
705
709
|
* `TooltipContent.title`). Desktop tooltip ignores this. When omitted, the
|
|
706
710
|
* underlying `TooltipContent` falls back to its own `"Title"` placeholder.
|
|
707
711
|
*/
|
|
708
|
-
|
|
712
|
+
badgeInfoTitle?: string;
|
|
709
713
|
/**
|
|
710
714
|
* Label on the dismiss button at the bottom of the mobile drawer (forwarded
|
|
711
715
|
* to `TooltipContent.closeLabel`). Desktop tooltip ignores this. When
|
|
712
716
|
* omitted, the underlying `TooltipContent` falls back to its own `"Label"`
|
|
713
717
|
* placeholder.
|
|
714
718
|
*/
|
|
715
|
-
|
|
719
|
+
badgeInfoCloseLabel?: string;
|
|
716
720
|
/** Compact (mobile) layout — reduces horizontal padding from 16px to 8px. */
|
|
717
721
|
compact?: boolean;
|
|
718
722
|
};
|
|
719
|
-
declare function
|
|
723
|
+
declare function CreditTicketCard({ className, icon, label, value, currency, stubLabel, onStubClick, stubDisabled, badgeIcon, badgeLabel, badgeValue, badgeCurrency, badgeInfo, badgeInfoSide, badgeInfoAlign, badgeInfoTitle, badgeInfoCloseLabel, compact, }: CreditTicketCardProps): react_jsx_runtime.JSX.Element;
|
|
720
724
|
/** Alias for the Figma-named variant. */
|
|
721
725
|
declare const TicketCardDesktop: typeof TicketCard;
|
|
722
726
|
|
|
@@ -731,8 +735,193 @@ declare function ToggleGroup({ className, variant, size, spacing, children, ...p
|
|
|
731
735
|
}): react_jsx_runtime.JSX.Element;
|
|
732
736
|
declare function ToggleGroupItem({ className, children, variant, size, ...props }: React$1.ComponentProps<typeof ToggleGroup$1.Item> & VariantProps<typeof toggleVariants>): react_jsx_runtime.JSX.Element;
|
|
733
737
|
|
|
738
|
+
type ResultBlockStatus = "win" | "loss";
|
|
739
|
+
type ResultBlockCta = "next-round" | "go-again" | "conversion";
|
|
740
|
+
type ResultBlockProps = {
|
|
741
|
+
status: ResultBlockStatus;
|
|
742
|
+
amount: string;
|
|
743
|
+
currency: string;
|
|
744
|
+
contractLabel: string;
|
|
745
|
+
pickedDigit?: number;
|
|
746
|
+
duration: string;
|
|
747
|
+
ctaMode: ResultBlockCta;
|
|
748
|
+
};
|
|
749
|
+
declare function ResultBlock({ status, amount, currency, contractLabel, pickedDigit, duration, ctaMode, }: ResultBlockProps): react_jsx_runtime.JSX.Element;
|
|
750
|
+
type ResultDialogProps = {
|
|
751
|
+
title: string;
|
|
752
|
+
body: React$1.ReactNode;
|
|
753
|
+
primaryLabel: string;
|
|
754
|
+
secondaryLabel: string;
|
|
755
|
+
};
|
|
756
|
+
declare function ResultDialog({ title, body, primaryLabel, secondaryLabel, }: ResultDialogProps): react_jsx_runtime.JSX.Element;
|
|
757
|
+
|
|
758
|
+
type HeaderNavigationBlockProps = {
|
|
759
|
+
/** Back button click handler. Back arrow is rendered only when provided. */
|
|
760
|
+
onBack?: () => void;
|
|
761
|
+
/** Optional badge shown between back and balance (e.g. "Demo" indicator). */
|
|
762
|
+
badge?: {
|
|
763
|
+
label: string;
|
|
764
|
+
variant?: React$1.ComponentProps<typeof Badge>["variant"];
|
|
765
|
+
};
|
|
766
|
+
/** Required balance display. */
|
|
767
|
+
balance: {
|
|
768
|
+
amount: string;
|
|
769
|
+
currency: string;
|
|
770
|
+
};
|
|
771
|
+
/** History button config. When `count` is provided, a numeric badge overlays the icon. */
|
|
772
|
+
history?: {
|
|
773
|
+
count?: number;
|
|
774
|
+
onClick?: () => void;
|
|
775
|
+
"aria-label"?: string;
|
|
776
|
+
};
|
|
777
|
+
/** Right-side icon-button slot (e.g. sound toggle, settings). Rendered after the history button. */
|
|
778
|
+
actions?: React$1.ReactNode;
|
|
779
|
+
};
|
|
780
|
+
declare function HeaderNavigationBlock({ onBack, badge, balance, history, actions, }: HeaderNavigationBlockProps): react_jsx_runtime.JSX.Element;
|
|
781
|
+
|
|
782
|
+
type FAQItem = {
|
|
783
|
+
value: string;
|
|
784
|
+
question: string;
|
|
785
|
+
answer: string;
|
|
786
|
+
};
|
|
787
|
+
type FAQBlockProps = {
|
|
788
|
+
/** Section eyebrow above the heading. Defaults to "FAQ Section". */
|
|
789
|
+
eyebrow?: string;
|
|
790
|
+
/** Heading text. Defaults to "Frequently asked questions". */
|
|
791
|
+
title?: string;
|
|
792
|
+
/** Body paragraph between heading and accordion. */
|
|
793
|
+
intro?: React$1.ReactNode;
|
|
794
|
+
/** Q&A items. */
|
|
795
|
+
items: FAQItem[];
|
|
796
|
+
/** Which item is open by default. Defaults to the first item's `value`. */
|
|
797
|
+
defaultValue?: string;
|
|
798
|
+
/** Footer "Need more help?" card. Hidden if undefined. */
|
|
799
|
+
helpCard?: {
|
|
800
|
+
title: string;
|
|
801
|
+
body: string;
|
|
802
|
+
ctaLabel: string;
|
|
803
|
+
onCtaClick?: () => void;
|
|
804
|
+
};
|
|
805
|
+
/** Layout density. "desktop" is the default; "mobile" reduces type scale and padding. */
|
|
806
|
+
layout?: "desktop" | "mobile";
|
|
807
|
+
};
|
|
808
|
+
declare function FAQBlock({ eyebrow, title, intro, items, defaultValue, helpCard, layout, }: FAQBlockProps): react_jsx_runtime.JSX.Element;
|
|
809
|
+
|
|
810
|
+
type HeroBlockTagline = {
|
|
811
|
+
/** Primary label (e.g. "What's new"). */
|
|
812
|
+
label: string;
|
|
813
|
+
/** Secondary text shown after a separator (e.g. "Just shipped v2.0"). */
|
|
814
|
+
suffix?: string;
|
|
815
|
+
};
|
|
816
|
+
type HeroBlockCta = {
|
|
817
|
+
label: string;
|
|
818
|
+
onClick?: () => void;
|
|
819
|
+
/** When true on the primary CTA in the centred layout, renders a trailing arrow. */
|
|
820
|
+
trailingArrow?: boolean;
|
|
821
|
+
};
|
|
822
|
+
type HeroBlockProps = {
|
|
823
|
+
/** "centered" = single column, no image; "split" = two-column desktop with image. Default: "centered". */
|
|
824
|
+
layout?: "centered" | "split";
|
|
825
|
+
tagline?: HeroBlockTagline;
|
|
826
|
+
heading: string;
|
|
827
|
+
body: string;
|
|
828
|
+
primaryCta: HeroBlockCta;
|
|
829
|
+
/** Shown only in "split" layout. */
|
|
830
|
+
secondaryCta?: HeroBlockCta;
|
|
831
|
+
/** Image content for "split" layout. Defaults to a subtle placeholder square. */
|
|
832
|
+
image?: React$1.ReactNode;
|
|
833
|
+
};
|
|
834
|
+
declare function HeroBlock({ layout, tagline, heading, body, primaryCta, secondaryCta, image, }: HeroBlockProps): react_jsx_runtime.JSX.Element;
|
|
835
|
+
|
|
836
|
+
type AuthBlockMode = "sign-in" | "sign-up";
|
|
837
|
+
type AuthBlockProvider = "google" | "telegram" | "x";
|
|
838
|
+
type AuthBlockProps = {
|
|
839
|
+
mode: AuthBlockMode;
|
|
840
|
+
/** Logo source URL (consumer-provided). Renders the small icon in the header lockup. */
|
|
841
|
+
logoSrc: string;
|
|
842
|
+
/** Wordmark text in the header lockup. Defaults to "trading.game". */
|
|
843
|
+
wordmark?: string;
|
|
844
|
+
/** OAuth providers to show as buttons. Default: all three. Order is preserved. */
|
|
845
|
+
providers?: AuthBlockProvider[];
|
|
846
|
+
/** Submit handler. Receives just the email field for v1 (form is single-field). */
|
|
847
|
+
onSubmit?: (data: {
|
|
848
|
+
email: string;
|
|
849
|
+
}) => void;
|
|
850
|
+
/** Footer link href (sign-in → sign-up, sign-up → sign-in). */
|
|
851
|
+
crossLinkHref?: string;
|
|
852
|
+
/** Unique prefix for input IDs (allows multiple instances on the same page). */
|
|
853
|
+
idPrefix?: string;
|
|
854
|
+
};
|
|
855
|
+
declare function AuthBlock({ mode, logoSrc, wordmark, providers, onSubmit, crossLinkHref, idPrefix, }: AuthBlockProps): react_jsx_runtime.JSX.Element;
|
|
856
|
+
|
|
857
|
+
type NavBarBlockLink = {
|
|
858
|
+
label: string;
|
|
859
|
+
href?: string;
|
|
860
|
+
onClick?: () => void;
|
|
861
|
+
};
|
|
862
|
+
type NavBarBlockProps = {
|
|
863
|
+
/** Brand logo URLs and alt text. */
|
|
864
|
+
brand: {
|
|
865
|
+
fullLogoSrc: string;
|
|
866
|
+
iconLogoSrc: string;
|
|
867
|
+
alt: string;
|
|
868
|
+
};
|
|
869
|
+
/** Primary nav links. */
|
|
870
|
+
links: NavBarBlockLink[];
|
|
871
|
+
/** Sign-in button. Hidden if omitted. Default label: "Sign in". */
|
|
872
|
+
signIn?: {
|
|
873
|
+
label?: string;
|
|
874
|
+
onClick?: () => void;
|
|
875
|
+
};
|
|
876
|
+
/** Sign-up button. Hidden if omitted. Default label: "Sign up". */
|
|
877
|
+
signUp?: {
|
|
878
|
+
label?: string;
|
|
879
|
+
onClick?: () => void;
|
|
880
|
+
};
|
|
881
|
+
};
|
|
882
|
+
declare function NavBarBlock({ brand, links, signIn, signUp }: NavBarBlockProps): react_jsx_runtime.JSX.Element;
|
|
883
|
+
|
|
884
|
+
type PositionBase = {
|
|
885
|
+
market: string;
|
|
886
|
+
duration: string;
|
|
887
|
+
stake: string;
|
|
888
|
+
pnl: string;
|
|
889
|
+
win: boolean;
|
|
890
|
+
};
|
|
891
|
+
type RiseFallPosition = PositionBase & {
|
|
892
|
+
kind: "rise-fall";
|
|
893
|
+
direction: "Rise" | "Fall";
|
|
894
|
+
};
|
|
895
|
+
type SwipePosition = PositionBase & {
|
|
896
|
+
kind: "swipe";
|
|
897
|
+
direction: "Up" | "Down";
|
|
898
|
+
};
|
|
899
|
+
type BoxOPosition = PositionBase & {
|
|
900
|
+
kind: "box-o";
|
|
901
|
+
multiplier: string;
|
|
902
|
+
};
|
|
903
|
+
type DigitsPosition = PositionBase & {
|
|
904
|
+
kind: "digits";
|
|
905
|
+
type: "matches" | "differs" | "odd" | "even" | "over" | "under";
|
|
906
|
+
digit?: string;
|
|
907
|
+
};
|
|
908
|
+
type Position = RiseFallPosition | SwipePosition | BoxOPosition | DigitsPosition;
|
|
909
|
+
type OpenPositionsBlockProps = {
|
|
910
|
+
/** Consumer-provided trigger element. Wrapped with a Sheet/Drawer trigger asChild. */
|
|
911
|
+
trigger: React$1.ReactNode;
|
|
912
|
+
/** Sheet/drawer title. Default: "Positions". */
|
|
913
|
+
sheetTitle?: string;
|
|
914
|
+
/** Position items to render in the list. Empty array → emptyState is shown. */
|
|
915
|
+
positions: Position[];
|
|
916
|
+
/** Footer link handler. The button label is fixed: "View transaction history". */
|
|
917
|
+
onViewHistory?: () => void;
|
|
918
|
+
/** Replaces the default empty state when positions.length === 0. */
|
|
919
|
+
emptyState?: React$1.ReactNode;
|
|
920
|
+
};
|
|
921
|
+
declare function OpenPositionsBlock({ trigger, sheetTitle, positions, onViewHistory, emptyState, }: OpenPositionsBlockProps): react_jsx_runtime.JSX.Element;
|
|
922
|
+
|
|
734
923
|
declare function cn(...inputs: ClassValue[]): string;
|
|
735
924
|
|
|
736
925
|
declare function useIsMobile(): boolean;
|
|
737
926
|
|
|
738
|
-
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,
|
|
927
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, AuthBlock, type AuthBlockMode, type AuthBlockProps, type AuthBlockProvider, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, type BoxOPosition, 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, type DigitsPosition, 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, FAQBlock, type FAQBlockProps, type FAQItem, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HeaderNavigationBlock, type HeaderNavigationBlockProps, HeroBlock, type HeroBlockCta, type HeroBlockProps, type HeroBlockTagline, 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, NavBarBlock, type NavBarBlockLink, type NavBarBlockProps, NavigationButton, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, OpenPositionsBlock, type OpenPositionsBlockProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, type Position, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ResultBlock, type ResultBlockCta, type ResultBlockProps, type ResultBlockStatus, ResultDialog, type ResultDialogProps, type RiseFallPosition, 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, type SwipePosition, 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, type TooltipVariant, badgeVariants, buttonVariants, cn, inputVariants, linkVariants, navigationButtonVariants, navigationMenuTriggerStyle, tabsListVariants, toggleVariants, useComboboxAnchor, useDirection, useFormField, useIsMobile, useSidebar };
|
package/dist/index.d.ts
CHANGED
|
@@ -65,7 +65,7 @@ declare function AvatarGroup({ className, ...props }: React$1.ComponentProps<"di
|
|
|
65
65
|
declare function AvatarGroupCount({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
66
66
|
|
|
67
67
|
declare const badgeVariants: (props?: ({
|
|
68
|
-
variant?: "fill" | "default" | "standard" | "default-success" | "default-fail" | "default-warning" | "fill-success" | "fill-fail" | "fill-warning" | "fill-
|
|
68
|
+
variant?: "fill" | "default" | "standard" | "default-success" | "default-fail" | "default-warning" | "fill-success" | "fill-fail" | "fill-warning" | "fill-credit" | "ghost" | "ghost-success" | "ghost-fail" | "ghost-warning" | null | undefined;
|
|
69
69
|
size?: "lg" | "md" | "sm" | null | undefined;
|
|
70
70
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
71
71
|
declare function Badge({ className, variant, size, asChild, ...props }: React$1.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
|
|
@@ -662,7 +662,7 @@ type TicketCardProps = {
|
|
|
662
662
|
compact?: boolean;
|
|
663
663
|
};
|
|
664
664
|
declare function TicketCard({ className, icon, label, value, currency, stubLabel, onStubClick, stubDisabled, compact, }: TicketCardProps): react_jsx_runtime.JSX.Element;
|
|
665
|
-
type
|
|
665
|
+
type CreditTicketCardProps = {
|
|
666
666
|
className?: string;
|
|
667
667
|
/** Optional icon rendered inside the left ring circle. */
|
|
668
668
|
icon?: React$1.ReactNode;
|
|
@@ -678,45 +678,49 @@ type BoostTicketCardProps = {
|
|
|
678
678
|
onStubClick?: () => void;
|
|
679
679
|
/** Disables the stub button. */
|
|
680
680
|
stubDisabled?: boolean;
|
|
681
|
-
/**
|
|
682
|
-
|
|
683
|
-
/**
|
|
684
|
-
|
|
681
|
+
/** Optional leading icon shown inside the credit badge. */
|
|
682
|
+
badgeIcon?: React$1.ReactNode;
|
|
683
|
+
/** Prefix label shown inside the badge (e.g. "Credit", "Bonus"). */
|
|
684
|
+
badgeLabel?: string;
|
|
685
|
+
/** Value shown in the badge (e.g. "0.00"). */
|
|
686
|
+
badgeValue?: string;
|
|
687
|
+
/** Currency shown in the badge (e.g. "USDT"). */
|
|
688
|
+
badgeCurrency?: string;
|
|
685
689
|
/**
|
|
686
|
-
* Optional content for the
|
|
687
|
-
* info icon on the
|
|
690
|
+
* Optional content for the badge info tooltip. When provided, the trailing
|
|
691
|
+
* info icon on the badge becomes a focusable button that opens a
|
|
688
692
|
* tooltip with this content on hover/focus. When omitted, the info icon is
|
|
689
693
|
* not rendered.
|
|
690
694
|
*/
|
|
691
|
-
|
|
695
|
+
badgeInfo?: React$1.ReactNode;
|
|
692
696
|
/**
|
|
693
|
-
* Side the
|
|
697
|
+
* Side the badge info tooltip opens on (desktop only — mobile always renders
|
|
694
698
|
* the info as a bottom-sheet drawer). Defaults to `"top"` to preserve the
|
|
695
699
|
* current behaviour.
|
|
696
700
|
*/
|
|
697
|
-
|
|
701
|
+
badgeInfoSide?: "top" | "bottom" | "left" | "right";
|
|
698
702
|
/**
|
|
699
|
-
* Alignment of the
|
|
703
|
+
* Alignment of the badge info tooltip relative to its trigger (desktop only).
|
|
700
704
|
* Defaults to `"center"`.
|
|
701
705
|
*/
|
|
702
|
-
|
|
706
|
+
badgeInfoAlign?: "start" | "center" | "end";
|
|
703
707
|
/**
|
|
704
708
|
* Heading shown at the top of the mobile drawer (forwarded to
|
|
705
709
|
* `TooltipContent.title`). Desktop tooltip ignores this. When omitted, the
|
|
706
710
|
* underlying `TooltipContent` falls back to its own `"Title"` placeholder.
|
|
707
711
|
*/
|
|
708
|
-
|
|
712
|
+
badgeInfoTitle?: string;
|
|
709
713
|
/**
|
|
710
714
|
* Label on the dismiss button at the bottom of the mobile drawer (forwarded
|
|
711
715
|
* to `TooltipContent.closeLabel`). Desktop tooltip ignores this. When
|
|
712
716
|
* omitted, the underlying `TooltipContent` falls back to its own `"Label"`
|
|
713
717
|
* placeholder.
|
|
714
718
|
*/
|
|
715
|
-
|
|
719
|
+
badgeInfoCloseLabel?: string;
|
|
716
720
|
/** Compact (mobile) layout — reduces horizontal padding from 16px to 8px. */
|
|
717
721
|
compact?: boolean;
|
|
718
722
|
};
|
|
719
|
-
declare function
|
|
723
|
+
declare function CreditTicketCard({ className, icon, label, value, currency, stubLabel, onStubClick, stubDisabled, badgeIcon, badgeLabel, badgeValue, badgeCurrency, badgeInfo, badgeInfoSide, badgeInfoAlign, badgeInfoTitle, badgeInfoCloseLabel, compact, }: CreditTicketCardProps): react_jsx_runtime.JSX.Element;
|
|
720
724
|
/** Alias for the Figma-named variant. */
|
|
721
725
|
declare const TicketCardDesktop: typeof TicketCard;
|
|
722
726
|
|
|
@@ -731,8 +735,193 @@ declare function ToggleGroup({ className, variant, size, spacing, children, ...p
|
|
|
731
735
|
}): react_jsx_runtime.JSX.Element;
|
|
732
736
|
declare function ToggleGroupItem({ className, children, variant, size, ...props }: React$1.ComponentProps<typeof ToggleGroup$1.Item> & VariantProps<typeof toggleVariants>): react_jsx_runtime.JSX.Element;
|
|
733
737
|
|
|
738
|
+
type ResultBlockStatus = "win" | "loss";
|
|
739
|
+
type ResultBlockCta = "next-round" | "go-again" | "conversion";
|
|
740
|
+
type ResultBlockProps = {
|
|
741
|
+
status: ResultBlockStatus;
|
|
742
|
+
amount: string;
|
|
743
|
+
currency: string;
|
|
744
|
+
contractLabel: string;
|
|
745
|
+
pickedDigit?: number;
|
|
746
|
+
duration: string;
|
|
747
|
+
ctaMode: ResultBlockCta;
|
|
748
|
+
};
|
|
749
|
+
declare function ResultBlock({ status, amount, currency, contractLabel, pickedDigit, duration, ctaMode, }: ResultBlockProps): react_jsx_runtime.JSX.Element;
|
|
750
|
+
type ResultDialogProps = {
|
|
751
|
+
title: string;
|
|
752
|
+
body: React$1.ReactNode;
|
|
753
|
+
primaryLabel: string;
|
|
754
|
+
secondaryLabel: string;
|
|
755
|
+
};
|
|
756
|
+
declare function ResultDialog({ title, body, primaryLabel, secondaryLabel, }: ResultDialogProps): react_jsx_runtime.JSX.Element;
|
|
757
|
+
|
|
758
|
+
type HeaderNavigationBlockProps = {
|
|
759
|
+
/** Back button click handler. Back arrow is rendered only when provided. */
|
|
760
|
+
onBack?: () => void;
|
|
761
|
+
/** Optional badge shown between back and balance (e.g. "Demo" indicator). */
|
|
762
|
+
badge?: {
|
|
763
|
+
label: string;
|
|
764
|
+
variant?: React$1.ComponentProps<typeof Badge>["variant"];
|
|
765
|
+
};
|
|
766
|
+
/** Required balance display. */
|
|
767
|
+
balance: {
|
|
768
|
+
amount: string;
|
|
769
|
+
currency: string;
|
|
770
|
+
};
|
|
771
|
+
/** History button config. When `count` is provided, a numeric badge overlays the icon. */
|
|
772
|
+
history?: {
|
|
773
|
+
count?: number;
|
|
774
|
+
onClick?: () => void;
|
|
775
|
+
"aria-label"?: string;
|
|
776
|
+
};
|
|
777
|
+
/** Right-side icon-button slot (e.g. sound toggle, settings). Rendered after the history button. */
|
|
778
|
+
actions?: React$1.ReactNode;
|
|
779
|
+
};
|
|
780
|
+
declare function HeaderNavigationBlock({ onBack, badge, balance, history, actions, }: HeaderNavigationBlockProps): react_jsx_runtime.JSX.Element;
|
|
781
|
+
|
|
782
|
+
type FAQItem = {
|
|
783
|
+
value: string;
|
|
784
|
+
question: string;
|
|
785
|
+
answer: string;
|
|
786
|
+
};
|
|
787
|
+
type FAQBlockProps = {
|
|
788
|
+
/** Section eyebrow above the heading. Defaults to "FAQ Section". */
|
|
789
|
+
eyebrow?: string;
|
|
790
|
+
/** Heading text. Defaults to "Frequently asked questions". */
|
|
791
|
+
title?: string;
|
|
792
|
+
/** Body paragraph between heading and accordion. */
|
|
793
|
+
intro?: React$1.ReactNode;
|
|
794
|
+
/** Q&A items. */
|
|
795
|
+
items: FAQItem[];
|
|
796
|
+
/** Which item is open by default. Defaults to the first item's `value`. */
|
|
797
|
+
defaultValue?: string;
|
|
798
|
+
/** Footer "Need more help?" card. Hidden if undefined. */
|
|
799
|
+
helpCard?: {
|
|
800
|
+
title: string;
|
|
801
|
+
body: string;
|
|
802
|
+
ctaLabel: string;
|
|
803
|
+
onCtaClick?: () => void;
|
|
804
|
+
};
|
|
805
|
+
/** Layout density. "desktop" is the default; "mobile" reduces type scale and padding. */
|
|
806
|
+
layout?: "desktop" | "mobile";
|
|
807
|
+
};
|
|
808
|
+
declare function FAQBlock({ eyebrow, title, intro, items, defaultValue, helpCard, layout, }: FAQBlockProps): react_jsx_runtime.JSX.Element;
|
|
809
|
+
|
|
810
|
+
type HeroBlockTagline = {
|
|
811
|
+
/** Primary label (e.g. "What's new"). */
|
|
812
|
+
label: string;
|
|
813
|
+
/** Secondary text shown after a separator (e.g. "Just shipped v2.0"). */
|
|
814
|
+
suffix?: string;
|
|
815
|
+
};
|
|
816
|
+
type HeroBlockCta = {
|
|
817
|
+
label: string;
|
|
818
|
+
onClick?: () => void;
|
|
819
|
+
/** When true on the primary CTA in the centred layout, renders a trailing arrow. */
|
|
820
|
+
trailingArrow?: boolean;
|
|
821
|
+
};
|
|
822
|
+
type HeroBlockProps = {
|
|
823
|
+
/** "centered" = single column, no image; "split" = two-column desktop with image. Default: "centered". */
|
|
824
|
+
layout?: "centered" | "split";
|
|
825
|
+
tagline?: HeroBlockTagline;
|
|
826
|
+
heading: string;
|
|
827
|
+
body: string;
|
|
828
|
+
primaryCta: HeroBlockCta;
|
|
829
|
+
/** Shown only in "split" layout. */
|
|
830
|
+
secondaryCta?: HeroBlockCta;
|
|
831
|
+
/** Image content for "split" layout. Defaults to a subtle placeholder square. */
|
|
832
|
+
image?: React$1.ReactNode;
|
|
833
|
+
};
|
|
834
|
+
declare function HeroBlock({ layout, tagline, heading, body, primaryCta, secondaryCta, image, }: HeroBlockProps): react_jsx_runtime.JSX.Element;
|
|
835
|
+
|
|
836
|
+
type AuthBlockMode = "sign-in" | "sign-up";
|
|
837
|
+
type AuthBlockProvider = "google" | "telegram" | "x";
|
|
838
|
+
type AuthBlockProps = {
|
|
839
|
+
mode: AuthBlockMode;
|
|
840
|
+
/** Logo source URL (consumer-provided). Renders the small icon in the header lockup. */
|
|
841
|
+
logoSrc: string;
|
|
842
|
+
/** Wordmark text in the header lockup. Defaults to "trading.game". */
|
|
843
|
+
wordmark?: string;
|
|
844
|
+
/** OAuth providers to show as buttons. Default: all three. Order is preserved. */
|
|
845
|
+
providers?: AuthBlockProvider[];
|
|
846
|
+
/** Submit handler. Receives just the email field for v1 (form is single-field). */
|
|
847
|
+
onSubmit?: (data: {
|
|
848
|
+
email: string;
|
|
849
|
+
}) => void;
|
|
850
|
+
/** Footer link href (sign-in → sign-up, sign-up → sign-in). */
|
|
851
|
+
crossLinkHref?: string;
|
|
852
|
+
/** Unique prefix for input IDs (allows multiple instances on the same page). */
|
|
853
|
+
idPrefix?: string;
|
|
854
|
+
};
|
|
855
|
+
declare function AuthBlock({ mode, logoSrc, wordmark, providers, onSubmit, crossLinkHref, idPrefix, }: AuthBlockProps): react_jsx_runtime.JSX.Element;
|
|
856
|
+
|
|
857
|
+
type NavBarBlockLink = {
|
|
858
|
+
label: string;
|
|
859
|
+
href?: string;
|
|
860
|
+
onClick?: () => void;
|
|
861
|
+
};
|
|
862
|
+
type NavBarBlockProps = {
|
|
863
|
+
/** Brand logo URLs and alt text. */
|
|
864
|
+
brand: {
|
|
865
|
+
fullLogoSrc: string;
|
|
866
|
+
iconLogoSrc: string;
|
|
867
|
+
alt: string;
|
|
868
|
+
};
|
|
869
|
+
/** Primary nav links. */
|
|
870
|
+
links: NavBarBlockLink[];
|
|
871
|
+
/** Sign-in button. Hidden if omitted. Default label: "Sign in". */
|
|
872
|
+
signIn?: {
|
|
873
|
+
label?: string;
|
|
874
|
+
onClick?: () => void;
|
|
875
|
+
};
|
|
876
|
+
/** Sign-up button. Hidden if omitted. Default label: "Sign up". */
|
|
877
|
+
signUp?: {
|
|
878
|
+
label?: string;
|
|
879
|
+
onClick?: () => void;
|
|
880
|
+
};
|
|
881
|
+
};
|
|
882
|
+
declare function NavBarBlock({ brand, links, signIn, signUp }: NavBarBlockProps): react_jsx_runtime.JSX.Element;
|
|
883
|
+
|
|
884
|
+
type PositionBase = {
|
|
885
|
+
market: string;
|
|
886
|
+
duration: string;
|
|
887
|
+
stake: string;
|
|
888
|
+
pnl: string;
|
|
889
|
+
win: boolean;
|
|
890
|
+
};
|
|
891
|
+
type RiseFallPosition = PositionBase & {
|
|
892
|
+
kind: "rise-fall";
|
|
893
|
+
direction: "Rise" | "Fall";
|
|
894
|
+
};
|
|
895
|
+
type SwipePosition = PositionBase & {
|
|
896
|
+
kind: "swipe";
|
|
897
|
+
direction: "Up" | "Down";
|
|
898
|
+
};
|
|
899
|
+
type BoxOPosition = PositionBase & {
|
|
900
|
+
kind: "box-o";
|
|
901
|
+
multiplier: string;
|
|
902
|
+
};
|
|
903
|
+
type DigitsPosition = PositionBase & {
|
|
904
|
+
kind: "digits";
|
|
905
|
+
type: "matches" | "differs" | "odd" | "even" | "over" | "under";
|
|
906
|
+
digit?: string;
|
|
907
|
+
};
|
|
908
|
+
type Position = RiseFallPosition | SwipePosition | BoxOPosition | DigitsPosition;
|
|
909
|
+
type OpenPositionsBlockProps = {
|
|
910
|
+
/** Consumer-provided trigger element. Wrapped with a Sheet/Drawer trigger asChild. */
|
|
911
|
+
trigger: React$1.ReactNode;
|
|
912
|
+
/** Sheet/drawer title. Default: "Positions". */
|
|
913
|
+
sheetTitle?: string;
|
|
914
|
+
/** Position items to render in the list. Empty array → emptyState is shown. */
|
|
915
|
+
positions: Position[];
|
|
916
|
+
/** Footer link handler. The button label is fixed: "View transaction history". */
|
|
917
|
+
onViewHistory?: () => void;
|
|
918
|
+
/** Replaces the default empty state when positions.length === 0. */
|
|
919
|
+
emptyState?: React$1.ReactNode;
|
|
920
|
+
};
|
|
921
|
+
declare function OpenPositionsBlock({ trigger, sheetTitle, positions, onViewHistory, emptyState, }: OpenPositionsBlockProps): react_jsx_runtime.JSX.Element;
|
|
922
|
+
|
|
734
923
|
declare function cn(...inputs: ClassValue[]): string;
|
|
735
924
|
|
|
736
925
|
declare function useIsMobile(): boolean;
|
|
737
926
|
|
|
738
|
-
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,
|
|
927
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, AuthBlock, type AuthBlockMode, type AuthBlockProps, type AuthBlockProvider, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, type BoxOPosition, 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, type DigitsPosition, 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, FAQBlock, type FAQBlockProps, type FAQItem, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HeaderNavigationBlock, type HeaderNavigationBlockProps, HeroBlock, type HeroBlockCta, type HeroBlockProps, type HeroBlockTagline, 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, NavBarBlock, type NavBarBlockLink, type NavBarBlockProps, NavigationButton, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, OpenPositionsBlock, type OpenPositionsBlockProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, type Position, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ResultBlock, type ResultBlockCta, type ResultBlockProps, type ResultBlockStatus, ResultDialog, type ResultDialogProps, type RiseFallPosition, 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, type SwipePosition, 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, type TooltipVariant, badgeVariants, buttonVariants, cn, inputVariants, linkVariants, navigationButtonVariants, navigationMenuTriggerStyle, tabsListVariants, toggleVariants, useComboboxAnchor, useDirection, useFormField, useIsMobile, useSidebar };
|