erp-pro-ui 0.1.1 → 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 (400) hide show
  1. package/README.md +512 -288
  2. package/dist/accordion.cjs +1 -1
  3. package/dist/accordion.mjs +1 -1
  4. package/dist/alert.cjs +1 -1
  5. package/dist/alert.mjs +1 -1
  6. package/dist/ascii-text.cjs +1 -1
  7. package/dist/ascii-text.mjs +1 -1
  8. package/dist/button.cjs +1 -1
  9. package/dist/button.mjs +1 -1
  10. package/dist/card.cjs +1 -1
  11. package/dist/card.mjs +1 -1
  12. package/dist/carousel.cjs +1 -1
  13. package/dist/carousel.mjs +1 -1
  14. package/dist/catalog.cjs +6 -0
  15. package/dist/catalog.cjs.map +1 -1
  16. package/dist/catalog.d.ts +11 -1
  17. package/dist/catalog.d.ts.map +1 -1
  18. package/dist/catalog.mjs +6 -0
  19. package/dist/catalog.mjs.map +1 -1
  20. package/dist/charts.cjs +4 -1
  21. package/dist/charts.mjs +2 -2
  22. package/dist/checkbox.cjs +1 -1
  23. package/dist/checkbox.mjs +1 -1
  24. package/dist/chip.cjs +1 -1
  25. package/dist/chip.mjs +1 -1
  26. package/dist/chroma-grid.cjs +1 -1
  27. package/dist/chroma-grid.mjs +1 -1
  28. package/dist/chunks/{accordion-C_0oGZkZ.mjs → accordion-Cbt-SJhj.mjs} +4 -4
  29. package/dist/chunks/accordion-Cbt-SJhj.mjs.map +1 -0
  30. package/dist/chunks/{accordion-BZ5hyz0_.cjs → accordion-pfJR8YYA.cjs} +4 -4
  31. package/dist/chunks/accordion-pfJR8YYA.cjs.map +1 -0
  32. package/dist/chunks/{alert-DeVa-NR1.mjs → alert-CtdLy4Hv.mjs} +6 -6
  33. package/dist/chunks/alert-CtdLy4Hv.mjs.map +1 -0
  34. package/dist/chunks/{alert-BdBDWqBN.cjs → alert-Dvz1GoL5.cjs} +6 -6
  35. package/dist/chunks/alert-Dvz1GoL5.cjs.map +1 -0
  36. package/dist/chunks/{ascii-text-BzQCLfya.mjs → ascii-text-C5tyNsR3.mjs} +32 -5
  37. package/dist/chunks/ascii-text-C5tyNsR3.mjs.map +1 -0
  38. package/dist/chunks/{ascii-text-D6lVHWph.cjs → ascii-text-DlmArZXh.cjs} +32 -5
  39. package/dist/chunks/ascii-text-DlmArZXh.cjs.map +1 -0
  40. package/dist/chunks/background-gradient-animation-BL-lnrJe.mjs.map +1 -1
  41. package/dist/chunks/background-gradient-animation-CXV9GDH8.cjs.map +1 -1
  42. package/dist/chunks/{button-CmNEMp_O.mjs → button-B0Lhj0AS.mjs} +3 -3
  43. package/dist/chunks/button-B0Lhj0AS.mjs.map +1 -0
  44. package/dist/chunks/{button-BH1eUjae.cjs → button-CZL6kFzT.cjs} +3 -3
  45. package/dist/chunks/button-CZL6kFzT.cjs.map +1 -0
  46. package/dist/chunks/{card-CzstAQYy.mjs → card-CcIF6z2H.mjs} +2 -2
  47. package/dist/chunks/card-CcIF6z2H.mjs.map +1 -0
  48. package/dist/chunks/{card-DZGM4zLx.cjs → card-gt-HZh0h.cjs} +2 -2
  49. package/dist/chunks/card-gt-HZh0h.cjs.map +1 -0
  50. package/dist/chunks/{carousel-47Eiyzwg.cjs → carousel-Cq5uwqQt.cjs} +3 -3
  51. package/dist/chunks/{carousel-BJ3nm2bw.mjs.map → carousel-Cq5uwqQt.cjs.map} +1 -1
  52. package/dist/chunks/{carousel-BJ3nm2bw.mjs → carousel-DJdqBVRK.mjs} +3 -3
  53. package/dist/chunks/{carousel-47Eiyzwg.cjs.map → carousel-DJdqBVRK.mjs.map} +1 -1
  54. package/dist/chunks/charts-BpElnsoR.cjs +687 -0
  55. package/dist/chunks/charts-BpElnsoR.cjs.map +1 -0
  56. package/dist/chunks/charts-DugYWvEf.mjs +632 -0
  57. package/dist/chunks/charts-DugYWvEf.mjs.map +1 -0
  58. package/dist/chunks/{checkbox-B3eIojWs.mjs → checkbox-DvwlGwWe.mjs} +8 -8
  59. package/dist/chunks/checkbox-DvwlGwWe.mjs.map +1 -0
  60. package/dist/chunks/{checkbox-DQmZwRTt.cjs → checkbox-yHuSw-hV.cjs} +8 -8
  61. package/dist/chunks/checkbox-yHuSw-hV.cjs.map +1 -0
  62. package/dist/chunks/{chip-cZ7-HmWw.mjs → chip-BGSUmnlO.mjs} +12 -12
  63. package/dist/chunks/chip-BGSUmnlO.mjs.map +1 -0
  64. package/dist/chunks/{chip-BH6wzwat.cjs → chip-DcBji__g.cjs} +12 -12
  65. package/dist/chunks/chip-DcBji__g.cjs.map +1 -0
  66. package/dist/chunks/{chroma-grid-DtsqM4LW.cjs → chroma-grid-9E9j1s9I.cjs} +10 -10
  67. package/dist/chunks/chroma-grid-9E9j1s9I.cjs.map +1 -0
  68. package/dist/chunks/{chroma-grid-CC_fFzxO.mjs → chroma-grid-Cdeql_2C.mjs} +10 -10
  69. package/dist/chunks/chroma-grid-Cdeql_2C.mjs.map +1 -0
  70. package/dist/chunks/color-palette-BLvDnCOD.cjs +754 -0
  71. package/dist/chunks/color-palette-BLvDnCOD.cjs.map +1 -0
  72. package/dist/chunks/color-palette-CXlCDiZz.mjs +748 -0
  73. package/dist/chunks/color-palette-CXlCDiZz.mjs.map +1 -0
  74. package/dist/chunks/{combobox-mAvOcg-E.cjs → combobox-BXu3s0dt.cjs} +56 -32
  75. package/dist/chunks/combobox-BXu3s0dt.cjs.map +1 -0
  76. package/dist/chunks/combobox-CjK-qG4k.mjs +132 -0
  77. package/dist/chunks/combobox-CjK-qG4k.mjs.map +1 -0
  78. package/dist/chunks/{data-table-BRcGhJDf.cjs → data-table-9HELVsYR.cjs} +197 -292
  79. package/dist/chunks/data-table-9HELVsYR.cjs.map +1 -0
  80. package/dist/chunks/{data-table-Dp0t_I_z.mjs → data-table-DyEQn9Yj.mjs} +197 -292
  81. package/dist/chunks/data-table-DyEQn9Yj.mjs.map +1 -0
  82. package/dist/chunks/{date-picker-BWBkr6LG.mjs → date-picker-D8gaaMlJ.mjs} +39 -16
  83. package/dist/chunks/date-picker-D8gaaMlJ.mjs.map +1 -0
  84. package/dist/chunks/{date-picker-DooielHi.cjs → date-picker-W9om1j7A.cjs} +39 -16
  85. package/dist/chunks/date-picker-W9om1j7A.cjs.map +1 -0
  86. package/dist/chunks/{dialog-Cbuf8V0g.cjs → dialog-CYFiWN8M.cjs} +20 -20
  87. package/dist/chunks/dialog-CYFiWN8M.cjs.map +1 -0
  88. package/dist/chunks/{dialog-C6nxSfIl.mjs → dialog-DUWnV9tN.mjs} +20 -20
  89. package/dist/chunks/dialog-DUWnV9tN.mjs.map +1 -0
  90. package/dist/chunks/{drawer-Dn0u8Sck.cjs → drawer-CLjsYdxN.cjs} +39 -22
  91. package/dist/chunks/drawer-CLjsYdxN.cjs.map +1 -0
  92. package/dist/chunks/drawer-D82Jz6KO.mjs +122 -0
  93. package/dist/chunks/drawer-D82Jz6KO.mjs.map +1 -0
  94. package/dist/chunks/{form-TwlDrshv.mjs → form-B2vcaHwh.mjs} +4 -4
  95. package/dist/chunks/form-B2vcaHwh.mjs.map +1 -0
  96. package/dist/chunks/{form-DcEuk721.cjs → form-CzH9GQc6.cjs} +4 -4
  97. package/dist/chunks/form-CzH9GQc6.cjs.map +1 -0
  98. package/dist/chunks/{gradual-blur-2jVhPcND.cjs → gradual-blur-B9GoY8o1.cjs} +1 -1
  99. package/dist/chunks/{gradual-blur-2jVhPcND.cjs.map → gradual-blur-B9GoY8o1.cjs.map} +1 -1
  100. package/dist/chunks/{gradual-blur-jTzKCmAV.mjs → gradual-blur-Bl3dOMEz.mjs} +1 -1
  101. package/dist/chunks/{gradual-blur-jTzKCmAV.mjs.map → gradual-blur-Bl3dOMEz.mjs.map} +1 -1
  102. package/dist/chunks/{hover-card-KjWMnvt_.cjs → hover-card-v0QwmVBU.cjs} +9 -4
  103. package/dist/chunks/hover-card-v0QwmVBU.cjs.map +1 -0
  104. package/dist/chunks/{hover-card-DwTVfjgN.mjs → hover-card-xqwpmZNm.mjs} +9 -4
  105. package/dist/chunks/{hover-card-KjWMnvt_.cjs.map → hover-card-xqwpmZNm.mjs.map} +1 -1
  106. package/dist/chunks/{icons-DYkpqWYG.cjs → icons-BxIzP2jd.cjs} +131 -8
  107. package/dist/chunks/icons-BxIzP2jd.cjs.map +1 -0
  108. package/dist/chunks/{icons-CrM6pFkv.mjs → icons-DuumN7z-.mjs} +108 -9
  109. package/dist/chunks/icons-DuumN7z-.mjs.map +1 -0
  110. package/dist/chunks/{input-CoRHoZkB.cjs → input-D9qZNqXV.cjs} +8 -8
  111. package/dist/chunks/input-D9qZNqXV.cjs.map +1 -0
  112. package/dist/chunks/{input-ChhwdNGk.mjs → input-wNqevfQ4.mjs} +8 -8
  113. package/dist/chunks/input-wNqevfQ4.mjs.map +1 -0
  114. package/dist/chunks/{label-EciNc4hO.cjs → label-BWPEGVam.cjs} +1 -1
  115. package/dist/chunks/{label-EciNc4hO.cjs.map → label-BWPEGVam.cjs.map} +1 -1
  116. package/dist/chunks/{label-JZn7PmtR.mjs → label-KPA-yYOF.mjs} +1 -1
  117. package/dist/chunks/{label-JZn7PmtR.mjs.map → label-KPA-yYOF.mjs.map} +1 -1
  118. package/dist/chunks/{loading-DPNa_X3c.mjs → loading-S1TdIrbB.mjs} +2 -2
  119. package/dist/chunks/{loading-DPNa_X3c.mjs.map → loading-S1TdIrbB.mjs.map} +1 -1
  120. package/dist/chunks/{loading-Cqgps3nf.cjs → loading-q7IEg56I.cjs} +2 -2
  121. package/dist/chunks/{loading-Cqgps3nf.cjs.map → loading-q7IEg56I.cjs.map} +1 -1
  122. package/dist/chunks/multi-select-combobox-ELSH_Xr4.mjs +132 -0
  123. package/dist/chunks/multi-select-combobox-ELSH_Xr4.mjs.map +1 -0
  124. package/dist/chunks/multi-select-combobox-UW0X15W7.cjs +139 -0
  125. package/dist/chunks/multi-select-combobox-UW0X15W7.cjs.map +1 -0
  126. package/dist/chunks/{otp-input-DaQDfI9C.cjs → otp-input-B6zzOEqw.cjs} +13 -14
  127. package/dist/chunks/otp-input-B6zzOEqw.cjs.map +1 -0
  128. package/dist/chunks/{otp-input-CNungc1j.mjs → otp-input-Bg4nQG6x.mjs} +13 -14
  129. package/dist/chunks/otp-input-Bg4nQG6x.mjs.map +1 -0
  130. package/dist/chunks/{overlay-BfUR77DT.cjs → overlay-DWNTyQzK.cjs} +1 -1
  131. package/dist/chunks/{overlay-BfUR77DT.cjs.map → overlay-DWNTyQzK.cjs.map} +1 -1
  132. package/dist/chunks/{overlay-CpdakhXI.mjs → overlay-TycCIFOu.mjs} +1 -1
  133. package/dist/chunks/{overlay-CpdakhXI.mjs.map → overlay-TycCIFOu.mjs.map} +1 -1
  134. package/dist/chunks/{password-strength-meter-xtMqhhFg.mjs → password-strength-meter-CbNSBuh_.mjs} +10 -10
  135. package/dist/chunks/password-strength-meter-CbNSBuh_.mjs.map +1 -0
  136. package/dist/chunks/{password-strength-meter-u4YI00zE.cjs → password-strength-meter-DxMV6GAs.cjs} +10 -10
  137. package/dist/chunks/password-strength-meter-DxMV6GAs.cjs.map +1 -0
  138. package/dist/chunks/progress-bar-C1OvQ-NI.cjs +96 -0
  139. package/dist/chunks/progress-bar-C1OvQ-NI.cjs.map +1 -0
  140. package/dist/chunks/progress-bar-C9FZDrju.mjs +89 -0
  141. package/dist/chunks/progress-bar-C9FZDrju.mjs.map +1 -0
  142. package/dist/chunks/{radio-C-fPZgSY.mjs → radio-C9w_CoiY.mjs} +9 -9
  143. package/dist/chunks/radio-C9w_CoiY.mjs.map +1 -0
  144. package/dist/chunks/{radio-mCgvEhOR.cjs → radio-jMHDvaMY.cjs} +9 -9
  145. package/dist/chunks/radio-jMHDvaMY.cjs.map +1 -0
  146. package/dist/chunks/select-D71tk6-I.mjs +152 -0
  147. package/dist/chunks/select-D71tk6-I.mjs.map +1 -0
  148. package/dist/chunks/select-WC_kPqUP.cjs +158 -0
  149. package/dist/chunks/select-WC_kPqUP.cjs.map +1 -0
  150. package/dist/chunks/{skeleton-D1S4RyeL.mjs → skeleton-BhYWOp0Q.mjs} +1 -1
  151. package/dist/chunks/{skeleton-D1S4RyeL.mjs.map → skeleton-BhYWOp0Q.mjs.map} +1 -1
  152. package/dist/chunks/{skeleton-C-NHrM-w.cjs → skeleton-DTXpHYYB.cjs} +1 -1
  153. package/dist/chunks/{skeleton-C-NHrM-w.cjs.map → skeleton-DTXpHYYB.cjs.map} +1 -1
  154. package/dist/chunks/{spinners-hf553hP9.mjs → spinners-BBCWD2gw.mjs} +2 -2
  155. package/dist/chunks/{spinners-hf553hP9.mjs.map → spinners-BBCWD2gw.mjs.map} +1 -1
  156. package/dist/chunks/{spinners-CU3bLaoo.cjs → spinners-BL4ERCCw.cjs} +2 -2
  157. package/dist/chunks/{spinners-CU3bLaoo.cjs.map → spinners-BL4ERCCw.cjs.map} +1 -1
  158. package/dist/chunks/{splash-cursor-Dpzl_YXx.cjs → splash-cursor-BVSmbcIX.cjs} +9 -8
  159. package/dist/chunks/splash-cursor-BVSmbcIX.cjs.map +1 -0
  160. package/dist/chunks/{splash-cursor-9BsoQZl0.mjs → splash-cursor-rSrTnawZ.mjs} +9 -8
  161. package/dist/chunks/splash-cursor-rSrTnawZ.mjs.map +1 -0
  162. package/dist/chunks/{spotlight-card-Bl0aXnT4.mjs → spotlight-card-BpZLMOp6.mjs} +1 -1
  163. package/dist/chunks/{spotlight-card-Bl0aXnT4.mjs.map → spotlight-card-BpZLMOp6.mjs.map} +1 -1
  164. package/dist/chunks/{spotlight-card-SUhrgstF.cjs → spotlight-card-DS1dy1W3.cjs} +1 -1
  165. package/dist/chunks/{spotlight-card-SUhrgstF.cjs.map → spotlight-card-DS1dy1W3.cjs.map} +1 -1
  166. package/dist/chunks/{stepper-uz8iRzlY.mjs → stepper-D4yQsQB0.mjs} +14 -14
  167. package/dist/chunks/stepper-D4yQsQB0.mjs.map +1 -0
  168. package/dist/chunks/{stepper-BDz6PkjV.cjs → stepper-fY-Sx72k.cjs} +14 -14
  169. package/dist/chunks/stepper-fY-Sx72k.cjs.map +1 -0
  170. package/dist/chunks/{sun-to-moon-button-3E6qah0o.mjs → sun-to-moon-button-B2Aje05o.mjs} +3 -3
  171. package/dist/chunks/{sun-to-moon-button-3E6qah0o.mjs.map → sun-to-moon-button-B2Aje05o.mjs.map} +1 -1
  172. package/dist/chunks/{sun-to-moon-button-B__3FWnK.cjs → sun-to-moon-button-BmFwRBye.cjs} +3 -3
  173. package/dist/chunks/{sun-to-moon-button-B__3FWnK.cjs.map → sun-to-moon-button-BmFwRBye.cjs.map} +1 -1
  174. package/dist/chunks/{switch-y8oWcyLp.cjs → switch-C5otDb4c.cjs} +3 -3
  175. package/dist/chunks/switch-C5otDb4c.cjs.map +1 -0
  176. package/dist/chunks/{switch-DYLavKgf.mjs → switch-DOVl_i_s.mjs} +3 -3
  177. package/dist/chunks/switch-DOVl_i_s.mjs.map +1 -0
  178. package/dist/chunks/textarea-CAUsyu4-.cjs +63 -0
  179. package/dist/chunks/textarea-CAUsyu4-.cjs.map +1 -0
  180. package/dist/chunks/textarea-CU5C-Zw9.mjs +57 -0
  181. package/dist/chunks/textarea-CU5C-Zw9.mjs.map +1 -0
  182. package/dist/chunks/{theme-CBtWIFMT.cjs → theme-7DWLxJK_.cjs} +4 -2
  183. package/dist/chunks/theme-7DWLxJK_.cjs.map +1 -0
  184. package/dist/chunks/{theme-Bwu0HKqZ.mjs → theme-BceKeYhw.mjs} +4 -2
  185. package/dist/chunks/theme-BceKeYhw.mjs.map +1 -0
  186. package/dist/chunks/{toast-C8JRhbSo.mjs → toast-CvfP7PUP.mjs} +20 -20
  187. package/dist/chunks/toast-CvfP7PUP.mjs.map +1 -0
  188. package/dist/chunks/{toast-DWOwpD2F.cjs → toast-Ds7_19Ap.cjs} +20 -20
  189. package/dist/chunks/toast-Ds7_19Ap.cjs.map +1 -0
  190. package/dist/chunks/{tooltip-YtA_66_1.mjs → tooltip-efHETBo1.mjs} +1 -1
  191. package/dist/chunks/{tooltip-YtA_66_1.mjs.map → tooltip-efHETBo1.mjs.map} +1 -1
  192. package/dist/chunks/{tooltip-BHXNmXsa.cjs → tooltip-nkIqViGk.cjs} +1 -1
  193. package/dist/chunks/{tooltip-BHXNmXsa.cjs.map → tooltip-nkIqViGk.cjs.map} +1 -1
  194. package/dist/chunks/{typography-BzprBnQc.mjs → typography-CLu6Hx9j.mjs} +7 -3
  195. package/dist/chunks/{typography-BzprBnQc.mjs.map → typography-CLu6Hx9j.mjs.map} +1 -1
  196. package/dist/chunks/{typography-3wSx67DZ.cjs → typography-DaLu9tty.cjs} +7 -3
  197. package/dist/chunks/{typography-3wSx67DZ.cjs.map → typography-DaLu9tty.cjs.map} +1 -1
  198. package/dist/color-palette.cjs +1 -1
  199. package/dist/color-palette.mjs +1 -1
  200. package/dist/colors.css +121 -186
  201. package/dist/combobox.cjs +1 -1
  202. package/dist/combobox.mjs +1 -1
  203. package/dist/components/data-display/charts/AreaChart.d.ts.map +1 -1
  204. package/dist/components/data-display/charts/BarChart.d.ts.map +1 -1
  205. package/dist/components/data-display/charts/NeonLineChart.d.ts.map +1 -1
  206. package/dist/components/data-display/charts/PieChart.d.ts.map +1 -1
  207. package/dist/components/data-display/charts/StackedBarChart.d.ts.map +1 -1
  208. package/dist/components/data-display/charts/ThinBreakdownBar.d.ts.map +1 -1
  209. package/dist/components/data-display/charts/chartPalette.d.ts +10 -0
  210. package/dist/components/data-display/charts/chartPalette.d.ts.map +1 -0
  211. package/dist/components/data-display/charts/index.d.ts +2 -0
  212. package/dist/components/data-display/charts/index.d.ts.map +1 -1
  213. package/dist/components/data-display/chip/Chip.d.ts.map +1 -1
  214. package/dist/components/data-display/color-palette/ColorPalette.d.ts.map +1 -1
  215. package/dist/components/data-display/data-table/DataTable.d.ts +17 -10
  216. package/dist/components/data-display/data-table/DataTable.d.ts.map +1 -1
  217. package/dist/components/data-display/data-table/index.d.ts +1 -1
  218. package/dist/components/data-display/data-table/index.d.ts.map +1 -1
  219. package/dist/components/data-display/index.d.ts +1 -0
  220. package/dist/components/data-display/index.d.ts.map +1 -1
  221. package/dist/components/data-display/progress-bar/ProgressBar.d.ts +18 -0
  222. package/dist/components/data-display/progress-bar/ProgressBar.d.ts.map +1 -0
  223. package/dist/components/data-display/progress-bar/index.d.ts +3 -0
  224. package/dist/components/data-display/progress-bar/index.d.ts.map +1 -0
  225. package/dist/components/effects/ascii-text/ASCIIText.d.ts.map +1 -1
  226. package/dist/components/effects/border-beam/BorderBeam.d.ts.map +1 -1
  227. package/dist/components/effects/chroma-grid/ChromaGrid.d.ts.map +1 -1
  228. package/dist/components/effects/splash-cursor/SplashCursor.d.ts.map +1 -1
  229. package/dist/components/forms/combobox/Combobox.d.ts.map +1 -1
  230. package/dist/components/forms/date-picker/DatePicker.d.ts.map +1 -1
  231. package/dist/components/forms/input/Input.d.ts.map +1 -1
  232. package/dist/components/forms/multi-select-combobox/MultiSelectCombobox.d.ts.map +1 -1
  233. package/dist/components/forms/otp-input/OTPInput.d.ts.map +1 -1
  234. package/dist/components/forms/password-strength-meter/PasswordCriteria.d.ts.map +1 -1
  235. package/dist/components/forms/select/Select.d.ts.map +1 -1
  236. package/dist/components/forms/select/types.d.ts +2 -0
  237. package/dist/components/forms/select/types.d.ts.map +1 -1
  238. package/dist/components/forms/textarea/Textarea.d.ts.map +1 -1
  239. package/dist/components/icons/ColumnsIcon.d.ts +9 -0
  240. package/dist/components/icons/ColumnsIcon.d.ts.map +1 -0
  241. package/dist/components/icons/MailIcon.d.ts +9 -0
  242. package/dist/components/icons/MailIcon.d.ts.map +1 -0
  243. package/dist/components/icons/PlayIcon.d.ts +9 -0
  244. package/dist/components/icons/PlayIcon.d.ts.map +1 -0
  245. package/dist/components/icons/ZapIcon.d.ts +9 -0
  246. package/dist/components/icons/ZapIcon.d.ts.map +1 -0
  247. package/dist/components/icons/index.d.ts +4 -0
  248. package/dist/components/icons/index.d.ts.map +1 -1
  249. package/dist/components/navigation/accordion/Accordion.d.ts.map +1 -1
  250. package/dist/components/overlays/drawer/Drawer.d.ts.map +1 -1
  251. package/dist/components/overlays/hover-card/HoverCard.d.ts.map +1 -1
  252. package/dist/components/typography/Typography.d.ts.map +1 -1
  253. package/dist/data-table.cjs +1 -1
  254. package/dist/data-table.mjs +1 -1
  255. package/dist/date-picker.cjs +1 -1
  256. package/dist/date-picker.mjs +1 -1
  257. package/dist/dialog.cjs +1 -1
  258. package/dist/dialog.mjs +1 -1
  259. package/dist/docs.cjs +50 -4
  260. package/dist/docs.cjs.map +1 -1
  261. package/dist/docs.d.ts +59 -9
  262. package/dist/docs.d.ts.map +1 -1
  263. package/dist/docs.mjs +50 -4
  264. package/dist/docs.mjs.map +1 -1
  265. package/dist/drawer.cjs +1 -1
  266. package/dist/drawer.mjs +1 -1
  267. package/dist/fonts.css +5 -0
  268. package/dist/form.cjs +1 -1
  269. package/dist/form.mjs +1 -1
  270. package/dist/foundation.css +3 -3
  271. package/dist/foundations/theme/ThemeProvider.d.ts +1 -0
  272. package/dist/foundations/theme/ThemeProvider.d.ts.map +1 -1
  273. package/dist/gradual-blur.cjs +1 -1
  274. package/dist/gradual-blur.mjs +1 -1
  275. package/dist/hover-card.cjs +1 -1
  276. package/dist/hover-card.mjs +1 -1
  277. package/dist/icons.cjs +5 -1
  278. package/dist/icons.mjs +2 -2
  279. package/dist/index.cjs +50 -41
  280. package/dist/index.cjs.map +1 -1
  281. package/dist/index.d.ts +5 -3
  282. package/dist/index.d.ts.map +1 -1
  283. package/dist/index.mjs +43 -42
  284. package/dist/index.mjs.map +1 -1
  285. package/dist/input.cjs +1 -1
  286. package/dist/input.mjs +1 -1
  287. package/dist/label.cjs +1 -1
  288. package/dist/label.mjs +1 -1
  289. package/dist/loading.cjs +1 -1
  290. package/dist/loading.mjs +1 -1
  291. package/dist/multi-select-combobox.cjs +1 -1
  292. package/dist/multi-select-combobox.mjs +1 -1
  293. package/dist/otp-input.cjs +1 -1
  294. package/dist/otp-input.mjs +1 -1
  295. package/dist/password-strength-meter.cjs +1 -1
  296. package/dist/password-strength-meter.mjs +1 -1
  297. package/dist/progress-bar.cjs +3 -0
  298. package/dist/progress-bar.d.ts +2 -0
  299. package/dist/progress-bar.mjs +2 -0
  300. package/dist/radio.cjs +1 -1
  301. package/dist/radio.mjs +1 -1
  302. package/dist/select.cjs +1 -1
  303. package/dist/select.mjs +1 -1
  304. package/dist/skeleton.cjs +1 -1
  305. package/dist/skeleton.mjs +1 -1
  306. package/dist/spinners.cjs +1 -1
  307. package/dist/spinners.mjs +1 -1
  308. package/dist/splash-cursor.cjs +1 -1
  309. package/dist/splash-cursor.mjs +1 -1
  310. package/dist/spotlight-card.cjs +1 -1
  311. package/dist/spotlight-card.mjs +1 -1
  312. package/dist/stepper.cjs +1 -1
  313. package/dist/stepper.mjs +1 -1
  314. package/dist/sun-to-moon-button.cjs +1 -1
  315. package/dist/sun-to-moon-button.mjs +1 -1
  316. package/dist/switch.cjs +1 -1
  317. package/dist/switch.mjs +1 -1
  318. package/dist/textarea.cjs +1 -1
  319. package/dist/textarea.mjs +1 -1
  320. package/dist/theme.cjs +1 -1
  321. package/dist/theme.mjs +1 -1
  322. package/dist/toast.cjs +1 -1
  323. package/dist/toast.mjs +1 -1
  324. package/dist/tokens.css +592 -0
  325. package/dist/tooltip.cjs +1 -1
  326. package/dist/tooltip.mjs +1 -1
  327. package/dist/typography.cjs +1 -1
  328. package/dist/typography.mjs +1 -1
  329. package/package.json +19 -5
  330. package/dist/chunks/accordion-BZ5hyz0_.cjs.map +0 -1
  331. package/dist/chunks/accordion-C_0oGZkZ.mjs.map +0 -1
  332. package/dist/chunks/alert-BdBDWqBN.cjs.map +0 -1
  333. package/dist/chunks/alert-DeVa-NR1.mjs.map +0 -1
  334. package/dist/chunks/ascii-text-BzQCLfya.mjs.map +0 -1
  335. package/dist/chunks/ascii-text-D6lVHWph.cjs.map +0 -1
  336. package/dist/chunks/button-BH1eUjae.cjs.map +0 -1
  337. package/dist/chunks/button-CmNEMp_O.mjs.map +0 -1
  338. package/dist/chunks/card-CzstAQYy.mjs.map +0 -1
  339. package/dist/chunks/card-DZGM4zLx.cjs.map +0 -1
  340. package/dist/chunks/charts-Bynf6x07.mjs +0 -448
  341. package/dist/chunks/charts-Bynf6x07.mjs.map +0 -1
  342. package/dist/chunks/charts-UYl7Ecqv.cjs +0 -485
  343. package/dist/chunks/charts-UYl7Ecqv.cjs.map +0 -1
  344. package/dist/chunks/checkbox-B3eIojWs.mjs.map +0 -1
  345. package/dist/chunks/checkbox-DQmZwRTt.cjs.map +0 -1
  346. package/dist/chunks/chip-BH6wzwat.cjs.map +0 -1
  347. package/dist/chunks/chip-cZ7-HmWw.mjs.map +0 -1
  348. package/dist/chunks/chroma-grid-CC_fFzxO.mjs.map +0 -1
  349. package/dist/chunks/chroma-grid-DtsqM4LW.cjs.map +0 -1
  350. package/dist/chunks/color-palette-Cz7vqbil.cjs +0 -1156
  351. package/dist/chunks/color-palette-Cz7vqbil.cjs.map +0 -1
  352. package/dist/chunks/color-palette-yadpDCUw.mjs +0 -1150
  353. package/dist/chunks/color-palette-yadpDCUw.mjs.map +0 -1
  354. package/dist/chunks/combobox-B9Nzlhu3.mjs +0 -108
  355. package/dist/chunks/combobox-B9Nzlhu3.mjs.map +0 -1
  356. package/dist/chunks/combobox-mAvOcg-E.cjs.map +0 -1
  357. package/dist/chunks/data-table-BRcGhJDf.cjs.map +0 -1
  358. package/dist/chunks/data-table-Dp0t_I_z.mjs.map +0 -1
  359. package/dist/chunks/date-picker-BWBkr6LG.mjs.map +0 -1
  360. package/dist/chunks/date-picker-DooielHi.cjs.map +0 -1
  361. package/dist/chunks/dialog-C6nxSfIl.mjs.map +0 -1
  362. package/dist/chunks/dialog-Cbuf8V0g.cjs.map +0 -1
  363. package/dist/chunks/drawer-DIuvgqTA.mjs +0 -105
  364. package/dist/chunks/drawer-DIuvgqTA.mjs.map +0 -1
  365. package/dist/chunks/drawer-Dn0u8Sck.cjs.map +0 -1
  366. package/dist/chunks/form-DcEuk721.cjs.map +0 -1
  367. package/dist/chunks/form-TwlDrshv.mjs.map +0 -1
  368. package/dist/chunks/hover-card-DwTVfjgN.mjs.map +0 -1
  369. package/dist/chunks/icons-CrM6pFkv.mjs.map +0 -1
  370. package/dist/chunks/icons-DYkpqWYG.cjs.map +0 -1
  371. package/dist/chunks/input-ChhwdNGk.mjs.map +0 -1
  372. package/dist/chunks/input-CoRHoZkB.cjs.map +0 -1
  373. package/dist/chunks/multi-select-combobox-BPRTZVF6.mjs +0 -108
  374. package/dist/chunks/multi-select-combobox-BPRTZVF6.mjs.map +0 -1
  375. package/dist/chunks/multi-select-combobox-DiMwJxj_.cjs +0 -115
  376. package/dist/chunks/multi-select-combobox-DiMwJxj_.cjs.map +0 -1
  377. package/dist/chunks/otp-input-CNungc1j.mjs.map +0 -1
  378. package/dist/chunks/otp-input-DaQDfI9C.cjs.map +0 -1
  379. package/dist/chunks/password-strength-meter-u4YI00zE.cjs.map +0 -1
  380. package/dist/chunks/password-strength-meter-xtMqhhFg.mjs.map +0 -1
  381. package/dist/chunks/radio-C-fPZgSY.mjs.map +0 -1
  382. package/dist/chunks/radio-mCgvEhOR.cjs.map +0 -1
  383. package/dist/chunks/select-BB-pOzI2.mjs +0 -116
  384. package/dist/chunks/select-BB-pOzI2.mjs.map +0 -1
  385. package/dist/chunks/select-BwelAQc1.cjs +0 -122
  386. package/dist/chunks/select-BwelAQc1.cjs.map +0 -1
  387. package/dist/chunks/splash-cursor-9BsoQZl0.mjs.map +0 -1
  388. package/dist/chunks/splash-cursor-Dpzl_YXx.cjs.map +0 -1
  389. package/dist/chunks/stepper-BDz6PkjV.cjs.map +0 -1
  390. package/dist/chunks/stepper-uz8iRzlY.mjs.map +0 -1
  391. package/dist/chunks/switch-DYLavKgf.mjs.map +0 -1
  392. package/dist/chunks/switch-y8oWcyLp.cjs.map +0 -1
  393. package/dist/chunks/textarea-BWkUVpm3.cjs +0 -66
  394. package/dist/chunks/textarea-BWkUVpm3.cjs.map +0 -1
  395. package/dist/chunks/textarea-Bxqe70TW.mjs +0 -60
  396. package/dist/chunks/textarea-Bxqe70TW.mjs.map +0 -1
  397. package/dist/chunks/theme-Bwu0HKqZ.mjs.map +0 -1
  398. package/dist/chunks/theme-CBtWIFMT.cjs.map +0 -1
  399. package/dist/chunks/toast-C8JRhbSo.mjs.map +0 -1
  400. package/dist/chunks/toast-DWOwpD2F.cjs.map +0 -1
@@ -1,16 +1,25 @@
1
1
  const require_chunk = require("./chunk-B_GkZjkl.cjs");
2
- const require_checkbox = require("./checkbox-DQmZwRTt.cjs");
3
- const require_combobox = require("./combobox-mAvOcg-E.cjs");
4
- const require_multi_select_combobox = require("./multi-select-combobox-DiMwJxj_.cjs");
5
- const require_input = require("./input-CoRHoZkB.cjs");
6
- const require_select = require("./select-BwelAQc1.cjs");
7
- const require_switch = require("./switch-y8oWcyLp.cjs");
8
- const require_date_picker = require("./date-picker-DooielHi.cjs");
2
+ const require_icons = require("./icons-BxIzP2jd.cjs");
3
+ const require_button = require("./button-CZL6kFzT.cjs");
4
+ const require_checkbox = require("./checkbox-yHuSw-hV.cjs");
5
+ const require_chip = require("./chip-DcBji__g.cjs");
6
+ const require_combobox = require("./combobox-BXu3s0dt.cjs");
7
+ const require_multi_select_combobox = require("./multi-select-combobox-UW0X15W7.cjs");
8
+ const require_input = require("./input-D9qZNqXV.cjs");
9
+ const require_select = require("./select-WC_kPqUP.cjs");
10
+ const require_switch = require("./switch-C5otDb4c.cjs");
11
+ const require_date_picker = require("./date-picker-W9om1j7A.cjs");
9
12
  let react = require("react");
10
13
  react = require_chunk.__toESM(react);
11
14
  let react_jsx_runtime = require("react/jsx-runtime");
12
15
  let _tanstack_react_table = require("@tanstack/react-table");
13
16
  //#region src/components/data-display/data-table/DataTable.tsx
17
+ function renderDefaultCellValue(value) {
18
+ if (value === void 0 || value === null || value === "") return "-";
19
+ if (typeof value === "boolean") return value ? "Yes" : "No";
20
+ if (Array.isArray(value)) return value.length > 0 ? value.join(", ") : "-";
21
+ return value;
22
+ }
14
23
  var FilterDropdown = ({ isOpen, onClose, children }) => {
15
24
  if (!isOpen) return null;
16
25
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
@@ -18,14 +27,15 @@ var FilterDropdown = ({ isOpen, onClose, children }) => {
18
27
  onClick: onClose,
19
28
  "aria-hidden": "true"
20
29
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
21
- className: "absolute top-full right-0 mt-2 bg-white dark:bg-neutral-800 rounded-lg shadow-lg border border-neutral-200 dark:border-neutral-700 z-50 min-w-64",
30
+ 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",
22
31
  children
23
32
  })] });
24
33
  };
25
- var FilterButton = ({ icon, label, onClick, hasActive }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
34
+ var FilterButton = ({ icon, label, onClick, hasActive }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.Button, {
26
35
  onClick,
27
36
  title: label,
28
- className: `p-2 rounded-lg transition-colors ${hasActive ? "bg-primary-100 dark:bg-primary-900 text-primary-600 dark:text-primary-400" : "text-neutral-600 dark:text-neutral-400 hover:bg-neutral-100 dark:hover:bg-neutral-700"}`,
37
+ "aria-label": label,
38
+ className: `h-10 min-w-10 px-0 py-0 shadow-none ${hasActive ? "border-accent/20 bg-accent-subtle text-accent hover:bg-accent-subtle hover:opacity-100" : "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"}`,
29
39
  children: icon
30
40
  });
31
41
  var ColumnToggle = ({ columns, onToggle, onShowAll, onHideAll }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
@@ -40,28 +50,26 @@ var ColumnToggle = ({ columns, onToggle, onShowAll, onHideAll }) => /* @__PURE__
40
50
  }),
41
51
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
42
52
  className: "space-y-2 max-h-64 overflow-y-auto",
43
- children: columns.map((col) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
44
- className: "flex items-center gap-2 cursor-pointer px-2 py-1 hover:bg-neutral-50 dark:hover:bg-neutral-700 rounded",
45
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
46
- type: "checkbox",
53
+ children: columns.map((col) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
54
+ className: "rounded-[8px] px-2 py-1 hover:bg-neutral-100 dark:hover:bg-neutral-700",
55
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_checkbox.Checkbox, {
47
56
  checked: col.visible !== false,
48
57
  onChange: () => onToggle(col.id),
49
- className: "w-4 h-4 rounded cursor-pointer accent-primary-500"
50
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
51
- className: "text-sm text-neutral-700 dark:text-neutral-300",
52
- children: col.label
53
- })]
58
+ label: col.label
59
+ })
54
60
  }, col.id))
55
61
  }),
56
62
  (onShowAll || onHideAll) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
57
- className: "flex gap-2 pt-2 border-t border-neutral-200 dark:border-neutral-700",
58
- children: [onShowAll && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
63
+ className: "flex gap-2 border-t border-neutral-200 pt-2 dark:border-neutral-700",
64
+ children: [onShowAll && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.Button, {
59
65
  onClick: onShowAll,
60
- className: "flex-1 text-xs font-semibold text-primary-500 hover:text-primary-600 py-1",
66
+ size: "small",
67
+ 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",
61
68
  children: "SHOW ALL"
62
- }), onHideAll && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
69
+ }), onHideAll && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.Button, {
63
70
  onClick: onHideAll,
64
- className: "flex-1 text-xs font-semibold text-neutral-500 hover:text-neutral-600 py-1",
71
+ size: "small",
72
+ 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",
65
73
  children: "HIDE ALL"
66
74
  })]
67
75
  })
@@ -89,36 +97,41 @@ var FilterProfile = ({ isOpen, onClose, onSaveProfile }) => {
89
97
  children: "Add new profile"
90
98
  }),
91
99
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
92
- className: "block text-sm font-medium text-primary-500 mb-2",
100
+ className: "mb-2 block text-sm font-medium text-accent",
93
101
  children: "Enter filter profile name:"
94
102
  }),
95
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
103
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_input.Input, {
96
104
  type: "text",
97
105
  value: profileName,
98
106
  onChange: (e) => setProfileName(e.target.value),
99
107
  placeholder: "Enter value",
100
- className: "w-full px-4 py-3 border-2 border-primary-500 rounded-lg bg-white dark:bg-neutral-700 text-neutral-900 dark:text-white placeholder:text-neutral-400 dark:placeholder:text-neutral-500 mb-6 focus:outline-none focus:ring-2 focus:ring-primary-300",
101
- onKeyPress: (e) => e.key === "Enter" && handleSave()
108
+ className: "",
109
+ onKeyDown: (e) => e.key === "Enter" && handleSave()
102
110
  }),
103
111
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
104
- className: "flex gap-4",
105
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
112
+ className: "flex justify-end gap-3 mt-6",
113
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.Button, {
106
114
  onClick: onClose,
107
- className: "flex-1 px-4 py-3 rounded-lg border-2 border-neutral-300 dark:border-neutral-600 text-neutral-700 dark:text-neutral-200 font-semibold hover:bg-neutral-100 dark:hover:bg-neutral-700 transition-colors flex items-center justify-center gap-2",
108
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "🗑️" }), "CANCEL"]
109
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
115
+ className: "min-w-28",
116
+ size: "medium",
117
+ children: "Cancel"
118
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.Button, {
110
119
  onClick: handleSave,
111
120
  disabled: !profileName.trim(),
112
- className: "flex-1 px-4 py-3 rounded-lg bg-neutral-900 dark:bg-white text-white dark:text-neutral-900 font-semibold hover:bg-neutral-800 dark:hover:bg-neutral-100 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",
113
- children: "SAVE"
121
+ className: "min-w-28",
122
+ size: "medium",
123
+ primary: true,
124
+ children: "Save"
114
125
  })]
115
126
  })
116
127
  ]
117
128
  })
118
129
  });
119
130
  };
120
- var ICON_BUTTON_CLASS_NAME = "p-2 rounded-lg text-neutral-400 hover:text-neutral-600 hover:bg-neutral-100 dark:hover:bg-neutral-700 transition-colors";
131
+ var ICON_BUTTON_CLASS_NAME = "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";
121
132
  var DISABLED_ICON_BUTTON_CLASS_NAME = `${ICON_BUTTON_CLASS_NAME} disabled:opacity-40 disabled:cursor-not-allowed`;
133
+ var TABLE_CONTROL_ICON_CLASS_NAME = "h-[18px] w-[18px] shrink-0";
134
+ var TABLE_COMPLEX_ICON_CLASS_NAME = "h-5 w-5 shrink-0";
122
135
  var isFilterValueEmpty = (value) => {
123
136
  if (value === void 0 || value === null) return true;
124
137
  if (typeof value === "string") return value === "";
@@ -279,22 +292,9 @@ function useAsyncFilterOptions(externalFilterOptions, filterSelectorOpen) {
279
292
  function LoadingFilterField({ label }) {
280
293
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
281
294
  className: "h-10 flex items-center justify-center bg-neutral-100 dark:bg-neutral-800 rounded-md px-3",
282
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
295
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.LoaderIcon, {
283
296
  className: "w-4 h-4 animate-spin text-neutral-400",
284
- fill: "none",
285
- viewBox: "0 0 24 24",
286
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
287
- className: "opacity-25",
288
- cx: "12",
289
- cy: "12",
290
- r: "10",
291
- stroke: "currentColor",
292
- strokeWidth: "4"
293
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
294
- className: "opacity-75",
295
- fill: "currentColor",
296
- d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
297
- })]
297
+ "aria-hidden": "true"
298
298
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
299
299
  className: "ml-2 text-sm text-neutral-500",
300
300
  children: label
@@ -340,7 +340,7 @@ function NumberRangeFilter({ value, onChange }) {
340
340
  }
341
341
  function FilterFieldControl({ filter, value, isActive, onChange }) {
342
342
  if (filter.isLoading) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LoadingFilterField, { label: filter.label });
343
- const activeClassName = isActive ? "border-primary-500" : "";
343
+ const activeClassName = isActive ? "border-accent" : "";
344
344
  switch (filter.type) {
345
345
  case "text": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_input.Input, {
346
346
  value: getStringFilterValue(value),
@@ -382,39 +382,32 @@ function FilterFieldControl({ filter, value, isActive, onChange }) {
382
382
  onChange: (values) => onChange(values),
383
383
  placeholder: filter.placeholder || filter.label,
384
384
  options: toSelectOptions(filter.options),
385
- className: isActive ? "border-primary-500 border-2" : ""
385
+ className: isActive ? "border-accent border-2" : ""
386
386
  }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_combobox.Combobox, {
387
387
  value: getStringFilterValue(value),
388
388
  onChange: (nextValue) => onChange(nextValue),
389
389
  placeholder: filter.placeholder || filter.label,
390
390
  options: toSelectOptions(filter.options),
391
- className: isActive ? "border-primary-500 border-2" : ""
391
+ className: isActive ? "border-accent border-2" : ""
392
392
  });
393
393
  }
394
394
  }
395
395
  function ToolbarIconButton({ title, onClick, disabled, children }) {
396
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
396
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.Button, {
397
397
  onClick,
398
398
  disabled,
399
399
  title,
400
- className: disabled ? DISABLED_ICON_BUTTON_CLASS_NAME : ICON_BUTTON_CLASS_NAME,
400
+ "aria-label": title,
401
+ className: disabled ? `${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` : `${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`,
401
402
  children
402
403
  });
403
404
  }
404
405
  function SearchField({ value, onChange, placeholder }) {
405
406
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
406
407
  className: "relative w-[300px]",
407
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
408
- className: "pointer-events-none absolute left-4 top-1/2 z-10 h-4 w-4 -translate-y-1/2 text-neutral-400",
409
- fill: "none",
410
- stroke: "currentColor",
411
- viewBox: "0 0 24 24",
412
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
413
- strokeLinecap: "round",
414
- strokeLinejoin: "round",
415
- strokeWidth: 2,
416
- d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
417
- })
408
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.SearchIcon, {
409
+ className: `pointer-events-none absolute left-4 top-1/2 z-10 -translate-y-1/2 text-neutral-400 ${TABLE_CONTROL_ICON_CLASS_NAME}`,
410
+ "aria-hidden": "true"
418
411
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_input.Input, {
419
412
  type: "text",
420
413
  value,
@@ -427,33 +420,32 @@ function SearchField({ value, onChange, placeholder }) {
427
420
  function RowActionsCell({ rowIndex, row, isOpen, onToggle, onClose, onRowAction }) {
428
421
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("td", {
429
422
  className: "px-2 py-3 text-right relative",
430
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
423
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.Button, {
431
424
  onClick: () => onToggle(rowIndex),
432
- className: "p-1 rounded hover:bg-neutral-100 dark:hover:bg-neutral-600 text-neutral-500",
433
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
434
- className: "w-5 h-5",
435
- fill: "currentColor",
436
- viewBox: "0 0 24 24",
437
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z" })
425
+ "aria-label": "Open row actions",
426
+ 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",
427
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.EllipsisVerticalIcon, {
428
+ className: TABLE_CONTROL_ICON_CLASS_NAME,
429
+ "aria-hidden": "true"
438
430
  })
439
431
  }), isOpen ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
440
432
  className: "fixed inset-0 z-40",
441
433
  onClick: onClose
442
434
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
443
435
  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",
444
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
436
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.Button, {
445
437
  onClick: () => {
446
438
  onRowAction?.("edit", row);
447
439
  onClose();
448
440
  },
449
- className: "w-full text-left px-4 py-2 text-sm hover:bg-neutral-50 dark:hover:bg-neutral-700",
441
+ 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",
450
442
  children: "Edit"
451
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
443
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.Button, {
452
444
  onClick: () => {
453
445
  onRowAction?.("delete", row);
454
446
  onClose();
455
447
  },
456
- className: "w-full text-left px-4 py-2 text-sm text-error hover:bg-neutral-50 dark:hover:bg-neutral-700",
448
+ 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",
457
449
  children: "Delete"
458
450
  })]
459
451
  })] }) : null]
@@ -479,59 +471,49 @@ function DataTablePagination({ table, totalCount, filteredCount }) {
479
471
  ]
480
472
  })
481
473
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
482
- className: "flex items-center gap-2",
474
+ className: "flex flex-wrap items-center justify-end gap-2",
483
475
  children: [
484
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("select", {
485
- value: pageSize,
476
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
477
+ className: "text-sm text-neutral-600 dark:text-neutral-400",
478
+ children: "Rows"
479
+ }),
480
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_select.Select, {
481
+ value: String(pageSize),
486
482
  onChange: (event) => table.setPageSize(Number(event.target.value)),
487
- className: "px-2 py-1 text-sm border border-neutral-200 dark:border-neutral-600 rounded-lg bg-white dark:bg-neutral-700 text-neutral-700 dark:text-neutral-300",
488
- children: [
483
+ "aria-label": "Rows per page",
484
+ containerClassName: "w-24 min-w-24 shrink-0",
485
+ triggerClassName: "px-3 font-medium text-neutral-900 dark:text-white",
486
+ options: [
489
487
  10,
490
488
  20,
491
489
  30,
492
490
  50,
493
491
  100
494
- ].map((size) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("option", {
495
- value: size,
496
- children: [size, " / page"]
497
- }, size))
492
+ ].map((size) => ({
493
+ value: String(size),
494
+ label: String(size)
495
+ }))
498
496
  }),
499
497
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ToolbarIconButton, {
500
498
  title: "First page",
501
499
  onClick: () => table.setPageIndex(0),
502
500
  disabled: !table.getCanPreviousPage(),
503
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
504
- className: "w-4 h-4",
505
- fill: "none",
506
- stroke: "currentColor",
507
- viewBox: "0 0 24 24",
508
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
509
- strokeLinecap: "round",
510
- strokeLinejoin: "round",
511
- strokeWidth: 2,
512
- d: "M11 19l-7-7 7-7m8 14l-7-7 7-7"
513
- })
501
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.ChevronsLeftIcon, {
502
+ className: TABLE_CONTROL_ICON_CLASS_NAME,
503
+ "aria-hidden": "true"
514
504
  })
515
505
  }),
516
506
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ToolbarIconButton, {
517
507
  title: "Previous page",
518
508
  onClick: () => table.previousPage(),
519
509
  disabled: !table.getCanPreviousPage(),
520
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
521
- className: "w-4 h-4",
522
- fill: "none",
523
- stroke: "currentColor",
524
- viewBox: "0 0 24 24",
525
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
526
- strokeLinecap: "round",
527
- strokeLinejoin: "round",
528
- strokeWidth: 2,
529
- d: "M15 19l-7-7 7-7"
530
- })
510
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.ChevronLeftIcon, {
511
+ className: TABLE_CONTROL_ICON_CLASS_NAME,
512
+ "aria-hidden": "true"
531
513
  })
532
514
  }),
533
515
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
534
- className: "px-3 py-1 text-sm text-neutral-700 dark:text-neutral-300",
516
+ className: "inline-flex h-10 shrink-0 items-center rounded-lg px-3 text-sm font-medium text-neutral-700 dark:text-neutral-300",
535
517
  children: [
536
518
  "Page ",
537
519
  pageIndex + 1,
@@ -543,34 +525,18 @@ function DataTablePagination({ table, totalCount, filteredCount }) {
543
525
  title: "Next page",
544
526
  onClick: () => table.nextPage(),
545
527
  disabled: !table.getCanNextPage(),
546
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
547
- className: "w-4 h-4",
548
- fill: "none",
549
- stroke: "currentColor",
550
- viewBox: "0 0 24 24",
551
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
552
- strokeLinecap: "round",
553
- strokeLinejoin: "round",
554
- strokeWidth: 2,
555
- d: "M9 5l7 7-7 7"
556
- })
528
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.ChevronRightIcon, {
529
+ className: TABLE_CONTROL_ICON_CLASS_NAME,
530
+ "aria-hidden": "true"
557
531
  })
558
532
  }),
559
533
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ToolbarIconButton, {
560
534
  title: "Last page",
561
535
  onClick: () => table.setPageIndex(table.getPageCount() - 1),
562
536
  disabled: !table.getCanNextPage(),
563
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
564
- className: "w-4 h-4",
565
- fill: "none",
566
- stroke: "currentColor",
567
- viewBox: "0 0 24 24",
568
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
569
- strokeLinecap: "round",
570
- strokeLinejoin: "round",
571
- strokeWidth: 2,
572
- d: "M13 5l7 7-7 7M5 5l7 7-7 7"
573
- })
537
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.ChevronsRightIcon, {
538
+ className: TABLE_CONTROL_ICON_CLASS_NAME,
539
+ "aria-hidden": "true"
574
540
  })
575
541
  })
576
542
  ]
@@ -582,37 +548,36 @@ function FilterSelectorMenu({ filterOptions, visibleFilters, onToggleFilter, onS
582
548
  className: "p-2 min-w-48 space-y-1",
583
549
  children: [
584
550
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
585
- className: "text-xs font-semibold text-neutral-500 px-2 pb-2",
551
+ className: "px-2 pb-2 text-xs font-semibold text-neutral-500 dark:text-neutral-300",
586
552
  children: "Show filters"
587
553
  }),
588
- filterOptions.map((filter) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
589
- className: "flex items-center gap-2 px-2 py-1.5 rounded-lg cursor-pointer hover:bg-neutral-50 dark:hover:bg-neutral-700",
590
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
591
- type: "checkbox",
554
+ filterOptions.map((filter) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
555
+ className: "min-w-36",
556
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_checkbox.Checkbox, {
592
557
  checked: visibleFilters.includes(filter.id),
593
558
  onChange: (event) => onToggleFilter(filter.id, event.target.checked),
594
- className: "w-4 h-4 rounded cursor-pointer accent-primary-500"
595
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
596
- className: "text-sm text-neutral-700 dark:text-neutral-300",
597
- children: filter.label
598
- })]
559
+ label: filter.label
560
+ })
599
561
  }, filter.id)),
600
562
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
601
- className: "flex gap-2 pt-2 border-t border-neutral-200 dark:border-neutral-700",
602
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
563
+ className: "flex gap-2 border-t border-neutral-200 pt-2 dark:border-neutral-700",
564
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.Button, {
603
565
  onClick: onShowAll,
604
- className: "flex-1 text-xs font-semibold text-primary-500 hover:text-primary-600 py-1",
566
+ size: "small",
567
+ 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",
605
568
  children: "SHOW ALL"
606
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
569
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.Button, {
607
570
  onClick: onHideAll,
608
- className: "flex-1 text-xs font-semibold text-neutral-500 hover:text-neutral-600 py-1",
571
+ size: "small",
572
+ 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",
609
573
  children: "HIDE ALL"
610
574
  })]
611
575
  })
612
576
  ]
613
577
  });
614
578
  }
615
- function DataTableToolbar({ searchQuery, onSearchChange, searchPlaceholder, bulkDeleteEnabled, bulkSelectionActive, selectedCount, bulkActionsContent, bulkActionCard, onToggleBulkSelection, onBulkDeleteSelected, onExport, columnMenuOpen, onToggleColumnMenu, onCloseColumnMenu, columns, onColumnToggle }) {
579
+ function DataTableToolbar({ searchQuery, onSearchChange, searchPlaceholder, bulkDeleteEnabled, bulkSelectionActive, selectedCount, bulkActionsContent, bulkActionCard, onToggleBulkSelection, onBulkDeleteSelected, onExport, columnMenuOpen, onToggleColumnMenu, onCloseColumnMenu, columns, onColumnToggle, onShowAllColumns, onHideAllColumns }) {
580
+ const hasSelectedRows = selectedCount > 0;
616
581
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
617
582
  className: "border-b border-neutral-200 px-4 py-3 dark:border-neutral-700",
618
583
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
@@ -620,31 +585,9 @@ function DataTableToolbar({ searchQuery, onSearchChange, searchPlaceholder, bulk
620
585
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
621
586
  className: "flex min-w-0 flex-1 flex-wrap items-center gap-2",
622
587
  children: [bulkDeleteEnabled ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FilterButton, {
623
- icon: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
624
- fill: "none",
625
- stroke: "currentColor",
626
- className: "h-6.5 w-6.5",
627
- viewBox: "0 0 24 24",
628
- children: [
629
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
630
- strokeLinecap: "round",
631
- strokeLinejoin: "round",
632
- strokeWidth: 1.75,
633
- d: "M4.25 10V18.85A1.25 1.25 0 005.5 20.1H14"
634
- }),
635
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
636
- strokeLinecap: "round",
637
- strokeLinejoin: "round",
638
- strokeWidth: 1.75,
639
- d: "M7 5.75h10A1.25 1.25 0 0118.25 7v10A1.25 1.25 0 0117 18.25H7A1.25 1.25 0 015.75 17V7A1.25 1.25 0 017 5.75z"
640
- }),
641
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
642
- strokeLinecap: "round",
643
- strokeLinejoin: "round",
644
- strokeWidth: 1.75,
645
- d: "m9.25 12 2.25 2.25 4.25-4.5"
646
- })
647
- ]
588
+ icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.SelectionIcon, {
589
+ className: TABLE_COMPLEX_ICON_CLASS_NAME,
590
+ "aria-hidden": "true"
648
591
  }),
649
592
  label: bulkSelectionActive ? "Disable bulk selection" : "Enable bulk selection",
650
593
  onClick: onToggleBulkSelection,
@@ -659,34 +602,18 @@ function DataTableToolbar({ searchQuery, onSearchChange, searchPlaceholder, bulk
659
602
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ToolbarIconButton, {
660
603
  onClick: onExport,
661
604
  title: "Refresh",
662
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
663
- className: "w-5 h-5",
664
- fill: "none",
665
- stroke: "currentColor",
666
- viewBox: "0 0 24 24",
667
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
668
- strokeLinecap: "round",
669
- strokeLinejoin: "round",
670
- strokeWidth: 2,
671
- d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"
672
- })
605
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.RefreshIcon, {
606
+ className: TABLE_CONTROL_ICON_CLASS_NAME,
607
+ "aria-hidden": "true"
673
608
  })
674
609
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
675
610
  className: "relative",
676
611
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ToolbarIconButton, {
677
612
  onClick: onToggleColumnMenu,
678
613
  title: "Column settings",
679
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
680
- className: "w-5 h-5",
681
- fill: "none",
682
- stroke: "currentColor",
683
- viewBox: "0 0 24 24",
684
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
685
- strokeLinecap: "round",
686
- strokeLinejoin: "round",
687
- strokeWidth: 2,
688
- d: "M4 6h16M7 12h10m-7 6h4"
689
- })
614
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.SettingsIcon, {
615
+ className: TABLE_COMPLEX_ICON_CLASS_NAME,
616
+ "aria-hidden": "true"
690
617
  })
691
618
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FilterDropdown, {
692
619
  isOpen: columnMenuOpen,
@@ -695,17 +622,22 @@ function DataTableToolbar({ searchQuery, onSearchChange, searchPlaceholder, bulk
695
622
  columns,
696
623
  onToggle: (columnId) => {
697
624
  onColumnToggle?.(columnId);
698
- }
625
+ },
626
+ onShowAll: onShowAllColumns,
627
+ onHideAll: onHideAllColumns
699
628
  })
700
629
  })]
701
630
  })]
702
631
  })]
703
- }), bulkSelectionActive && selectedCount > 0 ? bulkActionCard ?? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
704
- className: "mt-3 flex flex-col gap-3 rounded-xl border border-neutral-200/80 bg-white/90 px-4 py-3 shadow-sm backdrop-blur-xl dark:border-white/10 dark:bg-neutral-900/70 dark:shadow-black/20 lg:flex-row lg:items-center lg:justify-between",
632
+ }), bulkSelectionActive && hasSelectedRows ? bulkActionCard ?? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
633
+ 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",
705
634
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
706
635
  className: "flex min-w-0 flex-wrap items-center gap-2",
707
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
708
- className: "inline-flex items-center rounded-full border border-primary-200 bg-primary-100/80 px-2.5 py-1 text-xs font-semibold uppercase tracking-wide text-primary-700 dark:border-primary-400/20 dark:bg-primary-500/15 dark:text-primary-200",
636
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_chip.Chip, {
637
+ variant: "soft",
638
+ color: "primary",
639
+ size: "sm",
640
+ className: "uppercase tracking-wide",
709
641
  children: "Bulk actions"
710
642
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
711
643
  className: "text-sm font-medium text-neutral-900 dark:text-white",
@@ -719,21 +651,14 @@ function DataTableToolbar({ searchQuery, onSearchChange, searchPlaceholder, bulk
719
651
  })]
720
652
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
721
653
  className: "flex flex-wrap items-center gap-2",
722
- children: [bulkActionsContent, bulkDeleteEnabled ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
723
- type: "button",
654
+ children: [bulkActionsContent, bulkDeleteEnabled ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_button.Button, {
724
655
  onClick: onBulkDeleteSelected,
725
- className: "inline-flex items-center gap-2 rounded-lg border border-primary-400/30 bg-primary px-3 py-2 text-sm font-medium text-primary-foreground shadow-lg shadow-primary-500/20 transition-colors hover:bg-primary-600",
726
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
656
+ primary: true,
657
+ size: "small",
658
+ 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",
659
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.TrashIcon, {
727
660
  className: "h-4 w-4",
728
- fill: "none",
729
- stroke: "currentColor",
730
- viewBox: "0 0 24 24",
731
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
732
- strokeLinecap: "round",
733
- strokeLinejoin: "round",
734
- strokeWidth: 2,
735
- d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6M9 7V4a1 1 0 011-1h4a1 1 0 011 1v3m-7 0h8"
736
- })
661
+ "aria-hidden": "true"
737
662
  }), "Delete selected"]
738
663
  }) : null]
739
664
  })]
@@ -752,22 +677,9 @@ function LoadingTableState({ colSpan }) {
752
677
  colSpan,
753
678
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
754
679
  className: "flex flex-col items-center gap-3",
755
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
756
- className: "w-8 h-8 animate-spin text-primary-500",
757
- fill: "none",
758
- viewBox: "0 0 24 24",
759
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
760
- className: "opacity-25",
761
- cx: "12",
762
- cy: "12",
763
- r: "10",
764
- stroke: "currentColor",
765
- strokeWidth: "4"
766
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
767
- className: "opacity-75",
768
- fill: "currentColor",
769
- d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
770
- })]
680
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.LoaderIcon, {
681
+ className: "w-8 h-8 animate-spin text-accent",
682
+ "aria-hidden": "true"
771
683
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "Loading data..." })]
772
684
  })
773
685
  });
@@ -840,6 +752,11 @@ function DataTable({ columns, data, isLoading = false, onColumnToggle, pageSize
840
752
  const [selectedRowIds, setSelectedRowIds] = react.default.useState({});
841
753
  const [rowMenuOpen, setRowMenuOpen] = react.default.useState(null);
842
754
  const [searchQuery, setSearchQuery] = react.default.useState("");
755
+ const [columnVisibility, setColumnVisibility] = react.default.useState(() => Object.fromEntries(columns.map((column) => [column.id, column.visible !== false])));
756
+ const columnsVisibilitySignature = react.default.useMemo(() => columns.map((column) => `${column.id}:${column.visible !== false}`).join("|"), [columns]);
757
+ react.default.useEffect(() => {
758
+ setColumnVisibility(Object.fromEntries(columns.map((column) => [column.id, column.visible !== false])));
759
+ }, [columns, columnsVisibilitySignature]);
843
760
  const asyncFilterOptions = useAsyncFilterOptions(externalFilterOptions, filterSelectorOpen);
844
761
  const filterOptions = react.default.useMemo(() => {
845
762
  return resolveFilterOptions(columns, data, externalFilterOptions, asyncFilterOptions);
@@ -849,7 +766,11 @@ function DataTable({ columns, data, isLoading = false, onColumnToggle, pageSize
849
766
  externalFilterOptions,
850
767
  asyncFilterOptions
851
768
  ]);
852
- const visibleColumns = react.default.useMemo(() => columns.filter((column) => column.visible !== false), [columns]);
769
+ const resolvedColumns = react.default.useMemo(() => columns.map((column) => ({
770
+ ...column,
771
+ visible: columnVisibility[column.id] ?? column.visible !== false
772
+ })), [columnVisibility, columns]);
773
+ const visibleColumns = react.default.useMemo(() => resolvedColumns.filter((column) => column.visible !== false), [resolvedColumns]);
853
774
  const manualPagination = usesManualPagination(totalCount, onPaginationChange);
854
775
  const pageCount = totalCount === void 0 ? void 0 : Math.ceil(totalCount / pagination.pageSize);
855
776
  const filteredData = react.default.useMemo(() => {
@@ -865,7 +786,16 @@ function DataTable({ columns, data, isLoading = false, onColumnToggle, pageSize
865
786
  id: col.id,
866
787
  accessorKey: col.id,
867
788
  header: col.label,
868
- cell: (info) => info.getValue() || "-"
789
+ cell: (info) => {
790
+ const value = info.getValue();
791
+ if (col.renderCell) return col.renderCell({
792
+ value,
793
+ row: info.row.original,
794
+ rowIndex: info.row.index,
795
+ columnId: col.id
796
+ });
797
+ return renderDefaultCellValue(value);
798
+ }
869
799
  })), [visibleColumns]);
870
800
  const updatePagination = react.default.useCallback((updater) => {
871
801
  setPagination((previous) => {
@@ -961,6 +891,19 @@ function DataTable({ columns, data, isLoading = false, onColumnToggle, pageSize
961
891
  const handleToggleColumnMenu = react.default.useCallback(() => {
962
892
  setColumnMenuOpen((previous) => !previous);
963
893
  }, []);
894
+ const handleToggleColumnVisibility = react.default.useCallback((columnId) => {
895
+ setColumnVisibility((previous) => ({
896
+ ...previous,
897
+ [columnId]: !(previous[columnId] ?? true)
898
+ }));
899
+ onColumnToggle?.(columnId);
900
+ }, [onColumnToggle]);
901
+ const handleShowAllColumns = react.default.useCallback(() => {
902
+ setColumnVisibility(Object.fromEntries(columns.map((column) => [column.id, true])));
903
+ }, [columns]);
904
+ const handleHideAllColumns = react.default.useCallback(() => {
905
+ setColumnVisibility(Object.fromEntries(columns.map((column) => [column.id, false])));
906
+ }, [columns]);
964
907
  const handleToggleBulkSelection = react.default.useCallback(() => {
965
908
  setBulkSelectionActive((previous) => {
966
909
  if (previous) setSelectedRowIds({});
@@ -1024,13 +967,13 @@ function DataTable({ columns, data, isLoading = false, onColumnToggle, pageSize
1024
967
  className: "space-y-0",
1025
968
  children: [
1026
969
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1027
- className: "flex items-center justify-between gap-4 py-4 px-4 bg-white dark:bg-neutral-900 border border-neutral-200 dark:border-neutral-700 rounded-lg mb-4",
970
+ 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",
1028
971
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1029
972
  className: "flex items-center gap-3 flex-wrap",
1030
973
  children: filterOptions.filter((filter) => visibleFilters.includes(filter.id)).map((filter, index) => {
1031
974
  const isActive = isFilterActive(activeFilters[filter.id]);
1032
975
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1033
- className: `min-w-[200px] ${index > 0 ? "pl-3 border-l border-neutral-200 dark:border-neutral-600" : ""}`,
976
+ className: `min-w-[200px] ${index > 0 ? "border-l border-neutral-200 pl-3 dark:border-neutral-600" : ""}`,
1034
977
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FilterFieldControl, {
1035
978
  filter,
1036
979
  value: activeFilters[filter.id],
@@ -1047,17 +990,9 @@ function DataTable({ columns, data, isLoading = false, onColumnToggle, pageSize
1047
990
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ToolbarIconButton, {
1048
991
  onClick: handleToggleFilterSelector,
1049
992
  title: "Add filter",
1050
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
1051
- className: "w-5 h-5",
1052
- fill: "none",
1053
- stroke: "currentColor",
1054
- strokeWidth: 2,
1055
- viewBox: "0 0 24 24",
1056
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
1057
- strokeLinecap: "round",
1058
- strokeLinejoin: "round",
1059
- d: "M3 4h18l-7 8v6l-4 2v-8L3 4z"
1060
- })
993
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.FilterIcon, {
994
+ className: TABLE_COMPLEX_ICON_CLASS_NAME,
995
+ "aria-hidden": "true"
1061
996
  })
1062
997
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FilterDropdown, {
1063
998
  isOpen: filterSelectorOpen,
@@ -1075,21 +1010,9 @@ function DataTable({ columns, data, isLoading = false, onColumnToggle, pageSize
1075
1010
  onClick: handleResetFilters,
1076
1011
  disabled: !hasActiveFilters,
1077
1012
  title: "Clear filters",
1078
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
1079
- className: "w-5 h-5",
1080
- fill: "none",
1081
- stroke: "currentColor",
1082
- strokeWidth: 2,
1083
- viewBox: "0 0 24 24",
1084
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
1085
- strokeLinecap: "round",
1086
- strokeLinejoin: "round",
1087
- d: "M3 4h18l-7 8v6l-4 2v-8L3 4z"
1088
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
1089
- strokeLinecap: "round",
1090
- strokeLinejoin: "round",
1091
- d: "M17 17l4 4m0-4l-4 4"
1092
- })]
1013
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.FilterXIcon, {
1014
+ className: TABLE_COMPLEX_ICON_CLASS_NAME,
1015
+ "aria-hidden": "true"
1093
1016
  })
1094
1017
  }),
1095
1018
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
@@ -1097,38 +1020,18 @@ function DataTable({ columns, data, isLoading = false, onColumnToggle, pageSize
1097
1020
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ToolbarIconButton, {
1098
1021
  onClick: handleToggleProfileMenu,
1099
1022
  title: "Filter profiles",
1100
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
1101
- className: "w-5 h-5",
1102
- fill: "none",
1103
- stroke: "currentColor",
1104
- strokeWidth: 2,
1105
- viewBox: "0 0 24 24",
1106
- children: [
1107
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
1108
- cx: "9",
1109
- cy: "7",
1110
- r: "3"
1111
- }),
1112
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
1113
- strokeLinecap: "round",
1114
- strokeLinejoin: "round",
1115
- d: "M3 21v-2a4 4 0 014-4h4"
1116
- }),
1117
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
1118
- strokeLinecap: "round",
1119
- strokeLinejoin: "round",
1120
- d: "M15 12h6l-3 3.5v2.5l-1.5 1v-3.5L15 12z"
1121
- })
1122
- ]
1023
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.FilterProfileIcon, {
1024
+ className: TABLE_COMPLEX_ICON_CLASS_NAME,
1025
+ "aria-hidden": "true"
1123
1026
  })
1124
1027
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FilterDropdown, {
1125
1028
  isOpen: profileMenuOpen,
1126
1029
  onClose: () => setProfileMenuOpen(false),
1127
1030
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1128
1031
  className: "p-2 min-w-48",
1129
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
1032
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_button.Button, {
1130
1033
  onClick: handleOpenProfile,
1131
- className: "w-full text-left px-4 py-3 text-primary-500 font-medium hover:bg-neutral-50 dark:hover:bg-neutral-700 rounded-lg border-2 border-dashed border-primary-300",
1034
+ 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",
1132
1035
  children: "Save new filter profile"
1133
1036
  })
1134
1037
  })
@@ -1138,7 +1041,7 @@ function DataTable({ columns, data, isLoading = false, onColumnToggle, pageSize
1138
1041
  })]
1139
1042
  }),
1140
1043
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1141
- className: "bg-white dark:bg-neutral-800 rounded-lg border border-neutral-200 dark:border-neutral-700 overflow-hidden",
1044
+ className: "bg-background-secondary rounded-lg border border-neutral-200 dark:border-neutral-700 overflow-hidden",
1142
1045
  children: [
1143
1046
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DataTableToolbar, {
1144
1047
  searchQuery,
@@ -1155,8 +1058,10 @@ function DataTable({ columns, data, isLoading = false, onColumnToggle, pageSize
1155
1058
  columnMenuOpen,
1156
1059
  onToggleColumnMenu: handleToggleColumnMenu,
1157
1060
  onCloseColumnMenu: () => setColumnMenuOpen(false),
1158
- columns,
1159
- onColumnToggle
1061
+ columns: resolvedColumns,
1062
+ onColumnToggle: handleToggleColumnVisibility,
1063
+ onShowAllColumns: handleShowAllColumns,
1064
+ onHideAllColumns: handleHideAllColumns
1160
1065
  }),
1161
1066
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1162
1067
  className: "overflow-auto",
@@ -1164,12 +1069,12 @@ function DataTable({ columns, data, isLoading = false, onColumnToggle, pageSize
1164
1069
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("table", {
1165
1070
  className: "w-full min-w-[600px]",
1166
1071
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("thead", {
1167
- className: "sticky top-0 bg-white dark:bg-neutral-800 z-10",
1072
+ className: "sticky top-0 z-10 bg-background-secondary",
1168
1073
  children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("tr", {
1169
1074
  className: "border-b border-neutral-200 dark:border-neutral-700",
1170
1075
  children: [
1171
1076
  bulkSelectionActive ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", {
1172
- className: "w-12 px-4 py-3 bg-white dark:bg-neutral-800",
1077
+ className: "w-12 px-4 py-3 bg-background-secondary",
1173
1078
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_checkbox.Checkbox, {
1174
1079
  "aria-label": "Select all visible rows",
1175
1080
  checked: allVisibleRowsSelected,
@@ -1177,10 +1082,10 @@ function DataTable({ columns, data, isLoading = false, onColumnToggle, pageSize
1177
1082
  })
1178
1083
  }) : null,
1179
1084
  headerGroup.headers.map((header) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", {
1180
- className: "px-4 py-3 text-left text-sm font-semibold text-neutral-900 dark:text-white whitespace-nowrap bg-white dark:bg-neutral-800",
1085
+ className: "bg-background-secondary px-4 py-3 text-left text-sm font-semibold text-neutral-900 dark:text-white whitespace-nowrap",
1181
1086
  children: header.isPlaceholder ? null : (0, _tanstack_react_table.flexRender)(header.column.columnDef.header, header.getContext())
1182
1087
  }, header.id)),
1183
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { className: "w-12 bg-white dark:bg-neutral-800" })
1088
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", { className: "w-12 bg-background-secondary" })
1184
1089
  ]
1185
1090
  }, headerGroup.id))
1186
1091
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("tbody", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DataTableRows, {
@@ -1246,4 +1151,4 @@ Object.defineProperty(exports, "FilterProfile", {
1246
1151
  }
1247
1152
  });
1248
1153
 
1249
- //# sourceMappingURL=data-table-BRcGhJDf.cjs.map
1154
+ //# sourceMappingURL=data-table-9HELVsYR.cjs.map