@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 @@
1
+ {"version":3,"file":"Modal.js","sources":["../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { X } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst modalVariants = cva(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-white p-6 shadow-lg duration-200 sm:rounded-lg\",\n {\n variants: {\n size: {\n sm: \"max-w-sm\",\n md: \"max-w-lg\",\n lg: \"max-w-2xl\",\n xl: \"max-w-4xl\",\n full: \"max-w-[95vw] max-h-[95vh]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\ninterface ModalProps extends VariantProps<typeof modalVariants> {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nconst Modal: React.FC<ModalProps> = ({ \n open, \n onOpenChange, \n children, \n size,\n}) => {\n const handleClose = () => {\n onOpenChange?.(false);\n };\n\n if (!open) return null;\n\n return (\n <>\n {/* Backdrop */}\n <div\n className=\"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm\"\n onClick={handleClose}\n />\n \n {/* Modal Content */}\n <div className={cn(modalVariants({ size }))}>\n <button\n onClick={handleClose}\n className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2 disabled:pointer-events-none\"\n >\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </button>\n {children}\n </div>\n </>\n );\n};\n\nconst ModalHeader: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n);\n\nconst ModalTitle: React.FC<React.HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h2\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n);\n\nconst ModalDescription: React.FC<React.HTMLAttributes<HTMLParagraphElement>> = ({\n className,\n ...props\n}) => (\n <p\n className={cn(\"text-sm text-gray-500\", className)}\n {...props}\n />\n);\n\nconst ModalContent: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div className={cn(\"grid gap-4 py-4\", className)} {...props} />\n);\n\nconst ModalFooter: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n);\n\nexport {\n Modal,\n ModalHeader,\n ModalTitle,\n ModalDescription,\n ModalContent,\n ModalFooter,\n modalVariants,\n};"],"names":["_jsxs","_Fragment","_jsx"],"mappings":";;;;;AAKA,MAAM,aAAa,GAAG,GAAG,CACvB,2JAA2J,EAC3J;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,IAAI,EAAE,2BAA2B;AAClC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,IAAI;AACX,KAAA;AACF,CAAA;AASH,MAAM,KAAK,GAAyB,CAAC,EACnC,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,IAAI,GACL,KAAI;IACH,MAAM,WAAW,GAAG,MAAK;AACvB,QAAA,YAAY,GAAG,KAAK,CAAC;AACvB,IAAA,CAAC;AAED,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,IAAI;IAEtB,QACEA,sBAAA,CAAAC,0BAAA,EAAA,EAAA,QAAA,EAAA,CAEEC,qBAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAC,iDAAiD,EAC3D,OAAO,EAAE,WAAW,EAAA,CACpB,EAGFF,gCAAK,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,CACzCA,sBAAA,CAAA,QAAA,EAAA,EACE,OAAO,EAAE,WAAW,EACpB,SAAS,EAAC,6MAA6M,aAEvNE,qBAAA,CAAC,CAAC,EAAA,EAAC,SAAS,EAAC,SAAS,GAAG,EACzBA,qBAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,SAAS,EAAA,QAAA,EAAA,OAAA,EAAA,CAAa,CAAA,EAAA,CAC/B,EACR,QAAQ,CAAA,EAAA,CACL,CAAA,EAAA,CACL;AAEP;AAEA,MAAM,WAAW,GAAmD,CAAC,EACnE,SAAS,EACT,GAAG,KAAK,EACT,MACCA,+BACE,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;AAGJ,MAAM,UAAU,GAAuD,CAAC,EACtE,SAAS,EACT,GAAG,KAAK,EACT,MACCA,8BACE,SAAS,EAAE,EAAE,CACX,mDAAmD,EACnD,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;AAGJ,MAAM,gBAAgB,GAAyD,CAAC,EAC9E,SAAS,EACT,GAAG,KAAK,EACT,MACCA,6BACE,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,EAAA,GAC7C,KAAK,EAAA,CACT;AAGJ,MAAM,YAAY,GAAmD,CAAC,EACpE,SAAS,EACT,GAAG,KAAK,EACT,MACCA,+BAAK,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,CAAI;AAGjE,MAAM,WAAW,GAAmD,CAAC,EACnE,SAAS,EACT,GAAG,KAAK,EACT,MACCA,+BACE,SAAS,EAAE,EAAE,CACX,+DAA+D,EAC/D,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT;;;;"}
@@ -0,0 +1 @@
1
+ export * from './Modal';
@@ -0,0 +1,2 @@
1
+ export { Modal, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalTitle, modalVariants } from './Modal.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const navbarVariants: (props?: ({
4
+ variant?: "default" | "dark" | "transparent" | null | undefined;
5
+ size?: "sm" | "md" | "lg" | null | undefined;
6
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
7
+ export interface NavbarProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof navbarVariants> {
8
+ logo?: React.ReactNode;
9
+ children?: React.ReactNode;
10
+ }
11
+ declare const Navbar: React.ForwardRefExoticComponent<NavbarProps & React.RefAttributes<HTMLElement>>;
12
+ declare const NavItem: React.ForwardRefExoticComponent<React.AnchorHTMLAttributes<HTMLAnchorElement> & React.RefAttributes<HTMLAnchorElement>>;
13
+ export { Navbar, NavItem, navbarVariants };
@@ -0,0 +1,35 @@
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
+ import X from '../../node_modules/lucide-react/dist/esm/icons/x.js';
6
+ import Menu from '../../node_modules/lucide-react/dist/esm/icons/menu.js';
7
+
8
+ const navbarVariants = cva("flex items-center justify-between w-full px-4 py-3 bg-white border-b border-gray-200", {
9
+ variants: {
10
+ variant: {
11
+ default: "bg-white border-gray-200",
12
+ dark: "bg-gray-900 border-gray-700 text-white",
13
+ transparent: "bg-transparent border-transparent",
14
+ },
15
+ size: {
16
+ sm: "px-4 py-2",
17
+ md: "px-6 py-3",
18
+ lg: "px-8 py-4",
19
+ },
20
+ },
21
+ defaultVariants: {
22
+ variant: "default",
23
+ size: "md",
24
+ },
25
+ });
26
+ const Navbar = React.forwardRef(({ className, variant, size, logo, children, ...props }, ref) => {
27
+ const [isOpen, setIsOpen] = React.useState(false);
28
+ return (jsxRuntimeExports.jsxs("nav", { ref: ref, className: cn(navbarVariants({ variant, size }), className), ...props, children: [jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between w-full", children: [logo && jsxRuntimeExports.jsx("div", { className: "flex-shrink-0", children: logo }), jsxRuntimeExports.jsx("div", { className: "hidden md:flex items-center space-x-4 ml-auto", children: children }), jsxRuntimeExports.jsx("button", { className: "md:hidden p-2 rounded-md hover:bg-gray-100", onClick: () => setIsOpen(!isOpen), children: isOpen ? jsxRuntimeExports.jsx(X, { className: "h-6 w-6" }) : jsxRuntimeExports.jsx(Menu, { className: "h-6 w-6" }) })] }), isOpen && (jsxRuntimeExports.jsx("div", { className: "md:hidden absolute top-full left-0 right-0 bg-white border-b border-gray-200 shadow-lg z-50", children: jsxRuntimeExports.jsx("div", { className: "px-4 py-2 space-y-2", children: children }) }))] }));
29
+ });
30
+ Navbar.displayName = "Navbar";
31
+ const NavItem = React.forwardRef(({ className, ...props }, ref) => (jsxRuntimeExports.jsx("a", { ref: ref, className: cn("text-gray-700 hover:text-primary-600 px-3 py-2 rounded-md text-sm font-medium transition-colors", className), ...props })));
32
+ NavItem.displayName = "NavItem";
33
+
34
+ export { NavItem, Navbar, navbarVariants };
35
+ //# sourceMappingURL=Navbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Navbar.js","sources":["../../../src/components/Navbar/Navbar.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Menu, X } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst navbarVariants = cva(\n \"flex items-center justify-between w-full px-4 py-3 bg-white border-b border-gray-200\",\n {\n variants: {\n variant: {\n default: \"bg-white border-gray-200\",\n dark: \"bg-gray-900 border-gray-700 text-white\",\n transparent: \"bg-transparent border-transparent\",\n },\n size: {\n sm: \"px-4 py-2\",\n md: \"px-6 py-3\",\n lg: \"px-8 py-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n);\n\nexport interface NavbarProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof navbarVariants> {\n logo?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nconst Navbar = React.forwardRef<HTMLElement, NavbarProps>(\n ({ className, variant, size, logo, children, ...props }, ref) => {\n const [isOpen, setIsOpen] = React.useState(false);\n\n return (\n <nav\n ref={ref}\n className={cn(navbarVariants({ variant, size }), className)}\n {...props}\n >\n <div className=\"flex items-center justify-between w-full\">\n {/* Logo */}\n {logo && <div className=\"flex-shrink-0\">{logo}</div>}\n\n {/* Desktop Navigation */}\n <div className=\"hidden md:flex items-center space-x-4 ml-auto\">\n {children}\n </div>\n\n {/* Mobile Menu Button */}\n <button\n className=\"md:hidden p-2 rounded-md hover:bg-gray-100\"\n onClick={() => setIsOpen(!isOpen)}\n >\n {isOpen ? <X className=\"h-6 w-6\" /> : <Menu className=\"h-6 w-6\" />}\n </button>\n </div>\n\n {/* Mobile Navigation */}\n {isOpen && (\n <div className=\"md:hidden absolute top-full left-0 right-0 bg-white border-b border-gray-200 shadow-lg z-50\">\n <div className=\"px-4 py-2 space-y-2\">\n {children}\n </div>\n </div>\n )}\n </nav>\n );\n }\n);\nNavbar.displayName = \"Navbar\";\n\nconst NavItem = React.forwardRef<\n HTMLAnchorElement,\n React.AnchorHTMLAttributes<HTMLAnchorElement>\n>(({ className, ...props }, ref) => (\n <a\n ref={ref}\n className={cn(\n \"text-gray-700 hover:text-primary-600 px-3 py-2 rounded-md text-sm font-medium transition-colors\",\n className\n )}\n {...props}\n />\n));\nNavItem.displayName = \"NavItem\";\n\nexport { Navbar, NavItem, navbarVariants };"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AAKA,MAAM,cAAc,GAAG,GAAG,CACxB,sFAAsF,EACtF;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,IAAI,EAAE,wCAAwC;AAC9C,YAAA,WAAW,EAAE,mCAAmC;AACjD,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,WAAW;AAChB,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,IAAI;AACX,KAAA;AACF,CAAA;AAUH,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC9D,IAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;IAEjD,QACEA,gCACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GACvD,KAAK,EAAA,QAAA,EAAA,CAETA,sBAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0CAA0C,EAAA,QAAA,EAAA,CAEtD,IAAI,IAAIC,qBAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,eAAe,EAAA,QAAA,EAAE,IAAI,EAAA,CAAO,EAGpDA,+BAAK,SAAS,EAAC,+CAA+C,EAAA,QAAA,EAC3D,QAAQ,EAAA,CACL,EAGNA,qBAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAC,4CAA4C,EACtD,OAAO,EAAE,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,EAAA,QAAA,EAEhC,MAAM,GAAGA,qBAAA,CAAC,CAAC,EAAA,EAAC,SAAS,EAAC,SAAS,GAAG,GAAGA,qBAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CAC3D,CAAA,EAAA,CACL,EAGL,MAAM,KACLA,qBAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6FAA6F,YAC1GA,qBAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,EAAA,QAAA,EACjC,QAAQ,GACL,EAAA,CACF,CACP,CAAA,EAAA,CACG;AAEV,CAAC;AAEH,MAAM,CAAC,WAAW,GAAG,QAAQ;AAE7B,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAG9B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC7BA,qBAAA,CAAA,GAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,iGAAiG,EACjG,SAAS,CACV,EAAA,GACG,KAAK,EAAA,CACT,CACH;AACD,OAAO,CAAC,WAAW,GAAG,SAAS;;;;"}
@@ -0,0 +1 @@
1
+ export * from './Navbar';
@@ -0,0 +1,2 @@
1
+ export { NavItem, Navbar, navbarVariants } from './Navbar.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const sidebarVariants: (props?: ({
4
+ collapsed?: boolean | null | undefined;
5
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
6
+ interface MenuItem {
7
+ id: string;
8
+ label: string;
9
+ icon: React.ReactNode;
10
+ href?: string;
11
+ badge?: string;
12
+ children?: MenuItem[];
13
+ }
14
+ interface SidebarProps extends VariantProps<typeof sidebarVariants> {
15
+ className?: string;
16
+ onToggle?: () => void;
17
+ menuItems?: MenuItem[];
18
+ activeItem?: string;
19
+ onItemClick?: (itemId: string) => void;
20
+ }
21
+ declare const Sidebar: React.ForwardRefExoticComponent<SidebarProps & React.RefAttributes<HTMLDivElement>>;
22
+ export { Sidebar, sidebarVariants, type MenuItem };
@@ -0,0 +1,129 @@
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
+ import { Avatar, AvatarImage, AvatarFallback } from '../Avatar/Avatar.js';
6
+ import { Badge } from '../Badge/Badge.js';
7
+ import Home from '../../node_modules/lucide-react/dist/esm/icons/home.js';
8
+ import BarChart3 from '../../node_modules/lucide-react/dist/esm/icons/bar-chart-3.js';
9
+ import Users from '../../node_modules/lucide-react/dist/esm/icons/users.js';
10
+ import Settings from '../../node_modules/lucide-react/dist/esm/icons/settings.js';
11
+ import FileText from '../../node_modules/lucide-react/dist/esm/icons/file-text.js';
12
+ import Calendar from '../../node_modules/lucide-react/dist/esm/icons/calendar.js';
13
+ import Mail from '../../node_modules/lucide-react/dist/esm/icons/mail.js';
14
+ import Bell from '../../node_modules/lucide-react/dist/esm/icons/bell.js';
15
+ import ChevronRight from '../../node_modules/lucide-react/dist/esm/icons/chevron-right.js';
16
+ import ChevronLeft from '../../node_modules/lucide-react/dist/esm/icons/chevron-left.js';
17
+ import User from '../../node_modules/lucide-react/dist/esm/icons/user.js';
18
+ import LogOut from '../../node_modules/lucide-react/dist/esm/icons/log-out.js';
19
+ import ChevronDown from '../../node_modules/lucide-react/dist/esm/icons/chevron-down.js';
20
+
21
+ const sidebarVariants = cva("fixed left-0 top-0 z-40 h-screen bg-white border-r border-gray-200 transition-all duration-300 ease-in-out", {
22
+ variants: {
23
+ collapsed: {
24
+ false: "w-72",
25
+ true: "w-16",
26
+ },
27
+ },
28
+ defaultVariants: {
29
+ collapsed: false,
30
+ },
31
+ });
32
+ const menuItemVariants = cva("flex items-center w-full px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 group", {
33
+ variants: {
34
+ active: {
35
+ true: "bg-primary-50 text-primary-700 border-r-2 border-primary-600",
36
+ false: "text-gray-700 hover:bg-gray-50 hover:text-gray-900",
37
+ },
38
+ collapsed: {
39
+ true: "justify-center px-2",
40
+ false: "justify-start",
41
+ },
42
+ },
43
+ defaultVariants: {
44
+ active: false,
45
+ collapsed: false,
46
+ },
47
+ });
48
+ const defaultMenuItems = [
49
+ {
50
+ id: "dashboard",
51
+ label: "Dashboard",
52
+ icon: jsxRuntimeExports.jsx(Home, { className: "h-5 w-5" }),
53
+ href: "/dashboard",
54
+ },
55
+ {
56
+ id: "analytics",
57
+ label: "Analytics",
58
+ icon: jsxRuntimeExports.jsx(BarChart3, { className: "h-5 w-5" }),
59
+ href: "/analytics",
60
+ badge: "New",
61
+ },
62
+ {
63
+ id: "users",
64
+ label: "Users",
65
+ icon: jsxRuntimeExports.jsx(Users, { className: "h-5 w-5" }),
66
+ children: [
67
+ { id: "all-users", label: "All Users", icon: jsxRuntimeExports.jsx(Users, { className: "h-4 w-4" }) },
68
+ { id: "user-roles", label: "User Roles", icon: jsxRuntimeExports.jsx(Settings, { className: "h-4 w-4" }) },
69
+ ],
70
+ },
71
+ {
72
+ id: "reports",
73
+ label: "Reports",
74
+ icon: jsxRuntimeExports.jsx(FileText, { className: "h-5 w-5" }),
75
+ href: "/reports",
76
+ },
77
+ {
78
+ id: "calendar",
79
+ label: "Calendar",
80
+ icon: jsxRuntimeExports.jsx(Calendar, { className: "h-5 w-5" }),
81
+ href: "/calendar",
82
+ },
83
+ {
84
+ id: "messages",
85
+ label: "Messages",
86
+ icon: jsxRuntimeExports.jsx(Mail, { className: "h-5 w-5" }),
87
+ href: "/messages",
88
+ badge: "3",
89
+ },
90
+ {
91
+ id: "notifications",
92
+ label: "Notifications",
93
+ icon: jsxRuntimeExports.jsx(Bell, { className: "h-5 w-5" }),
94
+ href: "/notifications",
95
+ },
96
+ {
97
+ id: "settings",
98
+ label: "Settings",
99
+ icon: jsxRuntimeExports.jsx(Settings, { className: "h-5 w-5" }),
100
+ href: "/settings",
101
+ },
102
+ ];
103
+ const Sidebar = React.forwardRef(({ className, collapsed = false, onToggle, menuItems = defaultMenuItems, activeItem = "dashboard", onItemClick, ...props }, ref) => {
104
+ const [expandedItems, setExpandedItems] = React.useState([]);
105
+ const toggleExpanded = (itemId) => {
106
+ setExpandedItems(prev => prev.includes(itemId)
107
+ ? prev.filter(id => id !== itemId)
108
+ : [...prev, itemId]);
109
+ };
110
+ const handleItemClick = (item) => {
111
+ if (item.children) {
112
+ toggleExpanded(item.id);
113
+ }
114
+ else {
115
+ onItemClick?.(item.id);
116
+ }
117
+ };
118
+ const renderMenuItem = (item, level = 0) => {
119
+ const isActive = activeItem === item.id;
120
+ const isExpanded = expandedItems.includes(item.id);
121
+ const hasChildren = item.children && item.children.length > 0;
122
+ return (jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("button", { onClick: () => handleItemClick(item), className: cn(menuItemVariants({ active: isActive, collapsed }), level > 0 && "ml-4 pl-8", "relative"), children: jsxRuntimeExports.jsxs("div", { className: "flex items-center min-w-0 flex-1", children: [jsxRuntimeExports.jsx("div", { className: "flex-shrink-0", children: item.icon }), !collapsed && (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("span", { className: "ml-3 truncate", children: item.label }), item.badge && (jsxRuntimeExports.jsx(Badge, { variant: "danger", className: "ml-auto text-xs", children: item.badge })), hasChildren && (jsxRuntimeExports.jsx(ChevronDown, { className: cn("ml-auto h-4 w-4 transition-transform duration-200", isExpanded && "rotate-180") }))] }))] }) }), hasChildren && !collapsed && isExpanded && (jsxRuntimeExports.jsx("div", { className: "mt-1 space-y-1", children: item.children?.map(child => renderMenuItem(child, level + 1)) }))] }, item.id));
123
+ };
124
+ return (jsxRuntimeExports.jsxs("div", { ref: ref, className: cn(sidebarVariants({ collapsed }), className), ...props, children: [jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between p-4 border-b border-gray-200", children: [!collapsed && (jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-2", children: [jsxRuntimeExports.jsx("div", { className: "w-8 h-8 bg-primary-600 rounded-lg flex items-center justify-center", children: jsxRuntimeExports.jsx("span", { className: "text-white font-bold text-sm", children: "B" }) }), jsxRuntimeExports.jsx("span", { className: "font-bold text-xl text-gray-900", children: "Beyond" })] })), jsxRuntimeExports.jsx("button", { onClick: onToggle, className: "p-1.5 rounded-lg hover:bg-gray-100 transition-colors", children: collapsed ? (jsxRuntimeExports.jsx(ChevronRight, { className: "h-4 w-4 text-gray-600" })) : (jsxRuntimeExports.jsx(ChevronLeft, { className: "h-4 w-4 text-gray-600" })) })] }), jsxRuntimeExports.jsx("nav", { className: "flex-1 px-4 py-6 space-y-2 overflow-y-auto", children: menuItems.map(item => renderMenuItem(item)) }), jsxRuntimeExports.jsx("div", { className: "border-t border-gray-200 p-4", children: collapsed ? (jsxRuntimeExports.jsx("div", { className: "flex justify-center", children: jsxRuntimeExports.jsxs(Avatar, { size: "sm", children: [jsxRuntimeExports.jsx(AvatarImage, { src: "https://images.pexels.com/photos/774909/pexels-photo-774909.jpeg?auto=compress&cs=tinysrgb&w=64" }), jsxRuntimeExports.jsx(AvatarFallback, { children: "JD" })] }) })) : (jsxRuntimeExports.jsxs("div", { className: "space-y-3", children: [jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-3", children: [jsxRuntimeExports.jsxs(Avatar, { size: "sm", children: [jsxRuntimeExports.jsx(AvatarImage, { src: "https://images.pexels.com/photos/774909/pexels-photo-774909.jpeg?auto=compress&cs=tinysrgb&w=64" }), jsxRuntimeExports.jsx(AvatarFallback, { children: "JD" })] }), jsxRuntimeExports.jsxs("div", { className: "flex-1 min-w-0", children: [jsxRuntimeExports.jsx("p", { className: "text-sm font-medium text-gray-900 truncate", children: "John Doe" }), jsxRuntimeExports.jsx("p", { className: "text-xs text-gray-500 truncate", children: "john@company.com" })] })] }), jsxRuntimeExports.jsxs("div", { className: "flex space-x-2", children: [jsxRuntimeExports.jsxs("button", { className: "flex-1 flex items-center justify-center px-3 py-2 text-xs font-medium text-gray-700 bg-gray-50 rounded-lg hover:bg-gray-100 transition-colors", children: [jsxRuntimeExports.jsx(User, { className: "h-3 w-3 mr-1" }), "Profile"] }), jsxRuntimeExports.jsxs("button", { className: "flex-1 flex items-center justify-center px-3 py-2 text-xs font-medium text-gray-700 bg-gray-50 rounded-lg hover:bg-gray-100 transition-colors", children: [jsxRuntimeExports.jsx(LogOut, { className: "h-3 w-3 mr-1" }), "Logout"] })] })] })) })] }));
125
+ });
126
+ Sidebar.displayName = "Sidebar";
127
+
128
+ export { Sidebar, sidebarVariants };
129
+ //# sourceMappingURL=Sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.js","sources":["../../../src/components/Sidebar/Sidebar.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { \n ChevronLeft, \n ChevronRight, \n ChevronDown, \n Home, \n BarChart3, \n Users, \n Settings, \n FileText, \n Calendar, \n Mail, \n Bell,\n LogOut,\n User\n} from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\nimport { Avatar, AvatarImage, AvatarFallback } from \"../Avatar\";\nimport { Badge } from \"../Badge\";\n\nconst sidebarVariants = cva(\n \"fixed left-0 top-0 z-40 h-screen bg-white border-r border-gray-200 transition-all duration-300 ease-in-out\",\n {\n variants: {\n collapsed: {\n false: \"w-72\",\n true: \"w-16\",\n },\n },\n defaultVariants: {\n collapsed: false,\n },\n }\n);\n\nconst menuItemVariants = cva(\n \"flex items-center w-full px-3 py-2.5 text-sm font-medium rounded-lg transition-all duration-200 group\",\n {\n variants: {\n active: {\n true: \"bg-primary-50 text-primary-700 border-r-2 border-primary-600\",\n false: \"text-gray-700 hover:bg-gray-50 hover:text-gray-900\",\n },\n collapsed: {\n true: \"justify-center px-2\",\n false: \"justify-start\",\n },\n },\n defaultVariants: {\n active: false,\n collapsed: false,\n },\n }\n);\n\ninterface MenuItem {\n id: string;\n label: string;\n icon: React.ReactNode;\n href?: string;\n badge?: string;\n children?: MenuItem[];\n}\n\ninterface SidebarProps extends VariantProps<typeof sidebarVariants> {\n className?: string;\n onToggle?: () => void;\n menuItems?: MenuItem[];\n activeItem?: string;\n onItemClick?: (itemId: string) => void;\n}\n\nconst defaultMenuItems: MenuItem[] = [\n {\n id: \"dashboard\",\n label: \"Dashboard\",\n icon: <Home className=\"h-5 w-5\" />,\n href: \"/dashboard\",\n },\n {\n id: \"analytics\",\n label: \"Analytics\",\n icon: <BarChart3 className=\"h-5 w-5\" />,\n href: \"/analytics\",\n badge: \"New\",\n },\n {\n id: \"users\",\n label: \"Users\",\n icon: <Users className=\"h-5 w-5\" />,\n children: [\n { id: \"all-users\", label: \"All Users\", icon: <Users className=\"h-4 w-4\" /> },\n { id: \"user-roles\", label: \"User Roles\", icon: <Settings className=\"h-4 w-4\" /> },\n ],\n },\n {\n id: \"reports\",\n label: \"Reports\",\n icon: <FileText className=\"h-5 w-5\" />,\n href: \"/reports\",\n },\n {\n id: \"calendar\",\n label: \"Calendar\",\n icon: <Calendar className=\"h-5 w-5\" />,\n href: \"/calendar\",\n },\n {\n id: \"messages\",\n label: \"Messages\",\n icon: <Mail className=\"h-5 w-5\" />,\n href: \"/messages\",\n badge: \"3\",\n },\n {\n id: \"notifications\",\n label: \"Notifications\",\n icon: <Bell className=\"h-5 w-5\" />,\n href: \"/notifications\",\n },\n {\n id: \"settings\",\n label: \"Settings\",\n icon: <Settings className=\"h-5 w-5\" />,\n href: \"/settings\",\n },\n];\n\nconst Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>(\n ({ \n className, \n collapsed = false, \n onToggle, \n menuItems = defaultMenuItems,\n activeItem = \"dashboard\",\n onItemClick,\n ...props \n }, ref) => {\n const [expandedItems, setExpandedItems] = React.useState<string[]>([]);\n\n const toggleExpanded = (itemId: string) => {\n setExpandedItems(prev => \n prev.includes(itemId) \n ? prev.filter(id => id !== itemId)\n : [...prev, itemId]\n );\n };\n\n const handleItemClick = (item: MenuItem) => {\n if (item.children) {\n toggleExpanded(item.id);\n } else {\n onItemClick?.(item.id);\n }\n };\n\n const renderMenuItem = (item: MenuItem, level = 0) => {\n const isActive = activeItem === item.id;\n const isExpanded = expandedItems.includes(item.id);\n const hasChildren = item.children && item.children.length > 0;\n\n return (\n <div key={item.id}>\n <button\n onClick={() => handleItemClick(item)}\n className={cn(\n menuItemVariants({ active: isActive, collapsed }),\n level > 0 && \"ml-4 pl-8\",\n \"relative\"\n )}\n >\n <div className=\"flex items-center min-w-0 flex-1\">\n <div className=\"flex-shrink-0\">\n {item.icon}\n </div>\n {!collapsed && (\n <>\n <span className=\"ml-3 truncate\">{item.label}</span>\n {item.badge && (\n <Badge variant=\"danger\" className=\"ml-auto text-xs\">\n {item.badge}\n </Badge>\n )}\n {hasChildren && (\n <ChevronDown \n className={cn(\n \"ml-auto h-4 w-4 transition-transform duration-200\",\n isExpanded && \"rotate-180\"\n )}\n />\n )}\n </>\n )}\n </div>\n </button>\n \n {hasChildren && !collapsed && isExpanded && (\n <div className=\"mt-1 space-y-1\">\n {item.children?.map(child => renderMenuItem(child, level + 1))}\n </div>\n )}\n </div>\n );\n };\n\n return (\n <div\n ref={ref}\n className={cn(sidebarVariants({ collapsed }), className)}\n {...props}\n >\n {/* Header */}\n <div className=\"flex items-center justify-between p-4 border-b border-gray-200\">\n {!collapsed && (\n <div className=\"flex items-center space-x-2\">\n <div className=\"w-8 h-8 bg-primary-600 rounded-lg flex items-center justify-center\">\n <span className=\"text-white font-bold text-sm\">B</span>\n </div>\n <span className=\"font-bold text-xl text-gray-900\">Beyond</span>\n </div>\n )}\n <button\n onClick={onToggle}\n className=\"p-1.5 rounded-lg hover:bg-gray-100 transition-colors\"\n >\n {collapsed ? (\n <ChevronRight className=\"h-4 w-4 text-gray-600\" />\n ) : (\n <ChevronLeft className=\"h-4 w-4 text-gray-600\" />\n )}\n </button>\n </div>\n\n {/* Navigation Menu */}\n <nav className=\"flex-1 px-4 py-6 space-y-2 overflow-y-auto\">\n {menuItems.map(item => renderMenuItem(item))}\n </nav>\n\n {/* User Profile Section */}\n <div className=\"border-t border-gray-200 p-4\">\n {collapsed ? (\n <div className=\"flex justify-center\">\n <Avatar size=\"sm\">\n <AvatarImage src=\"https://images.pexels.com/photos/774909/pexels-photo-774909.jpeg?auto=compress&cs=tinysrgb&w=64\" />\n <AvatarFallback>JD</AvatarFallback>\n </Avatar>\n </div>\n ) : (\n <div className=\"space-y-3\">\n <div className=\"flex items-center space-x-3\">\n <Avatar size=\"sm\">\n <AvatarImage src=\"https://images.pexels.com/photos/774909/pexels-photo-774909.jpeg?auto=compress&cs=tinysrgb&w=64\" />\n <AvatarFallback>JD</AvatarFallback>\n </Avatar>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium text-gray-900 truncate\">\n John Doe\n </p>\n <p className=\"text-xs text-gray-500 truncate\">\n john@company.com\n </p>\n </div>\n </div>\n <div className=\"flex space-x-2\">\n <button className=\"flex-1 flex items-center justify-center px-3 py-2 text-xs font-medium text-gray-700 bg-gray-50 rounded-lg hover:bg-gray-100 transition-colors\">\n <User className=\"h-3 w-3 mr-1\" />\n Profile\n </button>\n <button className=\"flex-1 flex items-center justify-center px-3 py-2 text-xs font-medium text-gray-700 bg-gray-50 rounded-lg hover:bg-gray-100 transition-colors\">\n <LogOut className=\"h-3 w-3 mr-1\" />\n Logout\n </button>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n }\n);\n\nSidebar.displayName = \"Sidebar\";\n\nexport { Sidebar, sidebarVariants, type MenuItem };"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './Sidebar';
@@ -0,0 +1,2 @@
1
+ export { Sidebar, sidebarVariants } from './Sidebar.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 skeletonVariants: (props?: ({
4
+ variant?: "default" | "darker" | null | undefined;
5
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
6
+ export interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof skeletonVariants> {
7
+ }
8
+ declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<HTMLDivElement>>;
9
+ export { Skeleton, skeletonVariants };
@@ -0,0 +1,23 @@
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 skeletonVariants = cva("animate-pulse rounded-md bg-gray-200", {
7
+ variants: {
8
+ variant: {
9
+ default: "bg-gray-200",
10
+ darker: "bg-gray-300",
11
+ },
12
+ },
13
+ defaultVariants: {
14
+ variant: "default",
15
+ },
16
+ });
17
+ const Skeleton = React.forwardRef(({ className, variant, ...props }, ref) => {
18
+ return (jsxRuntimeExports.jsx("div", { ref: ref, className: cn(skeletonVariants({ variant }), className), ...props }));
19
+ });
20
+ Skeleton.displayName = "Skeleton";
21
+
22
+ export { Skeleton, skeletonVariants };
23
+ //# sourceMappingURL=Skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.js","sources":["../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst skeletonVariants = cva(\n \"animate-pulse rounded-md bg-gray-200\",\n {\n variants: {\n variant: {\n default: \"bg-gray-200\",\n darker: \"bg-gray-300\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface SkeletonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof skeletonVariants> {}\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, variant, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(skeletonVariants({ variant }), className)}\n {...props}\n />\n );\n }\n);\nSkeleton.displayName = \"Skeleton\";\n\nexport { Skeleton, skeletonVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,gBAAgB,GAAG,GAAG,CAC1B,sCAAsC,EACtC;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,MAAM,EAAE,aAAa;AACtB,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,+BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GACnD,KAAK,EAAA,CACT;AAEN,CAAC;AAEH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
@@ -0,0 +1 @@
1
+ export * from './Skeleton';
@@ -0,0 +1,2 @@
1
+ export { Skeleton, skeletonVariants } from './Skeleton.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const spinnerVariants: (props?: ({
4
+ size?: "sm" | "md" | "lg" | "xl" | null | undefined;
5
+ variant?: "secondary" | "primary" | "current" | "white" | null | undefined;
6
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
7
+ export interface SpinnerProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof spinnerVariants> {
8
+ }
9
+ declare const Spinner: React.ForwardRefExoticComponent<SpinnerProps & React.RefAttributes<HTMLDivElement>>;
10
+ export { Spinner, spinnerVariants };
@@ -0,0 +1,32 @@
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 spinnerVariants = cva("animate-spin rounded-full border-2 border-current border-t-transparent", {
7
+ variants: {
8
+ size: {
9
+ sm: "h-4 w-4",
10
+ md: "h-6 w-6",
11
+ lg: "h-8 w-8",
12
+ xl: "h-12 w-12",
13
+ },
14
+ variant: {
15
+ primary: "text-primary-600",
16
+ secondary: "text-secondary-600",
17
+ white: "text-white",
18
+ current: "text-current",
19
+ },
20
+ },
21
+ defaultVariants: {
22
+ size: "md",
23
+ variant: "primary",
24
+ },
25
+ });
26
+ const Spinner = React.forwardRef(({ className, size, variant, ...props }, ref) => {
27
+ return (jsxRuntimeExports.jsx("div", { ref: ref, className: cn(spinnerVariants({ size, variant }), className), ...props }));
28
+ });
29
+ Spinner.displayName = "Spinner";
30
+
31
+ export { Spinner, spinnerVariants };
32
+ //# sourceMappingURL=Spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spinner.js","sources":["../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst spinnerVariants = cva(\n \"animate-spin rounded-full border-2 border-current border-t-transparent\",\n {\n variants: {\n size: {\n sm: \"h-4 w-4\",\n md: \"h-6 w-6\",\n lg: \"h-8 w-8\",\n xl: \"h-12 w-12\",\n },\n variant: {\n primary: \"text-primary-600\",\n secondary: \"text-secondary-600\",\n white: \"text-white\",\n current: \"text-current\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"primary\",\n },\n }\n);\n\nexport interface SpinnerProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof spinnerVariants> {}\n\nconst Spinner = React.forwardRef<HTMLDivElement, SpinnerProps>(\n ({ className, size, variant, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(spinnerVariants({ size, variant }), className)}\n {...props}\n />\n );\n }\n);\nSpinner.displayName = \"Spinner\";\n\nexport { Spinner, spinnerVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,eAAe,GAAG,GAAG,CACzB,wEAAwE,EACxE;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,WAAW;AAChB,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,kBAAkB;AAC3B,YAAA,SAAS,EAAE,oBAAoB;AAC/B,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,OAAO,EAAE,cAAc;AACxB,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA;AAOH,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAC9B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IAC9C,QACEA,qBAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GACxD,KAAK,EAAA,CACT;AAEN,CAAC;AAEH,OAAO,CAAC,WAAW,GAAG,SAAS;;;;"}
@@ -0,0 +1 @@
1
+ export * from './Spinner';
@@ -0,0 +1,2 @@
1
+ export { Spinner, spinnerVariants } from './Spinner.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const statsCardVariants: (props?: ({
4
+ variant?: "default" | "gradient" | null | undefined;
5
+ color?: "success" | "warning" | "danger" | "secondary" | "primary" | null | undefined;
6
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
7
+ type TrendDirection = "up" | "down" | "neutral";
8
+ export interface StatsCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "color">, VariantProps<typeof statsCardVariants> {
9
+ title: string;
10
+ value: string | number;
11
+ trend?: {
12
+ direction: TrendDirection;
13
+ value: string | number;
14
+ label?: string;
15
+ };
16
+ icon?: React.ReactNode;
17
+ }
18
+ declare const StatsCard: React.ForwardRefExoticComponent<StatsCardProps & React.RefAttributes<HTMLDivElement>>;
19
+ export { StatsCard, statsCardVariants };
@@ -0,0 +1,56 @@
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
+ import { Card, CardContent } from '../Card/Card.js';
6
+ import Minus from '../../node_modules/lucide-react/dist/esm/icons/minus.js';
7
+ import TrendingDown from '../../node_modules/lucide-react/dist/esm/icons/trending-down.js';
8
+ import TrendingUp from '../../node_modules/lucide-react/dist/esm/icons/trending-up.js';
9
+
10
+ const statsCardVariants = cva("relative overflow-hidden", {
11
+ variants: {
12
+ variant: {
13
+ default: "",
14
+ gradient: "bg-gradient-to-br",
15
+ },
16
+ color: {
17
+ primary: "from-primary-500 to-primary-600 text-white",
18
+ secondary: "from-secondary-500 to-secondary-600 text-white",
19
+ success: "from-success-500 to-success-600 text-white",
20
+ warning: "from-warning-500 to-warning-600 text-white",
21
+ danger: "from-danger-500 to-danger-600 text-white",
22
+ },
23
+ },
24
+ defaultVariants: {
25
+ variant: "default",
26
+ },
27
+ });
28
+ const StatsCard = React.forwardRef(({ className, variant, color, title, value, trend, icon, ...props }, ref) => {
29
+ const getTrendIcon = (direction) => {
30
+ switch (direction) {
31
+ case "up":
32
+ return jsxRuntimeExports.jsx(TrendingUp, { className: "h-4 w-4" });
33
+ case "down":
34
+ return jsxRuntimeExports.jsx(TrendingDown, { className: "h-4 w-4" });
35
+ default:
36
+ return jsxRuntimeExports.jsx(Minus, { className: "h-4 w-4" });
37
+ }
38
+ };
39
+ const getTrendColor = (direction) => {
40
+ if (variant === "gradient")
41
+ return "text-white/80";
42
+ switch (direction) {
43
+ case "up":
44
+ return "text-success-600";
45
+ case "down":
46
+ return "text-danger-600";
47
+ default:
48
+ return "text-gray-600";
49
+ }
50
+ };
51
+ return (jsxRuntimeExports.jsx(Card, { ref: ref, className: cn(statsCardVariants({ variant, color }), className), padding: "none", ...props, children: jsxRuntimeExports.jsx(CardContent, { className: "p-6", children: jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [jsxRuntimeExports.jsxs("div", { className: "flex-1", children: [jsxRuntimeExports.jsx("p", { className: cn("text-sm font-medium", variant === "gradient" ? "text-white/80" : "text-gray-600"), children: title }), jsxRuntimeExports.jsxs("div", { className: "mt-2", children: [jsxRuntimeExports.jsx("p", { className: cn("text-3xl font-bold", variant === "gradient" ? "text-white" : "text-gray-900"), children: value }), trend && (jsxRuntimeExports.jsxs("div", { className: cn("flex items-center gap-1 mt-1 text-sm", getTrendColor(trend.direction)), children: [getTrendIcon(trend.direction), jsxRuntimeExports.jsx("span", { children: trend.value }), trend.label && (jsxRuntimeExports.jsx("span", { className: cn(variant === "gradient" ? "text-white/60" : "text-gray-500"), children: trend.label }))] }))] })] }), icon && (jsxRuntimeExports.jsx("div", { className: cn("p-3 rounded-full", variant === "gradient" ? "bg-white/20" : "bg-gray-100"), children: icon }))] }) }) }));
52
+ });
53
+ StatsCard.displayName = "StatsCard";
54
+
55
+ export { StatsCard, statsCardVariants };
56
+ //# sourceMappingURL=StatsCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatsCard.js","sources":["../../../src/components/StatsCard/StatsCard.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { TrendingUp, TrendingDown, Minus } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\nimport { Card, CardContent } from \"../Card\";\n\nconst statsCardVariants = cva(\n \"relative overflow-hidden\",\n {\n variants: {\n variant: {\n default: \"\",\n gradient: \"bg-gradient-to-br\",\n },\n color: {\n primary: \"from-primary-500 to-primary-600 text-white\",\n secondary: \"from-secondary-500 to-secondary-600 text-white\",\n success: \"from-success-500 to-success-600 text-white\",\n warning: \"from-warning-500 to-warning-600 text-white\",\n danger: \"from-danger-500 to-danger-600 text-white\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\ntype TrendDirection = \"up\" | \"down\" | \"neutral\";\n\nexport interface StatsCardProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"color\">,\n VariantProps<typeof statsCardVariants> {\n title: string;\n value: string | number;\n trend?: {\n direction: TrendDirection;\n value: string | number;\n label?: string;\n };\n icon?: React.ReactNode;\n}\n\nconst StatsCard = React.forwardRef<HTMLDivElement, StatsCardProps>(\n ({ className, variant, color, title, value, trend, icon, ...props }, ref) => {\n const getTrendIcon = (direction: TrendDirection) => {\n switch (direction) {\n case \"up\":\n return <TrendingUp className=\"h-4 w-4\" />;\n case \"down\":\n return <TrendingDown className=\"h-4 w-4\" />;\n default:\n return <Minus className=\"h-4 w-4\" />;\n }\n };\n\n const getTrendColor = (direction: TrendDirection) => {\n if (variant === \"gradient\") return \"text-white/80\";\n \n switch (direction) {\n case \"up\":\n return \"text-success-600\";\n case \"down\":\n return \"text-danger-600\";\n default:\n return \"text-gray-600\";\n }\n };\n\n return (\n <Card\n ref={ref}\n className={cn(statsCardVariants({ variant, color }), className)}\n padding=\"none\"\n {...props}\n >\n <CardContent className=\"p-6\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex-1\">\n <p className={cn(\n \"text-sm font-medium\",\n variant === \"gradient\" ? \"text-white/80\" : \"text-gray-600\"\n )}>\n {title}\n </p>\n <div className=\"mt-2\">\n <p className={cn(\n \"text-3xl font-bold\",\n variant === \"gradient\" ? \"text-white\" : \"text-gray-900\"\n )}>\n {value}\n </p>\n {trend && (\n <div className={cn(\n \"flex items-center gap-1 mt-1 text-sm\",\n getTrendColor(trend.direction)\n )}>\n {getTrendIcon(trend.direction)}\n <span>{trend.value}</span>\n {trend.label && (\n <span className={cn(\n variant === \"gradient\" ? \"text-white/60\" : \"text-gray-500\"\n )}>\n {trend.label}\n </span>\n )}\n </div>\n )}\n </div>\n </div>\n {icon && (\n <div className={cn(\n \"p-3 rounded-full\",\n variant === \"gradient\" ? \"bg-white/20\" : \"bg-gray-100\"\n )}>\n {icon}\n </div>\n )}\n </div>\n </CardContent>\n </Card>\n );\n }\n);\nStatsCard.displayName = \"StatsCard\";\n\nexport { StatsCard, statsCardVariants };"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './StatsCard';
@@ -0,0 +1,2 @@
1
+ export { StatsCard, statsCardVariants } from './StatsCard.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const switchVariants: (props?: ({
4
+ size?: "sm" | "md" | "lg" | null | undefined;
5
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
6
+ export interface SwitchProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'>, VariantProps<typeof switchVariants> {
7
+ checked?: boolean;
8
+ onCheckedChange?: (checked: boolean) => void;
9
+ }
10
+ declare const Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<HTMLButtonElement>>;
11
+ export { Switch, switchVariants };
@@ -0,0 +1,39 @@
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 switchVariants = cva("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 focus-visible:ring-offset-white disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary-600 data-[state=unchecked]:bg-gray-200", {
7
+ variants: {
8
+ size: {
9
+ sm: "h-5 w-9",
10
+ md: "h-6 w-11",
11
+ lg: "h-7 w-13",
12
+ },
13
+ },
14
+ defaultVariants: {
15
+ size: "md",
16
+ },
17
+ });
18
+ const switchThumbVariants = cva("pointer-events-none block rounded-full bg-white shadow-lg ring-0 transition-transform", {
19
+ variants: {
20
+ size: {
21
+ sm: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0",
22
+ md: "h-5 w-5 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0",
23
+ lg: "h-6 w-6 data-[state=checked]:translate-x-6 data-[state=unchecked]:translate-x-0",
24
+ },
25
+ },
26
+ defaultVariants: {
27
+ size: "md",
28
+ },
29
+ });
30
+ const Switch = React.forwardRef(({ className, size, checked = false, onCheckedChange, ...props }, ref) => {
31
+ const handleClick = () => {
32
+ onCheckedChange?.(!checked);
33
+ };
34
+ return (jsxRuntimeExports.jsx("button", { type: "button", role: "switch", "aria-checked": checked, "data-state": checked ? "checked" : "unchecked", className: cn(switchVariants({ size }), className), onClick: handleClick, ref: ref, ...props, children: jsxRuntimeExports.jsx("span", { "data-state": checked ? "checked" : "unchecked", className: cn(switchThumbVariants({ size })) }) }));
35
+ });
36
+ Switch.displayName = "Switch";
37
+
38
+ export { Switch, switchVariants };
39
+ //# sourceMappingURL=Switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch.js","sources":["../../../src/components/Switch/Switch.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst switchVariants = cva(\n \"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 focus-visible:ring-offset-white disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary-600 data-[state=unchecked]:bg-gray-200\",\n {\n variants: {\n size: {\n sm: \"h-5 w-9\",\n md: \"h-6 w-11\",\n lg: \"h-7 w-13\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nconst switchThumbVariants = cva(\n \"pointer-events-none block rounded-full bg-white shadow-lg ring-0 transition-transform\",\n {\n variants: {\n size: {\n sm: \"h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0\",\n md: \"h-5 w-5 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0\",\n lg: \"h-6 w-6 data-[state=checked]:translate-x-6 data-[state=unchecked]:translate-x-0\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nexport interface SwitchProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'>,\n VariantProps<typeof switchVariants> {\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n}\n\nconst Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(\n ({ className, size, checked = false, onCheckedChange, ...props }, ref) => {\n const handleClick = () => {\n onCheckedChange?.(!checked);\n };\n\n return (\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n data-state={checked ? \"checked\" : \"unchecked\"}\n className={cn(switchVariants({ size }), className)}\n onClick={handleClick}\n ref={ref}\n {...props}\n >\n <span\n data-state={checked ? \"checked\" : \"unchecked\"}\n className={cn(switchThumbVariants({ size }))}\n />\n </button>\n );\n }\n);\nSwitch.displayName = \"Switch\";\n\nexport { Switch, switchVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,cAAc,GAAG,GAAG,CACxB,6XAA6X,EAC7X;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,EAAE,EAAE,UAAU;AACf,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,IAAI;AACX,KAAA;AACF,CAAA;AAGH,MAAM,mBAAmB,GAAG,GAAG,CAC7B,uFAAuF,EACvF;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,iFAAiF;AACrF,YAAA,EAAE,EAAE,iFAAiF;AACrF,YAAA,EAAE,EAAE,iFAAiF;AACtF,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,IAAI,EAAE,IAAI;AACX,KAAA;AACF,CAAA,CACF;AASD,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IACvE,MAAM,WAAW,GAAG,MAAK;AACvB,QAAA,eAAe,GAAG,CAAC,OAAO,CAAC;AAC7B,IAAA,CAAC;AAED,IAAA,QACEA,qBAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,EAAA,cAAA,EACC,OAAO,EAAA,YAAA,EACT,OAAO,GAAG,SAAS,GAAG,WAAW,EAC7C,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAClD,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EAAA,QAAA,EAETA,8CACc,OAAO,GAAG,SAAS,GAAG,WAAW,EAC7C,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAA,CAC5C,EAAA,CACK;AAEb,CAAC;AAEH,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;"}
@@ -0,0 +1 @@
1
+ export * from './Switch';
@@ -0,0 +1,2 @@
1
+ export { Switch, switchVariants } from './Switch.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}