@jackbernnie/hiyf 0.1.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 (245) hide show
  1. package/LICENSE +191 -0
  2. package/NOTICE +12 -0
  3. package/README.md +47 -0
  4. package/dist/components/Accordion.d.ts +38 -0
  5. package/dist/components/Accordion.js +38 -0
  6. package/dist/components/Alert.d.ts +29 -0
  7. package/dist/components/Alert.js +39 -0
  8. package/dist/components/AlertDialog.d.ts +37 -0
  9. package/dist/components/AlertDialog.js +38 -0
  10. package/dist/components/AspectRatio.d.ts +15 -0
  11. package/dist/components/AspectRatio.js +15 -0
  12. package/dist/components/Avatar.d.ts +26 -0
  13. package/dist/components/Avatar.js +13 -0
  14. package/dist/components/Badge.d.ts +18 -0
  15. package/dist/components/Badge.js +17 -0
  16. package/dist/components/Box.d.ts +13 -0
  17. package/dist/components/Box.js +52 -0
  18. package/dist/components/Breadcrumb.d.ts +33 -0
  19. package/dist/components/Breadcrumb.js +16 -0
  20. package/dist/components/Button.d.ts +40 -0
  21. package/dist/components/Button.js +33 -0
  22. package/dist/components/ButtonGroup.d.ts +18 -0
  23. package/dist/components/ButtonGroup.js +8 -0
  24. package/dist/components/Card.d.ts +46 -0
  25. package/dist/components/Card.js +24 -0
  26. package/dist/components/Carousel.d.ts +27 -0
  27. package/dist/components/Carousel.js +13 -0
  28. package/dist/components/Chart.d.ts +17 -0
  29. package/dist/components/Chart.js +94 -0
  30. package/dist/components/Checkbox.d.ts +26 -0
  31. package/dist/components/Checkbox.js +9 -0
  32. package/dist/components/Collapsible.d.ts +27 -0
  33. package/dist/components/Collapsible.js +26 -0
  34. package/dist/components/Combobox.d.ts +36 -0
  35. package/dist/components/Combobox.js +41 -0
  36. package/dist/components/Command.d.ts +37 -0
  37. package/dist/components/Command.js +32 -0
  38. package/dist/components/ContextMenu.d.ts +34 -0
  39. package/dist/components/ContextMenu.js +23 -0
  40. package/dist/components/Dialog.d.ts +20 -0
  41. package/dist/components/Dialog.js +34 -0
  42. package/dist/components/Drawer.d.ts +28 -0
  43. package/dist/components/Drawer.js +25 -0
  44. package/dist/components/DropdownMenu.d.ts +42 -0
  45. package/dist/components/DropdownMenu.js +32 -0
  46. package/dist/components/Empty.d.ts +28 -0
  47. package/dist/components/Empty.js +15 -0
  48. package/dist/components/Field.d.ts +30 -0
  49. package/dist/components/Field.js +13 -0
  50. package/dist/components/Grid.d.ts +32 -0
  51. package/dist/components/Grid.js +37 -0
  52. package/dist/components/GridItem.d.ts +30 -0
  53. package/dist/components/GridItem.js +40 -0
  54. package/dist/components/HoverCard.d.ts +22 -0
  55. package/dist/components/HoverCard.js +12 -0
  56. package/dist/components/Input.d.ts +34 -0
  57. package/dist/components/Input.js +8 -0
  58. package/dist/components/InputGroup.d.ts +28 -0
  59. package/dist/components/InputGroup.js +13 -0
  60. package/dist/components/InputOTP.d.ts +26 -0
  61. package/dist/components/InputOTP.js +25 -0
  62. package/dist/components/Kbd.d.ts +26 -0
  63. package/dist/components/Kbd.js +11 -0
  64. package/dist/components/Label.d.ts +20 -0
  65. package/dist/components/Label.js +17 -0
  66. package/dist/components/Menubar.d.ts +35 -0
  67. package/dist/components/Menubar.js +19 -0
  68. package/dist/components/NativeSelect.d.ts +33 -0
  69. package/dist/components/NativeSelect.js +37 -0
  70. package/dist/components/NavigationMenu.d.ts +32 -0
  71. package/dist/components/NavigationMenu.js +14 -0
  72. package/dist/components/Pagination.d.ts +28 -0
  73. package/dist/components/Pagination.js +62 -0
  74. package/dist/components/Popover.d.ts +28 -0
  75. package/dist/components/Popover.js +19 -0
  76. package/dist/components/Progress.d.ts +25 -0
  77. package/dist/components/Progress.js +37 -0
  78. package/dist/components/RadioGroup.d.ts +35 -0
  79. package/dist/components/RadioGroup.js +44 -0
  80. package/dist/components/Resizable.d.ts +31 -0
  81. package/dist/components/Resizable.js +17 -0
  82. package/dist/components/ScrollArea.d.ts +8 -0
  83. package/dist/components/ScrollArea.js +14 -0
  84. package/dist/components/Select.d.ts +35 -0
  85. package/dist/components/Select.js +33 -0
  86. package/dist/components/Separator.d.ts +10 -0
  87. package/dist/components/Separator.js +30 -0
  88. package/dist/components/Sheet.d.ts +31 -0
  89. package/dist/components/Sheet.js +26 -0
  90. package/dist/components/Sidebar.d.ts +52 -0
  91. package/dist/components/Sidebar.js +96 -0
  92. package/dist/components/Skeleton.d.ts +40 -0
  93. package/dist/components/Skeleton.js +42 -0
  94. package/dist/components/Slider.d.ts +26 -0
  95. package/dist/components/Slider.js +9 -0
  96. package/dist/components/Spinner.d.ts +7 -0
  97. package/dist/components/Spinner.js +13 -0
  98. package/dist/components/Status.d.ts +30 -0
  99. package/dist/components/Status.js +27 -0
  100. package/dist/components/Switch.d.ts +27 -0
  101. package/dist/components/Switch.js +9 -0
  102. package/dist/components/Table.d.ts +39 -0
  103. package/dist/components/Table.js +22 -0
  104. package/dist/components/Tabs.d.ts +32 -0
  105. package/dist/components/Tabs.js +21 -0
  106. package/dist/components/Text.d.ts +2 -0
  107. package/dist/components/Text.js +5 -0
  108. package/dist/components/Textarea.d.ts +32 -0
  109. package/dist/components/Textarea.js +15 -0
  110. package/dist/components/Toaster.d.ts +30 -0
  111. package/dist/components/Toaster.js +9 -0
  112. package/dist/components/Toggle.d.ts +34 -0
  113. package/dist/components/Toggle.js +31 -0
  114. package/dist/components/ToggleGroup.d.ts +46 -0
  115. package/dist/components/ToggleGroup.js +26 -0
  116. package/dist/components/Tooltip.d.ts +25 -0
  117. package/dist/components/Tooltip.js +12 -0
  118. package/dist/components/ui/accordion.d.ts +7 -0
  119. package/dist/components/ui/accordion.js +81 -0
  120. package/dist/components/ui/alert-dialog.d.ts +18 -0
  121. package/dist/components/ui/alert-dialog.js +154 -0
  122. package/dist/components/ui/alert.d.ts +10 -0
  123. package/dist/components/ui/alert.js +64 -0
  124. package/dist/components/ui/aspect-ratio.d.ts +3 -0
  125. package/dist/components/ui/aspect-ratio.js +11 -0
  126. package/dist/components/ui/avatar.d.ts +11 -0
  127. package/dist/components/ui/avatar.js +57 -0
  128. package/dist/components/ui/badge.d.ts +9 -0
  129. package/dist/components/ui/badge.js +42 -0
  130. package/dist/components/ui/breadcrumb.d.ts +11 -0
  131. package/dist/components/ui/breadcrumb.js +87 -0
  132. package/dist/components/ui/button-group.d.ts +11 -0
  133. package/dist/components/ui/button-group.js +37 -0
  134. package/dist/components/ui/button.d.ts +10 -0
  135. package/dist/components/ui/button.js +55 -0
  136. package/dist/components/ui/card.d.ts +11 -0
  137. package/dist/components/ui/card.js +82 -0
  138. package/dist/components/ui/carousel.d.ts +28 -0
  139. package/dist/components/ui/carousel.js +196 -0
  140. package/dist/components/ui/chart.d.ts +44 -0
  141. package/dist/components/ui/chart.js +198 -0
  142. package/dist/components/ui/checkbox.d.ts +4 -0
  143. package/dist/components/ui/checkbox.js +33 -0
  144. package/dist/components/ui/collapsible.d.ts +5 -0
  145. package/dist/components/ui/collapsible.js +33 -0
  146. package/dist/components/ui/combobox.d.ts +24 -0
  147. package/dist/components/ui/combobox.js +160 -0
  148. package/dist/components/ui/command.d.ts +18 -0
  149. package/dist/components/ui/command.js +142 -0
  150. package/dist/components/ui/context-menu.d.ts +31 -0
  151. package/dist/components/ui/context-menu.js +73 -0
  152. package/dist/components/ui/dialog.d.ts +17 -0
  153. package/dist/components/ui/dialog.js +138 -0
  154. package/dist/components/ui/direction.d.ts +7 -0
  155. package/dist/components/ui/direction.js +14 -0
  156. package/dist/components/ui/drawer.d.ts +13 -0
  157. package/dist/components/ui/drawer.js +101 -0
  158. package/dist/components/ui/dropdown-menu.d.ts +29 -0
  159. package/dist/components/ui/dropdown-menu.js +98 -0
  160. package/dist/components/ui/empty.d.ts +11 -0
  161. package/dist/components/ui/empty.js +97 -0
  162. package/dist/components/ui/field.d.ts +24 -0
  163. package/dist/components/ui/field.js +110 -0
  164. package/dist/components/ui/hover-card.d.ts +6 -0
  165. package/dist/components/ui/hover-card.js +37 -0
  166. package/dist/components/ui/input-group.d.ts +16 -0
  167. package/dist/components/ui/input-group.js +111 -0
  168. package/dist/components/ui/input-otp.d.ts +11 -0
  169. package/dist/components/ui/input-otp.js +66 -0
  170. package/dist/components/ui/input.d.ts +3 -0
  171. package/dist/components/ui/input.js +19 -0
  172. package/dist/components/ui/item.d.ts +23 -0
  173. package/dist/components/ui/item.js +181 -0
  174. package/dist/components/ui/kbd.d.ts +3 -0
  175. package/dist/components/ui/kbd.js +28 -0
  176. package/dist/components/ui/label.d.ts +4 -0
  177. package/dist/components/ui/label.js +23 -0
  178. package/dist/components/ui/menubar.d.ts +30 -0
  179. package/dist/components/ui/menubar.js +119 -0
  180. package/dist/components/ui/native-select.d.ts +8 -0
  181. package/dist/components/ui/native-select.js +49 -0
  182. package/dist/components/ui/navigation-menu.d.ts +14 -0
  183. package/dist/components/ui/navigation-menu.js +139 -0
  184. package/dist/components/ui/pagination.d.ts +17 -0
  185. package/dist/components/ui/pagination.js +120 -0
  186. package/dist/components/ui/popover.d.ts +10 -0
  187. package/dist/components/ui/popover.js +37 -0
  188. package/dist/components/ui/progress.d.ts +4 -0
  189. package/dist/components/ui/radio-group.d.ts +5 -0
  190. package/dist/components/ui/radio-group.js +44 -0
  191. package/dist/components/ui/resizable.d.ts +7 -0
  192. package/dist/components/ui/resizable.js +44 -0
  193. package/dist/components/ui/scroll-area.d.ts +5 -0
  194. package/dist/components/ui/scroll-area.js +59 -0
  195. package/dist/components/ui/select.d.ts +15 -0
  196. package/dist/components/ui/select.js +131 -0
  197. package/dist/components/ui/separator.d.ts +4 -0
  198. package/dist/components/ui/separator.js +27 -0
  199. package/dist/components/ui/sheet.d.ts +14 -0
  200. package/dist/components/ui/sheet.js +113 -0
  201. package/dist/components/ui/sidebar.d.ts +69 -0
  202. package/dist/components/ui/sidebar.js +459 -0
  203. package/dist/components/ui/skeleton.d.ts +2 -0
  204. package/dist/components/ui/slider.d.ts +4 -0
  205. package/dist/components/ui/slider.js +60 -0
  206. package/dist/components/ui/sonner.d.ts +3 -0
  207. package/dist/components/ui/sonner.js +38 -0
  208. package/dist/components/ui/spinner.d.ts +2 -0
  209. package/dist/components/ui/spinner.js +13 -0
  210. package/dist/components/ui/switch.d.ts +6 -0
  211. package/dist/components/ui/switch.js +32 -0
  212. package/dist/components/ui/table.d.ts +10 -0
  213. package/dist/components/ui/table.js +95 -0
  214. package/dist/components/ui/tabs.d.ts +11 -0
  215. package/dist/components/ui/tabs.js +87 -0
  216. package/dist/components/ui/textarea.d.ts +3 -0
  217. package/dist/components/ui/textarea.js +18 -0
  218. package/dist/components/ui/toggle-group.d.ts +10 -0
  219. package/dist/components/ui/toggle-group.js +76 -0
  220. package/dist/components/ui/toggle.d.ts +9 -0
  221. package/dist/components/ui/toggle.js +43 -0
  222. package/dist/components/ui/tooltip.d.ts +7 -0
  223. package/dist/components/ui/tooltip.js +53 -0
  224. package/dist/hooks/use-mobile.d.ts +1 -0
  225. package/dist/hooks/use-mobile.js +18 -0
  226. package/dist/index.d.ts +122 -0
  227. package/dist/index.js +61 -0
  228. package/dist/lib/utils.d.ts +2 -0
  229. package/dist/lib/utils.js +8 -0
  230. package/dist/primitives/createText.d.ts +103 -0
  231. package/dist/primitives/createText.js +183 -0
  232. package/dist/primitives/resolveProperties.d.ts +17 -0
  233. package/dist/stylex.css +1450 -0
  234. package/dist/tokens/animations.d.ts +126 -0
  235. package/dist/tokens/animations.js +61 -0
  236. package/dist/tokens/tokens.stylex.d.ts +85 -0
  237. package/dist/tokens/tokens.stylex.js +81 -0
  238. package/dist/utils/box-styles.d.ts +1117 -0
  239. package/dist/utils/box-styles.js +1455 -0
  240. package/dist/utils/grid.d.ts +4 -0
  241. package/dist/utils/resolvers.d.ts +10 -0
  242. package/dist/utils/resolvers.js +356 -0
  243. package/dist/utils/types.d.ts +133 -0
  244. package/package.json +80 -0
  245. package/src/theme.css +206 -0
@@ -0,0 +1,459 @@
1
+ 'use client';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import * as React from 'react';
4
+ import { cva } from 'class-variance-authority';
5
+ import { Slot } from 'radix-ui';
6
+ import { useIsMobile } from '../../hooks/use-mobile.js';
7
+ import { cn } from '../../lib/utils.js';
8
+ import { Button } from './button.js';
9
+ import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetDescription } from './sheet.js';
10
+ import { Tooltip, TooltipTrigger, TooltipContent } from './tooltip.js';
11
+ import { HugeiconsIcon } from '@hugeicons/react';
12
+ import { SidebarLeftIcon } from '@hugeicons/core-free-icons';
13
+
14
+ const SIDEBAR_COOKIE_NAME = "sidebar_state";
15
+ const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
16
+ const SIDEBAR_WIDTH = "16rem";
17
+ const SIDEBAR_WIDTH_MOBILE = "18rem";
18
+ const SIDEBAR_WIDTH_ICON = "3rem";
19
+ const SIDEBAR_KEYBOARD_SHORTCUT = "b";
20
+ const SidebarContext = React.createContext(null);
21
+ function useSidebar() {
22
+ const context = React.useContext(SidebarContext);
23
+ if (!context) {
24
+ throw new Error("useSidebar must be used within a SidebarProvider.");
25
+ }
26
+ return context;
27
+ }
28
+ function SidebarProvider({
29
+ defaultOpen = true,
30
+ open: openProp,
31
+ onOpenChange: setOpenProp,
32
+ className,
33
+ style,
34
+ children,
35
+ ...props
36
+ }) {
37
+ const isMobile = useIsMobile();
38
+ const [openMobile, setOpenMobile] = React.useState(false);
39
+ const [_open, _setOpen] = React.useState(defaultOpen);
40
+ const open = openProp ?? _open;
41
+ const setOpen = React.useCallback(
42
+ (value) => {
43
+ const openState = typeof value === "function" ? value(open) : value;
44
+ if (setOpenProp) {
45
+ setOpenProp(openState);
46
+ } else {
47
+ _setOpen(openState);
48
+ }
49
+ document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
50
+ },
51
+ [setOpenProp, open]
52
+ );
53
+ const toggleSidebar = React.useCallback(() => {
54
+ return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
55
+ }, [isMobile, setOpen, setOpenMobile]);
56
+ React.useEffect(() => {
57
+ const handleKeyDown = (event) => {
58
+ if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
59
+ event.preventDefault();
60
+ toggleSidebar();
61
+ }
62
+ };
63
+ window.addEventListener("keydown", handleKeyDown);
64
+ return () => window.removeEventListener("keydown", handleKeyDown);
65
+ }, [toggleSidebar]);
66
+ const state = open ? "expanded" : "collapsed";
67
+ const contextValue = React.useMemo(
68
+ () => ({
69
+ state,
70
+ open,
71
+ setOpen,
72
+ isMobile,
73
+ openMobile,
74
+ setOpenMobile,
75
+ toggleSidebar
76
+ }),
77
+ [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
78
+ );
79
+ return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
80
+ "div",
81
+ {
82
+ "data-slot": "sidebar-wrapper",
83
+ style: {
84
+ "--sidebar-width": SIDEBAR_WIDTH,
85
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
86
+ ...style
87
+ },
88
+ className: cn(
89
+ "group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",
90
+ className
91
+ ),
92
+ ...props,
93
+ children
94
+ }
95
+ ) });
96
+ }
97
+ function Sidebar({
98
+ side = "left",
99
+ variant = "sidebar",
100
+ collapsible = "offcanvas",
101
+ className,
102
+ children,
103
+ dir,
104
+ ...props
105
+ }) {
106
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
107
+ if (collapsible === "none") {
108
+ return /* @__PURE__ */ jsx(
109
+ "div",
110
+ {
111
+ "data-slot": "sidebar",
112
+ className: cn(
113
+ "flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",
114
+ className
115
+ ),
116
+ ...props,
117
+ children
118
+ }
119
+ );
120
+ }
121
+ if (isMobile) {
122
+ return /* @__PURE__ */ jsx(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs(
123
+ SheetContent,
124
+ {
125
+ dir,
126
+ "data-sidebar": "sidebar",
127
+ "data-slot": "sidebar",
128
+ "data-mobile": "true",
129
+ className: "w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",
130
+ style: {
131
+ "--sidebar-width": SIDEBAR_WIDTH_MOBILE
132
+ },
133
+ side,
134
+ children: [
135
+ /* @__PURE__ */ jsxs(SheetHeader, { className: "sr-only", children: [
136
+ /* @__PURE__ */ jsx(SheetTitle, { children: "Sidebar" }),
137
+ /* @__PURE__ */ jsx(SheetDescription, { children: "Displays the mobile sidebar." })
138
+ ] }),
139
+ /* @__PURE__ */ jsx("div", { className: "flex h-full w-full flex-col", children })
140
+ ]
141
+ }
142
+ ) });
143
+ }
144
+ return /* @__PURE__ */ jsxs(
145
+ "div",
146
+ {
147
+ className: "group peer hidden text-sidebar-foreground md:block",
148
+ "data-state": state,
149
+ "data-collapsible": state === "collapsed" ? collapsible : "",
150
+ "data-variant": variant,
151
+ "data-side": side,
152
+ "data-slot": "sidebar",
153
+ children: [
154
+ /* @__PURE__ */ jsx(
155
+ "div",
156
+ {
157
+ "data-slot": "sidebar-gap",
158
+ className: cn(
159
+ "relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
160
+ "group-data-[collapsible=offcanvas]:w-0",
161
+ "group-data-[side=right]:rotate-180",
162
+ variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
163
+ )
164
+ }
165
+ ),
166
+ /* @__PURE__ */ jsx(
167
+ "div",
168
+ {
169
+ "data-slot": "sidebar-container",
170
+ "data-side": side,
171
+ className: cn(
172
+ "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex",
173
+ // Adjust the padding for floating and inset variants.
174
+ variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
175
+ className
176
+ ),
177
+ ...props,
178
+ children: /* @__PURE__ */ jsx(
179
+ "div",
180
+ {
181
+ "data-sidebar": "sidebar",
182
+ "data-slot": "sidebar-inner",
183
+ className: "flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border",
184
+ children
185
+ }
186
+ )
187
+ }
188
+ )
189
+ ]
190
+ }
191
+ );
192
+ }
193
+ function SidebarTrigger({
194
+ className,
195
+ onClick,
196
+ ...props
197
+ }) {
198
+ const { toggleSidebar } = useSidebar();
199
+ return /* @__PURE__ */ jsxs(
200
+ Button,
201
+ {
202
+ "data-sidebar": "trigger",
203
+ "data-slot": "sidebar-trigger",
204
+ variant: "ghost",
205
+ size: "icon-sm",
206
+ className: cn(className),
207
+ onClick: (event) => {
208
+ onClick?.(event);
209
+ toggleSidebar();
210
+ },
211
+ ...props,
212
+ children: [
213
+ /* @__PURE__ */ jsx(HugeiconsIcon, { icon: SidebarLeftIcon, strokeWidth: 2 }),
214
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle Sidebar" })
215
+ ]
216
+ }
217
+ );
218
+ }
219
+ function SidebarRail({ className, ...props }) {
220
+ const { toggleSidebar } = useSidebar();
221
+ return /* @__PURE__ */ jsx(
222
+ "button",
223
+ {
224
+ "data-sidebar": "rail",
225
+ "data-slot": "sidebar-rail",
226
+ "aria-label": "Toggle Sidebar",
227
+ tabIndex: -1,
228
+ onClick: toggleSidebar,
229
+ title: "Toggle Sidebar",
230
+ className: cn(
231
+ "absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2",
232
+ "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
233
+ "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
234
+ "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar",
235
+ "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
236
+ "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
237
+ className
238
+ ),
239
+ ...props
240
+ }
241
+ );
242
+ }
243
+ function SidebarInset({ className, ...props }) {
244
+ return /* @__PURE__ */ jsx(
245
+ "main",
246
+ {
247
+ "data-slot": "sidebar-inset",
248
+ className: cn(
249
+ "relative flex w-full flex-1 flex-col bg-background 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",
250
+ className
251
+ ),
252
+ ...props
253
+ }
254
+ );
255
+ }
256
+ function SidebarHeader({ className, ...props }) {
257
+ return /* @__PURE__ */ jsx(
258
+ "div",
259
+ {
260
+ "data-slot": "sidebar-header",
261
+ "data-sidebar": "header",
262
+ className: cn("flex flex-col gap-2 p-2", className),
263
+ ...props
264
+ }
265
+ );
266
+ }
267
+ function SidebarFooter({ className, ...props }) {
268
+ return /* @__PURE__ */ jsx(
269
+ "div",
270
+ {
271
+ "data-slot": "sidebar-footer",
272
+ "data-sidebar": "footer",
273
+ className: cn("flex flex-col gap-2 p-2", className),
274
+ ...props
275
+ }
276
+ );
277
+ }
278
+ function SidebarContent({ className, ...props }) {
279
+ return /* @__PURE__ */ jsx(
280
+ "div",
281
+ {
282
+ "data-slot": "sidebar-content",
283
+ "data-sidebar": "content",
284
+ className: cn(
285
+ "no-scrollbar flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
286
+ className
287
+ ),
288
+ ...props
289
+ }
290
+ );
291
+ }
292
+ function SidebarGroup({ className, ...props }) {
293
+ return /* @__PURE__ */ jsx(
294
+ "div",
295
+ {
296
+ "data-slot": "sidebar-group",
297
+ "data-sidebar": "group",
298
+ className: cn("relative flex w-full min-w-0 flex-col p-2", className),
299
+ ...props
300
+ }
301
+ );
302
+ }
303
+ function SidebarGroupLabel({
304
+ className,
305
+ asChild = false,
306
+ ...props
307
+ }) {
308
+ const Comp = asChild ? Slot.Root : "div";
309
+ return /* @__PURE__ */ jsx(
310
+ Comp,
311
+ {
312
+ "data-slot": "sidebar-group-label",
313
+ "data-sidebar": "group-label",
314
+ className: cn(
315
+ "flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
316
+ className
317
+ ),
318
+ ...props
319
+ }
320
+ );
321
+ }
322
+ function SidebarMenu({ className, ...props }) {
323
+ return /* @__PURE__ */ jsx(
324
+ "ul",
325
+ {
326
+ "data-slot": "sidebar-menu",
327
+ "data-sidebar": "menu",
328
+ className: cn("flex w-full min-w-0 flex-col gap-1", className),
329
+ ...props
330
+ }
331
+ );
332
+ }
333
+ function SidebarMenuItem({ className, ...props }) {
334
+ return /* @__PURE__ */ jsx(
335
+ "li",
336
+ {
337
+ "data-slot": "sidebar-menu-item",
338
+ "data-sidebar": "menu-item",
339
+ className: cn("group/menu-item relative", className),
340
+ ...props
341
+ }
342
+ );
343
+ }
344
+ const sidebarMenuButtonVariants = cva(
345
+ "peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate",
346
+ {
347
+ variants: {
348
+ variant: {
349
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
350
+ outline: "bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"
351
+ },
352
+ size: {
353
+ default: "h-8 text-sm",
354
+ sm: "h-7 text-xs",
355
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
356
+ }
357
+ },
358
+ defaultVariants: {
359
+ variant: "default",
360
+ size: "default"
361
+ }
362
+ }
363
+ );
364
+ function SidebarMenuButton({
365
+ asChild = false,
366
+ isActive = false,
367
+ variant = "default",
368
+ size = "default",
369
+ tooltip,
370
+ className,
371
+ ...props
372
+ }) {
373
+ const Comp = asChild ? Slot.Root : "button";
374
+ const { isMobile, state } = useSidebar();
375
+ const button = /* @__PURE__ */ jsx(
376
+ Comp,
377
+ {
378
+ "data-slot": "sidebar-menu-button",
379
+ "data-sidebar": "menu-button",
380
+ "data-size": size,
381
+ "data-active": isActive,
382
+ className: cn(sidebarMenuButtonVariants({ variant, size }), className),
383
+ ...props
384
+ }
385
+ );
386
+ if (!tooltip) {
387
+ return button;
388
+ }
389
+ if (typeof tooltip === "string") {
390
+ tooltip = {
391
+ children: tooltip
392
+ };
393
+ }
394
+ return /* @__PURE__ */ jsxs(Tooltip, { children: [
395
+ /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: button }),
396
+ /* @__PURE__ */ jsx(
397
+ TooltipContent,
398
+ {
399
+ side: "right",
400
+ align: "center",
401
+ hidden: state !== "collapsed" || isMobile,
402
+ ...tooltip
403
+ }
404
+ )
405
+ ] });
406
+ }
407
+ function SidebarMenuSub({ className, ...props }) {
408
+ return /* @__PURE__ */ jsx(
409
+ "ul",
410
+ {
411
+ "data-slot": "sidebar-menu-sub",
412
+ "data-sidebar": "menu-sub",
413
+ className: cn(
414
+ "mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden",
415
+ className
416
+ ),
417
+ ...props
418
+ }
419
+ );
420
+ }
421
+ function SidebarMenuSubItem({
422
+ className,
423
+ ...props
424
+ }) {
425
+ return /* @__PURE__ */ jsx(
426
+ "li",
427
+ {
428
+ "data-slot": "sidebar-menu-sub-item",
429
+ "data-sidebar": "menu-sub-item",
430
+ className: cn("group/menu-sub-item relative", className),
431
+ ...props
432
+ }
433
+ );
434
+ }
435
+ function SidebarMenuSubButton({
436
+ asChild = false,
437
+ size = "md",
438
+ isActive = false,
439
+ className,
440
+ ...props
441
+ }) {
442
+ const Comp = asChild ? Slot.Root : "a";
443
+ return /* @__PURE__ */ jsx(
444
+ Comp,
445
+ {
446
+ "data-slot": "sidebar-menu-sub-button",
447
+ "data-sidebar": "menu-sub-button",
448
+ "data-size": size,
449
+ "data-active": isActive,
450
+ className: cn(
451
+ "flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
452
+ className
453
+ ),
454
+ ...props
455
+ }
456
+ );
457
+ }
458
+
459
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarTrigger, useSidebar };
@@ -0,0 +1,2 @@
1
+ declare function Skeleton({ className, ...props }: React.ComponentProps<"div">): import("react").JSX.Element;
2
+ export { Skeleton };
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ import { Slider as SliderPrimitive } from "radix-ui";
3
+ declare function Slider({ className, defaultValue, value, min, max, ...props }: React.ComponentProps<typeof SliderPrimitive.Root>): React.JSX.Element;
4
+ export { Slider };
@@ -0,0 +1,60 @@
1
+ 'use client';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import * as React from 'react';
4
+ import { Slider as Slider$1 } from 'radix-ui';
5
+ import { cn } from '../../lib/utils.js';
6
+
7
+ function Slider({
8
+ className,
9
+ defaultValue,
10
+ value,
11
+ min = 0,
12
+ max = 100,
13
+ ...props
14
+ }) {
15
+ const _values = React.useMemo(
16
+ () => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
17
+ [value, defaultValue, min, max]
18
+ );
19
+ return /* @__PURE__ */ jsxs(
20
+ Slider$1.Root,
21
+ {
22
+ "data-slot": "slider",
23
+ defaultValue,
24
+ value,
25
+ min,
26
+ max,
27
+ className: cn(
28
+ "relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col",
29
+ className
30
+ ),
31
+ ...props,
32
+ children: [
33
+ /* @__PURE__ */ jsx(
34
+ Slider$1.Track,
35
+ {
36
+ "data-slot": "slider-track",
37
+ className: "relative grow overflow-hidden rounded-full bg-muted data-horizontal:h-1.5 data-horizontal:w-full data-vertical:h-full data-vertical:w-1.5",
38
+ children: /* @__PURE__ */ jsx(
39
+ Slider$1.Range,
40
+ {
41
+ "data-slot": "slider-range",
42
+ className: "absolute bg-primary select-none data-horizontal:h-full data-vertical:w-full"
43
+ }
44
+ )
45
+ }
46
+ ),
47
+ Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx(
48
+ Slider$1.Thumb,
49
+ {
50
+ "data-slot": "slider-thumb",
51
+ className: "block size-4 shrink-0 rounded-full border border-primary bg-white shadow-sm ring-ring/50 transition-[color,box-shadow] select-none hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"
52
+ },
53
+ index
54
+ ))
55
+ ]
56
+ }
57
+ );
58
+ }
59
+
60
+ export { Slider };
@@ -0,0 +1,3 @@
1
+ import { type ToasterProps } from "sonner";
2
+ declare const Toaster: ({ ...props }: ToasterProps) => import("react").JSX.Element;
3
+ export { Toaster };
@@ -0,0 +1,38 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { useTheme } from 'next-themes';
4
+ import { Toaster as Toaster$1 } from 'sonner';
5
+ import { HugeiconsIcon } from '@hugeicons/react';
6
+ import { Loading03Icon, MultiplicationSignCircleIcon, Alert02Icon, InformationCircleIcon, CheckmarkCircle02Icon } from '@hugeicons/core-free-icons';
7
+
8
+ const Toaster = ({ ...props }) => {
9
+ const { theme = "system" } = useTheme();
10
+ return /* @__PURE__ */ jsx(
11
+ Toaster$1,
12
+ {
13
+ theme,
14
+ className: "toaster group",
15
+ icons: {
16
+ success: /* @__PURE__ */ jsx(HugeiconsIcon, { icon: CheckmarkCircle02Icon, strokeWidth: 2, className: "size-4" }),
17
+ info: /* @__PURE__ */ jsx(HugeiconsIcon, { icon: InformationCircleIcon, strokeWidth: 2, className: "size-4" }),
18
+ warning: /* @__PURE__ */ jsx(HugeiconsIcon, { icon: Alert02Icon, strokeWidth: 2, className: "size-4" }),
19
+ error: /* @__PURE__ */ jsx(HugeiconsIcon, { icon: MultiplicationSignCircleIcon, strokeWidth: 2, className: "size-4" }),
20
+ loading: /* @__PURE__ */ jsx(HugeiconsIcon, { icon: Loading03Icon, strokeWidth: 2, className: "size-4 animate-spin" })
21
+ },
22
+ style: {
23
+ "--normal-bg": "var(--popover)",
24
+ "--normal-text": "var(--popover-foreground)",
25
+ "--normal-border": "var(--border)",
26
+ "--border-radius": "var(--radius)"
27
+ },
28
+ toastOptions: {
29
+ classNames: {
30
+ toast: "cn-toast"
31
+ }
32
+ },
33
+ ...props
34
+ }
35
+ );
36
+ };
37
+
38
+ export { Toaster };
@@ -0,0 +1,2 @@
1
+ declare function Spinner({ className, ...props }: Omit<React.ComponentProps<"svg">, "strokeWidth">): import("react").JSX.Element;
2
+ export { Spinner };
@@ -0,0 +1,13 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { cn } from '../../lib/utils.js';
3
+ import { HugeiconsIcon } from '@hugeicons/react';
4
+ import { Loading03Icon } from '@hugeicons/core-free-icons';
5
+
6
+ function Spinner({
7
+ className,
8
+ ...props
9
+ }) {
10
+ return /* @__PURE__ */ jsx(HugeiconsIcon, { icon: Loading03Icon, strokeWidth: 2, "data-slot": "spinner", role: "status", "aria-label": "Loading", className: cn("size-4 animate-spin", className), ...props });
11
+ }
12
+
13
+ export { Spinner };
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import { Switch as SwitchPrimitive } from "radix-ui";
3
+ declare function Switch({ className, size, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root> & {
4
+ size?: "sm" | "default";
5
+ }): React.JSX.Element;
6
+ export { Switch };
@@ -0,0 +1,32 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { Switch as Switch$1 } from 'radix-ui';
4
+ import { cn } from '../../lib/utils.js';
5
+
6
+ function Switch({
7
+ className,
8
+ size = "default",
9
+ ...props
10
+ }) {
11
+ return /* @__PURE__ */ jsx(
12
+ Switch$1.Root,
13
+ {
14
+ "data-slot": "switch",
15
+ "data-size": size,
16
+ className: cn(
17
+ "peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50",
18
+ className
19
+ ),
20
+ ...props,
21
+ children: /* @__PURE__ */ jsx(
22
+ Switch$1.Thumb,
23
+ {
24
+ "data-slot": "switch-thumb",
25
+ className: "pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground"
26
+ }
27
+ )
28
+ }
29
+ );
30
+ }
31
+
32
+ export { Switch };
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ declare function Table({ className, ...props }: React.ComponentProps<"table">): React.JSX.Element;
3
+ declare function TableHeader({ className, ...props }: React.ComponentProps<"thead">): React.JSX.Element;
4
+ declare function TableBody({ className, ...props }: React.ComponentProps<"tbody">): React.JSX.Element;
5
+ declare function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">): React.JSX.Element;
6
+ declare function TableRow({ className, ...props }: React.ComponentProps<"tr">): React.JSX.Element;
7
+ declare function TableHead({ className, ...props }: React.ComponentProps<"th">): React.JSX.Element;
8
+ declare function TableCell({ className, ...props }: React.ComponentProps<"td">): React.JSX.Element;
9
+ declare function TableCaption({ className, ...props }: React.ComponentProps<"caption">): React.JSX.Element;
10
+ export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, };