erp-pro-ui 0.1.0 → 0.1.2

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 (793) hide show
  1. package/README.md +544 -188
  2. package/dist/accordion.cjs +3 -0
  3. package/dist/accordion.d.ts +2 -0
  4. package/dist/accordion.mjs +2 -0
  5. package/dist/alert.cjs +3 -0
  6. package/dist/alert.d.ts +2 -0
  7. package/dist/alert.mjs +2 -0
  8. package/dist/animated-content.cjs +3 -0
  9. package/dist/animated-content.d.ts +2 -0
  10. package/dist/animated-content.mjs +2 -0
  11. package/dist/animations.css +91 -0
  12. package/dist/ascii-text.cjs +3 -0
  13. package/dist/ascii-text.d.ts +2 -0
  14. package/dist/ascii-text.mjs +2 -0
  15. package/dist/background-gradient-animation.cjs +4 -0
  16. package/dist/background-gradient-animation.d.ts +2 -0
  17. package/dist/background-gradient-animation.mjs +2 -0
  18. package/dist/button-hover-border-gradient.cjs +3 -0
  19. package/dist/button-hover-border-gradient.d.ts +2 -0
  20. package/dist/button-hover-border-gradient.mjs +2 -0
  21. package/dist/button.cjs +3 -0
  22. package/dist/button.d.ts +2 -0
  23. package/dist/button.mjs +2 -0
  24. package/dist/calendar.cjs +3 -0
  25. package/dist/calendar.d.ts +2 -0
  26. package/dist/calendar.mjs +2 -0
  27. package/dist/card.cjs +3 -0
  28. package/dist/card.d.ts +2 -0
  29. package/dist/card.mjs +2 -0
  30. package/dist/carousel.cjs +3 -0
  31. package/dist/carousel.d.ts +2 -0
  32. package/dist/carousel.mjs +2 -0
  33. package/dist/catalog.cjs +308 -0
  34. package/dist/catalog.cjs.map +1 -0
  35. package/dist/catalog.d.ts +496 -0
  36. package/dist/catalog.d.ts.map +1 -0
  37. package/dist/catalog.mjs +304 -0
  38. package/dist/catalog.mjs.map +1 -0
  39. package/dist/charts.cjs +11 -0
  40. package/dist/charts.d.ts +2 -0
  41. package/dist/charts.mjs +2 -0
  42. package/dist/checkbox.cjs +3 -0
  43. package/dist/checkbox.d.ts +2 -0
  44. package/dist/checkbox.mjs +2 -0
  45. package/dist/chip.cjs +3 -0
  46. package/dist/chip.d.ts +2 -0
  47. package/dist/chip.mjs +2 -0
  48. package/dist/chroma-grid.cjs +3 -0
  49. package/dist/chroma-grid.d.ts +2 -0
  50. package/dist/chroma-grid.mjs +2 -0
  51. package/dist/chunks/HoverBorderGradient-DVFEIXFQ.mjs +69 -0
  52. package/dist/chunks/HoverBorderGradient-DVFEIXFQ.mjs.map +1 -0
  53. package/dist/chunks/HoverBorderGradient-Df3PKpw6.cjs +75 -0
  54. package/dist/chunks/HoverBorderGradient-Df3PKpw6.cjs.map +1 -0
  55. package/dist/chunks/accordion-Cbt-SJhj.mjs +66 -0
  56. package/dist/chunks/accordion-Cbt-SJhj.mjs.map +1 -0
  57. package/dist/chunks/accordion-pfJR8YYA.cjs +72 -0
  58. package/dist/chunks/accordion-pfJR8YYA.cjs.map +1 -0
  59. package/dist/chunks/alert-CtdLy4Hv.mjs +40 -0
  60. package/dist/chunks/alert-CtdLy4Hv.mjs.map +1 -0
  61. package/dist/chunks/alert-Dvz1GoL5.cjs +46 -0
  62. package/dist/chunks/alert-Dvz1GoL5.cjs.map +1 -0
  63. package/dist/chunks/animated-content-C1uNg1xO.mjs +292 -0
  64. package/dist/chunks/animated-content-C1uNg1xO.mjs.map +1 -0
  65. package/dist/chunks/animated-content-CttSmLWV.cjs +298 -0
  66. package/dist/chunks/animated-content-CttSmLWV.cjs.map +1 -0
  67. package/dist/chunks/ascii-text-C5tyNsR3.mjs +511 -0
  68. package/dist/chunks/ascii-text-C5tyNsR3.mjs.map +1 -0
  69. package/dist/chunks/ascii-text-DlmArZXh.cjs +519 -0
  70. package/dist/chunks/ascii-text-DlmArZXh.cjs.map +1 -0
  71. package/dist/chunks/background-gradient-animation-BL-lnrJe.mjs +144 -0
  72. package/dist/chunks/background-gradient-animation-BL-lnrJe.mjs.map +1 -0
  73. package/dist/chunks/background-gradient-animation-CXV9GDH8.cjs +156 -0
  74. package/dist/chunks/background-gradient-animation-CXV9GDH8.cjs.map +1 -0
  75. package/dist/chunks/button-B0Lhj0AS.mjs +42 -0
  76. package/dist/chunks/button-B0Lhj0AS.mjs.map +1 -0
  77. package/dist/chunks/button-CZL6kFzT.cjs +48 -0
  78. package/dist/chunks/button-CZL6kFzT.cjs.map +1 -0
  79. package/dist/chunks/button-hover-border-gradient-CSHXM5Cm.cjs +24 -0
  80. package/dist/chunks/button-hover-border-gradient-CSHXM5Cm.cjs.map +1 -0
  81. package/dist/chunks/button-hover-border-gradient-CvoM60wz.mjs +18 -0
  82. package/dist/chunks/button-hover-border-gradient-CvoM60wz.mjs.map +1 -0
  83. package/dist/chunks/calendar-BarcG6x_.mjs +137 -0
  84. package/dist/chunks/calendar-BarcG6x_.mjs.map +1 -0
  85. package/dist/chunks/calendar-xrGmvukr.cjs +143 -0
  86. package/dist/chunks/calendar-xrGmvukr.cjs.map +1 -0
  87. package/dist/chunks/card-CcIF6z2H.mjs +24 -0
  88. package/dist/chunks/card-CcIF6z2H.mjs.map +1 -0
  89. package/dist/chunks/card-gt-HZh0h.cjs +30 -0
  90. package/dist/chunks/card-gt-HZh0h.cjs.map +1 -0
  91. package/dist/chunks/carousel-Cq5uwqQt.cjs +313 -0
  92. package/dist/chunks/carousel-Cq5uwqQt.cjs.map +1 -0
  93. package/dist/chunks/carousel-DJdqBVRK.mjs +307 -0
  94. package/dist/chunks/carousel-DJdqBVRK.mjs.map +1 -0
  95. package/dist/chunks/charts-BpElnsoR.cjs +687 -0
  96. package/dist/chunks/charts-BpElnsoR.cjs.map +1 -0
  97. package/dist/chunks/charts-DugYWvEf.mjs +632 -0
  98. package/dist/chunks/charts-DugYWvEf.mjs.map +1 -0
  99. package/dist/chunks/checkbox-DvwlGwWe.mjs +53 -0
  100. package/dist/chunks/checkbox-DvwlGwWe.mjs.map +1 -0
  101. package/dist/chunks/checkbox-yHuSw-hV.cjs +59 -0
  102. package/dist/chunks/checkbox-yHuSw-hV.cjs.map +1 -0
  103. package/dist/chunks/chip-BGSUmnlO.mjs +139 -0
  104. package/dist/chunks/chip-BGSUmnlO.mjs.map +1 -0
  105. package/dist/chunks/chip-DcBji__g.cjs +145 -0
  106. package/dist/chunks/chip-DcBji__g.cjs.map +1 -0
  107. package/dist/chunks/chroma-grid-9E9j1s9I.cjs +221 -0
  108. package/dist/chunks/chroma-grid-9E9j1s9I.cjs.map +1 -0
  109. package/dist/chunks/chroma-grid-Cdeql_2C.mjs +215 -0
  110. package/dist/chunks/chroma-grid-Cdeql_2C.mjs.map +1 -0
  111. package/dist/chunks/chunk-B_GkZjkl.cjs +28 -0
  112. package/dist/chunks/color-palette-BLvDnCOD.cjs +754 -0
  113. package/dist/chunks/color-palette-BLvDnCOD.cjs.map +1 -0
  114. package/dist/chunks/color-palette-CXlCDiZz.mjs +748 -0
  115. package/dist/chunks/color-palette-CXlCDiZz.mjs.map +1 -0
  116. package/dist/chunks/combobox-BXu3s0dt.cjs +139 -0
  117. package/dist/chunks/combobox-BXu3s0dt.cjs.map +1 -0
  118. package/dist/chunks/combobox-CjK-qG4k.mjs +132 -0
  119. package/dist/chunks/combobox-CjK-qG4k.mjs.map +1 -0
  120. package/dist/chunks/data-table-9HELVsYR.cjs +1154 -0
  121. package/dist/chunks/data-table-9HELVsYR.cjs.map +1 -0
  122. package/dist/chunks/data-table-DyEQn9Yj.mjs +1123 -0
  123. package/dist/chunks/data-table-DyEQn9Yj.mjs.map +1 -0
  124. package/dist/chunks/date-picker-D8gaaMlJ.mjs +135 -0
  125. package/dist/chunks/date-picker-D8gaaMlJ.mjs.map +1 -0
  126. package/dist/chunks/date-picker-W9om1j7A.cjs +141 -0
  127. package/dist/chunks/date-picker-W9om1j7A.cjs.map +1 -0
  128. package/dist/chunks/dialog-CYFiWN8M.cjs +396 -0
  129. package/dist/chunks/dialog-CYFiWN8M.cjs.map +1 -0
  130. package/dist/chunks/dialog-DUWnV9tN.mjs +390 -0
  131. package/dist/chunks/dialog-DUWnV9tN.mjs.map +1 -0
  132. package/dist/chunks/drawer-CLjsYdxN.cjs +128 -0
  133. package/dist/chunks/drawer-CLjsYdxN.cjs.map +1 -0
  134. package/dist/chunks/drawer-D82Jz6KO.mjs +122 -0
  135. package/dist/chunks/drawer-D82Jz6KO.mjs.map +1 -0
  136. package/dist/chunks/form-B2vcaHwh.mjs +161 -0
  137. package/dist/chunks/form-B2vcaHwh.mjs.map +1 -0
  138. package/dist/chunks/form-CzH9GQc6.cjs +203 -0
  139. package/dist/chunks/form-CzH9GQc6.cjs.map +1 -0
  140. package/dist/chunks/gradual-blur-B9GoY8o1.cjs +65 -0
  141. package/dist/chunks/gradual-blur-B9GoY8o1.cjs.map +1 -0
  142. package/dist/chunks/gradual-blur-Bl3dOMEz.mjs +59 -0
  143. package/dist/chunks/gradual-blur-Bl3dOMEz.mjs.map +1 -0
  144. package/dist/chunks/hover-card-v0QwmVBU.cjs +191 -0
  145. package/dist/chunks/hover-card-v0QwmVBU.cjs.map +1 -0
  146. package/dist/chunks/hover-card-xqwpmZNm.mjs +185 -0
  147. package/dist/chunks/hover-card-xqwpmZNm.mjs.map +1 -0
  148. package/dist/chunks/icons-BxIzP2jd.cjs +1717 -0
  149. package/dist/chunks/icons-BxIzP2jd.cjs.map +1 -0
  150. package/dist/chunks/icons-DuumN7z-.mjs +1429 -0
  151. package/dist/chunks/icons-DuumN7z-.mjs.map +1 -0
  152. package/dist/chunks/input-D9qZNqXV.cjs +99 -0
  153. package/dist/chunks/input-D9qZNqXV.cjs.map +1 -0
  154. package/dist/chunks/input-wNqevfQ4.mjs +87 -0
  155. package/dist/chunks/input-wNqevfQ4.mjs.map +1 -0
  156. package/dist/chunks/label-BWPEGVam.cjs +32 -0
  157. package/dist/chunks/label-BWPEGVam.cjs.map +1 -0
  158. package/dist/chunks/label-KPA-yYOF.mjs +26 -0
  159. package/dist/chunks/label-KPA-yYOF.mjs.map +1 -0
  160. package/dist/chunks/loading-S1TdIrbB.mjs +259 -0
  161. package/dist/chunks/loading-S1TdIrbB.mjs.map +1 -0
  162. package/dist/chunks/loading-q7IEg56I.cjs +313 -0
  163. package/dist/chunks/loading-q7IEg56I.cjs.map +1 -0
  164. package/dist/chunks/multi-select-combobox-ELSH_Xr4.mjs +132 -0
  165. package/dist/chunks/multi-select-combobox-ELSH_Xr4.mjs.map +1 -0
  166. package/dist/chunks/multi-select-combobox-UW0X15W7.cjs +139 -0
  167. package/dist/chunks/multi-select-combobox-UW0X15W7.cjs.map +1 -0
  168. package/dist/chunks/otp-input-B6zzOEqw.cjs +186 -0
  169. package/dist/chunks/otp-input-B6zzOEqw.cjs.map +1 -0
  170. package/dist/chunks/otp-input-Bg4nQG6x.mjs +180 -0
  171. package/dist/chunks/otp-input-Bg4nQG6x.mjs.map +1 -0
  172. package/dist/chunks/overlay-DWNTyQzK.cjs +60 -0
  173. package/dist/chunks/overlay-DWNTyQzK.cjs.map +1 -0
  174. package/dist/chunks/overlay-TycCIFOu.mjs +54 -0
  175. package/dist/chunks/overlay-TycCIFOu.mjs.map +1 -0
  176. package/dist/chunks/password-strength-meter-CbNSBuh_.mjs +99 -0
  177. package/dist/chunks/password-strength-meter-CbNSBuh_.mjs.map +1 -0
  178. package/dist/chunks/password-strength-meter-DxMV6GAs.cjs +105 -0
  179. package/dist/chunks/password-strength-meter-DxMV6GAs.cjs.map +1 -0
  180. package/dist/chunks/progress-bar-C1OvQ-NI.cjs +96 -0
  181. package/dist/chunks/progress-bar-C1OvQ-NI.cjs.map +1 -0
  182. package/dist/chunks/progress-bar-C9FZDrju.mjs +89 -0
  183. package/dist/chunks/progress-bar-C9FZDrju.mjs.map +1 -0
  184. package/dist/chunks/radio-C9w_CoiY.mjs +44 -0
  185. package/dist/chunks/radio-C9w_CoiY.mjs.map +1 -0
  186. package/dist/chunks/radio-jMHDvaMY.cjs +50 -0
  187. package/dist/chunks/radio-jMHDvaMY.cjs.map +1 -0
  188. package/dist/chunks/select-D71tk6-I.mjs +152 -0
  189. package/dist/chunks/select-D71tk6-I.mjs.map +1 -0
  190. package/dist/chunks/select-WC_kPqUP.cjs +158 -0
  191. package/dist/chunks/select-WC_kPqUP.cjs.map +1 -0
  192. package/dist/chunks/skeleton-BhYWOp0Q.mjs +215 -0
  193. package/dist/chunks/skeleton-BhYWOp0Q.mjs.map +1 -0
  194. package/dist/chunks/skeleton-DTXpHYYB.cjs +221 -0
  195. package/dist/chunks/skeleton-DTXpHYYB.cjs.map +1 -0
  196. package/dist/chunks/spinners-BBCWD2gw.mjs +11 -0
  197. package/dist/chunks/spinners-BBCWD2gw.mjs.map +1 -0
  198. package/dist/chunks/spinners-BL4ERCCw.cjs +17 -0
  199. package/dist/chunks/spinners-BL4ERCCw.cjs.map +1 -0
  200. package/dist/chunks/splash-cursor-BVSmbcIX.cjs +279 -0
  201. package/dist/chunks/splash-cursor-BVSmbcIX.cjs.map +1 -0
  202. package/dist/chunks/splash-cursor-rSrTnawZ.mjs +273 -0
  203. package/dist/chunks/splash-cursor-rSrTnawZ.mjs.map +1 -0
  204. package/dist/chunks/spotlight-card-BpZLMOp6.mjs +104 -0
  205. package/dist/chunks/spotlight-card-BpZLMOp6.mjs.map +1 -0
  206. package/dist/chunks/spotlight-card-DS1dy1W3.cjs +110 -0
  207. package/dist/chunks/spotlight-card-DS1dy1W3.cjs.map +1 -0
  208. package/dist/chunks/stepper-D4yQsQB0.mjs +261 -0
  209. package/dist/chunks/stepper-D4yQsQB0.mjs.map +1 -0
  210. package/dist/chunks/stepper-fY-Sx72k.cjs +267 -0
  211. package/dist/chunks/stepper-fY-Sx72k.cjs.map +1 -0
  212. package/dist/chunks/sun-to-moon-button-B2Aje05o.mjs +186 -0
  213. package/dist/chunks/sun-to-moon-button-B2Aje05o.mjs.map +1 -0
  214. package/dist/chunks/sun-to-moon-button-BmFwRBye.cjs +192 -0
  215. package/dist/chunks/sun-to-moon-button-BmFwRBye.cjs.map +1 -0
  216. package/dist/chunks/switch-C5otDb4c.cjs +64 -0
  217. package/dist/chunks/switch-C5otDb4c.cjs.map +1 -0
  218. package/dist/chunks/switch-DOVl_i_s.mjs +58 -0
  219. package/dist/chunks/switch-DOVl_i_s.mjs.map +1 -0
  220. package/dist/chunks/textarea-CAUsyu4-.cjs +63 -0
  221. package/dist/chunks/textarea-CAUsyu4-.cjs.map +1 -0
  222. package/dist/chunks/textarea-CU5C-Zw9.mjs +57 -0
  223. package/dist/chunks/textarea-CU5C-Zw9.mjs.map +1 -0
  224. package/dist/chunks/theme-7DWLxJK_.cjs +68 -0
  225. package/dist/chunks/theme-7DWLxJK_.cjs.map +1 -0
  226. package/dist/chunks/theme-BceKeYhw.mjs +56 -0
  227. package/dist/chunks/theme-BceKeYhw.mjs.map +1 -0
  228. package/dist/chunks/toast-CvfP7PUP.mjs +339 -0
  229. package/dist/chunks/toast-CvfP7PUP.mjs.map +1 -0
  230. package/dist/chunks/toast-Ds7_19Ap.cjs +369 -0
  231. package/dist/chunks/toast-Ds7_19Ap.cjs.map +1 -0
  232. package/dist/chunks/tooltip-efHETBo1.mjs +199 -0
  233. package/dist/chunks/tooltip-efHETBo1.mjs.map +1 -0
  234. package/dist/chunks/tooltip-nkIqViGk.cjs +205 -0
  235. package/dist/chunks/tooltip-nkIqViGk.cjs.map +1 -0
  236. package/dist/chunks/typography-CLu6Hx9j.mjs +83 -0
  237. package/dist/chunks/typography-CLu6Hx9j.mjs.map +1 -0
  238. package/dist/chunks/typography-DaLu9tty.cjs +90 -0
  239. package/dist/chunks/typography-DaLu9tty.cjs.map +1 -0
  240. package/dist/chunks/utils-B4SmmY4J.cjs +2019 -0
  241. package/dist/chunks/utils-B4SmmY4J.cjs.map +1 -0
  242. package/dist/chunks/utils-ati1KkDb.mjs +2002 -0
  243. package/dist/chunks/utils-ati1KkDb.mjs.map +1 -0
  244. package/dist/color-palette.cjs +3 -0
  245. package/dist/color-palette.d.ts +2 -0
  246. package/dist/color-palette.mjs +2 -0
  247. package/dist/colors.css +153 -0
  248. package/dist/combobox.cjs +3 -0
  249. package/dist/combobox.d.ts +2 -0
  250. package/dist/combobox.mjs +2 -0
  251. package/dist/components/data-display/card/Card.d.ts.map +1 -0
  252. package/dist/components/data-display/card/index.d.ts.map +1 -0
  253. package/dist/components/data-display/card/types.d.ts +5 -0
  254. package/dist/components/data-display/card/types.d.ts.map +1 -0
  255. package/dist/components/data-display/charts/AreaChart.d.ts.map +1 -0
  256. package/dist/components/data-display/charts/BarChart.d.ts.map +1 -0
  257. package/dist/components/data-display/charts/NeonLineChart.d.ts.map +1 -0
  258. package/dist/components/data-display/charts/PieChart.d.ts.map +1 -0
  259. package/dist/components/data-display/charts/StackedBarChart.d.ts.map +1 -0
  260. package/dist/components/data-display/charts/ThinBreakdownBar.d.ts.map +1 -0
  261. package/dist/components/data-display/charts/chartPalette.d.ts +10 -0
  262. package/dist/components/data-display/charts/chartPalette.d.ts.map +1 -0
  263. package/dist/components/data-display/charts/index.d.ts +14 -0
  264. package/dist/components/data-display/charts/index.d.ts.map +1 -0
  265. package/dist/components/data-display/chip/Chip.d.ts.map +1 -0
  266. package/dist/components/data-display/chip/index.d.ts.map +1 -0
  267. package/dist/components/data-display/color-palette/ColorPalette.d.ts.map +1 -0
  268. package/dist/components/data-display/color-palette/index.d.ts.map +1 -0
  269. package/dist/components/data-display/color-palette/types.d.ts +14 -0
  270. package/dist/components/data-display/color-palette/types.d.ts.map +1 -0
  271. package/dist/components/{basics → data-display}/data-table/DataTable.d.ts +27 -11
  272. package/dist/components/data-display/data-table/DataTable.d.ts.map +1 -0
  273. package/dist/components/data-display/data-table/index.d.ts +4 -0
  274. package/dist/components/data-display/data-table/index.d.ts.map +1 -0
  275. package/dist/components/data-display/index.d.ts +10 -0
  276. package/dist/components/data-display/index.d.ts.map +1 -0
  277. package/dist/components/{basics → data-display}/loading/Loading.d.ts +7 -7
  278. package/dist/components/data-display/loading/Loading.d.ts.map +1 -0
  279. package/dist/components/data-display/loading/index.d.ts.map +1 -0
  280. package/dist/components/data-display/loading/types.d.ts +25 -0
  281. package/dist/components/data-display/loading/types.d.ts.map +1 -0
  282. package/dist/components/data-display/progress-bar/ProgressBar.d.ts +18 -0
  283. package/dist/components/data-display/progress-bar/ProgressBar.d.ts.map +1 -0
  284. package/dist/components/data-display/progress-bar/index.d.ts +3 -0
  285. package/dist/components/data-display/progress-bar/index.d.ts.map +1 -0
  286. package/dist/components/data-display/skeleton/Skeleton.d.ts.map +1 -0
  287. package/dist/components/data-display/skeleton/index.d.ts.map +1 -0
  288. package/dist/components/effects/animated-content/AnimatedContent.d.ts.map +1 -0
  289. package/dist/components/effects/animated-content/index.d.ts.map +1 -0
  290. package/dist/components/effects/animated-content/types.d.ts +45 -0
  291. package/dist/components/effects/animated-content/types.d.ts.map +1 -0
  292. package/dist/components/effects/ascii-text/ASCIIText.d.ts.map +1 -0
  293. package/dist/components/effects/ascii-text/index.d.ts.map +1 -0
  294. package/dist/components/effects/background-gradient-animation/BackgroundGradientAnimation.d.ts.map +1 -0
  295. package/dist/components/effects/background-gradient-animation/BackgroundGradientAnimationDemo.d.ts.map +1 -0
  296. package/dist/components/effects/background-gradient-animation/index.d.ts.map +1 -0
  297. package/dist/components/effects/border-beam/BorderBeam.d.ts +12 -0
  298. package/dist/components/effects/border-beam/BorderBeam.d.ts.map +1 -0
  299. package/dist/components/effects/border-beam/index.d.ts +3 -0
  300. package/dist/components/effects/border-beam/index.d.ts.map +1 -0
  301. package/dist/components/effects/button-hover-border-gradient/ButtonHoverBorderGradient.d.ts.map +1 -0
  302. package/dist/components/effects/button-hover-border-gradient/index.d.ts.map +1 -0
  303. package/dist/components/effects/chroma-grid/ChromaGrid.d.ts.map +1 -0
  304. package/dist/components/effects/chroma-grid/index.d.ts +3 -0
  305. package/dist/components/effects/chroma-grid/index.d.ts.map +1 -0
  306. package/dist/components/effects/chroma-grid/types.d.ts +50 -0
  307. package/dist/components/effects/chroma-grid/types.d.ts.map +1 -0
  308. package/dist/components/{basics → effects}/gradual-blur/GradualBlur.d.ts +1 -1
  309. package/dist/components/effects/gradual-blur/GradualBlur.d.ts.map +1 -0
  310. package/dist/components/effects/gradual-blur/index.d.ts +3 -0
  311. package/dist/components/effects/gradual-blur/index.d.ts.map +1 -0
  312. package/dist/components/effects/gradual-blur/types.d.ts +28 -0
  313. package/dist/components/effects/gradual-blur/types.d.ts.map +1 -0
  314. package/dist/components/effects/hover-border-gradient/HoverBorderGradient.d.ts.map +1 -0
  315. package/dist/components/effects/hover-border-gradient/index.d.ts.map +1 -0
  316. package/dist/components/effects/index.d.ts +12 -0
  317. package/dist/components/effects/index.d.ts.map +1 -0
  318. package/dist/components/effects/splash-cursor/SplashCursor.d.ts.map +1 -0
  319. package/dist/components/effects/splash-cursor/index.d.ts.map +1 -0
  320. package/dist/components/effects/splash-cursor/types.d.ts +40 -0
  321. package/dist/components/effects/splash-cursor/types.d.ts.map +1 -0
  322. package/dist/components/effects/spotlight-card/SpotlightCard.d.ts.map +1 -0
  323. package/dist/components/effects/spotlight-card/index.d.ts +3 -0
  324. package/dist/components/effects/spotlight-card/index.d.ts.map +1 -0
  325. package/dist/components/effects/spotlight-card/types.d.ts +26 -0
  326. package/dist/components/effects/spotlight-card/types.d.ts.map +1 -0
  327. package/dist/components/effects/sun-to-moon-button/SunToMoonButton.d.ts +5 -0
  328. package/dist/components/effects/sun-to-moon-button/SunToMoonButton.d.ts.map +1 -0
  329. package/dist/components/effects/sun-to-moon-button/index.d.ts.map +1 -0
  330. package/dist/components/feedback/alert/Alert.d.ts.map +1 -0
  331. package/dist/components/feedback/alert/index.d.ts.map +1 -0
  332. package/dist/components/feedback/alert/types.d.ts +11 -0
  333. package/dist/components/feedback/alert/types.d.ts.map +1 -0
  334. package/dist/components/feedback/index.d.ts +2 -0
  335. package/dist/components/feedback/index.d.ts.map +1 -0
  336. package/dist/components/{basics/Button → forms/button}/Button.d.ts +1 -1
  337. package/dist/components/forms/button/Button.d.ts.map +1 -0
  338. package/dist/components/forms/button/index.d.ts.map +1 -0
  339. package/dist/components/forms/button/types.d.ts +14 -0
  340. package/dist/components/forms/button/types.d.ts.map +1 -0
  341. package/dist/components/forms/calendar/Calendar.d.ts.map +1 -0
  342. package/dist/components/forms/calendar/index.d.ts.map +1 -0
  343. package/dist/components/forms/calendar/types.d.ts +20 -0
  344. package/dist/components/forms/calendar/types.d.ts.map +1 -0
  345. package/dist/components/forms/checkbox/Checkbox.d.ts.map +1 -0
  346. package/dist/components/forms/checkbox/index.d.ts.map +1 -0
  347. package/dist/components/forms/checkbox/types.d.ts +8 -0
  348. package/dist/components/forms/checkbox/types.d.ts.map +1 -0
  349. package/dist/components/{basics → forms}/combobox/Combobox.d.ts +1 -1
  350. package/dist/components/forms/combobox/Combobox.d.ts.map +1 -0
  351. package/dist/components/forms/combobox/index.d.ts.map +1 -0
  352. package/dist/components/forms/date-picker/DatePicker.d.ts.map +1 -0
  353. package/dist/components/forms/date-picker/index.d.ts +3 -0
  354. package/dist/components/forms/date-picker/index.d.ts.map +1 -0
  355. package/dist/components/forms/date-picker/types.d.ts +21 -0
  356. package/dist/components/forms/date-picker/types.d.ts.map +1 -0
  357. package/dist/components/forms/form/Form.d.ts.map +1 -0
  358. package/dist/components/forms/form/index.d.ts.map +1 -0
  359. package/dist/components/forms/form/types.d.ts +47 -0
  360. package/dist/components/forms/form/types.d.ts.map +1 -0
  361. package/dist/components/forms/index.d.ts +15 -0
  362. package/dist/components/forms/index.d.ts.map +1 -0
  363. package/dist/components/forms/input/Input.d.ts.map +1 -0
  364. package/dist/components/{basics → forms}/input/index.d.ts +1 -0
  365. package/dist/components/forms/input/index.d.ts.map +1 -0
  366. package/dist/components/forms/input/types.d.ts.map +1 -0
  367. package/dist/components/forms/label/Label.d.ts.map +1 -0
  368. package/dist/components/forms/label/index.d.ts.map +1 -0
  369. package/dist/components/forms/label/types.d.ts +5 -0
  370. package/dist/components/forms/label/types.d.ts.map +1 -0
  371. package/dist/components/{basics → forms}/multi-select-combobox/MultiSelectCombobox.d.ts +1 -1
  372. package/dist/components/forms/multi-select-combobox/MultiSelectCombobox.d.ts.map +1 -0
  373. package/dist/components/forms/multi-select-combobox/index.d.ts +3 -0
  374. package/dist/components/forms/multi-select-combobox/index.d.ts.map +1 -0
  375. package/dist/components/forms/otp-input/OTPInput.d.ts.map +1 -0
  376. package/dist/components/forms/otp-input/index.d.ts +3 -0
  377. package/dist/components/{basics/skeleton → forms/otp-input}/index.d.ts.map +1 -1
  378. package/dist/components/forms/otp-input/types.d.ts +2 -0
  379. package/dist/components/forms/otp-input/types.d.ts.map +1 -0
  380. package/dist/components/forms/password-strength-meter/PasswordCriteria.d.ts.map +1 -0
  381. package/dist/components/forms/password-strength-meter/PasswordStrengthMeter.d.ts +5 -0
  382. package/dist/components/forms/password-strength-meter/PasswordStrengthMeter.d.ts.map +1 -0
  383. package/dist/components/forms/password-strength-meter/index.d.ts +3 -0
  384. package/dist/components/forms/password-strength-meter/index.d.ts.map +1 -0
  385. package/dist/components/forms/radio/Radio.d.ts.map +1 -0
  386. package/dist/components/forms/radio/index.d.ts.map +1 -0
  387. package/dist/components/forms/radio/types.d.ts +11 -0
  388. package/dist/components/forms/radio/types.d.ts.map +1 -0
  389. package/dist/components/forms/select/Select.d.ts.map +1 -0
  390. package/dist/components/forms/select/index.d.ts.map +1 -0
  391. package/dist/components/forms/select/types.d.ts +15 -0
  392. package/dist/components/forms/select/types.d.ts.map +1 -0
  393. package/dist/components/forms/switch/Switch.d.ts.map +1 -0
  394. package/dist/components/forms/switch/index.d.ts.map +1 -0
  395. package/dist/components/forms/switch/types.d.ts +6 -0
  396. package/dist/components/forms/switch/types.d.ts.map +1 -0
  397. package/dist/components/forms/textarea/Textarea.d.ts.map +1 -0
  398. package/dist/components/forms/textarea/index.d.ts.map +1 -0
  399. package/dist/components/forms/textarea/types.d.ts +7 -0
  400. package/dist/components/forms/textarea/types.d.ts.map +1 -0
  401. package/dist/components/icons/AlertCircleIcon.d.ts +9 -0
  402. package/dist/components/icons/AlertCircleIcon.d.ts.map +1 -0
  403. package/dist/components/icons/AlertTriangleIcon.d.ts +9 -0
  404. package/dist/components/icons/AlertTriangleIcon.d.ts.map +1 -0
  405. package/dist/components/icons/AudioWaveIcon.d.ts +9 -0
  406. package/dist/components/icons/AudioWaveIcon.d.ts.map +1 -0
  407. package/dist/components/icons/CheckCircleIcon.d.ts +9 -0
  408. package/dist/components/icons/CheckCircleIcon.d.ts.map +1 -0
  409. package/dist/components/icons/ColumnsIcon.d.ts +9 -0
  410. package/dist/components/icons/ColumnsIcon.d.ts.map +1 -0
  411. package/dist/components/icons/FilterIcon.d.ts +9 -0
  412. package/dist/components/icons/FilterIcon.d.ts.map +1 -0
  413. package/dist/components/icons/FilterProfileIcon.d.ts +9 -0
  414. package/dist/components/icons/FilterProfileIcon.d.ts.map +1 -0
  415. package/dist/components/icons/FilterXIcon.d.ts +9 -0
  416. package/dist/components/icons/FilterXIcon.d.ts.map +1 -0
  417. package/dist/components/icons/InfoCircleIcon.d.ts +9 -0
  418. package/dist/components/icons/InfoCircleIcon.d.ts.map +1 -0
  419. package/dist/components/icons/LoaderIcon.d.ts +10 -0
  420. package/dist/components/icons/LoaderIcon.d.ts.map +1 -0
  421. package/dist/components/icons/MailIcon.d.ts +9 -0
  422. package/dist/components/icons/MailIcon.d.ts.map +1 -0
  423. package/dist/components/icons/PlayIcon.d.ts +9 -0
  424. package/dist/components/icons/PlayIcon.d.ts.map +1 -0
  425. package/dist/components/icons/QuestionCircleIcon.d.ts +9 -0
  426. package/dist/components/icons/QuestionCircleIcon.d.ts.map +1 -0
  427. package/dist/components/icons/RefreshIcon.d.ts +9 -0
  428. package/dist/components/icons/RefreshIcon.d.ts.map +1 -0
  429. package/dist/components/icons/RingLoaderIcon.d.ts +11 -0
  430. package/dist/components/icons/RingLoaderIcon.d.ts.map +1 -0
  431. package/dist/components/icons/SelectionIcon.d.ts +9 -0
  432. package/dist/components/icons/SelectionIcon.d.ts.map +1 -0
  433. package/dist/components/icons/XCircleIcon.d.ts +9 -0
  434. package/dist/components/icons/XCircleIcon.d.ts.map +1 -0
  435. package/dist/components/icons/ZapIcon.d.ts +9 -0
  436. package/dist/components/icons/ZapIcon.d.ts.map +1 -0
  437. package/dist/components/icons/index.d.ts +18 -0
  438. package/dist/components/icons/index.d.ts.map +1 -1
  439. package/dist/components/{basics → navigation}/accordion/Accordion.d.ts +1 -1
  440. package/dist/components/navigation/accordion/Accordion.d.ts.map +1 -0
  441. package/dist/components/{basics → navigation}/accordion/index.d.ts +1 -1
  442. package/dist/components/navigation/accordion/index.d.ts.map +1 -0
  443. package/dist/components/navigation/accordion/types.d.ts +18 -0
  444. package/dist/components/navigation/accordion/types.d.ts.map +1 -0
  445. package/dist/components/navigation/carousel/Carousel.d.ts.map +1 -0
  446. package/dist/components/navigation/carousel/index.d.ts.map +1 -0
  447. package/dist/components/navigation/carousel/types.d.ts +64 -0
  448. package/dist/components/navigation/carousel/types.d.ts.map +1 -0
  449. package/dist/components/navigation/index.d.ts +4 -0
  450. package/dist/components/navigation/index.d.ts.map +1 -0
  451. package/dist/components/navigation/stepper/Stepper.d.ts.map +1 -0
  452. package/dist/components/navigation/stepper/index.d.ts.map +1 -0
  453. package/dist/components/navigation/stepper/types.d.ts +83 -0
  454. package/dist/components/navigation/stepper/types.d.ts.map +1 -0
  455. package/dist/components/overlays/dialog/Dialog.d.ts.map +1 -0
  456. package/dist/components/overlays/dialog/index.d.ts +3 -0
  457. package/dist/components/overlays/dialog/index.d.ts.map +1 -0
  458. package/dist/components/{basics → overlays}/dialog/types.d.ts +18 -18
  459. package/dist/components/overlays/dialog/types.d.ts.map +1 -0
  460. package/dist/components/overlays/drawer/Drawer.d.ts.map +1 -0
  461. package/dist/components/overlays/drawer/index.d.ts +3 -0
  462. package/dist/components/overlays/drawer/index.d.ts.map +1 -0
  463. package/dist/components/overlays/drawer/types.d.ts +12 -0
  464. package/dist/components/overlays/drawer/types.d.ts.map +1 -0
  465. package/dist/components/overlays/hover-card/HoverCard.d.ts.map +1 -0
  466. package/dist/components/overlays/hover-card/index.d.ts +3 -0
  467. package/dist/components/overlays/hover-card/index.d.ts.map +1 -0
  468. package/dist/components/overlays/hover-card/types.d.ts +2 -0
  469. package/dist/components/overlays/hover-card/types.d.ts.map +1 -0
  470. package/dist/components/overlays/index.d.ts +6 -0
  471. package/dist/components/overlays/index.d.ts.map +1 -0
  472. package/dist/components/overlays/toast/Toast.d.ts.map +1 -0
  473. package/dist/components/overlays/toast/index.d.ts.map +1 -0
  474. package/dist/components/overlays/toast/types.d.ts +2 -0
  475. package/dist/components/overlays/toast/types.d.ts.map +1 -0
  476. package/dist/components/overlays/tooltip/Tooltip.d.ts.map +1 -0
  477. package/dist/components/overlays/tooltip/index.d.ts.map +1 -0
  478. package/dist/components/overlays/tooltip/types.d.ts +27 -0
  479. package/dist/components/overlays/tooltip/types.d.ts.map +1 -0
  480. package/dist/components/spinners/Audio.d.ts.map +1 -1
  481. package/dist/components/spinners/index.d.ts +2 -0
  482. package/dist/components/spinners/index.d.ts.map +1 -0
  483. package/dist/components/text-animations/{BlurText → blur-text}/BlurText.d.ts +2 -2
  484. package/dist/components/text-animations/blur-text/BlurText.d.ts.map +1 -0
  485. package/dist/components/text-animations/blur-text/index.d.ts.map +1 -0
  486. package/dist/components/{basics/typography → typography}/Typography.d.ts +5 -5
  487. package/dist/components/typography/Typography.d.ts.map +1 -0
  488. package/dist/components/typography/index.d.ts +3 -0
  489. package/dist/components/typography/index.d.ts.map +1 -0
  490. package/dist/contexts/ThemeContext.d.ts +2 -15
  491. package/dist/contexts/ThemeContext.d.ts.map +1 -1
  492. package/dist/data-table.cjs +7 -0
  493. package/dist/data-table.d.ts +2 -0
  494. package/dist/data-table.mjs +2 -0
  495. package/dist/date-picker.cjs +3 -0
  496. package/dist/date-picker.d.ts +2 -0
  497. package/dist/date-picker.mjs +2 -0
  498. package/dist/dialog.cjs +3 -0
  499. package/dist/dialog.d.ts +2 -0
  500. package/dist/dialog.mjs +2 -0
  501. package/dist/docs.cjs +699 -0
  502. package/dist/docs.cjs.map +1 -0
  503. package/dist/docs.d.ts +257 -0
  504. package/dist/docs.d.ts.map +1 -0
  505. package/dist/docs.mjs +691 -0
  506. package/dist/docs.mjs.map +1 -0
  507. package/dist/drawer.cjs +3 -0
  508. package/dist/drawer.d.ts +2 -0
  509. package/dist/drawer.mjs +2 -0
  510. package/dist/fonts/geist/Geist-Black.woff2 +0 -0
  511. package/dist/fonts/geist/Geist-Bold.woff2 +0 -0
  512. package/dist/fonts/geist/Geist-ExtraBold.woff2 +0 -0
  513. package/dist/fonts/geist/Geist-ExtraLight.woff2 +0 -0
  514. package/dist/fonts/geist/Geist-Light.woff2 +0 -0
  515. package/dist/fonts/geist/Geist-Medium.woff2 +0 -0
  516. package/dist/fonts/geist/Geist-Regular.woff2 +0 -0
  517. package/dist/fonts/geist/Geist-SemiBold.woff2 +0 -0
  518. package/dist/fonts/geist/Geist-Thin.woff2 +0 -0
  519. package/dist/fonts/geist/Geist[wght].woff2 +0 -0
  520. package/dist/fonts.css +84 -0
  521. package/dist/form.cjs +9 -0
  522. package/dist/form.d.ts +2 -0
  523. package/dist/form.mjs +2 -0
  524. package/dist/foundation.css +30 -0
  525. package/dist/foundations/index.d.ts +2 -0
  526. package/dist/foundations/index.d.ts.map +1 -0
  527. package/dist/foundations/theme/ThemeProvider.d.ts +17 -0
  528. package/dist/foundations/theme/ThemeProvider.d.ts.map +1 -0
  529. package/dist/foundations/theme/index.d.ts +3 -0
  530. package/dist/foundations/theme/index.d.ts.map +1 -0
  531. package/dist/gradual-blur.cjs +3 -0
  532. package/dist/gradual-blur.d.ts +2 -0
  533. package/dist/gradual-blur.mjs +2 -0
  534. package/dist/hover-border-gradient.cjs +3 -0
  535. package/dist/hover-border-gradient.d.ts +2 -0
  536. package/dist/hover-border-gradient.mjs +2 -0
  537. package/dist/hover-card.cjs +3 -0
  538. package/dist/hover-card.d.ts +2 -0
  539. package/dist/hover-card.mjs +2 -0
  540. package/dist/icons.cjs +50 -0
  541. package/dist/icons.d.ts +2 -0
  542. package/dist/icons.mjs +2 -0
  543. package/dist/index.cjs +188 -12516
  544. package/dist/index.cjs.map +1 -1
  545. package/dist/index.d.ts +74 -76
  546. package/dist/index.d.ts.map +1 -1
  547. package/dist/index.mjs +67 -12500
  548. package/dist/index.mjs.map +1 -1
  549. package/dist/input.cjs +4 -0
  550. package/dist/input.d.ts +2 -0
  551. package/dist/input.mjs +2 -0
  552. package/dist/label.cjs +3 -0
  553. package/dist/label.d.ts +2 -0
  554. package/dist/label.mjs +2 -0
  555. package/dist/loading.cjs +11 -0
  556. package/dist/loading.d.ts +2 -0
  557. package/dist/loading.mjs +2 -0
  558. package/dist/multi-select-combobox.cjs +3 -0
  559. package/dist/multi-select-combobox.d.ts +2 -0
  560. package/dist/multi-select-combobox.mjs +2 -0
  561. package/dist/otp-input.cjs +3 -0
  562. package/dist/otp-input.d.ts +2 -0
  563. package/dist/otp-input.mjs +2 -0
  564. package/dist/password-strength-meter.cjs +3 -0
  565. package/dist/password-strength-meter.d.ts +2 -0
  566. package/dist/password-strength-meter.mjs +2 -0
  567. package/dist/progress-bar.cjs +3 -0
  568. package/dist/progress-bar.d.ts +2 -0
  569. package/dist/progress-bar.mjs +2 -0
  570. package/dist/radio.cjs +3 -0
  571. package/dist/radio.d.ts +2 -0
  572. package/dist/radio.mjs +2 -0
  573. package/dist/select.cjs +3 -0
  574. package/dist/select.d.ts +2 -0
  575. package/dist/select.mjs +2 -0
  576. package/dist/skeleton.cjs +3 -0
  577. package/dist/skeleton.d.ts +2 -0
  578. package/dist/skeleton.mjs +2 -0
  579. package/dist/spinners.cjs +3 -0
  580. package/dist/spinners.d.ts +2 -0
  581. package/dist/spinners.mjs +2 -0
  582. package/dist/splash-cursor.cjs +3 -0
  583. package/dist/splash-cursor.d.ts +2 -0
  584. package/dist/splash-cursor.mjs +2 -0
  585. package/dist/spotlight-card.cjs +3 -0
  586. package/dist/spotlight-card.d.ts +2 -0
  587. package/dist/spotlight-card.mjs +2 -0
  588. package/dist/stepper.cjs +3 -0
  589. package/dist/stepper.d.ts +2 -0
  590. package/dist/stepper.mjs +2 -0
  591. package/dist/styles.css +6 -0
  592. package/dist/sun-to-moon-button.cjs +3 -0
  593. package/dist/sun-to-moon-button.d.ts +2 -0
  594. package/dist/sun-to-moon-button.mjs +2 -0
  595. package/dist/switch.cjs +3 -0
  596. package/dist/switch.d.ts +2 -0
  597. package/dist/switch.mjs +2 -0
  598. package/dist/textarea.cjs +3 -0
  599. package/dist/textarea.d.ts +2 -0
  600. package/dist/textarea.mjs +2 -0
  601. package/dist/theme.cjs +4 -0
  602. package/dist/theme.d.ts +2 -0
  603. package/dist/theme.mjs +2 -0
  604. package/dist/toast.cjs +11 -0
  605. package/dist/toast.d.ts +6 -0
  606. package/dist/toast.mjs +2 -0
  607. package/dist/tokens.css +592 -0
  608. package/dist/tooltip.cjs +3 -0
  609. package/dist/tooltip.d.ts +2 -0
  610. package/dist/tooltip.mjs +2 -0
  611. package/dist/typography.cjs +3 -0
  612. package/dist/typography.d.ts +2 -0
  613. package/dist/typography.mjs +2 -0
  614. package/dist/utils/generateUniqueKey.d.ts.map +1 -1
  615. package/dist/utils.cjs +5 -0
  616. package/dist/utils.d.ts +2 -0
  617. package/dist/utils.mjs +2 -0
  618. package/package.json +252 -106
  619. package/dist/components/Button.d.ts +0 -8
  620. package/dist/components/Button.d.ts.map +0 -1
  621. package/dist/components/basics/Button/Button.d.ts.map +0 -1
  622. package/dist/components/basics/Button/index.d.ts.map +0 -1
  623. package/dist/components/basics/accordion/Accordion.d.ts.map +0 -1
  624. package/dist/components/basics/accordion/index.d.ts.map +0 -1
  625. package/dist/components/basics/alert/Alert.d.ts.map +0 -1
  626. package/dist/components/basics/alert/index.d.ts.map +0 -1
  627. package/dist/components/basics/animated-content/AnimatedContent.d.ts.map +0 -1
  628. package/dist/components/basics/animated-content/index.d.ts.map +0 -1
  629. package/dist/components/basics/background-gradient-animation/BackgroundGradientAnimation.d.ts.map +0 -1
  630. package/dist/components/basics/background-gradient-animation/BackgroundGradientAnimationDemo.d.ts.map +0 -1
  631. package/dist/components/basics/background-gradient-animation/index.d.ts.map +0 -1
  632. package/dist/components/basics/button-hover-border-gradient/ButtonHoverBorderGradient.d.ts.map +0 -1
  633. package/dist/components/basics/button-hover-border-gradient/index.d.ts.map +0 -1
  634. package/dist/components/basics/calendar/Calendar.d.ts.map +0 -1
  635. package/dist/components/basics/calendar/index.d.ts.map +0 -1
  636. package/dist/components/basics/card/Card.d.ts.map +0 -1
  637. package/dist/components/basics/card/index.d.ts.map +0 -1
  638. package/dist/components/basics/carousel/Carousel.d.ts.map +0 -1
  639. package/dist/components/basics/carousel/index.d.ts.map +0 -1
  640. package/dist/components/basics/charts/AreaChart.d.ts.map +0 -1
  641. package/dist/components/basics/charts/BarChart.d.ts.map +0 -1
  642. package/dist/components/basics/charts/NeonLineChart.d.ts.map +0 -1
  643. package/dist/components/basics/charts/PieChart.d.ts.map +0 -1
  644. package/dist/components/basics/charts/StackedBarChart.d.ts.map +0 -1
  645. package/dist/components/basics/charts/ThinBreakdownBar.d.ts.map +0 -1
  646. package/dist/components/basics/checkbox/Checkbox.d.ts.map +0 -1
  647. package/dist/components/basics/checkbox/index.d.ts.map +0 -1
  648. package/dist/components/basics/chip/Chip.d.ts.map +0 -1
  649. package/dist/components/basics/chip/index.d.ts.map +0 -1
  650. package/dist/components/basics/chroma-grid/ChromaGrid.d.ts.map +0 -1
  651. package/dist/components/basics/chroma-grid/index.d.ts +0 -3
  652. package/dist/components/basics/chroma-grid/index.d.ts.map +0 -1
  653. package/dist/components/basics/colo-palette/ColorPalette.d.ts.map +0 -1
  654. package/dist/components/basics/colo-palette/index.d.ts.map +0 -1
  655. package/dist/components/basics/combobox/Combobox.d.ts.map +0 -1
  656. package/dist/components/basics/combobox/index.d.ts.map +0 -1
  657. package/dist/components/basics/data-table/DataTable.d.ts.map +0 -1
  658. package/dist/components/basics/data-table/index.d.ts +0 -4
  659. package/dist/components/basics/data-table/index.d.ts.map +0 -1
  660. package/dist/components/basics/date-picker/DatePicker.d.ts.map +0 -1
  661. package/dist/components/basics/date-picker/index.d.ts +0 -3
  662. package/dist/components/basics/date-picker/index.d.ts.map +0 -1
  663. package/dist/components/basics/dialog/Dialog.d.ts.map +0 -1
  664. package/dist/components/basics/dialog/types.d.ts.map +0 -1
  665. package/dist/components/basics/drawer/Drawer.d.ts.map +0 -1
  666. package/dist/components/basics/drawer/index.d.ts +0 -3
  667. package/dist/components/basics/drawer/index.d.ts.map +0 -1
  668. package/dist/components/basics/form/Form.d.ts.map +0 -1
  669. package/dist/components/basics/form/index.d.ts.map +0 -1
  670. package/dist/components/basics/gradual-blur/GradualBlur.d.ts.map +0 -1
  671. package/dist/components/basics/gradual-blur/index.d.ts +0 -3
  672. package/dist/components/basics/gradual-blur/index.d.ts.map +0 -1
  673. package/dist/components/basics/hover-border-gradient/HoverBorderGradient.d.ts.map +0 -1
  674. package/dist/components/basics/hover-border-gradient/index.d.ts.map +0 -1
  675. package/dist/components/basics/hover-card/HoverCard.d.ts.map +0 -1
  676. package/dist/components/basics/hover-card/index.d.ts +0 -3
  677. package/dist/components/basics/hover-card/index.d.ts.map +0 -1
  678. package/dist/components/basics/input/Input.d.ts.map +0 -1
  679. package/dist/components/basics/input/index.d.ts.map +0 -1
  680. package/dist/components/basics/input/types.d.ts.map +0 -1
  681. package/dist/components/basics/label/Label.d.ts.map +0 -1
  682. package/dist/components/basics/label/index.d.ts.map +0 -1
  683. package/dist/components/basics/loading/Loading.d.ts.map +0 -1
  684. package/dist/components/basics/loading/index.d.ts.map +0 -1
  685. package/dist/components/basics/multi-select-combobox/MultiSelectCombobox.d.ts.map +0 -1
  686. package/dist/components/basics/multi-select-combobox/index.d.ts +0 -3
  687. package/dist/components/basics/multi-select-combobox/index.d.ts.map +0 -1
  688. package/dist/components/basics/otp-Input/OTPInput.d.ts.map +0 -1
  689. package/dist/components/basics/otp-Input/index.d.ts +0 -3
  690. package/dist/components/basics/otp-Input/index.d.ts.map +0 -1
  691. package/dist/components/basics/password-strength-meter/PasswordCriteria.d.ts.map +0 -1
  692. package/dist/components/basics/password-strength-meter/PasswordStrengthMeter.d.ts +0 -6
  693. package/dist/components/basics/password-strength-meter/PasswordStrengthMeter.d.ts.map +0 -1
  694. package/dist/components/basics/preview/Preview.d.ts +0 -2
  695. package/dist/components/basics/preview/Preview.d.ts.map +0 -1
  696. package/dist/components/basics/preview/index.d.ts +0 -2
  697. package/dist/components/basics/preview/index.d.ts.map +0 -1
  698. package/dist/components/basics/radio/Radio.d.ts.map +0 -1
  699. package/dist/components/basics/radio/index.d.ts.map +0 -1
  700. package/dist/components/basics/select/Select.d.ts.map +0 -1
  701. package/dist/components/basics/select/index.d.ts.map +0 -1
  702. package/dist/components/basics/skeleton/Skeleton.d.ts.map +0 -1
  703. package/dist/components/basics/splashCursor/SplashCursor.d.ts.map +0 -1
  704. package/dist/components/basics/splashCursor/index.d.ts.map +0 -1
  705. package/dist/components/basics/spotlight-card/SpotlightCard.d.ts.map +0 -1
  706. package/dist/components/basics/spotlight-card/index.d.ts +0 -3
  707. package/dist/components/basics/spotlight-card/index.d.ts.map +0 -1
  708. package/dist/components/basics/stepper/Stepper.d.ts.map +0 -1
  709. package/dist/components/basics/stepper/index.d.ts.map +0 -1
  710. package/dist/components/basics/sun-to-moon-button/SunToMoonButton.d.ts +0 -4
  711. package/dist/components/basics/sun-to-moon-button/SunToMoonButton.d.ts.map +0 -1
  712. package/dist/components/basics/sun-to-moon-button/index.d.ts.map +0 -1
  713. package/dist/components/basics/switch/Switch.d.ts.map +0 -1
  714. package/dist/components/basics/switch/index.d.ts.map +0 -1
  715. package/dist/components/basics/textarea/Textarea.d.ts.map +0 -1
  716. package/dist/components/basics/textarea/index.d.ts.map +0 -1
  717. package/dist/components/basics/toast/Toast.d.ts.map +0 -1
  718. package/dist/components/basics/toast/index.d.ts.map +0 -1
  719. package/dist/components/basics/tooltip/Tooltip.d.ts.map +0 -1
  720. package/dist/components/basics/tooltip/index.d.ts.map +0 -1
  721. package/dist/components/basics/typography/Typography.d.ts.map +0 -1
  722. package/dist/components/text-animations/ASCIIText/ASCIIText.d.ts.map +0 -1
  723. package/dist/components/text-animations/ASCIIText/index.d.ts.map +0 -1
  724. package/dist/components/text-animations/BlurText/BlurText.d.ts.map +0 -1
  725. package/dist/components/text-animations/BlurText/index.d.ts.map +0 -1
  726. /package/dist/components/{basics → data-display}/card/Card.d.ts +0 -0
  727. /package/dist/components/{basics → data-display}/card/index.d.ts +0 -0
  728. /package/dist/components/{basics → data-display}/charts/AreaChart.d.ts +0 -0
  729. /package/dist/components/{basics → data-display}/charts/BarChart.d.ts +0 -0
  730. /package/dist/components/{basics → data-display}/charts/NeonLineChart.d.ts +0 -0
  731. /package/dist/components/{basics → data-display}/charts/PieChart.d.ts +0 -0
  732. /package/dist/components/{basics → data-display}/charts/StackedBarChart.d.ts +0 -0
  733. /package/dist/components/{basics → data-display}/charts/ThinBreakdownBar.d.ts +0 -0
  734. /package/dist/components/{basics → data-display}/chip/Chip.d.ts +0 -0
  735. /package/dist/components/{basics → data-display}/chip/index.d.ts +0 -0
  736. /package/dist/components/{basics/colo-palette → data-display/color-palette}/ColorPalette.d.ts +0 -0
  737. /package/dist/components/{basics/colo-palette → data-display/color-palette}/index.d.ts +0 -0
  738. /package/dist/components/{basics → data-display}/loading/index.d.ts +0 -0
  739. /package/dist/components/{basics → data-display}/skeleton/Skeleton.d.ts +0 -0
  740. /package/dist/components/{basics → data-display}/skeleton/index.d.ts +0 -0
  741. /package/dist/components/{basics → effects}/animated-content/AnimatedContent.d.ts +0 -0
  742. /package/dist/components/{basics → effects}/animated-content/index.d.ts +0 -0
  743. /package/dist/components/{text-animations/ASCIIText → effects/ascii-text}/ASCIIText.d.ts +0 -0
  744. /package/dist/components/{text-animations/ASCIIText → effects/ascii-text}/index.d.ts +0 -0
  745. /package/dist/components/{basics → effects}/background-gradient-animation/BackgroundGradientAnimation.d.ts +0 -0
  746. /package/dist/components/{basics → effects}/background-gradient-animation/BackgroundGradientAnimationDemo.d.ts +0 -0
  747. /package/dist/components/{basics → effects}/background-gradient-animation/index.d.ts +0 -0
  748. /package/dist/components/{basics → effects}/button-hover-border-gradient/ButtonHoverBorderGradient.d.ts +0 -0
  749. /package/dist/components/{basics → effects}/button-hover-border-gradient/index.d.ts +0 -0
  750. /package/dist/components/{basics → effects}/chroma-grid/ChromaGrid.d.ts +0 -0
  751. /package/dist/components/{basics → effects}/hover-border-gradient/HoverBorderGradient.d.ts +0 -0
  752. /package/dist/components/{basics → effects}/hover-border-gradient/index.d.ts +0 -0
  753. /package/dist/components/{basics/splashCursor → effects/splash-cursor}/SplashCursor.d.ts +0 -0
  754. /package/dist/components/{basics/splashCursor → effects/splash-cursor}/index.d.ts +0 -0
  755. /package/dist/components/{basics → effects}/spotlight-card/SpotlightCard.d.ts +0 -0
  756. /package/dist/components/{basics → effects}/sun-to-moon-button/index.d.ts +0 -0
  757. /package/dist/components/{basics → feedback}/alert/Alert.d.ts +0 -0
  758. /package/dist/components/{basics → feedback}/alert/index.d.ts +0 -0
  759. /package/dist/components/{basics/Button → forms/button}/index.d.ts +0 -0
  760. /package/dist/components/{basics → forms}/calendar/Calendar.d.ts +0 -0
  761. /package/dist/components/{basics → forms}/calendar/index.d.ts +0 -0
  762. /package/dist/components/{basics → forms}/checkbox/Checkbox.d.ts +0 -0
  763. /package/dist/components/{basics → forms}/checkbox/index.d.ts +0 -0
  764. /package/dist/components/{basics → forms}/combobox/index.d.ts +0 -0
  765. /package/dist/components/{basics → forms}/date-picker/DatePicker.d.ts +0 -0
  766. /package/dist/components/{basics → forms}/form/Form.d.ts +0 -0
  767. /package/dist/components/{basics → forms}/form/index.d.ts +0 -0
  768. /package/dist/components/{basics → forms}/input/Input.d.ts +0 -0
  769. /package/dist/components/{basics → forms}/input/types.d.ts +0 -0
  770. /package/dist/components/{basics → forms}/label/Label.d.ts +0 -0
  771. /package/dist/components/{basics → forms}/label/index.d.ts +0 -0
  772. /package/dist/components/{basics/otp-Input → forms/otp-input}/OTPInput.d.ts +0 -0
  773. /package/dist/components/{basics → forms}/password-strength-meter/PasswordCriteria.d.ts +0 -0
  774. /package/dist/components/{basics → forms}/radio/Radio.d.ts +0 -0
  775. /package/dist/components/{basics → forms}/radio/index.d.ts +0 -0
  776. /package/dist/components/{basics → forms}/select/Select.d.ts +0 -0
  777. /package/dist/components/{basics → forms}/select/index.d.ts +0 -0
  778. /package/dist/components/{basics → forms}/switch/Switch.d.ts +0 -0
  779. /package/dist/components/{basics → forms}/switch/index.d.ts +0 -0
  780. /package/dist/components/{basics → forms}/textarea/Textarea.d.ts +0 -0
  781. /package/dist/components/{basics → forms}/textarea/index.d.ts +0 -0
  782. /package/dist/components/{basics → navigation}/carousel/Carousel.d.ts +0 -0
  783. /package/dist/components/{basics → navigation}/carousel/index.d.ts +0 -0
  784. /package/dist/components/{basics → navigation}/stepper/Stepper.d.ts +0 -0
  785. /package/dist/components/{basics → navigation}/stepper/index.d.ts +0 -0
  786. /package/dist/components/{basics → overlays}/dialog/Dialog.d.ts +0 -0
  787. /package/dist/components/{basics → overlays}/drawer/Drawer.d.ts +0 -0
  788. /package/dist/components/{basics → overlays}/hover-card/HoverCard.d.ts +0 -0
  789. /package/dist/components/{basics → overlays}/toast/Toast.d.ts +0 -0
  790. /package/dist/components/{basics → overlays}/toast/index.d.ts +0 -0
  791. /package/dist/components/{basics → overlays}/tooltip/Tooltip.d.ts +0 -0
  792. /package/dist/components/{basics → overlays}/tooltip/index.d.ts +0 -0
  793. /package/dist/components/text-animations/{BlurText → blur-text}/index.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table-9HELVsYR.cjs","names":[],"sources":["../../src/components/data-display/data-table/DataTable.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n useReactTable,\n getCoreRowModel,\n getPaginationRowModel,\n getFilteredRowModel,\n flexRender,\n type CellContext,\n type ColumnDef,\n type PaginationState,\n type Table,\n} from \"@tanstack/react-table\";\nimport { Chip } from \"../chip\";\nimport { Button } from \"../../forms/button\";\nimport { Combobox } from \"../../forms/combobox\";\nimport { MultiSelectCombobox } from \"../../forms/multi-select-combobox\";\nimport { Checkbox } from \"../../forms/checkbox\";\nimport { Input } from \"../../forms/input\";\nimport { Select } from \"../../forms/select\";\nimport { Switch } from \"../../forms/switch\";\nimport {\n DatePicker,\n type DatePickerValue,\n type DateRangeValue,\n} from \"../../forms/date-picker\";\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronsLeftIcon,\n ChevronsRightIcon,\n EllipsisVerticalIcon,\n FilterIcon,\n FilterProfileIcon,\n FilterXIcon,\n LoaderIcon,\n RefreshIcon,\n SearchIcon,\n SelectionIcon,\n SettingsIcon,\n TrashIcon,\n} from \"../../icons\";\n\n// Filter option type - can be static or async\nexport interface FilterOption {\n id: string;\n label: string;\n type?:\n | \"text\"\n | \"select\"\n | \"combobox\"\n | \"checkbox\"\n | \"switch\"\n | \"date\"\n | \"date-range\"\n | \"number-range\";\n placeholder?: string;\n options?: string[]; // Static options\n // Async options support\n queryKey?: string | string[]; // React Query key for caching\n fetchOptions?: () => Promise<string[]>; // Async function to fetch options\n isLoading?: boolean; // Loading state (managed externally)\n multiple?: boolean; // Enable multi-select\n /* Crystal UI Unification */\n /*\n ### Automated Browser Testing\n The filters were verified using the browser subagent, confirming that each filter type correctly updates the table data in real-time and adheres to our new unified \"Crystal\" aesthetic.\n\n ````carousel\n ![Unified Crystal Filters](file:///Users/dani.dev/.gemini/antigravity/brain/cddc57db-96d9-409e-add9-b0c887fa88f1/data_table_crystal_filters_verification_1771807771898.png)\n <!-- slide -->\n ![Crystal Combobox Dropdown](file:///Users/dani.dev/.gemini/antigravity/brain/cddc57db-96d9-409e-add9-b0c887fa88f1/crystal_look_verification_final_1771807597075.png)\n <!-- slide -->\n ![Global Unification Verification Recording](file:///Users/dani.dev/.gemini/antigravity/brain/cddc57db-96d9-409e-add9-b0c887fa88f1/verify_global_crystal_style_1771807684506.webp)\n ````\n\n ### Key Successes:\n - **Unified Aesthetic**: All components now share a consistent `backdrop-blur-xl` and semi-transparent background.\n - **Improved Visual Hierarchy**: The crystal effect makes the components feel integrated with the page while still being clearly interactive.\n - **Robust Logic**: Maintained all advanced filtering logic (date ranges, numeric ranges, partial matches) while upgrading the visual layer.\n */\n}\n\n// Filter value can be single string, array of strings, or range objects\nexport type FilterValue =\n | string\n | string[]\n | boolean\n | DatePickerValue\n | { min?: number; max?: number };\nexport type FilterValues = Record<string, FilterValue>;\n\nexport interface DataTableBulkActionContext<T> {\n selectedRows: T[];\n selectedCount: number;\n clearSelection: () => void;\n disableBulkSelection: () => void;\n}\n\nexport interface DataTableCellRenderContext<T> {\n value: unknown;\n row: T;\n rowIndex: number;\n columnId: string;\n}\n\nexport interface DataTableColumn<T> {\n id: string;\n label: string;\n visible?: boolean;\n filterable?: boolean;\n multiFilter?: boolean;\n priority?: number;\n renderCell?: (context: DataTableCellRenderContext<T>) => React.ReactNode;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface DataTableProps<T = Record<string, any>> {\n columns: DataTableColumn<T>[];\n data: T[];\n isLoading?: boolean; // Table data loading state\n onColumnToggle?: (columnId: string) => void;\n /** Number of items per page */\n pageSize?: number;\n /** Maximum height for the scrollable table area */\n maxHeight?: string;\n onSearch?: (query: string) => void;\n onExport?: () => void;\n onRowAction?: (action: string, row: T) => void;\n onBulkDelete?: (rows: T[]) => void;\n renderBulkActions?: (\n context: DataTableBulkActionContext<T>,\n ) => React.ReactNode;\n renderBulkActionCard?: (\n context: DataTableBulkActionContext<T>,\n ) => React.ReactNode;\n onFilterChange?: (filters: FilterValues) => void;\n // Filter options - can include async filters\n filterOptions?: FilterOption[];\n // Called when filters are applied (for server-side filtering)\n onFiltersApply?: (filters: FilterValues) => void;\n // Enable server-side filtering mode\n serverSideFiltering?: boolean;\n searchPlaceholder?: string;\n children?: React.ReactNode;\n /** Total row count for server-side pagination */\n totalCount?: number;\n /** Callback when pagination changes (for server-side pagination) */\n onPaginationChange?: (pageIndex: number, pageSize: number) => void;\n}\n\nfunction renderDefaultCellValue(value: unknown): React.ReactNode {\n if (value === undefined || value === null || value === \"\") {\n return \"-\";\n }\n\n if (typeof value === \"boolean\") {\n return value ? \"Yes\" : \"No\";\n }\n\n if (Array.isArray(value)) {\n return value.length > 0 ? value.join(\", \") : \"-\";\n }\n\n return value as React.ReactNode;\n}\n\ninterface FilterDropdownProps {\n isOpen: boolean;\n onClose: () => void;\n children: React.ReactNode;\n}\n\nexport const FilterDropdown: React.FC<FilterDropdownProps> = ({\n isOpen,\n onClose,\n children,\n}) => {\n if (!isOpen) return null;\n\n return (\n <>\n <div\n className=\"fixed inset-0 z-40\"\n onClick={onClose}\n aria-hidden=\"true\"\n />\n <div className=\"absolute top-full right-0 z-50 mt-2 min-w-64 overflow-hidden rounded-[4px] border border-white/45 bg-neutral-50 shadow-[0_18px_40px_rgba(15,23,42,0.18)] ring-1 ring-inset ring-white/35 backdrop-blur-2xl dark:border-white/10 dark:bg-neutral-800/50 dark:shadow-[0_22px_48px_rgba(0,0,0,0.42)] dark:ring-white/6\">\n {children}\n </div>\n </>\n );\n};\n\ninterface FilterButtonProps {\n icon: React.ReactNode;\n label: string;\n onClick: () => void;\n hasActive?: boolean;\n}\n\nexport const FilterButton: React.FC<FilterButtonProps> = ({\n icon,\n label,\n onClick,\n hasActive,\n}) => (\n <Button\n onClick={onClick}\n title={label}\n aria-label={label}\n className={`h-10 min-w-10 px-0 py-0 shadow-none ${\n hasActive\n ? \"border-accent/20 bg-accent-subtle text-accent hover:bg-accent-subtle hover:opacity-100\"\n : \"border-transparent bg-transparent text-neutral-600 hover:bg-neutral-100 hover:text-neutral-700 hover:opacity-100 dark:text-neutral-400 dark:hover:bg-neutral-700 dark:hover:text-neutral-200\"\n }`}\n >\n {icon}\n </Button>\n);\n\ninterface ColumnToggleProps {\n columns: {\n id: string;\n label: string;\n visible?: boolean;\n }[];\n onToggle: (columnId: string) => void;\n onShowAll?: () => void;\n onHideAll?: () => void;\n}\n\nexport const ColumnToggle: React.FC<ColumnToggleProps> = ({\n columns,\n onToggle,\n onShowAll,\n onHideAll,\n}) => (\n <div className=\"p-4 space-y-3\">\n <div className=\"flex items-center justify-between mb-3\">\n <span className=\"text-sm font-semibold text-neutral-900 dark:text-white\">\n COLUMNS\n </span>\n </div>\n\n <div className=\"space-y-2 max-h-64 overflow-y-auto\">\n {columns.map((col) => (\n <div\n key={col.id}\n className=\"rounded-[8px] px-2 py-1 hover:bg-neutral-100 dark:hover:bg-neutral-700\"\n >\n <Checkbox\n checked={col.visible !== false}\n onChange={() => onToggle(col.id)}\n label={col.label}\n />\n </div>\n ))}\n </div>\n\n {(onShowAll || onHideAll) && (\n <div className=\"flex gap-2 border-t border-neutral-200 pt-2 dark:border-neutral-700\">\n {onShowAll && (\n <Button\n onClick={onShowAll}\n size=\"small\"\n className=\"flex-1 border-none bg-transparent px-1 py-1 text-xs font-semibold text-accent shadow-none hover:bg-transparent hover:text-accent-hover hover:opacity-100\"\n >\n SHOW ALL\n </Button>\n )}\n {onHideAll && (\n <Button\n onClick={onHideAll}\n size=\"small\"\n className=\"flex-1 border-none bg-transparent px-1 py-1 text-xs font-semibold text-neutral-500 shadow-none hover:bg-transparent hover:text-neutral-600 hover:opacity-100 dark:text-neutral-300 dark:hover:text-white\"\n >\n HIDE ALL\n </Button>\n )}\n </div>\n )}\n </div>\n);\n\ninterface FilterProfileProps {\n isOpen: boolean;\n onClose: () => void;\n onSaveProfile: (name: string) => void;\n}\n\nexport const FilterProfile: React.FC<FilterProfileProps> = ({\n isOpen,\n onClose,\n onSaveProfile,\n}) => {\n const [profileName, setProfileName] = React.useState(\"\");\n\n const handleSave = () => {\n if (profileName.trim()) {\n onSaveProfile(profileName);\n setProfileName(\"\");\n onClose();\n }\n };\n\n if (!isOpen) return null;\n\n return (\n <div\n className=\"fixed inset-0 bg-black/50 flex items-center justify-center z-50\"\n onClick={onClose}\n >\n <div\n className=\"bg-white dark:bg-neutral-800 rounded-xl p-6 max-w-md w-full mx-4\"\n onClick={(e) => e.stopPropagation()}\n >\n <h2 className=\"text-2xl font-bold text-neutral-900 dark:text-white mb-4\">\n Add new profile\n </h2>\n\n <label className=\"mb-2 block text-sm font-medium text-accent\">\n Enter filter profile name:\n </label>\n <Input\n type=\"text\"\n value={profileName}\n onChange={(e) => setProfileName(e.target.value)}\n placeholder=\"Enter value\"\n className=\"\"\n onKeyDown={(e) => e.key === \"Enter\" && handleSave()}\n />\n\n <div className=\"flex justify-end gap-3 mt-6\">\n <Button onClick={onClose} className=\"min-w-28\" size=\"medium\">\n Cancel\n </Button>\n <Button\n onClick={handleSave}\n disabled={!profileName.trim()}\n className=\"min-w-28\"\n size=\"medium\"\n primary\n >\n Save\n </Button>\n </div>\n </div>\n </div>\n );\n};\n\ntype AsyncFilterOptionsState = Record<\n string,\n { options: string[]; isLoading: boolean }\n>;\n\ntype NumberRangeFilterValue = { min?: number; max?: number };\n\nconst ICON_BUTTON_CLASS_NAME =\n \"inline-flex items-center justify-center rounded-lg text-neutral-400 transition-colors hover:bg-neutral-100 hover:text-neutral-600 dark:hover:bg-neutral-700\";\nconst DISABLED_ICON_BUTTON_CLASS_NAME = `${ICON_BUTTON_CLASS_NAME} disabled:opacity-40 disabled:cursor-not-allowed`;\nconst TABLE_CONTROL_ICON_CLASS_NAME = \"h-[18px] w-[18px] shrink-0\";\nconst TABLE_COMPLEX_ICON_CLASS_NAME = \"h-5 w-5 shrink-0\";\n\nconst isFilterValueEmpty = (value?: FilterValue | null): boolean => {\n if (value === undefined || value === null) {\n return true;\n }\n\n if (typeof value === \"string\") {\n return value === \"\";\n }\n\n if (Array.isArray(value)) {\n return value.length === 0;\n }\n\n if (value instanceof Date || typeof value === \"boolean\") {\n return false;\n }\n\n if (\"start\" in value || \"end\" in value) {\n const rangeValue = value as DateRangeValue;\n return !rangeValue.start && !rangeValue.end;\n }\n\n return value.min === undefined && value.max === undefined;\n};\n\nconst isFilterActive = (value?: FilterValue): boolean =>\n !isFilterValueEmpty(value);\n\nconst toSelectOptions = (options?: string[]) =>\n (options || []).map((option) => ({\n value: option,\n label: option,\n }));\n\nconst getStringFilterValue = (value?: FilterValue): string =>\n typeof value === \"string\" ? value : \"\";\n\nconst getMultiStringFilterValue = (value?: FilterValue): string[] => {\n if (Array.isArray(value)) {\n return value;\n }\n\n return typeof value === \"string\" && value ? [value] : [];\n};\n\nconst getNumberRangeFilterValue = (\n value?: FilterValue,\n): NumberRangeFilterValue => {\n if (\n !value ||\n typeof value !== \"object\" ||\n \"start\" in value ||\n \"end\" in value\n ) {\n return {};\n }\n\n return value as NumberRangeFilterValue;\n};\n\nconst getDateFilterValue = (value?: FilterValue): DatePickerValue =>\n value instanceof Date || value === null ? value : null;\n\nconst getDateRangeFilterValue = (value?: FilterValue): DateRangeValue => {\n if (\n value &&\n typeof value === \"object\" &&\n \"start\" in value &&\n \"end\" in value\n ) {\n return value as DateRangeValue;\n }\n\n return { start: null, end: null };\n};\n\nfunction buildGeneratedFilterOptions<T>(\n columns: DataTableProps<T>[\"columns\"],\n data: T[],\n): FilterOption[] {\n return columns\n .filter((column) => column.filterable !== false)\n .map((column) => {\n const uniqueValues = new Set<string>();\n\n data.forEach((row) => {\n const value = (row as Record<string, unknown>)[column.id];\n if (value !== undefined && value !== null && value !== \"\") {\n uniqueValues.add(String(value));\n }\n });\n\n return {\n id: column.id,\n label: column.label,\n options: Array.from(uniqueValues).sort(),\n multiple: column.multiFilter,\n };\n });\n}\n\nfunction resolveFilterOptions<T>(\n columns: DataTableProps<T>[\"columns\"],\n data: T[],\n externalFilterOptions: FilterOption[] | undefined,\n asyncFilterOptions: AsyncFilterOptionsState,\n): FilterOption[] {\n if (!externalFilterOptions?.length) {\n return buildGeneratedFilterOptions(columns, data);\n }\n\n return externalFilterOptions.map((filter) => {\n const asyncState = asyncFilterOptions[filter.id];\n if (!asyncState) {\n return filter;\n }\n\n return {\n ...filter,\n options: asyncState.options,\n isLoading: asyncState.isLoading,\n };\n });\n}\n\nfunction matchesSearchQuery<T>(row: T, searchQuery: string): boolean {\n if (!searchQuery.trim()) {\n return true;\n }\n\n const query = searchQuery.toLowerCase();\n return Object.values(row as Record<string, unknown>).some((value) => {\n if (value === undefined || value === null) {\n return false;\n }\n\n return String(value).toLowerCase().includes(query);\n });\n}\n\nfunction matchesFilterValue(\n rowValue: unknown,\n filterValue: FilterValue,\n filterOption?: FilterOption,\n): boolean {\n if (isFilterValueEmpty(filterValue)) {\n return true;\n }\n\n switch (filterOption?.type) {\n case \"text\":\n return String(rowValue)\n .toLowerCase()\n .includes(String(filterValue).toLowerCase());\n case \"number-range\": {\n const rangeValue = getNumberRangeFilterValue(filterValue);\n const numericValue = Number(rowValue);\n if (rangeValue.min !== undefined && numericValue < rangeValue.min) {\n return false;\n }\n if (rangeValue.max !== undefined && numericValue > rangeValue.max) {\n return false;\n }\n return true;\n }\n case \"date-range\": {\n const rangeValue = getDateRangeFilterValue(filterValue);\n if (!rangeValue.start) {\n return true;\n }\n const timeValue = new Date(rowValue as string | number | Date).getTime();\n if (timeValue < rangeValue.start.getTime()) {\n return false;\n }\n return !rangeValue.end || timeValue <= rangeValue.end.getTime();\n }\n case \"date\": {\n const selectedDate = filterValue as Date;\n const rowDate = new Date(rowValue as string | number | Date);\n return selectedDate.toDateString() === rowDate.toDateString();\n }\n case \"switch\":\n case \"checkbox\":\n return Boolean(rowValue) === Boolean(filterValue);\n default: {\n const rowValueString = String(rowValue).toLowerCase();\n if (Array.isArray(filterValue)) {\n return filterValue.some(\n (value) => String(value).toLowerCase() === rowValueString,\n );\n }\n\n return typeof filterValue !== \"string\"\n ? true\n : rowValueString === filterValue.toLowerCase();\n }\n }\n}\n\nfunction filterClientData<T>(\n data: T[],\n activeFilters: FilterValues,\n searchQuery: string,\n serverSideFiltering: boolean,\n filterOptions: FilterOption[],\n): T[] {\n if (serverSideFiltering) {\n return data;\n }\n\n const filterOptionsMap = new Map(\n filterOptions.map((filterOption) => [filterOption.id, filterOption]),\n );\n\n return data.filter((row) => {\n if (!matchesSearchQuery(row, searchQuery)) {\n return false;\n }\n\n return Object.entries(activeFilters).every(([filterId, filterValue]) => {\n const rowValue = (row as Record<string, unknown>)[filterId];\n return matchesFilterValue(\n rowValue,\n filterValue,\n filterOptionsMap.get(filterId),\n );\n });\n });\n}\n\nfunction useAsyncFilterOptions(\n externalFilterOptions: FilterOption[] | undefined,\n filterSelectorOpen: boolean,\n): AsyncFilterOptionsState {\n const [asyncFilterOptions, setAsyncFilterOptions] =\n React.useState<AsyncFilterOptionsState>({});\n const asyncFilterOptionsRef = React.useRef(asyncFilterOptions);\n\n React.useEffect(() => {\n asyncFilterOptionsRef.current = asyncFilterOptions;\n }, [asyncFilterOptions]);\n\n const fetchAsyncOptions = React.useCallback(async (filter: FilterOption) => {\n if (\n !filter.fetchOptions ||\n asyncFilterOptionsRef.current[filter.id]?.options.length\n ) {\n return;\n }\n\n setAsyncFilterOptions((prev) => ({\n ...prev,\n [filter.id]: { options: [], isLoading: true },\n }));\n\n try {\n const options = await filter.fetchOptions();\n setAsyncFilterOptions((prev) => ({\n ...prev,\n [filter.id]: { options, isLoading: false },\n }));\n } catch {\n setAsyncFilterOptions((prev) => ({\n ...prev,\n [filter.id]: { options: [], isLoading: false },\n }));\n }\n }, []);\n\n React.useEffect(() => {\n if (!filterSelectorOpen || !externalFilterOptions) {\n return;\n }\n\n externalFilterOptions.forEach((filter) => {\n if (filter.fetchOptions) {\n void fetchAsyncOptions(filter);\n }\n });\n }, [externalFilterOptions, fetchAsyncOptions, filterSelectorOpen]);\n\n return asyncFilterOptions;\n}\n\nfunction LoadingFilterField({ label }: { label: string }) {\n return (\n <div className=\"h-10 flex items-center justify-center bg-neutral-100 dark:bg-neutral-800 rounded-md px-3\">\n <LoaderIcon\n className=\"w-4 h-4 animate-spin text-neutral-400\"\n aria-hidden=\"true\"\n />\n <span className=\"ml-2 text-sm text-neutral-500\">{label}</span>\n </div>\n );\n}\n\ninterface NumberRangeFilterProps {\n value: NumberRangeFilterValue;\n onChange: (value: NumberRangeFilterValue) => void;\n}\n\nfunction NumberRangeFilter({ value, onChange }: NumberRangeFilterProps) {\n return (\n <div className=\"flex items-center gap-1\">\n <Input\n type=\"number\"\n placeholder=\"Min\"\n value={value.min ?? \"\"}\n onChange={(event) => {\n const min =\n event.target.value === \"\" ? undefined : Number(event.target.value);\n onChange({ ...value, min });\n }}\n className=\"h-9 px-2 text-xs\"\n />\n <span className=\"text-neutral-400\">-</span>\n <Input\n type=\"number\"\n placeholder=\"Max\"\n value={value.max ?? \"\"}\n onChange={(event) => {\n const max =\n event.target.value === \"\" ? undefined : Number(event.target.value);\n onChange({ ...value, max });\n }}\n className=\"h-9 px-2 text-xs\"\n />\n </div>\n );\n}\n\ninterface FilterFieldControlProps {\n filter: FilterOption;\n value?: FilterValue;\n isActive: boolean;\n onChange: (value: FilterValue) => void;\n}\n\nfunction FilterFieldControl({\n filter,\n value,\n isActive,\n onChange,\n}: FilterFieldControlProps) {\n if (filter.isLoading) {\n return <LoadingFilterField label={filter.label} />;\n }\n\n const activeClassName = isActive ? \"border-accent\" : \"\";\n\n switch (filter.type) {\n case \"text\":\n return (\n <Input\n value={getStringFilterValue(value)}\n onChange={(event) => onChange(event.target.value)}\n placeholder={filter.placeholder || filter.label}\n className={activeClassName}\n />\n );\n case \"select\":\n return (\n <Select\n value={getStringFilterValue(value)}\n onChange={(event) => onChange(event.target.value)}\n placeholder={filter.placeholder || filter.label}\n options={toSelectOptions(filter.options)}\n className={activeClassName}\n />\n );\n case \"switch\":\n case \"checkbox\":\n return (\n <Switch\n checked={Boolean(value)}\n onChange={(event) => onChange(event.target.checked)}\n label={filter.label}\n />\n );\n case \"date\":\n return (\n <DatePicker\n mode=\"single\"\n value={getDateFilterValue(value)}\n onChange={(nextValue) => onChange(nextValue)}\n placeholder={filter.placeholder || filter.label}\n />\n );\n case \"date-range\":\n return (\n <DatePicker\n mode=\"range\"\n value={getDateRangeFilterValue(value)}\n onChange={(nextValue) => onChange(nextValue)}\n placeholder={filter.placeholder || filter.label}\n />\n );\n case \"number-range\":\n return (\n <NumberRangeFilter\n value={getNumberRangeFilterValue(value)}\n onChange={onChange}\n />\n );\n default:\n return filter.multiple ? (\n <MultiSelectCombobox\n value={getMultiStringFilterValue(value)}\n onChange={(values) => onChange(values)}\n placeholder={filter.placeholder || filter.label}\n options={toSelectOptions(filter.options)}\n className={isActive ? \"border-accent border-2\" : \"\"}\n />\n ) : (\n <Combobox\n value={getStringFilterValue(value)}\n onChange={(nextValue) => onChange(nextValue)}\n placeholder={filter.placeholder || filter.label}\n options={toSelectOptions(filter.options)}\n className={isActive ? \"border-accent border-2\" : \"\"}\n />\n );\n }\n}\n\ninterface ToolbarIconButtonProps {\n title: string;\n onClick?: () => void;\n disabled?: boolean;\n children: React.ReactNode;\n}\n\nfunction ToolbarIconButton({\n title,\n onClick,\n disabled,\n children,\n}: ToolbarIconButtonProps) {\n return (\n <Button\n onClick={onClick}\n disabled={disabled}\n title={title}\n aria-label={title}\n className={\n disabled\n ? `${DISABLED_ICON_BUTTON_CLASS_NAME} h-10 w-10 shrink-0 border-transparent bg-transparent px-0 py-0 text-base shadow-none hover:bg-transparent hover:opacity-100`\n : `${ICON_BUTTON_CLASS_NAME} h-10 w-10 shrink-0 border-transparent bg-transparent px-0 py-0 text-base shadow-none hover:opacity-100`\n }\n >\n {children}\n </Button>\n );\n}\n\ninterface SearchFieldProps {\n value: string;\n onChange: (value: string) => void;\n placeholder: string;\n}\n\nfunction SearchField({ value, onChange, placeholder }: SearchFieldProps) {\n return (\n <div className=\"relative w-[300px]\">\n <SearchIcon\n className={`pointer-events-none absolute left-4 top-1/2 z-10 -translate-y-1/2 text-neutral-400 ${TABLE_CONTROL_ICON_CLASS_NAME}`}\n aria-hidden=\"true\"\n />\n <Input\n type=\"text\"\n value={value}\n onChange={(event) => onChange(event.target.value)}\n placeholder={placeholder}\n style={{ paddingLeft: \"2.75rem\" }}\n />\n </div>\n );\n}\n\ninterface RowActionsCellProps<T> {\n rowIndex: number;\n row: T;\n isOpen: boolean;\n onToggle: (rowIndex: number) => void;\n onClose: () => void;\n onRowAction?: (action: string, row: T) => void;\n}\n\nfunction RowActionsCell<T>({\n rowIndex,\n row,\n isOpen,\n onToggle,\n onClose,\n onRowAction,\n}: RowActionsCellProps<T>) {\n return (\n <td className=\"px-2 py-3 text-right relative\">\n <Button\n onClick={() => onToggle(rowIndex)}\n aria-label=\"Open row actions\"\n className=\"h-8 w-8 border-none bg-transparent px-0 py-0 text-neutral-500 shadow-none hover:bg-neutral-100 hover:text-neutral-700 hover:opacity-100 dark:hover:bg-neutral-600 dark:hover:text-neutral-200\"\n >\n <EllipsisVerticalIcon\n className={TABLE_CONTROL_ICON_CLASS_NAME}\n aria-hidden=\"true\"\n />\n </Button>\n {isOpen ? (\n <>\n <div className=\"fixed inset-0 z-40\" onClick={onClose} />\n <div className=\"absolute right-0 top-full mt-1 bg-white dark:bg-neutral-800 rounded-lg shadow-lg border border-neutral-200 dark:border-neutral-700 z-50 min-w-32 py-1\">\n <Button\n onClick={() => {\n onRowAction?.(\"edit\", row);\n onClose();\n }}\n className=\"w-full justify-start rounded-none border-none bg-transparent px-4 py-2 text-sm font-normal text-neutral-700 shadow-none hover:bg-neutral-50 hover:text-neutral-900 hover:opacity-100 dark:text-neutral-200 dark:hover:bg-neutral-700 dark:hover:text-white\"\n >\n Edit\n </Button>\n <Button\n onClick={() => {\n onRowAction?.(\"delete\", row);\n onClose();\n }}\n className=\"w-full justify-start rounded-none border-none bg-transparent px-4 py-2 text-sm font-normal text-error shadow-none hover:bg-neutral-50 hover:text-error hover:opacity-100 dark:hover:bg-neutral-700\"\n >\n Delete\n </Button>\n </div>\n </>\n ) : null}\n </td>\n );\n}\n\ninterface DataTablePaginationProps<T> {\n table: Table<T>;\n totalCount?: number;\n filteredCount: number;\n}\n\nfunction DataTablePagination<T>({\n table,\n totalCount,\n filteredCount,\n}: DataTablePaginationProps<T>) {\n const { pageIndex, pageSize } = table.getState().pagination;\n const itemCount = totalCount ?? filteredCount;\n const pageStart = itemCount === 0 ? 0 : pageIndex * pageSize + 1;\n const pageEnd = Math.min((pageIndex + 1) * pageSize, itemCount);\n\n return (\n <div className=\"flex items-center justify-between px-4 py-3 border-t border-neutral-200 dark:border-neutral-700 bg-neutral-50 dark:bg-neutral-800/50\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm text-neutral-600 dark:text-neutral-400\">\n Showing {pageStart} to {pageEnd} of {itemCount} items\n </span>\n </div>\n\n <div className=\"flex flex-wrap items-center justify-end gap-2\">\n <span className=\"text-sm text-neutral-600 dark:text-neutral-400\">\n Rows\n </span>\n <Select\n value={String(pageSize)}\n onChange={(event) => table.setPageSize(Number(event.target.value))}\n aria-label=\"Rows per page\"\n containerClassName=\"w-24 min-w-24 shrink-0\"\n triggerClassName=\"px-3 font-medium text-neutral-900 dark:text-white\"\n options={[10, 20, 30, 50, 100].map((size) => ({\n value: String(size),\n label: String(size),\n }))}\n />\n\n <ToolbarIconButton\n title=\"First page\"\n onClick={() => table.setPageIndex(0)}\n disabled={!table.getCanPreviousPage()}\n >\n <ChevronsLeftIcon\n className={TABLE_CONTROL_ICON_CLASS_NAME}\n aria-hidden=\"true\"\n />\n </ToolbarIconButton>\n\n <ToolbarIconButton\n title=\"Previous page\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n <ChevronLeftIcon\n className={TABLE_CONTROL_ICON_CLASS_NAME}\n aria-hidden=\"true\"\n />\n </ToolbarIconButton>\n\n <span className=\"inline-flex h-10 shrink-0 items-center rounded-lg px-3 text-sm font-medium text-neutral-700 dark:text-neutral-300\">\n Page {pageIndex + 1} of {table.getPageCount()}\n </span>\n\n <ToolbarIconButton\n title=\"Next page\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n <ChevronRightIcon\n className={TABLE_CONTROL_ICON_CLASS_NAME}\n aria-hidden=\"true\"\n />\n </ToolbarIconButton>\n\n <ToolbarIconButton\n title=\"Last page\"\n onClick={() => table.setPageIndex(table.getPageCount() - 1)}\n disabled={!table.getCanNextPage()}\n >\n <ChevronsRightIcon\n className={TABLE_CONTROL_ICON_CLASS_NAME}\n aria-hidden=\"true\"\n />\n </ToolbarIconButton>\n </div>\n </div>\n );\n}\n\ninterface FilterSelectorMenuProps {\n filterOptions: FilterOption[];\n visibleFilters: string[];\n onToggleFilter: (filterId: string, isVisible: boolean) => void;\n onShowAll: () => void;\n onHideAll: () => void;\n}\n\nfunction FilterSelectorMenu({\n filterOptions,\n visibleFilters,\n onToggleFilter,\n onShowAll,\n onHideAll,\n}: FilterSelectorMenuProps) {\n return (\n <div className=\"p-2 min-w-48 space-y-1\">\n <div className=\"px-2 pb-2 text-xs font-semibold text-neutral-500 dark:text-neutral-300\">\n Show filters\n </div>\n {filterOptions.map((filter) => (\n <div key={filter.id} className=\"min-w-36\">\n <Checkbox\n checked={visibleFilters.includes(filter.id)}\n onChange={(event) =>\n onToggleFilter(filter.id, event.target.checked)\n }\n label={filter.label}\n />\n </div>\n ))}\n <div className=\"flex gap-2 border-t border-neutral-200 pt-2 dark:border-neutral-700\">\n <Button\n onClick={onShowAll}\n size=\"small\"\n className=\"flex-1 border-none bg-transparent px-1 py-1 text-xs font-semibold text-accent shadow-none hover:bg-transparent hover:text-accent-hover hover:opacity-100\"\n >\n SHOW ALL\n </Button>\n <Button\n onClick={onHideAll}\n size=\"small\"\n className=\"flex-1 border-none bg-transparent px-1 py-1 text-xs font-semibold text-neutral-500 shadow-none hover:bg-transparent hover:text-neutral-600 hover:opacity-100 dark:text-neutral-300 dark:hover:text-white\"\n >\n HIDE ALL\n </Button>\n </div>\n </div>\n );\n}\n\ninterface DataTableToolbarProps<T> {\n searchQuery: string;\n onSearchChange: (value: string) => void;\n searchPlaceholder: string;\n bulkDeleteEnabled: boolean;\n bulkSelectionActive: boolean;\n selectedCount: number;\n bulkActionsContent?: React.ReactNode;\n bulkActionCard?: React.ReactNode;\n onToggleBulkSelection: () => void;\n onBulkDeleteSelected: () => void;\n onExport?: () => void;\n columnMenuOpen: boolean;\n onToggleColumnMenu: () => void;\n onCloseColumnMenu: () => void;\n columns: DataTableProps<T>[\"columns\"];\n onColumnToggle?: (columnId: string) => void;\n onShowAllColumns: () => void;\n onHideAllColumns: () => void;\n}\n\nfunction DataTableToolbar<T>({\n searchQuery,\n onSearchChange,\n searchPlaceholder,\n bulkDeleteEnabled,\n bulkSelectionActive,\n selectedCount,\n bulkActionsContent,\n bulkActionCard,\n onToggleBulkSelection,\n onBulkDeleteSelected,\n onExport,\n columnMenuOpen,\n onToggleColumnMenu,\n onCloseColumnMenu,\n columns,\n onColumnToggle,\n onShowAllColumns,\n onHideAllColumns,\n}: DataTableToolbarProps<T>) {\n const hasSelectedRows = selectedCount > 0;\n\n return (\n <div className=\"border-b border-neutral-200 px-4 py-3 dark:border-neutral-700\">\n <div className=\"flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between\">\n <div className=\"flex min-w-0 flex-1 flex-wrap items-center gap-2\">\n {bulkDeleteEnabled ? (\n <FilterButton\n icon={\n <SelectionIcon\n className={TABLE_COMPLEX_ICON_CLASS_NAME}\n aria-hidden=\"true\"\n />\n }\n label={\n bulkSelectionActive\n ? \"Disable bulk selection\"\n : \"Enable bulk selection\"\n }\n onClick={onToggleBulkSelection}\n hasActive={bulkSelectionActive}\n />\n ) : null}\n\n <SearchField\n value={searchQuery}\n onChange={onSearchChange}\n placeholder={searchPlaceholder}\n />\n </div>\n\n <div className=\"flex items-center gap-1 self-end lg:self-auto\">\n <ToolbarIconButton onClick={onExport} title=\"Refresh\">\n <RefreshIcon\n className={TABLE_CONTROL_ICON_CLASS_NAME}\n aria-hidden=\"true\"\n />\n </ToolbarIconButton>\n\n <div className=\"relative\">\n <ToolbarIconButton\n onClick={onToggleColumnMenu}\n title=\"Column settings\"\n >\n <SettingsIcon\n className={TABLE_COMPLEX_ICON_CLASS_NAME}\n aria-hidden=\"true\"\n />\n </ToolbarIconButton>\n\n <FilterDropdown isOpen={columnMenuOpen} onClose={onCloseColumnMenu}>\n <ColumnToggle\n columns={columns}\n onToggle={(columnId) => {\n onColumnToggle?.(columnId);\n }}\n onShowAll={onShowAllColumns}\n onHideAll={onHideAllColumns}\n />\n </FilterDropdown>\n </div>\n </div>\n </div>\n\n {bulkSelectionActive && hasSelectedRows\n ? (bulkActionCard ?? (\n <div className=\"mt-2 flex flex-col gap-2 rounded-[4px] border border-neutral-200 bg-neutral-50 px-3 py-2 shadow-sm dark:border-neutral-700 dark:bg-neutral-800/50 dark:shadow-black/25 lg:flex-row lg:items-center lg:justify-between\">\n <div className=\"flex min-w-0 flex-wrap items-center gap-2\">\n <Chip\n variant=\"soft\"\n color=\"primary\"\n size=\"sm\"\n className=\"uppercase tracking-wide\"\n >\n Bulk actions\n </Chip>\n <p className=\"text-sm font-medium text-neutral-900 dark:text-white\">\n {selectedCount} {selectedCount === 1 ? \"row\" : \"rows\"}{\" \"}\n selected\n </p>\n </div>\n\n <div className=\"flex flex-wrap items-center gap-2\">\n {bulkActionsContent}\n {bulkDeleteEnabled ? (\n <Button\n onClick={onBulkDeleteSelected}\n primary\n size=\"small\"\n className=\"border-accent/20 px-3 py-2 text-sm text-on-accent shadow-lg shadow-accent/20 hover:bg-accent-hover hover:opacity-100\"\n >\n <TrashIcon className=\"h-4 w-4\" aria-hidden=\"true\" />\n Delete selected\n </Button>\n ) : null}\n </div>\n </div>\n ))\n : null}\n </div>\n );\n}\n\ninterface TableStateRowProps {\n colSpan: number;\n children: React.ReactNode;\n}\n\nfunction TableStateRow({ colSpan, children }: TableStateRowProps) {\n return (\n <tr>\n <td colSpan={colSpan} className=\"px-4 py-12 text-center text-neutral-500\">\n {children}\n </td>\n </tr>\n );\n}\n\nfunction LoadingTableState({ colSpan }: { colSpan: number }) {\n return (\n <TableStateRow colSpan={colSpan}>\n <div className=\"flex flex-col items-center gap-3\">\n <LoaderIcon\n className=\"w-8 h-8 animate-spin text-accent\"\n aria-hidden=\"true\"\n />\n <span>Loading data...</span>\n </div>\n </TableStateRow>\n );\n}\n\nfunction EmptyTableState({ colSpan }: { colSpan: number }) {\n return (\n <TableStateRow colSpan={colSpan}>\n <div className=\"flex flex-col items-center gap-2\">\n <span className=\"text-4xl\">🔍</span>\n <p className=\"font-medium\">No results found</p>\n <p className=\"text-sm\">Try adjusting the filter</p>\n </div>\n </TableStateRow>\n );\n}\n\ninterface DataTableRowsProps<T> {\n table: Table<T>;\n isLoading: boolean;\n bulkSelectionActive: boolean;\n selectedRowIds: Record<string, boolean>;\n onToggleRowSelection: (rowId: string, checked: boolean) => void;\n rowMenuOpen: number | null;\n onToggleRowMenu: (rowIndex: number) => void;\n onCloseRowMenu: () => void;\n onRowAction?: (action: string, row: T) => void;\n}\n\nfunction DataTableRows<T>({\n table,\n isLoading,\n bulkSelectionActive,\n selectedRowIds,\n onToggleRowSelection,\n rowMenuOpen,\n onToggleRowMenu,\n onCloseRowMenu,\n onRowAction,\n}: DataTableRowsProps<T>) {\n const colSpan =\n table.getVisibleLeafColumns().length + (bulkSelectionActive ? 2 : 1);\n\n if (isLoading) {\n return <LoadingTableState colSpan={colSpan} />;\n }\n\n if (table.getRowModel().rows.length === 0) {\n return <EmptyTableState colSpan={colSpan} />;\n }\n\n return (\n <>\n {table.getRowModel().rows.map((row) => (\n <tr\n key={row.id}\n className=\"border-b border-neutral-100 dark:border-neutral-700 hover:bg-neutral-50 dark:hover:bg-neutral-700/50 transition-colors\"\n >\n {bulkSelectionActive ? (\n <td className=\"w-12 px-4 py-3 align-middle\">\n <Checkbox\n aria-label={`Select row ${row.id}`}\n checked={Boolean(selectedRowIds[row.id])}\n onChange={(event) =>\n onToggleRowSelection(row.id, event.target.checked)\n }\n />\n </td>\n ) : null}\n {row.getVisibleCells().map((cell) => (\n <td\n key={cell.id}\n className=\"px-4 py-3 text-sm text-neutral-700 dark:text-neutral-300\"\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </td>\n ))}\n <RowActionsCell\n rowIndex={row.index}\n row={row.original}\n isOpen={rowMenuOpen === row.index}\n onToggle={onToggleRowMenu}\n onClose={onCloseRowMenu}\n onRowAction={onRowAction}\n />\n </tr>\n ))}\n </>\n );\n}\n\nconst usesManualPagination = (\n totalCount?: number,\n onPaginationChange?: (pageIndex: number, pageSize: number) => void,\n) => totalCount !== undefined || typeof onPaginationChange === \"function\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport default function DataTable<T = Record<string, any>>({\n columns,\n data,\n isLoading = false,\n onColumnToggle,\n pageSize = 10,\n maxHeight = \"500px\",\n onSearch,\n onExport,\n onRowAction,\n onBulkDelete,\n renderBulkActions,\n renderBulkActionCard,\n onFilterChange,\n onFiltersApply,\n serverSideFiltering = false,\n filterOptions: externalFilterOptions,\n searchPlaceholder = \"Search ...\",\n totalCount,\n onPaginationChange,\n}: DataTableProps<T>) {\n const [pagination, setPagination] = React.useState<PaginationState>({\n pageIndex: 0,\n pageSize: pageSize,\n });\n const [columnMenuOpen, setColumnMenuOpen] = React.useState(false);\n const [profileMenuOpen, setProfileMenuOpen] = React.useState(false);\n const [profileOpen, setProfileOpen] = React.useState(false);\n const [filterSelectorOpen, setFilterSelectorOpen] = React.useState(false);\n const [visibleFilters, setVisibleFilters] = React.useState<string[]>([]);\n const [activeFilters, setActiveFilters] = React.useState<FilterValues>({});\n const [bulkSelectionActive, setBulkSelectionActive] = React.useState(false);\n const [selectedRowIds, setSelectedRowIds] = React.useState<\n Record<string, boolean>\n >({});\n const [rowMenuOpen, setRowMenuOpen] = React.useState<number | null>(null);\n const [searchQuery, setSearchQuery] = React.useState(\"\");\n const [columnVisibility, setColumnVisibility] = React.useState<\n Record<string, boolean>\n >(() =>\n Object.fromEntries(\n columns.map((column) => [column.id, column.visible !== false]),\n ),\n );\n\n const columnsVisibilitySignature = React.useMemo(\n () =>\n columns\n .map((column) => `${column.id}:${column.visible !== false}`)\n .join(\"|\"),\n [columns],\n );\n\n React.useEffect(() => {\n setColumnVisibility(\n Object.fromEntries(\n columns.map((column) => [column.id, column.visible !== false]),\n ),\n );\n }, [columns, columnsVisibilitySignature]);\n\n const asyncFilterOptions = useAsyncFilterOptions(\n externalFilterOptions,\n filterSelectorOpen,\n );\n\n // Auto-generate filter options from columns that are filterable\n const filterOptions: FilterOption[] = React.useMemo(() => {\n return resolveFilterOptions(\n columns,\n data,\n externalFilterOptions,\n asyncFilterOptions,\n );\n }, [columns, data, externalFilterOptions, asyncFilterOptions]);\n\n const resolvedColumns = React.useMemo(\n () =>\n columns.map((column) => ({\n ...column,\n visible: columnVisibility[column.id] ?? column.visible !== false,\n })),\n [columnVisibility, columns],\n );\n\n const visibleColumns = React.useMemo(\n () => resolvedColumns.filter((column) => column.visible !== false),\n [resolvedColumns],\n );\n const manualPagination = usesManualPagination(totalCount, onPaginationChange);\n const pageCount =\n totalCount === undefined\n ? undefined\n : Math.ceil(totalCount / pagination.pageSize);\n\n // Filter data based on search query and active filters (client-side only)\n const filteredData = React.useMemo(() => {\n return filterClientData(\n data,\n activeFilters,\n searchQuery,\n serverSideFiltering,\n filterOptions,\n );\n }, [data, activeFilters, searchQuery, serverSideFiltering, filterOptions]);\n\n // TanStack Table columns definition\n const tableColumns = React.useMemo<ColumnDef<T>[]>(\n () =>\n visibleColumns.map((col) => ({\n id: col.id,\n accessorKey: col.id,\n header: col.label,\n cell: (info: CellContext<T, unknown>) => {\n const value = info.getValue();\n\n if (col.renderCell) {\n return col.renderCell({\n value,\n row: info.row.original,\n rowIndex: info.row.index,\n columnId: col.id,\n });\n }\n\n return renderDefaultCellValue(value);\n },\n })),\n [visibleColumns],\n );\n\n const updatePagination = React.useCallback(\n (\n updater:\n | PaginationState\n | ((previous: PaginationState) => PaginationState),\n ) => {\n setPagination((previous) => {\n const nextPagination =\n typeof updater === \"function\" ? updater(previous) : updater;\n\n if (\n previous.pageIndex !== nextPagination.pageIndex ||\n previous.pageSize !== nextPagination.pageSize\n ) {\n onPaginationChange?.(\n nextPagination.pageIndex,\n nextPagination.pageSize,\n );\n }\n\n return nextPagination;\n });\n },\n [onPaginationChange],\n );\n\n const table = useReactTable({\n data: filteredData,\n columns: tableColumns,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n state: {\n pagination,\n globalFilter: searchQuery,\n },\n onPaginationChange: updatePagination,\n manualPagination,\n pageCount,\n });\n\n const visibleRows = table.getRowModel().rows;\n const bulkDeleteEnabled = typeof onBulkDelete === \"function\";\n const selectedRows = React.useMemo(\n () =>\n visibleRows\n .filter((row) => selectedRowIds[row.id])\n .map((row) => row.original),\n [selectedRowIds, visibleRows],\n );\n const allVisibleRowsSelected =\n visibleRows.length > 0 &&\n visibleRows.every((row) => selectedRowIds[row.id]);\n\n React.useEffect(() => {\n updatePagination((previous) =>\n previous.pageIndex === 0 ? previous : { ...previous, pageIndex: 0 },\n );\n }, [activeFilters, searchQuery, updatePagination]);\n\n React.useEffect(() => {\n setSelectedRowIds((previous) => {\n const visibleRowIds = new Set(visibleRows.map((row) => row.id));\n const nextSelection = Object.fromEntries(\n Object.entries(previous).filter(\n ([rowId, isSelected]) => isSelected && visibleRowIds.has(rowId),\n ),\n );\n\n const previousKeys = Object.keys(previous).sort().join(\"|\");\n const nextKeys = Object.keys(nextSelection).sort().join(\"|\");\n\n return previousKeys === nextKeys ? previous : nextSelection;\n });\n }, [visibleRows]);\n\n const applyFilters = React.useCallback(\n (nextFilters: FilterValues) => {\n setActiveFilters(nextFilters);\n onFilterChange?.(nextFilters);\n\n if (serverSideFiltering) {\n onFiltersApply?.(nextFilters);\n }\n },\n [onFilterChange, onFiltersApply, serverSideFiltering],\n );\n\n const handleSearchChange = React.useCallback(\n (value: string) => {\n setSearchQuery(value);\n onSearch?.(value);\n },\n [onSearch],\n );\n\n const handleFilterChange = React.useCallback(\n (filterId: string, value: FilterValue) => {\n applyFilters({\n ...activeFilters,\n [filterId]: value,\n });\n },\n [activeFilters, applyFilters],\n );\n\n const handleResetFilters = React.useCallback(() => {\n applyFilters({});\n }, [applyFilters]);\n\n const handleToggleFilterVisibility = React.useCallback(\n (filterId: string, isVisible: boolean) => {\n setVisibleFilters((previous) => {\n if (isVisible) {\n return previous.includes(filterId)\n ? previous\n : [...previous, filterId];\n }\n\n return previous.filter((id) => id !== filterId);\n });\n\n if (!isVisible && filterId in activeFilters) {\n const nextFilters = { ...activeFilters };\n delete nextFilters[filterId];\n applyFilters(nextFilters);\n }\n },\n [activeFilters, applyFilters],\n );\n\n const handleShowAllFilters = React.useCallback(() => {\n setVisibleFilters(filterOptions.map((filter) => filter.id));\n }, [filterOptions]);\n\n const handleHideAllFilters = React.useCallback(() => {\n setVisibleFilters([]);\n handleResetFilters();\n }, [handleResetFilters]);\n\n const handleToggleRowMenu = React.useCallback((rowIndex: number) => {\n setRowMenuOpen((previous) => (previous === rowIndex ? null : rowIndex));\n }, []);\n\n const handleToggleFilterSelector = React.useCallback(() => {\n setFilterSelectorOpen((previous) => !previous);\n }, []);\n\n const handleToggleProfileMenu = React.useCallback(() => {\n setProfileMenuOpen((previous) => !previous);\n }, []);\n\n const handleToggleColumnMenu = React.useCallback(() => {\n setColumnMenuOpen((previous) => !previous);\n }, []);\n\n const handleToggleColumnVisibility = React.useCallback(\n (columnId: string) => {\n setColumnVisibility((previous) => ({\n ...previous,\n [columnId]: !(previous[columnId] ?? true),\n }));\n onColumnToggle?.(columnId);\n },\n [onColumnToggle],\n );\n\n const handleShowAllColumns = React.useCallback(() => {\n setColumnVisibility(\n Object.fromEntries(columns.map((column) => [column.id, true])),\n );\n }, [columns]);\n\n const handleHideAllColumns = React.useCallback(() => {\n setColumnVisibility(\n Object.fromEntries(columns.map((column) => [column.id, false])),\n );\n }, [columns]);\n\n const handleToggleBulkSelection = React.useCallback(() => {\n setBulkSelectionActive((previous) => {\n if (previous) {\n setSelectedRowIds({});\n }\n\n return !previous;\n });\n }, []);\n\n const handleToggleRowSelection = React.useCallback(\n (rowId: string, checked: boolean) => {\n setSelectedRowIds((previous) => {\n if (checked) {\n return {\n ...previous,\n [rowId]: true,\n };\n }\n\n const nextSelection = { ...previous };\n delete nextSelection[rowId];\n return nextSelection;\n });\n },\n [],\n );\n\n const handleToggleAllVisibleRows = React.useCallback(\n (checked: boolean) => {\n setSelectedRowIds((previous) => {\n const nextSelection = { ...previous };\n\n visibleRows.forEach((row) => {\n if (checked) {\n nextSelection[row.id] = true;\n } else {\n delete nextSelection[row.id];\n }\n });\n\n return nextSelection;\n });\n },\n [visibleRows],\n );\n\n const handleBulkDeleteSelected = React.useCallback(() => {\n if (!onBulkDelete || selectedRows.length === 0) {\n return;\n }\n\n onBulkDelete(selectedRows);\n setSelectedRowIds({});\n }, [onBulkDelete, selectedRows]);\n\n const handleClearSelectedRows = React.useCallback(() => {\n setSelectedRowIds({});\n }, []);\n\n const handleDisableBulkSelection = React.useCallback(() => {\n setBulkSelectionActive(false);\n setSelectedRowIds({});\n }, []);\n\n const bulkActionContext = React.useMemo<DataTableBulkActionContext<T>>(\n () => ({\n selectedRows,\n selectedCount: selectedRows.length,\n clearSelection: handleClearSelectedRows,\n disableBulkSelection: handleDisableBulkSelection,\n }),\n [handleClearSelectedRows, handleDisableBulkSelection, selectedRows],\n );\n\n const bulkActionsContent = renderBulkActions?.(bulkActionContext);\n const bulkActionCard = renderBulkActionCard?.(bulkActionContext);\n\n const handleOpenProfile = React.useCallback(() => {\n setProfileOpen(true);\n setProfileMenuOpen(false);\n }, []);\n\n const hasActiveFilters = Object.values(activeFilters).some(isFilterActive);\n\n const handleSaveProfile = (profileName: string) => {\n void {\n name: profileName,\n filters: activeFilters,\n timestamp: new Date().toISOString(),\n };\n };\n\n return (\n <div className=\"space-y-0\">\n {/* Row 1: Filters Row - Separated with border */}\n <div className=\"mb-4 flex items-center justify-between gap-4 rounded-[8px] border border-neutral-200 bg-neutral-50 px-4 py-4 dark:border-neutral-700 dark:bg-neutral-800/50\">\n <div className=\"flex items-center gap-3 flex-wrap\">\n {filterOptions\n .filter((filter) => visibleFilters.includes(filter.id))\n .map((filter, index) => {\n const isActive = isFilterActive(activeFilters[filter.id]);\n\n return (\n <div\n key={filter.id}\n className={`min-w-[200px] ${\n index > 0\n ? \"border-l border-neutral-200 pl-3 dark:border-neutral-600\"\n : \"\"\n }`}\n >\n <FilterFieldControl\n filter={filter}\n value={activeFilters[filter.id]}\n isActive={isActive}\n onChange={(value) => handleFilterChange(filter.id, value)}\n />\n </div>\n );\n })}\n </div>\n\n {/* Right side icons */}\n <div className=\"flex items-center gap-1 ml-auto\">\n <div className=\"relative\">\n <ToolbarIconButton\n onClick={handleToggleFilterSelector}\n title=\"Add filter\"\n >\n <FilterIcon\n className={TABLE_COMPLEX_ICON_CLASS_NAME}\n aria-hidden=\"true\"\n />\n </ToolbarIconButton>\n <FilterDropdown\n isOpen={filterSelectorOpen}\n onClose={() => setFilterSelectorOpen(false)}\n >\n <FilterSelectorMenu\n filterOptions={filterOptions}\n visibleFilters={visibleFilters}\n onToggleFilter={handleToggleFilterVisibility}\n onShowAll={handleShowAllFilters}\n onHideAll={handleHideAllFilters}\n />\n </FilterDropdown>\n </div>\n\n <ToolbarIconButton\n onClick={handleResetFilters}\n disabled={!hasActiveFilters}\n title=\"Clear filters\"\n >\n <FilterXIcon\n className={TABLE_COMPLEX_ICON_CLASS_NAME}\n aria-hidden=\"true\"\n />\n </ToolbarIconButton>\n\n <div className=\"relative\">\n <ToolbarIconButton\n onClick={handleToggleProfileMenu}\n title=\"Filter profiles\"\n >\n <FilterProfileIcon\n className={TABLE_COMPLEX_ICON_CLASS_NAME}\n aria-hidden=\"true\"\n />\n </ToolbarIconButton>\n <FilterDropdown\n isOpen={profileMenuOpen}\n onClose={() => setProfileMenuOpen(false)}\n >\n <div className=\"p-2 min-w-48\">\n <Button\n onClick={handleOpenProfile}\n className=\"w-full justify-start border-2 border-dashed border-accent/40 bg-transparent px-4 py-3 text-left text-sm font-medium text-accent shadow-none hover:bg-accent-subtle hover:opacity-100\"\n >\n Save new filter profile\n </Button>\n </div>\n </FilterDropdown>\n </div>\n </div>\n </div>\n\n {/* Table */}\n <div className=\"bg-background-secondary rounded-lg border border-neutral-200 dark:border-neutral-700 overflow-hidden\">\n <DataTableToolbar\n searchQuery={searchQuery}\n onSearchChange={handleSearchChange}\n searchPlaceholder={searchPlaceholder}\n bulkDeleteEnabled={bulkDeleteEnabled}\n bulkSelectionActive={bulkSelectionActive}\n selectedCount={selectedRows.length}\n bulkActionsContent={bulkActionsContent}\n bulkActionCard={bulkActionCard}\n onToggleBulkSelection={handleToggleBulkSelection}\n onBulkDeleteSelected={handleBulkDeleteSelected}\n onExport={onExport}\n columnMenuOpen={columnMenuOpen}\n onToggleColumnMenu={handleToggleColumnMenu}\n onCloseColumnMenu={() => setColumnMenuOpen(false)}\n columns={resolvedColumns}\n onColumnToggle={handleToggleColumnVisibility}\n onShowAllColumns={handleShowAllColumns}\n onHideAllColumns={handleHideAllColumns}\n />\n\n {/* Table Container */}\n <div className=\"overflow-auto\" style={{ maxHeight }}>\n <table className=\"w-full min-w-[600px]\">\n <thead className=\"sticky top-0 z-10 bg-background-secondary\">\n {table.getHeaderGroups().map((headerGroup) => (\n <tr\n key={headerGroup.id}\n className=\"border-b border-neutral-200 dark:border-neutral-700\"\n >\n {bulkSelectionActive ? (\n <th className=\"w-12 px-4 py-3 bg-background-secondary\">\n <Checkbox\n aria-label=\"Select all visible rows\"\n checked={allVisibleRowsSelected}\n onChange={(event) =>\n handleToggleAllVisibleRows(event.target.checked)\n }\n />\n </th>\n ) : null}\n {headerGroup.headers.map((header) => (\n <th\n key={header.id}\n className=\"bg-background-secondary px-4 py-3 text-left text-sm font-semibold text-neutral-900 dark:text-white whitespace-nowrap\"\n >\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </th>\n ))}\n <th className=\"w-12 bg-background-secondary\"></th>\n </tr>\n ))}\n </thead>\n <tbody>\n <DataTableRows\n table={table}\n isLoading={isLoading}\n bulkSelectionActive={bulkSelectionActive}\n selectedRowIds={selectedRowIds}\n onToggleRowSelection={handleToggleRowSelection}\n rowMenuOpen={rowMenuOpen}\n onToggleRowMenu={handleToggleRowMenu}\n onCloseRowMenu={() => setRowMenuOpen(null)}\n onRowAction={onRowAction}\n />\n </tbody>\n </table>\n </div>\n\n <DataTablePagination\n table={table}\n totalCount={totalCount}\n filteredCount={filteredData.length}\n />\n </div>\n\n {/* Profile Modal */}\n <FilterProfile\n isOpen={profileOpen}\n onClose={() => setProfileOpen(false)}\n onSaveProfile={(name) => {\n handleSaveProfile(name);\n setProfileOpen(false);\n }}\n />\n </div>\n );\n}\n"],"mappings":"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"}