@vibe/core 3.36.0-alpha-94da6.0 → 3.36.0

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 (617) hide show
  1. package/dist/components/Accordion/Accordion/Accordion.d.ts +3 -15
  2. package/dist/components/Accordion/AccordionItem/AccordionItem.d.ts +9 -17
  3. package/dist/components/AlertBanner/AlertBanner.d.ts +16 -3
  4. package/dist/components/AlertBanner/AlertBannerButton/AlertBannerButton.d.ts +3 -0
  5. package/dist/components/AlertBanner/AlertBannerLink/AlertBannerLink.d.ts +3 -0
  6. package/dist/components/AlertBanner/AlertBannerText/AlertBannerText.d.ts +6 -0
  7. package/dist/components/AttentionBox/AttentionBox.d.ts +36 -4
  8. package/dist/components/Avatar/Avatar.d.ts +70 -3
  9. package/dist/components/Avatar/AvatarBadge.d.ts +10 -2
  10. package/dist/components/Avatar/AvatarContent.d.ts +24 -1
  11. package/dist/components/AvatarGroup/AvatarGroup.d.ts +17 -5
  12. package/dist/components/AvatarGroup/AvatarGroupCounter.d.ts +20 -2
  13. package/dist/components/AvatarGroup/AvatarGroupCounterTooltipContainer.d.ts +20 -3
  14. package/dist/components/AvatarGroup/AvatarGroupCounterTooltipContent.d.ts +10 -2
  15. package/dist/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.d.ts +13 -1
  16. package/dist/components/Badge/Badge.d.ts +15 -0
  17. package/dist/components/Badge/Indicator/Indicator.d.ts +3 -0
  18. package/dist/components/BaseInput/BaseInput.types.d.ts +8 -15
  19. package/dist/components/BaseListItem/BaseListItem.types.d.ts +2 -2
  20. package/dist/components/Box/Box.d.ts +75 -0
  21. package/dist/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbContent/BreadcrumbContent.d.ts +24 -0
  22. package/dist/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbItem.d.ts +24 -7
  23. package/dist/components/BreadcrumbsBar/BreadcrumbsBar.d.ts +6 -1
  24. package/dist/components/ButtonGroup/ButtonGroup.d.ts +46 -1
  25. package/dist/components/ButtonGroup/ButtonWrapper.d.ts +16 -1
  26. package/dist/components/Checkbox/Checkbox.d.ts +42 -18
  27. package/dist/components/Chips/Chips.d.ts +54 -20
  28. package/dist/components/Clickable/Clickable.d.ts +41 -5
  29. package/dist/components/Clickable/ClickableWrapper.d.ts +9 -0
  30. package/dist/components/ColorPicker/ColorPicker.d.ts +43 -1
  31. package/dist/components/ColorPicker/components/ColorPickerContent/ColorPickerClearButton.d.ts +9 -0
  32. package/dist/components/ColorPicker/components/ColorPickerContent/ColorPickerColorsGrid.d.ts +39 -0
  33. package/dist/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.d.ts +48 -0
  34. package/dist/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.d.ts +33 -1
  35. package/dist/components/Combobox/Combobox.d.ts +78 -25
  36. package/dist/components/Combobox/components/ComboboxCategory/ComboboxCategory.d.ts +6 -0
  37. package/dist/components/Combobox/components/ComboboxConstants.d.ts +156 -0
  38. package/dist/components/Combobox/components/ComboboxItems/ComboboxItems.d.ts +45 -0
  39. package/dist/components/Combobox/components/ComboboxOption/ComboboxOption.d.ts +30 -0
  40. package/dist/components/Counter/Counter.d.ts +33 -14
  41. package/dist/components/DatePicker/DateNavigationItem/DateNavigationItem.d.ts +6 -0
  42. package/dist/components/DatePicker/DatePicker.d.ts +39 -13
  43. package/dist/components/DatePicker/DatePickerHeader/DatePickerHeader.d.ts +18 -0
  44. package/dist/components/DatePicker/YearPicker/YearPicker.d.ts +12 -0
  45. package/dist/components/DatePicker/YearPicker/YearsList.d.ts +12 -0
  46. package/dist/components/DatePicker/types.d.ts +6 -0
  47. package/dist/components/Dialog/Dialog.d.ts +59 -36
  48. package/dist/components/Dialog/DialogContent/DialogContent.d.ts +52 -3
  49. package/dist/components/DialogContentContainer/DialogContentContainer.d.ts +18 -0
  50. package/dist/components/Divider/Divider.d.ts +2 -2
  51. package/dist/components/Dropdown/Dropdown.types.d.ts +97 -63
  52. package/dist/components/EditableHeading/EditableHeading.d.ts +4 -3
  53. package/dist/components/EditableText/EditableText.d.ts +6 -4
  54. package/dist/components/EditableTypography/EditableTypography.d.ts +48 -16
  55. package/dist/components/ExpandCollapse/ExpandCollapse.d.ts +20 -8
  56. package/dist/components/FieldLabel/FieldLabel.d.ts +18 -0
  57. package/dist/components/Flex/Flex.d.ts +36 -2
  58. package/dist/components/FormattedNumber/FormattedNumber.d.ts +8 -8
  59. package/dist/components/GridKeyboardNavigationContext/GridKeyboardNavigationContextConstants.d.ts +3 -0
  60. package/dist/components/Heading/Heading.d.ts +15 -0
  61. package/dist/components/HiddenText/HiddenText.d.ts +3 -0
  62. package/dist/components/Icon/CustomSvgIcon/CustomSvgIcon.d.ts +30 -0
  63. package/dist/components/Icon/FontIcon/FontIcon.d.ts +18 -0
  64. package/dist/components/Icon/Icon.d.ts +32 -8
  65. package/dist/components/IconButton/IconButton.d.ts +37 -27
  66. package/dist/components/Label/Label.d.ts +22 -1
  67. package/dist/components/Label/LabelCelebrationAnimation.d.ts +6 -0
  68. package/dist/components/LayerProvider/LayerContext.d.ts +3 -0
  69. package/dist/components/LayerProvider/LayerProvider.d.ts +7 -1
  70. package/dist/components/LegacyModal/LegacyModalHeader/LegacyModalHeader.d.ts +0 -8
  71. package/dist/components/Link/Link.d.ts +40 -14
  72. package/dist/components/List/List.d.ts +14 -5
  73. package/dist/components/List/VirtualizedListItems/VirtualizedListItems.d.ts +3 -0
  74. package/dist/components/ListItem/ListItem.d.ts +12 -25
  75. package/dist/components/ListItemAvatar/ListItemAvatar.d.ts +7 -1
  76. package/dist/components/ListItemIcon/ListItemIcon.d.ts +5 -2
  77. package/dist/components/ListTitle/ListTitle.d.ts +6 -0
  78. package/dist/components/Loader/Loader.d.ts +12 -2
  79. package/dist/components/Menu/Menu/Menu.d.ts +42 -0
  80. package/dist/components/Menu/MenuGridItem/MenuGridItem.d.ts +33 -5
  81. package/dist/components/Menu/MenuItem/AvatarMenuItem.d.ts +6 -0
  82. package/dist/components/Menu/MenuItem/MenuItem.d.ts +97 -7
  83. package/dist/components/Menu/MenuItem/components/BaseMenuItem/BaseMenuItem.types.d.ts +7 -0
  84. package/dist/components/Menu/MenuItem/components/MenuItemIcon/MenuItemIcon.types.d.ts +7 -6
  85. package/dist/components/Menu/MenuItem/components/MenuItemSubMenu/MenuItemSubMenu.types.d.ts +7 -3
  86. package/dist/components/Menu/MenuItem/components/MenuItemSubMenuIcon/MenuItemSubMenuIcon.types.d.ts +5 -1
  87. package/dist/components/Menu/MenuItemButton/MenuItemButton.d.ts +51 -0
  88. package/dist/components/Menu/MenuTitle/MenuTitle.d.ts +6 -0
  89. package/dist/components/MenuButton/MenuButton.d.ts +67 -19
  90. package/dist/components/Modal/ModalContent/ModalContent.types.d.ts +1 -1
  91. package/dist/components/Modal/ModalMedia/ModalMedia.types.d.ts +1 -1
  92. package/dist/components/Modal/ModalTopActions/ModalTopActions.types.d.ts +5 -5
  93. package/dist/components/Modal/context/ModalContext.types.d.ts +5 -5
  94. package/dist/components/Modal/footers/ModalFooter/ModalFooter.types.d.ts +1 -1
  95. package/dist/components/Modal/footers/ModalFooterBase/ModalFooterBase.types.d.ts +3 -3
  96. package/dist/components/Modal/footers/ModalFooterWizard/ModalFooterWizard.types.d.ts +4 -4
  97. package/dist/components/Modal/layouts/ModalBasicLayout/ModalBasicLayout.types.d.ts +1 -1
  98. package/dist/components/Modal/layouts/ModalFooterShadow.types.d.ts +1 -1
  99. package/dist/components/Modal/layouts/ModalLayoutScrollableContent.types.d.ts +2 -2
  100. package/dist/components/Modal/layouts/ModalMediaLayout/ModalMediaLayout.types.d.ts +1 -1
  101. package/dist/components/Modal/layouts/ModalSideBySideLayout/ModalSideBySideLayout.types.d.ts +1 -1
  102. package/dist/components/MultiStepIndicator/MultiStepIndicator.d.ts +30 -0
  103. package/dist/components/MultiStepIndicator/components/StepIndicator/StepIndicator.d.ts +57 -0
  104. package/dist/components/ProgressBars/LinearProgressBar/Bar/Bar.d.ts +17 -6
  105. package/dist/components/ProgressBars/LinearProgressBar/LinearProgressBar.d.ts +19 -22
  106. package/dist/components/ProgressBars/PercentageLabel/PercentageLabel.d.ts +2 -2
  107. package/dist/components/RadioButton/RadioButton.d.ts +45 -16
  108. package/dist/components/Search/Search.types.d.ts +24 -24
  109. package/dist/components/Skeleton/Skeleton.d.ts +16 -1
  110. package/dist/components/SlideTransition/SlideTransition.types.d.ts +12 -0
  111. package/dist/components/Slider/SelectionIndicator.d.ts +6 -0
  112. package/dist/components/Slider/SliderBase/SliderFilledTrack.d.ts +6 -8
  113. package/dist/components/Slider/SliderBase/SliderRail.d.ts +6 -4
  114. package/dist/components/Slider/SliderBase/SliderThumb.d.ts +9 -7
  115. package/dist/components/Slider/SliderBase/SliderTrack.d.ts +1 -2
  116. package/dist/components/Slider/SliderContext.d.ts +13 -8
  117. package/dist/components/Slider/SliderInfix.d.ts +1 -2
  118. package/dist/components/SplitButton/SplitButton.d.ts +25 -2
  119. package/dist/components/Steps/Steps.d.ts +32 -2
  120. package/dist/components/Steps/StepsCommand.d.ts +21 -0
  121. package/dist/components/Steps/StepsDot.d.ts +15 -0
  122. package/dist/components/Steps/StepsGalleryHeader.d.ts +15 -0
  123. package/dist/components/Steps/StepsHeader.d.ts +33 -0
  124. package/dist/components/Steps/StepsNumbersHeader.d.ts +9 -0
  125. package/dist/components/Switch/Switch.d.ts +39 -0
  126. package/dist/components/Table/Table/Table.d.ts +42 -0
  127. package/dist/components/Table/TableBody/TableBody.d.ts +3 -0
  128. package/dist/components/Table/TableCell/TableCell.d.ts +6 -0
  129. package/dist/components/Table/TableCellSkeleton/TableCellSkeleton.d.ts +6 -0
  130. package/dist/components/Table/TableContainer/TableContainer.types.d.ts +6 -0
  131. package/dist/components/Table/TableHeader/TableHeader.d.ts +3 -0
  132. package/dist/components/Table/TableHeaderCell/TableHeaderCell.d.ts +21 -0
  133. package/dist/components/Table/TableRow/TableRow.d.ts +7 -1
  134. package/dist/components/Table/TableRowMenu/TableRowMenu.types.d.ts +6 -0
  135. package/dist/components/Table/TableVirtualizedBody/TableVirtualizedBody.d.ts +15 -0
  136. package/dist/components/Tabs/Tab/Tab.d.ts +27 -3
  137. package/dist/components/Tabs/TabList/TabList.d.ts +15 -0
  138. package/dist/components/Tabs/TabPanel/TabPanel.d.ts +6 -0
  139. package/dist/components/Tabs/TabPanels/TabPanels.d.ts +9 -0
  140. package/dist/components/Tabs/TabsContext/TabsContext.d.ts +6 -0
  141. package/dist/components/Text/Text.d.ts +9 -0
  142. package/dist/components/TextArea/TextArea.types.d.ts +13 -16
  143. package/dist/components/TextField/TextField.d.ts +127 -9
  144. package/dist/components/TextWithHighlight/TextWithHighlight.d.ts +33 -6
  145. package/dist/components/ThemeProvider/ThemeProvider.d.ts +8 -5
  146. package/dist/components/Tipseen/Tipseen.d.ts +64 -6
  147. package/dist/components/Tipseen/TipseenBasicContent.d.ts +9 -0
  148. package/dist/components/Tipseen/TipseenContent.d.ts +25 -1
  149. package/dist/components/Tipseen/TipseenImage.d.ts +12 -0
  150. package/dist/components/Tipseen/TipseenMedia/TipseenMedia.d.ts +3 -0
  151. package/dist/components/Tipseen/TipseenTitle.d.ts +3 -0
  152. package/dist/components/Tipseen/TipseenWizard.d.ts +7 -1
  153. package/dist/components/Toast/Toast.d.ts +37 -8
  154. package/dist/components/Toggle/MockToggle.d.ts +21 -0
  155. package/dist/components/Toggle/Toggle.d.ts +37 -1
  156. package/dist/components/Toggle/ToggleText.d.ts +6 -0
  157. package/dist/components/Tooltip/Tooltip.d.ts +64 -27
  158. package/dist/components/TransitionView/TransitionView.types.d.ts +9 -0
  159. package/dist/components/Typography/Typography.d.ts +12 -6
  160. package/dist/components/VirtualizedGrid/VirtualizedGrid.d.ts +19 -19
  161. package/dist/components/VirtualizedList/VirtualizedList.d.ts +33 -27
  162. package/dist/hooks/useKeyEvent/index.d.ts +30 -0
  163. package/dist/hooks/useSwitch/index.d.ts +12 -0
  164. package/dist/hooks/useWizard/useWizard.types.d.ts +33 -0
  165. package/dist/mocked_classnames/components/Accordion/Accordion/Accordion.d.ts +3 -15
  166. package/dist/mocked_classnames/components/Accordion/AccordionItem/AccordionItem.d.ts +9 -17
  167. package/dist/mocked_classnames/components/AlertBanner/AlertBanner.d.ts +16 -3
  168. package/dist/mocked_classnames/components/AlertBanner/AlertBannerButton/AlertBannerButton.d.ts +3 -0
  169. package/dist/mocked_classnames/components/AlertBanner/AlertBannerLink/AlertBannerLink.d.ts +3 -0
  170. package/dist/mocked_classnames/components/AlertBanner/AlertBannerText/AlertBannerText.d.ts +6 -0
  171. package/dist/mocked_classnames/components/AttentionBox/AttentionBox.d.ts +36 -4
  172. package/dist/mocked_classnames/components/Avatar/Avatar.d.ts +70 -3
  173. package/dist/mocked_classnames/components/Avatar/AvatarBadge.d.ts +10 -2
  174. package/dist/mocked_classnames/components/Avatar/AvatarContent.d.ts +24 -1
  175. package/dist/mocked_classnames/components/AvatarGroup/AvatarGroup.d.ts +17 -5
  176. package/dist/mocked_classnames/components/AvatarGroup/AvatarGroupCounter.d.ts +20 -2
  177. package/dist/mocked_classnames/components/AvatarGroup/AvatarGroupCounterTooltipContainer.d.ts +20 -3
  178. package/dist/mocked_classnames/components/AvatarGroup/AvatarGroupCounterTooltipContent.d.ts +10 -2
  179. package/dist/mocked_classnames/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.d.ts +13 -1
  180. package/dist/mocked_classnames/components/Badge/Badge.d.ts +15 -0
  181. package/dist/mocked_classnames/components/Badge/Indicator/Indicator.d.ts +3 -0
  182. package/dist/mocked_classnames/components/BaseInput/BaseInput.types.d.ts +8 -15
  183. package/dist/mocked_classnames/components/BaseListItem/BaseListItem.types.d.ts +2 -2
  184. package/dist/mocked_classnames/components/Box/Box.d.ts +75 -0
  185. package/dist/mocked_classnames/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbContent/BreadcrumbContent.d.ts +24 -0
  186. package/dist/mocked_classnames/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbItem.d.ts +24 -7
  187. package/dist/mocked_classnames/components/BreadcrumbsBar/BreadcrumbsBar.d.ts +6 -1
  188. package/dist/mocked_classnames/components/ButtonGroup/ButtonGroup.d.ts +46 -1
  189. package/dist/mocked_classnames/components/ButtonGroup/ButtonWrapper.d.ts +16 -1
  190. package/dist/mocked_classnames/components/Checkbox/Checkbox.d.ts +42 -18
  191. package/dist/mocked_classnames/components/Chips/Chips.d.ts +54 -20
  192. package/dist/mocked_classnames/components/Clickable/Clickable.d.ts +41 -5
  193. package/dist/mocked_classnames/components/Clickable/ClickableWrapper.d.ts +9 -0
  194. package/dist/mocked_classnames/components/ColorPicker/ColorPicker.d.ts +43 -1
  195. package/dist/mocked_classnames/components/ColorPicker/components/ColorPickerContent/ColorPickerClearButton.d.ts +9 -0
  196. package/dist/mocked_classnames/components/ColorPicker/components/ColorPickerContent/ColorPickerColorsGrid.d.ts +39 -0
  197. package/dist/mocked_classnames/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.d.ts +48 -0
  198. package/dist/mocked_classnames/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.d.ts +33 -1
  199. package/dist/mocked_classnames/components/Combobox/Combobox.d.ts +78 -25
  200. package/dist/mocked_classnames/components/Combobox/components/ComboboxCategory/ComboboxCategory.d.ts +6 -0
  201. package/dist/mocked_classnames/components/Combobox/components/ComboboxConstants.d.ts +156 -0
  202. package/dist/mocked_classnames/components/Combobox/components/ComboboxItems/ComboboxItems.d.ts +45 -0
  203. package/dist/mocked_classnames/components/Combobox/components/ComboboxOption/ComboboxOption.d.ts +30 -0
  204. package/dist/mocked_classnames/components/Counter/Counter.d.ts +33 -14
  205. package/dist/mocked_classnames/components/DatePicker/DateNavigationItem/DateNavigationItem.d.ts +6 -0
  206. package/dist/mocked_classnames/components/DatePicker/DatePicker.d.ts +39 -13
  207. package/dist/mocked_classnames/components/DatePicker/DatePickerHeader/DatePickerHeader.d.ts +18 -0
  208. package/dist/mocked_classnames/components/DatePicker/YearPicker/YearPicker.d.ts +12 -0
  209. package/dist/mocked_classnames/components/DatePicker/YearPicker/YearsList.d.ts +12 -0
  210. package/dist/mocked_classnames/components/DatePicker/types.d.ts +6 -0
  211. package/dist/mocked_classnames/components/Dialog/Dialog.d.ts +59 -36
  212. package/dist/mocked_classnames/components/Dialog/DialogContent/DialogContent.d.ts +52 -3
  213. package/dist/mocked_classnames/components/DialogContentContainer/DialogContentContainer.d.ts +18 -0
  214. package/dist/mocked_classnames/components/Divider/Divider.d.ts +2 -2
  215. package/dist/mocked_classnames/components/Dropdown/Dropdown.types.d.ts +97 -63
  216. package/dist/mocked_classnames/components/EditableHeading/EditableHeading.d.ts +4 -3
  217. package/dist/mocked_classnames/components/EditableText/EditableText.d.ts +6 -4
  218. package/dist/mocked_classnames/components/EditableTypography/EditableTypography.d.ts +48 -16
  219. package/dist/mocked_classnames/components/ExpandCollapse/ExpandCollapse.d.ts +20 -8
  220. package/dist/mocked_classnames/components/FieldLabel/FieldLabel.d.ts +18 -0
  221. package/dist/mocked_classnames/components/Flex/Flex.d.ts +36 -2
  222. package/dist/mocked_classnames/components/FormattedNumber/FormattedNumber.d.ts +8 -8
  223. package/dist/mocked_classnames/components/GridKeyboardNavigationContext/GridKeyboardNavigationContextConstants.d.ts +3 -0
  224. package/dist/mocked_classnames/components/Heading/Heading.d.ts +15 -0
  225. package/dist/mocked_classnames/components/HiddenText/HiddenText.d.ts +3 -0
  226. package/dist/mocked_classnames/components/Icon/CustomSvgIcon/CustomSvgIcon.d.ts +30 -0
  227. package/dist/mocked_classnames/components/Icon/FontIcon/FontIcon.d.ts +18 -0
  228. package/dist/mocked_classnames/components/Icon/Icon.d.ts +32 -8
  229. package/dist/mocked_classnames/components/IconButton/IconButton.d.ts +37 -27
  230. package/dist/mocked_classnames/components/Label/Label.d.ts +22 -1
  231. package/dist/mocked_classnames/components/Label/LabelCelebrationAnimation.d.ts +6 -0
  232. package/dist/mocked_classnames/components/LayerProvider/LayerContext.d.ts +3 -0
  233. package/dist/mocked_classnames/components/LayerProvider/LayerProvider.d.ts +7 -1
  234. package/dist/mocked_classnames/components/LegacyModal/LegacyModalHeader/LegacyModalHeader.d.ts +0 -8
  235. package/dist/mocked_classnames/components/Link/Link.d.ts +40 -14
  236. package/dist/mocked_classnames/components/List/List.d.ts +14 -5
  237. package/dist/mocked_classnames/components/List/VirtualizedListItems/VirtualizedListItems.d.ts +3 -0
  238. package/dist/mocked_classnames/components/ListItem/ListItem.d.ts +12 -25
  239. package/dist/mocked_classnames/components/ListItemAvatar/ListItemAvatar.d.ts +7 -1
  240. package/dist/mocked_classnames/components/ListItemIcon/ListItemIcon.d.ts +5 -2
  241. package/dist/mocked_classnames/components/ListTitle/ListTitle.d.ts +6 -0
  242. package/dist/mocked_classnames/components/Loader/Loader.d.ts +12 -2
  243. package/dist/mocked_classnames/components/Menu/Menu/Menu.d.ts +42 -0
  244. package/dist/mocked_classnames/components/Menu/MenuGridItem/MenuGridItem.d.ts +33 -5
  245. package/dist/mocked_classnames/components/Menu/MenuItem/AvatarMenuItem.d.ts +6 -0
  246. package/dist/mocked_classnames/components/Menu/MenuItem/MenuItem.d.ts +97 -7
  247. package/dist/mocked_classnames/components/Menu/MenuItem/components/BaseMenuItem/BaseMenuItem.types.d.ts +7 -0
  248. package/dist/mocked_classnames/components/Menu/MenuItem/components/MenuItemIcon/MenuItemIcon.types.d.ts +7 -6
  249. package/dist/mocked_classnames/components/Menu/MenuItem/components/MenuItemSubMenu/MenuItemSubMenu.types.d.ts +7 -3
  250. package/dist/mocked_classnames/components/Menu/MenuItem/components/MenuItemSubMenuIcon/MenuItemSubMenuIcon.types.d.ts +5 -1
  251. package/dist/mocked_classnames/components/Menu/MenuItemButton/MenuItemButton.d.ts +51 -0
  252. package/dist/mocked_classnames/components/Menu/MenuTitle/MenuTitle.d.ts +6 -0
  253. package/dist/mocked_classnames/components/MenuButton/MenuButton.d.ts +67 -19
  254. package/dist/mocked_classnames/components/Modal/ModalContent/ModalContent.types.d.ts +1 -1
  255. package/dist/mocked_classnames/components/Modal/ModalMedia/ModalMedia.types.d.ts +1 -1
  256. package/dist/mocked_classnames/components/Modal/ModalTopActions/ModalTopActions.types.d.ts +5 -5
  257. package/dist/mocked_classnames/components/Modal/context/ModalContext.types.d.ts +5 -5
  258. package/dist/mocked_classnames/components/Modal/footers/ModalFooter/ModalFooter.types.d.ts +1 -1
  259. package/dist/mocked_classnames/components/Modal/footers/ModalFooterBase/ModalFooterBase.types.d.ts +3 -3
  260. package/dist/mocked_classnames/components/Modal/footers/ModalFooterWizard/ModalFooterWizard.types.d.ts +4 -4
  261. package/dist/mocked_classnames/components/Modal/layouts/ModalBasicLayout/ModalBasicLayout.types.d.ts +1 -1
  262. package/dist/mocked_classnames/components/Modal/layouts/ModalFooterShadow.types.d.ts +1 -1
  263. package/dist/mocked_classnames/components/Modal/layouts/ModalLayoutScrollableContent.types.d.ts +2 -2
  264. package/dist/mocked_classnames/components/Modal/layouts/ModalMediaLayout/ModalMediaLayout.types.d.ts +1 -1
  265. package/dist/mocked_classnames/components/Modal/layouts/ModalSideBySideLayout/ModalSideBySideLayout.types.d.ts +1 -1
  266. package/dist/mocked_classnames/components/MultiStepIndicator/MultiStepIndicator.d.ts +30 -0
  267. package/dist/mocked_classnames/components/MultiStepIndicator/components/StepIndicator/StepIndicator.d.ts +57 -0
  268. package/dist/mocked_classnames/components/ProgressBars/LinearProgressBar/Bar/Bar.d.ts +17 -6
  269. package/dist/mocked_classnames/components/ProgressBars/LinearProgressBar/LinearProgressBar.d.ts +19 -22
  270. package/dist/mocked_classnames/components/ProgressBars/PercentageLabel/PercentageLabel.d.ts +2 -2
  271. package/dist/mocked_classnames/components/RadioButton/RadioButton.d.ts +45 -16
  272. package/dist/mocked_classnames/components/Search/Search.types.d.ts +24 -24
  273. package/dist/mocked_classnames/components/Skeleton/Skeleton.d.ts +16 -1
  274. package/dist/mocked_classnames/components/SlideTransition/SlideTransition.types.d.ts +12 -0
  275. package/dist/mocked_classnames/components/Slider/SelectionIndicator.d.ts +6 -0
  276. package/dist/mocked_classnames/components/Slider/SliderBase/SliderFilledTrack.d.ts +6 -8
  277. package/dist/mocked_classnames/components/Slider/SliderBase/SliderRail.d.ts +6 -4
  278. package/dist/mocked_classnames/components/Slider/SliderBase/SliderThumb.d.ts +9 -7
  279. package/dist/mocked_classnames/components/Slider/SliderBase/SliderTrack.d.ts +1 -2
  280. package/dist/mocked_classnames/components/Slider/SliderContext.d.ts +13 -8
  281. package/dist/mocked_classnames/components/Slider/SliderInfix.d.ts +1 -2
  282. package/dist/mocked_classnames/components/SplitButton/SplitButton.d.ts +25 -2
  283. package/dist/mocked_classnames/components/Steps/Steps.d.ts +32 -2
  284. package/dist/mocked_classnames/components/Steps/StepsCommand.d.ts +21 -0
  285. package/dist/mocked_classnames/components/Steps/StepsDot.d.ts +15 -0
  286. package/dist/mocked_classnames/components/Steps/StepsGalleryHeader.d.ts +15 -0
  287. package/dist/mocked_classnames/components/Steps/StepsHeader.d.ts +33 -0
  288. package/dist/mocked_classnames/components/Steps/StepsNumbersHeader.d.ts +9 -0
  289. package/dist/mocked_classnames/components/Switch/Switch.d.ts +39 -0
  290. package/dist/mocked_classnames/components/Table/Table/Table.d.ts +42 -0
  291. package/dist/mocked_classnames/components/Table/TableBody/TableBody.d.ts +3 -0
  292. package/dist/mocked_classnames/components/Table/TableCell/TableCell.d.ts +6 -0
  293. package/dist/mocked_classnames/components/Table/TableCellSkeleton/TableCellSkeleton.d.ts +6 -0
  294. package/dist/mocked_classnames/components/Table/TableContainer/TableContainer.types.d.ts +6 -0
  295. package/dist/mocked_classnames/components/Table/TableHeader/TableHeader.d.ts +3 -0
  296. package/dist/mocked_classnames/components/Table/TableHeaderCell/TableHeaderCell.d.ts +21 -0
  297. package/dist/mocked_classnames/components/Table/TableRow/TableRow.d.ts +7 -1
  298. package/dist/mocked_classnames/components/Table/TableRowMenu/TableRowMenu.types.d.ts +6 -0
  299. package/dist/mocked_classnames/components/Table/TableVirtualizedBody/TableVirtualizedBody.d.ts +15 -0
  300. package/dist/mocked_classnames/components/Tabs/Tab/Tab.d.ts +27 -3
  301. package/dist/mocked_classnames/components/Tabs/TabList/TabList.d.ts +15 -0
  302. package/dist/mocked_classnames/components/Tabs/TabPanel/TabPanel.d.ts +6 -0
  303. package/dist/mocked_classnames/components/Tabs/TabPanels/TabPanels.d.ts +9 -0
  304. package/dist/mocked_classnames/components/Tabs/TabsContext/TabsContext.d.ts +6 -0
  305. package/dist/mocked_classnames/components/Text/Text.d.ts +9 -0
  306. package/dist/mocked_classnames/components/TextArea/TextArea.types.d.ts +13 -16
  307. package/dist/mocked_classnames/components/TextField/TextField.d.ts +127 -9
  308. package/dist/mocked_classnames/components/TextWithHighlight/TextWithHighlight.d.ts +33 -6
  309. package/dist/mocked_classnames/components/ThemeProvider/ThemeProvider.d.ts +8 -5
  310. package/dist/mocked_classnames/components/Tipseen/Tipseen.d.ts +64 -6
  311. package/dist/mocked_classnames/components/Tipseen/TipseenBasicContent.d.ts +9 -0
  312. package/dist/mocked_classnames/components/Tipseen/TipseenContent.d.ts +25 -1
  313. package/dist/mocked_classnames/components/Tipseen/TipseenImage.d.ts +12 -0
  314. package/dist/mocked_classnames/components/Tipseen/TipseenMedia/TipseenMedia.d.ts +3 -0
  315. package/dist/mocked_classnames/components/Tipseen/TipseenTitle.d.ts +3 -0
  316. package/dist/mocked_classnames/components/Tipseen/TipseenWizard.d.ts +7 -1
  317. package/dist/mocked_classnames/components/Toast/Toast.d.ts +37 -8
  318. package/dist/mocked_classnames/components/Toggle/MockToggle.d.ts +21 -0
  319. package/dist/mocked_classnames/components/Toggle/Toggle.d.ts +37 -1
  320. package/dist/mocked_classnames/components/Toggle/ToggleText.d.ts +6 -0
  321. package/dist/mocked_classnames/components/Tooltip/Tooltip.d.ts +64 -27
  322. package/dist/mocked_classnames/components/TransitionView/TransitionView.types.d.ts +9 -0
  323. package/dist/mocked_classnames/components/Typography/Typography.d.ts +12 -6
  324. package/dist/mocked_classnames/components/VirtualizedGrid/VirtualizedGrid.d.ts +19 -19
  325. package/dist/mocked_classnames/components/VirtualizedList/VirtualizedList.d.ts +33 -27
  326. package/dist/mocked_classnames/hooks/useKeyEvent/index.d.ts +30 -0
  327. package/dist/mocked_classnames/hooks/useSwitch/index.d.ts +12 -0
  328. package/dist/mocked_classnames/hooks/useWizard/useWizard.types.d.ts +33 -0
  329. package/dist/mocked_classnames/src/components/Accordion/Accordion/Accordion.js.map +1 -1
  330. package/dist/mocked_classnames/src/components/Accordion/AccordionItem/AccordionItem.js.map +1 -1
  331. package/dist/mocked_classnames/src/components/AlertBanner/AlertBanner.js.map +1 -1
  332. package/dist/mocked_classnames/src/components/AlertBanner/AlertBannerButton/AlertBannerButton.js.map +1 -1
  333. package/dist/mocked_classnames/src/components/AlertBanner/AlertBannerLink/AlertBannerLink.js.map +1 -1
  334. package/dist/mocked_classnames/src/components/AlertBanner/AlertBannerText/AlertBannerText.js.map +1 -1
  335. package/dist/mocked_classnames/src/components/AttentionBox/AttentionBox.js.map +1 -1
  336. package/dist/mocked_classnames/src/components/Avatar/Avatar.js.map +1 -1
  337. package/dist/mocked_classnames/src/components/Avatar/AvatarBadge.js.map +1 -1
  338. package/dist/mocked_classnames/src/components/Avatar/AvatarContent.js.map +1 -1
  339. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroup.js.map +1 -1
  340. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounter.js.map +1 -1
  341. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContainer.js.map +1 -1
  342. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContent.js.map +1 -1
  343. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.js.map +1 -1
  344. package/dist/mocked_classnames/src/components/Badge/Badge.js.map +1 -1
  345. package/dist/mocked_classnames/src/components/Badge/Indicator/Indicator.js.map +1 -1
  346. package/dist/mocked_classnames/src/components/Box/Box.js.map +1 -1
  347. package/dist/mocked_classnames/src/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbContent/BreadcrumbContent.js.map +1 -1
  348. package/dist/mocked_classnames/src/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbItem.js.map +1 -1
  349. package/dist/mocked_classnames/src/components/BreadcrumbsBar/BreadcrumbsBar.js.map +1 -1
  350. package/dist/mocked_classnames/src/components/Button/Button.js +1 -1
  351. package/dist/mocked_classnames/src/components/Button/Button.js.map +1 -1
  352. package/dist/mocked_classnames/src/components/ButtonGroup/ButtonGroup.js.map +1 -1
  353. package/dist/mocked_classnames/src/components/ButtonGroup/ButtonWrapper.js.map +1 -1
  354. package/dist/mocked_classnames/src/components/Checkbox/Checkbox.js.map +1 -1
  355. package/dist/mocked_classnames/src/components/Chips/Chips.js.map +1 -1
  356. package/dist/mocked_classnames/src/components/Clickable/Clickable.js.map +1 -1
  357. package/dist/mocked_classnames/src/components/Clickable/ClickableWrapper.js.map +1 -1
  358. package/dist/mocked_classnames/src/components/ColorPicker/ColorPicker.js.map +1 -1
  359. package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerContent/ColorPickerClearButton.js.map +1 -1
  360. package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerContent/ColorPickerColorsGrid.js.map +1 -1
  361. package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.js.map +1 -1
  362. package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.js.map +1 -1
  363. package/dist/mocked_classnames/src/components/Combobox/Combobox.js.map +1 -1
  364. package/dist/mocked_classnames/src/components/Combobox/components/ComboboxCategory/ComboboxCategory.js.map +1 -1
  365. package/dist/mocked_classnames/src/components/Combobox/components/ComboboxConstants.js.map +1 -1
  366. package/dist/mocked_classnames/src/components/Combobox/components/ComboboxItems/ComboboxItems.js.map +1 -1
  367. package/dist/mocked_classnames/src/components/Combobox/components/ComboboxOption/ComboboxOption.js.map +1 -1
  368. package/dist/mocked_classnames/src/components/Counter/Counter.js.map +1 -1
  369. package/dist/mocked_classnames/src/components/DatePicker/DateNavigationItem/DateNavigationItem.js.map +1 -1
  370. package/dist/mocked_classnames/src/components/DatePicker/DatePicker.js.map +1 -1
  371. package/dist/mocked_classnames/src/components/DatePicker/DatePickerHeader/DatePickerHeader.js.map +1 -1
  372. package/dist/mocked_classnames/src/components/DatePicker/YearPicker/YearPicker.js.map +1 -1
  373. package/dist/mocked_classnames/src/components/DatePicker/YearPicker/YearsList.js.map +1 -1
  374. package/dist/mocked_classnames/src/components/DatePicker/types.js.map +1 -1
  375. package/dist/mocked_classnames/src/components/Dialog/Dialog.js.map +1 -1
  376. package/dist/mocked_classnames/src/components/Dialog/DialogContent/DialogContent.js.map +1 -1
  377. package/dist/mocked_classnames/src/components/DialogContentContainer/DialogContentContainer.js.map +1 -1
  378. package/dist/mocked_classnames/src/components/Divider/Divider.js.map +1 -1
  379. package/dist/mocked_classnames/src/components/Dropdown/Dropdown.js +1 -1
  380. package/dist/mocked_classnames/src/components/Dropdown/Dropdown.js.map +1 -1
  381. package/dist/mocked_classnames/src/components/EditableHeading/EditableHeading.js.map +1 -1
  382. package/dist/mocked_classnames/src/components/EditableText/EditableText.js.map +1 -1
  383. package/dist/mocked_classnames/src/components/EditableTypography/EditableTypography.js.map +1 -1
  384. package/dist/mocked_classnames/src/components/ExpandCollapse/ExpandCollapse.js.map +1 -1
  385. package/dist/mocked_classnames/src/components/FieldLabel/FieldLabel.js.map +1 -1
  386. package/dist/mocked_classnames/src/components/Flex/Flex.js.map +1 -1
  387. package/dist/mocked_classnames/src/components/FormattedNumber/FormattedNumber.js.map +1 -1
  388. package/dist/mocked_classnames/src/components/Heading/Heading.js.map +1 -1
  389. package/dist/mocked_classnames/src/components/HiddenText/HiddenText.js.map +1 -1
  390. package/dist/mocked_classnames/src/components/Icon/CustomSvgIcon/CustomSvgIcon.js.map +1 -1
  391. package/dist/mocked_classnames/src/components/Icon/FontIcon/FontIcon.js.map +1 -1
  392. package/dist/mocked_classnames/src/components/Icon/Icon.js.map +1 -1
  393. package/dist/mocked_classnames/src/components/IconButton/IconButton.js.map +1 -1
  394. package/dist/mocked_classnames/src/components/Label/Label.js.map +1 -1
  395. package/dist/mocked_classnames/src/components/Label/LabelCelebrationAnimation.js.map +1 -1
  396. package/dist/mocked_classnames/src/components/LayerProvider/LayerContext.js.map +1 -1
  397. package/dist/mocked_classnames/src/components/LayerProvider/LayerProvider.js.map +1 -1
  398. package/dist/mocked_classnames/src/components/LegacyModal/LegacyModalHeader/LegacyModalHeader.js.map +1 -1
  399. package/dist/mocked_classnames/src/components/Link/Link.js.map +1 -1
  400. package/dist/mocked_classnames/src/components/List/List.js.map +1 -1
  401. package/dist/mocked_classnames/src/components/List/VirtualizedListItems/VirtualizedListItems.js.map +1 -1
  402. package/dist/mocked_classnames/src/components/ListItem/ListItem.js.map +1 -1
  403. package/dist/mocked_classnames/src/components/ListItemAvatar/ListItemAvatar.js.map +1 -1
  404. package/dist/mocked_classnames/src/components/ListItemIcon/ListItemIcon.js.map +1 -1
  405. package/dist/mocked_classnames/src/components/ListTitle/ListTitle.js.map +1 -1
  406. package/dist/mocked_classnames/src/components/Loader/Loader.js.map +1 -1
  407. package/dist/mocked_classnames/src/components/Menu/Menu/Menu.js.map +1 -1
  408. package/dist/mocked_classnames/src/components/Menu/MenuGridItem/MenuGridItem.js.map +1 -1
  409. package/dist/mocked_classnames/src/components/Menu/MenuItem/AvatarMenuItem.js.map +1 -1
  410. package/dist/mocked_classnames/src/components/Menu/MenuItem/MenuItem.js.map +1 -1
  411. package/dist/mocked_classnames/src/components/Menu/MenuItemButton/MenuItemButton.js.map +1 -1
  412. package/dist/mocked_classnames/src/components/Menu/MenuTitle/MenuTitle.js.map +1 -1
  413. package/dist/mocked_classnames/src/components/MenuButton/MenuButton.js.map +1 -1
  414. package/dist/mocked_classnames/src/components/Modal/hooks/usePortalTarget/usePortalTarget.js +1 -1
  415. package/dist/mocked_classnames/src/components/Modal/hooks/usePortalTarget/usePortalTarget.js.map +1 -1
  416. package/dist/mocked_classnames/src/components/MultiStepIndicator/MultiStepIndicator.js.map +1 -1
  417. package/dist/mocked_classnames/src/components/MultiStepIndicator/components/StepIndicator/StepIndicator.js.map +1 -1
  418. package/dist/mocked_classnames/src/components/ProgressBars/LinearProgressBar/Bar/Bar.js.map +1 -1
  419. package/dist/mocked_classnames/src/components/ProgressBars/LinearProgressBar/LinearProgressBar.js.map +1 -1
  420. package/dist/mocked_classnames/src/components/ProgressBars/PercentageLabel/PercentageLabel.js.map +1 -1
  421. package/dist/mocked_classnames/src/components/RadioButton/RadioButton.js.map +1 -1
  422. package/dist/mocked_classnames/src/components/Skeleton/Skeleton.js.map +1 -1
  423. package/dist/mocked_classnames/src/components/Slider/SelectionIndicator.js.map +1 -1
  424. package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderFilledTrack.js.map +1 -1
  425. package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderRail.js.map +1 -1
  426. package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderThumb.js.map +1 -1
  427. package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderTrack.js.map +1 -1
  428. package/dist/mocked_classnames/src/components/Slider/SliderContext.js.map +1 -1
  429. package/dist/mocked_classnames/src/components/Slider/SliderInfix.js.map +1 -1
  430. package/dist/mocked_classnames/src/components/SplitButton/SplitButton.js.map +1 -1
  431. package/dist/mocked_classnames/src/components/Steps/Steps.js.map +1 -1
  432. package/dist/mocked_classnames/src/components/Steps/StepsCommand.js.map +1 -1
  433. package/dist/mocked_classnames/src/components/Steps/StepsDot.js.map +1 -1
  434. package/dist/mocked_classnames/src/components/Steps/StepsGalleryHeader.js.map +1 -1
  435. package/dist/mocked_classnames/src/components/Steps/StepsHeader.js.map +1 -1
  436. package/dist/mocked_classnames/src/components/Steps/StepsNumbersHeader.js.map +1 -1
  437. package/dist/mocked_classnames/src/components/Switch/Switch.js.map +1 -1
  438. package/dist/mocked_classnames/src/components/Table/Table/Table.js.map +1 -1
  439. package/dist/mocked_classnames/src/components/Table/TableBody/TableBody.js.map +1 -1
  440. package/dist/mocked_classnames/src/components/Table/TableCell/TableCell.js.map +1 -1
  441. package/dist/mocked_classnames/src/components/Table/TableCellSkeleton/TableCellSkeleton.js.map +1 -1
  442. package/dist/mocked_classnames/src/components/Table/TableHeader/TableHeader.js.map +1 -1
  443. package/dist/mocked_classnames/src/components/Table/TableHeaderCell/TableHeaderCell.js.map +1 -1
  444. package/dist/mocked_classnames/src/components/Table/TableRow/TableRow.js.map +1 -1
  445. package/dist/mocked_classnames/src/components/Table/TableVirtualizedBody/TableVirtualizedBody.js.map +1 -1
  446. package/dist/mocked_classnames/src/components/Tabs/Tab/Tab.js.map +1 -1
  447. package/dist/mocked_classnames/src/components/Tabs/TabList/TabList.js.map +1 -1
  448. package/dist/mocked_classnames/src/components/Tabs/TabPanel/TabPanel.js.map +1 -1
  449. package/dist/mocked_classnames/src/components/Tabs/TabPanels/TabPanels.js.map +1 -1
  450. package/dist/mocked_classnames/src/components/Tabs/TabsContext/TabsContext.js.map +1 -1
  451. package/dist/mocked_classnames/src/components/Text/Text.js.map +1 -1
  452. package/dist/mocked_classnames/src/components/TextField/TextField.js.map +1 -1
  453. package/dist/mocked_classnames/src/components/TextWithHighlight/TextWithHighlight.js.map +1 -1
  454. package/dist/mocked_classnames/src/components/ThemeProvider/ThemeProvider.js.map +1 -1
  455. package/dist/mocked_classnames/src/components/Tipseen/Tipseen.js.map +1 -1
  456. package/dist/mocked_classnames/src/components/Tipseen/TipseenBasicContent.js.map +1 -1
  457. package/dist/mocked_classnames/src/components/Tipseen/TipseenContent.js.map +1 -1
  458. package/dist/mocked_classnames/src/components/Tipseen/TipseenImage.js.map +1 -1
  459. package/dist/mocked_classnames/src/components/Tipseen/TipseenMedia/TipseenMedia.js.map +1 -1
  460. package/dist/mocked_classnames/src/components/Tipseen/TipseenTitle.js.map +1 -1
  461. package/dist/mocked_classnames/src/components/Tipseen/TipseenWizard.js.map +1 -1
  462. package/dist/mocked_classnames/src/components/Toast/Toast.js.map +1 -1
  463. package/dist/mocked_classnames/src/components/Toggle/MockToggle.js.map +1 -1
  464. package/dist/mocked_classnames/src/components/Toggle/Toggle.js.map +1 -1
  465. package/dist/mocked_classnames/src/components/Toggle/ToggleText.js.map +1 -1
  466. package/dist/mocked_classnames/src/components/Tooltip/Tooltip.js.map +1 -1
  467. package/dist/mocked_classnames/src/components/Typography/Typography.js.map +1 -1
  468. package/dist/mocked_classnames/src/components/VirtualizedGrid/VirtualizedGrid.js.map +1 -1
  469. package/dist/mocked_classnames/src/components/VirtualizedList/VirtualizedList.js.map +1 -1
  470. package/dist/mocked_classnames/src/hooks/useKeyEvent/index.js.map +1 -1
  471. package/dist/mocked_classnames/src/hooks/useSwitch/index.js.map +1 -1
  472. package/dist/mocked_classnames/types/VibeComponentProps.d.ts +9 -0
  473. package/dist/src/components/Accordion/Accordion/Accordion.js.map +1 -1
  474. package/dist/src/components/Accordion/AccordionItem/AccordionItem.js.map +1 -1
  475. package/dist/src/components/AlertBanner/AlertBanner.js.map +1 -1
  476. package/dist/src/components/AlertBanner/AlertBannerButton/AlertBannerButton.js.map +1 -1
  477. package/dist/src/components/AlertBanner/AlertBannerLink/AlertBannerLink.js.map +1 -1
  478. package/dist/src/components/AlertBanner/AlertBannerText/AlertBannerText.js.map +1 -1
  479. package/dist/src/components/AttentionBox/AttentionBox.js.map +1 -1
  480. package/dist/src/components/Avatar/Avatar.js.map +1 -1
  481. package/dist/src/components/Avatar/AvatarBadge.js.map +1 -1
  482. package/dist/src/components/Avatar/AvatarContent.js.map +1 -1
  483. package/dist/src/components/AvatarGroup/AvatarGroup.js.map +1 -1
  484. package/dist/src/components/AvatarGroup/AvatarGroupCounter.js.map +1 -1
  485. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContainer.js.map +1 -1
  486. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContent.js.map +1 -1
  487. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.js.map +1 -1
  488. package/dist/src/components/Badge/Badge.js.map +1 -1
  489. package/dist/src/components/Badge/Indicator/Indicator.js.map +1 -1
  490. package/dist/src/components/Box/Box.js.map +1 -1
  491. package/dist/src/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbContent/BreadcrumbContent.js.map +1 -1
  492. package/dist/src/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbItem.js.map +1 -1
  493. package/dist/src/components/BreadcrumbsBar/BreadcrumbsBar.js.map +1 -1
  494. package/dist/src/components/Button/Button.js +1 -1
  495. package/dist/src/components/Button/Button.js.map +1 -1
  496. package/dist/src/components/ButtonGroup/ButtonGroup.js.map +1 -1
  497. package/dist/src/components/ButtonGroup/ButtonWrapper.js.map +1 -1
  498. package/dist/src/components/Checkbox/Checkbox.js.map +1 -1
  499. package/dist/src/components/Chips/Chips.js.map +1 -1
  500. package/dist/src/components/Clickable/Clickable.js.map +1 -1
  501. package/dist/src/components/Clickable/ClickableWrapper.js.map +1 -1
  502. package/dist/src/components/ColorPicker/ColorPicker.js.map +1 -1
  503. package/dist/src/components/ColorPicker/components/ColorPickerContent/ColorPickerClearButton.js.map +1 -1
  504. package/dist/src/components/ColorPicker/components/ColorPickerContent/ColorPickerColorsGrid.js.map +1 -1
  505. package/dist/src/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.js.map +1 -1
  506. package/dist/src/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.js.map +1 -1
  507. package/dist/src/components/Combobox/Combobox.js.map +1 -1
  508. package/dist/src/components/Combobox/components/ComboboxCategory/ComboboxCategory.js.map +1 -1
  509. package/dist/src/components/Combobox/components/ComboboxConstants.js.map +1 -1
  510. package/dist/src/components/Combobox/components/ComboboxItems/ComboboxItems.js.map +1 -1
  511. package/dist/src/components/Combobox/components/ComboboxOption/ComboboxOption.js.map +1 -1
  512. package/dist/src/components/Counter/Counter.js.map +1 -1
  513. package/dist/src/components/DatePicker/DateNavigationItem/DateNavigationItem.js.map +1 -1
  514. package/dist/src/components/DatePicker/DatePicker.js.map +1 -1
  515. package/dist/src/components/DatePicker/DatePickerHeader/DatePickerHeader.js.map +1 -1
  516. package/dist/src/components/DatePicker/YearPicker/YearPicker.js.map +1 -1
  517. package/dist/src/components/DatePicker/YearPicker/YearsList.js.map +1 -1
  518. package/dist/src/components/DatePicker/types.js.map +1 -1
  519. package/dist/src/components/Dialog/Dialog.js.map +1 -1
  520. package/dist/src/components/Dialog/DialogContent/DialogContent.js.map +1 -1
  521. package/dist/src/components/DialogContentContainer/DialogContentContainer.js.map +1 -1
  522. package/dist/src/components/Divider/Divider.js.map +1 -1
  523. package/dist/src/components/Dropdown/Dropdown.js +1 -1
  524. package/dist/src/components/Dropdown/Dropdown.js.map +1 -1
  525. package/dist/src/components/EditableHeading/EditableHeading.js.map +1 -1
  526. package/dist/src/components/EditableText/EditableText.js.map +1 -1
  527. package/dist/src/components/EditableTypography/EditableTypography.js.map +1 -1
  528. package/dist/src/components/ExpandCollapse/ExpandCollapse.js.map +1 -1
  529. package/dist/src/components/FieldLabel/FieldLabel.js.map +1 -1
  530. package/dist/src/components/Flex/Flex.js.map +1 -1
  531. package/dist/src/components/FormattedNumber/FormattedNumber.js.map +1 -1
  532. package/dist/src/components/Heading/Heading.js.map +1 -1
  533. package/dist/src/components/HiddenText/HiddenText.js.map +1 -1
  534. package/dist/src/components/Icon/CustomSvgIcon/CustomSvgIcon.js.map +1 -1
  535. package/dist/src/components/Icon/FontIcon/FontIcon.js.map +1 -1
  536. package/dist/src/components/Icon/Icon.js.map +1 -1
  537. package/dist/src/components/IconButton/IconButton.js.map +1 -1
  538. package/dist/src/components/Label/Label.js.map +1 -1
  539. package/dist/src/components/Label/LabelCelebrationAnimation.js.map +1 -1
  540. package/dist/src/components/LayerProvider/LayerContext.js.map +1 -1
  541. package/dist/src/components/LayerProvider/LayerProvider.js.map +1 -1
  542. package/dist/src/components/LegacyModal/LegacyModalHeader/LegacyModalHeader.js.map +1 -1
  543. package/dist/src/components/Link/Link.js.map +1 -1
  544. package/dist/src/components/List/List.js.map +1 -1
  545. package/dist/src/components/List/VirtualizedListItems/VirtualizedListItems.js.map +1 -1
  546. package/dist/src/components/ListItem/ListItem.js.map +1 -1
  547. package/dist/src/components/ListItemAvatar/ListItemAvatar.js.map +1 -1
  548. package/dist/src/components/ListItemIcon/ListItemIcon.js.map +1 -1
  549. package/dist/src/components/ListTitle/ListTitle.js.map +1 -1
  550. package/dist/src/components/Loader/Loader.js.map +1 -1
  551. package/dist/src/components/Menu/Menu/Menu.js.map +1 -1
  552. package/dist/src/components/Menu/MenuGridItem/MenuGridItem.js.map +1 -1
  553. package/dist/src/components/Menu/MenuItem/AvatarMenuItem.js.map +1 -1
  554. package/dist/src/components/Menu/MenuItem/MenuItem.js.map +1 -1
  555. package/dist/src/components/Menu/MenuItemButton/MenuItemButton.js.map +1 -1
  556. package/dist/src/components/Menu/MenuTitle/MenuTitle.js.map +1 -1
  557. package/dist/src/components/MenuButton/MenuButton.js.map +1 -1
  558. package/dist/src/components/Modal/hooks/usePortalTarget/usePortalTarget.js +1 -1
  559. package/dist/src/components/Modal/hooks/usePortalTarget/usePortalTarget.js.map +1 -1
  560. package/dist/src/components/MultiStepIndicator/MultiStepIndicator.js.map +1 -1
  561. package/dist/src/components/MultiStepIndicator/components/StepIndicator/StepIndicator.js.map +1 -1
  562. package/dist/src/components/ProgressBars/LinearProgressBar/Bar/Bar.js.map +1 -1
  563. package/dist/src/components/ProgressBars/LinearProgressBar/LinearProgressBar.js.map +1 -1
  564. package/dist/src/components/ProgressBars/PercentageLabel/PercentageLabel.js.map +1 -1
  565. package/dist/src/components/RadioButton/RadioButton.js.map +1 -1
  566. package/dist/src/components/Skeleton/Skeleton.js.map +1 -1
  567. package/dist/src/components/Slider/SelectionIndicator.js.map +1 -1
  568. package/dist/src/components/Slider/SliderBase/SliderFilledTrack.js.map +1 -1
  569. package/dist/src/components/Slider/SliderBase/SliderRail.js.map +1 -1
  570. package/dist/src/components/Slider/SliderBase/SliderThumb.js.map +1 -1
  571. package/dist/src/components/Slider/SliderBase/SliderTrack.js.map +1 -1
  572. package/dist/src/components/Slider/SliderContext.js.map +1 -1
  573. package/dist/src/components/Slider/SliderInfix.js.map +1 -1
  574. package/dist/src/components/SplitButton/SplitButton.js.map +1 -1
  575. package/dist/src/components/Steps/Steps.js.map +1 -1
  576. package/dist/src/components/Steps/StepsCommand.js.map +1 -1
  577. package/dist/src/components/Steps/StepsDot.js.map +1 -1
  578. package/dist/src/components/Steps/StepsGalleryHeader.js.map +1 -1
  579. package/dist/src/components/Steps/StepsHeader.js.map +1 -1
  580. package/dist/src/components/Steps/StepsNumbersHeader.js.map +1 -1
  581. package/dist/src/components/Switch/Switch.js.map +1 -1
  582. package/dist/src/components/Table/Table/Table.js.map +1 -1
  583. package/dist/src/components/Table/TableBody/TableBody.js.map +1 -1
  584. package/dist/src/components/Table/TableCell/TableCell.js.map +1 -1
  585. package/dist/src/components/Table/TableCellSkeleton/TableCellSkeleton.js.map +1 -1
  586. package/dist/src/components/Table/TableHeader/TableHeader.js.map +1 -1
  587. package/dist/src/components/Table/TableHeaderCell/TableHeaderCell.js.map +1 -1
  588. package/dist/src/components/Table/TableRow/TableRow.js.map +1 -1
  589. package/dist/src/components/Table/TableVirtualizedBody/TableVirtualizedBody.js.map +1 -1
  590. package/dist/src/components/Tabs/Tab/Tab.js.map +1 -1
  591. package/dist/src/components/Tabs/TabList/TabList.js.map +1 -1
  592. package/dist/src/components/Tabs/TabPanel/TabPanel.js.map +1 -1
  593. package/dist/src/components/Tabs/TabPanels/TabPanels.js.map +1 -1
  594. package/dist/src/components/Tabs/TabsContext/TabsContext.js.map +1 -1
  595. package/dist/src/components/Text/Text.js.map +1 -1
  596. package/dist/src/components/TextField/TextField.js.map +1 -1
  597. package/dist/src/components/TextWithHighlight/TextWithHighlight.js.map +1 -1
  598. package/dist/src/components/ThemeProvider/ThemeProvider.js.map +1 -1
  599. package/dist/src/components/Tipseen/Tipseen.js.map +1 -1
  600. package/dist/src/components/Tipseen/TipseenBasicContent.js.map +1 -1
  601. package/dist/src/components/Tipseen/TipseenContent.js.map +1 -1
  602. package/dist/src/components/Tipseen/TipseenImage.js.map +1 -1
  603. package/dist/src/components/Tipseen/TipseenMedia/TipseenMedia.js.map +1 -1
  604. package/dist/src/components/Tipseen/TipseenTitle.js.map +1 -1
  605. package/dist/src/components/Tipseen/TipseenWizard.js.map +1 -1
  606. package/dist/src/components/Toast/Toast.js.map +1 -1
  607. package/dist/src/components/Toggle/MockToggle.js.map +1 -1
  608. package/dist/src/components/Toggle/Toggle.js.map +1 -1
  609. package/dist/src/components/Toggle/ToggleText.js.map +1 -1
  610. package/dist/src/components/Tooltip/Tooltip.js.map +1 -1
  611. package/dist/src/components/Typography/Typography.js.map +1 -1
  612. package/dist/src/components/VirtualizedGrid/VirtualizedGrid.js.map +1 -1
  613. package/dist/src/components/VirtualizedList/VirtualizedList.js.map +1 -1
  614. package/dist/src/hooks/useKeyEvent/index.js.map +1 -1
  615. package/dist/src/hooks/useSwitch/index.js.map +1 -1
  616. package/dist/types/VibeComponentProps.d.ts +9 -0
  617. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport { camelCase, isFunction } from \"lodash-es\";\nimport cx from \"classnames\";\nimport React, { CSSProperties, isValidElement, PureComponent, ReactElement } from \"react\";\nimport { Modifier } from \"react-popper\";\nimport Dialog from \"../Dialog/Dialog\";\nimport { DialogAnimationType, DialogTriggerEvent } from \"../Dialog/Dialog.types\";\nimport { HideShowEvent as HideShowEventEnum, AnimationType as AnimationTypeEnum } from \"../Dialog/DialogConstants\";\nimport VibeComponentProps from \"../../types/VibeComponentProps\";\nimport { TooltipTheme as TooltipThemeEnum, TooltipPositions as TooltipPositionsEnum } from \"./TooltipConstants\";\nimport { ElementContent } from \"../../types/ElementContent\";\nimport { MoveBy } from \"../../types/MoveBy\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport styles from \"./Tooltip.module.scss\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport { SubIcon } from \"../../types\";\nimport Icon from \"../Icon/Icon\";\nimport Flex from \"../Flex/Flex\";\nimport { TooltipPositions, TooltipTheme } from \"./Tooltip.types\";\n\nexport type TooltipProps = TooltipBaseProps & (TooltipWithChildrenProps | TooltipWithoutChildrenProps);\n\ninterface TooltipWithoutChildrenProps {\n /**\n * When true, the tooltip would be rendered on a Dialog without children\n * Use case is currently for rendering Tipseen with floating prop\n */\n forceRenderWithoutChildren: boolean;\n children?: ReactElement | Array<ReactElement>;\n}\n\ninterface TooltipWithChildrenProps {\n forceRenderWithoutChildren?: boolean;\n children: ReactElement | Array<ReactElement>;\n}\n\n// TODO TS-migration extend DialogProps, once Dialog is migrated to TS\ninterface TooltipBaseProps extends VibeComponentProps {\n content: ElementContent;\n style?: CSSProperties;\n /** Class name for a tooltip's arrow */\n arrowClassName?: string;\n /**\n * How much to move the dialog in relative to children\n * main is the axis in which the position is aligned to\n * secondary is the vertical axes to the position\n */\n moveBy?: MoveBy;\n theme?: TooltipTheme;\n getContainer?: () => HTMLElement;\n /**\n * how much delay should the Dialog wait until it should trigger the hide in MS\n */\n hideDelay?: number;\n /**\n * how much delay should the Dialog wait until it should trigger the show in MS\n */\n showDelay?: number;\n disableDialogSlide?: boolean;\n animationType?: DialogAnimationType;\n withoutDialog?: boolean;\n /**\n * the container selector in which to append the dialog\n * for examples: \"body\" , \".my-class\", \"#my-id\"\n */\n containerSelector?: string;\n /**\n * With which delay tooltip is going to be shown\n */\n immediateShowDelay?: number;\n /**\n * when false, the arrow of the tooltip is hidden\n */\n tip?: boolean;\n /**\n * Show the Dialog when the children is mounting\n */\n shouldShowOnMount?: boolean;\n hideWhenReferenceHidden?: boolean;\n onTooltipHide?: () => void;\n onTooltipShow?: () => void;\n /**\n * PopperJS Modifiers type\n * https://popper.js.org/docs/v2/modifiers/\n */\n modifiers?: Array<Modifier<unknown>>;\n /**\n * Where the tooltip should be in reference to the children: Top, Left, Right, Bottom ...\n */\n position?: TooltipPositions;\n /**\n * an array of hide/show trigger - Tooltip.hideShowTriggers\n */\n showTrigger?: DialogTriggerEvent | Array<DialogTriggerEvent>;\n /**\n * an array of hide/show trigger - Tooltip.hideShowTriggers\n */\n hideTrigger?: DialogTriggerEvent | Array<DialogTriggerEvent>;\n /**\n * If true, prevents open Tooltip from closing on mouseEnter and closes Tooltip, when mouse leaves it\n */\n showOnDialogEnter?: boolean;\n /**\n * A Classname to be added to <span> element which wraps the children\n */\n referenceWrapperClassName?: string;\n /**\n * Treats keyboard focus/blur events as mouse-enter/mouse-leave events\n */\n addKeyboardHideShowTriggersByDefault?: boolean;\n /**\n * set the state of the tooltip - open/close - controlled component\n */\n open?: boolean;\n /**\n * Overwrites z-index of the tooltip\n */\n zIndex?: number;\n /**\n * The title of the tooltip\n */\n title?: string;\n /**\n * The image of the tooltip\n */\n image?: string;\n /**\n * The icon of the tooltip next to the title\n */\n icon?: SubIcon;\n /**\n * Sets the max width of the Tooltip, defaults to 240px\n */\n maxWidth?: number;\n /**\n * Sets the text direction of the tooltip: \"ltr\", \"rtl\", or \"auto\"\n */\n dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n// When last tooltip was shown in the last 1.5 second - the next tooltip will be shown immediately\nconst IMMEDIATE_SHOW_THRESHOLD_MS = 1500;\n\n// Shared state across multiple tooltip instances (i.e last tooltip shown time)\nconst globalState: { lastTooltipHideTS: number; openTooltipsCount: number } = {\n lastTooltipHideTS: null,\n openTooltipsCount: 0\n};\n\nexport default class Tooltip extends PureComponent<TooltipProps> {\n wasShown: boolean;\n static positions = TooltipPositionsEnum;\n static hideShowTriggers = HideShowEventEnum;\n static themes = TooltipThemeEnum;\n static animationTypes = AnimationTypeEnum;\n static defaultProps = {\n moveBy: { main: 4, secondary: 0 },\n theme: \"dark\",\n position: \"top\",\n hideDelay: 100,\n showDelay: 300,\n disableDialogSlide: true,\n animationType: AnimationTypeEnum.EXPAND,\n withoutDialog: false,\n tip: true,\n hideWhenReferenceHidden: false,\n modifiers: new Array<Modifier<unknown>>(),\n showTrigger: Tooltip.hideShowTriggers.MOUSE_ENTER,\n hideTrigger: Tooltip.hideShowTriggers.MOUSE_LEAVE,\n showOnDialogEnter: true,\n referenceWrapperClassName: \"\",\n addKeyboardHideShowTriggersByDefault: true,\n open: false\n };\n constructor(props: TooltipProps) {\n super(props);\n this.renderTooltipContent = this.renderTooltipContent.bind(this);\n this.getShowDelay = this.getShowDelay.bind(this);\n this.onTooltipShow = this.onTooltipShow.bind(this);\n this.onTooltipHide = this.onTooltipHide.bind(this);\n\n this.wasShown = false;\n }\n\n renderTooltipContent() {\n const { theme, content, className, style, maxWidth, title, image, icon, dir } = this.props;\n if (!content) {\n // don't render empty tooltip\n return null;\n }\n let contentValue;\n if (isFunction(content)) {\n contentValue = content();\n } else if (isValidElement(content)) {\n contentValue = content;\n } else if (typeof content === \"string\" && content) {\n contentValue = content;\n } else if (Array.isArray(content) && content.length > 0) {\n // allow array of elements\n contentValue = content;\n }\n\n if (!contentValue) {\n return null;\n }\n\n return (\n <div\n style={maxWidth ? ({ ...style, \"--tooltip-max-width\": `${maxWidth}px` } as CSSProperties) : style}\n className={cx(styles.tooltip, getStyle(styles, camelCase(theme)), className)}\n dir={dir}\n >\n {image && <img className={styles.image} src={image} alt=\"\" />}\n <div className={cx(styles.content)}>\n {title && (\n <Flex gap=\"xs\">\n {icon && <Icon iconSize=\"20\" icon={icon} />}\n <div className={styles.title}>{title}</div>\n </Flex>\n )}\n {contentValue}\n </div>\n </div>\n );\n }\n\n onTooltipShow() {\n if (!this.wasShown) {\n const { onTooltipShow } = this.props;\n globalState.openTooltipsCount++;\n this.wasShown = true;\n onTooltipShow && onTooltipShow();\n }\n }\n\n onTooltipHide() {\n if (this.wasShown) {\n const { onTooltipHide } = this.props;\n globalState.lastTooltipHideTS = Date.now();\n globalState.openTooltipsCount--;\n this.wasShown = false;\n onTooltipHide && onTooltipHide();\n }\n }\n\n getTimeSinceLastTooltip() {\n if (globalState.openTooltipsCount > 0) {\n return 0;\n }\n return globalState.lastTooltipHideTS ? Date.now() - globalState.lastTooltipHideTS : Infinity;\n }\n\n getShowDelay() {\n const { showDelay, immediateShowDelay } = this.props;\n const timeSinceLastTooltip = this.getTimeSinceLastTooltip();\n if ((immediateShowDelay === 0 || immediateShowDelay) && timeSinceLastTooltip < IMMEDIATE_SHOW_THRESHOLD_MS) {\n // showing the tooltip immediately (without animation)\n return {\n showDelay: immediateShowDelay,\n preventAnimation: true\n };\n }\n return {\n showDelay,\n preventAnimation: false\n };\n }\n\n render() {\n const {\n withoutDialog,\n children,\n forceRenderWithoutChildren,\n theme,\n tip,\n arrowClassName,\n id,\n \"data-testid\": dataTestId,\n position\n } = this.props;\n\n if (!children && !forceRenderWithoutChildren) {\n return null;\n }\n\n if (withoutDialog) {\n return this.renderTooltipContent();\n }\n\n const content = this.renderTooltipContent;\n const dialogProps = {\n ...this.props,\n position: position,\n \"data-testid\": dataTestId || getTestId(ComponentDefaultTestId.TOOLTIP, id),\n tooltip: tip,\n content,\n tooltipClassName: cx(styles.arrow, getStyle(styles, theme), arrowClassName),\n onDialogDidHide: this.onTooltipHide,\n onDialogDidShow: this.onTooltipShow,\n getDynamicShowDelay: this.getShowDelay\n };\n return (\n <Dialog {...dialogProps} animationType=\"expand\">\n {children}\n </Dialog>\n );\n }\n}\n"],"names":["globalState","lastTooltipHideTS","openTooltipsCount","Tooltip","_PureComponent","props","_this","_classCallCheck","_callSuper","renderTooltipContent","bind","getShowDelay","onTooltipShow","onTooltipHide","wasShown","_inherits","PureComponent","_createClass","key","value","contentValue","_this$props","this","theme","content","className","style","maxWidth","title","image","icon","dir","isFunction","isValidElement","Array","isArray","length","React","Object","assign","concat","cx","styles","tooltip","getStyle","camelCase","createElement","src","alt","Flex","gap","Icon","iconSize","Date","now","Infinity","_this$props2","showDelay","immediateShowDelay","timeSinceLastTooltip","getTimeSinceLastTooltip","preventAnimation","_this$props3","children","tip","arrowClassName","id","dataTestId","position","forceRenderWithoutChildren","withoutDialog","dialogProps","getTestId","ComponentDefaultTestId","TOOLTIP","tooltipClassName","arrow","onDialogDidHide","onDialogDidShow","getDynamicShowDelay","Dialog","animationType","positions","TooltipPositionsEnum","hideShowTriggers","HideShowEventEnum","themes","TooltipThemeEnum","animationTypes","AnimationTypeEnum","defaultProps","moveBy","main","secondary","hideDelay","disableDialogSlide","EXPAND","hideWhenReferenceHidden","modifiers","showTrigger","MOUSE_ENTER","hideTrigger","MOUSE_LEAVE","showOnDialogEnter","referenceWrapperClassName","addKeyboardHideShowTriggersByDefault","open"],"mappings":"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"}
1
+ {"version":3,"file":"Tooltip.js","sources":["../../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport { camelCase, isFunction } from \"lodash-es\";\nimport cx from \"classnames\";\nimport React, { CSSProperties, isValidElement, PureComponent, ReactElement } from \"react\";\nimport { Modifier } from \"react-popper\";\nimport Dialog from \"../Dialog/Dialog\";\nimport { DialogAnimationType, DialogTriggerEvent } from \"../Dialog/Dialog.types\";\nimport { HideShowEvent as HideShowEventEnum, AnimationType as AnimationTypeEnum } from \"../Dialog/DialogConstants\";\nimport VibeComponentProps from \"../../types/VibeComponentProps\";\nimport { TooltipTheme as TooltipThemeEnum, TooltipPositions as TooltipPositionsEnum } from \"./TooltipConstants\";\nimport { ElementContent } from \"../../types/ElementContent\";\nimport { MoveBy } from \"../../types/MoveBy\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport styles from \"./Tooltip.module.scss\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport { SubIcon } from \"../../types\";\nimport Icon from \"../Icon/Icon\";\nimport Flex from \"../Flex/Flex\";\nimport { TooltipPositions, TooltipTheme } from \"./Tooltip.types\";\n\nexport type TooltipProps = TooltipBaseProps & (TooltipWithChildrenProps | TooltipWithoutChildrenProps);\n\ninterface TooltipWithoutChildrenProps {\n /**\n * If true, the tooltip will be rendered even if there are no children.\n */\n forceRenderWithoutChildren: boolean;\n /**\n * The children elements that the tooltip is attached to.\n */\n children?: ReactElement | Array<ReactElement>;\n}\n\ninterface TooltipWithChildrenProps {\n /**\n * If true, the tooltip will be rendered even if there are no children.\n */\n forceRenderWithoutChildren?: boolean;\n /**\n * The children elements that the tooltip is attached to.\n */\n children: ReactElement | Array<ReactElement>;\n}\n\n// TODO TS-migration extend DialogProps, once Dialog is migrated to TS\ninterface TooltipBaseProps extends VibeComponentProps {\n /**\n * The content displayed inside the tooltip.\n */\n content: ElementContent;\n /**\n * Inline styles applied to the tooltip container.\n */\n style?: CSSProperties;\n /**\n * Class name applied to the tooltip arrow.\n */\n arrowClassName?: string;\n /**\n * Offset values for positioning adjustments.\n */\n moveBy?: MoveBy;\n /**\n * The theme of the tooltip.\n */\n theme?: TooltipTheme;\n /**\n * Function to get the container where the tooltip should be rendered.\n */\n getContainer?: () => HTMLElement;\n /**\n * Delay in milliseconds before hiding the tooltip.\n */\n hideDelay?: number;\n /**\n * Delay in milliseconds before showing the tooltip.\n */\n showDelay?: number;\n /**\n * If true, disables the slide animation of the tooltip.\n */\n disableDialogSlide?: boolean;\n /**\n * The animation type used for showing/hiding the tooltip.\n */\n animationType?: DialogAnimationType;\n /**\n * If true, renders the tooltip without a dialog.\n */\n withoutDialog?: boolean;\n /**\n * The CSS selector of the container where the tooltip should be rendered.\n */\n containerSelector?: string;\n /**\n * Delay in milliseconds before showing the tooltip immediately.\n */\n immediateShowDelay?: number;\n /**\n * If false, hides the arrow of the tooltip.\n */\n tip?: boolean;\n /**\n * If true, the tooltip is shown when the component mounts.\n */\n shouldShowOnMount?: boolean;\n /**\n * If true, hides the tooltip when the reference element is hidden.\n */\n hideWhenReferenceHidden?: boolean;\n /**\n * Callback fired when the tooltip is hidden.\n */\n onTooltipHide?: () => void;\n /**\n * Callback fired when the tooltip is shown.\n */\n onTooltipShow?: () => void;\n /**\n * Custom Popper.js modifiers.\n * https://popper.js.org/docs/v2/modifiers/\n */\n modifiers?: Array<Modifier<unknown>>;\n /**\n * The placement of the tooltip relative to the reference element.\n */\n position?: TooltipPositions;\n /**\n * Events that trigger showing the tooltip.\n */\n showTrigger?: DialogTriggerEvent | Array<DialogTriggerEvent>;\n /**\n * Events that trigger hiding the tooltip.\n */\n hideTrigger?: DialogTriggerEvent | Array<DialogTriggerEvent>;\n /**\n * If true, prevents closing the tooltip when the mouse enters it.\n */\n showOnDialogEnter?: boolean;\n /**\n * Class name applied to the reference wrapper element.\n */\n referenceWrapperClassName?: string;\n /**\n * If true, keyboard focus/blur events behave like mouse enter/leave.\n */\n addKeyboardHideShowTriggersByDefault?: boolean;\n /**\n * If true, controls the open state of the tooltip.\n */\n open?: boolean;\n /**\n * The z-index applied to the tooltip.\n */\n zIndex?: number;\n /**\n * The title of the tooltip.\n */\n title?: string;\n /**\n * The image displayed inside the tooltip.\n */\n image?: string;\n /**\n * The icon displayed next to the title.\n */\n icon?: SubIcon;\n /**\n * The maximum width of the tooltip.\n */\n maxWidth?: number;\n /**\n * The text direction of the tooltip: \"ltr\", \"rtl\", or \"auto\".\n */\n dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n// When last tooltip was shown in the last 1.5 second - the next tooltip will be shown immediately\nconst IMMEDIATE_SHOW_THRESHOLD_MS = 1500;\n\n// Shared state across multiple tooltip instances (i.e last tooltip shown time)\nconst globalState: { lastTooltipHideTS: number; openTooltipsCount: number } = {\n lastTooltipHideTS: null,\n openTooltipsCount: 0\n};\n\nexport default class Tooltip extends PureComponent<TooltipProps> {\n wasShown: boolean;\n static positions = TooltipPositionsEnum;\n static hideShowTriggers = HideShowEventEnum;\n static themes = TooltipThemeEnum;\n static animationTypes = AnimationTypeEnum;\n static defaultProps = {\n moveBy: { main: 4, secondary: 0 },\n theme: \"dark\",\n position: \"top\",\n hideDelay: 100,\n showDelay: 300,\n disableDialogSlide: true,\n animationType: AnimationTypeEnum.EXPAND,\n withoutDialog: false,\n tip: true,\n hideWhenReferenceHidden: false,\n modifiers: new Array<Modifier<unknown>>(),\n showTrigger: Tooltip.hideShowTriggers.MOUSE_ENTER,\n hideTrigger: Tooltip.hideShowTriggers.MOUSE_LEAVE,\n showOnDialogEnter: true,\n referenceWrapperClassName: \"\",\n addKeyboardHideShowTriggersByDefault: true,\n open: false\n };\n constructor(props: TooltipProps) {\n super(props);\n this.renderTooltipContent = this.renderTooltipContent.bind(this);\n this.getShowDelay = this.getShowDelay.bind(this);\n this.onTooltipShow = this.onTooltipShow.bind(this);\n this.onTooltipHide = this.onTooltipHide.bind(this);\n\n this.wasShown = false;\n }\n\n renderTooltipContent() {\n const { theme, content, className, style, maxWidth, title, image, icon, dir } = this.props;\n if (!content) {\n // don't render empty tooltip\n return null;\n }\n let contentValue;\n if (isFunction(content)) {\n contentValue = content();\n } else if (isValidElement(content)) {\n contentValue = content;\n } else if (typeof content === \"string\" && content) {\n contentValue = content;\n } else if (Array.isArray(content) && content.length > 0) {\n // allow array of elements\n contentValue = content;\n }\n\n if (!contentValue) {\n return null;\n }\n\n return (\n <div\n style={maxWidth ? ({ ...style, \"--tooltip-max-width\": `${maxWidth}px` } as CSSProperties) : style}\n className={cx(styles.tooltip, getStyle(styles, camelCase(theme)), className)}\n dir={dir}\n >\n {image && <img className={styles.image} src={image} alt=\"\" />}\n <div className={cx(styles.content)}>\n {title && (\n <Flex gap=\"xs\">\n {icon && <Icon iconSize=\"20\" icon={icon} />}\n <div className={styles.title}>{title}</div>\n </Flex>\n )}\n {contentValue}\n </div>\n </div>\n );\n }\n\n onTooltipShow() {\n if (!this.wasShown) {\n const { onTooltipShow } = this.props;\n globalState.openTooltipsCount++;\n this.wasShown = true;\n onTooltipShow && onTooltipShow();\n }\n }\n\n onTooltipHide() {\n if (this.wasShown) {\n const { onTooltipHide } = this.props;\n globalState.lastTooltipHideTS = Date.now();\n globalState.openTooltipsCount--;\n this.wasShown = false;\n onTooltipHide && onTooltipHide();\n }\n }\n\n getTimeSinceLastTooltip() {\n if (globalState.openTooltipsCount > 0) {\n return 0;\n }\n return globalState.lastTooltipHideTS ? Date.now() - globalState.lastTooltipHideTS : Infinity;\n }\n\n getShowDelay() {\n const { showDelay, immediateShowDelay } = this.props;\n const timeSinceLastTooltip = this.getTimeSinceLastTooltip();\n if ((immediateShowDelay === 0 || immediateShowDelay) && timeSinceLastTooltip < IMMEDIATE_SHOW_THRESHOLD_MS) {\n // showing the tooltip immediately (without animation)\n return {\n showDelay: immediateShowDelay,\n preventAnimation: true\n };\n }\n return {\n showDelay,\n preventAnimation: false\n };\n }\n\n render() {\n const {\n withoutDialog,\n children,\n forceRenderWithoutChildren,\n theme,\n tip,\n arrowClassName,\n id,\n \"data-testid\": dataTestId,\n position\n } = this.props;\n\n if (!children && !forceRenderWithoutChildren) {\n return null;\n }\n\n if (withoutDialog) {\n return this.renderTooltipContent();\n }\n\n const content = this.renderTooltipContent;\n const dialogProps = {\n ...this.props,\n position: position,\n \"data-testid\": dataTestId || getTestId(ComponentDefaultTestId.TOOLTIP, id),\n tooltip: tip,\n content,\n tooltipClassName: cx(styles.arrow, getStyle(styles, theme), arrowClassName),\n onDialogDidHide: this.onTooltipHide,\n onDialogDidShow: this.onTooltipShow,\n getDynamicShowDelay: this.getShowDelay\n };\n return (\n <Dialog {...dialogProps} animationType=\"expand\">\n {children}\n </Dialog>\n );\n }\n}\n"],"names":["globalState","lastTooltipHideTS","openTooltipsCount","Tooltip","_PureComponent","props","_this","_classCallCheck","_callSuper","renderTooltipContent","bind","getShowDelay","onTooltipShow","onTooltipHide","wasShown","_inherits","PureComponent","_createClass","key","value","contentValue","_this$props","this","theme","content","className","style","maxWidth","title","image","icon","dir","isFunction","isValidElement","Array","isArray","length","React","Object","assign","concat","cx","styles","tooltip","getStyle","camelCase","createElement","src","alt","Flex","gap","Icon","iconSize","Date","now","Infinity","_this$props2","showDelay","immediateShowDelay","timeSinceLastTooltip","getTimeSinceLastTooltip","preventAnimation","_this$props3","children","tip","arrowClassName","id","dataTestId","position","forceRenderWithoutChildren","withoutDialog","dialogProps","getTestId","ComponentDefaultTestId","TOOLTIP","tooltipClassName","arrow","onDialogDidHide","onDialogDidShow","getDynamicShowDelay","Dialog","animationType","positions","TooltipPositionsEnum","hideShowTriggers","HideShowEventEnum","themes","TooltipThemeEnum","animationTypes","AnimationTypeEnum","defaultProps","moveBy","main","secondary","hideDelay","disableDialogSlide","EXPAND","hideWhenReferenceHidden","modifiers","showTrigger","MOUSE_ENTER","hideTrigger","MOUSE_LEAVE","showOnDialogEnter","referenceWrapperClassName","addKeyboardHideShowTriggersByDefault","open"],"mappings":"osBAiLA,IAGMA,EAAwE,CAC5EC,kBAAmB,KACnBC,kBAAmB,GAGAC,WAAQC,GAyB3B,SAAAD,EAAYE,GAAmB,IAAAC,EAOP,OAPOC,OAAAJ,IAC7BG,EAAAE,EAAAL,KAAAA,GAAME,KACDI,qBAAuBH,EAAKG,qBAAqBC,KAAIJ,GAC1DA,EAAKK,aAAeL,EAAKK,aAAaD,KAAIJ,GAC1CA,EAAKM,cAAgBN,EAAKM,cAAcF,KAAIJ,GAC5CA,EAAKO,cAAgBP,EAAKO,cAAcH,KAAIJ,GAE5CA,EAAKQ,UAAW,EAAMR,CACxB,CAAC,OAAAS,EAAAZ,EAjCkCa,GAiClCC,EAAAd,EAAA,CAAA,CAAAe,IAAA,uBAAAC,MAED,WACE,IAKIC,EALJC,EAAgFC,KAAKjB,MAA7EkB,EAAKF,EAALE,MAAOC,EAAOH,EAAPG,QAASC,EAASJ,EAATI,UAAWC,EAAKL,EAALK,MAAOC,EAAQN,EAARM,SAAUC,EAAKP,EAALO,MAAOC,EAAKR,EAALQ,MAAOC,EAAIT,EAAJS,KAAMC,EAAGV,EAAHU,IACxE,OAAKP,GAKDQ,EAAWR,GACbJ,EAAeI,KACNS,EAAeT,IAEI,iBAAZA,GAAwBA,GAE/BU,MAAMC,QAAQX,IAAYA,EAAQY,OAAS,KAHpDhB,EAAeI,GAQZJ,EAKHiB,uBACEX,MAAOC,EAAYW,OAAKC,OAAAD,OAAAC,OAAA,CAAA,EAAAb,IAAO,sBAAqB,GAAAc,OAAKb,EAAQ,QAA2BD,EAC5FD,UAAWgB,EAAGC,EAAOC,QAASC,EAASF,EAAQG,EAAUtB,IAASE,GAClEM,IAAKA,GAEJF,GAASQ,EAAAS,cAAA,MAAA,CAAKrB,UAAWiB,EAAOb,MAAOkB,IAAKlB,EAAOmB,IAAI,KACxDX,EAAAS,cAAA,MAAA,CAAKrB,UAAWgB,EAAGC,EAAOlB,UACvBI,GACCS,EAAAS,cAACG,EAAK,CAAAC,IAAI,MACPpB,GAAQO,EAACS,cAAAK,EAAK,CAAAC,SAAS,KAAKtB,KAAMA,IACnCO,EAAKS,cAAA,MAAA,CAAArB,UAAWiB,EAAOd,OAAQA,IAGlCR,IAjBE,MAfA,IAoCX,GAAC,CAAAF,IAAA,gBAAAC,MAED,WACE,IAAKG,KAAKR,SAAU,CAClB,IAAQF,EAAkBU,KAAKjB,MAAvBO,cACRZ,EAAYE,oBACZoB,KAAKR,UAAW,EAChBF,GAAiBA,GAClB,CACH,GAAC,CAAAM,IAAA,gBAAAC,MAED,WACE,GAAIG,KAAKR,SAAU,CACjB,IAAQD,EAAkBS,KAAKjB,MAAvBQ,cACRb,EAAYC,kBAAoBoD,KAAKC,MACrCtD,EAAYE,oBACZoB,KAAKR,UAAW,EAChBD,GAAiBA,GAClB,CACH,GAAC,CAAAK,IAAA,0BAAAC,MAED,WACE,OAAInB,EAAYE,kBAAoB,EAC3B,EAEFF,EAAYC,kBAAoBoD,KAAKC,MAAQtD,EAAYC,kBAAoBsD,GACtF,GAAC,CAAArC,IAAA,eAAAC,MAED,WACE,IAAAqC,EAA0ClC,KAAKjB,MAAvCoD,EAASD,EAATC,UAAWC,EAAkBF,EAAlBE,mBACbC,EAAuBrC,KAAKsC,0BAClC,OAA4B,IAAvBF,GAA4BA,IAlHD,KAkHwBC,EAE/C,CACLF,UAAWC,EACXG,kBAAkB,GAGf,CACLJ,UAAAA,EACAI,kBAAkB,EAEtB,GAAC,CAAA3C,IAAA,SAAAC,MAED,WACE,IAAA2C,EAUIxC,KAAKjB,MARP0D,EAAQD,EAARC,SAEAxC,EAAKuC,EAALvC,MACAyC,EAAGF,EAAHE,IACAC,EAAcH,EAAdG,eACAC,EAAEJ,EAAFI,GACeC,EAAUL,EAAzB,eACAM,EAAQN,EAARM,SAGF,IAAKL,IATuBD,EAA1BO,2BAUA,OAAO,KAGT,GAfeP,EAAbQ,cAgBA,OAAOhD,KAAKb,uBAGd,IAAMe,EAAUF,KAAKb,qBACf8D,EAAWjC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACZjB,KAAKjB,OAAK,CACb+D,SAAUA,EACV,cAAeD,GAAcK,EAAUC,EAAuBC,QAASR,GACvEvB,QAASqB,EACTxC,QAAAA,EACAmD,iBAAkBlC,EAAGC,EAAOkC,MAAOhC,EAASF,EAAQnB,GAAQ0C,GAC5DY,gBAAiBvD,KAAKT,cACtBiE,gBAAiBxD,KAAKV,cACtBmE,oBAAqBzD,KAAKX,eAE5B,OACE0B,EAAAS,cAACkC,EAAM1C,OAAAC,OAAA,CAAA,EAAKgC,EAAW,CAAEU,cAAc,WACpClB,EAGP,IAAC,IA3JM5D,EAAS+E,UAAGC,EACZhF,EAAgBiF,iBAAGC,EACnBlF,EAAMmF,OAAGC,EACTpF,EAAcqF,eAAGC,EACjBtF,EAAAuF,aAAe,CACpBC,OAAQ,CAAEC,KAAM,EAAGC,UAAW,GAC9BtE,MAAO,OACP6C,SAAU,MACV0B,UAAW,IACXrC,UAAW,IACXsC,oBAAoB,EACpBd,cAAeQ,EAAkBO,OACjC1B,eAAe,EACfN,KAAK,EACLiC,yBAAyB,EACzBC,UAAW,GACXC,YAAahG,EAAQiF,iBAAiBgB,YACtCC,YAAalG,EAAQiF,iBAAiBkB,YACtCC,mBAAmB,EACnBC,0BAA2B,GAC3BC,sCAAsC,EACtCC,MAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"Typography.js","sources":["../../../../../src/components/Typography/Typography.tsx"],"sourcesContent":["import React, { forwardRef, useRef, HTMLAttributes, useContext } from \"react\";\nimport cx from \"classnames\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport VibeComponentProps from \"../../types/VibeComponentProps\";\nimport VibeComponent from \"../../types/VibeComponent\";\nimport { getTestId } from \"../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../tests/constants\";\nimport { ElementContent } from \"../../types\";\nimport { TypographyAlign, TypographyColor } from \"./Typography.types\";\nimport { useEllipsisClass, useTooltipProps } from \"./TypographyHooks\";\nimport Tooltip, { TooltipProps } from \"../Tooltip/Tooltip\";\nimport { TypographyContext } from \"./utils/TypographyContext\";\nimport styles from \"./Typography.module.scss\";\n\nexport interface TypographyProps extends VibeComponentProps, HTMLAttributes<HTMLElement> {\n /**\n * The element tag of the text component\n */\n element?: string;\n /**\n * The textual content\n */\n children: ElementContent;\n color?: TypographyColor;\n align?: TypographyAlign;\n /**\n * When the text is too long, cut the end of the text and display instead of it three dots (...)\n */\n ellipsis?: boolean;\n /**\n * Use this prop combined with the boolean ellipsis prop for truncate the text and add an ellipsis after a certain number of lines\n */\n maxLines?: number;\n /**\n * All props are passed to the tooltip displayed when hovering over the text. By default, the tooltip will display when text contains an ellipsis and will show the full text\n */\n tooltipProps?: Partial<TooltipProps>;\n /**\n * Hide tooltip when hovering the text, by default the tooltip swill display when text contains an ellipsis\n */\n withoutTooltip?: boolean;\n}\n\nconst Typography: VibeComponent<TypographyProps, HTMLElement> = forwardRef(\n (\n {\n className,\n id,\n children,\n tooltipProps,\n \"data-testid\": dataTestId = getTestId(ComponentDefaultTestId.TEXT, id),\n element = \"span\",\n color = \"primary\",\n align = \"start\",\n ellipsis = true,\n maxLines = 1,\n withoutTooltip = false,\n role,\n ...htmlAttributes\n }: TypographyProps,\n ref\n ) => {\n const { overflowTolerance } = useContext(TypographyContext);\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n const ignoreHeightOverflow = maxLines === 1;\n const { class: ellipsisClass, style: ellipsisStyle } = useEllipsisClass(ellipsis, maxLines);\n const overrideTooltipProps = useTooltipProps(\n componentRef,\n withoutTooltip,\n ellipsis,\n tooltipProps,\n children,\n ignoreHeightOverflow,\n overflowTolerance\n ) as TooltipProps;\n\n const overrideAlign = align === \"inherit\" ? \"alignInherit\" : align;\n\n return (\n <Tooltip {...overrideTooltipProps}>\n {React.createElement(\n element,\n {\n id,\n style: ellipsisStyle,\n \"data-testid\": dataTestId,\n className: cx(styles.typography, styles[color], styles[overrideAlign], ellipsisClass, className),\n ref: mergedRef,\n role,\n ...htmlAttributes\n },\n children\n )}\n </Tooltip>\n );\n }\n);\n\nexport default Typography;\n"],"names":["Typography","forwardRef","_a","ref","className","id","children","tooltipProps","_a$dataTestid","dataTestId","getTestId","ComponentDefaultTestId","TEXT","_a$element","element","_a$color","color","_a$align","align","_a$ellipsis","ellipsis","_a$maxLines","maxLines","_a$withoutTooltip","withoutTooltip","role","htmlAttributes","__rest","overflowTolerance","useContext","TypographyContext","componentRef","useRef","mergedRef","useMergeRef","ignoreHeightOverflow","_useEllipsisClass","useEllipsisClass","ellipsisClass","class","ellipsisStyle","style","overrideTooltipProps","useTooltipProps","overrideAlign","React","createElement","Tooltip","Object","assign","cx","styles","typography"],"mappings":"8gBA2CMA,IAAAA,EAA0DC,GAC9D,SACEC,EAeAC,OAdEC,IAAAA,UACAC,IAAAA,GACAC,IAAAA,SACAC,IAAAA,aAAYC,IACZ,eAAeC,OAAaC,IAAHF,EAAGE,EAAUC,EAAuBC,KAAMP,GAAGG,EAAAK,IACtEC,QAAAA,OAAU,IAAHD,EAAG,OAAMA,EAAAE,IAChBC,MAAAA,OAAQ,IAAHD,EAAG,UAASA,EAAAE,IACjBC,MAAAA,OAAQ,IAAHD,EAAG,QAAOA,EAAAE,IACfC,SAAAA,OAAW,IAAHD,GAAOA,EAAAE,IACfC,SAAAA,OAAW,IAAHD,EAAG,EAACA,EAAAE,IACZC,eAAAA,OAAiB,IAAHD,GAAQA,EACtBE,IAAAA,KACGC,EAbLC,EAAAzB,EAAA,CAAA,YAAA,KAAA,WAAA,eAAA,cAAA,UAAA,QAAA,QAAA,WAAA,WAAA,iBAAA,SAiBQ0B,EAAsBC,EAAWC,GAAjCF,kBACFG,EAAeC,EAAO,MACtBC,EAAYC,EAAY/B,EAAK4B,GAC7BI,EAAoC,IAAbb,EAC7Bc,EAAuDC,EAAiBjB,EAAUE,GAAnEgB,EAAaF,EAApBG,MAA6BC,EAAaJ,EAApBK,MACxBC,EAAuBC,EAC3BZ,EACAP,EACAJ,EACAb,EACAD,EACA6B,EACAP,GAGIgB,EAA0B,YAAV1B,EAAsB,eAAiBA,EAE7D,OACE2B,EAACC,cAAAC,EAAYC,OAAAC,OAAA,CAAA,EAAAP,GACVG,EAAMC,cACLhC,EAEEkC,OAAAC,OAAA,CAAA5C,GAAAA,EACAoC,MAAOD,EACP,cAAe/B,EACfL,UAAW8C,EAAGC,EAAOC,WAAYD,EAAOnC,GAAQmC,EAAOP,GAAgBN,EAAelC,GACtFD,IAAK8B,EACLR,KAAAA,GACGC,GAELpB,GAIR"}
1
+ {"version":3,"file":"Typography.js","sources":["../../../../../src/components/Typography/Typography.tsx"],"sourcesContent":["import React, { forwardRef, useRef, HTMLAttributes, useContext } from \"react\";\nimport cx from \"classnames\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport VibeComponentProps from \"../../types/VibeComponentProps\";\nimport VibeComponent from \"../../types/VibeComponent\";\nimport { getTestId } from \"../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../tests/constants\";\nimport { ElementContent } from \"../../types\";\nimport { TypographyAlign, TypographyColor } from \"./Typography.types\";\nimport { useEllipsisClass, useTooltipProps } from \"./TypographyHooks\";\nimport Tooltip, { TooltipProps } from \"../Tooltip/Tooltip\";\nimport { TypographyContext } from \"./utils/TypographyContext\";\nimport styles from \"./Typography.module.scss\";\n\nexport interface TypographyProps extends VibeComponentProps, HTMLAttributes<HTMLElement> {\n /**\n * The HTML element tag used for the text component.\n */\n element?: string;\n /**\n * The content inside the typography component.\n */\n children: ElementContent;\n /**\n * The text color.\n */\n color?: TypographyColor;\n /**\n * The text alignment.\n */\n align?: TypographyAlign;\n /**\n * If true, truncates overflowing text with an ellipsis.\n */\n ellipsis?: boolean;\n /**\n * The maximum number of lines before truncating with an ellipsis.\n */\n maxLines?: number;\n /**\n * Props passed to the tooltip displayed when hovering over the text.\n */\n tooltipProps?: Partial<TooltipProps>;\n /**\n * If true, disables the tooltip that appears when text is truncated.\n */\n withoutTooltip?: boolean;\n}\n\nconst Typography: VibeComponent<TypographyProps, HTMLElement> = forwardRef(\n (\n {\n className,\n id,\n children,\n tooltipProps,\n \"data-testid\": dataTestId = getTestId(ComponentDefaultTestId.TEXT, id),\n element = \"span\",\n color = \"primary\",\n align = \"start\",\n ellipsis = true,\n maxLines = 1,\n withoutTooltip = false,\n role,\n ...htmlAttributes\n }: TypographyProps,\n ref\n ) => {\n const { overflowTolerance } = useContext(TypographyContext);\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n const ignoreHeightOverflow = maxLines === 1;\n const { class: ellipsisClass, style: ellipsisStyle } = useEllipsisClass(ellipsis, maxLines);\n const overrideTooltipProps = useTooltipProps(\n componentRef,\n withoutTooltip,\n ellipsis,\n tooltipProps,\n children,\n ignoreHeightOverflow,\n overflowTolerance\n ) as TooltipProps;\n\n const overrideAlign = align === \"inherit\" ? \"alignInherit\" : align;\n\n return (\n <Tooltip {...overrideTooltipProps}>\n {React.createElement(\n element,\n {\n id,\n style: ellipsisStyle,\n \"data-testid\": dataTestId,\n className: cx(styles.typography, styles[color], styles[overrideAlign], ellipsisClass, className),\n ref: mergedRef,\n role,\n ...htmlAttributes\n },\n children\n )}\n </Tooltip>\n );\n }\n);\n\nexport default Typography;\n"],"names":["Typography","forwardRef","_a","ref","className","id","children","tooltipProps","_a$dataTestid","dataTestId","getTestId","ComponentDefaultTestId","TEXT","_a$element","element","_a$color","color","_a$align","align","_a$ellipsis","ellipsis","_a$maxLines","maxLines","_a$withoutTooltip","withoutTooltip","role","htmlAttributes","__rest","overflowTolerance","useContext","TypographyContext","componentRef","useRef","mergedRef","useMergeRef","ignoreHeightOverflow","_useEllipsisClass","useEllipsisClass","ellipsisClass","class","ellipsisStyle","style","overrideTooltipProps","useTooltipProps","overrideAlign","React","createElement","Tooltip","Object","assign","cx","styles","typography"],"mappings":"8gBAiDMA,IAAAA,EAA0DC,GAC9D,SACEC,EAeAC,OAdEC,IAAAA,UACAC,IAAAA,GACAC,IAAAA,SACAC,IAAAA,aAAYC,IACZ,eAAeC,OAAaC,IAAHF,EAAGE,EAAUC,EAAuBC,KAAMP,GAAGG,EAAAK,IACtEC,QAAAA,OAAU,IAAHD,EAAG,OAAMA,EAAAE,IAChBC,MAAAA,OAAQ,IAAHD,EAAG,UAASA,EAAAE,IACjBC,MAAAA,OAAQ,IAAHD,EAAG,QAAOA,EAAAE,IACfC,SAAAA,OAAW,IAAHD,GAAOA,EAAAE,IACfC,SAAAA,OAAW,IAAHD,EAAG,EAACA,EAAAE,IACZC,eAAAA,OAAiB,IAAHD,GAAQA,EACtBE,IAAAA,KACGC,EAbLC,EAAAzB,EAAA,CAAA,YAAA,KAAA,WAAA,eAAA,cAAA,UAAA,QAAA,QAAA,WAAA,WAAA,iBAAA,SAiBQ0B,EAAsBC,EAAWC,GAAjCF,kBACFG,EAAeC,EAAO,MACtBC,EAAYC,EAAY/B,EAAK4B,GAC7BI,EAAoC,IAAbb,EAC7Bc,EAAuDC,EAAiBjB,EAAUE,GAAnEgB,EAAaF,EAApBG,MAA6BC,EAAaJ,EAApBK,MACxBC,EAAuBC,EAC3BZ,EACAP,EACAJ,EACAb,EACAD,EACA6B,EACAP,GAGIgB,EAA0B,YAAV1B,EAAsB,eAAiBA,EAE7D,OACE2B,EAACC,cAAAC,EAAYC,OAAAC,OAAA,CAAA,EAAAP,GACVG,EAAMC,cACLhC,EAEEkC,OAAAC,OAAA,CAAA5C,GAAAA,EACAoC,MAAOD,EACP,cAAe/B,EACfL,UAAW8C,EAAGC,EAAOC,WAAYD,EAAOnC,GAAQmC,EAAOP,GAAgBN,EAAelC,GACtFD,IAAK8B,EACLR,KAAAA,GACGC,GAELpB,GAIR"}
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualizedGrid.js","sources":["../../../../../src/components/VirtualizedGrid/VirtualizedGrid.tsx"],"sourcesContent":["import React, { CSSProperties, forwardRef, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport cx from \"classnames\";\nimport {\n GridChildComponentProps,\n GridOnScrollProps,\n ScrollDirection,\n VariableSizeGrid as Grid,\n GridOnItemsRenderedProps\n} from \"react-window\";\nimport AutoSizer from \"react-virtualized-auto-sizer\";\nimport {\n getNormalizedItems,\n getOnItemsRenderedData,\n isLayoutDirectionScrollbarVisible\n} from \"../../services/virtualized-service\";\nimport usePrevious from \"../../hooks/usePrevious\";\nimport useThrottledCallback from \"../../hooks/useThrottledCallback\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport VibeComponentProps from \"src/types/VibeComponentProps\";\nimport { VibeComponent } from \"../../types\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport styles from \"./VirtualizedGrid.module.scss\";\nimport { VirtualizedGridItemType as ItemType } from \"./VirtualizedGrid.types\";\n\nexport interface VirtualizedGridProps extends VibeComponentProps {\n /**\n * A list of items to be rendered\n * {\n * item: ItemType,\n * index: number,\n * style: CSSProperties\n * }[]\n */\n items: ItemType[];\n /**\n * item render function\n * returns `JSX.Element`\n */\n itemRenderer: (item: ItemType, index: number, style: CSSProperties) => ItemType | GridChildComponentProps<ItemType>;\n /**\n * in order to calculate the number of rows to render in the grid, the component needs the height of the row\n * return `number`\n */\n getRowHeight: () => number;\n /**\n * in order to calculate the number of columns to render in the grid, the component needs the width of the column\n * return `number`\n */\n getColumnWidth: () => number;\n /**\n * returns Id of an items\n * returns `string`\n */\n getItemId?: (item: ItemType, index: number) => string;\n /**\n * index of the item to scroll to\n */\n scrollToId?: number;\n onScroll?: (horizontalScrollDirection: ScrollDirection, scrollTop: number, scrollUpdateWasRequested: boolean) => void;\n /**\n * callback to be called when the scroll is finished\n */\n onScrollToFinished?: () => void;\n /**\n * a callback that is being called when the items are rendered\n */\n onItemsRendered?: ({\n firstItemId,\n secondItemId,\n lastItemId,\n centerItemId,\n firstItemOffsetEnd,\n currentOffsetTop\n }: {\n firstItemId: string;\n secondItemId: string;\n lastItemId: string;\n centerItemId: string;\n firstItemOffsetEnd: number;\n currentOffsetTop: number;\n }) => void;\n onItemsRenderedThrottleMs?: number;\n /**\n * when the grid size changes\n */\n onSizeUpdate?: (width: number, height: number) => void;\n onVerticalScrollbarVisiblityChange?: (value: boolean) => void;\n /**\n * class name to add to the component scrollable container\n */\n scrollableClassName?: string;\n}\n\nconst VirtualizedGrid: VibeComponent<VirtualizedGridProps> = forwardRef(\n (\n {\n className,\n id,\n items = [],\n itemRenderer = (item: ItemType, _index: number, _style: CSSProperties) => item,\n getRowHeight = () => 50,\n getColumnWidth = () => 100,\n getItemId = (item: ItemType, _index: number) => item.id,\n onScroll,\n scrollToId = null,\n onScrollToFinished = NOOP,\n onItemsRendered = null,\n onItemsRenderedThrottleMs = 200,\n onSizeUpdate = NOOP,\n onVerticalScrollbarVisiblityChange = null,\n scrollableClassName,\n \"data-testid\": dataTestId\n }: VirtualizedGridProps,\n ref\n ) => {\n // states\n const [gridHeight, setGridHeight] = useState(0);\n const [gridWidth, setGridWidth] = useState(0);\n\n // prevs\n const prevScrollToId = usePrevious(scrollToId);\n\n // Refs\n const componentRef = useRef(null);\n const isVerticalScrollbarVisibleRef = useRef(null);\n const gridRef = useRef(null);\n const scrollTopRef = useRef(0);\n const animationDataRef = useRef({\n scrollOffsetInitial: 0,\n scrollOffsetFinal: 0,\n animationStartTime: 0\n });\n const mergedRef = useMergeRef(ref, componentRef);\n\n const animationData = animationDataRef.current;\n\n // Callbacks\n const heightGetter = useCallback(\n (item: ItemType) => {\n const height = getRowHeight();\n if (!height || Number.isNaN(height)) {\n console.error(\"Couldn't get height for item: \", item);\n }\n return height;\n },\n [getRowHeight]\n );\n\n const idGetter = useCallback(\n (item: ItemType, index: number) => {\n const itemId = getItemId(item, index);\n if (itemId === undefined) {\n console.error(\"Couldn't get id for item: \", item);\n }\n return itemId;\n },\n [getItemId]\n );\n\n // Memos\n // Creates object of itemId => { item, index, height, offsetTop}\n const normalizedItems = useMemo(() => {\n return getNormalizedItems(items, idGetter, heightGetter);\n }, [items, idGetter, heightGetter]);\n\n const calcColumnCount = useMemo(() => {\n return Math.min(items.length, Math.floor(gridWidth / getColumnWidth()));\n }, [items, gridWidth, getColumnWidth]);\n\n const calcRowCount = useMemo(() => {\n return calcColumnCount > 0 ? Math.ceil(items.length / calcColumnCount) : 0;\n }, [items, calcColumnCount]);\n\n const scrollToColumnIndex = useMemo(() => {\n return scrollToId % calcColumnCount;\n }, [scrollToId, calcColumnCount]);\n\n const scrollToRowIndex = useMemo(() => {\n return Math.floor(scrollToId / calcColumnCount);\n }, [scrollToId, calcColumnCount]);\n\n // Callbacks\n const onScrollCB = useCallback(\n ({ horizontalScrollDirection, scrollTop, scrollUpdateWasRequested }: GridOnScrollProps) => {\n scrollTopRef.current = scrollTop;\n if (!scrollUpdateWasRequested) {\n animationData.scrollOffsetInitial = scrollTop;\n }\n onScroll && onScroll(horizontalScrollDirection, scrollTop, scrollUpdateWasRequested);\n },\n [onScroll, scrollTopRef, animationData]\n );\n\n const cellRenderer = useCallback(\n ({ columnIndex, rowIndex, style }: { columnIndex: number; rowIndex: number; style: CSSProperties }) => {\n const index = rowIndex * calcColumnCount + columnIndex;\n const item = items[index];\n return itemRenderer(item, index, style);\n },\n [items, itemRenderer, calcColumnCount]\n );\n\n const updateGridSize = useCallback(\n (width: number, height: number) => {\n if (height !== gridHeight || width !== gridWidth) {\n setTimeout(() => {\n setGridHeight(height);\n setGridWidth(width);\n onSizeUpdate(width, height);\n }, 0);\n }\n },\n [gridHeight, gridWidth, onSizeUpdate]\n );\n\n const onItemsRenderedCB = useThrottledCallback(\n ({ visibleRowStartIndex, visibleRowStopIndex }: GridOnItemsRenderedProps) => {\n if (!onItemsRendered) return;\n const data = getOnItemsRenderedData(\n items,\n normalizedItems,\n idGetter,\n visibleRowStartIndex,\n visibleRowStopIndex,\n gridHeight,\n scrollTopRef.current\n );\n onItemsRendered(data);\n },\n { wait: onItemsRenderedThrottleMs, trailing: true },\n [onItemsRendered, items, normalizedItems, idGetter, gridHeight]\n );\n\n // Effects\n useEffect(() => {\n // scroll to specific item\n if (scrollToId && prevScrollToId !== scrollToId) {\n gridRef.current.scrollToItem({\n align: \"center\",\n columnIndex: scrollToColumnIndex,\n rowIndex: scrollToRowIndex\n });\n onScrollToFinished();\n }\n }, [scrollToId, prevScrollToId, gridRef, scrollToColumnIndex, scrollToRowIndex, onScrollToFinished]);\n\n useEffect(() => {\n // recalculate row heights\n if (gridRef.current) {\n gridRef.current.resetAfterIndices({ columnIndex: 0, rowIndex: 0 });\n }\n }, [normalizedItems]);\n\n useEffect(() => {\n // update vertical scrollbar visibility\n if (onVerticalScrollbarVisiblityChange) {\n const isVisible = isLayoutDirectionScrollbarVisible(items, normalizedItems, idGetter, gridHeight);\n if (isVerticalScrollbarVisibleRef.current !== isVisible) {\n isVerticalScrollbarVisibleRef.current = isVisible;\n onVerticalScrollbarVisiblityChange(isVisible);\n }\n }\n }, [onVerticalScrollbarVisiblityChange, items, normalizedItems, gridHeight, idGetter]);\n\n return (\n <div\n ref={mergedRef}\n className={cx(styles.virtualizedGridWrapper, className)}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.VIRTUALIZED_GRID, id)}\n >\n <AutoSizer>\n {({ height, width }: { height: number; width: number }) => {\n updateGridSize(width, height);\n return (\n <Grid\n ref={gridRef}\n height={height}\n width={width}\n columnWidth={getColumnWidth}\n columnCount={calcColumnCount}\n rowHeight={getRowHeight}\n rowCount={calcRowCount}\n onScroll={onScrollCB}\n onItemsRendered={onItemsRenderedCB}\n className={scrollableClassName}\n >\n {cellRenderer as unknown as VibeComponent<GridChildComponentProps>}\n </Grid>\n );\n }}\n </AutoSizer>\n </div>\n );\n }\n);\n\nexport default VirtualizedGrid;\n"],"names":["VirtualizedGrid","forwardRef","_ref","ref","className","id","_ref$items","items","_ref$itemRenderer","itemRenderer","item","_index","_style","_ref$getRowHeight","getRowHeight","_ref$getColumnWidth","getColumnWidth","_ref$getItemId","getItemId","onScroll","_ref$scrollToId","scrollToId","_ref$onScrollToFinish","onScrollToFinished","NOOP","_ref$onItemsRendered","onItemsRendered","_ref$onItemsRenderedT","onItemsRenderedThrottleMs","_ref$onSizeUpdate","onSizeUpdate","_ref$onVerticalScroll","onVerticalScrollbarVisiblityChange","scrollableClassName","dataTestId","_useState","useState","_useState2","_slicedToArray","gridHeight","setGridHeight","_useState3","_useState4","gridWidth","setGridWidth","prevScrollToId","usePrevious","componentRef","useRef","isVerticalScrollbarVisibleRef","gridRef","scrollTopRef","animationDataRef","scrollOffsetInitial","scrollOffsetFinal","animationStartTime","mergedRef","useMergeRef","animationData","current","heightGetter","useCallback","height","Number","isNaN","console","error","idGetter","index","itemId","undefined","normalizedItems","useMemo","getNormalizedItems","calcColumnCount","Math","min","length","floor","calcRowCount","ceil","scrollToColumnIndex","scrollToRowIndex","onScrollCB","_ref2","horizontalScrollDirection","scrollTop","scrollUpdateWasRequested","cellRenderer","_ref3","rowIndex","columnIndex","style","updateGridSize","width","setTimeout","onItemsRenderedCB","useThrottledCallback","_ref4","data","getOnItemsRenderedData","visibleRowStartIndex","visibleRowStopIndex","wait","trailing","useEffect","scrollToItem","align","resetAfterIndices","isVisible","isLayoutDirectionScrollbarVisible","React","createElement","cx","styles","virtualizedGridWrapper","getTestId","ComponentDefaultTestId","VIRTUALIZED_GRID","AutoSizer","_ref5","Grid","columnWidth","columnCount","rowHeight","rowCount"],"mappings":"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"}
1
+ {"version":3,"file":"VirtualizedGrid.js","sources":["../../../../../src/components/VirtualizedGrid/VirtualizedGrid.tsx"],"sourcesContent":["import React, { CSSProperties, forwardRef, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport cx from \"classnames\";\nimport {\n GridChildComponentProps,\n GridOnScrollProps,\n ScrollDirection,\n VariableSizeGrid as Grid,\n GridOnItemsRenderedProps\n} from \"react-window\";\nimport AutoSizer from \"react-virtualized-auto-sizer\";\nimport {\n getNormalizedItems,\n getOnItemsRenderedData,\n isLayoutDirectionScrollbarVisible\n} from \"../../services/virtualized-service\";\nimport usePrevious from \"../../hooks/usePrevious\";\nimport useThrottledCallback from \"../../hooks/useThrottledCallback\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport VibeComponentProps from \"src/types/VibeComponentProps\";\nimport { VibeComponent } from \"../../types\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport styles from \"./VirtualizedGrid.module.scss\";\nimport { VirtualizedGridItemType as ItemType } from \"./VirtualizedGrid.types\";\n\nexport interface VirtualizedGridProps extends VibeComponentProps {\n /**\n * The list of items to be rendered in the grid.\n */\n items: ItemType[];\n /**\n * Function that renders each item in the grid.\n */\n itemRenderer: (item: ItemType, index: number, style: CSSProperties) => ItemType | GridChildComponentProps<ItemType>;\n /**\n * Function that returns the row height.\n */\n getRowHeight: () => number;\n /**\n * Function that returns the column width.\n */\n getColumnWidth: () => number;\n /**\n * Function that returns the unique ID of an item.\n */\n getItemId?: (item: ItemType, index: number) => string;\n /**\n * The index of the item to scroll to.\n */\n scrollToId?: number;\n /**\n * Callback fired when the grid is scrolled.\n */\n onScroll?: (horizontalScrollDirection: ScrollDirection, scrollTop: number, scrollUpdateWasRequested: boolean) => void;\n /**\n * Callback fired when scrolling has finished.\n */\n onScrollToFinished?: () => void;\n /**\n * Callback fired when items are rendered in the grid.\n */\n onItemsRendered?: ({\n firstItemId,\n secondItemId,\n lastItemId,\n centerItemId,\n firstItemOffsetEnd,\n currentOffsetTop\n }: {\n firstItemId: string;\n secondItemId: string;\n lastItemId: string;\n centerItemId: string;\n firstItemOffsetEnd: number;\n currentOffsetTop: number;\n }) => void;\n /**\n * The delay (in ms) for throttling the `onItemsRendered` callback.\n */\n onItemsRenderedThrottleMs?: number;\n /**\n * Callback fired when the grid size is updated.\n */\n onSizeUpdate?: (width: number, height: number) => void;\n /**\n * Callback fired when the vertical scrollbar visibility changes.\n */\n onVerticalScrollbarVisiblityChange?: (value: boolean) => void;\n /**\n * Class name applied to the scrollable container.\n */\n scrollableClassName?: string;\n}\n\nconst VirtualizedGrid: VibeComponent<VirtualizedGridProps> = forwardRef(\n (\n {\n className,\n id,\n items = [],\n itemRenderer = (item: ItemType, _index: number, _style: CSSProperties) => item,\n getRowHeight = () => 50,\n getColumnWidth = () => 100,\n getItemId = (item: ItemType, _index: number) => item.id,\n onScroll,\n scrollToId = null,\n onScrollToFinished = NOOP,\n onItemsRendered = null,\n onItemsRenderedThrottleMs = 200,\n onSizeUpdate = NOOP,\n onVerticalScrollbarVisiblityChange = null,\n scrollableClassName,\n \"data-testid\": dataTestId\n }: VirtualizedGridProps,\n ref\n ) => {\n // states\n const [gridHeight, setGridHeight] = useState(0);\n const [gridWidth, setGridWidth] = useState(0);\n\n // prevs\n const prevScrollToId = usePrevious(scrollToId);\n\n // Refs\n const componentRef = useRef(null);\n const isVerticalScrollbarVisibleRef = useRef(null);\n const gridRef = useRef(null);\n const scrollTopRef = useRef(0);\n const animationDataRef = useRef({\n scrollOffsetInitial: 0,\n scrollOffsetFinal: 0,\n animationStartTime: 0\n });\n const mergedRef = useMergeRef(ref, componentRef);\n\n const animationData = animationDataRef.current;\n\n // Callbacks\n const heightGetter = useCallback(\n (item: ItemType) => {\n const height = getRowHeight();\n if (!height || Number.isNaN(height)) {\n console.error(\"Couldn't get height for item: \", item);\n }\n return height;\n },\n [getRowHeight]\n );\n\n const idGetter = useCallback(\n (item: ItemType, index: number) => {\n const itemId = getItemId(item, index);\n if (itemId === undefined) {\n console.error(\"Couldn't get id for item: \", item);\n }\n return itemId;\n },\n [getItemId]\n );\n\n // Memos\n // Creates object of itemId => { item, index, height, offsetTop}\n const normalizedItems = useMemo(() => {\n return getNormalizedItems(items, idGetter, heightGetter);\n }, [items, idGetter, heightGetter]);\n\n const calcColumnCount = useMemo(() => {\n return Math.min(items.length, Math.floor(gridWidth / getColumnWidth()));\n }, [items, gridWidth, getColumnWidth]);\n\n const calcRowCount = useMemo(() => {\n return calcColumnCount > 0 ? Math.ceil(items.length / calcColumnCount) : 0;\n }, [items, calcColumnCount]);\n\n const scrollToColumnIndex = useMemo(() => {\n return scrollToId % calcColumnCount;\n }, [scrollToId, calcColumnCount]);\n\n const scrollToRowIndex = useMemo(() => {\n return Math.floor(scrollToId / calcColumnCount);\n }, [scrollToId, calcColumnCount]);\n\n // Callbacks\n const onScrollCB = useCallback(\n ({ horizontalScrollDirection, scrollTop, scrollUpdateWasRequested }: GridOnScrollProps) => {\n scrollTopRef.current = scrollTop;\n if (!scrollUpdateWasRequested) {\n animationData.scrollOffsetInitial = scrollTop;\n }\n onScroll && onScroll(horizontalScrollDirection, scrollTop, scrollUpdateWasRequested);\n },\n [onScroll, scrollTopRef, animationData]\n );\n\n const cellRenderer = useCallback(\n ({ columnIndex, rowIndex, style }: { columnIndex: number; rowIndex: number; style: CSSProperties }) => {\n const index = rowIndex * calcColumnCount + columnIndex;\n const item = items[index];\n return itemRenderer(item, index, style);\n },\n [items, itemRenderer, calcColumnCount]\n );\n\n const updateGridSize = useCallback(\n (width: number, height: number) => {\n if (height !== gridHeight || width !== gridWidth) {\n setTimeout(() => {\n setGridHeight(height);\n setGridWidth(width);\n onSizeUpdate(width, height);\n }, 0);\n }\n },\n [gridHeight, gridWidth, onSizeUpdate]\n );\n\n const onItemsRenderedCB = useThrottledCallback(\n ({ visibleRowStartIndex, visibleRowStopIndex }: GridOnItemsRenderedProps) => {\n if (!onItemsRendered) return;\n const data = getOnItemsRenderedData(\n items,\n normalizedItems,\n idGetter,\n visibleRowStartIndex,\n visibleRowStopIndex,\n gridHeight,\n scrollTopRef.current\n );\n onItemsRendered(data);\n },\n { wait: onItemsRenderedThrottleMs, trailing: true },\n [onItemsRendered, items, normalizedItems, idGetter, gridHeight]\n );\n\n // Effects\n useEffect(() => {\n // scroll to specific item\n if (scrollToId && prevScrollToId !== scrollToId) {\n gridRef.current.scrollToItem({\n align: \"center\",\n columnIndex: scrollToColumnIndex,\n rowIndex: scrollToRowIndex\n });\n onScrollToFinished();\n }\n }, [scrollToId, prevScrollToId, gridRef, scrollToColumnIndex, scrollToRowIndex, onScrollToFinished]);\n\n useEffect(() => {\n // recalculate row heights\n if (gridRef.current) {\n gridRef.current.resetAfterIndices({ columnIndex: 0, rowIndex: 0 });\n }\n }, [normalizedItems]);\n\n useEffect(() => {\n // update vertical scrollbar visibility\n if (onVerticalScrollbarVisiblityChange) {\n const isVisible = isLayoutDirectionScrollbarVisible(items, normalizedItems, idGetter, gridHeight);\n if (isVerticalScrollbarVisibleRef.current !== isVisible) {\n isVerticalScrollbarVisibleRef.current = isVisible;\n onVerticalScrollbarVisiblityChange(isVisible);\n }\n }\n }, [onVerticalScrollbarVisiblityChange, items, normalizedItems, gridHeight, idGetter]);\n\n return (\n <div\n ref={mergedRef}\n className={cx(styles.virtualizedGridWrapper, className)}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.VIRTUALIZED_GRID, id)}\n >\n <AutoSizer>\n {({ height, width }: { height: number; width: number }) => {\n updateGridSize(width, height);\n return (\n <Grid\n ref={gridRef}\n height={height}\n width={width}\n columnWidth={getColumnWidth}\n columnCount={calcColumnCount}\n rowHeight={getRowHeight}\n rowCount={calcRowCount}\n onScroll={onScrollCB}\n onItemsRendered={onItemsRenderedCB}\n className={scrollableClassName}\n >\n {cellRenderer as unknown as VibeComponent<GridChildComponentProps>}\n </Grid>\n );\n }}\n </AutoSizer>\n </div>\n );\n }\n);\n\nexport default VirtualizedGrid;\n"],"names":["VirtualizedGrid","forwardRef","_ref","ref","className","id","_ref$items","items","_ref$itemRenderer","itemRenderer","item","_index","_style","_ref$getRowHeight","getRowHeight","_ref$getColumnWidth","getColumnWidth","_ref$getItemId","getItemId","onScroll","_ref$scrollToId","scrollToId","_ref$onScrollToFinish","onScrollToFinished","NOOP","_ref$onItemsRendered","onItemsRendered","_ref$onItemsRenderedT","onItemsRenderedThrottleMs","_ref$onSizeUpdate","onSizeUpdate","_ref$onVerticalScroll","onVerticalScrollbarVisiblityChange","scrollableClassName","dataTestId","_useState","useState","_useState2","_slicedToArray","gridHeight","setGridHeight","_useState3","_useState4","gridWidth","setGridWidth","prevScrollToId","usePrevious","componentRef","useRef","isVerticalScrollbarVisibleRef","gridRef","scrollTopRef","animationDataRef","scrollOffsetInitial","scrollOffsetFinal","animationStartTime","mergedRef","useMergeRef","animationData","current","heightGetter","useCallback","height","Number","isNaN","console","error","idGetter","index","itemId","undefined","normalizedItems","useMemo","getNormalizedItems","calcColumnCount","Math","min","length","floor","calcRowCount","ceil","scrollToColumnIndex","scrollToRowIndex","onScrollCB","_ref2","horizontalScrollDirection","scrollTop","scrollUpdateWasRequested","cellRenderer","_ref3","rowIndex","columnIndex","style","updateGridSize","width","setTimeout","onItemsRenderedCB","useThrottledCallback","_ref4","data","getOnItemsRenderedData","visibleRowStartIndex","visibleRowStopIndex","wait","trailing","useEffect","scrollToItem","align","resetAfterIndices","isVisible","isLayoutDirectionScrollbarVisible","React","createElement","cx","styles","virtualizedGridWrapper","getTestId","ComponentDefaultTestId","VIRTUALIZED_GRID","AutoSizer","_ref5","Grid","columnWidth","columnCount","rowHeight","rowCount"],"mappings":"iwBA8FMA,IAAAA,EAAuDC,GAC3D,SAAAC,EAmBEC,GACE,IAlBAC,EAASF,EAATE,UACAC,EAAEH,EAAFG,GAAEC,EAAAJ,EACFK,MAAAA,OAAQ,IAAHD,EAAG,GAAEA,EAAAE,EAAAN,EACVO,aAAAA,OAAe,IAAHD,EAAG,SAACE,EAAgBC,EAAgBC,GAAqB,OAAKF,CAAI,EAAAF,EAAAK,EAAAX,EAC9EY,aAAAA,OAAe,IAAHD,EAAG,WAAA,OAAM,EAAE,EAAAA,EAAAE,EAAAb,EACvBc,eAAAA,OAAiB,IAAHD,EAAG,WAAA,OAAM,GAAG,EAAAA,EAAAE,EAAAf,EAC1BgB,UAAAA,OAAS,IAAAD,EAAG,SAACP,EAAgBC,GAAc,OAAKD,EAAKL,EAAE,EAAAY,EACvDE,EAAQjB,EAARiB,SAAQC,EAAAlB,EACRmB,WAAAA,OAAa,IAAHD,EAAG,KAAIA,EAAAE,EAAApB,EACjBqB,mBAAAA,OAAqBC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAvB,EACzBwB,gBAAAA,OAAkB,IAAHD,EAAG,KAAIA,EAAAE,EAAAzB,EACtB0B,0BAAAA,OAA4B,IAAHD,EAAG,IAAGA,EAAAE,EAAA3B,EAC/B4B,aAAAA,OAAeN,IAAHK,EAAGL,EAAIK,EAAAE,EAAA7B,EACnB8B,mCAAAA,OAAqC,IAAHD,EAAG,KAAIA,EACzCE,EAAmB/B,EAAnB+B,oBACeC,EAAUhC,EAAzB,eAKFiC,EAAoCC,EAAS,GAAEC,EAAAC,EAAAH,EAAA,GAAxCI,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAChCI,EAAkCL,EAAS,GAAEM,GAAAJ,EAAAG,EAAA,GAAtCE,GAASD,GAAA,GAAEE,GAAYF,GAAA,GAGxBG,GAAiBC,EAAYzB,GAG7B0B,GAAeC,EAAO,MACtBC,GAAgCD,EAAO,MACvCE,GAAUF,EAAO,MACjBG,GAAeH,EAAO,GACtBI,GAAmBJ,EAAO,CAC9BK,oBAAqB,EACrBC,kBAAmB,EACnBC,mBAAoB,IAEhBC,GAAYC,EAAYtD,EAAK4C,IAE7BW,GAAgBN,GAAiBO,QAGjCC,GAAeC,GACnB,SAACnD,GACC,IAAMoD,EAAShD,IAIf,OAHKgD,IAAUC,OAAOC,MAAMF,IAC1BG,QAAQC,MAAM,iCAAkCxD,GAE3CoD,CACT,GACA,CAAChD,IAGGqD,GAAWN,GACf,SAACnD,EAAgB0D,GACf,IAAMC,EAASnD,EAAUR,EAAM0D,GAI/B,YAHeE,IAAXD,GACFJ,QAAQC,MAAM,6BAA8BxD,GAEvC2D,CACT,GACA,CAACnD,IAKGqD,GAAkBC,GAAQ,WAC9B,OAAOC,EAAmBlE,EAAO4D,GAAUP,GAC5C,GAAE,CAACrD,EAAO4D,GAAUP,KAEfc,GAAkBF,GAAQ,WAC9B,OAAOG,KAAKC,IAAIrE,EAAMsE,OAAQF,KAAKG,MAAMnC,GAAY3B,KACtD,GAAE,CAACT,EAAOoC,GAAW3B,IAEhB+D,GAAeP,GAAQ,WAC3B,OAAOE,GAAkB,EAAIC,KAAKK,KAAKzE,EAAMsE,OAASH,IAAmB,CAC3E,GAAG,CAACnE,EAAOmE,KAELO,GAAsBT,GAAQ,WAClC,OAAOnD,EAAaqD,EACtB,GAAG,CAACrD,EAAYqD,KAEVQ,GAAmBV,GAAQ,WAC/B,OAAOG,KAAKG,MAAMzD,EAAaqD,GACjC,GAAG,CAACrD,EAAYqD,KAGVS,GAAatB,GACjB,SAAAuB,GAA0F,IAAvFC,EAAyBD,EAAzBC,0BAA2BC,EAASF,EAATE,UAAWC,EAAwBH,EAAxBG,yBACvCpC,GAAaQ,QAAU2B,EAClBC,IACH7B,GAAcL,oBAAsBiC,GAEtCnE,GAAYA,EAASkE,EAA2BC,EAAWC,EAC5D,GACD,CAACpE,EAAUgC,GAAcO,KAGrB8B,GAAe3B,GACnB,SAAA4B,GAAsG,IAC9FrB,EADgBqB,EAARC,SACWhB,GADbe,EAAXE,YAGD,OAAOlF,EADMF,EAAM6D,GACOA,EAHGqB,EAALG,MAIzB,GACD,CAACrF,EAAOE,EAAciE,KAGlBmB,GAAiBhC,GACrB,SAACiC,EAAehC,GACVA,IAAWvB,GAAcuD,IAAUnD,IACrCoD,YAAW,WACTvD,EAAcsB,GACdlB,GAAakD,GACbhE,EAAagE,EAAOhC,EACrB,GAAE,EAEN,GACD,CAACvB,EAAYI,GAAWb,IAGpBkE,GAAoBC,GACxB,SAAAC,GACE,GAAKxE,EAAL,CACA,IAAMyE,EAAOC,EACX7F,EACAgE,GACAJ,GALmB+B,EAApBG,qBAAyCH,EAAnBI,oBAQrB/D,EACAY,GAAaQ,SAEfjC,EAAgByE,EAVM,CAWxB,GACA,CAAEI,KAAM3E,EAA2B4E,UAAU,GAC7C,CAAC9E,EAAiBnB,EAAOgE,GAAiBJ,GAAU5B,IAkCtD,OA9BAkE,GAAU,WAEJpF,GAAcwB,KAAmBxB,IACnC6B,GAAQS,QAAQ+C,aAAa,CAC3BC,MAAO,SACPhB,YAAaV,GACbS,SAAUR,KAEZ3D,IAEJ,GAAG,CAACF,EAAYwB,GAAgBK,GAAS+B,GAAqBC,GAAkB3D,IAEhFkF,GAAU,WAEJvD,GAAQS,SACVT,GAAQS,QAAQiD,kBAAkB,CAAEjB,YAAa,EAAGD,SAAU,GAElE,GAAG,CAACnB,KAEJkC,GAAU,WAER,GAAIzE,EAAoC,CACtC,IAAM6E,EAAYC,EAAkCvG,EAAOgE,GAAiBJ,GAAU5B,GAClFU,GAA8BU,UAAYkD,IAC5C5D,GAA8BU,QAAUkD,EACxC7E,EAAmC6E,GAEtC,CACH,GAAG,CAAC7E,EAAoCzB,EAAOgE,GAAiBhC,EAAY4B,KAG1E4C,EAAAC,cAAA,MAAA,CACE7G,IAAKqD,GACLpD,UAAW6G,EAAGC,EAAOC,uBAAwB/G,GAC7CC,GAAIA,EAAE,cACO6B,GAAckF,EAAUC,EAAuBC,iBAAkBjH,IAE9E0G,EAACC,cAAAO,QACE,SAAAC,GAAyD,IAAtD1D,EAAM0D,EAAN1D,OAAQgC,EAAK0B,EAAL1B,MAEV,OADAD,GAAeC,EAAOhC,GAEpBiD,gBAACU,EAAI,CACHtH,IAAK+C,GACLY,OAAQA,EACRgC,MAAOA,EACP4B,YAAa1G,EACb2G,YAAajD,GACbkD,UAAW9G,EACX+G,SAAU9C,GACV5D,SAAUgE,GACVzD,gBAAiBsE,GACjB5F,UAAW6B,GAEVuD,GAGN,IAIT"}
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualizedList.js","sources":["../../../../../src/components/VirtualizedList/VirtualizedList.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, {\n CSSProperties,\n ForwardedRef,\n forwardRef,\n LegacyRef,\n ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState\n} from \"react\";\nimport { noop as NOOP } from \"lodash-es\";\nimport {\n ScrollDirection,\n VariableSizeList as List,\n ListOnItemsRenderedProps,\n ListChildComponentProps,\n VariableSizeList\n} from \"react-window\";\nimport AutoSizer from \"react-virtualized-auto-sizer\";\nimport usePrevious from \"../../hooks/usePrevious\";\nimport useThrottledCallback from \"../../hooks/useThrottledCallback\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport {\n easeInOutQuint,\n getMaxOffset,\n getNormalizedItems,\n getOnItemsRenderedData,\n isLayoutDirectionScrollbarVisible\n} from \"../../services/virtualized-service\";\nimport { getTestId } from \"../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../tests/constants\";\nimport VibeComponentProps from \"src/types/VibeComponentProps\";\nimport VibeComponent from \"../../types/VibeComponent\";\nimport styles from \"./VirtualizedList.module.scss\";\nimport { VirtualizedListItem, VirtualizedListLayout, VirtualizedListScrollDirection } from \"./VirtualizedList.types\";\n\nexport interface VirtualizedListProps extends VibeComponentProps {\n /**\n * class name to add to the component scrollable container\n */\n scrollableClassName?: string;\n /**\n * Layout/orientation of the list.\n * Acceptable values are:\n * - \"vertical\" (default) - Up/down scrolling.\n * - \"horizontal\" - Left/right scrolling.\n */\n layout?: VirtualizedListLayout;\n /**\n * A list of items to be rendered\n */\n items: VirtualizedListItem[];\n /**\n * Will return the element which represent an item in the virtualized list.\n * Returns `JSX.Element`\n * @param item - item data\n * @param _index - item index\n * @param style - item style, must be injected to the item element wrapper for correct presentation of the item\n */\n itemRenderer: (item: VirtualizedListItem, index: number, style: CSSProperties) => ReactElement | JSX.Element;\n /**\n * Deprecated - use getItemSize\n * in order to calculate the number of items to render, the component needs the height of the items\n * return `number`\n */\n getItemHeight?: (item: VirtualizedListItem, index: number) => number;\n /**\n * in order to calculate the number of items to render, the component needs the width/height of the items (according to layout)\n * return `number`\n */\n getItemSize?: (item: VirtualizedListItem, index: number) => number;\n /**\n * returns Id of an items\n * returns `string`\n */\n getItemId?: (item: VirtualizedListItem, index: number) => string;\n /**\n * callback to be called when the scroll is finished\n */\n onScrollToFinished?: () => void;\n /**\n * number of items to render (below/above the fold)\n */\n overscanCount?: number;\n /**\n * the speed of the scroll (in ms)\n */\n scrollDuration?: number;\n /**\n * a callback that is being called when the items are rendered\n */\n onItemsRendered?: ({\n firstItemId,\n secondItemId,\n lastItemId,\n centerItemId,\n firstItemOffsetEnd,\n currentOffsetTop\n }: {\n firstItemId: string;\n secondItemId: string;\n lastItemId: string;\n centerItemId: string;\n firstItemOffsetEnd: number;\n currentOffsetTop: number;\n }) => void;\n onItemsRenderedThrottleMs?: number;\n /**\n * when the list size changes - `=> (width, height)`\n */\n onSizeUpdate?: (width: number, height: number) => void;\n /**\n * Deprecated - use onLayoutDirectionScrollbarVisibilityChange\n */\n onVerticalScrollbarVisiblityChange?: (value: boolean) => void;\n /**\n * Callback - called when the vertical/horizontal (depends on layout) scrollbar visibility changed\n */\n onLayoutDirectionScrollbarVisibilityChange?: (value: boolean) => void;\n role?: string;\n ariaLabel?: string;\n /** Custom style to pass to the component */\n style?: CSSProperties;\n /**\n * index of the item to scroll to\n */\n scrollToId?: string;\n virtualListRef?: ForwardedRef<HTMLElement>;\n onScroll?: (\n horizontalScrollDirection: VirtualizedListScrollDirection,\n scrollTop: number,\n scrollUpdateWasRequested: boolean\n ) => void;\n}\n\nconst VirtualizedList: VibeComponent<VirtualizedListProps> = forwardRef(\n (\n {\n className,\n id,\n items = [],\n itemRenderer = (item: VirtualizedListItem, _index: number, _style: CSSProperties) => item as ReactElement,\n getItemHeight = (item: VirtualizedListItem, _index: number) => item.height,\n getItemSize = null, // must be null for backward compatibility\n layout = \"vertical\",\n onScroll,\n overscanCount = 0,\n getItemId = (item: VirtualizedListItem, _index: number) => item.id,\n scrollToId,\n scrollDuration = 200,\n onScrollToFinished = NOOP,\n onItemsRendered,\n onItemsRenderedThrottleMs = 200,\n onSizeUpdate = NOOP,\n onVerticalScrollbarVisiblityChange = null,\n onLayoutDirectionScrollbarVisibilityChange = null,\n virtualListRef,\n scrollableClassName,\n role,\n ariaLabel,\n style,\n \"data-testid\": dataTestId\n }: VirtualizedListProps,\n ref\n ) => {\n // states\n const [listHeight, setListHeight] = useState(0);\n const [listWidth, setListWidth] = useState(0);\n\n const isVerticalList = layout !== \"horizontal\";\n const listSizeByLayout = useMemo(() => {\n return isVerticalList ? listHeight : listWidth;\n }, [isVerticalList, listHeight, listWidth]);\n\n // prevs\n const prevScrollToId = usePrevious(scrollToId);\n\n // Refs\n const componentRef = useRef(null);\n const isVerticalScrollbarVisibleRef = useRef(null);\n const listRef = useRef(null);\n const scrollTopRef = useRef(0);\n const animationDataRef = useRef({\n initialized: false,\n scrollOffsetInitial: 0,\n scrollOffsetFinal: 0,\n animationStartTime: 0\n });\n const mergedRef = useMergeRef(ref, componentRef);\n const mergedListRef = useMergeRef(virtualListRef, listRef);\n\n const animationData = animationDataRef.current;\n if (!animationData.initialized) {\n animationData.initialized = true;\n animationData.scrollOffsetInitial = 0;\n animationData.scrollOffsetFinal = 0;\n animationData.animationStartTime = 0;\n }\n\n // Callbacks\n const sizeGetter = useCallback(\n (item: VirtualizedListItem, index: number) => {\n const getSize = getItemSize || getItemHeight;\n const height = getSize(item, index);\n if (height === undefined) {\n console.error(\"Couldn't get height for item: \", item);\n }\n return height;\n },\n [getItemHeight, getItemSize]\n );\n\n const idGetter = useCallback(\n (item: VirtualizedListItem, index: number) => {\n const itemId = getItemId(item, index);\n if (itemId === undefined) {\n console.error(\"Couldn't get id for item: \", item);\n }\n return itemId;\n },\n [getItemId]\n );\n\n // Memos\n // Creates object of itemId => { item, index, size, offsetTop}\n const normalizedItems = useMemo(() => {\n return getNormalizedItems(items, idGetter, sizeGetter);\n }, [items, idGetter, sizeGetter]);\n\n const maxListOffset = useMemo(() => {\n return getMaxOffset(listSizeByLayout, normalizedItems);\n }, [listSizeByLayout, normalizedItems]);\n\n // Callbacks\n const onScrollCB = useCallback(\n ({\n scrollDirection,\n scrollOffset,\n scrollUpdateWasRequested\n }: {\n scrollDirection: ScrollDirection;\n scrollOffset: number;\n scrollUpdateWasRequested: boolean;\n }) => {\n scrollTopRef.current = scrollOffset;\n if (!scrollUpdateWasRequested) {\n animationData.scrollOffsetInitial = scrollOffset;\n }\n onScroll && onScroll(scrollDirection, scrollOffset, scrollUpdateWasRequested);\n },\n [onScroll, scrollTopRef, animationData]\n );\n\n const animateScroll = useCallback(() => {\n requestAnimationFrame(() => {\n const now = performance.now();\n const ellapsed = now - animationData.animationStartTime;\n const scrollDelta = animationData.scrollOffsetFinal - animationData.scrollOffsetInitial;\n const easedTime = easeInOutQuint(Math.min(1, ellapsed / scrollDuration));\n const scrollOffset = animationData.scrollOffsetInitial + scrollDelta * easedTime;\n const finalOffsetValue = Math.min(maxListOffset, scrollOffset);\n scrollTopRef.current = finalOffsetValue;\n listRef.current?.scrollTo(finalOffsetValue);\n\n if (ellapsed < scrollDuration) {\n animateScroll();\n } else {\n animationData.animationStartTime = undefined;\n onScrollToFinished && onScrollToFinished();\n }\n });\n }, [scrollDuration, animationData, listRef, maxListOffset, onScrollToFinished]);\n\n const startScrollAnimation = useCallback(\n (item: VirtualizedListItem) => {\n const { offsetTop } = item;\n\n if (animationData.animationStartTime) {\n // animation already in progress\n animationData.scrollOffsetFinal = offsetTop;\n return;\n }\n\n // Update the initial scroll offset with the current scroll position for react 18 batching behavior\n if (listRef.current?.state?.scrollOffset !== null) {\n animationData.scrollOffsetInitial = listRef.current?.state?.scrollOffset;\n }\n\n if (animationData.scrollOffsetInitial === offsetTop) {\n // offset already equals to item offset\n onScrollToFinished && onScrollToFinished();\n return;\n }\n\n animationData.scrollOffsetFinal = offsetTop;\n animationData.animationStartTime = performance.now();\n animateScroll();\n },\n [animationData, animateScroll, onScrollToFinished]\n );\n\n const rowRenderer = useCallback(\n ({ index, style }: { index: number; style: CSSProperties }) => {\n const item = items[index];\n return itemRenderer(item, index, style);\n },\n [items, itemRenderer]\n );\n\n const calcItemSize = useCallback(\n (index: number) => {\n const item = items[index];\n return sizeGetter(item, index);\n },\n [items, sizeGetter]\n );\n\n const updateListSize = useCallback(\n (width: number, height: number) => {\n if (height !== listHeight || width !== listWidth) {\n setTimeout(() => {\n setListHeight(height);\n setListWidth(width);\n onSizeUpdate(width, height);\n }, 0);\n }\n },\n [listHeight, listWidth, onSizeUpdate]\n );\n\n const onItemsRenderedCB = useThrottledCallback(\n ({ visibleStartIndex, visibleStopIndex }: ListOnItemsRenderedProps) => {\n if (!onItemsRendered) return;\n const data = getOnItemsRenderedData(\n items,\n normalizedItems,\n idGetter,\n visibleStartIndex,\n visibleStopIndex,\n listSizeByLayout,\n scrollTopRef.current\n );\n onItemsRendered(data);\n },\n { wait: onItemsRenderedThrottleMs, trailing: true },\n [onItemsRendered, items, normalizedItems, idGetter, listSizeByLayout]\n );\n\n // Effects\n useEffect(() => {\n // scroll to specific item\n if (scrollToId && prevScrollToId !== scrollToId) {\n const hasScrollbar = isLayoutDirectionScrollbarVisible(items, normalizedItems, idGetter, listSizeByLayout);\n const item = normalizedItems[scrollToId as keyof typeof normalizedItems];\n hasScrollbar && item && startScrollAnimation(item);\n }\n }, [prevScrollToId, scrollToId, startScrollAnimation, normalizedItems, items, idGetter, listSizeByLayout]);\n\n useEffect(() => {\n // recalculate row heights\n if (listRef.current) {\n listRef.current.resetAfterIndex(0);\n }\n }, [normalizedItems]);\n\n useEffect(() => {\n // update vertical scrollbar visibility\n const callback = onLayoutDirectionScrollbarVisibilityChange || onVerticalScrollbarVisiblityChange;\n if (callback) {\n const isVisible = isLayoutDirectionScrollbarVisible(items, normalizedItems, idGetter, listSizeByLayout);\n if (isVerticalScrollbarVisibleRef.current !== isVisible) {\n isVerticalScrollbarVisibleRef.current = isVisible;\n callback(isVisible);\n }\n }\n }, [\n onLayoutDirectionScrollbarVisibilityChange,\n onVerticalScrollbarVisiblityChange,\n items,\n normalizedItems,\n listSizeByLayout,\n idGetter\n ]);\n\n return (\n <div\n ref={mergedRef}\n className={cx(styles.virtualizedListWrapper, className)}\n id={id}\n role={role}\n aria-label={ariaLabel}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.VIRTUALIZED_LIST, id)}\n style={style}\n >\n <AutoSizer>\n {({ height, width }: { height: number; width: number }) => {\n updateListSize(width, height);\n return (\n <List\n ref={mergedListRef as unknown as LegacyRef<VariableSizeList<unknown>>}\n height={height}\n width={width}\n itemCount={items.length}\n itemSize={calcItemSize}\n onScroll={onScrollCB}\n layout={layout}\n overscanCount={overscanCount}\n onItemsRendered={onItemsRenderedCB}\n className={scrollableClassName}\n >\n {rowRenderer as VibeComponent<ListChildComponentProps>}\n </List>\n );\n }}\n </AutoSizer>\n </div>\n );\n }\n);\n\nexport default VirtualizedList;\n"],"names":["VirtualizedList","forwardRef","_ref","ref","className","id","_ref$items","items","_ref$itemRenderer","itemRenderer","item","_index","_style","_ref$getItemHeight","getItemHeight","height","_ref$getItemSize","getItemSize","_ref$layout","layout","onScroll","_ref$overscanCount","overscanCount","_ref$getItemId","getItemId","scrollToId","_ref$scrollDuration","scrollDuration","_ref$onScrollToFinish","onScrollToFinished","NOOP","onItemsRendered","_ref$onItemsRenderedT","onItemsRenderedThrottleMs","_ref$onSizeUpdate","onSizeUpdate","_ref$onVerticalScroll","onVerticalScrollbarVisiblityChange","_ref$onLayoutDirectio","onLayoutDirectionScrollbarVisibilityChange","virtualListRef","scrollableClassName","role","ariaLabel","style","dataTestId","_useState","useState","_useState2","_slicedToArray","listHeight","setListHeight","_useState3","_useState4","listWidth","setListWidth","isVerticalList","listSizeByLayout","useMemo","prevScrollToId","usePrevious","componentRef","useRef","isVerticalScrollbarVisibleRef","listRef","scrollTopRef","animationDataRef","initialized","scrollOffsetInitial","scrollOffsetFinal","animationStartTime","mergedRef","useMergeRef","mergedListRef","animationData","current","sizeGetter","useCallback","index","undefined","console","error","idGetter","itemId","normalizedItems","getNormalizedItems","maxListOffset","getMaxOffset","onScrollCB","_ref2","scrollDirection","scrollOffset","scrollUpdateWasRequested","animateScroll","requestAnimationFrame","ellapsed","performance","now","scrollDelta","easedTime","easeInOutQuint","Math","min","finalOffsetValue","_a","scrollTo","startScrollAnimation","offsetTop","_b","state","_d","_c","rowRenderer","_ref3","calcItemSize","updateListSize","width","setTimeout","onItemsRenderedCB","useThrottledCallback","_ref4","data","getOnItemsRenderedData","visibleStartIndex","visibleStopIndex","wait","trailing","useEffect","hasScrollbar","isLayoutDirectionScrollbarVisible","resetAfterIndex","callback","isVisible","React","createElement","cx","styles","virtualizedListWrapper","getTestId","ComponentDefaultTestId","VIRTUALIZED_LIST","AutoSizer","_ref5","List","itemCount","length","itemSize"],"mappings":"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"}
1
+ {"version":3,"file":"VirtualizedList.js","sources":["../../../../../src/components/VirtualizedList/VirtualizedList.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, {\n CSSProperties,\n ForwardedRef,\n forwardRef,\n LegacyRef,\n ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState\n} from \"react\";\nimport { noop as NOOP } from \"lodash-es\";\nimport {\n ScrollDirection,\n VariableSizeList as List,\n ListOnItemsRenderedProps,\n ListChildComponentProps,\n VariableSizeList\n} from \"react-window\";\nimport AutoSizer from \"react-virtualized-auto-sizer\";\nimport usePrevious from \"../../hooks/usePrevious\";\nimport useThrottledCallback from \"../../hooks/useThrottledCallback\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport {\n easeInOutQuint,\n getMaxOffset,\n getNormalizedItems,\n getOnItemsRenderedData,\n isLayoutDirectionScrollbarVisible\n} from \"../../services/virtualized-service\";\nimport { getTestId } from \"../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../tests/constants\";\nimport VibeComponentProps from \"src/types/VibeComponentProps\";\nimport VibeComponent from \"../../types/VibeComponent\";\nimport styles from \"./VirtualizedList.module.scss\";\nimport { VirtualizedListItem, VirtualizedListLayout, VirtualizedListScrollDirection } from \"./VirtualizedList.types\";\n\nexport interface VirtualizedListProps extends VibeComponentProps {\n /**\n * Class name applied to the scrollable container.\n */\n scrollableClassName?: string;\n /**\n * The orientation of the list.\n */\n layout?: VirtualizedListLayout;\n /**\n * The list of items to be rendered.\n */\n items: VirtualizedListItem[];\n /**\n * Function to render each item in the list.\n */\n itemRenderer: (item: VirtualizedListItem, index: number, style: CSSProperties) => ReactElement | JSX.Element;\n /**\n * @deprecated - use `getItemSize`.\n */\n getItemHeight?: (item: VirtualizedListItem, index: number) => number;\n /**\n * Function to get the size (height/width) of each item, based on layout.\n */\n getItemSize?: (item: VirtualizedListItem, index: number) => number;\n /**\n * Function to get the unique ID of an item.\n */\n getItemId?: (item: VirtualizedListItem, index: number) => string;\n /**\n * Callback fired when the scroll animation is finished.\n */\n onScrollToFinished?: () => void;\n /**\n * Number of items to render above and below the visible portion.\n */\n overscanCount?: number;\n /**\n * The duration of the scroll animation in milliseconds.\n */\n scrollDuration?: number;\n /**\n * Callback fired when items are rendered.\n */\n onItemsRendered?: ({\n firstItemId,\n secondItemId,\n lastItemId,\n centerItemId,\n firstItemOffsetEnd,\n currentOffsetTop\n }: {\n firstItemId: string;\n secondItemId: string;\n lastItemId: string;\n centerItemId: string;\n firstItemOffsetEnd: number;\n currentOffsetTop: number;\n }) => void;\n /**\n * The delay (in ms) for throttling the `onItemsRendered` callback.\n */\n onItemsRenderedThrottleMs?: number;\n /**\n * Callback fired when the list size changes.\n */\n onSizeUpdate?: (width: number, height: number) => void;\n /**\n * @deprecated - use `onLayoutDirectionScrollbarVisibilityChange`.\n */\n onVerticalScrollbarVisiblityChange?: (value: boolean) => void;\n /**\n * Callback fired when the vertical or horizontal scrollbar visibility changes.\n */\n onLayoutDirectionScrollbarVisibilityChange?: (value: boolean) => void;\n /**\n * The ARIA role attribute applied to the list.\n */\n role?: string;\n /**\n * The ARIA label for the list.\n */\n ariaLabel?: string;\n /**\n * Custom inline styles applied to the list.\n */\n style?: CSSProperties;\n /**\n * The ID of the item to scroll to.\n */\n scrollToId?: string;\n /**\n * Reference to the virtualized list component.\n */\n virtualListRef?: ForwardedRef<HTMLElement>;\n /**\n * Callback fired when the list is scrolled.\n */\n onScroll?: (\n horizontalScrollDirection: VirtualizedListScrollDirection,\n scrollTop: number,\n scrollUpdateWasRequested: boolean\n ) => void;\n}\n\nconst VirtualizedList: VibeComponent<VirtualizedListProps> = forwardRef(\n (\n {\n className,\n id,\n items = [],\n itemRenderer = (item: VirtualizedListItem, _index: number, _style: CSSProperties) => item as ReactElement,\n getItemHeight = (item: VirtualizedListItem, _index: number) => item.height,\n getItemSize = null, // must be null for backward compatibility\n layout = \"vertical\",\n onScroll,\n overscanCount = 0,\n getItemId = (item: VirtualizedListItem, _index: number) => item.id,\n scrollToId,\n scrollDuration = 200,\n onScrollToFinished = NOOP,\n onItemsRendered,\n onItemsRenderedThrottleMs = 200,\n onSizeUpdate = NOOP,\n onVerticalScrollbarVisiblityChange = null,\n onLayoutDirectionScrollbarVisibilityChange = null,\n virtualListRef,\n scrollableClassName,\n role,\n ariaLabel,\n style,\n \"data-testid\": dataTestId\n }: VirtualizedListProps,\n ref\n ) => {\n // states\n const [listHeight, setListHeight] = useState(0);\n const [listWidth, setListWidth] = useState(0);\n\n const isVerticalList = layout !== \"horizontal\";\n const listSizeByLayout = useMemo(() => {\n return isVerticalList ? listHeight : listWidth;\n }, [isVerticalList, listHeight, listWidth]);\n\n // prevs\n const prevScrollToId = usePrevious(scrollToId);\n\n // Refs\n const componentRef = useRef(null);\n const isVerticalScrollbarVisibleRef = useRef(null);\n const listRef = useRef(null);\n const scrollTopRef = useRef(0);\n const animationDataRef = useRef({\n initialized: false,\n scrollOffsetInitial: 0,\n scrollOffsetFinal: 0,\n animationStartTime: 0\n });\n const mergedRef = useMergeRef(ref, componentRef);\n const mergedListRef = useMergeRef(virtualListRef, listRef);\n\n const animationData = animationDataRef.current;\n if (!animationData.initialized) {\n animationData.initialized = true;\n animationData.scrollOffsetInitial = 0;\n animationData.scrollOffsetFinal = 0;\n animationData.animationStartTime = 0;\n }\n\n // Callbacks\n const sizeGetter = useCallback(\n (item: VirtualizedListItem, index: number) => {\n const getSize = getItemSize || getItemHeight;\n const height = getSize(item, index);\n if (height === undefined) {\n console.error(\"Couldn't get height for item: \", item);\n }\n return height;\n },\n [getItemHeight, getItemSize]\n );\n\n const idGetter = useCallback(\n (item: VirtualizedListItem, index: number) => {\n const itemId = getItemId(item, index);\n if (itemId === undefined) {\n console.error(\"Couldn't get id for item: \", item);\n }\n return itemId;\n },\n [getItemId]\n );\n\n // Memos\n // Creates object of itemId => { item, index, size, offsetTop}\n const normalizedItems = useMemo(() => {\n return getNormalizedItems(items, idGetter, sizeGetter);\n }, [items, idGetter, sizeGetter]);\n\n const maxListOffset = useMemo(() => {\n return getMaxOffset(listSizeByLayout, normalizedItems);\n }, [listSizeByLayout, normalizedItems]);\n\n // Callbacks\n const onScrollCB = useCallback(\n ({\n scrollDirection,\n scrollOffset,\n scrollUpdateWasRequested\n }: {\n scrollDirection: ScrollDirection;\n scrollOffset: number;\n scrollUpdateWasRequested: boolean;\n }) => {\n scrollTopRef.current = scrollOffset;\n if (!scrollUpdateWasRequested) {\n animationData.scrollOffsetInitial = scrollOffset;\n }\n onScroll && onScroll(scrollDirection, scrollOffset, scrollUpdateWasRequested);\n },\n [onScroll, scrollTopRef, animationData]\n );\n\n const animateScroll = useCallback(() => {\n requestAnimationFrame(() => {\n const now = performance.now();\n const ellapsed = now - animationData.animationStartTime;\n const scrollDelta = animationData.scrollOffsetFinal - animationData.scrollOffsetInitial;\n const easedTime = easeInOutQuint(Math.min(1, ellapsed / scrollDuration));\n const scrollOffset = animationData.scrollOffsetInitial + scrollDelta * easedTime;\n const finalOffsetValue = Math.min(maxListOffset, scrollOffset);\n scrollTopRef.current = finalOffsetValue;\n listRef.current?.scrollTo(finalOffsetValue);\n\n if (ellapsed < scrollDuration) {\n animateScroll();\n } else {\n animationData.animationStartTime = undefined;\n onScrollToFinished && onScrollToFinished();\n }\n });\n }, [scrollDuration, animationData, listRef, maxListOffset, onScrollToFinished]);\n\n const startScrollAnimation = useCallback(\n (item: VirtualizedListItem) => {\n const { offsetTop } = item;\n\n if (animationData.animationStartTime) {\n // animation already in progress\n animationData.scrollOffsetFinal = offsetTop;\n return;\n }\n\n // Update the initial scroll offset with the current scroll position for react 18 batching behavior\n if (listRef.current?.state?.scrollOffset !== null) {\n animationData.scrollOffsetInitial = listRef.current?.state?.scrollOffset;\n }\n\n if (animationData.scrollOffsetInitial === offsetTop) {\n // offset already equals to item offset\n onScrollToFinished && onScrollToFinished();\n return;\n }\n\n animationData.scrollOffsetFinal = offsetTop;\n animationData.animationStartTime = performance.now();\n animateScroll();\n },\n [animationData, animateScroll, onScrollToFinished]\n );\n\n const rowRenderer = useCallback(\n ({ index, style }: { index: number; style: CSSProperties }) => {\n const item = items[index];\n return itemRenderer(item, index, style);\n },\n [items, itemRenderer]\n );\n\n const calcItemSize = useCallback(\n (index: number) => {\n const item = items[index];\n return sizeGetter(item, index);\n },\n [items, sizeGetter]\n );\n\n const updateListSize = useCallback(\n (width: number, height: number) => {\n if (height !== listHeight || width !== listWidth) {\n setTimeout(() => {\n setListHeight(height);\n setListWidth(width);\n onSizeUpdate(width, height);\n }, 0);\n }\n },\n [listHeight, listWidth, onSizeUpdate]\n );\n\n const onItemsRenderedCB = useThrottledCallback(\n ({ visibleStartIndex, visibleStopIndex }: ListOnItemsRenderedProps) => {\n if (!onItemsRendered) return;\n const data = getOnItemsRenderedData(\n items,\n normalizedItems,\n idGetter,\n visibleStartIndex,\n visibleStopIndex,\n listSizeByLayout,\n scrollTopRef.current\n );\n onItemsRendered(data);\n },\n { wait: onItemsRenderedThrottleMs, trailing: true },\n [onItemsRendered, items, normalizedItems, idGetter, listSizeByLayout]\n );\n\n // Effects\n useEffect(() => {\n // scroll to specific item\n if (scrollToId && prevScrollToId !== scrollToId) {\n const hasScrollbar = isLayoutDirectionScrollbarVisible(items, normalizedItems, idGetter, listSizeByLayout);\n const item = normalizedItems[scrollToId as keyof typeof normalizedItems];\n hasScrollbar && item && startScrollAnimation(item);\n }\n }, [prevScrollToId, scrollToId, startScrollAnimation, normalizedItems, items, idGetter, listSizeByLayout]);\n\n useEffect(() => {\n // recalculate row heights\n if (listRef.current) {\n listRef.current.resetAfterIndex(0);\n }\n }, [normalizedItems]);\n\n useEffect(() => {\n // update vertical scrollbar visibility\n const callback = onLayoutDirectionScrollbarVisibilityChange || onVerticalScrollbarVisiblityChange;\n if (callback) {\n const isVisible = isLayoutDirectionScrollbarVisible(items, normalizedItems, idGetter, listSizeByLayout);\n if (isVerticalScrollbarVisibleRef.current !== isVisible) {\n isVerticalScrollbarVisibleRef.current = isVisible;\n callback(isVisible);\n }\n }\n }, [\n onLayoutDirectionScrollbarVisibilityChange,\n onVerticalScrollbarVisiblityChange,\n items,\n normalizedItems,\n listSizeByLayout,\n idGetter\n ]);\n\n return (\n <div\n ref={mergedRef}\n className={cx(styles.virtualizedListWrapper, className)}\n id={id}\n role={role}\n aria-label={ariaLabel}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.VIRTUALIZED_LIST, id)}\n style={style}\n >\n <AutoSizer>\n {({ height, width }: { height: number; width: number }) => {\n updateListSize(width, height);\n return (\n <List\n ref={mergedListRef as unknown as LegacyRef<VariableSizeList<unknown>>}\n height={height}\n width={width}\n itemCount={items.length}\n itemSize={calcItemSize}\n onScroll={onScrollCB}\n layout={layout}\n overscanCount={overscanCount}\n onItemsRendered={onItemsRenderedCB}\n className={scrollableClassName}\n >\n {rowRenderer as VibeComponent<ListChildComponentProps>}\n </List>\n );\n }}\n </AutoSizer>\n </div>\n );\n }\n);\n\nexport default VirtualizedList;\n"],"names":["VirtualizedList","forwardRef","_ref","ref","className","id","_ref$items","items","_ref$itemRenderer","itemRenderer","item","_index","_style","_ref$getItemHeight","getItemHeight","height","_ref$getItemSize","getItemSize","_ref$layout","layout","onScroll","_ref$overscanCount","overscanCount","_ref$getItemId","getItemId","scrollToId","_ref$scrollDuration","scrollDuration","_ref$onScrollToFinish","onScrollToFinished","NOOP","onItemsRendered","_ref$onItemsRenderedT","onItemsRenderedThrottleMs","_ref$onSizeUpdate","onSizeUpdate","_ref$onVerticalScroll","onVerticalScrollbarVisiblityChange","_ref$onLayoutDirectio","onLayoutDirectionScrollbarVisibilityChange","virtualListRef","scrollableClassName","role","ariaLabel","style","dataTestId","_useState","useState","_useState2","_slicedToArray","listHeight","setListHeight","_useState3","_useState4","listWidth","setListWidth","isVerticalList","listSizeByLayout","useMemo","prevScrollToId","usePrevious","componentRef","useRef","isVerticalScrollbarVisibleRef","listRef","scrollTopRef","animationDataRef","initialized","scrollOffsetInitial","scrollOffsetFinal","animationStartTime","mergedRef","useMergeRef","mergedListRef","animationData","current","sizeGetter","useCallback","index","undefined","console","error","idGetter","itemId","normalizedItems","getNormalizedItems","maxListOffset","getMaxOffset","onScrollCB","_ref2","scrollDirection","scrollOffset","scrollUpdateWasRequested","animateScroll","requestAnimationFrame","ellapsed","performance","now","scrollDelta","easedTime","easeInOutQuint","Math","min","finalOffsetValue","_a","scrollTo","startScrollAnimation","offsetTop","_b","state","_d","_c","rowRenderer","_ref3","calcItemSize","updateListSize","width","setTimeout","onItemsRenderedCB","useThrottledCallback","_ref4","data","getOnItemsRenderedData","visibleStartIndex","visibleStopIndex","wait","trailing","useEffect","hasScrollbar","isLayoutDirectionScrollbarVisible","resetAfterIndex","callback","isVisible","React","createElement","cx","styles","virtualizedListWrapper","getTestId","ComponentDefaultTestId","VIRTUALIZED_LIST","AutoSizer","_ref5","List","itemCount","length","itemSize"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/hooks/useKeyEvent/index.ts"],"sourcesContent":["import { RefObject, useCallback, useRef } from \"react\";\nimport useEventListener from \"../useEventListener\";\nimport { GenericEventCallback } from \"../../types/events\";\nimport { isClient } from \"../../utils/ssr-utils\";\n\nconst CTRL_OR_META = \"ctrlOrMetaKey\";\n\nenum Modifier {\n ALT = \"altKey\",\n META = \"metaKey\",\n CTRL = \"ctrlKey\",\n SHIFT = \"shiftKey\",\n CTRL_OR_META = \"ctrlOrMetaKey\"\n}\n\nconst checkModifierInEvent = (event: KeyboardEvent, modifier: Modifier) => {\n if (modifier === Modifier.CTRL_OR_META) {\n return event.ctrlKey || event.metaKey;\n }\n\n return event[modifier];\n};\nconst checkWithoutModifierInEvent = (event: KeyboardEvent) => {\n return !Object.values(useKeyEvent.modifiers).some((m: Modifier) => {\n if (m !== CTRL_OR_META) {\n return !!event[m];\n }\n });\n};\n\nexport interface UseKeyEventArgs {\n keys: KeyboardEvent[\"key\"][];\n // TODO: [breaking] change to keyboard event\n callback: GenericEventCallback;\n modifier?: Modifier;\n keyEventName?: string;\n withoutAnyModifier?: boolean;\n ref?: RefObject<HTMLElement | Document>;\n ignoreDocumentFallback?: boolean;\n capture?: boolean;\n preventDefault?: boolean;\n stopPropagation?: boolean;\n}\n\nexport default function useKeyEvent({\n keys = [],\n callback,\n modifier,\n withoutAnyModifier,\n ref,\n ignoreDocumentFallback = false,\n capture = false,\n preventDefault = false,\n stopPropagation = false,\n keyEventName = \"keydown\" // need keydown and not keyup to prevent scrolling with prevent default, for example during menu keyboard navigation\n}: UseKeyEventArgs) {\n const documentRef = useRef(isClient() ? document.body : null);\n const onKeyUpPress = useCallback(\n (event: KeyboardEvent) => {\n const { key } = event;\n if (!keys.includes(key)) {\n return;\n }\n if (modifier && !checkModifierInEvent(event, modifier)) {\n return;\n }\n if (withoutAnyModifier && !checkWithoutModifierInEvent(event)) {\n return;\n }\n\n if (preventDefault) {\n event.preventDefault();\n }\n\n if (stopPropagation) {\n event.stopPropagation();\n }\n\n callback(event);\n },\n [keys, modifier, withoutAnyModifier, preventDefault, stopPropagation, callback]\n );\n\n let listenerRef;\n\n if (ref) {\n listenerRef = ref;\n } else if (ignoreDocumentFallback) {\n listenerRef = null;\n } else {\n listenerRef = documentRef;\n }\n\n useEventListener({\n eventName: keyEventName,\n callback: onKeyUpPress,\n ref: listenerRef,\n capture\n });\n}\n\nuseKeyEvent.modifiers = Modifier;\n"],"names":["Modifier","useKeyEvent","_ref","_ref$keys","keys","callback","modifier","withoutAnyModifier","ref","_ref$ignoreDocumentFa","ignoreDocumentFallback","_ref$capture","capture","_ref$preventDefault","preventDefault","_ref$stopPropagation","stopPropagation","_ref$keyEventName","keyEventName","documentRef","useRef","isClient","document","body","onKeyUpPress","useCallback","event","includes","key","CTRL_OR_META","ctrlKey","metaKey","checkModifierInEvent","Object","values","modifiers","some","m","checkWithoutModifierInEvent","useEventListener","eventName"],"mappings":"gJAKA,IAEKA,GAAL,SAAKA,GACHA,EAAA,IAAA,SACAA,EAAA,KAAA,UACAA,EAAA,KAAA,UACAA,EAAA,MAAA,WACAA,EAAA,aAAA,eACD,CAND,CAAKA,IAAAA,EAMJ,CAAA,IA+Ba,SAAUC,EAAWC,GAWjB,IAAAC,EAAAD,EAVhBE,KAAAA,OAAO,IAAHD,EAAG,GAAEA,EACTE,EAAQH,EAARG,SACAC,EAAQJ,EAARI,SACAC,EAAkBL,EAAlBK,mBACAC,EAAGN,EAAHM,IAAGC,EAAAP,EACHQ,uBAAAA,OAAyB,IAAHD,GAAQA,EAAAE,EAAAT,EAC9BU,QAAAA,OAAU,IAAHD,GAAQA,EAAAE,EAAAX,EACfY,eAAAA,OAAiB,IAAHD,GAAQA,EAAAE,EAAAb,EACtBc,gBAAAA,OAAkB,IAAHD,GAAQA,EAAAE,EAAAf,EACvBgB,aAAAA,OAAe,IAAHD,EAAG,UAASA,EAElBE,EAAcC,EAAOC,IAAaC,SAASC,KAAO,MAClDC,EAAeC,GACnB,SAACC,GAEMtB,EAAKuB,SADMD,EAARE,OAIJtB,IAhDmB,SAACoB,EAAsBpB,GAClD,OAAIA,IAAaN,EAAS6B,aACjBH,EAAMI,SAAWJ,EAAMK,QAGzBL,EAAMpB,EACf,CA0CuB0B,CAAqBN,EAAOpB,IAGzCC,IA5C0B,SAACmB,GACnC,OAAQO,OAAOC,OAAOjC,EAAYkC,WAAWC,MAAK,SAACC,GACjD,GAnBiB,kBAmBbA,EACF,QAASX,EAAMW,EAEnB,GACF,CAsCiCC,CAA4BZ,KAInDZ,GACFY,EAAMZ,iBAGJE,GACFU,EAAMV,kBAGRX,EAASqB,IACX,GACA,CAACtB,EAAME,EAAUC,EAAoBO,EAAgBE,EAAiBX,IAaxEkC,EAAiB,CACfC,UAAWtB,EACXb,SAAUmB,EACVhB,IAXEA,IAEOE,EACK,KAEAS,GAOdP,QAAAA,GAEJ,CAEAX,EAAYkC,UAAYnC"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/hooks/useKeyEvent/index.ts"],"sourcesContent":["import { RefObject, useCallback, useRef } from \"react\";\nimport useEventListener from \"../useEventListener\";\nimport { GenericEventCallback } from \"../../types/events\";\nimport { isClient } from \"../../utils/ssr-utils\";\n\nconst CTRL_OR_META = \"ctrlOrMetaKey\";\n\nenum Modifier {\n ALT = \"altKey\",\n META = \"metaKey\",\n CTRL = \"ctrlKey\",\n SHIFT = \"shiftKey\",\n CTRL_OR_META = \"ctrlOrMetaKey\"\n}\n\nconst checkModifierInEvent = (event: KeyboardEvent, modifier: Modifier) => {\n if (modifier === Modifier.CTRL_OR_META) {\n return event.ctrlKey || event.metaKey;\n }\n\n return event[modifier];\n};\nconst checkWithoutModifierInEvent = (event: KeyboardEvent) => {\n return !Object.values(useKeyEvent.modifiers).some((m: Modifier) => {\n if (m !== CTRL_OR_META) {\n return !!event[m];\n }\n });\n};\n\nexport interface UseKeyEventArgs {\n /**\n * The list of keys that should trigger the event.\n */\n keys: KeyboardEvent[\"key\"][];\n // TODO: [breaking] change to keyboard event\n /**\n * Callback fired when a specified key is pressed.\n */\n callback: GenericEventCallback;\n /**\n * Modifier key that must be pressed along with the specified key.\n */\n modifier?: Modifier;\n /**\n * The keyboard event type to listen for (e.g., \"keydown\", \"keyup\").\n */\n keyEventName?: string;\n /**\n * If true, ensures no modifier keys are pressed when handling the event.\n */\n withoutAnyModifier?: boolean;\n /**\n * The element reference to listen for key events on.\n */\n ref?: RefObject<HTMLElement | Document>;\n /**\n * If true, prevents fallback to listening on the document when no ref is provided.\n */\n ignoreDocumentFallback?: boolean;\n /**\n * If true, uses capture phase instead of bubbling phase for event listening.\n */\n capture?: boolean;\n /**\n * If true, calls `preventDefault` on the key event.\n */\n preventDefault?: boolean;\n /**\n * If true, calls `stopPropagation` on the key event.\n */\n stopPropagation?: boolean;\n}\n\nexport default function useKeyEvent({\n keys = [],\n callback,\n modifier,\n withoutAnyModifier,\n ref,\n ignoreDocumentFallback = false,\n capture = false,\n preventDefault = false,\n stopPropagation = false,\n keyEventName = \"keydown\" // need keydown and not keyup to prevent scrolling with prevent default, for example during menu keyboard navigation\n}: UseKeyEventArgs) {\n const documentRef = useRef(isClient() ? document.body : null);\n const onKeyUpPress = useCallback(\n (event: KeyboardEvent) => {\n const { key } = event;\n if (!keys.includes(key)) {\n return;\n }\n if (modifier && !checkModifierInEvent(event, modifier)) {\n return;\n }\n if (withoutAnyModifier && !checkWithoutModifierInEvent(event)) {\n return;\n }\n\n if (preventDefault) {\n event.preventDefault();\n }\n\n if (stopPropagation) {\n event.stopPropagation();\n }\n\n callback(event);\n },\n [keys, modifier, withoutAnyModifier, preventDefault, stopPropagation, callback]\n );\n\n let listenerRef;\n\n if (ref) {\n listenerRef = ref;\n } else if (ignoreDocumentFallback) {\n listenerRef = null;\n } else {\n listenerRef = documentRef;\n }\n\n useEventListener({\n eventName: keyEventName,\n callback: onKeyUpPress,\n ref: listenerRef,\n capture\n });\n}\n\nuseKeyEvent.modifiers = Modifier;\n"],"names":["Modifier","useKeyEvent","_ref","_ref$keys","keys","callback","modifier","withoutAnyModifier","ref","_ref$ignoreDocumentFa","ignoreDocumentFallback","_ref$capture","capture","_ref$preventDefault","preventDefault","_ref$stopPropagation","stopPropagation","_ref$keyEventName","keyEventName","documentRef","useRef","isClient","document","body","onKeyUpPress","useCallback","event","includes","key","CTRL_OR_META","ctrlKey","metaKey","checkModifierInEvent","Object","values","modifiers","some","m","checkWithoutModifierInEvent","useEventListener","eventName"],"mappings":"gJAKA,IAEKA,GAAL,SAAKA,GACHA,EAAA,IAAA,SACAA,EAAA,KAAA,UACAA,EAAA,KAAA,UACAA,EAAA,MAAA,WACAA,EAAA,aAAA,eACD,CAND,CAAKA,IAAAA,EAMJ,CAAA,IA6Da,SAAUC,EAAWC,GAWjB,IAAAC,EAAAD,EAVhBE,KAAAA,OAAO,IAAHD,EAAG,GAAEA,EACTE,EAAQH,EAARG,SACAC,EAAQJ,EAARI,SACAC,EAAkBL,EAAlBK,mBACAC,EAAGN,EAAHM,IAAGC,EAAAP,EACHQ,uBAAAA,OAAyB,IAAHD,GAAQA,EAAAE,EAAAT,EAC9BU,QAAAA,OAAU,IAAHD,GAAQA,EAAAE,EAAAX,EACfY,eAAAA,OAAiB,IAAHD,GAAQA,EAAAE,EAAAb,EACtBc,gBAAAA,OAAkB,IAAHD,GAAQA,EAAAE,EAAAf,EACvBgB,aAAAA,OAAe,IAAHD,EAAG,UAASA,EAElBE,EAAcC,EAAOC,IAAaC,SAASC,KAAO,MAClDC,EAAeC,GACnB,SAACC,GAEMtB,EAAKuB,SADMD,EAARE,OAIJtB,IA9EmB,SAACoB,EAAsBpB,GAClD,OAAIA,IAAaN,EAAS6B,aACjBH,EAAMI,SAAWJ,EAAMK,QAGzBL,EAAMpB,EACf,CAwEuB0B,CAAqBN,EAAOpB,IAGzCC,IA1E0B,SAACmB,GACnC,OAAQO,OAAOC,OAAOjC,EAAYkC,WAAWC,MAAK,SAACC,GACjD,GAnBiB,kBAmBbA,EACF,QAASX,EAAMW,EAEnB,GACF,CAoEiCC,CAA4BZ,KAInDZ,GACFY,EAAMZ,iBAGJE,GACFU,EAAMV,kBAGRX,EAASqB,IACX,GACA,CAACtB,EAAME,EAAUC,EAAoBO,EAAgBE,EAAiBX,IAaxEkC,EAAiB,CACfC,UAAWtB,EACXb,SAAUmB,EACVhB,IAXEA,IAEOE,EACK,KAEAS,GAOdP,QAAAA,GAEJ,CAEAX,EAAYkC,UAAYnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/hooks/useSwitch/index.ts"],"sourcesContent":["import { ChangeEvent, useCallback, useEffect, useState } from \"react\";\n\nenum SwitchRole {\n CHECKBOX = \"checkbox\",\n BUTTON = \"button\"\n}\n\nexport interface UseSwitchProps {\n isChecked?: boolean;\n defaultChecked?: boolean;\n onChange?: (value: boolean, event?: ChangeEvent<HTMLInputElement> | unknown) => void;\n isDisabled?: boolean;\n}\n\nexport default function useSwitch({ isChecked, defaultChecked, onChange, isDisabled }: UseSwitchProps = {}) {\n // if isChecked is empty, set defaultChecked value (default false value)\n const overrideCheckedInitial = isChecked ?? !!defaultChecked;\n const [overrideChecked, setOverrideChecked] = useState(overrideCheckedInitial);\n\n const overrideOnChange = useCallback(\n (event?: ChangeEvent<HTMLInputElement> | unknown) => {\n if (isDisabled) {\n return;\n }\n const newChecked = !overrideChecked;\n if (isChecked === undefined) {\n setOverrideChecked(newChecked);\n }\n if (event && typeof event === \"object\" && \"target\" in event) {\n onChange?.(newChecked, event);\n } else {\n onChange?.(newChecked);\n }\n },\n [isChecked, isDisabled, onChange, overrideChecked]\n );\n\n useEffect(() => {\n if (isChecked !== undefined) {\n setOverrideChecked(isChecked);\n }\n }, [isChecked]);\n\n return { isChecked: overrideChecked, onChange: overrideOnChange };\n}\n\nuseSwitch.switchRole = SwitchRole;\n"],"names":["SwitchRole","useSwitch","_ref","arguments","length","undefined","isChecked","onChange","isDisabled","_useState","useState","defaultChecked","_useState2","_slicedToArray","overrideChecked","setOverrideChecked","overrideOnChange","useCallback","event","newChecked","_typeof","useEffect","switchRole"],"mappings":"4JAEA,IAAKA,EAYmB,SAAAC,IAAkF,IAAAC,EAAAC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAF,CAAE,EAAtEG,EAASJ,EAATI,UAA2BC,EAAQL,EAARK,SAAUC,EAAUN,EAAVM,WAGvEC,EAA8CC,EADfJ,QAAAA,IAF4BJ,EAAdS,gBAGiCC,EAAAC,EAAAJ,EAAA,GAAvEK,EAAeF,EAAA,GAAEG,EAAkBH,EAAA,GAEpCI,EAAmBC,GACvB,SAACC,GACC,IAAIV,EAAJ,CAGA,IAAMW,GAAcL,OACFT,IAAdC,GACFS,EAAmBI,GAEjBD,GAA0B,WAAjBE,EAAOF,IAAsB,WAAYA,EACpDX,SAAAA,EAAWY,EAAYD,GAEvBX,SAAAA,EAAWY,EARZ,CAUF,GACD,CAACb,EAAWE,EAAYD,EAAUO,IASpC,OANAO,GAAU,gBACUhB,IAAdC,GACFS,EAAmBT,EAEvB,GAAG,CAACA,IAEG,CAAEA,UAAWQ,EAAiBP,SAAUS,EACjD,EA1CA,SAAKhB,GACHA,EAAA,SAAA,WACAA,EAAA,OAAA,QACD,CAHD,CAAKA,IAAAA,EAGJ,CAAA,IAyCDC,EAAUqB,WAAatB"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/hooks/useSwitch/index.ts"],"sourcesContent":["import { ChangeEvent, useCallback, useEffect, useState } from \"react\";\n\nenum SwitchRole {\n CHECKBOX = \"checkbox\",\n BUTTON = \"button\"\n}\n\nexport interface UseSwitchProps {\n /**\n * If true, controls the checked state of the switch.\n */\n isChecked?: boolean;\n /**\n * The initial checked state when uncontrolled.\n */\n defaultChecked?: boolean;\n /**\n * Callback fired when the switch state changes.\n */\n onChange?: (value: boolean, event?: ChangeEvent<HTMLInputElement> | unknown) => void;\n /**\n * If true, disables interaction with the switch.\n */\n isDisabled?: boolean;\n}\n\nexport default function useSwitch({ isChecked, defaultChecked, onChange, isDisabled }: UseSwitchProps = {}) {\n // if isChecked is empty, set defaultChecked value (default false value)\n const overrideCheckedInitial = isChecked ?? !!defaultChecked;\n const [overrideChecked, setOverrideChecked] = useState(overrideCheckedInitial);\n\n const overrideOnChange = useCallback(\n (event?: ChangeEvent<HTMLInputElement> | unknown) => {\n if (isDisabled) {\n return;\n }\n const newChecked = !overrideChecked;\n if (isChecked === undefined) {\n setOverrideChecked(newChecked);\n }\n if (event && typeof event === \"object\" && \"target\" in event) {\n onChange?.(newChecked, event);\n } else {\n onChange?.(newChecked);\n }\n },\n [isChecked, isDisabled, onChange, overrideChecked]\n );\n\n useEffect(() => {\n if (isChecked !== undefined) {\n setOverrideChecked(isChecked);\n }\n }, [isChecked]);\n\n return { isChecked: overrideChecked, onChange: overrideOnChange };\n}\n\nuseSwitch.switchRole = SwitchRole;\n"],"names":["SwitchRole","useSwitch","_ref","arguments","length","undefined","isChecked","onChange","isDisabled","_useState","useState","defaultChecked","_useState2","_slicedToArray","overrideChecked","setOverrideChecked","overrideOnChange","useCallback","event","newChecked","_typeof","useEffect","switchRole"],"mappings":"4JAEA,IAAKA,EAwBmB,SAAAC,IAAkF,IAAAC,EAAAC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAF,CAAE,EAAtEG,EAASJ,EAATI,UAA2BC,EAAQL,EAARK,SAAUC,EAAUN,EAAVM,WAGvEC,EAA8CC,EADfJ,QAAAA,IAF4BJ,EAAdS,gBAGiCC,EAAAC,EAAAJ,EAAA,GAAvEK,EAAeF,EAAA,GAAEG,EAAkBH,EAAA,GAEpCI,EAAmBC,GACvB,SAACC,GACC,IAAIV,EAAJ,CAGA,IAAMW,GAAcL,OACFT,IAAdC,GACFS,EAAmBI,GAEjBD,GAA0B,WAAjBE,EAAOF,IAAsB,WAAYA,EACpDX,SAAAA,EAAWY,EAAYD,GAEvBX,SAAAA,EAAWY,EARZ,CAUF,GACD,CAACb,EAAWE,EAAYD,EAAUO,IASpC,OANAO,GAAU,gBACUhB,IAAdC,GACFS,EAAmBT,EAEvB,GAAG,CAACA,IAEG,CAAEA,UAAWQ,EAAiBP,SAAUS,EACjD,EAtDA,SAAKhB,GACHA,EAAA,SAAA,WACAA,EAAA,OAAA,QACD,CAHD,CAAKA,IAAAA,EAGJ,CAAA,IAqDDC,EAAUqB,WAAatB"}
@@ -1,5 +1,14 @@
1
1
  export default interface VibeComponentProps {
2
+ /**
3
+ * A CSS class name to apply to the component.
4
+ */
2
5
  className?: string;
6
+ /**
7
+ * A unique identifier for testing purposes.
8
+ */
3
9
  "data-testid"?: string;
10
+ /**
11
+ * An HTML id attribute for the component.
12
+ */
4
13
  id?: string;
5
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","sources":["../../../../../src/components/Accordion/Accordion/Accordion.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { forwardRef, ReactElement, useCallback, useMemo, useRef, useState } from \"react\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\nimport { VibeComponent, VibeComponentProps } from \"../../../types\";\nimport styles from \"./Accordion.module.scss\";\nimport { ComponentVibeId } from \"../../../tests/constants\";\n\nconst COMPONENT_ID = \"monday-accordion\";\n\nfunction defineChildId(index: number, props: { id: string }, accordionId: string) {\n if (props.id) {\n return props.id;\n }\n if (accordionId) {\n return `${accordionId}--item-${index}`;\n }\n return `${COMPONENT_ID}--item-${index}`;\n}\n\nexport interface AccordionProps extends VibeComponentProps {\n /**\n * List of AccordionItems\n */\n children?: Array<ReactElement> | ReactElement;\n /**\n * is allowed multiple opened accordion items\n */\n allowMultiple?: boolean;\n /**\n * Unique TestId - can be used as Selector for integration tests and other needs (tracking, etc.)\n */\n \"data-testid\"?: string;\n /**\n * Array of initial expanded indexes\n */\n defaultIndex?: Array<number>;\n /**\n * A class name to be added to the accordion container\n */\n className?: string;\n /**\n * An id to be added the accordion container.\n */\n id?: string;\n}\n\nconst Accordion: VibeComponent<AccordionProps, unknown> & object = forwardRef(\n (\n {\n children: originalChildren = null,\n allowMultiple = false,\n \"data-testid\": dataTestId = COMPONENT_ID,\n defaultIndex = [],\n className = \"\",\n id\n }: AccordionProps,\n ref\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n const [expandedItems, setExpandedItems] = useState(defaultIndex);\n\n const children = useMemo(() => React.Children.toArray(originalChildren), [originalChildren]);\n\n const isChildExpanded = useCallback(\n (itemIndex: number) => {\n return expandedItems.includes(itemIndex);\n },\n [expandedItems]\n );\n\n const onChildClick = useCallback(\n (itemIndex: number) => {\n if (allowMultiple) {\n const newExpandedItems = [...expandedItems];\n if (isChildExpanded(itemIndex)) {\n const index = newExpandedItems.indexOf(itemIndex);\n if (index > -1) {\n newExpandedItems.splice(index, 1);\n }\n } else {\n newExpandedItems.push(itemIndex);\n }\n setExpandedItems(newExpandedItems);\n return;\n }\n\n if (isChildExpanded(itemIndex)) {\n setExpandedItems([]);\n } else {\n setExpandedItems([itemIndex]);\n }\n },\n [isChildExpanded, expandedItems, allowMultiple]\n );\n\n const renderChildElements = useMemo(() => {\n return React.Children.map(children, (child: ReactElement, itemIndex) => {\n const originalProps = { ...child?.props };\n const childId = defineChildId(itemIndex, originalProps, id);\n return React.cloneElement(child, {\n ...originalProps,\n id: childId,\n onClickAccordionCallback: () => {\n onChildClick(itemIndex);\n },\n open: isChildExpanded(itemIndex),\n expandCollapseComponentClassName: cx(styles.accordionItemExpandCollapse, {\n [styles.accordionItemExpandCollapseLast]: itemIndex === children.length - 1\n })\n });\n });\n }, [children, id, isChildExpanded, onChildClick]);\n\n return (\n <div\n ref={mergedRef}\n className={cx(styles.accordion, className)}\n data-testid={dataTestId}\n data-vibe={ComponentVibeId.ACCORDION}\n id={id}\n >\n {children && renderChildElements}\n </div>\n );\n }\n);\n\nexport default Accordion;\n"],"names":["COMPONENT_ID","Accordion","forwardRef","_ref","ref","_ref$children","children","originalChildren","_ref$allowMultiple","allowMultiple","_ref$dataTestid","dataTestId","_ref$defaultIndex","defaultIndex","_ref$className","className","id","componentRef","useRef","mergedRef","useMergeRef","_useState","useState","_useState2","_slicedToArray","expandedItems","setExpandedItems","useMemo","React","Children","toArray","isChildExpanded","useCallback","itemIndex","includes","onChildClick","newExpandedItems","_toConsumableArray","index","indexOf","splice","push","renderChildElements","map","child","props","accordionId","originalProps","Object","assign","childId","concat","cloneElement","onClickAccordionCallback","open","expandCollapseComponentClassName","cx","styles","accordionItemExpandCollapse","_defineProperty","accordionItemExpandCollapseLast","length","createElement","accordion","ComponentVibeId","ACCORDION"],"mappings":"0YAOA,IAAMA,EAAe,mBAuCfC,IAAAA,EAA6DC,GACjE,SAAAC,EASEC,GACE,IAAAC,EAAAF,EARAG,SAAUC,OAAmB,IAAHF,EAAG,KAAIA,EAAAG,EAAAL,EACjCM,cAAAA,OAAgB,IAAHD,GAAQA,EAAAE,EAAAP,EACrB,eAAeQ,OAAaX,IAAHU,EAAGV,EAAYU,EAAAE,EAAAT,EACxCU,aAAAA,OAAe,IAAHD,EAAG,GAAEA,EAAAE,EAAAX,EACjBY,UAAAA,OAAY,IAAHD,EAAG,GAAEA,EACdE,EAAEb,EAAFa,GAIIC,EAAeC,EAAO,MACtBC,EAAYC,EAAYhB,EAAKa,GAEnCI,EAA0CC,EAAST,GAAaU,EAAAC,EAAAH,EAAA,GAAzDI,EAAaF,EAAA,GAAEG,EAAgBH,EAAA,GAEhCjB,EAAWqB,GAAQ,WAAA,OAAMC,EAAMC,SAASC,QAAQvB,KAAmB,CAACA,IAEpEwB,EAAkBC,GACtB,SAACC,GACC,OAAOR,EAAcS,SAASD,EAChC,GACA,CAACR,IAGGU,EAAeH,GACnB,SAACC,GACC,GAAIxB,EAAJ,CACE,IAAM2B,EAAgBC,EAAOZ,GAC7B,GAAIM,EAAgBE,GAAY,CAC9B,IAAMK,EAAQF,EAAiBG,QAAQN,GACnCK,GAAS,GACXF,EAAiBI,OAAOF,EAAO,EAElC,MACCF,EAAiBK,KAAKR,GAExBP,EAAiBU,EAElB,MAEGL,EAAgBE,GAClBP,EAAiB,IAEjBA,EAAiB,CAACO,GAErB,GACD,CAACF,EAAiBN,EAAehB,IAG7BiC,EAAsBf,GAAQ,WAClC,OAAOC,EAAMC,SAASc,IAAIrC,GAAU,SAACsC,EAAqBX,GACxD,IA1FeK,EAAeO,EAAuBC,EA0F/CC,EAAqBC,OAAAC,OAAA,CAAA,EAAAL,eAAAA,EAAOC,OAC5BK,GA3FSZ,EA2FeL,EA3FuBa,EA2FG9B,GA3F1B6B,EA2FWE,GA1FrC/B,GACD6B,EAAM7B,GAEX8B,EACF,GAAAK,OAAUL,EAAWK,WAAAA,OAAUb,GAEjC,GAAAa,OAAUnD,EAAYmD,WAAAA,OAAUb,IAqF1B,OAAOV,EAAMwB,aAAaR,EACrBI,OAAAC,OAAAD,OAAAC,OAAA,GAAAF,GACH,CAAA/B,GAAIkC,EACJG,yBAA0B,WACxBlB,EAAaF,EACd,EACDqB,KAAMvB,EAAgBE,GACtBsB,iCAAkCC,EAAGC,EAAOC,4BAA2BC,EACpEF,CAAAA,EAAAA,EAAOG,gCAAkC3B,IAAc3B,EAASuD,OAAS,MAGhF,GACD,GAAE,CAACvD,EAAUU,EAAIe,EAAiBI,IAEnC,OACEP,EAAAkC,cAAA,MAAA,CACE1D,IAAKe,EACLJ,UAAWyC,EAAGC,EAAOM,UAAWhD,GACnB,cAAAJ,EACF,YAAAqD,EAAgBC,UAC3BjD,GAAIA,GAEHV,GAAYoC,EAGnB"}
1
+ {"version":3,"file":"Accordion.js","sources":["../../../../../src/components/Accordion/Accordion/Accordion.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { forwardRef, ReactElement, useCallback, useMemo, useRef, useState } from \"react\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\nimport { VibeComponent, VibeComponentProps } from \"../../../types\";\nimport styles from \"./Accordion.module.scss\";\nimport { ComponentVibeId } from \"../../../tests/constants\";\n\nconst COMPONENT_ID = \"monday-accordion\";\n\nfunction defineChildId(index: number, props: { id: string }, accordionId: string) {\n if (props.id) {\n return props.id;\n }\n if (accordionId) {\n return `${accordionId}--item-${index}`;\n }\n return `${COMPONENT_ID}--item-${index}`;\n}\n\nexport interface AccordionProps extends VibeComponentProps {\n /**\n * The content of the accordion (`AccordionItem` components).\n */\n children?: Array<ReactElement> | ReactElement;\n /**\n * If true, multiple accordion items can be expanded at the same time.\n */\n allowMultiple?: boolean;\n /**\n * An array of initially expanded item indexes.\n */\n defaultIndex?: Array<number>;\n}\n\nconst Accordion: VibeComponent<AccordionProps, unknown> & object = forwardRef(\n (\n {\n children: originalChildren = null,\n allowMultiple = false,\n \"data-testid\": dataTestId = COMPONENT_ID,\n defaultIndex = [],\n className = \"\",\n id\n }: AccordionProps,\n ref\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n const [expandedItems, setExpandedItems] = useState(defaultIndex);\n\n const children = useMemo(() => React.Children.toArray(originalChildren), [originalChildren]);\n\n const isChildExpanded = useCallback(\n (itemIndex: number) => {\n return expandedItems.includes(itemIndex);\n },\n [expandedItems]\n );\n\n const onChildClick = useCallback(\n (itemIndex: number) => {\n if (allowMultiple) {\n const newExpandedItems = [...expandedItems];\n if (isChildExpanded(itemIndex)) {\n const index = newExpandedItems.indexOf(itemIndex);\n if (index > -1) {\n newExpandedItems.splice(index, 1);\n }\n } else {\n newExpandedItems.push(itemIndex);\n }\n setExpandedItems(newExpandedItems);\n return;\n }\n\n if (isChildExpanded(itemIndex)) {\n setExpandedItems([]);\n } else {\n setExpandedItems([itemIndex]);\n }\n },\n [isChildExpanded, expandedItems, allowMultiple]\n );\n\n const renderChildElements = useMemo(() => {\n return React.Children.map(children, (child: ReactElement, itemIndex) => {\n const originalProps = { ...child?.props };\n const childId = defineChildId(itemIndex, originalProps, id);\n return React.cloneElement(child, {\n ...originalProps,\n id: childId,\n onClickAccordionCallback: () => {\n onChildClick(itemIndex);\n },\n open: isChildExpanded(itemIndex),\n expandCollapseComponentClassName: cx(styles.accordionItemExpandCollapse, {\n [styles.accordionItemExpandCollapseLast]: itemIndex === children.length - 1\n })\n });\n });\n }, [children, id, isChildExpanded, onChildClick]);\n\n return (\n <div\n ref={mergedRef}\n className={cx(styles.accordion, className)}\n data-testid={dataTestId}\n data-vibe={ComponentVibeId.ACCORDION}\n id={id}\n >\n {children && renderChildElements}\n </div>\n );\n }\n);\n\nexport default Accordion;\n"],"names":["COMPONENT_ID","Accordion","forwardRef","_ref","ref","_ref$children","children","originalChildren","_ref$allowMultiple","allowMultiple","_ref$dataTestid","dataTestId","_ref$defaultIndex","defaultIndex","_ref$className","className","id","componentRef","useRef","mergedRef","useMergeRef","_useState","useState","_useState2","_slicedToArray","expandedItems","setExpandedItems","useMemo","React","Children","toArray","isChildExpanded","useCallback","itemIndex","includes","onChildClick","newExpandedItems","_toConsumableArray","index","indexOf","splice","push","renderChildElements","map","child","props","accordionId","originalProps","Object","assign","childId","concat","cloneElement","onClickAccordionCallback","open","expandCollapseComponentClassName","cx","styles","accordionItemExpandCollapse","_defineProperty","accordionItemExpandCollapseLast","length","createElement","accordion","ComponentVibeId","ACCORDION"],"mappings":"0YAOA,IAAMA,EAAe,mBA2BfC,IAAAA,EAA6DC,GACjE,SAAAC,EASEC,GACE,IAAAC,EAAAF,EARAG,SAAUC,OAAmB,IAAHF,EAAG,KAAIA,EAAAG,EAAAL,EACjCM,cAAAA,OAAgB,IAAHD,GAAQA,EAAAE,EAAAP,EACrB,eAAeQ,OAAaX,IAAHU,EAAGV,EAAYU,EAAAE,EAAAT,EACxCU,aAAAA,OAAe,IAAHD,EAAG,GAAEA,EAAAE,EAAAX,EACjBY,UAAAA,OAAY,IAAHD,EAAG,GAAEA,EACdE,EAAEb,EAAFa,GAIIC,EAAeC,EAAO,MACtBC,EAAYC,EAAYhB,EAAKa,GAEnCI,EAA0CC,EAAST,GAAaU,EAAAC,EAAAH,EAAA,GAAzDI,EAAaF,EAAA,GAAEG,EAAgBH,EAAA,GAEhCjB,EAAWqB,GAAQ,WAAA,OAAMC,EAAMC,SAASC,QAAQvB,KAAmB,CAACA,IAEpEwB,EAAkBC,GACtB,SAACC,GACC,OAAOR,EAAcS,SAASD,EAChC,GACA,CAACR,IAGGU,EAAeH,GACnB,SAACC,GACC,GAAIxB,EAAJ,CACE,IAAM2B,EAAgBC,EAAOZ,GAC7B,GAAIM,EAAgBE,GAAY,CAC9B,IAAMK,EAAQF,EAAiBG,QAAQN,GACnCK,GAAS,GACXF,EAAiBI,OAAOF,EAAO,EAElC,MACCF,EAAiBK,KAAKR,GAExBP,EAAiBU,EAElB,MAEGL,EAAgBE,GAClBP,EAAiB,IAEjBA,EAAiB,CAACO,GAErB,GACD,CAACF,EAAiBN,EAAehB,IAG7BiC,EAAsBf,GAAQ,WAClC,OAAOC,EAAMC,SAASc,IAAIrC,GAAU,SAACsC,EAAqBX,GACxD,IA9EeK,EAAeO,EAAuBC,EA8E/CC,EAAqBC,OAAAC,OAAA,CAAA,EAAAL,eAAAA,EAAOC,OAC5BK,GA/ESZ,EA+EeL,EA/EuBa,EA+EG9B,GA/E1B6B,EA+EWE,GA9ErC/B,GACD6B,EAAM7B,GAEX8B,EACF,GAAAK,OAAUL,EAAWK,WAAAA,OAAUb,GAEjC,GAAAa,OAAUnD,EAAYmD,WAAAA,OAAUb,IAyE1B,OAAOV,EAAMwB,aAAaR,EACrBI,OAAAC,OAAAD,OAAAC,OAAA,GAAAF,GACH,CAAA/B,GAAIkC,EACJG,yBAA0B,WACxBlB,EAAaF,EACd,EACDqB,KAAMvB,EAAgBE,GACtBsB,iCAAkCC,EAAGC,EAAOC,4BAA2BC,EACpEF,CAAAA,EAAAA,EAAOG,gCAAkC3B,IAAc3B,EAASuD,OAAS,MAGhF,GACD,GAAE,CAACvD,EAAUU,EAAIe,EAAiBI,IAEnC,OACEP,EAAAkC,cAAA,MAAA,CACE1D,IAAKe,EACLJ,UAAWyC,EAAGC,EAAOM,UAAWhD,GACnB,cAAAJ,EACF,YAAAqD,EAAgBC,UAC3BjD,GAAIA,GAEHV,GAAYoC,EAGnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionItem.js","sources":["../../../../../src/components/Accordion/AccordionItem/AccordionItem.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useRef } from \"react\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\nimport ExpandCollapse from \"../../ExpandCollapse/ExpandCollapse\";\nimport { VibeComponentProps, ElementContent } from \"../../../types\";\n\nexport interface AccordionItemProps extends VibeComponentProps {\n /**\n * Header title for the accordion item.\n */\n title?: ElementContent;\n /**\n * The value of the expandable section\n */\n children?: ElementContent;\n /**\n * The font size of the expand/collapse icon.\n */\n iconSize?: number | string;\n /**\n * Custom callback triggered when the item is clicked.\n */\n onClick?: () => void;\n /** @ignore */\n open?: boolean;\n /** @ignore */\n onClickAccordionCallback?: () => void;\n /**\n * Determines whether the item's border is hidden.\n */\n hideBorder?: boolean;\n /**\n * Custom class name to add to the header of the expandable\n */\n headerClassName?: string;\n /**\n * Custom class name to add to the content of the expandable\n */\n contentClassName?: string;\n /**\n * Custom class name to add to the ExpandCollapse component\n */\n expandCollapseComponentClassName?: string;\n /**\n * If true, the click event is handled during the capture phase instead of bubbling.\n */\n captureOnClick?: boolean;\n /**\n * A class name to be added to the accordion item container\n */\n className?: string;\n /**\n * An id to be added the accordion item container.\n */\n id?: string;\n}\n\nconst AccordionItem: React.FC<AccordionItemProps> = forwardRef(\n (\n {\n children = null,\n title = \"\",\n className = \"\",\n iconSize = 24,\n id,\n open,\n onClick,\n onClickAccordionCallback,\n hideBorder = false,\n headerClassName,\n contentClassName,\n expandCollapseComponentClassName,\n captureOnClick = true\n },\n ref\n ) => {\n // Change onClick param name to onClickCallback in 1.0.0\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n const onClickCallback = useCallback(() => {\n onClickAccordionCallback && onClickAccordionCallback();\n onClick && onClick();\n }, [onClickAccordionCallback, onClick]);\n\n return (\n <div ref={mergedRef} className={className} id={id}>\n <ExpandCollapse\n iconSize={iconSize}\n id={`expand-collapse--${id}`}\n onClick={onClickCallback}\n open={open}\n title={title}\n hideBorder={hideBorder}\n componentClassName={expandCollapseComponentClassName}\n headerClassName={headerClassName}\n contentClassName={contentClassName}\n captureOnClick={captureOnClick}\n >\n {children}\n </ExpandCollapse>\n </div>\n );\n }\n);\n\nexport default AccordionItem;\n"],"names":["AccordionItem","forwardRef","_ref","ref","_ref$children","children","_ref$title","title","_ref$className","className","_ref$iconSize","iconSize","id","open","onClick","onClickAccordionCallback","_ref$hideBorder","hideBorder","headerClassName","contentClassName","expandCollapseComponentClassName","_ref$captureOnClick","captureOnClick","componentRef","useRef","mergedRef","useMergeRef","onClickCallback","useCallback","React","createElement","ExpandCollapse","concat","componentClassName"],"mappings":"sKAwDMA,IAAAA,EAA8CC,GAClD,SAAAC,EAgBEC,GACE,IAAAC,EAAAF,EAfAG,SAAAA,OAAW,IAAHD,EAAG,KAAIA,EAAAE,EAAAJ,EACfK,MAAAA,OAAQ,IAAHD,EAAG,GAAEA,EAAAE,EAAAN,EACVO,UAAAA,OAAY,IAAHD,EAAG,GAAEA,EAAAE,EAAAR,EACdS,SAAAA,OAAW,IAAHD,EAAG,GAAEA,EACbE,EAAEV,EAAFU,GACAC,EAAIX,EAAJW,KACAC,EAAOZ,EAAPY,QACAC,EAAwBb,EAAxBa,yBAAwBC,EAAAd,EACxBe,WAAAA,OAAa,IAAHD,GAAQA,EAClBE,EAAehB,EAAfgB,gBACAC,EAAgBjB,EAAhBiB,iBACAC,EAAgClB,EAAhCkB,iCAAgCC,EAAAnB,EAChCoB,eAAAA,OAAiB,IAAHD,GAAOA,EAKjBE,EAAeC,EAAO,MACtBC,EAAYC,EAAYvB,EAAKoB,GAE7BI,EAAkBC,GAAY,WAClCb,GAA4BA,IAC5BD,GAAWA,GACb,GAAG,CAACC,EAA0BD,IAE9B,OACEe,EAAAC,cAAA,MAAA,CAAK3B,IAAKsB,EAAWhB,UAAWA,EAAWG,GAAIA,GAC7CiB,EAACC,cAAAC,GACCpB,SAAUA,EACVC,GAAEoB,oBAAAA,OAAsBpB,GACxBE,QAASa,EACTd,KAAMA,EACNN,MAAOA,EACPU,WAAYA,EACZgB,mBAAoBb,EACpBF,gBAAiBA,EACjBC,iBAAkBA,EAClBG,eAAgBA,GAEfjB,GAIT"}
1
+ {"version":3,"file":"AccordionItem.js","sources":["../../../../../src/components/Accordion/AccordionItem/AccordionItem.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useRef } from \"react\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\nimport ExpandCollapse from \"../../ExpandCollapse/ExpandCollapse\";\nimport { VibeComponentProps, ElementContent } from \"../../../types\";\n\nexport interface AccordionItemProps extends VibeComponentProps {\n /**\n * The header content displayed in the accordion item.\n */\n title?: ElementContent;\n /**\n * The content rendered inside the accordion item.\n */\n children?: ElementContent;\n /**\n * The size of the expand/collapse icon.\n */\n iconSize?: number | string;\n /**\n * Callback fired upon item click.\n */\n onClick?: () => void;\n /** @ignore */\n open?: boolean;\n /** @ignore */\n onClickAccordionCallback?: () => void;\n /**\n * If true, the accordion item's border is hidden.\n */\n hideBorder?: boolean;\n /**\n * Class name applied to the accordion item's header.\n */\n headerClassName?: string;\n /**\n * Class name applied to the accordion item's content.\n */\n contentClassName?: string;\n /**\n * Class name applied to the expand/collapse component.\n */\n expandCollapseComponentClassName?: string;\n /**\n * If true, the click event is handled during the capture phase.\n */\n captureOnClick?: boolean;\n}\n\nconst AccordionItem: React.FC<AccordionItemProps> = forwardRef(\n (\n {\n children = null,\n title = \"\",\n className = \"\",\n iconSize = 24,\n id,\n open,\n onClick,\n onClickAccordionCallback,\n hideBorder = false,\n headerClassName,\n contentClassName,\n expandCollapseComponentClassName,\n captureOnClick = true\n },\n ref\n ) => {\n // Change onClick param name to onClickCallback in 1.0.0\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n const onClickCallback = useCallback(() => {\n onClickAccordionCallback && onClickAccordionCallback();\n onClick && onClick();\n }, [onClickAccordionCallback, onClick]);\n\n return (\n <div ref={mergedRef} className={className} id={id}>\n <ExpandCollapse\n iconSize={iconSize}\n id={`expand-collapse--${id}`}\n onClick={onClickCallback}\n open={open}\n title={title}\n hideBorder={hideBorder}\n componentClassName={expandCollapseComponentClassName}\n headerClassName={headerClassName}\n contentClassName={contentClassName}\n captureOnClick={captureOnClick}\n >\n {children}\n </ExpandCollapse>\n </div>\n );\n }\n);\n\nexport default AccordionItem;\n"],"names":["AccordionItem","forwardRef","_ref","ref","_ref$children","children","_ref$title","title","_ref$className","className","_ref$iconSize","iconSize","id","open","onClick","onClickAccordionCallback","_ref$hideBorder","hideBorder","headerClassName","contentClassName","expandCollapseComponentClassName","_ref$captureOnClick","captureOnClick","componentRef","useRef","mergedRef","useMergeRef","onClickCallback","useCallback","React","createElement","ExpandCollapse","concat","componentClassName"],"mappings":"sKAgDMA,IAAAA,EAA8CC,GAClD,SAAAC,EAgBEC,GACE,IAAAC,EAAAF,EAfAG,SAAAA,OAAW,IAAHD,EAAG,KAAIA,EAAAE,EAAAJ,EACfK,MAAAA,OAAQ,IAAHD,EAAG,GAAEA,EAAAE,EAAAN,EACVO,UAAAA,OAAY,IAAHD,EAAG,GAAEA,EAAAE,EAAAR,EACdS,SAAAA,OAAW,IAAHD,EAAG,GAAEA,EACbE,EAAEV,EAAFU,GACAC,EAAIX,EAAJW,KACAC,EAAOZ,EAAPY,QACAC,EAAwBb,EAAxBa,yBAAwBC,EAAAd,EACxBe,WAAAA,OAAa,IAAHD,GAAQA,EAClBE,EAAehB,EAAfgB,gBACAC,EAAgBjB,EAAhBiB,iBACAC,EAAgClB,EAAhCkB,iCAAgCC,EAAAnB,EAChCoB,eAAAA,OAAiB,IAAHD,GAAOA,EAKjBE,EAAeC,EAAO,MACtBC,EAAYC,EAAYvB,EAAKoB,GAE7BI,EAAkBC,GAAY,WAClCb,GAA4BA,IAC5BD,GAAWA,GACb,GAAG,CAACC,EAA0BD,IAE9B,OACEe,EAAAC,cAAA,MAAA,CAAK3B,IAAKsB,EAAWhB,UAAWA,EAAWG,GAAIA,GAC7CiB,EAACC,cAAAC,GACCpB,SAAUA,EACVC,GAAEoB,oBAAAA,OAAsBpB,GACxBE,QAASa,EACTd,KAAMA,EACNN,MAAOA,EACPU,WAAYA,EACZgB,mBAAoBb,EACpBF,gBAAiBA,EACjBC,iBAAkBA,EAClBG,eAAgBA,GAEfjB,GAIT"}
@@ -1 +1 @@
1
- {"version":3,"file":"AlertBanner.js","sources":["../../../../src/components/AlertBanner/AlertBanner.tsx"],"sourcesContent":["import { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport cx from \"classnames\";\nimport React, { ForwardedRef, forwardRef, ReactElement, useMemo } from \"react\";\nimport IconButton from \"../../components/IconButton/IconButton\";\nimport { CloseSmall } from \"@vibe/icons\";\nimport { AlertBannerBackgroundColor as AlertBannerBackgroundColorEnum } from \"./AlertBannerConstants\";\nimport { AlertBannerBackgroundColor } from \"./AlertBanner.types\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport VibeComponentProps from \"../../types/VibeComponentProps\";\nimport { AlertBannerLinkProps } from \"./AlertBannerLink/AlertBannerLink\";\nimport { AlertBannerButtonProps } from \"./AlertBannerButton/AlertBannerButton\";\nimport { AlertBannerTextProps } from \"./AlertBannerText/AlertBannerText\";\nimport { ComponentDefaultTestId } from \"../../tests/constants\";\nimport { getTestId } from \"../../tests/test-ids-utils\";\nimport { VibeComponent, withStaticProps } from \"../../types\";\nimport styles from \"./AlertBanner.module.scss\";\nimport Text from \"../Text/Text\";\nimport { AlertBannerContext } from \"./AlertBannerContext\";\n\ntype ChildrenType = ReactElement<AlertBannerButtonProps | AlertBannerLinkProps | AlertBannerTextProps>;\n\nexport interface AlertBannerProps extends VibeComponentProps {\n /**\n * Set external styling to the progress bar.\n */\n className?: string;\n backgroundColor?: AlertBannerBackgroundColor;\n isCloseHidden?: boolean;\n /** ARIA description for the progress bar */\n ariaLabel?: string;\n closeButtonAriaLabel?: string;\n onClose?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n children?: ChildrenType | ChildrenType[];\n}\n\nconst AlertBanner: VibeComponent<AlertBannerProps> & {\n backgroundColors?: typeof AlertBannerBackgroundColorEnum;\n} = forwardRef(\n (\n {\n children: originalChildren,\n className,\n backgroundColor = \"primary\",\n onClose = NOOP,\n ariaLabel = \"\",\n closeButtonAriaLabel = \"Close\",\n isCloseHidden = false,\n id,\n \"data-testid\": dataTestId\n }: AlertBannerProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const classNames = useMemo(() => {\n return cx(className, styles.alertBanner, getStyle(styles, backgroundColor));\n }, [className, backgroundColor]);\n\n const isDarkBackground = backgroundColor === \"dark\";\n const isFixedColor = backgroundColor === \"warning\";\n const textColor = useMemo(() => {\n if (isFixedColor) {\n return \"fixedDark\";\n }\n return isDarkBackground ? \"onInverted\" : \"onPrimary\";\n }, [isDarkBackground, isFixedColor]);\n const children = useMemo(() => {\n const allChildren = React.Children.toArray(originalChildren) as ReactElement[];\n const filteredChildren = allChildren.filter(\n (\n child: ReactElement & {\n type: Record<string, unknown>;\n }\n ) => {\n if (child.type.isAlertBannerItem || child.type.displayName === \"MDXCreateElement\") return true;\n console.error(\n \"Alert banner child is not supported. Please use AlertBannerText, AlertBannerLink or AlertBannerButton.\",\n child\n );\n return false;\n }\n );\n\n return filteredChildren.map((child, index) => {\n return React.cloneElement(child, {\n ...child?.props,\n marginLeft: index > 0,\n isDarkBackground\n });\n });\n }, [originalChildren, isDarkBackground]);\n\n return (\n <Text\n type=\"text2\"\n color={textColor}\n ref={ref}\n className={classNames}\n role=\"banner\"\n aria-label={ariaLabel || \"banner\"}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.ALERT_BANNER, id)}\n >\n <AlertBannerContext.Provider value={{ textColor }}>\n <div className={cx(styles.content)}>\n {children.map(\n (\n child: ReactElement & {\n type: Record<string, unknown>;\n },\n index\n ) => {\n const childTypeIsAlertBannerText = child.type.isAlertBannerText;\n return (\n <div\n key={index}\n className={cx(styles.contentItem, {\n [styles.contentItemText]: childTypeIsAlertBannerText\n })}\n >\n {childTypeIsAlertBannerText ? <div className={cx(styles.ellipsis)}>{child}</div> : child}\n </div>\n );\n }\n )}\n </div>\n </AlertBannerContext.Provider>\n <div className={cx(styles.closeButtonWrapper)}>\n {isCloseHidden ? null : (\n <IconButton\n data-testid=\"alert-banner-close-button\"\n icon={CloseSmall}\n className={cx(styles.closeBtn)}\n hideTooltip\n onClick={onClose}\n size=\"small\"\n kind=\"tertiary\"\n color={isDarkBackground ? \"on-inverted-background\" : \"on-primary-color\"}\n ariaLabel={closeButtonAriaLabel}\n />\n )}\n </div>\n </Text>\n );\n }\n);\n\nexport default withStaticProps(AlertBanner, { backgroundColors: AlertBannerBackgroundColorEnum });\n"],"names":["withStaticProps","forwardRef","_ref","ref","originalChildren","children","className","_ref$backgroundColor","backgroundColor","_ref$onClose","onClose","NOOP","_ref$ariaLabel","ariaLabel","_ref$closeButtonAriaL","closeButtonAriaLabel","_ref$isCloseHidden","isCloseHidden","id","dataTestId","classNames","useMemo","cx","styles","alertBanner","getStyle","isDarkBackground","isFixedColor","textColor","React","Children","toArray","filter","child","type","isAlertBannerItem","displayName","console","error","map","index","cloneElement","Object","assign","props","marginLeft","createElement","Text","color","role","getTestId","ComponentDefaultTestId","ALERT_BANNER","AlertBannerContext","Provider","value","content","childTypeIsAlertBannerText","isAlertBannerText","key","contentItem","_defineProperty","contentItemText","ellipsis","closeButtonWrapper","IconButton","icon","CloseSmall","closeBtn","hideTooltip","onClick","size","kind","backgroundColors","AlertBannerBackgroundColorEnum"],"mappings":"syBAmCA,IA8GeA,EAAAA,EA5GXC,GACF,SAAAC,EAYEC,GACE,IAXUC,EAAgBF,EAA1BG,SACAC,EAASJ,EAATI,UAASC,EAAAL,EACTM,gBAAAA,OAAkB,IAAHD,EAAG,UAASA,EAAAE,EAAAP,EAC3BQ,QAAAA,OAAUC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAV,EACdW,UAAAA,OAAY,IAAHD,EAAG,GAAEA,EAAAE,EAAAZ,EACda,qBAAAA,OAAuB,IAAHD,EAAG,QAAOA,EAAAE,EAAAd,EAC9Be,cAAAA,OAAgB,IAAHD,GAAQA,EACrBE,EAAEhB,EAAFgB,GACeC,EAAUjB,EAAzB,eAIIkB,EAAaC,GAAQ,WACzB,OAAOC,EAAGhB,EAAWiB,EAAOC,YAAaC,EAASF,EAAQf,GAC5D,GAAG,CAACF,EAAWE,IAETkB,EAAuC,SAApBlB,EACnBmB,EAAmC,YAApBnB,EACfoB,EAAYP,GAAQ,WACxB,OAAIM,EACK,YAEFD,EAAmB,aAAe,WAC3C,GAAG,CAACA,EAAkBC,IAChBtB,EAAWgB,GAAQ,WAiBvB,OAhBoBQ,EAAMC,SAASC,QAAQ3B,GACN4B,QACnC,SACEC,GAIA,SAAIA,EAAMC,KAAKC,mBAAgD,qBAA3BF,EAAMC,KAAKE,eAC/CC,QAAQC,MACN,yGACAL,IAEK,EACT,IAGsBM,KAAI,SAACN,EAAOO,GAClC,OAAOX,EAAMY,aAAaR,EACrBS,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAV,aAAA,EAAAA,EAAOW,OAAK,CACfC,WAAYL,EAAQ,EACpBd,iBAAAA,IAEJ,GACF,GAAG,CAACtB,EAAkBsB,IAEtB,OACEG,EAACiB,cAAAC,GACCb,KAAK,QACLc,MAAOpB,EACPzB,IAAKA,EACLG,UAAWc,EACX6B,KAAK,SACO,aAAApC,GAAa,SACzBK,GAAIA,gBACSC,GAAc+B,EAAUC,EAAuBC,aAAclC,IAE1EW,EAACiB,cAAAO,EAAmBC,SAAQ,CAACC,MAAO,CAAE3B,UAAAA,IACpCC,EAAAiB,cAAA,MAAA,CAAKxC,UAAWgB,EAAGC,EAAOiC,UACvBnD,EAASkC,KACR,SACEN,EAGAO,GAEA,IAAMiB,EAA6BxB,EAAMC,KAAKwB,kBAC9C,OACE7B,EAAAiB,cAAA,MAAA,CACEa,IAAKnB,EACLlC,UAAWgB,EAAGC,EAAOqC,YAAWC,EAAA,CAAA,EAC7BtC,EAAOuC,gBAAkBL,KAG3BA,EAA6B5B,EAAKiB,cAAA,MAAA,CAAAxC,UAAWgB,EAAGC,EAAOwC,WAAY9B,GAAeA,EAGxF,MAIPJ,EAAAiB,cAAA,MAAA,CAAKxC,UAAWgB,EAAGC,EAAOyC,qBACvB/C,EAAgB,KACfY,EAACiB,cAAAmB,EACa,CAAA,cAAA,4BACZC,KAAMC,EACN7D,UAAWgB,EAAGC,EAAO6C,UACrBC,aACA,EAAAC,QAAS5D,EACT6D,KAAK,QACLC,KAAK,WACLxB,MAAOtB,EAAmB,yBAA2B,mBACrDb,UAAWE,KAMvB,IAG0C,CAAE0D,iBAAkBC"}
1
+ {"version":3,"file":"AlertBanner.js","sources":["../../../../src/components/AlertBanner/AlertBanner.tsx"],"sourcesContent":["import { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport cx from \"classnames\";\nimport React, { ForwardedRef, forwardRef, ReactElement, useMemo } from \"react\";\nimport IconButton from \"../../components/IconButton/IconButton\";\nimport { CloseSmall } from \"@vibe/icons\";\nimport { AlertBannerBackgroundColor as AlertBannerBackgroundColorEnum } from \"./AlertBannerConstants\";\nimport { AlertBannerBackgroundColor } from \"./AlertBanner.types\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport VibeComponentProps from \"../../types/VibeComponentProps\";\nimport { AlertBannerLinkProps } from \"./AlertBannerLink/AlertBannerLink\";\nimport { AlertBannerButtonProps } from \"./AlertBannerButton/AlertBannerButton\";\nimport { AlertBannerTextProps } from \"./AlertBannerText/AlertBannerText\";\nimport { ComponentDefaultTestId } from \"../../tests/constants\";\nimport { getTestId } from \"../../tests/test-ids-utils\";\nimport { VibeComponent, withStaticProps } from \"../../types\";\nimport styles from \"./AlertBanner.module.scss\";\nimport Text from \"../Text/Text\";\nimport { AlertBannerContext } from \"./AlertBannerContext\";\n\ntype ChildrenType = ReactElement<AlertBannerButtonProps | AlertBannerLinkProps | AlertBannerTextProps>;\n\nexport interface AlertBannerProps extends VibeComponentProps {\n /**\n * The background color of the alert banner.\n */\n backgroundColor?: AlertBannerBackgroundColor;\n /**\n * If true, the close button is hidden.\n */\n isCloseHidden?: boolean;\n /**\n * The ARIA label of the alert banner for accessibility.\n */\n ariaLabel?: string;\n /**\n * The ARIA label of the close button for accessibility.\n */\n closeButtonAriaLabel?: string;\n /**\n * Callback fired when the close button is clicked.\n */\n onClose?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n /**\n * The content of the alert banner.\n */\n children?: ChildrenType | ChildrenType[];\n}\n\nconst AlertBanner: VibeComponent<AlertBannerProps> & {\n backgroundColors?: typeof AlertBannerBackgroundColorEnum;\n} = forwardRef(\n (\n {\n children: originalChildren,\n className,\n backgroundColor = \"primary\",\n onClose = NOOP,\n ariaLabel = \"\",\n closeButtonAriaLabel = \"Close\",\n isCloseHidden = false,\n id,\n \"data-testid\": dataTestId\n }: AlertBannerProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const classNames = useMemo(() => {\n return cx(className, styles.alertBanner, getStyle(styles, backgroundColor));\n }, [className, backgroundColor]);\n\n const isDarkBackground = backgroundColor === \"dark\";\n const isFixedColor = backgroundColor === \"warning\";\n const textColor = useMemo(() => {\n if (isFixedColor) {\n return \"fixedDark\";\n }\n return isDarkBackground ? \"onInverted\" : \"onPrimary\";\n }, [isDarkBackground, isFixedColor]);\n const children = useMemo(() => {\n const allChildren = React.Children.toArray(originalChildren) as ReactElement[];\n const filteredChildren = allChildren.filter(\n (\n child: ReactElement & {\n type: Record<string, unknown>;\n }\n ) => {\n if (child.type.isAlertBannerItem || child.type.displayName === \"MDXCreateElement\") return true;\n console.error(\n \"Alert banner child is not supported. Please use AlertBannerText, AlertBannerLink or AlertBannerButton.\",\n child\n );\n return false;\n }\n );\n\n return filteredChildren.map((child, index) => {\n return React.cloneElement(child, {\n ...child?.props,\n marginLeft: index > 0,\n isDarkBackground\n });\n });\n }, [originalChildren, isDarkBackground]);\n\n return (\n <Text\n type=\"text2\"\n color={textColor}\n ref={ref}\n className={classNames}\n role=\"banner\"\n aria-label={ariaLabel || \"banner\"}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.ALERT_BANNER, id)}\n >\n <AlertBannerContext.Provider value={{ textColor }}>\n <div className={cx(styles.content)}>\n {children.map(\n (\n child: ReactElement & {\n type: Record<string, unknown>;\n },\n index\n ) => {\n const childTypeIsAlertBannerText = child.type.isAlertBannerText;\n return (\n <div\n key={index}\n className={cx(styles.contentItem, {\n [styles.contentItemText]: childTypeIsAlertBannerText\n })}\n >\n {childTypeIsAlertBannerText ? <div className={cx(styles.ellipsis)}>{child}</div> : child}\n </div>\n );\n }\n )}\n </div>\n </AlertBannerContext.Provider>\n <div className={cx(styles.closeButtonWrapper)}>\n {isCloseHidden ? null : (\n <IconButton\n data-testid=\"alert-banner-close-button\"\n icon={CloseSmall}\n className={cx(styles.closeBtn)}\n hideTooltip\n onClick={onClose}\n size=\"small\"\n kind=\"tertiary\"\n color={isDarkBackground ? \"on-inverted-background\" : \"on-primary-color\"}\n ariaLabel={closeButtonAriaLabel}\n />\n )}\n </div>\n </Text>\n );\n }\n);\n\nexport default withStaticProps(AlertBanner, { backgroundColors: AlertBannerBackgroundColorEnum });\n"],"names":["withStaticProps","forwardRef","_ref","ref","originalChildren","children","className","_ref$backgroundColor","backgroundColor","_ref$onClose","onClose","NOOP","_ref$ariaLabel","ariaLabel","_ref$closeButtonAriaL","closeButtonAriaLabel","_ref$isCloseHidden","isCloseHidden","id","dataTestId","classNames","useMemo","cx","styles","alertBanner","getStyle","isDarkBackground","isFixedColor","textColor","React","Children","toArray","filter","child","type","isAlertBannerItem","displayName","console","error","map","index","cloneElement","Object","assign","props","marginLeft","createElement","Text","color","role","getTestId","ComponentDefaultTestId","ALERT_BANNER","AlertBannerContext","Provider","value","content","childTypeIsAlertBannerText","isAlertBannerText","key","contentItem","_defineProperty","contentItemText","ellipsis","closeButtonWrapper","IconButton","icon","CloseSmall","closeBtn","hideTooltip","onClick","size","kind","backgroundColors","AlertBannerBackgroundColorEnum"],"mappings":"syBAgDA,IA8GeA,EAAAA,EA5GXC,GACF,SAAAC,EAYEC,GACE,IAXUC,EAAgBF,EAA1BG,SACAC,EAASJ,EAATI,UAASC,EAAAL,EACTM,gBAAAA,OAAkB,IAAHD,EAAG,UAASA,EAAAE,EAAAP,EAC3BQ,QAAAA,OAAUC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAV,EACdW,UAAAA,OAAY,IAAHD,EAAG,GAAEA,EAAAE,EAAAZ,EACda,qBAAAA,OAAuB,IAAHD,EAAG,QAAOA,EAAAE,EAAAd,EAC9Be,cAAAA,OAAgB,IAAHD,GAAQA,EACrBE,EAAEhB,EAAFgB,GACeC,EAAUjB,EAAzB,eAIIkB,EAAaC,GAAQ,WACzB,OAAOC,EAAGhB,EAAWiB,EAAOC,YAAaC,EAASF,EAAQf,GAC5D,GAAG,CAACF,EAAWE,IAETkB,EAAuC,SAApBlB,EACnBmB,EAAmC,YAApBnB,EACfoB,EAAYP,GAAQ,WACxB,OAAIM,EACK,YAEFD,EAAmB,aAAe,WAC3C,GAAG,CAACA,EAAkBC,IAChBtB,EAAWgB,GAAQ,WAiBvB,OAhBoBQ,EAAMC,SAASC,QAAQ3B,GACN4B,QACnC,SACEC,GAIA,SAAIA,EAAMC,KAAKC,mBAAgD,qBAA3BF,EAAMC,KAAKE,eAC/CC,QAAQC,MACN,yGACAL,IAEK,EACT,IAGsBM,KAAI,SAACN,EAAOO,GAClC,OAAOX,EAAMY,aAAaR,EACrBS,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAV,aAAA,EAAAA,EAAOW,OAAK,CACfC,WAAYL,EAAQ,EACpBd,iBAAAA,IAEJ,GACF,GAAG,CAACtB,EAAkBsB,IAEtB,OACEG,EAACiB,cAAAC,GACCb,KAAK,QACLc,MAAOpB,EACPzB,IAAKA,EACLG,UAAWc,EACX6B,KAAK,SACO,aAAApC,GAAa,SACzBK,GAAIA,gBACSC,GAAc+B,EAAUC,EAAuBC,aAAclC,IAE1EW,EAACiB,cAAAO,EAAmBC,SAAQ,CAACC,MAAO,CAAE3B,UAAAA,IACpCC,EAAAiB,cAAA,MAAA,CAAKxC,UAAWgB,EAAGC,EAAOiC,UACvBnD,EAASkC,KACR,SACEN,EAGAO,GAEA,IAAMiB,EAA6BxB,EAAMC,KAAKwB,kBAC9C,OACE7B,EAAAiB,cAAA,MAAA,CACEa,IAAKnB,EACLlC,UAAWgB,EAAGC,EAAOqC,YAAWC,EAAA,CAAA,EAC7BtC,EAAOuC,gBAAkBL,KAG3BA,EAA6B5B,EAAKiB,cAAA,MAAA,CAAAxC,UAAWgB,EAAGC,EAAOwC,WAAY9B,GAAeA,EAGxF,MAIPJ,EAAAiB,cAAA,MAAA,CAAKxC,UAAWgB,EAAGC,EAAOyC,qBACvB/C,EAAgB,KACfY,EAACiB,cAAAmB,EACa,CAAA,cAAA,4BACZC,KAAMC,EACN7D,UAAWgB,EAAGC,EAAO6C,UACrBC,aACA,EAAAC,QAAS5D,EACT6D,KAAK,QACLC,KAAK,WACLxB,MAAOtB,EAAmB,yBAA2B,mBACrDb,UAAWE,KAMvB,IAG0C,CAAE0D,iBAAkBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AlertBannerButton.js","sources":["../../../../../src/components/AlertBanner/AlertBannerButton/AlertBannerButton.tsx"],"sourcesContent":["import { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport Button, { ButtonProps } from \"../../Button/Button\";\nimport React, { FC } from \"react\";\nimport styles from \"./AlertBannerButton.module.scss\";\n\nexport interface AlertBannerButtonProps extends ButtonProps {\n isDarkBackground?: boolean;\n}\n\nconst AlertBannerButton: FC<AlertBannerButtonProps> = ({\n marginLeft = false,\n isDarkBackground = false,\n id,\n \"data-testid\": dataTestId,\n ...buttonProps\n}) => {\n const overrideButtonProps = { ...Button.defaultProps, ...buttonProps };\n\n const classNames = cx({\n [styles.marginLeft]: marginLeft,\n [styles.darkBackground]: isDarkBackground\n });\n\n return (\n <div\n className={classNames}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.ALERT_BANNER_BUTTON, id)}\n id={id}\n >\n <Button {...overrideButtonProps} size=\"small\" className={cx(styles.bannerButton)} color=\"on-primary-color\" />\n </div>\n );\n};\n\nObject.assign(AlertBannerButton, {\n isAlertBannerItem: true\n});\n\nexport default AlertBannerButton;\n"],"names":["AlertBannerButton","_a","_a$marginLeft","marginLeft","_a$isDarkBackground","isDarkBackground","id","dataTestId","buttonProps","__rest","overrideButtonProps","Button","defaultProps","classNames","cx","_defineProperty","styles","darkBackground","React","createElement","className","getTestId","ComponentDefaultTestId","ALERT_BANNER_BUTTON","size","bannerButton","color","Object","assign","isAlertBannerItem"],"mappings":"oWAUA,IAAMA,EAAgD,SAACC,GAAA,IAAAC,EAI5BD,EAHzBE,WAAAA,OAAa,IAAHD,GAAQA,EAAAE,EAGOH,EAFzBI,iBAAAA,OAAmB,IAAHD,GAAQA,EACxBE,EACyBL,EADzBK,GACeC,EAAUN,EAAzB,eACGO,EAAWC,EAAAR,EALuC,sDAO/CS,iCAA2BC,EAAOC,cAAiBJ,GAEnDK,EAAaC,EAAEC,EAAAA,KAClBC,EAAOb,WAAaA,GACpBa,EAAOC,eAAiBZ,IAG3B,OACEa,EACEC,cAAA,MAAA,CAAAC,UAAWP,EAAU,cACRN,GAAcc,EAAUC,EAAuBC,oBAAqBjB,GACjFA,GAAIA,GAEJY,EAACC,cAAAR,mBAAWD,EAAmB,CAAEc,KAAK,QAAQJ,UAAWN,EAAGE,EAAOS,cAAeC,MAAM,sBAG9F,EAEAC,OAAOC,OAAO5B,EAAmB,CAC/B6B,mBAAmB"}
1
+ {"version":3,"file":"AlertBannerButton.js","sources":["../../../../../src/components/AlertBanner/AlertBannerButton/AlertBannerButton.tsx"],"sourcesContent":["import { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport Button, { ButtonProps } from \"../../Button/Button\";\nimport React, { FC } from \"react\";\nimport styles from \"./AlertBannerButton.module.scss\";\n\nexport interface AlertBannerButtonProps extends ButtonProps {\n /**\n * If true, the button is displayed on a dark background.\n */\n isDarkBackground?: boolean;\n}\n\nconst AlertBannerButton: FC<AlertBannerButtonProps> = ({\n marginLeft = false,\n isDarkBackground = false,\n id,\n \"data-testid\": dataTestId,\n ...buttonProps\n}) => {\n const overrideButtonProps = { ...Button.defaultProps, ...buttonProps };\n\n const classNames = cx({\n [styles.marginLeft]: marginLeft,\n [styles.darkBackground]: isDarkBackground\n });\n\n return (\n <div\n className={classNames}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.ALERT_BANNER_BUTTON, id)}\n id={id}\n >\n <Button {...overrideButtonProps} size=\"small\" className={cx(styles.bannerButton)} color=\"on-primary-color\" />\n </div>\n );\n};\n\nObject.assign(AlertBannerButton, {\n isAlertBannerItem: true\n});\n\nexport default AlertBannerButton;\n"],"names":["AlertBannerButton","_a","_a$marginLeft","marginLeft","_a$isDarkBackground","isDarkBackground","id","dataTestId","buttonProps","__rest","overrideButtonProps","Button","defaultProps","classNames","cx","_defineProperty","styles","darkBackground","React","createElement","className","getTestId","ComponentDefaultTestId","ALERT_BANNER_BUTTON","size","bannerButton","color","Object","assign","isAlertBannerItem"],"mappings":"oWAaA,IAAMA,EAAgD,SAACC,GAAA,IAAAC,EAI5BD,EAHzBE,WAAAA,OAAa,IAAHD,GAAQA,EAAAE,EAGOH,EAFzBI,iBAAAA,OAAmB,IAAHD,GAAQA,EACxBE,EACyBL,EADzBK,GACeC,EAAUN,EAAzB,eACGO,EAAWC,EAAAR,EALuC,sDAO/CS,iCAA2BC,EAAOC,cAAiBJ,GAEnDK,EAAaC,EAAEC,EAAAA,KAClBC,EAAOb,WAAaA,GACpBa,EAAOC,eAAiBZ,IAG3B,OACEa,EACEC,cAAA,MAAA,CAAAC,UAAWP,EAAU,cACRN,GAAcc,EAAUC,EAAuBC,oBAAqBjB,GACjFA,GAAIA,GAEJY,EAACC,cAAAR,mBAAWD,EAAmB,CAAEc,KAAK,QAAQJ,UAAWN,EAAGE,EAAOS,cAAeC,MAAM,sBAG9F,EAEAC,OAAOC,OAAO5B,EAAmB,CAC/B6B,mBAAmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AlertBannerLink.js","sources":["../../../../../src/components/AlertBanner/AlertBannerLink/AlertBannerLink.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\nimport React, { FC, useContext } from \"react\";\nimport Link, { LinkProps } from \"../../Link/Link\";\nimport styles from \"./AlertBannerLink.module.scss\";\nimport { AlertBannerContext } from \"../AlertBannerContext\";\n\nexport interface AlertBannerLinkProps extends LinkProps {\n marginLeft?: boolean;\n}\n\nconst AlertBannerLink: FC<AlertBannerLinkProps> = ({\n marginLeft = false,\n id,\n \"data-testid\": dataTestId,\n ...linkProps\n}) => {\n const { textColor } = useContext(AlertBannerContext);\n const classNames = cx({\n [styles.marginLeft]: marginLeft\n });\n\n return (\n <div\n className={classNames}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.ALERT_BANNER_LINK, id)}\n id={id}\n >\n <Link\n {...linkProps}\n textClassName={cx(styles.bannerLink, {\n [styles.bannerLinkTextColorOnPrimary]: textColor === \"onPrimary\",\n [styles.bannerLinkTextColorOnInverted]: textColor === \"onInverted\"\n })}\n />\n </div>\n );\n};\n\nObject.assign(AlertBannerLink, {\n isAlertBannerItem: true\n});\n\nexport default AlertBannerLink;\n"],"names":["AlertBannerLink","_a","_a$marginLeft","marginLeft","id","dataTestId","linkProps","__rest","textColor","useContext","AlertBannerContext","classNames","cx","_defineProperty","styles","React","createElement","className","getTestId","ComponentDefaultTestId","ALERT_BANNER_LINK","Link","Object","assign","textClassName","bannerLink","bannerLinkTextColorOnPrimary","bannerLinkTextColorOnInverted","isAlertBannerItem"],"mappings":"6aAWA,IAAMA,EAA4C,SAACC,GAAA,IAAAC,EAKlDD,EAJCE,WAAAA,OAAa,IAAHD,GAAQA,EAClBE,EAGDH,EAHCG,GACeC,EAEhBJ,EAFC,eACGK,EAASC,EAAAN,EAJqC,mCAMzCO,EAAcC,EAAWC,GAAzBF,UACFG,EAAaC,EAAEC,EAAA,CAAA,EAClBC,EAAOX,WAAaA,IAGvB,OACEY,EACEC,cAAA,MAAA,CAAAC,UAAWN,EAAU,cACRN,GAAca,EAAUC,EAAuBC,kBAAmBhB,GAC/EA,GAAIA,GAEJW,EAACC,cAAAK,EACKC,OAAAC,OAAA,CAAA,EAAAjB,EACJ,CAAAkB,cAAeZ,EAAGE,EAAOW,WAAUZ,EAAAA,EAAA,GAChCC,EAAOY,6BAA6C,cAAdlB,GACtCM,EAAOa,8BAA8C,eAAdnB,OAKlD,EAEAc,OAAOC,OAAOvB,EAAiB,CAC7B4B,mBAAmB"}
1
+ {"version":3,"file":"AlertBannerLink.js","sources":["../../../../../src/components/AlertBanner/AlertBannerLink/AlertBannerLink.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\nimport React, { FC, useContext } from \"react\";\nimport Link, { LinkProps } from \"../../Link/Link\";\nimport styles from \"./AlertBannerLink.module.scss\";\nimport { AlertBannerContext } from \"../AlertBannerContext\";\n\nexport interface AlertBannerLinkProps extends LinkProps {\n /**\n * If true, a left margin is applied to the link.\n */\n marginLeft?: boolean;\n}\n\nconst AlertBannerLink: FC<AlertBannerLinkProps> = ({\n marginLeft = false,\n id,\n \"data-testid\": dataTestId,\n ...linkProps\n}) => {\n const { textColor } = useContext(AlertBannerContext);\n const classNames = cx({\n [styles.marginLeft]: marginLeft\n });\n\n return (\n <div\n className={classNames}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.ALERT_BANNER_LINK, id)}\n id={id}\n >\n <Link\n {...linkProps}\n textClassName={cx(styles.bannerLink, {\n [styles.bannerLinkTextColorOnPrimary]: textColor === \"onPrimary\",\n [styles.bannerLinkTextColorOnInverted]: textColor === \"onInverted\"\n })}\n />\n </div>\n );\n};\n\nObject.assign(AlertBannerLink, {\n isAlertBannerItem: true\n});\n\nexport default AlertBannerLink;\n"],"names":["AlertBannerLink","_a","_a$marginLeft","marginLeft","id","dataTestId","linkProps","__rest","textColor","useContext","AlertBannerContext","classNames","cx","_defineProperty","styles","React","createElement","className","getTestId","ComponentDefaultTestId","ALERT_BANNER_LINK","Link","Object","assign","textClassName","bannerLink","bannerLinkTextColorOnPrimary","bannerLinkTextColorOnInverted","isAlertBannerItem"],"mappings":"6aAcA,IAAMA,EAA4C,SAACC,GAAA,IAAAC,EAKlDD,EAJCE,WAAAA,OAAa,IAAHD,GAAQA,EAClBE,EAGDH,EAHCG,GACeC,EAEhBJ,EAFC,eACGK,EAASC,EAAAN,EAJqC,mCAMzCO,EAAcC,EAAWC,GAAzBF,UACFG,EAAaC,EAAEC,EAAA,CAAA,EAClBC,EAAOX,WAAaA,IAGvB,OACEY,EACEC,cAAA,MAAA,CAAAC,UAAWN,EAAU,cACRN,GAAca,EAAUC,EAAuBC,kBAAmBhB,GAC/EA,GAAIA,GAEJW,EAACC,cAAAK,EACKC,OAAAC,OAAA,CAAA,EAAAjB,EACJ,CAAAkB,cAAeZ,EAAGE,EAAOW,WAAUZ,EAAAA,EAAA,GAChCC,EAAOY,6BAA6C,cAAdlB,GACtCM,EAAOa,8BAA8C,eAAdnB,OAKlD,EAEAc,OAAOC,OAAOvB,EAAiB,CAC7B4B,mBAAmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AlertBannerText.js","sources":["../../../../../src/components/AlertBanner/AlertBannerText/AlertBannerText.tsx"],"sourcesContent":["import { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport React, { FC, useRef } from \"react\";\nimport Tooltip from \"../../Tooltip/Tooltip\";\nimport useIsOverflowing from \"../../../hooks/useIsOverflowing/useIsOverflowing\";\nimport VibeComponentProps from \"../../../types/VibeComponentProps\";\n\nimport styles from \"./AlertBannerText.module.scss\";\n\nexport interface AlertBannerTextProps extends VibeComponentProps {\n text: string;\n marginLeft?: boolean;\n}\n\nconst AlertBannerText: FC<AlertBannerTextProps> = ({ text, marginLeft = false, id, \"data-testid\": dataTestId }) => {\n const componentRef = useRef(null);\n const classNames = cx(styles.bannerText, {\n [styles.marginLeft]: marginLeft\n });\n const isOverflowing = useIsOverflowing({ ref: componentRef });\n\n return (\n <Tooltip\n position=\"bottom\"\n content={isOverflowing && text}\n showTrigger={[\"mouseenter\"]}\n hideTrigger={[\"mouseleave\"]}\n >\n <div\n ref={componentRef}\n className={classNames}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.ALERT_BANNER_TEXT, id)}\n >\n <span>{text}</span>\n </div>\n </Tooltip>\n );\n};\n\nObject.assign(AlertBannerText, {\n isAlertBannerItem: true,\n isAlertBannerText: true\n});\n\nexport default AlertBannerText;\n"],"names":["AlertBannerText","_ref","text","_ref$marginLeft","marginLeft","id","dataTestId","componentRef","useRef","classNames","cx","styles","bannerText","_defineProperty","isOverflowing","useIsOverflowing","ref","React","createElement","Tooltip","position","content","showTrigger","hideTrigger","className","getTestId","ComponentDefaultTestId","ALERT_BANNER_TEXT","Object","assign","isAlertBannerItem","isAlertBannerText"],"mappings":"4XAcA,IAAMA,EAA4C,SAA7BC,GAA6F,IAA7DC,EAAID,EAAJC,KAAIC,EAAAF,EAAEG,WAAAA,OAAa,IAAHD,GAAQA,EAAEE,EAAEJ,EAAFI,GAAmBC,EAAUL,EAAzB,eAC3EM,EAAeC,EAAO,MACtBC,EAAaC,EAAGC,EAAOC,WAAUC,EAAA,CAAA,EACpCF,EAAOP,WAAaA,IAEjBU,EAAgBC,EAAiB,CAAEC,IAAKT,IAE9C,OACEU,EAACC,cAAAC,EACC,CAAAC,SAAS,SACTC,QAASP,GAAiBZ,EAC1BoB,YAAa,CAAC,cACdC,YAAa,CAAC,eAEdN,EACEC,cAAA,MAAA,CAAAF,IAAKT,EACLiB,UAAWf,EACXJ,GAAIA,EACS,cAAAC,GAAcmB,EAAUC,EAAuBC,kBAAmBtB,IAE/EY,EAAAC,cAAA,OAAA,KAAOhB,IAIf,EAEA0B,OAAOC,OAAO7B,EAAiB,CAC7B8B,mBAAmB,EACnBC,mBAAmB"}
1
+ {"version":3,"file":"AlertBannerText.js","sources":["../../../../../src/components/AlertBanner/AlertBannerText/AlertBannerText.tsx"],"sourcesContent":["import { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport React, { FC, useRef } from \"react\";\nimport Tooltip from \"../../Tooltip/Tooltip\";\nimport useIsOverflowing from \"../../../hooks/useIsOverflowing/useIsOverflowing\";\nimport VibeComponentProps from \"../../../types/VibeComponentProps\";\n\nimport styles from \"./AlertBannerText.module.scss\";\n\nexport interface AlertBannerTextProps extends VibeComponentProps {\n /**\n * The text content displayed within the alert banner.\n */\n text: string;\n /**\n * If true, a left margin is applied to the alert banner text.\n */\n marginLeft?: boolean;\n}\n\nconst AlertBannerText: FC<AlertBannerTextProps> = ({ text, marginLeft = false, id, \"data-testid\": dataTestId }) => {\n const componentRef = useRef(null);\n const classNames = cx(styles.bannerText, {\n [styles.marginLeft]: marginLeft\n });\n const isOverflowing = useIsOverflowing({ ref: componentRef });\n\n return (\n <Tooltip\n position=\"bottom\"\n content={isOverflowing && text}\n showTrigger={[\"mouseenter\"]}\n hideTrigger={[\"mouseleave\"]}\n >\n <div\n ref={componentRef}\n className={classNames}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.ALERT_BANNER_TEXT, id)}\n >\n <span>{text}</span>\n </div>\n </Tooltip>\n );\n};\n\nObject.assign(AlertBannerText, {\n isAlertBannerItem: true,\n isAlertBannerText: true\n});\n\nexport default AlertBannerText;\n"],"names":["AlertBannerText","_ref","text","_ref$marginLeft","marginLeft","id","dataTestId","componentRef","useRef","classNames","cx","styles","bannerText","_defineProperty","isOverflowing","useIsOverflowing","ref","React","createElement","Tooltip","position","content","showTrigger","hideTrigger","className","getTestId","ComponentDefaultTestId","ALERT_BANNER_TEXT","Object","assign","isAlertBannerItem","isAlertBannerText"],"mappings":"4XAoBA,IAAMA,EAA4C,SAA7BC,GAA6F,IAA7DC,EAAID,EAAJC,KAAIC,EAAAF,EAAEG,WAAAA,OAAa,IAAHD,GAAQA,EAAEE,EAAEJ,EAAFI,GAAmBC,EAAUL,EAAzB,eAC3EM,EAAeC,EAAO,MACtBC,EAAaC,EAAGC,EAAOC,WAAUC,EAAA,CAAA,EACpCF,EAAOP,WAAaA,IAEjBU,EAAgBC,EAAiB,CAAEC,IAAKT,IAE9C,OACEU,EAACC,cAAAC,EACC,CAAAC,SAAS,SACTC,QAASP,GAAiBZ,EAC1BoB,YAAa,CAAC,cACdC,YAAa,CAAC,eAEdN,EACEC,cAAA,MAAA,CAAAF,IAAKT,EACLiB,UAAWf,EACXJ,GAAIA,EACS,cAAAC,GAAcmB,EAAUC,EAAuBC,kBAAmBtB,IAE/EY,EAAAC,cAAA,OAAA,KAAOhB,IAIf,EAEA0B,OAAOC,OAAO7B,EAAiB,CAC7B8B,mBAAmB,EACnBC,mBAAmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AttentionBox.js","sources":["../../../../src/components/AttentionBox/AttentionBox.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { useMemo } from \"react\";\nimport { camelCase } from \"lodash-es\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport Icon from \"../Icon/Icon\";\nimport IconButton from \"../IconButton/IconButton\";\nimport { CloseSmall, Alert as AlertIcon, Info as InfoIcon } from \"@vibe/icons\";\nimport { IconType as IconTypeEnum } from \"../Icon/IconConstants\";\nimport { AttentionBoxType as AttentionBoxTypeEnum } from \"./AttentionBoxConstants\";\nimport { AttentionBoxType } from \"./AttentionBox.types\";\nimport { SubIcon, VibeComponentProps, withStaticProps, ElementContent } from \"../../types\";\nimport Text from \"../Text/Text\";\nimport Flex from \"../Flex/Flex\";\nimport styles from \"./AttentionBox.module.scss\";\n\nexport interface AttentionBoxProps extends VibeComponentProps {\n className?: string;\n // TODO: [breaking] remove prop\n withIconWithoutHeader?: boolean;\n /** we support 5 types of attention boxes */\n type?: AttentionBoxType;\n /** Icon classname for icon font or SVG Icon Component for SVG Type */\n icon?: SubIcon;\n iconType?: \"svg\" | \"font\";\n title?: string;\n text?: string;\n children?: ElementContent;\n // TODO: [breaking] remove prop\n withoutIcon?: boolean;\n onClose?: (event: React.MouseEvent) => void;\n compact?: boolean;\n closeButtonAriaLabel?: string;\n /** Enables an entry animation when the component appears */\n entryAnimation?: boolean;\n}\n\nconst AttentionBox: React.FC<AttentionBoxProps> & {\n types?: typeof AttentionBoxTypeEnum;\n iconTypes?: typeof IconTypeEnum;\n} = ({\n className,\n withIconWithoutHeader = false,\n type = \"primary\",\n icon,\n iconType = \"svg\",\n title,\n text,\n children,\n withoutIcon = false,\n onClose,\n compact = false,\n id,\n \"data-testid\": dataTestId,\n closeButtonAriaLabel = \"Close\",\n entryAnimation = false\n}: AttentionBoxProps) => {\n const defaultIcon = useMemo(() => {\n return type === \"primary\" ? InfoIcon : AlertIcon;\n }, [type]);\n\n const overrideIcon = icon === undefined ? defaultIcon : icon;\n\n return (\n <aside\n className={cx(styles.attentionBox, getStyle(styles, camelCase(`type-${type}`)), className, {\n [styles.entryAnimation]: entryAnimation\n })}\n role=\"alert\"\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.ATTENTION_BOX, id)}\n >\n {title && (\n <Flex justify=\"start\" align=\"center\" className={styles.titleContainer} gap=\"xs\">\n {!withoutIcon && (\n <Icon\n className={styles.icon}\n iconType={iconType}\n ariaHidden\n icon={overrideIcon}\n ignoreFocusStyle\n iconSize=\"20\"\n />\n )}\n <Text type=\"text1\" element=\"h5\" weight=\"medium\" className={styles.title}>\n {title}\n </Text>\n </Flex>\n )}\n <Flex justify=\"start\" align=\"center\" gap=\"xs\">\n {!title && compact && !withoutIcon && withIconWithoutHeader && (\n <Icon iconType={iconType} iconSize={18} ariaHidden icon={overrideIcon} ignoreFocusStyle />\n )}\n <Text\n type=\"text2\"\n element={compact ? undefined : \"p\"}\n className={cx(styles.text, {\n [styles.compact]: compact,\n [styles.dismissible]: !!onClose,\n [styles.paragraph]: !compact\n })}\n >\n {text || children}\n </Text>\n </Flex>\n {onClose && (\n <IconButton\n size=\"small\"\n color=\"on-primary-color\"\n className={styles.closeIcon}\n wrapperClassName={cx(styles.closeIconWrapper, {\n [styles.closeIconCompact]: compact\n })}\n ariaLabel={closeButtonAriaLabel}\n hideTooltip\n icon={CloseSmall}\n onClick={onClose}\n />\n )}\n </aside>\n );\n};\n\nexport default withStaticProps(AttentionBox, {\n types: AttentionBoxTypeEnum,\n iconTypes: IconTypeEnum\n});\n"],"names":["withStaticProps","_ref","className","_ref$withIconWithoutH","withIconWithoutHeader","_ref$type","type","icon","_ref$iconType","iconType","title","text","children","_ref$withoutIcon","withoutIcon","onClose","_ref$compact","compact","id","dataTestId","_ref$closeButtonAriaL","closeButtonAriaLabel","_ref$entryAnimation","entryAnimation","defaultIcon","useMemo","InfoIcon","AlertIcon","overrideIcon","undefined","React","cx","styles","attentionBox","getStyle","camelCase","concat","_defineProperty","role","getTestId","ComponentDefaultTestId","ATTENTION_BOX","createElement","Flex","justify","align","titleContainer","gap","Icon","ariaHidden","ignoreFocusStyle","iconSize","Text","element","weight","dismissible","paragraph","IconButton","size","color","closeIcon","wrapperClassName","closeIconWrapper","closeIconCompact","ariaLabel","hideTooltip","CloseSmall","onClick","types","AttentionBoxTypeEnum","iconTypes","IconTypeEnum"],"mappings":"i3BAqCA,IAqFeA,EAAAA,GAlFX,SAHcC,GAmBM,IAftBC,EAASD,EAATC,UAASC,EAAAF,EACTG,sBAAAA,OAAwB,IAAHD,GAAQA,EAAAE,EAAAJ,EAC7BK,KAAAA,OAAO,IAAHD,EAAG,UAASA,EAChBE,EAAIN,EAAJM,KAAIC,EAAAP,EACJQ,SAAAA,OAAW,IAAHD,EAAG,MAAKA,EAChBE,EAAKT,EAALS,MACAC,EAAIV,EAAJU,KACAC,EAAQX,EAARW,SAAQC,EAAAZ,EACRa,YAAAA,OAAc,IAAHD,GAAQA,EACnBE,EAAOd,EAAPc,QAAOC,EAAAf,EACPgB,QAAAA,OAAU,IAAHD,GAAQA,EACfE,EAAEjB,EAAFiB,GACeC,EAAUlB,EAAzB,eAAamB,EAAAnB,EACboB,qBAAAA,OAAuB,IAAHD,EAAG,QAAOA,EAAAE,EAAArB,EAC9BsB,eAAAA,OAAiB,IAAHD,GAAQA,EAEhBE,EAAcC,GAAQ,WAC1B,MAAgB,YAATnB,EAAqBoB,EAAWC,CACzC,GAAG,CAACrB,IAEEsB,OAAwBC,IAATtB,EAAqBiB,EAAcjB,EAExD,OACEuB,yBACE5B,UAAW6B,EAAGC,EAAOC,aAAcC,EAASF,EAAQG,UAASC,OAAS9B,KAAUJ,EAASmC,EACtFL,CAAAA,EAAAA,EAAOT,eAAiBA,IAE3Be,KAAK,sBACQnB,GAAcoB,EAAUC,EAAuBC,cAAevB,IAE1ER,GACCoB,EAACY,cAAAC,GAAKC,QAAQ,QAAQC,MAAM,SAAS3C,UAAW8B,EAAOc,eAAgBC,IAAI,OACvEjC,GACAgB,EAAAY,cAACM,EAAI,CACH9C,UAAW8B,EAAOzB,KAClBE,SAAUA,EACVwC,YAAU,EACV1C,KAAMqB,EACNsB,kBAAgB,EAChBC,SAAS,OAGbrB,EAACY,cAAAU,GAAK9C,KAAK,QAAQ+C,QAAQ,KAAKC,OAAO,SAASpD,UAAW8B,EAAOtB,OAC/DA,IAIPoB,EAAAY,cAACC,EAAI,CAACC,QAAQ,QAAQC,MAAM,SAASE,IAAI,OACrCrC,GAASO,IAAYH,GAAeV,GACpC0B,EAACY,cAAAM,EAAK,CAAAvC,SAAUA,EAAU0C,SAAU,GAAIF,YAAW,EAAA1C,KAAMqB,EAAcsB,sBAEzEpB,EAACY,cAAAU,EACC,CAAA9C,KAAK,QACL+C,QAASpC,OAAUY,EAAY,IAC/B3B,UAAW6B,EAAGC,EAAOrB,KAAI0B,EAAAA,EAAAA,EAAA,CAAA,EACtBL,EAAOf,QAAUA,GACjBe,EAAOuB,cAAgBxC,GACvBiB,EAAOwB,WAAavC,KAGtBN,GAAQC,IAGZG,GACCe,EAAAY,cAACe,EAAU,CACTC,KAAK,QACLC,MAAM,mBACNzD,UAAW8B,EAAO4B,UAClBC,iBAAkB9B,EAAGC,EAAO8B,iBAAgBzB,EAAA,CAAA,EACzCL,EAAO+B,iBAAmB9C,IAE7B+C,UAAW3C,EACX4C,eACA1D,KAAM2D,EACNC,QAASpD,IAKnB,GAE6C,CAC3CqD,MAAOC,EACPC,UAAWC"}
1
+ {"version":3,"file":"AttentionBox.js","sources":["../../../../src/components/AttentionBox/AttentionBox.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { useMemo } from \"react\";\nimport { camelCase } from \"lodash-es\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport Icon from \"../Icon/Icon\";\nimport IconButton from \"../IconButton/IconButton\";\nimport { CloseSmall, Alert as AlertIcon, Info as InfoIcon } from \"@vibe/icons\";\nimport { IconType as IconTypeEnum } from \"../Icon/IconConstants\";\nimport { AttentionBoxType as AttentionBoxTypeEnum } from \"./AttentionBoxConstants\";\nimport { AttentionBoxType } from \"./AttentionBox.types\";\nimport { SubIcon, VibeComponentProps, withStaticProps, ElementContent } from \"../../types\";\nimport Text from \"../Text/Text\";\nimport Flex from \"../Flex/Flex\";\nimport styles from \"./AttentionBox.module.scss\";\n\nexport interface AttentionBoxProps extends VibeComponentProps {\n // TODO: [breaking] remove prop\n /**\n * If true, displays an icon even when no header is provided.\n */\n withIconWithoutHeader?: boolean;\n /**\n * The type of the AttentionBox.\n */\n type?: AttentionBoxType;\n /**\n * The icon displayed next to the title or text.\n */\n icon?: SubIcon;\n /**\n * The type of the icon.\n */\n iconType?: \"svg\" | \"font\";\n /**\n * The title of the component.\n */\n title?: string;\n /**\n * The text content displayed inside.\n */\n text?: string;\n /**\n * The content of the component.\n */\n children?: ElementContent;\n // TODO: [breaking] remove prop\n /**\n * If true, the icon is not displayed.\n */\n withoutIcon?: boolean;\n /**\n * Callback fired when the close button is clicked.\n */\n onClose?: (event: React.MouseEvent) => void;\n /**\n * If true, renders in compact mode.\n */\n compact?: boolean;\n /**\n * The label of the close button.\n */\n closeButtonAriaLabel?: string;\n /**\n * If true, an entry animation is applied when the component appears.\n */\n entryAnimation?: boolean;\n}\n\nconst AttentionBox: React.FC<AttentionBoxProps> & {\n types?: typeof AttentionBoxTypeEnum;\n iconTypes?: typeof IconTypeEnum;\n} = ({\n className,\n withIconWithoutHeader = false,\n type = \"primary\",\n icon,\n iconType = \"svg\",\n title,\n text,\n children,\n withoutIcon = false,\n onClose,\n compact = false,\n id,\n \"data-testid\": dataTestId,\n closeButtonAriaLabel = \"Close\",\n entryAnimation = false\n}: AttentionBoxProps) => {\n const defaultIcon = useMemo(() => {\n return type === \"primary\" ? InfoIcon : AlertIcon;\n }, [type]);\n\n const overrideIcon = icon === undefined ? defaultIcon : icon;\n\n return (\n <aside\n className={cx(styles.attentionBox, getStyle(styles, camelCase(`type-${type}`)), className, {\n [styles.entryAnimation]: entryAnimation\n })}\n role=\"alert\"\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.ATTENTION_BOX, id)}\n >\n {title && (\n <Flex justify=\"start\" align=\"center\" className={styles.titleContainer} gap=\"xs\">\n {!withoutIcon && (\n <Icon\n className={styles.icon}\n iconType={iconType}\n ariaHidden\n icon={overrideIcon}\n ignoreFocusStyle\n iconSize=\"20\"\n />\n )}\n <Text type=\"text1\" element=\"h5\" weight=\"medium\" className={styles.title}>\n {title}\n </Text>\n </Flex>\n )}\n <Flex justify=\"start\" align=\"center\" gap=\"xs\">\n {!title && compact && !withoutIcon && withIconWithoutHeader && (\n <Icon iconType={iconType} iconSize={18} ariaHidden icon={overrideIcon} ignoreFocusStyle />\n )}\n <Text\n type=\"text2\"\n element={compact ? undefined : \"p\"}\n className={cx(styles.text, {\n [styles.compact]: compact,\n [styles.dismissible]: !!onClose,\n [styles.paragraph]: !compact\n })}\n >\n {text || children}\n </Text>\n </Flex>\n {onClose && (\n <IconButton\n size=\"small\"\n color=\"on-primary-color\"\n className={styles.closeIcon}\n wrapperClassName={cx(styles.closeIconWrapper, {\n [styles.closeIconCompact]: compact\n })}\n ariaLabel={closeButtonAriaLabel}\n hideTooltip\n icon={CloseSmall}\n onClick={onClose}\n />\n )}\n </aside>\n );\n};\n\nexport default withStaticProps(AttentionBox, {\n types: AttentionBoxTypeEnum,\n iconTypes: IconTypeEnum\n});\n"],"names":["withStaticProps","_ref","className","_ref$withIconWithoutH","withIconWithoutHeader","_ref$type","type","icon","_ref$iconType","iconType","title","text","children","_ref$withoutIcon","withoutIcon","onClose","_ref$compact","compact","id","dataTestId","_ref$closeButtonAriaL","closeButtonAriaLabel","_ref$entryAnimation","entryAnimation","defaultIcon","useMemo","InfoIcon","AlertIcon","overrideIcon","undefined","React","cx","styles","attentionBox","getStyle","camelCase","concat","_defineProperty","role","getTestId","ComponentDefaultTestId","ATTENTION_BOX","createElement","Flex","justify","align","titleContainer","gap","Icon","ariaHidden","ignoreFocusStyle","iconSize","Text","element","weight","dismissible","paragraph","IconButton","size","color","closeIcon","wrapperClassName","closeIconWrapper","closeIconCompact","ariaLabel","hideTooltip","CloseSmall","onClick","types","AttentionBoxTypeEnum","iconTypes","IconTypeEnum"],"mappings":"i3BAqEA,IAqFeA,EAAAA,GAlFX,SAHcC,GAmBM,IAftBC,EAASD,EAATC,UAASC,EAAAF,EACTG,sBAAAA,OAAwB,IAAHD,GAAQA,EAAAE,EAAAJ,EAC7BK,KAAAA,OAAO,IAAHD,EAAG,UAASA,EAChBE,EAAIN,EAAJM,KAAIC,EAAAP,EACJQ,SAAAA,OAAW,IAAHD,EAAG,MAAKA,EAChBE,EAAKT,EAALS,MACAC,EAAIV,EAAJU,KACAC,EAAQX,EAARW,SAAQC,EAAAZ,EACRa,YAAAA,OAAc,IAAHD,GAAQA,EACnBE,EAAOd,EAAPc,QAAOC,EAAAf,EACPgB,QAAAA,OAAU,IAAHD,GAAQA,EACfE,EAAEjB,EAAFiB,GACeC,EAAUlB,EAAzB,eAAamB,EAAAnB,EACboB,qBAAAA,OAAuB,IAAHD,EAAG,QAAOA,EAAAE,EAAArB,EAC9BsB,eAAAA,OAAiB,IAAHD,GAAQA,EAEhBE,EAAcC,GAAQ,WAC1B,MAAgB,YAATnB,EAAqBoB,EAAWC,CACzC,GAAG,CAACrB,IAEEsB,OAAwBC,IAATtB,EAAqBiB,EAAcjB,EAExD,OACEuB,yBACE5B,UAAW6B,EAAGC,EAAOC,aAAcC,EAASF,EAAQG,UAASC,OAAS9B,KAAUJ,EAASmC,EACtFL,CAAAA,EAAAA,EAAOT,eAAiBA,IAE3Be,KAAK,sBACQnB,GAAcoB,EAAUC,EAAuBC,cAAevB,IAE1ER,GACCoB,EAACY,cAAAC,GAAKC,QAAQ,QAAQC,MAAM,SAAS3C,UAAW8B,EAAOc,eAAgBC,IAAI,OACvEjC,GACAgB,EAAAY,cAACM,EAAI,CACH9C,UAAW8B,EAAOzB,KAClBE,SAAUA,EACVwC,YAAU,EACV1C,KAAMqB,EACNsB,kBAAgB,EAChBC,SAAS,OAGbrB,EAACY,cAAAU,GAAK9C,KAAK,QAAQ+C,QAAQ,KAAKC,OAAO,SAASpD,UAAW8B,EAAOtB,OAC/DA,IAIPoB,EAAAY,cAACC,EAAI,CAACC,QAAQ,QAAQC,MAAM,SAASE,IAAI,OACrCrC,GAASO,IAAYH,GAAeV,GACpC0B,EAACY,cAAAM,EAAK,CAAAvC,SAAUA,EAAU0C,SAAU,GAAIF,YAAW,EAAA1C,KAAMqB,EAAcsB,sBAEzEpB,EAACY,cAAAU,EACC,CAAA9C,KAAK,QACL+C,QAASpC,OAAUY,EAAY,IAC/B3B,UAAW6B,EAAGC,EAAOrB,KAAI0B,EAAAA,EAAAA,EAAA,CAAA,EACtBL,EAAOf,QAAUA,GACjBe,EAAOuB,cAAgBxC,GACvBiB,EAAOwB,WAAavC,KAGtBN,GAAQC,IAGZG,GACCe,EAAAY,cAACe,EAAU,CACTC,KAAK,QACLC,MAAM,mBACNzD,UAAW8B,EAAO4B,UAClBC,iBAAkB9B,EAAGC,EAAO8B,iBAAgBzB,EAAA,CAAA,EACzCL,EAAO+B,iBAAmB9C,IAE7B+C,UAAW3C,EACX4C,eACA1D,KAAM2D,EACNC,QAASpD,IAKnB,GAE6C,CAC3CqD,MAAOC,EACPC,UAAWC"}