@mdigital_ui/ui 0.2.6 → 0.2.7

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 (257) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1023 -341
  3. package/dist/accordion/index.js +3 -3
  4. package/dist/avatar/index.js +4 -0
  5. package/dist/avatar/index.js.map +1 -0
  6. package/dist/badge/index.js +3 -3
  7. package/dist/breadcrumbs/index.js +5 -5
  8. package/dist/button/index.js +4 -4
  9. package/dist/button-group/index.js +2 -2
  10. package/dist/card/index.js +2 -2
  11. package/dist/carousel/index.js +2 -2
  12. package/dist/cascader/index.js +2 -2
  13. package/dist/chart/index.js +2 -2
  14. package/dist/checkbox/index.js +3 -3
  15. package/dist/checkbox-group/index.js +2 -2
  16. package/dist/{chunk-23BPDLT4.js → chunk-27QEPVKU.js} +42 -22
  17. package/dist/chunk-27QEPVKU.js.map +1 -0
  18. package/dist/{chunk-IRNJZ754.js → chunk-2J57G7XG.js} +76 -18
  19. package/dist/chunk-2J57G7XG.js.map +1 -0
  20. package/dist/{chunk-SOIF4SHB.js → chunk-2NYVRAG4.js} +24 -15
  21. package/dist/chunk-2NYVRAG4.js.map +1 -0
  22. package/dist/{chunk-3WVJE5MF.js → chunk-2OUGJBXK.js} +19 -12
  23. package/dist/chunk-2OUGJBXK.js.map +1 -0
  24. package/dist/{chunk-YII4K64U.js → chunk-2WZVD7P3.js} +36 -10
  25. package/dist/chunk-2WZVD7P3.js.map +1 -0
  26. package/dist/{chunk-7ODPSHIQ.js → chunk-3UCZ4GMN.js} +10 -4
  27. package/dist/chunk-3UCZ4GMN.js.map +1 -0
  28. package/dist/{chunk-7YPX6NJK.js → chunk-4LSKRZOT.js} +12 -7
  29. package/dist/chunk-4LSKRZOT.js.map +1 -0
  30. package/dist/{chunk-R2FZO7AM.js → chunk-4SQOFZ3N.js} +26 -9
  31. package/dist/chunk-4SQOFZ3N.js.map +1 -0
  32. package/dist/chunk-5PUATOLR.js +127 -0
  33. package/dist/chunk-5PUATOLR.js.map +1 -0
  34. package/dist/{chunk-555KXZRK.js → chunk-6TMOKYR7.js} +6 -4
  35. package/dist/chunk-6TMOKYR7.js.map +1 -0
  36. package/dist/{chunk-6IPISGTP.js → chunk-7UCNBMCV.js} +102 -27
  37. package/dist/chunk-7UCNBMCV.js.map +1 -0
  38. package/dist/{chunk-JFGLDCAK.js → chunk-AQYOVYPS.js} +19 -7
  39. package/dist/chunk-AQYOVYPS.js.map +1 -0
  40. package/dist/{chunk-Y2CXG3PT.js → chunk-C5YO5VZS.js} +8 -8
  41. package/dist/chunk-C5YO5VZS.js.map +1 -0
  42. package/dist/{chunk-7TN4PGYF.js → chunk-CHGJX5F2.js} +49 -33
  43. package/dist/chunk-CHGJX5F2.js.map +1 -0
  44. package/dist/{chunk-22FIGRGO.js → chunk-CK6A2R66.js} +31 -7
  45. package/dist/chunk-CK6A2R66.js.map +1 -0
  46. package/dist/{chunk-INH7KYCK.js → chunk-CMGCJXE5.js} +275 -95
  47. package/dist/chunk-CMGCJXE5.js.map +1 -0
  48. package/dist/{chunk-6MYKJE6A.js → chunk-CSRMVLPR.js} +109 -27
  49. package/dist/chunk-CSRMVLPR.js.map +1 -0
  50. package/dist/{chunk-EFMKUCGX.js → chunk-DH7R6NBG.js} +8 -5
  51. package/dist/chunk-DH7R6NBG.js.map +1 -0
  52. package/dist/{chunk-7BUNJYZO.js → chunk-FEMHXG2P.js} +22 -6
  53. package/dist/chunk-FEMHXG2P.js.map +1 -0
  54. package/dist/chunk-FIGSNRWY.js +382 -0
  55. package/dist/chunk-FIGSNRWY.js.map +1 -0
  56. package/dist/{chunk-JGQOEAWL.js → chunk-FVTMKQUE.js} +5 -3
  57. package/dist/chunk-FVTMKQUE.js.map +1 -0
  58. package/dist/{chunk-QVCGNOBE.js → chunk-GBVIACYQ.js} +78 -31
  59. package/dist/chunk-GBVIACYQ.js.map +1 -0
  60. package/dist/chunk-H47C2ENJ.js +215 -0
  61. package/dist/chunk-H47C2ENJ.js.map +1 -0
  62. package/dist/chunk-HWFI4GJE.js +130 -0
  63. package/dist/chunk-HWFI4GJE.js.map +1 -0
  64. package/dist/chunk-IA42ELUP.js +72 -0
  65. package/dist/chunk-IA42ELUP.js.map +1 -0
  66. package/dist/{chunk-SGMIDNPI.js → chunk-INQI3UUI.js} +73 -19
  67. package/dist/chunk-INQI3UUI.js.map +1 -0
  68. package/dist/{chunk-IHKPZOE5.js → chunk-J525ROGL.js} +6 -4
  69. package/dist/chunk-J525ROGL.js.map +1 -0
  70. package/dist/{chunk-AVPPV5OM.js → chunk-JLS4MBHN.js} +6 -4
  71. package/dist/chunk-JLS4MBHN.js.map +1 -0
  72. package/dist/{chunk-GGREAJO5.js → chunk-KTHWXHDN.js} +10 -5
  73. package/dist/chunk-KTHWXHDN.js.map +1 -0
  74. package/dist/{chunk-35K7N4JT.js → chunk-LMR7TKDJ.js} +17 -6
  75. package/dist/chunk-LMR7TKDJ.js.map +1 -0
  76. package/dist/{chunk-BYWYC7RC.js → chunk-MRFCITKK.js} +19 -10
  77. package/dist/chunk-MRFCITKK.js.map +1 -0
  78. package/dist/{chunk-TG2AECIN.js → chunk-MXDTUN3V.js} +22 -9
  79. package/dist/chunk-MXDTUN3V.js.map +1 -0
  80. package/dist/{chunk-2OGZENFC.js → chunk-NGYLRX6F.js} +2 -16
  81. package/dist/chunk-NGYLRX6F.js.map +1 -0
  82. package/dist/{chunk-TUTOU4X6.js → chunk-NTPWR57C.js} +6 -135
  83. package/dist/chunk-NTPWR57C.js.map +1 -0
  84. package/dist/{chunk-GFQXGLFD.js → chunk-OWXQ45GS.js} +82 -62
  85. package/dist/chunk-OWXQ45GS.js.map +1 -0
  86. package/dist/{chunk-L6EVOPWH.js → chunk-P6A75RAH.js} +6 -4
  87. package/dist/chunk-P6A75RAH.js.map +1 -0
  88. package/dist/{chunk-SYDNDYZJ.js → chunk-PXOHJJBE.js} +22 -9
  89. package/dist/chunk-PXOHJJBE.js.map +1 -0
  90. package/dist/{chunk-HWSLJGT7.js → chunk-Q57THXIU.js} +28 -10
  91. package/dist/chunk-Q57THXIU.js.map +1 -0
  92. package/dist/{chunk-NQB4V5P7.js → chunk-QDHGE7IF.js} +5 -5
  93. package/dist/chunk-QDHGE7IF.js.map +1 -0
  94. package/dist/{chunk-CPPFXCNB.js → chunk-QKSDVYKF.js} +4 -4
  95. package/dist/chunk-QKSDVYKF.js.map +1 -0
  96. package/dist/{chunk-DP6AWUH5.js → chunk-ROA7BYGB.js} +49 -19
  97. package/dist/chunk-ROA7BYGB.js.map +1 -0
  98. package/dist/{chunk-XG3KLPPS.js → chunk-RPIJ2KY7.js} +9 -4
  99. package/dist/chunk-RPIJ2KY7.js.map +1 -0
  100. package/dist/{chunk-C2MZL644.js → chunk-RW4RW4DV.js} +80 -30
  101. package/dist/chunk-RW4RW4DV.js.map +1 -0
  102. package/dist/chunk-RYKVZFGB.js +607 -0
  103. package/dist/chunk-RYKVZFGB.js.map +1 -0
  104. package/dist/chunk-SAVEKACZ.js +552 -0
  105. package/dist/chunk-SAVEKACZ.js.map +1 -0
  106. package/dist/chunk-SDNT2JGC.js +143 -0
  107. package/dist/chunk-SDNT2JGC.js.map +1 -0
  108. package/dist/{chunk-SMVVCZNM.js → chunk-SGRACNBP.js} +12 -7
  109. package/dist/chunk-SGRACNBP.js.map +1 -0
  110. package/dist/{chunk-PQZB43VJ.js → chunk-TTEBZZ3T.js} +28 -11
  111. package/dist/chunk-TTEBZZ3T.js.map +1 -0
  112. package/dist/{chunk-HBEJ4S2Y.js → chunk-US4ZCMNU.js} +19 -13
  113. package/dist/chunk-US4ZCMNU.js.map +1 -0
  114. package/dist/chunk-UUP7YGOS.js +299 -0
  115. package/dist/chunk-UUP7YGOS.js.map +1 -0
  116. package/dist/{chunk-MDY3HCRC.js → chunk-VUBU7Y4F.js} +47 -18
  117. package/dist/chunk-VUBU7Y4F.js.map +1 -0
  118. package/dist/chunk-WUBMNJGC.js +141 -0
  119. package/dist/chunk-WUBMNJGC.js.map +1 -0
  120. package/dist/{chunk-TWZ5LXLL.js → chunk-WVG3QQDN.js} +45 -16
  121. package/dist/chunk-WVG3QQDN.js.map +1 -0
  122. package/dist/{chunk-NZA526GC.js → chunk-WZ2KDHFP.js} +16 -13
  123. package/dist/chunk-WZ2KDHFP.js.map +1 -0
  124. package/dist/{chunk-O2VJ6KP4.js → chunk-X5SCI7KH.js} +190 -142
  125. package/dist/chunk-X5SCI7KH.js.map +1 -0
  126. package/dist/{chunk-DV5J5NLI.js → chunk-XJCWPPMM.js} +8 -5
  127. package/dist/chunk-XJCWPPMM.js.map +1 -0
  128. package/dist/{chunk-ARK3EROZ.js → chunk-YAAV7FQG.js} +20 -12
  129. package/dist/chunk-YAAV7FQG.js.map +1 -0
  130. package/dist/{chunk-MLNIKNLI.js → chunk-YOG5GXIC.js} +57 -11
  131. package/dist/chunk-YOG5GXIC.js.map +1 -0
  132. package/dist/chunk-Z5VJ6MJP.js +234 -0
  133. package/dist/chunk-Z5VJ6MJP.js.map +1 -0
  134. package/dist/{chunk-77YTCM7G.js → chunk-ZC3E3PWH.js} +75 -32
  135. package/dist/chunk-ZC3E3PWH.js.map +1 -0
  136. package/dist/clipboard/index.js +2 -2
  137. package/dist/collapse/index.js +2 -2
  138. package/dist/command/index.js +3 -3
  139. package/dist/context-menu/index.js +4 -0
  140. package/dist/context-menu/index.js.map +1 -0
  141. package/dist/date-picker/index.js +4 -4
  142. package/dist/descriptions/index.js +2 -2
  143. package/dist/divider/index.js +4 -0
  144. package/dist/divider/index.js.map +1 -0
  145. package/dist/drawer/index.js +2 -2
  146. package/dist/dropdown/index.js +4 -4
  147. package/dist/empty/index.js +2 -2
  148. package/dist/fetching-overlay/index.js +4 -4
  149. package/dist/grid/index.js +2 -2
  150. package/dist/image/index.js +2 -2
  151. package/dist/index.d.ts +1242 -161
  152. package/dist/index.js +63 -883
  153. package/dist/index.js.map +1 -1
  154. package/dist/input/index.js +4 -4
  155. package/dist/input-group/index.js +2 -2
  156. package/dist/input-otp/index.js +2 -2
  157. package/dist/input-password/index.js +5 -5
  158. package/dist/kbd/index.js +3 -3
  159. package/dist/modal/index.js +2 -2
  160. package/dist/multi-select/index.js +4 -4
  161. package/dist/notification/index.js +3 -3
  162. package/dist/pagination/index.js +2 -2
  163. package/dist/popover/index.js +3 -3
  164. package/dist/progress/index.js +2 -2
  165. package/dist/radio/index.js +3 -3
  166. package/dist/radio-group/index.js +2 -2
  167. package/dist/rating/index.js +2 -2
  168. package/dist/ribbon/index.js +2 -2
  169. package/dist/select/index.js +5 -5
  170. package/dist/skeleton/index.js +3 -3
  171. package/dist/slider/index.js +2 -2
  172. package/dist/spinner/index.js +3 -3
  173. package/dist/stepper/index.js +2 -2
  174. package/dist/styles/base.css +169 -99
  175. package/dist/styles/global.css +1295 -721
  176. package/dist/styles/themes/dark.css +3 -1
  177. package/dist/styles/themes/light.css +3 -1
  178. package/dist/styles/themes/presets/corporate.css +126 -0
  179. package/dist/styles/themes/presets/minimal.css +126 -0
  180. package/dist/styles/themes/presets/vibrant.css +126 -0
  181. package/dist/switch/index.js +3 -3
  182. package/dist/table/index.js +10 -10
  183. package/dist/tabs/index.js +3 -3
  184. package/dist/tag/index.js +5 -0
  185. package/dist/tag/index.js.map +1 -0
  186. package/dist/textarea/index.js +2 -2
  187. package/dist/theme/index.js +3 -0
  188. package/dist/theme/index.js.map +1 -0
  189. package/dist/toggle/index.js +2 -2
  190. package/dist/toggle-group/index.js +2 -2
  191. package/dist/tooltip/index.js +3 -3
  192. package/dist/transfer/index.js +4 -4
  193. package/dist/tree/index.js +2 -2
  194. package/dist/tree-select/index.js +5 -5
  195. package/dist/upload/index.js +2 -2
  196. package/package.json +460 -72
  197. package/dist/chunk-22FIGRGO.js.map +0 -1
  198. package/dist/chunk-23BPDLT4.js.map +0 -1
  199. package/dist/chunk-2OGZENFC.js.map +0 -1
  200. package/dist/chunk-35K7N4JT.js.map +0 -1
  201. package/dist/chunk-3QKPSJTV.js +0 -120
  202. package/dist/chunk-3QKPSJTV.js.map +0 -1
  203. package/dist/chunk-3WVJE5MF.js.map +0 -1
  204. package/dist/chunk-555KXZRK.js.map +0 -1
  205. package/dist/chunk-6IPISGTP.js.map +0 -1
  206. package/dist/chunk-6MYKJE6A.js.map +0 -1
  207. package/dist/chunk-6PFBSVLK.js +0 -39
  208. package/dist/chunk-6PFBSVLK.js.map +0 -1
  209. package/dist/chunk-77YTCM7G.js.map +0 -1
  210. package/dist/chunk-7BUNJYZO.js.map +0 -1
  211. package/dist/chunk-7ODPSHIQ.js.map +0 -1
  212. package/dist/chunk-7TN4PGYF.js.map +0 -1
  213. package/dist/chunk-7YPX6NJK.js.map +0 -1
  214. package/dist/chunk-ARK3EROZ.js.map +0 -1
  215. package/dist/chunk-AVPPV5OM.js.map +0 -1
  216. package/dist/chunk-BYWYC7RC.js.map +0 -1
  217. package/dist/chunk-C2MZL644.js.map +0 -1
  218. package/dist/chunk-CPPFXCNB.js.map +0 -1
  219. package/dist/chunk-DP6AWUH5.js.map +0 -1
  220. package/dist/chunk-DV5J5NLI.js.map +0 -1
  221. package/dist/chunk-EFMKUCGX.js.map +0 -1
  222. package/dist/chunk-GFQXGLFD.js.map +0 -1
  223. package/dist/chunk-GGREAJO5.js.map +0 -1
  224. package/dist/chunk-GH3CNX5N.js +0 -178
  225. package/dist/chunk-GH3CNX5N.js.map +0 -1
  226. package/dist/chunk-HBEJ4S2Y.js.map +0 -1
  227. package/dist/chunk-HWSLJGT7.js.map +0 -1
  228. package/dist/chunk-IHKPZOE5.js.map +0 -1
  229. package/dist/chunk-INH7KYCK.js.map +0 -1
  230. package/dist/chunk-IRNJZ754.js.map +0 -1
  231. package/dist/chunk-IUUEYOMN.js +0 -470
  232. package/dist/chunk-IUUEYOMN.js.map +0 -1
  233. package/dist/chunk-JFGLDCAK.js.map +0 -1
  234. package/dist/chunk-JGQOEAWL.js.map +0 -1
  235. package/dist/chunk-L6EVOPWH.js.map +0 -1
  236. package/dist/chunk-LSQLUYTD.js +0 -192
  237. package/dist/chunk-LSQLUYTD.js.map +0 -1
  238. package/dist/chunk-MDY3HCRC.js.map +0 -1
  239. package/dist/chunk-MLNIKNLI.js.map +0 -1
  240. package/dist/chunk-NQB4V5P7.js.map +0 -1
  241. package/dist/chunk-NZA526GC.js.map +0 -1
  242. package/dist/chunk-O2VJ6KP4.js.map +0 -1
  243. package/dist/chunk-PQZB43VJ.js.map +0 -1
  244. package/dist/chunk-QVCGNOBE.js.map +0 -1
  245. package/dist/chunk-R2FZO7AM.js.map +0 -1
  246. package/dist/chunk-SGMIDNPI.js.map +0 -1
  247. package/dist/chunk-SMVVCZNM.js.map +0 -1
  248. package/dist/chunk-SOIF4SHB.js.map +0 -1
  249. package/dist/chunk-SYDNDYZJ.js.map +0 -1
  250. package/dist/chunk-TG2AECIN.js.map +0 -1
  251. package/dist/chunk-TIMRHEKH.js +0 -452
  252. package/dist/chunk-TIMRHEKH.js.map +0 -1
  253. package/dist/chunk-TUTOU4X6.js.map +0 -1
  254. package/dist/chunk-TWZ5LXLL.js.map +0 -1
  255. package/dist/chunk-XG3KLPPS.js.map +0 -1
  256. package/dist/chunk-Y2CXG3PT.js.map +0 -1
  257. package/dist/chunk-YII4K64U.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/chart/utils.ts","../src/chart/index.tsx"],"names":["RechartsLineChart","RechartsBarChart","RechartsAreaChart","RechartsComposedChart","RechartsPieChart"],"mappings":"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","file":"chunk-C5YO5VZS.js","sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const chartContainerVariants = cva(\n 'w-full rounded-lg border border-border bg-card shadow-sm p-6 transition-all duration-200 hover:shadow-md',\n {\n variants: {\n size: {\n xs: 'h-(--chart-height-xs)',\n sm: 'h-(--chart-height-sm)',\n md: 'h-(--chart-height-md)',\n lg: 'h-(--chart-height-lg)',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\n// Default color palette using theme colors\nexport const defaultColors = [\n 'var(--color-primary)',\n 'var(--color-secondary)',\n 'var(--color-success)',\n 'var(--color-warning)',\n 'var(--color-error)',\n 'var(--color-info)',\n]\n\nexport const getChartColor = (index: number): string | undefined => {\n return defaultColors[index % defaultColors.length]\n}\n\n// Shared style objects for Recharts components (uses CSS variables directly)\nexport const tooltipStyle = {\n backgroundColor: 'var(--color-card)',\n border: '1px solid var(--color-border)',\n borderRadius: 'var(--radius-md)',\n fontSize: 'var(--font-size-xs)',\n boxShadow: 'var(--shadow-md)',\n}\n\nexport const legendStyle = {\n fontSize: 'var(--font-size-xs)',\n}\n\nexport const axisTickStyle = {\n fontSize: 'var(--font-size-xs)',\n fill: 'var(--color-text-secondary)',\n}\n\nexport const axisLineStyle = {\n stroke: 'var(--color-border)',\n}\n\nexport const gridStyle = {\n stroke: 'var(--color-border)',\n opacity: 0.3,\n}\n\nexport const cursorStyle = {\n fill: 'var(--color-surface)',\n opacity: 0.5,\n}\n","import {\n Area,\n Bar,\n CartesianGrid,\n Cell,\n Legend,\n Line,\n Pie,\n AreaChart as RechartsAreaChart,\n BarChart as RechartsBarChart,\n ComposedChart as RechartsComposedChart,\n LineChart as RechartsLineChart,\n PieChart as RechartsPieChart,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type {\n AreaChartProps,\n BarChartProps,\n ChartSeries,\n ComposedChartProps,\n LineChartProps,\n PieChartProps,\n} from './types'\nimport {\n axisLineStyle,\n axisTickStyle,\n chartContainerVariants,\n cursorStyle,\n getChartColor,\n gridStyle,\n legendStyle,\n tooltipStyle,\n} from './utils'\n\n// Shared rendering logic for series\nconst renderSeriesItem = (\n seriesItem: ChartSeries,\n index: number,\n defaultType: 'line' | 'bar' | 'area',\n) => {\n const color = seriesItem.color || getChartColor(index)\n const type = seriesItem.type || defaultType\n const key = `${type}-${seriesItem.dataKey}`\n\n switch (type) {\n case 'line':\n return (\n <Line\n key={key}\n type=\"monotone\"\n dataKey={seriesItem.dataKey}\n stroke={color}\n strokeWidth={2.5}\n name={seriesItem.name || seriesItem.dataKey}\n dot={{ fill: color, strokeWidth: 2, r: 4 }}\n activeDot={{ r: 6, strokeWidth: 0 }}\n />\n )\n case 'bar':\n return (\n <Bar\n key={key}\n dataKey={seriesItem.dataKey}\n fill={color}\n name={seriesItem.name || seriesItem.dataKey}\n radius={[4, 4, 0, 0]}\n />\n )\n case 'area':\n return (\n <Area\n key={key}\n type=\"monotone\"\n dataKey={seriesItem.dataKey}\n stroke={color}\n fill={color}\n fillOpacity={0.2}\n strokeWidth={2.5}\n name={seriesItem.name || seriesItem.dataKey}\n />\n )\n default:\n return null\n }\n}\n\n// Shared chart elements\ninterface CartesianChartElementsProps {\n xAxisKey: string\n showGrid?: boolean\n showTooltip?: boolean\n showLegend?: boolean\n xAxisLabel?: string\n yAxisLabel?: string\n}\n\nconst CartesianChartElements = ({\n xAxisKey,\n showGrid,\n showTooltip,\n showLegend,\n xAxisLabel,\n yAxisLabel,\n}: CartesianChartElementsProps) => (\n <>\n {showGrid && (\n <CartesianGrid\n strokeDasharray=\"3 3\"\n {...gridStyle}\n />\n )}\n <XAxis\n dataKey={xAxisKey}\n stroke=\"var(--color-text-secondary)\"\n tick={axisTickStyle}\n axisLine={axisLineStyle}\n tickLine={axisLineStyle}\n label={\n xAxisLabel\n ? { value: xAxisLabel, position: 'bottom', ...axisTickStyle }\n : undefined\n }\n />\n <YAxis\n stroke=\"var(--color-text-secondary)\"\n tick={axisTickStyle}\n axisLine={axisLineStyle}\n tickLine={axisLineStyle}\n label={\n yAxisLabel\n ? {\n value: yAxisLabel,\n angle: -90,\n position: 'left',\n ...axisTickStyle,\n }\n : undefined\n }\n />\n {showTooltip && (\n <Tooltip\n contentStyle={tooltipStyle}\n cursor={cursorStyle}\n />\n )}\n {showLegend && (\n <Legend\n wrapperStyle={legendStyle}\n iconType=\"circle\"\n iconSize={8}\n />\n )}\n </>\n)\n\n// Line Chart Component\nexport const LineChart = React.memo<LineChartProps>(\n ({\n data,\n xAxisKey,\n series,\n size = 'md',\n className,\n loading = false,\n showGrid = true,\n showLegend = true,\n showTooltip = true,\n xAxisLabel,\n yAxisLabel,\n }) => {\n if (loading) {\n return (\n <div\n className={cn(\n chartContainerVariants({ size }),\n 'flex items-center justify-center',\n className,\n )}\n >\n <div className=\"animate-pulse text-text-secondary\">Loading chart...</div>\n </div>\n )\n }\n\n return (\n <div data-slot=\"root\" className={cn('chart_root', chartContainerVariants({ size }), className)}>\n <ResponsiveContainer\n width=\"100%\"\n height=\"100%\"\n >\n <RechartsLineChart data={data}>\n <CartesianChartElements\n xAxisKey={xAxisKey}\n showGrid={showGrid}\n showTooltip={showTooltip}\n showLegend={showLegend}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n />\n {series.map((seriesItem, index) =>\n renderSeriesItem(seriesItem, index, 'line'),\n )}\n </RechartsLineChart>\n </ResponsiveContainer>\n </div>\n )\n },\n)\n\nLineChart.displayName = 'LineChart'\n\n// Bar Chart Component\nexport const BarChart = React.memo<BarChartProps>(\n ({\n data,\n xAxisKey,\n series,\n size = 'md',\n className,\n loading = false,\n showGrid = true,\n showLegend = true,\n showTooltip = true,\n xAxisLabel,\n yAxisLabel,\n }) => {\n if (loading) {\n return (\n <div\n className={cn(\n chartContainerVariants({ size }),\n 'flex items-center justify-center',\n className,\n )}\n >\n <div className=\"animate-pulse text-text-secondary\">Loading chart...</div>\n </div>\n )\n }\n\n return (\n <div data-slot=\"root\" className={cn('chart_root', chartContainerVariants({ size }), className)}>\n <ResponsiveContainer\n width=\"100%\"\n height=\"100%\"\n >\n <RechartsBarChart data={data}>\n <CartesianChartElements\n xAxisKey={xAxisKey}\n showGrid={showGrid}\n showTooltip={showTooltip}\n showLegend={showLegend}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n />\n {series.map((seriesItem, index) =>\n renderSeriesItem(seriesItem, index, 'bar'),\n )}\n </RechartsBarChart>\n </ResponsiveContainer>\n </div>\n )\n },\n)\n\nBarChart.displayName = 'BarChart'\n\n// Area Chart Component\nexport const AreaChart = React.memo<AreaChartProps>(\n ({\n data,\n xAxisKey,\n series,\n size = 'md',\n className,\n loading = false,\n showGrid = true,\n showLegend = true,\n showTooltip = true,\n xAxisLabel,\n yAxisLabel,\n }) => {\n if (loading) {\n return (\n <div\n className={cn(\n chartContainerVariants({ size }),\n 'flex items-center justify-center',\n className,\n )}\n >\n <div className=\"animate-pulse text-text-secondary\">Loading chart...</div>\n </div>\n )\n }\n\n return (\n <div data-slot=\"root\" className={cn('chart_root', chartContainerVariants({ size }), className)}>\n <ResponsiveContainer\n width=\"100%\"\n height=\"100%\"\n >\n <RechartsAreaChart data={data}>\n <CartesianChartElements\n xAxisKey={xAxisKey}\n showGrid={showGrid}\n showTooltip={showTooltip}\n showLegend={showLegend}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n />\n {series.map((seriesItem, index) =>\n renderSeriesItem(seriesItem, index, 'area'),\n )}\n </RechartsAreaChart>\n </ResponsiveContainer>\n </div>\n )\n },\n)\n\nAreaChart.displayName = 'AreaChart'\n\n// Composed Chart Component (supports mixing line, bar, area)\nexport const ComposedChart = React.memo<ComposedChartProps>(\n ({\n data,\n xAxisKey,\n series,\n size = 'md',\n className,\n loading = false,\n showGrid = true,\n showLegend = true,\n showTooltip = true,\n xAxisLabel,\n yAxisLabel,\n }) => {\n if (loading) {\n return (\n <div\n className={cn(\n chartContainerVariants({ size }),\n 'flex items-center justify-center',\n className,\n )}\n >\n <div className=\"animate-pulse text-text-secondary\">Loading chart...</div>\n </div>\n )\n }\n\n return (\n <div data-slot=\"root\" className={cn('chart_root', chartContainerVariants({ size }), className)}>\n <ResponsiveContainer\n width=\"100%\"\n height=\"100%\"\n >\n <RechartsComposedChart data={data}>\n <CartesianChartElements\n xAxisKey={xAxisKey}\n showGrid={showGrid}\n showTooltip={showTooltip}\n showLegend={showLegend}\n xAxisLabel={xAxisLabel}\n yAxisLabel={yAxisLabel}\n />\n {series.map((seriesItem, index) =>\n renderSeriesItem(seriesItem, index, 'line'),\n )}\n </RechartsComposedChart>\n </ResponsiveContainer>\n </div>\n )\n },\n)\n\nComposedChart.displayName = 'ComposedChart'\n\n// Pie Chart Component\nexport const PieChart = React.memo<PieChartProps>(\n ({\n data,\n dataKey,\n nameKey,\n size = 'md',\n className,\n loading = false,\n showLegend = true,\n showTooltip = true,\n innerRadius = 0,\n }) => {\n if (loading) {\n return (\n <div\n className={cn(\n chartContainerVariants({ size }),\n 'flex items-center justify-center',\n className,\n )}\n >\n <div className=\"animate-pulse text-text-secondary\">Loading chart...</div>\n </div>\n )\n }\n\n return (\n <div data-slot=\"root\" className={cn('chart_root', chartContainerVariants({ size }), className)}>\n <ResponsiveContainer\n width=\"100%\"\n height=\"100%\"\n >\n <RechartsPieChart>\n {showTooltip && <Tooltip contentStyle={tooltipStyle} />}\n {showLegend && (\n <Legend\n wrapperStyle={legendStyle}\n iconType=\"circle\"\n iconSize={8}\n />\n )}\n <Pie\n data={data}\n dataKey={dataKey}\n nameKey={nameKey}\n cx=\"50%\"\n cy=\"50%\"\n innerRadius={innerRadius}\n outerRadius={80}\n label={{ ...axisTickStyle, fill: 'var(--color-text-primary)' }}\n paddingAngle={2}\n >\n {data.map((_, index) => (\n <Cell\n key={`cell-${index}`}\n fill={getChartColor(index)}\n stroke=\"var(--color-card)\"\n strokeWidth={2}\n />\n ))}\n </Pie>\n </RechartsPieChart>\n </ResponsiveContainer>\n </div>\n )\n },\n)\n\nPieChart.displayName = 'PieChart'\n\nexport type * from './types'\nexport {\n chartContainerVariants,\n getChartColor,\n tooltipStyle,\n legendStyle,\n axisTickStyle,\n axisLineStyle,\n gridStyle,\n cursorStyle,\n} from './utils'\n"]}
@@ -1,10 +1,10 @@
1
- import { toggle_group_default } from './chunk-GGREAJO5.js';
2
- import { pagination_default } from './chunk-O2VJ6KP4.js';
3
- import { input_default } from './chunk-LSQLUYTD.js';
4
- import { checkbox_default } from './chunk-PQZB43VJ.js';
5
- import { Popover, PopoverTrigger, PopoverContent } from './chunk-EFMKUCGX.js';
6
- import { button_default } from './chunk-MLNIKNLI.js';
7
- import { cn, iconSizes } from './chunk-2OGZENFC.js';
1
+ import { toggle_group_default } from './chunk-KTHWXHDN.js';
2
+ import { pagination_default } from './chunk-X5SCI7KH.js';
3
+ import { input_default } from './chunk-Z5VJ6MJP.js';
4
+ import { checkbox_default } from './chunk-TTEBZZ3T.js';
5
+ import { Popover, PopoverTrigger, PopoverContent } from './chunk-DH7R6NBG.js';
6
+ import { button_default } from './chunk-YOG5GXIC.js';
7
+ import { cn, iconSizes } from './chunk-NGYLRX6F.js';
8
8
  import { useReactTable, getGroupedRowModel, getExpandedRowModel, getPaginationRowModel, getFilteredRowModel, getSortedRowModel, getCoreRowModel, flexRender } from '@tanstack/react-table';
9
9
  import { useVirtualizer } from '@tanstack/react-virtual';
10
10
  import { Search, Columns3, ChevronDown, ChevronsUpDown, PinOff, Pin, ChevronRight, Inbox } from 'lucide-react';
@@ -61,7 +61,7 @@ function EditableCell({
61
61
  "div",
62
62
  {
63
63
  ref: containerRef,
64
- className: "relative w-full max-w-full overflow-hidden",
64
+ className: cn("table_editableCell relative w-full max-w-full overflow-hidden", className),
65
65
  children: isEditing ? /* @__PURE__ */ jsx("div", { className: "w-full", children: /* @__PURE__ */ jsx(
66
66
  input_default,
67
67
  {
@@ -72,7 +72,7 @@ function EditableCell({
72
72
  onBlur: handleSave,
73
73
  onKeyDown: handleKeyDown,
74
74
  size: inputSizeMap[size],
75
- className: cn("w-full min-w-0 max-w-full", className)
75
+ className: "w-full min-w-0 max-w-full"
76
76
  }
77
77
  ) }) : /* @__PURE__ */ jsx(
78
78
  "div",
@@ -80,8 +80,7 @@ function EditableCell({
80
80
  onClick: () => setIsEditing(true),
81
81
  className: cn(
82
82
  "cursor-text hover:bg-surface/50 rounded transition-colors min-h-[20px] px-3 w-full overflow-hidden text-ellipsis whitespace-nowrap",
83
- sizeClasses[size],
84
- className
83
+ sizeClasses[size]
85
84
  ),
86
85
  title: "Click to edit",
87
86
  children: String(value ?? "")
@@ -99,7 +98,8 @@ function TableActions({
99
98
  onVisibleColumnsChange,
100
99
  size,
101
100
  onSizeChange,
102
- color = "default"
101
+ color = "default",
102
+ className
103
103
  }) {
104
104
  const handleColumnToggle = (columnId) => {
105
105
  if (visibleColumns.includes(columnId)) {
@@ -113,7 +113,7 @@ function TableActions({
113
113
  { value: "md", label: "MD" },
114
114
  { value: "lg", label: "LG" }
115
115
  ];
116
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-4 rounded-md", children: [
116
+ return /* @__PURE__ */ jsxs("div", { className: cn("table_actions flex flex-wrap items-center gap-4 rounded-md", className), children: [
117
117
  /* @__PURE__ */ jsx("div", { className: "w-auto mr-auto", children: /* @__PURE__ */ jsx(
118
118
  input_default,
119
119
  {
@@ -206,6 +206,7 @@ var TableCell = ({
206
206
  "td",
207
207
  {
208
208
  className: cn(
209
+ "table_cell",
209
210
  cellVariants({ size }),
210
211
  "text-text-primary",
211
212
  bordered && "border-r border-border last:border-r-0",
@@ -255,6 +256,7 @@ function TableHeaderCell({
255
256
  "th",
256
257
  {
257
258
  className: cn(
259
+ "table_headerCell",
258
260
  cellVariants({ size }),
259
261
  "font-semibold text-text-primary border-b border-border relative group",
260
262
  variant === "line" && "border-b-2",
@@ -333,7 +335,7 @@ function TableRow({
333
335
  "tr",
334
336
  {
335
337
  className: cn(
336
- "border-b border-border last:border-b-0",
338
+ "table_row border-b border-border last:border-b-0",
337
339
  striped && index % 2 === 1 && "bg-surface/50",
338
340
  hoverable && "hover:bg-surface cursor-pointer",
339
341
  onRowClick && "cursor-pointer",
@@ -354,12 +356,13 @@ TableRow.displayName = "TableRow";
354
356
  var TableSkeleton = ({
355
357
  rows = 5,
356
358
  columns,
357
- size = "md"
359
+ size = "md",
360
+ className
358
361
  }) => {
359
362
  return /* @__PURE__ */ jsx(Fragment, { children: Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ jsx(
360
363
  "tr",
361
364
  {
362
- className: "border-b border-border",
365
+ className: cn("table_skeleton border-b border-border", className),
363
366
  children: Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */ jsx(
364
367
  "td",
365
368
  {
@@ -377,6 +380,9 @@ function Table({
377
380
  data,
378
381
  columns,
379
382
  columnGroups,
383
+ caption,
384
+ showCaption = false,
385
+ "aria-label": ariaLabel,
380
386
  variant = "outline",
381
387
  size: initialSize = "md",
382
388
  color = "default",
@@ -408,7 +414,8 @@ function Table({
408
414
  onCellEdit,
409
415
  pinnedRowIds = [],
410
416
  onPinnedRowsChange,
411
- className
417
+ className,
418
+ classNames
412
419
  }) {
413
420
  const [sorting, setSorting] = useState([]);
414
421
  const [columnFilters, setColumnFilters] = useState([]);
@@ -735,16 +742,17 @@ function Table({
735
742
  {
736
743
  rows: loadingRows,
737
744
  columns: columnsWithPinning.length,
738
- size
745
+ size,
746
+ className: classNames?.skeleton
739
747
  }
740
748
  );
741
749
  }
742
750
  if (allRowsOrdered.length === 0) {
743
- return /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx(
751
+ return /* @__PURE__ */ jsx("tr", { className: "table_empty", children: /* @__PURE__ */ jsx(
744
752
  "td",
745
753
  {
746
754
  colSpan: columnsWithPinning.length,
747
- className: "px-4 py-12 text-center",
755
+ className: cn("px-4 py-12 text-center", classNames?.empty),
748
756
  children: emptyState || /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center gap-2 text-text-secondary", children: [
749
757
  /* @__PURE__ */ jsx(Inbox, { className: "w-12 h-12 opacity-20" }),
750
758
  /* @__PURE__ */ jsx("p", { className: "text-sm", children: "No data available" })
@@ -777,7 +785,7 @@ function Table({
777
785
  hoverable,
778
786
  onRowClick: () => handleRowClick(row, row.original),
779
787
  isPinned: pinnedRows.includes(row.id),
780
- className: cn(isLastVirtualRow && "border-b-0"),
788
+ className: cn(isLastVirtualRow && "border-b-0", classNames?.row),
781
789
  children: row.getVisibleCells().map((cell) => {
782
790
  const isPinnedLeft = cell.column.getIsPinned() === "left";
783
791
  const isPinnedRight = cell.column.getIsPinned() === "right";
@@ -787,6 +795,7 @@ function Table({
787
795
  size,
788
796
  bordered,
789
797
  fixed: isPinnedLeft ? "left" : isPinnedRight ? "right" : void 0,
798
+ className: classNames?.cell,
790
799
  children: cell.getIsGrouped() ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
791
800
  /* @__PURE__ */ jsx(
792
801
  "button",
@@ -844,6 +853,7 @@ function Table({
844
853
  hoverable,
845
854
  onRowClick: () => handleRowClick(row, row.original),
846
855
  isPinned: pinnedRows.includes(row.id),
856
+ className: classNames?.row,
847
857
  children: row.getVisibleCells().map((cell) => {
848
858
  const isPinnedLeft = cell.column.getIsPinned() === "left";
849
859
  const isPinnedRight = cell.column.getIsPinned() === "right";
@@ -853,6 +863,7 @@ function Table({
853
863
  size,
854
864
  bordered,
855
865
  fixed: isPinnedLeft ? "left" : isPinnedRight ? "right" : void 0,
866
+ className: classNames?.cell,
856
867
  children: cell.getIsGrouped() ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
857
868
  /* @__PURE__ */ jsx(
858
869
  "button",
@@ -931,7 +942,7 @@ function Table({
931
942
  ] }),
932
943
  color,
933
944
  size: "sm",
934
- className: cn("flex", getPaginationPositionClasses())
945
+ className: cn("table_pagination flex", getPaginationPositionClasses(), classNames?.pagination)
935
946
  }
936
947
  );
937
948
  };
@@ -944,7 +955,7 @@ function Table({
944
955
  });
945
956
  setColumnVisibility(newVisibility);
946
957
  };
947
- return /* @__PURE__ */ jsxs("div", { className: "w-full space-y-4", children: [
958
+ return /* @__PURE__ */ jsxs("div", { className: cn("table_root w-full space-y-4", classNames?.root), children: [
948
959
  enableActions && /* @__PURE__ */ jsx(
949
960
  TableActions,
950
961
  {
@@ -955,7 +966,8 @@ function Table({
955
966
  onVisibleColumnsChange: handleVisibleColumnsChange,
956
967
  size,
957
968
  onSizeChange: setSize,
958
- color
969
+ color,
970
+ className: classNames?.actions
959
971
  }
960
972
  ),
961
973
  shouldShowTopPagination && renderPagination(),
@@ -964,9 +976,10 @@ function Table({
964
976
  {
965
977
  ref: tableContainerRef,
966
978
  className: cn(
967
- "overflow-auto rounded-md",
979
+ "table_wrapper overflow-auto rounded-md",
968
980
  enableVirtualization && "max-h-[500px]",
969
- variant === "outline" && "border border-border"
981
+ variant === "outline" && "border border-border",
982
+ classNames?.wrapper
970
983
  ),
971
984
  children: /* @__PURE__ */ jsxs(
972
985
  "table",
@@ -977,10 +990,12 @@ function Table({
977
990
  variant === "ghost" && "border-0",
978
991
  className
979
992
  ),
993
+ "aria-label": ariaLabel,
980
994
  children: [
981
- /* @__PURE__ */ jsxs("thead", { className: "bg-surface sticky top-0 z-30", children: [
995
+ caption && /* @__PURE__ */ jsx("caption", { className: cn(!showCaption && "sr-only"), children: caption }),
996
+ /* @__PURE__ */ jsxs("thead", { className: cn("table_header bg-surface sticky top-0 z-30", classNames?.header), children: [
982
997
  renderColumnGroups(),
983
- table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx("tr", { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx(
998
+ table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx("tr", { className: cn("table_headerRow", classNames?.headerRow), children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx(
984
999
  TableHeaderCell,
985
1000
  {
986
1001
  header,
@@ -988,13 +1003,14 @@ function Table({
988
1003
  variant,
989
1004
  color,
990
1005
  bordered,
991
- enableColumnPinning
1006
+ enableColumnPinning,
1007
+ className: classNames?.headerCell
992
1008
  },
993
1009
  header.id
994
1010
  )) }, headerGroup.id))
995
1011
  ] }),
996
- /* @__PURE__ */ jsx("tbody", { children: renderRows() }),
997
- footer && /* @__PURE__ */ jsx("tfoot", { className: "bg-surface border-t border-border sticky bottom-0 z-30", children: table.getFooterGroups().map((footerGroup) => /* @__PURE__ */ jsx("tr", { children: footerGroup.headers.map((header) => {
1012
+ /* @__PURE__ */ jsx("tbody", { className: cn("table_body", classNames?.body), children: renderRows() }),
1013
+ footer && /* @__PURE__ */ jsx("tfoot", { className: cn("table_footer bg-surface border-t border-border sticky bottom-0 z-30", classNames?.footer), children: table.getFooterGroups().map((footerGroup) => /* @__PURE__ */ jsx("tr", { children: footerGroup.headers.map((header) => {
998
1014
  const isPinnedLeft = header.column.getIsPinned() === "left";
999
1015
  const isPinnedRight = header.column.getIsPinned() === "right";
1000
1016
  return /* @__PURE__ */ jsx(
@@ -1026,5 +1042,5 @@ Table.displayName = "Table";
1026
1042
  var table_default = Table;
1027
1043
 
1028
1044
  export { EditableCell, TableActions, TableCell, TableHeaderCell, TableRow, TableSkeleton, table_default };
1029
- //# sourceMappingURL=chunk-7TN4PGYF.js.map
1030
- //# sourceMappingURL=chunk-7TN4PGYF.js.map
1045
+ //# sourceMappingURL=chunk-CHGJX5F2.js.map
1046
+ //# sourceMappingURL=chunk-CHGJX5F2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/table/EditableCell.tsx","../src/table/TableActions.tsx","../src/table/variants.ts","../src/table/TableCell.tsx","../src/table/TableHeaderCell.tsx","../src/table/TableRow.tsx","../src/table/TableSkeleton.tsx","../src/table/index.tsx"],"names":["jsx","jsxs","_","useState","useRef","useEffect","table","ChevronDown","Pin","PinOff","Fragment","pageSize"],"mappings":"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","file":"chunk-CHGJX5F2.js","sourcesContent":["'use client'\n\nimport { useEffect, useRef, useState } from 'react'\n\nimport Input from '../input'\nimport { cn } from '../utils'\nimport type { TableSize } from './types'\n\ninterface EditableCellProps<TValue = unknown> {\n value: TValue\n onValueChange: (value: TValue) => void\n size?: TableSize\n className?: string\n}\n\nexport function EditableCell<TValue = unknown>({\n value,\n onValueChange,\n size = 'md',\n className,\n}: EditableCellProps<TValue>) {\n const [isEditing, setIsEditing] = useState(false)\n const [editValue, setEditValue] = useState(String(value ?? ''))\n const inputRef = useRef<HTMLInputElement>(null)\n const containerRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (isEditing && inputRef.current) {\n inputRef.current.focus()\n inputRef.current.select()\n }\n }, [isEditing])\n\n useEffect(() => {\n setEditValue(String(value ?? ''))\n }, [value])\n\n const handleSave = () => {\n setIsEditing(false)\n if (editValue !== String(value ?? '')) {\n onValueChange(editValue as TValue)\n }\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n handleSave()\n } else if (e.key === 'Escape') {\n setEditValue(String(value ?? ''))\n setIsEditing(false)\n }\n }\n\n const sizeClasses = {\n xs: 'text-xs py-0.5',\n sm: 'text-sm py-1',\n md: 'text-base py-1.5',\n lg: 'text-lg py-2',\n }\n\n const inputSizeMap = {\n xs: 'sm' as const,\n sm: 'sm' as const,\n md: 'md' as const,\n lg: 'lg' as const,\n }\n\n return (\n <div\n ref={containerRef}\n className={cn('table_editableCell relative w-full max-w-full overflow-hidden', className)}\n >\n {isEditing ? (\n <div className=\"w-full\">\n <Input\n ref={inputRef}\n type=\"text\"\n value={editValue}\n onChange={(e) => setEditValue(e.target.value)}\n onBlur={handleSave}\n onKeyDown={handleKeyDown}\n size={inputSizeMap[size]}\n className=\"w-full min-w-0 max-w-full\"\n />\n </div>\n ) : (\n <div\n onClick={() => setIsEditing(true)}\n className={cn(\n 'cursor-text hover:bg-surface/50 rounded transition-colors min-h-[20px] px-3 w-full overflow-hidden text-ellipsis whitespace-nowrap',\n sizeClasses[size],\n )}\n title=\"Click to edit\"\n >\n {String(value ?? '')}\n </div>\n )}\n </div>\n )\n}\n\nEditableCell.displayName = 'EditableCell'\n","'use client'\n\nimport { Columns3, Search } from 'lucide-react'\n\nimport Button from '../button'\nimport Checkbox from '../checkbox'\nimport Input from '../input'\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover'\nimport ToggleGroup from '../toggle-group'\nimport { cn, iconSizes } from '../utils'\nimport type { TableColor, TableSize } from './types'\n\ninterface TableActionsProps {\n searchValue: string\n onSearchChange: (value: string) => void\n visibleColumns: string[]\n allColumns: Array<{ id: string; label: string }>\n onVisibleColumnsChange: (columns: string[]) => void\n size: TableSize\n onSizeChange: (size: TableSize) => void\n color?: TableColor\n className?: string\n}\n\nexport function TableActions({\n searchValue,\n onSearchChange,\n visibleColumns,\n allColumns,\n onVisibleColumnsChange,\n size,\n onSizeChange,\n color = 'default',\n className,\n}: TableActionsProps) {\n const handleColumnToggle = (columnId: string) => {\n if (visibleColumns.includes(columnId)) {\n onVisibleColumnsChange(visibleColumns.filter((id) => id !== columnId))\n } else {\n onVisibleColumnsChange([...visibleColumns, columnId])\n }\n }\n\n const sizeOptions = [\n { value: 'sm', label: 'SM' },\n { value: 'md', label: 'MD' },\n { value: 'lg', label: 'LG' },\n ]\n\n return (\n <div className={cn('table_actions flex flex-wrap items-center gap-4 rounded-md', className)}>\n {/* Search Input - Left */}\n <div className=\"w-auto mr-auto\">\n <Input\n type=\"text\"\n placeholder=\"Search...\"\n value={searchValue}\n onChange={(e) => onSearchChange(e.target.value)}\n size=\"sm\"\n rightIcon={<Search className={iconSizes[size]} />}\n />\n </div>\n\n {/* Column Visibility Selector */}\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n leftIcon={<Columns3 className={iconSizes[size]} />}\n >\n Columns\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-56 p-2\">\n <div className=\"space-y-1 max-h-[300px] overflow-y-auto\">\n {allColumns.map((col) => (\n <label\n key={col.id}\n className=\"flex items-center gap-2 px-3 py-2 hover:bg-surface rounded cursor-pointer\"\n >\n <Checkbox\n checked={visibleColumns.includes(col.id)}\n onChange={() => handleColumnToggle(col.id)}\n color={color === 'default' ? 'primary' : color}\n size=\"sm\"\n />\n <span className=\"text-sm text-text-primary\">{col.label}</span>\n </label>\n ))}\n </div>\n </PopoverContent>\n </Popover>\n\n {/* Size Toggle Group */}\n <ToggleGroup\n options={sizeOptions}\n value={size}\n onChange={(value) => onSizeChange(value as TableSize)}\n color={color}\n size=\"sm\"\n variant=\"default\"\n />\n </div>\n )\n}\n\nTableActions.displayName = 'TableActions'\n","import { cva } from 'class-variance-authority'\n\nexport const tableVariants = cva('w-full border-collapse', {\n variants: {\n variant: {\n outline: '',\n line: '',\n ghost: '',\n },\n },\n defaultVariants: {\n variant: 'outline',\n },\n})\n\nexport const cellVariants = cva('text-left transition-colors', {\n variants: {\n size: {\n xs: 'px-2 py-1 text-xs',\n sm: 'px-3 py-2 text-sm',\n md: 'px-4 py-3 text-base',\n lg: 'px-6 py-4 text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n","import { cn } from '../utils'\nimport type { TableSize } from './types'\nimport { cellVariants } from './variants'\n\ninterface TableCellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {\n size?: TableSize\n bordered?: boolean\n fixed?: 'left' | 'right'\n}\n\nexport const TableCell = ({\n size = 'md',\n bordered = false,\n fixed,\n className,\n children,\n ...props\n}: TableCellProps) => {\n return (\n <td\n className={cn(\n 'table_cell',\n cellVariants({ size }),\n 'text-text-primary',\n bordered && 'border-r border-border last:border-r-0',\n fixed === 'left' && 'sticky left-0 bg-background z-10',\n fixed === 'right' && 'sticky right-0 bg-background z-10',\n className,\n )}\n {...props}\n >\n {children}\n </td>\n )\n}\n\nTableCell.displayName = 'TableCell'\n","'use client'\n\nimport type { Header } from '@tanstack/react-table'\nimport { ChevronDown, ChevronsUpDown, Pin, PinOff } from 'lucide-react'\n\nimport { cn } from '../utils'\nimport type { TableColor, TableSize, TableVariant } from './types'\nimport { cellVariants } from './variants'\n\ninterface TableHeaderCellProps<TData>\n extends React.ThHTMLAttributes<HTMLTableCellElement> {\n header: Header<TData, unknown>\n size?: TableSize\n variant?: TableVariant\n color?: TableColor\n bordered?: boolean\n enableColumnPinning?: boolean\n}\n\nexport function TableHeaderCell<TData>({\n header,\n size = 'md',\n variant = 'outline',\n color = 'default',\n bordered = false,\n enableColumnPinning = false,\n className,\n ...props\n}: TableHeaderCellProps<TData>) {\n const isPinnedLeft = header.column.getIsPinned() === 'left'\n const isPinnedRight = header.column.getIsPinned() === 'right'\n\n const colorHoverClasses = {\n default: 'hover:bg-surface',\n primary: 'hover:bg-primary/10',\n secondary: 'hover:bg-secondary/10',\n accent: 'hover:bg-accent/10',\n success: 'hover:bg-success/10',\n error: 'hover:bg-error/10',\n warning: 'hover:bg-warning/10',\n info: 'hover:bg-info/10',\n }\n\n const colorIconClasses = {\n default: 'text-text-primary',\n primary: 'text-primary',\n secondary: 'text-secondary',\n accent: 'text-accent',\n success: 'text-success',\n error: 'text-error',\n warning: 'text-warning',\n info: 'text-info',\n }\n\n return (\n <th\n className={cn(\n 'table_headerCell',\n cellVariants({ size }),\n 'font-semibold text-text-primary border-b border-border relative group',\n variant === 'line' && 'border-b-2',\n bordered && 'border-r border-border last:border-r-0',\n header.column.getCanSort() &&\n 'cursor-pointer select-none hover:bg-background',\n isPinnedLeft && 'sticky left-0 bg-surface z-20',\n isPinnedRight && 'sticky right-0 bg-surface z-20',\n className,\n )}\n onClick={header.column.getToggleSortingHandler()}\n {...props}\n >\n <div className=\"flex items-center justify-between gap-2\">\n <span className=\"flex-1\">\n {header.isPlaceholder\n ? null\n : typeof header.column.columnDef.header === 'function'\n ? header.column.columnDef.header(header.getContext())\n : header.column.columnDef.header}\n </span>\n <div className=\"flex items-center gap-1\">\n {header.column.getCanSort() && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n header.column.toggleSorting()\n }}\n className={cn(\n 'p-1 rounded transition-all',\n header.column.getIsSorted()\n ? `opacity-100 ${colorHoverClasses[color]}`\n : `opacity-0 group-hover:opacity-100 ${colorHoverClasses[color]}`,\n header.column.getIsSorted() && colorIconClasses[color],\n )}\n >\n {header.column.getIsSorted() === 'asc' ? (\n <ChevronDown className=\"w-3.5 h-3.5 rotate-180\" />\n ) : header.column.getIsSorted() === 'desc' ? (\n <ChevronDown className=\"w-3.5 h-3.5\" />\n ) : (\n <ChevronsUpDown className=\"w-3.5 h-3.5\" />\n )}\n </button>\n )}\n {enableColumnPinning && header.column.getCanPin() && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n const isPinned = header.column.getIsPinned()\n if (isPinned) {\n header.column.pin(false)\n } else {\n header.column.pin('left')\n }\n }}\n className={cn(\n 'p-1 rounded transition-all',\n isPinnedLeft || isPinnedRight\n ? `opacity-100 ${colorHoverClasses[color]} ${colorIconClasses[color]}`\n : `opacity-0 group-hover:opacity-100 ${colorHoverClasses[color]}`,\n )}\n >\n {isPinnedLeft || isPinnedRight ? (\n <PinOff className=\"w-3.5 h-3.5\" />\n ) : (\n <Pin className=\"w-3.5 h-3.5\" />\n )}\n </button>\n )}\n </div>\n </div>\n </th>\n )\n}\n\nTableHeaderCell.displayName = 'TableHeaderCell'\n","'use client'\n\nimport type { Row } from '@tanstack/react-table'\n\nimport { cn } from '../utils'\n\ninterface TableRowProps<TData>\n extends React.HTMLAttributes<HTMLTableRowElement> {\n row: Row<TData>\n index: number\n striped?: boolean\n hoverable?: boolean\n onRowClick?: (row: TData) => void\n isPinned?: boolean\n isExpanded?: boolean\n}\n\nexport function TableRow<TData>({\n row,\n index,\n striped = false,\n hoverable = true,\n onRowClick,\n isPinned = false,\n isExpanded = false,\n className,\n children,\n ...props\n}: TableRowProps<TData>) {\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTableRowElement>) => {\n if (onRowClick && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n onRowClick(row.original)\n }\n }\n\n return (\n <tr\n className={cn(\n 'table_row border-b border-border last:border-b-0',\n striped && index % 2 === 1 && 'bg-surface/50',\n hoverable && 'hover:bg-surface cursor-pointer',\n onRowClick && 'cursor-pointer',\n isPinned && 'bg-primary/5 border-primary/20',\n row.getIsSelected() && 'bg-primary/10',\n className,\n )}\n onClick={() => onRowClick?.(row.original)}\n onKeyDown={handleKeyDown}\n tabIndex={onRowClick ? 0 : undefined}\n role={onRowClick ? 'button' : undefined}\n {...props}\n >\n {children}\n </tr>\n )\n}\n\nTableRow.displayName = 'TableRow'\n","import { cn } from '../utils'\nimport type { TableSize } from './types'\nimport { cellVariants } from './variants'\n\ninterface TableSkeletonProps {\n rows?: number\n columns: number\n size?: TableSize\n className?: string\n}\n\nexport const TableSkeleton = ({\n rows = 5,\n columns,\n size = 'md',\n className,\n}: TableSkeletonProps) => {\n return (\n <>\n {Array.from({ length: rows }).map((_, rowIndex) => (\n <tr\n key={rowIndex}\n className={cn('table_skeleton border-b border-border', className)}\n >\n {Array.from({ length: columns }).map((_, colIndex) => (\n <td\n key={colIndex}\n className={cn(cellVariants({ size }))}\n >\n <div className=\"animate-pulse\">\n <div className=\"h-4 bg-surface rounded w-full\" />\n </div>\n </td>\n ))}\n </tr>\n ))}\n </>\n )\n}\n\nTableSkeleton.displayName = 'TableSkeleton'\n","'use client'\n\nimport {\n flexRender,\n getCoreRowModel,\n getExpandedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n type ColumnFiltersState,\n type ColumnPinningState,\n type ExpandedState,\n type GroupingState,\n type Row,\n type SortingState,\n type VisibilityState,\n} from '@tanstack/react-table'\nimport { useVirtualizer } from '@tanstack/react-virtual'\nimport { ChevronDown, ChevronRight, Inbox, Pin, PinOff } from 'lucide-react'\nimport React, { useEffect, useMemo, useRef, useState } from 'react'\n\nimport Checkbox from '../checkbox'\nimport Pagination from '../pagination'\nimport { cn, iconSizes } from '../utils'\nimport { EditableCell } from './EditableCell'\nimport { TableActions } from './TableActions'\nimport { TableCell } from './TableCell'\nimport { TableHeaderCell } from './TableHeaderCell'\nimport { TableRow } from './TableRow'\nimport { TableSkeleton } from './TableSkeleton'\nimport type {\n TableCellContext,\n TableHeaderContext,\n TableProps,\n TableSize,\n} from './types'\nimport { cellVariants } from './variants'\n\nfunction Table<TData>({\n data,\n columns,\n columnGroups,\n caption,\n showCaption = false,\n 'aria-label': ariaLabel,\n variant = 'outline',\n size: initialSize = 'md',\n color = 'default',\n striped = false,\n hoverable = true,\n bordered = false,\n enableSorting = true,\n enableFiltering = false,\n enablePagination = false,\n enableRowSelection = false,\n enableMultiRowSelection = true,\n enableRowPinning = false,\n enableExpandable = false,\n enableGrouping = false,\n enableVirtualization = false,\n enableClickToSelect = false,\n enableColumnPinning = false,\n enableActions = false,\n paginationPosition = 'bottomcenter',\n expandedContent,\n footer,\n emptyState,\n loading = false,\n loadingRows = 5,\n pageSize = 10,\n pageSizeOptions = [5, 10, 20, 50],\n onRowClick,\n onSelectionChange,\n onCellEdit,\n pinnedRowIds = [],\n onPinnedRowsChange,\n className,\n classNames,\n}: TableProps<TData>) {\n const [sorting, setSorting] = useState<SortingState>([])\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([])\n const [rowSelection, setRowSelection] = useState({})\n const [expanded, setExpanded] = useState<ExpandedState>({})\n const [grouping, setGrouping] = useState<GroupingState>([])\n const [pinnedRows, setPinnedRows] = useState<string[]>(pinnedRowIds)\n const [columnPinning, setColumnPinning] = useState<ColumnPinningState>({\n left: [],\n right: [],\n })\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({})\n const [searchValue, setSearchValue] = useState('')\n const [size, setSize] = useState<TableSize>(initialSize)\n\n const tableContainerRef = useRef<HTMLDivElement>(null)\n const prevAutoPinnedIdsRef = useRef<string>('')\n\n // Memoize auto-pinned IDs to prevent infinite loops\n const autoPinnedIds = useMemo(() => {\n if (!enableRowPinning || data.length === 0) return []\n\n return data\n .map((row, index) => ({ row, id: String(index) }))\n .filter(({ row }) => (row as Record<string, unknown>).pin === true)\n .map(({ id }) => id)\n }, [data, enableRowPinning])\n\n // Initialize pinned rows from data\n useEffect(() => {\n if (autoPinnedIds.length > 0) {\n const combinedPinnedIds = [\n ...new Set([...pinnedRowIds, ...autoPinnedIds]),\n ]\n\n // Only update if auto-pinned IDs changed (use string comparison to avoid array reference issues)\n const autoPinnedIdsStr = autoPinnedIds.sort().join(',')\n if (autoPinnedIdsStr !== prevAutoPinnedIdsRef.current) {\n prevAutoPinnedIdsRef.current = autoPinnedIdsStr\n setPinnedRows(combinedPinnedIds)\n }\n }\n }, [autoPinnedIds, pinnedRowIds])\n\n // Initialize column pinning from column definitions\n useEffect(() => {\n if (enableColumnPinning && columns.length > 0) {\n const leftPinned = columns\n .filter((col) => (col as unknown as Record<string, unknown>).pin === 'left')\n .map(\n (col) =>\n (col.id as string) ||\n ((col as unknown as Record<string, unknown>).accessorKey as string),\n )\n const rightPinned = columns\n .filter((col) => (col as unknown as Record<string, unknown>).pin === 'right')\n .map(\n (col) =>\n (col.id as string) ||\n ((col as unknown as Record<string, unknown>).accessorKey as string),\n )\n\n if (leftPinned.length > 0 || rightPinned.length > 0) {\n setColumnPinning({\n left: leftPinned,\n right: rightPinned,\n })\n }\n }\n }, [columns, enableColumnPinning])\n\n // Add selection column if row selection is enabled\n const enhancedColumns = useMemo(\n () =>\n enableRowSelection\n ? [\n {\n id: 'select',\n header: ({ table }: TableHeaderContext<TData>) =>\n enableMultiRowSelection ? (\n <Checkbox\n checked={table.getIsAllRowsSelected()}\n indeterminate={table.getIsSomeRowsSelected()}\n onChange={table.getToggleAllRowsSelectedHandler()}\n size=\"sm\"\n />\n ) : null,\n cell: ({ row }: TableCellContext<TData>) => (\n <Checkbox\n checked={row.getIsSelected()}\n disabled={!row.getCanSelect()}\n onChange={row.getToggleSelectedHandler()}\n size=\"sm\"\n />\n ),\n size: 50,\n },\n ...columns,\n ]\n : columns,\n [columns, enableRowSelection, enableMultiRowSelection],\n )\n\n // Add expand column if expandable is enabled\n const finalColumns = useMemo(\n () =>\n enableExpandable\n ? [\n {\n id: 'expand',\n header: () => null,\n cell: ({ row }: TableCellContext<TData>) => (\n <button\n onClick={(e) => {\n e.stopPropagation()\n row.toggleExpanded()\n }}\n className=\"text-text-secondary hover:text-text-primary transition-colors\"\n aria-label={\n row.getIsExpanded() ? 'Collapse row' : 'Expand row'\n }\n aria-expanded={row.getIsExpanded()}\n >\n {row.getIsExpanded() ? (\n <ChevronDown\n className={iconSizes[size]}\n aria-hidden=\"true\"\n />\n ) : (\n <ChevronRight\n className={iconSizes[size]}\n aria-hidden=\"true\"\n />\n )}\n </button>\n ),\n size: 50,\n },\n ...enhancedColumns,\n ]\n : enhancedColumns,\n [enhancedColumns, enableExpandable],\n )\n\n // Add pin column if row pinning is enabled\n const columnsWithPinning = useMemo(\n () =>\n enableRowPinning\n ? [\n ...finalColumns,\n {\n id: 'pin',\n header: () => <Pin className=\"w-4 h-4 text-text-secondary\" />,\n cell: ({ row }: TableCellContext<TData>) => {\n const rowId = row.id\n const isPinned = pinnedRows.includes(rowId)\n\n return (\n <button\n onClick={(e) => {\n e.stopPropagation()\n const newPinnedRows = isPinned\n ? pinnedRows.filter((id) => id !== rowId)\n : [...pinnedRows, rowId]\n setPinnedRows(newPinnedRows)\n onPinnedRowsChange?.(newPinnedRows)\n }}\n className={cn(\n 'text-text-secondary hover:text-text-primary transition-colors',\n isPinned && 'text-primary',\n )}\n aria-label={isPinned ? 'Unpin row' : 'Pin row'}\n aria-pressed={isPinned}\n >\n {isPinned ? (\n <PinOff\n className={iconSizes[size]}\n aria-hidden=\"true\"\n />\n ) : (\n <Pin\n className={iconSizes[size]}\n aria-hidden=\"true\"\n />\n )}\n </button>\n )\n },\n size: 50,\n },\n ]\n : finalColumns,\n [finalColumns, enableRowPinning, pinnedRows, onPinnedRowsChange],\n )\n\n // Wrap editable columns with EditableCell\n const columnsWithEditable = useMemo(\n () =>\n columnsWithPinning.map((col) => {\n const colAny = col as unknown as Record<string, unknown>\n if (colAny.editable && onCellEdit) {\n return {\n ...col,\n cell: ({ row, getValue }: TableCellContext<TData>) => {\n const value =\n getValue?.() ??\n (row.original as Record<string, unknown>)[\n colAny.accessorKey as string\n ]\n return (\n <EditableCell\n value={value}\n size={size}\n onValueChange={(newValue) => {\n onCellEdit({\n rowIndex: row.index,\n columnId:\n (colAny.id as string) || (colAny.accessorKey as string),\n value: newValue,\n row: row.original,\n })\n }}\n />\n )\n },\n }\n }\n return col\n }),\n [columnsWithPinning, onCellEdit, size],\n )\n\n // Filter data based on search\n const filteredData = useMemo(() => {\n if (!enableActions || !searchValue.trim()) {\n return data\n }\n\n const searchLower = searchValue.toLowerCase()\n return data.filter((row) => {\n return Object.values(row as Record<string, unknown>).some((value) =>\n String(value).toLowerCase().includes(searchLower),\n )\n })\n }, [data, searchValue, enableActions])\n\n // Build column list for actions\n const allColumnsList = useMemo(() => {\n return columns.map((col) => {\n const colAny = col as unknown as Record<string, unknown>\n return {\n id: (col.id as string) || (colAny.accessorKey as string),\n label:\n typeof colAny.header === 'string'\n ? colAny.header\n : (col.id as string) || (colAny.accessorKey as string),\n }\n })\n }, [columns])\n\n const visibleColumnIds = useMemo(() => {\n return Object.keys(columnVisibility).length === 0\n ? allColumnsList.map((c) => c.id)\n : allColumnsList\n .filter((c) => columnVisibility[c.id] !== false)\n .map((c) => c.id)\n }, [columnVisibility, allColumnsList])\n\n const table = useReactTable({\n data: filteredData,\n columns: columnsWithEditable as typeof columns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: enableSorting ? getSortedRowModel() : undefined,\n getFilteredRowModel: enableFiltering ? getFilteredRowModel() : undefined,\n getPaginationRowModel:\n enablePagination && !enableVirtualization\n ? getPaginationRowModel()\n : undefined,\n getExpandedRowModel: enableExpandable ? getExpandedRowModel() : undefined,\n getGroupedRowModel: enableGrouping ? getGroupedRowModel() : undefined,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onRowSelectionChange: setRowSelection,\n onExpandedChange: setExpanded,\n onGroupingChange: setGrouping,\n onColumnPinningChange: setColumnPinning,\n onColumnVisibilityChange: setColumnVisibility,\n enableRowSelection,\n enableMultiRowSelection,\n enableGrouping,\n enableColumnPinning,\n getRowCanExpand: enableExpandable ? () => true : undefined,\n state: {\n sorting,\n columnFilters,\n rowSelection,\n expanded,\n grouping,\n columnPinning,\n columnVisibility,\n },\n initialState: {\n pagination: {\n pageSize,\n },\n },\n })\n\n // Notify parent of selection changes\n useEffect(() => {\n if (onSelectionChange) {\n const selectedRows = table\n .getSelectedRowModel()\n .rows.map((row) => row.original)\n onSelectionChange(selectedRows)\n }\n }, [rowSelection, onSelectionChange, table])\n\n // Separate pinned and unpinned rows\n const rows = table.getRowModel().rows\n const pinnedRowsData = rows.filter((row) => pinnedRows.includes(row.id))\n const unpinnedRows = rows.filter((row) => !pinnedRows.includes(row.id))\n const allRowsOrdered = [...pinnedRowsData, ...unpinnedRows]\n\n // Virtualization setup\n const rowVirtualizer = useVirtualizer({\n count: allRowsOrdered.length,\n getScrollElement: () => tableContainerRef.current,\n estimateSize: () => (size === 'sm' ? 44 : size === 'lg' ? 68 : 56),\n overscan: 5,\n enabled: enableVirtualization,\n })\n\n const handleRowClick = (row: Row<TData>, rowData: TData) => {\n if (enableClickToSelect && enableRowSelection) {\n row.toggleSelected()\n }\n onRowClick?.(rowData)\n }\n\n // Build column groups map\n const columnGroupsMap = new Map<string, { header: string; span: number }>()\n if (columnGroups) {\n columnGroups.forEach((group) => {\n group.columns.forEach((colId) => {\n columnGroupsMap.set(colId, {\n header: group.header,\n span: group.columns.length,\n })\n })\n })\n }\n\n const renderColumnGroups = () => {\n if (!columnGroups || columnGroups.length === 0) return null\n\n const headerGroups = table.getHeaderGroups()[0]\n if (!headerGroups) return null\n\n const groupedHeaders: Array<{\n header: string\n span: number\n startIndex: number\n }> = []\n const processedCols = new Set<string>()\n\n headerGroups.headers.forEach((header, index) => {\n const colId = header.column.id\n\n if (processedCols.has(colId)) return\n\n const group = columnGroups.find((g) => g.columns.includes(colId))\n\n if (group) {\n // Mark all columns in this group as processed\n group.columns.forEach((c) => processedCols.add(c))\n\n groupedHeaders.push({\n header: group.header,\n span: group.columns.length,\n startIndex: index,\n })\n } else {\n groupedHeaders.push({\n header: '',\n span: 1,\n startIndex: index,\n })\n }\n })\n\n return (\n <tr className=\"border-b border-border\">\n {groupedHeaders.map((group, idx) => (\n <th\n key={idx}\n colSpan={group.span}\n className={cn(\n cellVariants({ size }),\n 'font-bold text-text-primary bg-surface/70 border-border text-center',\n bordered && 'border-r border-border last:border-r-0',\n )}\n >\n {group.header}\n </th>\n ))}\n </tr>\n )\n }\n\n const renderRows = () => {\n if (loading) {\n return (\n <TableSkeleton\n rows={loadingRows}\n columns={columnsWithPinning.length}\n size={size}\n className={classNames?.skeleton}\n />\n )\n }\n\n if (allRowsOrdered.length === 0) {\n return (\n <tr className=\"table_empty\">\n <td\n colSpan={columnsWithPinning.length}\n className={cn('px-4 py-12 text-center', classNames?.empty)}\n >\n {emptyState || (\n <div className=\"flex flex-col items-center justify-center gap-2 text-text-secondary\">\n <Inbox className=\"w-12 h-12 opacity-20\" />\n <p className=\"text-sm\">No data available</p>\n </div>\n )}\n </td>\n </tr>\n )\n }\n\n if (enableVirtualization) {\n const virtualRows = rowVirtualizer.getVirtualItems()\n const paddingTop = virtualRows.length > 0 ? virtualRows[0]?.start || 0 : 0\n const paddingBottom =\n virtualRows.length > 0\n ? rowVirtualizer.getTotalSize() -\n (virtualRows[virtualRows.length - 1]?.end || 0)\n : 0\n\n return (\n <>\n {paddingTop > 0 && (\n <tr>\n <td\n colSpan={columnsWithPinning.length}\n style={{ height: `${paddingTop}px`, padding: 0, border: 0 }}\n />\n </tr>\n )}\n {virtualRows.map((virtualRow) => {\n const row = allRowsOrdered[virtualRow.index]\n if (!row) return null\n\n const isLastVirtualRow =\n virtualRow.index === allRowsOrdered.length - 1\n\n return (\n <TableRow\n key={row.id}\n row={row}\n index={virtualRow.index}\n striped={striped}\n hoverable={hoverable}\n onRowClick={() => handleRowClick(row, row.original)}\n isPinned={pinnedRows.includes(row.id)}\n className={cn(isLastVirtualRow && 'border-b-0', classNames?.row)}\n >\n {row.getVisibleCells().map((cell) => {\n const isPinnedLeft = cell.column.getIsPinned() === 'left'\n const isPinnedRight = cell.column.getIsPinned() === 'right'\n\n return (\n <TableCell\n key={cell.id}\n size={size}\n bordered={bordered}\n fixed={\n isPinnedLeft\n ? 'left'\n : isPinnedRight\n ? 'right'\n : undefined\n }\n className={classNames?.cell}\n >\n {cell.getIsGrouped() ? (\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n row.toggleExpanded()\n }}\n className=\"text-text-secondary hover:text-text-primary\"\n aria-label={row.getIsExpanded() ? 'Collapse group' : 'Expand group'}\n aria-expanded={row.getIsExpanded()}\n >\n {row.getIsExpanded() ? (\n <ChevronDown className={iconSizes[size]} aria-hidden=\"true\" />\n ) : (\n <ChevronRight className={iconSizes[size]} aria-hidden=\"true\" />\n )}\n </button>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )}{' '}\n ({row.subRows.length})\n </div>\n ) : cell.getIsAggregated() ? (\n flexRender(\n cell.column.columnDef.aggregatedCell ??\n cell.column.columnDef.cell,\n cell.getContext(),\n )\n ) : cell.getIsPlaceholder() ? null : (\n flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )\n )}\n </TableCell>\n )\n })}\n </TableRow>\n )\n })}\n {paddingBottom > 0 && (\n <tr>\n <td\n colSpan={columnsWithPinning.length}\n style={{ height: `${paddingBottom}px`, padding: 0, border: 0 }}\n />\n </tr>\n )}\n </>\n )\n }\n\n return allRowsOrdered.map((row, index) => (\n <React.Fragment key={row.id}>\n <TableRow\n row={row}\n index={index}\n striped={striped}\n hoverable={hoverable}\n onRowClick={() => handleRowClick(row, row.original)}\n isPinned={pinnedRows.includes(row.id)}\n className={classNames?.row}\n >\n {row.getVisibleCells().map((cell) => {\n const isPinnedLeft = cell.column.getIsPinned() === 'left'\n const isPinnedRight = cell.column.getIsPinned() === 'right'\n\n return (\n <TableCell\n key={cell.id}\n size={size}\n bordered={bordered}\n fixed={\n isPinnedLeft ? 'left' : isPinnedRight ? 'right' : undefined\n }\n className={classNames?.cell}\n >\n {cell.getIsGrouped() ? (\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n row.toggleExpanded()\n }}\n className=\"text-text-secondary hover:text-text-primary\"\n aria-label={row.getIsExpanded() ? 'Collapse group' : 'Expand group'}\n aria-expanded={row.getIsExpanded()}\n >\n {row.getIsExpanded() ? (\n <ChevronDown className={iconSizes[size]} aria-hidden=\"true\" />\n ) : (\n <ChevronRight className={iconSizes[size]} aria-hidden=\"true\" />\n )}\n </button>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}{' '}\n ({row.subRows.length})\n </div>\n ) : cell.getIsAggregated() ? (\n flexRender(\n cell.column.columnDef.aggregatedCell ??\n cell.column.columnDef.cell,\n cell.getContext(),\n )\n ) : cell.getIsPlaceholder() ? null : (\n flexRender(cell.column.columnDef.cell, cell.getContext())\n )}\n </TableCell>\n )\n })}\n </TableRow>\n {/* Expanded Content Row */}\n {enableExpandable && row.getIsExpanded() && expandedContent && (\n <tr>\n <td\n colSpan={row.getVisibleCells().length}\n className=\"bg-surface/30 border-b border-border p-4\"\n >\n {expandedContent(row)}\n </td>\n </tr>\n )}\n </React.Fragment>\n ))\n }\n\n const renderPagination = () => {\n if (\n !enablePagination ||\n table.getPageCount() === 0 ||\n loading ||\n enableVirtualization\n ) {\n return null\n }\n\n const getPaginationPositionClasses = () => {\n const positionClasses = {\n topleft: 'justify-start',\n topcenter: 'w-full justify-between',\n topright: 'justify-end',\n bottomleft: 'justify-start',\n bottomcenter: 'w-full justify-between',\n bottomright: 'justify-end',\n }\n return positionClasses[paginationPosition]\n }\n\n return (\n <Pagination\n total={table.getFilteredRowModel().rows.length}\n current={table.getState().pagination.pageIndex + 1}\n pageSize={table.getState().pagination.pageSize}\n onChange={(page, pageSize) => {\n table.setPageIndex(page - 1)\n table.setPageSize(pageSize)\n }}\n showSizeChanger\n pageSizeOptions={pageSizeOptions}\n showTotal={(total, range) => (\n <>\n Showing {range[0]}-{range[1]} of {total} rows\n </>\n )}\n color={color}\n size=\"sm\"\n className={cn('table_pagination flex', getPaginationPositionClasses(), classNames?.pagination)}\n />\n )\n }\n\n const shouldShowTopPagination = paginationPosition.startsWith('top')\n const shouldShowBottomPagination = paginationPosition.startsWith('bottom')\n\n const handleVisibleColumnsChange = (newVisibleColumns: string[]) => {\n const newVisibility: VisibilityState = {}\n allColumnsList.forEach((col) => {\n newVisibility[col.id] = newVisibleColumns.includes(col.id)\n })\n setColumnVisibility(newVisibility)\n }\n\n return (\n <div className={cn('table_root w-full space-y-4', classNames?.root)}>\n {enableActions && (\n <TableActions\n searchValue={searchValue}\n onSearchChange={setSearchValue}\n visibleColumns={visibleColumnIds}\n allColumns={allColumnsList}\n onVisibleColumnsChange={handleVisibleColumnsChange}\n size={size}\n onSizeChange={setSize}\n color={color}\n className={classNames?.actions}\n />\n )}\n\n {shouldShowTopPagination && renderPagination()}\n\n <div\n ref={tableContainerRef}\n className={cn(\n 'table_wrapper overflow-auto rounded-md',\n enableVirtualization && 'max-h-[500px]',\n variant === 'outline' && 'border border-border',\n classNames?.wrapper,\n )}\n >\n <table\n className={cn(\n 'w-full border-collapse',\n variant === 'line' && 'border-0',\n variant === 'ghost' && 'border-0',\n className,\n )}\n aria-label={ariaLabel}\n >\n {caption && (\n <caption className={cn(!showCaption && 'sr-only')}>\n {caption}\n </caption>\n )}\n <thead className={cn('table_header bg-surface sticky top-0 z-30', classNames?.header)}>\n {renderColumnGroups()}\n {table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id} className={cn('table_headerRow', classNames?.headerRow)}>\n {headerGroup.headers.map((header) => (\n <TableHeaderCell\n key={header.id}\n header={header}\n size={size}\n variant={variant}\n color={color}\n bordered={bordered}\n enableColumnPinning={enableColumnPinning}\n className={classNames?.headerCell}\n />\n ))}\n </tr>\n ))}\n </thead>\n <tbody className={cn('table_body', classNames?.body)}>{renderRows()}</tbody>\n {footer && (\n <tfoot className={cn('table_footer bg-surface border-t border-border sticky bottom-0 z-30', classNames?.footer)}>\n {table.getFooterGroups().map((footerGroup) => (\n <tr key={footerGroup.id}>\n {footerGroup.headers.map((header) => {\n const isPinnedLeft = header.column.getIsPinned() === 'left'\n const isPinnedRight =\n header.column.getIsPinned() === 'right'\n\n return (\n <th\n key={header.id}\n className={cn(\n 'px-4 py-3 text-left font-semibold text-text-primary',\n bordered && 'border-r border-border last:border-r-0',\n isPinnedLeft && 'sticky left-0 bg-surface z-20',\n isPinnedRight && 'sticky right-0 bg-surface z-20',\n )}\n >\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.footer,\n header.getContext(),\n )}\n </th>\n )\n })}\n </tr>\n ))}\n </tfoot>\n )}\n </table>\n </div>\n\n {shouldShowBottomPagination && renderPagination()}\n </div>\n )\n}\n\nTable.displayName = 'Table'\n\nexport { TableCell } from './TableCell'\nexport { TableHeaderCell } from './TableHeaderCell'\nexport { TableRow } from './TableRow'\nexport { TableSkeleton } from './TableSkeleton'\nexport { TableActions } from './TableActions'\nexport { EditableCell } from './EditableCell'\nexport type * from './types'\nexport default Table\n"]}
@@ -1,5 +1,5 @@
1
- import { focusRingColorClasses, textColorClasses } from './chunk-TUTOU4X6.js';
2
- import { cn, iconSizes } from './chunk-2OGZENFC.js';
1
+ import { focusRingColorClasses, textColorClasses } from './chunk-NTPWR57C.js';
2
+ import { cn, iconSizes } from './chunk-NGYLRX6F.js';
3
3
  import { cva } from 'class-variance-authority';
4
4
  import { ChevronDown } from 'lucide-react';
5
5
  import React, { useId, useState } from 'react';
@@ -155,6 +155,7 @@ var Accordion = React.memo(
155
155
  showDivider = true,
156
156
  className,
157
157
  itemClassName,
158
+ classNames,
158
159
  ref
159
160
  }) => {
160
161
  const baseId = useId();
@@ -216,11 +217,14 @@ var Accordion = React.memo(
216
217
  "div",
217
218
  {
218
219
  ref,
220
+ "data-slot": "root",
219
221
  className: cn(
222
+ "accordion_root",
220
223
  accordionContainerVariants({
221
224
  variant,
222
225
  showDivider: showDivider && variant !== "splitted"
223
226
  }),
227
+ classNames?.root,
224
228
  className
225
229
  ),
226
230
  children: items.map((item) => {
@@ -230,9 +234,12 @@ var Accordion = React.memo(
230
234
  return /* @__PURE__ */ jsxs(
231
235
  "div",
232
236
  {
237
+ "data-slot": "item",
233
238
  className: cn(
239
+ "accordion_item",
234
240
  accordionItemVariants({ variant, color }),
235
241
  item.disabled && "opacity-50",
242
+ classNames?.item,
236
243
  itemClassName
237
244
  ),
238
245
  children: [
@@ -246,21 +253,27 @@ var Accordion = React.memo(
246
253
  "aria-disabled": item.disabled,
247
254
  disabled: item.disabled,
248
255
  onClick: () => handleToggle(item.key, item.disabled),
256
+ "data-slot": "trigger",
249
257
  className: cn(
258
+ "accordion_trigger",
250
259
  accordionHeaderVariants({
251
260
  size,
252
261
  color,
253
262
  disabled: item.disabled
254
- })
263
+ }),
264
+ classNames?.trigger
255
265
  ),
256
266
  children: [
257
267
  expandIconPosition === "left" && renderExpandIcon(isItemActive),
258
268
  item.icon && /* @__PURE__ */ jsx(
259
269
  "span",
260
270
  {
271
+ "data-slot": "icon",
261
272
  className: cn(
273
+ "accordion_icon",
262
274
  "shrink-0",
263
- getIconColor(color, isItemActive)
275
+ getIconColor(color, isItemActive),
276
+ classNames?.icon
264
277
  ),
265
278
  children: item.icon
266
279
  }
@@ -292,7 +305,18 @@ var Accordion = React.memo(
292
305
  "grid transition-[grid-template-rows] duration-300 ease-out",
293
306
  isItemActive ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
294
307
  ),
295
- children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children: (!destroyOnClose || isItemActive) && /* @__PURE__ */ jsx("div", { className: cn(accordionContentVariants({ size })), children: item.content }) })
308
+ children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children: (!destroyOnClose || isItemActive) && /* @__PURE__ */ jsx(
309
+ "div",
310
+ {
311
+ "data-slot": "content",
312
+ className: cn(
313
+ "accordion_content",
314
+ accordionContentVariants({ size }),
315
+ classNames?.content
316
+ ),
317
+ children: item.content
318
+ }
319
+ ) })
296
320
  }
297
321
  )
298
322
  ]
@@ -308,5 +332,5 @@ Accordion.displayName = "Accordion";
308
332
  var accordion_default = Accordion;
309
333
 
310
334
  export { accordion_default };
311
- //# sourceMappingURL=chunk-22FIGRGO.js.map
312
- //# sourceMappingURL=chunk-22FIGRGO.js.map
335
+ //# sourceMappingURL=chunk-CK6A2R66.js.map
336
+ //# sourceMappingURL=chunk-CK6A2R66.js.map