@beyondcorp/beyond-ui 1.0.6 → 1.0.9

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 (280) hide show
  1. package/README.md +233 -89
  2. package/dist/_virtual/jsx-runtime.js +6 -0
  3. package/dist/_virtual/jsx-runtime.js.map +1 -0
  4. package/dist/_virtual/jsx-runtime2.js +4 -0
  5. package/dist/_virtual/jsx-runtime2.js.map +1 -0
  6. package/dist/_virtual/react-jsx-runtime.development.js +4 -0
  7. package/dist/_virtual/react-jsx-runtime.development.js.map +1 -0
  8. package/dist/_virtual/react-jsx-runtime.production.min.js +4 -0
  9. package/dist/_virtual/react-jsx-runtime.production.min.js.map +1 -0
  10. package/dist/components/Alert/Alert.d.ts +11 -0
  11. package/dist/components/Alert/Alert.js +28 -0
  12. package/dist/components/Alert/Alert.js.map +1 -0
  13. package/dist/components/Alert/index.d.ts +1 -0
  14. package/dist/components/Alert/index.js +2 -0
  15. package/dist/components/Alert/index.js.map +1 -0
  16. package/dist/components/Avatar/Avatar.d.ts +11 -0
  17. package/dist/components/Avatar/Avatar.js +27 -0
  18. package/dist/components/Avatar/Avatar.js.map +1 -0
  19. package/dist/components/Avatar/index.d.ts +1 -0
  20. package/dist/components/Avatar/index.js +2 -0
  21. package/dist/components/Avatar/index.js.map +1 -0
  22. package/dist/components/Badge/Badge.d.ts +9 -0
  23. package/dist/components/Badge/Badge.js +25 -0
  24. package/dist/components/Badge/Badge.js.map +1 -0
  25. package/dist/components/Badge/index.d.ts +1 -0
  26. package/dist/components/Badge/index.js +2 -0
  27. package/dist/components/Badge/index.js.map +1 -0
  28. package/dist/components/Button/Button.d.ts +11 -0
  29. package/dist/components/Button/Button.js +38 -0
  30. package/dist/components/Button/Button.js.map +1 -0
  31. package/dist/components/Button/index.d.ts +1 -0
  32. package/dist/components/Button/index.js +2 -0
  33. package/dist/components/Button/index.js.map +1 -0
  34. package/dist/components/Card/Card.d.ts +15 -0
  35. package/dist/components/Card/Card.js +39 -0
  36. package/dist/components/Card/Card.js.map +1 -0
  37. package/dist/components/Card/index.d.ts +1 -0
  38. package/dist/components/Card/index.js +2 -0
  39. package/dist/components/Card/index.js.map +1 -0
  40. package/dist/components/Checkbox/Checkbox.d.ts +9 -0
  41. package/dist/components/Checkbox/Checkbox.js +25 -0
  42. package/dist/components/Checkbox/Checkbox.js.map +1 -0
  43. package/dist/components/Checkbox/index.d.ts +1 -0
  44. package/dist/components/Checkbox/index.js +2 -0
  45. package/dist/components/Checkbox/index.js.map +1 -0
  46. package/dist/components/ComponentShowcase/ComponentShowcase.d.ts +6 -0
  47. package/dist/components/ComponentShowcase/ComponentShowcase.js +540 -0
  48. package/dist/components/ComponentShowcase/ComponentShowcase.js.map +1 -0
  49. package/dist/components/ComponentShowcase/index.d.ts +1 -0
  50. package/dist/components/ComponentShowcase/index.js +2 -0
  51. package/dist/components/ComponentShowcase/index.js.map +1 -0
  52. package/dist/components/DashboardGrid/DashboardGrid.d.ts +16 -0
  53. package/dist/components/DashboardGrid/DashboardGrid.js +54 -0
  54. package/dist/components/DashboardGrid/DashboardGrid.js.map +1 -0
  55. package/dist/components/DashboardGrid/index.d.ts +1 -0
  56. package/dist/components/DashboardGrid/index.js +2 -0
  57. package/dist/components/DashboardGrid/index.js.map +1 -0
  58. package/dist/components/DashboardHeader/DashboardHeader.d.ts +16 -0
  59. package/dist/components/DashboardHeader/DashboardHeader.js +25 -0
  60. package/dist/components/DashboardHeader/DashboardHeader.js.map +1 -0
  61. package/dist/components/DashboardHeader/index.d.ts +1 -0
  62. package/dist/components/DashboardHeader/index.js +2 -0
  63. package/dist/components/DashboardHeader/index.js.map +1 -0
  64. package/dist/components/DashboardLayout/DashboardLayout.d.ts +18 -0
  65. package/dist/components/DashboardLayout/DashboardLayout.js +19 -0
  66. package/dist/components/DashboardLayout/DashboardLayout.js.map +1 -0
  67. package/dist/components/DashboardLayout/index.d.ts +1 -0
  68. package/dist/components/DashboardLayout/index.js +2 -0
  69. package/dist/components/DashboardLayout/index.js.map +1 -0
  70. package/dist/components/DataTable/DataTable.d.ts +5 -0
  71. package/dist/components/DataTable/DataTable.js +246 -0
  72. package/dist/components/DataTable/DataTable.js.map +1 -0
  73. package/dist/components/DataTable/DataTable.types.d.ts +70 -0
  74. package/dist/components/DataTable/DataTableShowcase.d.ts +2 -0
  75. package/dist/components/DataTable/DataTableShowcase.js +348 -0
  76. package/dist/components/DataTable/DataTableShowcase.js.map +1 -0
  77. package/dist/components/DataTable/index.d.ts +2 -0
  78. package/dist/components/DataTable/index.js +2 -0
  79. package/dist/components/DataTable/index.js.map +1 -0
  80. package/dist/components/Input/Input.d.ts +10 -0
  81. package/dist/components/Input/Input.js +30 -0
  82. package/dist/components/Input/Input.js.map +1 -0
  83. package/dist/components/Input/index.d.ts +1 -0
  84. package/dist/components/Input/index.js +2 -0
  85. package/dist/components/Input/index.js.map +1 -0
  86. package/dist/components/Modal/Modal.d.ts +17 -0
  87. package/dist/components/Modal/Modal.js +35 -0
  88. package/dist/components/Modal/Modal.js.map +1 -0
  89. package/dist/components/Modal/index.d.ts +1 -0
  90. package/dist/components/Modal/index.js +2 -0
  91. package/dist/components/Modal/index.js.map +1 -0
  92. package/dist/components/Navbar/Navbar.d.ts +13 -0
  93. package/dist/components/Navbar/Navbar.js +35 -0
  94. package/dist/components/Navbar/Navbar.js.map +1 -0
  95. package/dist/components/Navbar/index.d.ts +1 -0
  96. package/dist/components/Navbar/index.js +2 -0
  97. package/dist/components/Navbar/index.js.map +1 -0
  98. package/dist/components/Sidebar/Sidebar.d.ts +22 -0
  99. package/dist/components/Sidebar/Sidebar.js +129 -0
  100. package/dist/components/Sidebar/Sidebar.js.map +1 -0
  101. package/dist/components/Sidebar/index.d.ts +1 -0
  102. package/dist/components/Sidebar/index.js +2 -0
  103. package/dist/components/Sidebar/index.js.map +1 -0
  104. package/dist/components/Skeleton/Skeleton.d.ts +9 -0
  105. package/dist/components/Skeleton/Skeleton.js +23 -0
  106. package/dist/components/Skeleton/Skeleton.js.map +1 -0
  107. package/dist/components/Skeleton/index.d.ts +1 -0
  108. package/dist/components/Skeleton/index.js +2 -0
  109. package/dist/components/Skeleton/index.js.map +1 -0
  110. package/dist/components/Spinner/Spinner.d.ts +10 -0
  111. package/dist/components/Spinner/Spinner.js +32 -0
  112. package/dist/components/Spinner/Spinner.js.map +1 -0
  113. package/dist/components/Spinner/index.d.ts +1 -0
  114. package/dist/components/Spinner/index.js +2 -0
  115. package/dist/components/Spinner/index.js.map +1 -0
  116. package/dist/components/StatsCard/StatsCard.d.ts +19 -0
  117. package/dist/components/StatsCard/StatsCard.js +56 -0
  118. package/dist/components/StatsCard/StatsCard.js.map +1 -0
  119. package/dist/components/StatsCard/index.d.ts +1 -0
  120. package/dist/components/StatsCard/index.js +2 -0
  121. package/dist/components/StatsCard/index.js.map +1 -0
  122. package/dist/components/Switch/Switch.d.ts +11 -0
  123. package/dist/components/Switch/Switch.js +39 -0
  124. package/dist/components/Switch/Switch.js.map +1 -0
  125. package/dist/components/Switch/index.d.ts +1 -0
  126. package/dist/components/Switch/index.js +2 -0
  127. package/dist/components/Switch/index.js.map +1 -0
  128. package/dist/components/Tabs/Tabs.d.ts +25 -0
  129. package/dist/components/Tabs/Tabs.js +60 -0
  130. package/dist/components/Tabs/Tabs.js.map +1 -0
  131. package/dist/components/Tabs/index.d.ts +1 -0
  132. package/dist/components/Tabs/index.js +2 -0
  133. package/dist/components/Tabs/index.js.map +1 -0
  134. package/dist/components/Textarea/Textarea.d.ts +9 -0
  135. package/dist/components/Textarea/Textarea.js +24 -0
  136. package/dist/components/Textarea/Textarea.js.map +1 -0
  137. package/dist/components/Textarea/index.d.ts +1 -0
  138. package/dist/components/Textarea/index.js +2 -0
  139. package/dist/components/Textarea/index.js.map +1 -0
  140. package/dist/components/Toast/Toast.d.ts +18 -0
  141. package/dist/components/Toast/Toast.js +75 -0
  142. package/dist/components/Toast/Toast.js.map +1 -0
  143. package/dist/components/Toast/index.d.ts +1 -0
  144. package/dist/components/Toast/index.js +2 -0
  145. package/dist/components/Toast/index.js.map +1 -0
  146. package/dist/hooks/useBreakpoint.d.ts +14 -0
  147. package/dist/hooks/useBreakpoint.js +40 -0
  148. package/dist/hooks/useBreakpoint.js.map +1 -0
  149. package/dist/hooks/useDarkMode.d.ts +4 -0
  150. package/dist/hooks/useDarkMode.js +29 -0
  151. package/dist/hooks/useDarkMode.js.map +1 -0
  152. package/dist/hooks/useDebounce.d.ts +1 -0
  153. package/dist/hooks/useDebounce.js +17 -0
  154. package/dist/hooks/useDebounce.js.map +1 -0
  155. package/dist/hooks/useLocalStorage.d.ts +1 -0
  156. package/dist/hooks/useLocalStorage.js +44 -0
  157. package/dist/hooks/useLocalStorage.js.map +1 -0
  158. package/dist/hooks/useToggle.d.ts +1 -0
  159. package/dist/hooks/useToggle.js +11 -0
  160. package/dist/hooks/useToggle.js.map +1 -0
  161. package/dist/index.d.ts +29 -424
  162. package/dist/index.js +30 -3375
  163. package/dist/index.js.map +1 -0
  164. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +37 -0
  165. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -0
  166. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +91 -0
  167. package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
  168. package/dist/node_modules/goober/dist/goober.modern.js +4 -0
  169. package/dist/node_modules/goober/dist/goober.modern.js.map +1 -0
  170. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js +48 -0
  171. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js.map +1 -0
  172. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js +21 -0
  173. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js.map +1 -0
  174. package/dist/node_modules/lucide-react/dist/esm/icons/alert-circle.js +18 -0
  175. package/dist/node_modules/lucide-react/dist/esm/icons/alert-circle.js.map +1 -0
  176. package/dist/node_modules/lucide-react/dist/esm/icons/alert-triangle.js +24 -0
  177. package/dist/node_modules/lucide-react/dist/esm/icons/alert-triangle.js.map +1 -0
  178. package/dist/node_modules/lucide-react/dist/esm/icons/bar-chart-3.js +19 -0
  179. package/dist/node_modules/lucide-react/dist/esm/icons/bar-chart-3.js.map +1 -0
  180. package/dist/node_modules/lucide-react/dist/esm/icons/bell.js +17 -0
  181. package/dist/node_modules/lucide-react/dist/esm/icons/bell.js.map +1 -0
  182. package/dist/node_modules/lucide-react/dist/esm/icons/book.js +16 -0
  183. package/dist/node_modules/lucide-react/dist/esm/icons/book.js.map +1 -0
  184. package/dist/node_modules/lucide-react/dist/esm/icons/calendar.js +19 -0
  185. package/dist/node_modules/lucide-react/dist/esm/icons/calendar.js.map +1 -0
  186. package/dist/node_modules/lucide-react/dist/esm/icons/check-circle.js +17 -0
  187. package/dist/node_modules/lucide-react/dist/esm/icons/check-circle.js.map +1 -0
  188. package/dist/node_modules/lucide-react/dist/esm/icons/check.js +14 -0
  189. package/dist/node_modules/lucide-react/dist/esm/icons/check.js.map +1 -0
  190. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js +16 -0
  191. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js.map +1 -0
  192. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-left.js +16 -0
  193. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-left.js.map +1 -0
  194. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js +16 -0
  195. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js.map +1 -0
  196. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js +14 -0
  197. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js.map +1 -0
  198. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-left.js +17 -0
  199. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-left.js.map +1 -0
  200. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-right.js +17 -0
  201. package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-right.js.map +1 -0
  202. package/dist/node_modules/lucide-react/dist/esm/icons/code.js +17 -0
  203. package/dist/node_modules/lucide-react/dist/esm/icons/code.js.map +1 -0
  204. package/dist/node_modules/lucide-react/dist/esm/icons/copy.js +17 -0
  205. package/dist/node_modules/lucide-react/dist/esm/icons/copy.js.map +1 -0
  206. package/dist/node_modules/lucide-react/dist/esm/icons/dollar-sign.js +17 -0
  207. package/dist/node_modules/lucide-react/dist/esm/icons/dollar-sign.js.map +1 -0
  208. package/dist/node_modules/lucide-react/dist/esm/icons/download.js +18 -0
  209. package/dist/node_modules/lucide-react/dist/esm/icons/download.js.map +1 -0
  210. package/dist/node_modules/lucide-react/dist/esm/icons/eye.js +17 -0
  211. package/dist/node_modules/lucide-react/dist/esm/icons/eye.js.map +1 -0
  212. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js +20 -0
  213. package/dist/node_modules/lucide-react/dist/esm/icons/file-text.js.map +1 -0
  214. package/dist/node_modules/lucide-react/dist/esm/icons/filter.js +16 -0
  215. package/dist/node_modules/lucide-react/dist/esm/icons/filter.js.map +1 -0
  216. package/dist/node_modules/lucide-react/dist/esm/icons/home.js +17 -0
  217. package/dist/node_modules/lucide-react/dist/esm/icons/home.js.map +1 -0
  218. package/dist/node_modules/lucide-react/dist/esm/icons/info.js +18 -0
  219. package/dist/node_modules/lucide-react/dist/esm/icons/info.js.map +1 -0
  220. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.js +18 -0
  221. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.js.map +1 -0
  222. package/dist/node_modules/lucide-react/dist/esm/icons/mail.js +17 -0
  223. package/dist/node_modules/lucide-react/dist/esm/icons/mail.js.map +1 -0
  224. package/dist/node_modules/lucide-react/dist/esm/icons/menu.js +18 -0
  225. package/dist/node_modules/lucide-react/dist/esm/icons/menu.js.map +1 -0
  226. package/dist/node_modules/lucide-react/dist/esm/icons/minus.js +14 -0
  227. package/dist/node_modules/lucide-react/dist/esm/icons/minus.js.map +1 -0
  228. package/dist/node_modules/lucide-react/dist/esm/icons/monitor.js +18 -0
  229. package/dist/node_modules/lucide-react/dist/esm/icons/monitor.js.map +1 -0
  230. package/dist/node_modules/lucide-react/dist/esm/icons/moon.js +16 -0
  231. package/dist/node_modules/lucide-react/dist/esm/icons/moon.js.map +1 -0
  232. package/dist/node_modules/lucide-react/dist/esm/icons/mouse-pointer.js +17 -0
  233. package/dist/node_modules/lucide-react/dist/esm/icons/mouse-pointer.js.map +1 -0
  234. package/dist/node_modules/lucide-react/dist/esm/icons/palette.js +26 -0
  235. package/dist/node_modules/lucide-react/dist/esm/icons/palette.js.map +1 -0
  236. package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js +18 -0
  237. package/dist/node_modules/lucide-react/dist/esm/icons/panels-top-left.js.map +1 -0
  238. package/dist/node_modules/lucide-react/dist/esm/icons/plus.js +17 -0
  239. package/dist/node_modules/lucide-react/dist/esm/icons/plus.js.map +1 -0
  240. package/dist/node_modules/lucide-react/dist/esm/icons/search.js +17 -0
  241. package/dist/node_modules/lucide-react/dist/esm/icons/search.js.map +1 -0
  242. package/dist/node_modules/lucide-react/dist/esm/icons/settings.js +23 -0
  243. package/dist/node_modules/lucide-react/dist/esm/icons/settings.js.map +1 -0
  244. package/dist/node_modules/lucide-react/dist/esm/icons/smartphone.js +17 -0
  245. package/dist/node_modules/lucide-react/dist/esm/icons/smartphone.js.map +1 -0
  246. package/dist/node_modules/lucide-react/dist/esm/icons/square-pen.js +17 -0
  247. package/dist/node_modules/lucide-react/dist/esm/icons/square-pen.js.map +1 -0
  248. package/dist/node_modules/lucide-react/dist/esm/icons/sun.js +24 -0
  249. package/dist/node_modules/lucide-react/dist/esm/icons/sun.js.map +1 -0
  250. package/dist/node_modules/lucide-react/dist/esm/icons/tablet.js +17 -0
  251. package/dist/node_modules/lucide-react/dist/esm/icons/tablet.js.map +1 -0
  252. package/dist/node_modules/lucide-react/dist/esm/icons/trash-2.js +20 -0
  253. package/dist/node_modules/lucide-react/dist/esm/icons/trash-2.js.map +1 -0
  254. package/dist/node_modules/lucide-react/dist/esm/icons/trending-down.js +17 -0
  255. package/dist/node_modules/lucide-react/dist/esm/icons/trending-down.js.map +1 -0
  256. package/dist/node_modules/lucide-react/dist/esm/icons/trending-up.js +17 -0
  257. package/dist/node_modules/lucide-react/dist/esm/icons/trending-up.js.map +1 -0
  258. package/dist/node_modules/lucide-react/dist/esm/icons/user.js +17 -0
  259. package/dist/node_modules/lucide-react/dist/esm/icons/user.js.map +1 -0
  260. package/dist/node_modules/lucide-react/dist/esm/icons/users.js +19 -0
  261. package/dist/node_modules/lucide-react/dist/esm/icons/users.js.map +1 -0
  262. package/dist/node_modules/lucide-react/dist/esm/icons/x.js +17 -0
  263. package/dist/node_modules/lucide-react/dist/esm/icons/x.js.map +1 -0
  264. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js +1326 -0
  265. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -0
  266. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js +25 -0
  267. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js.map +1 -0
  268. package/dist/node_modules/react/jsx-runtime.js +20 -0
  269. package/dist/node_modules/react/jsx-runtime.js.map +1 -0
  270. package/dist/node_modules/react-hot-toast/dist/index.js +184 -0
  271. package/dist/node_modules/react-hot-toast/dist/index.js.map +1 -0
  272. package/dist/theme/default.d.ts +69 -0
  273. package/dist/theme/default.js +72 -0
  274. package/dist/theme/default.js.map +1 -0
  275. package/dist/utils/cn.d.ts +2 -0
  276. package/dist/utils/cn.js +9 -0
  277. package/dist/utils/cn.js.map +1 -0
  278. package/package.json +8 -4
  279. package/dist/index.cjs +0 -3467
  280. package/dist/index.d.cts +0 -424
@@ -0,0 +1,25 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const tabsListVariants: (props?: ({
4
+ variant?: "default" | "pills" | "underline" | null | undefined;
5
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
6
+ declare const tabsTriggerVariants: (props?: ({
7
+ variant?: "default" | "pills" | "underline" | null | undefined;
8
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
9
+ interface TabsProps extends VariantProps<typeof tabsListVariants> {
10
+ value: string;
11
+ onValueChange: (value: string) => void;
12
+ children: React.ReactNode;
13
+ className?: string;
14
+ }
15
+ declare const Tabs: React.FC<TabsProps>;
16
+ declare const TabsList: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
17
+ interface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
18
+ value: string;
19
+ }
20
+ declare const TabsTrigger: React.ForwardRefExoticComponent<TabsTriggerProps & React.RefAttributes<HTMLButtonElement>>;
21
+ interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {
22
+ value: string;
23
+ }
24
+ declare const TabsContent: React.ForwardRefExoticComponent<TabsContentProps & React.RefAttributes<HTMLDivElement>>;
25
+ export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants, tabsTriggerVariants };
@@ -0,0 +1,60 @@
1
+ import { j as jsxRuntimeExports } from '../../_virtual/jsx-runtime.js';
2
+ import * as React from 'react';
3
+ import { cva } from 'class-variance-authority';
4
+ import { cn } from '../../utils/cn.js';
5
+
6
+ const tabsListVariants = cva("inline-flex h-10 items-center justify-center rounded-md bg-gray-100 p-1 text-gray-500", {
7
+ variants: {
8
+ variant: {
9
+ default: "bg-gray-100",
10
+ pills: "bg-transparent gap-2",
11
+ underline: "bg-transparent border-b border-gray-200",
12
+ },
13
+ },
14
+ defaultVariants: {
15
+ variant: "default",
16
+ },
17
+ });
18
+ const tabsTriggerVariants = cva("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-white transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", {
19
+ variants: {
20
+ variant: {
21
+ default: "data-[state=active]:bg-white data-[state=active]:text-gray-950 data-[state=active]:shadow-sm",
22
+ pills: "data-[state=active]:bg-primary-100 data-[state=active]:text-primary-700 hover:bg-gray-100",
23
+ underline: "data-[state=active]:border-b-2 data-[state=active]:border-primary-600 data-[state=active]:text-primary-600 hover:text-gray-900 rounded-none border-b-2 border-transparent",
24
+ },
25
+ },
26
+ defaultVariants: {
27
+ variant: "default",
28
+ },
29
+ });
30
+ const TabsContext = React.createContext(undefined);
31
+ const Tabs = ({ value, onValueChange, variant, children, className }) => {
32
+ return (jsxRuntimeExports.jsx(TabsContext.Provider, { value: { value, onValueChange, variant }, children: jsxRuntimeExports.jsx("div", { className: cn("w-full", className), children: children }) }));
33
+ };
34
+ const TabsList = React.forwardRef(({ className, ...props }, ref) => {
35
+ const context = React.useContext(TabsContext);
36
+ if (!context)
37
+ throw new Error("TabsList must be used within Tabs");
38
+ return (jsxRuntimeExports.jsx("div", { ref: ref, className: cn(tabsListVariants({ variant: context.variant }), className), ...props }));
39
+ });
40
+ TabsList.displayName = "TabsList";
41
+ const TabsTrigger = React.forwardRef(({ className, value, ...props }, ref) => {
42
+ const context = React.useContext(TabsContext);
43
+ if (!context)
44
+ throw new Error("TabsTrigger must be used within Tabs");
45
+ const isActive = context.value === value;
46
+ return (jsxRuntimeExports.jsx("button", { ref: ref, className: cn(tabsTriggerVariants({ variant: context.variant }), className), "data-state": isActive ? "active" : "inactive", onClick: () => context.onValueChange(value), ...props }));
47
+ });
48
+ TabsTrigger.displayName = "TabsTrigger";
49
+ const TabsContent = React.forwardRef(({ className, value, ...props }, ref) => {
50
+ const context = React.useContext(TabsContext);
51
+ if (!context)
52
+ throw new Error("TabsContent must be used within Tabs");
53
+ if (context.value !== value)
54
+ return null;
55
+ return (jsxRuntimeExports.jsx("div", { ref: ref, className: cn("mt-2 ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2", className), ...props }));
56
+ });
57
+ TabsContent.displayName = "TabsContent";
58
+
59
+ export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants };
60
+ //# sourceMappingURL=Tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.js","sources":["../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst tabsListVariants = cva(\n \"inline-flex h-10 items-center justify-center rounded-md bg-gray-100 p-1 text-gray-500\",\n {\n variants: {\n variant: {\n default: \"bg-gray-100\",\n pills: \"bg-transparent gap-2\",\n underline: \"bg-transparent border-b border-gray-200\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst tabsTriggerVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-white transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"data-[state=active]:bg-white data-[state=active]:text-gray-950 data-[state=active]:shadow-sm\",\n pills: \"data-[state=active]:bg-primary-100 data-[state=active]:text-primary-700 hover:bg-gray-100\",\n underline: \"data-[state=active]:border-b-2 data-[state=active]:border-primary-600 data-[state=active]:text-primary-600 hover:text-gray-900 rounded-none border-b-2 border-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\ninterface TabsContextValue {\n value: string;\n onValueChange: (value: string) => void;\n variant?: VariantProps<typeof tabsListVariants>[\"variant\"];\n}\n\nconst TabsContext = React.createContext<TabsContextValue | undefined>(undefined);\n\ninterface TabsProps extends VariantProps<typeof tabsListVariants> {\n value: string;\n onValueChange: (value: string) => void;\n children: React.ReactNode;\n className?: string;\n}\n\nconst Tabs: React.FC<TabsProps> = ({ value, onValueChange, variant, children, className }) => {\n return (\n <TabsContext.Provider value={{ value, onValueChange, variant }}>\n <div className={cn(\"w-full\", className)}>{children}</div>\n </TabsContext.Provider>\n );\n};\n\nconst TabsList = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const context = React.useContext(TabsContext);\n if (!context) throw new Error(\"TabsList must be used within Tabs\");\n\n return (\n <div\n ref={ref}\n className={cn(tabsListVariants({ variant: context.variant }), className)}\n {...props}\n />\n );\n});\nTabsList.displayName = \"TabsList\";\n\ninterface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string;\n}\n\nconst TabsTrigger = React.forwardRef<HTMLButtonElement, TabsTriggerProps>(\n ({ className, value, ...props }, ref) => {\n const context = React.useContext(TabsContext);\n if (!context) throw new Error(\"TabsTrigger must be used within Tabs\");\n\n const isActive = context.value === value;\n\n return (\n <button\n ref={ref}\n className={cn(\n tabsTriggerVariants({ variant: context.variant }),\n className\n )}\n data-state={isActive ? \"active\" : \"inactive\"}\n onClick={() => context.onValueChange(value)}\n {...props}\n />\n );\n }\n);\nTabsTrigger.displayName = \"TabsTrigger\";\n\ninterface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\n\nconst TabsContent = React.forwardRef<HTMLDivElement, TabsContentProps>(\n ({ className, value, ...props }, ref) => {\n const context = React.useContext(TabsContext);\n if (!context) throw new Error(\"TabsContent must be used within Tabs\");\n\n if (context.value !== value) return null;\n\n return (\n <div\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n );\n }\n);\nTabsContent.displayName = \"TabsContent\";\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants, tabsTriggerVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,gBAAgB,GAAG,GAAG,CAC1B,uFAAuF,EACvF;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,KAAK,EAAE,sBAAsB;AAC7B,YAAA,SAAS,EAAE,yCAAyC;AACrD,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA;AAGH,MAAM,mBAAmB,GAAG,GAAG,CAC7B,mSAAmS,EACnS;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,8FAA8F;AACvG,YAAA,KAAK,EAAE,2FAA2F;AAClG,YAAA,SAAS,EAAE,2KAA2K;AACvL,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA;AASH,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAA+B,SAAS,CAAC;AAShF,MAAM,IAAI,GAAwB,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAI;AAC3F,IAAA,QACEA,qBAAA,CAAC,WAAW,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,EAAA,QAAA,EAC5DA,qBAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO,EAAA,CACpC;AAE3B;AAEA,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAG/B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;AAC7C,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;IAElE,QACEA,qBAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GACpE,KAAK,EAAA,CACT;AAEN,CAAC;AACD,QAAQ,CAAC,WAAW,GAAG,UAAU;AAMjC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAClC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;AAC7C,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;AAErE,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,KAAK,KAAK;IAExC,QACEA,kCACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EACjD,SAAS,CACV,EAAA,YAAA,EACW,QAAQ,GAAG,QAAQ,GAAG,UAAU,EAC5C,OAAO,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,EAAA,GACvC,KAAK,EAAA,CACT;AAEN,CAAC;AAEH,WAAW,CAAC,WAAW,GAAG,aAAa;AAMvC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAClC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;AAC7C,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;AAErE,IAAA,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;AAAE,QAAA,OAAO,IAAI;AAExC,IAAA,QACEA,qBAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,mIAAmI,EACnI,SAAS,CACV,KACG,KAAK,EAAA,CACT;AAEN,CAAC;AAEH,WAAW,CAAC,WAAW,GAAG,aAAa;;;;"}
@@ -0,0 +1 @@
1
+ export * from './Tabs';
@@ -0,0 +1,2 @@
1
+ export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants } from './Tabs.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const textareaVariants: (props?: ({
4
+ variant?: "default" | "success" | "error" | null | undefined;
5
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
6
+ export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement>, VariantProps<typeof textareaVariants> {
7
+ }
8
+ declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
9
+ export { Textarea, textareaVariants };
@@ -0,0 +1,24 @@
1
+ import { j as jsxRuntimeExports } from '../../_virtual/jsx-runtime.js';
2
+ import * as React from 'react';
3
+ import { cva } from 'class-variance-authority';
4
+ import { cn } from '../../utils/cn.js';
5
+
6
+ const textareaVariants = cva("flex min-h-[80px] w-full rounded-md border bg-white px-3 py-2 text-sm ring-offset-white placeholder:text-gray-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", {
7
+ variants: {
8
+ variant: {
9
+ default: "border-gray-300",
10
+ error: "border-danger-500 focus-visible:ring-danger-500",
11
+ success: "border-success-500 focus-visible:ring-success-500",
12
+ },
13
+ },
14
+ defaultVariants: {
15
+ variant: "default",
16
+ },
17
+ });
18
+ const Textarea = React.forwardRef(({ className, variant, ...props }, ref) => {
19
+ return (jsxRuntimeExports.jsx("textarea", { className: cn(textareaVariants({ variant, className })), ref: ref, ...props }));
20
+ });
21
+ Textarea.displayName = "Textarea";
22
+
23
+ export { Textarea, textareaVariants };
24
+ //# sourceMappingURL=Textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textarea.js","sources":["../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst textareaVariants = cva(\n \"flex min-h-[80px] w-full rounded-md border bg-white px-3 py-2 text-sm ring-offset-white placeholder:text-gray-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"border-gray-300\",\n error: \"border-danger-500 focus-visible:ring-danger-500\",\n success: \"border-success-500 focus-visible:ring-success-500\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n VariantProps<typeof textareaVariants> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, variant, ...props }, ref) => {\n return (\n <textarea\n className={cn(textareaVariants({ variant, className }))}\n ref={ref}\n {...props}\n />\n );\n }\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea, textareaVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,gBAAgB,GAAG,GAAG,CAC1B,8QAA8Q,EAC9Q;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,KAAK,EAAE,iDAAiD;AACxD,YAAA,OAAO,EAAE,mDAAmD;AAC7D,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA;AAOH,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAC/B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACxC,QACEA,oCACE,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,EACvD,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EAAA,CACT;AAEN,CAAC;AAEH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
@@ -0,0 +1 @@
1
+ export * from './Textarea';
@@ -0,0 +1,2 @@
1
+ export { Textarea, textareaVariants } from './Textarea.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const toastVariants: (props?: ({
4
+ variant?: "default" | "success" | "warning" | "info" | "error" | null | undefined;
5
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
6
+ interface ToastOptions {
7
+ variant?: VariantProps<typeof toastVariants>["variant"];
8
+ duration?: number;
9
+ }
10
+ declare const showToast: {
11
+ success: (message: string, options?: ToastOptions) => string;
12
+ error: (message: string, options?: ToastOptions) => string;
13
+ warning: (message: string, options?: ToastOptions) => string;
14
+ info: (message: string, options?: ToastOptions) => string;
15
+ default: (message: string, options?: ToastOptions) => string;
16
+ };
17
+ declare const Toast: React.FC;
18
+ export { Toast, showToast, toastVariants };
@@ -0,0 +1,75 @@
1
+ import { j as jsxRuntimeExports } from '../../_virtual/jsx-runtime.js';
2
+ import zt, { Toaster as Fe, ToastBar as N } from '../../node_modules/react-hot-toast/dist/index.js';
3
+ import { cva } from 'class-variance-authority';
4
+ import { cn } from '../../utils/cn.js';
5
+ import X from '../../node_modules/lucide-react/dist/esm/icons/x.js';
6
+ import Info from '../../node_modules/lucide-react/dist/esm/icons/info.js';
7
+ import AlertTriangle from '../../node_modules/lucide-react/dist/esm/icons/alert-triangle.js';
8
+ import AlertCircle from '../../node_modules/lucide-react/dist/esm/icons/alert-circle.js';
9
+ import CheckCircle from '../../node_modules/lucide-react/dist/esm/icons/check-circle.js';
10
+
11
+ const toastVariants = cva("flex items-center gap-2 p-4 rounded-lg shadow-lg border max-w-md", {
12
+ variants: {
13
+ variant: {
14
+ default: "bg-white border-gray-200 text-gray-900",
15
+ success: "bg-success-50 border-success-200 text-success-800",
16
+ error: "bg-danger-50 border-danger-200 text-danger-800",
17
+ warning: "bg-warning-50 border-warning-200 text-warning-800",
18
+ info: "bg-primary-50 border-primary-200 text-primary-800",
19
+ },
20
+ },
21
+ defaultVariants: {
22
+ variant: "default",
23
+ },
24
+ });
25
+ const getIcon = (variant) => {
26
+ switch (variant) {
27
+ case "success":
28
+ return jsxRuntimeExports.jsx(CheckCircle, { className: "h-5 w-5 text-success-600" });
29
+ case "error":
30
+ return jsxRuntimeExports.jsx(AlertCircle, { className: "h-5 w-5 text-danger-600" });
31
+ case "warning":
32
+ return jsxRuntimeExports.jsx(AlertTriangle, { className: "h-5 w-5 text-warning-600" });
33
+ case "info":
34
+ return jsxRuntimeExports.jsx(Info, { className: "h-5 w-5 text-primary-600" });
35
+ default:
36
+ return null;
37
+ }
38
+ };
39
+ const showToast = {
40
+ success: (message, options) => zt.success(message, {
41
+ duration: options?.duration || 4000,
42
+ }),
43
+ error: (message, options) => zt.error(message, {
44
+ duration: options?.duration || 5000,
45
+ }),
46
+ warning: (message, options) => zt(message, {
47
+ icon: "⚠️",
48
+ duration: options?.duration || 4000,
49
+ }),
50
+ info: (message, options) => zt(message, {
51
+ icon: "ℹ️",
52
+ duration: options?.duration || 4000,
53
+ }),
54
+ default: (message, options) => zt(message, {
55
+ duration: options?.duration || 4000,
56
+ }),
57
+ };
58
+ const Toast = () => {
59
+ return (jsxRuntimeExports.jsx(Fe, { position: "top-right", toastOptions: {
60
+ duration: 4000,
61
+ className: "",
62
+ style: {
63
+ background: "transparent",
64
+ boxShadow: "none",
65
+ padding: 0,
66
+ },
67
+ }, children: (t) => (jsxRuntimeExports.jsx(N, { toast: t, children: ({ icon, message }) => (jsxRuntimeExports.jsxs("div", { className: cn(toastVariants({
68
+ variant: t.type === "success" ? "success" :
69
+ t.type === "error" ? "error" : "default"
70
+ })), children: [getIcon(t.type === "success" ? "success" :
71
+ t.type === "error" ? "error" : "default") || icon, jsxRuntimeExports.jsx("div", { className: "flex-1 text-sm font-medium", children: message }), jsxRuntimeExports.jsx("button", { onClick: () => zt.dismiss(t.id), className: "inline-flex h-5 w-5 items-center justify-center rounded-full hover:bg-black/10", children: jsxRuntimeExports.jsx(X, { className: "h-3 w-3" }) })] })) })) }));
72
+ };
73
+
74
+ export { Toast, showToast, toastVariants };
75
+ //# sourceMappingURL=Toast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.js","sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import * as React from \"react\";\nimport toast, { Toaster, ToastBar } from \"react-hot-toast\";\nimport { X, CheckCircle, AlertCircle, Info, AlertTriangle } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst toastVariants = cva(\n \"flex items-center gap-2 p-4 rounded-lg shadow-lg border max-w-md\",\n {\n variants: {\n variant: {\n default: \"bg-white border-gray-200 text-gray-900\",\n success: \"bg-success-50 border-success-200 text-success-800\",\n error: \"bg-danger-50 border-danger-200 text-danger-800\",\n warning: \"bg-warning-50 border-warning-200 text-warning-800\",\n info: \"bg-primary-50 border-primary-200 text-primary-800\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\ninterface ToastOptions {\n variant?: VariantProps<typeof toastVariants>[\"variant\"];\n duration?: number;\n}\n\nconst getIcon = (variant: string) => {\n switch (variant) {\n case \"success\":\n return <CheckCircle className=\"h-5 w-5 text-success-600\" />;\n case \"error\":\n return <AlertCircle className=\"h-5 w-5 text-danger-600\" />;\n case \"warning\":\n return <AlertTriangle className=\"h-5 w-5 text-warning-600\" />;\n case \"info\":\n return <Info className=\"h-5 w-5 text-primary-600\" />;\n default:\n return null;\n }\n};\n\nconst showToast = {\n success: (message: string, options?: ToastOptions) =>\n toast.success(message, {\n duration: options?.duration || 4000,\n }),\n error: (message: string, options?: ToastOptions) =>\n toast.error(message, {\n duration: options?.duration || 5000,\n }),\n warning: (message: string, options?: ToastOptions) =>\n toast(message, {\n icon: \"⚠️\",\n duration: options?.duration || 4000,\n }),\n info: (message: string, options?: ToastOptions) =>\n toast(message, {\n icon: \"ℹ️\",\n duration: options?.duration || 4000,\n }),\n default: (message: string, options?: ToastOptions) =>\n toast(message, {\n duration: options?.duration || 4000,\n }),\n};\n\nconst Toast: React.FC = () => {\n return (\n <Toaster\n position=\"top-right\"\n toastOptions={{\n duration: 4000,\n className: \"\",\n style: {\n background: \"transparent\",\n boxShadow: \"none\",\n padding: 0,\n },\n }}\n >\n {(t) => (\n <ToastBar toast={t}>\n {({ icon, message }) => (\n <div\n className={cn(\n toastVariants({\n variant: t.type === \"success\" ? \"success\" : \n t.type === \"error\" ? \"error\" : \"default\"\n })\n )}\n >\n {getIcon(t.type === \"success\" ? \"success\" : \n t.type === \"error\" ? \"error\" : \"default\") || icon}\n <div className=\"flex-1 text-sm font-medium\">{message}</div>\n <button\n onClick={() => toast.dismiss(t.id)}\n className=\"inline-flex h-5 w-5 items-center justify-center rounded-full hover:bg-black/10\"\n >\n <X className=\"h-3 w-3\" />\n </button>\n </div>\n )}\n </ToastBar>\n )}\n </Toaster>\n );\n};\n\nexport { Toast, showToast, toastVariants };"],"names":["_jsx","toast","Toaster","ToastBar","_jsxs"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './Toast';
@@ -0,0 +1,2 @@
1
+ export { Toast, showToast, toastVariants } from './Toast.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ declare const breakpoints: {
2
+ readonly sm: 640;
3
+ readonly md: 768;
4
+ readonly lg: 1024;
5
+ readonly xl: 1280;
6
+ readonly '2xl': 1536;
7
+ };
8
+ type Breakpoint = keyof typeof breakpoints;
9
+ export declare function useBreakpoint(): {
10
+ currentBreakpoint: "sm" | "md" | "lg" | "xl" | "2xl";
11
+ isAbove: (breakpoint: Breakpoint) => boolean;
12
+ isBelow: (breakpoint: Breakpoint) => boolean;
13
+ };
14
+ export {};
@@ -0,0 +1,40 @@
1
+ import { useState, useEffect } from 'react';
2
+
3
+ const breakpoints = {
4
+ sm: 640,
5
+ md: 768,
6
+ lg: 1024,
7
+ xl: 1280,
8
+ '2xl': 1536,
9
+ };
10
+ function useBreakpoint() {
11
+ const [currentBreakpoint, setCurrentBreakpoint] = useState('sm');
12
+ useEffect(() => {
13
+ const checkBreakpoint = () => {
14
+ const width = window.innerWidth;
15
+ let breakpoint = 'sm';
16
+ if (width >= breakpoints['2xl'])
17
+ breakpoint = '2xl';
18
+ else if (width >= breakpoints.xl)
19
+ breakpoint = 'xl';
20
+ else if (width >= breakpoints.lg)
21
+ breakpoint = 'lg';
22
+ else if (width >= breakpoints.md)
23
+ breakpoint = 'md';
24
+ setCurrentBreakpoint(breakpoint);
25
+ };
26
+ checkBreakpoint();
27
+ window.addEventListener('resize', checkBreakpoint);
28
+ return () => window.removeEventListener('resize', checkBreakpoint);
29
+ }, []);
30
+ const isAbove = (breakpoint) => {
31
+ return breakpoints[currentBreakpoint] >= breakpoints[breakpoint];
32
+ };
33
+ const isBelow = (breakpoint) => {
34
+ return breakpoints[currentBreakpoint] < breakpoints[breakpoint];
35
+ };
36
+ return { currentBreakpoint, isAbove, isBelow };
37
+ }
38
+
39
+ export { useBreakpoint };
40
+ //# sourceMappingURL=useBreakpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBreakpoint.js","sources":["../../src/hooks/useBreakpoint.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nconst breakpoints = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n} as const;\n\ntype Breakpoint = keyof typeof breakpoints;\n\nexport function useBreakpoint() {\n const [currentBreakpoint, setCurrentBreakpoint] = useState<Breakpoint>('sm');\n\n useEffect(() => {\n const checkBreakpoint = () => {\n const width = window.innerWidth;\n let breakpoint: Breakpoint = 'sm';\n\n if (width >= breakpoints['2xl']) breakpoint = '2xl';\n else if (width >= breakpoints.xl) breakpoint = 'xl';\n else if (width >= breakpoints.lg) breakpoint = 'lg';\n else if (width >= breakpoints.md) breakpoint = 'md';\n\n setCurrentBreakpoint(breakpoint);\n };\n\n checkBreakpoint();\n window.addEventListener('resize', checkBreakpoint);\n return () => window.removeEventListener('resize', checkBreakpoint);\n }, []);\n\n const isAbove = (breakpoint: Breakpoint): boolean => {\n return breakpoints[currentBreakpoint] >= breakpoints[breakpoint];\n };\n\n const isBelow = (breakpoint: Breakpoint): boolean => {\n return breakpoints[currentBreakpoint] < breakpoints[breakpoint];\n };\n\n return { currentBreakpoint, isAbove, isBelow };\n}"],"names":[],"mappings":";;AAEA,MAAM,WAAW,GAAG;AAClB,IAAA,EAAE,EAAE,GAAG;AACP,IAAA,EAAE,EAAE,GAAG;AACP,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,KAAK,EAAE,IAAI;CACH;SAIM,aAAa,GAAA;IAC3B,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAa,IAAI,CAAC;IAE5E,SAAS,CAAC,MAAK;QACb,MAAM,eAAe,GAAG,MAAK;AAC3B,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU;YAC/B,IAAI,UAAU,GAAe,IAAI;AAEjC,YAAA,IAAI,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC;gBAAE,UAAU,GAAG,KAAK;AAC9C,iBAAA,IAAI,KAAK,IAAI,WAAW,CAAC,EAAE;gBAAE,UAAU,GAAG,IAAI;AAC9C,iBAAA,IAAI,KAAK,IAAI,WAAW,CAAC,EAAE;gBAAE,UAAU,GAAG,IAAI;AAC9C,iBAAA,IAAI,KAAK,IAAI,WAAW,CAAC,EAAE;gBAAE,UAAU,GAAG,IAAI;YAEnD,oBAAoB,CAAC,UAAU,CAAC;AAClC,QAAA,CAAC;AAED,QAAA,eAAe,EAAE;AACjB,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,eAAe,CAAC;QAClD,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,eAAe,CAAC;IACpE,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,OAAO,GAAG,CAAC,UAAsB,KAAa;QAClD,OAAO,WAAW,CAAC,iBAAiB,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC;AAClE,IAAA,CAAC;AAED,IAAA,MAAM,OAAO,GAAG,CAAC,UAAsB,KAAa;QAClD,OAAO,WAAW,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC;AACjE,IAAA,CAAC;AAED,IAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE;AAChD;;;;"}
@@ -0,0 +1,4 @@
1
+ export declare function useDarkMode(): {
2
+ isDarkMode: boolean;
3
+ toggle: () => void;
4
+ };
@@ -0,0 +1,29 @@
1
+ import { useState, useEffect } from 'react';
2
+
3
+ function useDarkMode() {
4
+ const [isDarkMode, setIsDarkMode] = useState(() => {
5
+ if (typeof window !== 'undefined') {
6
+ const stored = localStorage.getItem('darkMode');
7
+ if (stored) {
8
+ return JSON.parse(stored);
9
+ }
10
+ return window.matchMedia('(prefers-color-scheme: dark)').matches;
11
+ }
12
+ return false;
13
+ });
14
+ useEffect(() => {
15
+ const root = window.document.documentElement;
16
+ if (isDarkMode) {
17
+ root.classList.add('dark');
18
+ }
19
+ else {
20
+ root.classList.remove('dark');
21
+ }
22
+ localStorage.setItem('darkMode', JSON.stringify(isDarkMode));
23
+ }, [isDarkMode]);
24
+ const toggle = () => setIsDarkMode(prev => !prev);
25
+ return { isDarkMode, toggle };
26
+ }
27
+
28
+ export { useDarkMode };
29
+ //# sourceMappingURL=useDarkMode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDarkMode.js","sources":["../../src/hooks/useDarkMode.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nexport function useDarkMode() {\n const [isDarkMode, setIsDarkMode] = useState<boolean>(() => {\n if (typeof window !== 'undefined') {\n const stored = localStorage.getItem('darkMode');\n if (stored) {\n return JSON.parse(stored);\n }\n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n }\n return false;\n });\n\n useEffect(() => {\n const root = window.document.documentElement;\n if (isDarkMode) {\n root.classList.add('dark');\n } else {\n root.classList.remove('dark');\n }\n localStorage.setItem('darkMode', JSON.stringify(isDarkMode));\n }, [isDarkMode]);\n\n const toggle = () => setIsDarkMode(prev => !prev);\n\n return { isDarkMode, toggle };\n}"],"names":[],"mappings":";;SAEgB,WAAW,GAAA;IACzB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAU,MAAK;AACzD,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC;YAC/C,IAAI,MAAM,EAAE;AACV,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAC3B;YACA,OAAO,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO;QAClE;AACA,QAAA,OAAO,KAAK;AACd,IAAA,CAAC,CAAC;IAEF,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe;QAC5C,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;QAC5B;aAAO;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/B;AACA,QAAA,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC9D,IAAA,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AAEhB,IAAA,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;AAEjD,IAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE;AAC/B;;;;"}
@@ -0,0 +1 @@
1
+ export declare function useDebounce<T>(value: T, delay: number): T;
@@ -0,0 +1,17 @@
1
+ import { useState, useEffect } from 'react';
2
+
3
+ function useDebounce(value, delay) {
4
+ const [debouncedValue, setDebouncedValue] = useState(value);
5
+ useEffect(() => {
6
+ const handler = setTimeout(() => {
7
+ setDebouncedValue(value);
8
+ }, delay);
9
+ return () => {
10
+ clearTimeout(handler);
11
+ };
12
+ }, [value, delay]);
13
+ return debouncedValue;
14
+ }
15
+
16
+ export { useDebounce };
17
+ //# sourceMappingURL=useDebounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebounce.js","sources":["../../src/hooks/useDebounce.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nexport function useDebounce<T>(value: T, delay: number): T {\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n}"],"names":[],"mappings":";;AAEM,SAAU,WAAW,CAAI,KAAQ,EAAE,KAAa,EAAA;IACpD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAI,KAAK,CAAC;IAE9D,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;YAC9B,iBAAiB,CAAC,KAAK,CAAC;QAC1B,CAAC,EAAE,KAAK,CAAC;AAET,QAAA,OAAO,MAAK;YACV,YAAY,CAAC,OAAO,CAAC;AACvB,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAElB,IAAA,OAAO,cAAc;AACvB;;;;"}
@@ -0,0 +1 @@
1
+ export declare function useLocalStorage<T>(key: string, initialValue: T): [T, (value: T | ((val: T) => T)) => void, () => void];
@@ -0,0 +1,44 @@
1
+ import { useState, useCallback } from 'react';
2
+
3
+ function useLocalStorage(key, initialValue) {
4
+ const [storedValue, setStoredValue] = useState(() => {
5
+ if (typeof window === 'undefined') {
6
+ return initialValue;
7
+ }
8
+ try {
9
+ const item = window.localStorage.getItem(key);
10
+ return item ? JSON.parse(item) : initialValue;
11
+ }
12
+ catch (error) {
13
+ console.error(`Error reading localStorage key "${key}":`, error);
14
+ return initialValue;
15
+ }
16
+ });
17
+ const setValue = useCallback((value) => {
18
+ try {
19
+ const valueToStore = value instanceof Function ? value(storedValue) : value;
20
+ setStoredValue(valueToStore);
21
+ if (typeof window !== 'undefined') {
22
+ window.localStorage.setItem(key, JSON.stringify(valueToStore));
23
+ }
24
+ }
25
+ catch (error) {
26
+ console.error(`Error setting localStorage key "${key}":`, error);
27
+ }
28
+ }, [key, storedValue]);
29
+ const removeValue = useCallback(() => {
30
+ try {
31
+ setStoredValue(initialValue);
32
+ if (typeof window !== 'undefined') {
33
+ window.localStorage.removeItem(key);
34
+ }
35
+ }
36
+ catch (error) {
37
+ console.error(`Error removing localStorage key "${key}":`, error);
38
+ }
39
+ }, [key, initialValue]);
40
+ return [storedValue, setValue, removeValue];
41
+ }
42
+
43
+ export { useLocalStorage };
44
+ //# sourceMappingURL=useLocalStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocalStorage.js","sources":["../../src/hooks/useLocalStorage.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\n\nexport function useLocalStorage<T>(\n key: string,\n initialValue: T\n): [T, (value: T | ((val: T) => T)) => void, () => void] {\n const [storedValue, setStoredValue] = useState<T>(() => {\n if (typeof window === 'undefined') {\n return initialValue;\n }\n try {\n const item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : initialValue;\n } catch (error) {\n console.error(`Error reading localStorage key \"${key}\":`, error);\n return initialValue;\n }\n });\n\n const setValue = useCallback((value: T | ((val: T) => T)) => {\n try {\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n setStoredValue(valueToStore);\n if (typeof window !== 'undefined') {\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\n }\n } catch (error) {\n console.error(`Error setting localStorage key \"${key}\":`, error);\n }\n }, [key, storedValue]);\n\n const removeValue = useCallback(() => {\n try {\n setStoredValue(initialValue);\n if (typeof window !== 'undefined') {\n window.localStorage.removeItem(key);\n }\n } catch (error) {\n console.error(`Error removing localStorage key \"${key}\":`, error);\n }\n }, [key, initialValue]);\n\n return [storedValue, setValue, removeValue];\n}"],"names":[],"mappings":";;AAEM,SAAU,eAAe,CAC7B,GAAW,EACX,YAAe,EAAA;IAEf,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAI,MAAK;AACrD,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,YAAA,OAAO,YAAY;QACrB;AACA,QAAA,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;AAC7C,YAAA,OAAO,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY;QAC/C;QAAE,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,CAAA,gCAAA,EAAmC,GAAG,CAAA,EAAA,CAAI,EAAE,KAAK,CAAC;AAChE,YAAA,OAAO,YAAY;QACrB;AACF,IAAA,CAAC,CAAC;AAEF,IAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,KAA0B,KAAI;AAC1D,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,KAAK,YAAY,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK;YAC3E,cAAc,CAAC,YAAY,CAAC;AAC5B,YAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,gBAAA,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAChE;QACF;QAAE,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,CAAA,gCAAA,EAAmC,GAAG,CAAA,EAAA,CAAI,EAAE,KAAK,CAAC;QAClE;AACF,IAAA,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAEtB,IAAA,MAAM,WAAW,GAAG,WAAW,CAAC,MAAK;AACnC,QAAA,IAAI;YACF,cAAc,CAAC,YAAY,CAAC;AAC5B,YAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,gBAAA,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;YACrC;QACF;QAAE,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,CAAA,iCAAA,EAAoC,GAAG,CAAA,EAAA,CAAI,EAAE,KAAK,CAAC;QACnE;AACF,IAAA,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAEvB,IAAA,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC;AAC7C;;;;"}
@@ -0,0 +1 @@
1
+ export declare function useToggle(initialValue?: boolean): [boolean, () => void, (value: boolean) => void];
@@ -0,0 +1,11 @@
1
+ import { useState, useCallback } from 'react';
2
+
3
+ function useToggle(initialValue = false) {
4
+ const [value, setValue] = useState(initialValue);
5
+ const toggle = useCallback(() => setValue(prev => !prev), []);
6
+ const setToggle = useCallback((newValue) => setValue(newValue), []);
7
+ return [value, toggle, setToggle];
8
+ }
9
+
10
+ export { useToggle };
11
+ //# sourceMappingURL=useToggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useToggle.js","sources":["../../src/hooks/useToggle.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\n\nexport function useToggle(initialValue: boolean = false): [boolean, () => void, (value: boolean) => void] {\n const [value, setValue] = useState<boolean>(initialValue);\n\n const toggle = useCallback(() => setValue(prev => !prev), []);\n const setToggle = useCallback((newValue: boolean) => setValue(newValue), []);\n\n return [value, toggle, setToggle];\n}"],"names":[],"mappings":";;AAEM,SAAU,SAAS,CAAC,YAAA,GAAwB,KAAK,EAAA;IACrD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAU,YAAY,CAAC;AAEzD,IAAA,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AAC7D,IAAA,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,QAAiB,KAAK,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;AAE5E,IAAA,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;AACnC;;;;"}