@plenustech/design-system 0.2.1 → 0.2.3

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 (802) hide show
  1. package/dist/components/actions/Button/Button.cjs +2 -0
  2. package/dist/components/actions/Button/Button.cjs.map +1 -0
  3. package/dist/components/actions/Button/Button.js +47 -0
  4. package/dist/components/actions/Button/Button.js.map +1 -0
  5. package/dist/components/actions/Button/Button.module.css.cjs +2 -0
  6. package/dist/components/actions/Button/Button.module.css.cjs.map +1 -0
  7. package/dist/components/actions/Button/Button.module.css.js +24 -0
  8. package/dist/components/actions/Button/Button.module.css.js.map +1 -0
  9. package/dist/components/actions/ButtonIcon/ButtonIcon.cjs +2 -0
  10. package/dist/components/actions/ButtonIcon/ButtonIcon.cjs.map +1 -0
  11. package/dist/components/actions/ButtonIcon/ButtonIcon.js +21 -0
  12. package/dist/components/actions/ButtonIcon/ButtonIcon.js.map +1 -0
  13. package/dist/components/actions/ButtonIcon/ButtonIcon.module.css.cjs +2 -0
  14. package/dist/components/actions/ButtonIcon/ButtonIcon.module.css.cjs.map +1 -0
  15. package/dist/components/actions/ButtonIcon/ButtonIcon.module.css.js +14 -0
  16. package/dist/components/actions/ButtonIcon/ButtonIcon.module.css.js.map +1 -0
  17. package/dist/components/actions/ButtonTile/ButtonTile.cjs +2 -0
  18. package/dist/components/actions/ButtonTile/ButtonTile.cjs.map +1 -0
  19. package/dist/components/actions/ButtonTile/ButtonTile.js +23 -0
  20. package/dist/components/actions/ButtonTile/ButtonTile.js.map +1 -0
  21. package/dist/components/actions/ButtonTile/ButtonTile.module.css.cjs +2 -0
  22. package/dist/components/actions/ButtonTile/ButtonTile.module.css.cjs.map +1 -0
  23. package/dist/components/actions/ButtonTile/ButtonTile.module.css.js +16 -0
  24. package/dist/components/actions/ButtonTile/ButtonTile.module.css.js.map +1 -0
  25. package/dist/components/actions/Toolbar/Toolbar.cjs +2 -0
  26. package/dist/components/actions/Toolbar/Toolbar.cjs.map +1 -0
  27. package/dist/components/actions/Toolbar/Toolbar.js +118 -0
  28. package/dist/components/actions/Toolbar/Toolbar.js.map +1 -0
  29. package/dist/components/actions/Toolbar/Toolbar.module.css.cjs +2 -0
  30. package/dist/components/actions/Toolbar/Toolbar.module.css.cjs.map +1 -0
  31. package/dist/components/actions/Toolbar/Toolbar.module.css.js +20 -0
  32. package/dist/components/actions/Toolbar/Toolbar.module.css.js.map +1 -0
  33. package/dist/components/charts/ChartArea/ChartArea.cjs +2 -0
  34. package/dist/components/charts/ChartArea/ChartArea.cjs.map +1 -0
  35. package/dist/components/charts/ChartArea/ChartArea.js +253 -0
  36. package/dist/components/charts/ChartArea/ChartArea.js.map +1 -0
  37. package/dist/components/charts/ChartArea/ChartArea.module.css.cjs +2 -0
  38. package/dist/components/charts/ChartArea/ChartArea.module.css.cjs.map +1 -0
  39. package/dist/components/charts/ChartArea/ChartArea.module.css.js +20 -0
  40. package/dist/components/charts/ChartArea/ChartArea.module.css.js.map +1 -0
  41. package/dist/components/charts/ChartBar/ChartBar.cjs +2 -0
  42. package/dist/components/charts/ChartBar/ChartBar.cjs.map +1 -0
  43. package/dist/components/charts/ChartBar/ChartBar.js +239 -0
  44. package/dist/components/charts/ChartBar/ChartBar.js.map +1 -0
  45. package/dist/components/charts/ChartBar/ChartBar.module.css.cjs +2 -0
  46. package/dist/components/charts/ChartBar/ChartBar.module.css.cjs.map +1 -0
  47. package/dist/components/charts/ChartBar/ChartBar.module.css.js +16 -0
  48. package/dist/components/charts/ChartBar/ChartBar.module.css.js.map +1 -0
  49. package/dist/components/charts/ChartCombo/ChartCombo.cjs +2 -0
  50. package/dist/components/charts/ChartCombo/ChartCombo.cjs.map +1 -0
  51. package/dist/components/charts/ChartCombo/ChartCombo.js +273 -0
  52. package/dist/components/charts/ChartCombo/ChartCombo.js.map +1 -0
  53. package/dist/components/charts/ChartCombo/ChartCombo.module.css.cjs +2 -0
  54. package/dist/components/charts/ChartCombo/ChartCombo.module.css.cjs.map +1 -0
  55. package/dist/components/charts/ChartCombo/ChartCombo.module.css.js +22 -0
  56. package/dist/components/charts/ChartCombo/ChartCombo.module.css.js.map +1 -0
  57. package/dist/components/charts/ChartDonut/ChartDonut.cjs +2 -0
  58. package/dist/components/charts/ChartDonut/ChartDonut.cjs.map +1 -0
  59. package/dist/components/charts/ChartDonut/ChartDonut.js +118 -0
  60. package/dist/components/charts/ChartDonut/ChartDonut.js.map +1 -0
  61. package/dist/components/charts/ChartDonut/ChartDonut.module.css.cjs +2 -0
  62. package/dist/components/charts/ChartDonut/ChartDonut.module.css.cjs.map +1 -0
  63. package/dist/components/charts/ChartDonut/ChartDonut.module.css.js +14 -0
  64. package/dist/components/charts/ChartDonut/ChartDonut.module.css.js.map +1 -0
  65. package/dist/components/charts/ChartLine/ChartLine.cjs +2 -0
  66. package/dist/components/charts/ChartLine/ChartLine.cjs.map +1 -0
  67. package/dist/components/charts/ChartLine/ChartLine.js +219 -0
  68. package/dist/components/charts/ChartLine/ChartLine.js.map +1 -0
  69. package/dist/components/charts/ChartLine/ChartLine.module.css.cjs +2 -0
  70. package/dist/components/charts/ChartLine/ChartLine.module.css.cjs.map +1 -0
  71. package/dist/components/charts/ChartLine/ChartLine.module.css.js +20 -0
  72. package/dist/components/charts/ChartLine/ChartLine.module.css.js.map +1 -0
  73. package/dist/components/charts/ChartPie/ChartPie.cjs +2 -0
  74. package/dist/components/charts/ChartPie/ChartPie.cjs.map +1 -0
  75. package/dist/components/charts/ChartPie/ChartPie.js +110 -0
  76. package/dist/components/charts/ChartPie/ChartPie.js.map +1 -0
  77. package/dist/components/charts/ChartPie/ChartPie.module.css.cjs +2 -0
  78. package/dist/components/charts/ChartPie/ChartPie.module.css.cjs.map +1 -0
  79. package/dist/components/charts/ChartPie/ChartPie.module.css.js +10 -0
  80. package/dist/components/charts/ChartPie/ChartPie.module.css.js.map +1 -0
  81. package/dist/components/charts/ChartRadial/ChartRadial.cjs +2 -0
  82. package/dist/components/charts/ChartRadial/ChartRadial.cjs.map +1 -0
  83. package/dist/components/charts/ChartRadial/ChartRadial.js +138 -0
  84. package/dist/components/charts/ChartRadial/ChartRadial.js.map +1 -0
  85. package/dist/components/charts/ChartRadial/ChartRadial.module.css.cjs +2 -0
  86. package/dist/components/charts/ChartRadial/ChartRadial.module.css.cjs.map +1 -0
  87. package/dist/components/charts/ChartRadial/ChartRadial.module.css.js +16 -0
  88. package/dist/components/charts/ChartRadial/ChartRadial.module.css.js.map +1 -0
  89. package/dist/components/charts/ChartSankey/ChartSankey.cjs +2 -0
  90. package/dist/components/charts/ChartSankey/ChartSankey.cjs.map +1 -0
  91. package/dist/components/charts/ChartSankey/ChartSankey.js +232 -0
  92. package/dist/components/charts/ChartSankey/ChartSankey.js.map +1 -0
  93. package/dist/components/charts/ChartSankey/ChartSankey.module.css.cjs +2 -0
  94. package/dist/components/charts/ChartSankey/ChartSankey.module.css.cjs.map +1 -0
  95. package/dist/components/charts/ChartSankey/ChartSankey.module.css.js +22 -0
  96. package/dist/components/charts/ChartSankey/ChartSankey.module.css.js.map +1 -0
  97. package/dist/components/charts/ChartScatter/ChartScatter.cjs +2 -0
  98. package/dist/components/charts/ChartScatter/ChartScatter.cjs.map +1 -0
  99. package/dist/components/charts/ChartScatter/ChartScatter.js +169 -0
  100. package/dist/components/charts/ChartScatter/ChartScatter.js.map +1 -0
  101. package/dist/components/charts/ChartScatter/ChartScatter.module.css.cjs +2 -0
  102. package/dist/components/charts/ChartScatter/ChartScatter.module.css.cjs.map +1 -0
  103. package/dist/components/charts/ChartScatter/ChartScatter.module.css.js +14 -0
  104. package/dist/components/charts/ChartScatter/ChartScatter.module.css.js.map +1 -0
  105. package/dist/components/charts/ChartSunburst/ChartSunburst.cjs +2 -0
  106. package/dist/components/charts/ChartSunburst/ChartSunburst.cjs.map +1 -0
  107. package/dist/components/charts/ChartSunburst/ChartSunburst.js +159 -0
  108. package/dist/components/charts/ChartSunburst/ChartSunburst.js.map +1 -0
  109. package/dist/components/charts/ChartSunburst/ChartSunburst.module.css.cjs +2 -0
  110. package/dist/components/charts/ChartSunburst/ChartSunburst.module.css.cjs.map +1 -0
  111. package/dist/components/charts/ChartSunburst/ChartSunburst.module.css.js +16 -0
  112. package/dist/components/charts/ChartSunburst/ChartSunburst.module.css.js.map +1 -0
  113. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs +2 -0
  114. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs.map +1 -0
  115. package/dist/components/charts/ChartTooltip/ChartTooltip.js +113 -0
  116. package/dist/components/charts/ChartTooltip/ChartTooltip.js.map +1 -0
  117. package/dist/components/charts/ChartTooltip/ChartTooltip.module.css.cjs +2 -0
  118. package/dist/components/charts/ChartTooltip/ChartTooltip.module.css.cjs.map +1 -0
  119. package/dist/components/charts/ChartTooltip/ChartTooltip.module.css.js +32 -0
  120. package/dist/components/charts/ChartTooltip/ChartTooltip.module.css.js.map +1 -0
  121. package/dist/components/charts/ChartTreemap/ChartTreemap.cjs +2 -0
  122. package/dist/components/charts/ChartTreemap/ChartTreemap.cjs.map +1 -0
  123. package/dist/components/charts/ChartTreemap/ChartTreemap.js +133 -0
  124. package/dist/components/charts/ChartTreemap/ChartTreemap.js.map +1 -0
  125. package/dist/components/charts/ChartTreemap/ChartTreemap.module.css.cjs +2 -0
  126. package/dist/components/charts/ChartTreemap/ChartTreemap.module.css.cjs.map +1 -0
  127. package/dist/components/charts/ChartTreemap/ChartTreemap.module.css.js +14 -0
  128. package/dist/components/charts/ChartTreemap/ChartTreemap.module.css.js.map +1 -0
  129. package/dist/components/charts/ChartWaterfall/ChartWaterfall.cjs +2 -0
  130. package/dist/components/charts/ChartWaterfall/ChartWaterfall.cjs.map +1 -0
  131. package/dist/components/charts/ChartWaterfall/ChartWaterfall.js +188 -0
  132. package/dist/components/charts/ChartWaterfall/ChartWaterfall.js.map +1 -0
  133. package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.cjs +2 -0
  134. package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.cjs.map +1 -0
  135. package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.js +14 -0
  136. package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.js.map +1 -0
  137. package/dist/components/charts/core/Axis.cjs +2 -0
  138. package/dist/components/charts/core/Axis.cjs.map +1 -0
  139. package/dist/components/charts/core/Axis.js +40 -0
  140. package/dist/components/charts/core/Axis.js.map +1 -0
  141. package/dist/components/charts/core/BandCursor.cjs +2 -0
  142. package/dist/components/charts/core/BandCursor.cjs.map +1 -0
  143. package/dist/components/charts/core/BandCursor.js +19 -0
  144. package/dist/components/charts/core/BandCursor.js.map +1 -0
  145. package/dist/components/charts/core/CartesianFrame.cjs +2 -0
  146. package/dist/components/charts/core/CartesianFrame.cjs.map +1 -0
  147. package/dist/components/charts/core/CartesianFrame.js +85 -0
  148. package/dist/components/charts/core/CartesianFrame.js.map +1 -0
  149. package/dist/components/charts/core/Chart.module.css.cjs +2 -0
  150. package/dist/components/charts/core/Chart.module.css.cjs.map +1 -0
  151. package/dist/components/charts/core/Chart.module.css.js +66 -0
  152. package/dist/components/charts/core/Chart.module.css.js.map +1 -0
  153. package/dist/components/charts/core/ChartFrame.cjs +2 -0
  154. package/dist/components/charts/core/ChartFrame.cjs.map +1 -0
  155. package/dist/components/charts/core/ChartFrame.js +71 -0
  156. package/dist/components/charts/core/ChartFrame.js.map +1 -0
  157. package/dist/components/charts/core/ChartLegend.cjs +2 -0
  158. package/dist/components/charts/core/ChartLegend.cjs.map +1 -0
  159. package/dist/components/charts/core/ChartLegend.js +44 -0
  160. package/dist/components/charts/core/ChartLegend.js.map +1 -0
  161. package/dist/components/charts/core/Grid.cjs +2 -0
  162. package/dist/components/charts/core/Grid.cjs.map +1 -0
  163. package/dist/components/charts/core/Grid.js +20 -0
  164. package/dist/components/charts/core/Grid.js.map +1 -0
  165. package/dist/components/charts/core/PointBands.cjs +2 -0
  166. package/dist/components/charts/core/PointBands.cjs.map +1 -0
  167. package/dist/components/charts/core/PointBands.js +41 -0
  168. package/dist/components/charts/core/PointBands.js.map +1 -0
  169. package/dist/components/charts/core/arcs.cjs +2 -0
  170. package/dist/components/charts/core/arcs.cjs.map +1 -0
  171. package/dist/components/charts/core/arcs.js +26 -0
  172. package/dist/components/charts/core/arcs.js.map +1 -0
  173. package/dist/components/charts/core/cartesianLayout.cjs +2 -0
  174. package/dist/components/charts/core/cartesianLayout.cjs.map +1 -0
  175. package/dist/components/charts/core/cartesianLayout.js +67 -0
  176. package/dist/components/charts/core/cartesianLayout.js.map +1 -0
  177. package/dist/components/charts/core/centerText.cjs +2 -0
  178. package/dist/components/charts/core/centerText.cjs.map +1 -0
  179. package/dist/components/charts/core/centerText.js +31 -0
  180. package/dist/components/charts/core/centerText.js.map +1 -0
  181. package/dist/components/charts/core/hoverPath.cjs +2 -0
  182. package/dist/components/charts/core/hoverPath.cjs.map +1 -0
  183. package/dist/components/charts/core/hoverPath.js +7 -0
  184. package/dist/components/charts/core/hoverPath.js.map +1 -0
  185. package/dist/components/charts/core/measureText.cjs +2 -0
  186. package/dist/components/charts/core/measureText.cjs.map +1 -0
  187. package/dist/components/charts/core/measureText.js +55 -0
  188. package/dist/components/charts/core/measureText.js.map +1 -0
  189. package/dist/components/charts/core/pointLabels.cjs +2 -0
  190. package/dist/components/charts/core/pointLabels.cjs.map +1 -0
  191. package/dist/components/charts/core/pointLabels.js +12 -0
  192. package/dist/components/charts/core/pointLabels.js.map +1 -0
  193. package/dist/components/charts/core/shapes.cjs +2 -0
  194. package/dist/components/charts/core/shapes.cjs.map +1 -0
  195. package/dist/components/charts/core/shapes.js +31 -0
  196. package/dist/components/charts/core/shapes.js.map +1 -0
  197. package/dist/components/charts/core/slices.cjs +2 -0
  198. package/dist/components/charts/core/slices.cjs.map +1 -0
  199. package/dist/components/charts/core/slices.js +22 -0
  200. package/dist/components/charts/core/slices.js.map +1 -0
  201. package/dist/components/charts/core/spacing.cjs +2 -0
  202. package/dist/components/charts/core/spacing.cjs.map +1 -0
  203. package/dist/components/charts/core/spacing.js +26 -0
  204. package/dist/components/charts/core/spacing.js.map +1 -0
  205. package/dist/components/charts/core/tooltips.cjs +2 -0
  206. package/dist/components/charts/core/tooltips.cjs.map +1 -0
  207. package/dist/components/charts/core/tooltips.js +48 -0
  208. package/dist/components/charts/core/tooltips.js.map +1 -0
  209. package/dist/components/charts/core/useCartesianLayout.cjs +2 -0
  210. package/dist/components/charts/core/useCartesianLayout.cjs.map +1 -0
  211. package/dist/components/charts/core/useCartesianLayout.js +38 -0
  212. package/dist/components/charts/core/useCartesianLayout.js.map +1 -0
  213. package/dist/components/charts/core/useChartMetrics.cjs +2 -0
  214. package/dist/components/charts/core/useChartMetrics.cjs.map +1 -0
  215. package/dist/components/charts/core/useChartMetrics.js +39 -0
  216. package/dist/components/charts/core/useChartMetrics.js.map +1 -0
  217. package/dist/components/charts/core/useHoveredBand.cjs +2 -0
  218. package/dist/components/charts/core/useHoveredBand.cjs.map +1 -0
  219. package/dist/components/charts/core/useHoveredBand.js +14 -0
  220. package/dist/components/charts/core/useHoveredBand.js.map +1 -0
  221. package/dist/components/charts/core/useSeriesToggle.cjs +2 -0
  222. package/dist/components/charts/core/useSeriesToggle.cjs.map +1 -0
  223. package/dist/components/charts/core/useSeriesToggle.js +29 -0
  224. package/dist/components/charts/core/useSeriesToggle.js.map +1 -0
  225. package/dist/components/charts/core/useSliceRing.cjs +2 -0
  226. package/dist/components/charts/core/useSliceRing.cjs.map +1 -0
  227. package/dist/components/charts/core/useSliceRing.js +55 -0
  228. package/dist/components/charts/core/useSliceRing.js.map +1 -0
  229. package/dist/components/charts/core/useTweenedNumbers.cjs +2 -0
  230. package/dist/components/charts/core/useTweenedNumbers.cjs.map +1 -0
  231. package/dist/components/charts/core/useTweenedNumbers.js +31 -0
  232. package/dist/components/charts/core/useTweenedNumbers.js.map +1 -0
  233. package/dist/components/charts/palette/palette.cjs +2 -0
  234. package/dist/components/charts/palette/palette.cjs.map +1 -0
  235. package/dist/components/charts/palette/palette.js +26 -0
  236. package/dist/components/charts/palette/palette.js.map +1 -0
  237. package/dist/components/charts/palette/seriesColor.cjs +2 -0
  238. package/dist/components/charts/palette/seriesColor.cjs.map +1 -0
  239. package/dist/components/charts/palette/seriesColor.js +43 -0
  240. package/dist/components/charts/palette/seriesColor.js.map +1 -0
  241. package/dist/components/charts/scales/scales.cjs +2 -0
  242. package/dist/components/charts/scales/scales.cjs.map +1 -0
  243. package/dist/components/charts/scales/scales.js +74 -0
  244. package/dist/components/charts/scales/scales.js.map +1 -0
  245. package/dist/components/data-display/Accordion/Accordion.cjs +2 -0
  246. package/dist/components/data-display/Accordion/Accordion.cjs.map +1 -0
  247. package/dist/components/data-display/Accordion/Accordion.js +101 -0
  248. package/dist/components/data-display/Accordion/Accordion.js.map +1 -0
  249. package/dist/components/data-display/Accordion/Accordion.module.css.cjs +2 -0
  250. package/dist/components/data-display/Accordion/Accordion.module.css.cjs.map +1 -0
  251. package/dist/components/data-display/Accordion/Accordion.module.css.js +26 -0
  252. package/dist/components/data-display/Accordion/Accordion.module.css.js.map +1 -0
  253. package/dist/components/data-display/Avatar/Avatar.cjs +2 -0
  254. package/dist/components/data-display/Avatar/Avatar.cjs.map +1 -0
  255. package/dist/components/data-display/Avatar/Avatar.js +20 -0
  256. package/dist/components/data-display/Avatar/Avatar.js.map +1 -0
  257. package/dist/components/data-display/Avatar/Avatar.module.css.cjs +2 -0
  258. package/dist/components/data-display/Avatar/Avatar.module.css.cjs.map +1 -0
  259. package/dist/components/data-display/Avatar/Avatar.module.css.js +14 -0
  260. package/dist/components/data-display/Avatar/Avatar.module.css.js.map +1 -0
  261. package/dist/components/data-display/Badge/Badge.cjs +2 -0
  262. package/dist/components/data-display/Badge/Badge.cjs.map +1 -0
  263. package/dist/components/data-display/Badge/Badge.js +13 -0
  264. package/dist/components/data-display/Badge/Badge.js.map +1 -0
  265. package/dist/components/data-display/Badge/Badge.module.css.cjs +2 -0
  266. package/dist/components/data-display/Badge/Badge.module.css.cjs.map +1 -0
  267. package/dist/components/data-display/Badge/Badge.module.css.js +22 -0
  268. package/dist/components/data-display/Badge/Badge.module.css.js.map +1 -0
  269. package/dist/components/data-display/Card/Card.cjs +2 -0
  270. package/dist/components/data-display/Card/Card.cjs.map +1 -0
  271. package/dist/components/data-display/Card/Card.js +51 -0
  272. package/dist/components/data-display/Card/Card.js.map +1 -0
  273. package/dist/components/data-display/Card/Card.module.css.cjs +2 -0
  274. package/dist/components/data-display/Card/Card.module.css.cjs.map +1 -0
  275. package/dist/components/data-display/Card/Card.module.css.js +26 -0
  276. package/dist/components/data-display/Card/Card.module.css.js.map +1 -0
  277. package/dist/components/data-display/CodeBlock/CodeBlock.cjs +2 -0
  278. package/dist/components/data-display/CodeBlock/CodeBlock.cjs.map +1 -0
  279. package/dist/components/data-display/CodeBlock/CodeBlock.js +65 -0
  280. package/dist/components/data-display/CodeBlock/CodeBlock.js.map +1 -0
  281. package/dist/components/data-display/CodeBlock/CodeBlock.module.css.cjs +2 -0
  282. package/dist/components/data-display/CodeBlock/CodeBlock.module.css.cjs.map +1 -0
  283. package/dist/components/data-display/CodeBlock/CodeBlock.module.css.js +47 -0
  284. package/dist/components/data-display/CodeBlock/CodeBlock.module.css.js.map +1 -0
  285. package/dist/components/data-display/CodeBlock/syntax.cjs +24 -0
  286. package/dist/components/data-display/CodeBlock/syntax.cjs.map +1 -0
  287. package/dist/components/data-display/CodeBlock/syntax.js +124 -0
  288. package/dist/components/data-display/CodeBlock/syntax.js.map +1 -0
  289. package/dist/components/data-display/List/List.cjs +2 -0
  290. package/dist/components/data-display/List/List.cjs.map +1 -0
  291. package/dist/components/data-display/List/List.js +99 -0
  292. package/dist/components/data-display/List/List.js.map +1 -0
  293. package/dist/components/data-display/List/List.module.css.cjs +2 -0
  294. package/dist/components/data-display/List/List.module.css.cjs.map +1 -0
  295. package/dist/components/data-display/List/List.module.css.js +32 -0
  296. package/dist/components/data-display/List/List.module.css.js.map +1 -0
  297. package/dist/components/data-display/List/ListingOptions.cjs +2 -0
  298. package/dist/components/data-display/List/ListingOptions.cjs.map +1 -0
  299. package/dist/components/data-display/List/ListingOptions.js +115 -0
  300. package/dist/components/data-display/List/ListingOptions.js.map +1 -0
  301. package/dist/components/data-display/List/useListing.cjs +2 -0
  302. package/dist/components/data-display/List/useListing.cjs.map +1 -0
  303. package/dist/components/data-display/List/useListing.js +85 -0
  304. package/dist/components/data-display/List/useListing.js.map +1 -0
  305. package/dist/components/data-display/List/useVirtualWindow.cjs +2 -0
  306. package/dist/components/data-display/List/useVirtualWindow.cjs.map +1 -0
  307. package/dist/components/data-display/List/useVirtualWindow.js +58 -0
  308. package/dist/components/data-display/List/useVirtualWindow.js.map +1 -0
  309. package/dist/components/data-display/SortableList/SortableList.cjs +2 -0
  310. package/dist/components/data-display/SortableList/SortableList.cjs.map +1 -0
  311. package/dist/components/data-display/SortableList/SortableList.js +168 -0
  312. package/dist/components/data-display/SortableList/SortableList.js.map +1 -0
  313. package/dist/components/data-display/SortableList/SortableList.module.css.cjs +2 -0
  314. package/dist/components/data-display/SortableList/SortableList.module.css.cjs.map +1 -0
  315. package/dist/components/data-display/SortableList/SortableList.module.css.js +34 -0
  316. package/dist/components/data-display/SortableList/SortableList.module.css.js.map +1 -0
  317. package/dist/components/data-display/Table/Table.cjs +2 -0
  318. package/dist/components/data-display/Table/Table.cjs.map +1 -0
  319. package/dist/components/data-display/Table/Table.js +239 -0
  320. package/dist/components/data-display/Table/Table.js.map +1 -0
  321. package/dist/components/data-display/Table/Table.module.css.cjs +2 -0
  322. package/dist/components/data-display/Table/Table.module.css.cjs.map +1 -0
  323. package/dist/components/data-display/Table/Table.module.css.js +68 -0
  324. package/dist/components/data-display/Table/Table.module.css.js.map +1 -0
  325. package/dist/components/data-display/Tag/Tag.cjs +2 -0
  326. package/dist/components/data-display/Tag/Tag.cjs.map +1 -0
  327. package/dist/components/data-display/Tag/Tag.js +50 -0
  328. package/dist/components/data-display/Tag/Tag.js.map +1 -0
  329. package/dist/components/data-display/Tag/Tag.module.css.cjs +2 -0
  330. package/dist/components/data-display/Tag/Tag.module.css.cjs.map +1 -0
  331. package/dist/components/data-display/Tag/Tag.module.css.js +22 -0
  332. package/dist/components/data-display/Tag/Tag.module.css.js.map +1 -0
  333. package/dist/components/data-display/Timeline/Timeline.cjs +2 -0
  334. package/dist/components/data-display/Timeline/Timeline.cjs.map +1 -0
  335. package/dist/components/data-display/Timeline/Timeline.js +31 -0
  336. package/dist/components/data-display/Timeline/Timeline.js.map +1 -0
  337. package/dist/components/data-display/Timeline/Timeline.module.css.cjs +2 -0
  338. package/dist/components/data-display/Timeline/Timeline.module.css.cjs.map +1 -0
  339. package/dist/components/data-display/Timeline/Timeline.module.css.js +30 -0
  340. package/dist/components/data-display/Timeline/Timeline.module.css.js.map +1 -0
  341. package/dist/components/feedback/Alert/Alert.cjs +2 -0
  342. package/dist/components/feedback/Alert/Alert.cjs.map +1 -0
  343. package/dist/components/feedback/Alert/Alert.js +13 -0
  344. package/dist/components/feedback/Alert/Alert.js.map +1 -0
  345. package/dist/components/feedback/Alert/Alert.module.css.cjs +2 -0
  346. package/dist/components/feedback/Alert/Alert.module.css.cjs.map +1 -0
  347. package/dist/components/feedback/Alert/Alert.module.css.js +20 -0
  348. package/dist/components/feedback/Alert/Alert.module.css.js.map +1 -0
  349. package/dist/components/feedback/EmptyState/EmptyState.cjs +2 -0
  350. package/dist/components/feedback/EmptyState/EmptyState.cjs.map +1 -0
  351. package/dist/components/feedback/EmptyState/EmptyState.js +49 -0
  352. package/dist/components/feedback/EmptyState/EmptyState.js.map +1 -0
  353. package/dist/components/feedback/EmptyState/EmptyState.module.css.cjs +2 -0
  354. package/dist/components/feedback/EmptyState/EmptyState.module.css.cjs.map +1 -0
  355. package/dist/components/feedback/EmptyState/EmptyState.module.css.js +36 -0
  356. package/dist/components/feedback/EmptyState/EmptyState.module.css.js.map +1 -0
  357. package/dist/components/feedback/Progress/Progress.cjs +2 -0
  358. package/dist/components/feedback/Progress/Progress.cjs.map +1 -0
  359. package/dist/components/feedback/Progress/Progress.js +34 -0
  360. package/dist/components/feedback/Progress/Progress.js.map +1 -0
  361. package/dist/components/feedback/Progress/Progress.module.css.cjs +2 -0
  362. package/dist/components/feedback/Progress/Progress.module.css.cjs.map +1 -0
  363. package/dist/components/feedback/Progress/Progress.module.css.js +21 -0
  364. package/dist/components/feedback/Progress/Progress.module.css.js.map +1 -0
  365. package/dist/components/feedback/Skeleton/Skeleton.cjs +2 -0
  366. package/dist/components/feedback/Skeleton/Skeleton.cjs.map +1 -0
  367. package/dist/components/feedback/Skeleton/Skeleton.js +17 -0
  368. package/dist/components/feedback/Skeleton/Skeleton.js.map +1 -0
  369. package/dist/components/feedback/Skeleton/Skeleton.module.css.cjs +2 -0
  370. package/dist/components/feedback/Skeleton/Skeleton.module.css.cjs.map +1 -0
  371. package/dist/components/feedback/Skeleton/Skeleton.module.css.js +15 -0
  372. package/dist/components/feedback/Skeleton/Skeleton.module.css.js.map +1 -0
  373. package/dist/components/feedback/Spinner/Spinner.cjs +2 -0
  374. package/dist/components/feedback/Spinner/Spinner.cjs.map +1 -0
  375. package/dist/components/feedback/Spinner/Spinner.js +10 -0
  376. package/dist/components/feedback/Spinner/Spinner.js.map +1 -0
  377. package/dist/components/feedback/Spinner/Spinner.module.css.cjs +2 -0
  378. package/dist/components/feedback/Spinner/Spinner.module.css.cjs.map +1 -0
  379. package/dist/components/feedback/Spinner/Spinner.module.css.js +15 -0
  380. package/dist/components/feedback/Spinner/Spinner.module.css.js.map +1 -0
  381. package/dist/components/feedback/Toast/Toast.module.css.cjs +2 -0
  382. package/dist/components/feedback/Toast/Toast.module.css.cjs.map +1 -0
  383. package/dist/components/feedback/Toast/Toast.module.css.js +31 -0
  384. package/dist/components/feedback/Toast/Toast.module.css.js.map +1 -0
  385. package/dist/components/feedback/Toast/ToastRegion.cjs +2 -0
  386. package/dist/components/feedback/Toast/ToastRegion.cjs.map +1 -0
  387. package/dist/components/feedback/Toast/ToastRegion.js +62 -0
  388. package/dist/components/feedback/Toast/ToastRegion.js.map +1 -0
  389. package/dist/components/feedback/Toast/toastStore.cjs +2 -0
  390. package/dist/components/feedback/Toast/toastStore.cjs.map +1 -0
  391. package/dist/components/feedback/Toast/toastStore.js +33 -0
  392. package/dist/components/feedback/Toast/toastStore.js.map +1 -0
  393. package/dist/components/forms/Checkbox/Checkbox.cjs +2 -0
  394. package/dist/components/forms/Checkbox/Checkbox.cjs.map +1 -0
  395. package/dist/components/forms/Checkbox/Checkbox.js +57 -0
  396. package/dist/components/forms/Checkbox/Checkbox.js.map +1 -0
  397. package/dist/components/forms/Checkbox/Checkbox.module.css.cjs +2 -0
  398. package/dist/components/forms/Checkbox/Checkbox.module.css.cjs.map +1 -0
  399. package/dist/components/forms/Checkbox/Checkbox.module.css.js +20 -0
  400. package/dist/components/forms/Checkbox/Checkbox.module.css.js.map +1 -0
  401. package/dist/components/forms/CheckboxGroup/CheckboxGroup.cjs +2 -0
  402. package/dist/components/forms/CheckboxGroup/CheckboxGroup.cjs.map +1 -0
  403. package/dist/components/forms/CheckboxGroup/CheckboxGroup.js +54 -0
  404. package/dist/components/forms/CheckboxGroup/CheckboxGroup.js.map +1 -0
  405. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.cjs +2 -0
  406. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.cjs.map +1 -0
  407. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.js +22 -0
  408. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.js.map +1 -0
  409. package/dist/components/forms/ColorPicker/ColorPicker.cjs +2 -0
  410. package/dist/components/forms/ColorPicker/ColorPicker.cjs.map +1 -0
  411. package/dist/components/forms/ColorPicker/ColorPicker.js +57 -0
  412. package/dist/components/forms/ColorPicker/ColorPicker.js.map +1 -0
  413. package/dist/components/forms/ColorPicker/ColorPicker.module.css.cjs +2 -0
  414. package/dist/components/forms/ColorPicker/ColorPicker.module.css.cjs.map +1 -0
  415. package/dist/components/forms/ColorPicker/ColorPicker.module.css.js +22 -0
  416. package/dist/components/forms/ColorPicker/ColorPicker.module.css.js.map +1 -0
  417. package/dist/components/forms/ComboBox/ComboBox.cjs +3 -0
  418. package/dist/components/forms/ComboBox/ComboBox.cjs.map +1 -0
  419. package/dist/components/forms/ComboBox/ComboBox.js +223 -0
  420. package/dist/components/forms/ComboBox/ComboBox.js.map +1 -0
  421. package/dist/components/forms/ComboBox/ComboBox.module.css.cjs +2 -0
  422. package/dist/components/forms/ComboBox/ComboBox.module.css.cjs.map +1 -0
  423. package/dist/components/forms/ComboBox/ComboBox.module.css.js +28 -0
  424. package/dist/components/forms/ComboBox/ComboBox.module.css.js.map +1 -0
  425. package/dist/components/forms/DatePicker/Calendar.cjs +2 -0
  426. package/dist/components/forms/DatePicker/Calendar.cjs.map +1 -0
  427. package/dist/components/forms/DatePicker/Calendar.js +86 -0
  428. package/dist/components/forms/DatePicker/Calendar.js.map +1 -0
  429. package/dist/components/forms/DatePicker/DatePicker.cjs +2 -0
  430. package/dist/components/forms/DatePicker/DatePicker.cjs.map +1 -0
  431. package/dist/components/forms/DatePicker/DatePicker.js +217 -0
  432. package/dist/components/forms/DatePicker/DatePicker.js.map +1 -0
  433. package/dist/components/forms/DatePicker/DatePicker.module.css.cjs +2 -0
  434. package/dist/components/forms/DatePicker/DatePicker.module.css.cjs.map +1 -0
  435. package/dist/components/forms/DatePicker/DatePicker.module.css.js +44 -0
  436. package/dist/components/forms/DatePicker/DatePicker.module.css.js.map +1 -0
  437. package/dist/components/forms/DatePicker/iso.cjs +2 -0
  438. package/dist/components/forms/DatePicker/iso.cjs.map +1 -0
  439. package/dist/components/forms/DatePicker/iso.js +18 -0
  440. package/dist/components/forms/DatePicker/iso.js.map +1 -0
  441. package/dist/components/forms/DateTimePicker/DateTimePicker.cjs +2 -0
  442. package/dist/components/forms/DateTimePicker/DateTimePicker.cjs.map +1 -0
  443. package/dist/components/forms/DateTimePicker/DateTimePicker.js +241 -0
  444. package/dist/components/forms/DateTimePicker/DateTimePicker.js.map +1 -0
  445. package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.cjs +2 -0
  446. package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.cjs.map +1 -0
  447. package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.js +26 -0
  448. package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.js.map +1 -0
  449. package/dist/components/forms/Field/Field.cjs +2 -0
  450. package/dist/components/forms/Field/Field.cjs.map +1 -0
  451. package/dist/components/forms/Field/Field.js +35 -0
  452. package/dist/components/forms/Field/Field.js.map +1 -0
  453. package/dist/components/forms/Field/Field.module.css.cjs +2 -0
  454. package/dist/components/forms/Field/Field.module.css.cjs.map +1 -0
  455. package/dist/components/forms/Field/Field.module.css.js +22 -0
  456. package/dist/components/forms/Field/Field.module.css.js.map +1 -0
  457. package/dist/components/forms/Field/FormValue.cjs +2 -0
  458. package/dist/components/forms/Field/FormValue.cjs.map +1 -0
  459. package/dist/components/forms/Field/FormValue.js +24 -0
  460. package/dist/components/forms/Field/FormValue.js.map +1 -0
  461. package/dist/components/forms/FileUpload/FileUpload.cjs +2 -0
  462. package/dist/components/forms/FileUpload/FileUpload.cjs.map +1 -0
  463. package/dist/components/forms/FileUpload/FileUpload.js +142 -0
  464. package/dist/components/forms/FileUpload/FileUpload.js.map +1 -0
  465. package/dist/components/forms/FileUpload/FileUpload.module.css.cjs +2 -0
  466. package/dist/components/forms/FileUpload/FileUpload.module.css.cjs.map +1 -0
  467. package/dist/components/forms/FileUpload/FileUpload.module.css.js +46 -0
  468. package/dist/components/forms/FileUpload/FileUpload.module.css.js.map +1 -0
  469. package/dist/components/forms/InputCurrency/InputCurrency.cjs +2 -0
  470. package/dist/components/forms/InputCurrency/InputCurrency.cjs.map +1 -0
  471. package/dist/components/forms/InputCurrency/InputCurrency.js +41 -0
  472. package/dist/components/forms/InputCurrency/InputCurrency.js.map +1 -0
  473. package/dist/components/forms/InputNumber/InputNumber.cjs +2 -0
  474. package/dist/components/forms/InputNumber/InputNumber.cjs.map +1 -0
  475. package/dist/components/forms/InputNumber/InputNumber.js +39 -0
  476. package/dist/components/forms/InputNumber/InputNumber.js.map +1 -0
  477. package/dist/components/forms/InputPassword/InputPassword.cjs +2 -0
  478. package/dist/components/forms/InputPassword/InputPassword.cjs.map +1 -0
  479. package/dist/components/forms/InputPassword/InputPassword.js +110 -0
  480. package/dist/components/forms/InputPassword/InputPassword.js.map +1 -0
  481. package/dist/components/forms/InputPassword/InputPassword.module.css.cjs +2 -0
  482. package/dist/components/forms/InputPassword/InputPassword.module.css.cjs.map +1 -0
  483. package/dist/components/forms/InputPassword/InputPassword.module.css.js +18 -0
  484. package/dist/components/forms/InputPassword/InputPassword.module.css.js.map +1 -0
  485. package/dist/components/forms/InputText/InputText.cjs +2 -0
  486. package/dist/components/forms/InputText/InputText.cjs.map +1 -0
  487. package/dist/components/forms/InputText/InputText.js +70 -0
  488. package/dist/components/forms/InputText/InputText.js.map +1 -0
  489. package/dist/components/forms/InputText/InputText.module.css.cjs +2 -0
  490. package/dist/components/forms/InputText/InputText.module.css.cjs.map +1 -0
  491. package/dist/components/forms/InputText/InputText.module.css.js +14 -0
  492. package/dist/components/forms/InputText/InputText.module.css.js.map +1 -0
  493. package/dist/components/forms/Label/Label.cjs +2 -0
  494. package/dist/components/forms/Label/Label.cjs.map +1 -0
  495. package/dist/components/forms/Label/Label.js +13 -0
  496. package/dist/components/forms/Label/Label.js.map +1 -0
  497. package/dist/components/forms/Label/Label.module.css.cjs +2 -0
  498. package/dist/components/forms/Label/Label.module.css.cjs.map +1 -0
  499. package/dist/components/forms/Label/Label.module.css.js +10 -0
  500. package/dist/components/forms/Label/Label.module.css.js.map +1 -0
  501. package/dist/components/forms/RadioGroup/Radio.cjs +2 -0
  502. package/dist/components/forms/RadioGroup/Radio.cjs.map +1 -0
  503. package/dist/components/forms/RadioGroup/Radio.js +43 -0
  504. package/dist/components/forms/RadioGroup/Radio.js.map +1 -0
  505. package/dist/components/forms/RadioGroup/RadioGroup.cjs +2 -0
  506. package/dist/components/forms/RadioGroup/RadioGroup.cjs.map +1 -0
  507. package/dist/components/forms/RadioGroup/RadioGroup.js +58 -0
  508. package/dist/components/forms/RadioGroup/RadioGroup.js.map +1 -0
  509. package/dist/components/forms/RadioGroup/RadioGroup.module.css.cjs +2 -0
  510. package/dist/components/forms/RadioGroup/RadioGroup.module.css.cjs.map +1 -0
  511. package/dist/components/forms/RadioGroup/RadioGroup.module.css.js +26 -0
  512. package/dist/components/forms/RadioGroup/RadioGroup.module.css.js.map +1 -0
  513. package/dist/components/forms/SegmentedControl/SegmentedControl.cjs +2 -0
  514. package/dist/components/forms/SegmentedControl/SegmentedControl.cjs.map +1 -0
  515. package/dist/components/forms/SegmentedControl/SegmentedControl.js +52 -0
  516. package/dist/components/forms/SegmentedControl/SegmentedControl.js.map +1 -0
  517. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.cjs +2 -0
  518. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.cjs.map +1 -0
  519. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.js +22 -0
  520. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.js.map +1 -0
  521. package/dist/components/forms/Select/Select.cjs +2 -0
  522. package/dist/components/forms/Select/Select.cjs.map +1 -0
  523. package/dist/components/forms/Select/Select.js +191 -0
  524. package/dist/components/forms/Select/Select.js.map +1 -0
  525. package/dist/components/forms/Select/Select.module.css.cjs +2 -0
  526. package/dist/components/forms/Select/Select.module.css.cjs.map +1 -0
  527. package/dist/components/forms/Select/Select.module.css.js +22 -0
  528. package/dist/components/forms/Select/Select.module.css.js.map +1 -0
  529. package/dist/components/forms/Switch/Switch.cjs +2 -0
  530. package/dist/components/forms/Switch/Switch.cjs.map +1 -0
  531. package/dist/components/forms/Switch/Switch.js +39 -0
  532. package/dist/components/forms/Switch/Switch.js.map +1 -0
  533. package/dist/components/forms/Switch/Switch.module.css.cjs +2 -0
  534. package/dist/components/forms/Switch/Switch.module.css.cjs.map +1 -0
  535. package/dist/components/forms/Switch/Switch.module.css.js +20 -0
  536. package/dist/components/forms/Switch/Switch.module.css.js.map +1 -0
  537. package/dist/components/forms/Textarea/Textarea.cjs +2 -0
  538. package/dist/components/forms/Textarea/Textarea.cjs.map +1 -0
  539. package/dist/components/forms/Textarea/Textarea.js +64 -0
  540. package/dist/components/forms/Textarea/Textarea.js.map +1 -0
  541. package/dist/components/forms/Textarea/Textarea.module.css.cjs +2 -0
  542. package/dist/components/forms/Textarea/Textarea.module.css.cjs.map +1 -0
  543. package/dist/components/forms/Textarea/Textarea.module.css.js +14 -0
  544. package/dist/components/forms/Textarea/Textarea.module.css.js.map +1 -0
  545. package/dist/components/forms/TimePicker/TimePicker.cjs +2 -0
  546. package/dist/components/forms/TimePicker/TimePicker.cjs.map +1 -0
  547. package/dist/components/forms/TimePicker/TimePicker.js +176 -0
  548. package/dist/components/forms/TimePicker/TimePicker.js.map +1 -0
  549. package/dist/components/forms/TimePicker/TimePicker.module.css.cjs +2 -0
  550. package/dist/components/forms/TimePicker/TimePicker.module.css.cjs.map +1 -0
  551. package/dist/components/forms/TimePicker/TimePicker.module.css.js +26 -0
  552. package/dist/components/forms/TimePicker/TimePicker.module.css.js.map +1 -0
  553. package/dist/components/forms/TimePicker/TimeSlots.cjs +2 -0
  554. package/dist/components/forms/TimePicker/TimeSlots.cjs.map +1 -0
  555. package/dist/components/forms/TimePicker/TimeSlots.js +81 -0
  556. package/dist/components/forms/TimePicker/TimeSlots.js.map +1 -0
  557. package/dist/components/icons/Icon.cjs +2 -0
  558. package/dist/components/icons/Icon.cjs.map +1 -0
  559. package/dist/components/icons/Icon.js +24 -0
  560. package/dist/components/icons/Icon.js.map +1 -0
  561. package/dist/components/icons/icons.cjs +2 -0
  562. package/dist/components/icons/icons.cjs.map +1 -0
  563. package/dist/components/icons/icons.js +274 -0
  564. package/dist/components/icons/icons.js.map +1 -0
  565. package/dist/components/navigation/Breadcrumb/Breadcrumb.cjs +2 -0
  566. package/dist/components/navigation/Breadcrumb/Breadcrumb.cjs.map +1 -0
  567. package/dist/components/navigation/Breadcrumb/Breadcrumb.js +22 -0
  568. package/dist/components/navigation/Breadcrumb/Breadcrumb.js.map +1 -0
  569. package/dist/components/navigation/Breadcrumb/Breadcrumb.module.css.cjs +2 -0
  570. package/dist/components/navigation/Breadcrumb/Breadcrumb.module.css.cjs.map +1 -0
  571. package/dist/components/navigation/Breadcrumb/Breadcrumb.module.css.js +16 -0
  572. package/dist/components/navigation/Breadcrumb/Breadcrumb.module.css.js.map +1 -0
  573. package/dist/components/navigation/Pagination/Pagination.cjs +2 -0
  574. package/dist/components/navigation/Pagination/Pagination.cjs.map +1 -0
  575. package/dist/components/navigation/Pagination/Pagination.js +70 -0
  576. package/dist/components/navigation/Pagination/Pagination.js.map +1 -0
  577. package/dist/components/navigation/Pagination/Pagination.module.css.cjs +2 -0
  578. package/dist/components/navigation/Pagination/Pagination.module.css.cjs.map +1 -0
  579. package/dist/components/navigation/Pagination/Pagination.module.css.js +18 -0
  580. package/dist/components/navigation/Pagination/Pagination.module.css.js.map +1 -0
  581. package/dist/components/navigation/SkipLink/SkipLink.cjs +2 -0
  582. package/dist/components/navigation/SkipLink/SkipLink.cjs.map +1 -0
  583. package/dist/components/navigation/SkipLink/SkipLink.js +9 -0
  584. package/dist/components/navigation/SkipLink/SkipLink.js.map +1 -0
  585. package/dist/components/navigation/SkipLink/SkipLink.module.css.cjs +2 -0
  586. package/dist/components/navigation/SkipLink/SkipLink.module.css.cjs.map +1 -0
  587. package/dist/components/navigation/SkipLink/SkipLink.module.css.js +8 -0
  588. package/dist/components/navigation/SkipLink/SkipLink.module.css.js.map +1 -0
  589. package/dist/components/navigation/Steps/Steps.cjs +2 -0
  590. package/dist/components/navigation/Steps/Steps.cjs.map +1 -0
  591. package/dist/components/navigation/Steps/Steps.js +30 -0
  592. package/dist/components/navigation/Steps/Steps.js.map +1 -0
  593. package/dist/components/navigation/Steps/Steps.module.css.cjs +2 -0
  594. package/dist/components/navigation/Steps/Steps.module.css.cjs.map +1 -0
  595. package/dist/components/navigation/Steps/Steps.module.css.js +26 -0
  596. package/dist/components/navigation/Steps/Steps.module.css.js.map +1 -0
  597. package/dist/components/navigation/Tabs/Tabs.cjs +2 -0
  598. package/dist/components/navigation/Tabs/Tabs.cjs.map +1 -0
  599. package/dist/components/navigation/Tabs/Tabs.js +105 -0
  600. package/dist/components/navigation/Tabs/Tabs.js.map +1 -0
  601. package/dist/components/navigation/Tabs/Tabs.module.css.cjs +2 -0
  602. package/dist/components/navigation/Tabs/Tabs.module.css.cjs.map +1 -0
  603. package/dist/components/navigation/Tabs/Tabs.module.css.js +24 -0
  604. package/dist/components/navigation/Tabs/Tabs.module.css.js.map +1 -0
  605. package/dist/components/overlays/Dialog/Dialog.cjs +2 -0
  606. package/dist/components/overlays/Dialog/Dialog.cjs.map +1 -0
  607. package/dist/components/overlays/Dialog/Dialog.js +17 -0
  608. package/dist/components/overlays/Dialog/Dialog.js.map +1 -0
  609. package/dist/components/overlays/Dialog/Dialog.module.css.cjs +2 -0
  610. package/dist/components/overlays/Dialog/Dialog.module.css.cjs.map +1 -0
  611. package/dist/components/overlays/Dialog/Dialog.module.css.js +36 -0
  612. package/dist/components/overlays/Dialog/Dialog.module.css.js.map +1 -0
  613. package/dist/components/overlays/Dialog/DialogFrame.cjs +2 -0
  614. package/dist/components/overlays/Dialog/DialogFrame.cjs.map +1 -0
  615. package/dist/components/overlays/Dialog/DialogFrame.js +65 -0
  616. package/dist/components/overlays/Dialog/DialogFrame.js.map +1 -0
  617. package/dist/components/overlays/Drawer/Drawer.cjs +2 -0
  618. package/dist/components/overlays/Drawer/Drawer.cjs.map +1 -0
  619. package/dist/components/overlays/Drawer/Drawer.js +17 -0
  620. package/dist/components/overlays/Drawer/Drawer.js.map +1 -0
  621. package/dist/components/overlays/Drawer/Drawer.module.css.cjs +2 -0
  622. package/dist/components/overlays/Drawer/Drawer.module.css.cjs.map +1 -0
  623. package/dist/components/overlays/Drawer/Drawer.module.css.js +23 -0
  624. package/dist/components/overlays/Drawer/Drawer.module.css.js.map +1 -0
  625. package/dist/components/overlays/Menu/Menu.cjs +2 -0
  626. package/dist/components/overlays/Menu/Menu.cjs.map +1 -0
  627. package/dist/components/overlays/Menu/Menu.js +156 -0
  628. package/dist/components/overlays/Menu/Menu.js.map +1 -0
  629. package/dist/components/overlays/Menu/Menu.module.css.cjs +2 -0
  630. package/dist/components/overlays/Menu/Menu.module.css.cjs.map +1 -0
  631. package/dist/components/overlays/Menu/Menu.module.css.js +28 -0
  632. package/dist/components/overlays/Menu/Menu.module.css.js.map +1 -0
  633. package/dist/components/overlays/Popover/Popover.cjs +2 -0
  634. package/dist/components/overlays/Popover/Popover.cjs.map +1 -0
  635. package/dist/components/overlays/Popover/Popover.js +59 -0
  636. package/dist/components/overlays/Popover/Popover.js.map +1 -0
  637. package/dist/components/overlays/Popover/Popover.module.css.cjs +2 -0
  638. package/dist/components/overlays/Popover/Popover.module.css.cjs.map +1 -0
  639. package/dist/components/overlays/Popover/Popover.module.css.js +8 -0
  640. package/dist/components/overlays/Popover/Popover.module.css.js.map +1 -0
  641. package/dist/components/overlays/Tooltip/Tooltip.cjs +2 -0
  642. package/dist/components/overlays/Tooltip/Tooltip.cjs.map +1 -0
  643. package/dist/components/overlays/Tooltip/Tooltip.js +84 -0
  644. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -0
  645. package/dist/components/overlays/Tooltip/Tooltip.module.css.cjs +2 -0
  646. package/dist/components/overlays/Tooltip/Tooltip.module.css.cjs.map +1 -0
  647. package/dist/components/overlays/Tooltip/Tooltip.module.css.js +8 -0
  648. package/dist/components/overlays/Tooltip/Tooltip.module.css.js.map +1 -0
  649. package/dist/design-system.css +1 -1
  650. package/dist/hooks/useCalendar/calendar.cjs +2 -0
  651. package/dist/hooks/useCalendar/calendar.cjs.map +1 -0
  652. package/dist/hooks/useCalendar/calendar.js +56 -0
  653. package/dist/hooks/useCalendar/calendar.js.map +1 -0
  654. package/dist/hooks/useCalendar/useCalendar.cjs +2 -0
  655. package/dist/hooks/useCalendar/useCalendar.cjs.map +1 -0
  656. package/dist/hooks/useCalendar/useCalendar.js +48 -0
  657. package/dist/hooks/useCalendar/useCalendar.js.map +1 -0
  658. package/dist/hooks/useCharacterCount/useCharacterCount.cjs +2 -0
  659. package/dist/hooks/useCharacterCount/useCharacterCount.cjs.map +1 -0
  660. package/dist/hooks/useCharacterCount/useCharacterCount.js +27 -0
  661. package/dist/hooks/useCharacterCount/useCharacterCount.js.map +1 -0
  662. package/dist/hooks/useDecimalInput.cjs +2 -0
  663. package/dist/hooks/useDecimalInput.cjs.map +1 -0
  664. package/dist/hooks/useDecimalInput.js +17 -0
  665. package/dist/hooks/useDecimalInput.js.map +1 -0
  666. package/dist/hooks/useFormReset.cjs +2 -0
  667. package/dist/hooks/useFormReset.cjs.map +1 -0
  668. package/dist/hooks/useFormReset.js +16 -0
  669. package/dist/hooks/useFormReset.js.map +1 -0
  670. package/dist/hooks/useMergedRefs.cjs +2 -0
  671. package/dist/hooks/useMergedRefs.cjs.map +1 -0
  672. package/dist/hooks/useMergedRefs.js +24 -0
  673. package/dist/hooks/useMergedRefs.js.map +1 -0
  674. package/dist/hooks/useSelection/selection.cjs +2 -0
  675. package/dist/hooks/useSelection/selection.cjs.map +1 -0
  676. package/dist/hooks/useSelection/selection.js +78 -0
  677. package/dist/hooks/useSelection/selection.js.map +1 -0
  678. package/dist/hooks/useSelection/useSelection.cjs +2 -0
  679. package/dist/hooks/useSelection/useSelection.cjs.map +1 -0
  680. package/dist/hooks/useSelection/useSelection.js +68 -0
  681. package/dist/hooks/useSelection/useSelection.js.map +1 -0
  682. package/dist/index.cjs +2 -0
  683. package/dist/index.cjs.map +1 -0
  684. package/dist/index.js +193 -0
  685. package/dist/index.js.map +1 -0
  686. package/dist/types/components/actions/ButtonIcon/ButtonIcon.d.ts +12 -0
  687. package/dist/types/components/actions/ButtonIcon/index.d.ts +2 -0
  688. package/dist/types/components/actions/ButtonTile/ButtonTile.d.ts +14 -0
  689. package/dist/types/components/actions/ButtonTile/index.d.ts +2 -0
  690. package/dist/types/components/actions/Toolbar/Toolbar.d.ts +27 -0
  691. package/dist/types/components/actions/Toolbar/index.d.ts +2 -0
  692. package/dist/types/components/charts/ChartArea/ChartArea.d.ts +15 -4
  693. package/dist/types/components/charts/ChartBar/ChartBar.d.ts +11 -4
  694. package/dist/types/components/charts/ChartCombo/ChartCombo.d.ts +16 -4
  695. package/dist/types/components/charts/ChartDonut/ChartDonut.d.ts +5 -1
  696. package/dist/types/components/charts/ChartLine/ChartLine.d.ts +15 -4
  697. package/dist/types/components/charts/ChartPie/ChartPie.d.ts +5 -1
  698. package/dist/types/components/charts/ChartRadial/ChartRadial.d.ts +5 -1
  699. package/dist/types/components/charts/ChartSankey/ChartSankey.d.ts +5 -1
  700. package/dist/types/components/charts/ChartScatter/ChartScatter.d.ts +7 -1
  701. package/dist/types/components/charts/ChartSunburst/ChartSunburst.d.ts +11 -2
  702. package/dist/types/components/charts/ChartTooltip/ChartTooltip.d.ts +2 -0
  703. package/dist/types/components/charts/ChartTreemap/ChartTreemap.d.ts +11 -2
  704. package/dist/types/components/charts/ChartWaterfall/ChartWaterfall.d.ts +8 -3
  705. package/dist/types/components/charts/core/CartesianFrame.d.ts +6 -1
  706. package/dist/types/components/charts/core/ChartFrame.d.ts +7 -1
  707. package/dist/types/components/charts/core/PointBands.d.ts +22 -0
  708. package/dist/types/components/charts/core/cartesianLayout.d.ts +10 -4
  709. package/dist/types/components/charts/core/hoverPath.d.ts +10 -0
  710. package/dist/types/components/charts/core/index.d.ts +13 -3
  711. package/dist/types/components/charts/core/pointLabels.d.ts +13 -0
  712. package/dist/types/components/charts/core/tooltips.d.ts +49 -0
  713. package/dist/types/components/charts/core/useCartesianLayout.d.ts +20 -0
  714. package/dist/types/components/charts/core/useSeriesToggle.d.ts +15 -1
  715. package/dist/types/components/data-display/Accordion/Accordion.d.ts +6 -1
  716. package/dist/types/components/data-display/Accordion/index.d.ts +1 -1
  717. package/dist/types/components/data-display/CodeBlock/CodeBlock.d.ts +16 -0
  718. package/dist/types/components/data-display/CodeBlock/index.d.ts +3 -0
  719. package/dist/types/components/data-display/CodeBlock/syntax.d.ts +15 -0
  720. package/dist/types/components/data-display/SortableList/SortableList.d.ts +22 -0
  721. package/dist/types/components/data-display/SortableList/index.d.ts +2 -0
  722. package/dist/types/components/data-display/Table/Table.d.ts +4 -2
  723. package/dist/types/components/data-display/Tag/Tag.d.ts +13 -0
  724. package/dist/types/components/data-display/Tag/index.d.ts +2 -0
  725. package/dist/types/components/data-display/Timeline/Timeline.d.ts +15 -0
  726. package/dist/types/components/data-display/Timeline/index.d.ts +2 -0
  727. package/dist/types/components/feedback/EmptyState/EmptyState.d.ts +14 -0
  728. package/dist/types/components/feedback/EmptyState/index.d.ts +2 -0
  729. package/dist/types/components/feedback/Skeleton/Skeleton.d.ts +13 -0
  730. package/dist/types/components/feedback/Skeleton/index.d.ts +2 -0
  731. package/dist/types/components/feedback/Toast/ToastRegion.d.ts +2 -0
  732. package/dist/types/components/feedback/Toast/index.d.ts +3 -0
  733. package/dist/types/components/feedback/Toast/toastStore.d.ts +24 -0
  734. package/dist/types/components/forms/CheckboxGroup/CheckboxGroup.d.ts +28 -0
  735. package/dist/types/components/forms/CheckboxGroup/index.d.ts +2 -0
  736. package/dist/types/components/forms/ColorPicker/ColorPicker.d.ts +26 -0
  737. package/dist/types/components/forms/ColorPicker/index.d.ts +2 -0
  738. package/dist/types/components/forms/Field/Field.d.ts +6 -2
  739. package/dist/types/components/forms/Field/index.d.ts +1 -1
  740. package/dist/types/components/forms/FileUpload/FileUpload.d.ts +37 -0
  741. package/dist/types/components/forms/FileUpload/index.d.ts +2 -0
  742. package/dist/types/components/forms/InputText/InputText.d.ts +4 -2
  743. package/dist/types/components/forms/SegmentedControl/SegmentedControl.d.ts +23 -0
  744. package/dist/types/components/forms/SegmentedControl/index.d.ts +2 -0
  745. package/dist/types/components/icons/icons.d.ts +31 -0
  746. package/dist/types/components/icons/index.d.ts +1 -1
  747. package/dist/types/components/navigation/SkipLink/SkipLink.d.ts +7 -0
  748. package/dist/types/components/navigation/SkipLink/index.d.ts +2 -0
  749. package/dist/types/components/navigation/Steps/Steps.d.ts +16 -0
  750. package/dist/types/components/navigation/Steps/index.d.ts +2 -0
  751. package/dist/types/components/navigation/Tabs/Tabs.d.ts +5 -1
  752. package/dist/types/components/overlays/Dialog/Dialog.d.ts +4 -2
  753. package/dist/types/components/overlays/Dialog/DialogFrame.d.ts +7 -0
  754. package/dist/types/components/overlays/Drawer/Drawer.d.ts +9 -0
  755. package/dist/types/components/overlays/Drawer/index.d.ts +2 -0
  756. package/dist/types/components/overlays/Menu/Menu.d.ts +16 -2
  757. package/dist/types/components/overlays/Menu/index.d.ts +1 -1
  758. package/dist/types/index.d.ts +41 -7
  759. package/dist/types/utils/formatters/formatarNumero.d.ts +6 -1
  760. package/dist/types/utils/formatters/formatarTamanhoDeArquivo.d.ts +7 -0
  761. package/dist/types/utils/formatters/index.d.ts +3 -1
  762. package/dist/utils/formatters/formatarData.cjs +2 -0
  763. package/dist/utils/formatters/formatarData.cjs.map +1 -0
  764. package/dist/utils/formatters/formatarData.js +32 -0
  765. package/dist/utils/formatters/formatarData.js.map +1 -0
  766. package/dist/utils/formatters/formatarEntradaData.cjs +2 -0
  767. package/dist/utils/formatters/formatarEntradaData.cjs.map +1 -0
  768. package/dist/utils/formatters/formatarEntradaData.js +22 -0
  769. package/dist/utils/formatters/formatarEntradaData.js.map +1 -0
  770. package/dist/utils/formatters/formatarEntradaDecimal.cjs +2 -0
  771. package/dist/utils/formatters/formatarEntradaDecimal.cjs.map +1 -0
  772. package/dist/utils/formatters/formatarEntradaDecimal.js +35 -0
  773. package/dist/utils/formatters/formatarEntradaDecimal.js.map +1 -0
  774. package/dist/utils/formatters/formatarEntradaHora.cjs +2 -0
  775. package/dist/utils/formatters/formatarEntradaHora.cjs.map +1 -0
  776. package/dist/utils/formatters/formatarEntradaHora.js +32 -0
  777. package/dist/utils/formatters/formatarEntradaHora.js.map +1 -0
  778. package/dist/utils/formatters/formatarEntradaMonetaria.cjs +2 -0
  779. package/dist/utils/formatters/formatarEntradaMonetaria.cjs.map +1 -0
  780. package/dist/utils/formatters/formatarEntradaMonetaria.js +17 -0
  781. package/dist/utils/formatters/formatarEntradaMonetaria.js.map +1 -0
  782. package/dist/utils/formatters/formatarNumero.cjs +2 -0
  783. package/dist/utils/formatters/formatarNumero.cjs.map +1 -0
  784. package/dist/utils/formatters/formatarNumero.js +53 -0
  785. package/dist/utils/formatters/formatarNumero.js.map +1 -0
  786. package/dist/utils/formatters/formatarTamanhoDeArquivo.cjs +2 -0
  787. package/dist/utils/formatters/formatarTamanhoDeArquivo.cjs.map +1 -0
  788. package/dist/utils/formatters/formatarTamanhoDeArquivo.js +17 -0
  789. package/dist/utils/formatters/formatarTamanhoDeArquivo.js.map +1 -0
  790. package/dist/utils/formatters/mascararPartes.cjs +2 -0
  791. package/dist/utils/formatters/mascararPartes.cjs.map +1 -0
  792. package/dist/utils/formatters/mascararPartes.js +17 -0
  793. package/dist/utils/formatters/mascararPartes.js.map +1 -0
  794. package/dist/utils/textSearch/textSearch.cjs +2 -0
  795. package/dist/utils/textSearch/textSearch.cjs.map +1 -0
  796. package/dist/utils/textSearch/textSearch.js +22 -0
  797. package/dist/utils/textSearch/textSearch.js.map +1 -0
  798. package/package.json +5 -5
  799. package/dist/plenus-design-system.cjs +0 -3
  800. package/dist/plenus-design-system.cjs.map +0 -1
  801. package/dist/plenus-design-system.es.js +0 -6387
  802. package/dist/plenus-design-system.es.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartSunburst.cjs","sources":["../../../../src/components/charts/ChartSunburst/ChartSunburst.tsx"],"sourcesContent":["import { useMemo, useState } from 'react';\nimport { hierarchy, partition, type HierarchyRectangularNode } from 'd3-hierarchy';\nimport {\n CHART_LABEL_BAND,\n CHART_LABEL_OFFSET,\n ChartFrame,\n VOLTA,\n arcAnchor,\n arcPath,\n hoverPath,\n pathTooltip,\n chartHeight,\n ringDiameter,\n truncateToWidth,\n useChartMetrics,\n useSeriesToggle,\n widestLabel,\n type ChartHeight,\n type ChartHoveredNode,\n type ChartLegendAlign,\n type ChartLegendPosition,\n} from '../core';\nimport { resolveSeriesColors, type SeriesAppearance } from '../palette';\nimport { formatarNumero } from '../../../utils/formatters';\nimport styles from './ChartSunburst.module.css';\n\nexport interface ChartSunburstNode extends SeriesAppearance {\n children?: readonly ChartSunburstNode[];\n label: string;\n value?: number;\n}\n\nexport interface ChartSunburstProps {\n accent?: string;\n defaultHiddenGroups?: readonly string[];\n emptyMessage?: string;\n formatPercent?: (ratio: number) => string;\n /** Formato dos valores no balao. Sem ele, vale o `formatValue`: o eixo pode sair compacto e o balao, exato. */\n formatTooltipValue?: (value: number) => string;\n formatValue?: (value: number) => string;\n height?: ChartHeight;\n hiddenGroups?: readonly string[];\n legend?: ChartLegendPosition;\n legendAlign?: ChartLegendAlign;\n nodes: readonly ChartSunburstNode[];\n onHiddenGroupsChange?: (hidden: readonly string[]) => void;\n /** Caminho ate o no sob o ponteiro, do grupo ao no, cada nivel com o valor somado, ou `null` ao sair. */\n onHoverNode?: (path: readonly ChartHoveredNode[] | null) => void;\n /** Folga entre dois aneis vizinhos. */\n ringGap?: number;\n /** Raio das pontas de cada arco. Sem valor, o token de raio pequeno. */\n sliceRadius?: number;\n showLabels?: boolean;\n /**\n * Balao com o caminho ate o no sob o ponteiro. Desligue para montar o proprio `ChartTooltip`\n * pela costura; sem balao nem costura, o no volta a ter o `<title>`.\n */\n showTooltip?: boolean;\n title: string;\n}\n\ntype Arco = HierarchyRectangularNode<ChartSunburstNode>;\n\n/** Arco menor que isso nao comporta rotulo nem conector legivel. */\nconst ANGULO_MINIMO_DO_ROTULO = 0.18;\nconst COMPRIMENTO_DO_CONECTOR = 14;\n/**\n * Rotulos de cada nivel da arvore declarada. Medir a banda antes de montar o\n * anel exige saber os rotulos antes, e o nivel mais profundo declarado e o\n * mesmo que o anel externo tera.\n */\nfunction rotulosPorNivel(\n nodes: readonly ChartSunburstNode[],\n nivel = 1,\n por = new Map<number, string[]>(),\n) {\n nodes.forEach((no) => {\n por.set(nivel, [...(por.get(nivel) ?? []), no.label]);\n\n if (no.children?.length) {\n rotulosPorNivel(no.children, nivel + 1, por);\n }\n });\n\n return por;\n}\n\n/**\n * Cada anel clareia sobre o anterior, e o filho nasce da cor do pai. Sem isso a\n * hierarquia sumiria: os aneis externos repetiriam a cor do nivel zero e nada\n * distinguiria um filho do outro.\n */\nfunction tomDoNivel(cor: string, profundidade: number) {\n if (profundidade <= 1) {\n return cor;\n }\n\n const clareamento = Math.min((profundidade - 1) * 22, 66);\n\n return `color-mix(in oklab, ${cor} ${100 - clareamento}%, var(--pl-color-surface))`;\n}\n\nexport function ChartSunburst({\n accent,\n defaultHiddenGroups,\n emptyMessage = 'Sem dados no período',\n formatPercent = (fracao) => `${Math.round(fracao * 100)}%`,\n formatTooltipValue,\n formatValue = formatarNumero,\n height = 320,\n hiddenGroups,\n legend = 'bottom',\n legendAlign,\n nodes,\n onHiddenGroupsChange,\n onHoverNode,\n ringGap = 2,\n showLabels = true,\n showTooltip = true,\n sliceRadius,\n title,\n}: ChartSunburstProps) {\n const { font, height: alturaMedida, radius: raioDoCanto, ref, width } = useChartMetrics();\n const { fillHeight, value: alturaDoDesenho } = chartHeight(height, alturaMedida);\n const { isHidden, toggle } = useSeriesToggle({\n defaultHiddenSeries: defaultHiddenGroups,\n hiddenSeries: hiddenGroups,\n onHiddenSeriesChange: onHiddenGroupsChange,\n });\n const [emFoco, setEmFoco] = useState<Arco | null>(null);\n\n // A cor sai da lista inteira, e nao das visiveis: desligar um grupo nao pode\n // repintar os demais.\n const coresDeNivelZero = useMemo(() => resolveSeriesColors(nodes, { accent }), [accent, nodes]);\n\n const visiveis = useMemo(\n () => nodes.filter((grupo) => !isHidden(grupo.label)),\n [isHidden, nodes],\n );\n\n // A banda dos rotulos e reservada antes do anel, medida pelo rotulo mais\n // largo do anel externo. Sem reservar, o rotulo era desenhado no que sobrasse\n // — quase nada nas laterais — e acabava cortado ate sumir.\n const rotulosExternos = useMemo(() => {\n const niveis = rotulosPorNivel(visiveis);\n const externo = Math.max(0, ...niveis.keys());\n\n return niveis.get(externo) ?? [];\n }, [visiveis]);\n\n const larguraDoRotulo = showLabels\n ? Math.min(widestLabel(rotulosExternos, font), width * CHART_LABEL_BAND)\n : 0;\n const banda = showLabels ? COMPRIMENTO_DO_CONECTOR * 2 + CHART_LABEL_OFFSET + larguraDoRotulo : 0;\n\n const diametro = ringDiameter(Math.max(width - banda * 2, 0), alturaDoDesenho);\n const raio = diametro / 2;\n\n const arcos = useMemo(() => {\n if (raio <= 0) {\n return [];\n }\n\n const arvore = hierarchy<ChartSunburstNode>({ children: visiveis, label: '' })\n .sum((no) => Math.max(no.value ?? 0, 0))\n .sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\n\n const repartir = partition<ChartSunburstNode>().size([VOLTA, raio]);\n\n return repartir(arvore)\n .descendants()\n .filter((no) => no.depth > 0);\n }, [raio, visiveis]);\n\n const profundidadeMaxima = arcos.reduce((maior, arco) => Math.max(maior, arco.depth), 0);\n const total = arcos\n .filter((arco) => arco.depth === 1)\n .reduce((soma, arco) => soma + (arco.value ?? 0), 0);\n\n // O arco guardado deixa de existir quando a arvore e remontada, num\n // redimensionamento por exemplo. Sem conferir, o foco perdido apagaria tudo.\n const foco = emFoco && arcos.includes(emFoco) ? emFoco : null;\n\n /**\n * Acende o arco sob o ponteiro e os que o originaram. O caminho ate a raiz e\n * o que explica de onde aquela fatia veio; os filhos dela nao explicam nada\n * sobre ela, entao ficam apagados junto com o resto.\n */\n function aceso(arco: Arco) {\n return foco === null || foco.ancestors().includes(arco);\n }\n\n function focar(arco: Arco | null) {\n setEmFoco(arco);\n onHoverNode?.(arco && hoverPath(arco));\n }\n\n function corDe(arco: Arco) {\n const raizDoRamo = arco.ancestors().find((ancestral) => ancestral.depth === 1)?.data;\n const base =\n raizDoRamo?.color ?? coresDeNivelZero[nodes.findIndex((no) => no.label === raizDoRamo?.label)];\n\n return tomDoNivel(base ?? 'var(--pl-chart-neutral)', arco.depth);\n }\n\n function descreverArco(arco: Arco) {\n const fracao = total > 0 ? (arco.value ?? 0) / total : 0;\n\n return `${arco.data.label}: ${formatValue(arco.value ?? 0)} (${formatPercent(fracao)})`;\n }\n\n return (\n <ChartFrame\n centerOrigin\n containerRef={ref}\n empty={nodes.length === 0}\n emptyMessage={emptyMessage}\n fillHeight={fillHeight}\n height={alturaDoDesenho}\n legend={nodes.map((grupo, indice) => ({\n color: coresDeNivelZero[indice],\n hidden: isHidden(grupo.label),\n label: grupo.label,\n }))}\n legendAlign={legendAlign}\n legendPosition={legend}\n onToggleSeries={toggle}\n swatch=\"dot\"\n title={title}\n tooltip={\n showTooltip\n ? pathTooltip({\n color: foco ? corDe(foco) : undefined,\n format: formatTooltipValue ?? formatValue,\n formatPercent,\n path: foco && hoverPath(foco),\n total,\n })\n : undefined\n }\n width={width}\n >\n {arcos.map((arco, indice) => (\n <path\n aria-label={descreverArco(arco)}\n className={`${styles.arc} ${aceso(arco) ? '' : styles.arcDim}`}\n d={arcPath({\n cornerRadius: sliceRadius ?? raioDoCanto,\n endAngle: arco.x1,\n innerRadius: arco.y0 + (arco.depth > 1 ? ringGap : 0),\n outerRadius: arco.y1,\n startAngle: arco.x0,\n })}\n fill={corDe(arco)}\n key={indice}\n onMouseEnter={() => focar(arco)}\n onMouseLeave={() => focar(null)}\n >\n {!showTooltip && !onHoverNode && <title>{descreverArco(arco)}</title>}\n </path>\n ))}\n\n {showLabels &&\n arcos\n .filter(\n (arco) => arco.depth === profundidadeMaxima && arco.x1 - arco.x0 >= ANGULO_MINIMO_DO_ROTULO,\n )\n .map((arco, indice) => {\n const angulos = { endAngle: arco.x1, startAngle: arco.x0 };\n const [xBorda, yBorda] = arcAnchor(angulos, arco.y1);\n const [xCotovelo, yCotovelo] = arcAnchor(angulos, arco.y1 + COMPRIMENTO_DO_CONECTOR);\n const paraDireita = xCotovelo >= 0;\n const xFim = xCotovelo + (paraDireita ? COMPRIMENTO_DO_CONECTOR : -COMPRIMENTO_DO_CONECTOR);\n\n return (\n <g className={styles.leader} key={indice}>\n <polyline\n className={styles.connector}\n points={`${xBorda},${yBorda} ${xCotovelo},${yCotovelo} ${xFim},${yCotovelo}`}\n />\n <text\n className={styles.label}\n dominantBaseline=\"middle\"\n textAnchor={paraDireita ? 'start' : 'end'}\n x={xFim + (paraDireita ? CHART_LABEL_OFFSET : -CHART_LABEL_OFFSET)}\n y={yCotovelo}\n >\n {truncateToWidth(arco.data.label, font, larguraDoRotulo)}\n </text>\n </g>\n );\n })}\n </ChartFrame>\n );\n}\n"],"names":["ANGULO_MINIMO_DO_ROTULO","COMPRIMENTO_DO_CONECTOR","rotulosPorNivel","nodes","nivel","por","no","_a","tomDoNivel","cor","profundidade","clareamento","ChartSunburst","accent","defaultHiddenGroups","emptyMessage","formatPercent","fracao","formatTooltipValue","formatValue","formatarNumero","height","hiddenGroups","legend","legendAlign","onHiddenGroupsChange","onHoverNode","ringGap","showLabels","showTooltip","sliceRadius","title","font","alturaMedida","raioDoCanto","ref","width","useChartMetrics","fillHeight","alturaDoDesenho","chartHeight","isHidden","toggle","useSeriesToggle","emFoco","setEmFoco","useState","coresDeNivelZero","useMemo","resolveSeriesColors","visiveis","grupo","rotulosExternos","niveis","externo","larguraDoRotulo","widestLabel","CHART_LABEL_BAND","banda","CHART_LABEL_OFFSET","raio","ringDiameter","arcos","arvore","hierarchy","a","b","partition","VOLTA","profundidadeMaxima","maior","arco","total","soma","foco","aceso","focar","hoverPath","corDe","raizDoRamo","ancestral","base","descreverArco","jsxs","ChartFrame","indice","pathTooltip","jsx","styles","arcPath","angulos","xBorda","yBorda","arcAnchor","xCotovelo","yCotovelo","paraDireita","xFim","truncateToWidth"],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ import { jsxs as k, jsx as x } from "react/jsx-runtime";
2
+ import { useState as at, useMemo as M } from "react";
3
+ import { hierarchy as st, partition as ct } from "d3-hierarchy";
4
+ import d from "./ChartSunburst.module.css.js";
5
+ import { useChartMetrics as ut } from "../core/useChartMetrics.js";
6
+ import { useSeriesToggle as mt } from "../core/useSeriesToggle.js";
7
+ import { resolveSeriesColors as dt } from "../palette/seriesColor.js";
8
+ import { widestLabel as ht, truncateToWidth as ft } from "../core/measureText.js";
9
+ import { CHART_LABEL_BAND as pt, CHART_LABEL_OFFSET as E, ringDiameter as gt } from "../core/spacing.js";
10
+ import { VOLTA as xt, arcPath as Mt, arcAnchor as H } from "../core/arcs.js";
11
+ import { ChartFrame as vt } from "../core/ChartFrame.js";
12
+ import { pathTooltip as bt } from "../core/tooltips.js";
13
+ import { hoverPath as U } from "../core/hoverPath.js";
14
+ import { formatarNumero as At } from "../../../utils/formatters/formatarNumero.js";
15
+ import { chartHeight as $t } from "../core/cartesianLayout.js";
16
+ const Ct = 0.18, v = 14;
17
+ function w(i, n = 1, o = /* @__PURE__ */ new Map()) {
18
+ return i.forEach((a) => {
19
+ var h;
20
+ o.set(n, [...o.get(n) ?? [], a.label]), (h = a.children) != null && h.length && w(a.children, n + 1, o);
21
+ }), o;
22
+ }
23
+ function Ot(i, n) {
24
+ if (n <= 1)
25
+ return i;
26
+ const o = Math.min((n - 1) * 22, 66);
27
+ return `color-mix(in oklab, ${i} ${100 - o}%, var(--pl-color-surface))`;
28
+ }
29
+ function Ut({
30
+ accent: i,
31
+ defaultHiddenGroups: n,
32
+ emptyMessage: o = "Sem dados no período",
33
+ formatPercent: a = (p) => `${Math.round(p * 100)}%`,
34
+ formatTooltipValue: h,
35
+ formatValue: _ = At,
36
+ height: G = 320,
37
+ hiddenGroups: W,
38
+ legend: Z = "bottom",
39
+ legendAlign: q,
40
+ nodes: l,
41
+ onHiddenGroupsChange: J,
42
+ onHoverNode: f,
43
+ ringGap: K = 2,
44
+ showLabels: b = !0,
45
+ showTooltip: N = !0,
46
+ sliceRadius: Q,
47
+ title: V
48
+ }) {
49
+ const { font: p, height: X, radius: Y, ref: z, width: A } = ut(), { fillHeight: tt, value: L } = $t(G, X), { isHidden: $, toggle: et } = mt({
50
+ defaultHiddenSeries: n,
51
+ hiddenSeries: W,
52
+ onHiddenSeriesChange: J
53
+ }), [C, rt] = at(null), R = M(() => dt(l, { accent: i }), [i, l]), g = M(
54
+ () => l.filter((t) => !$(t.label)),
55
+ [$, l]
56
+ ), nt = M(() => {
57
+ const t = w(g), e = Math.max(0, ...t.keys());
58
+ return t.get(e) ?? [];
59
+ }, [g]), B = b ? Math.min(ht(nt, p), A * pt) : 0, ot = b ? v * 2 + E + B : 0, O = gt(Math.max(A - ot * 2, 0), L) / 2, u = M(() => {
60
+ if (O <= 0)
61
+ return [];
62
+ const t = st({ children: g, label: "" }).sum((r) => Math.max(r.value ?? 0, 0)).sort((r, c) => (c.value ?? 0) - (r.value ?? 0));
63
+ return ct().size([xt, O])(t).descendants().filter((r) => r.depth > 0);
64
+ }, [O, g]), it = u.reduce((t, e) => Math.max(t, e.depth), 0), y = u.filter((t) => t.depth === 1).reduce((t, e) => t + (e.value ?? 0), 0), s = C && u.includes(C) ? C : null;
65
+ function lt(t) {
66
+ return s === null || s.ancestors().includes(t);
67
+ }
68
+ function F(t) {
69
+ rt(t), f == null || f(t && U(t));
70
+ }
71
+ function I(t) {
72
+ var c;
73
+ const e = (c = t.ancestors().find((m) => m.depth === 1)) == null ? void 0 : c.data, r = (e == null ? void 0 : e.color) ?? R[l.findIndex((m) => m.label === (e == null ? void 0 : e.label))];
74
+ return Ot(r ?? "var(--pl-chart-neutral)", t.depth);
75
+ }
76
+ function P(t) {
77
+ const e = y > 0 ? (t.value ?? 0) / y : 0;
78
+ return `${t.data.label}: ${_(t.value ?? 0)} (${a(e)})`;
79
+ }
80
+ return /* @__PURE__ */ k(
81
+ vt,
82
+ {
83
+ centerOrigin: !0,
84
+ containerRef: z,
85
+ empty: l.length === 0,
86
+ emptyMessage: o,
87
+ fillHeight: tt,
88
+ height: L,
89
+ legend: l.map((t, e) => ({
90
+ color: R[e],
91
+ hidden: $(t.label),
92
+ label: t.label
93
+ })),
94
+ legendAlign: q,
95
+ legendPosition: Z,
96
+ onToggleSeries: et,
97
+ swatch: "dot",
98
+ title: V,
99
+ tooltip: N ? bt({
100
+ color: s ? I(s) : void 0,
101
+ format: h ?? _,
102
+ formatPercent: a,
103
+ path: s && U(s),
104
+ total: y
105
+ }) : void 0,
106
+ width: A,
107
+ children: [
108
+ u.map((t, e) => /* @__PURE__ */ x(
109
+ "path",
110
+ {
111
+ "aria-label": P(t),
112
+ className: `${d.arc} ${lt(t) ? "" : d.arcDim}`,
113
+ d: Mt({
114
+ cornerRadius: Q ?? Y,
115
+ endAngle: t.x1,
116
+ innerRadius: t.y0 + (t.depth > 1 ? K : 0),
117
+ outerRadius: t.y1,
118
+ startAngle: t.x0
119
+ }),
120
+ fill: I(t),
121
+ onMouseEnter: () => F(t),
122
+ onMouseLeave: () => F(null),
123
+ children: !N && !f && /* @__PURE__ */ x("title", { children: P(t) })
124
+ },
125
+ e
126
+ )),
127
+ b && u.filter(
128
+ (t) => t.depth === it && t.x1 - t.x0 >= Ct
129
+ ).map((t, e) => {
130
+ const r = { endAngle: t.x1, startAngle: t.x0 }, [c, m] = H(r, t.y1), [D, S] = H(r, t.y1 + v), T = D >= 0, j = D + (T ? v : -v);
131
+ return /* @__PURE__ */ k("g", { className: d.leader, children: [
132
+ /* @__PURE__ */ x(
133
+ "polyline",
134
+ {
135
+ className: d.connector,
136
+ points: `${c},${m} ${D},${S} ${j},${S}`
137
+ }
138
+ ),
139
+ /* @__PURE__ */ x(
140
+ "text",
141
+ {
142
+ className: d.label,
143
+ dominantBaseline: "middle",
144
+ textAnchor: T ? "start" : "end",
145
+ x: j + (T ? E : -E),
146
+ y: S,
147
+ children: ft(t.data.label, p, B)
148
+ }
149
+ )
150
+ ] }, e);
151
+ })
152
+ ]
153
+ }
154
+ );
155
+ }
156
+ export {
157
+ Ut as ChartSunburst
158
+ };
159
+ //# sourceMappingURL=ChartSunburst.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartSunburst.js","sources":["../../../../src/components/charts/ChartSunburst/ChartSunburst.tsx"],"sourcesContent":["import { useMemo, useState } from 'react';\nimport { hierarchy, partition, type HierarchyRectangularNode } from 'd3-hierarchy';\nimport {\n CHART_LABEL_BAND,\n CHART_LABEL_OFFSET,\n ChartFrame,\n VOLTA,\n arcAnchor,\n arcPath,\n hoverPath,\n pathTooltip,\n chartHeight,\n ringDiameter,\n truncateToWidth,\n useChartMetrics,\n useSeriesToggle,\n widestLabel,\n type ChartHeight,\n type ChartHoveredNode,\n type ChartLegendAlign,\n type ChartLegendPosition,\n} from '../core';\nimport { resolveSeriesColors, type SeriesAppearance } from '../palette';\nimport { formatarNumero } from '../../../utils/formatters';\nimport styles from './ChartSunburst.module.css';\n\nexport interface ChartSunburstNode extends SeriesAppearance {\n children?: readonly ChartSunburstNode[];\n label: string;\n value?: number;\n}\n\nexport interface ChartSunburstProps {\n accent?: string;\n defaultHiddenGroups?: readonly string[];\n emptyMessage?: string;\n formatPercent?: (ratio: number) => string;\n /** Formato dos valores no balao. Sem ele, vale o `formatValue`: o eixo pode sair compacto e o balao, exato. */\n formatTooltipValue?: (value: number) => string;\n formatValue?: (value: number) => string;\n height?: ChartHeight;\n hiddenGroups?: readonly string[];\n legend?: ChartLegendPosition;\n legendAlign?: ChartLegendAlign;\n nodes: readonly ChartSunburstNode[];\n onHiddenGroupsChange?: (hidden: readonly string[]) => void;\n /** Caminho ate o no sob o ponteiro, do grupo ao no, cada nivel com o valor somado, ou `null` ao sair. */\n onHoverNode?: (path: readonly ChartHoveredNode[] | null) => void;\n /** Folga entre dois aneis vizinhos. */\n ringGap?: number;\n /** Raio das pontas de cada arco. Sem valor, o token de raio pequeno. */\n sliceRadius?: number;\n showLabels?: boolean;\n /**\n * Balao com o caminho ate o no sob o ponteiro. Desligue para montar o proprio `ChartTooltip`\n * pela costura; sem balao nem costura, o no volta a ter o `<title>`.\n */\n showTooltip?: boolean;\n title: string;\n}\n\ntype Arco = HierarchyRectangularNode<ChartSunburstNode>;\n\n/** Arco menor que isso nao comporta rotulo nem conector legivel. */\nconst ANGULO_MINIMO_DO_ROTULO = 0.18;\nconst COMPRIMENTO_DO_CONECTOR = 14;\n/**\n * Rotulos de cada nivel da arvore declarada. Medir a banda antes de montar o\n * anel exige saber os rotulos antes, e o nivel mais profundo declarado e o\n * mesmo que o anel externo tera.\n */\nfunction rotulosPorNivel(\n nodes: readonly ChartSunburstNode[],\n nivel = 1,\n por = new Map<number, string[]>(),\n) {\n nodes.forEach((no) => {\n por.set(nivel, [...(por.get(nivel) ?? []), no.label]);\n\n if (no.children?.length) {\n rotulosPorNivel(no.children, nivel + 1, por);\n }\n });\n\n return por;\n}\n\n/**\n * Cada anel clareia sobre o anterior, e o filho nasce da cor do pai. Sem isso a\n * hierarquia sumiria: os aneis externos repetiriam a cor do nivel zero e nada\n * distinguiria um filho do outro.\n */\nfunction tomDoNivel(cor: string, profundidade: number) {\n if (profundidade <= 1) {\n return cor;\n }\n\n const clareamento = Math.min((profundidade - 1) * 22, 66);\n\n return `color-mix(in oklab, ${cor} ${100 - clareamento}%, var(--pl-color-surface))`;\n}\n\nexport function ChartSunburst({\n accent,\n defaultHiddenGroups,\n emptyMessage = 'Sem dados no período',\n formatPercent = (fracao) => `${Math.round(fracao * 100)}%`,\n formatTooltipValue,\n formatValue = formatarNumero,\n height = 320,\n hiddenGroups,\n legend = 'bottom',\n legendAlign,\n nodes,\n onHiddenGroupsChange,\n onHoverNode,\n ringGap = 2,\n showLabels = true,\n showTooltip = true,\n sliceRadius,\n title,\n}: ChartSunburstProps) {\n const { font, height: alturaMedida, radius: raioDoCanto, ref, width } = useChartMetrics();\n const { fillHeight, value: alturaDoDesenho } = chartHeight(height, alturaMedida);\n const { isHidden, toggle } = useSeriesToggle({\n defaultHiddenSeries: defaultHiddenGroups,\n hiddenSeries: hiddenGroups,\n onHiddenSeriesChange: onHiddenGroupsChange,\n });\n const [emFoco, setEmFoco] = useState<Arco | null>(null);\n\n // A cor sai da lista inteira, e nao das visiveis: desligar um grupo nao pode\n // repintar os demais.\n const coresDeNivelZero = useMemo(() => resolveSeriesColors(nodes, { accent }), [accent, nodes]);\n\n const visiveis = useMemo(\n () => nodes.filter((grupo) => !isHidden(grupo.label)),\n [isHidden, nodes],\n );\n\n // A banda dos rotulos e reservada antes do anel, medida pelo rotulo mais\n // largo do anel externo. Sem reservar, o rotulo era desenhado no que sobrasse\n // — quase nada nas laterais — e acabava cortado ate sumir.\n const rotulosExternos = useMemo(() => {\n const niveis = rotulosPorNivel(visiveis);\n const externo = Math.max(0, ...niveis.keys());\n\n return niveis.get(externo) ?? [];\n }, [visiveis]);\n\n const larguraDoRotulo = showLabels\n ? Math.min(widestLabel(rotulosExternos, font), width * CHART_LABEL_BAND)\n : 0;\n const banda = showLabels ? COMPRIMENTO_DO_CONECTOR * 2 + CHART_LABEL_OFFSET + larguraDoRotulo : 0;\n\n const diametro = ringDiameter(Math.max(width - banda * 2, 0), alturaDoDesenho);\n const raio = diametro / 2;\n\n const arcos = useMemo(() => {\n if (raio <= 0) {\n return [];\n }\n\n const arvore = hierarchy<ChartSunburstNode>({ children: visiveis, label: '' })\n .sum((no) => Math.max(no.value ?? 0, 0))\n .sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\n\n const repartir = partition<ChartSunburstNode>().size([VOLTA, raio]);\n\n return repartir(arvore)\n .descendants()\n .filter((no) => no.depth > 0);\n }, [raio, visiveis]);\n\n const profundidadeMaxima = arcos.reduce((maior, arco) => Math.max(maior, arco.depth), 0);\n const total = arcos\n .filter((arco) => arco.depth === 1)\n .reduce((soma, arco) => soma + (arco.value ?? 0), 0);\n\n // O arco guardado deixa de existir quando a arvore e remontada, num\n // redimensionamento por exemplo. Sem conferir, o foco perdido apagaria tudo.\n const foco = emFoco && arcos.includes(emFoco) ? emFoco : null;\n\n /**\n * Acende o arco sob o ponteiro e os que o originaram. O caminho ate a raiz e\n * o que explica de onde aquela fatia veio; os filhos dela nao explicam nada\n * sobre ela, entao ficam apagados junto com o resto.\n */\n function aceso(arco: Arco) {\n return foco === null || foco.ancestors().includes(arco);\n }\n\n function focar(arco: Arco | null) {\n setEmFoco(arco);\n onHoverNode?.(arco && hoverPath(arco));\n }\n\n function corDe(arco: Arco) {\n const raizDoRamo = arco.ancestors().find((ancestral) => ancestral.depth === 1)?.data;\n const base =\n raizDoRamo?.color ?? coresDeNivelZero[nodes.findIndex((no) => no.label === raizDoRamo?.label)];\n\n return tomDoNivel(base ?? 'var(--pl-chart-neutral)', arco.depth);\n }\n\n function descreverArco(arco: Arco) {\n const fracao = total > 0 ? (arco.value ?? 0) / total : 0;\n\n return `${arco.data.label}: ${formatValue(arco.value ?? 0)} (${formatPercent(fracao)})`;\n }\n\n return (\n <ChartFrame\n centerOrigin\n containerRef={ref}\n empty={nodes.length === 0}\n emptyMessage={emptyMessage}\n fillHeight={fillHeight}\n height={alturaDoDesenho}\n legend={nodes.map((grupo, indice) => ({\n color: coresDeNivelZero[indice],\n hidden: isHidden(grupo.label),\n label: grupo.label,\n }))}\n legendAlign={legendAlign}\n legendPosition={legend}\n onToggleSeries={toggle}\n swatch=\"dot\"\n title={title}\n tooltip={\n showTooltip\n ? pathTooltip({\n color: foco ? corDe(foco) : undefined,\n format: formatTooltipValue ?? formatValue,\n formatPercent,\n path: foco && hoverPath(foco),\n total,\n })\n : undefined\n }\n width={width}\n >\n {arcos.map((arco, indice) => (\n <path\n aria-label={descreverArco(arco)}\n className={`${styles.arc} ${aceso(arco) ? '' : styles.arcDim}`}\n d={arcPath({\n cornerRadius: sliceRadius ?? raioDoCanto,\n endAngle: arco.x1,\n innerRadius: arco.y0 + (arco.depth > 1 ? ringGap : 0),\n outerRadius: arco.y1,\n startAngle: arco.x0,\n })}\n fill={corDe(arco)}\n key={indice}\n onMouseEnter={() => focar(arco)}\n onMouseLeave={() => focar(null)}\n >\n {!showTooltip && !onHoverNode && <title>{descreverArco(arco)}</title>}\n </path>\n ))}\n\n {showLabels &&\n arcos\n .filter(\n (arco) => arco.depth === profundidadeMaxima && arco.x1 - arco.x0 >= ANGULO_MINIMO_DO_ROTULO,\n )\n .map((arco, indice) => {\n const angulos = { endAngle: arco.x1, startAngle: arco.x0 };\n const [xBorda, yBorda] = arcAnchor(angulos, arco.y1);\n const [xCotovelo, yCotovelo] = arcAnchor(angulos, arco.y1 + COMPRIMENTO_DO_CONECTOR);\n const paraDireita = xCotovelo >= 0;\n const xFim = xCotovelo + (paraDireita ? COMPRIMENTO_DO_CONECTOR : -COMPRIMENTO_DO_CONECTOR);\n\n return (\n <g className={styles.leader} key={indice}>\n <polyline\n className={styles.connector}\n points={`${xBorda},${yBorda} ${xCotovelo},${yCotovelo} ${xFim},${yCotovelo}`}\n />\n <text\n className={styles.label}\n dominantBaseline=\"middle\"\n textAnchor={paraDireita ? 'start' : 'end'}\n x={xFim + (paraDireita ? CHART_LABEL_OFFSET : -CHART_LABEL_OFFSET)}\n y={yCotovelo}\n >\n {truncateToWidth(arco.data.label, font, larguraDoRotulo)}\n </text>\n </g>\n );\n })}\n </ChartFrame>\n );\n}\n"],"names":["ANGULO_MINIMO_DO_ROTULO","COMPRIMENTO_DO_CONECTOR","rotulosPorNivel","nodes","nivel","por","no","_a","tomDoNivel","cor","profundidade","clareamento","ChartSunburst","accent","defaultHiddenGroups","emptyMessage","formatPercent","fracao","formatTooltipValue","formatValue","formatarNumero","height","hiddenGroups","legend","legendAlign","onHiddenGroupsChange","onHoverNode","ringGap","showLabels","showTooltip","sliceRadius","title","font","alturaMedida","raioDoCanto","ref","width","useChartMetrics","fillHeight","alturaDoDesenho","chartHeight","isHidden","toggle","useSeriesToggle","emFoco","setEmFoco","useState","coresDeNivelZero","useMemo","resolveSeriesColors","visiveis","grupo","rotulosExternos","niveis","externo","larguraDoRotulo","widestLabel","CHART_LABEL_BAND","banda","CHART_LABEL_OFFSET","raio","ringDiameter","arcos","arvore","hierarchy","a","b","partition","VOLTA","profundidadeMaxima","maior","arco","total","soma","foco","aceso","focar","hoverPath","corDe","raizDoRamo","ancestral","base","descreverArco","jsxs","ChartFrame","indice","pathTooltip","jsx","styles","arcPath","angulos","xBorda","yBorda","arcAnchor","xCotovelo","yCotovelo","paraDireita","xFim","truncateToWidth"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="_arc_fgn0g_1",c="_arcDim_fgn0g_9",n="_leader_fgn0g_13",r="_connector_fgn0g_17",a="_label_fgn0g_23",l={arc:e,arcDim:c,leader:n,connector:r,label:a};exports.arc=e;exports.arcDim=c;exports.connector=r;exports.default=l;exports.label=a;exports.leader=n;
2
+ //# sourceMappingURL=ChartSunburst.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartSunburst.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ const c = "_arc_fgn0g_1", n = "_arcDim_fgn0g_9", e = "_leader_fgn0g_13", _ = "_connector_fgn0g_17", a = "_label_fgn0g_23", o = {
2
+ arc: c,
3
+ arcDim: n,
4
+ leader: e,
5
+ connector: _,
6
+ label: a
7
+ };
8
+ export {
9
+ c as arc,
10
+ n as arcDim,
11
+ _ as connector,
12
+ o as default,
13
+ a as label,
14
+ e as leader
15
+ };
16
+ //# sourceMappingURL=ChartSunburst.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartSunburst.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),h=require("react"),P=require("react-dom"),t=require("./ChartTooltip.module.css.cjs"),b=require("../../../utils/formatters/formatarNumero.cjs"),f=16,j=8;function y(r){return r.reduce((n,i)=>n+i,0)}function D(r,n){return typeof r=="function"?r(n):r==="average"?n.length===0?0:y(n)/n.length:y(n)}function S({x:r,y:n},i,u){const p=r+f+i<=window.innerWidth-j,d=n+f+u<=window.innerHeight-j;return{x:p?r+f:Math.max(r-f-i,j),y:d?n+f:Math.max(n-f-u,j)}}function R({children:r,columns:n,computed:i,rows:u,showTotal:p=!1,subtitle:d,title:x,totalLabel:N="Total"}){const[v,c]=h.useState(null),g=v!==null&&u.length>0;h.useEffect(()=>{if(!g)return;const s=()=>c(null);return window.addEventListener("scroll",s,!0),window.addEventListener("resize",s),window.addEventListener("keydown",s),()=>{window.removeEventListener("scroll",s,!0),window.removeEventListener("resize",s),window.removeEventListener("keydown",s)}},[g]);const w=s=>c({x:s.clientX,y:s.clientY});return a.jsxs("div",{className:t.default.area,onPointerLeave:()=>c(null),onPointerMove:w,children:[r,g&&P.createPortal(a.jsx(k,{columns:n,computed:i,ponteiro:v,rows:u,showTotal:p,subtitle:d,title:x,totalLabel:N}),document.body)]})}function k({columns:r,computed:n,ponteiro:i,rows:u,showTotal:p,subtitle:d,title:x,totalLabel:N}){const v=h.useRef(null),[c,g]=h.useState({altura:0,largura:0});h.useLayoutEffect(()=>{const e=v.current;if(!e)return;const{height:l,width:m}=e.getBoundingClientRect();(l!==c.altura||m!==c.largura)&&g({altura:l,largura:m})});const w=u.reduce((e,l)=>Math.max(e,l.values.length),0),s=r??Array.from({length:w},()=>({})),o=n==="none"||s.length===0?void 0:n??{},E=(o==null?void 0:o.column)??s.length-1,$=y(u.map(e=>e.values[E]??0)),L=(o==null?void 0:o.compute)??((e,l)=>l===0?0:e/l),M=(o==null?void 0:o.format)??(e=>b.formatarPercentual(e,{casasDecimais:2})),{x:A,y:C}=S(i,c.largura,c.altura),q=`1fr ${"auto ".repeat(s.length+(o?1:0))}`.trim();return a.jsxs("div",{"aria-hidden":"true",className:t.default.tooltip,ref:v,style:{left:A,top:C},children:[x!==void 0&&a.jsx("p",{className:t.default.title,children:x}),d!==void 0&&a.jsx("p",{className:t.default.subtitle,children:d}),a.jsxs("div",{className:t.default.grid,style:{gridTemplateColumns:q},children:[u.map((e,l)=>a.jsxs(h.Fragment,{children:[a.jsxs("span",{className:`${t.default.label} ${e.emphasis?t.default.emphasis:""}`,children:[e.color!==void 0&&a.jsx("span",{className:t.default.swatch,style:{background:e.color}}),e.label]}),s.map((m,T)=>a.jsx("span",{className:`${t.default.value} ${e.emphasis?t.default.emphasis:""}`,children:(e.format??m.format??b.formatarNumero)(e.values[T]??0)},T)),o&&a.jsx("span",{className:`${t.default.computed} ${e.emphasis?t.default.emphasis:""}`,children:M(L(e.values[E]??0,$))})]},l)),p&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:t.default.rule}),a.jsx("span",{className:`${t.default.label} ${t.default.totalLabel}`,children:N}),s.map((e,l)=>a.jsx("span",{className:`${t.default.value} ${t.default.totalValue}`,children:e.total==="none"?"":(e.format??b.formatarNumero)(D(e.total??"sum",u.map(m=>m.values[l]??0)))},l)),o&&a.jsx("span",{className:`${t.default.computed} ${t.default.totalValue}`,children:M(L($,$))})]})]})]})}exports.ChartTooltip=R;
2
+ //# sourceMappingURL=ChartTooltip.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartTooltip.cjs","sources":["../../../../src/components/charts/ChartTooltip/ChartTooltip.tsx"],"sourcesContent":["import {\n Fragment,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n type PointerEvent,\n type ReactNode,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { formatarNumero, formatarPercentual } from '../../../utils/formatters';\nimport styles from './ChartTooltip.module.css';\n\nexport interface ChartTooltipRow {\n color?: string;\n /** Realca a linha, como a serie sob o ponteiro entre as demais. */\n emphasis?: boolean;\n /** Formato dos valores desta linha, quando difere do da coluna, como a serie do eixo da direita. */\n format?: (value: number) => string;\n label: string;\n values: readonly number[];\n}\n\n/** Como a linha de total resume uma coluna. A soma raramente serve a todas. */\nexport type ChartTooltipTotal = 'sum' | 'average' | 'none' | ((values: readonly number[]) => number);\n\nexport interface ChartTooltipColumn {\n format?: (value: number) => string;\n total?: ChartTooltipTotal;\n}\n\nexport interface ChartTooltipComputed {\n /** Coluna que serve de base. A ultima por padrao, que e a de valor. */\n column?: number;\n /** Valor da linha, a partir do valor dela e do total da coluna base. */\n compute?: (value: number, total: number) => number;\n format?: (value: number) => string;\n}\n\nexport interface ChartTooltipProps {\n children: ReactNode;\n columns?: readonly ChartTooltipColumn[];\n /** Coluna ao fim. Percentual sobre a base por padrao; `none` a dispensa. */\n computed?: ChartTooltipComputed | 'none';\n rows: readonly ChartTooltipRow[];\n showTotal?: boolean;\n subtitle?: string;\n title?: string;\n totalLabel?: string;\n}\n\ninterface Ponto {\n x: number;\n y: number;\n}\n\n/** Distancia entre o ponteiro e o balao, para o cursor nao cobrir o texto. */\nconst AFASTAMENTO = 16;\n\n/** Folga minima ate a borda da janela. */\nconst MARGEM = 8;\n\nfunction somar(valores: readonly number[]) {\n return valores.reduce((total, valor) => total + valor, 0);\n}\n\nfunction totalizar(operador: ChartTooltipTotal, valores: readonly number[]) {\n if (typeof operador === 'function') {\n return operador(valores);\n }\n\n if (operador === 'average') {\n return valores.length === 0 ? 0 : somar(valores) / valores.length;\n }\n\n return somar(valores);\n}\n\n/**\n * Canto do balao a partir do ponteiro. Ele abre para baixo e para a direita\n * enquanto couber, e vira para o lado oposto ao encostar na borda.\n */\nfunction encaixar({ x, y }: Ponto, largura: number, altura: number): Ponto {\n const cabeADireita = x + AFASTAMENTO + largura <= window.innerWidth - MARGEM;\n const cabeAbaixo = y + AFASTAMENTO + altura <= window.innerHeight - MARGEM;\n\n return {\n x: cabeADireita ? x + AFASTAMENTO : Math.max(x - AFASTAMENTO - largura, MARGEM),\n y: cabeAbaixo ? y + AFASTAMENTO : Math.max(y - AFASTAMENTO - altura, MARGEM),\n };\n}\n\n/**\n * Leitura das medidas sob o ponteiro, em portal sobre a pagina. Ele acompanha o\n * cursor enquanto este percorre a area e sai a qualquer outra interacao.\n *\n * Nao conhece grafico algum: recebe linhas e colunas, e quem as monta e quem o\n * usa. E decorativo para leitor de tela: o desenho e `role=\"img\"`, apresentado\n * como imagem unica, e a leitura medida a medida cabe a visao em tabela.\n */\nexport function ChartTooltip({\n children,\n columns,\n computed,\n rows,\n showTotal = false,\n subtitle,\n title,\n totalLabel = 'Total',\n}: ChartTooltipProps) {\n const [ponteiro, setPonteiro] = useState<Ponto | null>(null);\n const visivel = ponteiro !== null && rows.length > 0;\n\n // Sai por qualquer motivo que nao seja o ponteiro andando pela area: rolagem,\n // tecla ou a janela mudando de tamanho deixam o balao preso a um lugar que o\n // desenho ja nao ocupa.\n useEffect(() => {\n if (!visivel) {\n return;\n }\n\n const esconder = () => setPonteiro(null);\n\n window.addEventListener('scroll', esconder, true);\n window.addEventListener('resize', esconder);\n window.addEventListener('keydown', esconder);\n\n return () => {\n window.removeEventListener('scroll', esconder, true);\n window.removeEventListener('resize', esconder);\n window.removeEventListener('keydown', esconder);\n };\n }, [visivel]);\n\n const acompanhar = (evento: PointerEvent<HTMLDivElement>) =>\n setPonteiro({ x: evento.clientX, y: evento.clientY });\n\n return (\n <div\n className={styles.area}\n onPointerLeave={() => setPonteiro(null)}\n onPointerMove={acompanhar}\n >\n {children}\n\n {visivel &&\n createPortal(\n <Balao\n columns={columns}\n computed={computed}\n ponteiro={ponteiro}\n rows={rows}\n showTotal={showTotal}\n subtitle={subtitle}\n title={title}\n totalLabel={totalLabel}\n />,\n document.body,\n )}\n </div>\n );\n}\n\ntype BalaoProps = Omit<ChartTooltipProps, 'children'> & { ponteiro: Ponto };\n\nfunction Balao({\n columns,\n computed,\n ponteiro,\n rows,\n showTotal,\n subtitle,\n title,\n totalLabel,\n}: BalaoProps) {\n const ref = useRef<HTMLDivElement>(null);\n const [medida, setMedida] = useState({ altura: 0, largura: 0 });\n\n // A medida entra antes da pintura, entao o balao ja nasce no lugar certo.\n useLayoutEffect(() => {\n const no = ref.current;\n\n if (!no) {\n return;\n }\n\n const { height, width } = no.getBoundingClientRect();\n\n if (height !== medida.altura || width !== medida.largura) {\n setMedida({ altura: height, largura: width });\n }\n });\n\n const quantidadeDeColunas = rows.reduce((maior, linha) => Math.max(maior, linha.values.length), 0);\n const colunas: readonly ChartTooltipColumn[] =\n columns ?? Array.from({ length: quantidadeDeColunas }, () => ({}));\n\n // Sem coluna de onde derivar, nao ha o que calcular: linhas so com rotulo\n // renderizariam um percentual tirado do nada.\n const calculada = computed === 'none' || colunas.length === 0 ? undefined : computed ?? {};\n const colunaBase = calculada?.column ?? colunas.length - 1;\n const baseDoTotal = somar(rows.map((linha) => linha.values[colunaBase] ?? 0));\n const calcular = calculada?.compute ?? ((valor: number, total: number) => (total === 0 ? 0 : valor / total));\n const formatarCalculada = calculada?.format ?? ((valor: number) => formatarPercentual(valor, { casasDecimais: 2 }));\n\n const { x, y } = encaixar(ponteiro, medida.largura, medida.altura);\n const celulas = `1fr ${'auto '.repeat(colunas.length + (calculada ? 1 : 0))}`.trim();\n\n return (\n <div aria-hidden=\"true\" className={styles.tooltip} ref={ref} style={{ left: x, top: y }}>\n {title !== undefined && <p className={styles.title}>{title}</p>}\n {subtitle !== undefined && <p className={styles.subtitle}>{subtitle}</p>}\n\n <div className={styles.grid} style={{ gridTemplateColumns: celulas }}>\n {rows.map((linha, indiceDaLinha) => (\n <Fragment key={indiceDaLinha}>\n <span className={`${styles.label} ${linha.emphasis ? styles.emphasis : ''}`}>\n {linha.color !== undefined && (\n <span className={styles.swatch} style={{ background: linha.color }} />\n )}\n {linha.label}\n </span>\n\n {colunas.map((coluna, indice) => (\n <span className={`${styles.value} ${linha.emphasis ? styles.emphasis : ''}`} key={indice}>\n {(linha.format ?? coluna.format ?? formatarNumero)(linha.values[indice] ?? 0)}\n </span>\n ))}\n\n {calculada && (\n <span className={`${styles.computed} ${linha.emphasis ? styles.emphasis : ''}`}>\n {formatarCalculada(calcular(linha.values[colunaBase] ?? 0, baseDoTotal))}\n </span>\n )}\n </Fragment>\n ))}\n\n {showTotal && (\n <>\n <span className={styles.rule} />\n <span className={`${styles.label} ${styles.totalLabel}`}>{totalLabel}</span>\n\n {colunas.map((coluna, indice) => (\n <span className={`${styles.value} ${styles.totalValue}`} key={indice}>\n {coluna.total === 'none'\n ? ''\n : (coluna.format ?? formatarNumero)(\n totalizar(coluna.total ?? 'sum', rows.map((linha) => linha.values[indice] ?? 0)),\n )}\n </span>\n ))}\n\n {calculada && (\n <span className={`${styles.computed} ${styles.totalValue}`}>\n {formatarCalculada(calcular(baseDoTotal, baseDoTotal))}\n </span>\n )}\n </>\n )}\n </div>\n </div>\n );\n}\n"],"names":["AFASTAMENTO","MARGEM","somar","valores","total","valor","totalizar","operador","encaixar","x","y","largura","altura","cabeADireita","cabeAbaixo","ChartTooltip","children","columns","computed","rows","showTotal","subtitle","title","totalLabel","ponteiro","setPonteiro","useState","visivel","useEffect","esconder","acompanhar","evento","jsxs","styles","createPortal","jsx","Balao","ref","useRef","medida","setMedida","useLayoutEffect","no","height","width","quantidadeDeColunas","maior","linha","colunas","calculada","colunaBase","baseDoTotal","calcular","formatarCalculada","formatarPercentual","celulas","indiceDaLinha","Fragment","coluna","indice","formatarNumero"],"mappings":"oQAyDMA,EAAc,GAGdC,EAAS,EAEf,SAASC,EAAMC,EAA4B,CACzC,OAAOA,EAAQ,OAAO,CAACC,EAAOC,IAAUD,EAAQC,EAAO,CAAC,CAC1D,CAEA,SAASC,EAAUC,EAA6BJ,EAA4B,CAC1E,OAAI,OAAOI,GAAa,WACfA,EAASJ,CAAO,EAGrBI,IAAa,UACRJ,EAAQ,SAAW,EAAI,EAAID,EAAMC,CAAO,EAAIA,EAAQ,OAGtDD,EAAMC,CAAO,CACtB,CAMA,SAASK,EAAS,CAAE,EAAAC,EAAG,EAAAC,CAAA,EAAYC,EAAiBC,EAAuB,CACzE,MAAMC,EAAeJ,EAAIT,EAAcW,GAAW,OAAO,WAAaV,EAChEa,EAAaJ,EAAIV,EAAcY,GAAU,OAAO,YAAcX,EAEpE,MAAO,CACL,EAAGY,EAAeJ,EAAIT,EAAc,KAAK,IAAIS,EAAIT,EAAcW,EAASV,CAAM,EAC9E,EAAGa,EAAaJ,EAAIV,EAAc,KAAK,IAAIU,EAAIV,EAAcY,EAAQX,CAAM,CAAA,CAE/E,CAUO,SAASc,EAAa,CAC3B,SAAAC,EACA,QAAAC,EACA,SAAAC,EACA,KAAAC,EACA,UAAAC,EAAY,GACZ,SAAAC,EACA,MAAAC,EACA,WAAAC,EAAa,OACf,EAAsB,CACpB,KAAM,CAACC,EAAUC,CAAW,EAAIC,EAAAA,SAAuB,IAAI,EACrDC,EAAUH,IAAa,MAAQL,EAAK,OAAS,EAKnDS,EAAAA,UAAU,IAAM,CACd,GAAI,CAACD,EACH,OAGF,MAAME,EAAW,IAAMJ,EAAY,IAAI,EAEvC,cAAO,iBAAiB,SAAUI,EAAU,EAAI,EAChD,OAAO,iBAAiB,SAAUA,CAAQ,EAC1C,OAAO,iBAAiB,UAAWA,CAAQ,EAEpC,IAAM,CACX,OAAO,oBAAoB,SAAUA,EAAU,EAAI,EACnD,OAAO,oBAAoB,SAAUA,CAAQ,EAC7C,OAAO,oBAAoB,UAAWA,CAAQ,CAChD,CACF,EAAG,CAACF,CAAO,CAAC,EAEZ,MAAMG,EAAcC,GAClBN,EAAY,CAAE,EAAGM,EAAO,QAAS,EAAGA,EAAO,OAAA,CAAS,EAEtD,OACEC,EAAAA,KAAC,MAAA,CACC,UAAWC,EAAAA,QAAO,KAClB,eAAgB,IAAMR,EAAY,IAAI,EACtC,cAAeK,EAEd,SAAA,CAAAd,EAEAW,GACCO,EAAAA,aACEC,EAAAA,IAACC,EAAA,CACC,QAAAnB,EACA,SAAAC,EACA,SAAAM,EACA,KAAAL,EACA,UAAAC,EACA,SAAAC,EACA,MAAAC,EACA,WAAAC,CAAA,CAAA,EAEF,SAAS,IAAA,CACX,CAAA,CAAA,CAGR,CAIA,SAASa,EAAM,CACb,QAAAnB,EACA,SAAAC,EACA,SAAAM,EACA,KAAAL,EACA,UAAAC,EACA,SAAAC,EACA,MAAAC,EACA,WAAAC,CACF,EAAe,CACb,MAAMc,EAAMC,EAAAA,OAAuB,IAAI,EACjC,CAACC,EAAQC,CAAS,EAAId,EAAAA,SAAS,CAAE,OAAQ,EAAG,QAAS,EAAG,EAG9De,EAAAA,gBAAgB,IAAM,CACpB,MAAMC,EAAKL,EAAI,QAEf,GAAI,CAACK,EACH,OAGF,KAAM,CAAE,OAAAC,EAAQ,MAAAC,GAAUF,EAAG,sBAAA,GAEzBC,IAAWJ,EAAO,QAAUK,IAAUL,EAAO,UAC/CC,EAAU,CAAE,OAAQG,EAAQ,QAASC,EAAO,CAEhD,CAAC,EAED,MAAMC,EAAsB1B,EAAK,OAAO,CAAC2B,EAAOC,IAAU,KAAK,IAAID,EAAOC,EAAM,OAAO,MAAM,EAAG,CAAC,EAC3FC,EACJ/B,GAAW,MAAM,KAAK,CAAE,OAAQ4B,CAAA,EAAuB,KAAO,CAAA,EAAG,EAI7DI,EAAY/B,IAAa,QAAU8B,EAAQ,SAAW,EAAI,OAAY9B,GAAY,CAAA,EAClFgC,GAAaD,GAAA,YAAAA,EAAW,SAAUD,EAAQ,OAAS,EACnDG,EAAcjD,EAAMiB,EAAK,IAAK4B,GAAUA,EAAM,OAAOG,CAAU,GAAK,CAAC,CAAC,EACtEE,GAAWH,GAAA,YAAAA,EAAW,WAAY,CAAC5C,EAAeD,IAAmBA,IAAU,EAAI,EAAIC,EAAQD,GAC/FiD,GAAoBJ,GAAA,YAAAA,EAAW,UAAY5C,GAAkBiD,qBAAmBjD,EAAO,CAAE,cAAe,CAAA,CAAG,GAE3G,CAAE,EAAAI,EAAG,EAAAC,CAAA,EAAMF,EAASgB,EAAUe,EAAO,QAASA,EAAO,MAAM,EAC3DgB,EAAU,OAAO,QAAQ,OAAOP,EAAQ,QAAUC,EAAY,EAAI,EAAE,CAAC,GAAG,KAAA,EAE9E,OACEjB,EAAAA,KAAC,MAAA,CAAI,cAAY,OAAO,UAAWC,UAAO,QAAS,IAAAI,EAAU,MAAO,CAAE,KAAM5B,EAAG,IAAKC,GACjF,SAAA,CAAAY,IAAU,QAAaa,EAAAA,IAAC,IAAA,CAAE,UAAWF,EAAAA,QAAO,MAAQ,SAAAX,EAAM,EAC1DD,IAAa,QAAac,EAAAA,IAAC,KAAE,UAAWF,EAAAA,QAAO,SAAW,SAAAZ,EAAS,EAEpEW,EAAAA,KAAC,OAAI,UAAWC,UAAO,KAAM,MAAO,CAAE,oBAAqBsB,CAAA,EACxD,SAAA,CAAApC,EAAK,IAAI,CAAC4B,EAAOS,IAChBxB,OAACyB,EAAAA,SAAA,CACC,SAAA,CAAAzB,EAAAA,KAAC,OAAA,CAAK,UAAW,GAAGC,EAAAA,QAAO,KAAK,IAAIc,EAAM,SAAWd,EAAAA,QAAO,SAAW,EAAE,GACtE,SAAA,CAAAc,EAAM,QAAU,QACfZ,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,OAAQ,MAAO,CAAE,WAAYc,EAAM,KAAA,CAAM,CAAG,EAErEA,EAAM,KAAA,EACT,EAECC,EAAQ,IAAI,CAACU,EAAQC,IACpBxB,EAAAA,IAAC,OAAA,CAAK,UAAW,GAAGF,EAAAA,QAAO,KAAK,IAAIc,EAAM,SAAWd,UAAO,SAAW,EAAE,GACrE,UAAAc,EAAM,QAAUW,EAAO,QAAUE,EAAAA,gBAAgBb,EAAM,OAAOY,CAAM,GAAK,CAAC,CAAA,EADIA,CAElF,CACD,EAEAV,SACE,OAAA,CAAK,UAAW,GAAGhB,EAAAA,QAAO,QAAQ,IAAIc,EAAM,SAAWd,EAAAA,QAAO,SAAW,EAAE,GACzE,SAAAoB,EAAkBD,EAASL,EAAM,OAAOG,CAAU,GAAK,EAAGC,CAAW,CAAC,CAAA,CACzE,CAAA,CAAA,EAjBWK,CAmBf,CACD,EAEApC,GACCY,EAAAA,KAAAyB,WAAA,CACE,SAAA,CAAAtB,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,IAAA,CAAM,EAC9BE,EAAAA,IAAC,OAAA,CAAK,UAAW,GAAGF,EAAAA,QAAO,KAAK,IAAIA,EAAAA,QAAO,UAAU,GAAK,SAAAV,CAAA,CAAW,EAEpEyB,EAAQ,IAAI,CAACU,EAAQC,IACpBxB,EAAAA,IAAC,OAAA,CAAK,UAAW,GAAGF,EAAAA,QAAO,KAAK,IAAIA,EAAAA,QAAO,UAAU,GAClD,SAAAyB,EAAO,QAAU,OACd,IACCA,EAAO,QAAUE,EAAAA,gBAChBtD,EAAUoD,EAAO,OAAS,MAAOvC,EAAK,IAAK4B,GAAUA,EAAM,OAAOY,CAAM,GAAK,CAAC,CAAC,CAAA,CACjF,EALwDA,CAM9D,CACD,EAEAV,GACCd,EAAAA,IAAC,OAAA,CAAK,UAAW,GAAGF,EAAAA,QAAO,QAAQ,IAAIA,EAAAA,QAAO,UAAU,GACrD,SAAAoB,EAAkBD,EAASD,EAAaA,CAAW,CAAC,CAAA,CACvD,CAAA,CAAA,CAEJ,CAAA,CAAA,CAEJ,CAAA,EACF,CAEJ"}
@@ -0,0 +1,113 @@
1
+ import { jsxs as f, jsx as i, Fragment as k } from "react/jsx-runtime";
2
+ import { useState as C, useEffect as z, useRef as B, useLayoutEffect as R, Fragment as j } from "react";
3
+ import { createPortal as S } from "react-dom";
4
+ import t from "./ChartTooltip.module.css.js";
5
+ import { formatarPercentual as V, formatarNumero as T } from "../../../utils/formatters/formatarNumero.js";
6
+ const p = 16, N = 8;
7
+ function E(r) {
8
+ return r.reduce((n, c) => n + c, 0);
9
+ }
10
+ function q(r, n) {
11
+ return typeof r == "function" ? r(n) : r === "average" ? n.length === 0 ? 0 : E(n) / n.length : E(n);
12
+ }
13
+ function G({ x: r, y: n }, c, l) {
14
+ const h = r + p + c <= window.innerWidth - N, u = n + p + l <= window.innerHeight - N;
15
+ return {
16
+ x: h ? r + p : Math.max(r - p - c, N),
17
+ y: u ? n + p : Math.max(n - p - l, N)
18
+ };
19
+ }
20
+ function J({
21
+ children: r,
22
+ columns: n,
23
+ computed: c,
24
+ rows: l,
25
+ showTotal: h = !1,
26
+ subtitle: u,
27
+ title: w,
28
+ totalLabel: $ = "Total"
29
+ }) {
30
+ const [v, m] = C(null), g = v !== null && l.length > 0;
31
+ z(() => {
32
+ if (!g)
33
+ return;
34
+ const a = () => m(null);
35
+ return window.addEventListener("scroll", a, !0), window.addEventListener("resize", a), window.addEventListener("keydown", a), () => {
36
+ window.removeEventListener("scroll", a, !0), window.removeEventListener("resize", a), window.removeEventListener("keydown", a);
37
+ };
38
+ }, [g]);
39
+ const y = (a) => m({ x: a.clientX, y: a.clientY });
40
+ return /* @__PURE__ */ f(
41
+ "div",
42
+ {
43
+ className: t.area,
44
+ onPointerLeave: () => m(null),
45
+ onPointerMove: y,
46
+ children: [
47
+ r,
48
+ g && S(
49
+ /* @__PURE__ */ i(
50
+ H,
51
+ {
52
+ columns: n,
53
+ computed: c,
54
+ ponteiro: v,
55
+ rows: l,
56
+ showTotal: h,
57
+ subtitle: u,
58
+ title: w,
59
+ totalLabel: $
60
+ }
61
+ ),
62
+ document.body
63
+ )
64
+ ]
65
+ }
66
+ );
67
+ }
68
+ function H({
69
+ columns: r,
70
+ computed: n,
71
+ ponteiro: c,
72
+ rows: l,
73
+ showTotal: h,
74
+ subtitle: u,
75
+ title: w,
76
+ totalLabel: $
77
+ }) {
78
+ const v = B(null), [m, g] = C({ altura: 0, largura: 0 });
79
+ R(() => {
80
+ const e = v.current;
81
+ if (!e)
82
+ return;
83
+ const { height: o, width: d } = e.getBoundingClientRect();
84
+ (o !== m.altura || d !== m.largura) && g({ altura: o, largura: d });
85
+ });
86
+ const y = l.reduce((e, o) => Math.max(e, o.values.length), 0), a = r ?? Array.from({ length: y }, () => ({})), s = n === "none" || a.length === 0 ? void 0 : n ?? {}, x = (s == null ? void 0 : s.column) ?? a.length - 1, b = E(l.map((e) => e.values[x] ?? 0)), L = (s == null ? void 0 : s.compute) ?? ((e, o) => o === 0 ? 0 : e / o), M = (s == null ? void 0 : s.format) ?? ((e) => V(e, { casasDecimais: 2 })), { x: P, y: D } = G(c, m.largura, m.altura), F = `1fr ${"auto ".repeat(a.length + (s ? 1 : 0))}`.trim();
87
+ return /* @__PURE__ */ f("div", { "aria-hidden": "true", className: t.tooltip, ref: v, style: { left: P, top: D }, children: [
88
+ w !== void 0 && /* @__PURE__ */ i("p", { className: t.title, children: w }),
89
+ u !== void 0 && /* @__PURE__ */ i("p", { className: t.subtitle, children: u }),
90
+ /* @__PURE__ */ f("div", { className: t.grid, style: { gridTemplateColumns: F }, children: [
91
+ l.map((e, o) => /* @__PURE__ */ f(j, { children: [
92
+ /* @__PURE__ */ f("span", { className: `${t.label} ${e.emphasis ? t.emphasis : ""}`, children: [
93
+ e.color !== void 0 && /* @__PURE__ */ i("span", { className: t.swatch, style: { background: e.color } }),
94
+ e.label
95
+ ] }),
96
+ a.map((d, A) => /* @__PURE__ */ i("span", { className: `${t.value} ${e.emphasis ? t.emphasis : ""}`, children: (e.format ?? d.format ?? T)(e.values[A] ?? 0) }, A)),
97
+ s && /* @__PURE__ */ i("span", { className: `${t.computed} ${e.emphasis ? t.emphasis : ""}`, children: M(L(e.values[x] ?? 0, b)) })
98
+ ] }, o)),
99
+ h && /* @__PURE__ */ f(k, { children: [
100
+ /* @__PURE__ */ i("span", { className: t.rule }),
101
+ /* @__PURE__ */ i("span", { className: `${t.label} ${t.totalLabel}`, children: $ }),
102
+ a.map((e, o) => /* @__PURE__ */ i("span", { className: `${t.value} ${t.totalValue}`, children: e.total === "none" ? "" : (e.format ?? T)(
103
+ q(e.total ?? "sum", l.map((d) => d.values[o] ?? 0))
104
+ ) }, o)),
105
+ s && /* @__PURE__ */ i("span", { className: `${t.computed} ${t.totalValue}`, children: M(L(b, b)) })
106
+ ] })
107
+ ] })
108
+ ] });
109
+ }
110
+ export {
111
+ J as ChartTooltip
112
+ };
113
+ //# sourceMappingURL=ChartTooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartTooltip.js","sources":["../../../../src/components/charts/ChartTooltip/ChartTooltip.tsx"],"sourcesContent":["import {\n Fragment,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n type PointerEvent,\n type ReactNode,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { formatarNumero, formatarPercentual } from '../../../utils/formatters';\nimport styles from './ChartTooltip.module.css';\n\nexport interface ChartTooltipRow {\n color?: string;\n /** Realca a linha, como a serie sob o ponteiro entre as demais. */\n emphasis?: boolean;\n /** Formato dos valores desta linha, quando difere do da coluna, como a serie do eixo da direita. */\n format?: (value: number) => string;\n label: string;\n values: readonly number[];\n}\n\n/** Como a linha de total resume uma coluna. A soma raramente serve a todas. */\nexport type ChartTooltipTotal = 'sum' | 'average' | 'none' | ((values: readonly number[]) => number);\n\nexport interface ChartTooltipColumn {\n format?: (value: number) => string;\n total?: ChartTooltipTotal;\n}\n\nexport interface ChartTooltipComputed {\n /** Coluna que serve de base. A ultima por padrao, que e a de valor. */\n column?: number;\n /** Valor da linha, a partir do valor dela e do total da coluna base. */\n compute?: (value: number, total: number) => number;\n format?: (value: number) => string;\n}\n\nexport interface ChartTooltipProps {\n children: ReactNode;\n columns?: readonly ChartTooltipColumn[];\n /** Coluna ao fim. Percentual sobre a base por padrao; `none` a dispensa. */\n computed?: ChartTooltipComputed | 'none';\n rows: readonly ChartTooltipRow[];\n showTotal?: boolean;\n subtitle?: string;\n title?: string;\n totalLabel?: string;\n}\n\ninterface Ponto {\n x: number;\n y: number;\n}\n\n/** Distancia entre o ponteiro e o balao, para o cursor nao cobrir o texto. */\nconst AFASTAMENTO = 16;\n\n/** Folga minima ate a borda da janela. */\nconst MARGEM = 8;\n\nfunction somar(valores: readonly number[]) {\n return valores.reduce((total, valor) => total + valor, 0);\n}\n\nfunction totalizar(operador: ChartTooltipTotal, valores: readonly number[]) {\n if (typeof operador === 'function') {\n return operador(valores);\n }\n\n if (operador === 'average') {\n return valores.length === 0 ? 0 : somar(valores) / valores.length;\n }\n\n return somar(valores);\n}\n\n/**\n * Canto do balao a partir do ponteiro. Ele abre para baixo e para a direita\n * enquanto couber, e vira para o lado oposto ao encostar na borda.\n */\nfunction encaixar({ x, y }: Ponto, largura: number, altura: number): Ponto {\n const cabeADireita = x + AFASTAMENTO + largura <= window.innerWidth - MARGEM;\n const cabeAbaixo = y + AFASTAMENTO + altura <= window.innerHeight - MARGEM;\n\n return {\n x: cabeADireita ? x + AFASTAMENTO : Math.max(x - AFASTAMENTO - largura, MARGEM),\n y: cabeAbaixo ? y + AFASTAMENTO : Math.max(y - AFASTAMENTO - altura, MARGEM),\n };\n}\n\n/**\n * Leitura das medidas sob o ponteiro, em portal sobre a pagina. Ele acompanha o\n * cursor enquanto este percorre a area e sai a qualquer outra interacao.\n *\n * Nao conhece grafico algum: recebe linhas e colunas, e quem as monta e quem o\n * usa. E decorativo para leitor de tela: o desenho e `role=\"img\"`, apresentado\n * como imagem unica, e a leitura medida a medida cabe a visao em tabela.\n */\nexport function ChartTooltip({\n children,\n columns,\n computed,\n rows,\n showTotal = false,\n subtitle,\n title,\n totalLabel = 'Total',\n}: ChartTooltipProps) {\n const [ponteiro, setPonteiro] = useState<Ponto | null>(null);\n const visivel = ponteiro !== null && rows.length > 0;\n\n // Sai por qualquer motivo que nao seja o ponteiro andando pela area: rolagem,\n // tecla ou a janela mudando de tamanho deixam o balao preso a um lugar que o\n // desenho ja nao ocupa.\n useEffect(() => {\n if (!visivel) {\n return;\n }\n\n const esconder = () => setPonteiro(null);\n\n window.addEventListener('scroll', esconder, true);\n window.addEventListener('resize', esconder);\n window.addEventListener('keydown', esconder);\n\n return () => {\n window.removeEventListener('scroll', esconder, true);\n window.removeEventListener('resize', esconder);\n window.removeEventListener('keydown', esconder);\n };\n }, [visivel]);\n\n const acompanhar = (evento: PointerEvent<HTMLDivElement>) =>\n setPonteiro({ x: evento.clientX, y: evento.clientY });\n\n return (\n <div\n className={styles.area}\n onPointerLeave={() => setPonteiro(null)}\n onPointerMove={acompanhar}\n >\n {children}\n\n {visivel &&\n createPortal(\n <Balao\n columns={columns}\n computed={computed}\n ponteiro={ponteiro}\n rows={rows}\n showTotal={showTotal}\n subtitle={subtitle}\n title={title}\n totalLabel={totalLabel}\n />,\n document.body,\n )}\n </div>\n );\n}\n\ntype BalaoProps = Omit<ChartTooltipProps, 'children'> & { ponteiro: Ponto };\n\nfunction Balao({\n columns,\n computed,\n ponteiro,\n rows,\n showTotal,\n subtitle,\n title,\n totalLabel,\n}: BalaoProps) {\n const ref = useRef<HTMLDivElement>(null);\n const [medida, setMedida] = useState({ altura: 0, largura: 0 });\n\n // A medida entra antes da pintura, entao o balao ja nasce no lugar certo.\n useLayoutEffect(() => {\n const no = ref.current;\n\n if (!no) {\n return;\n }\n\n const { height, width } = no.getBoundingClientRect();\n\n if (height !== medida.altura || width !== medida.largura) {\n setMedida({ altura: height, largura: width });\n }\n });\n\n const quantidadeDeColunas = rows.reduce((maior, linha) => Math.max(maior, linha.values.length), 0);\n const colunas: readonly ChartTooltipColumn[] =\n columns ?? Array.from({ length: quantidadeDeColunas }, () => ({}));\n\n // Sem coluna de onde derivar, nao ha o que calcular: linhas so com rotulo\n // renderizariam um percentual tirado do nada.\n const calculada = computed === 'none' || colunas.length === 0 ? undefined : computed ?? {};\n const colunaBase = calculada?.column ?? colunas.length - 1;\n const baseDoTotal = somar(rows.map((linha) => linha.values[colunaBase] ?? 0));\n const calcular = calculada?.compute ?? ((valor: number, total: number) => (total === 0 ? 0 : valor / total));\n const formatarCalculada = calculada?.format ?? ((valor: number) => formatarPercentual(valor, { casasDecimais: 2 }));\n\n const { x, y } = encaixar(ponteiro, medida.largura, medida.altura);\n const celulas = `1fr ${'auto '.repeat(colunas.length + (calculada ? 1 : 0))}`.trim();\n\n return (\n <div aria-hidden=\"true\" className={styles.tooltip} ref={ref} style={{ left: x, top: y }}>\n {title !== undefined && <p className={styles.title}>{title}</p>}\n {subtitle !== undefined && <p className={styles.subtitle}>{subtitle}</p>}\n\n <div className={styles.grid} style={{ gridTemplateColumns: celulas }}>\n {rows.map((linha, indiceDaLinha) => (\n <Fragment key={indiceDaLinha}>\n <span className={`${styles.label} ${linha.emphasis ? styles.emphasis : ''}`}>\n {linha.color !== undefined && (\n <span className={styles.swatch} style={{ background: linha.color }} />\n )}\n {linha.label}\n </span>\n\n {colunas.map((coluna, indice) => (\n <span className={`${styles.value} ${linha.emphasis ? styles.emphasis : ''}`} key={indice}>\n {(linha.format ?? coluna.format ?? formatarNumero)(linha.values[indice] ?? 0)}\n </span>\n ))}\n\n {calculada && (\n <span className={`${styles.computed} ${linha.emphasis ? styles.emphasis : ''}`}>\n {formatarCalculada(calcular(linha.values[colunaBase] ?? 0, baseDoTotal))}\n </span>\n )}\n </Fragment>\n ))}\n\n {showTotal && (\n <>\n <span className={styles.rule} />\n <span className={`${styles.label} ${styles.totalLabel}`}>{totalLabel}</span>\n\n {colunas.map((coluna, indice) => (\n <span className={`${styles.value} ${styles.totalValue}`} key={indice}>\n {coluna.total === 'none'\n ? ''\n : (coluna.format ?? formatarNumero)(\n totalizar(coluna.total ?? 'sum', rows.map((linha) => linha.values[indice] ?? 0)),\n )}\n </span>\n ))}\n\n {calculada && (\n <span className={`${styles.computed} ${styles.totalValue}`}>\n {formatarCalculada(calcular(baseDoTotal, baseDoTotal))}\n </span>\n )}\n </>\n )}\n </div>\n </div>\n );\n}\n"],"names":["AFASTAMENTO","MARGEM","somar","valores","total","valor","totalizar","operador","encaixar","x","y","largura","altura","cabeADireita","cabeAbaixo","ChartTooltip","children","columns","computed","rows","showTotal","subtitle","title","totalLabel","ponteiro","setPonteiro","useState","visivel","useEffect","esconder","acompanhar","evento","jsxs","styles","createPortal","jsx","Balao","ref","useRef","medida","setMedida","useLayoutEffect","no","height","width","quantidadeDeColunas","maior","linha","colunas","calculada","colunaBase","baseDoTotal","calcular","formatarCalculada","formatarPercentual","celulas","indiceDaLinha","Fragment","coluna","indice","formatarNumero"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t="_area_8ibkx_3",e="_tooltip_8ibkx_8",l="_title_8ibkx_20",a="_subtitle_8ibkx_29",_="_grid_8ibkx_38",o="_label_8ibkx_45",i="_swatch_8ibkx_59",s="_value_8ibkx_68",b="_computed_8ibkx_80 _value_8ibkx_68",u="_emphasis_8ibkx_87",c="_rule_8ibkx_96",r="_totalLabel_8ibkx_102",n="_totalValue_8ibkx_107",k={area:t,tooltip:e,title:l,subtitle:a,grid:_,label:o,swatch:i,value:s,computed:b,emphasis:u,rule:c,totalLabel:r,totalValue:n};exports.area=t;exports.computed=b;exports.default=k;exports.emphasis=u;exports.grid=_;exports.label=o;exports.rule=c;exports.subtitle=a;exports.swatch=i;exports.title=l;exports.tooltip=e;exports.totalLabel=r;exports.totalValue=n;exports.value=s;
2
+ //# sourceMappingURL=ChartTooltip.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartTooltip.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ const t = "_area_8ibkx_3", _ = "_tooltip_8ibkx_8", l = "_title_8ibkx_20", e = "_subtitle_8ibkx_29", a = "_grid_8ibkx_38", o = "_label_8ibkx_45", i = "_swatch_8ibkx_59", s = "_value_8ibkx_68", b = "_computed_8ibkx_80 _value_8ibkx_68", c = "_emphasis_8ibkx_87", u = "_rule_8ibkx_96", x = "_totalLabel_8ibkx_102", k = "_totalValue_8ibkx_107", n = {
2
+ area: t,
3
+ tooltip: _,
4
+ title: l,
5
+ subtitle: e,
6
+ grid: a,
7
+ label: o,
8
+ swatch: i,
9
+ value: s,
10
+ computed: b,
11
+ emphasis: c,
12
+ rule: u,
13
+ totalLabel: x,
14
+ totalValue: k
15
+ };
16
+ export {
17
+ t as area,
18
+ b as computed,
19
+ n as default,
20
+ c as emphasis,
21
+ a as grid,
22
+ o as label,
23
+ u as rule,
24
+ e as subtitle,
25
+ i as swatch,
26
+ l as title,
27
+ _ as tooltip,
28
+ x as totalLabel,
29
+ k as totalValue,
30
+ s as value
31
+ };
32
+ //# sourceMappingURL=ChartTooltip.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartTooltip.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),g=require("react"),F=require("d3-hierarchy"),x=require("./ChartTreemap.module.css.cjs"),X=require("../core/useChartMetrics.cjs"),Y=require("../core/useSeriesToggle.cjs"),o=require("../palette/seriesColor.cjs"),Z=require("../core/ChartFrame.cjs"),s=require("../core/spacing.cjs"),ee=require("../../../utils/formatters/formatarNumero.cjs"),H=require("../core/measureText.cjs"),te=require("../core/tooltips.cjs"),N=require("../core/hoverPath.cjs"),re=require("../core/cartesianLayout.cjs");function M(u){return Number.isFinite(u.value)?Math.max(u.value??0,0):0}function ie({accent:u,defaultHiddenGroups:R,emptyMessage:j="Sem dados no período",formatTooltipValue:B,formatValue:E=ee.formatarNumero,gap:v=5,height:f=280,hiddenGroups:D,intentLabels:p,legend:I="bottom",legendAlign:P,nodes:i,onHiddenGroupsChange:$,onHoverNode:d,showDataLabels:K=!0,showTooltip:_=!0,title:W}){const{font:c,height:w,ref:z,width:m}=X.useChartMetrics(),{fillHeight:G,value:T}=re.chartHeight(f,w),{isHidden:S,toggle:k}=Y.useSeriesToggle({defaultHiddenSeries:R,hiddenSeries:D,onHiddenSeriesChange:$}),y=g.useMemo(()=>o.resolveSeriesColors(i,{accent:u}),[u,i]),J=g.useMemo(()=>!((F.hierarchy({children:i,label:""}).sum(M).value??0)>0),[i]),O=g.useMemo(()=>{const e=i.filter(r=>!S(r.label));if(m===0||T===0||e.length===0)return[];const t=F.hierarchy({children:e,label:""}).sum(M).sort((r,a)=>(a.value??0)-(r.value??0));return F.treemap().size([m,T]).paddingInner(v).round(!0)(t).leaves()},[T,v,S,i,m]),[b,Q]=g.useState(null),h=b&&O.includes(b)?b:null;function L(e){Q(e),d==null||d(e&&N.hoverPath(e))}function q(e){var r;const t=e.data;if(t.color)return t.color;if(t.intent)return o.INTENT_TOKENS[t.intent];const n=(r=e.ancestors().find(a=>a.depth===1))==null?void 0:r.data;return y[i.findIndex(a=>a.label===(n==null?void 0:n.label))]??o.INTENT_TOKENS.neutral}const U=p?Object.entries(p).map(([e,t])=>({color:o.INTENT_TOKENS[e],label:t})):i.map((e,t)=>({color:y[t],hidden:S(e.label),label:e.label}));return l.jsx(Z.ChartFrame,{containerRef:z,empty:i.length===0||J,emptyMessage:j,fillHeight:G,height:T,legend:U,legendAlign:P,legendPosition:I,onToggleSeries:p?void 0:k,title:W,tooltip:_?te.pathTooltip({color:h?q(h):void 0,format:B??E,path:h&&N.hoverPath(h)}):void 0,width:m,children:O.map(e=>{const t=e.x1-e.x0,n=e.y1-e.y0,r=t-s.CHART_LABEL_OFFSET*2,a=K&&r>0&&n>=c.lineHeight+s.CHART_LABEL_OFFSET,V=a&&n>=c.lineHeight*2+s.CHART_LABEL_OFFSET,A=`${e.data.label}: ${E(e.value??0)}`,C=q(e);return l.jsxs("g",{className:x.default.cell,children:[l.jsx("rect",{"aria-label":A,className:x.default.tile,fill:C,height:n,width:t,onMouseEnter:()=>L(e),onMouseLeave:()=>L(null),x:e.x0,y:e.y0,children:!_&&!d&&l.jsx("title",{children:A})}),a&&l.jsx("text",{className:x.default.label,fill:o.textColorOn(C),x:e.x0+s.CHART_LABEL_OFFSET,y:e.y0+s.CHART_LABEL_OFFSET+c.lineHeight*.6,children:H.truncateToWidth(e.data.label,c,r)}),V&&l.jsx("text",{className:x.default.value,fill:o.textColorOn(C),x:e.x0+s.CHART_LABEL_OFFSET,y:e.y0+s.CHART_LABEL_OFFSET+c.lineHeight*1.6,children:H.truncateToWidth(E(e.value??0),c,r)})]},`${e.data.label}-${e.x0}-${e.y0}`)})})}exports.ChartTreemap=ie;
2
+ //# sourceMappingURL=ChartTreemap.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartTreemap.cjs","sources":["../../../../src/components/charts/ChartTreemap/ChartTreemap.tsx"],"sourcesContent":["import { useMemo, useState } from 'react';\nimport { hierarchy, treemap } from 'd3-hierarchy';\nimport {\n CHART_LABEL_OFFSET,\n ChartFrame,\n chartHeight,\n hoverPath,\n pathTooltip,\n truncateToWidth,\n useChartMetrics,\n useSeriesToggle,\n type ChartHeight,\n type ChartHoveredNode,\n type ChartLegendAlign,\n type ChartLegendPosition,\n} from '../core';\nimport {\n INTENT_TOKENS,\n resolveSeriesColors,\n textColorOn,\n type SeriesAppearance,\n type SeriesIntent,\n} from '../palette';\nimport { formatarNumero } from '../../../utils/formatters';\nimport styles from './ChartTreemap.module.css';\n\nexport interface ChartTreemapNode extends SeriesAppearance {\n children?: readonly ChartTreemapNode[];\n label: string;\n value?: number;\n}\n\nexport interface ChartTreemapProps {\n accent?: string;\n defaultHiddenGroups?: readonly string[];\n emptyMessage?: string;\n /** Formato dos valores no balao. Sem ele, vale o `formatValue`: o eixo pode sair compacto e o balao, exato. */\n formatTooltipValue?: (value: number) => string;\n formatValue?: (value: number) => string;\n /** Folga entre dois retangulos vizinhos. */\n gap?: number;\n height?: ChartHeight;\n hiddenGroups?: readonly string[];\n /**\n * Nome de cada intencao na legenda. Informado, a legenda deixa de listar os\n * grupos e passa a nomear as cores: e o caso do mapa colorido por status,\n * onde o que a legenda explica e o significado da cor, nao a categoria.\n */\n intentLabels?: Partial<Record<SeriesIntent, string>>;\n legend?: ChartLegendPosition;\n legendAlign?: ChartLegendAlign;\n nodes: readonly ChartTreemapNode[];\n onHiddenGroupsChange?: (hidden: readonly string[]) => void;\n /** Caminho ate o no sob o ponteiro, do grupo ao no, cada nivel com o valor somado, ou `null` ao sair. */\n onHoverNode?: (path: readonly ChartHoveredNode[] | null) => void;\n showDataLabels?: boolean;\n /**\n * Balao com o caminho ate o no sob o ponteiro. Desligue para montar o proprio `ChartTooltip`\n * pela costura; sem balao nem costura, o no volta a ter o `<title>`.\n */\n showTooltip?: boolean;\n title: string;\n}\n\n\n/** Area que o no ocupa. Invalido ou negativo nao ocupa nada. */\nfunction ocupacao(no: ChartTreemapNode) {\n return Number.isFinite(no.value) ? Math.max(no.value ?? 0, 0) : 0;\n}\n\nexport function ChartTreemap({\n accent,\n defaultHiddenGroups,\n emptyMessage = 'Sem dados no período',\n formatTooltipValue,\n formatValue = formatarNumero,\n gap = 5,\n height = 280,\n hiddenGroups,\n intentLabels,\n legend = 'bottom',\n legendAlign,\n nodes,\n onHiddenGroupsChange,\n onHoverNode,\n showDataLabels = true,\n showTooltip = true,\n title,\n}: ChartTreemapProps) {\n const { font, height: alturaMedida, ref, width } = useChartMetrics();\n const { fillHeight, value: alturaDoDesenho } = chartHeight(height, alturaMedida);\n const { isHidden, toggle } = useSeriesToggle({\n defaultHiddenSeries: defaultHiddenGroups,\n hiddenSeries: hiddenGroups,\n onHiddenSeriesChange: onHiddenGroupsChange,\n });\n\n // A cor sai da lista inteira, e nao das visiveis: desligar um grupo nao pode\n // repintar os demais.\n const coresDeGrupo = useMemo(() => resolveSeriesColors(nodes, { accent }), [accent, nodes]);\n\n // Sem valor positivo nao ha area a repartir: anuncia vazio. Desligar todos os grupos, nao: a legenda e a volta.\n const semValor = useMemo(\n () => !((hierarchy<ChartTreemapNode>({ children: nodes, label: '' }).sum(ocupacao).value ?? 0) > 0),\n [nodes],\n );\n\n const retangulos = useMemo(() => {\n const visiveis = nodes.filter((grupo) => !isHidden(grupo.label));\n\n if (width === 0 || alturaDoDesenho === 0 || visiveis.length === 0) {\n return [];\n }\n\n const arvore = hierarchy<ChartTreemapNode>({ children: visiveis, label: '' })\n .sum(ocupacao)\n .sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\n\n const posicionar = treemap<ChartTreemapNode>()\n .size([width, alturaDoDesenho])\n .paddingInner(gap)\n .round(true);\n\n return posicionar(arvore).leaves();\n }, [alturaDoDesenho, gap, isHidden, nodes, width]);\n\n const [emFoco, setEmFoco] = useState<(typeof retangulos)[number] | null>(null);\n // A folha guardada deixa de existir quando o mapa e remontado; sem conferir, o balao falaria de um no que saiu.\n const foco = emFoco && retangulos.includes(emFoco) ? emFoco : null;\n\n function focar(folha: (typeof retangulos)[number] | null) {\n setEmFoco(folha);\n onHoverNode?.(folha && hoverPath(folha));\n }\n\n /** A folha herda a cor do grupo, e a intencao propria vence a herdada. */\n function corDa(folha: (typeof retangulos)[number]) {\n const proprio = folha.data;\n\n if (proprio.color) {\n return proprio.color;\n }\n\n if (proprio.intent) {\n return INTENT_TOKENS[proprio.intent];\n }\n\n const grupo = folha.ancestors().find((ancestral) => ancestral.depth === 1)?.data;\n\n return coresDeGrupo[nodes.findIndex((no) => no.label === grupo?.label)] ?? INTENT_TOKENS.neutral;\n }\n\n const entradasDaLegenda = intentLabels\n ? (Object.entries(intentLabels) as [SeriesIntent, string][]).map(([intencao, rotulo]) => ({\n color: INTENT_TOKENS[intencao],\n label: rotulo,\n }))\n : nodes.map((grupo, indice) => ({\n color: coresDeGrupo[indice],\n hidden: isHidden(grupo.label),\n label: grupo.label,\n }));\n\n return (\n <ChartFrame\n containerRef={ref}\n empty={nodes.length === 0 || semValor}\n emptyMessage={emptyMessage}\n fillHeight={fillHeight}\n height={alturaDoDesenho}\n legend={entradasDaLegenda}\n legendAlign={legendAlign}\n legendPosition={legend}\n onToggleSeries={intentLabels ? undefined : toggle}\n title={title}\n tooltip={\n showTooltip\n ? pathTooltip({ color: foco ? corDa(foco) : undefined, format: formatTooltipValue ?? formatValue, path: foco && hoverPath(foco) })\n : undefined\n }\n width={width}\n >\n {retangulos.map((folha) => {\n const largura = folha.x1 - folha.x0;\n const altura = folha.y1 - folha.y0;\n const disponivel = largura - CHART_LABEL_OFFSET * 2;\n const cabeORotulo = showDataLabels && disponivel > 0 && altura >= font.lineHeight + CHART_LABEL_OFFSET;\n const cabeOValor = cabeORotulo && altura >= font.lineHeight * 2 + CHART_LABEL_OFFSET;\n const descricao = `${folha.data.label}: ${formatValue(folha.value ?? 0)}`;\n const cor = corDa(folha);\n\n return (\n <g className={styles.cell} key={`${folha.data.label}-${folha.x0}-${folha.y0}`}>\n <rect\n aria-label={descricao}\n className={styles.tile}\n fill={cor}\n height={altura}\n width={largura}\n onMouseEnter={() => focar(folha)}\n onMouseLeave={() => focar(null)}\n x={folha.x0}\n y={folha.y0}\n >\n {!showTooltip && !onHoverNode && <title>{descricao}</title>}\n </rect>\n\n {cabeORotulo && (\n <text\n className={styles.label}\n fill={textColorOn(cor)}\n x={folha.x0 + CHART_LABEL_OFFSET}\n y={folha.y0 + CHART_LABEL_OFFSET + font.lineHeight * 0.6}\n >\n {truncateToWidth(folha.data.label, font, disponivel)}\n </text>\n )}\n\n {cabeOValor && (\n <text\n className={styles.value}\n fill={textColorOn(cor)}\n x={folha.x0 + CHART_LABEL_OFFSET}\n y={folha.y0 + CHART_LABEL_OFFSET + font.lineHeight * 1.6}\n >\n {truncateToWidth(formatValue(folha.value ?? 0), font, disponivel)}\n </text>\n )}\n </g>\n );\n })}\n </ChartFrame>\n );\n}\n"],"names":["ocupacao","no","ChartTreemap","accent","defaultHiddenGroups","emptyMessage","formatTooltipValue","formatValue","formatarNumero","gap","height","hiddenGroups","intentLabels","legend","legendAlign","nodes","onHiddenGroupsChange","onHoverNode","showDataLabels","showTooltip","title","font","alturaMedida","ref","width","useChartMetrics","fillHeight","alturaDoDesenho","chartHeight","isHidden","toggle","useSeriesToggle","coresDeGrupo","useMemo","resolveSeriesColors","semValor","hierarchy","retangulos","visiveis","grupo","arvore","a","b","treemap","emFoco","setEmFoco","useState","foco","focar","folha","hoverPath","corDa","proprio","INTENT_TOKENS","_a","ancestral","entradasDaLegenda","intencao","rotulo","indice","jsx","ChartFrame","pathTooltip","largura","altura","disponivel","CHART_LABEL_OFFSET","cabeORotulo","cabeOValor","descricao","cor","jsxs","styles","textColorOn","truncateToWidth"],"mappings":"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"}