@hexclave/dashboard-ui-components 1.0.0

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 (331) hide show
  1. package/LICENSE +5 -0
  2. package/dist/chunk-BE-pF4vm.js +34 -0
  3. package/dist/components/alert.d.ts +22 -0
  4. package/dist/components/alert.d.ts.map +1 -0
  5. package/dist/components/alert.js +75 -0
  6. package/dist/components/alert.js.map +1 -0
  7. package/dist/components/analytics-chart/analytics-chart-pie.d.ts +67 -0
  8. package/dist/components/analytics-chart/analytics-chart-pie.d.ts.map +1 -0
  9. package/dist/components/analytics-chart/analytics-chart-pie.js +253 -0
  10. package/dist/components/analytics-chart/analytics-chart-pie.js.map +1 -0
  11. package/dist/components/analytics-chart/analytics-chart.d.ts +554 -0
  12. package/dist/components/analytics-chart/analytics-chart.d.ts.map +1 -0
  13. package/dist/components/analytics-chart/analytics-chart.js +1021 -0
  14. package/dist/components/analytics-chart/analytics-chart.js.map +1 -0
  15. package/dist/components/analytics-chart/default-analytics-chart-tooltip.d.ts +66 -0
  16. package/dist/components/analytics-chart/default-analytics-chart-tooltip.d.ts.map +1 -0
  17. package/dist/components/analytics-chart/default-analytics-chart-tooltip.js +179 -0
  18. package/dist/components/analytics-chart/default-analytics-chart-tooltip.js.map +1 -0
  19. package/dist/components/analytics-chart/format.d.ts +13 -0
  20. package/dist/components/analytics-chart/format.d.ts.map +1 -0
  21. package/dist/components/analytics-chart/format.js +138 -0
  22. package/dist/components/analytics-chart/format.js.map +1 -0
  23. package/dist/components/analytics-chart/index.d.ts +8 -0
  24. package/dist/components/analytics-chart/index.js +184 -0
  25. package/dist/components/analytics-chart/palette.d.ts +15 -0
  26. package/dist/components/analytics-chart/palette.d.ts.map +1 -0
  27. package/dist/components/analytics-chart/palette.js +60 -0
  28. package/dist/components/analytics-chart/palette.js.map +1 -0
  29. package/dist/components/analytics-chart/render-data-series.d.ts +28 -0
  30. package/dist/components/analytics-chart/render-data-series.d.ts.map +1 -0
  31. package/dist/components/analytics-chart/render-data-series.js +109 -0
  32. package/dist/components/analytics-chart/render-data-series.js.map +1 -0
  33. package/dist/components/analytics-chart/state.d.ts +54 -0
  34. package/dist/components/analytics-chart/state.d.ts.map +1 -0
  35. package/dist/components/analytics-chart/state.js +142 -0
  36. package/dist/components/analytics-chart/state.js.map +1 -0
  37. package/dist/components/analytics-chart/strings.d.ts +33 -0
  38. package/dist/components/analytics-chart/strings.d.ts.map +1 -0
  39. package/dist/components/analytics-chart/strings.js +37 -0
  40. package/dist/components/analytics-chart/strings.js.map +1 -0
  41. package/dist/components/analytics-chart/types.d.ts +157 -0
  42. package/dist/components/analytics-chart/types.d.ts.map +1 -0
  43. package/dist/components/analytics-chart/types.js +21 -0
  44. package/dist/components/analytics-chart/types.js.map +1 -0
  45. package/dist/components/badge.d.ts +40 -0
  46. package/dist/components/badge.d.ts.map +1 -0
  47. package/dist/components/badge.js +75 -0
  48. package/dist/components/badge.js.map +1 -0
  49. package/dist/components/button.d.ts +46 -0
  50. package/dist/components/button.d.ts.map +1 -0
  51. package/dist/components/button.js +82 -0
  52. package/dist/components/button.js.map +1 -0
  53. package/dist/components/card.d.ts +87 -0
  54. package/dist/components/card.d.ts.map +1 -0
  55. package/dist/components/card.js +161 -0
  56. package/dist/components/card.js.map +1 -0
  57. package/dist/components/chart-card.d.ts +50 -0
  58. package/dist/components/chart-card.d.ts.map +1 -0
  59. package/dist/components/chart-card.js +83 -0
  60. package/dist/components/chart-card.js.map +1 -0
  61. package/dist/components/chart-container.d.ts +51 -0
  62. package/dist/components/chart-container.d.ts.map +1 -0
  63. package/dist/components/chart-container.js +77 -0
  64. package/dist/components/chart-container.js.map +1 -0
  65. package/dist/components/chart-legend.d.ts +11 -0
  66. package/dist/components/chart-legend.d.ts.map +1 -0
  67. package/dist/components/chart-legend.js +37 -0
  68. package/dist/components/chart-legend.js.map +1 -0
  69. package/dist/components/chart-theme.d.ts +26 -0
  70. package/dist/components/chart-theme.d.ts.map +1 -0
  71. package/dist/components/chart-theme.js +64 -0
  72. package/dist/components/chart-theme.js.map +1 -0
  73. package/dist/components/chart-tooltip.d.ts +41 -0
  74. package/dist/components/chart-tooltip.d.ts.map +1 -0
  75. package/dist/components/chart-tooltip.js +89 -0
  76. package/dist/components/chart-tooltip.js.map +1 -0
  77. package/dist/components/cursor-blast-effect.d.ts +27 -0
  78. package/dist/components/cursor-blast-effect.d.ts.map +1 -0
  79. package/dist/components/cursor-blast-effect.js +244 -0
  80. package/dist/components/cursor-blast-effect.js.map +1 -0
  81. package/dist/components/data-grid/data-grid-sizing.d.ts +13 -0
  82. package/dist/components/data-grid/data-grid-sizing.d.ts.map +1 -0
  83. package/dist/components/data-grid/data-grid-sizing.js +44 -0
  84. package/dist/components/data-grid/data-grid-sizing.js.map +1 -0
  85. package/dist/components/data-grid/data-grid-toolbar.d.ts +31 -0
  86. package/dist/components/data-grid/data-grid-toolbar.d.ts.map +1 -0
  87. package/dist/components/data-grid/data-grid-toolbar.js +229 -0
  88. package/dist/components/data-grid/data-grid-toolbar.js.map +1 -0
  89. package/dist/components/data-grid/data-grid.d.ts +47 -0
  90. package/dist/components/data-grid/data-grid.d.ts.map +1 -0
  91. package/dist/components/data-grid/data-grid.js +927 -0
  92. package/dist/components/data-grid/data-grid.js.map +1 -0
  93. package/dist/components/data-grid/data-grid.test.d.ts +1 -0
  94. package/dist/components/data-grid/data-grid.test.js +297 -0
  95. package/dist/components/data-grid/data-grid.test.js.map +1 -0
  96. package/dist/components/data-grid/index.d.ts +9 -0
  97. package/dist/components/data-grid/index.js +148 -0
  98. package/dist/components/data-grid/state.d.ts +34 -0
  99. package/dist/components/data-grid/state.d.ts.map +1 -0
  100. package/dist/components/data-grid/state.js +199 -0
  101. package/dist/components/data-grid/state.js.map +1 -0
  102. package/dist/components/data-grid/strings.d.ts +8 -0
  103. package/dist/components/data-grid/strings.d.ts.map +1 -0
  104. package/dist/components/data-grid/strings.js +42 -0
  105. package/dist/components/data-grid/strings.js.map +1 -0
  106. package/dist/components/data-grid/types.d.ts +278 -0
  107. package/dist/components/data-grid/types.d.ts.map +1 -0
  108. package/dist/components/data-grid/types.js +0 -0
  109. package/dist/components/data-grid/use-data-source.d.ts +85 -0
  110. package/dist/components/data-grid/use-data-source.d.ts.map +1 -0
  111. package/dist/components/data-grid/use-data-source.js +244 -0
  112. package/dist/components/data-grid/use-data-source.js.map +1 -0
  113. package/dist/components/data-grid/use-url-state.d.ts +38 -0
  114. package/dist/components/data-grid/use-url-state.d.ts.map +1 -0
  115. package/dist/components/data-grid/use-url-state.js +214 -0
  116. package/dist/components/data-grid/use-url-state.js.map +1 -0
  117. package/dist/components/data-grid/use-url-state.test.d.ts +1 -0
  118. package/dist/components/data-grid/use-url-state.test.js +91 -0
  119. package/dist/components/data-grid/use-url-state.test.js.map +1 -0
  120. package/dist/components/dialog.d.ts +67 -0
  121. package/dist/components/dialog.d.ts.map +1 -0
  122. package/dist/components/dialog.js +100 -0
  123. package/dist/components/dialog.js.map +1 -0
  124. package/dist/components/edit-mode.d.ts +12 -0
  125. package/dist/components/edit-mode.d.ts.map +1 -0
  126. package/dist/components/edit-mode.js +23 -0
  127. package/dist/components/edit-mode.js.map +1 -0
  128. package/dist/components/empty-state.d.ts +37 -0
  129. package/dist/components/empty-state.d.ts.map +1 -0
  130. package/dist/components/empty-state.js +53 -0
  131. package/dist/components/empty-state.js.map +1 -0
  132. package/dist/components/input.d.ts +18 -0
  133. package/dist/components/input.d.ts.map +1 -0
  134. package/dist/components/input.js +53 -0
  135. package/dist/components/input.js.map +1 -0
  136. package/dist/components/metric-card.d.ts +55 -0
  137. package/dist/components/metric-card.d.ts.map +1 -0
  138. package/dist/components/metric-card.js +112 -0
  139. package/dist/components/metric-card.js.map +1 -0
  140. package/dist/components/pill-toggle.d.ts +33 -0
  141. package/dist/components/pill-toggle.d.ts.map +1 -0
  142. package/dist/components/pill-toggle.js +86 -0
  143. package/dist/components/pill-toggle.js.map +1 -0
  144. package/dist/components/progress-bar.d.ts +35 -0
  145. package/dist/components/progress-bar.d.ts.map +1 -0
  146. package/dist/components/progress-bar.js +54 -0
  147. package/dist/components/progress-bar.js.map +1 -0
  148. package/dist/components/separator.d.ts +23 -0
  149. package/dist/components/separator.d.ts.map +1 -0
  150. package/dist/components/separator.js +29 -0
  151. package/dist/components/separator.js.map +1 -0
  152. package/dist/components/skeleton.d.ts +24 -0
  153. package/dist/components/skeleton.d.ts.map +1 -0
  154. package/dist/components/skeleton.js +30 -0
  155. package/dist/components/skeleton.js.map +1 -0
  156. package/dist/components/table.d.ts +49 -0
  157. package/dist/components/table.d.ts.map +1 -0
  158. package/dist/components/table.js +84 -0
  159. package/dist/components/table.js.map +1 -0
  160. package/dist/components/tabs.d.ts +38 -0
  161. package/dist/components/tabs.d.ts.map +1 -0
  162. package/dist/components/tabs.js +113 -0
  163. package/dist/components/tabs.js.map +1 -0
  164. package/dist/dashboard-ui-components.global.js +25539 -0
  165. package/dist/dashboard-ui-components.global.js.map +7 -0
  166. package/dist/esm/components/alert.d.ts +22 -0
  167. package/dist/esm/components/alert.d.ts.map +1 -0
  168. package/dist/esm/components/alert.js +73 -0
  169. package/dist/esm/components/alert.js.map +1 -0
  170. package/dist/esm/components/analytics-chart/analytics-chart-pie.d.ts +67 -0
  171. package/dist/esm/components/analytics-chart/analytics-chart-pie.d.ts.map +1 -0
  172. package/dist/esm/components/analytics-chart/analytics-chart-pie.js +251 -0
  173. package/dist/esm/components/analytics-chart/analytics-chart-pie.js.map +1 -0
  174. package/dist/esm/components/analytics-chart/analytics-chart.d.ts +554 -0
  175. package/dist/esm/components/analytics-chart/analytics-chart.d.ts.map +1 -0
  176. package/dist/esm/components/analytics-chart/analytics-chart.js +1019 -0
  177. package/dist/esm/components/analytics-chart/analytics-chart.js.map +1 -0
  178. package/dist/esm/components/analytics-chart/default-analytics-chart-tooltip.d.ts +66 -0
  179. package/dist/esm/components/analytics-chart/default-analytics-chart-tooltip.d.ts.map +1 -0
  180. package/dist/esm/components/analytics-chart/default-analytics-chart-tooltip.js +176 -0
  181. package/dist/esm/components/analytics-chart/default-analytics-chart-tooltip.js.map +1 -0
  182. package/dist/esm/components/analytics-chart/format.d.ts +13 -0
  183. package/dist/esm/components/analytics-chart/format.d.ts.map +1 -0
  184. package/dist/esm/components/analytics-chart/format.js +133 -0
  185. package/dist/esm/components/analytics-chart/format.js.map +1 -0
  186. package/dist/esm/components/analytics-chart/index.d.ts +8 -0
  187. package/dist/esm/components/analytics-chart/index.js +9 -0
  188. package/dist/esm/components/analytics-chart/palette.d.ts +15 -0
  189. package/dist/esm/components/analytics-chart/palette.d.ts.map +1 -0
  190. package/dist/esm/components/analytics-chart/palette.js +55 -0
  191. package/dist/esm/components/analytics-chart/palette.js.map +1 -0
  192. package/dist/esm/components/analytics-chart/render-data-series.d.ts +28 -0
  193. package/dist/esm/components/analytics-chart/render-data-series.d.ts.map +1 -0
  194. package/dist/esm/components/analytics-chart/render-data-series.js +107 -0
  195. package/dist/esm/components/analytics-chart/render-data-series.js.map +1 -0
  196. package/dist/esm/components/analytics-chart/state.d.ts +54 -0
  197. package/dist/esm/components/analytics-chart/state.d.ts.map +1 -0
  198. package/dist/esm/components/analytics-chart/state.js +126 -0
  199. package/dist/esm/components/analytics-chart/state.js.map +1 -0
  200. package/dist/esm/components/analytics-chart/strings.d.ts +33 -0
  201. package/dist/esm/components/analytics-chart/strings.d.ts.map +1 -0
  202. package/dist/esm/components/analytics-chart/strings.js +34 -0
  203. package/dist/esm/components/analytics-chart/strings.js.map +1 -0
  204. package/dist/esm/components/analytics-chart/types.d.ts +157 -0
  205. package/dist/esm/components/analytics-chart/types.d.ts.map +1 -0
  206. package/dist/esm/components/analytics-chart/types.js +18 -0
  207. package/dist/esm/components/analytics-chart/types.js.map +1 -0
  208. package/dist/esm/components/badge.d.ts +40 -0
  209. package/dist/esm/components/badge.d.ts.map +1 -0
  210. package/dist/esm/components/badge.js +73 -0
  211. package/dist/esm/components/badge.js.map +1 -0
  212. package/dist/esm/components/button.d.ts +46 -0
  213. package/dist/esm/components/button.d.ts.map +1 -0
  214. package/dist/esm/components/button.js +79 -0
  215. package/dist/esm/components/button.js.map +1 -0
  216. package/dist/esm/components/card.d.ts +87 -0
  217. package/dist/esm/components/card.d.ts.map +1 -0
  218. package/dist/esm/components/card.js +155 -0
  219. package/dist/esm/components/card.js.map +1 -0
  220. package/dist/esm/components/chart-card.d.ts +50 -0
  221. package/dist/esm/components/chart-card.d.ts.map +1 -0
  222. package/dist/esm/components/chart-card.js +80 -0
  223. package/dist/esm/components/chart-card.js.map +1 -0
  224. package/dist/esm/components/chart-container.d.ts +51 -0
  225. package/dist/esm/components/chart-container.d.ts.map +1 -0
  226. package/dist/esm/components/chart-container.js +70 -0
  227. package/dist/esm/components/chart-container.js.map +1 -0
  228. package/dist/esm/components/chart-legend.d.ts +11 -0
  229. package/dist/esm/components/chart-legend.d.ts.map +1 -0
  230. package/dist/esm/components/chart-legend.js +34 -0
  231. package/dist/esm/components/chart-legend.js.map +1 -0
  232. package/dist/esm/components/chart-theme.d.ts +26 -0
  233. package/dist/esm/components/chart-theme.d.ts.map +1 -0
  234. package/dist/esm/components/chart-theme.js +59 -0
  235. package/dist/esm/components/chart-theme.js.map +1 -0
  236. package/dist/esm/components/chart-tooltip.d.ts +41 -0
  237. package/dist/esm/components/chart-tooltip.d.ts.map +1 -0
  238. package/dist/esm/components/chart-tooltip.js +84 -0
  239. package/dist/esm/components/chart-tooltip.js.map +1 -0
  240. package/dist/esm/components/cursor-blast-effect.d.ts +27 -0
  241. package/dist/esm/components/cursor-blast-effect.d.ts.map +1 -0
  242. package/dist/esm/components/cursor-blast-effect.js +242 -0
  243. package/dist/esm/components/cursor-blast-effect.js.map +1 -0
  244. package/dist/esm/components/data-grid/data-grid-sizing.d.ts +13 -0
  245. package/dist/esm/components/data-grid/data-grid-sizing.d.ts.map +1 -0
  246. package/dist/esm/components/data-grid/data-grid-sizing.js +38 -0
  247. package/dist/esm/components/data-grid/data-grid-sizing.js.map +1 -0
  248. package/dist/esm/components/data-grid/data-grid-toolbar.d.ts +31 -0
  249. package/dist/esm/components/data-grid/data-grid-toolbar.d.ts.map +1 -0
  250. package/dist/esm/components/data-grid/data-grid-toolbar.js +226 -0
  251. package/dist/esm/components/data-grid/data-grid-toolbar.js.map +1 -0
  252. package/dist/esm/components/data-grid/data-grid.d.ts +47 -0
  253. package/dist/esm/components/data-grid/data-grid.d.ts.map +1 -0
  254. package/dist/esm/components/data-grid/data-grid.js +923 -0
  255. package/dist/esm/components/data-grid/data-grid.js.map +1 -0
  256. package/dist/esm/components/data-grid/data-grid.test.d.ts +1 -0
  257. package/dist/esm/components/data-grid/data-grid.test.js +297 -0
  258. package/dist/esm/components/data-grid/data-grid.test.js.map +1 -0
  259. package/dist/esm/components/data-grid/index.d.ts +9 -0
  260. package/dist/esm/components/data-grid/index.js +9 -0
  261. package/dist/esm/components/data-grid/state.d.ts +34 -0
  262. package/dist/esm/components/data-grid/state.d.ts.map +1 -0
  263. package/dist/esm/components/data-grid/state.js +187 -0
  264. package/dist/esm/components/data-grid/state.js.map +1 -0
  265. package/dist/esm/components/data-grid/strings.d.ts +8 -0
  266. package/dist/esm/components/data-grid/strings.d.ts.map +1 -0
  267. package/dist/esm/components/data-grid/strings.js +39 -0
  268. package/dist/esm/components/data-grid/strings.js.map +1 -0
  269. package/dist/esm/components/data-grid/types.d.ts +278 -0
  270. package/dist/esm/components/data-grid/types.d.ts.map +1 -0
  271. package/dist/esm/components/data-grid/types.js +1 -0
  272. package/dist/esm/components/data-grid/use-data-source.d.ts +85 -0
  273. package/dist/esm/components/data-grid/use-data-source.d.ts.map +1 -0
  274. package/dist/esm/components/data-grid/use-data-source.js +242 -0
  275. package/dist/esm/components/data-grid/use-data-source.js.map +1 -0
  276. package/dist/esm/components/data-grid/use-url-state.d.ts +38 -0
  277. package/dist/esm/components/data-grid/use-url-state.d.ts.map +1 -0
  278. package/dist/esm/components/data-grid/use-url-state.js +212 -0
  279. package/dist/esm/components/data-grid/use-url-state.js.map +1 -0
  280. package/dist/esm/components/data-grid/use-url-state.test.d.ts +1 -0
  281. package/dist/esm/components/data-grid/use-url-state.test.js +91 -0
  282. package/dist/esm/components/data-grid/use-url-state.test.js.map +1 -0
  283. package/dist/esm/components/dialog.d.ts +67 -0
  284. package/dist/esm/components/dialog.d.ts.map +1 -0
  285. package/dist/esm/components/dialog.js +92 -0
  286. package/dist/esm/components/dialog.js.map +1 -0
  287. package/dist/esm/components/edit-mode.d.ts +12 -0
  288. package/dist/esm/components/edit-mode.d.ts.map +1 -0
  289. package/dist/esm/components/edit-mode.js +20 -0
  290. package/dist/esm/components/edit-mode.js.map +1 -0
  291. package/dist/esm/components/empty-state.d.ts +37 -0
  292. package/dist/esm/components/empty-state.d.ts.map +1 -0
  293. package/dist/esm/components/empty-state.js +50 -0
  294. package/dist/esm/components/empty-state.js.map +1 -0
  295. package/dist/esm/components/input.d.ts +18 -0
  296. package/dist/esm/components/input.d.ts.map +1 -0
  297. package/dist/esm/components/input.js +50 -0
  298. package/dist/esm/components/input.js.map +1 -0
  299. package/dist/esm/components/metric-card.d.ts +55 -0
  300. package/dist/esm/components/metric-card.d.ts.map +1 -0
  301. package/dist/esm/components/metric-card.js +109 -0
  302. package/dist/esm/components/metric-card.js.map +1 -0
  303. package/dist/esm/components/pill-toggle.d.ts +33 -0
  304. package/dist/esm/components/pill-toggle.d.ts.map +1 -0
  305. package/dist/esm/components/pill-toggle.js +84 -0
  306. package/dist/esm/components/pill-toggle.js.map +1 -0
  307. package/dist/esm/components/progress-bar.d.ts +35 -0
  308. package/dist/esm/components/progress-bar.d.ts.map +1 -0
  309. package/dist/esm/components/progress-bar.js +52 -0
  310. package/dist/esm/components/progress-bar.js.map +1 -0
  311. package/dist/esm/components/separator.d.ts +23 -0
  312. package/dist/esm/components/separator.d.ts.map +1 -0
  313. package/dist/esm/components/separator.js +27 -0
  314. package/dist/esm/components/separator.js.map +1 -0
  315. package/dist/esm/components/skeleton.d.ts +24 -0
  316. package/dist/esm/components/skeleton.d.ts.map +1 -0
  317. package/dist/esm/components/skeleton.js +28 -0
  318. package/dist/esm/components/skeleton.js.map +1 -0
  319. package/dist/esm/components/table.d.ts +49 -0
  320. package/dist/esm/components/table.d.ts.map +1 -0
  321. package/dist/esm/components/table.js +76 -0
  322. package/dist/esm/components/table.js.map +1 -0
  323. package/dist/esm/components/tabs.d.ts +38 -0
  324. package/dist/esm/components/tabs.d.ts.map +1 -0
  325. package/dist/esm/components/tabs.js +111 -0
  326. package/dist/esm/components/tabs.js.map +1 -0
  327. package/dist/esm/index.d.ts +24 -0
  328. package/dist/esm/index.js +27 -0
  329. package/dist/index.d.ts +37 -0
  330. package/dist/index.js +291 -0
  331. package/package.json +73 -0
@@ -0,0 +1,111 @@
1
+ "use client";
2
+
3
+ import { Spinner, cn } from "@hexclave/ui";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { useState } from "react";
6
+ import { runAsynchronouslyWithAlert } from "@hexclave/shared/dist/utils/promises";
7
+ import { useGlassmorphicDefault } from "./card.js";
8
+
9
+ //#region src/components/tabs.tsx
10
+ const tabSizeClasses = new Map([["sm", {
11
+ button: "px-3 py-2 text-xs",
12
+ badge: "text-[10px] px-1.5 py-0.5"
13
+ }], ["md", {
14
+ button: "px-4 py-3 text-sm",
15
+ badge: "text-xs px-1.5 py-0.5"
16
+ }]]);
17
+ const gradientClasses = new Map([
18
+ ["blue", {
19
+ activeText: "text-blue-700 dark:text-blue-400",
20
+ activeBadge: "bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-400",
21
+ underline: "bg-blue-700 dark:bg-blue-400"
22
+ }],
23
+ ["cyan", {
24
+ activeText: "text-cyan-700 dark:text-cyan-300",
25
+ activeBadge: "bg-cyan-100 dark:bg-cyan-900/30 text-cyan-700 dark:text-cyan-300",
26
+ underline: "bg-cyan-600 dark:bg-cyan-400"
27
+ }],
28
+ ["purple", {
29
+ activeText: "text-purple-700 dark:text-purple-300",
30
+ activeBadge: "bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300",
31
+ underline: "bg-purple-600 dark:bg-purple-400"
32
+ }],
33
+ ["green", {
34
+ activeText: "text-emerald-700 dark:text-emerald-300",
35
+ activeBadge: "bg-emerald-100 dark:bg-emerald-900/30 text-emerald-700 dark:text-emerald-300",
36
+ underline: "bg-emerald-600 dark:bg-emerald-400"
37
+ }],
38
+ ["orange", {
39
+ activeText: "text-amber-700 dark:text-amber-300",
40
+ activeBadge: "bg-amber-100 dark:bg-amber-900/30 text-amber-700 dark:text-amber-300",
41
+ underline: "bg-amber-600 dark:bg-amber-400"
42
+ }],
43
+ ["default", {
44
+ activeText: "text-foreground",
45
+ activeBadge: "bg-foreground/10 text-foreground",
46
+ underline: "bg-foreground/80"
47
+ }]
48
+ ]);
49
+ function getMapValueOrThrow(map, key, mapName) {
50
+ const value = map.get(key);
51
+ if (!value) throw new Error(`Missing ${mapName} entry for key "${String(key)}"`);
52
+ return value;
53
+ }
54
+ function DesignCategoryTabs({ categories, selectedCategory, onSelect, showBadge = true, size = "sm", glassmorphic: glassmorphicProp, gradient = "blue", trailing, className, ...props }) {
55
+ const glassmorphic = useGlassmorphicDefault(glassmorphicProp);
56
+ const sizeClass = getMapValueOrThrow(tabSizeClasses, size, "tabSizeClasses");
57
+ const gradientClass = getMapValueOrThrow(gradientClasses, gradient, "gradientClasses");
58
+ const [loadingCategoryId, setLoadingCategoryId] = useState(null);
59
+ const handleSelect = (categoryId) => {
60
+ const result = onSelect(categoryId);
61
+ if (result && typeof result.then === "function") {
62
+ setLoadingCategoryId(categoryId);
63
+ runAsynchronouslyWithAlert(Promise.resolve(result).finally(() => setLoadingCategoryId(null)));
64
+ }
65
+ };
66
+ return /* @__PURE__ */ jsxs("div", {
67
+ className: cn("flex w-full min-w-0 items-center gap-2", glassmorphic ? "rounded-xl bg-black/[0.08] dark:bg-white/[0.04] p-1 backdrop-blur-sm" : "border-b border-gray-300 dark:border-gray-800", className),
68
+ ...props,
69
+ children: [/* @__PURE__ */ jsx("div", {
70
+ className: cn("flex min-h-0 min-w-0 flex-1 items-center gap-1 overflow-x-auto flex-nowrap [&::-webkit-scrollbar]:hidden"),
71
+ children: categories.map((category) => {
72
+ const isActive = selectedCategory === category.id;
73
+ const badgeValue = category.badgeCount ?? category.count;
74
+ const shouldShowBadge = showBadge && badgeValue !== void 0;
75
+ return /* @__PURE__ */ jsxs("button", {
76
+ onClick: () => handleSelect(category.id),
77
+ disabled: loadingCategoryId !== null,
78
+ className: cn("font-medium transition-all duration-150 hover:transition-none relative flex flex-shrink-0 items-center justify-center gap-2 whitespace-nowrap", "hover:text-gray-900 dark:hover:text-gray-100", sizeClass.button, glassmorphic ? "rounded-lg" : "", isActive ? cn(gradientClass.activeText, glassmorphic && "bg-background shadow-sm ring-1 ring-black/[0.12] dark:ring-white/[0.06]") : "text-gray-700 dark:text-gray-400"),
79
+ children: [
80
+ loadingCategoryId === category.id && /* @__PURE__ */ jsx(Spinner, {
81
+ size: 12,
82
+ className: "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 pointer-events-none"
83
+ }),
84
+ /* @__PURE__ */ jsxs("span", {
85
+ className: cn("flex items-center gap-2", loadingCategoryId === category.id && "invisible"),
86
+ children: [
87
+ category.icon && /* @__PURE__ */ jsx(category.icon, {
88
+ className: "h-4 w-4 shrink-0",
89
+ "aria-hidden": true
90
+ }),
91
+ category.label,
92
+ shouldShowBadge && /* @__PURE__ */ jsx("span", {
93
+ className: cn("rounded-full", sizeClass.badge, isActive ? gradientClass.activeBadge : "bg-gray-200 dark:bg-gray-800 text-gray-600 dark:text-gray-400"),
94
+ children: badgeValue
95
+ })
96
+ ]
97
+ }),
98
+ !glassmorphic && isActive && /* @__PURE__ */ jsx("div", { className: cn("absolute bottom-0 left-0 right-0 h-0.5", gradientClass.underline) })
99
+ ]
100
+ }, category.id);
101
+ })
102
+ }), trailing != null ? /* @__PURE__ */ jsx("div", {
103
+ className: "flex shrink-0 items-center",
104
+ children: trailing
105
+ }) : null]
106
+ });
107
+ }
108
+
109
+ //#endregion
110
+ export { DesignCategoryTabs };
111
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","names":[],"sources":["../../../src/components/tabs.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState, type ReactNode } from \"react\";\nimport { cn, Spinner } from \"@stackframe/stack-ui\";\nimport { runAsynchronouslyWithAlert } from \"@stackframe/stack-shared/dist/utils/promises\";\nimport { useGlassmorphicDefault } from \"./card\";\n\ntype DesignTabsSize = \"sm\" | \"md\";\ntype DesignTabsGradient = \"blue\" | \"cyan\" | \"purple\" | \"green\" | \"orange\" | \"default\";\n\nexport type DesignCategoryTabItem = {\n id: string,\n label: string,\n count?: number,\n badgeCount?: number,\n icon?: React.ComponentType<React.SVGProps<SVGSVGElement>>,\n};\n\nexport type DesignCategoryTabsProps = Omit<React.ComponentProps<\"div\">, \"onSelect\"> & {\n categories: DesignCategoryTabItem[],\n selectedCategory: string,\n onSelect: (id: string) => void | Promise<void>,\n showBadge?: boolean,\n size?: DesignTabsSize,\n glassmorphic?: boolean,\n gradient?: DesignTabsGradient,\n /** Renders inside the tab bar after the tab buttons (not a tab). */\n trailing?: ReactNode,\n};\n\ntype TabSizeClass = {\n button: string,\n badge: string,\n};\n\ntype GradientClass = {\n activeText: string,\n activeBadge: string,\n underline: string,\n};\n\nconst tabSizeClasses = new Map<DesignTabsSize, TabSizeClass>([\n [\"sm\", { button: \"px-3 py-2 text-xs\", badge: \"text-[10px] px-1.5 py-0.5\" }],\n [\"md\", { button: \"px-4 py-3 text-sm\", badge: \"text-xs px-1.5 py-0.5\" }],\n]);\n\nconst gradientClasses = new Map<DesignTabsGradient, GradientClass>([\n [\n \"blue\",\n {\n activeText: \"text-blue-700 dark:text-blue-400\",\n activeBadge: \"bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-400\",\n underline: \"bg-blue-700 dark:bg-blue-400\",\n },\n ],\n [\n \"cyan\",\n {\n activeText: \"text-cyan-700 dark:text-cyan-300\",\n activeBadge: \"bg-cyan-100 dark:bg-cyan-900/30 text-cyan-700 dark:text-cyan-300\",\n underline: \"bg-cyan-600 dark:bg-cyan-400\",\n },\n ],\n [\n \"purple\",\n {\n activeText: \"text-purple-700 dark:text-purple-300\",\n activeBadge: \"bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300\",\n underline: \"bg-purple-600 dark:bg-purple-400\",\n },\n ],\n [\n \"green\",\n {\n activeText: \"text-emerald-700 dark:text-emerald-300\",\n activeBadge: \"bg-emerald-100 dark:bg-emerald-900/30 text-emerald-700 dark:text-emerald-300\",\n underline: \"bg-emerald-600 dark:bg-emerald-400\",\n },\n ],\n [\n \"orange\",\n {\n activeText: \"text-amber-700 dark:text-amber-300\",\n activeBadge: \"bg-amber-100 dark:bg-amber-900/30 text-amber-700 dark:text-amber-300\",\n underline: \"bg-amber-600 dark:bg-amber-400\",\n },\n ],\n [\n \"default\",\n {\n activeText: \"text-foreground\",\n activeBadge: \"bg-foreground/10 text-foreground\",\n underline: \"bg-foreground/80\",\n },\n ],\n]);\n\nfunction getMapValueOrThrow<TKey, TValue>(map: Map<TKey, TValue>, key: TKey, mapName: string) {\n const value = map.get(key);\n if (!value) {\n throw new Error(`Missing ${mapName} entry for key \"${String(key)}\"`);\n }\n return value;\n}\n\nexport function DesignCategoryTabs({\n categories,\n selectedCategory,\n onSelect,\n showBadge = true,\n size = \"sm\",\n glassmorphic: glassmorphicProp,\n gradient = \"blue\",\n trailing,\n className,\n ...props\n}: DesignCategoryTabsProps) {\n const glassmorphic = useGlassmorphicDefault(glassmorphicProp);\n const sizeClass = getMapValueOrThrow(tabSizeClasses, size, \"tabSizeClasses\");\n const gradientClass = getMapValueOrThrow(gradientClasses, gradient, \"gradientClasses\");\n const [loadingCategoryId, setLoadingCategoryId] = useState<string | null>(null);\n\n const handleSelect = (categoryId: string) => {\n const result = onSelect(categoryId);\n if (result && typeof (result as Promise<void>).then === \"function\") {\n setLoadingCategoryId(categoryId);\n runAsynchronouslyWithAlert(\n Promise.resolve(result).finally(() => setLoadingCategoryId(null))\n );\n }\n };\n\n return (\n <div\n className={cn(\n \"flex w-full min-w-0 items-center gap-2\",\n glassmorphic\n ? \"rounded-xl bg-black/[0.08] dark:bg-white/[0.04] p-1 backdrop-blur-sm\"\n : \"border-b border-gray-300 dark:border-gray-800\",\n className\n )}\n {...props}\n >\n <div\n className={cn(\n \"flex min-h-0 min-w-0 flex-1 items-center gap-1 overflow-x-auto flex-nowrap [&::-webkit-scrollbar]:hidden\",\n )}\n >\n {categories.map((category) => {\n const isActive = selectedCategory === category.id;\n const badgeValue = category.badgeCount ?? category.count;\n const shouldShowBadge = showBadge && badgeValue !== undefined;\n\n return (\n <button\n key={category.id}\n onClick={() => handleSelect(category.id)}\n disabled={loadingCategoryId !== null}\n className={cn(\n \"font-medium transition-all duration-150 hover:transition-none relative flex flex-shrink-0 items-center justify-center gap-2 whitespace-nowrap\",\n \"hover:text-gray-900 dark:hover:text-gray-100\",\n sizeClass.button,\n glassmorphic ? \"rounded-lg\" : \"\",\n isActive\n ? cn(\n gradientClass.activeText,\n glassmorphic && \"bg-background shadow-sm ring-1 ring-black/[0.12] dark:ring-white/[0.06]\"\n )\n : \"text-gray-700 dark:text-gray-400\"\n )}\n >\n {loadingCategoryId === category.id && (\n <Spinner\n size={12}\n className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 pointer-events-none\"\n />\n )}\n <span className={cn(\n \"flex items-center gap-2\",\n loadingCategoryId === category.id && \"invisible\"\n )}>\n {category.icon && (\n <category.icon className=\"h-4 w-4 shrink-0\" aria-hidden />\n )}\n {category.label}\n {shouldShowBadge && (\n <span\n className={cn(\n \"rounded-full\",\n sizeClass.badge,\n isActive\n ? gradientClass.activeBadge\n : \"bg-gray-200 dark:bg-gray-800 text-gray-600 dark:text-gray-400\"\n )}\n >\n {badgeValue}\n </span>\n )}\n </span>\n {!glassmorphic && isActive && (\n <div className={cn(\"absolute bottom-0 left-0 right-0 h-0.5\", gradientClass.underline)} />\n )}\n </button>\n );\n })}\n </div>\n {trailing != null ? (\n <div className=\"flex shrink-0 items-center\">\n {trailing}\n </div>\n ) : null}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;AAyCA,MAAM,iBAAiB,IAAI,IAAkC,CAC3D,CAAC,MAAM;CAAE,QAAQ;CAAqB,OAAO;CAA6B,CAAC,EAC3E,CAAC,MAAM;CAAE,QAAQ;CAAqB,OAAO;CAAyB,CAAC,CACxE,CAAC;AAEF,MAAM,kBAAkB,IAAI,IAAuC;CACjE,CACE,QACA;EACE,YAAY;EACZ,aAAa;EACb,WAAW;EACZ,CACF;CACD,CACE,QACA;EACE,YAAY;EACZ,aAAa;EACb,WAAW;EACZ,CACF;CACD,CACE,UACA;EACE,YAAY;EACZ,aAAa;EACb,WAAW;EACZ,CACF;CACD,CACE,SACA;EACE,YAAY;EACZ,aAAa;EACb,WAAW;EACZ,CACF;CACD,CACE,UACA;EACE,YAAY;EACZ,aAAa;EACb,WAAW;EACZ,CACF;CACD,CACE,WACA;EACE,YAAY;EACZ,aAAa;EACb,WAAW;EACZ,CACF;CACF,CAAC;AAEF,SAAS,mBAAiC,KAAwB,KAAW,SAAiB;CAC5F,MAAM,QAAQ,IAAI,IAAI,IAAI;AAC1B,KAAI,CAAC,MACH,OAAM,IAAI,MAAM,WAAW,QAAQ,kBAAkB,OAAO,IAAI,CAAC,GAAG;AAEtE,QAAO;;AAGT,SAAgB,mBAAmB,EACjC,YACA,kBACA,UACA,YAAY,MACZ,OAAO,MACP,cAAc,kBACd,WAAW,QACX,UACA,WACA,GAAG,SACuB;CAC1B,MAAM,eAAe,uBAAuB,iBAAiB;CAC7D,MAAM,YAAY,mBAAmB,gBAAgB,MAAM,iBAAiB;CAC5E,MAAM,gBAAgB,mBAAmB,iBAAiB,UAAU,kBAAkB;CACtF,MAAM,CAAC,mBAAmB,wBAAwB,SAAwB,KAAK;CAE/E,MAAM,gBAAgB,eAAuB;EAC3C,MAAM,SAAS,SAAS,WAAW;AACnC,MAAI,UAAU,OAAQ,OAAyB,SAAS,YAAY;AAClE,wBAAqB,WAAW;AAChC,8BACE,QAAQ,QAAQ,OAAO,CAAC,cAAc,qBAAqB,KAAK,CAAC,CAClE;;;AAIL,QACE,qBAAC;EACC,WAAW,GACT,0CACA,eACI,yEACA,iDACJ,UACD;EACD,GAAI;aAEJ,oBAAC;GACC,WAAW,GACT,2GACD;aAEA,WAAW,KAAK,aAAa;IAC5B,MAAM,WAAW,qBAAqB,SAAS;IAC/C,MAAM,aAAa,SAAS,cAAc,SAAS;IACnD,MAAM,kBAAkB,aAAa,eAAe;AAEpD,WACE,qBAAC;KAEC,eAAe,aAAa,SAAS,GAAG;KACxC,UAAU,sBAAsB;KAChC,WAAW,GACT,iJACA,gDACA,UAAU,QACV,eAAe,eAAe,IAC9B,WACI,GACA,cAAc,YACd,gBAAgB,0EACjB,GACC,mCACL;;MAEA,sBAAsB,SAAS,MAC9B,oBAAC;OACC,MAAM;OACN,WAAU;QACV;MAEJ,qBAAC;OAAK,WAAW,GACf,2BACA,sBAAsB,SAAS,MAAM,YACtC;;QACE,SAAS,QACR,oBAAC,SAAS;SAAK,WAAU;SAAmB;UAAc;QAE3D,SAAS;QACT,mBACC,oBAAC;SACC,WAAW,GACT,gBACA,UAAU,OACV,WACI,cAAc,cACd,gEACL;mBAEA;UACI;;QAEJ;MACN,CAAC,gBAAgB,YAChB,oBAAC,SAAI,WAAW,GAAG,0CAA0C,cAAc,UAAU,GAAI;;OA7CtF,SAAS,GA+CP;KAEX;IACE,EACL,YAAY,OACX,oBAAC;GAAI,WAAU;aACZ;IACG,GACJ;GACA"}
@@ -0,0 +1,24 @@
1
+ import { DesignAlert, DesignAlertProps } from "./components/alert";
2
+ import { DesignBadge, DesignBadgeColor, DesignBadgeContentMode, DesignBadgeProps, DesignBadgeSize } from "./components/badge";
3
+ import { DesignButton, DesignButtonProps, DesignOriginalButtonProps } from "./components/button";
4
+ import { DesignCard, DesignCardProps, DesignCardTint, DesignCardTintProps, useGlassmorphicDefault, useInsideDesignCard } from "./components/card";
5
+ import { CursorBlastEffect, CursorBlastEffectProps } from "./components/cursor-blast-effect";
6
+ import { DesignDialog, DesignDialogClose, DesignDialogDescription, DesignDialogProps, DesignDialogRoot, DesignDialogSize, DesignDialogTitle, DesignDialogTrigger, DesignDialogVariant } from "./components/dialog";
7
+ import { DesignEditMode, useDesignEditMode } from "./components/edit-mode";
8
+ import { DesignInput, DesignInputProps } from "./components/input";
9
+ import { DesignPillToggle, DesignPillToggleOption, DesignPillToggleProps } from "./components/pill-toggle";
10
+ import { DesignSeparator, DesignSeparatorProps } from "./components/separator";
11
+ import { DesignSkeleton, DesignSkeletonProps } from "./components/skeleton";
12
+ import { DesignTable, DesignTableBody, DesignTableCell, DesignTableHead, DesignTableHeader, DesignTableRow } from "./components/table";
13
+ import { DesignCategoryTabItem, DesignCategoryTabs, DesignCategoryTabsProps } from "./components/tabs";
14
+ import { DESIGN_CHART_AXIS_TICK_STYLE, DESIGN_CHART_COLORS, DESIGN_CHART_GRID_COLOR, DesignChartColorEntry, DesignChartColorName, getDesignChartColor } from "./components/chart-theme";
15
+ import { DesignChartConfig, DesignChartContainer, DesignChartStyle, getPayloadConfigFromPayload, useDesignChart } from "./components/chart-container";
16
+ import { DesignChartTooltip, DesignChartTooltipContent } from "./components/chart-tooltip";
17
+ import { DesignChartLegendContent } from "./components/chart-legend";
18
+ import { DesignChartCard, DesignChartCardProps } from "./components/chart-card";
19
+ import { DesignMetricCard, DesignMetricCardProps, DesignMetricCardTrend } from "./components/metric-card";
20
+ import { DesignProgressBar, DesignProgressBarProps } from "./components/progress-bar";
21
+ import { DesignEmptyState, DesignEmptyStateProps } from "./components/empty-state";
22
+ export * from "./components/analytics-chart";
23
+ export * from "./components/data-grid";
24
+ export { CursorBlastEffect, type CursorBlastEffectProps, DESIGN_CHART_AXIS_TICK_STYLE, DESIGN_CHART_COLORS, DESIGN_CHART_GRID_COLOR, DesignAlert, type DesignAlertProps, DesignBadge, type DesignBadgeColor, type DesignBadgeContentMode, type DesignBadgeProps, type DesignBadgeSize, DesignButton, type DesignButtonProps, DesignCard, type DesignCardProps, DesignCardTint, type DesignCardTintProps, type DesignCategoryTabItem, DesignCategoryTabs, type DesignCategoryTabsProps, DesignChartCard, type DesignChartCardProps, type DesignChartColorEntry, type DesignChartColorName, type DesignChartConfig, DesignChartContainer, DesignChartLegendContent, DesignChartStyle, DesignChartTooltip, DesignChartTooltipContent, DesignDialog, DesignDialogClose, DesignDialogDescription, type DesignDialogProps, DesignDialogRoot, type DesignDialogSize, DesignDialogTitle, DesignDialogTrigger, type DesignDialogVariant, DesignEditMode, DesignEmptyState, type DesignEmptyStateProps, DesignInput, type DesignInputProps, DesignMetricCard, type DesignMetricCardProps, type DesignMetricCardTrend, type DesignOriginalButtonProps, DesignPillToggle, type DesignPillToggleOption, type DesignPillToggleProps, DesignProgressBar, type DesignProgressBarProps, DesignSeparator, type DesignSeparatorProps, DesignSkeleton, type DesignSkeletonProps, DesignTable, DesignTableBody, DesignTableCell, DesignTableHead, DesignTableHeader, DesignTableRow, getDesignChartColor, getPayloadConfigFromPayload, useDesignChart, useDesignEditMode, useGlassmorphicDefault, useInsideDesignCard };
@@ -0,0 +1,27 @@
1
+ import { DesignAlert } from "./components/alert.js";
2
+ import { DesignBadge } from "./components/badge.js";
3
+ import { DesignButton } from "./components/button.js";
4
+ import { DesignCard, DesignCardTint, useGlassmorphicDefault, useInsideDesignCard } from "./components/card.js";
5
+ import { CursorBlastEffect } from "./components/cursor-blast-effect.js";
6
+ import { DesignDialog, DesignDialogClose, DesignDialogDescription, DesignDialogRoot, DesignDialogTitle, DesignDialogTrigger } from "./components/dialog.js";
7
+ import { DesignEditMode, useDesignEditMode } from "./components/edit-mode.js";
8
+ import { DesignInput } from "./components/input.js";
9
+ import { DesignPillToggle } from "./components/pill-toggle.js";
10
+ import { DesignSeparator } from "./components/separator.js";
11
+ import { DesignSkeleton } from "./components/skeleton.js";
12
+ import { DesignTable, DesignTableBody, DesignTableCell, DesignTableHead, DesignTableHeader, DesignTableRow } from "./components/table.js";
13
+ import { DesignCategoryTabs } from "./components/tabs.js";
14
+ import { DESIGN_CHART_AXIS_TICK_STYLE, DESIGN_CHART_COLORS, DESIGN_CHART_GRID_COLOR, getDesignChartColor } from "./components/chart-theme.js";
15
+ import { DesignChartContainer, DesignChartStyle, getPayloadConfigFromPayload, useDesignChart } from "./components/chart-container.js";
16
+ import { DesignChartTooltip, DesignChartTooltipContent } from "./components/chart-tooltip.js";
17
+ import { DesignChartLegendContent } from "./components/chart-legend.js";
18
+ import { DesignChartCard } from "./components/chart-card.js";
19
+ import { DesignMetricCard } from "./components/metric-card.js";
20
+ import { DesignProgressBar } from "./components/progress-bar.js";
21
+ import { DesignEmptyState } from "./components/empty-state.js";
22
+
23
+ export * from "./components/analytics-chart/index.js"
24
+
25
+ export * from "./components/data-grid/index.js"
26
+
27
+ export { CursorBlastEffect, DESIGN_CHART_AXIS_TICK_STYLE, DESIGN_CHART_COLORS, DESIGN_CHART_GRID_COLOR, DesignAlert, DesignBadge, DesignButton, DesignCard, DesignCardTint, DesignCategoryTabs, DesignChartCard, DesignChartContainer, DesignChartLegendContent, DesignChartStyle, DesignChartTooltip, DesignChartTooltipContent, DesignDialog, DesignDialogClose, DesignDialogDescription, DesignDialogRoot, DesignDialogTitle, DesignDialogTrigger, DesignEditMode, DesignEmptyState, DesignInput, DesignMetricCard, DesignPillToggle, DesignProgressBar, DesignSeparator, DesignSkeleton, DesignTable, DesignTableBody, DesignTableCell, DesignTableHead, DesignTableHeader, DesignTableRow, getDesignChartColor, getPayloadConfigFromPayload, useDesignChart, useDesignEditMode, useGlassmorphicDefault, useInsideDesignCard };
@@ -0,0 +1,37 @@
1
+ import { DesignAlert, DesignAlertProps } from "./components/alert.js";
2
+ import { ANALYTICS_CHART_DEFAULT_STRINGS, AnalyticsChartStrings, resolveAnalyticsChartStrings } from "./components/analytics-chart/strings.js";
3
+ import { AnalyticsChartAnnotationsLayer, AnalyticsChartAreaLayer, AnalyticsChartBarLayer, AnalyticsChartDataLayer, AnalyticsChartDelta, AnalyticsChartLayer, AnalyticsChartLayerType, AnalyticsChartLayers, AnalyticsChartLineLayer, AnalyticsChartPalette, AnalyticsChartPieProps, AnalyticsChartPieState, AnalyticsChartSegmentRamp, AnalyticsChartSeries, AnalyticsChartState, AnalyticsChartStrokeStyle, AnalyticsChartTimeseriesState, AnalyticsChartView, Annotation, FormatKind, FormatKindCurrency, FormatKindDatetime, FormatKindDuration, FormatKindNumeric, FormatKindPercent, FormatKindShort, FormatKindType, Point, pointValue } from "./components/analytics-chart/types.js";
4
+ import { AnalyticsChartTooltipContext, AnalyticsChartTooltipLayerView, AnalyticsChartTooltipSegmentRow, DefaultAnalyticsChartTooltip, DefaultAnalyticsChartTooltipProps, TrendPill } from "./components/analytics-chart/default-analytics-chart-tooltip.js";
5
+ import { AnalyticsChart, AnalyticsChartProps, Margin } from "./components/analytics-chart/analytics-chart.js";
6
+ import { DEFAULT_FORMAT_KIND, FORMAT_KIND_TYPES, formatDelta, formatValue } from "./components/analytics-chart/format.js";
7
+ import { ANALYTICS_CHART_DEFAULT_PALETTE, buildRampColors, buildSegmentThemeMap, resolveAnalyticsChartPalette } from "./components/analytics-chart/palette.js";
8
+ import { ANALYTICS_CHART_DEFAULT_LAYERS, ANALYTICS_CHART_DEFAULT_STATE, EMPTY_MATRIX, EMPTY_SERIES, ResolvedDataLayerStyle, STROKE_DASHARRAY, computeLocalInProgressIdx, findAnnotationsLayer, findCompareLayer, findLayerById, findPrimaryLayer, isAnalyticsChartDataLayer, isTimeseriesState, patchLayerById, resolveDataLayerStyle, setLayerById } from "./components/analytics-chart/state.js";
9
+ import { DesignBadge, DesignBadgeColor, DesignBadgeContentMode, DesignBadgeProps, DesignBadgeSize } from "./components/badge.js";
10
+ import { DesignButton, DesignButtonProps, DesignOriginalButtonProps } from "./components/button.js";
11
+ import { DesignCard, DesignCardProps, DesignCardTint, DesignCardTintProps, useGlassmorphicDefault, useInsideDesignCard } from "./components/card.js";
12
+ import { DesignChartCard, DesignChartCardProps } from "./components/chart-card.js";
13
+ import { DesignChartConfig, DesignChartContainer, DesignChartStyle, getPayloadConfigFromPayload, useDesignChart } from "./components/chart-container.js";
14
+ import { DesignChartLegendContent } from "./components/chart-legend.js";
15
+ import { DESIGN_CHART_AXIS_TICK_STYLE, DESIGN_CHART_COLORS, DESIGN_CHART_GRID_COLOR, DesignChartColorEntry, DesignChartColorName, getDesignChartColor } from "./components/chart-theme.js";
16
+ import { DesignChartTooltip, DesignChartTooltipContent } from "./components/chart-tooltip.js";
17
+ import { CursorBlastEffect, CursorBlastEffectProps } from "./components/cursor-blast-effect.js";
18
+ import { DataGridCallbacks, DataGridCellContext, DataGridColumnAlign, DataGridColumnDef, DataGridColumnPin, DataGridColumnPinning, DataGridColumnType, DataGridColumnVisibility, DataGridDataPaginationMode, DataGridDataSource, DataGridDateDisplay, DataGridDateFormat, DataGridFetchParams, DataGridFetchResult, DataGridFooterContext, DataGridHeaderContext, DataGridPaginationMode, DataGridPaginationModel, DataGridProps, DataGridSelectOption, DataGridSelectionMode, DataGridSelectionModel, DataGridSortItem, DataGridSortModel, DataGridState, DataGridStrings, DataGridToolbarContext, RowId } from "./components/data-grid/types.js";
19
+ import { DEFAULT_COL_WIDTH, DEFAULT_MAX_COL_WIDTH, clampColumnWidth, getEffectiveMaxWidth, getEffectiveMinWidth } from "./components/data-grid/data-grid-sizing.js";
20
+ import { DataGridToolbar } from "./components/data-grid/data-grid-toolbar.js";
21
+ import { DataGrid, isDataGridInteractiveRowClickTarget } from "./components/data-grid/data-grid.js";
22
+ import { UseDataSourceResult, useDataSource } from "./components/data-grid/use-data-source.js";
23
+ import { useDataGridUrlState } from "./components/data-grid/use-url-state.js";
24
+ import { applyQuickSearch, buildRowComparator, createDefaultDataGridState, defaultFormatAbsolute, defaultFormatRelative, defaultMatchRow, defaultParseDate, exportToCsv, formatGridDate, paginateRows, resolveColumnValue } from "./components/data-grid/state.js";
25
+ import { DATA_GRID_DEFAULT_STRINGS, resolveDataGridStrings } from "./components/data-grid/strings.js";
26
+ import { DesignDialog, DesignDialogClose, DesignDialogDescription, DesignDialogProps, DesignDialogRoot, DesignDialogSize, DesignDialogTitle, DesignDialogTrigger, DesignDialogVariant } from "./components/dialog.js";
27
+ import { DesignEditMode, useDesignEditMode } from "./components/edit-mode.js";
28
+ import { DesignEmptyState, DesignEmptyStateProps } from "./components/empty-state.js";
29
+ import { DesignInput, DesignInputProps } from "./components/input.js";
30
+ import { DesignMetricCard, DesignMetricCardProps, DesignMetricCardTrend } from "./components/metric-card.js";
31
+ import { DesignPillToggle, DesignPillToggleOption, DesignPillToggleProps } from "./components/pill-toggle.js";
32
+ import { DesignProgressBar, DesignProgressBarProps } from "./components/progress-bar.js";
33
+ import { DesignSeparator, DesignSeparatorProps } from "./components/separator.js";
34
+ import { DesignSkeleton, DesignSkeletonProps } from "./components/skeleton.js";
35
+ import { DesignTable, DesignTableBody, DesignTableCell, DesignTableHead, DesignTableHeader, DesignTableRow } from "./components/table.js";
36
+ import { DesignCategoryTabItem, DesignCategoryTabs, DesignCategoryTabsProps } from "./components/tabs.js";
37
+ export { ANALYTICS_CHART_DEFAULT_LAYERS, ANALYTICS_CHART_DEFAULT_PALETTE, ANALYTICS_CHART_DEFAULT_STATE, ANALYTICS_CHART_DEFAULT_STRINGS, AnalyticsChart, AnalyticsChartAnnotationsLayer, AnalyticsChartAreaLayer, AnalyticsChartBarLayer, AnalyticsChartDataLayer, AnalyticsChartDelta, AnalyticsChartLayer, AnalyticsChartLayerType, AnalyticsChartLayers, AnalyticsChartLineLayer, AnalyticsChartPalette, AnalyticsChartPieProps, AnalyticsChartPieState, AnalyticsChartProps, AnalyticsChartSegmentRamp, AnalyticsChartSeries, AnalyticsChartState, AnalyticsChartStrings, AnalyticsChartStrokeStyle, AnalyticsChartTimeseriesState, AnalyticsChartTooltipContext, AnalyticsChartTooltipLayerView, AnalyticsChartTooltipSegmentRow, AnalyticsChartView, Annotation, CursorBlastEffect, type CursorBlastEffectProps, DATA_GRID_DEFAULT_STRINGS, DEFAULT_COL_WIDTH, DEFAULT_FORMAT_KIND, DEFAULT_MAX_COL_WIDTH, DESIGN_CHART_AXIS_TICK_STYLE, DESIGN_CHART_COLORS, DESIGN_CHART_GRID_COLOR, DataGrid, DataGridCallbacks, DataGridCellContext, DataGridColumnAlign, DataGridColumnDef, DataGridColumnPin, DataGridColumnPinning, DataGridColumnType, DataGridColumnVisibility, DataGridDataPaginationMode, DataGridDataSource, DataGridDateDisplay, DataGridDateFormat, DataGridFetchParams, DataGridFetchResult, DataGridFooterContext, DataGridHeaderContext, DataGridPaginationMode, DataGridPaginationModel, DataGridProps, DataGridSelectOption, DataGridSelectionMode, DataGridSelectionModel, DataGridSortItem, DataGridSortModel, DataGridState, DataGridStrings, DataGridToolbar, DataGridToolbarContext, DefaultAnalyticsChartTooltip, DefaultAnalyticsChartTooltipProps, DesignAlert, type DesignAlertProps, DesignBadge, type DesignBadgeColor, type DesignBadgeContentMode, type DesignBadgeProps, type DesignBadgeSize, DesignButton, type DesignButtonProps, DesignCard, type DesignCardProps, DesignCardTint, type DesignCardTintProps, type DesignCategoryTabItem, DesignCategoryTabs, type DesignCategoryTabsProps, DesignChartCard, type DesignChartCardProps, type DesignChartColorEntry, type DesignChartColorName, type DesignChartConfig, DesignChartContainer, DesignChartLegendContent, DesignChartStyle, DesignChartTooltip, DesignChartTooltipContent, DesignDialog, DesignDialogClose, DesignDialogDescription, type DesignDialogProps, DesignDialogRoot, type DesignDialogSize, DesignDialogTitle, DesignDialogTrigger, type DesignDialogVariant, DesignEditMode, DesignEmptyState, type DesignEmptyStateProps, DesignInput, type DesignInputProps, DesignMetricCard, type DesignMetricCardProps, type DesignMetricCardTrend, type DesignOriginalButtonProps, DesignPillToggle, type DesignPillToggleOption, type DesignPillToggleProps, DesignProgressBar, type DesignProgressBarProps, DesignSeparator, type DesignSeparatorProps, DesignSkeleton, type DesignSkeletonProps, DesignTable, DesignTableBody, DesignTableCell, DesignTableHead, DesignTableHeader, DesignTableRow, EMPTY_MATRIX, EMPTY_SERIES, FORMAT_KIND_TYPES, FormatKind, FormatKindCurrency, FormatKindDatetime, FormatKindDuration, FormatKindNumeric, FormatKindPercent, FormatKindShort, FormatKindType, Margin, Point, ResolvedDataLayerStyle, RowId, STROKE_DASHARRAY, TrendPill, UseDataSourceResult, applyQuickSearch, buildRampColors, buildRowComparator, buildSegmentThemeMap, clampColumnWidth, computeLocalInProgressIdx, createDefaultDataGridState, defaultFormatAbsolute, defaultFormatRelative, defaultMatchRow, defaultParseDate, exportToCsv, findAnnotationsLayer, findCompareLayer, findLayerById, findPrimaryLayer, formatDelta, formatGridDate, formatValue, getDesignChartColor, getEffectiveMaxWidth, getEffectiveMinWidth, getPayloadConfigFromPayload, isAnalyticsChartDataLayer, isDataGridInteractiveRowClickTarget, isTimeseriesState, paginateRows, patchLayerById, pointValue, resolveAnalyticsChartPalette, resolveAnalyticsChartStrings, resolveColumnValue, resolveDataGridStrings, resolveDataLayerStyle, setLayerById, useDataGridUrlState, useDataSource, useDesignChart, useDesignEditMode, useGlassmorphicDefault, useInsideDesignCard };
package/dist/index.js ADDED
@@ -0,0 +1,291 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_chunk = require('./chunk-BE-pF4vm.js');
3
+ let __components_alert_js = require("./components/alert.js");
4
+ let __components_badge_js = require("./components/badge.js");
5
+ let __components_button_js = require("./components/button.js");
6
+ let __components_card_js = require("./components/card.js");
7
+ let __components_cursor_blast_effect_js = require("./components/cursor-blast-effect.js");
8
+ let __components_dialog_js = require("./components/dialog.js");
9
+ let __components_edit_mode_js = require("./components/edit-mode.js");
10
+ let __components_input_js = require("./components/input.js");
11
+ let __components_pill_toggle_js = require("./components/pill-toggle.js");
12
+ let __components_separator_js = require("./components/separator.js");
13
+ let __components_skeleton_js = require("./components/skeleton.js");
14
+ let __components_table_js = require("./components/table.js");
15
+ let __components_tabs_js = require("./components/tabs.js");
16
+ let __components_chart_theme_js = require("./components/chart-theme.js");
17
+ let __components_chart_container_js = require("./components/chart-container.js");
18
+ let __components_chart_tooltip_js = require("./components/chart-tooltip.js");
19
+ let __components_chart_legend_js = require("./components/chart-legend.js");
20
+ let __components_chart_card_js = require("./components/chart-card.js");
21
+ let __components_metric_card_js = require("./components/metric-card.js");
22
+ let __components_progress_bar_js = require("./components/progress-bar.js");
23
+ let __components_empty_state_js = require("./components/empty-state.js");
24
+
25
+ Object.defineProperty(exports, 'CursorBlastEffect', {
26
+ enumerable: true,
27
+ get: function () {
28
+ return __components_cursor_blast_effect_js.CursorBlastEffect;
29
+ }
30
+ });
31
+ Object.defineProperty(exports, 'DESIGN_CHART_AXIS_TICK_STYLE', {
32
+ enumerable: true,
33
+ get: function () {
34
+ return __components_chart_theme_js.DESIGN_CHART_AXIS_TICK_STYLE;
35
+ }
36
+ });
37
+ Object.defineProperty(exports, 'DESIGN_CHART_COLORS', {
38
+ enumerable: true,
39
+ get: function () {
40
+ return __components_chart_theme_js.DESIGN_CHART_COLORS;
41
+ }
42
+ });
43
+ Object.defineProperty(exports, 'DESIGN_CHART_GRID_COLOR', {
44
+ enumerable: true,
45
+ get: function () {
46
+ return __components_chart_theme_js.DESIGN_CHART_GRID_COLOR;
47
+ }
48
+ });
49
+ Object.defineProperty(exports, 'DesignAlert', {
50
+ enumerable: true,
51
+ get: function () {
52
+ return __components_alert_js.DesignAlert;
53
+ }
54
+ });
55
+ Object.defineProperty(exports, 'DesignBadge', {
56
+ enumerable: true,
57
+ get: function () {
58
+ return __components_badge_js.DesignBadge;
59
+ }
60
+ });
61
+ Object.defineProperty(exports, 'DesignButton', {
62
+ enumerable: true,
63
+ get: function () {
64
+ return __components_button_js.DesignButton;
65
+ }
66
+ });
67
+ Object.defineProperty(exports, 'DesignCard', {
68
+ enumerable: true,
69
+ get: function () {
70
+ return __components_card_js.DesignCard;
71
+ }
72
+ });
73
+ Object.defineProperty(exports, 'DesignCardTint', {
74
+ enumerable: true,
75
+ get: function () {
76
+ return __components_card_js.DesignCardTint;
77
+ }
78
+ });
79
+ Object.defineProperty(exports, 'DesignCategoryTabs', {
80
+ enumerable: true,
81
+ get: function () {
82
+ return __components_tabs_js.DesignCategoryTabs;
83
+ }
84
+ });
85
+ Object.defineProperty(exports, 'DesignChartCard', {
86
+ enumerable: true,
87
+ get: function () {
88
+ return __components_chart_card_js.DesignChartCard;
89
+ }
90
+ });
91
+ Object.defineProperty(exports, 'DesignChartContainer', {
92
+ enumerable: true,
93
+ get: function () {
94
+ return __components_chart_container_js.DesignChartContainer;
95
+ }
96
+ });
97
+ Object.defineProperty(exports, 'DesignChartLegendContent', {
98
+ enumerable: true,
99
+ get: function () {
100
+ return __components_chart_legend_js.DesignChartLegendContent;
101
+ }
102
+ });
103
+ Object.defineProperty(exports, 'DesignChartStyle', {
104
+ enumerable: true,
105
+ get: function () {
106
+ return __components_chart_container_js.DesignChartStyle;
107
+ }
108
+ });
109
+ Object.defineProperty(exports, 'DesignChartTooltip', {
110
+ enumerable: true,
111
+ get: function () {
112
+ return __components_chart_tooltip_js.DesignChartTooltip;
113
+ }
114
+ });
115
+ Object.defineProperty(exports, 'DesignChartTooltipContent', {
116
+ enumerable: true,
117
+ get: function () {
118
+ return __components_chart_tooltip_js.DesignChartTooltipContent;
119
+ }
120
+ });
121
+ Object.defineProperty(exports, 'DesignDialog', {
122
+ enumerable: true,
123
+ get: function () {
124
+ return __components_dialog_js.DesignDialog;
125
+ }
126
+ });
127
+ Object.defineProperty(exports, 'DesignDialogClose', {
128
+ enumerable: true,
129
+ get: function () {
130
+ return __components_dialog_js.DesignDialogClose;
131
+ }
132
+ });
133
+ Object.defineProperty(exports, 'DesignDialogDescription', {
134
+ enumerable: true,
135
+ get: function () {
136
+ return __components_dialog_js.DesignDialogDescription;
137
+ }
138
+ });
139
+ Object.defineProperty(exports, 'DesignDialogRoot', {
140
+ enumerable: true,
141
+ get: function () {
142
+ return __components_dialog_js.DesignDialogRoot;
143
+ }
144
+ });
145
+ Object.defineProperty(exports, 'DesignDialogTitle', {
146
+ enumerable: true,
147
+ get: function () {
148
+ return __components_dialog_js.DesignDialogTitle;
149
+ }
150
+ });
151
+ Object.defineProperty(exports, 'DesignDialogTrigger', {
152
+ enumerable: true,
153
+ get: function () {
154
+ return __components_dialog_js.DesignDialogTrigger;
155
+ }
156
+ });
157
+ Object.defineProperty(exports, 'DesignEditMode', {
158
+ enumerable: true,
159
+ get: function () {
160
+ return __components_edit_mode_js.DesignEditMode;
161
+ }
162
+ });
163
+ Object.defineProperty(exports, 'DesignEmptyState', {
164
+ enumerable: true,
165
+ get: function () {
166
+ return __components_empty_state_js.DesignEmptyState;
167
+ }
168
+ });
169
+ Object.defineProperty(exports, 'DesignInput', {
170
+ enumerable: true,
171
+ get: function () {
172
+ return __components_input_js.DesignInput;
173
+ }
174
+ });
175
+ Object.defineProperty(exports, 'DesignMetricCard', {
176
+ enumerable: true,
177
+ get: function () {
178
+ return __components_metric_card_js.DesignMetricCard;
179
+ }
180
+ });
181
+ Object.defineProperty(exports, 'DesignPillToggle', {
182
+ enumerable: true,
183
+ get: function () {
184
+ return __components_pill_toggle_js.DesignPillToggle;
185
+ }
186
+ });
187
+ Object.defineProperty(exports, 'DesignProgressBar', {
188
+ enumerable: true,
189
+ get: function () {
190
+ return __components_progress_bar_js.DesignProgressBar;
191
+ }
192
+ });
193
+ Object.defineProperty(exports, 'DesignSeparator', {
194
+ enumerable: true,
195
+ get: function () {
196
+ return __components_separator_js.DesignSeparator;
197
+ }
198
+ });
199
+ Object.defineProperty(exports, 'DesignSkeleton', {
200
+ enumerable: true,
201
+ get: function () {
202
+ return __components_skeleton_js.DesignSkeleton;
203
+ }
204
+ });
205
+ Object.defineProperty(exports, 'DesignTable', {
206
+ enumerable: true,
207
+ get: function () {
208
+ return __components_table_js.DesignTable;
209
+ }
210
+ });
211
+ Object.defineProperty(exports, 'DesignTableBody', {
212
+ enumerable: true,
213
+ get: function () {
214
+ return __components_table_js.DesignTableBody;
215
+ }
216
+ });
217
+ Object.defineProperty(exports, 'DesignTableCell', {
218
+ enumerable: true,
219
+ get: function () {
220
+ return __components_table_js.DesignTableCell;
221
+ }
222
+ });
223
+ Object.defineProperty(exports, 'DesignTableHead', {
224
+ enumerable: true,
225
+ get: function () {
226
+ return __components_table_js.DesignTableHead;
227
+ }
228
+ });
229
+ Object.defineProperty(exports, 'DesignTableHeader', {
230
+ enumerable: true,
231
+ get: function () {
232
+ return __components_table_js.DesignTableHeader;
233
+ }
234
+ });
235
+ Object.defineProperty(exports, 'DesignTableRow', {
236
+ enumerable: true,
237
+ get: function () {
238
+ return __components_table_js.DesignTableRow;
239
+ }
240
+ });
241
+ Object.defineProperty(exports, 'getDesignChartColor', {
242
+ enumerable: true,
243
+ get: function () {
244
+ return __components_chart_theme_js.getDesignChartColor;
245
+ }
246
+ });
247
+ Object.defineProperty(exports, 'getPayloadConfigFromPayload', {
248
+ enumerable: true,
249
+ get: function () {
250
+ return __components_chart_container_js.getPayloadConfigFromPayload;
251
+ }
252
+ });
253
+ Object.defineProperty(exports, 'useDesignChart', {
254
+ enumerable: true,
255
+ get: function () {
256
+ return __components_chart_container_js.useDesignChart;
257
+ }
258
+ });
259
+ Object.defineProperty(exports, 'useDesignEditMode', {
260
+ enumerable: true,
261
+ get: function () {
262
+ return __components_edit_mode_js.useDesignEditMode;
263
+ }
264
+ });
265
+ Object.defineProperty(exports, 'useGlassmorphicDefault', {
266
+ enumerable: true,
267
+ get: function () {
268
+ return __components_card_js.useGlassmorphicDefault;
269
+ }
270
+ });
271
+ Object.defineProperty(exports, 'useInsideDesignCard', {
272
+ enumerable: true,
273
+ get: function () {
274
+ return __components_card_js.useInsideDesignCard;
275
+ }
276
+ });
277
+ var __components_analytics_chart_index_js = require("./components/analytics-chart/index.js");
278
+ Object.keys(__components_analytics_chart_index_js).forEach(function (k) {
279
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
280
+ enumerable: true,
281
+ get: function () { return __components_analytics_chart_index_js[k]; }
282
+ });
283
+ });
284
+
285
+ var __components_data_grid_index_js = require("./components/data-grid/index.js");
286
+ Object.keys(__components_data_grid_index_js).forEach(function (k) {
287
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
288
+ enumerable: true,
289
+ get: function () { return __components_data_grid_index_js[k]; }
290
+ });
291
+ });
package/package.json ADDED
@@ -0,0 +1,73 @@
1
+ {
2
+ "name": "@hexclave/dashboard-ui-components",
3
+ "version": "1.0.0",
4
+ "repository": "https://github.com/hexclave/hexclave",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "sideEffects": false,
8
+ "files": [
9
+ "README.md",
10
+ "dist",
11
+ "CHANGELOG.md",
12
+ "LICENSE"
13
+ ],
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "import": {
18
+ "default": "./dist/esm/index.js"
19
+ },
20
+ "require": {
21
+ "default": "./dist/index.js"
22
+ }
23
+ }
24
+ },
25
+ "peerDependencies": {
26
+ "@types/react": ">=19.0.0",
27
+ "@types/react-dom": ">=19.0.0",
28
+ "react": ">=19.0.0",
29
+ "react-dom": ">=19.0.0",
30
+ "recharts": ">=2.0.0"
31
+ },
32
+ "peerDependenciesMeta": {
33
+ "@types/react": {
34
+ "optional": true
35
+ },
36
+ "@types/react-dom": {
37
+ "optional": true
38
+ },
39
+ "recharts": {
40
+ "optional": true
41
+ }
42
+ },
43
+ "dependencies": {
44
+ "@dnd-kit/core": "^6.3.1",
45
+ "@phosphor-icons/react": "^2.1.7",
46
+ "@radix-ui/react-slot": "^1.1.0",
47
+ "@radix-ui/react-tooltip": "^1.1.3",
48
+ "@react-hook/resize-observer": "^2.0.2",
49
+ "@hexclave/shared": "1.0.0",
50
+ "@hexclave/ui": "1.0.0",
51
+ "@tanstack/react-table": "^8.21.3",
52
+ "@tanstack/react-virtual": "^3.13.0",
53
+ "class-variance-authority": "^0.7.0"
54
+ },
55
+ "devDependencies": {
56
+ "@types/react": "^19.0.0",
57
+ "@types/react-dom": "^19.0.0",
58
+ "esbuild": "^0.24.0",
59
+ "react": "^19.0.1",
60
+ "react-dom": "^19.0.1",
61
+ "recharts": "^2.14.1",
62
+ "rimraf": "^5.0.10"
63
+ },
64
+ "scripts": {
65
+ "build": "rimraf dist && tsdown && pnpm run build-iife && pnpm run copy-iife",
66
+ "typecheck": "tsc --noEmit",
67
+ "clean": "rimraf dist && rimraf node_modules",
68
+ "dev": "tsdown --watch --onSuccess 'pnpm run build-iife && pnpm run copy-iife'",
69
+ "build-iife": "tsx scripts/build-iife.ts",
70
+ "copy-iife": "tsx scripts/copy-iife.ts",
71
+ "lint": "eslint --ext .tsx,.ts ."
72
+ }
73
+ }