@coinbase/cds-web 8.66.1 → 9.0.0-rc.1

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 (683) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dts/AccessibilityAnnouncer/AccessibilityAnnouncer.d.ts +14 -16
  3. package/dts/AccessibilityAnnouncer/AccessibilityAnnouncer.d.ts.map +1 -1
  4. package/dts/accordion/AccordionHeader.d.ts +16 -18
  5. package/dts/accordion/AccordionHeader.d.ts.map +1 -1
  6. package/dts/accordion/AccordionItem.d.ts +2 -2
  7. package/dts/accordion/AccordionItem.d.ts.map +1 -1
  8. package/dts/accordion/AccordionPanel.d.ts +11 -13
  9. package/dts/accordion/AccordionPanel.d.ts.map +1 -1
  10. package/dts/alpha/combobox/DefaultComboboxControl.d.ts.map +1 -1
  11. package/dts/alpha/select/DefaultSelectControl.d.ts.map +1 -1
  12. package/dts/alpha/select/DefaultSelectDropdown.d.ts.map +1 -1
  13. package/dts/alpha/select/DefaultSelectOption.d.ts.map +1 -1
  14. package/dts/alpha/select/DefaultSelectOptionGroup.d.ts.map +1 -1
  15. package/dts/alpha/select/types.d.ts +6 -1
  16. package/dts/alpha/select/types.d.ts.map +1 -1
  17. package/dts/animation/Lottie.d.ts +3 -5
  18. package/dts/animation/Lottie.d.ts.map +1 -1
  19. package/dts/animation/LottieStatusAnimation.d.ts +2 -3
  20. package/dts/animation/LottieStatusAnimation.d.ts.map +1 -1
  21. package/dts/animation/useLottieLoader.d.ts +1 -1
  22. package/dts/banner/Banner.d.ts +26 -2
  23. package/dts/banner/Banner.d.ts.map +1 -1
  24. package/dts/buttons/AvatarButton.d.ts +89 -1
  25. package/dts/buttons/AvatarButton.d.ts.map +1 -1
  26. package/dts/buttons/Button.d.ts.map +1 -1
  27. package/dts/buttons/IconButton.d.ts.map +1 -1
  28. package/dts/buttons/IconCounterButton.d.ts +22 -11
  29. package/dts/buttons/IconCounterButton.d.ts.map +1 -1
  30. package/dts/buttons/Tile.d.ts +1 -1
  31. package/dts/buttons/Tile.d.ts.map +1 -1
  32. package/dts/cards/AnnouncementCard.d.ts +2 -2
  33. package/dts/cards/AnnouncementCard.d.ts.map +1 -1
  34. package/dts/cards/Card.d.ts +4 -0
  35. package/dts/cards/Card.d.ts.map +1 -1
  36. package/dts/cards/CardGroup.d.ts +2 -4
  37. package/dts/cards/CardGroup.d.ts.map +1 -1
  38. package/dts/cards/CardMedia.d.ts.map +1 -1
  39. package/dts/cards/FeatureEntryCard.d.ts +2 -6
  40. package/dts/cards/FeatureEntryCard.d.ts.map +1 -1
  41. package/dts/cards/FeedCard.d.ts +2 -6
  42. package/dts/cards/FeedCard.d.ts.map +1 -1
  43. package/dts/cards/LikeButton.d.ts +2 -3
  44. package/dts/cards/LikeButton.d.ts.map +1 -1
  45. package/dts/cards/UpsellCard.d.ts +7 -2
  46. package/dts/cards/UpsellCard.d.ts.map +1 -1
  47. package/dts/carousel/Carousel.d.ts +12 -19
  48. package/dts/carousel/Carousel.d.ts.map +1 -1
  49. package/dts/carousel/DefaultCarouselPagination.d.ts.map +1 -1
  50. package/dts/cells/Cell.d.ts.map +1 -1
  51. package/dts/cells/CellAccessory.d.ts +2 -4
  52. package/dts/cells/CellAccessory.d.ts.map +1 -1
  53. package/dts/cells/CellHelperText.d.ts +2 -4
  54. package/dts/cells/CellHelperText.d.ts.map +1 -1
  55. package/dts/cells/ContentCellFallback.d.ts +4 -0
  56. package/dts/cells/ContentCellFallback.d.ts.map +1 -1
  57. package/dts/cells/ListCell.d.ts.map +1 -1
  58. package/dts/cells/MediaFallback.d.ts +1 -2
  59. package/dts/cells/MediaFallback.d.ts.map +1 -1
  60. package/dts/chips/Chip.d.ts +3 -5
  61. package/dts/chips/Chip.d.ts.map +1 -1
  62. package/dts/chips/ChipProps.d.ts.map +1 -1
  63. package/dts/chips/InputChip.d.ts +2 -4
  64. package/dts/chips/InputChip.d.ts.map +1 -1
  65. package/dts/chips/MediaChip.d.ts +2 -4
  66. package/dts/chips/MediaChip.d.ts.map +1 -1
  67. package/dts/chips/SelectChip.d.ts +2 -2
  68. package/dts/chips/SelectChip.d.ts.map +1 -1
  69. package/dts/coachmark/Coachmark.d.ts +4 -4
  70. package/dts/coachmark/Coachmark.d.ts.map +1 -1
  71. package/dts/collapsible/Collapsible.d.ts +32 -34
  72. package/dts/collapsible/Collapsible.d.ts.map +1 -1
  73. package/dts/collapsible/useCollapsibleMotionProps.d.ts +328 -288
  74. package/dts/collapsible/useCollapsibleMotionProps.d.ts.map +1 -1
  75. package/dts/controls/CheckboxGroup.d.ts +2 -26
  76. package/dts/controls/CheckboxGroup.d.ts.map +1 -1
  77. package/dts/controls/Control.d.ts +28 -6
  78. package/dts/controls/Control.d.ts.map +1 -1
  79. package/dts/controls/HelperText.d.ts +14 -0
  80. package/dts/controls/HelperText.d.ts.map +1 -1
  81. package/dts/controls/InputIcon.d.ts +2 -2
  82. package/dts/controls/InputIcon.d.ts.map +1 -1
  83. package/dts/controls/InputIconButton.d.ts +2 -4
  84. package/dts/controls/InputIconButton.d.ts.map +1 -1
  85. package/dts/controls/InputStack.d.ts +23 -3
  86. package/dts/controls/InputStack.d.ts.map +1 -1
  87. package/dts/controls/NativeInput.d.ts +6 -4
  88. package/dts/controls/NativeInput.d.ts.map +1 -1
  89. package/dts/controls/NativeTextArea.d.ts +2 -4
  90. package/dts/controls/NativeTextArea.d.ts.map +1 -1
  91. package/dts/controls/RadioGroup.d.ts +2 -24
  92. package/dts/controls/RadioGroup.d.ts.map +1 -1
  93. package/dts/controls/SearchInput.d.ts +8 -6
  94. package/dts/controls/SearchInput.d.ts.map +1 -1
  95. package/dts/controls/SegmentedControl.d.ts +2 -2
  96. package/dts/controls/SegmentedControl.d.ts.map +1 -1
  97. package/dts/controls/Select.d.ts +21 -23
  98. package/dts/controls/Select.d.ts.map +1 -1
  99. package/dts/controls/SelectOption.d.ts +4 -0
  100. package/dts/controls/SelectOption.d.ts.map +1 -1
  101. package/dts/controls/SelectStack.d.ts +10 -12
  102. package/dts/controls/SelectStack.d.ts.map +1 -1
  103. package/dts/controls/SelectTrigger.d.ts +8 -10
  104. package/dts/controls/SelectTrigger.d.ts.map +1 -1
  105. package/dts/controls/Switch.d.ts +80 -30
  106. package/dts/controls/Switch.d.ts.map +1 -1
  107. package/dts/controls/TextInput.d.ts +8 -7
  108. package/dts/controls/TextInput.d.ts.map +1 -1
  109. package/dts/controls/selectContext.d.ts +16 -0
  110. package/dts/controls/selectContext.d.ts.map +1 -1
  111. package/dts/controls/useRefocusTrigger.d.ts +1 -1
  112. package/dts/controls/useRefocusTrigger.d.ts.map +1 -1
  113. package/dts/dates/Calendar.d.ts +58 -60
  114. package/dts/dates/Calendar.d.ts.map +1 -1
  115. package/dts/dates/DateInput.d.ts +2 -4
  116. package/dts/dates/DateInput.d.ts.map +1 -1
  117. package/dts/dates/DatePicker.d.ts +2 -4
  118. package/dts/dates/DatePicker.d.ts.map +1 -1
  119. package/dts/dots/DotCount.d.ts +12 -0
  120. package/dts/dots/DotCount.d.ts.map +1 -1
  121. package/dts/dropdown/Dropdown.d.ts +33 -35
  122. package/dts/dropdown/Dropdown.d.ts.map +1 -1
  123. package/dts/dropdown/DropdownContent.d.ts +7 -10
  124. package/dts/dropdown/DropdownContent.d.ts.map +1 -1
  125. package/dts/dropdown/useResponsiveHeight.d.ts +2 -2
  126. package/dts/dropdown/useResponsiveHeight.d.ts.map +1 -1
  127. package/dts/hooks/useCellSpacing.d.ts +48 -164
  128. package/dts/hooks/useCellSpacing.d.ts.map +1 -1
  129. package/dts/hooks/useClickOutside.d.ts +1 -3
  130. package/dts/hooks/useClickOutside.d.ts.map +1 -1
  131. package/dts/hooks/useDimensions.d.ts +2 -2
  132. package/dts/hooks/useDimensions.d.ts.map +1 -1
  133. package/dts/hooks/useHorizontalScrollToTarget.d.ts +1 -1
  134. package/dts/hooks/useResolveResponsiveProp.d.ts +19 -0
  135. package/dts/hooks/useResolveResponsiveProp.d.ts.map +1 -0
  136. package/dts/icons/Icon.d.ts +6 -3
  137. package/dts/icons/Icon.d.ts.map +1 -1
  138. package/dts/layout/Box.d.ts +4 -1
  139. package/dts/layout/Box.d.ts.map +1 -1
  140. package/dts/layout/Grid.d.ts +2 -3
  141. package/dts/layout/Grid.d.ts.map +1 -1
  142. package/dts/layout/Group.d.ts +4 -4
  143. package/dts/layout/Group.d.ts.map +1 -1
  144. package/dts/loaders/Spinner.d.ts +2 -1
  145. package/dts/loaders/Spinner.d.ts.map +1 -1
  146. package/dts/media/Hexagon.d.ts.map +1 -1
  147. package/dts/media/RemoteImageGroup.d.ts.map +1 -1
  148. package/dts/motion/ColorSurge.d.ts +8 -10
  149. package/dts/motion/ColorSurge.d.ts.map +1 -1
  150. package/dts/motion/Pulse.d.ts +21 -23
  151. package/dts/motion/Pulse.d.ts.map +1 -1
  152. package/dts/motion/Shake.d.ts +4 -6
  153. package/dts/motion/Shake.d.ts.map +1 -1
  154. package/dts/motion/useMotionProps.d.ts +710 -630
  155. package/dts/motion/useMotionProps.d.ts.map +1 -1
  156. package/dts/motion/utils.d.ts +326 -286
  157. package/dts/motion/utils.d.ts.map +1 -1
  158. package/dts/navigation/NavigationTitleSelect.d.ts.map +1 -1
  159. package/dts/navigation/SidebarItem.d.ts +22 -5
  160. package/dts/navigation/SidebarItem.d.ts.map +1 -1
  161. package/dts/numbers/RollingNumber/DefaultRollingNumberDigit.d.ts.map +1 -1
  162. package/dts/numbers/RollingNumber/RollingNumber.d.ts.map +1 -1
  163. package/dts/overlays/Alert.d.ts +56 -58
  164. package/dts/overlays/Alert.d.ts.map +1 -1
  165. package/dts/overlays/Portal.d.ts +8 -6
  166. package/dts/overlays/Portal.d.ts.map +1 -1
  167. package/dts/overlays/PortalProvider.d.ts +17 -0
  168. package/dts/overlays/PortalProvider.d.ts.map +1 -1
  169. package/dts/overlays/Toast.d.ts +2 -2
  170. package/dts/overlays/Toast.d.ts.map +1 -1
  171. package/dts/overlays/modal/FullscreenModalHeader.d.ts +2 -4
  172. package/dts/overlays/modal/FullscreenModalHeader.d.ts.map +1 -1
  173. package/dts/overlays/modal/FullscreenModalLayout.d.ts +20 -22
  174. package/dts/overlays/modal/FullscreenModalLayout.d.ts.map +1 -1
  175. package/dts/overlays/modal/Modal.d.ts +6 -8
  176. package/dts/overlays/modal/Modal.d.ts.map +1 -1
  177. package/dts/overlays/modal/ModalBody.d.ts +2 -4
  178. package/dts/overlays/modal/ModalBody.d.ts.map +1 -1
  179. package/dts/overlays/modal/ModalHeader.d.ts.map +1 -1
  180. package/dts/overlays/modal/ModalWrapper.d.ts +2 -4
  181. package/dts/overlays/modal/ModalWrapper.d.ts.map +1 -1
  182. package/dts/overlays/overlay/Overlay.d.ts +2 -2
  183. package/dts/overlays/overlay/Overlay.d.ts.map +1 -1
  184. package/dts/overlays/popover/Popover.d.ts +38 -40
  185. package/dts/overlays/popover/Popover.d.ts.map +1 -1
  186. package/dts/overlays/popover/PopoverPanelContent.d.ts +18 -20
  187. package/dts/overlays/popover/PopoverPanelContent.d.ts.map +1 -1
  188. package/dts/overlays/popover/usePopper.d.ts +4 -0
  189. package/dts/overlays/popover/usePopper.d.ts.map +1 -1
  190. package/dts/overlays/tooltip/Tooltip.d.ts.map +1 -1
  191. package/dts/overlays/tooltip/TooltipContent.d.ts +10 -12
  192. package/dts/overlays/tooltip/TooltipContent.d.ts.map +1 -1
  193. package/dts/overlays/tooltip/TooltipProps.d.ts +1 -2
  194. package/dts/overlays/tooltip/TooltipProps.d.ts.map +1 -1
  195. package/dts/overlays/tray/Tray.d.ts +114 -118
  196. package/dts/overlays/tray/Tray.d.ts.map +1 -1
  197. package/dts/overlays/useModal.d.ts +1 -1
  198. package/dts/page/PageFooter.d.ts +4 -6
  199. package/dts/page/PageFooter.d.ts.map +1 -1
  200. package/dts/page/PageHeader.d.ts +4 -6
  201. package/dts/page/PageHeader.d.ts.map +1 -1
  202. package/dts/section-header/SectionHeader.d.ts +2 -4
  203. package/dts/section-header/SectionHeader.d.ts.map +1 -1
  204. package/dts/stepper/DefaultStepperHeaderHorizontal.d.ts.map +1 -1
  205. package/dts/stepper/DefaultStepperLabelHorizontal.d.ts +1 -1
  206. package/dts/stepper/DefaultStepperLabelHorizontal.d.ts.map +1 -1
  207. package/dts/stepper/DefaultStepperProgressHorizontal.d.ts +1 -1
  208. package/dts/stepper/DefaultStepperProgressHorizontal.d.ts.map +1 -1
  209. package/dts/stepper/DefaultStepperProgressVertical.d.ts +1 -1
  210. package/dts/stepper/DefaultStepperProgressVertical.d.ts.map +1 -1
  211. package/dts/stepper/DefaultStepperStepHorizontal.d.ts.map +1 -1
  212. package/dts/stepper/Stepper.d.ts +25 -14
  213. package/dts/stepper/Stepper.d.ts.map +1 -1
  214. package/dts/styles/styleProps.d.ts +12 -8
  215. package/dts/styles/styleProps.d.ts.map +1 -1
  216. package/dts/system/BrowserOnly.d.ts +1 -1
  217. package/dts/system/BrowserOnly.d.ts.map +1 -1
  218. package/dts/system/ButtonOrLink.d.ts +5 -7
  219. package/dts/system/ButtonOrLink.d.ts.map +1 -1
  220. package/dts/system/Interactable.d.ts +10 -12
  221. package/dts/system/Interactable.d.ts.map +1 -1
  222. package/dts/system/ThemeProvider.d.ts +48 -26
  223. package/dts/system/ThemeProvider.d.ts.map +1 -1
  224. package/dts/system/interactableCSSProperties.d.ts +11 -11
  225. package/dts/system/interactableCSSProperties.d.ts.map +1 -1
  226. package/dts/tables/Table.d.ts +40 -43
  227. package/dts/tables/Table.d.ts.map +1 -1
  228. package/dts/tables/TableCell.d.ts +2 -1
  229. package/dts/tables/TableCell.d.ts.map +1 -1
  230. package/dts/tabs/DefaultTab.d.ts +17 -19
  231. package/dts/tabs/DefaultTab.d.ts.map +1 -1
  232. package/dts/tabs/Paddle.d.ts.map +1 -1
  233. package/dts/tabs/SegmentedTab.d.ts +25 -27
  234. package/dts/tabs/SegmentedTab.d.ts.map +1 -1
  235. package/dts/tabs/TabIndicator.d.ts +11 -13
  236. package/dts/tabs/TabIndicator.d.ts.map +1 -1
  237. package/dts/tabs/TabNavigation.d.ts +6 -0
  238. package/dts/tabs/TabNavigation.d.ts.map +1 -1
  239. package/dts/tabs/Tabs.d.ts.map +1 -1
  240. package/dts/tabs/hooks/useAnimateTabIndicator.d.ts +710 -630
  241. package/dts/tabs/hooks/useAnimateTabIndicator.d.ts.map +1 -1
  242. package/dts/tag/Tag.d.ts +2 -2
  243. package/dts/tag/Tag.d.ts.map +1 -1
  244. package/dts/tour/DefaultTourStepArrow.d.ts +2 -2
  245. package/dts/tour/DefaultTourStepArrow.d.ts.map +1 -1
  246. package/dts/tour/Tour.d.ts.map +1 -1
  247. package/dts/tour/TourStep.d.ts.map +1 -1
  248. package/dts/typography/Text.d.ts +4 -1
  249. package/dts/typography/Text.d.ts.map +1 -1
  250. package/dts/typography/TextBody.d.ts +12 -0
  251. package/dts/typography/TextBody.d.ts.map +1 -1
  252. package/dts/typography/TextCaption.d.ts +12 -0
  253. package/dts/typography/TextCaption.d.ts.map +1 -1
  254. package/dts/typography/TextDisplay1.d.ts +12 -0
  255. package/dts/typography/TextDisplay1.d.ts.map +1 -1
  256. package/dts/typography/TextDisplay2.d.ts +12 -0
  257. package/dts/typography/TextDisplay2.d.ts.map +1 -1
  258. package/dts/typography/TextDisplay3.d.ts +12 -0
  259. package/dts/typography/TextDisplay3.d.ts.map +1 -1
  260. package/dts/typography/TextHeadline.d.ts +12 -0
  261. package/dts/typography/TextHeadline.d.ts.map +1 -1
  262. package/dts/typography/TextInherited.d.ts +12 -0
  263. package/dts/typography/TextInherited.d.ts.map +1 -1
  264. package/dts/typography/TextLabel1.d.ts +12 -0
  265. package/dts/typography/TextLabel1.d.ts.map +1 -1
  266. package/dts/typography/TextLabel2.d.ts +12 -0
  267. package/dts/typography/TextLabel2.d.ts.map +1 -1
  268. package/dts/typography/TextLegal.d.ts +12 -0
  269. package/dts/typography/TextLegal.d.ts.map +1 -1
  270. package/dts/typography/TextTitle1.d.ts +12 -0
  271. package/dts/typography/TextTitle1.d.ts.map +1 -1
  272. package/dts/typography/TextTitle2.d.ts +12 -0
  273. package/dts/typography/TextTitle2.d.ts.map +1 -1
  274. package/dts/typography/TextTitle3.d.ts +12 -0
  275. package/dts/typography/TextTitle3.d.ts.map +1 -1
  276. package/dts/typography/TextTitle4.d.ts +12 -0
  277. package/dts/typography/TextTitle4.d.ts.map +1 -1
  278. package/dts/utils/flattenAndJoinNodes.d.ts +13 -1
  279. package/dts/utils/flattenAndJoinNodes.d.ts.map +1 -1
  280. package/dts/visualizations/ProgressBar.d.ts +45 -47
  281. package/dts/visualizations/ProgressBar.d.ts.map +1 -1
  282. package/dts/visualizations/ProgressCircle.d.ts +63 -65
  283. package/dts/visualizations/ProgressCircle.d.ts.map +1 -1
  284. package/dts/visualizations/VisualizationContainer.d.ts +3 -4
  285. package/dts/visualizations/VisualizationContainer.d.ts.map +1 -1
  286. package/dts/visualizations/chart/CartesianChart.d.ts +104 -0
  287. package/dts/visualizations/chart/CartesianChart.d.ts.map +1 -0
  288. package/dts/visualizations/chart/ChartProvider.d.ts +9 -0
  289. package/dts/visualizations/chart/ChartProvider.d.ts.map +1 -0
  290. package/dts/visualizations/chart/Path.d.ts +100 -0
  291. package/dts/visualizations/chart/Path.d.ts.map +1 -0
  292. package/dts/visualizations/chart/PeriodSelector.d.ts +73 -0
  293. package/dts/visualizations/chart/PeriodSelector.d.ts.map +1 -0
  294. package/dts/visualizations/chart/area/Area.d.ts +83 -0
  295. package/dts/visualizations/chart/area/Area.d.ts.map +1 -0
  296. package/dts/visualizations/chart/area/AreaChart.d.ts +90 -0
  297. package/dts/visualizations/chart/area/AreaChart.d.ts.map +1 -0
  298. package/dts/visualizations/chart/area/DottedArea.d.ts +45 -0
  299. package/dts/visualizations/chart/area/DottedArea.d.ts.map +1 -0
  300. package/dts/visualizations/chart/area/GradientArea.d.ts +39 -0
  301. package/dts/visualizations/chart/area/GradientArea.d.ts.map +1 -0
  302. package/dts/visualizations/chart/area/SolidArea.d.ts +23 -0
  303. package/dts/visualizations/chart/area/SolidArea.d.ts.map +1 -0
  304. package/dts/visualizations/chart/area/index.d.ts +6 -0
  305. package/dts/visualizations/chart/area/index.d.ts.map +1 -0
  306. package/dts/visualizations/chart/axis/Axis.d.ts +254 -0
  307. package/dts/visualizations/chart/axis/Axis.d.ts.map +1 -0
  308. package/dts/visualizations/chart/axis/DefaultAxisTickLabel.d.ts +8 -0
  309. package/dts/visualizations/chart/axis/DefaultAxisTickLabel.d.ts.map +1 -0
  310. package/dts/visualizations/chart/axis/XAxis.d.ts +22 -0
  311. package/dts/visualizations/chart/axis/XAxis.d.ts.map +1 -0
  312. package/dts/visualizations/chart/axis/YAxis.d.ts +22 -0
  313. package/dts/visualizations/chart/axis/YAxis.d.ts.map +1 -0
  314. package/dts/visualizations/chart/axis/index.d.ts +5 -0
  315. package/dts/visualizations/chart/axis/index.d.ts.map +1 -0
  316. package/dts/visualizations/chart/bar/Bar.d.ts +102 -0
  317. package/dts/visualizations/chart/bar/Bar.d.ts.map +1 -0
  318. package/dts/visualizations/chart/bar/BarChart.d.ts +83 -0
  319. package/dts/visualizations/chart/bar/BarChart.d.ts.map +1 -0
  320. package/dts/visualizations/chart/bar/BarPlot.d.ts +31 -0
  321. package/dts/visualizations/chart/bar/BarPlot.d.ts.map +1 -0
  322. package/dts/visualizations/chart/bar/BarStack.d.ts +141 -0
  323. package/dts/visualizations/chart/bar/BarStack.d.ts.map +1 -0
  324. package/dts/visualizations/chart/bar/BarStackGroup.d.ts +37 -0
  325. package/dts/visualizations/chart/bar/BarStackGroup.d.ts.map +1 -0
  326. package/dts/visualizations/chart/bar/DefaultBar.d.ts +17 -0
  327. package/dts/visualizations/chart/bar/DefaultBar.d.ts.map +1 -0
  328. package/dts/visualizations/chart/bar/DefaultBarStack.d.ts +16 -0
  329. package/dts/visualizations/chart/bar/DefaultBarStack.d.ts.map +1 -0
  330. package/dts/visualizations/chart/bar/PercentageBarChart.d.ts +61 -0
  331. package/dts/visualizations/chart/bar/PercentageBarChart.d.ts.map +1 -0
  332. package/dts/visualizations/chart/bar/index.d.ts +9 -0
  333. package/dts/visualizations/chart/bar/index.d.ts.map +1 -0
  334. package/dts/visualizations/chart/gradient/Gradient.d.ts +43 -0
  335. package/dts/visualizations/chart/gradient/Gradient.d.ts.map +1 -0
  336. package/dts/visualizations/chart/gradient/index.d.ts +2 -0
  337. package/dts/visualizations/chart/gradient/index.d.ts.map +1 -0
  338. package/dts/visualizations/chart/index.d.ts +15 -0
  339. package/dts/visualizations/chart/index.d.ts.map +1 -0
  340. package/dts/visualizations/chart/legend/DefaultLegendEntry.d.ts +21 -0
  341. package/dts/visualizations/chart/legend/DefaultLegendEntry.d.ts.map +1 -0
  342. package/dts/visualizations/chart/legend/DefaultLegendShape.d.ts +7 -0
  343. package/dts/visualizations/chart/legend/DefaultLegendShape.d.ts.map +1 -0
  344. package/dts/visualizations/chart/legend/Legend.d.ts +139 -0
  345. package/dts/visualizations/chart/legend/Legend.d.ts.map +1 -0
  346. package/dts/visualizations/chart/legend/index.d.ts +4 -0
  347. package/dts/visualizations/chart/legend/index.d.ts.map +1 -0
  348. package/dts/visualizations/chart/line/DefaultReferenceLineLabel.d.ts +9 -0
  349. package/dts/visualizations/chart/line/DefaultReferenceLineLabel.d.ts.map +1 -0
  350. package/dts/visualizations/chart/line/DottedLine.d.ts +26 -0
  351. package/dts/visualizations/chart/line/DottedLine.d.ts.map +1 -0
  352. package/dts/visualizations/chart/line/Line.d.ts +146 -0
  353. package/dts/visualizations/chart/line/Line.d.ts.map +1 -0
  354. package/dts/visualizations/chart/line/LineChart.d.ts +77 -0
  355. package/dts/visualizations/chart/line/LineChart.d.ts.map +1 -0
  356. package/dts/visualizations/chart/line/ReferenceLine.d.ts +187 -0
  357. package/dts/visualizations/chart/line/ReferenceLine.d.ts.map +1 -0
  358. package/dts/visualizations/chart/line/SolidLine.d.ts +25 -0
  359. package/dts/visualizations/chart/line/SolidLine.d.ts.map +1 -0
  360. package/dts/visualizations/chart/line/index.d.ts +7 -0
  361. package/dts/visualizations/chart/line/index.d.ts.map +1 -0
  362. package/dts/visualizations/chart/point/DefaultPointLabel.d.ts +10 -0
  363. package/dts/visualizations/chart/point/DefaultPointLabel.d.ts.map +1 -0
  364. package/dts/visualizations/chart/point/Point.d.ts +225 -0
  365. package/dts/visualizations/chart/point/Point.d.ts.map +1 -0
  366. package/dts/visualizations/chart/point/index.d.ts +3 -0
  367. package/dts/visualizations/chart/point/index.d.ts.map +1 -0
  368. package/dts/visualizations/chart/scrubber/DefaultScrubberBeacon.d.ts +39 -0
  369. package/dts/visualizations/chart/scrubber/DefaultScrubberBeacon.d.ts.map +1 -0
  370. package/dts/visualizations/chart/scrubber/DefaultScrubberBeaconLabel.d.ts +12 -0
  371. package/dts/visualizations/chart/scrubber/DefaultScrubberBeaconLabel.d.ts.map +1 -0
  372. package/dts/visualizations/chart/scrubber/DefaultScrubberLabel.d.ts +11 -0
  373. package/dts/visualizations/chart/scrubber/DefaultScrubberLabel.d.ts.map +1 -0
  374. package/dts/visualizations/chart/scrubber/Scrubber.d.ts +390 -0
  375. package/dts/visualizations/chart/scrubber/Scrubber.d.ts.map +1 -0
  376. package/dts/visualizations/chart/scrubber/ScrubberBeaconGroup.d.ts +78 -0
  377. package/dts/visualizations/chart/scrubber/ScrubberBeaconGroup.d.ts.map +1 -0
  378. package/dts/visualizations/chart/scrubber/ScrubberBeaconLabelGroup.d.ts +56 -0
  379. package/dts/visualizations/chart/scrubber/ScrubberBeaconLabelGroup.d.ts.map +1 -0
  380. package/dts/visualizations/chart/scrubber/ScrubberProvider.d.ts +17 -0
  381. package/dts/visualizations/chart/scrubber/ScrubberProvider.d.ts.map +1 -0
  382. package/dts/visualizations/chart/scrubber/index.d.ts +5 -0
  383. package/dts/visualizations/chart/scrubber/index.d.ts.map +1 -0
  384. package/dts/visualizations/chart/text/ChartText.d.ts +117 -0
  385. package/dts/visualizations/chart/text/ChartText.d.ts.map +1 -0
  386. package/dts/visualizations/chart/text/ChartTextGroup.d.ts +61 -0
  387. package/dts/visualizations/chart/text/ChartTextGroup.d.ts.map +1 -0
  388. package/dts/visualizations/chart/text/index.d.ts +3 -0
  389. package/dts/visualizations/chart/text/index.d.ts.map +1 -0
  390. package/dts/visualizations/chart/utils/axis.d.ts +391 -0
  391. package/dts/visualizations/chart/utils/axis.d.ts.map +1 -0
  392. package/dts/visualizations/chart/utils/bar.d.ts +223 -0
  393. package/dts/visualizations/chart/utils/bar.d.ts.map +1 -0
  394. package/dts/visualizations/chart/utils/chart.d.ts +158 -0
  395. package/dts/visualizations/chart/utils/chart.d.ts.map +1 -0
  396. package/dts/visualizations/chart/utils/context.d.ts +117 -0
  397. package/dts/visualizations/chart/utils/context.d.ts.map +1 -0
  398. package/dts/visualizations/chart/utils/gradient.d.ts +116 -0
  399. package/dts/visualizations/chart/utils/gradient.d.ts.map +1 -0
  400. package/dts/visualizations/chart/utils/index.d.ts +12 -0
  401. package/dts/visualizations/chart/utils/index.d.ts.map +1 -0
  402. package/dts/visualizations/chart/utils/interpolate.d.ts +112 -0
  403. package/dts/visualizations/chart/utils/interpolate.d.ts.map +1 -0
  404. package/dts/visualizations/chart/utils/path.d.ts +156 -0
  405. package/dts/visualizations/chart/utils/path.d.ts.map +1 -0
  406. package/dts/visualizations/chart/utils/point.d.ts +115 -0
  407. package/dts/visualizations/chart/utils/point.d.ts.map +1 -0
  408. package/dts/visualizations/chart/utils/scale.d.ts +54 -0
  409. package/dts/visualizations/chart/utils/scale.d.ts.map +1 -0
  410. package/dts/visualizations/chart/utils/scrubber.d.ts +40 -0
  411. package/dts/visualizations/chart/utils/scrubber.d.ts.map +1 -0
  412. package/dts/visualizations/chart/utils/transition.d.ts +101 -0
  413. package/dts/visualizations/chart/utils/transition.d.ts.map +1 -0
  414. package/dts/visualizations/index.d.ts +2 -0
  415. package/dts/visualizations/index.d.ts.map +1 -1
  416. package/dts/visualizations/sparkline/Counter.d.ts +8 -0
  417. package/dts/visualizations/sparkline/Counter.d.ts.map +1 -0
  418. package/dts/visualizations/sparkline/Sparkline.d.ts +66 -0
  419. package/dts/visualizations/sparkline/Sparkline.d.ts.map +1 -0
  420. package/dts/visualizations/sparkline/SparklineArea.d.ts +14 -0
  421. package/dts/visualizations/sparkline/SparklineArea.d.ts.map +1 -0
  422. package/dts/visualizations/sparkline/SparklineAreaPattern.d.ts +14 -0
  423. package/dts/visualizations/sparkline/SparklineAreaPattern.d.ts.map +1 -0
  424. package/dts/visualizations/sparkline/SparklineGradient.d.ts +22 -0
  425. package/dts/visualizations/sparkline/SparklineGradient.d.ts.map +1 -0
  426. package/dts/visualizations/sparkline/SparklinePath.d.ts +12 -0
  427. package/dts/visualizations/sparkline/SparklinePath.d.ts.map +1 -0
  428. package/dts/visualizations/sparkline/__figma__/Sparkline.figma.d.ts +2 -0
  429. package/dts/visualizations/sparkline/__figma__/Sparkline.figma.d.ts.map +1 -0
  430. package/dts/visualizations/sparkline/generateSparklineWithId.d.ts +11 -0
  431. package/dts/visualizations/sparkline/generateSparklineWithId.d.ts.map +1 -0
  432. package/dts/visualizations/sparkline/index.d.ts +6 -0
  433. package/dts/visualizations/sparkline/index.d.ts.map +1 -0
  434. package/dts/visualizations/sparkline/sparkline-interactive/InnerSparklineInteractiveProvider.d.ts +13 -0
  435. package/dts/visualizations/sparkline/sparkline-interactive/InnerSparklineInteractiveProvider.d.ts.map +1 -0
  436. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractive.d.ts +200 -0
  437. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractive.d.ts.map +1 -0
  438. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveAnimatedPath.d.ts +26 -0
  439. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveAnimatedPath.d.ts.map +1 -0
  440. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveHoverDate.d.ts +5 -0
  441. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveHoverDate.d.ts.map +1 -0
  442. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveHoverPrice.d.ts +5 -0
  443. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveHoverPrice.d.ts.map +1 -0
  444. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveLineVertical.d.ts +8 -0
  445. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveLineVertical.d.ts.map +1 -0
  446. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveMarkerDates.d.ts +17 -0
  447. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveMarkerDates.d.ts.map +1 -0
  448. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractivePaths.d.ts +25 -0
  449. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractivePaths.d.ts.map +1 -0
  450. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractivePeriodSelector.d.ts +25 -0
  451. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractivePeriodSelector.d.ts.map +1 -0
  452. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveProvider.d.ts +25 -0
  453. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveProvider.d.ts.map +1 -0
  454. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveScrubHandler.d.ts +30 -0
  455. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveScrubHandler.d.ts.map +1 -0
  456. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveScrubProvider.d.ts +18 -0
  457. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveScrubProvider.d.ts.map +1 -0
  458. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveTimeseriesPaths.d.ts +31 -0
  459. package/dts/visualizations/sparkline/sparkline-interactive/SparklineInteractiveTimeseriesPaths.d.ts.map +1 -0
  460. package/dts/visualizations/sparkline/sparkline-interactive/__figma__/SparklineInteractive.figma.d.ts +2 -0
  461. package/dts/visualizations/sparkline/sparkline-interactive/__figma__/SparklineInteractive.figma.d.ts.map +1 -0
  462. package/dts/visualizations/sparkline/sparkline-interactive/fade.d.ts +3 -0
  463. package/dts/visualizations/sparkline/sparkline-interactive/fade.d.ts.map +1 -0
  464. package/dts/visualizations/sparkline/sparkline-interactive/useSparklineInteractiveConstants.d.ts +13 -0
  465. package/dts/visualizations/sparkline/sparkline-interactive/useSparklineInteractiveConstants.d.ts.map +1 -0
  466. package/dts/visualizations/sparkline/sparkline-interactive-header/SparklineInteractiveHeader.d.ts +110 -0
  467. package/dts/visualizations/sparkline/sparkline-interactive-header/SparklineInteractiveHeader.d.ts.map +1 -0
  468. package/dts/visualizations/sparkline/sparkline-interactive-header/__figma__/SparklineInteractiveHeader.figma.d.ts +2 -0
  469. package/dts/visualizations/sparkline/sparkline-interactive-header/__figma__/SparklineInteractiveHeader.figma.d.ts.map +1 -0
  470. package/esm/alpha/combobox/DefaultComboboxControl.js +6 -6
  471. package/esm/alpha/select/DefaultSelectControl.js +26 -21
  472. package/esm/alpha/select/DefaultSelectDropdown.js +9 -4
  473. package/esm/alpha/select/DefaultSelectOption.css +1 -1
  474. package/esm/alpha/select/DefaultSelectOption.js +0 -1
  475. package/esm/animation/LottieStatusAnimation.js +1 -1
  476. package/esm/animation/useLottieLoader.js +1 -1
  477. package/esm/banner/Banner.js +119 -86
  478. package/esm/buttons/AvatarButton.css +1 -1
  479. package/esm/buttons/AvatarButton.js +8 -10
  480. package/esm/buttons/Button.css +1 -3
  481. package/esm/buttons/Button.js +26 -12
  482. package/esm/buttons/IconButton.css +1 -3
  483. package/esm/buttons/IconButton.js +23 -13
  484. package/esm/buttons/IconCounterButton.js +14 -6
  485. package/esm/cards/Card.js +5 -0
  486. package/esm/cards/CardMedia.js +6 -10
  487. package/esm/cards/FeatureEntryCard.js +0 -5
  488. package/esm/cards/FeedCard.js +0 -5
  489. package/esm/cards/LikeButton.js +14 -8
  490. package/esm/cards/UpsellCard.js +11 -3
  491. package/esm/cards/__figma__/UpsellCard.figma.js +3 -1
  492. package/esm/carousel/Carousel.js +4 -3
  493. package/esm/carousel/DefaultCarouselPagination.js +10 -4
  494. package/esm/carousel/__figma__/Carousel.figma.js +0 -1
  495. package/esm/cells/Cell.js +48 -9
  496. package/esm/cells/CellAccessory.js +3 -2
  497. package/esm/cells/ContentCellFallback.js +5 -0
  498. package/esm/cells/ListCell.js +8 -3
  499. package/esm/cells/MediaFallback.js +5 -5
  500. package/esm/coachmark/Coachmark.js +3 -2
  501. package/esm/collapsible/Collapsible.js +30 -25
  502. package/esm/controls/CheckboxGroup.js +0 -26
  503. package/esm/controls/Control.js +36 -12
  504. package/esm/controls/HelperText.js +18 -2
  505. package/esm/controls/InputIcon.js +3 -4
  506. package/esm/controls/InputIconButton.js +1 -1
  507. package/esm/controls/InputStack.js +15 -5
  508. package/esm/controls/Radio.css +1 -1
  509. package/esm/controls/Radio.js +1 -1
  510. package/esm/controls/RadioGroup.js +0 -25
  511. package/esm/controls/SearchInput.js +5 -0
  512. package/esm/controls/SegmentedControl.css +1 -1
  513. package/esm/controls/SegmentedControl.js +2 -1
  514. package/esm/controls/SelectOption.js +4 -0
  515. package/esm/controls/Switch.js +34 -10
  516. package/esm/controls/TextInput.js +5 -5
  517. package/esm/controls/selectContext.js +21 -0
  518. package/esm/dates/DateInput.js +3 -4
  519. package/esm/dates/DatePicker.js +2 -2
  520. package/esm/dots/DotCount.css +1 -1
  521. package/esm/dots/DotCount.js +14 -5
  522. package/esm/dots/DotSymbol.js +2 -2
  523. package/esm/hooks/useDimensions.js +1 -1
  524. package/esm/hooks/useResolveResponsiveProp.js +31 -0
  525. package/esm/media/Avatar.js +2 -2
  526. package/esm/media/Hexagon.js +3 -2
  527. package/esm/navigation/NavigationTitleSelect.js +25 -6
  528. package/esm/navigation/SidebarItem.js +43 -13
  529. package/esm/numbers/RollingNumber/DefaultRollingNumberDigit.js +3 -1
  530. package/esm/numbers/RollingNumber/RollingNumber.js +1 -1
  531. package/esm/overlays/Alert.js +3 -3
  532. package/esm/overlays/FocusTrap.js +2 -3
  533. package/esm/overlays/Portal.js +7 -0
  534. package/esm/overlays/PortalProvider.js +20 -0
  535. package/esm/overlays/Toast.js +5 -4
  536. package/esm/overlays/modal/FullscreenModalLayout.js +3 -2
  537. package/esm/overlays/modal/ModalHeader.js +10 -5
  538. package/esm/overlays/overlay/OverlayContent.js +3 -4
  539. package/esm/overlays/popover/usePopper.js +7 -0
  540. package/esm/overlays/tooltip/__figma__/Tooltip.figma.js +5 -3
  541. package/esm/overlays/useModal.js +1 -1
  542. package/esm/stepper/DefaultStepperHeaderHorizontal.js +20 -16
  543. package/esm/stepper/DefaultStepperLabelHorizontal.js +18 -14
  544. package/esm/stepper/DefaultStepperProgressHorizontal.js +19 -7
  545. package/esm/stepper/DefaultStepperProgressVertical.js +50 -38
  546. package/esm/stepper/DefaultStepperStepHorizontal.js +6 -4
  547. package/esm/stepper/DefaultStepperStepVertical.js +5 -5
  548. package/esm/stepper/Stepper.js +59 -66
  549. package/esm/styles/styleProps.js +3 -0
  550. package/esm/system/Interactable.css +1 -1
  551. package/esm/system/Interactable.js +4 -2
  552. package/esm/system/Pressable.css +1 -1
  553. package/esm/system/PressableOpacity.js +2 -2
  554. package/esm/system/ThemeProvider.js +43 -15
  555. package/esm/system/interactableCSSProperties.js +11 -11
  556. package/esm/tabs/Paddle.js +4 -4
  557. package/esm/tabs/SegmentedTab.js +5 -15
  558. package/esm/tabs/TabLabel.js +7 -9
  559. package/esm/tabs/TabNavigation.js +8 -7
  560. package/esm/tabs/Tabs.js +3 -1
  561. package/esm/tour/Tour.js +4 -1
  562. package/esm/tour/TourStep.js +5 -1
  563. package/esm/typography/TextBody.js +15 -0
  564. package/esm/typography/TextCaption.js +15 -0
  565. package/esm/typography/TextDisplay1.js +15 -0
  566. package/esm/typography/TextDisplay2.js +15 -0
  567. package/esm/typography/TextDisplay3.js +15 -0
  568. package/esm/typography/TextHeadline.js +15 -0
  569. package/esm/typography/TextInherited.js +15 -0
  570. package/esm/typography/TextLabel1.js +15 -0
  571. package/esm/typography/TextLabel2.js +15 -0
  572. package/esm/typography/TextLegal.js +15 -0
  573. package/esm/typography/TextTitle1.js +15 -0
  574. package/esm/typography/TextTitle2.js +15 -0
  575. package/esm/typography/TextTitle3.js +15 -0
  576. package/esm/typography/TextTitle4.js +15 -0
  577. package/esm/visualizations/chart/CartesianChart.css +1 -0
  578. package/esm/visualizations/chart/CartesianChart.js +379 -0
  579. package/esm/visualizations/chart/ChartProvider.js +10 -0
  580. package/esm/visualizations/chart/Path.js +125 -0
  581. package/esm/visualizations/chart/PeriodSelector.css +1 -0
  582. package/esm/visualizations/chart/PeriodSelector.js +130 -0
  583. package/esm/visualizations/chart/area/Area.js +85 -0
  584. package/esm/visualizations/chart/area/AreaChart.js +173 -0
  585. package/esm/visualizations/chart/area/DottedArea.js +95 -0
  586. package/esm/visualizations/chart/area/GradientArea.js +72 -0
  587. package/esm/visualizations/chart/area/SolidArea.js +52 -0
  588. package/esm/visualizations/chart/area/index.js +7 -0
  589. package/esm/visualizations/chart/axis/Axis.js +11 -0
  590. package/esm/visualizations/chart/axis/DefaultAxisTickLabel.js +15 -0
  591. package/esm/visualizations/chart/axis/XAxis.css +2 -0
  592. package/esm/visualizations/chart/axis/XAxis.js +315 -0
  593. package/esm/visualizations/chart/axis/YAxis.css +2 -0
  594. package/esm/visualizations/chart/axis/YAxis.js +316 -0
  595. package/esm/visualizations/chart/axis/index.js +6 -0
  596. package/esm/visualizations/chart/bar/Bar.js +69 -0
  597. package/esm/visualizations/chart/bar/BarChart.js +128 -0
  598. package/esm/visualizations/chart/bar/BarPlot.js +92 -0
  599. package/esm/visualizations/chart/bar/BarStack.js +173 -0
  600. package/esm/visualizations/chart/bar/BarStackGroup.js +95 -0
  601. package/esm/visualizations/chart/bar/DefaultBar.js +82 -0
  602. package/esm/visualizations/chart/bar/DefaultBarStack.js +71 -0
  603. package/esm/visualizations/chart/bar/PercentageBarChart.js +102 -0
  604. package/esm/visualizations/chart/bar/index.js +10 -0
  605. package/esm/visualizations/chart/gradient/Gradient.js +106 -0
  606. package/esm/visualizations/chart/gradient/index.js +1 -0
  607. package/esm/visualizations/chart/index.js +16 -0
  608. package/esm/visualizations/chart/legend/DefaultLegendEntry.css +1 -0
  609. package/esm/visualizations/chart/legend/DefaultLegendEntry.js +50 -0
  610. package/esm/visualizations/chart/legend/DefaultLegendShape.css +5 -0
  611. package/esm/visualizations/chart/legend/DefaultLegendShape.js +47 -0
  612. package/esm/visualizations/chart/legend/Legend.js +76 -0
  613. package/esm/visualizations/chart/legend/index.js +3 -0
  614. package/esm/visualizations/chart/line/DefaultReferenceLineLabel.js +81 -0
  615. package/esm/visualizations/chart/line/DottedLine.js +64 -0
  616. package/esm/visualizations/chart/line/Line.js +183 -0
  617. package/esm/visualizations/chart/line/LineChart.js +142 -0
  618. package/esm/visualizations/chart/line/ReferenceLine.js +144 -0
  619. package/esm/visualizations/chart/line/SolidLine.js +60 -0
  620. package/esm/visualizations/chart/line/index.js +8 -0
  621. package/esm/visualizations/chart/point/DefaultPointLabel.js +45 -0
  622. package/esm/visualizations/chart/point/Point.css +2 -0
  623. package/esm/visualizations/chart/point/Point.js +201 -0
  624. package/esm/visualizations/chart/point/index.js +2 -0
  625. package/esm/visualizations/chart/scrubber/DefaultScrubberBeacon.js +154 -0
  626. package/esm/visualizations/chart/scrubber/DefaultScrubberBeaconLabel.js +57 -0
  627. package/esm/visualizations/chart/scrubber/DefaultScrubberLabel.js +48 -0
  628. package/esm/visualizations/chart/scrubber/Scrubber.js +200 -0
  629. package/esm/visualizations/chart/scrubber/ScrubberBeaconGroup.js +190 -0
  630. package/esm/visualizations/chart/scrubber/ScrubberBeaconLabelGroup.js +209 -0
  631. package/esm/visualizations/chart/scrubber/ScrubberProvider.js +233 -0
  632. package/esm/visualizations/chart/scrubber/index.js +4 -0
  633. package/esm/visualizations/chart/text/ChartText.js +231 -0
  634. package/esm/visualizations/chart/text/ChartTextGroup.js +227 -0
  635. package/esm/visualizations/chart/text/index.js +4 -0
  636. package/esm/visualizations/chart/utils/axis.js +666 -0
  637. package/esm/visualizations/chart/utils/bar.js +952 -0
  638. package/esm/visualizations/chart/utils/chart.js +314 -0
  639. package/esm/visualizations/chart/utils/context.js +22 -0
  640. package/esm/visualizations/chart/utils/gradient.js +270 -0
  641. package/esm/visualizations/chart/utils/index.js +13 -0
  642. package/esm/visualizations/chart/utils/interpolate.js +644 -0
  643. package/esm/visualizations/chart/utils/path.js +254 -0
  644. package/esm/visualizations/chart/utils/point.js +214 -0
  645. package/esm/visualizations/chart/utils/scale.js +59 -0
  646. package/esm/visualizations/chart/utils/scrubber.js +137 -0
  647. package/esm/visualizations/chart/utils/transition.js +132 -0
  648. package/esm/visualizations/index.js +3 -1
  649. package/esm/visualizations/sparkline/Counter.css +3 -0
  650. package/esm/visualizations/sparkline/Counter.js +35 -0
  651. package/esm/visualizations/sparkline/Sparkline.js +165 -0
  652. package/esm/visualizations/sparkline/SparklineArea.js +19 -0
  653. package/esm/visualizations/sparkline/SparklineAreaPattern.js +37 -0
  654. package/esm/visualizations/sparkline/SparklineGradient.js +31 -0
  655. package/esm/visualizations/sparkline/SparklinePath.js +19 -0
  656. package/esm/visualizations/sparkline/__figma__/Sparkline.figma.js +24 -0
  657. package/esm/visualizations/sparkline/generateSparklineWithId.js +7 -0
  658. package/esm/visualizations/sparkline/index.js +5 -0
  659. package/esm/visualizations/sparkline/sparkline-interactive/InnerSparklineInteractiveProvider.js +21 -0
  660. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractive.js +318 -0
  661. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveAnimatedPath.js +108 -0
  662. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveHoverDate.css +2 -0
  663. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveHoverDate.js +27 -0
  664. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveHoverPrice.css +2 -0
  665. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveHoverPrice.js +25 -0
  666. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveLineVertical.css +4 -0
  667. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveLineVertical.js +65 -0
  668. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveMarkerDates.css +1 -0
  669. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveMarkerDates.js +85 -0
  670. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractivePaths.js +56 -0
  671. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractivePeriodSelector.js +71 -0
  672. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveProvider.js +45 -0
  673. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveScrubHandler.css +5 -0
  674. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveScrubHandler.js +201 -0
  675. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveScrubProvider.js +39 -0
  676. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveTimeseriesPaths.js +92 -0
  677. package/esm/visualizations/sparkline/sparkline-interactive/__figma__/SparklineInteractive.figma.js +89 -0
  678. package/esm/visualizations/sparkline/sparkline-interactive/fade.css +2 -0
  679. package/esm/visualizations/sparkline/sparkline-interactive/fade.js +15 -0
  680. package/esm/visualizations/sparkline/sparkline-interactive/useSparklineInteractiveConstants.js +28 -0
  681. package/esm/visualizations/sparkline/sparkline-interactive-header/SparklineInteractiveHeader.js +226 -0
  682. package/esm/visualizations/sparkline/sparkline-interactive-header/__figma__/SparklineInteractiveHeader.figma.js +108 -0
  683. package/package.json +23 -10
@@ -0,0 +1,952 @@
1
+ const _excluded = ["staggerDelay"];
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
6
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
8
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
9
+ import { defaultAxisId as fallbackAxisId } from './axis';
10
+ import { evaluateGradientAtValue } from './gradient';
11
+ import { defaultTransition } from './transition';
12
+
13
+ /**
14
+ * A bar-specific transition that extends Transition with stagger support.
15
+ * When `staggerDelay` is provided, bars will animate with increasing delays
16
+ * based on their position along the category axis (vertical: left-to-right,
17
+ * horizontal: top-to-bottom).
18
+ *
19
+ * @example
20
+ * // Bars stagger in from left to right over 0.25s, each animating for 0.75s
21
+ * { type: 'tween', duration: 0.75, staggerDelay: 0.25 }
22
+ */
23
+
24
+ /**
25
+ * Computes a bar's normalized [0, 1] position along the category axis, used for
26
+ * stagger-delay calculations.
27
+ *
28
+ * Vertical charts stagger left-to-right (x axis); horizontal charts stagger
29
+ * top-to-bottom (y axis). Returns 0 when the drawing area has no extent.
30
+ *
31
+ * @param layout - The layout of the chart
32
+ * @param x - Bar's left edge in pixels
33
+ * @param y - Bar's top edge in pixels
34
+ */
35
+ export const getNormalizedStagger = (layout, x, y, drawingArea) => {
36
+ if (layout === 'horizontal') {
37
+ return drawingArea.height > 0 ? (y - drawingArea.y) / drawingArea.height : 0;
38
+ }
39
+ return drawingArea.width > 0 ? (x - drawingArea.x) / drawingArea.width : 0;
40
+ };
41
+
42
+ /**
43
+ * Strips `staggerDelay` from a transition and computes a positional delay.
44
+ *
45
+ * @param transition - The transition config (may include staggerDelay)
46
+ * @param normalizedPosition - The bar's normalized position along the category axis (0–1)
47
+ * @returns A standard Transition with computed delay
48
+ */
49
+ export const withStaggerDelayTransition = (transition, normalizedPosition) => {
50
+ var _baseTransition$delay;
51
+ if (!transition) return null;
52
+ const {
53
+ staggerDelay
54
+ } = transition,
55
+ baseTransition = _objectWithoutProperties(transition, _excluded);
56
+ if (!staggerDelay) return transition;
57
+ return _objectSpread(_objectSpread({}, baseTransition), {}, {
58
+ delay: ((_baseTransition$delay = baseTransition === null || baseTransition === void 0 ? void 0 : baseTransition.delay) !== null && _baseTransition$delay !== void 0 ? _baseTransition$delay : 0) + normalizedPosition * staggerDelay
59
+ });
60
+ };
61
+
62
+ /**
63
+ * Default bar enter transition. Uses the default spring with a stagger delay
64
+ * so bars spring into place from left to right.
65
+ * `{ type: 'spring', stiffness: 900, damping: 120, mass: 4, staggerDelay: 0.25 }`
66
+ */
67
+ export const defaultBarEnterTransition = _objectSpread(_objectSpread({}, defaultTransition), {}, {
68
+ staggerDelay: 0.25
69
+ });
70
+
71
+ /**
72
+ * Default bar enter opacity transition.
73
+ * `{ type: 'tween', duration: 0.2 }`
74
+ */
75
+ export const defaultBarEnterOpacityTransition = {
76
+ type: 'tween',
77
+ duration: 0.2
78
+ };
79
+
80
+ /**
81
+ * Calculates the size adjustment needed for bars when accounting for gaps between them.
82
+ * This function helps determine how much to reduce each bar's width to accommodate
83
+ * the specified gap size between multiple bars in a group.
84
+ *
85
+ * @param barCount - The number of bars in the group
86
+ * @param gapSize - The desired gap size between bars
87
+ * @returns The amount to reduce each bar's size by, or 0 if there's only one bar
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * // For 3 bars with 12px gaps, each bar should be reduced by 8px
92
+ * const adjustment = getBarSizeAdjustment(3, 12);
93
+ *
94
+ * // Single bar needs no adjustment
95
+ * const singleBarAdjustment = getBarSizeAdjustment(1, 10);
96
+ * ```
97
+ */
98
+ export function getBarSizeAdjustment(barCount, gapSize) {
99
+ if (barCount <= 1) {
100
+ return 0;
101
+ }
102
+ return gapSize * (barCount - 1) / barCount;
103
+ }
104
+ /**
105
+ * Groups bar series into stack groups scoped by stackId + axis IDs.
106
+ *
107
+ * Series with no `stackId` are treated as independent stacks keyed by series id.
108
+ * Axis IDs are included in the group key so series on different axes never stack together.
109
+ */
110
+ export function getStackGroups(series) {
111
+ let defaultAxisId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : fallbackAxisId;
112
+ const groups = {};
113
+ series.forEach(entry => {
114
+ var _entry$xAxisId, _entry$yAxisId;
115
+ const xAxisId = (_entry$xAxisId = entry.xAxisId) !== null && _entry$xAxisId !== void 0 ? _entry$xAxisId : defaultAxisId;
116
+ const yAxisId = (_entry$yAxisId = entry.yAxisId) !== null && _entry$yAxisId !== void 0 ? _entry$yAxisId : defaultAxisId;
117
+ const stackId = entry.stackId || "individual-".concat(entry.id);
118
+ const stackKey = "".concat(stackId, ":").concat(xAxisId, ":").concat(yAxisId);
119
+ if (!groups[stackKey]) {
120
+ groups[stackKey] = {
121
+ stackId: stackKey,
122
+ series: [],
123
+ xAxisId: entry.xAxisId,
124
+ yAxisId: entry.yAxisId
125
+ };
126
+ }
127
+ groups[stackKey].series.push(entry);
128
+ });
129
+ return Object.values(groups);
130
+ }
131
+
132
+ /**
133
+ * A single positioned bar in a stack, used throughout all bar layout helpers.
134
+ */
135
+ /**
136
+ * A single positioned bar — the source-of-truth data shape for the bar system.
137
+ *
138
+ * Layout fields (`valuePos`, `length`) are axis-agnostic and used by helper
139
+ * functions during computation. Rendering fields (`x`, `y`, `width`, `height`,
140
+ * `origin`, `dataX`, `dataY`) are derived at the end of `getBars` and can be
141
+ * passed directly to the `<Bar>` component.
142
+ *
143
+ * `BarBaseProps` in `Bar.tsx` picks from this type.
144
+ */
145
+ /**
146
+ * A fully computed bar ready to render — extends `BarBaseProps` with required
147
+ * identity fields and internal layout data used by helper functions.
148
+ *
149
+ * `getBars` returns `BarData[]` with every `BarBaseProps` field populated so
150
+ * the `<Bar>` component can consume them directly.
151
+ */
152
+
153
+ /**
154
+ * Applies proportional gap distribution to a stack of bars, maintaining total stack length.
155
+ * Gaps are only inserted between bars that have `shouldApplyGap = true`.
156
+ * Positive (above-baseline) and negative (below-baseline) groups are gapped independently.
157
+ *
158
+ * @param bars - Array of bar items with current valuePos and length
159
+ * @param stackGap - Gap size in pixels between adjacent bars
160
+ * @param layout - The layout of the chart
161
+ * @param baseline - Value-axis baseline in data space
162
+ * @param baselinePx - Pixel position of the value-axis baseline on the value axis
163
+ * @returns New array of bars with adjusted valuePos and length
164
+ */
165
+ function applyStackGap(bars, stackGap, layout, baseline, baselinePx) {
166
+ if (!stackGap || bars.length <= 1) return bars;
167
+ const result = [...bars];
168
+ const barsAboveBaseline = bars.filter(bar => {
169
+ const [bottom, top] = [...bar.dataValue].sort((a, b) => a - b);
170
+ return bottom >= baseline && top !== bottom && bar.shouldApplyGap;
171
+ });
172
+ const barsBelowBaseline = bars.filter(bar => {
173
+ const [bottom, top] = [...bar.dataValue].sort((a, b) => a - b);
174
+ return top <= baseline && bottom !== top && bar.shouldApplyGap;
175
+ });
176
+ const applyGapGroup = (group, growing) => {
177
+ if (group.length <= 1) return;
178
+ const totalGapSpace = stackGap * (group.length - 1);
179
+ const totalDataLength = group.reduce((sum, bar) => sum + bar.length, 0);
180
+ const lengthReduction = totalGapSpace / totalDataLength;
181
+ const sortedBars = growing ? [...group].sort((a, b) => b.valuePos - a.valuePos) : [...group].sort((a, b) => a.valuePos - b.valuePos);
182
+ let currentEdge = baselinePx;
183
+ sortedBars.forEach((bar, index) => {
184
+ const newLength = bar.length * (1 - lengthReduction);
185
+ let newValuePos;
186
+ if (growing) {
187
+ newValuePos = currentEdge - newLength;
188
+ currentEdge = newValuePos - (index < sortedBars.length - 1 ? stackGap : 0);
189
+ } else {
190
+ newValuePos = currentEdge;
191
+ currentEdge = newValuePos + newLength + (index < sortedBars.length - 1 ? stackGap : 0);
192
+ }
193
+ const barIndex = result.findIndex(b => b.seriesId === bar.seriesId);
194
+ if (barIndex !== -1) {
195
+ result[barIndex] = _objectSpread(_objectSpread({}, result[barIndex]), {}, {
196
+ length: newLength,
197
+ valuePos: newValuePos
198
+ });
199
+ }
200
+ });
201
+ };
202
+
203
+ // Positive bars: grow up in vertical (decreasing Y), grow right in horizontal (increasing X)
204
+ applyGapGroup(barsAboveBaseline, layout === 'vertical');
205
+ // Negative bars: grow down in vertical (increasing Y), grow left in horizontal (decreasing X)
206
+ applyGapGroup(barsBelowBaseline, layout !== 'vertical');
207
+ return result;
208
+ }
209
+
210
+ /**
211
+ * Expands bars that are shorter than `barMinSize` to the minimum size.
212
+ * Non-expanded bars are scaled down proportionally to keep the total bar length constant,
213
+ * preventing stacked bars from overflowing the chart area.
214
+ *
215
+ * Bars are then repositioned from the baseline, preserving original gaps between them.
216
+ *
217
+ * @param bars - Array of bar items with current valuePos and length
218
+ * @param barMinSize - Minimum bar size in pixels
219
+ * @param baseline - Value-axis baseline in data space
220
+ * @param baselinePx - Pixel position of the value-axis baseline on the value axis
221
+ * @param layout - Chart layout
222
+ * @returns New array of bars with adjusted valuePos and length
223
+ */
224
+ function applyBarMinSize(bars, barMinSize, baseline, baselinePx, layout) {
225
+ if (!barMinSize || bars.length === 0) return bars;
226
+ const originalTotalLength = bars.reduce((sum, bar) => sum + bar.length, 0);
227
+ const needsExpansion = bars.map(bar => bar.length < barMinSize);
228
+ const expandedTotalLength = bars.reduce((sum, bar, i) => sum + (needsExpansion[i] ? barMinSize : bar.length), 0);
229
+ let finalLengths;
230
+ if (expandedTotalLength > originalTotalLength) {
231
+ // Scale down non-expanded bars to keep total bar length constant
232
+ const spaceForExpanded = needsExpansion.filter(Boolean).length * barMinSize;
233
+ const spaceForNonExpanded = Math.max(0, originalTotalLength - spaceForExpanded);
234
+ const nonExpandedOrigTotal = bars.reduce((sum, bar, i) => !needsExpansion[i] ? sum + bar.length : sum, 0);
235
+ const scaleFactor = nonExpandedOrigTotal > 0 ? spaceForNonExpanded / nonExpandedOrigTotal : 0;
236
+ finalLengths = bars.map((bar, i) => needsExpansion[i] ? barMinSize : bar.length * scaleFactor);
237
+ } else {
238
+ finalLengths = bars.map((bar, i) => needsExpansion[i] ? barMinSize : bar.length);
239
+ }
240
+ const expandedBars = bars.map((bar, i) => _objectSpread(_objectSpread({}, bar), {}, {
241
+ length: finalLengths[i]
242
+ }));
243
+ const newPositions = new Map();
244
+
245
+ // Range bars (shouldApplyGap=false) float at data-defined coordinates independent of the
246
+ // baseline. Restacking them from the zero baseline would place them off-screen when the
247
+ // y-axis domain doesn't include 0 (e.g., a price chart with domain [28000, 37000]).
248
+ // Instead, expand them in-place, centered on their original midpoint.
249
+ for (let i = 0; i < bars.length; i++) {
250
+ if (bars[i].shouldApplyGap === false) {
251
+ const originalMid = bars[i].valuePos + bars[i].length / 2;
252
+ newPositions.set(bars[i].seriesId, {
253
+ valuePos: originalMid - expandedBars[i].length / 2,
254
+ length: expandedBars[i].length
255
+ });
256
+ }
257
+ }
258
+
259
+ // Stacked bars (shouldApplyGap=true/undefined): classify by which side of the baseline
260
+ // they're on and restack from the baseline outward.
261
+ const stackedSortedBars = [...expandedBars].filter(bar => bar.shouldApplyGap !== false).sort((a, b) => a.valuePos - b.valuePos);
262
+ if (stackedSortedBars.length > 0) {
263
+ // Classify using dataValue to correctly identify which side of the baseline each bar is on,
264
+ // independent of the current valuePos (which hasn't been repositioned yet).
265
+ const barsAboveBaseline = stackedSortedBars.filter(bar => {
266
+ const [bottom, top] = [...bar.dataValue].sort((a, b) => a - b);
267
+ return bottom >= baseline && top !== bottom;
268
+ });
269
+ const barsBelowBaseline = stackedSortedBars.filter(bar => {
270
+ const [bottom, top] = [...bar.dataValue].sort((a, b) => a - b);
271
+ return top <= baseline && bottom !== top;
272
+ });
273
+
274
+ // Restack bars above baseline (positive data side).
275
+ // vertical → grow up (−Y from baseline); horizontal → grow right (+X from baseline).
276
+ if (layout === 'vertical') {
277
+ let currentAbove = baselinePx;
278
+ for (let i = barsAboveBaseline.length - 1; i >= 0; i--) {
279
+ const bar = barsAboveBaseline[i];
280
+ const newValuePos = currentAbove - bar.length;
281
+ newPositions.set(bar.seriesId, {
282
+ valuePos: newValuePos,
283
+ length: bar.length
284
+ });
285
+ if (i > 0) {
286
+ const nextBar = barsAboveBaseline[i - 1];
287
+ const originalCurrent = bars.find(b => b.seriesId === bar.seriesId);
288
+ const originalNext = bars.find(b => b.seriesId === nextBar.seriesId);
289
+ const originalGap = originalCurrent.valuePos - (originalNext.valuePos + originalNext.length);
290
+ currentAbove = newValuePos - originalGap;
291
+ }
292
+ }
293
+ } else {
294
+ let currentEdge = baselinePx;
295
+ for (let i = 0; i < barsAboveBaseline.length; i++) {
296
+ const bar = barsAboveBaseline[i];
297
+ newPositions.set(bar.seriesId, {
298
+ valuePos: currentEdge,
299
+ length: bar.length
300
+ });
301
+ if (i < barsAboveBaseline.length - 1) {
302
+ const nextBar = barsAboveBaseline[i + 1];
303
+ const originalCurrent = bars.find(b => b.seriesId === bar.seriesId);
304
+ const originalNext = bars.find(b => b.seriesId === nextBar.seriesId);
305
+ const originalGap = originalNext.valuePos - (originalCurrent.valuePos + originalCurrent.length);
306
+ currentEdge = currentEdge + bar.length + originalGap;
307
+ }
308
+ }
309
+ }
310
+
311
+ // Restack bars below baseline (negative data side).
312
+ // vertical → grow down (+Y); horizontal → grow left (−X).
313
+ if (layout === 'vertical') {
314
+ let currentBelow = baselinePx;
315
+ for (let i = 0; i < barsBelowBaseline.length; i++) {
316
+ const bar = barsBelowBaseline[i];
317
+ newPositions.set(bar.seriesId, {
318
+ valuePos: currentBelow,
319
+ length: bar.length
320
+ });
321
+ if (i < barsBelowBaseline.length - 1) {
322
+ const nextBar = barsBelowBaseline[i + 1];
323
+ const originalCurrent = bars.find(b => b.seriesId === bar.seriesId);
324
+ const originalNext = bars.find(b => b.seriesId === nextBar.seriesId);
325
+ const originalGap = originalNext.valuePos - (originalCurrent.valuePos + originalCurrent.length);
326
+ currentBelow = currentBelow + bar.length + originalGap;
327
+ }
328
+ }
329
+ } else {
330
+ const sortedBelow = [...barsBelowBaseline].sort((a, b) => b.valuePos - a.valuePos);
331
+ let currentEdge = baselinePx;
332
+ for (let i = sortedBelow.length - 1; i >= 0; i--) {
333
+ const bar = sortedBelow[i];
334
+ const newValuePos = currentEdge - bar.length;
335
+ newPositions.set(bar.seriesId, {
336
+ valuePos: newValuePos,
337
+ length: bar.length
338
+ });
339
+ if (i > 0) {
340
+ const nextBar = sortedBelow[i - 1];
341
+ const originalCurrent = bars.find(b => b.seriesId === bar.seriesId);
342
+ const originalNext = bars.find(b => b.seriesId === nextBar.seriesId);
343
+ const originalGap = originalCurrent.valuePos - (originalNext.valuePos + originalNext.length);
344
+ currentEdge = newValuePos - originalGap;
345
+ }
346
+ }
347
+ }
348
+ }
349
+ return expandedBars.map(bar => {
350
+ const newPos = newPositions.get(bar.seriesId);
351
+ if (newPos) return _objectSpread(_objectSpread({}, bar), {}, {
352
+ valuePos: newPos.valuePos,
353
+ length: newPos.length
354
+ });
355
+ return bar;
356
+ });
357
+ }
358
+
359
+ /**
360
+ * Computes per-bar initial animation origin positions for bar entrance animations.
361
+ *
362
+ * Bars are stacked from the baseline in their respective directions so they start at
363
+ * distinct, non-overlapping positions with the gap already applied:
364
+ * - Positive bars: stack rightward (horizontal) / upward (vertical) from the baseline.
365
+ * - Negative bars: stack leftward (horizontal) / downward (vertical) from the baseline.
366
+ *
367
+ * The bar closest to the baseline always gets index 0 and starts exactly at the baseline.
368
+ *
369
+ * @param bars - Array of bar items with final valuePos, length, and dataValue
370
+ * @param initialBarMinSizes - Per-bar initial sizes in pixels for entrance animation
371
+ * @param stackGap - Gap between adjacent bars in pixels
372
+ * @param baseline - Value-axis baseline in data space
373
+ * @param baselinePx - Pixel position of the value-axis baseline on the value axis
374
+ * @param layout - The layout of the chart
375
+ * @returns Array of origin positions (one per bar, parallel to input), all defaulting to baselinePx
376
+ */
377
+ function getBarOrigins(bars, initialBarMinSizes, stackGap, baseline, baselinePx, layout) {
378
+ const result = bars.map(() => baselinePx);
379
+ if (bars.length === 0 || initialBarMinSizes.every(size => !size)) return result;
380
+ const isPositive = bar => {
381
+ const [lo, hi] = [...bar.dataValue].sort((a, b) => a - b);
382
+ return lo >= baseline && hi !== lo;
383
+ };
384
+ const isNegative = bar => {
385
+ const [lo, hi] = [...bar.dataValue].sort((a, b) => a - b);
386
+ return hi <= baseline && hi !== lo;
387
+ };
388
+ const positiveBars = bars.map((bar, i) => ({
389
+ bar,
390
+ i
391
+ })).filter(_ref => {
392
+ let {
393
+ bar
394
+ } = _ref;
395
+ return isPositive(bar);
396
+ }).sort((a, b) => layout === 'vertical' ? b.bar.valuePos - a.bar.valuePos // vertical: largest Y pixel = closest to bottom baseline
397
+ : a.bar.valuePos - b.bar.valuePos // horizontal: smallest X pixel = closest to left baseline
398
+ );
399
+ if (layout === 'vertical') {
400
+ let currentPositive = baselinePx;
401
+ positiveBars.forEach((_ref2, idx) => {
402
+ var _initialBarMinSizes$i;
403
+ let {
404
+ i
405
+ } = _ref2;
406
+ const initialSize = (_initialBarMinSizes$i = initialBarMinSizes[i]) !== null && _initialBarMinSizes$i !== void 0 ? _initialBarMinSizes$i : 0;
407
+ currentPositive -= initialSize;
408
+ result[i] = currentPositive;
409
+ if (idx < positiveBars.length - 1) {
410
+ currentPositive -= stackGap;
411
+ }
412
+ });
413
+ } else {
414
+ let currentPositive = baselinePx;
415
+ positiveBars.forEach((_ref3, idx) => {
416
+ var _initialBarMinSizes$i2;
417
+ let {
418
+ i
419
+ } = _ref3;
420
+ const initialSize = (_initialBarMinSizes$i2 = initialBarMinSizes[i]) !== null && _initialBarMinSizes$i2 !== void 0 ? _initialBarMinSizes$i2 : 0;
421
+ result[i] = currentPositive;
422
+ currentPositive += initialSize;
423
+ if (idx < positiveBars.length - 1) {
424
+ currentPositive += stackGap;
425
+ }
426
+ });
427
+ }
428
+ const negativeBars = bars.map((bar, i) => ({
429
+ bar,
430
+ i
431
+ })).filter(_ref4 => {
432
+ let {
433
+ bar
434
+ } = _ref4;
435
+ return isNegative(bar);
436
+ }).sort((a, b) => layout === 'vertical' ? a.bar.valuePos - b.bar.valuePos // vertical: smallest Y pixel = closest to top baseline
437
+ : b.bar.valuePos + b.bar.length - (a.bar.valuePos + a.bar.length) // horizontal: largest right edge = closest to baseline
438
+ );
439
+ if (layout === 'vertical') {
440
+ let currentNegative = baselinePx;
441
+ negativeBars.forEach((_ref5, idx) => {
442
+ var _initialBarMinSizes$i3;
443
+ let {
444
+ i
445
+ } = _ref5;
446
+ const initialSize = (_initialBarMinSizes$i3 = initialBarMinSizes[i]) !== null && _initialBarMinSizes$i3 !== void 0 ? _initialBarMinSizes$i3 : 0;
447
+ result[i] = currentNegative;
448
+ currentNegative += initialSize;
449
+ if (idx < negativeBars.length - 1) {
450
+ currentNegative += stackGap;
451
+ }
452
+ });
453
+ } else {
454
+ let currentNegative = baselinePx;
455
+ negativeBars.forEach((_ref6, idx) => {
456
+ var _initialBarMinSizes$i4;
457
+ let {
458
+ i
459
+ } = _ref6;
460
+ const initialSize = (_initialBarMinSizes$i4 = initialBarMinSizes[i]) !== null && _initialBarMinSizes$i4 !== void 0 ? _initialBarMinSizes$i4 : 0;
461
+ currentNegative -= initialSize;
462
+ result[i] = currentNegative;
463
+ if (idx < negativeBars.length - 1) {
464
+ currentNegative -= stackGap;
465
+ }
466
+ });
467
+ }
468
+ return result;
469
+ }
470
+
471
+ /**
472
+ * Computes stack clip origin [start, end] that covers the bounding box
473
+ * of all bars at their stacked starting positions (as computed by `getBarOrigins`).
474
+ *
475
+ * This is passed to `DefaultBarStack` so the clip animation starts in sync with the
476
+ * individual bar animations — no bars leak outside the clip on frame 0.
477
+ *
478
+ * @param barOrigins - Per-bar initial origins from `getBarOrigins`
479
+ * @param barMinSizes - Per-bar minimum sizes in pixels (or a uniform value)
480
+ * @returns [originStart, originEnd] or undefined when barMinSize is 0 / no bars
481
+ */
482
+ export function getStackOrigin(barOrigins, barMinSizes) {
483
+ if (barOrigins.length === 0) return undefined;
484
+ const minSizes = Array.isArray(barMinSizes) ? barMinSizes : barOrigins.map(() => barMinSizes);
485
+ let rangeStart = Number.POSITIVE_INFINITY;
486
+ let rangeEnd = Number.NEGATIVE_INFINITY;
487
+ for (let i = 0; i < barOrigins.length; i++) {
488
+ var _minSizes$i;
489
+ const minSize = (_minSizes$i = minSizes[i]) !== null && _minSizes$i !== void 0 ? _minSizes$i : 0;
490
+ if (minSize <= 0) continue;
491
+ const barStart = barOrigins[i];
492
+ const barEnd = barStart + minSize;
493
+ rangeStart = Math.min(rangeStart, barStart, barEnd);
494
+ rangeEnd = Math.max(rangeEnd, barStart, barEnd);
495
+ }
496
+ if (!Number.isFinite(rangeStart) || !Number.isFinite(rangeEnd)) return undefined;
497
+ return [rangeStart, rangeEnd];
498
+ }
499
+ function getInitialBarMinSizes(bars, barMinSize, stackMinSize) {
500
+ const perBarMinFromBarMinSize = barMinSize !== null && barMinSize !== void 0 ? barMinSize : 0;
501
+ if (bars.length === 0) return [];
502
+ if (!stackMinSize) {
503
+ return bars.map(() => perBarMinFromBarMinSize);
504
+ }
505
+ const totalBarLength = bars.reduce((sum, bar) => sum + bar.length, 0);
506
+ const perBarMinFromStack = totalBarLength ? bars.map(bar => stackMinSize * bar.length / totalBarLength) : bars.map(() => stackMinSize / bars.length);
507
+ return perBarMinFromStack.map(stackMin => Math.max(perBarMinFromBarMinSize, stackMin));
508
+ }
509
+
510
+ /**
511
+ * Computes the initial clip rect used for stack enter animations.
512
+ */
513
+ export function getStackInitialClipRect(stackRect, layout, origin) {
514
+ const {
515
+ x,
516
+ y,
517
+ width,
518
+ height
519
+ } = stackRect;
520
+ if (Array.isArray(origin)) {
521
+ const [originStart, originEnd] = origin;
522
+ if (layout === 'vertical') {
523
+ return {
524
+ x,
525
+ y: originStart,
526
+ width,
527
+ height: originEnd - originStart
528
+ };
529
+ }
530
+ return {
531
+ x: originStart,
532
+ y,
533
+ width: originEnd - originStart,
534
+ height
535
+ };
536
+ }
537
+ const initialSize = 1;
538
+ if (layout === 'vertical') {
539
+ const valueBaseline = origin !== null && origin !== void 0 ? origin : y + height;
540
+ return {
541
+ x,
542
+ y: valueBaseline,
543
+ width,
544
+ height: initialSize
545
+ };
546
+ }
547
+ const valueBaseline = origin !== null && origin !== void 0 ? origin : x;
548
+ return {
549
+ x: valueBaseline,
550
+ y,
551
+ width: initialSize,
552
+ height
553
+ };
554
+ }
555
+
556
+ /**
557
+ * Scales a stack of bars up so the total stack extent meets `stackMinSize`.
558
+ * For a single bar, the bar is expanded away from the baseline.
559
+ * For multiple bars, all bars are scaled proportionally, preserving relative gaps.
560
+ *
561
+ * @param bars - Array of bar items with current valuePos and length
562
+ * @param stackMinSize - Minimum stack size in pixels
563
+ * @param stackSize - Current total pixel extent of the stack
564
+ * @param stackBounds - Current bounding rect of the stack
565
+ * @param layout - The layout of the chart
566
+ * @param indexPos - Pixel position along the categorical (index) axis
567
+ * @param thickness - Bar thickness in pixels
568
+ * @param baseline - Value-axis baseline in data space
569
+ * @param baselinePx - Pixel position of the value-axis baseline on the value axis
570
+ * @returns Updated bars and stackBounds; unchanged if stackSize >= stackMinSize
571
+ */
572
+ function applyStackMinSize(bars, stackMinSize, stackSize, stackBounds, layout, indexPos, thickness, baseline, baselinePx) {
573
+ if (!stackMinSize || stackSize >= stackMinSize) return {
574
+ bars,
575
+ stackBounds
576
+ };
577
+ if (bars.length === 0) return {
578
+ bars,
579
+ stackBounds
580
+ };
581
+ let updatedBars = [...bars];
582
+ let updatedBounds = _objectSpread({}, stackBounds);
583
+ if (bars.length === 1) {
584
+ const bar = bars[0];
585
+ const sizeIncrease = stackMinSize - bar.length;
586
+ const [bottom, top] = [...bar.dataValue].sort((a, b) => a - b);
587
+ let newValuePos;
588
+ const newLength = stackMinSize;
589
+ if (bottom >= baseline && top !== bottom) {
590
+ // Bar is on the positive side: vertical→expands upward (↑), horizontal→expands rightward (→)
591
+ newValuePos = layout === 'vertical' ? bar.valuePos - sizeIncrease : bar.valuePos;
592
+ } else if (top <= baseline && top !== bottom) {
593
+ // Bar is on the negative side: vertical→expands downward (↓), horizontal→expands leftward (←)
594
+ newValuePos = layout === 'vertical' ? bar.valuePos : bar.valuePos - sizeIncrease;
595
+ } else {
596
+ // Bar spans baseline or is zero: expand equally in both directions
597
+ newValuePos = bar.valuePos - sizeIncrease / 2;
598
+ }
599
+ updatedBars = [_objectSpread(_objectSpread({}, bar), {}, {
600
+ valuePos: newValuePos,
601
+ length: newLength
602
+ })];
603
+ updatedBounds = {
604
+ x: layout === 'vertical' ? indexPos : newValuePos,
605
+ y: layout === 'vertical' ? newValuePos : indexPos,
606
+ width: layout === 'vertical' ? thickness : newLength,
607
+ height: layout === 'vertical' ? newLength : thickness
608
+ };
609
+ } else {
610
+ const totalBarLength = bars.reduce((sum, bar) => sum + bar.length, 0);
611
+ const totalGapLength = stackSize - totalBarLength;
612
+ const requiredBarLength = stackMinSize - totalGapLength;
613
+ const barScaleFactor = requiredBarLength / totalBarLength;
614
+ const sortedBars = [...bars].sort((a, b) => a.valuePos - b.valuePos);
615
+
616
+ // For vertical: positive bars are above baseline (smaller Y), negative bars are below (larger Y)
617
+ // For horizontal: positive bars are right of baseline (larger X), negative bars are left (smaller X)
618
+ const barsOnPositiveSide = layout === 'vertical' ? sortedBars.filter(bar => bar.valuePos + bar.length <= baselinePx) : sortedBars.filter(bar => bar.valuePos >= baselinePx);
619
+ const barsOnNegativeSide = layout === 'vertical' ? sortedBars.filter(bar => bar.valuePos >= baselinePx) : sortedBars.filter(bar => bar.valuePos + bar.length <= baselinePx);
620
+ const newPositions = new Map();
621
+ if (layout === 'vertical') {
622
+ // Stack from baseline upward (decreasing valuePos) for positive bars
623
+ let currentPos = baselinePx;
624
+ for (let i = barsOnPositiveSide.length - 1; i >= 0; i--) {
625
+ const bar = barsOnPositiveSide[i];
626
+ const newLength = bar.length * barScaleFactor;
627
+ const newValuePos = currentPos - newLength;
628
+ newPositions.set(bar.seriesId, {
629
+ valuePos: newValuePos,
630
+ length: newLength
631
+ });
632
+ if (i > 0) {
633
+ const nextBar = barsOnPositiveSide[i - 1];
634
+ const originalGap = bar.valuePos - (nextBar.valuePos + nextBar.length);
635
+ currentPos = newValuePos - originalGap;
636
+ }
637
+ }
638
+ // Stack from baseline downward (increasing valuePos) for negative bars
639
+ let currentPosBelow = baselinePx;
640
+ for (let i = 0; i < barsOnNegativeSide.length; i++) {
641
+ const bar = barsOnNegativeSide[i];
642
+ const newLength = bar.length * barScaleFactor;
643
+ newPositions.set(bar.seriesId, {
644
+ valuePos: currentPosBelow,
645
+ length: newLength
646
+ });
647
+ if (i < barsOnNegativeSide.length - 1) {
648
+ const nextBar = barsOnNegativeSide[i + 1];
649
+ const originalGap = nextBar.valuePos - (bar.valuePos + bar.length);
650
+ currentPosBelow = currentPosBelow + newLength + originalGap;
651
+ }
652
+ }
653
+ } else {
654
+ // Stack from baseline rightward (increasing valuePos) for positive bars
655
+ let currentPos = baselinePx;
656
+ for (let i = 0; i < barsOnPositiveSide.length; i++) {
657
+ const bar = barsOnPositiveSide[i];
658
+ const newLength = bar.length * barScaleFactor;
659
+ newPositions.set(bar.seriesId, {
660
+ valuePos: currentPos,
661
+ length: newLength
662
+ });
663
+ if (i < barsOnPositiveSide.length - 1) {
664
+ const nextBar = barsOnPositiveSide[i + 1];
665
+ const originalGap = nextBar.valuePos - (bar.valuePos + bar.length);
666
+ currentPos = currentPos + newLength + originalGap;
667
+ }
668
+ }
669
+ // Stack from baseline leftward (decreasing valuePos) for negative bars
670
+ let currentPosLeft = baselinePx;
671
+ for (let i = barsOnNegativeSide.length - 1; i >= 0; i--) {
672
+ const bar = barsOnNegativeSide[i];
673
+ const newLength = bar.length * barScaleFactor;
674
+ const newValuePos = currentPosLeft - newLength;
675
+ newPositions.set(bar.seriesId, {
676
+ valuePos: newValuePos,
677
+ length: newLength
678
+ });
679
+ if (i > 0) {
680
+ const nextBar = barsOnNegativeSide[i - 1];
681
+ const originalGap = bar.valuePos - (nextBar.valuePos + nextBar.length);
682
+ currentPosLeft = newValuePos - originalGap;
683
+ }
684
+ }
685
+ }
686
+ updatedBars = bars.map(bar => {
687
+ const newPos = newPositions.get(bar.seriesId);
688
+ if (!newPos) return bar;
689
+ return _objectSpread(_objectSpread({}, bar), {}, {
690
+ length: newPos.length,
691
+ valuePos: newPos.valuePos
692
+ });
693
+ });
694
+ const newMinValuePos = Math.min(...updatedBars.map(bar => bar.valuePos));
695
+ const newMaxValuePos = Math.max(...updatedBars.map(bar => bar.valuePos + bar.length));
696
+ updatedBounds = {
697
+ x: layout === 'vertical' ? indexPos : newMinValuePos,
698
+ y: layout === 'vertical' ? newMinValuePos : indexPos,
699
+ width: layout === 'vertical' ? thickness : newMaxValuePos - newMinValuePos,
700
+ height: layout === 'vertical' ? newMaxValuePos - newMinValuePos : thickness
701
+ };
702
+ }
703
+ return {
704
+ bars: updatedBars,
705
+ stackBounds: updatedBounds
706
+ };
707
+ }
708
+
709
+ /**
710
+ * Applies border-radius flags to a sorted stack of bars.
711
+ *
712
+ * Faces at the outer edges of the stack remain rounded; faces where two bars
713
+ * touch internally are squared. When `stackGap` is non-zero every face keeps
714
+ * its rounded corner because all bars are visually separated.
715
+ *
716
+ * @param bars - Bars with `roundTop`/`roundBottom` flags and position data
717
+ * @param layout - The layout of the chart
718
+ * @param stackGap - Pixel gap between adjacent bars (non-zero ⇒ all faces stay rounded)
719
+ * @returns New array of bars with corrected `roundTop`/`roundBottom` flags
720
+ */
721
+ function applyBorderRadiusLogic(bars, layout, stackGap) {
722
+ if (bars.length === 0) return bars;
723
+
724
+ // Sort from "lower coordinate" face to "higher coordinate" face along the value axis:
725
+ // Vertical → descending valuePos (largest Y first = closest to baseline)
726
+ // Horizontal → ascending valuePos (smallest X first = closest to baseline)
727
+ const sortedBars = layout === 'vertical' ? [...bars].sort((a, b) => b.valuePos - a.valuePos) : [...bars].sort((a, b) => a.valuePos - b.valuePos);
728
+ return sortedBars.map((a, index) => {
729
+ const barBefore = index > 0 ? sortedBars[index - 1] : null;
730
+ const barAfter = index < sortedBars.length - 1 ? sortedBars[index + 1] : null;
731
+
732
+ // shouldRoundLower: face with the smaller coordinate (top in vertical, left in horizontal)
733
+ const shouldRoundLower = (layout === 'vertical' ? index === sortedBars.length - 1 : index === 0) || Boolean(a.shouldApplyGap && stackGap) || !a.shouldApplyGap && barAfter !== null && barAfter.valuePos + barAfter.length !== a.valuePos;
734
+
735
+ // shouldRoundHigher: face with the larger coordinate (bottom in vertical, right in horizontal)
736
+ const shouldRoundHigher = (layout === 'vertical' ? index === 0 : index === sortedBars.length - 1) || Boolean(a.shouldApplyGap && stackGap) || !a.shouldApplyGap && barBefore !== null && barBefore.valuePos !== a.valuePos + a.length;
737
+ return _objectSpread(_objectSpread({}, a), {}, {
738
+ roundTop: Boolean(a.roundTop && (layout === 'vertical' ? shouldRoundLower : shouldRoundHigher)),
739
+ roundBottom: Boolean(a.roundBottom && (layout === 'vertical' ? shouldRoundHigher : shouldRoundLower))
740
+ });
741
+ });
742
+ }
743
+
744
+ /**
745
+ * Threshold for treating a position as touching the baseline.
746
+ * Positions within this distance are considered at the baseline for rounding purposes.
747
+ */
748
+ export const EPSILON = 1e-4;
749
+
750
+ /**
751
+ * Computes and clamps the value-axis baseline position in pixels.
752
+ *
753
+ * When `baseline` (data space) is omitted, the baseline is chosen heuristically from the scale domain:
754
+ * - If the full domain is positive, use domain min.
755
+ * - If the full domain is negative, use domain max.
756
+ * - If the domain crosses zero, use `0`.
757
+ * When `baseline` is set, that value is used as the data-space baseline instead.
758
+ *
759
+ * @param valueScale - Scale for the value axis
760
+ * @param stackRect - Bounding rect of the stack in pixels
761
+ * @param layout - Chart layout
762
+ * @param baseline - Optional value-axis baseline in data space
763
+ */
764
+ export function getBaselinePx(valueScale, stackRect, layout, baseline) {
765
+ const [domainMin, domainMax] = valueScale.domain();
766
+ const baselineInData = baseline !== null && baseline !== void 0 ? baseline : domainMin >= 0 ? domainMin : domainMax <= 0 ? domainMax : 0;
767
+ const baselinePos = valueScale(baselineInData);
768
+ if (layout === 'vertical') {
769
+ return Math.max(stackRect.y, Math.min(baselinePos !== null && baselinePos !== void 0 ? baselinePos : stackRect.y + stackRect.height, stackRect.y + stackRect.height));
770
+ }
771
+ return Math.max(stackRect.x, Math.min(baselinePos !== null && baselinePos !== void 0 ? baselinePos : stackRect.x, stackRect.x + stackRect.width));
772
+ }
773
+ function getStackBoundsForLayout(layout, indexPos, thickness, minValuePos, stackSize) {
774
+ if (layout === 'vertical') {
775
+ return {
776
+ x: indexPos,
777
+ y: minValuePos,
778
+ width: thickness,
779
+ height: stackSize
780
+ };
781
+ }
782
+ return {
783
+ x: minValuePos,
784
+ y: indexPos,
785
+ width: stackSize,
786
+ height: thickness
787
+ };
788
+ }
789
+ function getStackSizeForLayout(layout, stackRect) {
790
+ return layout === 'vertical' ? stackRect.height : stackRect.width;
791
+ }
792
+
793
+ /**
794
+ * Computes the positioned bar entries and bounding rect for a single stack at one category index.
795
+ *
796
+ * This is the pure computation extracted from `BarStack`'s `useMemo` so it can be tested
797
+ * independently and reused across contexts.
798
+ *
799
+ * @param params.series - Series configs for this stack
800
+ * @param params.seriesData - Stacked data for each series, keyed by series id
801
+ * @param params.categoryIndex - Index of the category being rendered
802
+ * @param params.indexPos - Pixel position along the categorical axis
803
+ * @param params.thickness - Bar thickness in pixels
804
+ * @param params.valueScale - Scale function for the value axis
805
+ * @param params.seriesGradients - Precomputed gradient configs per series (null entries are skipped)
806
+ * @param params.roundBaseline - Whether to round the face touching the baseline
807
+ * @param params.layout - The layout of the chart
808
+ * @param params.baseline - Value-axis baseline in data space
809
+ * @param params.baselinePx - Pixel position of the value-axis baseline on the value axis
810
+ * @param params.stackGap - Gap between adjacent bars in pixels
811
+ * @param params.barMinSize - Minimum individual bar size in pixels
812
+ * @param params.stackMinSize - Minimum total stack size in pixels
813
+ * @param params.defaultFill - Fallback fill color when a series has no color or gradient
814
+ * @returns Positioned bar entries and the stack's bounding rect
815
+ */
816
+ export function getBars(params) {
817
+ const {
818
+ series,
819
+ seriesData,
820
+ categoryIndex,
821
+ categoryValue,
822
+ indexPos,
823
+ thickness,
824
+ valueScale,
825
+ seriesGradients,
826
+ roundBaseline,
827
+ layout,
828
+ baseline: baselineParam,
829
+ baselinePx,
830
+ stackGap,
831
+ barMinSize,
832
+ stackMinSize,
833
+ defaultFill,
834
+ borderRadius,
835
+ defaultFillOpacity,
836
+ defaultStroke,
837
+ defaultStrokeWidth,
838
+ defaultBarComponent
839
+ } = params;
840
+ const baseline = baselineParam !== null && baselineParam !== void 0 ? baselineParam : 0;
841
+ let allBars = [];
842
+ series.forEach(s => {
843
+ var _valueScale, _valueScale2, _s$color;
844
+ const data = seriesData[s.id];
845
+ if (!data) return;
846
+ const value = data[categoryIndex];
847
+ if (value === null || value === undefined) return;
848
+ const originalData = s.data;
849
+ const originalValue = originalData === null || originalData === void 0 ? void 0 : originalData[categoryIndex];
850
+ // Only apply gap logic if the original data wasn't tuple format
851
+ const shouldApplyGap = !Array.isArray(originalValue);
852
+
853
+ // Sort to be in ascending order
854
+ const [bottom, top] = [...value].sort((a, b) => a - b);
855
+ const edgeBottom = (_valueScale = valueScale(bottom)) !== null && _valueScale !== void 0 ? _valueScale : baselinePx;
856
+ const edgeTop = (_valueScale2 = valueScale(top)) !== null && _valueScale2 !== void 0 ? _valueScale2 : baselinePx;
857
+
858
+ // In horizontal layout: roundTop is Right (edgeTop), roundBottom is Left (edgeBottom)
859
+ // getBarPath already handles the mapping of roundTop/roundBottom to coordinates.
860
+ // Use data-space baseline so faces at the axis baseline stay square when roundBaseline is off
861
+ // (pixel gaps after stackGap can otherwise trip the pixel-only epsilon check).
862
+ const roundTop = roundBaseline || Math.abs(top - baseline) >= EPSILON && Math.abs(edgeTop - baselinePx) >= EPSILON;
863
+ const roundBottom = roundBaseline || Math.abs(bottom - baseline) >= EPSILON && Math.abs(edgeBottom - baselinePx) >= EPSILON;
864
+
865
+ // Calculate length (measured along the value axis)
866
+ const length = Math.abs(edgeBottom - edgeTop);
867
+ const valuePos = Math.min(edgeBottom, edgeTop);
868
+
869
+ // Skip bars that would have zero or negative height
870
+ if (length <= 0) return;
871
+ let barFill = (_s$color = s.color) !== null && _s$color !== void 0 ? _s$color : defaultFill;
872
+
873
+ // Evaluate gradient if provided (using precomputed stops)
874
+ const seriesGradientConfig = seriesGradients.find(g => (g === null || g === void 0 ? void 0 : g.seriesId) === s.id);
875
+ if (seriesGradientConfig && originalValue !== null && originalValue !== undefined) {
876
+ var _seriesGradientConfig;
877
+ const axis = (_seriesGradientConfig = seriesGradientConfig.gradient.axis) !== null && _seriesGradientConfig !== void 0 ? _seriesGradientConfig : 'y';
878
+ let evalValue;
879
+ if (axis === 'x') {
880
+ // X-axis gradient: In vertical it's the index, in horizontal it's the value.
881
+ evalValue = layout === 'vertical' ? categoryIndex : Array.isArray(originalValue) ? originalValue[1] : originalValue;
882
+ } else {
883
+ // Y-axis gradient: In vertical it's the value, in horizontal it's the index.
884
+ evalValue = layout === 'vertical' ? Array.isArray(originalValue) ? originalValue[1] : originalValue : categoryIndex;
885
+ }
886
+ const evaluatedColor = evaluateGradientAtValue(seriesGradientConfig.stops, evalValue, seriesGradientConfig.scale);
887
+ if (evaluatedColor) {
888
+ barFill = evaluatedColor;
889
+ }
890
+ }
891
+ allBars.push({
892
+ seriesId: s.id,
893
+ valuePos,
894
+ length,
895
+ dataValue: value,
896
+ fill: barFill,
897
+ roundTop,
898
+ roundBottom,
899
+ shouldApplyGap,
900
+ BarComponent: s.BarComponent,
901
+ x: 0,
902
+ y: 0,
903
+ width: 0,
904
+ height: 0,
905
+ origin: 0
906
+ });
907
+ });
908
+
909
+ // Apply proportional gap distribution to maintain total stack length
910
+ if (stackGap && allBars.length > 1) {
911
+ allBars = applyStackGap(allBars, stackGap, layout, baseline, baselinePx);
912
+ }
913
+
914
+ // Apply barMinSize constraints
915
+ if (barMinSize) {
916
+ allBars = applyBarMinSize(allBars, barMinSize, baseline, baselinePx, layout);
917
+ }
918
+ allBars = applyBorderRadiusLogic(allBars, layout, stackGap);
919
+
920
+ // Apply stackMinSize constraints
921
+ if (stackMinSize && allBars.length > 0) {
922
+ const minValuePos = Math.min(...allBars.map(bar => bar.valuePos));
923
+ const maxValuePos = Math.max(...allBars.map(bar => bar.valuePos + bar.length));
924
+ const stackSize = maxValuePos - minValuePos;
925
+ const stackBounds = getStackBoundsForLayout(layout, indexPos, thickness, minValuePos, stackSize);
926
+ const result = applyStackMinSize(allBars, stackMinSize, stackSize, stackBounds, layout, indexPos, thickness, baseline, baselinePx);
927
+ allBars = result.bars;
928
+
929
+ // Reapply border radius logic only if we actually scaled
930
+ const newStackSize = getStackSizeForLayout(layout, result.stackBounds);
931
+ if (newStackSize < stackMinSize) {
932
+ allBars = applyBorderRadiusLogic(allBars, layout, stackGap);
933
+ }
934
+ }
935
+ const initialBarMinSizes = getInitialBarMinSizes(allBars, barMinSize, stackMinSize);
936
+ const barOrigins = getBarOrigins(allBars, initialBarMinSizes, stackGap !== null && stackGap !== void 0 ? stackGap : 0, baseline, baselinePx, layout);
937
+ return allBars.map((bar, i) => _objectSpread(_objectSpread({}, bar), {}, {
938
+ x: layout === 'vertical' ? indexPos : bar.valuePos,
939
+ y: layout === 'vertical' ? bar.valuePos : indexPos,
940
+ width: layout === 'vertical' ? thickness : bar.length,
941
+ height: layout === 'vertical' ? bar.length : thickness,
942
+ dataX: layout === 'vertical' ? categoryValue : bar.dataValue,
943
+ dataY: layout === 'vertical' ? bar.dataValue : categoryValue,
944
+ origin: barOrigins[i],
945
+ borderRadius,
946
+ fillOpacity: defaultFillOpacity,
947
+ stroke: defaultStroke,
948
+ strokeWidth: defaultStrokeWidth,
949
+ minSize: initialBarMinSizes[i],
950
+ BarComponent: bar.BarComponent || defaultBarComponent
951
+ }));
952
+ }