@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
@@ -0,0 +1,46 @@
1
+ import { w as DataGridProps } from "./types-1-eOd1JF.js";
2
+
3
+ //#region src/components/data-grid/data-grid.d.ts
4
+ declare function isDataGridInteractiveRowClickTarget(target: EventTarget | null): boolean;
5
+ /**
6
+ * Interactive table built on TanStack Table v8. Sorting, column sizing,
7
+ * visibility, ordering, and pinning are owned by the table instance; we
8
+ * layer virtualization, sticky toolbar/header/footer, infinite scroll,
9
+ * quick search, CSV export, and date-format toggling on top.
10
+ *
11
+ * The grid is display-only — it does not fetch or page data itself. Pair
12
+ * with `useDataSource` for client- or server-side data and pass the
13
+ * already-processed slice through `rows`.
14
+ *
15
+ * ```tsx
16
+ * const columns = useMemo(() => [...], []);
17
+ * const [gridState, setGridState] = useState(() => createDefaultDataGridState(columns));
18
+ * const gridData = useDataSource({
19
+ * data: users, columns, getRowId: (r) => r.id,
20
+ * sorting: gridState.sorting,
21
+ * quickSearch: gridState.quickSearch,
22
+ * pagination: gridState.pagination,
23
+ * paginationMode: "client",
24
+ * });
25
+ *
26
+ * <DataGrid
27
+ * columns={columns}
28
+ * rows={gridData.rows}
29
+ * getRowId={(r) => r.id}
30
+ * totalRowCount={gridData.totalRowCount}
31
+ * isLoading={gridData.isLoading}
32
+ * state={gridState}
33
+ * onChange={setGridState}
34
+ * />
35
+ * ```
36
+ *
37
+ * Iron rules:
38
+ * - `rows` is always `gridData.rows`, never your raw array.
39
+ * - Columns must be stable (define outside the component or wrap in `useMemo`).
40
+ * - Initialize state with `createDefaultDataGridState(columns)`.
41
+ * - `renderCell` must be a pure function — no React hooks inside.
42
+ */
43
+ declare function DataGrid<TRow>(props: DataGridProps<TRow>): import("react/jsx-runtime").JSX.Element;
44
+ //#endregion
45
+ export { isDataGridInteractiveRowClickTarget as n, DataGrid as t };
46
+ //# sourceMappingURL=data-grid-AJi1TNDa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-grid-AJi1TNDa.d.ts","names":[],"sources":["../src/components/data-grid/data-grid.tsx"],"mappings":";;;iBAoEgB,mCAAA,CAAoC,MAA0B,EAAlB,WAAW;;AAAvE;;;;AAA8E;AAqhB9E;;;;;;;;;;;AAAyD;;;;;;;;;;;;;;;;;;;;;iBAAzC,QAAA,OAAe,KAAA,EAAO,aAAa,CAAC,IAAA,gCAAK,GAAA,CAAA,OAAA"}
@@ -0,0 +1,13 @@
1
+ import { i as DataGridColumnDef } from "./types-1-eOd1JF.js";
2
+
3
+ //#region src/components/data-grid/data-grid-sizing.d.ts
4
+ declare const DEFAULT_MAX_COL_WIDTH = 800;
5
+ declare const DEFAULT_COL_WIDTH = 150;
6
+ /** Effective minimum column width. When `col.minWidth` is unset, derive
7
+ * one from the header label so it never gets clipped during resize. */
8
+ declare function getEffectiveMinWidth<TRow>(col: DataGridColumnDef<TRow>): number;
9
+ declare function getEffectiveMaxWidth<TRow>(col: DataGridColumnDef<TRow>): number;
10
+ declare function clampColumnWidth<TRow>(col: DataGridColumnDef<TRow>, width: number): number;
11
+ //#endregion
12
+ export { getEffectiveMinWidth as a, getEffectiveMaxWidth as i, DEFAULT_MAX_COL_WIDTH as n, clampColumnWidth as r, DEFAULT_COL_WIDTH as t };
13
+ //# sourceMappingURL=data-grid-sizing-S1ixcZKo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-grid-sizing-S1ixcZKo.d.ts","names":[],"sources":["../src/components/data-grid/data-grid-sizing.ts"],"mappings":";;;cAIa,qBAAA;AAAA,cACA,iBAAA;AADb;;AAAA,iBA+BgB,oBAAA,OAA2B,GAAA,EAAK,iBAAiB,CAAC,IAAA;AAAA,iBASlD,oBAAA,OAA2B,GAAA,EAAK,iBAAiB,CAAC,IAAA;AAAA,iBAIlD,gBAAA,OAAuB,GAAA,EAAK,iBAAiB,CAAC,IAAA,GAAO,KAAA"}
@@ -0,0 +1,30 @@
1
+ import { M as DataGridToolbarContext } from "./types-1-eOd1JF.js";
2
+ import React from "react";
3
+
4
+ //#region src/components/data-grid/data-grid-toolbar.d.ts
5
+ declare function DataGridToolbar<TRow>({
6
+ ctx,
7
+ extra,
8
+ extraLeading,
9
+ hideQuickSearch
10
+ }: {
11
+ ctx: DataGridToolbarContext<TRow>;
12
+ /** Extra content rendered inside the toolbar row, to the left of the
13
+ * built-in columns / export actions. Use this to add table-specific
14
+ * affordances (refresh, custom toggles, row counts) without giving up
15
+ * the default actions. */
16
+ extra?: React.ReactNode;
17
+ /** Extra content rendered at the START of the toolbar row — occupies
18
+ * the same position as the built-in quick search (after it, if the
19
+ * quick search is visible). Use this together with `hideQuickSearch`
20
+ * to fully replace the quick search with a custom input, e.g. an
21
+ * AI-powered search bar. */
22
+ extraLeading?: React.ReactNode;
23
+ /** Whether to hide the built-in quick-search input. When `true`,
24
+ * callers are expected to provide their own search UI via
25
+ * `extraLeading`. */
26
+ hideQuickSearch?: boolean;
27
+ }): import("react/jsx-runtime").JSX.Element;
28
+ //#endregion
29
+ export { DataGridToolbar as t };
30
+ //# sourceMappingURL=data-grid-toolbar-BGSNGDpT.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-grid-toolbar-BGSNGDpT.d.ts","names":[],"sources":["../src/components/data-grid/data-grid-toolbar.tsx"],"mappings":";;;;iBA6QgB,eAAA;EACd,GAAA;EACA,KAAA;EACA,YAAA;EACA;AAAA;EAEA,GAAA,EAAK,sBAAA,CAAuB,IAAA;EANd;;;;EAWd,KAAA,GAAQ,KAAA,CAAM,SAAA;EARd;;;;;EAcA,YAAA,GAAe,KAAA,CAAM,SAAA;EAAS;;;EAI9B,eAAA;AAAA,gCACD,GAAA,CAAA,OAAA"}
@@ -0,0 +1,65 @@
1
+ import { n as AnalyticsChartStrings } from "./strings-D-t58Uol.js";
2
+ import { O as Point, a as AnalyticsChartDelta } from "./types-NyzRTEfi.js";
3
+
4
+ //#region src/components/analytics-chart/default-analytics-chart-tooltip.d.ts
5
+ /** Trend pill — small rounded badge with an up/down/flat arrow, a signed
6
+ * percentage, and an optional trailing label. Shared between the default
7
+ * tooltip, the pie view, and the demo panels (which re-export it). */
8
+ declare function TrendPill({
9
+ delta,
10
+ label,
11
+ size
12
+ }: {
13
+ delta: AnalyticsChartDelta;
14
+ label?: string;
15
+ size?: "sm" | "md";
16
+ }): import("react/jsx-runtime").JSX.Element;
17
+ type AnalyticsChartTooltipSegmentRow = {
18
+ key: string;
19
+ label: string;
20
+ value: number; /** Light-theme color for the dot / swatch. */
21
+ color: string; /** Dark-theme color for the dot / swatch. */
22
+ colorDark: string;
23
+ };
24
+ type AnalyticsChartTooltipLayerView = {
25
+ /** Stable layer id (e.g. `"signups"`, `"previous"`). */id: string; /** Consumer-provided layer label. */
26
+ label: string; /** Resolved layer color (light theme). */
27
+ color: string; /** Resolved layer color (dark theme). */
28
+ colorDark: string;
29
+ /** Flat total for this layer at the hovered index. Populated regardless
30
+ * of segmentation so consumers can render the same number in either mode. */
31
+ total: number; /** True iff this layer is rendered as a stacked breakdown. */
32
+ segmented: boolean;
33
+ /** Per-segment rows — empty when `segmented === false`. Order matches
34
+ * `segmentSeries`. */
35
+ segments: AnalyticsChartTooltipSegmentRow[];
36
+ };
37
+ type AnalyticsChartTooltipContext = {
38
+ /** Index into the visible window. */activeIndex: number; /** Raw point at `activeIndex` — convenient for `.ts` access. */
39
+ point: Point; /** True when the tooltip is pinned (via click) and stable under hover. */
40
+ isPinned: boolean; /** Primary layer view or null when the primary layer is hidden. */
41
+ primary: AnalyticsChartTooltipLayerView | null; /** Compare layer view or null when the compare layer is hidden. */
42
+ compare: AnalyticsChartTooltipLayerView | null;
43
+ /** Flat-mode delta between primary and compare totals. Null when either
44
+ * side is hidden. Consumers should feed this into their trend pill. */
45
+ delta: AnalyticsChartDelta | null; /** Pre-bound value formatter for y-axis values. */
46
+ formatValue: (v: number) => string; /** Pre-bound formatter for x-axis values. */
47
+ formatDate: (ts: number) => string; /** Resolved strings — already merged with defaults. */
48
+ strings: AnalyticsChartStrings;
49
+ };
50
+ type DefaultAnalyticsChartTooltipProps = {
51
+ ctx: AnalyticsChartTooltipContext;
52
+ };
53
+ /** The default tooltip body. The tooltip is rendered as an
54
+ * absolutely-positioned sibling of `<ChartContainer>`, which means it sits
55
+ * OUTSIDE the `[data-chart=…]` subtree that scopes shadcn's `--color-${key}`
56
+ * CSS variables. We therefore cannot reference those variables for segment
57
+ * swatches — instead, every swatch uses a single span with `--c-l`/`--c-d`
58
+ * custom properties + Tailwind arbitrary variants so one DOM element covers
59
+ * both themes. */
60
+ declare function DefaultAnalyticsChartTooltip({
61
+ ctx
62
+ }: DefaultAnalyticsChartTooltipProps): import("react/jsx-runtime").JSX.Element;
63
+ //#endregion
64
+ export { DefaultAnalyticsChartTooltipProps as a, DefaultAnalyticsChartTooltip as i, AnalyticsChartTooltipLayerView as n, TrendPill as o, AnalyticsChartTooltipSegmentRow as r, AnalyticsChartTooltipContext as t };
65
+ //# sourceMappingURL=default-analytics-chart-tooltip-PrLoMaC1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-analytics-chart-tooltip-PrLoMaC1.d.ts","names":[],"sources":["../src/components/analytics-chart/default-analytics-chart-tooltip.tsx"],"mappings":";;;;;;AAeA;iBAAgB,SAAA;EACd,KAAA;EACA,KAAA;EACA;AAAA;EAEA,KAAA,EAAO,mBAAA;EACP,KAAA;EACA,IAAA;AAAA,gCACD,GAAA,CAAA,OAAA;AAAA,KAqBW,+BAAA;EACV,GAAA;EACA,KAAA;EACA,KAAA,UA/BA;EAiCA,KAAA,UAhCA;EAkCA,SAAA;AAAA;AAAA,KAGU,8BAAA;EAlCH,wDAoCP,EAAA,UAlCA;EAoCA,KAAA,UAnCD;EAqCC,KAAA,UArCD;EAuCC,SAAA;EAlByC;;EAqBzC,KAAA,UApBA;EAsBA,SAAA;EApBA;;EAuBA,QAAA,EAAU,+BAA+B;AAAA;AAAA,KAG/B,4BAAA;EAnBA,qCAqBV,WAAA;EAEA,KAAA,EAAO,KAAA,EArBP;EAuBA,QAAA,WAnBA;EAqBA,OAAA,EAAS,8BAAA,SAhBT;EAkBA,OAAA,EAAS,8BAAA;EAbT;;EAgBA,KAAA,EAAO,mBAAA,SAhBkC;EAkBzC,WAAA,GAAc,CAAA,qBAfwB;EAiBtC,UAAA,GAAa,EAAA,qBAbN;EAeP,OAAA,EAAS,qBAAA;AAAA;AAAA,KAGC,iCAAA;EACV,GAAA,EAAK,4BAA4B;AAAA;;;;;;;;iBAUnB,4BAAA;EAA+B;AAAA,GAAO,iCAAiC,+BAAA,GAAA,CAAA,OAAA"}
@@ -0,0 +1,131 @@
1
+ import * as React$1 from "react";
2
+ import React from "react";
3
+ import { Dialog, DialogContent } from "@hexclave/ui";
4
+
5
+ //#region ../../node_modules/.pnpm/@radix-ui+react-primitive@2.1.3_@types+react-dom@19.2.3_@types+react@19.2.7__@types+rea_5f3d28fea11cf58eed3830d0189b6e2d/node_modules/@radix-ui/react-primitive/dist/index.d.mts
6
+ declare const NODES: readonly ["a", "button", "div", "form", "h2", "h3", "img", "input", "label", "li", "nav", "ol", "p", "select", "span", "svg", "ul"];
7
+ type Primitives = { [E in (typeof NODES)[number]]: PrimitiveForwardRefComponent<E> };
8
+ type PrimitivePropsWithRef<E extends React$1.ElementType> = React$1.ComponentPropsWithRef<E> & {
9
+ asChild?: boolean;
10
+ };
11
+ interface PrimitiveForwardRefComponent<E extends React$1.ElementType> extends React$1.ForwardRefExoticComponent<PrimitivePropsWithRef<E>> {}
12
+ declare const Primitive: Primitives;
13
+ /**
14
+ * Flush custom event dispatch
15
+ * https://github.com/radix-ui/primitives/pull/1378
16
+ *
17
+ * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.
18
+ *
19
+ * Internally, React prioritises events in the following order:
20
+ * - discrete
21
+ * - continuous
22
+ * - default
23
+ *
24
+ * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350
25
+ *
26
+ * `discrete` is an important distinction as updates within these events are applied immediately.
27
+ * React however, is not able to infer the priority of custom event types due to how they are detected internally.
28
+ * Because of this, it's possible for updates from custom events to be unexpectedly batched when
29
+ * dispatched by another `discrete` event.
30
+ *
31
+ * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.
32
+ * This utility should be used when dispatching a custom event from within another `discrete` event, this utility
33
+ * is not necessary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.
34
+ * For example:
35
+ *
36
+ * dispatching a known click 👎
37
+ * target.dispatchEvent(new Event(‘click’))
38
+ *
39
+ * dispatching a custom type within a non-discrete event 👎
40
+ * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}
41
+ *
42
+ * dispatching a custom type within a `discrete` event 👍
43
+ * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}
44
+ *
45
+ * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use
46
+ * this utility with them. This is because it's possible for those handlers to be called implicitly during render
47
+ * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.
48
+ */
49
+ //#endregion
50
+ //#region ../../node_modules/.pnpm/@radix-ui+react-dialog@1.1.15_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react_66d7d575cbd072ce29e52afb89085e9d/node_modules/@radix-ui/react-dialog/dist/index.d.mts
51
+ interface DialogProps {
52
+ children?: React$1.ReactNode;
53
+ open?: boolean;
54
+ defaultOpen?: boolean;
55
+ onOpenChange?(open: boolean): void;
56
+ modal?: boolean;
57
+ }
58
+ type PrimitiveButtonProps = React$1.ComponentPropsWithoutRef<typeof Primitive.button>;
59
+ interface DialogTriggerProps extends PrimitiveButtonProps {}
60
+ type PrimitiveHeading2Props = React$1.ComponentPropsWithoutRef<typeof Primitive.h2>;
61
+ interface DialogTitleProps extends PrimitiveHeading2Props {}
62
+ type PrimitiveParagraphProps = React$1.ComponentPropsWithoutRef<typeof Primitive.p>;
63
+ interface DialogDescriptionProps extends PrimitiveParagraphProps {}
64
+ interface DialogCloseProps extends PrimitiveButtonProps {}
65
+ //#endregion
66
+ //#region src/components/dialog.d.ts
67
+ type DesignDialogSize = "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "7xl" | "full";
68
+ type DesignDialogVariant = "glassmorphic" | "plain";
69
+ declare const designDialogGlassmorphicSurfaceClass: string;
70
+ declare const designDialogGlassmorphicOverlayClass = "bg-black/50 backdrop-blur-sm";
71
+ type DesignDialogIcon = React.ElementType<{
72
+ className?: string;
73
+ }>;
74
+ type DesignDialogRootProps = Omit<React.ComponentProps<typeof Dialog>, "children">;
75
+ type DesignDialogProps = {
76
+ trigger?: React.ReactElement;
77
+ size?: DesignDialogSize;
78
+ variant?: DesignDialogVariant;
79
+ icon?: DesignDialogIcon | null;
80
+ title?: React.ReactNode;
81
+ description?: React.ReactNode;
82
+ headerContent?: React.ReactNode;
83
+ customHeader?: React.ReactNode;
84
+ footer?: React.ReactNode;
85
+ noBodyPadding?: boolean;
86
+ hideTopCloseButton?: boolean;
87
+ className?: string;
88
+ overlayClassName?: string;
89
+ headerClassName?: string;
90
+ bodyClassName?: string;
91
+ footerClassName?: string;
92
+ children?: React.ReactNode;
93
+ contentProps?: Omit<React.ComponentPropsWithoutRef<typeof DialogContent>, "className" | "children" | "overlayProps" | "noCloseButton">;
94
+ } & DesignDialogRootProps;
95
+ /**
96
+ * Canonical dashboard modal surface. This wraps the base dialog primitives with
97
+ * a reusable glassmorphic shell and consistent header/body/footer regions.
98
+ */
99
+ declare function DesignDialog({
100
+ trigger,
101
+ size,
102
+ variant,
103
+ icon: Icon,
104
+ title,
105
+ description,
106
+ headerContent,
107
+ customHeader,
108
+ footer,
109
+ noBodyPadding,
110
+ hideTopCloseButton,
111
+ className,
112
+ overlayClassName,
113
+ headerClassName,
114
+ bodyClassName,
115
+ footerClassName,
116
+ contentProps,
117
+ children,
118
+ ...dialogRootProps
119
+ }: DesignDialogProps): import("react/jsx-runtime").JSX.Element;
120
+ declare const DesignDialogRoot: React.FC<DialogProps>;
121
+ declare const DesignDialogTrigger: React.ForwardRefExoticComponent<DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
122
+ declare const DesignDialogClose: React.ForwardRefExoticComponent<DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
123
+ declare const DesignDialogTitle: React.FC<Omit<DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & {
124
+ ref?: React.Ref<HTMLHeadingElement> | undefined;
125
+ }>;
126
+ declare const DesignDialogDescription: React.FC<Omit<DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & {
127
+ ref?: React.Ref<HTMLParagraphElement> | undefined;
128
+ }>;
129
+ //#endregion
130
+ export { DesignDialogRoot as a, DesignDialogTrigger as c, designDialogGlassmorphicSurfaceClass as d, DesignDialogProps as i, DesignDialogVariant as l, DesignDialogClose as n, DesignDialogSize as o, DesignDialogDescription as r, DesignDialogTitle as s, DesignDialog as t, designDialogGlassmorphicOverlayClass as u };
131
+ //# sourceMappingURL=dialog-CCtTH7s6.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-CCtTH7s6.d.ts","names":["E","NODES","PrimitiveForwardRefComponent","React","ElementType","ComponentPropsWithRef","asChild","ForwardRefExoticComponent","PrimitivePropsWithRef","Primitives","CustomEvent","target","event","_radix_ui_react_context","CreateScope","children","React","ReactNode","open","defaultOpen","onOpenChange","modal","FC","DialogProps","ComponentPropsWithoutRef","Primitive","button","PrimitiveButtonProps","ForwardRefExoticComponent","DialogTriggerProps","RefAttributes","HTMLButtonElement","Portal$1","container","PortalProps","forceMount","DialogPortalProps","DialogOverlayImplProps","DialogOverlayProps","HTMLDivElement","div","PrimitiveDivProps","DialogContentTypeProps","DialogContentProps","Omit","DialogContentImplProps","DismissableLayer","FocusScope","DismissableLayerProps","trapFocus","FocusScopeProps","onOpenAutoFocus","onCloseAutoFocus","h2","PrimitiveHeading2Props","DialogTitleProps","HTMLHeadingElement","p","PrimitiveParagraphProps","DialogDescriptionProps","HTMLParagraphElement","DialogCloseProps","contentName","titleName","docsSlug"],"sources":["../../../node_modules/.pnpm/@radix-ui+react-primitive@2.1.3_@types+react-dom@19.2.3_@types+react@19.2.7__@types+rea_5f3d28fea11cf58eed3830d0189b6e2d/node_modules/@radix-ui/react-primitive/dist/index.d.mts","../../../node_modules/.pnpm/@radix-ui+react-dialog@1.1.15_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react_66d7d575cbd072ce29e52afb89085e9d/node_modules/@radix-ui/react-dialog/dist/index.d.mts","../src/components/dialog.tsx"],"x_google_ignoreList":[0,1],"mappings":";;;;;cAEc,KAAA;AAAA,KACT,UAAA,mBACa,KAAA,YAAiB,4BAAA,CAA6B,CAAA;AAAA,KAE3D,qBAAA,WAAgC,OAAA,CAAM,WAAA,IAAe,OAAA,CAAM,qBAAA,CAAsB,CAAA;EAClFM,OAAAA;AAAAA;AAAAA,UAEM,4BAAA,WAAuC,OAAA,CAAM,WAAA,UAAqB,OAAA,CAAM,yBAAA,CAA0B,qBAAA,CAAsB,CAAA;AAAA,cAEpH,SAAA,EAAW,UAAU;;;;;;;;;;;;AAP8B;AAAA;;;;;;;;;;;;;;;;AAGtD;AAAA;;;;;;;;;UCCD,WAAA;EACNS,QAAAA,GAAW,OAAA,CAAM,SAAS;EAC1BG,IAAAA;EACAC,WAAAA;EACAC,YAAAA,EAAcF,IAAAA;EACdG,KAAAA;AAAAA;AAAAA,KAGC,oBAAA,GAAuB,OAAA,CAAM,wBAAwB,QAAQ,SAAA,CAAU,MAAA;AAAA,UAClE,kBAAA,SAA2B,oBAAoB;AAAA,KA0DpD,sBAAA,GAAyB,OAAA,CAAM,wBAAwB,QAAQ,SAAA,CAAU,EAAA;AAAA,UACpE,gBAAA,SAAyB,sBAAsB;AAAA,KAGpD,uBAAA,GAA0B,OAAA,CAAM,wBAAwB,QAAQ,SAAA,CAAU,CAAA;AAAA,UACrE,sBAAA,SAA+B,uBAAuB;AAAA,UAGtD,gBAAA,SAAyB,oBAAoB;;;KCnE3C,gBAAA;AAAA,KAaA,mBAAA;AAAA,cAqBC,oCAAA;AAAA,cACA,oCAAA;AAAA,KAER,gBAAA,GAAmB,KAAA,CAAM,WAAW;EAAG,SAAA;AAAA;AAAA,KAEvC,qBAAA,GAAwB,IAAA,CAAK,KAAA,CAAM,cAAA,QAAsB,MAAA;AAAA,KAElD,iBAAA;EACV,OAAA,GAAU,KAAA,CAAM,YAAA;EAChB,IAAA,GAAO,gBAAA;EACP,OAAA,GAAU,mBAAA;EACV,IAAA,GAAO,gBAAA;EACP,KAAA,GAAQ,KAAA,CAAM,SAAA;EACd,WAAA,GAAc,KAAA,CAAM,SAAA;EACpB,aAAA,GAAgB,KAAA,CAAM,SAAA;EACtB,YAAA,GAAe,KAAA,CAAM,SAAA;EACrB,MAAA,GAAS,KAAA,CAAM,SAAA;EACf,aAAA;EACA,kBAAA;EACA,SAAA;EACA,gBAAA;EACA,eAAA;EACA,aAAA;EACA,eAAA;EACA,QAAA,GAAW,KAAA,CAAM,SAAA;EACjB,YAAA,GAAe,IAAA,CACb,KAAA,CAAM,wBAAA,QAAgC,aAAA;AAAA,IAGtC,qBAAA;;;;;iBAMY,YAAA;EACd,OAAA;EACA,IAAA;EACA,OAAA;EACA,IAAA,EAAM,IAAA;EACN,KAAA;EACA,WAAA;EACA,aAAA;EACA,YAAA;EACA,MAAA;EACA,aAAA;EACA,kBAAA;EACA,SAAA;EACA,gBAAA;EACA,eAAA;EACA,aAAA;EACA,eAAA;EACA,YAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,iBAAA,+BAAiB,GAAA,CAAA,OAAA;AAAA,cA4GP,gBAAA,EAAgB,KAAA,CAAA,EAAA,CAAS,WAAA;AAAA,cACzB,mBAAA,EAAmB,KAAA,CAAA,yBAAA,CAAgB,kBAAA,GAAhB,KAAA,CAAA,aAAA,CAAA,iBAAA;AAAA,cACnB,iBAAA,EAAiB,KAAA,CAAA,yBAAA,CAAc,gBAAA,GAAd,KAAA,CAAA,aAAA,CAAA,iBAAA;AAAA,cACjB,iBAAA,EAAiB,KAAA,CAAA,EAAA,CAAA,IAAA,CAAc,gBAAA,GAAd,KAAA,CAAA,aAAA,CAAA,kBAAA;;;cACjB,uBAAA,EAAuB,KAAA,CAAA,EAAA,CAAA,IAAA,CAAoB,sBAAA,GAApB,KAAA,CAAA,aAAA,CAAA,oBAAA"}
@@ -1,5 +1,3 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
1
  //#region src/components/alert.d.ts
4
2
  type DesignAlertVariant = "default" | "success" | "error" | "warning" | "info";
5
3
  type DesignAlertProps = React.HTMLAttributes<HTMLDivElement> & {
@@ -16,7 +14,7 @@ declare function DesignAlert({
16
14
  className,
17
15
  children,
18
16
  ...props
19
- }: DesignAlertProps): react_jsx_runtime0.JSX.Element;
17
+ }: DesignAlertProps): import("react/jsx-runtime").JSX.Element;
20
18
  //#endregion
21
19
  export { DesignAlert, DesignAlertProps };
22
20
  //# sourceMappingURL=alert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert.d.ts","names":[],"sources":["../../../src/components/alert.tsx"],"mappings":";;;KAKK,kBAAA;AAAA,KAmEO,gBAAA,GAAmB,KAAA,CAAM,cAAA,CAAe,cAAA;EAClD,OAAA,GAAU,kBAAA;EACV,KAAA,GAAQ,KAAA,CAAM,SAAA;EACd,WAAA,GAAc,KAAA,CAAM,SAAA;EACpB,YAAA;AAAA;AAAA,iBAGc,WAAA,CAAA;EACd,OAAA;EACA,KAAA;EACA,WAAA;EACA,YAAA;EACA,SAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,gBAAA,GAAgB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"alert.d.ts","names":[],"sources":["../../../src/components/alert.tsx"],"mappings":";KAKK,kBAAA;AAAA,KAmEO,gBAAA,GAAmB,KAAA,CAAM,cAAA,CAAe,cAAA;EAClD,OAAA,GAAU,kBAAA;EACV,KAAA,GAAQ,KAAA,CAAM,SAAA;EACd,WAAA,GAAc,KAAA,CAAM,SAAA;EACpB,YAAA;AAAA;AAAA,iBAGc,WAAA;EACd,OAAA;EACA,KAAA;EACA,WAAA;EACA,YAAA;EACA,SAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,gBAAA,+BAAgB,GAAA,CAAA,OAAA"}
@@ -1,18 +1,16 @@
1
1
  "use client";
2
-
3
2
  import { CheckCircle, Info, WarningCircle, XCircle } from "@phosphor-icons/react";
4
3
  import { cn } from "@hexclave/ui";
5
4
  import { jsx, jsxs } from "react/jsx-runtime";
6
-
7
5
  //#region src/components/alert.tsx
8
- const variantIconMap = new Map([
6
+ const variantIconMap = /* @__PURE__ */ new Map([
9
7
  ["default", Info],
10
8
  ["success", CheckCircle],
11
9
  ["error", XCircle],
12
10
  ["warning", WarningCircle],
13
11
  ["info", Info]
14
12
  ]);
15
- const variantStyles = new Map([
13
+ const variantStyles = /* @__PURE__ */ new Map([
16
14
  ["default", {
17
15
  container: "border-black/[0.08] bg-white/90 ring-1 ring-black/[0.06] dark:border-border dark:bg-background dark:ring-0",
18
16
  icon: "text-foreground",
@@ -67,7 +65,7 @@ function DesignAlert({ variant = "default", title, description, glassmorphic = f
67
65
  })]
68
66
  });
69
67
  }
70
-
71
68
  //#endregion
72
69
  export { DesignAlert };
70
+
73
71
  //# sourceMappingURL=alert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","names":[],"sources":["../../../src/components/alert.tsx"],"sourcesContent":["\"use client\";\n\nimport { CheckCircle, Info, WarningCircle, XCircle } from \"@phosphor-icons/react\";\nimport { cn } from \"@hexclave/ui\";\n\ntype DesignAlertVariant = \"default\" | \"success\" | \"error\" | \"warning\" | \"info\";\n\nconst variantIconMap = new Map<DesignAlertVariant, React.ElementType>([\n [\"default\", Info],\n [\"success\", CheckCircle],\n [\"error\", XCircle],\n [\"warning\", WarningCircle],\n [\"info\", Info],\n]);\n\ntype VariantStyles = {\n container: string,\n icon: string,\n title: string,\n};\n\nconst variantStyles = new Map<DesignAlertVariant, VariantStyles>([\n [\n \"default\",\n {\n container: \"border-black/[0.08] bg-white/90 ring-1 ring-black/[0.06] dark:border-border dark:bg-background dark:ring-0\",\n icon: \"text-foreground\",\n title: \"text-foreground\",\n },\n ],\n [\n \"success\",\n {\n container: \"bg-green-500/[0.06] border-green-500/30\",\n icon: \"text-green-500\",\n title: \"text-green-600 dark:text-green-400\",\n },\n ],\n [\n \"error\",\n {\n container: \"bg-red-500/[0.06] border-red-500/30\",\n icon: \"text-red-500\",\n title: \"text-red-600 dark:text-red-400\",\n },\n ],\n [\n \"warning\",\n {\n container: \"bg-amber-500/[0.08] border-amber-500/40\",\n icon: \"text-amber-600 dark:text-amber-400\",\n title: \"text-amber-700 dark:text-amber-300\",\n },\n ],\n [\n \"info\",\n {\n container: \"border-blue-500/20 bg-blue-50/90 ring-1 ring-blue-500/10 dark:border-blue-500/30 dark:bg-blue-500/[0.06] dark:ring-0\",\n icon: \"text-blue-600 dark:text-blue-400\",\n title: \"text-blue-700 dark:text-blue-400\",\n },\n ],\n]);\n\nfunction getMapValueOrThrow<TKey, TValue>(map: Map<TKey, TValue>, key: TKey, mapName: string) {\n const value = map.get(key);\n if (!value) {\n throw new Error(`Missing ${mapName} entry for key \"${String(key)}\"`);\n }\n return value;\n}\n\nexport type DesignAlertProps = React.HTMLAttributes<HTMLDivElement> & {\n variant?: DesignAlertVariant,\n title?: React.ReactNode,\n description?: React.ReactNode,\n glassmorphic?: boolean,\n};\n\nexport function DesignAlert({\n variant = \"default\",\n title,\n description,\n glassmorphic = false,\n className,\n children,\n ...props\n}: DesignAlertProps) {\n const styles = getMapValueOrThrow(variantStyles, variant, \"variantStyles\");\n const Icon = getMapValueOrThrow(variantIconMap, variant, \"variantIconMap\");\n\n return (\n <div\n role=\"alert\"\n className={cn(\n \"relative w-full rounded-2xl border p-4 text-sm\",\n \"flex gap-3 items-start\",\n styles.container,\n glassmorphic && \"backdrop-blur-xl\",\n className\n )}\n {...props}\n >\n <Icon className={cn(\"h-4 w-4 mt-0.5 flex-shrink-0\", styles.icon)} />\n <div className=\"min-w-0\">\n {title && (\n <h5 className={cn(\"mb-1 font-medium leading-none tracking-tight\", styles.title)}>\n {title}\n </h5>\n )}\n {description && (\n <div className=\"text-sm text-foreground/80 dark:text-muted-foreground [&_p]:leading-relaxed\">\n {description}\n </div>\n )}\n {children}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAOA,MAAM,iBAAiB,IAAI,IAA2C;CACpE,CAAC,WAAW,KAAK;CACjB,CAAC,WAAW,YAAY;CACxB,CAAC,SAAS,QAAQ;CAClB,CAAC,WAAW,cAAc;CAC1B,CAAC,QAAQ,KAAK;CACf,CAAC;AAQF,MAAM,gBAAgB,IAAI,IAAuC;CAC/D,CACE,WACA;EACE,WAAW;EACX,MAAM;EACN,OAAO;EACR,CACF;CACD,CACE,WACA;EACE,WAAW;EACX,MAAM;EACN,OAAO;EACR,CACF;CACD,CACE,SACA;EACE,WAAW;EACX,MAAM;EACN,OAAO;EACR,CACF;CACD,CACE,WACA;EACE,WAAW;EACX,MAAM;EACN,OAAO;EACR,CACF;CACD,CACE,QACA;EACE,WAAW;EACX,MAAM;EACN,OAAO;EACR,CACF;CACF,CAAC;AAEF,SAAS,mBAAiC,KAAwB,KAAW,SAAiB;CAC5F,MAAM,QAAQ,IAAI,IAAI,IAAI;AAC1B,KAAI,CAAC,MACH,OAAM,IAAI,MAAM,WAAW,QAAQ,kBAAkB,OAAO,IAAI,CAAC,GAAG;AAEtE,QAAO;;AAUT,SAAgB,YAAY,EAC1B,UAAU,WACV,OACA,aACA,eAAe,OACf,WACA,UACA,GAAG,SACgB;CACnB,MAAM,SAAS,mBAAmB,eAAe,SAAS,gBAAgB;CAC1E,MAAM,OAAO,mBAAmB,gBAAgB,SAAS,iBAAiB;AAE1E,QACE,qBAAC;EACC,MAAK;EACL,WAAW,GACT,kDACA,0BACA,OAAO,WACP,gBAAgB,oBAChB,UACD;EACD,GAAI;aAEJ,oBAAC,QAAK,WAAW,GAAG,gCAAgC,OAAO,KAAK,GAAI,EACpE,qBAAC;GAAI,WAAU;;IACZ,SACC,oBAAC;KAAG,WAAW,GAAG,gDAAgD,OAAO,MAAM;eAC5E;MACE;IAEN,eACC,oBAAC;KAAI,WAAU;eACZ;MACG;IAEP;;IACG;GACF"}
1
+ {"version":3,"file":"alert.js","names":[],"sources":["../../../src/components/alert.tsx"],"sourcesContent":["\"use client\";\n\nimport { CheckCircle, Info, WarningCircle, XCircle } from \"@phosphor-icons/react\";\nimport { cn } from \"@hexclave/ui\";\n\ntype DesignAlertVariant = \"default\" | \"success\" | \"error\" | \"warning\" | \"info\";\n\nconst variantIconMap = new Map<DesignAlertVariant, React.ElementType>([\n [\"default\", Info],\n [\"success\", CheckCircle],\n [\"error\", XCircle],\n [\"warning\", WarningCircle],\n [\"info\", Info],\n]);\n\ntype VariantStyles = {\n container: string,\n icon: string,\n title: string,\n};\n\nconst variantStyles = new Map<DesignAlertVariant, VariantStyles>([\n [\n \"default\",\n {\n container: \"border-black/[0.08] bg-white/90 ring-1 ring-black/[0.06] dark:border-border dark:bg-background dark:ring-0\",\n icon: \"text-foreground\",\n title: \"text-foreground\",\n },\n ],\n [\n \"success\",\n {\n container: \"bg-green-500/[0.06] border-green-500/30\",\n icon: \"text-green-500\",\n title: \"text-green-600 dark:text-green-400\",\n },\n ],\n [\n \"error\",\n {\n container: \"bg-red-500/[0.06] border-red-500/30\",\n icon: \"text-red-500\",\n title: \"text-red-600 dark:text-red-400\",\n },\n ],\n [\n \"warning\",\n {\n container: \"bg-amber-500/[0.08] border-amber-500/40\",\n icon: \"text-amber-600 dark:text-amber-400\",\n title: \"text-amber-700 dark:text-amber-300\",\n },\n ],\n [\n \"info\",\n {\n container: \"border-blue-500/20 bg-blue-50/90 ring-1 ring-blue-500/10 dark:border-blue-500/30 dark:bg-blue-500/[0.06] dark:ring-0\",\n icon: \"text-blue-600 dark:text-blue-400\",\n title: \"text-blue-700 dark:text-blue-400\",\n },\n ],\n]);\n\nfunction getMapValueOrThrow<TKey, TValue>(map: Map<TKey, TValue>, key: TKey, mapName: string) {\n const value = map.get(key);\n if (!value) {\n throw new Error(`Missing ${mapName} entry for key \"${String(key)}\"`);\n }\n return value;\n}\n\nexport type DesignAlertProps = React.HTMLAttributes<HTMLDivElement> & {\n variant?: DesignAlertVariant,\n title?: React.ReactNode,\n description?: React.ReactNode,\n glassmorphic?: boolean,\n};\n\nexport function DesignAlert({\n variant = \"default\",\n title,\n description,\n glassmorphic = false,\n className,\n children,\n ...props\n}: DesignAlertProps) {\n const styles = getMapValueOrThrow(variantStyles, variant, \"variantStyles\");\n const Icon = getMapValueOrThrow(variantIconMap, variant, \"variantIconMap\");\n\n return (\n <div\n role=\"alert\"\n className={cn(\n \"relative w-full rounded-2xl border p-4 text-sm\",\n \"flex gap-3 items-start\",\n styles.container,\n glassmorphic && \"backdrop-blur-xl\",\n className\n )}\n {...props}\n >\n <Icon className={cn(\"h-4 w-4 mt-0.5 flex-shrink-0\", styles.icon)} />\n <div className=\"min-w-0\">\n {title && (\n <h5 className={cn(\"mb-1 font-medium leading-none tracking-tight\", styles.title)}>\n {title}\n </h5>\n )}\n {description && (\n <div className=\"text-sm text-foreground/80 dark:text-muted-foreground [&_p]:leading-relaxed\">\n {description}\n </div>\n )}\n {children}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;AAOA,MAAM,iCAAiB,IAAI,IAA2C;CACpE,CAAC,WAAW,IAAI;CAChB,CAAC,WAAW,WAAW;CACvB,CAAC,SAAS,OAAO;CACjB,CAAC,WAAW,aAAa;CACzB,CAAC,QAAQ,IAAI;AACf,CAAC;AAQD,MAAM,gCAAgB,IAAI,IAAuC;CAC/D,CACE,WACA;EACE,WAAW;EACX,MAAM;EACN,OAAO;CACT,CACF;CACA,CACE,WACA;EACE,WAAW;EACX,MAAM;EACN,OAAO;CACT,CACF;CACA,CACE,SACA;EACE,WAAW;EACX,MAAM;EACN,OAAO;CACT,CACF;CACA,CACE,WACA;EACE,WAAW;EACX,MAAM;EACN,OAAO;CACT,CACF;CACA,CACE,QACA;EACE,WAAW;EACX,MAAM;EACN,OAAO;CACT,CACF;AACF,CAAC;AAED,SAAS,mBAAiC,KAAwB,KAAW,SAAiB;CAC5F,MAAM,QAAQ,IAAI,IAAI,GAAG;CACzB,IAAI,CAAC,OACH,MAAM,IAAI,MAAM,WAAW,QAAQ,kBAAkB,OAAO,GAAG,EAAE,EAAE;CAErE,OAAO;AACT;AASA,SAAgB,YAAY,EAC1B,UAAU,WACV,OACA,aACA,eAAe,OACf,WACA,UACA,GAAG,SACgB;CACnB,MAAM,SAAS,mBAAmB,eAAe,SAAS,eAAe;CACzE,MAAM,OAAO,mBAAmB,gBAAgB,SAAS,gBAAgB;CAEzE,OACE,qBAAC,OAAD;EACE,MAAK;EACL,WAAW,GACT,kDACA,0BACA,OAAO,WACP,gBAAgB,oBAChB,SACF;EACA,GAAI;YATN,CAWE,oBAAC,MAAD,EAAM,WAAW,GAAG,gCAAgC,OAAO,IAAI,EAAI,CAAA,GACnE,qBAAC,OAAD;GAAK,WAAU;aAAf;IACG,SACC,oBAAC,MAAD;KAAI,WAAW,GAAG,gDAAgD,OAAO,KAAK;eAC3E;IACC,CAAA;IAEL,eACC,oBAAC,OAAD;KAAK,WAAU;eACZ;IACE,CAAA;IAEN;GACE;IACF;;AAET"}
@@ -1,7 +1,6 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import { Ref } from "react";
3
- import { AnalyticsChartStrings } from "./strings";
4
- import { AnalyticsChartPieProps, AnalyticsChartSeries, FormatKind, Point } from "./types";
2
+ import { AnalyticsChartPieProps, AnalyticsChartSeries, FormatKind, Point } from "./types.js";
3
+ import { AnalyticsChartStrings } from "./strings.js";
5
4
 
6
5
  //#region src/components/analytics-chart/analytics-chart-pie.d.ts
7
6
  type SegmentColors = {
@@ -61,7 +60,7 @@ declare function AnalyticsChartPie({
61
60
  strings,
62
61
  fmtValue,
63
62
  pie
64
- }: AnalyticsChartPieBodyProps): react_jsx_runtime0.JSX.Element;
63
+ }: AnalyticsChartPieBodyProps): import("react/jsx-runtime").JSX.Element;
65
64
  //#endregion
66
65
  export { AnalyticsChartPie };
67
66
  //# sourceMappingURL=analytics-chart-pie.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-chart-pie.d.ts","names":[],"sources":["../../../../src/components/analytics-chart/analytics-chart-pie.tsx"],"mappings":";;;;;;KAgBK,aAAA;EACH,OAAA;IAAW,KAAA;IAAiB,IAAA;EAAA;EAC5B,OAAA;IAAW,KAAA;IAAiB,IAAA;EAAA;AAAA;AAAA,KAGzB,0BAAA;EACH,UAAA,EAAY,GAAA,CAAI,cAAA;EAChB,oBAAA,WAA+B,oBAAA;EAC/B,oBAAA,WAA+B,oBAAA;EAC/B,yBAAA;EACA,yBAAA;EACA,sBAAA;EACA,sBAAA;EACA,aAAA,EAAe,aAAA;EACf,WAAA;EACA,WAAA;EACA,WAAA,EAAa,UAAA;EACb,WAAA,EAAa,UAAA;EACb,QAAA;EACA,WAAA,GAAc,CAAA;EACd,SAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,QAAA,EAAU,KAAA;EACV,OAAA,EAAS,qBAAA;EACT,QAAA,GAAW,KAAA,UAAe,IAAA,EAAM,UAAA;EAChC,GAAA,EAAK,sBAAA;AAAA;AAAA,iBAKS,iBAAA,CAAA;EACd,UAAA;EACA,oBAAA;EACA,oBAAA;EACA,yBAAA;EACA,yBAAA;EACA,sBAAA;EACA,sBAAA;EACA,aAAA;EACA,WAAA;EACA,WAAA;EACA,WAAA;EACA,WAAA;EACA,QAAA;EACA,WAAA;EACA,SAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,QAAA;EACA,OAAA;EACA,QAAA;EACA;AAAA,GACC,0BAAA,GAA0B,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"analytics-chart-pie.d.ts","names":[],"sources":["../../../../src/components/analytics-chart/analytics-chart-pie.tsx"],"mappings":";;;;;KAgBK,aAAA;EACH,OAAA;IAAW,KAAA;IAAiB,IAAA;EAAA;EAC5B,OAAA;IAAW,KAAA;IAAiB,IAAA;EAAA;AAAA;AAAA,KAGzB,0BAAA;EACH,UAAA,EAAY,GAAA,CAAI,cAAA;EAChB,oBAAA,WAA+B,oBAAA;EAC/B,oBAAA,WAA+B,oBAAA;EAC/B,yBAAA;EACA,yBAAA;EACA,sBAAA;EACA,sBAAA;EACA,aAAA,EAAe,aAAA;EACf,WAAA;EACA,WAAA;EACA,WAAA,EAAa,UAAA;EACb,WAAA,EAAa,UAAA;EACb,QAAA;EACA,WAAA,GAAc,CAAA;EACd,SAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,QAAA,EAAU,KAAA;EACV,OAAA,EAAS,qBAAA;EACT,QAAA,GAAW,KAAA,UAAe,IAAA,EAAM,UAAA;EAChC,GAAA,EAAK,sBAAA;AAAA;AAAA,iBAKS,iBAAA;EACd,UAAA;EACA,oBAAA;EACA,oBAAA;EACA,yBAAA;EACA,yBAAA;EACA,sBAAA;EACA,sBAAA;EACA,aAAA;EACA,WAAA;EACA,WAAA;EACA,WAAA;EACA,WAAA;EACA,QAAA;EACA,WAAA;EACA,SAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,QAAA;EACA,OAAA;EACA,QAAA;EACA;AAAA,GACC,0BAAA,+BAA0B,GAAA,CAAA,OAAA"}
@@ -7,7 +7,6 @@ import { DesignChartContainer } from "../chart-container.js";
7
7
  import { TrendPill } from "./default-analytics-chart-tooltip.js";
8
8
  import { formatDelta } from "./format.js";
9
9
  import { cssIdent } from "./types.js";
10
-
11
10
  //#region src/components/analytics-chart/analytics-chart-pie.tsx
12
11
  const DEFAULT_PIE_CLASSNAME = "aspect-square h-[220px] w-[220px] sm:h-[240px] sm:w-[240px]";
13
12
  function AnalyticsChartPie({ wrapperRef, primarySegmentSeries, compareSegmentSeries, aggregatedPrimarySegments, aggregatedCompareSegments, aggregatedPrimaryTotal, aggregatedCompareTotal, segmentColors, showPrimary, showCompare, xFormatKind, yFormatKind, hoverKey, setHoverKey, zoomRange, onResetZoom, visibleStart, visibleEnd, fullData, strings, fmtValue, pie }) {
@@ -267,7 +266,7 @@ function AnalyticsChartPie({ wrapperRef, primarySegmentSeries, compareSegmentSer
267
266
  })]
268
267
  });
269
268
  }
270
-
271
269
  //#endregion
272
270
  export { AnalyticsChartPie };
271
+
273
272
  //# sourceMappingURL=analytics-chart-pie.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-chart-pie.js","names":[],"sources":["../../../../src/components/analytics-chart/analytics-chart-pie.tsx"],"sourcesContent":["import { MagnifyingGlassMinusIcon } from \"@phosphor-icons/react\";\nimport { cn } from \"@hexclave/ui\";\nimport { type DesignChartConfig, DesignChartContainer } from \"../chart-container\";\nimport { type CSSProperties, type Ref, useEffect, useMemo, useState } from \"react\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { TrendPill } from \"./default-analytics-chart-tooltip\";\nimport { formatDelta } from \"./format\";\nimport type { AnalyticsChartStrings } from \"./strings\";\nimport {\n cssIdent,\n type AnalyticsChartPieProps,\n type AnalyticsChartSeries,\n type FormatKind,\n type Point,\n} from \"./types\";\n\ntype SegmentColors = {\n primary: { light: string[], dark: string[] },\n compare: { light: string[], dark: string[] },\n};\n\ntype AnalyticsChartPieBodyProps = {\n wrapperRef: Ref<HTMLDivElement>,\n primarySegmentSeries: readonly AnalyticsChartSeries[],\n compareSegmentSeries: readonly AnalyticsChartSeries[],\n aggregatedPrimarySegments: number[],\n aggregatedCompareSegments: number[],\n aggregatedPrimaryTotal: number,\n aggregatedCompareTotal: number,\n segmentColors: SegmentColors,\n showPrimary: boolean,\n showCompare: boolean,\n xFormatKind: FormatKind,\n yFormatKind: FormatKind,\n hoverKey: string | null,\n setHoverKey: (k: string | null) => void,\n zoomRange: [number, number] | null,\n onResetZoom: () => void,\n visibleStart: number,\n visibleEnd: number,\n fullData: Point[],\n strings: AnalyticsChartStrings,\n fmtValue: (value: number, kind: FormatKind) => string,\n pie: AnalyticsChartPieProps | undefined,\n};\n\nconst DEFAULT_PIE_CLASSNAME = \"aspect-square h-[220px] w-[220px] sm:h-[240px] sm:w-[240px]\";\n\nexport function AnalyticsChartPie({\n wrapperRef,\n primarySegmentSeries,\n compareSegmentSeries,\n aggregatedPrimarySegments,\n aggregatedCompareSegments,\n aggregatedPrimaryTotal,\n aggregatedCompareTotal,\n segmentColors,\n showPrimary,\n showCompare,\n xFormatKind,\n yFormatKind,\n hoverKey,\n setHoverKey,\n zoomRange,\n onResetZoom,\n visibleStart,\n visibleEnd,\n fullData,\n strings,\n fmtValue,\n pie,\n}: AnalyticsChartPieBodyProps) {\n const innerRadius = pie?.innerRadius ?? 60;\n const outerRadius = pie?.outerRadius ?? 84;\n const compareInnerRadius = pie?.compareInnerRadius ?? 36;\n const compareOuterRadius = pie?.compareOuterRadius ?? 52;\n const containerClassName = pie?.className ?? DEFAULT_PIE_CLASSNAME;\n const showDateRange = pie?.showDateRange ?? true;\n const centerTextMaxWidth = Math.max(64, innerRadius * 2 - 28);\n const segmentTransitionStyle: CSSProperties = {\n transition: \"opacity 180ms ease-out\",\n };\n\n const canonicalSeries = primarySegmentSeries.length > 0\n ? primarySegmentSeries\n : compareSegmentSeries;\n const usePrimaryForCanonical = primarySegmentSeries.length > 0;\n\n const compareValueByKey = useMemo(() => {\n const m = new Map<string, number>();\n compareSegmentSeries.forEach((s, sIdx) => {\n m.set(s.key, aggregatedCompareSegments[sIdx] ?? 0);\n });\n return m;\n }, [compareSegmentSeries, aggregatedCompareSegments]);\n const primaryValueByKey = useMemo(() => {\n const m = new Map<string, number>();\n primarySegmentSeries.forEach((s, sIdx) => {\n m.set(s.key, aggregatedPrimarySegments[sIdx] ?? 0);\n });\n return m;\n }, [primarySegmentSeries, aggregatedPrimarySegments]);\n\n const canonicalTotal = usePrimaryForCanonical\n ? aggregatedPrimaryTotal\n : aggregatedCompareTotal;\n\n const legendRows = useMemo(\n () =>\n canonicalSeries\n .map((s, sIdx) => {\n const value = usePrimaryForCanonical\n ? (aggregatedPrimarySegments[sIdx] ?? 0)\n : (aggregatedCompareSegments[sIdx] ?? 0);\n const prevValue = usePrimaryForCanonical\n ? (compareValueByKey.get(s.key) ?? 0)\n : (primaryValueByKey.get(s.key) ?? 0);\n return {\n key: s.key,\n label: s.label,\n sIdx,\n value,\n prevValue,\n pct: canonicalTotal > 0 ? value / canonicalTotal : 0,\n fill: segmentColors.primary.light[sIdx],\n fillDark: segmentColors.primary.dark[sIdx],\n fillCompare: segmentColors.compare.light[sIdx],\n fillCompareDark: segmentColors.compare.dark[sIdx],\n };\n })\n .sort((a, b) => b.value - a.value),\n [\n canonicalSeries,\n usePrimaryForCanonical,\n aggregatedPrimarySegments,\n aggregatedCompareSegments,\n compareValueByKey,\n primaryValueByKey,\n canonicalTotal,\n segmentColors,\n ],\n );\n\n const chartConfig = useMemo<DesignChartConfig>(() => {\n const config: DesignChartConfig = {};\n canonicalSeries.forEach((s, sIdx) => {\n config[cssIdent(s.key)] = {\n label: s.label,\n theme: {\n light: segmentColors.primary.light[sIdx],\n dark: segmentColors.primary.dark[sIdx],\n },\n };\n config[`compare-${cssIdent(s.key)}`] = {\n label: s.label,\n theme: {\n light: segmentColors.compare.light[sIdx],\n dark: segmentColors.compare.dark[sIdx],\n },\n };\n });\n return config;\n }, [canonicalSeries, segmentColors]);\n\n const activeRow = hoverKey != null\n ? legendRows.find((r) => r.key === hoverKey) ?? null\n : null;\n const [centerDisplayKey, setCenterDisplayKey] = useState<string | null>(null);\n const [centerDisplayVisible, setCenterDisplayVisible] = useState(true);\n const centerDisplayRow = centerDisplayKey != null\n ? legendRows.find((r) => r.key === centerDisplayKey) ?? null\n : null;\n useEffect(() => {\n const nextKey = activeRow?.key ?? null;\n if (nextKey === centerDisplayKey) {\n return;\n }\n\n setCenterDisplayVisible(false);\n const timeoutId = window.setTimeout(() => {\n setCenterDisplayKey(nextKey);\n setCenterDisplayVisible(true);\n }, 120);\n\n return () => {\n window.clearTimeout(timeoutId);\n };\n }, [activeRow?.key, centerDisplayKey]);\n\n const activeDelta = activeRow\n ? formatDelta(activeRow.value, activeRow.prevValue)\n : formatDelta(aggregatedPrimaryTotal, aggregatedCompareTotal);\n\n const windowDays = visibleEnd - visibleStart + 1;\n const startLabel = fmtValue(fullData[visibleStart]!.ts, xFormatKind);\n const endLabel = fmtValue(fullData[visibleEnd]!.ts, xFormatKind);\n\n const outerData = legendRows.map((r) => ({ name: cssIdent(r.key), hoverKey: r.key, value: r.value, fill: r.fill }));\n const innerData = legendRows.map((r) => ({ name: cssIdent(r.key), hoverKey: r.key, value: r.prevValue, fill: r.fillCompare }));\n const activeIdx = hoverKey != null ? legendRows.findIndex((r) => r.key === hoverKey) : -1;\n\n return (\n <div\n ref={wrapperRef}\n className=\"relative flex h-full min-h-0 w-full min-w-0 flex-1 flex-col select-none\"\n onClick={(e) => e.stopPropagation()}\n >\n {zoomRange && (\n <div className=\"absolute right-2 top-2 z-20\">\n <button\n type=\"button\"\n onClick={onResetZoom}\n className=\"inline-flex items-center gap-1.5 rounded-full bg-blue-500/10 px-2.5 py-1 font-mono text-[10px] font-semibold uppercase tracking-wider text-blue-600 ring-1 ring-blue-500/30 transition-colors duration-150 hover:bg-blue-500/15 hover:transition-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500/50 dark:text-blue-300 dark:ring-blue-400/30\"\n >\n <MagnifyingGlassMinusIcon weight=\"bold\" className=\"size-3\" aria-hidden=\"true\" />\n <span>{strings.resetZoom}</span>\n </button>\n </div>\n )}\n\n <div className=\"flex h-full min-h-0 w-full flex-1 flex-wrap content-center items-center justify-center gap-x-10 gap-y-6\">\n <div className=\"flex shrink-0 flex-col items-center gap-3\">\n <div className=\"relative\">\n <DesignChartContainer config={chartConfig} className={containerClassName}>\n <PieChart\n role=\"img\"\n aria-label={strings.pieAriaLabel({\n segmentCount: canonicalSeries.length,\n windowDays,\n })}\n >\n {showPrimary && (\n <Pie\n data={outerData}\n dataKey=\"value\"\n nameKey=\"name\"\n cx=\"50%\"\n cy=\"50%\"\n innerRadius={innerRadius}\n outerRadius={outerRadius}\n paddingAngle={1}\n startAngle={90}\n endAngle={-270}\n isAnimationActive={false}\n stroke=\"none\"\n >\n {outerData.map((d, i) => {\n const inactive = activeIdx >= 0 && activeIdx !== i;\n return (\n <Cell\n key={`outer-${d.name}`}\n fill={`var(--color-${d.name})`}\n opacity={inactive ? 0.22 : 1}\n style={segmentTransitionStyle}\n onMouseEnter={() => setHoverKey(d.hoverKey)}\n onMouseLeave={() => setHoverKey(null)}\n />\n );\n })}\n </Pie>\n )}\n {showCompare && (\n <Pie\n data={innerData}\n dataKey=\"value\"\n nameKey=\"name\"\n cx=\"50%\"\n cy=\"50%\"\n innerRadius={compareInnerRadius}\n outerRadius={compareOuterRadius}\n paddingAngle={1}\n startAngle={90}\n endAngle={-270}\n isAnimationActive={false}\n stroke=\"none\"\n >\n {innerData.map((d, i) => {\n const inactive = activeIdx >= 0 && activeIdx !== i;\n return (\n <Cell\n key={`inner-${d.name}`}\n fill={`var(--color-compare-${d.name})`}\n opacity={inactive ? 0.22 : 0.95}\n style={segmentTransitionStyle}\n onMouseEnter={() => setHoverKey(d.hoverKey)}\n onMouseLeave={() => setHoverKey(null)}\n />\n );\n })}\n </Pie>\n )}\n </PieChart>\n </DesignChartContainer>\n\n <div\n className={cn(\n \"pointer-events-none absolute inset-0 flex flex-col items-center justify-center text-center transition-opacity duration-200 ease-out\",\n centerDisplayVisible ? \"opacity-100\" : \"opacity-35\",\n )}\n >\n <span className=\"block truncate font-mono text-[9px] uppercase tracking-wider text-muted-foreground\" style={{ maxWidth: centerTextMaxWidth }}>\n {centerDisplayRow ? centerDisplayRow.label : strings.pieTotalCenter}\n </span>\n <span className=\"mt-0.5 block truncate font-mono text-xl font-semibold leading-none tabular-nums text-foreground\" style={{ maxWidth: centerTextMaxWidth }}>\n {fmtValue(centerDisplayRow ? centerDisplayRow.value : canonicalTotal, yFormatKind)}\n </span>\n </div>\n </div>\n\n {(showDateRange || showCompare) && (\n <div className=\"flex items-center gap-2 text-center\">\n {showDateRange && (\n <span className=\"font-mono text-[10px] uppercase tracking-wider text-muted-foreground/80\">\n {startLabel} – {endLabel}\n </span>\n )}\n {showCompare && (\n <TrendPill delta={activeDelta} size=\"sm\" label={strings.pieVsPrev} />\n )}\n </div>\n )}\n </div>\n\n <ul className=\"flex min-w-[200px] max-w-[300px] flex-col gap-1\">\n {legendRows.map((r) => {\n const isActive = hoverKey === r.key;\n const dimmed = hoverKey != null && !isActive;\n const rowDelta = formatDelta(r.value, r.prevValue);\n return (\n <li key={r.key}>\n <button\n type=\"button\"\n onMouseEnter={() => setHoverKey(r.key)}\n onMouseLeave={() => setHoverKey(null)}\n onFocus={() => setHoverKey(r.key)}\n onBlur={() => setHoverKey(null)}\n className={cn(\n \"flex w-full items-center gap-2.5 rounded-md px-2 py-1.5 text-left transition-[background-color,opacity] duration-200 ease-out hover:bg-foreground/[0.04] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-foreground/20\",\n isActive && \"bg-foreground/[0.05]\",\n dimmed && \"opacity-50\",\n )}\n >\n <span\n className=\"size-2.5 shrink-0 rounded-[3px] bg-[var(--c-l)] dark:bg-[var(--c-d)]\"\n style={{ \"--c-l\": r.fill, \"--c-d\": r.fillDark } as CSSProperties}\n />\n <span className=\"min-w-0 flex-1 truncate text-[12px] font-medium text-foreground\">\n {r.label}\n </span>\n <span className=\"shrink-0 font-mono text-[11px] tabular-nums text-muted-foreground\">\n {(r.pct * 100).toFixed(1)}%\n </span>\n <span className=\"shrink-0 min-w-[48px] text-right font-mono text-[11px] font-semibold tabular-nums text-foreground\">\n {fmtValue(r.value, yFormatKind)}\n </span>\n {showCompare && (\n <span className=\"shrink-0\">\n <TrendPill delta={rowDelta} size=\"sm\" />\n </span>\n )}\n </button>\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"analytics-chart-pie.js","names":[],"sources":["../../../../src/components/analytics-chart/analytics-chart-pie.tsx"],"sourcesContent":["import { MagnifyingGlassMinusIcon } from \"@phosphor-icons/react\";\nimport { cn } from \"@hexclave/ui\";\nimport { type DesignChartConfig, DesignChartContainer } from \"../chart-container\";\nimport { type CSSProperties, type Ref, useEffect, useMemo, useState } from \"react\";\nimport { Cell, Pie, PieChart } from \"recharts\";\nimport { TrendPill } from \"./default-analytics-chart-tooltip\";\nimport { formatDelta } from \"./format\";\nimport type { AnalyticsChartStrings } from \"./strings\";\nimport {\n cssIdent,\n type AnalyticsChartPieProps,\n type AnalyticsChartSeries,\n type FormatKind,\n type Point,\n} from \"./types\";\n\ntype SegmentColors = {\n primary: { light: string[], dark: string[] },\n compare: { light: string[], dark: string[] },\n};\n\ntype AnalyticsChartPieBodyProps = {\n wrapperRef: Ref<HTMLDivElement>,\n primarySegmentSeries: readonly AnalyticsChartSeries[],\n compareSegmentSeries: readonly AnalyticsChartSeries[],\n aggregatedPrimarySegments: number[],\n aggregatedCompareSegments: number[],\n aggregatedPrimaryTotal: number,\n aggregatedCompareTotal: number,\n segmentColors: SegmentColors,\n showPrimary: boolean,\n showCompare: boolean,\n xFormatKind: FormatKind,\n yFormatKind: FormatKind,\n hoverKey: string | null,\n setHoverKey: (k: string | null) => void,\n zoomRange: [number, number] | null,\n onResetZoom: () => void,\n visibleStart: number,\n visibleEnd: number,\n fullData: Point[],\n strings: AnalyticsChartStrings,\n fmtValue: (value: number, kind: FormatKind) => string,\n pie: AnalyticsChartPieProps | undefined,\n};\n\nconst DEFAULT_PIE_CLASSNAME = \"aspect-square h-[220px] w-[220px] sm:h-[240px] sm:w-[240px]\";\n\nexport function AnalyticsChartPie({\n wrapperRef,\n primarySegmentSeries,\n compareSegmentSeries,\n aggregatedPrimarySegments,\n aggregatedCompareSegments,\n aggregatedPrimaryTotal,\n aggregatedCompareTotal,\n segmentColors,\n showPrimary,\n showCompare,\n xFormatKind,\n yFormatKind,\n hoverKey,\n setHoverKey,\n zoomRange,\n onResetZoom,\n visibleStart,\n visibleEnd,\n fullData,\n strings,\n fmtValue,\n pie,\n}: AnalyticsChartPieBodyProps) {\n const innerRadius = pie?.innerRadius ?? 60;\n const outerRadius = pie?.outerRadius ?? 84;\n const compareInnerRadius = pie?.compareInnerRadius ?? 36;\n const compareOuterRadius = pie?.compareOuterRadius ?? 52;\n const containerClassName = pie?.className ?? DEFAULT_PIE_CLASSNAME;\n const showDateRange = pie?.showDateRange ?? true;\n const centerTextMaxWidth = Math.max(64, innerRadius * 2 - 28);\n const segmentTransitionStyle: CSSProperties = {\n transition: \"opacity 180ms ease-out\",\n };\n\n const canonicalSeries = primarySegmentSeries.length > 0\n ? primarySegmentSeries\n : compareSegmentSeries;\n const usePrimaryForCanonical = primarySegmentSeries.length > 0;\n\n const compareValueByKey = useMemo(() => {\n const m = new Map<string, number>();\n compareSegmentSeries.forEach((s, sIdx) => {\n m.set(s.key, aggregatedCompareSegments[sIdx] ?? 0);\n });\n return m;\n }, [compareSegmentSeries, aggregatedCompareSegments]);\n const primaryValueByKey = useMemo(() => {\n const m = new Map<string, number>();\n primarySegmentSeries.forEach((s, sIdx) => {\n m.set(s.key, aggregatedPrimarySegments[sIdx] ?? 0);\n });\n return m;\n }, [primarySegmentSeries, aggregatedPrimarySegments]);\n\n const canonicalTotal = usePrimaryForCanonical\n ? aggregatedPrimaryTotal\n : aggregatedCompareTotal;\n\n const legendRows = useMemo(\n () =>\n canonicalSeries\n .map((s, sIdx) => {\n const value = usePrimaryForCanonical\n ? (aggregatedPrimarySegments[sIdx] ?? 0)\n : (aggregatedCompareSegments[sIdx] ?? 0);\n const prevValue = usePrimaryForCanonical\n ? (compareValueByKey.get(s.key) ?? 0)\n : (primaryValueByKey.get(s.key) ?? 0);\n return {\n key: s.key,\n label: s.label,\n sIdx,\n value,\n prevValue,\n pct: canonicalTotal > 0 ? value / canonicalTotal : 0,\n fill: segmentColors.primary.light[sIdx],\n fillDark: segmentColors.primary.dark[sIdx],\n fillCompare: segmentColors.compare.light[sIdx],\n fillCompareDark: segmentColors.compare.dark[sIdx],\n };\n })\n .sort((a, b) => b.value - a.value),\n [\n canonicalSeries,\n usePrimaryForCanonical,\n aggregatedPrimarySegments,\n aggregatedCompareSegments,\n compareValueByKey,\n primaryValueByKey,\n canonicalTotal,\n segmentColors,\n ],\n );\n\n const chartConfig = useMemo<DesignChartConfig>(() => {\n const config: DesignChartConfig = {};\n canonicalSeries.forEach((s, sIdx) => {\n config[cssIdent(s.key)] = {\n label: s.label,\n theme: {\n light: segmentColors.primary.light[sIdx],\n dark: segmentColors.primary.dark[sIdx],\n },\n };\n config[`compare-${cssIdent(s.key)}`] = {\n label: s.label,\n theme: {\n light: segmentColors.compare.light[sIdx],\n dark: segmentColors.compare.dark[sIdx],\n },\n };\n });\n return config;\n }, [canonicalSeries, segmentColors]);\n\n const activeRow = hoverKey != null\n ? legendRows.find((r) => r.key === hoverKey) ?? null\n : null;\n const [centerDisplayKey, setCenterDisplayKey] = useState<string | null>(null);\n const [centerDisplayVisible, setCenterDisplayVisible] = useState(true);\n const centerDisplayRow = centerDisplayKey != null\n ? legendRows.find((r) => r.key === centerDisplayKey) ?? null\n : null;\n useEffect(() => {\n const nextKey = activeRow?.key ?? null;\n if (nextKey === centerDisplayKey) {\n return;\n }\n\n setCenterDisplayVisible(false);\n const timeoutId = window.setTimeout(() => {\n setCenterDisplayKey(nextKey);\n setCenterDisplayVisible(true);\n }, 120);\n\n return () => {\n window.clearTimeout(timeoutId);\n };\n }, [activeRow?.key, centerDisplayKey]);\n\n const activeDelta = activeRow\n ? formatDelta(activeRow.value, activeRow.prevValue)\n : formatDelta(aggregatedPrimaryTotal, aggregatedCompareTotal);\n\n const windowDays = visibleEnd - visibleStart + 1;\n const startLabel = fmtValue(fullData[visibleStart]!.ts, xFormatKind);\n const endLabel = fmtValue(fullData[visibleEnd]!.ts, xFormatKind);\n\n const outerData = legendRows.map((r) => ({ name: cssIdent(r.key), hoverKey: r.key, value: r.value, fill: r.fill }));\n const innerData = legendRows.map((r) => ({ name: cssIdent(r.key), hoverKey: r.key, value: r.prevValue, fill: r.fillCompare }));\n const activeIdx = hoverKey != null ? legendRows.findIndex((r) => r.key === hoverKey) : -1;\n\n return (\n <div\n ref={wrapperRef}\n className=\"relative flex h-full min-h-0 w-full min-w-0 flex-1 flex-col select-none\"\n onClick={(e) => e.stopPropagation()}\n >\n {zoomRange && (\n <div className=\"absolute right-2 top-2 z-20\">\n <button\n type=\"button\"\n onClick={onResetZoom}\n className=\"inline-flex items-center gap-1.5 rounded-full bg-blue-500/10 px-2.5 py-1 font-mono text-[10px] font-semibold uppercase tracking-wider text-blue-600 ring-1 ring-blue-500/30 transition-colors duration-150 hover:bg-blue-500/15 hover:transition-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500/50 dark:text-blue-300 dark:ring-blue-400/30\"\n >\n <MagnifyingGlassMinusIcon weight=\"bold\" className=\"size-3\" aria-hidden=\"true\" />\n <span>{strings.resetZoom}</span>\n </button>\n </div>\n )}\n\n <div className=\"flex h-full min-h-0 w-full flex-1 flex-wrap content-center items-center justify-center gap-x-10 gap-y-6\">\n <div className=\"flex shrink-0 flex-col items-center gap-3\">\n <div className=\"relative\">\n <DesignChartContainer config={chartConfig} className={containerClassName}>\n <PieChart\n role=\"img\"\n aria-label={strings.pieAriaLabel({\n segmentCount: canonicalSeries.length,\n windowDays,\n })}\n >\n {showPrimary && (\n <Pie\n data={outerData}\n dataKey=\"value\"\n nameKey=\"name\"\n cx=\"50%\"\n cy=\"50%\"\n innerRadius={innerRadius}\n outerRadius={outerRadius}\n paddingAngle={1}\n startAngle={90}\n endAngle={-270}\n isAnimationActive={false}\n stroke=\"none\"\n >\n {outerData.map((d, i) => {\n const inactive = activeIdx >= 0 && activeIdx !== i;\n return (\n <Cell\n key={`outer-${d.name}`}\n fill={`var(--color-${d.name})`}\n opacity={inactive ? 0.22 : 1}\n style={segmentTransitionStyle}\n onMouseEnter={() => setHoverKey(d.hoverKey)}\n onMouseLeave={() => setHoverKey(null)}\n />\n );\n })}\n </Pie>\n )}\n {showCompare && (\n <Pie\n data={innerData}\n dataKey=\"value\"\n nameKey=\"name\"\n cx=\"50%\"\n cy=\"50%\"\n innerRadius={compareInnerRadius}\n outerRadius={compareOuterRadius}\n paddingAngle={1}\n startAngle={90}\n endAngle={-270}\n isAnimationActive={false}\n stroke=\"none\"\n >\n {innerData.map((d, i) => {\n const inactive = activeIdx >= 0 && activeIdx !== i;\n return (\n <Cell\n key={`inner-${d.name}`}\n fill={`var(--color-compare-${d.name})`}\n opacity={inactive ? 0.22 : 0.95}\n style={segmentTransitionStyle}\n onMouseEnter={() => setHoverKey(d.hoverKey)}\n onMouseLeave={() => setHoverKey(null)}\n />\n );\n })}\n </Pie>\n )}\n </PieChart>\n </DesignChartContainer>\n\n <div\n className={cn(\n \"pointer-events-none absolute inset-0 flex flex-col items-center justify-center text-center transition-opacity duration-200 ease-out\",\n centerDisplayVisible ? \"opacity-100\" : \"opacity-35\",\n )}\n >\n <span className=\"block truncate font-mono text-[9px] uppercase tracking-wider text-muted-foreground\" style={{ maxWidth: centerTextMaxWidth }}>\n {centerDisplayRow ? centerDisplayRow.label : strings.pieTotalCenter}\n </span>\n <span className=\"mt-0.5 block truncate font-mono text-xl font-semibold leading-none tabular-nums text-foreground\" style={{ maxWidth: centerTextMaxWidth }}>\n {fmtValue(centerDisplayRow ? centerDisplayRow.value : canonicalTotal, yFormatKind)}\n </span>\n </div>\n </div>\n\n {(showDateRange || showCompare) && (\n <div className=\"flex items-center gap-2 text-center\">\n {showDateRange && (\n <span className=\"font-mono text-[10px] uppercase tracking-wider text-muted-foreground/80\">\n {startLabel} – {endLabel}\n </span>\n )}\n {showCompare && (\n <TrendPill delta={activeDelta} size=\"sm\" label={strings.pieVsPrev} />\n )}\n </div>\n )}\n </div>\n\n <ul className=\"flex min-w-[200px] max-w-[300px] flex-col gap-1\">\n {legendRows.map((r) => {\n const isActive = hoverKey === r.key;\n const dimmed = hoverKey != null && !isActive;\n const rowDelta = formatDelta(r.value, r.prevValue);\n return (\n <li key={r.key}>\n <button\n type=\"button\"\n onMouseEnter={() => setHoverKey(r.key)}\n onMouseLeave={() => setHoverKey(null)}\n onFocus={() => setHoverKey(r.key)}\n onBlur={() => setHoverKey(null)}\n className={cn(\n \"flex w-full items-center gap-2.5 rounded-md px-2 py-1.5 text-left transition-[background-color,opacity] duration-200 ease-out hover:bg-foreground/[0.04] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-foreground/20\",\n isActive && \"bg-foreground/[0.05]\",\n dimmed && \"opacity-50\",\n )}\n >\n <span\n className=\"size-2.5 shrink-0 rounded-[3px] bg-[var(--c-l)] dark:bg-[var(--c-d)]\"\n style={{ \"--c-l\": r.fill, \"--c-d\": r.fillDark } as CSSProperties}\n />\n <span className=\"min-w-0 flex-1 truncate text-[12px] font-medium text-foreground\">\n {r.label}\n </span>\n <span className=\"shrink-0 font-mono text-[11px] tabular-nums text-muted-foreground\">\n {(r.pct * 100).toFixed(1)}%\n </span>\n <span className=\"shrink-0 min-w-[48px] text-right font-mono text-[11px] font-semibold tabular-nums text-foreground\">\n {fmtValue(r.value, yFormatKind)}\n </span>\n {showCompare && (\n <span className=\"shrink-0\">\n <TrendPill delta={rowDelta} size=\"sm\" />\n </span>\n )}\n </button>\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,8 +1,7 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import { ReactNode } from "react";
3
- import { AnalyticsChartStrings } from "./strings";
4
- import { AnalyticsChartPalette, AnalyticsChartPieProps, AnalyticsChartState, Annotation, FormatKind, Point } from "./types";
5
- import { AnalyticsChartTooltipContext } from "./default-analytics-chart-tooltip";
2
+ import { AnalyticsChartTooltipContext } from "./default-analytics-chart-tooltip.js";
3
+ import { AnalyticsChartPalette, AnalyticsChartPieProps, AnalyticsChartState, Annotation, FormatKind, Point } from "./types.js";
4
+ import { AnalyticsChartStrings } from "./strings.js";
6
5
 
7
6
  //#region src/components/analytics-chart/analytics-chart.d.ts
8
7
  /** Mirrors Recharts' internal `Margin` shape (not exported from their typings). */
@@ -548,7 +547,7 @@ declare function AnalyticsChart({
548
547
  yDomainPadding,
549
548
  pie,
550
549
  valueFormatter
551
- }: AnalyticsChartProps): react_jsx_runtime0.JSX.Element;
550
+ }: AnalyticsChartProps): import("react/jsx-runtime").JSX.Element;
552
551
  //#endregion
553
552
  export { AnalyticsChart, AnalyticsChartProps, Margin };
554
553
  //# sourceMappingURL=analytics-chart.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-chart.d.ts","names":[],"sources":["../../../../src/components/analytics-chart/analytics-chart.tsx"],"mappings":";;;;;;;;KAyEY,MAAA;EACV,GAAA;EACA,KAAA;EACA,MAAA;EACA,IAAA;AAAA;;;;;;;AA6SF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4SA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA5SY,mBAAA;;;EAGV,IAAA,EAAM,KAAA;EAEN,WAAA,GAAc,UAAA;;;;;EAKd,KAAA,EAAO,mBAAA;EACP,QAAA,EAAU,KAAA,CAAM,QAAA,CAAS,KAAA,CAAM,cAAA,CAAe,mBAAA;;;EAG9C,kBAAA,IAAsB,UAAA,EAAY,UAAA;EAElC,OAAA,GAAU,OAAA,CAAQ,qBAAA;;;EAGlB,OAAA,GAAU,OAAA,CAAQ,qBAAA;;;;EAIlB,aAAA,IAAiB,GAAA,EAAK,4BAAA,KAAiC,SAAA;;;;EAIvD,UAAA,GAAa,MAAA;EAEb,UAAA;EAEA,cAAA;EAEA,GAAA,GAAM,sBAAA;;;EAGN,cAAA,IAAkB,KAAA,UAAe,IAAA,EAAM,UAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwQzB,cAAA,CAAA;EACd,IAAA,EAAM,QAAA;EACN,WAAA,EAAa,eAAA;EACb,KAAA;EACA,QAAA;EACA,kBAAA;EACA,OAAA,EAAS,eAAA;EACT,OAAA,EAAS,eAAA;EACT,aAAA;EACA,UAAA;EACA,UAAA;EACA,cAAA;EACA,GAAA;EACA;AAAA,GACC,mBAAA,GAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"analytics-chart.d.ts","names":[],"sources":["../../../../src/components/analytics-chart/analytics-chart.tsx"],"mappings":";;;;;;;KAyEY,MAAA;EACV,GAAA;EACA,KAAA;EACA,MAAA;EACA,IAAA;AAAA;;;;;AAAI;AA6SN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCmD;AAwQnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA1TV,mBAAA;;;EAGV,IAAA,EAAM,KAAA;EAEN,WAAA,GAAc,UAAA;;;;;EAKd,KAAA,EAAO,mBAAA;EACP,QAAA,EAAU,KAAA,CAAM,QAAA,CAAS,KAAA,CAAM,cAAA,CAAe,mBAAA;;;EAG9C,kBAAA,IAAsB,UAAA,EAAY,UAAA;EAElC,OAAA,GAAU,OAAA,CAAQ,qBAAA;;;EAGlB,OAAA,GAAU,OAAA,CAAQ,qBAAA;;;;EAIlB,aAAA,IAAiB,GAAA,EAAK,4BAAA,KAAiC,SAAA;;;;EAIvD,UAAA,GAAa,MAAA;EAEb,UAAA;EAEA,cAAA;EAEA,GAAA,GAAM,sBAAA;;;EAGN,cAAA,IAAkB,KAAA,UAAe,IAAA,EAAM,UAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwQzB,cAAA;EACd,IAAA,EAAM,QAAA;EACN,WAAA,EAAa,eAAA;EACb,KAAA;EACA,QAAA;EACA,kBAAA;EACA,OAAA,EAAS,eAAA;EACT,OAAA,EAAS,eAAA;EACT,aAAA;EACA,UAAA;EACA,UAAA;EACA,cAAA;EACA,GAAA;EACA;AAAA,GACC,mBAAA,+BAAmB,GAAA,CAAA,OAAA"}
@@ -1,5 +1,4 @@
1
1
  "use client";
2
-
3
2
  import { FlagIcon, MagnifyingGlassMinusIcon, MagnifyingGlassPlusIcon, XIcon } from "@phosphor-icons/react";
4
3
  import { cn } from "@hexclave/ui";
5
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -15,7 +14,6 @@ import { buildRampColors, resolveAnalyticsChartPalette } from "./palette.js";
15
14
  import { renderDataSeries } from "./render-data-series.js";
16
15
  import { EMPTY_MATRIX, EMPTY_SERIES, STROKE_DASHARRAY, computeLocalInProgressIdx, findAnnotationsLayer, findCompareLayer, findPrimaryLayer, isAnalyticsChartDataLayer, isTimeseriesState, resolveDataLayerStyle } from "./state.js";
17
16
  import { resolveAnalyticsChartStrings } from "./strings.js";
18
-
19
17
  //#region src/components/analytics-chart/analytics-chart.tsx
20
18
  const FALLBACK_PRIMARY_STYLE = {
21
19
  color: "#2563eb",
@@ -752,7 +750,7 @@ function AnalyticsChart({ data: fullData, annotations: fullAnnotations = [], sta
752
750
  const hi = Math.max(brushStart, brushEnd);
753
751
  const days = hi - lo + 1;
754
752
  return /* @__PURE__ */ jsx("div", {
755
- className: "pointer-events-none absolute -top-1 z-30 -translate-x-1/2 -translate-y-full rounded-lg border border-blue-500/30 bg-background/95 px-3 py-1.5 text-[11px] shadow-lg backdrop-blur-xl dark:border-blue-400/30",
753
+ className: "pointer-events-none absolute -top-1 z-30 -translate-x-1/2 -translate-y-full rounded-lg border border-blue-500/30 bg-white/95 px-3 py-1.5 text-[11px] shadow-lg backdrop-blur-xl dark:border-blue-400/30 dark:bg-background/95",
756
754
  style: { left: indexToCss((lo + hi) / 2) },
757
755
  children: /* @__PURE__ */ jsxs("div", {
758
756
  className: "flex items-center gap-2",
@@ -813,7 +811,7 @@ function AnalyticsChart({ data: fullData, annotations: fullAnnotations = [], sta
813
811
  className: "absolute top-2 z-30",
814
812
  style: anchorStyle,
815
813
  children: /* @__PURE__ */ jsx("div", {
816
- className: "flex items-center gap-1 rounded-full border border-foreground/10 bg-background/95 py-1 pl-2 pr-1 shadow-[0_10px_28px_rgba(15,23,42,0.18)] backdrop-blur-xl dark:shadow-[0_10px_28px_rgba(0,0,0,0.55)]",
814
+ className: "flex items-center gap-1 rounded-full border border-black/[0.08] bg-white/95 py-1 pl-2 pr-1 shadow-[0_10px_28px_rgba(15,23,42,0.18)] ring-1 ring-black/[0.06] backdrop-blur-xl dark:border-white/[0.08] dark:bg-background/95 dark:ring-white/[0.08] dark:shadow-[0_10px_28px_rgba(0,0,0,0.55)]",
817
815
  children: draft == null ? /* @__PURE__ */ jsxs(Fragment, { children: [
818
816
  /* @__PURE__ */ jsxs("span", {
819
817
  className: "flex items-center gap-1.5 whitespace-nowrap px-1 font-mono text-[10px] tabular-nums text-muted-foreground",
@@ -1013,7 +1011,7 @@ function AnalyticsChart({ data: fullData, annotations: fullAnnotations = [], sta
1013
1011
  ]
1014
1012
  });
1015
1013
  }
1016
-
1017
1014
  //#endregion
1018
1015
  export { AnalyticsChart };
1016
+
1019
1017
  //# sourceMappingURL=analytics-chart.js.map