@hexclave/dashboard-ui-components 1.0.41 → 1.0.43

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 (355) hide show
  1. package/dist/analytics-chart-BUxntwQ3.d.ts +553 -0
  2. package/dist/analytics-chart-BUxntwQ3.d.ts.map +1 -0
  3. package/dist/components/alert.d.ts +1 -3
  4. package/dist/components/alert.d.ts.map +1 -1
  5. package/dist/components/alert.js +4 -7
  6. package/dist/components/alert.js.map +1 -1
  7. package/dist/components/analytics-chart/analytics-chart-pie.d.ts +3 -4
  8. package/dist/components/analytics-chart/analytics-chart-pie.d.ts.map +1 -1
  9. package/dist/components/analytics-chart/analytics-chart-pie.js +2 -4
  10. package/dist/components/analytics-chart/analytics-chart-pie.js.map +1 -1
  11. package/dist/components/analytics-chart/analytics-chart.d.ts +2 -554
  12. package/dist/components/analytics-chart/analytics-chart.js +4 -7
  13. package/dist/components/analytics-chart/analytics-chart.js.map +1 -1
  14. package/dist/components/analytics-chart/default-analytics-chart-tooltip.d.ts +2 -66
  15. package/dist/components/analytics-chart/default-analytics-chart-tooltip.js +3 -5
  16. package/dist/components/analytics-chart/default-analytics-chart-tooltip.js.map +1 -1
  17. package/dist/components/analytics-chart/format.d.ts +2 -13
  18. package/dist/components/analytics-chart/format.js +2 -3
  19. package/dist/components/analytics-chart/format.js.map +1 -1
  20. package/dist/components/analytics-chart/index.d.ts +7 -7
  21. package/dist/components/analytics-chart/index.js +175 -177
  22. package/dist/components/analytics-chart/palette.d.ts +2 -15
  23. package/dist/components/analytics-chart/palette.js +2 -3
  24. package/dist/components/analytics-chart/palette.js.map +1 -1
  25. package/dist/components/analytics-chart/render-data-series.d.ts +1 -1
  26. package/dist/components/analytics-chart/render-data-series.d.ts.map +1 -1
  27. package/dist/components/analytics-chart/render-data-series.js +2 -4
  28. package/dist/components/analytics-chart/render-data-series.js.map +1 -1
  29. package/dist/components/analytics-chart/state.d.ts +2 -54
  30. package/dist/components/analytics-chart/state.js +2 -4
  31. package/dist/components/analytics-chart/state.js.map +1 -1
  32. package/dist/components/analytics-chart/strings.d.ts +2 -33
  33. package/dist/components/analytics-chart/strings.js +2 -3
  34. package/dist/components/analytics-chart/strings.js.map +1 -1
  35. package/dist/components/analytics-chart/types.d.ts +2 -158
  36. package/dist/components/analytics-chart/types.js +2 -3
  37. package/dist/components/analytics-chart/types.js.map +1 -1
  38. package/dist/components/badge.d.ts +1 -3
  39. package/dist/components/badge.d.ts.map +1 -1
  40. package/dist/components/badge.js +4 -10
  41. package/dist/components/badge.js.map +1 -1
  42. package/dist/components/button.d.ts +6 -7
  43. package/dist/components/button.d.ts.map +1 -1
  44. package/dist/components/button.js +4 -5
  45. package/dist/components/button.js.map +1 -1
  46. package/dist/components/card.d.ts +2 -3
  47. package/dist/components/card.d.ts.map +1 -1
  48. package/dist/components/card.js +6 -8
  49. package/dist/components/card.js.map +1 -1
  50. package/dist/components/chart-card.d.ts +1 -2
  51. package/dist/components/chart-card.d.ts.map +1 -1
  52. package/dist/components/chart-card.js +5 -7
  53. package/dist/components/chart-card.js.map +1 -1
  54. package/dist/components/chart-container.d.ts +1 -2
  55. package/dist/components/chart-container.d.ts.map +1 -1
  56. package/dist/components/chart-container.js +5 -7
  57. package/dist/components/chart-container.js.map +1 -1
  58. package/dist/components/chart-legend.d.ts +1 -1
  59. package/dist/components/chart-legend.js +4 -6
  60. package/dist/components/chart-legend.js.map +1 -1
  61. package/dist/components/chart-theme.d.ts.map +1 -1
  62. package/dist/components/chart-theme.js +3 -5
  63. package/dist/components/chart-theme.js.map +1 -1
  64. package/dist/components/chart-tooltip.d.ts +10 -14
  65. package/dist/components/chart-tooltip.d.ts.map +1 -1
  66. package/dist/components/chart-tooltip.js +6 -8
  67. package/dist/components/chart-tooltip.js.map +1 -1
  68. package/dist/components/cursor-blast-effect.d.ts +1 -3
  69. package/dist/components/cursor-blast-effect.d.ts.map +1 -1
  70. package/dist/components/cursor-blast-effect.js +2 -5
  71. package/dist/components/cursor-blast-effect.js.map +1 -1
  72. package/dist/components/data-grid/data-grid-export-dialog.d.ts +2 -3
  73. package/dist/components/data-grid/data-grid-export-dialog.d.ts.map +1 -1
  74. package/dist/components/data-grid/data-grid-export-dialog.js +4 -6
  75. package/dist/components/data-grid/data-grid-export-dialog.js.map +1 -1
  76. package/dist/components/data-grid/data-grid-sizing.d.ts +2 -13
  77. package/dist/components/data-grid/data-grid-sizing.js +3 -4
  78. package/dist/components/data-grid/data-grid-sizing.js.map +1 -1
  79. package/dist/components/data-grid/data-grid-toolbar.d.ts +2 -31
  80. package/dist/components/data-grid/data-grid-toolbar.js +5 -7
  81. package/dist/components/data-grid/data-grid-toolbar.js.map +1 -1
  82. package/dist/components/data-grid/data-grid.d.ts +2 -47
  83. package/dist/components/data-grid/data-grid.js +8 -10
  84. package/dist/components/data-grid/data-grid.js.map +1 -1
  85. package/dist/components/data-grid/data-grid.test.js +1 -3
  86. package/dist/components/data-grid/data-grid.test.js.map +1 -1
  87. package/dist/components/data-grid/index.d.ts +8 -8
  88. package/dist/components/data-grid/index.js +139 -141
  89. package/dist/components/data-grid/state.d.ts +2 -34
  90. package/dist/components/data-grid/state.js +2 -4
  91. package/dist/components/data-grid/state.js.map +1 -1
  92. package/dist/components/data-grid/strings.d.ts +2 -8
  93. package/dist/components/data-grid/strings.js +2 -3
  94. package/dist/components/data-grid/strings.js.map +1 -1
  95. package/dist/components/data-grid/types.d.ts +2 -308
  96. package/dist/components/data-grid/use-data-source.d.ts +2 -85
  97. package/dist/components/data-grid/use-data-source.js +2 -4
  98. package/dist/components/data-grid/use-data-source.js.map +1 -1
  99. package/dist/components/data-grid/use-url-state.d.ts +2 -38
  100. package/dist/components/data-grid/use-url-state.js +2 -5
  101. package/dist/components/data-grid/use-url-state.js.map +1 -1
  102. package/dist/components/data-grid/use-url-state.test.js +1 -3
  103. package/dist/components/data-grid/use-url-state.test.js.map +1 -1
  104. package/dist/components/dialog.d.ts +2 -71
  105. package/dist/components/dialog.js +6 -8
  106. package/dist/components/dialog.js.map +1 -1
  107. package/dist/components/edit-mode.d.ts +1 -3
  108. package/dist/components/edit-mode.d.ts.map +1 -1
  109. package/dist/components/edit-mode.js +2 -5
  110. package/dist/components/edit-mode.js.map +1 -1
  111. package/dist/components/empty-state.d.ts +1 -2
  112. package/dist/components/empty-state.d.ts.map +1 -1
  113. package/dist/components/empty-state.js +4 -6
  114. package/dist/components/empty-state.js.map +1 -1
  115. package/dist/components/input.js +4 -6
  116. package/dist/components/input.js.map +1 -1
  117. package/dist/components/metric-card.d.ts +1 -2
  118. package/dist/components/metric-card.d.ts.map +1 -1
  119. package/dist/components/metric-card.js +5 -7
  120. package/dist/components/metric-card.js.map +1 -1
  121. package/dist/components/pill-toggle.d.ts +1 -3
  122. package/dist/components/pill-toggle.d.ts.map +1 -1
  123. package/dist/components/pill-toggle.js +4 -7
  124. package/dist/components/pill-toggle.js.map +1 -1
  125. package/dist/components/progress-bar.d.ts +1 -3
  126. package/dist/components/progress-bar.d.ts.map +1 -1
  127. package/dist/components/progress-bar.js +3 -6
  128. package/dist/components/progress-bar.js.map +1 -1
  129. package/dist/components/separator.d.ts +1 -3
  130. package/dist/components/separator.d.ts.map +1 -1
  131. package/dist/components/separator.js +2 -5
  132. package/dist/components/separator.js.map +1 -1
  133. package/dist/components/skeleton.d.ts +1 -2
  134. package/dist/components/skeleton.d.ts.map +1 -1
  135. package/dist/components/skeleton.js +2 -5
  136. package/dist/components/skeleton.js.map +1 -1
  137. package/dist/components/table.js +4 -6
  138. package/dist/components/table.js.map +1 -1
  139. package/dist/components/tabs.d.ts +1 -2
  140. package/dist/components/tabs.d.ts.map +1 -1
  141. package/dist/components/tabs.js +4 -7
  142. package/dist/components/tabs.js.map +1 -1
  143. package/dist/dashboard-ui-components.global.js +247 -258
  144. package/dist/dashboard-ui-components.global.js.map +3 -3
  145. package/dist/data-grid-AJi1TNDa.d.ts +46 -0
  146. package/dist/data-grid-AJi1TNDa.d.ts.map +1 -0
  147. package/dist/data-grid-sizing-S1ixcZKo.d.ts +13 -0
  148. package/dist/data-grid-sizing-S1ixcZKo.d.ts.map +1 -0
  149. package/dist/data-grid-toolbar-BGSNGDpT.d.ts +30 -0
  150. package/dist/data-grid-toolbar-BGSNGDpT.d.ts.map +1 -0
  151. package/dist/default-analytics-chart-tooltip-PrLoMaC1.d.ts +65 -0
  152. package/dist/default-analytics-chart-tooltip-PrLoMaC1.d.ts.map +1 -0
  153. package/dist/dialog-CCtTH7s6.d.ts +131 -0
  154. package/dist/dialog-CCtTH7s6.d.ts.map +1 -0
  155. package/dist/esm/components/alert.d.ts +1 -3
  156. package/dist/esm/components/alert.d.ts.map +1 -1
  157. package/dist/esm/components/alert.js +3 -5
  158. package/dist/esm/components/alert.js.map +1 -1
  159. package/dist/esm/components/analytics-chart/analytics-chart-pie.d.ts +3 -4
  160. package/dist/esm/components/analytics-chart/analytics-chart-pie.d.ts.map +1 -1
  161. package/dist/esm/components/analytics-chart/analytics-chart-pie.js +1 -2
  162. package/dist/esm/components/analytics-chart/analytics-chart-pie.js.map +1 -1
  163. package/dist/esm/components/analytics-chart/analytics-chart.d.ts +4 -5
  164. package/dist/esm/components/analytics-chart/analytics-chart.d.ts.map +1 -1
  165. package/dist/esm/components/analytics-chart/analytics-chart.js +3 -5
  166. package/dist/esm/components/analytics-chart/analytics-chart.js.map +1 -1
  167. package/dist/esm/components/analytics-chart/default-analytics-chart-tooltip.d.ts +4 -5
  168. package/dist/esm/components/analytics-chart/default-analytics-chart-tooltip.d.ts.map +1 -1
  169. package/dist/esm/components/analytics-chart/default-analytics-chart-tooltip.js +2 -3
  170. package/dist/esm/components/analytics-chart/default-analytics-chart-tooltip.js.map +1 -1
  171. package/dist/esm/components/analytics-chart/format.d.ts +1 -1
  172. package/dist/esm/components/analytics-chart/format.d.ts.map +1 -1
  173. package/dist/esm/components/analytics-chart/format.js +1 -1
  174. package/dist/esm/components/analytics-chart/format.js.map +1 -1
  175. package/dist/esm/components/analytics-chart/index.d.ts +7 -7
  176. package/dist/esm/components/analytics-chart/index.js +1 -2
  177. package/dist/esm/components/analytics-chart/palette.d.ts +1 -1
  178. package/dist/esm/components/analytics-chart/palette.d.ts.map +1 -1
  179. package/dist/esm/components/analytics-chart/palette.js +1 -1
  180. package/dist/esm/components/analytics-chart/palette.js.map +1 -1
  181. package/dist/esm/components/analytics-chart/render-data-series.d.ts +1 -1
  182. package/dist/esm/components/analytics-chart/render-data-series.d.ts.map +1 -1
  183. package/dist/esm/components/analytics-chart/render-data-series.js +1 -2
  184. package/dist/esm/components/analytics-chart/render-data-series.js.map +1 -1
  185. package/dist/esm/components/analytics-chart/state.d.ts +1 -1
  186. package/dist/esm/components/analytics-chart/state.d.ts.map +1 -1
  187. package/dist/esm/components/analytics-chart/state.js +1 -2
  188. package/dist/esm/components/analytics-chart/state.js.map +1 -1
  189. package/dist/esm/components/analytics-chart/strings.d.ts.map +1 -1
  190. package/dist/esm/components/analytics-chart/strings.js +1 -1
  191. package/dist/esm/components/analytics-chart/strings.js.map +1 -1
  192. package/dist/esm/components/analytics-chart/types.d.ts.map +1 -1
  193. package/dist/esm/components/analytics-chart/types.js +1 -1
  194. package/dist/esm/components/analytics-chart/types.js.map +1 -1
  195. package/dist/esm/components/badge.d.ts +1 -3
  196. package/dist/esm/components/badge.d.ts.map +1 -1
  197. package/dist/esm/components/badge.js +3 -8
  198. package/dist/esm/components/badge.js.map +1 -1
  199. package/dist/esm/components/button.d.ts +6 -7
  200. package/dist/esm/components/button.d.ts.map +1 -1
  201. package/dist/esm/components/button.js +2 -3
  202. package/dist/esm/components/button.js.map +1 -1
  203. package/dist/esm/components/card.d.ts +2 -3
  204. package/dist/esm/components/card.d.ts.map +1 -1
  205. package/dist/esm/components/card.js +3 -5
  206. package/dist/esm/components/card.js.map +1 -1
  207. package/dist/esm/components/chart-card.d.ts +1 -2
  208. package/dist/esm/components/chart-card.d.ts.map +1 -1
  209. package/dist/esm/components/chart-card.js +3 -5
  210. package/dist/esm/components/chart-card.js.map +1 -1
  211. package/dist/esm/components/chart-container.d.ts +1 -2
  212. package/dist/esm/components/chart-container.d.ts.map +1 -1
  213. package/dist/esm/components/chart-container.js +1 -3
  214. package/dist/esm/components/chart-container.js.map +1 -1
  215. package/dist/esm/components/chart-legend.d.ts +1 -1
  216. package/dist/esm/components/chart-legend.js +1 -3
  217. package/dist/esm/components/chart-legend.js.map +1 -1
  218. package/dist/esm/components/chart-theme.d.ts.map +1 -1
  219. package/dist/esm/components/chart-theme.js +2 -3
  220. package/dist/esm/components/chart-theme.js.map +1 -1
  221. package/dist/esm/components/chart-tooltip.d.ts +10 -14
  222. package/dist/esm/components/chart-tooltip.d.ts.map +1 -1
  223. package/dist/esm/components/chart-tooltip.js +2 -4
  224. package/dist/esm/components/chart-tooltip.js.map +1 -1
  225. package/dist/esm/components/cursor-blast-effect.d.ts +1 -3
  226. package/dist/esm/components/cursor-blast-effect.d.ts.map +1 -1
  227. package/dist/esm/components/cursor-blast-effect.js +1 -3
  228. package/dist/esm/components/cursor-blast-effect.js.map +1 -1
  229. package/dist/esm/components/data-grid/data-grid-export-dialog.d.ts +2 -3
  230. package/dist/esm/components/data-grid/data-grid-export-dialog.d.ts.map +1 -1
  231. package/dist/esm/components/data-grid/data-grid-export-dialog.js +2 -4
  232. package/dist/esm/components/data-grid/data-grid-export-dialog.js.map +1 -1
  233. package/dist/esm/components/data-grid/data-grid-sizing.d.ts +1 -1
  234. package/dist/esm/components/data-grid/data-grid-sizing.d.ts.map +1 -1
  235. package/dist/esm/components/data-grid/data-grid-sizing.js +2 -2
  236. package/dist/esm/components/data-grid/data-grid-sizing.js.map +1 -1
  237. package/dist/esm/components/data-grid/data-grid-toolbar.d.ts +2 -3
  238. package/dist/esm/components/data-grid/data-grid-toolbar.d.ts.map +1 -1
  239. package/dist/esm/components/data-grid/data-grid-toolbar.js +2 -4
  240. package/dist/esm/components/data-grid/data-grid-toolbar.js.map +1 -1
  241. package/dist/esm/components/data-grid/data-grid.d.ts +2 -3
  242. package/dist/esm/components/data-grid/data-grid.d.ts.map +1 -1
  243. package/dist/esm/components/data-grid/data-grid.js +6 -8
  244. package/dist/esm/components/data-grid/data-grid.js.map +1 -1
  245. package/dist/esm/components/data-grid/data-grid.test.js +2 -3
  246. package/dist/esm/components/data-grid/data-grid.test.js.map +1 -1
  247. package/dist/esm/components/data-grid/index.d.ts +8 -8
  248. package/dist/esm/components/data-grid/index.js +1 -2
  249. package/dist/esm/components/data-grid/state.d.ts +1 -1
  250. package/dist/esm/components/data-grid/state.d.ts.map +1 -1
  251. package/dist/esm/components/data-grid/state.js +1 -2
  252. package/dist/esm/components/data-grid/state.js.map +1 -1
  253. package/dist/esm/components/data-grid/strings.d.ts +1 -1
  254. package/dist/esm/components/data-grid/strings.d.ts.map +1 -1
  255. package/dist/esm/components/data-grid/strings.js +1 -1
  256. package/dist/esm/components/data-grid/strings.js.map +1 -1
  257. package/dist/esm/components/data-grid/types.d.ts.map +1 -1
  258. package/dist/esm/components/data-grid/types.js +1 -1
  259. package/dist/esm/components/data-grid/use-data-source.d.ts +1 -1
  260. package/dist/esm/components/data-grid/use-data-source.d.ts.map +1 -1
  261. package/dist/esm/components/data-grid/use-data-source.js +1 -2
  262. package/dist/esm/components/data-grid/use-data-source.js.map +1 -1
  263. package/dist/esm/components/data-grid/use-url-state.d.ts +1 -1
  264. package/dist/esm/components/data-grid/use-url-state.d.ts.map +1 -1
  265. package/dist/esm/components/data-grid/use-url-state.js +1 -3
  266. package/dist/esm/components/data-grid/use-url-state.js.map +1 -1
  267. package/dist/esm/components/data-grid/use-url-state.test.js +2 -3
  268. package/dist/esm/components/data-grid/use-url-state.test.js.map +1 -1
  269. package/dist/esm/components/dialog.d.ts +6 -8
  270. package/dist/esm/components/dialog.d.ts.map +1 -1
  271. package/dist/esm/components/dialog.js +3 -5
  272. package/dist/esm/components/dialog.js.map +1 -1
  273. package/dist/esm/components/edit-mode.d.ts +1 -3
  274. package/dist/esm/components/edit-mode.d.ts.map +1 -1
  275. package/dist/esm/components/edit-mode.js +1 -3
  276. package/dist/esm/components/edit-mode.js.map +1 -1
  277. package/dist/esm/components/empty-state.d.ts +1 -2
  278. package/dist/esm/components/empty-state.d.ts.map +1 -1
  279. package/dist/esm/components/empty-state.js +2 -4
  280. package/dist/esm/components/empty-state.js.map +1 -1
  281. package/dist/esm/components/input.js +2 -4
  282. package/dist/esm/components/input.js.map +1 -1
  283. package/dist/esm/components/metric-card.d.ts +1 -2
  284. package/dist/esm/components/metric-card.d.ts.map +1 -1
  285. package/dist/esm/components/metric-card.js +3 -5
  286. package/dist/esm/components/metric-card.js.map +1 -1
  287. package/dist/esm/components/pill-toggle.d.ts +1 -3
  288. package/dist/esm/components/pill-toggle.d.ts.map +1 -1
  289. package/dist/esm/components/pill-toggle.js +3 -5
  290. package/dist/esm/components/pill-toggle.js.map +1 -1
  291. package/dist/esm/components/progress-bar.d.ts +1 -3
  292. package/dist/esm/components/progress-bar.d.ts.map +1 -1
  293. package/dist/esm/components/progress-bar.js +2 -4
  294. package/dist/esm/components/progress-bar.js.map +1 -1
  295. package/dist/esm/components/separator.d.ts +1 -3
  296. package/dist/esm/components/separator.d.ts.map +1 -1
  297. package/dist/esm/components/separator.js +1 -3
  298. package/dist/esm/components/separator.js.map +1 -1
  299. package/dist/esm/components/skeleton.d.ts +1 -2
  300. package/dist/esm/components/skeleton.d.ts.map +1 -1
  301. package/dist/esm/components/skeleton.js +1 -3
  302. package/dist/esm/components/skeleton.js.map +1 -1
  303. package/dist/esm/components/table.js +2 -4
  304. package/dist/esm/components/table.js.map +1 -1
  305. package/dist/esm/components/tabs.d.ts +1 -2
  306. package/dist/esm/components/tabs.d.ts.map +1 -1
  307. package/dist/esm/components/tabs.js +3 -5
  308. package/dist/esm/components/tabs.js.map +1 -1
  309. package/dist/esm/index.d.ts +23 -23
  310. package/dist/esm/index.js +3 -6
  311. package/dist/format-DdrrnMlc.d.ts +13 -0
  312. package/dist/format-DdrrnMlc.d.ts.map +1 -0
  313. package/dist/index.d.ts +17 -17
  314. package/dist/index.js +278 -277
  315. package/dist/palette-pqnuo5cq.d.ts +15 -0
  316. package/dist/palette-pqnuo5cq.d.ts.map +1 -0
  317. package/dist/{chunk-BE-pF4vm.js → rolldown-runtime-D6vf50IK.js} +12 -18
  318. package/dist/state-6LW8ACh5.d.ts +34 -0
  319. package/dist/state-6LW8ACh5.d.ts.map +1 -0
  320. package/dist/state-Hch3gYtt.d.ts +54 -0
  321. package/dist/state-Hch3gYtt.d.ts.map +1 -0
  322. package/dist/strings-CACVtKlq.d.ts +8 -0
  323. package/dist/strings-CACVtKlq.d.ts.map +1 -0
  324. package/dist/strings-D-t58Uol.d.ts +33 -0
  325. package/dist/strings-D-t58Uol.d.ts.map +1 -0
  326. package/dist/types-1-eOd1JF.d.ts +308 -0
  327. package/dist/types-1-eOd1JF.d.ts.map +1 -0
  328. package/dist/types-NyzRTEfi.d.ts +158 -0
  329. package/dist/types-NyzRTEfi.d.ts.map +1 -0
  330. package/dist/use-data-source-BVFynerX.d.ts +85 -0
  331. package/dist/use-data-source-BVFynerX.d.ts.map +1 -0
  332. package/dist/use-url-state-B4_wnBjm.d.ts +38 -0
  333. package/dist/use-url-state-B4_wnBjm.d.ts.map +1 -0
  334. package/package.json +3 -7
  335. package/src/components/analytics-chart/analytics-chart.tsx +2 -3
  336. package/src/components/analytics-chart/default-analytics-chart-tooltip.tsx +1 -1
  337. package/src/components/chart-tooltip.tsx +1 -1
  338. package/src/components/data-grid/data-grid-toolbar.tsx +1 -1
  339. package/src/components/data-grid/data-grid.tsx +2 -2
  340. package/dist/components/analytics-chart/analytics-chart.d.ts.map +0 -1
  341. package/dist/components/analytics-chart/default-analytics-chart-tooltip.d.ts.map +0 -1
  342. package/dist/components/analytics-chart/format.d.ts.map +0 -1
  343. package/dist/components/analytics-chart/palette.d.ts.map +0 -1
  344. package/dist/components/analytics-chart/state.d.ts.map +0 -1
  345. package/dist/components/analytics-chart/strings.d.ts.map +0 -1
  346. package/dist/components/analytics-chart/types.d.ts.map +0 -1
  347. package/dist/components/data-grid/data-grid-sizing.d.ts.map +0 -1
  348. package/dist/components/data-grid/data-grid-toolbar.d.ts.map +0 -1
  349. package/dist/components/data-grid/data-grid.d.ts.map +0 -1
  350. package/dist/components/data-grid/state.d.ts.map +0 -1
  351. package/dist/components/data-grid/strings.d.ts.map +0 -1
  352. package/dist/components/data-grid/types.d.ts.map +0 -1
  353. package/dist/components/data-grid/use-data-source.d.ts.map +0 -1
  354. package/dist/components/data-grid/use-url-state.d.ts.map +0 -1
  355. package/dist/components/dialog.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"use-url-state.js","names":["DEFAULT_COL_WIDTH"],"sources":["../../../src/components/data-grid/use-url-state.ts"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState } from \"react\";\nimport { DEFAULT_COL_WIDTH, clampColumnWidth } from \"./data-grid-sizing\";\nimport { createDefaultDataGridState } from \"./state\";\nimport type {\n DataGridColumnDef,\n DataGridSortItem,\n DataGridSortModel,\n DataGridState,\n} from \"./types\";\n\n// ─── URL <-> state encoding ──────────────────────────────────────────\n// Compact, human-readable formats so URLs stay short. Each piece of\n// state gets its own param so unrelated changes don't churn shared keys:\n//\n// ?{prefix}_w=name:200,email:300 column widths (only non-defaults)\n// ?{prefix}_h=createdAt,role hidden column ids\n// ?{prefix}_s=signedUpAt:desc,name:asc multi-column sort\n// ?{prefix}_q=alice quick-search text\n//\n// Column ids are URL-encoded so ids containing `,` `:` or other reserved\n// characters round-trip safely. Without encoding, an id like \"user:name\"\n// would silently break the parser.\n\n// ── widths ─────────────────────────────────────────────────────────\nfunction serializeWidths(\n widths: Record<string, number>,\n columns: readonly DataGridColumnDef<any>[],\n): string {\n const parts: string[] = [];\n for (const col of columns) {\n const w = widths[col.id];\n if (typeof w !== \"number\" || !Number.isFinite(w)) continue;\n const defaultW = clampColumnWidth(col, col.width ?? DEFAULT_COL_WIDTH);\n if (Math.round(w) === Math.round(defaultW)) continue;\n parts.push(`${encodeURIComponent(col.id)}:${Math.round(w)}`);\n }\n return parts.join(\",\");\n}\n\nfunction parseWidths(\n raw: string | null,\n fallback: Record<string, number>,\n columns: readonly DataGridColumnDef<any>[],\n): Record<string, number> {\n if (!raw) return fallback;\n const colMap = new Map(columns.map((c) => [c.id, c]));\n const out: Record<string, number> = { ...fallback };\n for (const part of raw.split(\",\")) {\n // Only split on the FIRST colon — id-side is always pre-encoded so it\n // can't contain a literal `:`, but width-side is always numeric.\n const colonIdx = part.indexOf(\":\");\n if (colonIdx <= 0) continue;\n const encodedId = part.slice(0, colonIdx);\n const num = part.slice(colonIdx + 1);\n let id: string;\n try {\n id = decodeURIComponent(encodedId);\n } catch {\n continue;\n }\n if (!id || !num) continue;\n const col = colMap.get(id);\n if (!col) continue;\n const n = Number(num);\n if (!Number.isFinite(n)) continue;\n out[id] = clampColumnWidth(col, n);\n }\n return out;\n}\n\n// ── hidden columns ─────────────────────────────────────────────────\nfunction serializeHidden(visibility: Record<string, boolean>): string {\n return Object.entries(visibility)\n .filter(([, v]) => v === false)\n .map(([id]) => encodeURIComponent(id))\n .join(\",\");\n}\n\nfunction parseHidden(\n raw: string | null,\n columns: readonly DataGridColumnDef<any>[],\n): Record<string, boolean> {\n if (!raw) return {};\n const known = new Set(columns.map((c) => c.id));\n const out: Record<string, boolean> = {};\n for (const encodedId of raw.split(\",\")) {\n let id: string;\n try {\n id = decodeURIComponent(encodedId);\n } catch {\n continue;\n }\n if (id && known.has(id)) out[id] = false;\n }\n return out;\n}\n\n// ── sort model ─────────────────────────────────────────────────────\nfunction serializeSort(sort: DataGridSortModel): string {\n return sort\n .map((s) => `${encodeURIComponent(s.columnId)}:${s.direction === \"desc\" ? \"desc\" : \"asc\"}`)\n .join(\",\");\n}\n\nfunction sortEqual(a: DataGridSortModel, b: DataGridSortModel): boolean {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i].columnId !== b[i].columnId || a[i].direction !== b[i].direction) return false;\n }\n return true;\n}\n\nfunction parseSort(\n raw: string | null,\n fallback: DataGridSortModel,\n columns: readonly DataGridColumnDef<any>[],\n): DataGridSortModel {\n if (raw == null) return fallback;\n if (raw === \"\") return [];\n const known = new Set(columns.map((c) => c.id));\n const out: DataGridSortItem[] = [];\n for (const part of raw.split(\",\")) {\n const colonIdx = part.indexOf(\":\");\n if (colonIdx <= 0) continue;\n const encodedId = part.slice(0, colonIdx);\n const dir = part.slice(colonIdx + 1);\n if (dir !== \"asc\" && dir !== \"desc\") continue;\n let id: string;\n try {\n id = decodeURIComponent(encodedId);\n } catch {\n continue;\n }\n if (!id || !known.has(id)) continue;\n out.push({ columnId: id, direction: dir });\n }\n return out;\n}\n\n// ── quick search ───────────────────────────────────────────────────\nfunction parseQuickSearch(raw: string | null, fallback: string): string {\n if (raw == null) return fallback;\n return raw;\n}\n\n// ─── Hook ────────────────────────────────────────────────────────────\n\ntype UrlStateOptions = {\n /** Disambiguates URL params when multiple grids share a page. Defaults\n * to `\"grid\"`. Use unique prefixes per-grid (e.g. `\"users\"`, `\"teams\"`). */\n paramPrefix?: string,\n /** Overrides for default state used when the URL has no value for a\n * given key. Useful for things like a sensible initial sort (e.g.\n * \"newest signups first\") that should appear on first load but be\n * overridden when the user navigates to a bookmarked URL. */\n initial?: Partial<Pick<DataGridState, \"sorting\" | \"quickSearch\" | \"columnVisibility\">>,\n};\n\n/**\n * Drop-in replacement for `useState(() => createDefaultDataGridState(columns))`\n * that persists user view preferences to URL search params, so a view\n * can be bookmarked / shared / restored on reload.\n *\n * **Persisted:** column widths, hidden columns, sort model, quick-search.\n * **Not persisted** (deliberately): pagination scroll position, selection,\n * column pinning/order, date display mode — these are session-scoped.\n *\n * ```tsx\n * const [gridState, setGridState] = useDataGridUrlState(columns, {\n * paramPrefix: \"users\",\n * initial: { sorting: [{ columnId: \"signedUpAt\", direction: \"desc\" }] },\n * });\n * ```\n *\n * URL encoding: `?{prefix}_w=...&{prefix}_h=...&{prefix}_s=...&{prefix}_q=...`.\n * Default values are omitted so URLs stay clean. Updates use\n * `history.replaceState` (not pushState) so back/forward isn't polluted,\n * and `popstate` is observed so external URL changes flow back into state.\n */\nexport function useDataGridUrlState<TRow>(\n columns: readonly DataGridColumnDef<TRow>[],\n opts?: UrlStateOptions,\n): [DataGridState, React.Dispatch<React.SetStateAction<DataGridState>>] {\n const prefix = opts?.paramPrefix ?? \"grid\";\n const widthsKey = `${prefix}_w`;\n const hiddenKey = `${prefix}_h`;\n const sortKey = `${prefix}_s`;\n const searchKey = `${prefix}_q`;\n\n const columnsRef = useRef(columns);\n columnsRef.current = columns;\n\n // `initial` snapshots are captured once on first render. Re-running them\n // each render would clobber the user's interactions.\n const initialRef = useRef(opts?.initial);\n\n const [state, setState] = useState<DataGridState>(() => {\n const base = createDefaultDataGridState(columns);\n const initial = initialRef.current ?? {};\n const baseWithInitial: DataGridState = {\n ...base,\n sorting: initial.sorting ?? base.sorting,\n quickSearch: initial.quickSearch ?? base.quickSearch,\n columnVisibility: initial.columnVisibility ?? base.columnVisibility,\n };\n if (typeof window === \"undefined\") return baseWithInitial;\n const params = new URLSearchParams(window.location.search);\n return {\n ...baseWithInitial,\n columnWidths: parseWidths(params.get(widthsKey), base.columnWidths, columns),\n columnVisibility: params.get(hiddenKey) != null\n ? parseHidden(params.get(hiddenKey), columns)\n : baseWithInitial.columnVisibility,\n sorting: parseSort(params.get(sortKey), baseWithInitial.sorting, columns),\n quickSearch: parseQuickSearch(params.get(searchKey), baseWithInitial.quickSearch),\n };\n });\n\n // Sync state -> URL. Debounced so that high-frequency state changes\n // (e.g. dragging a column resize handle, typing in the search box)\n // don't fire a URL write per pixel / per keystroke.\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n const timer = setTimeout(() => {\n const params = new URLSearchParams(window.location.search);\n const before = params.toString();\n const cols = columnsRef.current;\n const initial = initialRef.current ?? {};\n\n const widthsStr = serializeWidths(state.columnWidths, cols);\n if (widthsStr) params.set(widthsKey, widthsStr);\n else params.delete(widthsKey);\n\n const hiddenStr = serializeHidden(state.columnVisibility);\n // If the consumer supplied initial visibility, \"no hidden cols\" must\n // be encoded explicitly (empty string) so a bookmark with no `_h=`\n // doesn't silently re-hide a column the user just un-hid.\n const initialHidden = initial.columnVisibility\n ? serializeHidden(initial.columnVisibility)\n : \"\";\n if (hiddenStr) params.set(hiddenKey, hiddenStr);\n else if (initialHidden) params.set(hiddenKey, \"\");\n else params.delete(hiddenKey);\n\n const initialSort = initial.sorting ?? [];\n if (sortEqual(state.sorting, initialSort)) params.delete(sortKey);\n else params.set(sortKey, serializeSort(state.sorting));\n\n const initialSearch = initial.quickSearch ?? \"\";\n if (state.quickSearch === initialSearch) params.delete(searchKey);\n else params.set(searchKey, state.quickSearch);\n\n const after = params.toString();\n if (before === after) return;\n const url = `${window.location.pathname}${after ? `?${after}` : \"\"}${window.location.hash}`;\n window.history.replaceState(window.history.state, \"\", url);\n }, 100);\n return () => clearTimeout(timer);\n }, [\n state.columnWidths,\n state.columnVisibility,\n state.sorting,\n state.quickSearch,\n widthsKey,\n hiddenKey,\n sortKey,\n searchKey,\n ]);\n\n // React to back/forward navigation.\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n const onPop = () => {\n const params = new URLSearchParams(window.location.search);\n const cols = columnsRef.current;\n const initial = initialRef.current ?? {};\n // When the URL no longer has a value for a key, reset to defaults\n // rather than preserving the previous in-memory state — otherwise\n // navigating back to a clean URL leaves stale state.\n const defaults = createDefaultDataGridState(cols);\n setState((prev) => ({\n ...prev,\n columnWidths: parseWidths(params.get(widthsKey), defaults.columnWidths, cols),\n columnVisibility: params.get(hiddenKey) != null\n ? parseHidden(params.get(hiddenKey), cols)\n : (initial.columnVisibility ?? defaults.columnVisibility),\n sorting: parseSort(params.get(sortKey), initial.sorting ?? defaults.sorting, cols),\n quickSearch: parseQuickSearch(params.get(searchKey), initial.quickSearch ?? defaults.quickSearch),\n }));\n };\n window.addEventListener(\"popstate\", onPop);\n return () => window.removeEventListener(\"popstate\", onPop);\n }, [widthsKey, hiddenKey, sortKey, searchKey]);\n\n return [state, setState];\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-url-state.js","names":["DEFAULT_COL_WIDTH"],"sources":["../../../src/components/data-grid/use-url-state.ts"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState } from \"react\";\nimport { DEFAULT_COL_WIDTH, clampColumnWidth } from \"./data-grid-sizing\";\nimport { createDefaultDataGridState } from \"./state\";\nimport type {\n DataGridColumnDef,\n DataGridSortItem,\n DataGridSortModel,\n DataGridState,\n} from \"./types\";\n\n// ─── URL <-> state encoding ──────────────────────────────────────────\n// Compact, human-readable formats so URLs stay short. Each piece of\n// state gets its own param so unrelated changes don't churn shared keys:\n//\n// ?{prefix}_w=name:200,email:300 column widths (only non-defaults)\n// ?{prefix}_h=createdAt,role hidden column ids\n// ?{prefix}_s=signedUpAt:desc,name:asc multi-column sort\n// ?{prefix}_q=alice quick-search text\n//\n// Column ids are URL-encoded so ids containing `,` `:` or other reserved\n// characters round-trip safely. Without encoding, an id like \"user:name\"\n// would silently break the parser.\n\n// ── widths ─────────────────────────────────────────────────────────\nfunction serializeWidths(\n widths: Record<string, number>,\n columns: readonly DataGridColumnDef<any>[],\n): string {\n const parts: string[] = [];\n for (const col of columns) {\n const w = widths[col.id];\n if (typeof w !== \"number\" || !Number.isFinite(w)) continue;\n const defaultW = clampColumnWidth(col, col.width ?? DEFAULT_COL_WIDTH);\n if (Math.round(w) === Math.round(defaultW)) continue;\n parts.push(`${encodeURIComponent(col.id)}:${Math.round(w)}`);\n }\n return parts.join(\",\");\n}\n\nfunction parseWidths(\n raw: string | null,\n fallback: Record<string, number>,\n columns: readonly DataGridColumnDef<any>[],\n): Record<string, number> {\n if (!raw) return fallback;\n const colMap = new Map(columns.map((c) => [c.id, c]));\n const out: Record<string, number> = { ...fallback };\n for (const part of raw.split(\",\")) {\n // Only split on the FIRST colon — id-side is always pre-encoded so it\n // can't contain a literal `:`, but width-side is always numeric.\n const colonIdx = part.indexOf(\":\");\n if (colonIdx <= 0) continue;\n const encodedId = part.slice(0, colonIdx);\n const num = part.slice(colonIdx + 1);\n let id: string;\n try {\n id = decodeURIComponent(encodedId);\n } catch {\n continue;\n }\n if (!id || !num) continue;\n const col = colMap.get(id);\n if (!col) continue;\n const n = Number(num);\n if (!Number.isFinite(n)) continue;\n out[id] = clampColumnWidth(col, n);\n }\n return out;\n}\n\n// ── hidden columns ─────────────────────────────────────────────────\nfunction serializeHidden(visibility: Record<string, boolean>): string {\n return Object.entries(visibility)\n .filter(([, v]) => v === false)\n .map(([id]) => encodeURIComponent(id))\n .join(\",\");\n}\n\nfunction parseHidden(\n raw: string | null,\n columns: readonly DataGridColumnDef<any>[],\n): Record<string, boolean> {\n if (!raw) return {};\n const known = new Set(columns.map((c) => c.id));\n const out: Record<string, boolean> = {};\n for (const encodedId of raw.split(\",\")) {\n let id: string;\n try {\n id = decodeURIComponent(encodedId);\n } catch {\n continue;\n }\n if (id && known.has(id)) out[id] = false;\n }\n return out;\n}\n\n// ── sort model ─────────────────────────────────────────────────────\nfunction serializeSort(sort: DataGridSortModel): string {\n return sort\n .map((s) => `${encodeURIComponent(s.columnId)}:${s.direction === \"desc\" ? \"desc\" : \"asc\"}`)\n .join(\",\");\n}\n\nfunction sortEqual(a: DataGridSortModel, b: DataGridSortModel): boolean {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i].columnId !== b[i].columnId || a[i].direction !== b[i].direction) return false;\n }\n return true;\n}\n\nfunction parseSort(\n raw: string | null,\n fallback: DataGridSortModel,\n columns: readonly DataGridColumnDef<any>[],\n): DataGridSortModel {\n if (raw == null) return fallback;\n if (raw === \"\") return [];\n const known = new Set(columns.map((c) => c.id));\n const out: DataGridSortItem[] = [];\n for (const part of raw.split(\",\")) {\n const colonIdx = part.indexOf(\":\");\n if (colonIdx <= 0) continue;\n const encodedId = part.slice(0, colonIdx);\n const dir = part.slice(colonIdx + 1);\n if (dir !== \"asc\" && dir !== \"desc\") continue;\n let id: string;\n try {\n id = decodeURIComponent(encodedId);\n } catch {\n continue;\n }\n if (!id || !known.has(id)) continue;\n out.push({ columnId: id, direction: dir });\n }\n return out;\n}\n\n// ── quick search ───────────────────────────────────────────────────\nfunction parseQuickSearch(raw: string | null, fallback: string): string {\n if (raw == null) return fallback;\n return raw;\n}\n\n// ─── Hook ────────────────────────────────────────────────────────────\n\ntype UrlStateOptions = {\n /** Disambiguates URL params when multiple grids share a page. Defaults\n * to `\"grid\"`. Use unique prefixes per-grid (e.g. `\"users\"`, `\"teams\"`). */\n paramPrefix?: string,\n /** Overrides for default state used when the URL has no value for a\n * given key. Useful for things like a sensible initial sort (e.g.\n * \"newest signups first\") that should appear on first load but be\n * overridden when the user navigates to a bookmarked URL. */\n initial?: Partial<Pick<DataGridState, \"sorting\" | \"quickSearch\" | \"columnVisibility\">>,\n};\n\n/**\n * Drop-in replacement for `useState(() => createDefaultDataGridState(columns))`\n * that persists user view preferences to URL search params, so a view\n * can be bookmarked / shared / restored on reload.\n *\n * **Persisted:** column widths, hidden columns, sort model, quick-search.\n * **Not persisted** (deliberately): pagination scroll position, selection,\n * column pinning/order, date display mode — these are session-scoped.\n *\n * ```tsx\n * const [gridState, setGridState] = useDataGridUrlState(columns, {\n * paramPrefix: \"users\",\n * initial: { sorting: [{ columnId: \"signedUpAt\", direction: \"desc\" }] },\n * });\n * ```\n *\n * URL encoding: `?{prefix}_w=...&{prefix}_h=...&{prefix}_s=...&{prefix}_q=...`.\n * Default values are omitted so URLs stay clean. Updates use\n * `history.replaceState` (not pushState) so back/forward isn't polluted,\n * and `popstate` is observed so external URL changes flow back into state.\n */\nexport function useDataGridUrlState<TRow>(\n columns: readonly DataGridColumnDef<TRow>[],\n opts?: UrlStateOptions,\n): [DataGridState, React.Dispatch<React.SetStateAction<DataGridState>>] {\n const prefix = opts?.paramPrefix ?? \"grid\";\n const widthsKey = `${prefix}_w`;\n const hiddenKey = `${prefix}_h`;\n const sortKey = `${prefix}_s`;\n const searchKey = `${prefix}_q`;\n\n const columnsRef = useRef(columns);\n columnsRef.current = columns;\n\n // `initial` snapshots are captured once on first render. Re-running them\n // each render would clobber the user's interactions.\n const initialRef = useRef(opts?.initial);\n\n const [state, setState] = useState<DataGridState>(() => {\n const base = createDefaultDataGridState(columns);\n const initial = initialRef.current ?? {};\n const baseWithInitial: DataGridState = {\n ...base,\n sorting: initial.sorting ?? base.sorting,\n quickSearch: initial.quickSearch ?? base.quickSearch,\n columnVisibility: initial.columnVisibility ?? base.columnVisibility,\n };\n if (typeof window === \"undefined\") return baseWithInitial;\n const params = new URLSearchParams(window.location.search);\n return {\n ...baseWithInitial,\n columnWidths: parseWidths(params.get(widthsKey), base.columnWidths, columns),\n columnVisibility: params.get(hiddenKey) != null\n ? parseHidden(params.get(hiddenKey), columns)\n : baseWithInitial.columnVisibility,\n sorting: parseSort(params.get(sortKey), baseWithInitial.sorting, columns),\n quickSearch: parseQuickSearch(params.get(searchKey), baseWithInitial.quickSearch),\n };\n });\n\n // Sync state -> URL. Debounced so that high-frequency state changes\n // (e.g. dragging a column resize handle, typing in the search box)\n // don't fire a URL write per pixel / per keystroke.\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n const timer = setTimeout(() => {\n const params = new URLSearchParams(window.location.search);\n const before = params.toString();\n const cols = columnsRef.current;\n const initial = initialRef.current ?? {};\n\n const widthsStr = serializeWidths(state.columnWidths, cols);\n if (widthsStr) params.set(widthsKey, widthsStr);\n else params.delete(widthsKey);\n\n const hiddenStr = serializeHidden(state.columnVisibility);\n // If the consumer supplied initial visibility, \"no hidden cols\" must\n // be encoded explicitly (empty string) so a bookmark with no `_h=`\n // doesn't silently re-hide a column the user just un-hid.\n const initialHidden = initial.columnVisibility\n ? serializeHidden(initial.columnVisibility)\n : \"\";\n if (hiddenStr) params.set(hiddenKey, hiddenStr);\n else if (initialHidden) params.set(hiddenKey, \"\");\n else params.delete(hiddenKey);\n\n const initialSort = initial.sorting ?? [];\n if (sortEqual(state.sorting, initialSort)) params.delete(sortKey);\n else params.set(sortKey, serializeSort(state.sorting));\n\n const initialSearch = initial.quickSearch ?? \"\";\n if (state.quickSearch === initialSearch) params.delete(searchKey);\n else params.set(searchKey, state.quickSearch);\n\n const after = params.toString();\n if (before === after) return;\n const url = `${window.location.pathname}${after ? `?${after}` : \"\"}${window.location.hash}`;\n window.history.replaceState(window.history.state, \"\", url);\n }, 100);\n return () => clearTimeout(timer);\n }, [\n state.columnWidths,\n state.columnVisibility,\n state.sorting,\n state.quickSearch,\n widthsKey,\n hiddenKey,\n sortKey,\n searchKey,\n ]);\n\n // React to back/forward navigation.\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n const onPop = () => {\n const params = new URLSearchParams(window.location.search);\n const cols = columnsRef.current;\n const initial = initialRef.current ?? {};\n // When the URL no longer has a value for a key, reset to defaults\n // rather than preserving the previous in-memory state — otherwise\n // navigating back to a clean URL leaves stale state.\n const defaults = createDefaultDataGridState(cols);\n setState((prev) => ({\n ...prev,\n columnWidths: parseWidths(params.get(widthsKey), defaults.columnWidths, cols),\n columnVisibility: params.get(hiddenKey) != null\n ? parseHidden(params.get(hiddenKey), cols)\n : (initial.columnVisibility ?? defaults.columnVisibility),\n sorting: parseSort(params.get(sortKey), initial.sorting ?? defaults.sorting, cols),\n quickSearch: parseQuickSearch(params.get(searchKey), initial.quickSearch ?? defaults.quickSearch),\n }));\n };\n window.addEventListener(\"popstate\", onPop);\n return () => window.removeEventListener(\"popstate\", onPop);\n }, [widthsKey, hiddenKey, sortKey, searchKey]);\n\n return [state, setState];\n}\n"],"mappings":"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"}
@@ -1,8 +1,6 @@
1
- const require_chunk = require('../../chunk-BE-pF4vm.js');
2
1
  let _testing_library_react = require("@testing-library/react");
3
2
  let vitest = require("vitest");
4
3
  let __use_url_state_js = require("./use-url-state.js");
5
-
6
4
  //#region src/components/data-grid/use-url-state.test.tsx
7
5
  // @vitest-environment jsdom
8
6
  const columns = [{
@@ -86,6 +84,6 @@ function setUrl(search) {
86
84
  (0, vitest.expect)(result.current[0].columnWidths.name).toBe(240);
87
85
  });
88
86
  });
89
-
90
87
  //#endregion
88
+
91
89
  //# sourceMappingURL=use-url-state.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-url-state.test.js","names":[],"sources":["../../../src/components/data-grid/use-url-state.test.tsx"],"sourcesContent":["// @vitest-environment jsdom\n\nimport { act, renderHook } from \"@testing-library/react\";\nimport { afterEach, beforeEach, describe, expect, it } from \"vitest\";\nimport type { DataGridColumnDef } from \"./types\";\nimport { useDataGridUrlState } from \"./use-url-state\";\n\ntype Row = { id: string };\n\nconst columns: DataGridColumnDef<Row>[] = [\n { id: \"name\", header: \"Name\", accessor: () => \"\", width: 160, minWidth: 80, type: \"string\" },\n { id: \"email\", header: \"Email\", accessor: () => \"\", width: 200, minWidth: 80, type: \"string\" },\n];\n\nfunction setUrl(search: string) {\n window.history.replaceState(null, \"\", `/${search ? `?${search}` : \"\"}`);\n}\n\nbeforeEach(() => {\n setUrl(\"\");\n});\n\nafterEach(() => {\n setUrl(\"\");\n});\n\ndescribe(\"useDataGridUrlState\", () => {\n it(\"initializes from existing URL params\", () => {\n setUrl(\"grid_w=name:240&grid_h=email\");\n const { result } = renderHook(() => useDataGridUrlState(columns));\n const [state] = result.current;\n expect(state.columnWidths.name).toBe(240);\n expect(state.columnVisibility.email).toBe(false);\n });\n\n it(\"writes width changes back to the URL (after debounce)\", async () => {\n const { result } = renderHook(() => useDataGridUrlState(columns));\n\n act(() => {\n const [, setState] = result.current;\n setState((prev) => ({\n ...prev,\n columnWidths: { ...prev.columnWidths, name: 250 },\n }));\n });\n\n // Debounce is 100ms.\n await new Promise((resolve) => setTimeout(resolve, 150));\n const params = new URLSearchParams(window.location.search);\n expect(params.get(\"grid_w\")).toBe(\"name:250\");\n });\n\n it(\"resets column widths to defaults when a popstate clears the URL\", () => {\n setUrl(\"grid_w=name:300\");\n const { result } = renderHook(() => useDataGridUrlState(columns));\n expect(result.current[0].columnWidths.name).toBe(300);\n\n act(() => {\n setUrl(\"\");\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\n });\n\n // Default for \"name\" column is its declared width of 160.\n expect(result.current[0].columnWidths.name).toBe(160);\n });\n\n it(\"isolates two grids on the same page via paramPrefix\", async () => {\n const { result: a } = renderHook(() => useDataGridUrlState(columns, { paramPrefix: \"users\" }));\n const { result: b } = renderHook(() => useDataGridUrlState(columns, { paramPrefix: \"teams\" }));\n\n act(() => {\n a.current[1]((prev) => ({ ...prev, columnWidths: { ...prev.columnWidths, name: 222 } }));\n });\n await new Promise((resolve) => setTimeout(resolve, 150));\n\n const params = new URLSearchParams(window.location.search);\n expect(params.get(\"users_w\")).toBe(\"name:222\");\n expect(params.get(\"teams_w\")).toBeNull();\n expect(b.current[0].columnWidths.name).toBe(160); // unaffected\n });\n\n it(\"ignores malformed entries in the URL param without throwing\", () => {\n setUrl(\"grid_w=:,name:abc,name:240,bogusid:99\");\n const { result } = renderHook(() => useDataGridUrlState(columns));\n // Only the well-formed `name:240` should land; junk is dropped silently.\n expect(result.current[0].columnWidths.name).toBe(240);\n });\n});\n"],"mappings":";;;;;;;AASA,MAAM,UAAoC,CACxC;CAAE,IAAI;CAAQ,QAAQ;CAAQ,gBAAgB;CAAI,OAAO;CAAK,UAAU;CAAI,MAAM;CAAU,EAC5F;CAAE,IAAI;CAAS,QAAQ;CAAS,gBAAgB;CAAI,OAAO;CAAK,UAAU;CAAI,MAAM;CAAU,CAC/F;AAED,SAAS,OAAO,QAAgB;AAC9B,QAAO,QAAQ,aAAa,MAAM,IAAI,IAAI,SAAS,IAAI,WAAW,KAAK;;6BAGxD;AACf,QAAO,GAAG;EACV;4BAEc;AACd,QAAO,GAAG;EACV;qBAEO,6BAA6B;AACpC,gBAAG,8CAA8C;AAC/C,SAAO,+BAA+B;EACtC,MAAM,EAAE,oGAAgD,QAAQ,CAAC;EACjE,MAAM,CAAC,SAAS,OAAO;AACvB,qBAAO,MAAM,aAAa,KAAK,CAAC,KAAK,IAAI;AACzC,qBAAO,MAAM,iBAAiB,MAAM,CAAC,KAAK,MAAM;GAChD;AAEF,gBAAG,yDAAyD,YAAY;EACtE,MAAM,EAAE,oGAAgD,QAAQ,CAAC;AAEjE,wCAAU;GACR,MAAM,GAAG,YAAY,OAAO;AAC5B,aAAU,UAAU;IAClB,GAAG;IACH,cAAc;KAAE,GAAG,KAAK;KAAc,MAAM;KAAK;IAClD,EAAE;IACH;AAGF,QAAM,IAAI,SAAS,YAAY,WAAW,SAAS,IAAI,CAAC;AAExD,qBADe,IAAI,gBAAgB,OAAO,SAAS,OAAO,CAC5C,IAAI,SAAS,CAAC,CAAC,KAAK,WAAW;GAC7C;AAEF,gBAAG,yEAAyE;AAC1E,SAAO,kBAAkB;EACzB,MAAM,EAAE,oGAAgD,QAAQ,CAAC;AACjE,qBAAO,OAAO,QAAQ,GAAG,aAAa,KAAK,CAAC,KAAK,IAAI;AAErD,wCAAU;AACR,UAAO,GAAG;AACV,UAAO,cAAc,IAAI,cAAc,WAAW,CAAC;IACnD;AAGF,qBAAO,OAAO,QAAQ,GAAG,aAAa,KAAK,CAAC,KAAK,IAAI;GACrD;AAEF,gBAAG,uDAAuD,YAAY;EACpE,MAAM,EAAE,QAAQ,+FAA2C,SAAS,EAAE,aAAa,SAAS,CAAC,CAAC;EAC9F,MAAM,EAAE,QAAQ,+FAA2C,SAAS,EAAE,aAAa,SAAS,CAAC,CAAC;AAE9F,wCAAU;AACR,KAAE,QAAQ,IAAI,UAAU;IAAE,GAAG;IAAM,cAAc;KAAE,GAAG,KAAK;KAAc,MAAM;KAAK;IAAE,EAAE;IACxF;AACF,QAAM,IAAI,SAAS,YAAY,WAAW,SAAS,IAAI,CAAC;EAExD,MAAM,SAAS,IAAI,gBAAgB,OAAO,SAAS,OAAO;AAC1D,qBAAO,OAAO,IAAI,UAAU,CAAC,CAAC,KAAK,WAAW;AAC9C,qBAAO,OAAO,IAAI,UAAU,CAAC,CAAC,UAAU;AACxC,qBAAO,EAAE,QAAQ,GAAG,aAAa,KAAK,CAAC,KAAK,IAAI;GAChD;AAEF,gBAAG,qEAAqE;AACtE,SAAO,wCAAwC;EAC/C,MAAM,EAAE,oGAAgD,QAAQ,CAAC;AAEjE,qBAAO,OAAO,QAAQ,GAAG,aAAa,KAAK,CAAC,KAAK,IAAI;GACrD;EACF"}
1
+ {"version":3,"file":"use-url-state.test.js","names":[],"sources":["../../../src/components/data-grid/use-url-state.test.tsx"],"sourcesContent":["// @vitest-environment jsdom\n\nimport { act, renderHook } from \"@testing-library/react\";\nimport { afterEach, beforeEach, describe, expect, it } from \"vitest\";\nimport type { DataGridColumnDef } from \"./types\";\nimport { useDataGridUrlState } from \"./use-url-state\";\n\ntype Row = { id: string };\n\nconst columns: DataGridColumnDef<Row>[] = [\n { id: \"name\", header: \"Name\", accessor: () => \"\", width: 160, minWidth: 80, type: \"string\" },\n { id: \"email\", header: \"Email\", accessor: () => \"\", width: 200, minWidth: 80, type: \"string\" },\n];\n\nfunction setUrl(search: string) {\n window.history.replaceState(null, \"\", `/${search ? `?${search}` : \"\"}`);\n}\n\nbeforeEach(() => {\n setUrl(\"\");\n});\n\nafterEach(() => {\n setUrl(\"\");\n});\n\ndescribe(\"useDataGridUrlState\", () => {\n it(\"initializes from existing URL params\", () => {\n setUrl(\"grid_w=name:240&grid_h=email\");\n const { result } = renderHook(() => useDataGridUrlState(columns));\n const [state] = result.current;\n expect(state.columnWidths.name).toBe(240);\n expect(state.columnVisibility.email).toBe(false);\n });\n\n it(\"writes width changes back to the URL (after debounce)\", async () => {\n const { result } = renderHook(() => useDataGridUrlState(columns));\n\n act(() => {\n const [, setState] = result.current;\n setState((prev) => ({\n ...prev,\n columnWidths: { ...prev.columnWidths, name: 250 },\n }));\n });\n\n // Debounce is 100ms.\n await new Promise((resolve) => setTimeout(resolve, 150));\n const params = new URLSearchParams(window.location.search);\n expect(params.get(\"grid_w\")).toBe(\"name:250\");\n });\n\n it(\"resets column widths to defaults when a popstate clears the URL\", () => {\n setUrl(\"grid_w=name:300\");\n const { result } = renderHook(() => useDataGridUrlState(columns));\n expect(result.current[0].columnWidths.name).toBe(300);\n\n act(() => {\n setUrl(\"\");\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\n });\n\n // Default for \"name\" column is its declared width of 160.\n expect(result.current[0].columnWidths.name).toBe(160);\n });\n\n it(\"isolates two grids on the same page via paramPrefix\", async () => {\n const { result: a } = renderHook(() => useDataGridUrlState(columns, { paramPrefix: \"users\" }));\n const { result: b } = renderHook(() => useDataGridUrlState(columns, { paramPrefix: \"teams\" }));\n\n act(() => {\n a.current[1]((prev) => ({ ...prev, columnWidths: { ...prev.columnWidths, name: 222 } }));\n });\n await new Promise((resolve) => setTimeout(resolve, 150));\n\n const params = new URLSearchParams(window.location.search);\n expect(params.get(\"users_w\")).toBe(\"name:222\");\n expect(params.get(\"teams_w\")).toBeNull();\n expect(b.current[0].columnWidths.name).toBe(160); // unaffected\n });\n\n it(\"ignores malformed entries in the URL param without throwing\", () => {\n setUrl(\"grid_w=:,name:abc,name:240,bogusid:99\");\n const { result } = renderHook(() => useDataGridUrlState(columns));\n // Only the well-formed `name:240` should land; junk is dropped silently.\n expect(result.current[0].columnWidths.name).toBe(240);\n });\n});\n"],"mappings":"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"}
@@ -1,71 +1,2 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
- import React from "react";
3
- import { Dialog, DialogContent } from "@hexclave/ui";
4
- import * as _radix_ui_react_dialog0 from "@radix-ui/react-dialog";
5
-
6
- //#region src/components/dialog.d.ts
7
- type DesignDialogSize = "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "7xl" | "full";
8
- type DesignDialogVariant = "glassmorphic" | "plain";
9
- declare const designDialogGlassmorphicSurfaceClass: string;
10
- declare const designDialogGlassmorphicOverlayClass = "bg-black/50 backdrop-blur-sm";
11
- type DesignDialogIcon = React.ElementType<{
12
- className?: string;
13
- }>;
14
- type DesignDialogRootProps = Omit<React.ComponentProps<typeof Dialog>, "children">;
15
- type DesignDialogProps = {
16
- trigger?: React.ReactElement;
17
- size?: DesignDialogSize;
18
- variant?: DesignDialogVariant;
19
- icon?: DesignDialogIcon | null;
20
- title?: React.ReactNode;
21
- description?: React.ReactNode;
22
- headerContent?: React.ReactNode;
23
- customHeader?: React.ReactNode;
24
- footer?: React.ReactNode;
25
- noBodyPadding?: boolean;
26
- hideTopCloseButton?: boolean;
27
- className?: string;
28
- overlayClassName?: string;
29
- headerClassName?: string;
30
- bodyClassName?: string;
31
- footerClassName?: string;
32
- children?: React.ReactNode;
33
- contentProps?: Omit<React.ComponentPropsWithoutRef<typeof DialogContent>, "className" | "children" | "overlayProps" | "noCloseButton">;
34
- } & DesignDialogRootProps;
35
- /**
36
- * Canonical dashboard modal surface. This wraps the base dialog primitives with
37
- * a reusable glassmorphic shell and consistent header/body/footer regions.
38
- */
39
- declare function DesignDialog({
40
- trigger,
41
- size,
42
- variant,
43
- icon: Icon,
44
- title,
45
- description,
46
- headerContent,
47
- customHeader,
48
- footer,
49
- noBodyPadding,
50
- hideTopCloseButton,
51
- className,
52
- overlayClassName,
53
- headerClassName,
54
- bodyClassName,
55
- footerClassName,
56
- contentProps,
57
- children,
58
- ...dialogRootProps
59
- }: DesignDialogProps): react_jsx_runtime0.JSX.Element;
60
- declare const DesignDialogRoot: React.FC<_radix_ui_react_dialog0.DialogProps>;
61
- declare const DesignDialogTrigger: React.ForwardRefExoticComponent<_radix_ui_react_dialog0.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
62
- declare const DesignDialogClose: React.ForwardRefExoticComponent<_radix_ui_react_dialog0.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
63
- declare const DesignDialogTitle: React.FC<Omit<_radix_ui_react_dialog0.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & {
64
- ref?: React.Ref<HTMLHeadingElement> | undefined;
65
- }>;
66
- declare const DesignDialogDescription: React.FC<Omit<_radix_ui_react_dialog0.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & {
67
- ref?: React.Ref<HTMLParagraphElement> | undefined;
68
- }>;
69
- //#endregion
70
- export { DesignDialog, DesignDialogClose, DesignDialogDescription, DesignDialogProps, DesignDialogRoot, DesignDialogSize, DesignDialogTitle, DesignDialogTrigger, DesignDialogVariant, designDialogGlassmorphicOverlayClass, designDialogGlassmorphicSurfaceClass };
71
- //# sourceMappingURL=dialog.d.ts.map
1
+ import { a as DesignDialogRoot, c as DesignDialogTrigger, d as designDialogGlassmorphicSurfaceClass, i as DesignDialogProps, l as DesignDialogVariant, n as DesignDialogClose, o as DesignDialogSize, r as DesignDialogDescription, s as DesignDialogTitle, t as DesignDialog, u as designDialogGlassmorphicOverlayClass } from "../dialog-CCtTH7s6.js";
2
+ export { DesignDialog, DesignDialogClose, DesignDialogDescription, DesignDialogProps, DesignDialogRoot, DesignDialogSize, DesignDialogTitle, DesignDialogTrigger, DesignDialogVariant, designDialogGlassmorphicOverlayClass, designDialogGlassmorphicSurfaceClass };
@@ -1,14 +1,12 @@
1
1
  "use client";
2
-
3
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- const require_chunk = require('../chunk-BE-pF4vm.js');
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_rolldown_runtime = require("../rolldown-runtime-D6vf50IK.js");
5
4
  let _hexclave_ui = require("@hexclave/ui");
6
5
  let react_jsx_runtime = require("react/jsx-runtime");
7
6
  let react = require("react");
8
- react = require_chunk.__toESM(react);
9
-
7
+ react = require_rolldown_runtime.__toESM(react);
10
8
  //#region src/components/dialog.tsx
11
- const dialogSizeClasses = new Map([
9
+ const dialogSizeClasses = /* @__PURE__ */ new Map([
12
10
  ["sm", "max-w-sm"],
13
11
  ["md", "max-w-md"],
14
12
  ["lg", "max-w-lg"],
@@ -21,7 +19,7 @@ const dialogSizeClasses = new Map([
21
19
  ["7xl", "max-w-7xl"],
22
20
  ["full", "max-w-[calc(100vw-2rem)]"]
23
21
  ]);
24
- const dialogSurfaceClasses = new Map([["glassmorphic", "border-0 sm:rounded-2xl bg-white/95 backdrop-blur-2xl ring-1 ring-black/[0.08] shadow-[0_24px_48px_-12px_rgba(0,0,0,0.25),0_4px_24px_-8px_rgba(0,0,0,0.12)] dark:bg-background/80 dark:ring-white/[0.06]"], ["plain", "border border-black/[0.08] bg-white shadow-lg sm:rounded-lg dark:border-white/[0.06] dark:bg-background"]]);
22
+ const dialogSurfaceClasses = /* @__PURE__ */ new Map([["glassmorphic", "border-0 sm:rounded-2xl bg-white/95 backdrop-blur-2xl ring-1 ring-black/[0.08] shadow-[0_24px_48px_-12px_rgba(0,0,0,0.25),0_4px_24px_-8px_rgba(0,0,0,0.12)] dark:bg-background/80 dark:ring-white/[0.06]"], ["plain", "border border-black/[0.08] bg-white shadow-lg sm:rounded-lg dark:border-white/[0.06] dark:bg-background"]]);
25
23
  const designDialogGlassmorphicSurfaceClass = dialogSurfaceClasses.get("glassmorphic") ?? "";
26
24
  const designDialogGlassmorphicOverlayClass = "bg-black/50 backdrop-blur-sm";
27
25
  /**
@@ -91,7 +89,6 @@ const DesignDialogTrigger = _hexclave_ui.DialogTrigger;
91
89
  const DesignDialogClose = _hexclave_ui.DialogClose;
92
90
  const DesignDialogTitle = _hexclave_ui.DialogTitle;
93
91
  const DesignDialogDescription = _hexclave_ui.DialogDescription;
94
-
95
92
  //#endregion
96
93
  exports.DesignDialog = DesignDialog;
97
94
  exports.DesignDialogClose = DesignDialogClose;
@@ -101,4 +98,5 @@ exports.DesignDialogTitle = DesignDialogTitle;
101
98
  exports.DesignDialogTrigger = DesignDialogTrigger;
102
99
  exports.designDialogGlassmorphicOverlayClass = designDialogGlassmorphicOverlayClass;
103
100
  exports.designDialogGlassmorphicSurfaceClass = designDialogGlassmorphicSurfaceClass;
101
+
104
102
  //# sourceMappingURL=dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","names":["React","Dialog","DialogTrigger","DialogContent","DialogTitle","DialogHeader","DialogDescription","DialogBody","DialogFooter","DialogClose"],"sources":["../../src/components/dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n Dialog,\n DialogBody,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n cn,\n} from \"@hexclave/ui\";\nimport React from \"react\";\n\nexport type DesignDialogSize =\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"xl\"\n | \"2xl\"\n | \"3xl\"\n | \"4xl\"\n | \"5xl\"\n | \"6xl\"\n | \"7xl\"\n | \"full\";\n\nexport type DesignDialogVariant = \"glassmorphic\" | \"plain\";\n\nconst dialogSizeClasses = new Map<DesignDialogSize, string>([\n [\"sm\", \"max-w-sm\"],\n [\"md\", \"max-w-md\"],\n [\"lg\", \"max-w-lg\"],\n [\"xl\", \"max-w-xl\"],\n [\"2xl\", \"max-w-2xl\"],\n [\"3xl\", \"max-w-3xl\"],\n [\"4xl\", \"max-w-4xl\"],\n [\"5xl\", \"max-w-5xl\"],\n [\"6xl\", \"max-w-6xl\"],\n [\"7xl\", \"max-w-7xl\"],\n [\"full\", \"max-w-[calc(100vw-2rem)]\"],\n]);\n\nconst dialogSurfaceClasses = new Map<DesignDialogVariant, string>([\n [\"glassmorphic\", \"border-0 sm:rounded-2xl bg-white/95 backdrop-blur-2xl ring-1 ring-black/[0.08] shadow-[0_24px_48px_-12px_rgba(0,0,0,0.25),0_4px_24px_-8px_rgba(0,0,0,0.12)] dark:bg-background/80 dark:ring-white/[0.06]\"],\n [\"plain\", \"border border-black/[0.08] bg-white shadow-lg sm:rounded-lg dark:border-white/[0.06] dark:bg-background\"],\n]);\n\nexport const designDialogGlassmorphicSurfaceClass = dialogSurfaceClasses.get(\"glassmorphic\") ?? \"\";\nexport const designDialogGlassmorphicOverlayClass = \"bg-black/50 backdrop-blur-sm\";\n\ntype DesignDialogIcon = React.ElementType<{ className?: string }>;\n\ntype DesignDialogRootProps = Omit<React.ComponentProps<typeof Dialog>, \"children\">;\n\nexport type DesignDialogProps = {\n trigger?: React.ReactElement,\n size?: DesignDialogSize,\n variant?: DesignDialogVariant,\n icon?: DesignDialogIcon | null,\n title?: React.ReactNode,\n description?: React.ReactNode,\n headerContent?: React.ReactNode,\n customHeader?: React.ReactNode,\n footer?: React.ReactNode,\n noBodyPadding?: boolean,\n hideTopCloseButton?: boolean,\n className?: string,\n overlayClassName?: string,\n headerClassName?: string,\n bodyClassName?: string,\n footerClassName?: string,\n children?: React.ReactNode,\n contentProps?: Omit<\n React.ComponentPropsWithoutRef<typeof DialogContent>,\n \"className\" | \"children\" | \"overlayProps\" | \"noCloseButton\"\n >,\n} & DesignDialogRootProps;\n\n/**\n * Canonical dashboard modal surface. This wraps the base dialog primitives with\n * a reusable glassmorphic shell and consistent header/body/footer regions.\n */\nexport function DesignDialog({\n trigger,\n size = \"lg\",\n variant = \"glassmorphic\",\n icon: Icon = null,\n title,\n description,\n headerContent,\n customHeader,\n footer,\n noBodyPadding = false,\n hideTopCloseButton = false,\n className,\n overlayClassName,\n headerClassName,\n bodyClassName,\n footerClassName,\n contentProps,\n children,\n ...dialogRootProps\n}: DesignDialogProps) {\n const resolvedSizeClass = dialogSizeClasses.get(size) ?? \"max-w-lg\";\n const resolvedSurfaceClass = dialogSurfaceClasses.get(variant) ?? dialogSurfaceClasses.get(\"glassmorphic\");\n const resolvedOverlayClass = cn(\n variant === \"glassmorphic\" ? designDialogGlassmorphicOverlayClass : undefined,\n overlayClassName,\n );\n const shouldRenderTopHeaderRow = Icon != null || title != null || description != null;\n const shouldRenderHeader = customHeader != null || shouldRenderTopHeaderRow || headerContent != null;\n // Use toArray + filter(Boolean) instead of Children.count so that\n // expressions like `{condition && <Foo/>}` resolving to `false` don't\n // produce an empty DialogBody (which would still render padding/borders).\n const shouldRenderBody = React.Children.toArray(children).filter(Boolean).length > 0;\n const hasStandardTitle = title != null;\n const needsAccessibleTitleFallback = !hasStandardTitle && customHeader == null;\n\n if (process.env.NODE_ENV !== \"production\" && needsAccessibleTitleFallback) {\n console.warn(\n \"[DesignDialog] Rendered without a `title` or `customHeader`. Every dialog needs an accessible name — pass `title`, or render a `DialogTitle` inside `customHeader`.\",\n );\n }\n\n return (\n <Dialog {...dialogRootProps}>\n {trigger != null && (\n <DialogTrigger asChild>\n {trigger}\n </DialogTrigger>\n )}\n\n <DialogContent\n className={cn(\n \"gap-0 h-auto max-h-[min(100dvh-2rem,36rem)] overflow-hidden p-0\",\n resolvedSizeClass,\n resolvedSurfaceClass,\n className\n )}\n overlayProps={resolvedOverlayClass ? { className: resolvedOverlayClass } : undefined}\n noCloseButton={hideTopCloseButton}\n {...contentProps}\n >\n {needsAccessibleTitleFallback && (\n <DialogTitle className=\"sr-only\">Dialog</DialogTitle>\n )}\n {shouldRenderHeader && (\n <DialogHeader className={cn(\"shrink-0 px-6 pt-6 pb-4 border-b border-foreground/[0.06]\", headerClassName)}>\n {customHeader ?? (\n <>\n {shouldRenderTopHeaderRow && (\n <div className={cn(\n \"flex gap-3\",\n description != null ? \"items-start\" : \"items-center\",\n Icon == null && \"gap-0\",\n )}>\n {Icon != null && (\n <div className=\"h-9 w-9 rounded-xl bg-primary/10 ring-1 ring-primary/15 flex items-center justify-center shrink-0\">\n <Icon className=\"h-4 w-4 text-primary\" />\n </div>\n )}\n {(title != null || description != null) && (\n <div className=\"flex-1 min-w-0 space-y-1\">\n {title != null ? (\n <DialogTitle className=\"text-base font-semibold leading-snug\">\n {title}\n </DialogTitle>\n ) : null}\n {description != null ? (\n <DialogDescription className=\"text-xs\">\n {description}\n </DialogDescription>\n ) : null}\n </div>\n )}\n </div>\n )}\n\n {headerContent != null ? (\n <div className={cn(shouldRenderTopHeaderRow && \"mt-4\")}>\n {headerContent}\n </div>\n ) : null}\n </>\n )}\n </DialogHeader>\n )}\n\n {shouldRenderBody && (\n <DialogBody\n className={cn(\n \"mx-0 my-0 w-auto min-h-0 overflow-y-auto\",\n noBodyPadding ? \"px-0 py-0\" : \"px-6 py-4\",\n bodyClassName\n )}\n >\n {children}\n </DialogBody>\n )}\n\n {footer != null ? (\n <DialogFooter className={cn(\"shrink-0 px-6 py-3 border-t border-foreground/[0.06] bg-foreground/[0.02]\", footerClassName)}>\n {footer}\n </DialogFooter>\n ) : null}\n </DialogContent>\n </Dialog>\n );\n}\n\nexport const DesignDialogRoot = Dialog;\nexport const DesignDialogTrigger = DialogTrigger;\nexport const DesignDialogClose = DialogClose;\nexport const DesignDialogTitle = DialogTitle;\nexport const DesignDialogDescription = DialogDescription;\n"],"mappings":";;;;;;;;;;AA+BA,MAAM,oBAAoB,IAAI,IAA8B;CAC1D,CAAC,MAAM,WAAW;CAClB,CAAC,MAAM,WAAW;CAClB,CAAC,MAAM,WAAW;CAClB,CAAC,MAAM,WAAW;CAClB,CAAC,OAAO,YAAY;CACpB,CAAC,OAAO,YAAY;CACpB,CAAC,OAAO,YAAY;CACpB,CAAC,OAAO,YAAY;CACpB,CAAC,OAAO,YAAY;CACpB,CAAC,OAAO,YAAY;CACpB,CAAC,QAAQ,2BAA2B;CACrC,CAAC;AAEF,MAAM,uBAAuB,IAAI,IAAiC,CAChE,CAAC,gBAAgB,2MAA2M,EAC5N,CAAC,SAAS,0GAA0G,CACrH,CAAC;AAEF,MAAa,uCAAuC,qBAAqB,IAAI,eAAe,IAAI;AAChG,MAAa,uCAAuC;;;;;AAkCpD,SAAgB,aAAa,EAC3B,SACA,OAAO,MACP,UAAU,gBACV,MAAM,OAAO,MACb,OACA,aACA,eACA,cACA,QACA,gBAAgB,OAChB,qBAAqB,OACrB,WACA,kBACA,iBACA,eACA,iBACA,cACA,UACA,GAAG,mBACiB;CACpB,MAAM,oBAAoB,kBAAkB,IAAI,KAAK,IAAI;CACzD,MAAM,uBAAuB,qBAAqB,IAAI,QAAQ,IAAI,qBAAqB,IAAI,eAAe;CAC1G,MAAM,4CACJ,YAAY,iBAAiB,uCAAuC,QACpE,iBACD;CACD,MAAM,2BAA2B,QAAQ,QAAQ,SAAS,QAAQ,eAAe;CACjF,MAAM,qBAAqB,gBAAgB,QAAQ,4BAA4B,iBAAiB;CAIhG,MAAM,mBAAmBA,cAAM,SAAS,QAAQ,SAAS,CAAC,OAAO,QAAQ,CAAC,SAAS;CAEnF,MAAM,+BAA+B,EADZ,SAAS,SACwB,gBAAgB;AAE1E,KAAI,QAAQ,IAAI,aAAa,gBAAgB,6BAC3C,SAAQ,KACN,sKACD;AAGH,QACE,4CAACC;EAAO,GAAI;aACT,WAAW,QACV,2CAACC;GAAc;aACZ;IACa,EAGlB,4CAACC;GACC,gCACE,mEACA,mBACA,sBACA,UACD;GACD,cAAc,uBAAuB,EAAE,WAAW,sBAAsB,GAAG;GAC3E,eAAe;GACf,GAAI;;IAEH,gCACC,2CAACC;KAAY,WAAU;eAAU;MAAoB;IAEtD,sBACC,2CAACC;KAAa,gCAAc,6DAA6D,gBAAgB;eACtG,gBACC,qFACG,4BACC,4CAAC;MAAI,gCACH,cACA,eAAe,OAAO,gBAAgB,gBACtC,QAAQ,QAAQ,QACjB;iBACE,QAAQ,QACP,2CAAC;OAAI,WAAU;iBACb,2CAAC,QAAK,WAAU,yBAAyB;QACrC,GAEN,SAAS,QAAQ,eAAe,SAChC,4CAAC;OAAI,WAAU;kBACZ,SAAS,OACR,2CAACD;QAAY,WAAU;kBACpB;SACW,GACZ,MACH,eAAe,OACd,2CAACE;QAAkB,WAAU;kBAC1B;SACiB,GAClB;QACA;OAEJ,EAGP,iBAAiB,OAChB,2CAAC;MAAI,gCAAc,4BAA4B,OAAO;gBACnD;OACG,GACJ,QACH;MAEQ;IAGhB,oBACC,2CAACC;KACC,gCACE,4CACA,gBAAgB,cAAc,aAC9B,cACD;KAEA;MACU;IAGd,UAAU,OACT,2CAACC;KAAa,gCAAc,6EAA6E,gBAAgB;eACtH;MACY,GACb;;IACU;GACT;;AAIb,MAAa,mBAAmBP;AAChC,MAAa,sBAAsBC;AACnC,MAAa,oBAAoBO;AACjC,MAAa,oBAAoBL;AACjC,MAAa,0BAA0BE"}
1
+ {"version":3,"file":"dialog.js","names":["React","Dialog","DialogTrigger","DialogContent","DialogTitle","DialogHeader","DialogDescription","DialogBody","DialogFooter","DialogClose"],"sources":["../../src/components/dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n Dialog,\n DialogBody,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n cn,\n} from \"@hexclave/ui\";\nimport React from \"react\";\n\nexport type DesignDialogSize =\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"xl\"\n | \"2xl\"\n | \"3xl\"\n | \"4xl\"\n | \"5xl\"\n | \"6xl\"\n | \"7xl\"\n | \"full\";\n\nexport type DesignDialogVariant = \"glassmorphic\" | \"plain\";\n\nconst dialogSizeClasses = new Map<DesignDialogSize, string>([\n [\"sm\", \"max-w-sm\"],\n [\"md\", \"max-w-md\"],\n [\"lg\", \"max-w-lg\"],\n [\"xl\", \"max-w-xl\"],\n [\"2xl\", \"max-w-2xl\"],\n [\"3xl\", \"max-w-3xl\"],\n [\"4xl\", \"max-w-4xl\"],\n [\"5xl\", \"max-w-5xl\"],\n [\"6xl\", \"max-w-6xl\"],\n [\"7xl\", \"max-w-7xl\"],\n [\"full\", \"max-w-[calc(100vw-2rem)]\"],\n]);\n\nconst dialogSurfaceClasses = new Map<DesignDialogVariant, string>([\n [\"glassmorphic\", \"border-0 sm:rounded-2xl bg-white/95 backdrop-blur-2xl ring-1 ring-black/[0.08] shadow-[0_24px_48px_-12px_rgba(0,0,0,0.25),0_4px_24px_-8px_rgba(0,0,0,0.12)] dark:bg-background/80 dark:ring-white/[0.06]\"],\n [\"plain\", \"border border-black/[0.08] bg-white shadow-lg sm:rounded-lg dark:border-white/[0.06] dark:bg-background\"],\n]);\n\nexport const designDialogGlassmorphicSurfaceClass = dialogSurfaceClasses.get(\"glassmorphic\") ?? \"\";\nexport const designDialogGlassmorphicOverlayClass = \"bg-black/50 backdrop-blur-sm\";\n\ntype DesignDialogIcon = React.ElementType<{ className?: string }>;\n\ntype DesignDialogRootProps = Omit<React.ComponentProps<typeof Dialog>, \"children\">;\n\nexport type DesignDialogProps = {\n trigger?: React.ReactElement,\n size?: DesignDialogSize,\n variant?: DesignDialogVariant,\n icon?: DesignDialogIcon | null,\n title?: React.ReactNode,\n description?: React.ReactNode,\n headerContent?: React.ReactNode,\n customHeader?: React.ReactNode,\n footer?: React.ReactNode,\n noBodyPadding?: boolean,\n hideTopCloseButton?: boolean,\n className?: string,\n overlayClassName?: string,\n headerClassName?: string,\n bodyClassName?: string,\n footerClassName?: string,\n children?: React.ReactNode,\n contentProps?: Omit<\n React.ComponentPropsWithoutRef<typeof DialogContent>,\n \"className\" | \"children\" | \"overlayProps\" | \"noCloseButton\"\n >,\n} & DesignDialogRootProps;\n\n/**\n * Canonical dashboard modal surface. This wraps the base dialog primitives with\n * a reusable glassmorphic shell and consistent header/body/footer regions.\n */\nexport function DesignDialog({\n trigger,\n size = \"lg\",\n variant = \"glassmorphic\",\n icon: Icon = null,\n title,\n description,\n headerContent,\n customHeader,\n footer,\n noBodyPadding = false,\n hideTopCloseButton = false,\n className,\n overlayClassName,\n headerClassName,\n bodyClassName,\n footerClassName,\n contentProps,\n children,\n ...dialogRootProps\n}: DesignDialogProps) {\n const resolvedSizeClass = dialogSizeClasses.get(size) ?? \"max-w-lg\";\n const resolvedSurfaceClass = dialogSurfaceClasses.get(variant) ?? dialogSurfaceClasses.get(\"glassmorphic\");\n const resolvedOverlayClass = cn(\n variant === \"glassmorphic\" ? designDialogGlassmorphicOverlayClass : undefined,\n overlayClassName,\n );\n const shouldRenderTopHeaderRow = Icon != null || title != null || description != null;\n const shouldRenderHeader = customHeader != null || shouldRenderTopHeaderRow || headerContent != null;\n // Use toArray + filter(Boolean) instead of Children.count so that\n // expressions like `{condition && <Foo/>}` resolving to `false` don't\n // produce an empty DialogBody (which would still render padding/borders).\n const shouldRenderBody = React.Children.toArray(children).filter(Boolean).length > 0;\n const hasStandardTitle = title != null;\n const needsAccessibleTitleFallback = !hasStandardTitle && customHeader == null;\n\n if (process.env.NODE_ENV !== \"production\" && needsAccessibleTitleFallback) {\n console.warn(\n \"[DesignDialog] Rendered without a `title` or `customHeader`. Every dialog needs an accessible name — pass `title`, or render a `DialogTitle` inside `customHeader`.\",\n );\n }\n\n return (\n <Dialog {...dialogRootProps}>\n {trigger != null && (\n <DialogTrigger asChild>\n {trigger}\n </DialogTrigger>\n )}\n\n <DialogContent\n className={cn(\n \"gap-0 h-auto max-h-[min(100dvh-2rem,36rem)] overflow-hidden p-0\",\n resolvedSizeClass,\n resolvedSurfaceClass,\n className\n )}\n overlayProps={resolvedOverlayClass ? { className: resolvedOverlayClass } : undefined}\n noCloseButton={hideTopCloseButton}\n {...contentProps}\n >\n {needsAccessibleTitleFallback && (\n <DialogTitle className=\"sr-only\">Dialog</DialogTitle>\n )}\n {shouldRenderHeader && (\n <DialogHeader className={cn(\"shrink-0 px-6 pt-6 pb-4 border-b border-foreground/[0.06]\", headerClassName)}>\n {customHeader ?? (\n <>\n {shouldRenderTopHeaderRow && (\n <div className={cn(\n \"flex gap-3\",\n description != null ? \"items-start\" : \"items-center\",\n Icon == null && \"gap-0\",\n )}>\n {Icon != null && (\n <div className=\"h-9 w-9 rounded-xl bg-primary/10 ring-1 ring-primary/15 flex items-center justify-center shrink-0\">\n <Icon className=\"h-4 w-4 text-primary\" />\n </div>\n )}\n {(title != null || description != null) && (\n <div className=\"flex-1 min-w-0 space-y-1\">\n {title != null ? (\n <DialogTitle className=\"text-base font-semibold leading-snug\">\n {title}\n </DialogTitle>\n ) : null}\n {description != null ? (\n <DialogDescription className=\"text-xs\">\n {description}\n </DialogDescription>\n ) : null}\n </div>\n )}\n </div>\n )}\n\n {headerContent != null ? (\n <div className={cn(shouldRenderTopHeaderRow && \"mt-4\")}>\n {headerContent}\n </div>\n ) : null}\n </>\n )}\n </DialogHeader>\n )}\n\n {shouldRenderBody && (\n <DialogBody\n className={cn(\n \"mx-0 my-0 w-auto min-h-0 overflow-y-auto\",\n noBodyPadding ? \"px-0 py-0\" : \"px-6 py-4\",\n bodyClassName\n )}\n >\n {children}\n </DialogBody>\n )}\n\n {footer != null ? (\n <DialogFooter className={cn(\"shrink-0 px-6 py-3 border-t border-foreground/[0.06] bg-foreground/[0.02]\", footerClassName)}>\n {footer}\n </DialogFooter>\n ) : null}\n </DialogContent>\n </Dialog>\n );\n}\n\nexport const DesignDialogRoot = Dialog;\nexport const DesignDialogTrigger = DialogTrigger;\nexport const DesignDialogClose = DialogClose;\nexport const DesignDialogTitle = DialogTitle;\nexport const DesignDialogDescription = DialogDescription;\n"],"mappings":"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"}
@@ -1,11 +1,9 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
1
  //#region src/components/edit-mode.d.ts
4
2
  declare function DesignEditMode({
5
3
  children
6
4
  }: {
7
5
  children: React.ReactNode;
8
- }): react_jsx_runtime0.JSX.Element;
6
+ }): import("react/jsx-runtime").JSX.Element;
9
7
  declare function useDesignEditMode(): boolean;
10
8
  //#endregion
11
9
  export { DesignEditMode, useDesignEditMode };
@@ -1 +1 @@
1
- {"version":3,"file":"edit-mode.d.ts","names":[],"sources":["../../src/components/edit-mode.tsx"],"mappings":";;;iBAMgB,cAAA,CAAA;EAAiB;AAAA;EAAc,QAAA,EAAU,KAAA,CAAM,SAAA;AAAA,IAAW,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAQ1D,iBAAA,CAAA"}
1
+ {"version":3,"file":"edit-mode.d.ts","names":[],"sources":["../../src/components/edit-mode.tsx"],"mappings":";iBAMgB,cAAA;EAAiB;AAAA;EAAc,QAAA,EAAU,KAAA,CAAM,SAAS;AAAA,gCAAE,GAAA,CAAA,OAAA;AAAA,iBAQ1D,iBAAA"}
@@ -1,10 +1,7 @@
1
1
  "use client";
2
-
3
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- const require_chunk = require('../chunk-BE-pF4vm.js');
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
5
3
  let react_jsx_runtime = require("react/jsx-runtime");
6
4
  let react = require("react");
7
-
8
5
  //#region src/components/edit-mode.tsx
9
6
  const DesignEditModeContext = (0, react.createContext)(false);
10
7
  function DesignEditMode({ children }) {
@@ -16,8 +13,8 @@ function DesignEditMode({ children }) {
16
13
  function useDesignEditMode() {
17
14
  return (0, react.useContext)(DesignEditModeContext);
18
15
  }
19
-
20
16
  //#endregion
21
17
  exports.DesignEditMode = DesignEditMode;
22
18
  exports.useDesignEditMode = useDesignEditMode;
19
+
23
20
  //# sourceMappingURL=edit-mode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit-mode.js","names":[],"sources":["../../src/components/edit-mode.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\nconst DesignEditModeContext = createContext(false);\n\nexport function DesignEditMode({ children }: { children: React.ReactNode }) {\n return (\n <DesignEditModeContext.Provider value={true}>\n {children}\n </DesignEditModeContext.Provider>\n );\n}\n\nexport function useDesignEditMode(): boolean {\n return useContext(DesignEditModeContext);\n}\n"],"mappings":";;;;;;;;AAIA,MAAM,iDAAsC,MAAM;AAElD,SAAgB,eAAe,EAAE,YAA2C;AAC1E,QACE,2CAAC,sBAAsB;EAAS,OAAO;EACpC;GAC8B;;AAIrC,SAAgB,oBAA6B;AAC3C,8BAAkB,sBAAsB"}
1
+ {"version":3,"file":"edit-mode.js","names":[],"sources":["../../src/components/edit-mode.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\nconst DesignEditModeContext = createContext(false);\n\nexport function DesignEditMode({ children }: { children: React.ReactNode }) {\n return (\n <DesignEditModeContext.Provider value={true}>\n {children}\n </DesignEditModeContext.Provider>\n );\n}\n\nexport function useDesignEditMode(): boolean {\n return useContext(DesignEditModeContext);\n}\n"],"mappings":";;;;;AAIA,MAAM,yBAAA,GAAA,MAAA,cAAA,CAAsC,KAAK;AAEjD,SAAgB,eAAe,EAAE,YAA2C;CAC1E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,sBAAsB,UAAvB;EAAgC,OAAO;EACpC;CAC6B,CAAA;AAEpC;AAEA,SAAgB,oBAA6B;CAC3C,QAAA,GAAA,MAAA,WAAA,CAAkB,qBAAqB;AACzC"}
@@ -1,4 +1,3 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import React from "react";
3
2
 
4
3
  //#region src/components/empty-state.d.ts
@@ -31,7 +30,7 @@ declare function DesignEmptyState({
31
30
  description,
32
31
  children,
33
32
  className
34
- }: DesignEmptyStateProps): react_jsx_runtime0.JSX.Element;
33
+ }: DesignEmptyStateProps): import("react/jsx-runtime").JSX.Element;
35
34
  //#endregion
36
35
  export { DesignEmptyState, DesignEmptyStateProps };
37
36
  //# sourceMappingURL=empty-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"empty-state.d.ts","names":[],"sources":["../../src/components/empty-state.tsx"],"mappings":";;;;KAKY,qBAAA;EACV,IAAA,GAAO,KAAA,CAAM,WAAA;EACb,KAAA;EACA,WAAA;EACA,QAAA,GAAW,KAAA,CAAM,SAAA;EACjB,SAAA;AAAA;;;;;;;;;;;;AAmBF;;;;;iBAAgB,gBAAA,CAAA;EACd,IAAA,EAAM,IAAA;EACN,KAAA;EACA,WAAA;EACA,QAAA;EACA;AAAA,GACC,qBAAA,GAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"empty-state.d.ts","names":[],"sources":["../../src/components/empty-state.tsx"],"mappings":";;;KAKY,qBAAA;EACV,IAAA,GAAO,KAAA,CAAM,WAAA;EACb,KAAA;EACA,WAAA;EACA,QAAA,GAAW,KAAA,CAAM,SAAS;EAC1B,SAAA;AAAA;;;;;;;;;;AAAS;AAmBX;;;;;;iBAAgB,gBAAA;EACd,IAAA,EAAM,IAAA;EACN,KAAA;EACA,WAAA;EACA,QAAA;EACA;AAAA,GACC,qBAAA,+BAAqB,GAAA,CAAA,OAAA"}
@@ -1,12 +1,10 @@
1
1
  "use client";
2
-
3
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- const require_chunk = require('../chunk-BE-pF4vm.js');
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_rolldown_runtime = require("../rolldown-runtime-D6vf50IK.js");
5
4
  let _hexclave_ui = require("@hexclave/ui");
6
5
  let react_jsx_runtime = require("react/jsx-runtime");
7
6
  let react = require("react");
8
- react = require_chunk.__toESM(react);
9
-
7
+ react = require_rolldown_runtime.__toESM(react);
10
8
  //#region src/components/empty-state.tsx
11
9
  /**
12
10
  * Centered "no data" placeholder. Show this inside a `DataGrid` via the
@@ -47,7 +45,7 @@ function DesignEmptyState({ icon: Icon, title = "No data available", description
47
45
  ]
48
46
  });
49
47
  }
50
-
51
48
  //#endregion
52
49
  exports.DesignEmptyState = DesignEmptyState;
50
+
53
51
  //# sourceMappingURL=empty-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"empty-state.js","names":[],"sources":["../../src/components/empty-state.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn } from \"@hexclave/ui\";\nimport React from \"react\";\n\nexport type DesignEmptyStateProps = {\n icon?: React.ElementType,\n title?: string,\n description?: string,\n children?: React.ReactNode,\n className?: string,\n};\n\n/**\n * Centered \"no data\" placeholder. Show this inside a `DataGrid` via the\n * `emptyState` prop, inside a chart when a query returns zero rows, or\n * inside a card when a section has nothing to display.\n *\n * ```tsx\n * <DesignEmptyState\n * icon={SearchIcon}\n * title=\"No results\"\n * description=\"Try adjusting your filters.\"\n * />\n * ```\n *\n * Prefer this over a raw \"No data\" div — it handles spacing, typography,\n * and the optional icon for you. `icon` is a component type, not a rendered node.\n */\nexport function DesignEmptyState({\n icon: Icon,\n title = \"No data available\",\n description,\n children,\n className,\n}: DesignEmptyStateProps) {\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center py-12 px-6 text-center\",\n className\n )}\n >\n {Icon && (\n <div className=\"mb-4\">\n <Icon className=\"h-10 w-10 text-muted-foreground/30\" />\n </div>\n )}\n <h3 className=\"text-sm font-medium text-foreground\">\n {title}\n </h3>\n {description && (\n <p className=\"mt-1 text-xs text-muted-foreground max-w-[280px]\">\n {description}\n </p>\n )}\n {children && (\n <div className=\"mt-4\">\n {children}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAgB,iBAAiB,EAC/B,MAAM,MACN,QAAQ,qBACR,aACA,UACA,aACwB;AACxB,QACE,4CAAC;EACC,gCACE,oEACA,UACD;;GAEA,QACC,2CAAC;IAAI,WAAU;cACb,2CAAC,QAAK,WAAU,uCAAuC;KACnD;GAER,2CAAC;IAAG,WAAU;cACX;KACE;GACJ,eACC,2CAAC;IAAE,WAAU;cACV;KACC;GAEL,YACC,2CAAC;IAAI,WAAU;IACZ;KACG;;GAEJ"}
1
+ {"version":3,"file":"empty-state.js","names":[],"sources":["../../src/components/empty-state.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn } from \"@hexclave/ui\";\nimport React from \"react\";\n\nexport type DesignEmptyStateProps = {\n icon?: React.ElementType,\n title?: string,\n description?: string,\n children?: React.ReactNode,\n className?: string,\n};\n\n/**\n * Centered \"no data\" placeholder. Show this inside a `DataGrid` via the\n * `emptyState` prop, inside a chart when a query returns zero rows, or\n * inside a card when a section has nothing to display.\n *\n * ```tsx\n * <DesignEmptyState\n * icon={SearchIcon}\n * title=\"No results\"\n * description=\"Try adjusting your filters.\"\n * />\n * ```\n *\n * Prefer this over a raw \"No data\" div — it handles spacing, typography,\n * and the optional icon for you. `icon` is a component type, not a rendered node.\n */\nexport function DesignEmptyState({\n icon: Icon,\n title = \"No data available\",\n description,\n children,\n className,\n}: DesignEmptyStateProps) {\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center py-12 px-6 text-center\",\n className\n )}\n >\n {Icon && (\n <div className=\"mb-4\">\n <Icon className=\"h-10 w-10 text-muted-foreground/30\" />\n </div>\n )}\n <h3 className=\"text-sm font-medium text-foreground\">\n {title}\n </h3>\n {description && (\n <p className=\"mt-1 text-xs text-muted-foreground max-w-[280px]\">\n {description}\n </p>\n )}\n {children && (\n <div className=\"mt-4\">\n {children}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAgB,iBAAiB,EAC/B,MAAM,MACN,QAAQ,qBACR,aACA,UACA,aACwB;CACxB,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EACE,YAAA,GAAA,aAAA,GAAA,CACE,oEACA,SACF;YAJF;GAMG,QACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAU;cACb,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD,EAAM,WAAU,qCAAsC,CAAA;GACnD,CAAA;GAEP,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;IAAI,WAAU;cACX;GACC,CAAA;GACH,eACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;IAAG,WAAU;cACV;GACA,CAAA;GAEJ,YACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAU;IACZ;GACE,CAAA;EAEJ;;AAET"}
@@ -1,13 +1,11 @@
1
1
  "use client";
2
-
3
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- const require_chunk = require('../chunk-BE-pF4vm.js');
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_rolldown_runtime = require("../rolldown-runtime-D6vf50IK.js");
5
4
  let _hexclave_ui = require("@hexclave/ui");
6
5
  let react_jsx_runtime = require("react/jsx-runtime");
7
6
  let _hexclave_shared_dist_utils_react = require("@hexclave/shared/dist/utils/react");
8
7
  let react = require("react");
9
- react = require_chunk.__toESM(react);
10
-
8
+ react = require_rolldown_runtime.__toESM(react);
11
9
  //#region src/components/input.tsx
12
10
  const DesignInput = (0, _hexclave_shared_dist_utils_react.forwardRefIfNeeded)(({ className, type, prefixItem, leadingIcon, size = "md", ...props }, ref) => {
13
11
  const heightTextClasses = size === "sm" ? "h-7 text-xs" : size === "lg" ? "h-10 text-sm" : "h-9 text-sm";
@@ -50,7 +48,7 @@ const DesignInput = (0, _hexclave_shared_dist_utils_react.forwardRefIfNeeded)(({
50
48
  });
51
49
  });
52
50
  DesignInput.displayName = "DesignInput";
53
-
54
51
  //#endregion
55
52
  exports.DesignInput = DesignInput;
53
+
56
54
  //# sourceMappingURL=input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","names":[],"sources":["../../src/components/input.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRefIfNeeded } from \"@hexclave/shared/dist/utils/react\";\nimport React from \"react\";\n\nimport { cn } from \"@hexclave/ui\";\n\nexport type DesignInputProps = {\n prefixItem?: React.ReactNode,\n leadingIcon?: React.ReactNode,\n size?: \"sm\" | \"md\" | \"lg\",\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\">;\n\nexport const DesignInput = forwardRefIfNeeded<HTMLInputElement, DesignInputProps>(\n ({ className, type, prefixItem, leadingIcon, size = \"md\", ...props }, ref) => {\n const heightTextClasses = size === \"sm\"\n ? \"h-7 text-xs\"\n : size === \"lg\"\n ? \"h-10 text-sm\"\n : \"h-9 text-sm\";\n const horizontalPaddingClasses = size === \"sm\" ? \"px-2\" : size === \"lg\" ? \"px-4\" : \"px-3\";\n const baseClasses = cn(\n \"stack-scope flex w-full rounded-xl border border-black/[0.08] dark:border-white/[0.06] bg-white/80 dark:bg-foreground/[0.03] shadow-sm ring-1 ring-black/[0.08] dark:ring-white/[0.06]\",\n \"file:border-0 file:bg-transparent file:text-sm file:font-medium\",\n \"placeholder:text-muted-foreground/50 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-foreground/[0.1]\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"transition-all duration-150 hover:transition-none hover:bg-white dark:hover:bg-foreground/[0.06]\",\n heightTextClasses\n );\n\n const leadingIconClasses = size === \"sm\"\n ? \"left-2.5 [&_svg]:size-3\"\n : size === \"lg\"\n ? \"left-3.5 [&_svg]:size-4\"\n : \"left-3 [&_svg]:size-3.5\";\n const leadingIconPadding = size === \"sm\" ? \"pl-8\" : size === \"lg\" ? \"pl-10\" : \"pl-9\";\n\n if (prefixItem) {\n return (\n <div className=\"flex w-full flex-row items-center overflow-hidden rounded-xl border border-black/[0.08] bg-white/80 shadow-sm ring-1 ring-black/[0.08] transition-all duration-150 hover:bg-white hover:transition-none dark:border-white/[0.06] dark:bg-foreground/[0.03] dark:ring-white/[0.06] focus-within:ring-1 focus-within:ring-foreground/[0.1] dark:hover:bg-foreground/[0.06]\">\n <div className={cn(\n \"flex self-stretch items-center justify-center select-none text-muted-foreground/70 border-r border-black/[0.06] dark:border-white/[0.06] bg-black/[0.03] dark:bg-white/[0.02]\",\n size === \"sm\" ? \"px-2.5 text-xs\" : size === \"lg\" ? \"px-3.5 text-sm\" : \"px-3 text-sm\"\n )}>\n {prefixItem}\n </div>\n <input\n type={type}\n className={cn(\n \"stack-scope flex w-full bg-transparent\",\n \"file:border-0 file:bg-transparent file:text-sm file:font-medium\",\n \"placeholder:text-muted-foreground/50 focus-visible:outline-none\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n heightTextClasses,\n horizontalPaddingClasses,\n \"rounded-none border-0 shadow-none ring-0 focus-visible:ring-0\",\n className\n )}\n ref={ref}\n {...props}\n />\n </div>\n );\n }\n\n if (leadingIcon) {\n return (\n <div className={cn(\"relative w-full\", className)}>\n <div className={cn(\n \"pointer-events-none absolute top-1/2 -translate-y-1/2 text-muted-foreground [&_svg]:block\",\n leadingIconClasses,\n )}>\n {leadingIcon}\n </div>\n <input\n type={type}\n className={cn(baseClasses, leadingIconPadding)}\n ref={ref}\n {...props}\n />\n </div>\n );\n }\n\n return (\n <div className=\"w-full\">\n <input\n type={type}\n className={cn(baseClasses, horizontalPaddingClasses, className)}\n ref={ref}\n {...props}\n />\n </div>\n );\n }\n);\nDesignInput.displayName = \"DesignInput\";\n"],"mappings":";;;;;;;;;;;AAaA,MAAa,yEACV,EAAE,WAAW,MAAM,YAAY,aAAa,OAAO,MAAM,GAAG,SAAS,QAAQ;CAC5E,MAAM,oBAAoB,SAAS,OAC/B,gBACA,SAAS,OACP,iBACA;CACN,MAAM,2BAA2B,SAAS,OAAO,SAAS,SAAS,OAAO,SAAS;CACnF,MAAM,mCACJ,0LACA,mEACA,4HACA,mDACA,oGACA,kBACD;CAED,MAAM,qBAAqB,SAAS,OAChC,4BACA,SAAS,OACP,4BACA;CACN,MAAM,qBAAqB,SAAS,OAAO,SAAS,SAAS,OAAO,UAAU;AAE9E,KAAI,WACF,QACE,4CAAC;EAAI,WAAU;aACb,2CAAC;GAAI,gCACH,iLACA,SAAS,OAAO,mBAAmB,SAAS,OAAO,mBAAmB,eACvE;aACE;IACG,EACN,2CAAC;GACO;GACN,gCACE,0CACA,mEACA,mEACA,mDACA,mBACA,0BACA,iEACA,UACD;GACI;GACL,GAAI;IACJ;GACE;AAIV,KAAI,YACF,QACE,4CAAC;EAAI,gCAAc,mBAAmB,UAAU;aAC9C,2CAAC;GAAI,gCACH,6FACA,mBACD;aACE;IACG,EACN,2CAAC;GACO;GACN,gCAAc,aAAa,mBAAmB;GACzC;GACL,GAAI;IACJ;GACE;AAIV,QACE,2CAAC;EAAI,WAAU;YACb,2CAAC;GACO;GACN,gCAAc,aAAa,0BAA0B,UAAU;GAC1D;GACL,GAAI;IACJ;GACE;EAGX;AACD,YAAY,cAAc"}
1
+ {"version":3,"file":"input.js","names":[],"sources":["../../src/components/input.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRefIfNeeded } from \"@hexclave/shared/dist/utils/react\";\nimport React from \"react\";\n\nimport { cn } from \"@hexclave/ui\";\n\nexport type DesignInputProps = {\n prefixItem?: React.ReactNode,\n leadingIcon?: React.ReactNode,\n size?: \"sm\" | \"md\" | \"lg\",\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\">;\n\nexport const DesignInput = forwardRefIfNeeded<HTMLInputElement, DesignInputProps>(\n ({ className, type, prefixItem, leadingIcon, size = \"md\", ...props }, ref) => {\n const heightTextClasses = size === \"sm\"\n ? \"h-7 text-xs\"\n : size === \"lg\"\n ? \"h-10 text-sm\"\n : \"h-9 text-sm\";\n const horizontalPaddingClasses = size === \"sm\" ? \"px-2\" : size === \"lg\" ? \"px-4\" : \"px-3\";\n const baseClasses = cn(\n \"stack-scope flex w-full rounded-xl border border-black/[0.08] dark:border-white/[0.06] bg-white/80 dark:bg-foreground/[0.03] shadow-sm ring-1 ring-black/[0.08] dark:ring-white/[0.06]\",\n \"file:border-0 file:bg-transparent file:text-sm file:font-medium\",\n \"placeholder:text-muted-foreground/50 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-foreground/[0.1]\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"transition-all duration-150 hover:transition-none hover:bg-white dark:hover:bg-foreground/[0.06]\",\n heightTextClasses\n );\n\n const leadingIconClasses = size === \"sm\"\n ? \"left-2.5 [&_svg]:size-3\"\n : size === \"lg\"\n ? \"left-3.5 [&_svg]:size-4\"\n : \"left-3 [&_svg]:size-3.5\";\n const leadingIconPadding = size === \"sm\" ? \"pl-8\" : size === \"lg\" ? \"pl-10\" : \"pl-9\";\n\n if (prefixItem) {\n return (\n <div className=\"flex w-full flex-row items-center overflow-hidden rounded-xl border border-black/[0.08] bg-white/80 shadow-sm ring-1 ring-black/[0.08] transition-all duration-150 hover:bg-white hover:transition-none dark:border-white/[0.06] dark:bg-foreground/[0.03] dark:ring-white/[0.06] focus-within:ring-1 focus-within:ring-foreground/[0.1] dark:hover:bg-foreground/[0.06]\">\n <div className={cn(\n \"flex self-stretch items-center justify-center select-none text-muted-foreground/70 border-r border-black/[0.06] dark:border-white/[0.06] bg-black/[0.03] dark:bg-white/[0.02]\",\n size === \"sm\" ? \"px-2.5 text-xs\" : size === \"lg\" ? \"px-3.5 text-sm\" : \"px-3 text-sm\"\n )}>\n {prefixItem}\n </div>\n <input\n type={type}\n className={cn(\n \"stack-scope flex w-full bg-transparent\",\n \"file:border-0 file:bg-transparent file:text-sm file:font-medium\",\n \"placeholder:text-muted-foreground/50 focus-visible:outline-none\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n heightTextClasses,\n horizontalPaddingClasses,\n \"rounded-none border-0 shadow-none ring-0 focus-visible:ring-0\",\n className\n )}\n ref={ref}\n {...props}\n />\n </div>\n );\n }\n\n if (leadingIcon) {\n return (\n <div className={cn(\"relative w-full\", className)}>\n <div className={cn(\n \"pointer-events-none absolute top-1/2 -translate-y-1/2 text-muted-foreground [&_svg]:block\",\n leadingIconClasses,\n )}>\n {leadingIcon}\n </div>\n <input\n type={type}\n className={cn(baseClasses, leadingIconPadding)}\n ref={ref}\n {...props}\n />\n </div>\n );\n }\n\n return (\n <div className=\"w-full\">\n <input\n type={type}\n className={cn(baseClasses, horizontalPaddingClasses, className)}\n ref={ref}\n {...props}\n />\n </div>\n );\n }\n);\nDesignInput.displayName = \"DesignInput\";\n"],"mappings":";;;;;;;;;AAaA,MAAa,eAAA,GAAA,kCAAA,mBAAA,EACV,EAAE,WAAW,MAAM,YAAY,aAAa,OAAO,MAAM,GAAG,SAAS,QAAQ;CAC5E,MAAM,oBAAoB,SAAS,OAC/B,gBACA,SAAS,OACP,iBACA;CACN,MAAM,2BAA2B,SAAS,OAAO,SAAS,SAAS,OAAO,SAAS;CACnF,MAAM,eAAA,GAAA,aAAA,GAAA,CACJ,0LACA,mEACA,4HACA,mDACA,oGACA,iBACF;CAEA,MAAM,qBAAqB,SAAS,OAChC,4BACA,SAAS,OACP,4BACA;CACN,MAAM,qBAAqB,SAAS,OAAO,SAAS,SAAS,OAAO,UAAU;CAE9E,IAAI,YACF,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EAAK,WAAU;YAAf,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;GAAK,YAAA,GAAA,aAAA,GAAA,CACH,iLACA,SAAS,OAAO,mBAAmB,SAAS,OAAO,mBAAmB,cACxE;aACG;EACE,CAAA,GACL,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD;GACQ;GACN,YAAA,GAAA,aAAA,GAAA,CACE,0CACA,mEACA,mEACA,mDACA,mBACA,0BACA,iEACA,SACF;GACK;GACL,GAAI;EACL,CAAA,CACE;;CAIT,IAAI,aACF,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EAAK,YAAA,GAAA,aAAA,GAAA,CAAc,mBAAmB,SAAS;YAA/C,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;GAAK,YAAA,GAAA,aAAA,GAAA,CACH,6FACA,kBACF;aACG;EACE,CAAA,GACL,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD;GACQ;GACN,YAAA,GAAA,aAAA,GAAA,CAAc,aAAa,kBAAkB;GACxC;GACL,GAAI;EACL,CAAA,CACE;;CAIT,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,WAAU;YACb,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD;GACQ;GACN,YAAA,GAAA,aAAA,GAAA,CAAc,aAAa,0BAA0B,SAAS;GACzD;GACL,GAAI;EACL,CAAA;CACE,CAAA;AAET,CACF;AACA,YAAY,cAAc"}
@@ -1,4 +1,3 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import React from "react";
3
2
 
4
3
  //#region src/components/metric-card.d.ts
@@ -49,7 +48,7 @@ declare function DesignMetricCard({
49
48
  gradient,
50
49
  className,
51
50
  ...props
52
- }: DesignMetricCardProps): react_jsx_runtime0.JSX.Element;
51
+ }: DesignMetricCardProps): import("react/jsx-runtime").JSX.Element;
53
52
  //#endregion
54
53
  export { DesignMetricCard, DesignMetricCardProps, DesignMetricCardTrend };
55
54
  //# sourceMappingURL=metric-card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metric-card.d.ts","names":[],"sources":["../../src/components/metric-card.tsx"],"mappings":";;;;KAKK,wBAAA;AAAA,KAWO,qBAAA;EACV,KAAA;EACA,SAAA;EACA,KAAA;AAAA;AAAA,KAGU,qBAAA;EACV,KAAA;EACA,KAAA;EACA,WAAA;EACA,KAAA,GAAQ,qBAAA;EACR,IAAA,GAAO,KAAA,CAAM,WAAA;EACb,QAAA,GAAW,wBAAA;AAAA,IACT,IAAA,CAAK,KAAA,CAAM,cAAA;;;;AAPf;;;;;;;;;;;;;;;;;;;;;iBAiCgB,gBAAA,CAAA;EACd,KAAA;EACA,KAAA;EACA,WAAA;EACA,KAAA;EACA,IAAA,EAAM,IAAA;EACN,QAAA;EACA,SAAA;EAAA,GACG;AAAA,GACF,qBAAA,GAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"metric-card.d.ts","names":[],"sources":["../../src/components/metric-card.tsx"],"mappings":";;;KAKK,wBAAA;AAAA,KAWO,qBAAA;EACV,KAAA;EACA,SAAA;EACA,KAAA;AAAA;AAAA,KAGU,qBAAA;EACV,KAAA;EACA,KAAA;EACA,WAAA;EACA,KAAA,GAAQ,qBAAA;EACR,IAAA,GAAO,KAAA,CAAM,WAAA;EACb,QAAA,GAAW,wBAAA;AAAA,IACT,IAAA,CAAK,KAAA,CAAM,cAAA;;AAVR;AAGP;;;;;;;;;;;;;;;;;;;;;;iBAiCgB,gBAAA;EACd,KAAA;EACA,KAAA;EACA,WAAA;EACA,KAAA;EACA,IAAA,EAAM,IAAA;EACN,QAAA;EACA,SAAA;EAAA,GACG;AAAA,GACF,qBAAA,+BAAqB,GAAA,CAAA,OAAA"}
@@ -1,14 +1,12 @@
1
1
  "use client";
2
-
3
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
- const require_chunk = require('../chunk-BE-pF4vm.js');
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_rolldown_runtime = require("../rolldown-runtime-D6vf50IK.js");
5
4
  let _hexclave_ui = require("@hexclave/ui");
6
5
  let react_jsx_runtime = require("react/jsx-runtime");
7
6
  let react = require("react");
8
- react = require_chunk.__toESM(react);
9
-
7
+ react = require_rolldown_runtime.__toESM(react);
10
8
  //#region src/components/metric-card.tsx
11
- const hoverTintClasses = new Map([
9
+ const hoverTintClasses = /* @__PURE__ */ new Map([
12
10
  ["blue", "group-hover:bg-blue-500/[0.03]"],
13
11
  ["cyan", "group-hover:bg-cyan-500/[0.03]"],
14
12
  ["purple", "group-hover:bg-purple-500/[0.03]"],
@@ -106,7 +104,7 @@ function DesignMetricCard({ label, value, description, trend, icon: Icon, gradie
106
104
  ]
107
105
  });
108
106
  }
109
-
110
107
  //#endregion
111
108
  exports.DesignMetricCard = DesignMetricCard;
109
+
112
110
  //# sourceMappingURL=metric-card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metric-card.js","names":[],"sources":["../../src/components/metric-card.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn } from \"@hexclave/ui\";\nimport React from \"react\";\n\ntype DesignMetricCardGradient = \"blue\" | \"cyan\" | \"purple\" | \"green\" | \"orange\" | \"default\";\n\nconst hoverTintClasses = new Map<DesignMetricCardGradient, string>([\n [\"blue\", \"group-hover:bg-blue-500/[0.03]\"],\n [\"cyan\", \"group-hover:bg-cyan-500/[0.03]\"],\n [\"purple\", \"group-hover:bg-purple-500/[0.03]\"],\n [\"green\", \"group-hover:bg-emerald-500/[0.03]\"],\n [\"orange\", \"group-hover:bg-orange-500/[0.03]\"],\n [\"default\", \"group-hover:bg-slate-500/[0.02]\"],\n]);\n\nexport type DesignMetricCardTrend = {\n value: number,\n direction: \"up\" | \"down\",\n label?: string,\n};\n\nexport type DesignMetricCardProps = {\n label: string,\n value: string | number,\n description?: string,\n trend?: DesignMetricCardTrend,\n icon?: React.ElementType,\n gradient?: DesignMetricCardGradient,\n} & Omit<React.ComponentProps<\"div\">, \"children\">;\n\n/**\n * KPI card for big-number metrics (users, revenue, signups, etc.).\n * Use this instead of a plain `DesignCard` when the value is the focal point.\n *\n * ```tsx\n * <DesignMetricCard\n * label=\"Total Users\"\n * value=\"1,234\"\n * description=\"+12% from last month\"\n * trend={{ direction: \"up\", value: 12, label: \"vs. last period\" }}\n * icon={UsersIcon}\n * gradient=\"blue\"\n * />\n * ```\n *\n * Notes:\n * - `label` is the short caption (NOT `title`).\n * - `value` can be a pre-formatted string (\"1,234\") or a number — prefer\n * strings so you control the format.\n * - `description` is the subline (NOT `subtitle`).\n * - `trend.value` is a NUMBER, not a pre-formatted \"12%\" string. The card\n * renders the arrow and formatting.\n * - `icon` is a component type (e.g. `UsersIcon`), not a rendered node.\n */\nexport function DesignMetricCard({\n label,\n value,\n description,\n trend,\n icon: Icon,\n gradient = \"default\",\n className,\n ...props\n}: DesignMetricCardProps) {\n const hoverTintClass = hoverTintClasses.get(gradient) ?? \"group-hover:bg-slate-500/[0.02]\";\n\n return (\n <div\n className={cn(\n \"group relative rounded-2xl bg-white/90 dark:bg-background/60 backdrop-blur-xl transition-all duration-150 hover:transition-none overflow-hidden\",\n \"ring-1 ring-black/[0.06] hover:ring-black/[0.1] dark:ring-white/[0.06] dark:hover:ring-white/[0.1]\",\n \"shadow-sm hover:shadow-md\",\n className\n )}\n {...props}\n >\n <div className=\"absolute inset-0 bg-gradient-to-br from-foreground/[0.04] dark:from-foreground/[0.02] to-transparent pointer-events-none rounded-2xl\" />\n <div\n className={cn(\n \"absolute inset-0 transition-colors duration-150 group-hover:transition-none pointer-events-none rounded-2xl\",\n hoverTintClass\n )}\n />\n <div className=\"relative p-5\">\n <div className=\"flex items-start justify-between gap-3\">\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n {Icon && (\n <div className=\"p-1.5 rounded-lg bg-foreground/[0.06] dark:bg-foreground/[0.04]\">\n <Icon className=\"h-3.5 w-3.5 text-foreground/70 dark:text-muted-foreground\" />\n </div>\n )}\n <span className=\"text-xs font-semibold text-muted-foreground uppercase tracking-wider\">\n {label}\n </span>\n </div>\n <div className=\"mt-3 flex items-baseline gap-2\">\n <span className=\"text-3xl font-bold tabular-nums text-foreground\">\n {typeof value === \"number\" ? value.toLocaleString() : value}\n </span>\n {trend && (\n <span\n className={cn(\n \"inline-flex items-center gap-0.5 text-xs font-medium\",\n trend.direction === \"up\"\n ? \"text-emerald-600 dark:text-emerald-400\"\n : \"text-red-600 dark:text-red-400\"\n )}\n >\n <svg\n className={cn(\"h-3 w-3\", trend.direction === \"down\" && \"rotate-180\")}\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 2.5V9.5M6 2.5L3 5.5M6 2.5L9 5.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n {trend.value}%\n {trend.label && (\n <span className=\"text-muted-foreground ml-0.5\">{trend.label}</span>\n )}\n </span>\n )}\n </div>\n {description && (\n <p className=\"mt-1 text-xs text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AAOA,MAAM,mBAAmB,IAAI,IAAsC;CACjE,CAAC,QAAQ,iCAAiC;CAC1C,CAAC,QAAQ,iCAAiC;CAC1C,CAAC,UAAU,mCAAmC;CAC9C,CAAC,SAAS,oCAAoC;CAC9C,CAAC,UAAU,mCAAmC;CAC9C,CAAC,WAAW,kCAAkC;CAC/C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;AAyCF,SAAgB,iBAAiB,EAC/B,OACA,OACA,aACA,OACA,MAAM,MACN,WAAW,WACX,WACA,GAAG,SACqB;CACxB,MAAM,iBAAiB,iBAAiB,IAAI,SAAS,IAAI;AAEzD,QACE,4CAAC;EACC,gCACE,mJACA,sGACA,6BACA,UACD;EACD,GAAI;;GAEJ,2CAAC,SAAI,WAAU,yIAAyI;GACxJ,2CAAC,SACC,gCACE,+GACA,eACD,GACD;GACF,2CAAC;IAAI,WAAU;cACb,2CAAC;KAAI,WAAU;eACb,4CAAC;MAAI,WAAU;;OACb,4CAAC;QAAI,WAAU;mBACZ,QACC,2CAAC;SAAI,WAAU;mBACb,2CAAC,QAAK,WAAU,8DAA8D;UAC1E,EAER,2CAAC;SAAK,WAAU;mBACb;UACI;SACH;OACN,4CAAC;QAAI,WAAU;mBACb,2CAAC;SAAK,WAAU;mBACb,OAAO,UAAU,WAAW,MAAM,gBAAgB,GAAG;UACjD,EACN,SACC,4CAAC;SACC,gCACE,wDACA,MAAM,cAAc,OAChB,2CACA,iCACL;;UAED,2CAAC;WACC,gCAAc,WAAW,MAAM,cAAc,UAAU,aAAa;WACpE,SAAQ;WACR,MAAK;WACL,OAAM;qBAEN,2CAAC;YACC,GAAE;YACF,QAAO;YACP,aAAY;YACZ,eAAc;YACd,gBAAe;aACf;YACE;UACL,MAAM;UAAM;UACZ,MAAM,SACL,2CAAC;WAAK,WAAU;qBAAgC,MAAM;YAAa;;UAEhE;SAEL;OACL,eACC,2CAAC;QAAE,WAAU;kBACV;SACC;;OAEF;MACF;KACF;;GACF"}
1
+ {"version":3,"file":"metric-card.js","names":[],"sources":["../../src/components/metric-card.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn } from \"@hexclave/ui\";\nimport React from \"react\";\n\ntype DesignMetricCardGradient = \"blue\" | \"cyan\" | \"purple\" | \"green\" | \"orange\" | \"default\";\n\nconst hoverTintClasses = new Map<DesignMetricCardGradient, string>([\n [\"blue\", \"group-hover:bg-blue-500/[0.03]\"],\n [\"cyan\", \"group-hover:bg-cyan-500/[0.03]\"],\n [\"purple\", \"group-hover:bg-purple-500/[0.03]\"],\n [\"green\", \"group-hover:bg-emerald-500/[0.03]\"],\n [\"orange\", \"group-hover:bg-orange-500/[0.03]\"],\n [\"default\", \"group-hover:bg-slate-500/[0.02]\"],\n]);\n\nexport type DesignMetricCardTrend = {\n value: number,\n direction: \"up\" | \"down\",\n label?: string,\n};\n\nexport type DesignMetricCardProps = {\n label: string,\n value: string | number,\n description?: string,\n trend?: DesignMetricCardTrend,\n icon?: React.ElementType,\n gradient?: DesignMetricCardGradient,\n} & Omit<React.ComponentProps<\"div\">, \"children\">;\n\n/**\n * KPI card for big-number metrics (users, revenue, signups, etc.).\n * Use this instead of a plain `DesignCard` when the value is the focal point.\n *\n * ```tsx\n * <DesignMetricCard\n * label=\"Total Users\"\n * value=\"1,234\"\n * description=\"+12% from last month\"\n * trend={{ direction: \"up\", value: 12, label: \"vs. last period\" }}\n * icon={UsersIcon}\n * gradient=\"blue\"\n * />\n * ```\n *\n * Notes:\n * - `label` is the short caption (NOT `title`).\n * - `value` can be a pre-formatted string (\"1,234\") or a number — prefer\n * strings so you control the format.\n * - `description` is the subline (NOT `subtitle`).\n * - `trend.value` is a NUMBER, not a pre-formatted \"12%\" string. The card\n * renders the arrow and formatting.\n * - `icon` is a component type (e.g. `UsersIcon`), not a rendered node.\n */\nexport function DesignMetricCard({\n label,\n value,\n description,\n trend,\n icon: Icon,\n gradient = \"default\",\n className,\n ...props\n}: DesignMetricCardProps) {\n const hoverTintClass = hoverTintClasses.get(gradient) ?? \"group-hover:bg-slate-500/[0.02]\";\n\n return (\n <div\n className={cn(\n \"group relative rounded-2xl bg-white/90 dark:bg-background/60 backdrop-blur-xl transition-all duration-150 hover:transition-none overflow-hidden\",\n \"ring-1 ring-black/[0.06] hover:ring-black/[0.1] dark:ring-white/[0.06] dark:hover:ring-white/[0.1]\",\n \"shadow-sm hover:shadow-md\",\n className\n )}\n {...props}\n >\n <div className=\"absolute inset-0 bg-gradient-to-br from-foreground/[0.04] dark:from-foreground/[0.02] to-transparent pointer-events-none rounded-2xl\" />\n <div\n className={cn(\n \"absolute inset-0 transition-colors duration-150 group-hover:transition-none pointer-events-none rounded-2xl\",\n hoverTintClass\n )}\n />\n <div className=\"relative p-5\">\n <div className=\"flex items-start justify-between gap-3\">\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n {Icon && (\n <div className=\"p-1.5 rounded-lg bg-foreground/[0.06] dark:bg-foreground/[0.04]\">\n <Icon className=\"h-3.5 w-3.5 text-foreground/70 dark:text-muted-foreground\" />\n </div>\n )}\n <span className=\"text-xs font-semibold text-muted-foreground uppercase tracking-wider\">\n {label}\n </span>\n </div>\n <div className=\"mt-3 flex items-baseline gap-2\">\n <span className=\"text-3xl font-bold tabular-nums text-foreground\">\n {typeof value === \"number\" ? value.toLocaleString() : value}\n </span>\n {trend && (\n <span\n className={cn(\n \"inline-flex items-center gap-0.5 text-xs font-medium\",\n trend.direction === \"up\"\n ? \"text-emerald-600 dark:text-emerald-400\"\n : \"text-red-600 dark:text-red-400\"\n )}\n >\n <svg\n className={cn(\"h-3 w-3\", trend.direction === \"down\" && \"rotate-180\")}\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 2.5V9.5M6 2.5L3 5.5M6 2.5L9 5.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n {trend.value}%\n {trend.label && (\n <span className=\"text-muted-foreground ml-0.5\">{trend.label}</span>\n )}\n </span>\n )}\n </div>\n {description && (\n <p className=\"mt-1 text-xs text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;AAOA,MAAM,mCAAmB,IAAI,IAAsC;CACjE,CAAC,QAAQ,gCAAgC;CACzC,CAAC,QAAQ,gCAAgC;CACzC,CAAC,UAAU,kCAAkC;CAC7C,CAAC,SAAS,mCAAmC;CAC7C,CAAC,UAAU,kCAAkC;CAC7C,CAAC,WAAW,iCAAiC;AAC/C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;AAyCD,SAAgB,iBAAiB,EAC/B,OACA,OACA,aACA,OACA,MAAM,MACN,WAAW,WACX,WACA,GAAG,SACqB;CACxB,MAAM,iBAAiB,iBAAiB,IAAI,QAAQ,KAAK;CAEzD,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EACE,YAAA,GAAA,aAAA,GAAA,CACE,mJACA,sGACA,6BACA,SACF;EACA,GAAI;YAPN;GASE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD,EAAK,WAAU,uIAAwI,CAAA;GACvJ,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD,EACE,YAAA,GAAA,aAAA,GAAA,CACE,+GACA,cACF,EACD,CAAA;GACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAU;cACb,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;KAAK,WAAU;eACb,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;MAAK,WAAU;gBAAf;OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;QAAK,WAAU;kBAAf,CACG,QACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;SAAK,WAAU;mBACb,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD,EAAM,WAAU,4DAA6D,CAAA;QAC1E,CAAA,GAEP,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;SAAM,WAAU;mBACb;QACG,CAAA,CACH;;OACL,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;QAAK,WAAU;kBAAf,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;SAAM,WAAU;mBACb,OAAO,UAAU,WAAW,MAAM,eAAe,IAAI;QAClD,CAAA,GACL,SACC,iBAAA,GAAA,kBAAA,KAAA,CAAC,QAAD;SACE,YAAA,GAAA,aAAA,GAAA,CACE,wDACA,MAAM,cAAc,OAChB,2CACA,gCACN;mBANF;UAQE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;WACE,YAAA,GAAA,aAAA,GAAA,CAAc,WAAW,MAAM,cAAc,UAAU,YAAY;WACnE,SAAQ;WACR,MAAK;WACL,OAAM;qBAEN,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;YACE,GAAE;YACF,QAAO;YACP,aAAY;YACZ,eAAc;YACd,gBAAe;WAChB,CAAA;UACE,CAAA;UACJ,MAAM;UAAM;UACZ,MAAM,SACL,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;WAAM,WAAU;qBAAgC,MAAM;UAAY,CAAA;SAEhE;UAEL;;OACJ,eACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;QAAG,WAAU;kBACV;OACA,CAAA;MAEF;;IACF,CAAA;GACF,CAAA;EACF;;AAET"}
@@ -1,5 +1,3 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
1
  //#region src/components/pill-toggle.d.ts
4
2
  type DesignPillToggleSize = "sm" | "md" | "lg";
5
3
  type DesignPillToggleGradient = "blue" | "cyan" | "purple" | "green" | "orange" | "default";
@@ -27,7 +25,7 @@ declare function DesignPillToggle({
27
25
  gradient,
28
26
  showLabels,
29
27
  className
30
- }: DesignPillToggleProps): react_jsx_runtime0.JSX.Element;
28
+ }: DesignPillToggleProps): import("react/jsx-runtime").JSX.Element;
31
29
  //#endregion
32
30
  export { DesignPillToggle, DesignPillToggleOption, DesignPillToggleProps };
33
31
  //# sourceMappingURL=pill-toggle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pill-toggle.d.ts","names":[],"sources":["../../src/components/pill-toggle.tsx"],"mappings":";;;KAOK,oBAAA;AAAA,KACA,wBAAA;AAAA,KAEO,sBAAA;EACV,EAAA;EACA,KAAA;EACA,IAAA,GAAO,KAAA,CAAM,WAAA;AAAA;AAAA,KAGH,qBAAA;EACV,OAAA,EAAS,sBAAA;EACT,QAAA;EACA,QAAA,GAAW,EAAA,oBAAsB,OAAA;EACjC,IAAA,GAAO,oBAAA;EACP,YAAA;EACA,QAAA,GAAW,wBAAA,EAZqB;EAchC,UAAA;EACA,SAAA;AAAA;AAAA,iBAuCc,gBAAA,CAAA;EACd,OAAA;EACA,QAAA;EACA,QAAA;EACA,IAAA;EACA,YAAA,EAAc,gBAAA;EACd,QAAA;EACA,UAAA;EACA;AAAA,GACC,qBAAA,GAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"pill-toggle.d.ts","names":[],"sources":["../../src/components/pill-toggle.tsx"],"mappings":";KAOK,oBAAA;AAAA,KACA,wBAAA;AAAA,KAEO,sBAAA;EACV,EAAA;EACA,KAAA;EACA,IAAA,GAAO,KAAA,CAAM,WAAW;AAAA;AAAA,KAGd,qBAAA;EACV,OAAA,EAAS,sBAAA;EACT,QAAA;EACA,QAAA,GAAW,EAAA,oBAAsB,OAAA;EACjC,IAAA,GAAO,oBAAA;EACP,YAAA;EACA,QAAA,GAAW,wBAAA,EATa;EAWxB,UAAA;EACA,SAAA;AAAA;AAAA,iBAuCc,gBAAA;EACd,OAAA;EACA,QAAA;EACA,QAAA;EACA,IAAA;EACA,YAAA,EAAc,gBAAA;EACd,QAAA;EACA,UAAA;EACA;AAAA,GACC,qBAAA,+BAAqB,GAAA,CAAA,OAAA"}