@powered-by-array/ui 1.30.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.
Files changed (146) hide show
  1. package/README.md +163 -0
  2. package/dist/components/alert-dialog.d.ts +20 -0
  3. package/dist/components/alert-dialog.d.ts.map +1 -0
  4. package/dist/components/alert-dialog.js +40 -0
  5. package/dist/components/alert-dialog.js.map +1 -0
  6. package/dist/components/avatar.d.ts +7 -0
  7. package/dist/components/avatar.d.ts.map +1 -0
  8. package/dist/components/avatar.js +15 -0
  9. package/dist/components/avatar.js.map +1 -0
  10. package/dist/components/badge.d.ts +10 -0
  11. package/dist/components/badge.d.ts.map +1 -0
  12. package/dist/components/badge.js +24 -0
  13. package/dist/components/badge.js.map +1 -0
  14. package/dist/components/breadcrumb.d.ts +12 -0
  15. package/dist/components/breadcrumb.d.ts.map +1 -0
  16. package/dist/components/breadcrumb.js +29 -0
  17. package/dist/components/breadcrumb.js.map +1 -0
  18. package/dist/components/button.d.ts +14 -0
  19. package/dist/components/button.d.ts.map +1 -0
  20. package/dist/components/button.js +36 -0
  21. package/dist/components/button.js.map +1 -0
  22. package/dist/components/calendar.d.ts +9 -0
  23. package/dist/components/calendar.d.ts.map +1 -0
  24. package/dist/components/calendar.js +77 -0
  25. package/dist/components/calendar.js.map +1 -0
  26. package/dist/components/card.d.ts +10 -0
  27. package/dist/components/card.d.ts.map +1 -0
  28. package/dist/components/card.js +26 -0
  29. package/dist/components/card.js.map +1 -0
  30. package/dist/components/chart.d.ts +57 -0
  31. package/dist/components/chart.d.ts.map +1 -0
  32. package/dist/components/chart.js +123 -0
  33. package/dist/components/chart.js.map +1 -0
  34. package/dist/components/collapsible.d.ts +7 -0
  35. package/dist/components/collapsible.d.ts.map +1 -0
  36. package/dist/components/collapsible.js +14 -0
  37. package/dist/components/collapsible.js.map +1 -0
  38. package/dist/components/combobox.d.ts +43 -0
  39. package/dist/components/combobox.d.ts.map +1 -0
  40. package/dist/components/combobox.js +171 -0
  41. package/dist/components/combobox.js.map +1 -0
  42. package/dist/components/dialog.d.ts +20 -0
  43. package/dist/components/dialog.d.ts.map +1 -0
  44. package/dist/components/dialog.js +35 -0
  45. package/dist/components/dialog.js.map +1 -0
  46. package/dist/components/dropdown-menu.d.ts +38 -0
  47. package/dist/components/dropdown-menu.d.ts.map +1 -0
  48. package/dist/components/dropdown-menu.js +53 -0
  49. package/dist/components/dropdown-menu.js.map +1 -0
  50. package/dist/components/input.d.ts +4 -0
  51. package/dist/components/input.d.ts.map +1 -0
  52. package/dist/components/input.js +8 -0
  53. package/dist/components/input.js.map +1 -0
  54. package/dist/components/label.d.ts +5 -0
  55. package/dist/components/label.d.ts.map +1 -0
  56. package/dist/components/label.js +9 -0
  57. package/dist/components/label.js.map +1 -0
  58. package/dist/components/nav-item.d.ts +24 -0
  59. package/dist/components/nav-item.d.ts.map +1 -0
  60. package/dist/components/nav-item.js +110 -0
  61. package/dist/components/nav-item.js.map +1 -0
  62. package/dist/components/nav-list-item.d.ts +28 -0
  63. package/dist/components/nav-list-item.d.ts.map +1 -0
  64. package/dist/components/nav-list-item.js +123 -0
  65. package/dist/components/nav-list-item.js.map +1 -0
  66. package/dist/components/nav-menu-context.d.ts +11 -0
  67. package/dist/components/nav-menu-context.d.ts.map +1 -0
  68. package/dist/components/nav-menu-context.js +11 -0
  69. package/dist/components/nav-menu-context.js.map +1 -0
  70. package/dist/components/nav-menu-primitives.d.ts +37 -0
  71. package/dist/components/nav-menu-primitives.d.ts.map +1 -0
  72. package/dist/components/nav-menu-primitives.js +71 -0
  73. package/dist/components/nav-menu-primitives.js.map +1 -0
  74. package/dist/components/nav-menu.d.ts +9 -0
  75. package/dist/components/nav-menu.d.ts.map +1 -0
  76. package/dist/components/nav-menu.js +5 -0
  77. package/dist/components/nav-menu.js.map +1 -0
  78. package/dist/components/nav-profile-item.d.ts +17 -0
  79. package/dist/components/nav-profile-item.d.ts.map +1 -0
  80. package/dist/components/nav-profile-item.js +16 -0
  81. package/dist/components/nav-profile-item.js.map +1 -0
  82. package/dist/components/pagination.d.ts +14 -0
  83. package/dist/components/pagination.d.ts.map +1 -0
  84. package/dist/components/pagination.js +31 -0
  85. package/dist/components/pagination.js.map +1 -0
  86. package/dist/components/popover.d.ts +7 -0
  87. package/dist/components/popover.d.ts.map +1 -0
  88. package/dist/components/popover.js +12 -0
  89. package/dist/components/popover.js.map +1 -0
  90. package/dist/components/select.d.ts +16 -0
  91. package/dist/components/select.d.ts.map +1 -0
  92. package/dist/components/select.js +44 -0
  93. package/dist/components/select.js.map +1 -0
  94. package/dist/components/separator.d.ts +5 -0
  95. package/dist/components/separator.d.ts.map +1 -0
  96. package/dist/components/separator.js +9 -0
  97. package/dist/components/separator.js.map +1 -0
  98. package/dist/components/sheet.d.ts +18 -0
  99. package/dist/components/sheet.d.ts.map +1 -0
  100. package/dist/components/sheet.js +41 -0
  101. package/dist/components/sheet.js.map +1 -0
  102. package/dist/components/sidebar.d.ts +71 -0
  103. package/dist/components/sidebar.d.ts.map +1 -0
  104. package/dist/components/sidebar.js +218 -0
  105. package/dist/components/sidebar.js.map +1 -0
  106. package/dist/components/skeleton.d.ts +4 -0
  107. package/dist/components/skeleton.d.ts.map +1 -0
  108. package/dist/components/skeleton.js +8 -0
  109. package/dist/components/skeleton.js.map +1 -0
  110. package/dist/components/sonner.d.ts +7 -0
  111. package/dist/components/sonner.d.ts.map +1 -0
  112. package/dist/components/sonner.js +22 -0
  113. package/dist/components/sonner.js.map +1 -0
  114. package/dist/components/switch.d.ts +5 -0
  115. package/dist/components/switch.d.ts.map +1 -0
  116. package/dist/components/switch.js +9 -0
  117. package/dist/components/switch.js.map +1 -0
  118. package/dist/components/table.d.ts +11 -0
  119. package/dist/components/table.d.ts.map +1 -0
  120. package/dist/components/table.js +29 -0
  121. package/dist/components/table.js.map +1 -0
  122. package/dist/components/tabs.d.ts +25 -0
  123. package/dist/components/tabs.d.ts.map +1 -0
  124. package/dist/components/tabs.js +34 -0
  125. package/dist/components/tabs.js.map +1 -0
  126. package/dist/components/tooltip.d.ts +8 -0
  127. package/dist/components/tooltip.d.ts.map +1 -0
  128. package/dist/components/tooltip.js +18 -0
  129. package/dist/components/tooltip.js.map +1 -0
  130. package/dist/hooks/use-is-mobile.d.ts +6 -0
  131. package/dist/hooks/use-is-mobile.d.ts.map +1 -0
  132. package/dist/hooks/use-is-mobile.js +20 -0
  133. package/dist/hooks/use-is-mobile.js.map +1 -0
  134. package/dist/index.d.ts +1166 -0
  135. package/dist/index.d.ts.map +1 -0
  136. package/dist/index.js +56 -0
  137. package/dist/index.js.map +1 -0
  138. package/dist/lib/cn.d.ts +3 -0
  139. package/dist/lib/cn.d.ts.map +1 -0
  140. package/dist/lib/cn.js +6 -0
  141. package/dist/lib/cn.js.map +1 -0
  142. package/dist/logos/index.d.ts +21 -0
  143. package/dist/logos/index.d.ts.map +1 -0
  144. package/dist/logos/index.js +81 -0
  145. package/dist/logos/index.js.map +1 -0
  146. package/package.json +77 -0
@@ -0,0 +1,218 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Slot } from "@radix-ui/react-slot";
4
+ import { cva } from "class-variance-authority";
5
+ import { PanelLeftIcon } from "lucide-react";
6
+ import * as React from "react";
7
+ import { useIsMobile } from "../hooks/use-is-mobile.js";
8
+ import { cn } from "../lib/cn.js";
9
+ import { Button } from "./button.js";
10
+ import { Input } from "./input.js";
11
+ import { Separator } from "./separator.js";
12
+ import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, } from "./sheet.js";
13
+ import { Skeleton } from "./skeleton.js";
14
+ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./tooltip.js";
15
+ const SIDEBAR_COOKIE_MAX_AGE = 31536000; // 1 year in seconds
16
+ const SIDEBAR_WIDTH = '240px';
17
+ const SIDEBAR_WIDTH_MOBILE = '18rem';
18
+ const SIDEBAR_WIDTH_ICON = '60px';
19
+ const SIDEBAR_KEYBOARD_SHORTCUT = 'b';
20
+ function getSidebarCookieName(tenantSlug) {
21
+ return tenantSlug ? `sidebarCollapsed:${tenantSlug}` : 'sidebarCollapsed';
22
+ }
23
+ const SidebarContext = React.createContext(null);
24
+ function useSidebar() {
25
+ const context = React.useContext(SidebarContext);
26
+ if (!context) {
27
+ throw new Error('useSidebar must be used within a SidebarProvider.');
28
+ }
29
+ return context;
30
+ }
31
+ function SidebarProvider({ defaultCollapsed = false, tenantSlug, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }) {
32
+ const isMobile = useIsMobile();
33
+ const [openMobile, setOpenMobile] = React.useState(false);
34
+ // Convert defaultCollapsed to defaultOpen (inverse)
35
+ const defaultOpen = !defaultCollapsed;
36
+ // This is the internal state of the sidebar.
37
+ // We use openProp and setOpenProp for control from outside the component.
38
+ const [_open, _setOpen] = React.useState(defaultOpen);
39
+ const open = openProp ?? _open;
40
+ const setOpen = React.useCallback((value) => {
41
+ const openState = typeof value === 'function' ? value(open) : value;
42
+ if (setOpenProp) {
43
+ setOpenProp(openState);
44
+ }
45
+ else {
46
+ _setOpen(openState);
47
+ }
48
+ // Persist collapsed state to cookie (inverse of open state)
49
+ const collapsed = !openState;
50
+ const cookieName = getSidebarCookieName(tenantSlug);
51
+ const isSecure = typeof window !== 'undefined' && window.location.protocol === 'https:';
52
+ const secureFlag = isSecure ? '; Secure' : '';
53
+ document.cookie = `${cookieName}=${collapsed}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}; SameSite=Lax${secureFlag}`;
54
+ }, [setOpenProp, open, tenantSlug]);
55
+ // Helper to toggle the sidebar.
56
+ const toggleSidebar = React.useCallback(() => {
57
+ return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);
58
+ }, [isMobile, setOpen, setOpenMobile]);
59
+ // Adds a keyboard shortcut to toggle the sidebar.
60
+ React.useEffect(() => {
61
+ const handleKeyDown = (event) => {
62
+ if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
63
+ event.preventDefault();
64
+ toggleSidebar();
65
+ }
66
+ };
67
+ window.addEventListener('keydown', handleKeyDown);
68
+ return () => window.removeEventListener('keydown', handleKeyDown);
69
+ }, [toggleSidebar]);
70
+ // We add a state so that we can do data-state="expanded" or "collapsed".
71
+ // This makes it easier to style the sidebar with Tailwind classes.
72
+ const state = open ? 'expanded' : 'collapsed';
73
+ const contextValue = React.useMemo(() => ({
74
+ state,
75
+ open,
76
+ setOpen,
77
+ isMobile,
78
+ openMobile,
79
+ setOpenMobile,
80
+ toggleSidebar,
81
+ }), [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]);
82
+ return (_jsx(SidebarContext.Provider, { value: contextValue, children: _jsx(TooltipProvider, { delayDuration: 0, children: _jsx("div", { "data-slot": "sidebar-wrapper", style: {
83
+ '--sidebar-width': SIDEBAR_WIDTH,
84
+ '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,
85
+ ...style,
86
+ }, className: cn('group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full', className), ...props, children: children }) }) }));
87
+ }
88
+ function Sidebar({ side = 'left', variant = 'sidebar', collapsible = 'offcanvas', className, children, ...props }) {
89
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
90
+ if (collapsible === 'none') {
91
+ return (_jsx("div", { "data-slot": "sidebar", className: cn('bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col', className), ...props, children: children }));
92
+ }
93
+ if (isMobile) {
94
+ return (_jsx(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: _jsxs(SheetContent, { "data-sidebar": "sidebar", "data-slot": "sidebar", "data-mobile": "true", className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden", style: {
95
+ '--sidebar-width': SIDEBAR_WIDTH_MOBILE,
96
+ }, side: side, children: [_jsxs(SheetHeader, { className: "sr-only", children: [_jsx(SheetTitle, { children: "Sidebar" }), _jsx(SheetDescription, { children: "Displays the mobile sidebar." })] }), _jsx("div", { className: "flex h-full w-full flex-col", children: children })] }) }));
97
+ }
98
+ return (_jsxs("div", { className: "group peer text-sidebar-foreground hidden shrink-0 md:block", "data-state": state, "data-collapsible": state === 'collapsed' ? collapsible : '', "data-variant": variant, "data-side": side, "data-slot": "sidebar", children: [_jsx("div", { "data-slot": "sidebar-gap", className: "relative w-0 shrink-0 bg-transparent border-0 box-border", "aria-hidden": true }), _jsxs("div", { "data-slot": "sidebar-container", className: cn('fixed inset-y-0 z-[60] hidden h-svh w-(--sidebar-width) border-0 hover:border-0 box-border isolate transition-[left,right,width] duration-200 ease-linear md:flex', side === 'left'
99
+ ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'
100
+ : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',
101
+ // Adjust the padding for floating and inset variants.
102
+ variant === 'floating' || variant === 'inset'
103
+ ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'
104
+ : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)', className), ...props, children: [_jsx("div", { "aria-hidden": true, "data-slot": "sidebar-border", className: cn('pointer-events-none absolute inset-y-0 left-0 w-px bg-sidebar-border transition-[transform] duration-200 ease-linear', 'translate-x-[var(--sidebar-width)]', 'group-data-[collapsible=icon]:translate-x-[var(--sidebar-width-icon)]') }), _jsx("div", { "data-sidebar": "sidebar", "data-slot": "sidebar-inner", className: "bg-sidebar flex h-full w-full flex-col border-0 hover:border-0 box-border group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm", children: children })] })] }));
105
+ }
106
+ function SidebarTrigger({ className, onClick, ...props }) {
107
+ const { toggleSidebar } = useSidebar();
108
+ return (_jsxs(Button, { "data-sidebar": "trigger", "data-slot": "sidebar-trigger", variant: "ghost", size: "icon", className: cn('size-7', className), onClick: (event) => {
109
+ onClick?.(event);
110
+ toggleSidebar();
111
+ }, ...props, children: [_jsx(PanelLeftIcon, {}), _jsx("span", { className: "sr-only", children: "Toggle Sidebar" })] }));
112
+ }
113
+ function SidebarRail({ className, ...props }) {
114
+ const { toggleSidebar } = useSidebar();
115
+ return (_jsx("button", { "data-sidebar": "rail", "data-slot": "sidebar-rail", "aria-label": "Toggle Sidebar", tabIndex: -1, onClick: toggleSidebar, title: "Toggle Sidebar", className: cn('absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] after:bg-transparent sm:flex', 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize', '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize', 'hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full', '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2', '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2', className), ...props }));
116
+ }
117
+ function SidebarInset({ className, ...props }) {
118
+ return (_jsx("main", { "data-slot": "sidebar-inset", className: cn('relative flex min-h-0 w-full flex-1 flex-col bg-background', 'md:pl-[var(--sidebar-width)] md:peer-data-[state=collapsed]:peer-data-[collapsible=offcanvas]:pl-0 md:peer-data-[state=collapsed]:peer-data-[collapsible=icon]:pl-[var(--sidebar-width-icon)]', 'md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2', className), ...props }));
119
+ }
120
+ function SidebarInput({ className, ...props }) {
121
+ return (_jsx(Input, { "data-slot": "sidebar-input", "data-sidebar": "input", className: cn('bg-background h-8 w-full shadow-none', className), ...props }));
122
+ }
123
+ function SidebarHeader({ className, ...props }) {
124
+ return (_jsx("div", { "data-slot": "sidebar-header", "data-sidebar": "header", className: cn('flex flex-col gap-0 px-0 pt-4 pb-4', 'group-data-[collapsible=icon]:px-0 group-data-[collapsible=icon]:pt-4 group-data-[collapsible=icon]:pb-4', className), ...props }));
125
+ }
126
+ function SidebarFooter({ className, ...props }) {
127
+ return (_jsx("div", { "data-slot": "sidebar-footer", "data-sidebar": "footer", className: cn('flex flex-col gap-0 px-0 pb-4', className), ...props }));
128
+ }
129
+ function SidebarSeparator({ className, ...props }) {
130
+ return (_jsx(Separator, { "data-slot": "sidebar-separator", "data-sidebar": "separator", className: cn('bg-sidebar-border mx-3 w-auto', className), ...props }));
131
+ }
132
+ function SidebarContent({ className, ...props }) {
133
+ return (_jsx("div", { "data-slot": "sidebar-content", "data-sidebar": "content", className: cn('flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden', '[&::-webkit-scrollbar]:hidden [scrollbar-width:none] [-ms-overflow-style:none]', className), ...props }));
134
+ }
135
+ function SidebarGroup({ className, ...props }) {
136
+ return (_jsx("div", { "data-slot": "sidebar-group", "data-sidebar": "group", className: cn('relative flex w-full min-w-0 flex-col px-0 py-0', className), ...props }));
137
+ }
138
+ function SidebarGroupLabel({ className, asChild = false, ...props }) {
139
+ const Comp = asChild ? Slot : 'div';
140
+ return (_jsx(Comp, { "data-slot": "sidebar-group-label", "data-sidebar": "group-label", className: cn('text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0', 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0', className), ...props }));
141
+ }
142
+ function SidebarGroupAction({ className, asChild = false, ...props }) {
143
+ const Comp = asChild ? Slot : 'button';
144
+ return (_jsx(Comp, { "data-slot": "sidebar-group-action", "data-sidebar": "group-action", className: cn('text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',
145
+ // Increases the hit area of the button on mobile.
146
+ 'after:absolute after:-inset-2 md:after:hidden', 'group-data-[collapsible=icon]:hidden', className), ...props }));
147
+ }
148
+ function SidebarGroupContent({ className, ...props }) {
149
+ return (_jsx("div", { "data-slot": "sidebar-group-content", "data-sidebar": "group-content", className: cn('w-full text-sm', className), ...props }));
150
+ }
151
+ function SidebarMenu({ className, ...props }) {
152
+ return (_jsx("ul", { "data-slot": "sidebar-menu", "data-sidebar": "menu", className: cn('flex w-full min-w-0 flex-col gap-0 group-data-[collapsible=icon]:items-center', className), ...props }));
153
+ }
154
+ function SidebarMenuItem({ className, ...props }) {
155
+ return (_jsx("li", { "data-slot": "sidebar-menu-item", "data-sidebar": "menu-item", className: cn('group/menu-item relative', className), ...props }));
156
+ }
157
+ const sidebarMenuButtonVariants = cva('peer/menu-button flex w-full items-center overflow-hidden h-12 px-3 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding,background] focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-12! group-data-[collapsible=icon]:p-1.5! group-data-[collapsible=icon]:rounded-xl [&>span:last-child]:truncate [&>svg]:size-4.5 [&>svg]:shrink-0', {
158
+ variants: {
159
+ variant: {
160
+ default: '',
161
+ outline: 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',
162
+ },
163
+ size: {
164
+ default: 'h-12 text-sm',
165
+ sm: 'h-7 text-xs',
166
+ lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',
167
+ },
168
+ },
169
+ defaultVariants: {
170
+ variant: 'default',
171
+ size: 'default',
172
+ },
173
+ });
174
+ function SidebarMenuButton({ asChild = false, isActive = false, variant = 'default', size = 'default', tooltip, className, ...props }) {
175
+ const Comp = asChild ? Slot : 'button';
176
+ const { isMobile, state } = useSidebar();
177
+ const button = (_jsx(Comp, { "data-slot": "sidebar-menu-button", "data-sidebar": "menu-button", "data-size": size, "data-active": isActive, className: cn(sidebarMenuButtonVariants({ variant, size }), className), suppressHydrationWarning: true, ...props }));
178
+ if (!tooltip) {
179
+ return button;
180
+ }
181
+ if (typeof tooltip === 'string') {
182
+ tooltip = {
183
+ children: tooltip,
184
+ };
185
+ }
186
+ return (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: button }), _jsx(TooltipContent, { side: "right", align: "center", sideOffset: 12, hidden: state !== 'collapsed' || isMobile, ...tooltip, className: cn('overflow-visible', tooltip?.className) })] }));
187
+ }
188
+ function SidebarMenuAction({ className, asChild = false, showOnHover = false, ...props }) {
189
+ const Comp = asChild ? Slot : 'button';
190
+ return (_jsx(Comp, { "data-slot": "sidebar-menu-action", "data-sidebar": "menu-action", className: cn('text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',
191
+ // Increases the hit area of the button on mobile.
192
+ 'after:absolute after:-inset-2 md:after:hidden', 'peer-data-[size=sm]/menu-button:top-1', 'peer-data-[size=default]/menu-button:top-1.5', 'peer-data-[size=lg]/menu-button:top-2.5', 'group-data-[collapsible=icon]:hidden', showOnHover &&
193
+ 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0', className), ...props }));
194
+ }
195
+ function SidebarMenuBadge({ className, ...props }) {
196
+ return (_jsx("div", { "data-slot": "sidebar-menu-badge", "data-sidebar": "menu-badge", className: cn('text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none', 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground', 'peer-data-[size=sm]/menu-button:top-1', 'peer-data-[size=default]/menu-button:top-1.5', 'peer-data-[size=lg]/menu-button:top-2.5', 'group-data-[collapsible=icon]:hidden', className), ...props }));
197
+ }
198
+ function SidebarMenuSkeleton({ className, showIcon = false, ...props }) {
199
+ // Random width between 50 to 90%.
200
+ const width = React.useMemo(() => {
201
+ return `${Math.floor(Math.random() * 40) + 50}%`;
202
+ }, []);
203
+ return (_jsxs("div", { "data-slot": "sidebar-menu-skeleton", "data-sidebar": "menu-skeleton", className: cn('flex h-8 items-center gap-2 rounded-md px-2', className), ...props, children: [showIcon && _jsx(Skeleton, { className: "size-4 rounded-md", "data-sidebar": "menu-skeleton-icon" }), _jsx(Skeleton, { className: "h-4 max-w-(--skeleton-width) flex-1", "data-sidebar": "menu-skeleton-text", style: {
204
+ '--skeleton-width': width,
205
+ } })] }));
206
+ }
207
+ function SidebarMenuSub({ className, ...props }) {
208
+ return (_jsx("ul", { "data-slot": "sidebar-menu-sub", "data-sidebar": "menu-sub", className: cn('border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5', 'group-data-[collapsible=icon]:hidden', className), ...props }));
209
+ }
210
+ function SidebarMenuSubItem({ className, ...props }) {
211
+ return (_jsx("li", { "data-slot": "sidebar-menu-sub-item", "data-sidebar": "menu-sub-item", className: cn('group/menu-sub-item relative', className), ...props }));
212
+ }
213
+ function SidebarMenuSubButton({ asChild = false, size = 'md', isActive = false, className, ...props }) {
214
+ const Comp = asChild ? Slot : 'a';
215
+ return (_jsx(Comp, { "data-slot": "sidebar-menu-sub-button", "data-sidebar": "menu-sub-button", "data-size": size, "data-active": isActive, className: cn('text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0', 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground', size === 'sm' && 'text-xs', size === 'md' && 'text-sm', 'group-data-[collapsible=icon]:hidden', className), ...props }));
216
+ }
217
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, };
218
+ //# sourceMappingURL=sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/components/sidebar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ declare function Skeleton({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
3
+ export { Skeleton };
4
+ //# sourceMappingURL=skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../src/components/skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAIrE;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/cn.js";
4
+ function Skeleton({ className, ...props }) {
5
+ return (_jsx("div", { "data-slot": "skeleton", className: cn("bg-accent animate-pulse rounded-md", className), ...props }));
6
+ }
7
+ export { Skeleton };
8
+ //# sourceMappingURL=skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.js","sourceRoot":"","sources":["../../src/components/skeleton.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACpE,OAAO,CACL,2BAAe,UAAU,EAAC,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CACxG,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import * as React from "react";
2
+ import { Toaster as Sonner } from "sonner";
3
+ type SonnerToaster = typeof Sonner;
4
+ type ToasterProps = React.ComponentProps<SonnerToaster>;
5
+ declare function Toaster({ className, toastOptions, ...props }: ToasterProps): import("react/jsx-runtime").JSX.Element;
6
+ export { Toaster };
7
+ //# sourceMappingURL=sonner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sonner.d.ts","sourceRoot":"","sources":["../../src/components/sonner.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAI3C,KAAK,aAAa,GAAG,OAAO,MAAM,CAAC;AACnC,KAAK,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;AAUxD,iBAAS,OAAO,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,2CAcnE;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { Toaster as Sonner } from "sonner";
5
+ import { cn } from "../lib/cn.js";
6
+ const defaultToastClassNames = {
7
+ toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
8
+ description: "group-[.toast]:text-muted-foreground",
9
+ actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
10
+ cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground",
11
+ };
12
+ function Toaster({ className, toastOptions, ...props }) {
13
+ return (_jsx(Sonner, { className: cn("toaster group", className), toastOptions: {
14
+ ...toastOptions,
15
+ classNames: {
16
+ ...defaultToastClassNames,
17
+ ...toastOptions?.classNames,
18
+ },
19
+ }, ...props }));
20
+ }
21
+ export { Toaster };
22
+ //# sourceMappingURL=sonner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sonner.js","sourceRoot":"","sources":["../../src/components/sonner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAKlC,MAAM,sBAAsB,GAAG;IAC7B,KAAK,EACH,uIAAuI;IACzI,WAAW,EAAE,sCAAsC;IACnD,YAAY,EAAE,kEAAkE;IAChF,YAAY,EAAE,8DAA8D;CAC7E,CAAC;AAEF,SAAS,OAAO,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,KAAK,EAAgB;IAClE,OAAO,CACL,KAAC,MAAM,IACL,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EACzC,YAAY,EAAE;YACZ,GAAG,YAAY;YACf,UAAU,EAAE;gBACV,GAAG,sBAAsB;gBACzB,GAAG,YAAY,EAAE,UAAU;aAC5B;SACF,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import * as SwitchPrimitive from "@radix-ui/react-switch";
2
+ import * as React from "react";
3
+ declare function Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ export { Switch };
5
+ //# sourceMappingURL=switch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../src/components/switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,iBAAS,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAkBzF;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as SwitchPrimitive from "@radix-ui/react-switch";
3
+ import * as React from "react";
4
+ import { cn } from "../lib/cn.js";
5
+ function Switch({ className, ...props }) {
6
+ return (_jsx(SwitchPrimitive.Root, { "data-slot": "switch", className: cn("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", className), ...props, children: _jsx(SwitchPrimitive.Thumb, { "data-slot": "switch-thumb", className: cn("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0") }) }));
7
+ }
8
+ export { Switch };
9
+ //# sourceMappingURL=switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../src/components/switch.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,SAAS,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAqD;IACxF,OAAO,CACL,KAAC,eAAe,CAAC,IAAI,iBACT,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,2WAA2W,EAC3W,SAAS,CACV,KACG,KAAK,YAET,KAAC,eAAe,CAAC,KAAK,iBACV,cAAc,EACxB,SAAS,EAAE,EAAE,CACX,0QAA0Q,CAC3Q,GACD,GACmB,CACxB,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ declare function Table({ className, ...props }: React.ComponentProps<"table">): import("react/jsx-runtime").JSX.Element;
3
+ declare function TableHeader({ className, ...props }: React.ComponentProps<"thead">): import("react/jsx-runtime").JSX.Element;
4
+ declare function TableBody({ className, ...props }: React.ComponentProps<"tbody">): import("react/jsx-runtime").JSX.Element;
5
+ declare function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">): import("react/jsx-runtime").JSX.Element;
6
+ declare function TableRow({ className, ...props }: React.ComponentProps<"tr">): import("react/jsx-runtime").JSX.Element;
7
+ declare function TableHead({ className, ...props }: React.ComponentProps<"th">): import("react/jsx-runtime").JSX.Element;
8
+ declare function TableCell({ className, ...props }: React.ComponentProps<"td">): import("react/jsx-runtime").JSX.Element;
9
+ declare function TableCaption({ className, ...props }: React.ComponentProps<"caption">): import("react/jsx-runtime").JSX.Element;
10
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
11
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/components/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAMpE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAE1E;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAQxE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAQ1E;AAED,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWpE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWrE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWrE;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,2CAQ7E;AAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/cn.js";
4
+ function Table({ className, ...props }) {
5
+ return (_jsx("div", { "data-slot": "table-container", className: "relative w-full overflow-x-auto", children: _jsx("table", { "data-slot": "table", className: cn("w-full caption-bottom text-sm", className), ...props }) }));
6
+ }
7
+ function TableHeader({ className, ...props }) {
8
+ return _jsx("thead", { "data-slot": "table-header", className: cn("[&_tr]:border-b", className), ...props });
9
+ }
10
+ function TableBody({ className, ...props }) {
11
+ return (_jsx("tbody", { "data-slot": "table-body", className: cn("[&_tr:last-child]:border-0", className), ...props }));
12
+ }
13
+ function TableFooter({ className, ...props }) {
14
+ return (_jsx("tfoot", { "data-slot": "table-footer", className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props }));
15
+ }
16
+ function TableRow({ className, ...props }) {
17
+ return (_jsx("tr", { "data-slot": "table-row", className: cn("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", className), ...props }));
18
+ }
19
+ function TableHead({ className, ...props }) {
20
+ return (_jsx("th", { "data-slot": "table-head", className: cn("h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className), ...props }));
21
+ }
22
+ function TableCell({ className, ...props }) {
23
+ return (_jsx("td", { "data-slot": "table-cell", className: cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className), ...props }));
24
+ }
25
+ function TableCaption({ className, ...props }) {
26
+ return (_jsx("caption", { "data-slot": "table-caption", className: cn("mt-4 text-sm text-muted-foreground", className), ...props }));
27
+ }
28
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
29
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/components/table.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,SAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACnE,OAAO,CACL,2BAAe,iBAAiB,EAAC,SAAS,EAAC,iCAAiC,YAC1E,6BAAiB,OAAO,EAAC,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,GAC7F,CACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACzE,OAAO,6BAAiB,cAAc,EAAC,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AACpG,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACvE,OAAO,CACL,6BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,KAClD,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACzE,OAAO,CACL,6BACY,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,yDAAyD,EAAE,SAAS,CAAC,KAC/E,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACnE,OAAO,CACL,0BACY,WAAW,EACrB,SAAS,EAAE,EAAE,CACX,6EAA6E,EAC7E,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACpE,OAAO,CACL,0BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CACX,oJAAoJ,EACpJ,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IACpE,OAAO,CACL,0BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CACX,wGAAwG,EACxG,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAmC;IAC5E,OAAO,CACL,+BACY,eAAe,EACzB,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,KAC1D,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,25 @@
1
+ import * as React from "react";
2
+ interface TabsProps {
3
+ defaultValue?: string;
4
+ value?: string;
5
+ onValueChange?: (value: string) => void;
6
+ className?: string;
7
+ children: React.ReactNode;
8
+ }
9
+ export declare function Tabs({ defaultValue, value: controlledValue, onValueChange, className, children }: TabsProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function TabsList({ className, children, }: {
11
+ className?: string;
12
+ children: React.ReactNode;
13
+ }): import("react/jsx-runtime").JSX.Element;
14
+ export declare function TabsTrigger({ value, className, children, }: {
15
+ value: string;
16
+ className?: string;
17
+ children: React.ReactNode;
18
+ }): import("react/jsx-runtime").JSX.Element | null;
19
+ export declare function TabsContent({ value, className, children, }: {
20
+ value: string;
21
+ className?: string;
22
+ children: React.ReactNode;
23
+ }): import("react/jsx-runtime").JSX.Element | null;
24
+ export {};
25
+ //# sourceMappingURL=tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,UAAU,SAAS;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,IAAI,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,SAAS,2CAmB3G;AAED,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,QAAQ,GACT,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAUA;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,kDAqBA;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,kDASA"}
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/cn.js";
4
+ const TabsContext = React.createContext(null);
5
+ export function Tabs({ defaultValue, value: controlledValue, onValueChange, className, children }) {
6
+ const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue ?? "");
7
+ const isControlled = controlledValue !== undefined;
8
+ const value = isControlled ? controlledValue : uncontrolledValue;
9
+ const setValue = React.useCallback((v) => {
10
+ if (!isControlled)
11
+ setUncontrolledValue(v);
12
+ onValueChange?.(v);
13
+ }, [isControlled, onValueChange]);
14
+ return (_jsx(TabsContext.Provider, { value: { value, setValue }, children: _jsx("div", { "data-slot": "tabs", className: cn(className), children: children }) }));
15
+ }
16
+ export function TabsList({ className, children, }) {
17
+ return (_jsx("div", { "data-slot": "tabs-list", role: "tablist", className: cn("inline-flex items-center gap-2 rounded-md bg-muted p-1", className), children: children }));
18
+ }
19
+ export function TabsTrigger({ value, className, children, }) {
20
+ const ctx = React.useContext(TabsContext);
21
+ if (!ctx)
22
+ return null;
23
+ const isActive = ctx.value === value;
24
+ return (_jsx("button", { "data-slot": "tabs-trigger", "data-state": isActive ? "active" : "inactive", type: "button", role: "tab", "aria-selected": isActive, onClick: () => ctx.setValue(value), className: cn("rounded-md px-3 py-1.5 text-sm transition-colors", isActive ? "border bg-background shadow" : "text-muted-foreground hover:text-foreground", className), children: children }));
25
+ }
26
+ export function TabsContent({ value, className, children, }) {
27
+ const ctx = React.useContext(TabsContext);
28
+ if (!ctx)
29
+ return null;
30
+ if (ctx.value !== value)
31
+ return null;
32
+ return (_jsx("div", { "data-slot": "tabs-content", role: "tabpanel", className: cn(className), children: children }));
33
+ }
34
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAOlC,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAA0B,IAAI,CAAC,CAAC;AAUvE,MAAM,UAAU,IAAI,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAa;IAC1G,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAS,YAAY,IAAI,EAAE,CAAC,CAAC;IAC7F,MAAM,YAAY,GAAG,eAAe,KAAK,SAAS,CAAC;IACnD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAE,eAA0B,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAC7E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAChC,CAAC,CAAS,EAAE,EAAE;QACZ,IAAI,CAAC,YAAY;YAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAC3C,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,EACD,CAAC,YAAY,EAAE,aAAa,CAAC,CAC9B,CAAC;IAEF,OAAO,CACL,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,YAC9C,2BAAe,MAAM,EAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YAC3C,QAAQ,GACL,GACe,CACxB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,EACvB,SAAS,EACT,QAAQ,GAIT;IACC,OAAO,CACL,2BACY,WAAW,EACrB,IAAI,EAAC,SAAS,EACd,SAAS,EAAE,EAAE,CAAC,wDAAwD,EAAE,SAAS,CAAC,YAEjF,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,SAAS,EACT,QAAQ,GAKT;IACC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;IACrC,OAAO,CACL,8BACY,cAAc,gBACZ,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAC5C,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,mBACK,QAAQ,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAClC,SAAS,EAAE,EAAE,CACX,kDAAkD,EAClD,QAAQ,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,6CAA6C,EACxF,SAAS,CACV,YAEA,QAAQ,GACF,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,SAAS,EACT,QAAQ,GAKT;IACC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,CACL,2BAAe,cAAc,EAAC,IAAI,EAAC,UAAU,EAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YACnE,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
2
+ import * as React from "react";
3
+ declare function TooltipProvider({ delayDuration, ...props }: React.ComponentProps<typeof TooltipPrimitive.Provider>): import("react/jsx-runtime").JSX.Element;
4
+ declare function Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
5
+ declare function TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
6
+ declare function TooltipContent({ className, sideOffset, children, ...props }: React.ComponentProps<typeof TooltipPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
7
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
8
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,iBAAS,eAAe,CAAC,EACvB,aAAiB,EACjB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,2CAIxD;AAED,iBAAS,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAMhF;AAED,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAE1F;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,UAAc,EACd,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAiBvD;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
3
+ import * as React from "react";
4
+ import { cn } from "../lib/cn.js";
5
+ function TooltipProvider({ delayDuration = 0, ...props }) {
6
+ return (_jsx(TooltipPrimitive.Provider, { "data-slot": "tooltip-provider", delayDuration: delayDuration, ...props }));
7
+ }
8
+ function Tooltip({ ...props }) {
9
+ return (_jsx(TooltipProvider, { children: _jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) }));
10
+ }
11
+ function TooltipTrigger({ ...props }) {
12
+ return _jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
13
+ }
14
+ function TooltipContent({ className, sideOffset = 0, children, ...props }) {
15
+ return (_jsx(TooltipPrimitive.Portal, { children: _jsxs(TooltipPrimitive.Content, { "data-slot": "tooltip-content", sideOffset: sideOffset, className: cn("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance", className), ...props, children: [children, _jsx(TooltipPrimitive.Arrow, { className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })] }) }));
16
+ }
17
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
18
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,SAAS,eAAe,CAAC,EACvB,aAAa,GAAG,CAAC,EACjB,GAAG,KAAK,EAC+C;IACvD,OAAO,CACL,KAAC,gBAAgB,CAAC,QAAQ,iBAAW,kBAAkB,EAAC,aAAa,EAAE,aAAa,KAAM,KAAK,GAAI,CACpG,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,EAAE,GAAG,KAAK,EAAsD;IAC/E,OAAO,CACL,KAAC,eAAe,cACd,KAAC,gBAAgB,CAAC,IAAI,iBAAW,SAAS,KAAK,KAAK,GAAI,GACxC,CACnB,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAyD;IACzF,OAAO,KAAC,gBAAgB,CAAC,OAAO,iBAAW,iBAAiB,KAAK,KAAK,GAAI,CAAC;AAC7E,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,SAAS,EACT,UAAU,GAAG,CAAC,EACd,QAAQ,EACR,GAAG,KAAK,EAC8C;IACtD,OAAO,CACL,KAAC,gBAAgB,CAAC,MAAM,cACtB,MAAC,gBAAgB,CAAC,OAAO,iBACb,iBAAiB,EAC3B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,EAAE,CACX,maAAma,EACna,SAAS,CACV,KACG,KAAK,aAER,QAAQ,EACT,KAAC,gBAAgB,CAAC,KAAK,IAAC,SAAS,EAAC,oGAAoG,GAAG,IAChH,GACH,CAC3B,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Returns true when viewport width is below the Tailwind `md` breakpoint.
3
+ * Safe for SSR: initial render is `false` until `useEffect` runs in the browser.
4
+ */
5
+ export declare function useIsMobile(): boolean;
6
+ //# sourceMappingURL=use-is-mobile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-is-mobile.d.ts","sourceRoot":"","sources":["../../src/hooks/use-is-mobile.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,WAAW,YAc1B"}
@@ -0,0 +1,20 @@
1
+ import * as React from "react";
2
+ const MOBILE_BREAKPOINT = 768;
3
+ /**
4
+ * Returns true when viewport width is below the Tailwind `md` breakpoint.
5
+ * Safe for SSR: initial render is `false` until `useEffect` runs in the browser.
6
+ */
7
+ export function useIsMobile() {
8
+ const [isMobile, setIsMobile] = React.useState(undefined);
9
+ React.useEffect(() => {
10
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
11
+ const onChange = () => {
12
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
13
+ };
14
+ mql.addEventListener("change", onChange);
15
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
16
+ return () => mql.removeEventListener("change", onChange);
17
+ }, []);
18
+ return !!isMobile;
19
+ }
20
+ //# sourceMappingURL=use-is-mobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-is-mobile.js","sourceRoot":"","sources":["../../src/hooks/use-is-mobile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAsB,SAAS,CAAC,CAAC;IAE/E,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,iBAAiB,GAAG,CAAC,KAAK,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzC,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC;QACnD,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,CAAC,QAAQ,CAAC;AACpB,CAAC"}