@beyondcorp/beyond-ui 1.0.7 → 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,348 @@
1
+ import { j as jsxRuntimeExports } from '../../_virtual/jsx-runtime.js';
2
+ import { useState } from 'react';
3
+ import { DataTable } from './DataTable.js';
4
+ import { Button } from '../Button/Button.js';
5
+ import { Badge } from '../Badge/Badge.js';
6
+ import { Avatar, AvatarImage, AvatarFallback } from '../Avatar/Avatar.js';
7
+ import { Card, CardContent, CardHeader, CardTitle } from '../Card/Card.js';
8
+ import { showToast } from '../Toast/Toast.js';
9
+ import Download from '../../node_modules/lucide-react/dist/esm/icons/download.js';
10
+ import Plus from '../../node_modules/lucide-react/dist/esm/icons/plus.js';
11
+ import Users from '../../node_modules/lucide-react/dist/esm/icons/users.js';
12
+ import DollarSign from '../../node_modules/lucide-react/dist/esm/icons/dollar-sign.js';
13
+ import Calendar from '../../node_modules/lucide-react/dist/esm/icons/calendar.js';
14
+ import Filter from '../../node_modules/lucide-react/dist/esm/icons/filter.js';
15
+ import TrendingUp from '../../node_modules/lucide-react/dist/esm/icons/trending-up.js';
16
+ import Eye from '../../node_modules/lucide-react/dist/esm/icons/eye.js';
17
+ import SquarePen from '../../node_modules/lucide-react/dist/esm/icons/square-pen.js';
18
+ import Trash2 from '../../node_modules/lucide-react/dist/esm/icons/trash-2.js';
19
+
20
+ // Generate sample data
21
+ const generateUsers = () => {
22
+ const roles = ['Admin', 'Manager', 'Developer', 'Designer', 'Analyst'];
23
+ const departments = ['Engineering', 'Design', 'Marketing', 'Sales', 'HR'];
24
+ const statuses = ['active', 'inactive', 'pending'];
25
+ return Array.from({ length: 50 }, (_, i) => ({
26
+ id: i + 1,
27
+ name: `User ${i + 1}`,
28
+ email: `user${i + 1}@company.com`,
29
+ role: roles[Math.floor(Math.random() * roles.length)],
30
+ status: statuses[Math.floor(Math.random() * statuses.length)],
31
+ avatar: `https://images.pexels.com/photos/${774909 + i}/pexels-photo-${774909 + i}.jpeg?auto=compress&cs=tinysrgb&w=64`,
32
+ joinDate: new Date(2020 + Math.floor(Math.random() * 4), Math.floor(Math.random() * 12), Math.floor(Math.random() * 28) + 1).toISOString().split('T')[0],
33
+ lastLogin: new Date(Date.now() - Math.floor(Math.random() * 30) * 24 * 60 * 60 * 1000).toISOString().split('T')[0],
34
+ department: departments[Math.floor(Math.random() * departments.length)],
35
+ }));
36
+ };
37
+ const generateSales = () => {
38
+ const products = ['Pro Plan', 'Basic Plan', 'Enterprise', 'Starter', 'Premium'];
39
+ const regions = ['North America', 'Europe', 'Asia Pacific', 'Latin America'];
40
+ const statuses = ['completed', 'pending', 'cancelled'];
41
+ return Array.from({ length: 75 }, (_, i) => ({
42
+ id: i + 1,
43
+ product: products[Math.floor(Math.random() * products.length)],
44
+ customer: `Customer ${i + 1}`,
45
+ amount: Math.floor(Math.random() * 10000) + 100,
46
+ status: statuses[Math.floor(Math.random() * statuses.length)],
47
+ date: new Date(2024, Math.floor(Math.random() * 12), Math.floor(Math.random() * 28) + 1).toISOString().split('T')[0],
48
+ region: regions[Math.floor(Math.random() * regions.length)],
49
+ salesperson: `Sales Rep ${Math.floor(Math.random() * 10) + 1}`,
50
+ }));
51
+ };
52
+ const generateTasks = () => {
53
+ const priorities = ['low', 'medium', 'high', 'urgent'];
54
+ const statuses = ['todo', 'in-progress', 'review', 'completed'];
55
+ const projects = ['Website Redesign', 'Mobile App', 'API Integration', 'Dashboard', 'Marketing Campaign'];
56
+ const tagOptions = ['frontend', 'backend', 'design', 'testing', 'documentation', 'bug', 'feature'];
57
+ return Array.from({ length: 60 }, (_, i) => ({
58
+ id: i + 1,
59
+ title: `Task ${i + 1}: Implement feature`,
60
+ assignee: `Developer ${Math.floor(Math.random() * 8) + 1}`,
61
+ priority: priorities[Math.floor(Math.random() * priorities.length)],
62
+ status: statuses[Math.floor(Math.random() * statuses.length)],
63
+ dueDate: new Date(Date.now() + Math.floor(Math.random() * 60) * 24 * 60 * 60 * 1000).toISOString().split('T')[0],
64
+ project: projects[Math.floor(Math.random() * projects.length)],
65
+ tags: Array.from({ length: Math.floor(Math.random() * 3) + 1 }, () => tagOptions[Math.floor(Math.random() * tagOptions.length)]).filter((tag, index, arr) => arr.indexOf(tag) === index),
66
+ }));
67
+ };
68
+ // Sample data
69
+ const usersData = generateUsers();
70
+ const salesData = generateSales();
71
+ const tasksData = generateTasks();
72
+ const DataTableShowcase = () => {
73
+ const [selectedTab, setSelectedTab] = useState('users');
74
+ const [selectedRows, setSelectedRows] = useState([]);
75
+ // User table columns
76
+ const userColumns = [
77
+ {
78
+ key: 'user',
79
+ title: 'User',
80
+ dataIndex: 'name',
81
+ sortable: true,
82
+ filterable: true,
83
+ filterType: 'text',
84
+ render: (_, record) => (jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-3", children: [jsxRuntimeExports.jsxs(Avatar, { size: "sm", children: [jsxRuntimeExports.jsx(AvatarImage, { src: record.avatar }), jsxRuntimeExports.jsx(AvatarFallback, { children: record.name.split(' ').map(n => n[0]).join('') })] }), jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("div", { className: "font-medium text-gray-900", children: record.name }), jsxRuntimeExports.jsx("div", { className: "text-sm text-gray-500", children: record.email })] })] })),
85
+ },
86
+ {
87
+ key: 'role',
88
+ title: 'Role',
89
+ dataIndex: 'role',
90
+ sortable: true,
91
+ filterable: true,
92
+ filterType: 'select',
93
+ filterOptions: [
94
+ { label: 'Admin', value: 'Admin' },
95
+ { label: 'Manager', value: 'Manager' },
96
+ { label: 'Developer', value: 'Developer' },
97
+ { label: 'Designer', value: 'Designer' },
98
+ { label: 'Analyst', value: 'Analyst' },
99
+ ],
100
+ },
101
+ {
102
+ key: 'department',
103
+ title: 'Department',
104
+ dataIndex: 'department',
105
+ sortable: true,
106
+ filterable: true,
107
+ filterType: 'select',
108
+ filterOptions: [
109
+ { label: 'Engineering', value: 'Engineering' },
110
+ { label: 'Design', value: 'Design' },
111
+ { label: 'Marketing', value: 'Marketing' },
112
+ { label: 'Sales', value: 'Sales' },
113
+ { label: 'HR', value: 'HR' },
114
+ ],
115
+ },
116
+ {
117
+ key: 'status',
118
+ title: 'Status',
119
+ dataIndex: 'status',
120
+ sortable: true,
121
+ filterable: true,
122
+ filterType: 'select',
123
+ filterOptions: [
124
+ { label: 'Active', value: 'active' },
125
+ { label: 'Inactive', value: 'inactive' },
126
+ { label: 'Pending', value: 'pending' },
127
+ ],
128
+ render: (status) => (jsxRuntimeExports.jsx(Badge, { variant: status === 'active' ? 'success' :
129
+ status === 'inactive' ? 'secondary' : 'warning', children: status.charAt(0).toUpperCase() + status.slice(1) })),
130
+ },
131
+ {
132
+ key: 'joinDate',
133
+ title: 'Join Date',
134
+ dataIndex: 'joinDate',
135
+ sortable: true,
136
+ filterable: true,
137
+ filterType: 'date',
138
+ },
139
+ {
140
+ key: 'actions',
141
+ title: 'Actions',
142
+ dataIndex: 'id',
143
+ align: 'center',
144
+ render: (_, record) => (jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-center space-x-1", children: [jsxRuntimeExports.jsx(Button, { variant: "ghost", size: "sm", onClick: () => showToast.info(`View user ${record.name}`), children: jsxRuntimeExports.jsx(Eye, { className: "h-4 w-4" }) }), jsxRuntimeExports.jsx(Button, { variant: "ghost", size: "sm", onClick: () => showToast.info(`Edit user ${record.name}`), children: jsxRuntimeExports.jsx(SquarePen, { className: "h-4 w-4" }) }), jsxRuntimeExports.jsx(Button, { variant: "ghost", size: "sm", onClick: () => showToast.warning(`Delete user ${record.name}`), children: jsxRuntimeExports.jsx(Trash2, { className: "h-4 w-4 text-danger-600" }) })] })),
145
+ },
146
+ ];
147
+ // Sales table columns
148
+ const salesColumns = [
149
+ {
150
+ key: 'product',
151
+ title: 'Product',
152
+ dataIndex: 'product',
153
+ sortable: true,
154
+ filterable: true,
155
+ filterType: 'text',
156
+ render: (product) => (jsxRuntimeExports.jsx("div", { className: "font-medium text-gray-900", children: product })),
157
+ },
158
+ {
159
+ key: 'customer',
160
+ title: 'Customer',
161
+ dataIndex: 'customer',
162
+ sortable: true,
163
+ filterable: true,
164
+ filterType: 'text',
165
+ },
166
+ {
167
+ key: 'amount',
168
+ title: 'Amount',
169
+ dataIndex: 'amount',
170
+ sortable: true,
171
+ filterable: true,
172
+ filterType: 'number',
173
+ align: 'right',
174
+ render: (amount) => (jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-end space-x-1", children: [jsxRuntimeExports.jsx(DollarSign, { className: "h-4 w-4 text-gray-400" }), jsxRuntimeExports.jsx("span", { className: "font-medium", children: amount.toLocaleString() })] })),
175
+ },
176
+ {
177
+ key: 'status',
178
+ title: 'Status',
179
+ dataIndex: 'status',
180
+ sortable: true,
181
+ filterable: true,
182
+ filterType: 'select',
183
+ filterOptions: [
184
+ { label: 'Completed', value: 'completed' },
185
+ { label: 'Pending', value: 'pending' },
186
+ { label: 'Cancelled', value: 'cancelled' },
187
+ ],
188
+ render: (status) => (jsxRuntimeExports.jsx(Badge, { variant: status === 'completed' ? 'success' :
189
+ status === 'pending' ? 'warning' : 'danger', children: status.charAt(0).toUpperCase() + status.slice(1) })),
190
+ },
191
+ {
192
+ key: 'region',
193
+ title: 'Region',
194
+ dataIndex: 'region',
195
+ sortable: true,
196
+ filterable: true,
197
+ filterType: 'select',
198
+ filterOptions: [
199
+ { label: 'North America', value: 'North America' },
200
+ { label: 'Europe', value: 'Europe' },
201
+ { label: 'Asia Pacific', value: 'Asia Pacific' },
202
+ { label: 'Latin America', value: 'Latin America' },
203
+ ],
204
+ },
205
+ {
206
+ key: 'date',
207
+ title: 'Date',
208
+ dataIndex: 'date',
209
+ sortable: true,
210
+ filterable: true,
211
+ filterType: 'date',
212
+ },
213
+ ];
214
+ // Tasks table columns
215
+ const taskColumns = [
216
+ {
217
+ key: 'title',
218
+ title: 'Task',
219
+ dataIndex: 'title',
220
+ sortable: true,
221
+ filterable: true,
222
+ filterType: 'text',
223
+ render: (title, record) => (jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("div", { className: "font-medium text-gray-900", children: title }), jsxRuntimeExports.jsx("div", { className: "text-sm text-gray-500", children: record.project })] })),
224
+ },
225
+ {
226
+ key: 'assignee',
227
+ title: 'Assignee',
228
+ dataIndex: 'assignee',
229
+ sortable: true,
230
+ filterable: true,
231
+ filterType: 'text',
232
+ },
233
+ {
234
+ key: 'priority',
235
+ title: 'Priority',
236
+ dataIndex: 'priority',
237
+ sortable: true,
238
+ filterable: true,
239
+ filterType: 'select',
240
+ filterOptions: [
241
+ { label: 'Low', value: 'low' },
242
+ { label: 'Medium', value: 'medium' },
243
+ { label: 'High', value: 'high' },
244
+ { label: 'Urgent', value: 'urgent' },
245
+ ],
246
+ render: (priority) => (jsxRuntimeExports.jsx(Badge, { variant: priority === 'urgent' ? 'danger' :
247
+ priority === 'high' ? 'warning' :
248
+ priority === 'medium' ? 'secondary' : 'outline', children: priority.charAt(0).toUpperCase() + priority.slice(1) })),
249
+ },
250
+ {
251
+ key: 'status',
252
+ title: 'Status',
253
+ dataIndex: 'status',
254
+ sortable: true,
255
+ filterable: true,
256
+ filterType: 'select',
257
+ filterOptions: [
258
+ { label: 'To Do', value: 'todo' },
259
+ { label: 'In Progress', value: 'in-progress' },
260
+ { label: 'Review', value: 'review' },
261
+ { label: 'Completed', value: 'completed' },
262
+ ],
263
+ render: (status) => (jsxRuntimeExports.jsx(Badge, { variant: status === 'completed' ? 'success' :
264
+ status === 'in-progress' ? 'warning' :
265
+ status === 'review' ? 'secondary' : 'outline', children: status.replace('-', ' ').replace(/\b\w/g, l => l.toUpperCase()) })),
266
+ },
267
+ {
268
+ key: 'dueDate',
269
+ title: 'Due Date',
270
+ dataIndex: 'dueDate',
271
+ sortable: true,
272
+ filterable: true,
273
+ filterType: 'date',
274
+ },
275
+ {
276
+ key: 'tags',
277
+ title: 'Tags',
278
+ dataIndex: 'tags',
279
+ render: (tags) => (jsxRuntimeExports.jsxs("div", { className: "flex flex-wrap gap-1", children: [tags.slice(0, 2).map(tag => (jsxRuntimeExports.jsx(Badge, { variant: "outline", className: "text-xs", children: tag }, tag))), tags.length > 2 && (jsxRuntimeExports.jsxs(Badge, { variant: "outline", className: "text-xs", children: ["+", tags.length - 2] }))] })),
280
+ },
281
+ ];
282
+ const getCurrentData = () => {
283
+ switch (selectedTab) {
284
+ case 'users': return usersData;
285
+ case 'sales': return salesData;
286
+ case 'tasks': return tasksData;
287
+ default: return [];
288
+ }
289
+ };
290
+ return (jsxRuntimeExports.jsxs("div", { className: "space-y-6", children: [jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("h1", { className: "text-2xl font-bold text-gray-900", children: "DataTable Component" }), jsxRuntimeExports.jsx("p", { className: "text-gray-600 mt-1", children: "A comprehensive table component with filtering, sorting, and pagination" })] }), jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-2", children: [jsxRuntimeExports.jsxs(Button, { variant: "outline", onClick: () => showToast.info('Export functionality'), children: [jsxRuntimeExports.jsx(Download, { className: "h-4 w-4 mr-2" }), "Export"] }), jsxRuntimeExports.jsxs(Button, { variant: "primary", onClick: () => showToast.success('Add new item'), children: [jsxRuntimeExports.jsx(Plus, { className: "h-4 w-4 mr-2" }), "Add New"] })] })] }), jsxRuntimeExports.jsx("div", { className: "border-b border-gray-200", children: jsxRuntimeExports.jsx("nav", { className: "-mb-px flex space-x-8", children: [
291
+ { key: 'users', label: 'Users', icon: Users },
292
+ { key: 'sales', label: 'Sales', icon: DollarSign },
293
+ { key: 'tasks', label: 'Tasks', icon: Calendar },
294
+ ].map(({ key, label, icon: Icon }) => (jsxRuntimeExports.jsxs("button", { onClick: () => setSelectedTab(key), className: `
295
+ flex items-center space-x-2 py-2 px-1 border-b-2 font-medium text-sm
296
+ ${selectedTab === key
297
+ ? 'border-primary-500 text-primary-600'
298
+ : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300'}
299
+ `, children: [jsxRuntimeExports.jsx(Icon, { className: "h-4 w-4" }), jsxRuntimeExports.jsx("span", { children: label })] }, key))) }) }), jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-4 gap-4", children: [jsxRuntimeExports.jsx(Card, { children: jsxRuntimeExports.jsx(CardContent, { className: "p-4", children: jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("p", { className: "text-sm font-medium text-gray-600", children: "Total Records" }), jsxRuntimeExports.jsx("p", { className: "text-2xl font-bold text-gray-900", children: getCurrentData().length })] }), jsxRuntimeExports.jsx("div", { className: "p-2 bg-primary-100 rounded-lg", children: jsxRuntimeExports.jsx(Users, { className: "h-6 w-6 text-primary-600" }) })] }) }) }), jsxRuntimeExports.jsx(Card, { children: jsxRuntimeExports.jsx(CardContent, { className: "p-4", children: jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("p", { className: "text-sm font-medium text-gray-600", children: "Selected" }), jsxRuntimeExports.jsx("p", { className: "text-2xl font-bold text-gray-900", children: selectedRows.length })] }), jsxRuntimeExports.jsx("div", { className: "p-2 bg-success-100 rounded-lg", children: jsxRuntimeExports.jsx(Filter, { className: "h-6 w-6 text-success-600" }) })] }) }) }), jsxRuntimeExports.jsx(Card, { children: jsxRuntimeExports.jsx(CardContent, { className: "p-4", children: jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("p", { className: "text-sm font-medium text-gray-600", children: "Active Filters" }), jsxRuntimeExports.jsx("p", { className: "text-2xl font-bold text-gray-900", children: "0" })] }), jsxRuntimeExports.jsx("div", { className: "p-2 bg-warning-100 rounded-lg", children: jsxRuntimeExports.jsx(Filter, { className: "h-6 w-6 text-warning-600" }) })] }) }) }), jsxRuntimeExports.jsx(Card, { children: jsxRuntimeExports.jsx(CardContent, { className: "p-4", children: jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between", children: [jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("p", { className: "text-sm font-medium text-gray-600", children: "Performance" }), jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-1", children: [jsxRuntimeExports.jsx(TrendingUp, { className: "h-4 w-4 text-success-600" }), jsxRuntimeExports.jsx("p", { className: "text-2xl font-bold text-gray-900", children: "Fast" })] })] }), jsxRuntimeExports.jsx("div", { className: "p-2 bg-success-100 rounded-lg", children: jsxRuntimeExports.jsx(TrendingUp, { className: "h-6 w-6 text-success-600" }) })] }) }) })] }), jsxRuntimeExports.jsx(Card, { children: jsxRuntimeExports.jsxs(CardContent, { className: "p-0", children: [selectedTab === "users" && (jsxRuntimeExports.jsx(DataTable, { columns: userColumns, dataSource: usersData, rowKey: "id", pagination: {
300
+ current: 1,
301
+ pageSize: 10,
302
+ total: usersData.length,
303
+ showSizeChanger: true,
304
+ pageSizeOptions: [5, 10, 20, 50],
305
+ }, rowSelection: {
306
+ type: 'checkbox',
307
+ selectedRowKeys: selectedRows,
308
+ onChange: (keys) => {
309
+ setSelectedRows(keys);
310
+ showToast.info(`Selected ${keys.length} items`);
311
+ },
312
+ }, size: "middle", bordered: false, title: () => (jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between p-4 border-b border-gray-200", children: [jsxRuntimeExports.jsx("h3", { className: "text-lg font-semibold text-gray-900", children: "Users Data" }), jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-2", children: [jsxRuntimeExports.jsxs(Badge, { variant: "outline", children: [usersData.length, " total"] }), selectedRows.length > 0 && (jsxRuntimeExports.jsxs(Badge, { variant: "secondary", children: [selectedRows.length, " selected"] }))] })] })), onChange: (pagination, filters, sorter) => {
313
+ console.log('Table changed:', { pagination, filters, sorter });
314
+ } })), selectedTab === "sales" && (jsxRuntimeExports.jsx(DataTable, { columns: salesColumns, dataSource: salesData, rowKey: "id", pagination: {
315
+ current: 1,
316
+ pageSize: 10,
317
+ total: salesData.length,
318
+ showSizeChanger: true,
319
+ pageSizeOptions: [5, 10, 20, 50],
320
+ }, rowSelection: {
321
+ type: 'checkbox',
322
+ selectedRowKeys: selectedRows,
323
+ onChange: (keys) => {
324
+ setSelectedRows(keys);
325
+ showToast.info(`Selected ${keys.length} items`);
326
+ },
327
+ }, size: "middle", bordered: false, title: () => (jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between p-4 border-b border-gray-200", children: [jsxRuntimeExports.jsx("h3", { className: "text-lg font-semibold text-gray-900", children: "Sales Data" }), jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-2", children: [jsxRuntimeExports.jsxs(Badge, { variant: "outline", children: [salesData.length, " total"] }), selectedRows.length > 0 && (jsxRuntimeExports.jsxs(Badge, { variant: "secondary", children: [selectedRows.length, " selected"] }))] })] })), onChange: (pagination, filters, sorter) => {
328
+ console.log('Table changed:', { pagination, filters, sorter });
329
+ } })), selectedTab === "tasks" && (jsxRuntimeExports.jsx(DataTable, { columns: taskColumns, dataSource: tasksData, rowKey: "id", pagination: {
330
+ current: 1,
331
+ pageSize: 10,
332
+ total: tasksData.length,
333
+ showSizeChanger: true,
334
+ pageSizeOptions: [5, 10, 20, 50],
335
+ }, rowSelection: {
336
+ type: 'checkbox',
337
+ selectedRowKeys: selectedRows,
338
+ onChange: (keys) => {
339
+ setSelectedRows(keys);
340
+ showToast.info(`Selected ${keys.length} items`);
341
+ },
342
+ }, size: "middle", bordered: false, title: () => (jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between p-4 border-b border-gray-200", children: [jsxRuntimeExports.jsx("h3", { className: "text-lg font-semibold text-gray-900", children: "Tasks Data" }), jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-2", children: [jsxRuntimeExports.jsxs(Badge, { variant: "outline", children: [tasksData.length, " total"] }), selectedRows.length > 0 && (jsxRuntimeExports.jsxs(Badge, { variant: "secondary", children: [selectedRows.length, " selected"] }))] })] })), onChange: (pagination, filters, sorter) => {
343
+ console.log('Table changed:', { pagination, filters, sorter });
344
+ } }))] }) }), jsxRuntimeExports.jsxs(Card, { children: [jsxRuntimeExports.jsx(CardHeader, { children: jsxRuntimeExports.jsx(CardTitle, { children: "Component Features" }) }), jsxRuntimeExports.jsx(CardContent, { className: "space-y-4", children: jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("h4", { className: "font-semibold text-gray-900 mb-2", children: "Core Features" }), jsxRuntimeExports.jsxs("ul", { className: "space-y-1 text-sm text-gray-600", children: [jsxRuntimeExports.jsx("li", { children: "\u2022 Sortable columns with visual indicators" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Advanced filtering (text, select, date)" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Pagination with configurable page sizes" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Row selection (single/multiple)" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Responsive design for all screen sizes" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Loading and empty states" })] })] }), jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("h4", { className: "font-semibold text-gray-900 mb-2", children: "Advanced Features" }), jsxRuntimeExports.jsxs("ul", { className: "space-y-1 text-sm text-gray-600", children: [jsxRuntimeExports.jsx("li", { children: "\u2022 Custom cell renderers" }), jsxRuntimeExports.jsx("li", { children: "\u2022 TypeScript support with full typing" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Accessibility features (ARIA labels)" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Performance optimizations" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Customizable styling and themes" }), jsxRuntimeExports.jsx("li", { children: "\u2022 Export and bulk actions support" })] })] })] }) })] })] }));
345
+ };
346
+
347
+ export { DataTableShowcase };
348
+ //# sourceMappingURL=DataTableShowcase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTableShowcase.js","sources":["../../../src/components/DataTable/DataTableShowcase.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useState } from \"react\";\nimport { \n Users, \n Mail, \n Phone, \n MapPin, \n Calendar,\n DollarSign,\n TrendingUp,\n TrendingDown,\n Eye,\n Edit,\n Trash2,\n Download,\n Filter,\n Plus\n} from \"lucide-react\";\nimport { DataTable } from \"./DataTable\";\nimport { Button } from \"../Button\";\nimport { Badge } from \"../Badge\";\nimport { Avatar, AvatarImage, AvatarFallback } from \"../Avatar\";\nimport { Card, CardHeader, CardTitle, CardContent } from \"../Card\";\nimport { showToast } from \"../Toast\";\nimport type { Column, FilterValue, SortConfig, PaginationConfig } from \"./DataTable.types\";\n\n// Sample data types\ninterface User {\n id: number;\n name: string;\n email: string;\n role: string;\n status: 'active' | 'inactive' | 'pending';\n avatar: string;\n joinDate: string;\n lastLogin: string;\n department: string;\n}\n\ninterface Sale {\n id: number;\n product: string;\n customer: string;\n amount: number;\n status: 'completed' | 'pending' | 'cancelled';\n date: string;\n region: string;\n salesperson: string;\n}\n\ninterface Task {\n id: number;\n title: string;\n assignee: string;\n priority: 'low' | 'medium' | 'high' | 'urgent';\n status: 'todo' | 'in-progress' | 'review' | 'completed';\n dueDate: string;\n project: string;\n tags: string[];\n}\n\n// Generate sample data\nconst generateUsers = (): User[] => {\n const roles = ['Admin', 'Manager', 'Developer', 'Designer', 'Analyst'];\n const departments = ['Engineering', 'Design', 'Marketing', 'Sales', 'HR'];\n const statuses: User['status'][] = ['active', 'inactive', 'pending'];\n \n return Array.from({ length: 50 }, (_, i) => ({\n id: i + 1,\n name: `User ${i + 1}`,\n email: `user${i + 1}@company.com`,\n role: roles[Math.floor(Math.random() * roles.length)],\n status: statuses[Math.floor(Math.random() * statuses.length)],\n avatar: `https://images.pexels.com/photos/${774909 + i}/pexels-photo-${774909 + i}.jpeg?auto=compress&cs=tinysrgb&w=64`,\n joinDate: new Date(2020 + Math.floor(Math.random() * 4), Math.floor(Math.random() * 12), Math.floor(Math.random() * 28) + 1).toISOString().split('T')[0],\n lastLogin: new Date(Date.now() - Math.floor(Math.random() * 30) * 24 * 60 * 60 * 1000).toISOString().split('T')[0],\n department: departments[Math.floor(Math.random() * departments.length)],\n }));\n};\n\nconst generateSales = (): Sale[] => {\n const products = ['Pro Plan', 'Basic Plan', 'Enterprise', 'Starter', 'Premium'];\n const regions = ['North America', 'Europe', 'Asia Pacific', 'Latin America'];\n const statuses: Sale['status'][] = ['completed', 'pending', 'cancelled'];\n \n return Array.from({ length: 75 }, (_, i) => ({\n id: i + 1,\n product: products[Math.floor(Math.random() * products.length)],\n customer: `Customer ${i + 1}`,\n amount: Math.floor(Math.random() * 10000) + 100,\n status: statuses[Math.floor(Math.random() * statuses.length)],\n date: new Date(2024, Math.floor(Math.random() * 12), Math.floor(Math.random() * 28) + 1).toISOString().split('T')[0],\n region: regions[Math.floor(Math.random() * regions.length)],\n salesperson: `Sales Rep ${Math.floor(Math.random() * 10) + 1}`,\n }));\n};\n\nconst generateTasks = (): Task[] => {\n const priorities: Task['priority'][] = ['low', 'medium', 'high', 'urgent'];\n const statuses: Task['status'][] = ['todo', 'in-progress', 'review', 'completed'];\n const projects = ['Website Redesign', 'Mobile App', 'API Integration', 'Dashboard', 'Marketing Campaign'];\n const tagOptions = ['frontend', 'backend', 'design', 'testing', 'documentation', 'bug', 'feature'];\n \n return Array.from({ length: 60 }, (_, i) => ({\n id: i + 1,\n title: `Task ${i + 1}: Implement feature`,\n assignee: `Developer ${Math.floor(Math.random() * 8) + 1}`,\n priority: priorities[Math.floor(Math.random() * priorities.length)],\n status: statuses[Math.floor(Math.random() * statuses.length)],\n dueDate: new Date(Date.now() + Math.floor(Math.random() * 60) * 24 * 60 * 60 * 1000).toISOString().split('T')[0],\n project: projects[Math.floor(Math.random() * projects.length)],\n tags: Array.from({ length: Math.floor(Math.random() * 3) + 1 }, () => \n tagOptions[Math.floor(Math.random() * tagOptions.length)]\n ).filter((tag, index, arr) => arr.indexOf(tag) === index),\n }));\n};\n\n// Sample data\nconst usersData = generateUsers();\nconst salesData = generateSales();\nconst tasksData = generateTasks();\n\nexport const DataTableShowcase: React.FC = () => {\n const [selectedTab, setSelectedTab] = useState<'users' | 'sales' | 'tasks'>('users');\n const [selectedRows, setSelectedRows] = useState<React.Key[]>([]);\n\n // User table columns\n const userColumns: Column<User>[] = [\n {\n key: 'user',\n title: 'User',\n dataIndex: 'name',\n sortable: true,\n filterable: true,\n filterType: 'text',\n render: (_, record) => (\n <div className=\"flex items-center space-x-3\">\n <Avatar size=\"sm\">\n <AvatarImage src={record.avatar} />\n <AvatarFallback>{record.name.split(' ').map(n => n[0]).join('')}</AvatarFallback>\n </Avatar>\n <div>\n <div className=\"font-medium text-gray-900\">{record.name}</div>\n <div className=\"text-sm text-gray-500\">{record.email}</div>\n </div>\n </div>\n ),\n },\n {\n key: 'role',\n title: 'Role',\n dataIndex: 'role',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'Admin', value: 'Admin' },\n { label: 'Manager', value: 'Manager' },\n { label: 'Developer', value: 'Developer' },\n { label: 'Designer', value: 'Designer' },\n { label: 'Analyst', value: 'Analyst' },\n ],\n },\n {\n key: 'department',\n title: 'Department',\n dataIndex: 'department',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'Engineering', value: 'Engineering' },\n { label: 'Design', value: 'Design' },\n { label: 'Marketing', value: 'Marketing' },\n { label: 'Sales', value: 'Sales' },\n { label: 'HR', value: 'HR' },\n ],\n },\n {\n key: 'status',\n title: 'Status',\n dataIndex: 'status',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'Active', value: 'active' },\n { label: 'Inactive', value: 'inactive' },\n { label: 'Pending', value: 'pending' },\n ],\n render: (status: User['status']) => (\n <Badge \n variant={\n status === 'active' ? 'success' : \n status === 'inactive' ? 'secondary' : 'warning'\n }\n >\n {status.charAt(0).toUpperCase() + status.slice(1)}\n </Badge>\n ),\n },\n {\n key: 'joinDate',\n title: 'Join Date',\n dataIndex: 'joinDate',\n sortable: true,\n filterable: true,\n filterType: 'date',\n },\n {\n key: 'actions',\n title: 'Actions',\n dataIndex: 'id',\n align: 'center',\n render: (_, record) => (\n <div className=\"flex items-center justify-center space-x-1\">\n <Button variant=\"ghost\" size=\"sm\" onClick={() => showToast.info(`View user ${record.name}`)}>\n <Eye className=\"h-4 w-4\" />\n </Button>\n <Button variant=\"ghost\" size=\"sm\" onClick={() => showToast.info(`Edit user ${record.name}`)}>\n <Edit className=\"h-4 w-4\" />\n </Button>\n <Button variant=\"ghost\" size=\"sm\" onClick={() => showToast.warning(`Delete user ${record.name}`)}>\n <Trash2 className=\"h-4 w-4 text-danger-600\" />\n </Button>\n </div>\n ),\n },\n ];\n\n // Sales table columns\n const salesColumns: Column<Sale>[] = [\n {\n key: 'product',\n title: 'Product',\n dataIndex: 'product',\n sortable: true,\n filterable: true,\n filterType: 'text',\n render: (product) => (\n <div className=\"font-medium text-gray-900\">{product}</div>\n ),\n },\n {\n key: 'customer',\n title: 'Customer',\n dataIndex: 'customer',\n sortable: true,\n filterable: true,\n filterType: 'text',\n },\n {\n key: 'amount',\n title: 'Amount',\n dataIndex: 'amount',\n sortable: true,\n filterable: true,\n filterType: 'number',\n align: 'right',\n render: (amount: number) => (\n <div className=\"flex items-center justify-end space-x-1\">\n <DollarSign className=\"h-4 w-4 text-gray-400\" />\n <span className=\"font-medium\">{amount.toLocaleString()}</span>\n </div>\n ),\n },\n {\n key: 'status',\n title: 'Status',\n dataIndex: 'status',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'Completed', value: 'completed' },\n { label: 'Pending', value: 'pending' },\n { label: 'Cancelled', value: 'cancelled' },\n ],\n render: (status: Sale['status']) => (\n <Badge \n variant={\n status === 'completed' ? 'success' : \n status === 'pending' ? 'warning' : 'danger'\n }\n >\n {status.charAt(0).toUpperCase() + status.slice(1)}\n </Badge>\n ),\n },\n {\n key: 'region',\n title: 'Region',\n dataIndex: 'region',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'North America', value: 'North America' },\n { label: 'Europe', value: 'Europe' },\n { label: 'Asia Pacific', value: 'Asia Pacific' },\n { label: 'Latin America', value: 'Latin America' },\n ],\n },\n {\n key: 'date',\n title: 'Date',\n dataIndex: 'date',\n sortable: true,\n filterable: true,\n filterType: 'date',\n },\n ];\n\n // Tasks table columns\n const taskColumns: Column<Task>[] = [\n {\n key: 'title',\n title: 'Task',\n dataIndex: 'title',\n sortable: true,\n filterable: true,\n filterType: 'text',\n render: (title, record) => (\n <div>\n <div className=\"font-medium text-gray-900\">{title}</div>\n <div className=\"text-sm text-gray-500\">{record.project}</div>\n </div>\n ),\n },\n {\n key: 'assignee',\n title: 'Assignee',\n dataIndex: 'assignee',\n sortable: true,\n filterable: true,\n filterType: 'text',\n },\n {\n key: 'priority',\n title: 'Priority',\n dataIndex: 'priority',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'Low', value: 'low' },\n { label: 'Medium', value: 'medium' },\n { label: 'High', value: 'high' },\n { label: 'Urgent', value: 'urgent' },\n ],\n render: (priority: Task['priority']) => (\n <Badge \n variant={\n priority === 'urgent' ? 'danger' :\n priority === 'high' ? 'warning' :\n priority === 'medium' ? 'secondary' : 'outline'\n }\n >\n {priority.charAt(0).toUpperCase() + priority.slice(1)}\n </Badge>\n ),\n },\n {\n key: 'status',\n title: 'Status',\n dataIndex: 'status',\n sortable: true,\n filterable: true,\n filterType: 'select',\n filterOptions: [\n { label: 'To Do', value: 'todo' },\n { label: 'In Progress', value: 'in-progress' },\n { label: 'Review', value: 'review' },\n { label: 'Completed', value: 'completed' },\n ],\n render: (status: Task['status']) => (\n <Badge \n variant={\n status === 'completed' ? 'success' :\n status === 'in-progress' ? 'warning' :\n status === 'review' ? 'secondary' : 'outline'\n }\n >\n {status.replace('-', ' ').replace(/\\b\\w/g, l => l.toUpperCase())}\n </Badge>\n ),\n },\n {\n key: 'dueDate',\n title: 'Due Date',\n dataIndex: 'dueDate',\n sortable: true,\n filterable: true,\n filterType: 'date',\n },\n {\n key: 'tags',\n title: 'Tags',\n dataIndex: 'tags',\n render: (tags: string[]) => (\n <div className=\"flex flex-wrap gap-1\">\n {tags.slice(0, 2).map(tag => (\n <Badge key={tag} variant=\"outline\" className=\"text-xs\">\n {tag}\n </Badge>\n ))}\n {tags.length > 2 && (\n <Badge variant=\"outline\" className=\"text-xs\">\n +{tags.length - 2}\n </Badge>\n )}\n </div>\n ),\n },\n ];\n\n const getCurrentData = () => {\n switch (selectedTab) {\n case 'users': return usersData;\n case 'sales': return salesData;\n case 'tasks': return tasksData;\n default: return [];\n }\n };\n\n const getCurrentColumns = () => {\n switch (selectedTab) {\n case 'users': return userColumns;\n case 'sales': return salesColumns;\n case 'tasks': return taskColumns;\n default: return [];\n }\n };\n\n return (\n <div className=\"space-y-6\">\n {/* Header */}\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-bold text-gray-900\">DataTable Component</h1>\n <p className=\"text-gray-600 mt-1\">\n A comprehensive table component with filtering, sorting, and pagination\n </p>\n </div>\n <div className=\"flex items-center space-x-2\">\n <Button variant=\"outline\" onClick={() => showToast.info('Export functionality')}>\n <Download className=\"h-4 w-4 mr-2\" />\n Export\n </Button>\n <Button variant=\"primary\" onClick={() => showToast.success('Add new item')}>\n <Plus className=\"h-4 w-4 mr-2\" />\n Add New\n </Button>\n </div>\n </div>\n\n {/* Tabs */}\n <div className=\"border-b border-gray-200\">\n <nav className=\"-mb-px flex space-x-8\">\n {[\n { key: 'users', label: 'Users', icon: Users },\n { key: 'sales', label: 'Sales', icon: DollarSign },\n { key: 'tasks', label: 'Tasks', icon: Calendar },\n ].map(({ key, label, icon: Icon }) => (\n <button\n key={key}\n onClick={() => setSelectedTab(key as any)}\n className={`\n flex items-center space-x-2 py-2 px-1 border-b-2 font-medium text-sm\n ${selectedTab === key\n ? 'border-primary-500 text-primary-600'\n : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300'\n }\n `}\n >\n <Icon className=\"h-4 w-4\" />\n <span>{label}</span>\n </button>\n ))}\n </nav>\n </div>\n\n {/* Stats Cards */}\n <div className=\"grid grid-cols-1 md:grid-cols-4 gap-4\">\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-gray-600\">Total Records</p>\n <p className=\"text-2xl font-bold text-gray-900\">{getCurrentData().length}</p>\n </div>\n <div className=\"p-2 bg-primary-100 rounded-lg\">\n <Users className=\"h-6 w-6 text-primary-600\" />\n </div>\n </div>\n </CardContent>\n </Card>\n \n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-gray-600\">Selected</p>\n <p className=\"text-2xl font-bold text-gray-900\">{selectedRows.length}</p>\n </div>\n <div className=\"p-2 bg-success-100 rounded-lg\">\n <Filter className=\"h-6 w-6 text-success-600\" />\n </div>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-gray-600\">Active Filters</p>\n <p className=\"text-2xl font-bold text-gray-900\">0</p>\n </div>\n <div className=\"p-2 bg-warning-100 rounded-lg\">\n <Filter className=\"h-6 w-6 text-warning-600\" />\n </div>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium text-gray-600\">Performance</p>\n <div className=\"flex items-center space-x-1\">\n <TrendingUp className=\"h-4 w-4 text-success-600\" />\n <p className=\"text-2xl font-bold text-gray-900\">Fast</p>\n </div>\n </div>\n <div className=\"p-2 bg-success-100 rounded-lg\">\n <TrendingUp className=\"h-6 w-6 text-success-600\" />\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n\n {/* DataTable */}\n <Card>\n <CardContent className=\"p-0\">\n {selectedTab === \"users\" && (\n <DataTable<User>\n columns={userColumns}\n dataSource={usersData}\n rowKey=\"id\"\n pagination={{\n current: 1,\n pageSize: 10,\n total: usersData.length,\n showSizeChanger: true,\n pageSizeOptions: [5, 10, 20, 50],\n }}\n rowSelection={{\n type: 'checkbox',\n selectedRowKeys: selectedRows,\n onChange: (keys) => {\n setSelectedRows(keys);\n showToast.info(`Selected ${keys.length} items`);\n },\n }}\n size=\"middle\"\n bordered={false}\n title={() => (\n <div className=\"flex items-center justify-between p-4 border-b border-gray-200\">\n <h3 className=\"text-lg font-semibold text-gray-900\">\n Users Data\n </h3>\n <div className=\"flex items-center space-x-2\">\n <Badge variant=\"outline\">\n {usersData.length} total\n </Badge>\n {selectedRows.length > 0 && (\n <Badge variant=\"secondary\">\n {selectedRows.length} selected\n </Badge>\n )}\n </div>\n </div>\n )}\n onChange={(pagination, filters, sorter) => {\n console.log('Table changed:', { pagination, filters, sorter });\n }}\n />\n )}\n\n {selectedTab === \"sales\" && (\n <DataTable<Sale>\n columns={salesColumns}\n dataSource={salesData}\n rowKey=\"id\"\n pagination={{\n current: 1,\n pageSize: 10,\n total: salesData.length,\n showSizeChanger: true,\n pageSizeOptions: [5, 10, 20, 50],\n }}\n rowSelection={{\n type: 'checkbox',\n selectedRowKeys: selectedRows,\n onChange: (keys) => {\n setSelectedRows(keys);\n showToast.info(`Selected ${keys.length} items`);\n },\n }}\n size=\"middle\"\n bordered={false}\n title={() => (\n <div className=\"flex items-center justify-between p-4 border-b border-gray-200\">\n <h3 className=\"text-lg font-semibold text-gray-900\">\n Sales Data\n </h3>\n <div className=\"flex items-center space-x-2\">\n <Badge variant=\"outline\">\n {salesData.length} total\n </Badge>\n {selectedRows.length > 0 && (\n <Badge variant=\"secondary\">\n {selectedRows.length} selected\n </Badge>\n )}\n </div>\n </div>\n )}\n onChange={(pagination, filters, sorter) => {\n console.log('Table changed:', { pagination, filters, sorter });\n }}\n />\n )}\n\n {selectedTab === \"tasks\" && (\n <DataTable<Task>\n columns={taskColumns}\n dataSource={tasksData}\n rowKey=\"id\"\n pagination={{\n current: 1,\n pageSize: 10,\n total: tasksData.length,\n showSizeChanger: true,\n pageSizeOptions: [5, 10, 20, 50],\n }}\n rowSelection={{\n type: 'checkbox',\n selectedRowKeys: selectedRows,\n onChange: (keys) => {\n setSelectedRows(keys);\n showToast.info(`Selected ${keys.length} items`);\n },\n }}\n size=\"middle\"\n bordered={false}\n title={() => (\n <div className=\"flex items-center justify-between p-4 border-b border-gray-200\">\n <h3 className=\"text-lg font-semibold text-gray-900\">\n Tasks Data\n </h3>\n <div className=\"flex items-center space-x-2\">\n <Badge variant=\"outline\">\n {tasksData.length} total\n </Badge>\n {selectedRows.length > 0 && (\n <Badge variant=\"secondary\">\n {selectedRows.length} selected\n </Badge>\n )}\n </div>\n </div>\n )}\n onChange={(pagination, filters, sorter) => {\n console.log('Table changed:', { pagination, filters, sorter });\n }}\n />\n )}\n </CardContent>\n </Card>\n\n {/* Documentation */}\n <Card>\n <CardHeader>\n <CardTitle>Component Features</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <div>\n <h4 className=\"font-semibold text-gray-900 mb-2\">Core Features</h4>\n <ul className=\"space-y-1 text-sm text-gray-600\">\n <li>• Sortable columns with visual indicators</li>\n <li>• Advanced filtering (text, select, date)</li>\n <li>• Pagination with configurable page sizes</li>\n <li>• Row selection (single/multiple)</li>\n <li>• Responsive design for all screen sizes</li>\n <li>• Loading and empty states</li>\n </ul>\n </div>\n <div>\n <h4 className=\"font-semibold text-gray-900 mb-2\">Advanced Features</h4>\n <ul className=\"space-y-1 text-sm text-gray-600\">\n <li>• Custom cell renderers</li>\n <li>• TypeScript support with full typing</li>\n <li>• Accessibility features (ARIA labels)</li>\n <li>• Performance optimizations</li>\n <li>• Customizable styling and themes</li>\n <li>• Export and bulk actions support</li>\n </ul>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n};"],"names":["_jsxs","_jsx","Edit"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './DataTable';
2
+ export * from './DataTable.types';
@@ -0,0 +1,2 @@
1
+ export { DataTable } from './DataTable.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 inputVariants: (props?: ({
4
+ variant?: "default" | "success" | "error" | null | undefined;
5
+ inputSize?: "sm" | "md" | "lg" | null | undefined;
6
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
7
+ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement>, VariantProps<typeof inputVariants> {
8
+ }
9
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
10
+ export { Input, inputVariants };
@@ -0,0 +1,30 @@
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 inputVariants = cva("flex w-full rounded-md border bg-white px-3 py-2 text-sm ring-offset-white file:border-0 file:bg-transparent file:text-sm file:font-medium 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
+ inputSize: {
14
+ sm: "h-8 px-2 text-xs",
15
+ md: "h-10 px-3",
16
+ lg: "h-12 px-4 text-base",
17
+ },
18
+ },
19
+ defaultVariants: {
20
+ variant: "default",
21
+ inputSize: "md",
22
+ },
23
+ });
24
+ const Input = React.forwardRef(({ className, variant, inputSize, type, ...props }, ref) => {
25
+ return (jsxRuntimeExports.jsx("input", { type: type, className: cn(inputVariants({ variant, inputSize, className })), ref: ref, ...props }));
26
+ });
27
+ Input.displayName = "Input";
28
+
29
+ export { Input, inputVariants };
30
+ //# sourceMappingURL=Input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.js","sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst inputVariants = cva(\n \"flex w-full rounded-md border bg-white px-3 py-2 text-sm ring-offset-white file:border-0 file:bg-transparent file:text-sm file:font-medium 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 inputSize: {\n sm: \"h-8 px-2 text-xs\",\n md: \"h-10 px-3\",\n lg: \"h-12 px-4 text-base\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n inputSize: \"md\",\n },\n }\n);\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n VariantProps<typeof inputVariants> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, variant, inputSize, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(inputVariants({ variant, inputSize, className }))}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport { Input, inputVariants };"],"names":["_jsx"],"mappings":";;;;;AAIA,MAAM,aAAa,GAAG,GAAG,CACvB,iUAAiU,EACjU;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;AACD,QAAA,SAAS,EAAE;AACT,YAAA,EAAE,EAAE,kBAAkB;AACtB,YAAA,EAAE,EAAE,WAAW;AACf,YAAA,EAAE,EAAE,qBAAqB;AAC1B,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,SAAS,EAAE,IAAI;AAChB,KAAA;AACF,CAAA;AAOH,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACzD,IAAA,QACEA,qBAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,EAC/D,GAAG,EAAE,GAAG,EAAA,GACJ,KAAK,EAAA,CACT;AAEN,CAAC;AAEH,KAAK,CAAC,WAAW,GAAG,OAAO;;;;"}
@@ -0,0 +1 @@
1
+ export * from './Input';
@@ -0,0 +1,2 @@
1
+ export { Input, inputVariants } from './Input.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const modalVariants: (props?: ({
4
+ size?: "sm" | "md" | "lg" | "xl" | "full" | null | undefined;
5
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
6
+ interface ModalProps extends VariantProps<typeof modalVariants> {
7
+ open?: boolean;
8
+ onOpenChange?: (open: boolean) => void;
9
+ children: React.ReactNode;
10
+ }
11
+ declare const Modal: React.FC<ModalProps>;
12
+ declare const ModalHeader: React.FC<React.HTMLAttributes<HTMLDivElement>>;
13
+ declare const ModalTitle: React.FC<React.HTMLAttributes<HTMLHeadingElement>>;
14
+ declare const ModalDescription: React.FC<React.HTMLAttributes<HTMLParagraphElement>>;
15
+ declare const ModalContent: React.FC<React.HTMLAttributes<HTMLDivElement>>;
16
+ declare const ModalFooter: React.FC<React.HTMLAttributes<HTMLDivElement>>;
17
+ export { Modal, ModalHeader, ModalTitle, ModalDescription, ModalContent, ModalFooter, modalVariants, };
@@ -0,0 +1,35 @@
1
+ import { j as jsxRuntimeExports } from '../../_virtual/jsx-runtime.js';
2
+ import { cva } from 'class-variance-authority';
3
+ import { cn } from '../../utils/cn.js';
4
+ import X from '../../node_modules/lucide-react/dist/esm/icons/x.js';
5
+
6
+ const modalVariants = cva("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", {
7
+ variants: {
8
+ size: {
9
+ sm: "max-w-sm",
10
+ md: "max-w-lg",
11
+ lg: "max-w-2xl",
12
+ xl: "max-w-4xl",
13
+ full: "max-w-[95vw] max-h-[95vh]",
14
+ },
15
+ },
16
+ defaultVariants: {
17
+ size: "md",
18
+ },
19
+ });
20
+ const Modal = ({ open, onOpenChange, children, size, }) => {
21
+ const handleClose = () => {
22
+ onOpenChange?.(false);
23
+ };
24
+ if (!open)
25
+ return null;
26
+ return (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("div", { className: "fixed inset-0 z-50 bg-black/50 backdrop-blur-sm", onClick: handleClose }), jsxRuntimeExports.jsxs("div", { className: cn(modalVariants({ size })), children: [jsxRuntimeExports.jsxs("button", { onClick: handleClose, 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", children: [jsxRuntimeExports.jsx(X, { className: "h-4 w-4" }), jsxRuntimeExports.jsx("span", { className: "sr-only", children: "Close" })] }), children] })] }));
27
+ };
28
+ const ModalHeader = ({ className, ...props }) => (jsxRuntimeExports.jsx("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props }));
29
+ const ModalTitle = ({ className, ...props }) => (jsxRuntimeExports.jsx("h2", { className: cn("text-lg font-semibold leading-none tracking-tight", className), ...props }));
30
+ const ModalDescription = ({ className, ...props }) => (jsxRuntimeExports.jsx("p", { className: cn("text-sm text-gray-500", className), ...props }));
31
+ const ModalContent = ({ className, ...props }) => (jsxRuntimeExports.jsx("div", { className: cn("grid gap-4 py-4", className), ...props }));
32
+ const ModalFooter = ({ className, ...props }) => (jsxRuntimeExports.jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props }));
33
+
34
+ export { Modal, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalTitle, modalVariants };
35
+ //# sourceMappingURL=Modal.js.map