@coinbase/cds-web 8.66.2 → 9.0.0-rc.2

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 (682) hide show
  1. package/CHANGELOG.md +10 -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/TabLabel.js +7 -9
  558. package/esm/tabs/TabNavigation.js +8 -7
  559. package/esm/tabs/Tabs.js +3 -1
  560. package/esm/tour/Tour.js +4 -1
  561. package/esm/tour/TourStep.js +5 -1
  562. package/esm/typography/TextBody.js +15 -0
  563. package/esm/typography/TextCaption.js +15 -0
  564. package/esm/typography/TextDisplay1.js +15 -0
  565. package/esm/typography/TextDisplay2.js +15 -0
  566. package/esm/typography/TextDisplay3.js +15 -0
  567. package/esm/typography/TextHeadline.js +15 -0
  568. package/esm/typography/TextInherited.js +15 -0
  569. package/esm/typography/TextLabel1.js +15 -0
  570. package/esm/typography/TextLabel2.js +15 -0
  571. package/esm/typography/TextLegal.js +15 -0
  572. package/esm/typography/TextTitle1.js +15 -0
  573. package/esm/typography/TextTitle2.js +15 -0
  574. package/esm/typography/TextTitle3.js +15 -0
  575. package/esm/typography/TextTitle4.js +15 -0
  576. package/esm/visualizations/chart/CartesianChart.css +1 -0
  577. package/esm/visualizations/chart/CartesianChart.js +379 -0
  578. package/esm/visualizations/chart/ChartProvider.js +10 -0
  579. package/esm/visualizations/chart/Path.js +125 -0
  580. package/esm/visualizations/chart/PeriodSelector.css +1 -0
  581. package/esm/visualizations/chart/PeriodSelector.js +130 -0
  582. package/esm/visualizations/chart/area/Area.js +85 -0
  583. package/esm/visualizations/chart/area/AreaChart.js +173 -0
  584. package/esm/visualizations/chart/area/DottedArea.js +95 -0
  585. package/esm/visualizations/chart/area/GradientArea.js +72 -0
  586. package/esm/visualizations/chart/area/SolidArea.js +52 -0
  587. package/esm/visualizations/chart/area/index.js +7 -0
  588. package/esm/visualizations/chart/axis/Axis.js +11 -0
  589. package/esm/visualizations/chart/axis/DefaultAxisTickLabel.js +15 -0
  590. package/esm/visualizations/chart/axis/XAxis.css +2 -0
  591. package/esm/visualizations/chart/axis/XAxis.js +315 -0
  592. package/esm/visualizations/chart/axis/YAxis.css +2 -0
  593. package/esm/visualizations/chart/axis/YAxis.js +316 -0
  594. package/esm/visualizations/chart/axis/index.js +6 -0
  595. package/esm/visualizations/chart/bar/Bar.js +69 -0
  596. package/esm/visualizations/chart/bar/BarChart.js +128 -0
  597. package/esm/visualizations/chart/bar/BarPlot.js +92 -0
  598. package/esm/visualizations/chart/bar/BarStack.js +173 -0
  599. package/esm/visualizations/chart/bar/BarStackGroup.js +95 -0
  600. package/esm/visualizations/chart/bar/DefaultBar.js +82 -0
  601. package/esm/visualizations/chart/bar/DefaultBarStack.js +71 -0
  602. package/esm/visualizations/chart/bar/PercentageBarChart.js +102 -0
  603. package/esm/visualizations/chart/bar/index.js +10 -0
  604. package/esm/visualizations/chart/gradient/Gradient.js +106 -0
  605. package/esm/visualizations/chart/gradient/index.js +1 -0
  606. package/esm/visualizations/chart/index.js +16 -0
  607. package/esm/visualizations/chart/legend/DefaultLegendEntry.css +1 -0
  608. package/esm/visualizations/chart/legend/DefaultLegendEntry.js +50 -0
  609. package/esm/visualizations/chart/legend/DefaultLegendShape.css +5 -0
  610. package/esm/visualizations/chart/legend/DefaultLegendShape.js +47 -0
  611. package/esm/visualizations/chart/legend/Legend.js +76 -0
  612. package/esm/visualizations/chart/legend/index.js +3 -0
  613. package/esm/visualizations/chart/line/DefaultReferenceLineLabel.js +81 -0
  614. package/esm/visualizations/chart/line/DottedLine.js +64 -0
  615. package/esm/visualizations/chart/line/Line.js +183 -0
  616. package/esm/visualizations/chart/line/LineChart.js +142 -0
  617. package/esm/visualizations/chart/line/ReferenceLine.js +144 -0
  618. package/esm/visualizations/chart/line/SolidLine.js +60 -0
  619. package/esm/visualizations/chart/line/index.js +8 -0
  620. package/esm/visualizations/chart/point/DefaultPointLabel.js +45 -0
  621. package/esm/visualizations/chart/point/Point.css +2 -0
  622. package/esm/visualizations/chart/point/Point.js +201 -0
  623. package/esm/visualizations/chart/point/index.js +2 -0
  624. package/esm/visualizations/chart/scrubber/DefaultScrubberBeacon.js +154 -0
  625. package/esm/visualizations/chart/scrubber/DefaultScrubberBeaconLabel.js +57 -0
  626. package/esm/visualizations/chart/scrubber/DefaultScrubberLabel.js +48 -0
  627. package/esm/visualizations/chart/scrubber/Scrubber.js +200 -0
  628. package/esm/visualizations/chart/scrubber/ScrubberBeaconGroup.js +190 -0
  629. package/esm/visualizations/chart/scrubber/ScrubberBeaconLabelGroup.js +209 -0
  630. package/esm/visualizations/chart/scrubber/ScrubberProvider.js +233 -0
  631. package/esm/visualizations/chart/scrubber/index.js +4 -0
  632. package/esm/visualizations/chart/text/ChartText.js +231 -0
  633. package/esm/visualizations/chart/text/ChartTextGroup.js +227 -0
  634. package/esm/visualizations/chart/text/index.js +4 -0
  635. package/esm/visualizations/chart/utils/axis.js +666 -0
  636. package/esm/visualizations/chart/utils/bar.js +952 -0
  637. package/esm/visualizations/chart/utils/chart.js +314 -0
  638. package/esm/visualizations/chart/utils/context.js +22 -0
  639. package/esm/visualizations/chart/utils/gradient.js +270 -0
  640. package/esm/visualizations/chart/utils/index.js +13 -0
  641. package/esm/visualizations/chart/utils/interpolate.js +644 -0
  642. package/esm/visualizations/chart/utils/path.js +254 -0
  643. package/esm/visualizations/chart/utils/point.js +214 -0
  644. package/esm/visualizations/chart/utils/scale.js +59 -0
  645. package/esm/visualizations/chart/utils/scrubber.js +137 -0
  646. package/esm/visualizations/chart/utils/transition.js +132 -0
  647. package/esm/visualizations/index.js +3 -1
  648. package/esm/visualizations/sparkline/Counter.css +3 -0
  649. package/esm/visualizations/sparkline/Counter.js +35 -0
  650. package/esm/visualizations/sparkline/Sparkline.js +165 -0
  651. package/esm/visualizations/sparkline/SparklineArea.js +19 -0
  652. package/esm/visualizations/sparkline/SparklineAreaPattern.js +37 -0
  653. package/esm/visualizations/sparkline/SparklineGradient.js +31 -0
  654. package/esm/visualizations/sparkline/SparklinePath.js +19 -0
  655. package/esm/visualizations/sparkline/__figma__/Sparkline.figma.js +24 -0
  656. package/esm/visualizations/sparkline/generateSparklineWithId.js +7 -0
  657. package/esm/visualizations/sparkline/index.js +5 -0
  658. package/esm/visualizations/sparkline/sparkline-interactive/InnerSparklineInteractiveProvider.js +21 -0
  659. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractive.js +318 -0
  660. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveAnimatedPath.js +108 -0
  661. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveHoverDate.css +2 -0
  662. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveHoverDate.js +27 -0
  663. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveHoverPrice.css +2 -0
  664. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveHoverPrice.js +25 -0
  665. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveLineVertical.css +4 -0
  666. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveLineVertical.js +65 -0
  667. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveMarkerDates.css +1 -0
  668. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveMarkerDates.js +85 -0
  669. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractivePaths.js +56 -0
  670. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractivePeriodSelector.js +71 -0
  671. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveProvider.js +45 -0
  672. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveScrubHandler.css +5 -0
  673. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveScrubHandler.js +201 -0
  674. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveScrubProvider.js +39 -0
  675. package/esm/visualizations/sparkline/sparkline-interactive/SparklineInteractiveTimeseriesPaths.js +92 -0
  676. package/esm/visualizations/sparkline/sparkline-interactive/__figma__/SparklineInteractive.figma.js +89 -0
  677. package/esm/visualizations/sparkline/sparkline-interactive/fade.css +2 -0
  678. package/esm/visualizations/sparkline/sparkline-interactive/fade.js +15 -0
  679. package/esm/visualizations/sparkline/sparkline-interactive/useSparklineInteractiveConstants.js +28 -0
  680. package/esm/visualizations/sparkline/sparkline-interactive-header/SparklineInteractiveHeader.js +226 -0
  681. package/esm/visualizations/sparkline/sparkline-interactive-header/__figma__/SparklineInteractiveHeader.figma.js +108 -0
  682. package/package.json +23 -10
@@ -0,0 +1,666 @@
1
+ const _excluded = ["id"];
2
+ 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; }
3
+ 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; }
4
+ 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; }
5
+ 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; }
6
+ 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; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
8
+ 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); }
9
+ import { useCallback, useMemo, useState } from 'react';
10
+ import { getChartDomain, getChartRange, isValidBounds } from './chart';
11
+ import { getPointOnScale } from './point';
12
+ import { getCategoricalScale, getNumericScale, isCategoricalScale, isNumericScale } from './scale';
13
+ export const defaultAxisId = 'DEFAULT_AXIS_ID';
14
+ export const defaultAxisScaleType = 'linear';
15
+
16
+ /**
17
+ * Position options for band scale axis elements.
18
+ *
19
+ * - `'start'` - At the start of each step (before bar padding)
20
+ * - `'middle'` - At the center of each band
21
+ * - `'end'` - At the end of each step (after bar padding)
22
+ * - `'edges'` - At start of each tick, plus end for the last tick (encloses the chart)
23
+ *
24
+ * @note These properties only apply when using a band scale (`scaleType: 'band'`).
25
+ */
26
+
27
+ /**
28
+ * Converts an AxisBandPlacement to the corresponding PointAnchor for use with getPointOnScale.
29
+ *
30
+ * @param placement - The axis placement value
31
+ * @returns The corresponding PointAnchor for scale calculations
32
+ */
33
+ export const toPointAnchor = placement => {
34
+ switch (placement) {
35
+ case 'edges': // edges uses stepStart for each tick, stepEnd handled separately
36
+ case 'start':
37
+ return 'stepStart';
38
+ case 'end':
39
+ return 'stepEnd';
40
+ case 'middle':
41
+ default:
42
+ return 'middle';
43
+ }
44
+ };
45
+
46
+ /**
47
+ * Axis configuration with computed bounds
48
+ */
49
+
50
+ /**
51
+ * Axis configuration without computed bounds (used for input)
52
+ */
53
+
54
+ const includeBaselineInBounds = (bounds, baseline) => {
55
+ if (baseline < bounds.min) return _objectSpread(_objectSpread({}, bounds), {}, {
56
+ min: baseline
57
+ });
58
+ if (baseline > bounds.max) return _objectSpread(_objectSpread({}, bounds), {}, {
59
+ max: baseline
60
+ });
61
+ return bounds;
62
+ };
63
+ export const withBaselineDomain = function (domain) {
64
+ let baseline = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
65
+ if (typeof domain === 'function') return domain;
66
+ if ((domain === null || domain === void 0 ? void 0 : domain.min) !== undefined && (domain === null || domain === void 0 ? void 0 : domain.max) !== undefined) return domain;
67
+ const hasExplicitMin = (domain === null || domain === void 0 ? void 0 : domain.min) !== undefined;
68
+ const hasExplicitMax = (domain === null || domain === void 0 ? void 0 : domain.max) !== undefined;
69
+ return bounds => {
70
+ const resolvedBounds = {
71
+ min: hasExplicitMin ? domain === null || domain === void 0 ? void 0 : domain.min : bounds.min,
72
+ max: hasExplicitMax ? domain === null || domain === void 0 ? void 0 : domain.max : bounds.max
73
+ };
74
+ const baselineAdjustedBounds = includeBaselineInBounds(resolvedBounds, baseline);
75
+ return {
76
+ min: hasExplicitMin ? resolvedBounds.min : baselineAdjustedBounds.min,
77
+ max: hasExplicitMax ? resolvedBounds.max : baselineAdjustedBounds.max
78
+ };
79
+ };
80
+ };
81
+
82
+ /**
83
+ * Gets a D3 scale based on the axis configuration.
84
+ * Handles both numeric (linear/log) and categorical (band) scales.
85
+ *
86
+ * For numeric scales, the domain limit controls whether bounds are "nice" (human-friendly)
87
+ * or "strict" (exact min/max). Range can be customized using function-based configuration.
88
+ *
89
+ * Range inversion is determined by axis role (category vs value) and layout:
90
+ * - Vertical layout: Y axis (value) is inverted for SVG coordinate system
91
+ * - Horizontal layout: Y axis (category) is inverted (first category at top)
92
+ *
93
+ * @param params - Scale parameters
94
+ * @returns The D3 scale function
95
+ * @throws An Error if bounds are invalid
96
+ */
97
+ export const getCartesianAxisScale = _ref => {
98
+ var _config$scaleType;
99
+ let {
100
+ config,
101
+ type,
102
+ range,
103
+ dataDomain,
104
+ layout = 'vertical'
105
+ } = _ref;
106
+ const scaleType = (_config$scaleType = config === null || config === void 0 ? void 0 : config.scaleType) !== null && _config$scaleType !== void 0 ? _config$scaleType : 'linear';
107
+ let adjustedRange = range;
108
+
109
+ // Determine if this axis needs range inversion for SVG coordinate system.
110
+ // SVG Y coordinates increase downward, so we need to invert for value axes
111
+ // where we want higher values at the top.
112
+ //
113
+ // For vertical layout: Y axis is the value axis → invert (higher values at top)
114
+ // For horizontal layout: Y axis is the category axis → don't invert (first category at top is natural)
115
+ // X axis never needs inversion (left-to-right is natural for both layouts)
116
+
117
+ const shouldInvertRange = type === 'y' && layout !== 'horizontal';
118
+ if (shouldInvertRange) {
119
+ adjustedRange = {
120
+ min: adjustedRange.max,
121
+ max: adjustedRange.min
122
+ };
123
+ }
124
+ let adjustedDomain = dataDomain;
125
+ if (config !== null && config !== void 0 && config.domain) {
126
+ var _config$domain$min, _config$domain$max;
127
+ adjustedDomain = {
128
+ min: (_config$domain$min = config.domain.min) !== null && _config$domain$min !== void 0 ? _config$domain$min : dataDomain.min,
129
+ max: (_config$domain$max = config.domain.max) !== null && _config$domain$max !== void 0 ? _config$domain$max : dataDomain.max
130
+ };
131
+ }
132
+ if (!isValidBounds(adjustedDomain)) throw new Error('Invalid domain bounds. See https://cds.coinbase.com/components/charts/XAxis/#domain');
133
+ if (scaleType === 'band') {
134
+ var _config$categoryPaddi;
135
+ return getCategoricalScale({
136
+ domain: adjustedDomain,
137
+ range: adjustedRange,
138
+ padding: (_config$categoryPaddi = config === null || config === void 0 ? void 0 : config.categoryPadding) !== null && _config$categoryPaddi !== void 0 ? _config$categoryPaddi : 0.3
139
+ });
140
+ } else {
141
+ const scale = getNumericScale({
142
+ domain: adjustedDomain,
143
+ range: adjustedRange,
144
+ scaleType: scaleType
145
+ });
146
+ if ((config === null || config === void 0 ? void 0 : config.domainLimit) === 'nice') scale.nice();
147
+ return scale;
148
+ }
149
+ };
150
+
151
+ /**
152
+ * Formats the array of user-provided axis configs with default values and validates axis ids.
153
+ * Ensures at least one axis config exists if no input is provided.
154
+ * Requires specific axis ids when there are more than 1 axes.
155
+ * Defaults the axis id for a single axis config if there is no id.
156
+ * @param type - the type of axis, 'x' or 'y'
157
+ * @param axes - array of axis configs or single axis config
158
+ * @param defaultId - the default id to use for the axis
159
+ * @param defaultScaleType - the default scale type to use for the axis
160
+ * @returns array of axis configs with IDs
161
+ */
162
+ export const getAxisConfig = function (type, axes) {
163
+ let defaultId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultAxisId;
164
+ let defaultScaleType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : defaultAxisScaleType;
165
+ const defaultDomainLimit = type === 'x' ? 'strict' : 'nice';
166
+ const axisName = type === 'x' ? 'x-axis' : 'y-axis';
167
+ const axisDocUrl = type === 'x' ? 'https://cds.coinbase.com/components/charts/XAxis' : 'https://cds.coinbase.com/components/charts/YAxis';
168
+ if (!axes) {
169
+ return [{
170
+ id: defaultId,
171
+ scaleType: defaultScaleType,
172
+ domainLimit: defaultDomainLimit
173
+ }];
174
+ }
175
+ if (Array.isArray(axes)) {
176
+ const axesLength = axes.length;
177
+ // forces id to be defined on every input config when there are multiple axes
178
+ if (axesLength > 1 && axes.some(_ref2 => {
179
+ let {
180
+ id
181
+ } = _ref2;
182
+ return id === undefined;
183
+ })) {
184
+ throw new Error("When defining multiple ".concat(axisName, ", each must have a unique id. See ").concat(axisDocUrl, "."));
185
+ }
186
+ if (axesLength > 1) {
187
+ const ids = axes.map(_ref3 => {
188
+ let {
189
+ id
190
+ } = _ref3;
191
+ return id;
192
+ }).filter(id => id !== undefined);
193
+ if (new Set(ids).size !== ids.length) {
194
+ throw new Error("When defining multiple ".concat(axisName, ", each must have a unique id. See ").concat(axisDocUrl, "."));
195
+ }
196
+ }
197
+ return axes.map(_ref4 => {
198
+ let {
199
+ id
200
+ } = _ref4,
201
+ axis = _objectWithoutProperties(_ref4, _excluded);
202
+ return _objectSpread({
203
+ // defaults the axis id if only a single axis is provided
204
+ id: axesLength > 1 ? id !== null && id !== void 0 ? id : defaultAxisId : id !== null && id !== void 0 ? id : defaultId,
205
+ scaleType: defaultScaleType,
206
+ domainLimit: defaultDomainLimit
207
+ }, axis);
208
+ });
209
+ }
210
+
211
+ // Single axis config
212
+ return [_objectSpread({
213
+ id: defaultId,
214
+ scaleType: defaultScaleType,
215
+ domainLimit: defaultDomainLimit
216
+ }, axes)];
217
+ };
218
+
219
+ /**
220
+ * Calculates the data domain for an axis based on its configuration and series data.
221
+ * Handles both x and y axes, categorical data, custom domain configurations, and stacking.
222
+ *
223
+ * @param axisParam - The axis configuration
224
+ * @param series - Array of series objects (for stacking support)
225
+ * @param axisType - Whether this is an 'x' or 'y' axis
226
+ * @param layout - Chart layout ('horizontal' or 'vertical')
227
+ * @returns The calculated axis bounds
228
+ */
229
+ export const getCartesianAxisDomain = function (axisParam, series, axisType) {
230
+ var _finalDomain$min, _finalDomain$max;
231
+ let layout = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'vertical';
232
+ let dataDomain = null;
233
+ if (axisParam.data && Array.isArray(axisParam.data) && axisParam.data.length > 0) {
234
+ const firstItem = axisParam.data[0];
235
+ if (typeof firstItem === 'number') {
236
+ // Numeric data - use actual min/max values
237
+ const numericData = axisParam.data;
238
+ dataDomain = {
239
+ min: Math.min(...numericData),
240
+ max: Math.max(...numericData)
241
+ };
242
+ } else if (typeof firstItem === 'string') {
243
+ // String labels - use indices as domain (0 to length-1)
244
+ // This allows using string labels with linear scales
245
+ dataDomain = {
246
+ min: 0,
247
+ max: axisParam.data.length - 1
248
+ };
249
+ }
250
+ }
251
+
252
+ // Calculate domain from series data
253
+ // In vertical layout: X is category (index), Y is value (value)
254
+ // In horizontal layout: Y is category (index), X is value (value)
255
+ const isCategoryAxis = layout !== 'horizontal' && axisType === 'x' || layout === 'horizontal' && axisType === 'y';
256
+ const seriesDomain = isCategoryAxis ? getChartDomain(series) : getChartRange(series, layout, axisType === 'x' ? [axisParam] : [], axisType === 'y' ? [axisParam] : []);
257
+
258
+ // If data sets the domain, use that instead of the series domain
259
+ const preferredDataDomain = dataDomain !== null && dataDomain !== void 0 ? dataDomain : seriesDomain;
260
+ const bounds = axisParam.domain;
261
+ let finalDomain;
262
+ if (typeof bounds === 'function') {
263
+ var _preferredDataDomain$, _preferredDataDomain$2;
264
+ // Apply the transform function to the base domain
265
+ // No need to default to 0 here since we'll do it once at the end
266
+ finalDomain = bounds({
267
+ min: (_preferredDataDomain$ = preferredDataDomain.min) !== null && _preferredDataDomain$ !== void 0 ? _preferredDataDomain$ : 0,
268
+ max: (_preferredDataDomain$2 = preferredDataDomain.max) !== null && _preferredDataDomain$2 !== void 0 ? _preferredDataDomain$2 : 0
269
+ });
270
+ } else if (bounds && typeof bounds === 'object') {
271
+ var _bounds$min, _bounds$max;
272
+ // Merge explicit bounds with calculated domain
273
+ finalDomain = {
274
+ min: (_bounds$min = bounds.min) !== null && _bounds$min !== void 0 ? _bounds$min : preferredDataDomain.min,
275
+ max: (_bounds$max = bounds.max) !== null && _bounds$max !== void 0 ? _bounds$max : preferredDataDomain.max
276
+ };
277
+ } else {
278
+ // Use the base domain as-is
279
+ finalDomain = preferredDataDomain;
280
+ }
281
+ return {
282
+ min: (_finalDomain$min = finalDomain.min) !== null && _finalDomain$min !== void 0 ? _finalDomain$min : 0,
283
+ max: (_finalDomain$max = finalDomain.max) !== null && _finalDomain$max !== void 0 ? _finalDomain$max : 0
284
+ };
285
+ };
286
+
287
+ /**
288
+ * Calculates the visual range for an axis based on the chart rectangle and configuration.
289
+ * Handles custom range configurations including functions and partial bounds.
290
+ *
291
+ * @param axisParam - The axis configuration
292
+ * @param chartRect - The chart drawing area rectangle
293
+ * @param axisType - Whether this is an 'x' or 'y' axis
294
+ * @returns The calculated axis range bounds
295
+ */
296
+ export const getAxisRange = (axisParam, chartRect, axisType) => {
297
+ // Calculate base range based on axis type
298
+ let baseRange;
299
+ if (axisType === 'x') {
300
+ baseRange = {
301
+ min: chartRect.x,
302
+ max: chartRect.x + chartRect.width
303
+ };
304
+ } else {
305
+ baseRange = {
306
+ min: chartRect.y,
307
+ max: chartRect.y + chartRect.height
308
+ };
309
+ }
310
+
311
+ // Apply any custom range configuration
312
+ const rangeConfig = axisParam.range;
313
+ if (!rangeConfig) {
314
+ return baseRange;
315
+ }
316
+ if (typeof rangeConfig === 'function') {
317
+ // Apply the transform function to the base range
318
+ return rangeConfig(baseRange);
319
+ } else {
320
+ var _rangeConfig$min, _rangeConfig$max;
321
+ // Merge explicit range values with calculated range
322
+ return {
323
+ min: (_rangeConfig$min = rangeConfig.min) !== null && _rangeConfig$min !== void 0 ? _rangeConfig$min : baseRange.min,
324
+ max: (_rangeConfig$max = rangeConfig.max) !== null && _rangeConfig$max !== void 0 ? _rangeConfig$max : baseRange.max
325
+ };
326
+ }
327
+ };
328
+
329
+ /**
330
+ * Options for tick generation behavior
331
+ */
332
+
333
+ /**
334
+ * Formats a tick value for display on an axis.
335
+ * Consolidates the identical formatting logic shared between XAxis and YAxis.
336
+ *
337
+ * @param value - The raw tick value to format
338
+ * @param tickFormatter - Optional custom formatter function
339
+ * @returns The formatted tick value as a React node
340
+ */
341
+ export const formatAxisTick = (value, tickFormatter) => {
342
+ if (tickFormatter) {
343
+ return tickFormatter(value);
344
+ }
345
+ return value;
346
+ };
347
+
348
+ /**
349
+ * Calculates a rounded step size for tick generation.
350
+ * Chooses from multiples of 1, 2, or 5 (scaled by powers of 10).
351
+ *
352
+ * @param roughStep - The approximate step size needed
353
+ * @param minStep - Optional minimum step size constraint
354
+ * @param maxStep - Optional maximum step size constraint
355
+ * @returns rounded step size within the specified constraints
356
+ */
357
+ const calculateNiceStep = (roughStep, minStep, maxStep) => {
358
+ if (roughStep <= 0) return minStep !== null && minStep !== void 0 ? minStep : 1;
359
+ const magnitude = Math.pow(10, Math.floor(Math.log10(roughStep)));
360
+ const residual = roughStep / magnitude;
361
+ let roundResidual;
362
+ if (residual <= 1) {
363
+ roundResidual = 1;
364
+ } else if (residual <= 2) {
365
+ roundResidual = 2;
366
+ } else if (residual <= 5) {
367
+ roundResidual = 5;
368
+ } else {
369
+ roundResidual = 10;
370
+ }
371
+ let niceStep = roundResidual * magnitude;
372
+ if (minStep !== undefined && niceStep < minStep) {
373
+ niceStep = minStep;
374
+ }
375
+ if (maxStep !== undefined && niceStep > maxStep) {
376
+ niceStep = maxStep;
377
+ }
378
+ return niceStep;
379
+ };
380
+
381
+ /**
382
+ * Generates evenly distributed tick values.
383
+ * Always includes first and last domain values, with intermediate ticks evenly distributed using nice step sizes.
384
+ * Selects from actual data points (possibleTickValues) or generates nice round numbers.
385
+ *
386
+ * @param scale - The numeric scale function
387
+ * @param tickInterval - Space between ticks (in pixels)
388
+ * @param possibleTickValues - Optional array of possible tick values to select from (e.g., data indices). If not provided, generates nice round numbers with guaranteed first/last inclusion.
389
+ * @param options - Options for tick generation behavior
390
+ * @returns Array of tick values, always including first and last domain values
391
+ */
392
+ const generateEvenlyDistributedTicks = (scale, tickInterval, possibleTickValues, options) => {
393
+ var _options$minTickCount;
394
+ const minTickCount = (_options$minTickCount = options === null || options === void 0 ? void 0 : options.minTickCount) !== null && _options$minTickCount !== void 0 ? _options$minTickCount : 4;
395
+ const [rangeMin, rangeMax] = scale.range();
396
+ const range = Math.abs(rangeMax - rangeMin);
397
+ const tickCountFromSpace = Math.floor(range / tickInterval);
398
+ const tickCount = Math.max(tickCountFromSpace, minTickCount);
399
+ if (tickCount < 1) {
400
+ return [];
401
+ }
402
+
403
+ // If we have possibleTickValues, select evenly from them
404
+ if (possibleTickValues && possibleTickValues.length > 0) {
405
+ // Limit tick count to available values
406
+ const finalTickCount = Math.min(tickCount, possibleTickValues.length);
407
+ const tickValues = [];
408
+ const step = (possibleTickValues.length - 1) / (finalTickCount - 1);
409
+ for (let i = 0; i < finalTickCount; i++) {
410
+ const index = i === finalTickCount - 1 ? possibleTickValues.length - 1 : Math.round(step * i);
411
+ tickValues.push(possibleTickValues[index]);
412
+ }
413
+ return tickValues;
414
+ }
415
+
416
+ // Generate nice round numbers that always include first and last domain values
417
+ const [domainMin, domainMax] = scale.domain();
418
+ if (tickCount === 1) {
419
+ return [domainMin];
420
+ }
421
+ if (tickCount === 2) {
422
+ return [domainMin, domainMax];
423
+ }
424
+
425
+ // Calculate a nice step size
426
+ const domainRange = domainMax - domainMin;
427
+ const roughStep = domainRange / (tickCount - 1);
428
+ const niceStep = calculateNiceStep(roughStep, options === null || options === void 0 ? void 0 : options.minStep, options === null || options === void 0 ? void 0 : options.maxStep);
429
+
430
+ // Generate ticks starting from domainMin and stepping by niceStep
431
+ const tickValues = [domainMin];
432
+
433
+ // Generate intermediate ticks using the nice step, starting from domainMin
434
+ let currentTick = domainMin + niceStep;
435
+ while (currentTick < domainMax) {
436
+ // Avoid floating point precision issues
437
+ const roundedTick = Number(currentTick.toFixed(10));
438
+ tickValues.push(roundedTick);
439
+ currentTick += niceStep;
440
+ }
441
+
442
+ // Only include domainMax if it naturally falls on a step (or very close due to floating point)
443
+ // or if the last tick is far enough away that including max provides useful context
444
+ const lastTick = tickValues[tickValues.length - 1];
445
+ const distanceToMax = domainMax - lastTick;
446
+
447
+ // Include max if:
448
+ // 1. It naturally falls on a step (within floating point tolerance)
449
+ // 2. Or the last tick is more than half a step away (provides meaningful context)
450
+ const tolerance = niceStep * 0.0001; // Floating point tolerance
451
+ const shouldIncludeMax = Math.abs(distanceToMax - niceStep) < tolerance ||
452
+ // Natural step
453
+ distanceToMax > niceStep * 0.5; // Far enough to provide context
454
+
455
+ if (shouldIncludeMax && domainMax !== lastTick) {
456
+ tickValues.push(domainMax);
457
+ }
458
+ return tickValues;
459
+ };
460
+
461
+ /**
462
+ * Processes tick configuration and returns tick data with positions.
463
+ *
464
+ * **Parameter Precedence by Scale Type:**
465
+ *
466
+ * **For Numeric Scales (linear/log):**
467
+ * 1. `ticks` (array) - Explicit tick values override all other options
468
+ * 2. `ticks` (function) - Filter function for tick selection
469
+ * 3. `ticks` (boolean) - Show/hide all possible ticks
470
+ * 4. `requestedTickCount` - D3 automatic tick generation (overrides tickInterval)
471
+ * 5. `tickInterval` - Pixel-based spacing (fallback)
472
+ *
473
+ * **For Categorical Scales (band):**
474
+ * 1. `ticks` (array) - Explicit category indices to display
475
+ * 2. `ticks` (function) - Filter function for category selection
476
+ * 3. `ticks` (boolean) - Show/hide all categories
477
+ * 4. Default - Show all categories (requestedTickCount and tickInterval are ignored)
478
+ *
479
+ * @param params - Tick processing parameters
480
+ * @param params.ticks - Custom tick configuration with multiple formats:
481
+ * - **Array**: For numeric scales: exact tick values; For band scales: category indices
482
+ * - **Function**: Predicate to filter tick values or category indices
483
+ * - **Boolean**: Show all (true) or no ticks (false) for both scale types
484
+ * @param params.scaleFunction - D3 scale function (numeric or band scale)
485
+ * @param params.requestedTickCount - Number of ticks for D3 generation (**numeric scales only**, overrides tickInterval)
486
+ * @param params.categories - Category labels (**band scales only**)
487
+ * @param params.possibleTickValues - Available tick values for filtering/selection (**numeric scales only**)
488
+ * @param params.tickInterval - Pixel spacing between ticks (**numeric scales only**, fallback option)
489
+ * @returns Array of tick data with values and positions
490
+ *
491
+ * @example
492
+ * // Basic usage with tickInterval for pixel-based spacing
493
+ * import { scaleLinear } from 'd3-scale';
494
+ *
495
+ * const numericScale = scaleLinear().domain([0, 10]).range([0, 400]);
496
+ * const result = getAxisTicksData({
497
+ * scaleFunction: numericScale,
498
+ * tickInterval: 80, // 80 pixels between ticks
499
+ * possibleTickValues: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
500
+ * });
501
+ * // Returns: [
502
+ * // { tick: 0, position: 0 }, // Always includes first
503
+ * // { tick: 2, position: 80 },
504
+ * // { tick: 5, position: 200 },
505
+ * // { tick: 7, position: 280 },
506
+ * // { tick: 10, position: 400 } // Always includes last
507
+ * // ]
508
+ *
509
+ * @example
510
+ * // Using requestedTickCount for D3-generated ticks
511
+ * const result = getAxisTicksData({
512
+ * scaleFunction: numericScale,
513
+ * requestedTickCount: 5
514
+ * });
515
+ * // Uses D3's tick generation algorithm
516
+ *
517
+ * @example
518
+ * // Using explicit tick values
519
+ * const result = getAxisTicksData({
520
+ * scaleFunction: numericScale,
521
+ * ticks: [0, 2.5, 5, 7.5, 10]
522
+ * });
523
+ * // Returns exact positions for specified values
524
+ *
525
+ * @example
526
+ * // Using tick filter function
527
+ * const result = getAxisTicksData({
528
+ * scaleFunction: numericScale,
529
+ * ticks: (value) => value % 2 === 0, // Only even numbers
530
+ * possibleTickValues: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
531
+ * });
532
+ * // Returns: [0, 2, 4, 6, 8, 10] with their positions
533
+ *
534
+ * @example
535
+ * // Band scale with categories (requestedTickCount and tickInterval are ignored)
536
+ * import { scaleBand } from 'd3-scale';
537
+ *
538
+ * const bandScale = scaleBand().domain([0, 1, 2, 3, 4]).range([0, 400]).padding(0.1);
539
+ * const result = getAxisTicksData({
540
+ * scaleFunction: bandScale,
541
+ * categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May'],
542
+ * ticks: [0, 2, 4], // Show only Jan (index 0), Mar (index 2), May (index 4)
543
+ * requestedTickCount: 10, // IGNORED for band scales
544
+ * tickInterval: 50 // IGNORED for band scales
545
+ * });
546
+ * // Returns tick positions centered in each selected band
547
+ */
548
+ export const getAxisTicksData = _ref5 => {
549
+ var _options$anchor;
550
+ let {
551
+ ticks,
552
+ scaleFunction,
553
+ requestedTickCount,
554
+ categories = [],
555
+ possibleTickValues,
556
+ tickInterval,
557
+ options
558
+ } = _ref5;
559
+ const anchor = (_options$anchor = options === null || options === void 0 ? void 0 : options.anchor) !== null && _options$anchor !== void 0 ? _options$anchor : 'middle';
560
+
561
+ // Handle band scales
562
+ if (isCategoricalScale(scaleFunction)) {
563
+ const bandScale = scaleFunction;
564
+
565
+ // If explicit ticks are provided as array, use them
566
+ if (Array.isArray(ticks)) {
567
+ return ticks.filter(index => index >= 0 && index < categories.length).map(index => ({
568
+ tick: index,
569
+ position: getPointOnScale(index, bandScale, anchor)
570
+ }));
571
+ }
572
+
573
+ // If a tick function is provided, use it to filter
574
+ if (typeof ticks === 'function') {
575
+ return categories.map((category, index) => {
576
+ if (!ticks(index)) return null;
577
+ return {
578
+ tick: index,
579
+ position: getPointOnScale(index, bandScale, anchor)
580
+ };
581
+ }).filter(Boolean);
582
+ }
583
+
584
+ // For band scales without explicit ticks, show all categories
585
+ // requestedTickCount is ignored for categorical scales - use ticks parameter to control visibility
586
+ return categories.map((_, index) => ({
587
+ tick: index,
588
+ position: getPointOnScale(index, bandScale, anchor)
589
+ }));
590
+ }
591
+
592
+ // Handle numeric scales
593
+ if (!isNumericScale(scaleFunction)) {
594
+ console.warn('Scale does not support automatic tick generation');
595
+ return [];
596
+ }
597
+ const numericScale = scaleFunction;
598
+ let tickValues = [];
599
+ if (Array.isArray(ticks)) {
600
+ // Use exact tick values provided
601
+ tickValues = ticks;
602
+ } else if (typeof ticks === 'function') {
603
+ // Filter the possible tick values using the predicate function
604
+ if (possibleTickValues) {
605
+ tickValues = possibleTickValues.filter(ticks);
606
+ } else {
607
+ // Fallback to scale-generated ticks if no possible tick values provided
608
+ const generatedTicks = numericScale.ticks(requestedTickCount);
609
+ tickValues = generatedTicks.filter(ticks);
610
+ }
611
+ } else if (requestedTickCount !== undefined) {
612
+ // Use scale-generated ticks
613
+ tickValues = numericScale.ticks(requestedTickCount);
614
+ } else if (tickInterval !== undefined) {
615
+ tickValues = generateEvenlyDistributedTicks(numericScale, tickInterval, possibleTickValues, options);
616
+ }
617
+
618
+ // Map values to positions using the scale function
619
+ return tickValues.map(tick => ({
620
+ tick,
621
+ position: numericScale(tick)
622
+ }));
623
+ };
624
+ /**
625
+ * Calculates the total amount of padding needed to render a set of axes on the main drawing area of the chart.
626
+ * Returns the registed axes, an API for adding/removing axes as well as the total calculated padding that must be reserved in the drawing area.
627
+ */
628
+ export const useTotalAxisPadding = () => {
629
+ const [renderedAxes, setRenderedAxes] = useState(new Map());
630
+ const registerAxis = useCallback((id, position, size) => {
631
+ setRenderedAxes(prev => {
632
+ const newMap = new Map(prev);
633
+ newMap.set(id, {
634
+ id,
635
+ position,
636
+ size
637
+ });
638
+ return newMap;
639
+ });
640
+ }, []);
641
+ const unregisterAxis = useCallback(id => {
642
+ setRenderedAxes(prev => {
643
+ const newMap = new Map(prev);
644
+ newMap.delete(id);
645
+ return newMap;
646
+ });
647
+ }, []);
648
+ const axisPadding = useMemo(() => {
649
+ const padding = {
650
+ top: 0,
651
+ right: 0,
652
+ bottom: 0,
653
+ left: 0
654
+ };
655
+ renderedAxes.forEach(axis => {
656
+ padding[axis.position] += axis.size;
657
+ });
658
+ return padding;
659
+ }, [renderedAxes]);
660
+ return {
661
+ renderedAxes,
662
+ axisPadding,
663
+ registerAxis,
664
+ unregisterAxis
665
+ };
666
+ };