@plenustech/design-system 0.2.2 → 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 (373) hide show
  1. package/dist/components/actions/ButtonTile/ButtonTile.cjs +2 -0
  2. package/dist/components/actions/ButtonTile/ButtonTile.cjs.map +1 -0
  3. package/dist/components/actions/ButtonTile/ButtonTile.js +23 -0
  4. package/dist/components/actions/ButtonTile/ButtonTile.js.map +1 -0
  5. package/dist/components/actions/ButtonTile/ButtonTile.module.css.cjs +2 -0
  6. package/dist/components/actions/ButtonTile/ButtonTile.module.css.cjs.map +1 -0
  7. package/dist/components/actions/ButtonTile/ButtonTile.module.css.js +16 -0
  8. package/dist/components/actions/ButtonTile/ButtonTile.module.css.js.map +1 -0
  9. package/dist/components/actions/Toolbar/Toolbar.cjs +2 -0
  10. package/dist/components/actions/Toolbar/Toolbar.cjs.map +1 -0
  11. package/dist/components/actions/Toolbar/Toolbar.js +118 -0
  12. package/dist/components/actions/Toolbar/Toolbar.js.map +1 -0
  13. package/dist/components/actions/Toolbar/Toolbar.module.css.cjs +2 -0
  14. package/dist/components/actions/Toolbar/Toolbar.module.css.cjs.map +1 -0
  15. package/dist/components/actions/Toolbar/Toolbar.module.css.js +20 -0
  16. package/dist/components/actions/Toolbar/Toolbar.module.css.js.map +1 -0
  17. package/dist/components/charts/ChartArea/ChartArea.cjs +1 -1
  18. package/dist/components/charts/ChartArea/ChartArea.cjs.map +1 -1
  19. package/dist/components/charts/ChartArea/ChartArea.js +196 -148
  20. package/dist/components/charts/ChartArea/ChartArea.js.map +1 -1
  21. package/dist/components/charts/ChartArea/ChartArea.module.css.cjs +1 -1
  22. package/dist/components/charts/ChartArea/ChartArea.module.css.js +12 -10
  23. package/dist/components/charts/ChartArea/ChartArea.module.css.js.map +1 -1
  24. package/dist/components/charts/ChartBar/ChartBar.cjs +1 -1
  25. package/dist/components/charts/ChartBar/ChartBar.cjs.map +1 -1
  26. package/dist/components/charts/ChartBar/ChartBar.js +168 -145
  27. package/dist/components/charts/ChartBar/ChartBar.js.map +1 -1
  28. package/dist/components/charts/ChartBar/ChartBar.module.css.cjs +1 -1
  29. package/dist/components/charts/ChartBar/ChartBar.module.css.js +12 -10
  30. package/dist/components/charts/ChartBar/ChartBar.module.css.js.map +1 -1
  31. package/dist/components/charts/ChartCombo/ChartCombo.cjs +1 -1
  32. package/dist/components/charts/ChartCombo/ChartCombo.cjs.map +1 -1
  33. package/dist/components/charts/ChartCombo/ChartCombo.js +179 -154
  34. package/dist/components/charts/ChartCombo/ChartCombo.js.map +1 -1
  35. package/dist/components/charts/ChartCombo/ChartCombo.module.css.cjs +1 -1
  36. package/dist/components/charts/ChartCombo/ChartCombo.module.css.js +16 -14
  37. package/dist/components/charts/ChartCombo/ChartCombo.module.css.js.map +1 -1
  38. package/dist/components/charts/ChartDonut/ChartDonut.cjs +1 -1
  39. package/dist/components/charts/ChartDonut/ChartDonut.cjs.map +1 -1
  40. package/dist/components/charts/ChartDonut/ChartDonut.js +72 -61
  41. package/dist/components/charts/ChartDonut/ChartDonut.js.map +1 -1
  42. package/dist/components/charts/ChartLine/ChartLine.cjs +1 -1
  43. package/dist/components/charts/ChartLine/ChartLine.cjs.map +1 -1
  44. package/dist/components/charts/ChartLine/ChartLine.js +196 -143
  45. package/dist/components/charts/ChartLine/ChartLine.js.map +1 -1
  46. package/dist/components/charts/ChartLine/ChartLine.module.css.cjs +1 -1
  47. package/dist/components/charts/ChartLine/ChartLine.module.css.js +16 -14
  48. package/dist/components/charts/ChartLine/ChartLine.module.css.js.map +1 -1
  49. package/dist/components/charts/ChartPie/ChartPie.cjs +1 -1
  50. package/dist/components/charts/ChartPie/ChartPie.cjs.map +1 -1
  51. package/dist/components/charts/ChartPie/ChartPie.js +71 -60
  52. package/dist/components/charts/ChartPie/ChartPie.js.map +1 -1
  53. package/dist/components/charts/ChartRadial/ChartRadial.cjs +1 -1
  54. package/dist/components/charts/ChartRadial/ChartRadial.cjs.map +1 -1
  55. package/dist/components/charts/ChartRadial/ChartRadial.js +101 -84
  56. package/dist/components/charts/ChartRadial/ChartRadial.js.map +1 -1
  57. package/dist/components/charts/ChartSankey/ChartSankey.cjs +1 -1
  58. package/dist/components/charts/ChartSankey/ChartSankey.cjs.map +1 -1
  59. package/dist/components/charts/ChartSankey/ChartSankey.js +148 -125
  60. package/dist/components/charts/ChartSankey/ChartSankey.js.map +1 -1
  61. package/dist/components/charts/ChartScatter/ChartScatter.cjs +1 -1
  62. package/dist/components/charts/ChartScatter/ChartScatter.cjs.map +1 -1
  63. package/dist/components/charts/ChartScatter/ChartScatter.js +138 -106
  64. package/dist/components/charts/ChartScatter/ChartScatter.js.map +1 -1
  65. package/dist/components/charts/ChartScatter/ChartScatter.module.css.cjs +1 -1
  66. package/dist/components/charts/ChartScatter/ChartScatter.module.css.js +3 -3
  67. package/dist/components/charts/ChartSunburst/ChartSunburst.cjs +1 -1
  68. package/dist/components/charts/ChartSunburst/ChartSunburst.cjs.map +1 -1
  69. package/dist/components/charts/ChartSunburst/ChartSunburst.js +115 -100
  70. package/dist/components/charts/ChartSunburst/ChartSunburst.js.map +1 -1
  71. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs +1 -1
  72. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs.map +1 -1
  73. package/dist/components/charts/ChartTooltip/ChartTooltip.js +1 -1
  74. package/dist/components/charts/ChartTooltip/ChartTooltip.js.map +1 -1
  75. package/dist/components/charts/ChartTreemap/ChartTreemap.cjs +1 -1
  76. package/dist/components/charts/ChartTreemap/ChartTreemap.cjs.map +1 -1
  77. package/dist/components/charts/ChartTreemap/ChartTreemap.js +100 -89
  78. package/dist/components/charts/ChartTreemap/ChartTreemap.js.map +1 -1
  79. package/dist/components/charts/ChartWaterfall/ChartWaterfall.cjs +1 -1
  80. package/dist/components/charts/ChartWaterfall/ChartWaterfall.cjs.map +1 -1
  81. package/dist/components/charts/ChartWaterfall/ChartWaterfall.js +125 -105
  82. package/dist/components/charts/ChartWaterfall/ChartWaterfall.js.map +1 -1
  83. package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.cjs +1 -1
  84. package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.js +8 -6
  85. package/dist/components/charts/ChartWaterfall/ChartWaterfall.module.css.js.map +1 -1
  86. package/dist/components/charts/core/CartesianFrame.cjs +1 -1
  87. package/dist/components/charts/core/CartesianFrame.cjs.map +1 -1
  88. package/dist/components/charts/core/CartesianFrame.js +61 -96
  89. package/dist/components/charts/core/CartesianFrame.js.map +1 -1
  90. package/dist/components/charts/core/Chart.module.css.cjs +1 -1
  91. package/dist/components/charts/core/Chart.module.css.js +52 -54
  92. package/dist/components/charts/core/Chart.module.css.js.map +1 -1
  93. package/dist/components/charts/core/ChartFrame.cjs +1 -1
  94. package/dist/components/charts/core/ChartFrame.cjs.map +1 -1
  95. package/dist/components/charts/core/ChartFrame.js +53 -47
  96. package/dist/components/charts/core/ChartFrame.js.map +1 -1
  97. package/dist/components/charts/core/PointBands.cjs +2 -0
  98. package/dist/components/charts/core/PointBands.cjs.map +1 -0
  99. package/dist/components/charts/core/PointBands.js +41 -0
  100. package/dist/components/charts/core/PointBands.js.map +1 -0
  101. package/dist/components/charts/core/cartesianLayout.cjs +1 -1
  102. package/dist/components/charts/core/cartesianLayout.cjs.map +1 -1
  103. package/dist/components/charts/core/cartesianLayout.js +49 -41
  104. package/dist/components/charts/core/cartesianLayout.js.map +1 -1
  105. package/dist/components/charts/core/hoverPath.cjs +2 -0
  106. package/dist/components/charts/core/hoverPath.cjs.map +1 -0
  107. package/dist/components/charts/core/hoverPath.js +7 -0
  108. package/dist/components/charts/core/hoverPath.js.map +1 -0
  109. package/dist/components/charts/core/pointLabels.cjs +2 -0
  110. package/dist/components/charts/core/pointLabels.cjs.map +1 -0
  111. package/dist/components/charts/core/pointLabels.js +12 -0
  112. package/dist/components/charts/core/pointLabels.js.map +1 -0
  113. package/dist/components/charts/core/tooltips.cjs +2 -0
  114. package/dist/components/charts/core/tooltips.cjs.map +1 -0
  115. package/dist/components/charts/core/tooltips.js +48 -0
  116. package/dist/components/charts/core/tooltips.js.map +1 -0
  117. package/dist/components/charts/core/useCartesianLayout.cjs +2 -0
  118. package/dist/components/charts/core/useCartesianLayout.cjs.map +1 -0
  119. package/dist/components/charts/core/useCartesianLayout.js +38 -0
  120. package/dist/components/charts/core/useCartesianLayout.js.map +1 -0
  121. package/dist/components/charts/core/useSeriesToggle.cjs +1 -1
  122. package/dist/components/charts/core/useSeriesToggle.cjs.map +1 -1
  123. package/dist/components/charts/core/useSeriesToggle.js +19 -12
  124. package/dist/components/charts/core/useSeriesToggle.js.map +1 -1
  125. package/dist/components/data-display/Accordion/Accordion.cjs +1 -1
  126. package/dist/components/data-display/Accordion/Accordion.cjs.map +1 -1
  127. package/dist/components/data-display/Accordion/Accordion.js +56 -46
  128. package/dist/components/data-display/Accordion/Accordion.js.map +1 -1
  129. package/dist/components/data-display/Accordion/Accordion.module.css.cjs +1 -1
  130. package/dist/components/data-display/Accordion/Accordion.module.css.js +16 -16
  131. package/dist/components/data-display/SortableList/SortableList.cjs +2 -0
  132. package/dist/components/data-display/SortableList/SortableList.cjs.map +1 -0
  133. package/dist/components/data-display/SortableList/SortableList.js +168 -0
  134. package/dist/components/data-display/SortableList/SortableList.js.map +1 -0
  135. package/dist/components/data-display/SortableList/SortableList.module.css.cjs +2 -0
  136. package/dist/components/data-display/SortableList/SortableList.module.css.cjs.map +1 -0
  137. package/dist/components/data-display/SortableList/SortableList.module.css.js +34 -0
  138. package/dist/components/data-display/SortableList/SortableList.module.css.js.map +1 -0
  139. package/dist/components/data-display/Table/Table.cjs +1 -1
  140. package/dist/components/data-display/Table/Table.cjs.map +1 -1
  141. package/dist/components/data-display/Table/Table.js +86 -85
  142. package/dist/components/data-display/Table/Table.js.map +1 -1
  143. package/dist/components/data-display/Table/Table.module.css.cjs +1 -1
  144. package/dist/components/data-display/Table/Table.module.css.js +50 -51
  145. package/dist/components/data-display/Table/Table.module.css.js.map +1 -1
  146. package/dist/components/data-display/Tag/Tag.cjs +2 -0
  147. package/dist/components/data-display/Tag/Tag.cjs.map +1 -0
  148. package/dist/components/data-display/Tag/Tag.js +50 -0
  149. package/dist/components/data-display/Tag/Tag.js.map +1 -0
  150. package/dist/components/data-display/Tag/Tag.module.css.cjs +2 -0
  151. package/dist/components/data-display/Tag/Tag.module.css.cjs.map +1 -0
  152. package/dist/components/data-display/Tag/Tag.module.css.js +22 -0
  153. package/dist/components/data-display/Tag/Tag.module.css.js.map +1 -0
  154. package/dist/components/data-display/Timeline/Timeline.cjs +2 -0
  155. package/dist/components/data-display/Timeline/Timeline.cjs.map +1 -0
  156. package/dist/components/data-display/Timeline/Timeline.js +31 -0
  157. package/dist/components/data-display/Timeline/Timeline.js.map +1 -0
  158. package/dist/components/data-display/Timeline/Timeline.module.css.cjs +2 -0
  159. package/dist/components/data-display/Timeline/Timeline.module.css.cjs.map +1 -0
  160. package/dist/components/data-display/Timeline/Timeline.module.css.js +30 -0
  161. package/dist/components/data-display/Timeline/Timeline.module.css.js.map +1 -0
  162. package/dist/components/feedback/Skeleton/Skeleton.cjs +2 -0
  163. package/dist/components/feedback/Skeleton/Skeleton.cjs.map +1 -0
  164. package/dist/components/feedback/Skeleton/Skeleton.js +17 -0
  165. package/dist/components/feedback/Skeleton/Skeleton.js.map +1 -0
  166. package/dist/components/feedback/Skeleton/Skeleton.module.css.cjs +2 -0
  167. package/dist/components/feedback/Skeleton/Skeleton.module.css.cjs.map +1 -0
  168. package/dist/components/feedback/Skeleton/Skeleton.module.css.js +15 -0
  169. package/dist/components/feedback/Skeleton/Skeleton.module.css.js.map +1 -0
  170. package/dist/components/feedback/Toast/Toast.module.css.cjs +2 -0
  171. package/dist/components/feedback/Toast/Toast.module.css.cjs.map +1 -0
  172. package/dist/components/feedback/Toast/Toast.module.css.js +31 -0
  173. package/dist/components/feedback/Toast/Toast.module.css.js.map +1 -0
  174. package/dist/components/feedback/Toast/ToastRegion.cjs +2 -0
  175. package/dist/components/feedback/Toast/ToastRegion.cjs.map +1 -0
  176. package/dist/components/feedback/Toast/ToastRegion.js +62 -0
  177. package/dist/components/feedback/Toast/ToastRegion.js.map +1 -0
  178. package/dist/components/feedback/Toast/toastStore.cjs +2 -0
  179. package/dist/components/feedback/Toast/toastStore.cjs.map +1 -0
  180. package/dist/components/feedback/Toast/toastStore.js +33 -0
  181. package/dist/components/feedback/Toast/toastStore.js.map +1 -0
  182. package/dist/components/forms/Checkbox/Checkbox.cjs +1 -1
  183. package/dist/components/forms/Checkbox/Checkbox.cjs.map +1 -1
  184. package/dist/components/forms/Checkbox/Checkbox.js +43 -31
  185. package/dist/components/forms/Checkbox/Checkbox.js.map +1 -1
  186. package/dist/components/forms/Checkbox/Checkbox.module.css.cjs +1 -1
  187. package/dist/components/forms/Checkbox/Checkbox.module.css.js +1 -1
  188. package/dist/components/forms/CheckboxGroup/CheckboxGroup.cjs +2 -0
  189. package/dist/components/forms/CheckboxGroup/CheckboxGroup.cjs.map +1 -0
  190. package/dist/components/forms/CheckboxGroup/CheckboxGroup.js +54 -0
  191. package/dist/components/forms/CheckboxGroup/CheckboxGroup.js.map +1 -0
  192. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.cjs +2 -0
  193. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.cjs.map +1 -0
  194. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.js +22 -0
  195. package/dist/components/forms/CheckboxGroup/CheckboxGroup.module.css.js.map +1 -0
  196. package/dist/components/forms/ColorPicker/ColorPicker.cjs +2 -0
  197. package/dist/components/forms/ColorPicker/ColorPicker.cjs.map +1 -0
  198. package/dist/components/forms/ColorPicker/ColorPicker.js +57 -0
  199. package/dist/components/forms/ColorPicker/ColorPicker.js.map +1 -0
  200. package/dist/components/forms/ColorPicker/ColorPicker.module.css.cjs +2 -0
  201. package/dist/components/forms/ColorPicker/ColorPicker.module.css.cjs.map +1 -0
  202. package/dist/components/forms/ColorPicker/ColorPicker.module.css.js +22 -0
  203. package/dist/components/forms/ColorPicker/ColorPicker.module.css.js.map +1 -0
  204. package/dist/components/forms/ComboBox/ComboBox.module.css.cjs +1 -1
  205. package/dist/components/forms/ComboBox/ComboBox.module.css.js +20 -20
  206. package/dist/components/forms/Field/Field.cjs +1 -1
  207. package/dist/components/forms/Field/Field.cjs.map +1 -1
  208. package/dist/components/forms/Field/Field.js +21 -20
  209. package/dist/components/forms/Field/Field.js.map +1 -1
  210. package/dist/components/forms/Field/Field.module.css.cjs +1 -1
  211. package/dist/components/forms/Field/Field.module.css.js +18 -12
  212. package/dist/components/forms/Field/Field.module.css.js.map +1 -1
  213. package/dist/components/forms/FileUpload/FileUpload.cjs +2 -0
  214. package/dist/components/forms/FileUpload/FileUpload.cjs.map +1 -0
  215. package/dist/components/forms/FileUpload/FileUpload.js +142 -0
  216. package/dist/components/forms/FileUpload/FileUpload.js.map +1 -0
  217. package/dist/components/forms/FileUpload/FileUpload.module.css.cjs +2 -0
  218. package/dist/components/forms/FileUpload/FileUpload.module.css.cjs.map +1 -0
  219. package/dist/components/forms/FileUpload/FileUpload.module.css.js +46 -0
  220. package/dist/components/forms/FileUpload/FileUpload.module.css.js.map +1 -0
  221. package/dist/components/forms/InputPassword/InputPassword.module.css.cjs +1 -1
  222. package/dist/components/forms/InputPassword/InputPassword.module.css.js +12 -12
  223. package/dist/components/forms/InputText/InputText.cjs +1 -1
  224. package/dist/components/forms/InputText/InputText.cjs.map +1 -1
  225. package/dist/components/forms/InputText/InputText.js +55 -47
  226. package/dist/components/forms/InputText/InputText.js.map +1 -1
  227. package/dist/components/forms/InputText/InputText.module.css.cjs +1 -1
  228. package/dist/components/forms/InputText/InputText.module.css.js +10 -10
  229. package/dist/components/forms/RadioGroup/RadioGroup.module.css.cjs +1 -1
  230. package/dist/components/forms/RadioGroup/RadioGroup.module.css.js +4 -4
  231. package/dist/components/forms/SegmentedControl/SegmentedControl.cjs +2 -0
  232. package/dist/components/forms/SegmentedControl/SegmentedControl.cjs.map +1 -0
  233. package/dist/components/forms/SegmentedControl/SegmentedControl.js +52 -0
  234. package/dist/components/forms/SegmentedControl/SegmentedControl.js.map +1 -0
  235. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.cjs +2 -0
  236. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.cjs.map +1 -0
  237. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.js +22 -0
  238. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.js.map +1 -0
  239. package/dist/components/forms/Select/Select.module.css.cjs +1 -1
  240. package/dist/components/forms/Select/Select.module.css.js +13 -13
  241. package/dist/components/forms/Switch/Switch.module.css.cjs +1 -1
  242. package/dist/components/forms/Switch/Switch.module.css.js +2 -2
  243. package/dist/components/icons/icons.cjs +1 -1
  244. package/dist/components/icons/icons.cjs.map +1 -1
  245. package/dist/components/icons/icons.js +198 -40
  246. package/dist/components/icons/icons.js.map +1 -1
  247. package/dist/components/navigation/SkipLink/SkipLink.cjs +2 -0
  248. package/dist/components/navigation/SkipLink/SkipLink.cjs.map +1 -0
  249. package/dist/components/navigation/SkipLink/SkipLink.js +9 -0
  250. package/dist/components/navigation/SkipLink/SkipLink.js.map +1 -0
  251. package/dist/components/navigation/SkipLink/SkipLink.module.css.cjs +2 -0
  252. package/dist/components/navigation/SkipLink/SkipLink.module.css.cjs.map +1 -0
  253. package/dist/components/navigation/SkipLink/SkipLink.module.css.js +8 -0
  254. package/dist/components/navigation/SkipLink/SkipLink.module.css.js.map +1 -0
  255. package/dist/components/navigation/Steps/Steps.cjs +2 -0
  256. package/dist/components/navigation/Steps/Steps.cjs.map +1 -0
  257. package/dist/components/navigation/Steps/Steps.js +30 -0
  258. package/dist/components/navigation/Steps/Steps.js.map +1 -0
  259. package/dist/components/navigation/Steps/Steps.module.css.cjs +2 -0
  260. package/dist/components/navigation/Steps/Steps.module.css.cjs.map +1 -0
  261. package/dist/components/navigation/Steps/Steps.module.css.js +26 -0
  262. package/dist/components/navigation/Steps/Steps.module.css.js.map +1 -0
  263. package/dist/components/navigation/Tabs/Tabs.cjs +1 -1
  264. package/dist/components/navigation/Tabs/Tabs.cjs.map +1 -1
  265. package/dist/components/navigation/Tabs/Tabs.js +88 -79
  266. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  267. package/dist/components/navigation/Tabs/Tabs.module.css.cjs +1 -1
  268. package/dist/components/navigation/Tabs/Tabs.module.css.js +18 -14
  269. package/dist/components/navigation/Tabs/Tabs.module.css.js.map +1 -1
  270. package/dist/components/overlays/Dialog/Dialog.cjs +1 -1
  271. package/dist/components/overlays/Dialog/Dialog.cjs.map +1 -1
  272. package/dist/components/overlays/Dialog/Dialog.js +11 -58
  273. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  274. package/dist/components/overlays/Dialog/DialogFrame.cjs +2 -0
  275. package/dist/components/overlays/Dialog/DialogFrame.cjs.map +1 -0
  276. package/dist/components/overlays/Dialog/DialogFrame.js +65 -0
  277. package/dist/components/overlays/Dialog/DialogFrame.js.map +1 -0
  278. package/dist/components/overlays/Drawer/Drawer.cjs +2 -0
  279. package/dist/components/overlays/Drawer/Drawer.cjs.map +1 -0
  280. package/dist/components/overlays/Drawer/Drawer.js +17 -0
  281. package/dist/components/overlays/Drawer/Drawer.js.map +1 -0
  282. package/dist/components/overlays/Drawer/Drawer.module.css.cjs +2 -0
  283. package/dist/components/overlays/Drawer/Drawer.module.css.cjs.map +1 -0
  284. package/dist/components/overlays/Drawer/Drawer.module.css.js +23 -0
  285. package/dist/components/overlays/Drawer/Drawer.module.css.js.map +1 -0
  286. package/dist/components/overlays/Menu/Menu.cjs +1 -1
  287. package/dist/components/overlays/Menu/Menu.cjs.map +1 -1
  288. package/dist/components/overlays/Menu/Menu.js +105 -86
  289. package/dist/components/overlays/Menu/Menu.js.map +1 -1
  290. package/dist/components/overlays/Menu/Menu.module.css.cjs +1 -1
  291. package/dist/components/overlays/Menu/Menu.module.css.js +24 -6
  292. package/dist/components/overlays/Menu/Menu.module.css.js.map +1 -1
  293. package/dist/design-system.css +1 -1
  294. package/dist/index.cjs +1 -1
  295. package/dist/index.js +184 -122
  296. package/dist/index.js.map +1 -1
  297. package/dist/types/components/actions/ButtonTile/ButtonTile.d.ts +14 -0
  298. package/dist/types/components/actions/ButtonTile/index.d.ts +2 -0
  299. package/dist/types/components/actions/Toolbar/Toolbar.d.ts +27 -0
  300. package/dist/types/components/actions/Toolbar/index.d.ts +2 -0
  301. package/dist/types/components/charts/ChartArea/ChartArea.d.ts +15 -4
  302. package/dist/types/components/charts/ChartBar/ChartBar.d.ts +11 -4
  303. package/dist/types/components/charts/ChartCombo/ChartCombo.d.ts +16 -4
  304. package/dist/types/components/charts/ChartDonut/ChartDonut.d.ts +5 -1
  305. package/dist/types/components/charts/ChartLine/ChartLine.d.ts +15 -4
  306. package/dist/types/components/charts/ChartPie/ChartPie.d.ts +5 -1
  307. package/dist/types/components/charts/ChartRadial/ChartRadial.d.ts +5 -1
  308. package/dist/types/components/charts/ChartSankey/ChartSankey.d.ts +5 -1
  309. package/dist/types/components/charts/ChartScatter/ChartScatter.d.ts +7 -1
  310. package/dist/types/components/charts/ChartSunburst/ChartSunburst.d.ts +11 -2
  311. package/dist/types/components/charts/ChartTooltip/ChartTooltip.d.ts +2 -0
  312. package/dist/types/components/charts/ChartTreemap/ChartTreemap.d.ts +11 -2
  313. package/dist/types/components/charts/ChartWaterfall/ChartWaterfall.d.ts +8 -3
  314. package/dist/types/components/charts/core/CartesianFrame.d.ts +6 -1
  315. package/dist/types/components/charts/core/ChartFrame.d.ts +7 -1
  316. package/dist/types/components/charts/core/PointBands.d.ts +22 -0
  317. package/dist/types/components/charts/core/cartesianLayout.d.ts +10 -4
  318. package/dist/types/components/charts/core/hoverPath.d.ts +10 -0
  319. package/dist/types/components/charts/core/index.d.ts +13 -3
  320. package/dist/types/components/charts/core/pointLabels.d.ts +13 -0
  321. package/dist/types/components/charts/core/tooltips.d.ts +49 -0
  322. package/dist/types/components/charts/core/useCartesianLayout.d.ts +20 -0
  323. package/dist/types/components/charts/core/useSeriesToggle.d.ts +15 -1
  324. package/dist/types/components/data-display/Accordion/Accordion.d.ts +6 -1
  325. package/dist/types/components/data-display/Accordion/index.d.ts +1 -1
  326. package/dist/types/components/data-display/SortableList/SortableList.d.ts +22 -0
  327. package/dist/types/components/data-display/SortableList/index.d.ts +2 -0
  328. package/dist/types/components/data-display/Tag/Tag.d.ts +13 -0
  329. package/dist/types/components/data-display/Tag/index.d.ts +2 -0
  330. package/dist/types/components/data-display/Timeline/Timeline.d.ts +15 -0
  331. package/dist/types/components/data-display/Timeline/index.d.ts +2 -0
  332. package/dist/types/components/feedback/Skeleton/Skeleton.d.ts +13 -0
  333. package/dist/types/components/feedback/Skeleton/index.d.ts +2 -0
  334. package/dist/types/components/feedback/Toast/ToastRegion.d.ts +2 -0
  335. package/dist/types/components/feedback/Toast/index.d.ts +3 -0
  336. package/dist/types/components/feedback/Toast/toastStore.d.ts +24 -0
  337. package/dist/types/components/forms/CheckboxGroup/CheckboxGroup.d.ts +28 -0
  338. package/dist/types/components/forms/CheckboxGroup/index.d.ts +2 -0
  339. package/dist/types/components/forms/ColorPicker/ColorPicker.d.ts +26 -0
  340. package/dist/types/components/forms/ColorPicker/index.d.ts +2 -0
  341. package/dist/types/components/forms/Field/Field.d.ts +6 -2
  342. package/dist/types/components/forms/Field/index.d.ts +1 -1
  343. package/dist/types/components/forms/FileUpload/FileUpload.d.ts +37 -0
  344. package/dist/types/components/forms/FileUpload/index.d.ts +2 -0
  345. package/dist/types/components/forms/InputText/InputText.d.ts +4 -2
  346. package/dist/types/components/forms/SegmentedControl/SegmentedControl.d.ts +23 -0
  347. package/dist/types/components/forms/SegmentedControl/index.d.ts +2 -0
  348. package/dist/types/components/icons/icons.d.ts +29 -0
  349. package/dist/types/components/icons/index.d.ts +1 -1
  350. package/dist/types/components/navigation/SkipLink/SkipLink.d.ts +7 -0
  351. package/dist/types/components/navigation/SkipLink/index.d.ts +2 -0
  352. package/dist/types/components/navigation/Steps/Steps.d.ts +16 -0
  353. package/dist/types/components/navigation/Steps/index.d.ts +2 -0
  354. package/dist/types/components/navigation/Tabs/Tabs.d.ts +5 -1
  355. package/dist/types/components/overlays/Dialog/Dialog.d.ts +2 -2
  356. package/dist/types/components/overlays/Dialog/DialogFrame.d.ts +7 -0
  357. package/dist/types/components/overlays/Drawer/Drawer.d.ts +9 -0
  358. package/dist/types/components/overlays/Drawer/index.d.ts +2 -0
  359. package/dist/types/components/overlays/Menu/Menu.d.ts +16 -2
  360. package/dist/types/components/overlays/Menu/index.d.ts +1 -1
  361. package/dist/types/index.d.ts +35 -7
  362. package/dist/types/utils/formatters/formatarNumero.d.ts +6 -1
  363. package/dist/types/utils/formatters/formatarTamanhoDeArquivo.d.ts +7 -0
  364. package/dist/types/utils/formatters/index.d.ts +3 -1
  365. package/dist/utils/formatters/formatarNumero.cjs +1 -1
  366. package/dist/utils/formatters/formatarNumero.cjs.map +1 -1
  367. package/dist/utils/formatters/formatarNumero.js +42 -17
  368. package/dist/utils/formatters/formatarNumero.js.map +1 -1
  369. package/dist/utils/formatters/formatarTamanhoDeArquivo.cjs +2 -0
  370. package/dist/utils/formatters/formatarTamanhoDeArquivo.cjs.map +1 -0
  371. package/dist/utils/formatters/formatarTamanhoDeArquivo.js +17 -0
  372. package/dist/utils/formatters/formatarTamanhoDeArquivo.js.map +1 -0
  373. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ChartDonut.cjs","sources":["../../../../src/components/charts/ChartDonut/ChartDonut.tsx"],"sourcesContent":["import {\n ChartFrame,\n arcPath,\n chartHeight,\n fitCenterText,\n ringDiameter,\n useChartMetrics,\n useSliceRing,\n type ChartHeight,\n type ChartLegendAlign,\n type ChartLegendPosition,\n type ChartSlice,\n} from '../core';\nimport { formatarNumero } from '../../../utils/formatters';\nimport styles from './ChartDonut.module.css';\n\nexport type { ChartSlice as ChartDonutSlice };\n\nexport interface ChartDonutProps {\n accent?: string;\n /** Texto sob o valor do centro, trocado pelo rotulo da fatia sob o ponteiro. */\n centerLabel?: string;\n defaultHiddenSlices?: readonly string[];\n emptyMessage?: string;\n formatPercent?: (ratio: number) => string;\n formatValue?: (value: number) => string;\n height?: ChartHeight;\n hiddenSlices?: readonly string[];\n legend?: ChartLegendPosition;\n legendAlign?: ChartLegendAlign;\n onHiddenSlicesChange?: (hidden: readonly string[]) => void;\n /** Fatia sob o ponteiro, ja agrupada, ou `null` ao sair dela. */\n onHoverSlice?: (slice: ChartSlice | null) => void;\n /** Rotulo da fatia que reune as pequenas. */\n otherLabel?: string;\n /** Raio dos cantos de cada fatia. Sem valor, o token de raio pequeno. */\n sliceRadius?: number;\n showCenter?: boolean;\n showLegendValues?: boolean;\n slices: readonly ChartSlice[];\n /** Fracao do total abaixo da qual a fatia entra no agrupamento. */\n smallSliceThreshold?: number;\n /** Espessura do anel, como fracao do raio. */\n thickness?: number;\n title: string;\n}\n\nexport function ChartDonut({\n accent,\n centerLabel = 'Total',\n defaultHiddenSlices,\n emptyMessage = 'Sem dados no período',\n formatPercent = (fracao) => `${Math.round(fracao * 100)}%`,\n formatValue = formatarNumero,\n height = 260,\n hiddenSlices,\n legend = 'right',\n legendAlign,\n onHiddenSlicesChange,\n onHoverSlice,\n otherLabel = 'Outros',\n showCenter = true,\n showLegendValues = true,\n sliceRadius,\n slices,\n smallSliceThreshold = 0.02,\n thickness = 0.38,\n title,\n}: ChartDonutProps) {\n const { font, height: alturaMedida, radius: raioDoCanto, ref, width } = useChartMetrics();\n const { fillHeight, value: alturaDoDesenho } = chartHeight(height, alturaMedida);\n\n const anel = useSliceRing({\n accent,\n defaultHiddenSlices,\n hiddenSlices,\n onHiddenSlicesChange,\n onHoverSlice,\n otherLabel,\n slices,\n smallSliceThreshold,\n });\n\n const diametro = ringDiameter(width, alturaDoDesenho);\n const raio = diametro / 2;\n const raioInterno = raio * (1 - Math.min(Math.max(thickness, 0), 1));\n\n const canto = sliceRadius ?? raioDoCanto;\n const focada = anel.focused === null ? undefined : anel.slices[anel.focused];\n const centro = fitCenterText(\n formatValue(focada ? Math.max(focada.value, 0) : anel.total),\n focada ? focada.label : centerLabel,\n font,\n raioInterno * 2,\n );\n\n return (\n <ChartFrame\n centerOrigin\n containerRef={ref}\n empty={anel.slices.length === 0 || slices.every((fatia) => !(fatia.value > 0))}\n emptyMessage={emptyMessage}\n fillHeight={fillHeight}\n height={alturaDoDesenho}\n legend={anel.slices.map((fatia, indice) => ({\n color: anel.colors[indice],\n hidden: anel.isHidden(fatia.label),\n label: fatia.label,\n value: showLegendValues ? formatPercent(anel.ratioOf(indice)) : undefined,\n }))}\n legendAlign={legendAlign}\n legendPosition={legend}\n onToggleSeries={anel.toggle}\n swatch=\"dot\"\n title={title}\n width={width}\n >\n {anel.slices.map((fatia, indice) => (\n <path\n aria-label={`${fatia.label}: ${formatValue(Math.max(fatia.value, 0))} (${formatPercent(anel.ratioOf(indice))})`}\n className={styles.slice}\n d={arcPath({\n ...anel.angles[indice],\n cornerRadius: canto,\n innerRadius: raioInterno,\n outerRadius: raio,\n })}\n fill={anel.colors[indice]}\n key={indice}\n onMouseEnter={() => anel.focus(indice)}\n onMouseLeave={() => anel.focus(null)}\n />\n ))}\n\n {showCenter && (\n <g className={styles.center}>\n <text\n className={styles.centerValue}\n dy={centro.size * 0.1}\n style={{ fontFamily: centro.family, fontSize: centro.size }}\n textAnchor=\"middle\"\n >\n {centro.value}\n </text>\n <text className={styles.centerLabel} dy={centro.lineHeight * 0.62} textAnchor=\"middle\">\n {centro.label}\n </text>\n </g>\n )}\n </ChartFrame>\n );\n}\n"],"names":["ChartDonut","accent","centerLabel","defaultHiddenSlices","emptyMessage","formatPercent","fracao","formatValue","formatarNumero","height","hiddenSlices","legend","legendAlign","onHiddenSlicesChange","onHoverSlice","otherLabel","showCenter","showLegendValues","sliceRadius","slices","smallSliceThreshold","thickness","title","font","alturaMedida","raioDoCanto","ref","width","useChartMetrics","fillHeight","alturaDoDesenho","chartHeight","anel","useSliceRing","raio","ringDiameter","raioInterno","canto","focada","centro","fitCenterText","jsxs","ChartFrame","fatia","indice","jsx","styles","arcPath"],"mappings":"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"}
1
+ {"version":3,"file":"ChartDonut.cjs","sources":["../../../../src/components/charts/ChartDonut/ChartDonut.tsx"],"sourcesContent":["import {\n ChartFrame,\n arcPath,\n chartHeight,\n fitCenterText,\n ringDiameter,\n useChartMetrics,\n sliceTooltip,\n useSliceRing,\n type ChartHeight,\n type ChartLegendAlign,\n type ChartLegendPosition,\n type ChartSlice,\n} from '../core';\nimport { formatarNumero } from '../../../utils/formatters';\nimport styles from './ChartDonut.module.css';\n\nexport type { ChartSlice as ChartDonutSlice };\n\nexport interface ChartDonutProps {\n accent?: string;\n /** Texto sob o valor do centro, trocado pelo rotulo da fatia sob o ponteiro. */\n centerLabel?: string;\n defaultHiddenSlices?: 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 hiddenSlices?: readonly string[];\n legend?: ChartLegendPosition;\n legendAlign?: ChartLegendAlign;\n onHiddenSlicesChange?: (hidden: readonly string[]) => void;\n /** Fatia sob o ponteiro, ja agrupada, ou `null` ao sair dela. */\n onHoverSlice?: (slice: ChartSlice | null) => void;\n /** Rotulo da fatia que reune as pequenas. */\n otherLabel?: string;\n /** Raio dos cantos de cada fatia. Sem valor, o token de raio pequeno. */\n sliceRadius?: number;\n showCenter?: boolean;\n showLegendValues?: boolean;\n /** Balao com a fatia sob o ponteiro, o valor e a parte do total. Desligue para montar o proprio `ChartTooltip`. */\n showTooltip?: boolean;\n slices: readonly ChartSlice[];\n /** Fracao do total abaixo da qual a fatia entra no agrupamento. */\n smallSliceThreshold?: number;\n /** Espessura do anel, como fracao do raio. */\n thickness?: number;\n title: string;\n}\n\nexport function ChartDonut({\n accent,\n centerLabel = 'Total',\n defaultHiddenSlices,\n emptyMessage = 'Sem dados no período',\n formatPercent = (fracao) => `${Math.round(fracao * 100)}%`,\n formatTooltipValue,\n formatValue = formatarNumero,\n height = 260,\n hiddenSlices,\n legend = 'right',\n legendAlign,\n onHiddenSlicesChange,\n onHoverSlice,\n otherLabel = 'Outros',\n showCenter = true,\n showLegendValues = true,\n showTooltip = true,\n sliceRadius,\n slices,\n smallSliceThreshold = 0.02,\n thickness = 0.38,\n title,\n}: ChartDonutProps) {\n const { font, height: alturaMedida, radius: raioDoCanto, ref, width } = useChartMetrics();\n const { fillHeight, value: alturaDoDesenho } = chartHeight(height, alturaMedida);\n\n const anel = useSliceRing({\n accent,\n defaultHiddenSlices,\n hiddenSlices,\n onHiddenSlicesChange,\n onHoverSlice,\n otherLabel,\n slices,\n smallSliceThreshold,\n });\n\n const diametro = ringDiameter(width, alturaDoDesenho);\n const raio = diametro / 2;\n const raioInterno = raio * (1 - Math.min(Math.max(thickness, 0), 1));\n\n const canto = sliceRadius ?? raioDoCanto;\n const focada = anel.focused === null ? undefined : anel.slices[anel.focused];\n const centro = fitCenterText(\n formatValue(focada ? Math.max(focada.value, 0) : anel.total),\n focada ? focada.label : centerLabel,\n font,\n raioInterno * 2,\n );\n\n return (\n <ChartFrame\n centerOrigin\n containerRef={ref}\n empty={anel.slices.length === 0 || slices.every((fatia) => !(fatia.value > 0))}\n emptyMessage={emptyMessage}\n fillHeight={fillHeight}\n height={alturaDoDesenho}\n legend={anel.slices.map((fatia, indice) => ({\n color: anel.colors[indice],\n hidden: anel.isHidden(fatia.label),\n label: fatia.label,\n value: showLegendValues ? formatPercent(anel.ratioOf(indice)) : undefined,\n }))}\n legendAlign={legendAlign}\n legendPosition={legend}\n onToggleSeries={anel.toggle}\n swatch=\"dot\"\n title={title}\n tooltip={\n showTooltip\n ? sliceTooltip({\n colors: anel.colors,\n formatPercent,\n formatValue: formatTooltipValue ?? formatValue,\n index: anel.focused,\n slices: anel.slices,\n total: anel.total,\n })\n : undefined\n }\n width={width}\n >\n {anel.slices.map((fatia, indice) => (\n <path\n aria-label={`${fatia.label}: ${formatValue(Math.max(fatia.value, 0))} (${formatPercent(anel.ratioOf(indice))})`}\n className={styles.slice}\n d={arcPath({\n ...anel.angles[indice],\n cornerRadius: canto,\n innerRadius: raioInterno,\n outerRadius: raio,\n })}\n fill={anel.colors[indice]}\n key={indice}\n onMouseEnter={() => anel.focus(indice)}\n onMouseLeave={() => anel.focus(null)}\n />\n ))}\n\n {showCenter && (\n <g className={styles.center}>\n <text\n className={styles.centerValue}\n dy={centro.size * 0.1}\n style={{ fontFamily: centro.family, fontSize: centro.size }}\n textAnchor=\"middle\"\n >\n {centro.value}\n </text>\n <text className={styles.centerLabel} dy={centro.lineHeight * 0.62} textAnchor=\"middle\">\n {centro.label}\n </text>\n </g>\n )}\n </ChartFrame>\n );\n}\n"],"names":["ChartDonut","accent","centerLabel","defaultHiddenSlices","emptyMessage","formatPercent","fracao","formatTooltipValue","formatValue","formatarNumero","height","hiddenSlices","legend","legendAlign","onHiddenSlicesChange","onHoverSlice","otherLabel","showCenter","showLegendValues","showTooltip","sliceRadius","slices","smallSliceThreshold","thickness","title","font","alturaMedida","raioDoCanto","ref","width","useChartMetrics","fillHeight","alturaDoDesenho","chartHeight","anel","useSliceRing","raio","ringDiameter","raioInterno","canto","focada","centro","fitCenterText","jsxs","ChartFrame","fatia","indice","sliceTooltip","jsx","styles","arcPath"],"mappings":"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"}
@@ -1,80 +1,91 @@
1
- import { jsxs as g, jsx as s } from "react/jsx-runtime";
2
- import l from "./ChartDonut.module.css.js";
3
- import { useChartMetrics as I } from "../core/useChartMetrics.js";
4
- import { useSliceRing as P } from "../core/useSliceRing.js";
5
- import { fitCenterText as k } from "../core/centerText.js";
6
- import { formatarNumero as q } from "../../../utils/formatters/formatarNumero.js";
7
- import { ChartFrame as B } from "../core/ChartFrame.js";
8
- import { arcPath as G } from "../core/arcs.js";
9
- import { chartHeight as J } from "../core/cartesianLayout.js";
10
- import { ringDiameter as K } from "../core/spacing.js";
11
- function re({
12
- accent: p,
1
+ import { jsxs as p, jsx as c } from "react/jsx-runtime";
2
+ import a from "./ChartDonut.module.css.js";
3
+ import { useChartMetrics as q } from "../core/useChartMetrics.js";
4
+ import { useSliceRing as B } from "../core/useSliceRing.js";
5
+ import { fitCenterText as G } from "../core/centerText.js";
6
+ import { formatarNumero as J } from "../../../utils/formatters/formatarNumero.js";
7
+ import { ChartFrame as K } from "../core/ChartFrame.js";
8
+ import { arcPath as P } from "../core/arcs.js";
9
+ import { sliceTooltip as Q } from "../core/tooltips.js";
10
+ import { chartHeight as U } from "../core/cartesianLayout.js";
11
+ import { ringDiameter as V } from "../core/spacing.js";
12
+ function se({
13
+ accent: g,
13
14
  centerLabel: x = "Total",
14
15
  defaultHiddenSlices: v,
15
16
  emptyMessage: M = "Sem dados no período",
16
- formatPercent: n = (i) => `${Math.round(i * 100)}%`,
17
- formatValue: m = q,
18
- height: b = 260,
19
- hiddenSlices: y,
20
- legend: C = "right",
21
- legendAlign: D,
22
- onHiddenSlicesChange: N,
23
- onHoverSlice: R,
24
- otherLabel: H = "Outros",
25
- showCenter: O = !0,
26
- showLegendValues: S = !0,
27
- sliceRadius: $,
28
- slices: c,
29
- smallSliceThreshold: z = 0.02,
30
- thickness: T = 0.38,
31
- title: j
17
+ formatPercent: i = (n) => `${Math.round(n * 100)}%`,
18
+ formatTooltipValue: b,
19
+ formatValue: s = J,
20
+ height: y = 260,
21
+ hiddenSlices: C,
22
+ legend: D = "right",
23
+ legendAlign: N,
24
+ onHiddenSlicesChange: R,
25
+ onHoverSlice: H,
26
+ otherLabel: O = "Outros",
27
+ showCenter: S = !0,
28
+ showLegendValues: T = !0,
29
+ showTooltip: $ = !0,
30
+ sliceRadius: z,
31
+ slices: m,
32
+ smallSliceThreshold: j = 0.02,
33
+ thickness: w = 0.38,
34
+ title: A
32
35
  }) {
33
- const { font: i, height: w, radius: A, ref: F, width: u } = I(), { fillHeight: L, value: d } = J(b, w), e = P({
34
- accent: p,
36
+ const { font: n, height: F, radius: L, ref: E, width: d } = q(), { fillHeight: I, value: u } = U(y, F), e = B({
37
+ accent: g,
35
38
  defaultHiddenSlices: v,
36
- hiddenSlices: y,
37
- onHiddenSlicesChange: N,
38
- onHoverSlice: R,
39
- otherLabel: H,
40
- slices: c,
41
- smallSliceThreshold: z
42
- }), h = K(u, d) / 2, f = h * (1 - Math.min(Math.max(T, 0), 1)), E = $ ?? A, a = e.focused === null ? void 0 : e.slices[e.focused], r = k(
43
- m(a ? Math.max(a.value, 0) : e.total),
44
- a ? a.label : x,
45
- i,
39
+ hiddenSlices: C,
40
+ onHiddenSlicesChange: R,
41
+ onHoverSlice: H,
42
+ otherLabel: O,
43
+ slices: m,
44
+ smallSliceThreshold: j
45
+ }), h = V(d, u) / 2, f = h * (1 - Math.min(Math.max(w, 0), 1)), k = z ?? L, l = e.focused === null ? void 0 : e.slices[e.focused], r = G(
46
+ s(l ? Math.max(l.value, 0) : e.total),
47
+ l ? l.label : x,
48
+ n,
46
49
  f * 2
47
50
  );
48
- return /* @__PURE__ */ g(
49
- B,
51
+ return /* @__PURE__ */ p(
52
+ K,
50
53
  {
51
54
  centerOrigin: !0,
52
- containerRef: F,
53
- empty: e.slices.length === 0 || c.every((t) => !(t.value > 0)),
55
+ containerRef: E,
56
+ empty: e.slices.length === 0 || m.every((t) => !(t.value > 0)),
54
57
  emptyMessage: M,
55
- fillHeight: L,
56
- height: d,
58
+ fillHeight: I,
59
+ height: u,
57
60
  legend: e.slices.map((t, o) => ({
58
61
  color: e.colors[o],
59
62
  hidden: e.isHidden(t.label),
60
63
  label: t.label,
61
- value: S ? n(e.ratioOf(o)) : void 0
64
+ value: T ? i(e.ratioOf(o)) : void 0
62
65
  })),
63
- legendAlign: D,
64
- legendPosition: C,
66
+ legendAlign: N,
67
+ legendPosition: D,
65
68
  onToggleSeries: e.toggle,
66
69
  swatch: "dot",
67
- title: j,
68
- width: u,
70
+ title: A,
71
+ tooltip: $ ? Q({
72
+ colors: e.colors,
73
+ formatPercent: i,
74
+ formatValue: b ?? s,
75
+ index: e.focused,
76
+ slices: e.slices,
77
+ total: e.total
78
+ }) : void 0,
79
+ width: d,
69
80
  children: [
70
- e.slices.map((t, o) => /* @__PURE__ */ s(
81
+ e.slices.map((t, o) => /* @__PURE__ */ c(
71
82
  "path",
72
83
  {
73
- "aria-label": `${t.label}: ${m(Math.max(t.value, 0))} (${n(e.ratioOf(o))})`,
74
- className: l.slice,
75
- d: G({
84
+ "aria-label": `${t.label}: ${s(Math.max(t.value, 0))} (${i(e.ratioOf(o))})`,
85
+ className: a.slice,
86
+ d: P({
76
87
  ...e.angles[o],
77
- cornerRadius: E,
88
+ cornerRadius: k,
78
89
  innerRadius: f,
79
90
  outerRadius: h
80
91
  }),
@@ -84,24 +95,24 @@ function re({
84
95
  },
85
96
  o
86
97
  )),
87
- O && /* @__PURE__ */ g("g", { className: l.center, children: [
88
- /* @__PURE__ */ s(
98
+ S && /* @__PURE__ */ p("g", { className: a.center, children: [
99
+ /* @__PURE__ */ c(
89
100
  "text",
90
101
  {
91
- className: l.centerValue,
102
+ className: a.centerValue,
92
103
  dy: r.size * 0.1,
93
104
  style: { fontFamily: r.family, fontSize: r.size },
94
105
  textAnchor: "middle",
95
106
  children: r.value
96
107
  }
97
108
  ),
98
- /* @__PURE__ */ s("text", { className: l.centerLabel, dy: r.lineHeight * 0.62, textAnchor: "middle", children: r.label })
109
+ /* @__PURE__ */ c("text", { className: a.centerLabel, dy: r.lineHeight * 0.62, textAnchor: "middle", children: r.label })
99
110
  ] })
100
111
  ]
101
112
  }
102
113
  );
103
114
  }
104
115
  export {
105
- re as ChartDonut
116
+ se as ChartDonut
106
117
  };
107
118
  //# sourceMappingURL=ChartDonut.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartDonut.js","sources":["../../../../src/components/charts/ChartDonut/ChartDonut.tsx"],"sourcesContent":["import {\n ChartFrame,\n arcPath,\n chartHeight,\n fitCenterText,\n ringDiameter,\n useChartMetrics,\n useSliceRing,\n type ChartHeight,\n type ChartLegendAlign,\n type ChartLegendPosition,\n type ChartSlice,\n} from '../core';\nimport { formatarNumero } from '../../../utils/formatters';\nimport styles from './ChartDonut.module.css';\n\nexport type { ChartSlice as ChartDonutSlice };\n\nexport interface ChartDonutProps {\n accent?: string;\n /** Texto sob o valor do centro, trocado pelo rotulo da fatia sob o ponteiro. */\n centerLabel?: string;\n defaultHiddenSlices?: readonly string[];\n emptyMessage?: string;\n formatPercent?: (ratio: number) => string;\n formatValue?: (value: number) => string;\n height?: ChartHeight;\n hiddenSlices?: readonly string[];\n legend?: ChartLegendPosition;\n legendAlign?: ChartLegendAlign;\n onHiddenSlicesChange?: (hidden: readonly string[]) => void;\n /** Fatia sob o ponteiro, ja agrupada, ou `null` ao sair dela. */\n onHoverSlice?: (slice: ChartSlice | null) => void;\n /** Rotulo da fatia que reune as pequenas. */\n otherLabel?: string;\n /** Raio dos cantos de cada fatia. Sem valor, o token de raio pequeno. */\n sliceRadius?: number;\n showCenter?: boolean;\n showLegendValues?: boolean;\n slices: readonly ChartSlice[];\n /** Fracao do total abaixo da qual a fatia entra no agrupamento. */\n smallSliceThreshold?: number;\n /** Espessura do anel, como fracao do raio. */\n thickness?: number;\n title: string;\n}\n\nexport function ChartDonut({\n accent,\n centerLabel = 'Total',\n defaultHiddenSlices,\n emptyMessage = 'Sem dados no período',\n formatPercent = (fracao) => `${Math.round(fracao * 100)}%`,\n formatValue = formatarNumero,\n height = 260,\n hiddenSlices,\n legend = 'right',\n legendAlign,\n onHiddenSlicesChange,\n onHoverSlice,\n otherLabel = 'Outros',\n showCenter = true,\n showLegendValues = true,\n sliceRadius,\n slices,\n smallSliceThreshold = 0.02,\n thickness = 0.38,\n title,\n}: ChartDonutProps) {\n const { font, height: alturaMedida, radius: raioDoCanto, ref, width } = useChartMetrics();\n const { fillHeight, value: alturaDoDesenho } = chartHeight(height, alturaMedida);\n\n const anel = useSliceRing({\n accent,\n defaultHiddenSlices,\n hiddenSlices,\n onHiddenSlicesChange,\n onHoverSlice,\n otherLabel,\n slices,\n smallSliceThreshold,\n });\n\n const diametro = ringDiameter(width, alturaDoDesenho);\n const raio = diametro / 2;\n const raioInterno = raio * (1 - Math.min(Math.max(thickness, 0), 1));\n\n const canto = sliceRadius ?? raioDoCanto;\n const focada = anel.focused === null ? undefined : anel.slices[anel.focused];\n const centro = fitCenterText(\n formatValue(focada ? Math.max(focada.value, 0) : anel.total),\n focada ? focada.label : centerLabel,\n font,\n raioInterno * 2,\n );\n\n return (\n <ChartFrame\n centerOrigin\n containerRef={ref}\n empty={anel.slices.length === 0 || slices.every((fatia) => !(fatia.value > 0))}\n emptyMessage={emptyMessage}\n fillHeight={fillHeight}\n height={alturaDoDesenho}\n legend={anel.slices.map((fatia, indice) => ({\n color: anel.colors[indice],\n hidden: anel.isHidden(fatia.label),\n label: fatia.label,\n value: showLegendValues ? formatPercent(anel.ratioOf(indice)) : undefined,\n }))}\n legendAlign={legendAlign}\n legendPosition={legend}\n onToggleSeries={anel.toggle}\n swatch=\"dot\"\n title={title}\n width={width}\n >\n {anel.slices.map((fatia, indice) => (\n <path\n aria-label={`${fatia.label}: ${formatValue(Math.max(fatia.value, 0))} (${formatPercent(anel.ratioOf(indice))})`}\n className={styles.slice}\n d={arcPath({\n ...anel.angles[indice],\n cornerRadius: canto,\n innerRadius: raioInterno,\n outerRadius: raio,\n })}\n fill={anel.colors[indice]}\n key={indice}\n onMouseEnter={() => anel.focus(indice)}\n onMouseLeave={() => anel.focus(null)}\n />\n ))}\n\n {showCenter && (\n <g className={styles.center}>\n <text\n className={styles.centerValue}\n dy={centro.size * 0.1}\n style={{ fontFamily: centro.family, fontSize: centro.size }}\n textAnchor=\"middle\"\n >\n {centro.value}\n </text>\n <text className={styles.centerLabel} dy={centro.lineHeight * 0.62} textAnchor=\"middle\">\n {centro.label}\n </text>\n </g>\n )}\n </ChartFrame>\n );\n}\n"],"names":["ChartDonut","accent","centerLabel","defaultHiddenSlices","emptyMessage","formatPercent","fracao","formatValue","formatarNumero","height","hiddenSlices","legend","legendAlign","onHiddenSlicesChange","onHoverSlice","otherLabel","showCenter","showLegendValues","sliceRadius","slices","smallSliceThreshold","thickness","title","font","alturaMedida","raioDoCanto","ref","width","useChartMetrics","fillHeight","alturaDoDesenho","chartHeight","anel","useSliceRing","raio","ringDiameter","raioInterno","canto","focada","centro","fitCenterText","jsxs","ChartFrame","fatia","indice","jsx","styles","arcPath"],"mappings":"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"}
1
+ {"version":3,"file":"ChartDonut.js","sources":["../../../../src/components/charts/ChartDonut/ChartDonut.tsx"],"sourcesContent":["import {\n ChartFrame,\n arcPath,\n chartHeight,\n fitCenterText,\n ringDiameter,\n useChartMetrics,\n sliceTooltip,\n useSliceRing,\n type ChartHeight,\n type ChartLegendAlign,\n type ChartLegendPosition,\n type ChartSlice,\n} from '../core';\nimport { formatarNumero } from '../../../utils/formatters';\nimport styles from './ChartDonut.module.css';\n\nexport type { ChartSlice as ChartDonutSlice };\n\nexport interface ChartDonutProps {\n accent?: string;\n /** Texto sob o valor do centro, trocado pelo rotulo da fatia sob o ponteiro. */\n centerLabel?: string;\n defaultHiddenSlices?: 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 hiddenSlices?: readonly string[];\n legend?: ChartLegendPosition;\n legendAlign?: ChartLegendAlign;\n onHiddenSlicesChange?: (hidden: readonly string[]) => void;\n /** Fatia sob o ponteiro, ja agrupada, ou `null` ao sair dela. */\n onHoverSlice?: (slice: ChartSlice | null) => void;\n /** Rotulo da fatia que reune as pequenas. */\n otherLabel?: string;\n /** Raio dos cantos de cada fatia. Sem valor, o token de raio pequeno. */\n sliceRadius?: number;\n showCenter?: boolean;\n showLegendValues?: boolean;\n /** Balao com a fatia sob o ponteiro, o valor e a parte do total. Desligue para montar o proprio `ChartTooltip`. */\n showTooltip?: boolean;\n slices: readonly ChartSlice[];\n /** Fracao do total abaixo da qual a fatia entra no agrupamento. */\n smallSliceThreshold?: number;\n /** Espessura do anel, como fracao do raio. */\n thickness?: number;\n title: string;\n}\n\nexport function ChartDonut({\n accent,\n centerLabel = 'Total',\n defaultHiddenSlices,\n emptyMessage = 'Sem dados no período',\n formatPercent = (fracao) => `${Math.round(fracao * 100)}%`,\n formatTooltipValue,\n formatValue = formatarNumero,\n height = 260,\n hiddenSlices,\n legend = 'right',\n legendAlign,\n onHiddenSlicesChange,\n onHoverSlice,\n otherLabel = 'Outros',\n showCenter = true,\n showLegendValues = true,\n showTooltip = true,\n sliceRadius,\n slices,\n smallSliceThreshold = 0.02,\n thickness = 0.38,\n title,\n}: ChartDonutProps) {\n const { font, height: alturaMedida, radius: raioDoCanto, ref, width } = useChartMetrics();\n const { fillHeight, value: alturaDoDesenho } = chartHeight(height, alturaMedida);\n\n const anel = useSliceRing({\n accent,\n defaultHiddenSlices,\n hiddenSlices,\n onHiddenSlicesChange,\n onHoverSlice,\n otherLabel,\n slices,\n smallSliceThreshold,\n });\n\n const diametro = ringDiameter(width, alturaDoDesenho);\n const raio = diametro / 2;\n const raioInterno = raio * (1 - Math.min(Math.max(thickness, 0), 1));\n\n const canto = sliceRadius ?? raioDoCanto;\n const focada = anel.focused === null ? undefined : anel.slices[anel.focused];\n const centro = fitCenterText(\n formatValue(focada ? Math.max(focada.value, 0) : anel.total),\n focada ? focada.label : centerLabel,\n font,\n raioInterno * 2,\n );\n\n return (\n <ChartFrame\n centerOrigin\n containerRef={ref}\n empty={anel.slices.length === 0 || slices.every((fatia) => !(fatia.value > 0))}\n emptyMessage={emptyMessage}\n fillHeight={fillHeight}\n height={alturaDoDesenho}\n legend={anel.slices.map((fatia, indice) => ({\n color: anel.colors[indice],\n hidden: anel.isHidden(fatia.label),\n label: fatia.label,\n value: showLegendValues ? formatPercent(anel.ratioOf(indice)) : undefined,\n }))}\n legendAlign={legendAlign}\n legendPosition={legend}\n onToggleSeries={anel.toggle}\n swatch=\"dot\"\n title={title}\n tooltip={\n showTooltip\n ? sliceTooltip({\n colors: anel.colors,\n formatPercent,\n formatValue: formatTooltipValue ?? formatValue,\n index: anel.focused,\n slices: anel.slices,\n total: anel.total,\n })\n : undefined\n }\n width={width}\n >\n {anel.slices.map((fatia, indice) => (\n <path\n aria-label={`${fatia.label}: ${formatValue(Math.max(fatia.value, 0))} (${formatPercent(anel.ratioOf(indice))})`}\n className={styles.slice}\n d={arcPath({\n ...anel.angles[indice],\n cornerRadius: canto,\n innerRadius: raioInterno,\n outerRadius: raio,\n })}\n fill={anel.colors[indice]}\n key={indice}\n onMouseEnter={() => anel.focus(indice)}\n onMouseLeave={() => anel.focus(null)}\n />\n ))}\n\n {showCenter && (\n <g className={styles.center}>\n <text\n className={styles.centerValue}\n dy={centro.size * 0.1}\n style={{ fontFamily: centro.family, fontSize: centro.size }}\n textAnchor=\"middle\"\n >\n {centro.value}\n </text>\n <text className={styles.centerLabel} dy={centro.lineHeight * 0.62} textAnchor=\"middle\">\n {centro.label}\n </text>\n </g>\n )}\n </ChartFrame>\n );\n}\n"],"names":["ChartDonut","accent","centerLabel","defaultHiddenSlices","emptyMessage","formatPercent","fracao","formatTooltipValue","formatValue","formatarNumero","height","hiddenSlices","legend","legendAlign","onHiddenSlicesChange","onHoverSlice","otherLabel","showCenter","showLegendValues","showTooltip","sliceRadius","slices","smallSliceThreshold","thickness","title","font","alturaMedida","raioDoCanto","ref","width","useChartMetrics","fillHeight","alturaDoDesenho","chartHeight","anel","useSliceRing","raio","ringDiameter","raioInterno","canto","focada","centro","fitCenterText","jsxs","ChartFrame","fatia","indice","sliceTooltip","jsx","styles","arcPath"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),m=require("react"),u=require("./ChartLine.module.css.cjs"),ee=require("../core/useChartMetrics.cjs"),te=require("../core/useSeriesToggle.cjs"),le=require("../palette/seriesColor.cjs"),c=require("../scales/scales.cjs"),q=require("../core/cartesianLayout.cjs"),ae=require("../core/spacing.cjs"),oe=require("../core/useTweenedNumbers.cjs"),se=require("../../../utils/formatters/formatarNumero.cjs"),re=require("../core/CartesianFrame.cjs"),ne=require("../core/shapes.cjs");function ie(n,a){return n[a]!==null&&!n[a-1]&&!n[a+1]}function ue({accent:n,categories:a,curve:H="smooth",defaultHiddenSeries:O,emptyMessage:A="Sem dados no período",formatValue:h=se.formatarNumero,height:V=260,includeZero:y=!0,hiddenSeries:z,labelAngle:_="auto",legend:B="bottom",legendAlign:E,onHiddenSeriesChange:G,series:o,showDataLabels:L=!1,showDots:I=!1,title:J,xAxis:C="visible",yAxis:M="visible",yAxisRight:N="hidden"}){const{font:j,height:K,ref:Q,width:T}=ee.useChartMetrics(),{fillHeight:U,value:v}=q.chartHeight(V,K),{isHidden:d,toggle:W}=te.useSeriesToggle({defaultHiddenSeries:O,hiddenSeries:z,onHiddenSeriesChange:G}),p=m.useMemo(()=>le.resolveSeriesColors(o,{accent:n}),[n,o]),x=m.useMemo(()=>c.mergeDomains(o.filter(e=>!d(e.label)).map(e=>c.domainOf(e.values.filter(t=>t!==null),{includeZero:y}))),[y,d,o]),k=q.valueLabelsFor(x,v,h),{margins:X,plot:s,rotation:Y}=q.cartesianLayout({bottomLabels:a,font:j,height:v,labelAngle:_,leftLabels:k,rightLabels:k,topRoom:L?ae.valueLabelRoom(j):0,width:T,xAxis:C,yAxis:M,yAxisRight:N}),F=m.useMemo(()=>c.pointScale({domain:a,padding:0,range:[0,s.width]}),[a,s.width]),R=m.useMemo(()=>c.linearScale({domain:x,range:[s.height,0]}),[x,s.height]),[S,$]=oe.useTweenedNumbers(R.domain()),b=m.useMemo(()=>c.linearScale({domain:{min:S,max:$},nice:!1,range:[s.height,0]}),[$,S,s.height]),w=c.ticksFor(R,s.height),g=o.map(e=>a.map((t,f)=>{const l=e.values[f];return l==null||!Number.isFinite(l)?null:{x:F(t)??0,y:b(l)}})),Z=a.map(e=>({label:e,position:F(e)??0})),D=w.map(e=>({label:h(e),position:b(e)}));return i.jsx(re.CartesianFrame,{containerRef:Q,empty:o.length===0||a.length===0,emptyMessage:A,fillHeight:U,grid:[{baseline:b(0),lines:w.map(e=>b(e)),orientation:"horizontal"}],height:v,legend:o.map((e,t)=>({color:p[t],hidden:d(e.label),label:e.label})),legendAlign:E,legendPosition:B,margins:X,onToggleSeries:W,plot:s,title:J,width:T,xAxis:{labelRotation:Y,ticks:Z,visibility:C},yAxis:{hideLine:!0,ticks:D,visibility:M},yAxisRight:{hideLine:!0,ticks:D,visibility:N},children:o.map((e,t)=>{const f=d(e.label);return i.jsxs("g",{"aria-hidden":f||void 0,className:`${u.default.series} ${f?u.default.seriesOff:""}`,children:[i.jsx("path",{className:u.default.line,d:ne.linePath(g[t],H),fill:"none",stroke:p[t]}),g[t].map((l,r)=>{if(l===null)return null;const P=`${e.label}, ${a[r]}: ${h(e.values[r]??0)}`;return i.jsx("circle",{"aria-label":P,className:I||ie(g[t],r)?u.default.dotVisible:u.default.dot,cx:l.x,cy:l.y,fill:p[t],r:4,children:i.jsx("title",{children:P})},r)}),L&&g[t].map((l,r)=>l===null?null:i.jsx("text",{className:u.default.valueLabel,textAnchor:"middle",x:l.x,y:l.y-10,children:h(e.values[r]??0)},r))]},t)})})}exports.ChartLine=ue;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),m=require("react"),i=require("./ChartLine.module.css.cjs"),pe=require("../core/useChartMetrics.cjs"),G=require("../core/useSeriesToggle.cjs"),fe=require("../palette/seriesColor.cjs"),d=require("../scales/scales.cjs"),C=require("../core/cartesianLayout.cjs"),xe=require("../core/useCartesianLayout.cjs"),qe=require("../core/spacing.cjs"),ye=require("../core/useHoveredBand.cjs"),Ce=require("../core/useTweenedNumbers.cjs"),j=require("../core/PointBands.cjs"),Le=require("../../../utils/formatters/formatarNumero.cjs"),He=require("../core/CartesianFrame.cjs"),Pe=require("../core/shapes.cjs"),je=require("../core/pointLabels.cjs"),Me=require("../core/tooltips.cjs");function Ne(u,a){return u[a]!==null&&!u[a-1]&&!u[a+1]}function ke({accent:u,categories:a,curve:J="smooth",defaultHiddenSeries:K,emptyMessage:Q="Sem dados no período",formatTooltipValue:U,formatValue:h=Le.formatarNumero,height:W=260,includeZero:M=!0,hiddenSeries:X,labelAngle:Z="auto",legend:ee="bottom",legendAlign:oe,onHiddenSeriesChange:te,onHoverCategory:N,series:n,showDataLabels:g="hidden",showDots:k="onHover",showTooltip:F=!0,title:ae,xAxis:S="visible",yAxis:$="visible",yAxisRight:R="hidden"}){const{font:v,height:ne,ref:le,width:T}=pe.useChartMetrics(),{fillHeight:re,value:L}=C.chartHeight(W,ne),{isHidden:b,isOutOfScale:O,toggle:se}=G.useSeriesToggle({defaultHiddenSeries:K,hiddenSeries:X,labels:n.map(e=>e.label),onHiddenSeriesChange:te}),p=m.useMemo(()=>fe.resolveSeriesColors(n,{accent:u}),[u,n]),H=m.useMemo(()=>d.mergeDomains(G.seriesInScale(n,O).map(e=>d.domainOf(e.values.filter(o=>o!==null),{includeZero:M}))),[M,O,n]),A=C.valueLabelsFor(H,L,h),{axisReveal:ie,margins:ue,plot:l,rotation:ce}=xe.useCartesianLayout({bottomLabels:a,font:v,height:L,labelAngle:Z,leftLabels:A,rightLabels:A,topRoom:g==="hidden"?0:qe.valueLabelRoom(v),width:T,xAxis:S,yAxis:$,yAxisRight:R}),B=m.useMemo(()=>d.pointScale({domain:a,padding:0,range:[0,l.width]}),[a,l.width]),{hover:me,hovered:f}=ye.useHoveredBand(N),[de,he]=m.useState(null),P=F||N!==void 0||k==="onHover"||g==="onHover",w=m.useMemo(()=>d.linearScale({domain:H,range:[l.height,0]}),[H,l.height]),[D,E]=Ce.useTweenedNumbers(w.domain()),x=m.useMemo(()=>d.linearScale({domain:{min:D,max:E},nice:!1,range:[l.height,0]}),[E,D,l.height]),z=d.ticksFor(w,l.height),c=n.map(e=>a.map((o,q)=>{const t=e.values[q];return t==null||!Number.isFinite(t)?null:{x:B(o)??0,y:x(t)}})),I=j.nearestSeriesAt(c,f,de,e=>b(n[e].label)),V=a.map(e=>({label:e,position:B(e)??0})),Y=V.map(e=>e.position),_=z.map(e=>({label:h(e),position:x(e)}));return s.jsxs(He.CartesianFrame,{axisReveal:ie,containerRef:le,empty:n.length===0||a.length===0,emptyMessage:Q,fillHeight:re,grid:[{baseline:x(0),lines:z.map(e=>x(e)),orientation:"horizontal"}],height:L,legend:n.map((e,o)=>({color:p[o],hidden:b(e.label),label:e.label})),legendAlign:oe,legendPosition:ee,margins:ue,onToggleSeries:se,plot:l,title:ae,tooltip:F?Me.categoryTooltip({categories:a,colors:p,format:U??h,index:f,isHidden:b,series:n}):void 0,width:T,xAxis:{labelRotation:ce,ticks:V,visibility:S},yAxis:{hideLine:!0,ticks:_,visibility:$},yAxisRight:{hideLine:!0,ticks:_,visibility:R},children:[P&&f!==null&&s.jsx(j.PointCursor,{plot:l,position:Y[f]}),n.map((e,o)=>{const q=b(e.label);return s.jsxs("g",{"aria-hidden":q||void 0,className:`${i.default.series} ${q?i.default.seriesOff:""}`,children:[s.jsx("path",{className:i.default.line,d:Pe.linePath(c[o],J),fill:"none",stroke:p[o]}),c[o].map((t,r)=>{if(t===null)return null;const y=`${e.label}, ${a[r]}: ${h(e.values[r]??0)}`;return s.jsx("circle",{"aria-label":y,className:C.markShown(k,o===I)||Ne(c[o],r)?i.default.dotVisible:i.default.dot,cx:t.x,cy:t.y,stroke:p[o],r:4,children:!P&&s.jsx("title",{children:y})},r)}),g!=="hidden"&&c[o].map((t,r)=>{if(t===null)return null;const{below:y,dx:be,textAnchor:ge}=je.pointLabelPlacement(c,o,r,v.lineHeight,ve=>b(n[ve].label));return s.jsx("text",{className:`${i.default.valueLabel} ${C.markShown(g,o===I)?"":i.default.valueLabelHidden}`,textAnchor:ge,x:t.x+be,y:y?t.y+v.lineHeight+2:t.y-10,children:h(e.values[r]??0)},r)})]},o)}),P&&s.jsx(j.PointBands,{onHover:me,onPointerY:he,plot:l,positions:Y})]})}exports.ChartLine=ke;
2
2
  //# sourceMappingURL=ChartLine.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartLine.cjs","sources":["../../../../src/components/charts/ChartLine/ChartLine.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport {\n CartesianFrame,\n cartesianLayout,\n chartHeight,\n linePath,\n useChartMetrics,\n useSeriesToggle,\n useTweenedNumbers,\n valueLabelRoom,\n valueLabelsFor,\n type AxisLabelAngle,\n type AxisTick,\n type AxisVisibility,\n type ChartCurve,\n type ChartHeight,\n type ChartLegendAlign,\n type ChartLegendPosition,\n type ChartPoint,\n} from '../core';\nimport { resolveSeriesColors, type SeriesAppearance } from '../palette';\nimport { domainOf, linearScale, mergeDomains, pointScale, ticksFor } from '../scales';\nimport { formatarNumero } from '../../../utils/formatters';\nimport styles from './ChartLine.module.css';\n/**\n * Ponto sem vizinho desenhado. A curva entre ele e o nada nao tem tracado, e o\n * marcador so no hover deixaria o dado invisivel — entao ele aparece sempre.\n */\nfunction isolado(pontos: readonly (ChartPoint | null)[], indice: number) {\n return pontos[indice] !== null && !pontos[indice - 1] && !pontos[indice + 1];\n}\n\n\nexport interface ChartLineSeries extends SeriesAppearance {\n label: string;\n values: readonly (number | null)[];\n}\n\nexport interface ChartLineProps {\n accent?: string;\n categories: readonly string[];\n curve?: ChartCurve;\n defaultHiddenSeries?: readonly string[];\n emptyMessage?: string;\n formatValue?: (value: number) => string;\n /**\n * Inclui o zero no dominio do eixo de valor. Ligado por padrao, porque marca\n * que nao parte do zero exagera a diferenca; para medidas que nao se comparam\n * a ele — um ano, uma temperatura — desligue; um ano pede tambem um formato sem separador de milhar em `formatValue`.\n */\n includeZero?: boolean;\n height?: ChartHeight;\n hiddenSeries?: readonly string[];\n labelAngle?: AxisLabelAngle;\n legend?: ChartLegendPosition;\n legendAlign?: ChartLegendAlign;\n onHiddenSeriesChange?: (hidden: readonly string[]) => void;\n series: readonly ChartLineSeries[];\n showDataLabels?: boolean;\n showDots?: boolean;\n title: string;\n xAxis?: AxisVisibility;\n yAxis?: AxisVisibility;\n yAxisRight?: AxisVisibility;\n}\n\nexport function ChartLine({\n accent,\n categories,\n curve = 'smooth',\n defaultHiddenSeries,\n emptyMessage = 'Sem dados no período',\n formatValue = formatarNumero,\n height = 260,\n includeZero = true,\n hiddenSeries,\n labelAngle = 'auto',\n legend = 'bottom',\n legendAlign,\n onHiddenSeriesChange,\n series,\n showDataLabels = false,\n showDots = false,\n title,\n xAxis = 'visible',\n yAxis = 'visible',\n yAxisRight = 'hidden',\n}: ChartLineProps) {\n const { font, height: alturaMedida, ref, width } = useChartMetrics();\n const { fillHeight, value: alturaDoDesenho } = chartHeight(height, alturaMedida);\n const { isHidden, toggle } = useSeriesToggle({ defaultHiddenSeries, hiddenSeries, onHiddenSeriesChange });\n\n // A cor sai da lista inteira, e nao das visiveis: desligar uma serie nao pode\n // repintar as demais.\n const cores = useMemo(() => resolveSeriesColors(series, { accent }), [accent, series]);\n\n const dominio = useMemo(\n () =>\n mergeDomains(\n series\n .filter((serie) => !isHidden(serie.label))\n .map((serie) => domainOf(serie.values.filter((valor) => valor !== null), { includeZero })),\n ),\n [includeZero, isHidden, series],\n );\n\n const rotulosDeValor = valueLabelsFor(dominio, alturaDoDesenho, formatValue);\n\n const { margins, plot, rotation } = cartesianLayout({\n bottomLabels: categories,\n font,\n height: alturaDoDesenho,\n labelAngle,\n leftLabels: rotulosDeValor,\n rightLabels: rotulosDeValor,\n topRoom: showDataLabels ? valueLabelRoom(font) : 0,\n width,\n xAxis,\n yAxis,\n yAxisRight,\n });\n\n const escalaCategorias = useMemo(\n () => pointScale({ domain: categories, padding: 0, range: [0, plot.width] }),\n [categories, plot.width],\n );\n\n // A escala alvo fixa as marcas; a animada posiciona o desenho. Sem separar as\n // duas, as marcas exibiriam valores quebrados durante a transicao.\n const escalaAlvo = useMemo(\n () => linearScale({ domain: dominio, range: [plot.height, 0] }),\n [dominio, plot.height],\n );\n\n const [minimo, maximo] = useTweenedNumbers(escalaAlvo.domain());\n\n const escalaValores = useMemo(\n () => linearScale({ domain: { min: minimo, max: maximo }, nice: false, range: [plot.height, 0] }),\n [maximo, minimo, plot.height],\n );\n\n const marcasDeValor = ticksFor(escalaAlvo, plot.height);\n\n const pontosPorSerie = series.map((serie) =>\n categories.map<ChartPoint | null>((categoria, indice) => {\n const valor = serie.values[indice];\n\n if (valor === null || valor === undefined || !Number.isFinite(valor)) {\n return null;\n }\n\n return { x: escalaCategorias(categoria) ?? 0, y: escalaValores(valor) };\n }),\n );\n\n const marcasCategoria: AxisTick[] = categories.map((categoria) => ({\n label: categoria,\n position: escalaCategorias(categoria) ?? 0,\n }));\n\n const marcasValor: AxisTick[] = marcasDeValor.map((valor) => ({\n label: formatValue(valor),\n position: escalaValores(valor),\n }));\n\n return (\n <CartesianFrame\n containerRef={ref}\n empty={series.length === 0 || categories.length === 0}\n emptyMessage={emptyMessage}\n fillHeight={fillHeight}\n grid={[\n {\n baseline: escalaValores(0),\n lines: marcasDeValor.map((valor) => escalaValores(valor)),\n orientation: 'horizontal',\n },\n ]}\n height={alturaDoDesenho}\n legend={series.map((serie, indice) => ({\n color: cores[indice],\n hidden: isHidden(serie.label),\n label: serie.label,\n }))}\n legendAlign={legendAlign}\n legendPosition={legend}\n margins={margins}\n onToggleSeries={toggle}\n plot={plot}\n title={title}\n width={width}\n xAxis={{ labelRotation: rotation, ticks: marcasCategoria, visibility: xAxis }}\n yAxis={{ hideLine: true, ticks: marcasValor, visibility: yAxis }}\n yAxisRight={{ hideLine: true, ticks: marcasValor, visibility: yAxisRight }}\n >\n {series.map((serie, indiceSerie) => {\n const oculta = isHidden(serie.label);\n\n return (\n <g\n aria-hidden={oculta || undefined}\n className={`${styles.series} ${oculta ? styles.seriesOff : ''}`}\n key={indiceSerie}\n >\n <path\n className={styles.line}\n d={linePath(pontosPorSerie[indiceSerie], curve)}\n fill=\"none\"\n stroke={cores[indiceSerie]}\n />\n\n {pontosPorSerie[indiceSerie].map((ponto, indice) => {\n if (ponto === null) {\n return null;\n }\n\n const descricao = `${serie.label}, ${categories[indice]}: ${formatValue(serie.values[indice] ?? 0)}`;\n\n return (\n <circle\n aria-label={descricao}\n className={\n showDots || isolado(pontosPorSerie[indiceSerie], indice)\n ? styles.dotVisible\n : styles.dot\n }\n cx={ponto.x}\n cy={ponto.y}\n fill={cores[indiceSerie]}\n key={indice}\n r={4}\n >\n <title>{descricao}</title>\n </circle>\n );\n })}\n\n {showDataLabels &&\n pontosPorSerie[indiceSerie].map((ponto, indice) =>\n ponto === null ? null : (\n <text\n className={styles.valueLabel}\n key={indice}\n textAnchor=\"middle\"\n x={ponto.x}\n y={ponto.y - 10}\n >\n {formatValue(serie.values[indice] ?? 0)}\n </text>\n ),\n )}\n </g>\n );\n })}\n </CartesianFrame>\n );\n}\n"],"names":["isolado","pontos","indice","ChartLine","accent","categories","curve","defaultHiddenSeries","emptyMessage","formatValue","formatarNumero","height","includeZero","hiddenSeries","labelAngle","legend","legendAlign","onHiddenSeriesChange","series","showDataLabels","showDots","title","xAxis","yAxis","yAxisRight","font","alturaMedida","ref","width","useChartMetrics","fillHeight","alturaDoDesenho","chartHeight","isHidden","toggle","useSeriesToggle","cores","useMemo","resolveSeriesColors","dominio","mergeDomains","serie","domainOf","valor","rotulosDeValor","valueLabelsFor","margins","plot","rotation","cartesianLayout","valueLabelRoom","escalaCategorias","pointScale","escalaAlvo","linearScale","minimo","maximo","useTweenedNumbers","escalaValores","marcasDeValor","ticksFor","pontosPorSerie","categoria","marcasCategoria","marcasValor","jsx","CartesianFrame","indiceSerie","oculta","jsxs","styles","linePath","ponto","descricao"],"mappings":"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"}
1
+ {"version":3,"file":"ChartLine.cjs","sources":["../../../../src/components/charts/ChartLine/ChartLine.tsx"],"sourcesContent":["import { useMemo, useState } from 'react';\nimport {\n CartesianFrame,\n categoryTooltip,\n PointBands,\n PointCursor,\n seriesInScale,\n useCartesianLayout,\n chartHeight,\n linePath,\n markShown,\n nearestSeriesAt,\n pointLabelPlacement,\n useChartMetrics,\n useHoveredBand,\n useSeriesToggle,\n useTweenedNumbers,\n valueLabelRoom,\n valueLabelsFor,\n type AxisLabelAngle,\n type AxisTick,\n type AxisVisibility,\n type ChartCurve,\n type ChartHeight,\n type ChartLegendAlign,\n type ChartLegendPosition,\n type ChartPoint,\n type MarkVisibility,\n} from '../core';\nimport { resolveSeriesColors, type SeriesAppearance } from '../palette';\nimport { domainOf, linearScale, mergeDomains, pointScale, ticksFor } from '../scales';\nimport { formatarNumero } from '../../../utils/formatters';\nimport styles from './ChartLine.module.css';\n/**\n * Ponto sem vizinho desenhado. A curva entre ele e o nada nao tem tracado, e o\n * marcador so no hover deixaria o dado invisivel — entao ele aparece sempre.\n */\nfunction isolado(pontos: readonly (ChartPoint | null)[], indice: number) {\n return pontos[indice] !== null && !pontos[indice - 1] && !pontos[indice + 1];\n}\n\n\nexport interface ChartLineSeries extends SeriesAppearance {\n label: string;\n values: readonly (number | null)[];\n}\n\nexport interface ChartLineProps {\n accent?: string;\n categories: readonly string[];\n curve?: ChartCurve;\n defaultHiddenSeries?: 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 /**\n * Inclui o zero no dominio do eixo de valor. Ligado por padrao, porque marca\n * que nao parte do zero exagera a diferenca; para medidas que nao se comparam\n * a ele — um ano, uma temperatura — desligue; um ano pede tambem um formato sem separador de milhar em `formatValue`.\n */\n includeZero?: boolean;\n height?: ChartHeight;\n hiddenSeries?: readonly string[];\n labelAngle?: AxisLabelAngle;\n legend?: ChartLegendPosition;\n legendAlign?: ChartLegendAlign;\n onHiddenSeriesChange?: (hidden: readonly string[]) => void;\n /** Indice da categoria mais proxima do ponteiro, ou `null` ao sair. */\n onHoverCategory?: (index: number | null) => void;\n series: readonly ChartLineSeries[];\n /** Valor acima de cada ponto: sempre, nunca, ou so os da serie mais proxima do ponteiro. */\n showDataLabels?: MarkVisibility;\n /** Pontos de cada valor: sempre, nunca, ou so os da serie mais proxima do ponteiro. */\n showDots?: MarkVisibility;\n /**\n * Balao com as series da categoria mais proxima do ponteiro. Desligue para montar o proprio\n * `ChartTooltip` pela costura; sem balao nem costura, o ponto volta a ter o `<title>`.\n */\n showTooltip?: boolean;\n title: string;\n xAxis?: AxisVisibility;\n yAxis?: AxisVisibility;\n yAxisRight?: AxisVisibility;\n}\n\nexport function ChartLine({\n accent,\n categories,\n curve = 'smooth',\n defaultHiddenSeries,\n emptyMessage = 'Sem dados no período',\n formatTooltipValue,\n formatValue = formatarNumero,\n height = 260,\n includeZero = true,\n hiddenSeries,\n labelAngle = 'auto',\n legend = 'bottom',\n legendAlign,\n onHiddenSeriesChange,\n onHoverCategory,\n series,\n showDataLabels = 'hidden',\n showDots = 'onHover',\n showTooltip = true,\n title,\n xAxis = 'visible',\n yAxis = 'visible',\n yAxisRight = 'hidden',\n}: ChartLineProps) {\n const { font, height: alturaMedida, ref, width } = useChartMetrics();\n const { fillHeight, value: alturaDoDesenho } = chartHeight(height, alturaMedida);\n const { isHidden, isOutOfScale, toggle } = useSeriesToggle({\n defaultHiddenSeries,\n hiddenSeries,\n labels: series.map((serie) => serie.label),\n onHiddenSeriesChange,\n });\n\n // A cor sai da lista inteira, e nao das visiveis: desligar uma serie nao pode\n // repintar as demais.\n const cores = useMemo(() => resolveSeriesColors(series, { accent }), [accent, series]);\n\n const dominio = useMemo(\n () =>\n mergeDomains(\n seriesInScale(series, isOutOfScale).map((serie) =>\n domainOf(\n serie.values.filter((valor) => valor !== null),\n { includeZero },\n ),\n ),\n ),\n [includeZero, isOutOfScale, series],\n );\n\n const rotulosDeValor = valueLabelsFor(dominio, alturaDoDesenho, formatValue);\n\n const { axisReveal, margins, plot, rotation } = useCartesianLayout({\n bottomLabels: categories,\n font,\n height: alturaDoDesenho,\n labelAngle,\n leftLabels: rotulosDeValor,\n rightLabels: rotulosDeValor,\n topRoom: showDataLabels === 'hidden' ? 0 : valueLabelRoom(font),\n width,\n xAxis,\n yAxis,\n yAxisRight,\n });\n\n const escalaCategorias = useMemo(\n () => pointScale({ domain: categories, padding: 0, range: [0, plot.width] }),\n [categories, plot.width],\n );\n\n const { hover: focarCategoria, hovered: categoriaEmFoco } = useHoveredBand(onHoverCategory);\n const [alturaDoPonteiro, setAlturaDoPonteiro] = useState<number | null>(null);\n const comFaixas =\n showTooltip || onHoverCategory !== undefined || showDots === 'onHover' || showDataLabels === 'onHover';\n\n // A escala alvo fixa as marcas; a animada posiciona o desenho. Sem separar as\n // duas, as marcas exibiriam valores quebrados durante a transicao.\n const escalaAlvo = useMemo(\n () => linearScale({ domain: dominio, range: [plot.height, 0] }),\n [dominio, plot.height],\n );\n\n const [minimo, maximo] = useTweenedNumbers(escalaAlvo.domain());\n\n const escalaValores = useMemo(\n () => linearScale({ domain: { min: minimo, max: maximo }, nice: false, range: [plot.height, 0] }),\n [maximo, minimo, plot.height],\n );\n\n const marcasDeValor = ticksFor(escalaAlvo, plot.height);\n\n const pontosPorSerie = series.map((serie) =>\n categories.map<ChartPoint | null>((categoria, indice) => {\n const valor = serie.values[indice];\n\n if (valor === null || valor === undefined || !Number.isFinite(valor)) {\n return null;\n }\n\n return { x: escalaCategorias(categoria) ?? 0, y: escalaValores(valor) };\n }),\n );\n\n const serieEmFoco = nearestSeriesAt(pontosPorSerie, categoriaEmFoco, alturaDoPonteiro, (indice) =>\n isHidden(series[indice].label),\n );\n\n const marcasCategoria: AxisTick[] = categories.map((categoria) => ({\n label: categoria,\n position: escalaCategorias(categoria) ?? 0,\n }));\n const posicoesCategoria = marcasCategoria.map((marca) => marca.position);\n\n const marcasValor: AxisTick[] = marcasDeValor.map((valor) => ({\n label: formatValue(valor),\n position: escalaValores(valor),\n }));\n\n return (\n <CartesianFrame\n axisReveal={axisReveal}\n containerRef={ref}\n empty={series.length === 0 || categories.length === 0}\n emptyMessage={emptyMessage}\n fillHeight={fillHeight}\n grid={[\n {\n baseline: escalaValores(0),\n lines: marcasDeValor.map((valor) => escalaValores(valor)),\n orientation: 'horizontal',\n },\n ]}\n height={alturaDoDesenho}\n legend={series.map((serie, indice) => ({\n color: cores[indice],\n hidden: isHidden(serie.label),\n label: serie.label,\n }))}\n legendAlign={legendAlign}\n legendPosition={legend}\n margins={margins}\n onToggleSeries={toggle}\n plot={plot}\n title={title}\n tooltip={\n showTooltip\n ? categoryTooltip({\n categories,\n colors: cores,\n format: formatTooltipValue ?? formatValue,\n index: categoriaEmFoco,\n isHidden,\n series,\n })\n : undefined\n }\n width={width}\n xAxis={{ labelRotation: rotation, ticks: marcasCategoria, visibility: xAxis }}\n yAxis={{ hideLine: true, ticks: marcasValor, visibility: yAxis }}\n yAxisRight={{ hideLine: true, ticks: marcasValor, visibility: yAxisRight }}\n >\n {comFaixas && categoriaEmFoco !== null && (\n <PointCursor plot={plot} position={posicoesCategoria[categoriaEmFoco]} />\n )}\n\n {series.map((serie, indiceSerie) => {\n const oculta = isHidden(serie.label);\n\n return (\n <g\n aria-hidden={oculta || undefined}\n className={`${styles.series} ${oculta ? styles.seriesOff : ''}`}\n key={indiceSerie}\n >\n <path\n className={styles.line}\n d={linePath(pontosPorSerie[indiceSerie], curve)}\n fill=\"none\"\n stroke={cores[indiceSerie]}\n />\n\n {pontosPorSerie[indiceSerie].map((ponto, indice) => {\n if (ponto === null) {\n return null;\n }\n\n const descricao = `${serie.label}, ${categories[indice]}: ${formatValue(serie.values[indice] ?? 0)}`;\n\n return (\n <circle\n aria-label={descricao}\n className={\n markShown(showDots, indiceSerie === serieEmFoco) || isolado(pontosPorSerie[indiceSerie], indice)\n ? styles.dotVisible\n : styles.dot\n }\n cx={ponto.x}\n cy={ponto.y}\n stroke={cores[indiceSerie]}\n key={indice}\n r={4}\n >\n {!comFaixas && <title>{descricao}</title>}\n </circle>\n );\n })}\n\n {showDataLabels !== 'hidden' &&\n pontosPorSerie[indiceSerie].map((ponto, indice) => {\n if (ponto === null) {\n return null;\n }\n\n const { below, dx, textAnchor } = pointLabelPlacement(pontosPorSerie, indiceSerie, indice, font.lineHeight, (outra) =>\n isHidden(series[outra].label),\n );\n\n return (\n <text\n className={`${styles.valueLabel} ${markShown(showDataLabels, indiceSerie === serieEmFoco) ? '' : styles.valueLabelHidden}`}\n key={indice}\n textAnchor={textAnchor}\n x={ponto.x + dx}\n y={below ? ponto.y + font.lineHeight + 2 : ponto.y - 10}\n >\n {formatValue(serie.values[indice] ?? 0)}\n </text>\n );\n })}\n </g>\n );\n })}\n\n {comFaixas && (\n <PointBands\n onHover={focarCategoria}\n onPointerY={setAlturaDoPonteiro}\n plot={plot}\n positions={posicoesCategoria}\n />\n )}\n </CartesianFrame>\n );\n}\n"],"names":["isolado","pontos","indice","ChartLine","accent","categories","curve","defaultHiddenSeries","emptyMessage","formatTooltipValue","formatValue","formatarNumero","height","includeZero","hiddenSeries","labelAngle","legend","legendAlign","onHiddenSeriesChange","onHoverCategory","series","showDataLabels","showDots","showTooltip","title","xAxis","yAxis","yAxisRight","font","alturaMedida","ref","width","useChartMetrics","fillHeight","alturaDoDesenho","chartHeight","isHidden","isOutOfScale","toggle","useSeriesToggle","serie","cores","useMemo","resolveSeriesColors","dominio","mergeDomains","seriesInScale","domainOf","valor","rotulosDeValor","valueLabelsFor","axisReveal","margins","plot","rotation","useCartesianLayout","valueLabelRoom","escalaCategorias","pointScale","focarCategoria","categoriaEmFoco","useHoveredBand","alturaDoPonteiro","setAlturaDoPonteiro","useState","comFaixas","escalaAlvo","linearScale","minimo","maximo","useTweenedNumbers","escalaValores","marcasDeValor","ticksFor","pontosPorSerie","categoria","serieEmFoco","nearestSeriesAt","marcasCategoria","posicoesCategoria","marca","marcasValor","jsxs","CartesianFrame","categoryTooltip","jsx","PointCursor","indiceSerie","oculta","styles","linePath","ponto","descricao","markShown","below","dx","textAnchor","pointLabelPlacement","outra","PointBands"],"mappings":"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"}