@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":"Combobox.js","sources":["../../../../src/components/Combobox/Combobox.tsx"],"sourcesContent":["import { camelCase } from \"lodash-es\";\nimport cx from \"classnames\";\nimport React, { useRef, useState, forwardRef, useMemo, useCallback } from \"react\";\nimport { isFunction, noop as NOOP } from \"lodash-es\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport Search from \"../Search/Search\";\nimport { BASE_SIZES } from \"../../constants\";\nimport Button from \"../Button/Button\";\nimport Text from \"../Text/Text\";\nimport ComboboxOption from \"./components/ComboboxOption/ComboboxOption\";\nimport { defaultFilter } from \"./ComboboxService\";\nimport { ComboboxItems } from \"./components/ComboboxItems/ComboboxItems\";\nimport { StickyCategoryHeader } from \"./components/StickyCategoryHeader/StickyCategoryHeader\";\nimport { useItemsData, useKeyboardNavigation } from \"./ComboboxHelpers/ComboboxHelpers\";\nimport { getOptionId } from \"./helpers\";\nimport { ElementContent, SubIcon, VibeComponentProps, withStaticProps } from \"../../types\";\nimport {\n IComboboxCategoryMap,\n IComboboxItem,\n IComboboxOption,\n COMBOBOX_LISTBOX_ID,\n IComboboxCategory\n} from \"./components/ComboboxConstants\";\nimport styles from \"./Combobox.module.scss\";\nimport { ComboboxSizes } from \"./Combobox.types\";\nimport IconButton from \"../IconButton/IconButton\";\nimport MenuButton from \"../MenuButton/MenuButton\";\n\nexport interface ComboboxProps extends VibeComponentProps {\n className?: string;\n optionClassName?: string;\n searchWrapperClassName?: string;\n /**\n * Class name for sticky category header\n */\n stickyCategoryClassName?: string;\n /**\n * Placeholder to show when no value was selected\n */\n placeholder?: string;\n /**\n * Unique element id\n */\n id?: string;\n /**\n * A message that will be displayed inside the combo box when no results are found\n */\n noResultsMessage?: string;\n disabled?: boolean;\n options?: IComboboxOption[];\n categories?: IComboboxCategoryMap;\n /**\n * Divider between categories sections\n */\n withCategoriesDivider?: boolean;\n size?: ComboboxSizes;\n optionLineHeight?: number;\n optionsListHeight?: number;\n autoFocus?: boolean;\n /**\n * Callback that called after clicking on the add new combo box button.\n * @param {string} _filterValue\n */\n onAddNew?: (value: string) => void;\n /**\n * The label of the button that appears at the end of the combo box when the search does not return appropriate options\n */\n addNewLabel?: ((label: string) => ElementContent) | string;\n filter?: (filterValue: string, options: IComboboxOption[]) => IComboboxOption[];\n /**\n * Default search input\n */\n defaultFilter?: string;\n disableFilter?: boolean;\n /**\n * For controlled search input. If provided, `defaultFilter` will be ignored\n */\n filterValue?: string;\n onFilterChanged?: (value: string) => void;\n /**\n * Display the combo box with loading state\n */\n loading?: boolean;\n /**\n * on mouse hover callback for option\n */\n // onOptionHover?: PropTypes.func,\n onOptionHover?: (event: React.MouseEvent, index: number, option: IComboboxOption) => void;\n /**\n * on mouse leave callback for option\n */\n // onOptionLeave?: PropTypes.func,\n onOptionLeave?: () => void;\n /**\n * Allowed to the following behavior: scrolling automatically to the combo box's selected option\n */\n shouldScrollToSelectedItem?: boolean;\n noResultsRenderer?: () => JSX.Element;\n stickyCategories?: boolean;\n /** By default, the first option will be selected, when focusing selecting the first option, or when changing items */\n defaultVisualFocusFirstIndex?: boolean;\n /** Clear the filter/search on selection (click or enter) */\n clearFilterOnSelection?: boolean;\n /** Replace the regular appearance of combo box option with custom renderer. */\n optionRenderer?: (option: IComboboxOption) => JSX.Element;\n /** Maximum options count without scroll */\n maxOptionsWithoutScroll?: number;\n /**\n * Using virtualized list for rendering only the items which visible to the user in any given user (performance optimization)\n */\n renderOnlyVisibleOptions?: boolean;\n /**\n * On option click callback\n */\n onClick?: (optionData: IComboboxOption) => void;\n /**\n * Custom search icon\n */\n searchIcon?: SubIcon;\n searchInputAriaLabel?: string;\n debounceRate?: number;\n searchInputRef?: React.RefObject<HTMLInputElement>;\n /**\n * Render additional action within the right section of search component.\n */\n renderAction?: React.ReactElement<typeof IconButton | typeof MenuButton>;\n /**\n * If true, hides the additional action when the user types in the search input.\n */\n hideRenderActionOnInput?: boolean;\n}\n\nconst Combobox: React.FC<ComboboxProps> & {\n sizes?: typeof BASE_SIZES;\n iconTypes?: typeof ComboboxOption.iconTypes;\n} = forwardRef(\n (\n {\n className = \"\",\n optionClassName = \"\",\n searchWrapperClassName,\n stickyCategoryClassName,\n searchIcon,\n id = \"\",\n placeholder = \"\",\n size = \"medium\",\n defaultVisualFocusFirstIndex,\n optionLineHeight = 32,\n optionsListHeight,\n autoFocus = false,\n disabled = false,\n options = [],\n categories,\n withCategoriesDivider = false,\n noResultsMessage = \"No results found\",\n onAddNew,\n addNewLabel = \"Add new\",\n onClick = (_optionData: IComboboxOption) => {},\n filter = defaultFilter,\n disableFilter = false,\n filterValue: filterValueProp,\n onFilterChanged,\n loading = false,\n onOptionHover = NOOP,\n onOptionLeave = NOOP,\n shouldScrollToSelectedItem = true,\n noResultsRenderer,\n stickyCategories = false,\n optionRenderer = null,\n renderOnlyVisibleOptions = false,\n clearFilterOnSelection = false,\n maxOptionsWithoutScroll,\n defaultFilter: defaultFilterValue = \"\",\n searchInputAriaLabel = \"Search for content\",\n \"data-testid\": dataTestId,\n debounceRate,\n searchInputRef,\n renderAction: RenderAction,\n hideRenderActionOnInput\n }: ComboboxProps,\n ref\n ) => {\n const componentRef = useRef(null);\n const inputRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n const mergedInputRef = useMergeRef(inputRef, searchInputRef);\n\n const [filterValue, setFilterValue] = useState(filterValueProp || defaultFilterValue);\n\n if (filterValueProp !== undefined && filterValueProp !== filterValue) {\n setFilterValue(filterValueProp);\n }\n\n const onChangeCallback = useCallback(\n (value: string) => {\n setActiveOptionIndex(-1);\n if (onFilterChanged) {\n onFilterChanged(value);\n }\n setFilterValue(value);\n },\n [setFilterValue, onFilterChanged]\n );\n\n const onOptionHoverCB = useCallback(\n (event: React.MouseEvent, index: number, option: IComboboxOption) => {\n onOptionHover(event, index, option);\n },\n [onOptionHover]\n );\n\n const filteredOptions: IComboboxOption[] = useMemo(() => {\n if (disableFilter) {\n return options;\n }\n return filter(filterValue, options);\n }, [options, filterValue, filter, disableFilter]);\n\n const [activeOptionIndex, setActiveOptionIndex] = useState(-1);\n\n const isChildSelectable = useCallback(\n (index: number) => {\n return index !== undefined && filteredOptions[index] && !filteredOptions[index].disabled;\n },\n [filteredOptions]\n );\n\n const onAddNewCallback = useCallback(() => {\n onAddNew && onAddNew(filterValue);\n // clear filter after adding\n setFilterValue(\"\");\n }, [onAddNew, filterValue, setFilterValue]);\n\n const hasResults = filteredOptions.length > 0;\n const hasFilter = filterValue.length > 0;\n\n function getAddNewLabel() {\n if (isFunction(addNewLabel)) {\n return addNewLabel(filterValue);\n }\n return addNewLabel;\n }\n\n function renderNoResults() {\n if (noResultsRenderer) {\n return noResultsRenderer();\n }\n\n return (\n <div className={styles.comboboxNoResults}>\n <div className={styles.comboboxMessageWrapper}>\n <span className={styles.comboboxMessage}>{noResultsMessage}</span>\n </div>\n {onAddNew && !disabled && (\n <Button className={styles.addNewButton} size={size} kind=\"tertiary\" onClick={onAddNewCallback}>\n <span className={styles.buttonLabel}>{getAddNewLabel()}</span>\n </Button>\n )}\n </div>\n );\n }\n\n const [activeCategory, setActiveCategory] = useState<IComboboxCategory>();\n\n const onActiveCategoryChanged = useCallback(\n (categoryData: IComboboxItem) => {\n if (categoryData?.category?.label !== activeCategory?.label) {\n setActiveCategory(categoryData?.category);\n }\n },\n [activeCategory]\n );\n\n const { items, itemsMap, selectableItems } = useItemsData({\n categories,\n options: filteredOptions,\n filterValue,\n withCategoriesDivider,\n optionLineHeight\n });\n\n const overrideOnClick = useCallback(\n (_event: React.MouseEvent | React.KeyboardEvent, itemIndex: number) => {\n onClick(selectableItems[itemIndex]);\n if (isChildSelectable(itemIndex)) {\n setActiveOptionIndex(itemIndex);\n }\n if (clearFilterOnSelection) {\n // clear filter after adding\n onChangeCallback(\"\");\n }\n },\n [onClick, selectableItems, isChildSelectable, clearFilterOnSelection, onChangeCallback]\n );\n\n const {\n visualFocusItemIndex,\n visualFocusItemId,\n onOptionClick: overrideOnOptionClick\n } = useKeyboardNavigation({\n getOptionId,\n defaultVisualFocusFirstIndex,\n onClick: overrideOnClick,\n isChildSelectable,\n options: selectableItems,\n inputRef: mergedInputRef\n });\n\n return (\n <Text\n type=\"text2\"\n ref={mergedRef}\n className={cx(styles.combobox, className, getStyle(styles, camelCase(\"size-\" + size)), {\n [styles.empty]: !hasResults,\n [styles.stickyCategory]: stickyCategories\n })}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.COMBOBOX, id)}\n ellipsis={false}\n >\n <div className={styles.comboboxList} style={{ maxHeight: optionsListHeight }}>\n <Search\n ref={mergedInputRef}\n value={filterValue}\n className={cx(styles.comboboxSearchWrapper, searchWrapperClassName)}\n inputAriaLabel={searchInputAriaLabel}\n currentAriaResultId={visualFocusItemId}\n id=\"combobox-search\"\n placeholder={placeholder}\n size={size}\n disabled={disabled}\n onChange={onChangeCallback}\n autoFocus={autoFocus}\n loading={loading}\n searchIconName={searchIcon}\n ariaExpanded={hasFilter || hasResults}\n ariaHasPopup=\"listbox\"\n searchResultsContainerId={id ? `${id}-listbox` : COMBOBOX_LISTBOX_ID}\n debounceRate={debounceRate}\n renderAction={RenderAction}\n hideRenderActionOnInput={hideRenderActionOnInput}\n />\n {stickyCategories && (\n <StickyCategoryHeader\n label={activeCategory?.label}\n color={activeCategory?.color}\n className={stickyCategoryClassName}\n />\n )}\n {hasResults && (\n <ComboboxItems\n stickyCategories={stickyCategories}\n categories={categories}\n options={items}\n itemsMap={itemsMap}\n optionClassName={optionClassName}\n optionRenderer={optionRenderer}\n activeItemIndex={activeOptionIndex}\n onActiveCategoryChanged={onActiveCategoryChanged}\n onOptionClick={overrideOnOptionClick}\n onOptionEnter={onOptionHoverCB}\n onOptionLeave={onOptionLeave}\n optionLineHeight={optionLineHeight}\n shouldScrollToSelectedItem={shouldScrollToSelectedItem}\n renderOnlyVisibleOptions={renderOnlyVisibleOptions}\n maxOptionsWithoutScroll={maxOptionsWithoutScroll}\n visualFocusItemIndex={visualFocusItemIndex}\n id={id ? `${id}-listbox` : COMBOBOX_LISTBOX_ID}\n />\n )}\n </div>\n {hasFilter && !hasResults && !loading && renderNoResults()}\n </Text>\n );\n }\n);\n\n// Locate loading next to search icon\n// color it with --secondary-text-color\n// size it like the icon - we think it's 16px - make sure it's not fat\n\nexport default withStaticProps(Combobox, {\n sizes: BASE_SIZES,\n iconTypes: ComboboxOption.iconTypes\n});\n"],"names":["withStaticProps","forwardRef","_ref","ref","_ref$className","className","_ref$optionClassName","optionClassName","searchWrapperClassName","stickyCategoryClassName","searchIcon","_ref$id","id","_ref$placeholder","placeholder","_ref$size","size","defaultVisualFocusFirstIndex","_ref$optionLineHeight","optionLineHeight","optionsListHeight","_ref$autoFocus","autoFocus","_ref$disabled","disabled","_ref$options","options","categories","_ref$withCategoriesDi","withCategoriesDivider","_ref$noResultsMessage","noResultsMessage","onAddNew","_ref$addNewLabel","addNewLabel","_ref$onClick","onClick","_optionData","_ref$filter","filter","defaultFilter","_ref$disableFilter","disableFilter","filterValueProp","filterValue","onFilterChanged","_ref$loading","loading","_ref$onOptionHover","onOptionHover","NOOP","_ref$onOptionLeave","onOptionLeave","_ref$shouldScrollToSe","shouldScrollToSelectedItem","noResultsRenderer","_ref$stickyCategories","stickyCategories","_ref$optionRenderer","optionRenderer","_ref$renderOnlyVisibl","renderOnlyVisibleOptions","_ref$clearFilterOnSel","clearFilterOnSelection","maxOptionsWithoutScroll","_ref$defaultFilter","defaultFilterValue","_ref$searchInputAriaL","searchInputAriaLabel","dataTestId","debounceRate","searchInputRef","RenderAction","renderAction","hideRenderActionOnInput","componentRef","useRef","inputRef","mergedRef","useMergeRef","mergedInputRef","_useState","useState","_useState2","_slicedToArray","setFilterValue","undefined","onChangeCallback","useCallback","value","setActiveOptionIndex","onOptionHoverCB","event","index","option","filteredOptions","useMemo","_useState3","_useState4","activeOptionIndex","isChildSelectable","onAddNewCallback","hasResults","length","hasFilter","_useState5","_useState6","activeCategory","setActiveCategory","onActiveCategoryChanged","categoryData","category","_a","label","_useItemsData","useItemsData","items","itemsMap","selectableItems","overrideOnClick","_event","itemIndex","_useKeyboardNavigatio","useKeyboardNavigation","getOptionId","visualFocusItemIndex","visualFocusItemId","overrideOnOptionClick","onOptionClick","React","createElement","Text","type","cx","styles","combobox","getStyle","camelCase","_defineProperty","empty","stickyCategory","getTestId","ComponentDefaultTestId","COMBOBOX","ellipsis","comboboxList","style","maxHeight","Search","comboboxSearchWrapper","inputAriaLabel","currentAriaResultId","onChange","searchIconName","ariaExpanded","ariaHasPopup","searchResultsContainerId","concat","COMBOBOX_LISTBOX_ID","StickyCategoryHeader","color","ComboboxItems","activeItemIndex","onOptionEnter","comboboxNoResults","comboboxMessageWrapper","comboboxMessage","Button","addNewButton","kind","buttonLabel","isFunction","sizes","BASE_SIZES","iconTypes","ComboboxOption"],"mappings":"uvCAsIA,IAyPeA,EAAAA,EAtPXC,GACF,SAAAC,EA4CEC,GACE,IAAAC,EAAAF,EA3CAG,UAAAA,OAAY,IAAHD,EAAG,GAAEA,EAAAE,EAAAJ,EACdK,gBAAAA,OAAkB,IAAHD,EAAG,GAAEA,EACpBE,EAAsBN,EAAtBM,uBACAC,EAAuBP,EAAvBO,wBACAC,EAAUR,EAAVQ,WAAUC,EAAAT,EACVU,GAAAA,OAAK,IAAHD,EAAG,GAAEA,EAAAE,EAAAX,EACPY,YAAAA,OAAc,IAAHD,EAAG,GAAEA,EAAAE,EAAAb,EAChBc,KAAAA,OAAO,IAAHD,EAAG,SAAQA,EACfE,EAA4Bf,EAA5Be,6BAA4BC,EAAAhB,EAC5BiB,iBAAAA,OAAmB,IAAHD,EAAG,GAAEA,EACrBE,EAAiBlB,EAAjBkB,kBAAiBC,EAAAnB,EACjBoB,UAAAA,OAAY,IAAHD,GAAQA,EAAAE,EAAArB,EACjBsB,SAAAA,OAAW,IAAHD,GAAQA,EAAAE,EAAAvB,EAChBwB,QAAAA,OAAU,IAAHD,EAAG,GAAEA,EACZE,EAAUzB,EAAVyB,WAAUC,EAAA1B,EACV2B,sBAAAA,OAAwB,IAAHD,GAAQA,EAAAE,GAAA5B,EAC7B6B,iBAAAA,QAAmB,IAAHD,GAAG,mBAAkBA,GACrCE,GAAQ9B,EAAR8B,SAAQC,GAAA/B,EACRgC,YAAAA,QAAc,IAAHD,GAAG,UAASA,GAAAE,GAAAjC,EACvBkC,QAAAA,QAAU,IAAHD,GAAG,SAACE,GAAmC,EAAAF,GAAAG,GAAApC,EAC9CqC,OAAAA,QAASC,IAAHF,GAAGE,EAAaF,GAAAG,GAAAvC,EACtBwC,cAAAA,QAAgB,IAAHD,IAAQA,GACRE,GAAezC,EAA5B0C,YACAC,GAAe3C,EAAf2C,gBAAeC,GAAA5C,EACf6C,QAAAA,QAAU,IAAHD,IAAQA,GAAAE,GAAA9C,EACf+C,cAAAA,QAAgBC,IAAHF,GAAGE,EAAIF,GAAAG,GAAAjD,EACpBkD,cAAAA,QAAgBF,IAAHC,GAAGD,EAAIC,GAAAE,GAAAnD,EACpBoD,2BAAAA,QAA6B,IAAHD,IAAOA,GACjCE,GAAiBrD,EAAjBqD,kBAAiBC,GAAAtD,EACjBuD,iBAAAA,QAAmB,IAAHD,IAAQA,GAAAE,GAAAxD,EACxByD,eAAAA,QAAiB,IAAHD,GAAG,KAAIA,GAAAE,GAAA1D,EACrB2D,yBAAAA,QAA2B,IAAHD,IAAQA,GAAAE,GAAA5D,EAChC6D,uBAAAA,QAAyB,IAAHD,IAAQA,GAC9BE,GAAuB9D,EAAvB8D,wBAAuBC,GAAA/D,EACvBsC,cAAe0B,QAAqB,IAAHD,GAAG,GAAEA,GAAAE,GAAAjE,EACtCkE,qBAAAA,QAAuB,IAAHD,GAAG,qBAAoBA,GAC5BE,GAAUnE,EAAzB,eACAoE,GAAYpE,EAAZoE,aACAC,GAAcrE,EAAdqE,eACcC,GAAYtE,EAA1BuE,aACAC,GAAuBxE,EAAvBwE,wBAIIC,GAAeC,EAAO,MACtBC,GAAWD,EAAO,MAClBE,GAAYC,EAAY5E,EAAKwE,IAC7BK,GAAiBD,EAAYF,GAAUN,IAE7CU,GAAsCC,EAASvC,IAAmBuB,IAAmBiB,GAAAC,EAAAH,GAAA,GAA9ErC,GAAWuC,GAAA,GAAEE,GAAcF,GAAA,QAEVG,IAApB3C,IAAiCA,KAAoBC,IACvDyC,GAAe1C,IAGjB,IAAM4C,GAAmBC,GACvB,SAACC,GACCC,IAAsB,GAClB7C,IACFA,GAAgB4C,GAElBJ,GAAeI,EACjB,GACA,CAACJ,GAAgBxC,KAGb8C,GAAkBH,GACtB,SAACI,EAAyBC,EAAeC,GACvC7C,GAAc2C,EAAOC,EAAOC,EAC9B,GACA,CAAC7C,KAGG8C,GAAqCC,GAAQ,WACjD,OAAItD,GACKhB,EAEFa,GAAOK,GAAalB,EAC5B,GAAE,CAACA,EAASkB,GAAaL,GAAQG,KAElCuD,GAAkDf,GAAU,GAAEgB,GAAAd,EAAAa,GAAA,GAAvDE,GAAiBD,GAAA,GAAER,GAAoBQ,GAAA,GAExCE,GAAoBZ,GACxB,SAACK,GACC,YAAiBP,IAAVO,GAAuBE,GAAgBF,KAAWE,GAAgBF,GAAOrE,QAClF,GACA,CAACuE,KAGGM,GAAmBb,GAAY,WACnCxD,IAAYA,GAASY,IAErByC,GAAe,GAChB,GAAE,CAACrD,GAAUY,GAAayC,KAErBiB,GAAaP,GAAgBQ,OAAS,EACtCC,GAAY5D,GAAY2D,OAAS,EA4BvC,IAAAE,GAA4CvB,IAA6BwB,GAAAtB,EAAAqB,GAAA,GAAlEE,GAAcD,GAAA,GAAEE,GAAiBF,GAAA,GAElCG,GAA0BrB,GAC9B,SAACsB,UAC2B,UAAtBA,aAAA,EAAAA,EAAcC,gBAAQ,IAAAC,OAAA,EAAAA,EAAEC,UAAUN,cAAc,EAAdA,GAAgBM,QACpDL,GAAkBE,eAAAA,EAAcC,SAEpC,GACA,CAACJ,KAGHO,GAA6CC,EAAa,CACxDxF,WAAAA,EACAD,QAASqE,GACTnD,YAAAA,GACAf,sBAAAA,EACAV,iBAAAA,IALMiG,GAAKF,GAALE,MAAOC,GAAQH,GAARG,SAAUC,GAAeJ,GAAfI,gBAQnBC,GAAkB/B,GACtB,SAACgC,EAAgDC,GAC/CrF,GAAQkF,GAAgBG,IACpBrB,GAAkBqB,IACpB/B,GAAqB+B,GAEnB1D,IAEFwB,GAAiB,GAErB,GACA,CAACnD,GAASkF,GAAiBlB,GAAmBrC,GAAwBwB,KAGxEmC,GAIIC,EAAsB,CACxBC,YAAAA,EACA3G,6BAAAA,EACAmB,QAASmF,GACTnB,kBAAAA,GACA1E,QAAS4F,GACTzC,SAAUG,KATV6C,GAAoBH,GAApBG,qBACAC,GAAiBJ,GAAjBI,kBACeC,GAAqBL,GAApCM,cAUF,OACEC,EAAAC,cAACC,EAAI,CACHC,KAAK,QACLjI,IAAK2E,GACLzE,UAAWgI,EAAGC,EAAOC,SAAUlI,EAAWmI,EAASF,EAAQG,EAAU,QAAUzH,IAAM0H,EAAAA,EAClFJ,GAAAA,EAAOK,OAASrC,IAChBgC,EAAOM,eAAiBnF,KAE3B7C,GAAIA,EACS,cAAAyD,IAAcwE,EAAUC,EAAuBC,SAAUnI,GACtEoI,UAAU,GAEVf,EAAAC,cAAA,MAAA,CAAK7H,UAAWiI,EAAOW,aAAcC,MAAO,CAAEC,UAAW/H,IACvD6G,EAACC,cAAAkB,GACCjJ,IAAK6E,GACLS,MAAO7C,GACPvC,UAAWgI,EAAGC,EAAOe,sBAAuB7I,GAC5C8I,eAAgBlF,GAChBmF,oBAAqBzB,GACrBlH,GAAG,kBACHE,YAAaA,EACbE,KAAMA,EACNQ,SAAUA,EACVgI,SAAUjE,GACVjE,UAAWA,EACXyB,QAASA,GACT0G,eAAgB/I,EAChBgJ,aAAclD,IAAaF,GAC3BqD,aAAa,UACbC,yBAA0BhJ,EAAE,GAAAiJ,OAAMjJ,cAAekJ,EACjDxF,aAAcA,GACdG,aAAcD,GACdE,wBAAyBA,KAE1BjB,IACCwE,EAACC,cAAA6B,EACC,CAAA9C,MAAON,cAAA,EAAAA,GAAgBM,MACvB+C,MAAOrD,cAAA,EAAAA,GAAgBqD,MACvB3J,UAAWI,IAGd6F,IACC2B,EAAAC,cAAC+B,EACC,CAAAxG,iBAAkBA,GAClB9B,WAAYA,EACZD,QAAS0F,GACTC,SAAUA,GACV9G,gBAAiBA,EACjBoD,eAAgBA,GAChBuG,gBAAiB/D,GACjBU,wBAAyBA,GACzBmB,cAAeD,GACfoC,cAAexE,GACfvC,cAAeA,GACfjC,iBAAkBA,EAClBmC,2BAA4BA,GAC5BO,yBAA0BA,GAC1BG,wBAAyBA,GACzB6D,qBAAsBA,GACtBjH,GAAIA,EAAE,GAAAiJ,OAAMjJ,EAAekJ,YAAAA,KAIhCtD,KAAcF,KAAevD,KA/H5BQ,GACKA,KAIP0E,EAAKC,cAAA,MAAA,CAAA7H,UAAWiI,EAAO8B,mBACrBnC,EAAAC,cAAA,MAAA,CAAK7H,UAAWiI,EAAO+B,wBACrBpC,EAAMC,cAAA,OAAA,CAAA7H,UAAWiI,EAAOgC,iBAAkBvI,KAE3CC,KAAaR,GACZyG,gBAACsC,EAAM,CAAClK,UAAWiI,EAAOkC,aAAcxJ,KAAMA,EAAMyJ,KAAK,WAAWrI,QAASiE,IAC3E4B,EAAAC,cAAA,OAAA,CAAM7H,UAAWiI,EAAOoC,aAlB5BC,EAAWzI,IACNA,GAAYU,IAEdV,OAsIX,IAOuC,CACvC0I,MAAOC,EACPC,UAAWC,EAAeD"}
1
+ {"version":3,"file":"Combobox.js","sources":["../../../../src/components/Combobox/Combobox.tsx"],"sourcesContent":["import { camelCase } from \"lodash-es\";\nimport cx from \"classnames\";\nimport React, { useRef, useState, forwardRef, useMemo, useCallback } from \"react\";\nimport { isFunction, noop as NOOP } from \"lodash-es\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport Search from \"../Search/Search\";\nimport { BASE_SIZES } from \"../../constants\";\nimport Button from \"../Button/Button\";\nimport Text from \"../Text/Text\";\nimport ComboboxOption from \"./components/ComboboxOption/ComboboxOption\";\nimport { defaultFilter } from \"./ComboboxService\";\nimport { ComboboxItems } from \"./components/ComboboxItems/ComboboxItems\";\nimport { StickyCategoryHeader } from \"./components/StickyCategoryHeader/StickyCategoryHeader\";\nimport { useItemsData, useKeyboardNavigation } from \"./ComboboxHelpers/ComboboxHelpers\";\nimport { getOptionId } from \"./helpers\";\nimport { ElementContent, SubIcon, VibeComponentProps, withStaticProps } from \"../../types\";\nimport {\n IComboboxCategoryMap,\n IComboboxItem,\n IComboboxOption,\n COMBOBOX_LISTBOX_ID,\n IComboboxCategory\n} from \"./components/ComboboxConstants\";\nimport styles from \"./Combobox.module.scss\";\nimport { ComboboxSizes } from \"./Combobox.types\";\nimport IconButton from \"../IconButton/IconButton\";\nimport MenuButton from \"../MenuButton/MenuButton\";\n\nexport interface ComboboxProps extends VibeComponentProps {\n /**\n * Class name applied to each option item.\n */\n optionClassName?: string;\n /**\n * Class name applied to the search wrapper.\n */\n searchWrapperClassName?: string;\n /**\n * Class name applied to the sticky category header.\n */\n stickyCategoryClassName?: string;\n /**\n * Placeholder text displayed in the search input.\n */\n placeholder?: string;\n /**\n * Message displayed when no results are found.\n */\n noResultsMessage?: string;\n /**\n * If true, the combobox is disabled.\n */\n disabled?: boolean;\n /**\n * The list of available options.\n */\n options?: IComboboxOption[];\n /**\n * The list of available categories.\n */\n categories?: IComboboxCategoryMap;\n /**\n * If true, displays a divider between category sections.\n */\n withCategoriesDivider?: boolean;\n /**\n * The size of the combobox.\n */\n size?: ComboboxSizes;\n /**\n * The height of each option item.\n */\n optionLineHeight?: number;\n /**\n * The height of the options list.\n */\n optionsListHeight?: number;\n /**\n * If true, the search input is focused when the component mounts.\n */\n autoFocus?: boolean;\n /**\n * Callback fired when the \"Add new\" button is clicked.\n */\n onAddNew?: (value: string) => void;\n /**\n * Label displayed for the \"Add new\" button.\n */\n addNewLabel?: ((label: string) => ElementContent) | string;\n /**\n * Custom filter function for searching options.\n */\n filter?: (filterValue: string, options: IComboboxOption[]) => IComboboxOption[];\n /**\n * The default search input\n */\n defaultFilter?: string;\n /**\n * If true, disables filtering.\n */\n disableFilter?: boolean;\n /**\n * Controlled search input value.\n */\n filterValue?: string;\n /**\n * Callback fired when the search input value changes.\n */\n onFilterChanged?: (value: string) => void;\n /**\n * If true, displays a loading state.\n */\n loading?: boolean;\n /**\n * Callback fired when an option is hovered.\n */\n onOptionHover?: (event: React.MouseEvent, index: number, option: IComboboxOption) => void;\n /**\n * Callback fired when the mouse leaves an option.\n */\n onOptionLeave?: () => void;\n /**\n * If true, automatically scrolls to the selected option.\n */\n shouldScrollToSelectedItem?: boolean;\n /**\n * Custom renderer for when no results are found.\n */\n noResultsRenderer?: () => JSX.Element;\n /**\n * If true, keeps categories visible when scrolling.\n */\n stickyCategories?: boolean;\n /**\n * If true, visually focuses the first item by default.\n */\n defaultVisualFocusFirstIndex?: boolean;\n /**\n * If true, clears the search input when an option is selected.\n */\n clearFilterOnSelection?: boolean;\n /**\n * Custom renderer for options.\n */\n optionRenderer?: (option: IComboboxOption) => JSX.Element;\n /**\n * Maximum number of options displayed before scrolling.\n */\n maxOptionsWithoutScroll?: number;\n /**\n * If true, renders only visible options for performance optimization.\n */\n renderOnlyVisibleOptions?: boolean;\n /**\n * Callback fired when an option is clicked.\n */\n onClick?: (optionData: IComboboxOption) => void;\n /**\n * Custom search icon.\n */\n searchIcon?: SubIcon;\n /**\n * ARIA label for the search input.\n */\n searchInputAriaLabel?: string;\n /**\n * The debounce rate for filtering.\n */\n debounceRate?: number;\n /**\n * Ref for the search input element.\n */\n searchInputRef?: React.RefObject<HTMLInputElement>;\n /**\n * Additional action button inside the search input.\n */\n renderAction?: React.ReactElement<typeof IconButton | typeof MenuButton>;\n /**\n * If true, hides the additional action when the user types in the search input.\n */\n hideRenderActionOnInput?: boolean;\n}\n\nconst Combobox: React.FC<ComboboxProps> & {\n sizes?: typeof BASE_SIZES;\n iconTypes?: typeof ComboboxOption.iconTypes;\n} = forwardRef(\n (\n {\n className = \"\",\n optionClassName = \"\",\n searchWrapperClassName,\n stickyCategoryClassName,\n searchIcon,\n id = \"\",\n placeholder = \"\",\n size = \"medium\",\n defaultVisualFocusFirstIndex,\n optionLineHeight = 32,\n optionsListHeight,\n autoFocus = false,\n disabled = false,\n options = [],\n categories,\n withCategoriesDivider = false,\n noResultsMessage = \"No results found\",\n onAddNew,\n addNewLabel = \"Add new\",\n onClick = (_optionData: IComboboxOption) => {},\n filter = defaultFilter,\n disableFilter = false,\n filterValue: filterValueProp,\n onFilterChanged,\n loading = false,\n onOptionHover = NOOP,\n onOptionLeave = NOOP,\n shouldScrollToSelectedItem = true,\n noResultsRenderer,\n stickyCategories = false,\n optionRenderer = null,\n renderOnlyVisibleOptions = false,\n clearFilterOnSelection = false,\n maxOptionsWithoutScroll,\n defaultFilter: defaultFilterValue = \"\",\n searchInputAriaLabel = \"Search for content\",\n \"data-testid\": dataTestId,\n debounceRate,\n searchInputRef,\n renderAction: RenderAction,\n hideRenderActionOnInput\n }: ComboboxProps,\n ref\n ) => {\n const componentRef = useRef(null);\n const inputRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n const mergedInputRef = useMergeRef(inputRef, searchInputRef);\n\n const [filterValue, setFilterValue] = useState(filterValueProp || defaultFilterValue);\n\n if (filterValueProp !== undefined && filterValueProp !== filterValue) {\n setFilterValue(filterValueProp);\n }\n\n const onChangeCallback = useCallback(\n (value: string) => {\n setActiveOptionIndex(-1);\n if (onFilterChanged) {\n onFilterChanged(value);\n }\n setFilterValue(value);\n },\n [setFilterValue, onFilterChanged]\n );\n\n const onOptionHoverCB = useCallback(\n (event: React.MouseEvent, index: number, option: IComboboxOption) => {\n onOptionHover(event, index, option);\n },\n [onOptionHover]\n );\n\n const filteredOptions: IComboboxOption[] = useMemo(() => {\n if (disableFilter) {\n return options;\n }\n return filter(filterValue, options);\n }, [options, filterValue, filter, disableFilter]);\n\n const [activeOptionIndex, setActiveOptionIndex] = useState(-1);\n\n const isChildSelectable = useCallback(\n (index: number) => {\n return index !== undefined && filteredOptions[index] && !filteredOptions[index].disabled;\n },\n [filteredOptions]\n );\n\n const onAddNewCallback = useCallback(() => {\n onAddNew && onAddNew(filterValue);\n // clear filter after adding\n setFilterValue(\"\");\n }, [onAddNew, filterValue, setFilterValue]);\n\n const hasResults = filteredOptions.length > 0;\n const hasFilter = filterValue.length > 0;\n\n function getAddNewLabel() {\n if (isFunction(addNewLabel)) {\n return addNewLabel(filterValue);\n }\n return addNewLabel;\n }\n\n function renderNoResults() {\n if (noResultsRenderer) {\n return noResultsRenderer();\n }\n\n return (\n <div className={styles.comboboxNoResults}>\n <div className={styles.comboboxMessageWrapper}>\n <span className={styles.comboboxMessage}>{noResultsMessage}</span>\n </div>\n {onAddNew && !disabled && (\n <Button className={styles.addNewButton} size={size} kind=\"tertiary\" onClick={onAddNewCallback}>\n <span className={styles.buttonLabel}>{getAddNewLabel()}</span>\n </Button>\n )}\n </div>\n );\n }\n\n const [activeCategory, setActiveCategory] = useState<IComboboxCategory>();\n\n const onActiveCategoryChanged = useCallback(\n (categoryData: IComboboxItem) => {\n if (categoryData?.category?.label !== activeCategory?.label) {\n setActiveCategory(categoryData?.category);\n }\n },\n [activeCategory]\n );\n\n const { items, itemsMap, selectableItems } = useItemsData({\n categories,\n options: filteredOptions,\n filterValue,\n withCategoriesDivider,\n optionLineHeight\n });\n\n const overrideOnClick = useCallback(\n (_event: React.MouseEvent | React.KeyboardEvent, itemIndex: number) => {\n onClick(selectableItems[itemIndex]);\n if (isChildSelectable(itemIndex)) {\n setActiveOptionIndex(itemIndex);\n }\n if (clearFilterOnSelection) {\n // clear filter after adding\n onChangeCallback(\"\");\n }\n },\n [onClick, selectableItems, isChildSelectable, clearFilterOnSelection, onChangeCallback]\n );\n\n const {\n visualFocusItemIndex,\n visualFocusItemId,\n onOptionClick: overrideOnOptionClick\n } = useKeyboardNavigation({\n getOptionId,\n defaultVisualFocusFirstIndex,\n onClick: overrideOnClick,\n isChildSelectable,\n options: selectableItems,\n inputRef: mergedInputRef\n });\n\n return (\n <Text\n type=\"text2\"\n ref={mergedRef}\n className={cx(styles.combobox, className, getStyle(styles, camelCase(\"size-\" + size)), {\n [styles.empty]: !hasResults,\n [styles.stickyCategory]: stickyCategories\n })}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.COMBOBOX, id)}\n ellipsis={false}\n >\n <div className={styles.comboboxList} style={{ maxHeight: optionsListHeight }}>\n <Search\n ref={mergedInputRef}\n value={filterValue}\n className={cx(styles.comboboxSearchWrapper, searchWrapperClassName)}\n inputAriaLabel={searchInputAriaLabel}\n currentAriaResultId={visualFocusItemId}\n id=\"combobox-search\"\n placeholder={placeholder}\n size={size}\n disabled={disabled}\n onChange={onChangeCallback}\n autoFocus={autoFocus}\n loading={loading}\n searchIconName={searchIcon}\n ariaExpanded={hasFilter || hasResults}\n ariaHasPopup=\"listbox\"\n searchResultsContainerId={id ? `${id}-listbox` : COMBOBOX_LISTBOX_ID}\n debounceRate={debounceRate}\n renderAction={RenderAction}\n hideRenderActionOnInput={hideRenderActionOnInput}\n />\n {stickyCategories && (\n <StickyCategoryHeader\n label={activeCategory?.label}\n color={activeCategory?.color}\n className={stickyCategoryClassName}\n />\n )}\n {hasResults && (\n <ComboboxItems\n stickyCategories={stickyCategories}\n categories={categories}\n options={items}\n itemsMap={itemsMap}\n optionClassName={optionClassName}\n optionRenderer={optionRenderer}\n activeItemIndex={activeOptionIndex}\n onActiveCategoryChanged={onActiveCategoryChanged}\n onOptionClick={overrideOnOptionClick}\n onOptionEnter={onOptionHoverCB}\n onOptionLeave={onOptionLeave}\n optionLineHeight={optionLineHeight}\n shouldScrollToSelectedItem={shouldScrollToSelectedItem}\n renderOnlyVisibleOptions={renderOnlyVisibleOptions}\n maxOptionsWithoutScroll={maxOptionsWithoutScroll}\n visualFocusItemIndex={visualFocusItemIndex}\n id={id ? `${id}-listbox` : COMBOBOX_LISTBOX_ID}\n />\n )}\n </div>\n {hasFilter && !hasResults && !loading && renderNoResults()}\n </Text>\n );\n }\n);\n\n// Locate loading next to search icon\n// color it with --secondary-text-color\n// size it like the icon - we think it's 16px - make sure it's not fat\n\nexport default withStaticProps(Combobox, {\n sizes: BASE_SIZES,\n iconTypes: ComboboxOption.iconTypes\n});\n"],"names":["withStaticProps","forwardRef","_ref","ref","_ref$className","className","_ref$optionClassName","optionClassName","searchWrapperClassName","stickyCategoryClassName","searchIcon","_ref$id","id","_ref$placeholder","placeholder","_ref$size","size","defaultVisualFocusFirstIndex","_ref$optionLineHeight","optionLineHeight","optionsListHeight","_ref$autoFocus","autoFocus","_ref$disabled","disabled","_ref$options","options","categories","_ref$withCategoriesDi","withCategoriesDivider","_ref$noResultsMessage","noResultsMessage","onAddNew","_ref$addNewLabel","addNewLabel","_ref$onClick","onClick","_optionData","_ref$filter","filter","defaultFilter","_ref$disableFilter","disableFilter","filterValueProp","filterValue","onFilterChanged","_ref$loading","loading","_ref$onOptionHover","onOptionHover","NOOP","_ref$onOptionLeave","onOptionLeave","_ref$shouldScrollToSe","shouldScrollToSelectedItem","noResultsRenderer","_ref$stickyCategories","stickyCategories","_ref$optionRenderer","optionRenderer","_ref$renderOnlyVisibl","renderOnlyVisibleOptions","_ref$clearFilterOnSel","clearFilterOnSelection","maxOptionsWithoutScroll","_ref$defaultFilter","defaultFilterValue","_ref$searchInputAriaL","searchInputAriaLabel","dataTestId","debounceRate","searchInputRef","RenderAction","renderAction","hideRenderActionOnInput","componentRef","useRef","inputRef","mergedRef","useMergeRef","mergedInputRef","_useState","useState","_useState2","_slicedToArray","setFilterValue","undefined","onChangeCallback","useCallback","value","setActiveOptionIndex","onOptionHoverCB","event","index","option","filteredOptions","useMemo","_useState3","_useState4","activeOptionIndex","isChildSelectable","onAddNewCallback","hasResults","length","hasFilter","_useState5","_useState6","activeCategory","setActiveCategory","onActiveCategoryChanged","categoryData","category","_a","label","_useItemsData","useItemsData","items","itemsMap","selectableItems","overrideOnClick","_event","itemIndex","_useKeyboardNavigatio","useKeyboardNavigation","getOptionId","visualFocusItemIndex","visualFocusItemId","overrideOnOptionClick","onOptionClick","React","createElement","Text","type","cx","styles","combobox","getStyle","camelCase","_defineProperty","empty","stickyCategory","getTestId","ComponentDefaultTestId","COMBOBOX","ellipsis","comboboxList","style","maxHeight","Search","comboboxSearchWrapper","inputAriaLabel","currentAriaResultId","onChange","searchIconName","ariaExpanded","ariaHasPopup","searchResultsContainerId","concat","COMBOBOX_LISTBOX_ID","StickyCategoryHeader","color","ComboboxItems","activeItemIndex","onOptionEnter","comboboxNoResults","comboboxMessageWrapper","comboboxMessage","Button","addNewButton","kind","buttonLabel","isFunction","sizes","BASE_SIZES","iconTypes","ComboboxOption"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxCategory.js","sources":["../../../../../../src/components/Combobox/components/ComboboxCategory/ComboboxCategory.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { FC } from \"react\";\nimport { IComboboxCategory } from \"../ComboboxConstants\";\nimport styles from \"./ComboboxCategory.module.scss\";\nimport comboboxStyles from \"../../Combobox.module.scss\";\n\nexport interface ComboboxCategoryProps {\n category: IComboboxCategory;\n className: string;\n}\n\nconst ComboboxCategory: FC<ComboboxCategoryProps> = ({ category, className }) => {\n const { label, id, ariaLabel, color } = category;\n\n if (!label) return null;\n\n return (\n <div\n key={id}\n role=\"row\"\n aria-level={1}\n aria-label={ariaLabel || label}\n id={`combobox-category-${id}`}\n style={color && { color }}\n className={cx(styles.comboboxCategory, comboboxStyles.comboboxCategory, className)}\n >\n {label}\n </div>\n );\n};\n\nexport default ComboboxCategory;\n"],"names":["ComboboxCategory","_ref","category","className","label","id","color","React","key","role","ariaLabel","concat","style","cx","styles","comboboxCategory","comboboxStyles"],"mappings":"6IAWA,IAAMA,EAA8C,SAA9BC,GAA0D,IAAzBC,EAAQD,EAARC,SAAUC,EAASF,EAATE,UACvDC,EAAgCF,EAAhCE,MAAOC,EAAyBH,EAAzBG,GAAeC,EAAUJ,EAAVI,MAE9B,OAAKF,EAGHG,uBACEC,IAAKH,EACLI,KAAK,MACO,aAAA,eARwBP,EAArBQ,WASUN,EACzBC,GAAEM,qBAAAA,OAAuBN,GACzBO,MAAON,GAAS,CAAEA,MAAAA,GAClBH,UAAWU,EAAGC,EAAOC,iBAAkBC,EAAeD,iBAAkBZ,IAEvEC,GAZc,IAerB"}
1
+ {"version":3,"file":"ComboboxCategory.js","sources":["../../../../../../src/components/Combobox/components/ComboboxCategory/ComboboxCategory.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { FC } from \"react\";\nimport { IComboboxCategory } from \"../ComboboxConstants\";\nimport styles from \"./ComboboxCategory.module.scss\";\nimport comboboxStyles from \"../../Combobox.module.scss\";\n\nexport interface ComboboxCategoryProps {\n /**\n * The category data.\n */\n category: IComboboxCategory;\n /**\n * Class name applied to the category element.\n */\n className: string;\n}\n\nconst ComboboxCategory: FC<ComboboxCategoryProps> = ({ category, className }) => {\n const { label, id, ariaLabel, color } = category;\n\n if (!label) return null;\n\n return (\n <div\n key={id}\n role=\"row\"\n aria-level={1}\n aria-label={ariaLabel || label}\n id={`combobox-category-${id}`}\n style={color && { color }}\n className={cx(styles.comboboxCategory, comboboxStyles.comboboxCategory, className)}\n >\n {label}\n </div>\n );\n};\n\nexport default ComboboxCategory;\n"],"names":["ComboboxCategory","_ref","category","className","label","id","color","React","key","role","ariaLabel","concat","style","cx","styles","comboboxCategory","comboboxStyles"],"mappings":"6IAiBA,IAAMA,EAA8C,SAA9BC,GAA0D,IAAzBC,EAAQD,EAARC,SAAUC,EAASF,EAATE,UACvDC,EAAgCF,EAAhCE,MAAOC,EAAyBH,EAAzBG,GAAeC,EAAUJ,EAAVI,MAE9B,OAAKF,EAGHG,uBACEC,IAAKH,EACLI,KAAK,MACO,aAAA,eARwBP,EAArBQ,WASUN,EACzBC,GAAEM,qBAAAA,OAAuBN,GACzBO,MAAON,GAAS,CAAEA,MAAAA,GAClBH,UAAWU,EAAGC,EAAOC,iBAAkBC,EAAeD,iBAAkBZ,IAEvEC,GAZc,IAerB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxConstants.js","sources":["../../../../../src/components/Combobox/components/ComboboxConstants.ts"],"sourcesContent":["import { SubIcon } from \"../../../types\";\nimport React from \"react\";\nimport { MutableRef } from \"preact/hooks\";\n\nexport const COMBOBOX_DIVIDER_ITEM = \"combobox-divider\";\nexport const COMBOBOX_CATEGORY_ITEM = \"combobox-category\";\nexport const COMBOBOX_OPTION_ITEM = \"combobox-option\";\nexport const COMBOBOX_LISTBOX_ID = \"combobox-listbox\";\n\n/**\n * @deprecated\n */\nexport enum ComboboxOptionIconType {\n DEFAULT = \"default\",\n RENDERER = \"renderer\"\n}\n\nexport interface IComboboxCategoryMap {\n [key: string]: IComboboxCategory;\n}\n\nexport interface IComboboxCategory {\n label: string;\n id: string;\n ariaLabel?: string;\n onlyShowOnSearch?: boolean;\n color?: string;\n}\n\nexport interface IComboboxOption {\n id: string;\n categoryId?: string;\n leftIcon?: SubIcon | ((className: string) => JSX.Element);\n rightIcon?: SubIcon | ((className: string) => JSX.Element);\n leftIconType?: ComboboxOptionIconType;\n rightIconType?: ComboboxOptionIconType;\n label: string;\n iconSize?: number;\n disabled?: boolean;\n selected?: boolean;\n ariaLabel?: string;\n belongToCategory?: boolean;\n tooltipContent?: string;\n}\n\nexport interface IComboboxItem {\n height?: number;\n type?: string;\n category?: IComboboxCategory;\n categoryId?: string;\n id?: string;\n index?: number;\n withDivider?: boolean;\n className?: string;\n belongToCategory?: boolean;\n option?: IComboboxOption;\n optionRenderer?: (option: IComboboxOption) => JSX.Element;\n isActive?: boolean;\n optionLineHeight?: number;\n shouldScrollToSelectedItem?: boolean;\n}\n\nexport interface IComboboxOptionEvents {\n onOptionClick: (\n event: React.MouseEvent | React.KeyboardEvent,\n index: number,\n option: IComboboxOption,\n mouseTriggered: boolean\n ) => void;\n onOptionLeave: (event: React.MouseEvent, index: number, option: IComboboxOption, mouseTriggered: boolean) => void;\n onOptionEnter: (event: React.MouseEvent, index: number, option: IComboboxOption, mouseTriggered: boolean) => void;\n onOptionHover?: (event: React.MouseEvent, index: number, option: IComboboxOption, mouseTriggered: boolean) => void;\n}\n\nexport interface IOptionItemRendererArgs extends IComboboxOptionEvents {\n id?: string;\n index?: number;\n option?: IComboboxOption;\n className?: string;\n isActive?: boolean;\n visualFocus?: boolean;\n scrollRef?: MutableRef<HTMLElement>;\n scrollOffset?: number;\n optionLineHeight?: number;\n shouldScrollToSelectedItem?: boolean;\n shouldScrollWhenActive?: boolean;\n belongToCategory?: boolean;\n visualFocusItemIndex?: number;\n activeItemIndex?: number;\n optionRenderer?: (option: IComboboxOption) => JSX.Element;\n}\n"],"names":["ComboboxOptionIconType","COMBOBOX_DIVIDER_ITEM","COMBOBOX_CATEGORY_ITEM","COMBOBOX_OPTION_ITEM","COMBOBOX_LISTBOX_ID"],"mappings":"AAIO,IAQKA,EARCC,EAAwB,mBACxBC,EAAyB,oBACzBC,EAAuB,kBACvBC,EAAsB,oBAKnC,SAAYJ,GACVA,EAAA,QAAA,UACAA,EAAA,SAAA,UACD,CAHD,CAAYA,IAAAA,EAGX,CAAA"}
1
+ {"version":3,"file":"ComboboxConstants.js","sources":["../../../../../src/components/Combobox/components/ComboboxConstants.ts"],"sourcesContent":["import { SubIcon } from \"../../../types\";\nimport React from \"react\";\nimport { MutableRef } from \"preact/hooks\";\n\nexport const COMBOBOX_DIVIDER_ITEM = \"combobox-divider\";\nexport const COMBOBOX_CATEGORY_ITEM = \"combobox-category\";\nexport const COMBOBOX_OPTION_ITEM = \"combobox-option\";\nexport const COMBOBOX_LISTBOX_ID = \"combobox-listbox\";\n\n/**\n * @deprecated\n */\nexport enum ComboboxOptionIconType {\n DEFAULT = \"default\",\n RENDERER = \"renderer\"\n}\n\nexport interface IComboboxCategoryMap {\n /**\n * A mapping of category IDs to category details.\n */\n [key: string]: IComboboxCategory;\n}\n\nexport interface IComboboxCategory {\n /**\n * The display label of the category.\n */\n label: string;\n /**\n * The unique ID of the category.\n */\n id: string;\n /**\n * The ARIA label for accessibility.\n */\n ariaLabel?: string;\n /**\n * If true, the category is only shown when searching.\n */\n onlyShowOnSearch?: boolean;\n /**\n * The color associated with the category.\n */\n color?: string;\n}\n\nexport interface IComboboxOption {\n /**\n * The unique ID of the option.\n */\n id: string;\n /**\n * The ID of the category the option belongs to.\n */\n categoryId?: string;\n /**\n * The icon displayed on the left side.\n */\n leftIcon?: SubIcon | ((className: string) => JSX.Element);\n /**\n * The icon displayed on the right side.\n */\n rightIcon?: SubIcon | ((className: string) => JSX.Element);\n /**\n * The type of the left icon.\n */\n leftIconType?: ComboboxOptionIconType;\n /**\n * The type of the right icon.\n */\n rightIconType?: ComboboxOptionIconType;\n /**\n * The display label of the option.\n */\n label: string;\n /**\n * The size of the icons.\n */\n iconSize?: number;\n /**\n * If true, the option is disabled.\n */\n disabled?: boolean;\n /**\n * If true, the option is selected.\n */\n selected?: boolean;\n /**\n * The ARIA label for accessibility.\n */\n ariaLabel?: string;\n /**\n * If true, the option belongs to a category.\n */\n belongToCategory?: boolean;\n /**\n * The tooltip content displayed on hover.\n */\n tooltipContent?: string;\n}\n\nexport interface IComboboxItem {\n /**\n * The height of the item.\n */\n height?: number;\n /**\n * The type of the item.\n */\n type?: string;\n /**\n * The category details if the item is a category.\n */\n category?: IComboboxCategory;\n /**\n * The ID of the category the item belongs to.\n */\n categoryId?: string;\n /**\n * The unique ID of the item.\n */\n id?: string;\n /**\n * The index of the item in the list.\n */\n index?: number;\n /**\n * If true, a divider is displayed before this item.\n */\n withDivider?: boolean;\n /**\n * Class name applied to the item.\n */\n className?: string;\n /**\n * If true, the item belongs to a category.\n */\n belongToCategory?: boolean;\n /**\n * The option details if the item is an option.\n */\n option?: IComboboxOption;\n /**\n * Custom renderer for the option.\n */\n optionRenderer?: (option: IComboboxOption) => JSX.Element;\n /**\n * If true, the item is currently active.\n */\n isActive?: boolean;\n /**\n * The height of the option item.\n */\n optionLineHeight?: number;\n /**\n * If true, the selected item is automatically scrolled into view.\n */\n shouldScrollToSelectedItem?: boolean;\n}\n\nexport interface IComboboxOptionEvents {\n /**\n * Callback fired when an option is clicked.\n */\n onOptionClick: (\n event: React.MouseEvent | React.KeyboardEvent,\n index: number,\n option: IComboboxOption,\n mouseTriggered: boolean\n ) => void;\n /**\n * Callback fired when the mouse leaves an option.\n */\n onOptionLeave: (event: React.MouseEvent, index: number, option: IComboboxOption, mouseTriggered: boolean) => void;\n /**\n * Callback fired when the mouse enters an option.\n */\n onOptionEnter: (event: React.MouseEvent, index: number, option: IComboboxOption, mouseTriggered: boolean) => void;\n /**\n * Callback fired when hovering over an option.\n */\n onOptionHover?: (event: React.MouseEvent, index: number, option: IComboboxOption, mouseTriggered: boolean) => void;\n}\n\nexport interface IOptionItemRendererArgs extends IComboboxOptionEvents {\n /**\n * The unique ID of the option item.\n */\n id?: string;\n /**\n * The index of the option item.\n */\n index?: number;\n /**\n * The option details.\n */\n option?: IComboboxOption;\n /**\n * Class name applied to the option item.\n */\n className?: string;\n /**\n * If true, the option is currently active.\n */\n isActive?: boolean;\n /**\n * If true, the option has visual focus.\n */\n visualFocus?: boolean;\n /**\n * A reference to the scroll container.\n */\n scrollRef?: MutableRef<HTMLElement>;\n /**\n * The amount of offset when scrolling to the active item.\n */\n scrollOffset?: number;\n /**\n * The height of the option item.\n */\n optionLineHeight?: number;\n /**\n * If true, the selected item is automatically scrolled into view.\n */\n shouldScrollToSelectedItem?: boolean;\n /**\n * If true, scrolls to the active option when it is selected.\n */\n shouldScrollWhenActive?: boolean;\n /**\n * If true, the option belongs to a category.\n */\n belongToCategory?: boolean;\n /**\n * The index of the item with visual focus.\n */\n visualFocusItemIndex?: number;\n /**\n * The index of the currently active item.\n */\n activeItemIndex?: number;\n /**\n * Custom renderer for the option content.\n */\n optionRenderer?: (option: IComboboxOption) => JSX.Element;\n}\n"],"names":["ComboboxOptionIconType","COMBOBOX_DIVIDER_ITEM","COMBOBOX_CATEGORY_ITEM","COMBOBOX_OPTION_ITEM","COMBOBOX_LISTBOX_ID"],"mappings":"AAIO,IAQKA,EARCC,EAAwB,mBACxBC,EAAyB,oBACzBC,EAAuB,kBACvBC,EAAsB,oBAKnC,SAAYJ,GACVA,EAAA,QAAA,UACAA,EAAA,SAAA,UACD,CAHD,CAAYA,IAAAA,EAGX,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxItems.js","sources":["../../../../../../src/components/Combobox/components/ComboboxItems/ComboboxItems.tsx"],"sourcesContent":["import React, { CSSProperties, forwardRef, RefObject, useCallback, useMemo, useRef } from \"react\";\nimport cx from \"classnames\";\nimport { comboboxItemRenderer } from \"../../ComboboxHelpers/ComboboxHelpers\";\nimport VirtualizedList from \"../../../../components/VirtualizedList/VirtualizedList\";\nimport {\n COMBOBOX_CATEGORY_ITEM,\n COMBOBOX_OPTION_ITEM,\n IComboboxCategoryMap,\n IComboboxItem,\n IComboboxOption,\n IComboboxOptionEvents\n} from \"../ComboboxConstants\";\nimport styles from \"./ComboboxItems.module.scss\";\n\nexport interface ComboboxItemsProps extends IComboboxOptionEvents {\n className?: string;\n optionClassName?: string;\n categories?: IComboboxCategoryMap;\n options?: IComboboxItem[];\n optionRenderer?: (option: IComboboxOption) => JSX.Element;\n activeItemIndex?: number;\n visualFocusItemIndex?: number;\n optionLineHeight?: number;\n shouldScrollToSelectedItem?: boolean;\n renderOnlyVisibleOptions?: boolean;\n onActiveCategoryChanged?: (category: IComboboxItem) => void;\n maxOptionsWithoutScroll?: number;\n itemsMap?: Map<string, IComboboxItem>;\n stickyCategories?: boolean;\n id?: string;\n}\n\nexport const ComboboxItems: React.FC<ComboboxItemsProps> = forwardRef(\n (\n {\n className,\n optionClassName,\n categories,\n options,\n optionRenderer,\n activeItemIndex,\n visualFocusItemIndex,\n onOptionClick,\n onOptionEnter,\n onOptionLeave,\n optionLineHeight,\n shouldScrollToSelectedItem,\n renderOnlyVisibleOptions,\n onActiveCategoryChanged,\n maxOptionsWithoutScroll,\n itemsMap,\n stickyCategories,\n id\n },\n ref: RefObject<HTMLDivElement>\n ) => {\n const activeCategoryId = useRef<string>();\n const style = useMemo(() => {\n if (maxOptionsWithoutScroll) {\n // Adding 0.5 to show next option to indicate scroll is available\n const maxCount = Math.min(options.length + Object.keys(categories ?? {}).length, maxOptionsWithoutScroll + 0.5);\n return { height: optionLineHeight * maxCount };\n }\n return undefined;\n }, [maxOptionsWithoutScroll, optionLineHeight, options, categories]);\n\n const createItemElementRenderer = useCallback(\n (item: IComboboxItem, index: number, style: CSSProperties) =>\n comboboxItemRenderer({\n stickyCategories,\n item,\n style,\n optionEvents: {\n onOptionClick,\n onOptionEnter,\n onOptionLeave\n },\n optionRenderData: {\n className: optionClassName,\n optionLineHeight,\n optionRenderer,\n visualFocusItemIndex,\n scrollRef: renderOnlyVisibleOptions ? null : ref,\n activeItemIndex,\n shouldScrollToSelectedItem\n },\n isVirtualized: renderOnlyVisibleOptions\n }),\n [\n onOptionClick,\n onOptionEnter,\n onOptionLeave,\n optionClassName,\n optionLineHeight,\n optionRenderer,\n visualFocusItemIndex,\n renderOnlyVisibleOptions,\n ref,\n activeItemIndex,\n shouldScrollToSelectedItem\n ]\n );\n\n const onItemsRender = useCallback(\n ({ firstItemId }: { firstItemId?: string }) => {\n window.requestAnimationFrame(() => {\n const itemData = itemsMap.get(firstItemId);\n if (itemData && (itemData.type === COMBOBOX_CATEGORY_ITEM || itemData.type === COMBOBOX_OPTION_ITEM)) {\n const newActiveCategoryId =\n itemData.type === COMBOBOX_OPTION_ITEM && itemData.categoryId ? itemData.categoryId : itemData.id;\n\n if (newActiveCategoryId !== activeCategoryId.current) {\n activeCategoryId.current = newActiveCategoryId;\n const categoryObject = itemsMap.get(activeCategoryId.current);\n onActiveCategoryChanged(categoryObject);\n }\n }\n });\n },\n [itemsMap, onActiveCategoryChanged]\n );\n\n let itemsElements;\n\n // If we request to render only the items which visible in a given moment (optimization for very large lists)\n if (renderOnlyVisibleOptions) {\n itemsElements = (\n <VirtualizedList\n ref={ref}\n className={cx(styles.optionsContainer, className)}\n items={options}\n itemRenderer={createItemElementRenderer}\n role=\"listbox\"\n scrollableClassName={styles.scrollableContainer}\n onItemsRendered={onItemsRender}\n style={style}\n id={id}\n />\n );\n } else {\n itemsElements = (\n <div\n className={cx(styles.scrollableContainer, styles.optionsContainer, className)}\n role=\"listbox\"\n id={id}\n style={style}\n ref={ref}\n >\n {options.map((itemData, index) => createItemElementRenderer(itemData, index, undefined))}\n </div>\n );\n }\n\n return itemsElements;\n }\n);\n"],"names":["ComboboxItems","forwardRef","_ref","ref","className","optionClassName","categories","options","optionRenderer","activeItemIndex","visualFocusItemIndex","onOptionClick","onOptionEnter","onOptionLeave","optionLineHeight","shouldScrollToSelectedItem","renderOnlyVisibleOptions","onActiveCategoryChanged","maxOptionsWithoutScroll","itemsMap","stickyCategories","id","activeCategoryId","useRef","style","useMemo","height","Math","min","length","Object","keys","createItemElementRenderer","useCallback","item","index","comboboxItemRenderer","optionEvents","optionRenderData","scrollRef","isVirtualized","onItemsRender","_ref2","firstItemId","window","requestAnimationFrame","itemData","get","type","COMBOBOX_CATEGORY_ITEM","COMBOBOX_OPTION_ITEM","newActiveCategoryId","categoryId","current","categoryObject","React","createElement","VirtualizedList","cx","styles","optionsContainer","items","itemRenderer","role","scrollableClassName","scrollableContainer","onItemsRendered","map","undefined"],"mappings":"8XAgCO,IAAMA,EAA8CC,GACzD,SAAAC,EAqBEC,GACE,IApBAC,EAASF,EAATE,UACAC,EAAeH,EAAfG,gBACAC,EAAUJ,EAAVI,WACAC,EAAOL,EAAPK,QACAC,EAAcN,EAAdM,eACAC,EAAeP,EAAfO,gBACAC,EAAoBR,EAApBQ,qBACAC,EAAaT,EAAbS,cACAC,EAAaV,EAAbU,cACAC,EAAaX,EAAbW,cACAC,EAAgBZ,EAAhBY,iBACAC,EAA0Bb,EAA1Ba,2BACAC,EAAwBd,EAAxBc,yBACAC,EAAuBf,EAAvBe,wBACAC,EAAuBhB,EAAvBgB,wBACAC,EAAQjB,EAARiB,SACAC,EAAgBlB,EAAhBkB,iBACAC,EAAEnB,EAAFmB,GAIIC,EAAmBC,IACnBC,EAAQC,GAAQ,WACpB,GAAIP,EAGF,MAAO,CAAEQ,OAAQZ,EADAa,KAAKC,IAAIrB,EAAQsB,OAASC,OAAOC,KAAKzB,QAAAA,EAAc,CAAA,GAAIuB,OAAQX,EAA0B,IAI9G,GAAE,CAACA,EAAyBJ,EAAkBP,EAASD,IAElD0B,EAA4BC,GAChC,SAACC,EAAqBC,EAAeX,GAAoB,OACvDY,EAAqB,CACnBhB,iBAAAA,EACAc,KAAAA,EACAV,MAAAA,EACAa,aAAc,CACZ1B,cAAAA,EACAC,cAAAA,EACAC,cAAAA,GAEFyB,iBAAkB,CAChBlC,UAAWC,EACXS,iBAAAA,EACAN,eAAAA,EACAE,qBAAAA,EACA6B,UAAWvB,EAA2B,KAAOb,EAC7CM,gBAAAA,EACAM,2BAAAA,GAEFyB,cAAexB,GAEnB,GAAA,CACEL,EACAC,EACAC,EACAR,EACAS,EACAN,EACAE,EACAM,EACAb,EACAM,EACAM,IAIE0B,EAAgBR,GACpB,SAAAS,GAA8C,IAA3CC,EAAWD,EAAXC,YACDC,OAAOC,uBAAsB,WAC3B,IAAMC,EAAW3B,EAAS4B,IAAIJ,GAC9B,GAAIG,IAAaA,EAASE,OAASC,GAA0BH,EAASE,OAASE,GAAuB,CACpG,IAAMC,EACJL,EAASE,OAASE,GAAwBJ,EAASM,WAAaN,EAASM,WAAaN,EAASzB,GAEjG,GAAI8B,IAAwB7B,EAAiB+B,QAAS,CACpD/B,EAAiB+B,QAAUF,EAC3B,IAAMG,EAAiBnC,EAAS4B,IAAIzB,EAAiB+B,SACrDpC,EAAwBqC,EACzB,CACF,CACH,GACF,GACA,CAACnC,EAAUF,IAkCb,OA5BID,EAEAuC,EAACC,cAAAC,GACCtD,IAAKA,EACLC,UAAWsD,EAAGC,EAAOC,iBAAkBxD,GACvCyD,MAAOtD,EACPuD,aAAc9B,EACd+B,KAAK,UACLC,oBAAqBL,EAAOM,oBAC5BC,gBAAiBzB,EACjBjB,MAAOA,EACPH,GAAIA,IAKNkC,EAAAC,cAAA,MAAA,CACEpD,UAAWsD,EAAGC,EAAOM,oBAAqBN,EAAOC,iBAAkBxD,GACnE2D,KAAK,UACL1C,GAAIA,EACJG,MAAOA,EACPrB,IAAKA,GAEJI,EAAQ4D,KAAI,SAACrB,EAAUX,GAAK,OAAKH,EAA0Bc,EAAUX,OAAOiC,EAAU,IAM/F"}
1
+ {"version":3,"file":"ComboboxItems.js","sources":["../../../../../../src/components/Combobox/components/ComboboxItems/ComboboxItems.tsx"],"sourcesContent":["import React, { CSSProperties, forwardRef, RefObject, useCallback, useMemo, useRef } from \"react\";\nimport cx from \"classnames\";\nimport { comboboxItemRenderer } from \"../../ComboboxHelpers/ComboboxHelpers\";\nimport VirtualizedList from \"../../../../components/VirtualizedList/VirtualizedList\";\nimport {\n COMBOBOX_CATEGORY_ITEM,\n COMBOBOX_OPTION_ITEM,\n IComboboxCategoryMap,\n IComboboxItem,\n IComboboxOption,\n IComboboxOptionEvents\n} from \"../ComboboxConstants\";\nimport styles from \"./ComboboxItems.module.scss\";\n\nexport interface ComboboxItemsProps extends IComboboxOptionEvents {\n /**\n * Class name applied to the options container.\n */\n className?: string;\n /**\n * Class name applied to individual options.\n */\n optionClassName?: string;\n /**\n * The categories available in the combobox.\n */\n categories?: IComboboxCategoryMap;\n /**\n * The list of options displayed in the combobox.\n */\n options?: IComboboxItem[];\n /**\n * Custom renderer for an option.\n */\n optionRenderer?: (option: IComboboxOption) => JSX.Element;\n /**\n * The index of the currently active item.\n */\n activeItemIndex?: number;\n /**\n * The index of the item with visual focus.\n */\n visualFocusItemIndex?: number;\n /**\n * The height of each option item.\n */\n optionLineHeight?: number;\n /**\n * If true, the list scrolls to the selected item when opened.\n */\n shouldScrollToSelectedItem?: boolean;\n /**\n * If true, only renders visible options (optimization for large lists).\n */\n renderOnlyVisibleOptions?: boolean;\n /**\n * Callback fired when the active category changes.\n */\n onActiveCategoryChanged?: (category: IComboboxItem) => void;\n /**\n * The maximum number of options displayed without scrolling.\n */\n maxOptionsWithoutScroll?: number;\n /**\n * A map of item IDs to item data.\n */\n itemsMap?: Map<string, IComboboxItem>;\n /**\n * If true, categories remain visible when scrolling.\n */\n stickyCategories?: boolean;\n /**\n * The ID of the options container.\n */\n id?: string;\n}\n\nexport const ComboboxItems: React.FC<ComboboxItemsProps> = forwardRef(\n (\n {\n className,\n optionClassName,\n categories,\n options,\n optionRenderer,\n activeItemIndex,\n visualFocusItemIndex,\n onOptionClick,\n onOptionEnter,\n onOptionLeave,\n optionLineHeight,\n shouldScrollToSelectedItem,\n renderOnlyVisibleOptions,\n onActiveCategoryChanged,\n maxOptionsWithoutScroll,\n itemsMap,\n stickyCategories,\n id\n },\n ref: RefObject<HTMLDivElement>\n ) => {\n const activeCategoryId = useRef<string>();\n const style = useMemo(() => {\n if (maxOptionsWithoutScroll) {\n // Adding 0.5 to show next option to indicate scroll is available\n const maxCount = Math.min(options.length + Object.keys(categories ?? {}).length, maxOptionsWithoutScroll + 0.5);\n return { height: optionLineHeight * maxCount };\n }\n return undefined;\n }, [maxOptionsWithoutScroll, optionLineHeight, options, categories]);\n\n const createItemElementRenderer = useCallback(\n (item: IComboboxItem, index: number, style: CSSProperties) =>\n comboboxItemRenderer({\n stickyCategories,\n item,\n style,\n optionEvents: {\n onOptionClick,\n onOptionEnter,\n onOptionLeave\n },\n optionRenderData: {\n className: optionClassName,\n optionLineHeight,\n optionRenderer,\n visualFocusItemIndex,\n scrollRef: renderOnlyVisibleOptions ? null : ref,\n activeItemIndex,\n shouldScrollToSelectedItem\n },\n isVirtualized: renderOnlyVisibleOptions\n }),\n [\n onOptionClick,\n onOptionEnter,\n onOptionLeave,\n optionClassName,\n optionLineHeight,\n optionRenderer,\n visualFocusItemIndex,\n renderOnlyVisibleOptions,\n ref,\n activeItemIndex,\n shouldScrollToSelectedItem\n ]\n );\n\n const onItemsRender = useCallback(\n ({ firstItemId }: { firstItemId?: string }) => {\n window.requestAnimationFrame(() => {\n const itemData = itemsMap.get(firstItemId);\n if (itemData && (itemData.type === COMBOBOX_CATEGORY_ITEM || itemData.type === COMBOBOX_OPTION_ITEM)) {\n const newActiveCategoryId =\n itemData.type === COMBOBOX_OPTION_ITEM && itemData.categoryId ? itemData.categoryId : itemData.id;\n\n if (newActiveCategoryId !== activeCategoryId.current) {\n activeCategoryId.current = newActiveCategoryId;\n const categoryObject = itemsMap.get(activeCategoryId.current);\n onActiveCategoryChanged(categoryObject);\n }\n }\n });\n },\n [itemsMap, onActiveCategoryChanged]\n );\n\n let itemsElements;\n\n // If we request to render only the items which visible in a given moment (optimization for very large lists)\n if (renderOnlyVisibleOptions) {\n itemsElements = (\n <VirtualizedList\n ref={ref}\n className={cx(styles.optionsContainer, className)}\n items={options}\n itemRenderer={createItemElementRenderer}\n role=\"listbox\"\n scrollableClassName={styles.scrollableContainer}\n onItemsRendered={onItemsRender}\n style={style}\n id={id}\n />\n );\n } else {\n itemsElements = (\n <div\n className={cx(styles.scrollableContainer, styles.optionsContainer, className)}\n role=\"listbox\"\n id={id}\n style={style}\n ref={ref}\n >\n {options.map((itemData, index) => createItemElementRenderer(itemData, index, undefined))}\n </div>\n );\n }\n\n return itemsElements;\n }\n);\n"],"names":["ComboboxItems","forwardRef","_ref","ref","className","optionClassName","categories","options","optionRenderer","activeItemIndex","visualFocusItemIndex","onOptionClick","onOptionEnter","onOptionLeave","optionLineHeight","shouldScrollToSelectedItem","renderOnlyVisibleOptions","onActiveCategoryChanged","maxOptionsWithoutScroll","itemsMap","stickyCategories","id","activeCategoryId","useRef","style","useMemo","height","Math","min","length","Object","keys","createItemElementRenderer","useCallback","item","index","comboboxItemRenderer","optionEvents","optionRenderData","scrollRef","isVirtualized","onItemsRender","_ref2","firstItemId","window","requestAnimationFrame","itemData","get","type","COMBOBOX_CATEGORY_ITEM","COMBOBOX_OPTION_ITEM","newActiveCategoryId","categoryId","current","categoryObject","React","createElement","VirtualizedList","cx","styles","optionsContainer","items","itemRenderer","role","scrollableClassName","scrollableContainer","onItemsRendered","map","undefined"],"mappings":"8XA6EO,IAAMA,EAA8CC,GACzD,SAAAC,EAqBEC,GACE,IApBAC,EAASF,EAATE,UACAC,EAAeH,EAAfG,gBACAC,EAAUJ,EAAVI,WACAC,EAAOL,EAAPK,QACAC,EAAcN,EAAdM,eACAC,EAAeP,EAAfO,gBACAC,EAAoBR,EAApBQ,qBACAC,EAAaT,EAAbS,cACAC,EAAaV,EAAbU,cACAC,EAAaX,EAAbW,cACAC,EAAgBZ,EAAhBY,iBACAC,EAA0Bb,EAA1Ba,2BACAC,EAAwBd,EAAxBc,yBACAC,EAAuBf,EAAvBe,wBACAC,EAAuBhB,EAAvBgB,wBACAC,EAAQjB,EAARiB,SACAC,EAAgBlB,EAAhBkB,iBACAC,EAAEnB,EAAFmB,GAIIC,EAAmBC,IACnBC,EAAQC,GAAQ,WACpB,GAAIP,EAGF,MAAO,CAAEQ,OAAQZ,EADAa,KAAKC,IAAIrB,EAAQsB,OAASC,OAAOC,KAAKzB,QAAAA,EAAc,CAAA,GAAIuB,OAAQX,EAA0B,IAI9G,GAAE,CAACA,EAAyBJ,EAAkBP,EAASD,IAElD0B,EAA4BC,GAChC,SAACC,EAAqBC,EAAeX,GAAoB,OACvDY,EAAqB,CACnBhB,iBAAAA,EACAc,KAAAA,EACAV,MAAAA,EACAa,aAAc,CACZ1B,cAAAA,EACAC,cAAAA,EACAC,cAAAA,GAEFyB,iBAAkB,CAChBlC,UAAWC,EACXS,iBAAAA,EACAN,eAAAA,EACAE,qBAAAA,EACA6B,UAAWvB,EAA2B,KAAOb,EAC7CM,gBAAAA,EACAM,2BAAAA,GAEFyB,cAAexB,GAEnB,GAAA,CACEL,EACAC,EACAC,EACAR,EACAS,EACAN,EACAE,EACAM,EACAb,EACAM,EACAM,IAIE0B,EAAgBR,GACpB,SAAAS,GAA8C,IAA3CC,EAAWD,EAAXC,YACDC,OAAOC,uBAAsB,WAC3B,IAAMC,EAAW3B,EAAS4B,IAAIJ,GAC9B,GAAIG,IAAaA,EAASE,OAASC,GAA0BH,EAASE,OAASE,GAAuB,CACpG,IAAMC,EACJL,EAASE,OAASE,GAAwBJ,EAASM,WAAaN,EAASM,WAAaN,EAASzB,GAEjG,GAAI8B,IAAwB7B,EAAiB+B,QAAS,CACpD/B,EAAiB+B,QAAUF,EAC3B,IAAMG,EAAiBnC,EAAS4B,IAAIzB,EAAiB+B,SACrDpC,EAAwBqC,EACzB,CACF,CACH,GACF,GACA,CAACnC,EAAUF,IAkCb,OA5BID,EAEAuC,EAACC,cAAAC,GACCtD,IAAKA,EACLC,UAAWsD,EAAGC,EAAOC,iBAAkBxD,GACvCyD,MAAOtD,EACPuD,aAAc9B,EACd+B,KAAK,UACLC,oBAAqBL,EAAOM,oBAC5BC,gBAAiBzB,EACjBjB,MAAOA,EACPH,GAAIA,IAKNkC,EAAAC,cAAA,MAAA,CACEpD,UAAWsD,EAAGC,EAAOM,oBAAqBN,EAAOC,iBAAkBxD,GACnE2D,KAAK,UACL1C,GAAIA,EACJG,MAAOA,EACPrB,IAAKA,GAEJI,EAAQ4D,KAAI,SAACrB,EAAUX,GAAK,OAAKH,EAA0Bc,EAAUX,OAAOiC,EAAU,IAM/F"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxOption.js","sources":["../../../../../../src/components/Combobox/components/ComboboxOption/ComboboxOption.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { RefObject, useCallback, useEffect, useMemo, useRef } from \"react\";\nimport Icon from \"../../../Icon/Icon\";\nimport Tooltip from \"../../../Tooltip/Tooltip\";\nimport useIsOverflowing from \"../../../../hooks/useIsOverflowing/useIsOverflowing\";\nimport { keyCodes } from \"../../../../constants/keyCodes\";\nimport { getOptionId } from \"../../helpers\";\nimport { SubIcon, withStaticProps } from \"../../../../types\";\nimport {\n ComboboxOptionIconType as ComboboxOptionIconTypeEnum,\n IComboboxOption,\n IComboboxOptionEvents\n} from \"../ComboboxConstants\";\nimport { ComboboxOptionIconType } from \"../../Combobox.types\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../../tests/test-ids-utils\";\nimport styles from \"./ComboboxOption.module.scss\";\n\nexport interface ComboboxOptionProps extends IComboboxOptionEvents {\n index?: number;\n option?: IComboboxOption;\n className?: string;\n isActive?: boolean;\n visualFocus?: boolean;\n scrollRef?: RefObject<HTMLElement>;\n scrollOffset?: number;\n optionLineHeight?: number;\n shouldScrollWhenActive?: boolean;\n optionRenderer?: (option: IComboboxOption) => JSX.Element;\n}\n\nconst ComboboxOption: React.FC<ComboboxOptionProps> & { iconTypes?: typeof ComboboxOptionIconTypeEnum } = ({\n index,\n option,\n className,\n isActive,\n visualFocus,\n scrollRef,\n scrollOffset = 100,\n onOptionClick,\n onOptionLeave,\n onOptionHover,\n optionLineHeight,\n shouldScrollWhenActive = true,\n optionRenderer = null\n}) => {\n const {\n id,\n leftIcon,\n leftIconType,\n rightIcon,\n rightIconType,\n label,\n iconSize = 18,\n disabled,\n selected,\n ariaLabel,\n belongToCategory = false\n } = option;\n let { tooltipContent } = option;\n\n const ref = useRef(null);\n const labelRef = useRef();\n\n const isOptionOverflowing = useIsOverflowing({ ref: labelRef });\n\n useEffect(() => {\n const element = ref.current;\n if (visualFocus && element && shouldScrollWhenActive) {\n if (scrollRef?.current && element) {\n // not supported with virtualized atm, need their scrollRef (element with overflow-y auto that has the scroll)\n scrollRef.current.scrollTop = element.offsetTop - scrollOffset;\n } else {\n element?.scrollIntoView?.({ behaviour: \"smooth\" });\n }\n }\n }, [ref, visualFocus, shouldScrollWhenActive, scrollRef, scrollOffset, belongToCategory]);\n\n const renderIcon = (\n icon: SubIcon | ((className: string) => JSX.Element),\n iconType: ComboboxOptionIconType,\n className: string\n ) => {\n if (iconType === \"renderer\") {\n return (icon as (className: string) => JSX.Element)(cx(styles.optionIcon, className));\n }\n\n return (\n <Icon\n className={cx(styles.optionIcon, className)}\n iconType=\"font\"\n icon={icon as SubIcon}\n iconSize={iconSize}\n ignoreFocusStyle\n />\n );\n };\n\n const onClick = useCallback(\n (event: React.MouseEvent) => {\n if (disabled) return;\n onOptionClick(event, index, option, true);\n },\n [index, option, onOptionClick, disabled]\n );\n\n const onMouseLeave = useCallback(\n (event: React.MouseEvent) => {\n if (disabled) return;\n onOptionLeave(event, index, option, true);\n },\n [index, option, onOptionLeave, disabled]\n );\n\n const onMouseEnter = useCallback(\n (event: React.MouseEvent) => {\n if (disabled) return;\n onOptionHover(event, index, option, true);\n },\n [index, option, onOptionHover, disabled]\n );\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === keyCodes.ENTER || event.key === keyCodes.SPACE) {\n onOptionClick(event, index, option, false);\n }\n },\n [onOptionClick, index, option]\n );\n if (!tooltipContent) {\n tooltipContent = isOptionOverflowing ? label : null;\n }\n\n const optionRendererValue = useMemo(() => optionRenderer && optionRenderer(option), [optionRenderer, option]);\n\n const optionValue = (\n <>\n {leftIcon && renderIcon(leftIcon, leftIconType, styles.left)}\n <div ref={labelRef} className={cx(styles.optionLabel)}>\n {label}\n </div>\n {rightIcon && renderIcon(rightIcon, rightIconType, \"\")}\n </>\n );\n\n return (\n <Tooltip content={tooltipContent}>\n <div\n ref={ref}\n key={id || label}\n aria-level={belongToCategory ? 2 : 1}\n aria-selected={isActive}\n aria-label={ariaLabel || label}\n id={getOptionId(id, index)}\n data-testid={getTestId(ComponentDefaultTestId.COMBOBOX_OPTION, index)}\n onMouseEnter={onMouseEnter}\n onClick={onClick}\n onKeyDown={onKeyDown}\n onMouseLeave={onMouseLeave}\n className={cx(styles.comboboxOption, className, {\n [styles.disabled]: disabled,\n [styles.selected]: selected,\n [styles.active]: isActive,\n [styles.activeOutline]: visualFocus\n })}\n style={{ height: optionLineHeight }}\n >\n {optionRendererValue || optionValue}\n </div>\n </Tooltip>\n );\n};\n\nexport default withStaticProps(ComboboxOption, { iconTypes: ComboboxOptionIconTypeEnum });\n"],"names":["withStaticProps","_ref","index","option","className","isActive","visualFocus","scrollRef","_ref$scrollOffset","scrollOffset","onOptionClick","onOptionLeave","onOptionHover","optionLineHeight","_ref$shouldScrollWhen","shouldScrollWhenActive","_ref$optionRenderer","optionRenderer","id","leftIcon","leftIconType","rightIcon","rightIconType","label","_option$iconSize","iconSize","disabled","selected","ariaLabel","_option$belongToCateg","belongToCategory","tooltipContent","ref","useRef","labelRef","isOptionOverflowing","useIsOverflowing","useEffect","element","current","scrollTop","offsetTop","_a","scrollIntoView","call","behaviour","renderIcon","icon","iconType","cx","styles","optionIcon","React","createElement","Icon","ignoreFocusStyle","onClick","useCallback","event","onMouseLeave","onMouseEnter","onKeyDown","key","keyCodes","ENTER","SPACE","optionRendererValue","useMemo","optionValue","Fragment","left","optionLabel","Tooltip","content","getOptionId","getTestId","ComponentDefaultTestId","COMBOBOX_OPTION","comboboxOption","_defineProperty","active","activeOutline","style","height","iconTypes","ComboboxOptionIconTypeEnum"],"mappings":"0vBA8BA,IA+IeA,EAAAA,GA/I2F,SAAtFC,GAcf,IAbHC,EAAKD,EAALC,MACAC,EAAMF,EAANE,OACAC,EAASH,EAATG,UACAC,EAAQJ,EAARI,SACAC,EAAWL,EAAXK,YACAC,EAASN,EAATM,UAASC,EAAAP,EACTQ,aAAAA,OAAe,IAAHD,EAAG,IAAGA,EAClBE,EAAaT,EAAbS,cACAC,EAAaV,EAAbU,cACAC,EAAaX,EAAbW,cACAC,EAAgBZ,EAAhBY,iBAAgBC,EAAAb,EAChBc,uBAAAA,OAAyB,IAAHD,GAAOA,EAAAE,EAAAf,EAC7BgB,eAAAA,OAAiB,IAAHD,EAAG,KAAIA,EAGnBE,EAWEf,EAXFe,GACAC,EAUEhB,EAVFgB,SACAC,EASEjB,EATFiB,aACAC,EAQElB,EARFkB,UACAC,EAOEnB,EAPFmB,cACAC,EAMEpB,EANFoB,MAAKC,EAMHrB,EALFsB,SAAAA,OAAW,IAAHD,EAAG,GAAEA,EACbE,EAIEvB,EAJFuB,SACAC,EAGExB,EAHFwB,SACAC,EAEEzB,EAFFyB,UAASC,EAEP1B,EADF2B,iBAAAA,OAAmB,IAAHD,GAAQA,EAEpBE,EAAmB5B,EAAnB4B,eAEAC,EAAMC,EAAO,MACbC,EAAWD,IAEXE,EAAsBC,EAAiB,CAAEJ,IAAKE,IAEpDG,GAAU,iBACFC,EAAUN,EAAIO,QAChBjC,GAAegC,GAAWvB,KACxBR,aAAS,EAATA,EAAWgC,UAAWD,EAExB/B,EAAUgC,QAAQC,UAAYF,EAAQG,UAAYhC,EAExB,QAA1BiC,EAAAJ,aAAO,EAAPA,EAASK,sBAAiB,IAAAD,GAAAA,EAAAE,KAAAN,EAAA,CAAEO,UAAW,WAG7C,GAAG,CAACb,EAAK1B,EAAaS,EAAwBR,EAAWE,EAAcqB,IAEvE,IAAMgB,EAAa,SACjBC,EACAC,EACA5C,GAEA,MAAiB,aAAb4C,EACMD,EAA4CE,EAAGC,EAAOC,WAAY/C,IAI1EgD,EAAAC,cAACC,EAAI,CACHlD,UAAW6C,EAAGC,EAAOC,WAAY/C,GACjC4C,SAAS,OACTD,KAAMA,EACNtB,SAAUA,EACV8B,kBAAgB,KAKhBC,EAAUC,GACd,SAACC,GACKhC,GACJhB,EAAcgD,EAAOxD,EAAOC,GAAQ,EACrC,GACD,CAACD,EAAOC,EAAQO,EAAegB,IAG3BiC,EAAeF,GACnB,SAACC,GACKhC,GACJf,EAAc+C,EAAOxD,EAAOC,GAAQ,EACrC,GACD,CAACD,EAAOC,EAAQQ,EAAee,IAG3BkC,EAAeH,GACnB,SAACC,GACKhC,GACJd,EAAc8C,EAAOxD,EAAOC,GAAQ,EACrC,GACD,CAACD,EAAOC,EAAQS,EAAec,IAG3BmC,EAAYJ,GAChB,SAACC,GACKA,EAAMI,MAAQC,EAASC,OAASN,EAAMI,MAAQC,EAASE,OACzDvD,EAAcgD,EAAOxD,EAAOC,GAAQ,EAEvC,GACD,CAACO,EAAeR,EAAOC,IAEpB4B,IACHA,EAAiBI,EAAsBZ,EAAQ,MAGjD,IAAM2C,GAAsBC,GAAQ,WAAA,OAAMlD,GAAkBA,EAAed,EAAO,GAAE,CAACc,EAAgBd,IAE/FiE,GACJhB,EAAAC,cAAAD,EAAAiB,SAAA,KACGlD,GAAY2B,EAAW3B,EAAUC,EAAc8B,EAAOoB,MACvDlB,EAAAC,cAAA,MAAA,CAAKrB,IAAKE,EAAU9B,UAAW6C,EAAGC,EAAOqB,cACtChD,GAEFF,GAAayB,EAAWzB,EAAWC,EAAe,KAIvD,OACE8B,EAACC,cAAAmB,EAAQ,CAAAC,QAAS1C,GAChBqB,EAAAC,cAAA,MAAA,CACErB,IAAKA,EACL8B,IAAK5C,GAAMK,EACC,aAAAO,EAAmB,EAAI,EAAC,gBACrBzB,EAAQ,aACXuB,GAAaL,EACzBL,GAAIwD,EAAYxD,EAAIhB,GACP,cAAAyE,EAAUC,EAAuBC,gBAAiB3E,GAC/D0D,aAAcA,EACdJ,QAASA,EACTK,UAAWA,EACXF,aAAcA,EACdvD,UAAW6C,EAAGC,EAAO4B,eAAgB1E,EAAS2E,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAC3C7B,EAAOxB,SAAWA,GAClBwB,EAAOvB,SAAWA,GAClBuB,EAAO8B,OAAS3E,GAChB6C,EAAO+B,cAAgB3E,IAE1B4E,MAAO,CAAEC,OAAQtE,IAEhBqD,IAAuBE,IAIhC,GAE+C,CAAEgB,UAAWC"}
1
+ {"version":3,"file":"ComboboxOption.js","sources":["../../../../../../src/components/Combobox/components/ComboboxOption/ComboboxOption.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { RefObject, useCallback, useEffect, useMemo, useRef } from \"react\";\nimport Icon from \"../../../Icon/Icon\";\nimport Tooltip from \"../../../Tooltip/Tooltip\";\nimport useIsOverflowing from \"../../../../hooks/useIsOverflowing/useIsOverflowing\";\nimport { keyCodes } from \"../../../../constants/keyCodes\";\nimport { getOptionId } from \"../../helpers\";\nimport { SubIcon, withStaticProps } from \"../../../../types\";\nimport {\n ComboboxOptionIconType as ComboboxOptionIconTypeEnum,\n IComboboxOption,\n IComboboxOptionEvents\n} from \"../ComboboxConstants\";\nimport { ComboboxOptionIconType } from \"../../Combobox.types\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../../tests/test-ids-utils\";\nimport styles from \"./ComboboxOption.module.scss\";\n\nexport interface ComboboxOptionProps extends IComboboxOptionEvents {\n /**\n * The index of the option in the list.\n */\n index?: number;\n /**\n * The option data containing label, icons, and other properties.\n */\n option?: IComboboxOption;\n /**\n * Class name applied to the option element.\n */\n className?: string;\n /**\n * If true, the option is currently active.\n */\n isActive?: boolean;\n /**\n * If true, the option has visual focus.\n */\n visualFocus?: boolean;\n /**\n * A reference to the scroll container.\n */\n scrollRef?: RefObject<HTMLElement>;\n /**\n * The amount of offset when scrolling to the active item.\n */\n scrollOffset?: number;\n /**\n * The height of each option.\n */\n optionLineHeight?: number;\n /**\n * If true, scrolls to the active option when it is selected.\n */\n shouldScrollWhenActive?: boolean;\n /**\n * Custom renderer for the option content.\n */\n optionRenderer?: (option: IComboboxOption) => JSX.Element;\n}\n\nconst ComboboxOption: React.FC<ComboboxOptionProps> & { iconTypes?: typeof ComboboxOptionIconTypeEnum } = ({\n index,\n option,\n className,\n isActive,\n visualFocus,\n scrollRef,\n scrollOffset = 100,\n onOptionClick,\n onOptionLeave,\n onOptionHover,\n optionLineHeight,\n shouldScrollWhenActive = true,\n optionRenderer = null\n}) => {\n const {\n id,\n leftIcon,\n leftIconType,\n rightIcon,\n rightIconType,\n label,\n iconSize = 18,\n disabled,\n selected,\n ariaLabel,\n belongToCategory = false\n } = option;\n let { tooltipContent } = option;\n\n const ref = useRef(null);\n const labelRef = useRef();\n\n const isOptionOverflowing = useIsOverflowing({ ref: labelRef });\n\n useEffect(() => {\n const element = ref.current;\n if (visualFocus && element && shouldScrollWhenActive) {\n if (scrollRef?.current && element) {\n // not supported with virtualized atm, need their scrollRef (element with overflow-y auto that has the scroll)\n scrollRef.current.scrollTop = element.offsetTop - scrollOffset;\n } else {\n element?.scrollIntoView?.({ behaviour: \"smooth\" });\n }\n }\n }, [ref, visualFocus, shouldScrollWhenActive, scrollRef, scrollOffset, belongToCategory]);\n\n const renderIcon = (\n icon: SubIcon | ((className: string) => JSX.Element),\n iconType: ComboboxOptionIconType,\n className: string\n ) => {\n if (iconType === \"renderer\") {\n return (icon as (className: string) => JSX.Element)(cx(styles.optionIcon, className));\n }\n\n return (\n <Icon\n className={cx(styles.optionIcon, className)}\n iconType=\"font\"\n icon={icon as SubIcon}\n iconSize={iconSize}\n ignoreFocusStyle\n />\n );\n };\n\n const onClick = useCallback(\n (event: React.MouseEvent) => {\n if (disabled) return;\n onOptionClick(event, index, option, true);\n },\n [index, option, onOptionClick, disabled]\n );\n\n const onMouseLeave = useCallback(\n (event: React.MouseEvent) => {\n if (disabled) return;\n onOptionLeave(event, index, option, true);\n },\n [index, option, onOptionLeave, disabled]\n );\n\n const onMouseEnter = useCallback(\n (event: React.MouseEvent) => {\n if (disabled) return;\n onOptionHover(event, index, option, true);\n },\n [index, option, onOptionHover, disabled]\n );\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === keyCodes.ENTER || event.key === keyCodes.SPACE) {\n onOptionClick(event, index, option, false);\n }\n },\n [onOptionClick, index, option]\n );\n if (!tooltipContent) {\n tooltipContent = isOptionOverflowing ? label : null;\n }\n\n const optionRendererValue = useMemo(() => optionRenderer && optionRenderer(option), [optionRenderer, option]);\n\n const optionValue = (\n <>\n {leftIcon && renderIcon(leftIcon, leftIconType, styles.left)}\n <div ref={labelRef} className={cx(styles.optionLabel)}>\n {label}\n </div>\n {rightIcon && renderIcon(rightIcon, rightIconType, \"\")}\n </>\n );\n\n return (\n <Tooltip content={tooltipContent}>\n <div\n ref={ref}\n key={id || label}\n aria-level={belongToCategory ? 2 : 1}\n aria-selected={isActive}\n aria-label={ariaLabel || label}\n id={getOptionId(id, index)}\n data-testid={getTestId(ComponentDefaultTestId.COMBOBOX_OPTION, index)}\n onMouseEnter={onMouseEnter}\n onClick={onClick}\n onKeyDown={onKeyDown}\n onMouseLeave={onMouseLeave}\n className={cx(styles.comboboxOption, className, {\n [styles.disabled]: disabled,\n [styles.selected]: selected,\n [styles.active]: isActive,\n [styles.activeOutline]: visualFocus\n })}\n style={{ height: optionLineHeight }}\n >\n {optionRendererValue || optionValue}\n </div>\n </Tooltip>\n );\n};\n\nexport default withStaticProps(ComboboxOption, { iconTypes: ComboboxOptionIconTypeEnum });\n"],"names":["withStaticProps","_ref","index","option","className","isActive","visualFocus","scrollRef","_ref$scrollOffset","scrollOffset","onOptionClick","onOptionLeave","onOptionHover","optionLineHeight","_ref$shouldScrollWhen","shouldScrollWhenActive","_ref$optionRenderer","optionRenderer","id","leftIcon","leftIconType","rightIcon","rightIconType","label","_option$iconSize","iconSize","disabled","selected","ariaLabel","_option$belongToCateg","belongToCategory","tooltipContent","ref","useRef","labelRef","isOptionOverflowing","useIsOverflowing","useEffect","element","current","scrollTop","offsetTop","_a","scrollIntoView","call","behaviour","renderIcon","icon","iconType","cx","styles","optionIcon","React","createElement","Icon","ignoreFocusStyle","onClick","useCallback","event","onMouseLeave","onMouseEnter","onKeyDown","key","keyCodes","ENTER","SPACE","optionRendererValue","useMemo","optionValue","Fragment","left","optionLabel","Tooltip","content","getOptionId","getTestId","ComponentDefaultTestId","COMBOBOX_OPTION","comboboxOption","_defineProperty","active","activeOutline","style","height","iconTypes","ComboboxOptionIconTypeEnum"],"mappings":"0vBA4DA,IA+IeA,EAAAA,GA/I2F,SAAtFC,GAcf,IAbHC,EAAKD,EAALC,MACAC,EAAMF,EAANE,OACAC,EAASH,EAATG,UACAC,EAAQJ,EAARI,SACAC,EAAWL,EAAXK,YACAC,EAASN,EAATM,UAASC,EAAAP,EACTQ,aAAAA,OAAe,IAAHD,EAAG,IAAGA,EAClBE,EAAaT,EAAbS,cACAC,EAAaV,EAAbU,cACAC,EAAaX,EAAbW,cACAC,EAAgBZ,EAAhBY,iBAAgBC,EAAAb,EAChBc,uBAAAA,OAAyB,IAAHD,GAAOA,EAAAE,EAAAf,EAC7BgB,eAAAA,OAAiB,IAAHD,EAAG,KAAIA,EAGnBE,EAWEf,EAXFe,GACAC,EAUEhB,EAVFgB,SACAC,EASEjB,EATFiB,aACAC,EAQElB,EARFkB,UACAC,EAOEnB,EAPFmB,cACAC,EAMEpB,EANFoB,MAAKC,EAMHrB,EALFsB,SAAAA,OAAW,IAAHD,EAAG,GAAEA,EACbE,EAIEvB,EAJFuB,SACAC,EAGExB,EAHFwB,SACAC,EAEEzB,EAFFyB,UAASC,EAEP1B,EADF2B,iBAAAA,OAAmB,IAAHD,GAAQA,EAEpBE,EAAmB5B,EAAnB4B,eAEAC,EAAMC,EAAO,MACbC,EAAWD,IAEXE,EAAsBC,EAAiB,CAAEJ,IAAKE,IAEpDG,GAAU,iBACFC,EAAUN,EAAIO,QAChBjC,GAAegC,GAAWvB,KACxBR,aAAS,EAATA,EAAWgC,UAAWD,EAExB/B,EAAUgC,QAAQC,UAAYF,EAAQG,UAAYhC,EAExB,QAA1BiC,EAAAJ,aAAO,EAAPA,EAASK,sBAAiB,IAAAD,GAAAA,EAAAE,KAAAN,EAAA,CAAEO,UAAW,WAG7C,GAAG,CAACb,EAAK1B,EAAaS,EAAwBR,EAAWE,EAAcqB,IAEvE,IAAMgB,EAAa,SACjBC,EACAC,EACA5C,GAEA,MAAiB,aAAb4C,EACMD,EAA4CE,EAAGC,EAAOC,WAAY/C,IAI1EgD,EAAAC,cAACC,EAAI,CACHlD,UAAW6C,EAAGC,EAAOC,WAAY/C,GACjC4C,SAAS,OACTD,KAAMA,EACNtB,SAAUA,EACV8B,kBAAgB,KAKhBC,EAAUC,GACd,SAACC,GACKhC,GACJhB,EAAcgD,EAAOxD,EAAOC,GAAQ,EACrC,GACD,CAACD,EAAOC,EAAQO,EAAegB,IAG3BiC,EAAeF,GACnB,SAACC,GACKhC,GACJf,EAAc+C,EAAOxD,EAAOC,GAAQ,EACrC,GACD,CAACD,EAAOC,EAAQQ,EAAee,IAG3BkC,EAAeH,GACnB,SAACC,GACKhC,GACJd,EAAc8C,EAAOxD,EAAOC,GAAQ,EACrC,GACD,CAACD,EAAOC,EAAQS,EAAec,IAG3BmC,EAAYJ,GAChB,SAACC,GACKA,EAAMI,MAAQC,EAASC,OAASN,EAAMI,MAAQC,EAASE,OACzDvD,EAAcgD,EAAOxD,EAAOC,GAAQ,EAEvC,GACD,CAACO,EAAeR,EAAOC,IAEpB4B,IACHA,EAAiBI,EAAsBZ,EAAQ,MAGjD,IAAM2C,GAAsBC,GAAQ,WAAA,OAAMlD,GAAkBA,EAAed,EAAO,GAAE,CAACc,EAAgBd,IAE/FiE,GACJhB,EAAAC,cAAAD,EAAAiB,SAAA,KACGlD,GAAY2B,EAAW3B,EAAUC,EAAc8B,EAAOoB,MACvDlB,EAAAC,cAAA,MAAA,CAAKrB,IAAKE,EAAU9B,UAAW6C,EAAGC,EAAOqB,cACtChD,GAEFF,GAAayB,EAAWzB,EAAWC,EAAe,KAIvD,OACE8B,EAACC,cAAAmB,EAAQ,CAAAC,QAAS1C,GAChBqB,EAAAC,cAAA,MAAA,CACErB,IAAKA,EACL8B,IAAK5C,GAAMK,EACC,aAAAO,EAAmB,EAAI,EAAC,gBACrBzB,EAAQ,aACXuB,GAAaL,EACzBL,GAAIwD,EAAYxD,EAAIhB,GACP,cAAAyE,EAAUC,EAAuBC,gBAAiB3E,GAC/D0D,aAAcA,EACdJ,QAASA,EACTK,UAAWA,EACXF,aAAcA,EACdvD,UAAW6C,EAAGC,EAAO4B,eAAgB1E,EAAS2E,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAC3C7B,EAAOxB,SAAWA,GAClBwB,EAAOvB,SAAWA,GAClBuB,EAAO8B,OAAS3E,GAChB6C,EAAO+B,cAAgB3E,IAE1B4E,MAAO,CAAEC,OAAQtE,IAEhBqD,IAAuBE,IAIhC,GAE+C,CAAEgB,UAAWC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Counter.js","sources":["../../../../src/components/Counter/Counter.tsx"],"sourcesContent":["import { camelCase } from \"lodash-es\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { CSSTransition, SwitchTransition } from \"react-transition-group\";\nimport VibeComponentProps from \"../../types/VibeComponentProps\";\nimport useEventListener from \"../../hooks/useEventListener\";\nimport useAfterFirstRender from \"../../hooks/useAfterFirstRender\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport {\n CounterColor as CounterColorEnum,\n CounterSize as CounterSizeEnum,\n CounterType as CounterTypeEnum\n} from \"./CounterConstants\";\nimport { CounterColor, CounterSize, CounterType } from \"./Counter.types\";\nimport { withStaticProps } from \"../../types\";\nimport styles from \"./Counter.module.scss\";\n\nexport interface CounterProps extends VibeComponentProps {\n /** id to pass to the element */\n id?: string;\n /** element id to describe the counter accordingly */\n ariaLabeledBy?: string;\n /** Custom class names to pass to the component wrapper */\n className?: string;\n /** Custom class names to pass to the component */\n counterClassName?: string;\n /** The numeric value of the counter */\n count?: number;\n /** Counter description */\n ariaLabel?: string;\n /** The size of the counter */\n size?: CounterSize;\n kind?: CounterType;\n /** The color of the counter */\n color?: CounterColor;\n /** maximum number of digits to display (see relevant story) */\n maxDigits?: number;\n /** Text prepended to counter value */\n prefix?: string;\n /** Callback to be called when the counter is clicked. */\n onMouseDown?: (event: React.MouseEvent<HTMLSpanElement>) => void;\n /** Disables the component's animation */\n noAnimation?: boolean;\n}\n\nconst Counter: React.FC<CounterProps> & {\n sizes?: typeof CounterSizeEnum;\n colors?: typeof CounterColorEnum;\n kinds?: typeof CounterTypeEnum;\n} = ({\n className,\n counterClassName,\n count = 0,\n size = \"large\",\n kind = \"fill\",\n color = \"primary\",\n maxDigits = 3,\n ariaLabeledBy = \"\",\n ariaLabel = \"\",\n id = \"\",\n prefix = \"\",\n onMouseDown = NOOP,\n noAnimation = false,\n \"data-testid\": dataTestId\n}: CounterProps) => {\n const [countChangeAnimationState, setCountChangeAnimationState] = useState(false);\n\n const ref = useRef<HTMLDivElement>(null);\n\n const setCountChangedAnimationActive = useCallback(() => {\n setCountChangeAnimationState(true);\n }, [setCountChangeAnimationState]);\n\n const setCountChangedAnimationNotActive = useCallback(() => {\n setCountChangeAnimationState(false);\n }, [setCountChangeAnimationState]);\n\n useEventListener({\n eventName: \"animationend\",\n callback: setCountChangedAnimationNotActive,\n ref\n });\n\n const isAfterFirstRender = useAfterFirstRender();\n\n useEffect(() => {\n if (isAfterFirstRender.current) {\n setCountChangedAnimationActive();\n }\n }, [count, isAfterFirstRender, setCountChangedAnimationActive]);\n\n useEffect(() => {\n if (maxDigits <= 0) {\n console.error(\"Max digits must be a positive number\");\n }\n }, [maxDigits]);\n\n const classNames = useMemo(() => {\n return cx(\n styles.counter,\n getStyle(styles, camelCase(\"size-\" + size)),\n getStyle(styles, camelCase(\"kind-\" + kind)),\n getStyle(styles, camelCase(\"color-\" + color)),\n {\n [styles.withAnimation]: countChangeAnimationState\n },\n counterClassName\n );\n }, [size, kind, color, countChangeAnimationState, counterClassName]);\n\n const counterId = \"counter\" + (id ? `-${id}` : \"\");\n const countText = count?.toString().length > maxDigits ? `${10 ** maxDigits - 1}+` : String(count);\n const counter = (\n <span id={counterId} data-testid={dataTestId || getTestId(ComponentDefaultTestId.COUNTER, id)}>\n {prefix + countText}\n </span>\n );\n\n return (\n <span\n className={className}\n aria-label={`${ariaLabel} ${countText}`}\n aria-labelledby={ariaLabeledBy}\n onMouseDown={onMouseDown}\n >\n <div className={classNames} aria-label={countText} ref={ref}>\n {noAnimation ? (\n counter\n ) : (\n <SwitchTransition mode=\"out-in\">\n <CSSTransition\n key={countText}\n classNames={{\n enter: styles.fadeEnter,\n enterActive: styles.fadeEnterActive,\n exit: styles.fadeExit,\n exitActive: styles.fadeExitActive\n }}\n // @ts-expect-error @definitelyTyped typings expecting a single parameter for some reason when the function passed here is called with two parameters\n // See https://github.com/reactjs/react-transition-group/blob/c89f807067b32eea6f68fd6c622190d88ced82e2/src/Transition.js#L522-L534\n addEndListener={(node: HTMLElement, done: () => void) => {\n node.addEventListener(\"transitionend\", done, false);\n }}\n >\n <span id={counterId} data-testid={dataTestId || getTestId(ComponentDefaultTestId.COUNTER, id)}>\n {prefix + countText}\n </span>\n </CSSTransition>\n </SwitchTransition>\n )}\n </div>\n </span>\n );\n};\n\nexport default withStaticProps(Counter, {\n sizes: CounterSizeEnum,\n colors: CounterColorEnum,\n kinds: CounterTypeEnum\n});\n"],"names":["withStaticProps","_ref","className","counterClassName","_ref$count","count","_ref$size","size","_ref$kind","kind","_ref$color","color","_ref$maxDigits","maxDigits","_ref$ariaLabeledBy","ariaLabeledBy","_ref$ariaLabel","ariaLabel","_ref$id","id","_ref$prefix","prefix","_ref$onMouseDown","onMouseDown","NOOP","_ref$noAnimation","noAnimation","dataTestId","_useState","useState","_useState2","_slicedToArray","countChangeAnimationState","setCountChangeAnimationState","ref","useRef","setCountChangedAnimationActive","useCallback","setCountChangedAnimationNotActive","useEventListener","eventName","callback","isAfterFirstRender","useAfterFirstRender","useEffect","current","console","error","classNames","useMemo","cx","styles","counter","getStyle","camelCase","_defineProperty","withAnimation","counterId","concat","countText","length","Math","pow","String","React","createElement","getTestId","ComponentDefaultTestId","COUNTER","SwitchTransition","mode","CSSTransition","key","enter","fadeEnter","enterActive","fadeEnterActive","exit","fadeExit","exitActive","fadeExitActive","addEndListener","node","done","addEventListener","sizes","CounterSizeEnum","colors","CounterColorEnum","kinds","CounterTypeEnum"],"mappings":"22BA+CA,IA8GeA,EAAAA,GA1GX,SAJSC,GAmBM,IAdjBC,EAASD,EAATC,UACAC,EAAgBF,EAAhBE,iBAAgBC,EAAAH,EAChBI,MAAAA,OAAQ,IAAHD,EAAG,EAACA,EAAAE,EAAAL,EACTM,KAAAA,OAAO,IAAHD,EAAG,QAAOA,EAAAE,EAAAP,EACdQ,KAAAA,OAAO,IAAHD,EAAG,OAAMA,EAAAE,EAAAT,EACbU,MAAAA,OAAQ,IAAHD,EAAG,UAASA,EAAAE,EAAAX,EACjBY,UAAAA,OAAY,IAAHD,EAAG,EAACA,EAAAE,EAAAb,EACbc,cAAAA,OAAgB,IAAHD,EAAG,GAAEA,EAAAE,EAAAf,EAClBgB,UAAAA,OAAY,IAAHD,EAAG,GAAEA,EAAAE,EAAAjB,EACdkB,GAAAA,OAAK,IAAHD,EAAG,GAAEA,EAAAE,EAAAnB,EACPoB,OAAAA,OAAS,IAAHD,EAAG,GAAEA,EAAAE,EAAArB,EACXsB,YAAAA,OAAcC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAxB,EAClByB,YAAAA,OAAc,IAAHD,GAAQA,EACJE,EAAU1B,EAAzB,eAEA2B,EAAkEC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAA1EI,EAAyBF,EAAA,GAAEG,EAA4BH,EAAA,GAExDI,EAAMC,EAAuB,MAE7BC,EAAiCC,GAAY,WACjDJ,GAA6B,EAC/B,GAAG,CAACA,IAEEK,EAAoCD,GAAY,WACpDJ,GAA6B,EAC/B,GAAG,CAACA,IAEJM,EAAiB,CACfC,UAAW,eACXC,SAAUH,EACVJ,IAAAA,IAGF,IAAMQ,EAAqBC,IAE3BC,GAAU,WACJF,EAAmBG,SACrBT,GAEH,GAAE,CAAC/B,EAAOqC,EAAoBN,IAE/BQ,GAAU,WACJ/B,EAAa,GACfiC,QAAQC,MAAM,uCAElB,GAAG,CAAClC,IAEJ,IAAMmC,EAAaC,GAAQ,WACzB,OAAOC,EACLC,EAAOC,QACPC,EAASF,EAAQG,EAAU,QAAU/C,IACrC8C,EAASF,EAAQG,EAAU,QAAU7C,IACrC4C,EAASF,EAAQG,EAAU,SAAW3C,IAAO4C,EAAA,CAAA,EAE1CJ,EAAOK,cAAgBxB,GAE1B7B,EAEJ,GAAG,CAACI,EAAME,EAAME,EAAOqB,EAA2B7B,IAE5CsD,GAAY,WAAatC,EAAEuC,IAAAA,OAAOvC,GAAO,IACzCwC,IAAYtD,aAAK,GAALA,MAAkBuD,QAAS/C,EAAS,GAAA6C,OAAMG,KAAAC,IAAA,GAAMjD,GAAY,OAAcR,EAAP0D,GAC/EX,GACJY,EAAMC,cAAA,OAAA,CAAA9C,GAAIsC,GAAS,cAAe9B,GAAcuC,EAAUC,EAAuBC,QAASjD,IACvFE,EAASsC,IAId,OACEK,EACEC,cAAA,OAAA,CAAA/D,UAAWA,yBACIe,OAASyC,OAAIC,IACX,kBAAA5C,EACjBQ,YAAaA,GAEbyC,EAAKC,cAAA,MAAA,CAAA/D,UAAW8C,EAAwB,aAAAW,GAAWzB,IAAKA,GACrDR,EACC0B,GAEAY,EAAAC,cAACI,EAAgB,CAACC,KAAK,UACrBN,EAAAC,cAACM,EACC,CAAAC,IAAKb,GACLX,WAAY,CACVyB,MAAOtB,EAAOuB,UACdC,YAAaxB,EAAOyB,gBACpBC,KAAM1B,EAAO2B,SACbC,WAAY5B,EAAO6B,gBAIrBC,eAAgB,SAACC,EAAmBC,GAClCD,EAAKE,iBAAiB,gBAAiBD,GAAM,EAC/C,GAEAnB,EAAMC,cAAA,OAAA,CAAA9C,GAAIsC,GAAwB,cAAA9B,GAAcuC,EAAUC,EAAuBC,QAASjD,IACvFE,EAASsC,OAQ1B,GAEwC,CACtC0B,MAAOC,EACPC,OAAQC,EACRC,MAAOC"}
1
+ {"version":3,"file":"Counter.js","sources":["../../../../src/components/Counter/Counter.tsx"],"sourcesContent":["import { camelCase } from \"lodash-es\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { CSSTransition, SwitchTransition } from \"react-transition-group\";\nimport VibeComponentProps from \"../../types/VibeComponentProps\";\nimport useEventListener from \"../../hooks/useEventListener\";\nimport useAfterFirstRender from \"../../hooks/useAfterFirstRender\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport {\n CounterColor as CounterColorEnum,\n CounterSize as CounterSizeEnum,\n CounterType as CounterTypeEnum\n} from \"./CounterConstants\";\nimport { CounterColor, CounterSize, CounterType } from \"./Counter.types\";\nimport { withStaticProps } from \"../../types\";\nimport styles from \"./Counter.module.scss\";\n\nexport interface CounterProps extends VibeComponentProps {\n /**\n * The ID of the element describing the counter.\n */\n ariaLabeledBy?: string;\n /**\n * Class name applied to the counter element.\n */\n counterClassName?: string;\n /**\n * The numeric value displayed in the counter.\n */\n count?: number;\n /**\n * The label of the counter for accessibility.\n */\n ariaLabel?: string;\n /**\n * The size of the counter.\n */\n size?: CounterSize;\n /**\n * The visual style of the counter.\n */\n kind?: CounterType;\n /**\n * The color of the counter.\n */\n color?: CounterColor;\n /**\n * The maximum number of digits displayed before truncation.\n */\n maxDigits?: number;\n /**\n * Text prepended to the counter value.\n */\n prefix?: string;\n /**\n * Callback fired when the counter is clicked.\n */\n onMouseDown?: (event: React.MouseEvent<HTMLSpanElement>) => void;\n /**\n * If true, disables counter animations.\n */\n noAnimation?: boolean;\n}\n\nconst Counter: React.FC<CounterProps> & {\n sizes?: typeof CounterSizeEnum;\n colors?: typeof CounterColorEnum;\n kinds?: typeof CounterTypeEnum;\n} = ({\n className,\n counterClassName,\n count = 0,\n size = \"large\",\n kind = \"fill\",\n color = \"primary\",\n maxDigits = 3,\n ariaLabeledBy = \"\",\n ariaLabel = \"\",\n id = \"\",\n prefix = \"\",\n onMouseDown = NOOP,\n noAnimation = false,\n \"data-testid\": dataTestId\n}: CounterProps) => {\n const [countChangeAnimationState, setCountChangeAnimationState] = useState(false);\n\n const ref = useRef<HTMLDivElement>(null);\n\n const setCountChangedAnimationActive = useCallback(() => {\n setCountChangeAnimationState(true);\n }, [setCountChangeAnimationState]);\n\n const setCountChangedAnimationNotActive = useCallback(() => {\n setCountChangeAnimationState(false);\n }, [setCountChangeAnimationState]);\n\n useEventListener({\n eventName: \"animationend\",\n callback: setCountChangedAnimationNotActive,\n ref\n });\n\n const isAfterFirstRender = useAfterFirstRender();\n\n useEffect(() => {\n if (isAfterFirstRender.current) {\n setCountChangedAnimationActive();\n }\n }, [count, isAfterFirstRender, setCountChangedAnimationActive]);\n\n useEffect(() => {\n if (maxDigits <= 0) {\n console.error(\"Max digits must be a positive number\");\n }\n }, [maxDigits]);\n\n const classNames = useMemo(() => {\n return cx(\n styles.counter,\n getStyle(styles, camelCase(\"size-\" + size)),\n getStyle(styles, camelCase(\"kind-\" + kind)),\n getStyle(styles, camelCase(\"color-\" + color)),\n {\n [styles.withAnimation]: countChangeAnimationState\n },\n counterClassName\n );\n }, [size, kind, color, countChangeAnimationState, counterClassName]);\n\n const counterId = \"counter\" + (id ? `-${id}` : \"\");\n const countText = count?.toString().length > maxDigits ? `${10 ** maxDigits - 1}+` : String(count);\n const counter = (\n <span id={counterId} data-testid={dataTestId || getTestId(ComponentDefaultTestId.COUNTER, id)}>\n {prefix + countText}\n </span>\n );\n\n return (\n <span\n className={className}\n aria-label={`${ariaLabel} ${countText}`}\n aria-labelledby={ariaLabeledBy}\n onMouseDown={onMouseDown}\n >\n <div className={classNames} aria-label={countText} ref={ref}>\n {noAnimation ? (\n counter\n ) : (\n <SwitchTransition mode=\"out-in\">\n <CSSTransition\n key={countText}\n classNames={{\n enter: styles.fadeEnter,\n enterActive: styles.fadeEnterActive,\n exit: styles.fadeExit,\n exitActive: styles.fadeExitActive\n }}\n // @ts-expect-error @definitelyTyped typings expecting a single parameter for some reason when the function passed here is called with two parameters\n // See https://github.com/reactjs/react-transition-group/blob/c89f807067b32eea6f68fd6c622190d88ced82e2/src/Transition.js#L522-L534\n addEndListener={(node: HTMLElement, done: () => void) => {\n node.addEventListener(\"transitionend\", done, false);\n }}\n >\n <span id={counterId} data-testid={dataTestId || getTestId(ComponentDefaultTestId.COUNTER, id)}>\n {prefix + countText}\n </span>\n </CSSTransition>\n </SwitchTransition>\n )}\n </div>\n </span>\n );\n};\n\nexport default withStaticProps(Counter, {\n sizes: CounterSizeEnum,\n colors: CounterColorEnum,\n kinds: CounterTypeEnum\n});\n"],"names":["withStaticProps","_ref","className","counterClassName","_ref$count","count","_ref$size","size","_ref$kind","kind","_ref$color","color","_ref$maxDigits","maxDigits","_ref$ariaLabeledBy","ariaLabeledBy","_ref$ariaLabel","ariaLabel","_ref$id","id","_ref$prefix","prefix","_ref$onMouseDown","onMouseDown","NOOP","_ref$noAnimation","noAnimation","dataTestId","_useState","useState","_useState2","_slicedToArray","countChangeAnimationState","setCountChangeAnimationState","ref","useRef","setCountChangedAnimationActive","useCallback","setCountChangedAnimationNotActive","useEventListener","eventName","callback","isAfterFirstRender","useAfterFirstRender","useEffect","current","console","error","classNames","useMemo","cx","styles","counter","getStyle","camelCase","_defineProperty","withAnimation","counterId","concat","countText","length","Math","pow","String","React","createElement","getTestId","ComponentDefaultTestId","COUNTER","SwitchTransition","mode","CSSTransition","key","enter","fadeEnter","enterActive","fadeEnterActive","exit","fadeExit","exitActive","fadeExitActive","addEndListener","node","done","addEventListener","sizes","CounterSizeEnum","colors","CounterColorEnum","kinds","CounterTypeEnum"],"mappings":"22BAkEA,IA8GeA,EAAAA,GA1GX,SAJSC,GAmBM,IAdjBC,EAASD,EAATC,UACAC,EAAgBF,EAAhBE,iBAAgBC,EAAAH,EAChBI,MAAAA,OAAQ,IAAHD,EAAG,EAACA,EAAAE,EAAAL,EACTM,KAAAA,OAAO,IAAHD,EAAG,QAAOA,EAAAE,EAAAP,EACdQ,KAAAA,OAAO,IAAHD,EAAG,OAAMA,EAAAE,EAAAT,EACbU,MAAAA,OAAQ,IAAHD,EAAG,UAASA,EAAAE,EAAAX,EACjBY,UAAAA,OAAY,IAAHD,EAAG,EAACA,EAAAE,EAAAb,EACbc,cAAAA,OAAgB,IAAHD,EAAG,GAAEA,EAAAE,EAAAf,EAClBgB,UAAAA,OAAY,IAAHD,EAAG,GAAEA,EAAAE,EAAAjB,EACdkB,GAAAA,OAAK,IAAHD,EAAG,GAAEA,EAAAE,EAAAnB,EACPoB,OAAAA,OAAS,IAAHD,EAAG,GAAEA,EAAAE,EAAArB,EACXsB,YAAAA,OAAcC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAxB,EAClByB,YAAAA,OAAc,IAAHD,GAAQA,EACJE,EAAU1B,EAAzB,eAEA2B,EAAkEC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAA1EI,EAAyBF,EAAA,GAAEG,EAA4BH,EAAA,GAExDI,EAAMC,EAAuB,MAE7BC,EAAiCC,GAAY,WACjDJ,GAA6B,EAC/B,GAAG,CAACA,IAEEK,EAAoCD,GAAY,WACpDJ,GAA6B,EAC/B,GAAG,CAACA,IAEJM,EAAiB,CACfC,UAAW,eACXC,SAAUH,EACVJ,IAAAA,IAGF,IAAMQ,EAAqBC,IAE3BC,GAAU,WACJF,EAAmBG,SACrBT,GAEH,GAAE,CAAC/B,EAAOqC,EAAoBN,IAE/BQ,GAAU,WACJ/B,EAAa,GACfiC,QAAQC,MAAM,uCAElB,GAAG,CAAClC,IAEJ,IAAMmC,EAAaC,GAAQ,WACzB,OAAOC,EACLC,EAAOC,QACPC,EAASF,EAAQG,EAAU,QAAU/C,IACrC8C,EAASF,EAAQG,EAAU,QAAU7C,IACrC4C,EAASF,EAAQG,EAAU,SAAW3C,IAAO4C,EAAA,CAAA,EAE1CJ,EAAOK,cAAgBxB,GAE1B7B,EAEJ,GAAG,CAACI,EAAME,EAAME,EAAOqB,EAA2B7B,IAE5CsD,GAAY,WAAatC,EAAEuC,IAAAA,OAAOvC,GAAO,IACzCwC,IAAYtD,aAAK,GAALA,MAAkBuD,QAAS/C,EAAS,GAAA6C,OAAMG,KAAAC,IAAA,GAAMjD,GAAY,OAAcR,EAAP0D,GAC/EX,GACJY,EAAMC,cAAA,OAAA,CAAA9C,GAAIsC,GAAS,cAAe9B,GAAcuC,EAAUC,EAAuBC,QAASjD,IACvFE,EAASsC,IAId,OACEK,EACEC,cAAA,OAAA,CAAA/D,UAAWA,yBACIe,OAASyC,OAAIC,IACX,kBAAA5C,EACjBQ,YAAaA,GAEbyC,EAAKC,cAAA,MAAA,CAAA/D,UAAW8C,EAAwB,aAAAW,GAAWzB,IAAKA,GACrDR,EACC0B,GAEAY,EAAAC,cAACI,EAAgB,CAACC,KAAK,UACrBN,EAAAC,cAACM,EACC,CAAAC,IAAKb,GACLX,WAAY,CACVyB,MAAOtB,EAAOuB,UACdC,YAAaxB,EAAOyB,gBACpBC,KAAM1B,EAAO2B,SACbC,WAAY5B,EAAO6B,gBAIrBC,eAAgB,SAACC,EAAmBC,GAClCD,EAAKE,iBAAiB,gBAAiBD,GAAM,EAC/C,GAEAnB,EAAMC,cAAA,OAAA,CAAA9C,GAAIsC,GAAwB,cAAA9B,GAAcuC,EAAUC,EAAuBC,QAASjD,IACvFE,EAASsC,OAQ1B,GAEwC,CACtC0B,MAAOC,EACPC,OAAQC,EACRC,MAAOC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DateNavigationItem.js","sources":["../../../../../src/components/DatePicker/DateNavigationItem/DateNavigationItem.tsx"],"sourcesContent":["import React from \"react\";\nimport Icon from \"../../Icon/Icon\";\nimport { MoveArrowLeft, MoveArrowRight } from \"@vibe/icons\";\nimport styles from \"./DateNavigationItem.module.scss\";\n\nconst ICONS = {\n prev: MoveArrowLeft,\n next: MoveArrowRight\n};\n\nexport interface DateNavigationItemProps {\n kind: keyof typeof ICONS;\n onClick?: () => void;\n}\n\nconst DateNavigationItem = ({ kind, onClick }: DateNavigationItemProps) => {\n return (\n <button type=\"button\" className={styles.navigationItemContainer} onClick={() => onClick && onClick()}>\n <Icon iconType=\"svg\" icon={ICONS[kind]} iconSize={24} />\n </button>\n );\n};\n\nexport default DateNavigationItem;\n"],"names":["ICONS","prev","MoveArrowLeft","next","MoveArrowRight","DateNavigationItem","_ref","onClick","React","type","className","styles","navigationItemContainer","createElement","Icon","iconType","icon","kind","iconSize"],"mappings":"qOAKA,IAAMA,EAAQ,CACZC,KAAMC,EACNC,KAAMC,GAQFC,EAAqB,SAAHC,GAAkD,IAAtCC,EAAOD,EAAPC,QAClC,OACEC,0BAAQC,KAAK,SAASC,UAAWC,EAAOC,wBAAyBL,QAAS,WAAA,OAAMA,GAAWA,GAAS,GAClGC,EAAAK,cAACC,EAAK,CAAAC,SAAS,MAAMC,KAAMhB,EAHCM,EAAJW,MAGgBC,SAAU,KAGxD"}
1
+ {"version":3,"file":"DateNavigationItem.js","sources":["../../../../../src/components/DatePicker/DateNavigationItem/DateNavigationItem.tsx"],"sourcesContent":["import React from \"react\";\nimport Icon from \"../../Icon/Icon\";\nimport { MoveArrowLeft, MoveArrowRight } from \"@vibe/icons\";\nimport styles from \"./DateNavigationItem.module.scss\";\n\nconst ICONS = {\n prev: MoveArrowLeft,\n next: MoveArrowRight\n};\n\nexport interface DateNavigationItemProps {\n /**\n * The type of navigation button.\n */\n kind: keyof typeof ICONS;\n /**\n * Callback fired when the button is clicked.\n */\n onClick?: () => void;\n}\n\nconst DateNavigationItem = ({ kind, onClick }: DateNavigationItemProps) => {\n return (\n <button type=\"button\" className={styles.navigationItemContainer} onClick={() => onClick && onClick()}>\n <Icon iconType=\"svg\" icon={ICONS[kind]} iconSize={24} />\n </button>\n );\n};\n\nexport default DateNavigationItem;\n"],"names":["ICONS","prev","MoveArrowLeft","next","MoveArrowRight","DateNavigationItem","_ref","onClick","React","type","className","styles","navigationItemContainer","createElement","Icon","iconType","icon","kind","iconSize"],"mappings":"qOAKA,IAAMA,EAAQ,CACZC,KAAMC,EACNC,KAAMC,GAcFC,EAAqB,SAAHC,GAAkD,IAAtCC,EAAOD,EAAPC,QAClC,OACEC,0BAAQC,KAAK,SAASC,UAAWC,EAAOC,wBAAyBL,QAAS,WAAA,OAAMA,GAAWA,GAAS,GAClGC,EAAAK,cAACC,EAAK,CAAAC,SAAS,MAAMC,KAAMhB,EAHCM,EAAJW,MAGgBC,SAAU,KAGxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sources":["../../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useState } from \"react\";\nimport cx from \"classnames\";\nimport moment from \"moment\";\nimport \"react-dates/initialize.js\";\nimport { DayOfWeekShape, DayPickerRangeController, DayPickerSingleDateController } from \"react-dates\";\nimport DatePickerHeaderComponent from \"./DatePickerHeader/DatePickerHeader\";\nimport DateNavigationItem from \"./DateNavigationItem/DateNavigationItem\";\nimport YearPicker from \"./YearPicker/YearPicker\";\nimport { DAY_SIZE, WEEK_FIRST_DAY } from \"./constants\";\nimport { Direction, FocusInput, Moment, RangeDate } from \"./types\";\nimport VibeComponentProps from \"../../types/VibeComponentProps\";\nimport VibeComponent from \"../../types/VibeComponent\";\nimport { getTestId } from \"../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../tests/constants\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport styles from \"./DatePicker.module.scss\";\n// Make sure to update when upgrading react-dates\nimport \"./external_datepicker.scss\";\n\nexport interface DatePickerProps extends VibeComponentProps {\n /** set the first day of the week to display */\n firstDayOfWeek?: DayOfWeekShape;\n /** current start date */\n date?: Moment;\n /** current end date */\n endDate?: Moment;\n /** on date selected callback */\n onPickDate?: (date: Moment | RangeDate) => void;\n /** hide the month navigations keys */\n hideNavigationKeys?: boolean;\n /** show days outside the cuurent month view */\n enableOutsideDays?: boolean;\n /** show week number column */\n showWeekNumber?: boolean;\n /** set the size of single day element */\n daySize?: number;\n /** determine if day should be disabled */\n shouldBlockDay?: (date: Moment) => boolean;\n /** date range mode*/\n range?: boolean;\n /** number of month to display*/\n numberOfMonths?: number;\n /** determine if year should be disabled */\n shouldBlockYear?: (year: number) => boolean;\n /** determine if date range should be disabled */\n shouldBlockRange?: (date: Moment) => boolean;\n}\n\nconst DatePicker: VibeComponent<DatePickerProps, HTMLElement> = forwardRef<HTMLDivElement, DatePickerProps>(\n (\n {\n id,\n className,\n firstDayOfWeek = WEEK_FIRST_DAY,\n daySize = DAY_SIZE,\n range = false,\n shouldBlockDay,\n shouldBlockYear,\n numberOfMonths = 1,\n hideNavigationKeys = false,\n date,\n endDate,\n onPickDate,\n enableOutsideDays = false,\n showWeekNumber = false,\n shouldBlockRange,\n \"data-testid\": dataTestId\n }: DatePickerProps,\n ref\n ) => {\n const [focusedInput, setFocusedInput] = useState(FocusInput.startDate);\n const [isMonthYearSelection, setIsMonthYearSelection] = useState(false); //show Month/Year selection dropdown\n const [overrideDateForView, setOverrideDateForView] = useState<Moment | null>(null);\n const [yearFunc, setYearFunc] = useState(null);\n\n const renderMonth = useCallback(\n ({\n month,\n onYearSelect\n }: {\n month: moment.Moment;\n onYearSelect: (currentMonth: moment.Moment, newMonthVal: string) => void;\n }) => {\n if (!yearFunc && onYearSelect) {\n setYearFunc(() => onYearSelect);\n }\n return (\n <DatePickerHeaderComponent\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.DATEPICKER_HEADER, id)}\n currentDate={month || moment()}\n isMonthYearSelection={isMonthYearSelection}\n onToggleMonthYearPicker={() => setIsMonthYearSelection(val => !val)}\n hideNavigationKeys={hideNavigationKeys}\n />\n );\n },\n [isMonthYearSelection, dataTestId, id, hideNavigationKeys, yearFunc]\n );\n\n const renderDay = useCallback(\n (day: Moment) => {\n const weekNumber = firstDayOfWeek === 0 ? day.clone().add(1, \"d\").isoWeek() : day.isoWeek();\n return (\n <>\n <span className={styles.calendarDayWeekNumber}>{weekNumber}</span> {day.format(\"D\")}\n </>\n );\n },\n [firstDayOfWeek]\n );\n\n const changeCurrentDateFromMonthYearView = useCallback(\n (newDate: Moment | null) => {\n const oldDate = overrideDateForView || date;\n setOverrideDateForView(newDate);\n setIsMonthYearSelection(false);\n yearFunc(oldDate, moment(newDate).year());\n },\n [overrideDateForView, date, yearFunc]\n );\n\n const renderMonthYearSelection = useCallback(() => {\n return (\n <YearPicker\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.DATEPICKER_YEAR_SELECTION, id)}\n selectedDate={date}\n isYearBlocked={shouldBlockYear}\n changeCurrentDate={changeCurrentDateFromMonthYearView}\n />\n );\n }, [dataTestId, id, overrideDateForView, date, shouldBlockYear, changeCurrentDateFromMonthYearView]);\n\n const onDateRangeChange = useCallback(\n (date: RangeDate) => {\n if (!onPickDate) return;\n if (focusedInput === FocusInput.startDate) {\n onPickDate({ ...date, endDate: null });\n } else {\n onPickDate(date);\n }\n },\n [focusedInput, onPickDate]\n );\n\n const onFocusChange = useCallback((focusedInput: FocusInput) => {\n setFocusedInput(focusedInput || FocusInput.startDate);\n }, []);\n\n const shouldShowNav = !hideNavigationKeys && !isMonthYearSelection;\n return (\n <div\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.DATEPICKER, id)}\n ref={ref}\n id={id}\n className={cx(styles.datepickerContainer, className, {\n [styles.withWeekNumber]: showWeekNumber,\n [styles.rangePickerMode]: range,\n [styles.monthYearSelection]: isMonthYearSelection\n })}\n >\n {range ? (\n <DayPickerRangeController\n renderDayContents={showWeekNumber ? renderDay : undefined}\n firstDayOfWeek={firstDayOfWeek}\n hideKeyboardShortcutsPanel\n startDate={date}\n endDate={endDate}\n onDatesChange={onDateRangeChange}\n focusedInput={focusedInput}\n minimumNights={0}\n onFocusChange={onFocusChange}\n navPrev={shouldShowNav ? <DateNavigationItem kind={Direction.prev} /> : <div />}\n navNext={shouldShowNav ? <DateNavigationItem kind={Direction.next} /> : <div />}\n daySize={daySize}\n isOutsideRange={shouldBlockRange}\n isDayBlocked={shouldBlockDay}\n renderMonthElement={renderMonth}\n enableOutsideDays={enableOutsideDays || showWeekNumber}\n numberOfMonths={numberOfMonths}\n initialVisibleMonth={() => overrideDateForView || date || moment()}\n />\n ) : (\n <DayPickerSingleDateController\n renderDayContents={showWeekNumber ? renderDay : undefined}\n firstDayOfWeek={firstDayOfWeek}\n hideKeyboardShortcutsPanel\n onFocusChange={NOOP}\n numberOfMonths={numberOfMonths}\n date={date}\n onDateChange={(date: Moment) => onPickDate(date)}\n navPrev={shouldShowNav ? <DateNavigationItem kind={Direction.prev} /> : <div />}\n navNext={shouldShowNav ? <DateNavigationItem kind={Direction.next} /> : <div />}\n focused={true}\n renderMonthElement={renderMonth}\n enableOutsideDays={enableOutsideDays || showWeekNumber}\n daySize={daySize}\n isDayBlocked={shouldBlockDay}\n initialVisibleMonth={() => overrideDateForView || date || moment()}\n />\n )}\n {isMonthYearSelection && renderMonthYearSelection()}\n </div>\n );\n }\n);\n\nexport default DatePicker;\n"],"names":["DatePicker","forwardRef","_ref","ref","id","className","_ref$firstDayOfWeek","firstDayOfWeek","WEEK_FIRST_DAY","_ref$daySize","daySize","DAY_SIZE","_ref$range","range","shouldBlockDay","shouldBlockYear","_ref$numberOfMonths","numberOfMonths","_ref$hideNavigationKe","hideNavigationKeys","date","endDate","onPickDate","_ref$enableOutsideDay","enableOutsideDays","_ref$showWeekNumber","showWeekNumber","shouldBlockRange","dataTestId","_useState","useState","FocusInput","startDate","_useState2","_slicedToArray","focusedInput","setFocusedInput","_useState3","_useState4","isMonthYearSelection","setIsMonthYearSelection","_useState5","_useState6","overrideDateForView","setOverrideDateForView","_useState7","_useState8","yearFunc","setYearFunc","renderMonth","useCallback","_ref2","month","onYearSelect","React","DatePickerHeaderComponent","getTestId","ComponentDefaultTestId","DATEPICKER_HEADER","currentDate","moment","onToggleMonthYearPicker","val","renderDay","day","weekNumber","clone","add","isoWeek","createElement","Fragment","styles","calendarDayWeekNumber","format","changeCurrentDateFromMonthYearView","newDate","oldDate","year","renderMonthYearSelection","YearPicker","DATEPICKER_YEAR_SELECTION","selectedDate","isYearBlocked","changeCurrentDate","onDateRangeChange","onFocusChange","shouldShowNav","DATEPICKER","cx","datepickerContainer","_defineProperty","withWeekNumber","rangePickerMode","monthYearSelection","DayPickerRangeController","renderDayContents","undefined","hideKeyboardShortcutsPanel","onDatesChange","minimumNights","navPrev","DateNavigationItem","kind","Direction","prev","navNext","next","isOutsideRange","isDayBlocked","renderMonthElement","initialVisibleMonth","DayPickerSingleDateController","NOOP","onDateChange","focused"],"mappings":"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"}
1
+ {"version":3,"file":"DatePicker.js","sources":["../../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useState } from \"react\";\nimport cx from \"classnames\";\nimport moment from \"moment\";\nimport \"react-dates/initialize.js\";\nimport { DayOfWeekShape, DayPickerRangeController, DayPickerSingleDateController } from \"react-dates\";\nimport DatePickerHeaderComponent from \"./DatePickerHeader/DatePickerHeader\";\nimport DateNavigationItem from \"./DateNavigationItem/DateNavigationItem\";\nimport YearPicker from \"./YearPicker/YearPicker\";\nimport { DAY_SIZE, WEEK_FIRST_DAY } from \"./constants\";\nimport { Direction, FocusInput, Moment, RangeDate } from \"./types\";\nimport VibeComponentProps from \"../../types/VibeComponentProps\";\nimport VibeComponent from \"../../types/VibeComponent\";\nimport { getTestId } from \"../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../tests/constants\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport styles from \"./DatePicker.module.scss\";\n// Make sure to update when upgrading react-dates\nimport \"./external_datepicker.scss\";\n\nexport interface DatePickerProps extends VibeComponentProps {\n /**\n * The first day of the week to display.\n */\n firstDayOfWeek?: DayOfWeekShape;\n /**\n * The currently selected date.\n */\n date?: Moment;\n /**\n * The end date for range selection mode.\n */\n endDate?: Moment;\n /**\n * Callback fired when a date is selected.\n */\n onPickDate?: (date: Moment | RangeDate) => void;\n /**\n * If true, hides the navigation buttons.\n */\n hideNavigationKeys?: boolean;\n /**\n * If true, allows selecting days outside the current month.\n */\n enableOutsideDays?: boolean;\n /**\n * If true, displays a column with week numbers.\n */\n showWeekNumber?: boolean;\n /**\n * The size of a single day cell.\n */\n daySize?: number;\n /**\n * Function to determine if a specific day should be disabled.\n */\n shouldBlockDay?: (date: Moment) => boolean;\n /**\n * If true, enables date range selection mode.\n */\n range?: boolean;\n /**\n * The number of months displayed in the calendar.\n */\n numberOfMonths?: number;\n /**\n * Function to determine if a specific year should be disabled.\n */\n shouldBlockYear?: (year: number) => boolean;\n /**\n * Function to determine if a specific date range should be disabled.\n */\n shouldBlockRange?: (date: Moment) => boolean;\n}\n\nconst DatePicker: VibeComponent<DatePickerProps, HTMLElement> = forwardRef<HTMLDivElement, DatePickerProps>(\n (\n {\n id,\n className,\n firstDayOfWeek = WEEK_FIRST_DAY,\n daySize = DAY_SIZE,\n range = false,\n shouldBlockDay,\n shouldBlockYear,\n numberOfMonths = 1,\n hideNavigationKeys = false,\n date,\n endDate,\n onPickDate,\n enableOutsideDays = false,\n showWeekNumber = false,\n shouldBlockRange,\n \"data-testid\": dataTestId\n }: DatePickerProps,\n ref\n ) => {\n const [focusedInput, setFocusedInput] = useState(FocusInput.startDate);\n const [isMonthYearSelection, setIsMonthYearSelection] = useState(false); //show Month/Year selection dropdown\n const [overrideDateForView, setOverrideDateForView] = useState<Moment | null>(null);\n const [yearFunc, setYearFunc] = useState(null);\n\n const renderMonth = useCallback(\n ({\n month,\n onYearSelect\n }: {\n month: moment.Moment;\n onYearSelect: (currentMonth: moment.Moment, newMonthVal: string) => void;\n }) => {\n if (!yearFunc && onYearSelect) {\n setYearFunc(() => onYearSelect);\n }\n return (\n <DatePickerHeaderComponent\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.DATEPICKER_HEADER, id)}\n currentDate={month || moment()}\n isMonthYearSelection={isMonthYearSelection}\n onToggleMonthYearPicker={() => setIsMonthYearSelection(val => !val)}\n hideNavigationKeys={hideNavigationKeys}\n />\n );\n },\n [isMonthYearSelection, dataTestId, id, hideNavigationKeys, yearFunc]\n );\n\n const renderDay = useCallback(\n (day: Moment) => {\n const weekNumber = firstDayOfWeek === 0 ? day.clone().add(1, \"d\").isoWeek() : day.isoWeek();\n return (\n <>\n <span className={styles.calendarDayWeekNumber}>{weekNumber}</span> {day.format(\"D\")}\n </>\n );\n },\n [firstDayOfWeek]\n );\n\n const changeCurrentDateFromMonthYearView = useCallback(\n (newDate: Moment | null) => {\n const oldDate = overrideDateForView || date;\n setOverrideDateForView(newDate);\n setIsMonthYearSelection(false);\n yearFunc(oldDate, moment(newDate).year());\n },\n [overrideDateForView, date, yearFunc]\n );\n\n const renderMonthYearSelection = useCallback(() => {\n return (\n <YearPicker\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.DATEPICKER_YEAR_SELECTION, id)}\n selectedDate={date}\n isYearBlocked={shouldBlockYear}\n changeCurrentDate={changeCurrentDateFromMonthYearView}\n />\n );\n }, [dataTestId, id, overrideDateForView, date, shouldBlockYear, changeCurrentDateFromMonthYearView]);\n\n const onDateRangeChange = useCallback(\n (date: RangeDate) => {\n if (!onPickDate) return;\n if (focusedInput === FocusInput.startDate) {\n onPickDate({ ...date, endDate: null });\n } else {\n onPickDate(date);\n }\n },\n [focusedInput, onPickDate]\n );\n\n const onFocusChange = useCallback((focusedInput: FocusInput) => {\n setFocusedInput(focusedInput || FocusInput.startDate);\n }, []);\n\n const shouldShowNav = !hideNavigationKeys && !isMonthYearSelection;\n return (\n <div\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.DATEPICKER, id)}\n ref={ref}\n id={id}\n className={cx(styles.datepickerContainer, className, {\n [styles.withWeekNumber]: showWeekNumber,\n [styles.rangePickerMode]: range,\n [styles.monthYearSelection]: isMonthYearSelection\n })}\n >\n {range ? (\n <DayPickerRangeController\n renderDayContents={showWeekNumber ? renderDay : undefined}\n firstDayOfWeek={firstDayOfWeek}\n hideKeyboardShortcutsPanel\n startDate={date}\n endDate={endDate}\n onDatesChange={onDateRangeChange}\n focusedInput={focusedInput}\n minimumNights={0}\n onFocusChange={onFocusChange}\n navPrev={shouldShowNav ? <DateNavigationItem kind={Direction.prev} /> : <div />}\n navNext={shouldShowNav ? <DateNavigationItem kind={Direction.next} /> : <div />}\n daySize={daySize}\n isOutsideRange={shouldBlockRange}\n isDayBlocked={shouldBlockDay}\n renderMonthElement={renderMonth}\n enableOutsideDays={enableOutsideDays || showWeekNumber}\n numberOfMonths={numberOfMonths}\n initialVisibleMonth={() => overrideDateForView || date || moment()}\n />\n ) : (\n <DayPickerSingleDateController\n renderDayContents={showWeekNumber ? renderDay : undefined}\n firstDayOfWeek={firstDayOfWeek}\n hideKeyboardShortcutsPanel\n onFocusChange={NOOP}\n numberOfMonths={numberOfMonths}\n date={date}\n onDateChange={(date: Moment) => onPickDate(date)}\n navPrev={shouldShowNav ? <DateNavigationItem kind={Direction.prev} /> : <div />}\n navNext={shouldShowNav ? <DateNavigationItem kind={Direction.next} /> : <div />}\n focused={true}\n renderMonthElement={renderMonth}\n enableOutsideDays={enableOutsideDays || showWeekNumber}\n daySize={daySize}\n isDayBlocked={shouldBlockDay}\n initialVisibleMonth={() => overrideDateForView || date || moment()}\n />\n )}\n {isMonthYearSelection && renderMonthYearSelection()}\n </div>\n );\n }\n);\n\nexport default DatePicker;\n"],"names":["DatePicker","forwardRef","_ref","ref","id","className","_ref$firstDayOfWeek","firstDayOfWeek","WEEK_FIRST_DAY","_ref$daySize","daySize","DAY_SIZE","_ref$range","range","shouldBlockDay","shouldBlockYear","_ref$numberOfMonths","numberOfMonths","_ref$hideNavigationKe","hideNavigationKeys","date","endDate","onPickDate","_ref$enableOutsideDay","enableOutsideDays","_ref$showWeekNumber","showWeekNumber","shouldBlockRange","dataTestId","_useState","useState","FocusInput","startDate","_useState2","_slicedToArray","focusedInput","setFocusedInput","_useState3","_useState4","isMonthYearSelection","setIsMonthYearSelection","_useState5","_useState6","overrideDateForView","setOverrideDateForView","_useState7","_useState8","yearFunc","setYearFunc","renderMonth","useCallback","_ref2","month","onYearSelect","React","DatePickerHeaderComponent","getTestId","ComponentDefaultTestId","DATEPICKER_HEADER","currentDate","moment","onToggleMonthYearPicker","val","renderDay","day","weekNumber","clone","add","isoWeek","createElement","Fragment","styles","calendarDayWeekNumber","format","changeCurrentDateFromMonthYearView","newDate","oldDate","year","renderMonthYearSelection","YearPicker","DATEPICKER_YEAR_SELECTION","selectedDate","isYearBlocked","changeCurrentDate","onDateRangeChange","onFocusChange","shouldShowNav","DATEPICKER","cx","datepickerContainer","_defineProperty","withWeekNumber","rangePickerMode","monthYearSelection","DayPickerRangeController","renderDayContents","undefined","hideKeyboardShortcutsPanel","onDatesChange","minimumNights","navPrev","DateNavigationItem","kind","Direction","prev","navNext","next","isOutsideRange","isDayBlocked","renderMonthElement","initialVisibleMonth","DayPickerSingleDateController","NOOP","onDateChange","focused"],"mappings":"81BA0EMA,IAAAA,EAA0DC,GAC9D,SAAAC,EAmBEC,GACE,IAlBAC,EAAEF,EAAFE,GACAC,EAASH,EAATG,UAASC,EAAAJ,EACTK,eAAAA,OAAiBC,IAAHF,EAAGE,EAAcF,EAAAG,EAAAP,EAC/BQ,QAAAA,OAAUC,IAAHF,EAAGE,EAAQF,EAAAG,EAAAV,EAClBW,MAAAA,OAAQ,IAAHD,GAAQA,EACbE,EAAcZ,EAAdY,eACAC,EAAeb,EAAfa,gBAAeC,EAAAd,EACfe,eAAAA,OAAiB,IAAHD,EAAG,EAACA,EAAAE,EAAAhB,EAClBiB,mBAAAA,OAAqB,IAAHD,GAAQA,EAC1BE,EAAIlB,EAAJkB,KACAC,EAAOnB,EAAPmB,QACAC,EAAUpB,EAAVoB,WAAUC,EAAArB,EACVsB,kBAAAA,OAAoB,IAAHD,GAAQA,EAAAE,EAAAvB,EACzBwB,eAAAA,OAAiB,IAAHD,GAAQA,EACtBE,EAAgBzB,EAAhByB,iBACeC,EAAU1B,EAAzB,eAIF2B,EAAwCC,EAASC,EAAWC,WAAUC,EAAAC,EAAAL,EAAA,GAA/DM,EAAYF,EAAA,GAAEG,EAAeH,EAAA,GACpCI,EAAwDP,GAAS,GAAMQ,EAAAJ,EAAAG,EAAA,GAAhEE,EAAoBD,EAAA,GAAEE,EAAuBF,EAAA,GACpDG,EAAsDX,EAAwB,MAAKY,GAAAR,EAAAO,EAAA,GAA5EE,GAAmBD,GAAA,GAAEE,GAAsBF,GAAA,GAClDG,GAAgCf,EAAS,MAAKgB,GAAAZ,EAAAW,GAAA,GAAvCE,GAAQD,GAAA,GAAEE,GAAWF,GAAA,GAEtBG,GAAcC,GAClB,SAAAC,GAMK,IALHC,EAAKD,EAALC,MACAC,EAAYF,EAAZE,aAQA,OAHKN,IAAYM,GACfL,IAAY,WAAA,OAAMK,KAGlBC,gBAACC,EAAyB,CAAA,cACX3B,GAAc4B,EAAUC,EAAuBC,kBAAmBtD,GAC/EuD,YAAaP,GAASQ,IACtBrB,qBAAsBA,EACtBsB,wBAAyB,WAAA,OAAMrB,GAAwB,SAAAsB,GAAG,OAAKA,IAAI,EACnE3C,mBAAoBA,GAG1B,GACA,CAACoB,EAAsBX,EAAYxB,EAAIe,EAAoB4B,KAGvDgB,GAAYb,GAChB,SAACc,GACC,IAAMC,EAAgC,IAAnB1D,EAAuByD,EAAIE,QAAQC,IAAI,EAAG,KAAKC,UAAYJ,EAAII,UAClF,OACEd,EAAAe,cAAAf,EAAAgB,SAAA,KACEhB,EAAAe,cAAA,OAAA,CAAMhE,UAAWkE,EAAOC,uBAAwBP,OAAoBD,EAAIS,OAAO,KAGrF,GACA,CAAClE,IAGGmE,GAAqCxB,GACzC,SAACyB,GACC,IAAMC,EAAUjC,IAAuBvB,EACvCwB,GAAuB+B,GACvBnC,GAAwB,GACxBO,GAAS6B,EAAShB,EAAOe,GAASE,OACnC,GACD,CAAClC,GAAqBvB,EAAM2B,KAGxB+B,GAA2B5B,GAAY,WAC3C,OACEI,EAAAe,cAACU,EAAU,CAAA,cACInD,GAAc4B,EAAUC,EAAuBuB,0BAA2B5E,GACvF6E,aAAc7D,EACd8D,cAAenE,EACfoE,kBAAmBT,IAGzB,GAAG,CAAC9C,EAAYxB,EAAIuC,GAAqBvB,EAAML,EAAiB2D,KAE1DU,GAAoBlC,GACxB,SAAC9B,GACME,GAEHA,EADEa,IAAiBJ,EAAWC,yCACdZ,GAAI,CAAEC,QAAS,OAEpBD,EAEf,GACA,CAACe,EAAcb,IAGX+D,GAAgBnC,GAAY,SAACf,GACjCC,EAAgBD,GAAgBJ,EAAWC,UAC5C,GAAE,IAEGsD,IAAiBnE,IAAuBoB,EAC9C,OACEe,EAAAe,cAAA,MAAA,CAAA,cACezC,GAAc4B,EAAUC,EAAuB8B,WAAYnF,GACxED,IAAKA,EACLC,GAAIA,EACJC,UAAWmF,EAAGjB,EAAOkB,oBAAqBpF,EAASqF,EAAAA,EAAAA,EAChDnB,GAAAA,EAAOoB,eAAiBjE,GACxB6C,EAAOqB,gBAAkB/E,GACzB0D,EAAOsB,mBAAqBtD,KAG9B1B,EACCyC,EAAAe,cAACyB,EAAwB,CACvBC,kBAAmBrE,EAAiBqC,QAAYiC,EAChDzF,eAAgBA,EAChB0F,4BAA0B,EAC1BjE,UAAWZ,EACXC,QAASA,EACT6E,cAAed,GACfjD,aAAcA,EACdgE,cAAe,EACfd,cAAeA,GACfe,QAASd,GAAgBhC,EAACe,cAAAgC,EAAmB,CAAAC,KAAMC,EAAUC,OAAWlD,EAAOe,cAAA,MAAA,MAC/EoC,QAASnB,GAAgBhC,EAACe,cAAAgC,EAAmB,CAAAC,KAAMC,EAAUG,OAAWpD,EAAOe,cAAA,MAAA,MAC/E3D,QAASA,EACTiG,eAAgBhF,EAChBiF,aAAc9F,EACd+F,mBAAoB5D,GACpBzB,kBAAmBA,GAAqBE,EACxCT,eAAgBA,EAChB6F,oBAAqB,WAAA,OAAMnE,IAAuBvB,GAAQwC,GAAQ,IAGpEN,EAAAe,cAAC0C,EAA6B,CAC5BhB,kBAAmBrE,EAAiBqC,QAAYiC,EAChDzF,eAAgBA,EAChB0F,4BAA0B,EAC1BZ,cAAe2B,EACf/F,eAAgBA,EAChBG,KAAMA,EACN6F,aAAc,SAAC7F,GAAY,OAAKE,EAAWF,EAAK,EAChDgF,QAASd,GAAgBhC,EAACe,cAAAgC,EAAmB,CAAAC,KAAMC,EAAUC,OAAWlD,EAAOe,cAAA,MAAA,MAC/EoC,QAASnB,GAAgBhC,EAACe,cAAAgC,EAAmB,CAAAC,KAAMC,EAAUG,OAAWpD,EAAOe,cAAA,MAAA,MAC/E6C,SAAS,EACTL,mBAAoB5D,GACpBzB,kBAAmBA,GAAqBE,EACxChB,QAASA,EACTkG,aAAc9F,EACdgG,oBAAqB,WAAA,OAAMnE,IAAuBvB,GAAQwC,GAAQ,IAGrErB,GAAwBuC,KAG/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerHeader.js","sources":["../../../../../src/components/DatePicker/DatePickerHeader/DatePickerHeader.tsx"],"sourcesContent":["import React from \"react\";\nimport { DropdownChevronUp, DropdownChevronDown } from \"@vibe/icons\";\nimport moment from \"moment\";\nimport { Moment } from \"../types\";\nimport styles from \"./DatePickerHeader.module.scss\";\nimport Icon from \"../../Icon/Icon\";\n\nexport interface DatePickerHeaderProps {\n currentDate: Moment;\n isMonthYearSelection: boolean;\n onToggleMonthYearPicker: () => void;\n hideNavigationKeys: boolean;\n \"data-testid\"?: string;\n ariaLabel?: string;\n}\n\nconst DatePickerHeader = (props: DatePickerHeaderProps) => {\n const {\n currentDate,\n isMonthYearSelection,\n onToggleMonthYearPicker,\n hideNavigationKeys,\n \"data-testid\": dateTestId,\n ariaLabel = \"Toggle select year\"\n } = props;\n\n const localedDated = moment(currentDate.valueOf());\n const month = localedDated.format(\"MMMM\");\n const year = localedDated.format(\"YYYY\");\n const string = month + \" \" + year;\n return (\n <div className={styles.datePickerHeader}>\n <div>{string}</div>\n {!hideNavigationKeys && (\n <button\n data-testid={`${dateTestId}-year-toggle`}\n type=\"button\"\n className={styles.button}\n aria-label={ariaLabel}\n onClick={onToggleMonthYearPicker}\n >\n <div className={styles.buttonContent}>\n <Icon iconType=\"svg\" icon={isMonthYearSelection ? DropdownChevronUp : DropdownChevronDown} iconSize={24} />\n </div>\n </button>\n )}\n </div>\n );\n};\n\nexport default DatePickerHeader;\n"],"names":["DatePickerHeader","props","isMonthYearSelection","onToggleMonthYearPicker","hideNavigationKeys","dateTestId","_props$ariaLabel","ariaLabel","localedDated","moment","currentDate","valueOf","month","format","year","React","createElement","className","styles","datePickerHeader","concat","type","button","onClick","buttonContent","Icon","iconType","icon","DropdownChevronUp","DropdownChevronDown","iconSize"],"mappings":"kQAgBA,IAAMA,EAAmB,SAACC,GACxB,IAEEC,EAKED,EALFC,qBACAC,EAIEF,EAJFE,wBACAC,EAGEH,EAHFG,mBACeC,EAEbJ,EAFF,eAAaK,EAEXL,EADFM,UAAAA,OAAY,IAAHD,EAAG,qBAAoBA,EAG5BE,EAAeC,EAFjBR,EANFS,YAQsCC,WAClCC,EAAQJ,EAAaK,OAAO,QAC5BC,EAAON,EAAaK,OAAO,QAEjC,OACEE,EAAKC,cAAA,MAAA,CAAAC,UAAWC,EAAOC,kBACrBJ,EAAAC,cAAA,MAAA,KAHWJ,EAAQ,IAAME,IAIvBV,GACAW,EAAAC,cAAA,SAAA,CAAA,cAAAI,GAAAA,OACkBf,EAAwB,gBACxCgB,KAAK,SACLJ,UAAWC,EAAOI,oBACNf,EACZgB,QAASpB,GAETY,EAAAC,cAAA,MAAA,CAAKC,UAAWC,EAAOM,eACrBT,EAACC,cAAAS,EAAK,CAAAC,SAAS,MAAMC,KAAMzB,EAAuB0B,EAAoBC,EAAqBC,SAAU,OAMjH"}
1
+ {"version":3,"file":"DatePickerHeader.js","sources":["../../../../../src/components/DatePicker/DatePickerHeader/DatePickerHeader.tsx"],"sourcesContent":["import React from \"react\";\nimport { DropdownChevronUp, DropdownChevronDown } from \"@vibe/icons\";\nimport moment from \"moment\";\nimport { Moment } from \"../types\";\nimport styles from \"./DatePickerHeader.module.scss\";\nimport Icon from \"../../Icon/Icon\";\n\nexport interface DatePickerHeaderProps {\n /**\n * The currently shown date.\n */\n currentDate: Moment;\n /**\n * If true, the month and year selection view is active.\n */\n isMonthYearSelection: boolean;\n /**\n * Callback fired when toggling the month and year picker.\n */\n onToggleMonthYearPicker: () => void;\n /**\n * If true, hides the navigation buttons.\n */\n hideNavigationKeys: boolean;\n /**\n * Test ID for testing purposes.\n */\n \"data-testid\"?: string;\n /**\n * The ARIA label for the toggle button.\n */\n ariaLabel?: string;\n}\n\nconst DatePickerHeader = (props: DatePickerHeaderProps) => {\n const {\n currentDate,\n isMonthYearSelection,\n onToggleMonthYearPicker,\n hideNavigationKeys,\n \"data-testid\": dateTestId,\n ariaLabel = \"Toggle select year\"\n } = props;\n\n const localedDated = moment(currentDate.valueOf());\n const month = localedDated.format(\"MMMM\");\n const year = localedDated.format(\"YYYY\");\n const string = month + \" \" + year;\n return (\n <div className={styles.datePickerHeader}>\n <div>{string}</div>\n {!hideNavigationKeys && (\n <button\n data-testid={`${dateTestId}-year-toggle`}\n type=\"button\"\n className={styles.button}\n aria-label={ariaLabel}\n onClick={onToggleMonthYearPicker}\n >\n <div className={styles.buttonContent}>\n <Icon iconType=\"svg\" icon={isMonthYearSelection ? DropdownChevronUp : DropdownChevronDown} iconSize={24} />\n </div>\n </button>\n )}\n </div>\n );\n};\n\nexport default DatePickerHeader;\n"],"names":["DatePickerHeader","props","isMonthYearSelection","onToggleMonthYearPicker","hideNavigationKeys","dateTestId","_props$ariaLabel","ariaLabel","localedDated","moment","currentDate","valueOf","month","format","year","React","createElement","className","styles","datePickerHeader","concat","type","button","onClick","buttonContent","Icon","iconType","icon","DropdownChevronUp","DropdownChevronDown","iconSize"],"mappings":"kQAkCA,IAAMA,EAAmB,SAACC,GACxB,IAEEC,EAKED,EALFC,qBACAC,EAIEF,EAJFE,wBACAC,EAGEH,EAHFG,mBACeC,EAEbJ,EAFF,eAAaK,EAEXL,EADFM,UAAAA,OAAY,IAAHD,EAAG,qBAAoBA,EAG5BE,EAAeC,EAFjBR,EANFS,YAQsCC,WAClCC,EAAQJ,EAAaK,OAAO,QAC5BC,EAAON,EAAaK,OAAO,QAEjC,OACEE,EAAKC,cAAA,MAAA,CAAAC,UAAWC,EAAOC,kBACrBJ,EAAAC,cAAA,MAAA,KAHWJ,EAAQ,IAAME,IAIvBV,GACAW,EAAAC,cAAA,SAAA,CAAA,cAAAI,GAAAA,OACkBf,EAAwB,gBACxCgB,KAAK,SACLJ,UAAWC,EAAOI,oBACNf,EACZgB,QAASpB,GAETY,EAAAC,cAAA,MAAA,CAAKC,UAAWC,EAAOM,eACrBT,EAACC,cAAAS,EAAK,CAAAC,SAAS,MAAMC,KAAMzB,EAAuB0B,EAAoBC,EAAqBC,SAAU,OAMjH"}
@@ -1 +1 @@
1
- {"version":3,"file":"YearPicker.js","sources":["../../../../../src/components/DatePicker/YearPicker/YearPicker.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport moment from \"moment\";\nimport { CSSTransition } from \"react-transition-group\";\nimport classnames from \"classnames\";\nimport { YEAR_FORMAT } from \"../constants\";\nimport DateNavigationItemComponent from \"../DateNavigationItem/DateNavigationItem\";\nimport { Moment, Direction } from \"../types\";\nimport styles from \"./YearPicker.module.scss\";\nimport { calcNewYearsPage } from \"../date-picker-utils\";\nimport YearsList from \"./YearsList\";\n\nconst transitionOptions = {\n classNames: \"slide-down\",\n timeout: { enter: 400, exit: 400 }\n};\n\nconst PAGE_SIZE = 18;\nconst BUFFER_FROM_CURRENT_YEAR = 4;\nexport interface YearPickerProps {\n selectedDate?: Moment;\n isYearBlocked?: (year: number) => boolean;\n changeCurrentDate: (date: Moment) => void;\n \"data-testid\"?: string;\n}\n\nconst YearPicker = ({ selectedDate, isYearBlocked, changeCurrentDate, \"data-testid\": dateTestId }: YearPickerProps) => {\n const selectedYear = selectedDate ? selectedDate.format(YEAR_FORMAT) : moment().format(YEAR_FORMAT);\n\n const [yearsToDisplay, setYearsToDisplay] = useState(\n calcNewYearsPage(parseInt(selectedYear) - BUFFER_FROM_CURRENT_YEAR, PAGE_SIZE)\n );\n\n const onYearNavigationClick = (direction: Direction) => {\n const firstYearInPage = yearsToDisplay[0];\n let newYearsArray: number[] = [];\n if (direction === Direction.prev) {\n newYearsArray = calcNewYearsPage(firstYearInPage - PAGE_SIZE, PAGE_SIZE);\n } else if (direction === Direction.next) {\n newYearsArray = calcNewYearsPage(firstYearInPage + PAGE_SIZE, PAGE_SIZE);\n }\n setYearsToDisplay(newYearsArray);\n };\n\n const onYearSelect = (year: number) => {\n changeCurrentDate(moment().year(year));\n };\n\n return (\n <div data-testid={`${dateTestId}-year-picker`} className={styles.monthYearPicker}>\n <div className={classnames(styles.navigationWrapper, styles.navigationLeft)}>\n <DateNavigationItemComponent kind={Direction.prev} onClick={() => onYearNavigationClick(Direction.prev)} />\n </div>\n <div className={classnames(styles.navigationWrapper, styles.navigationRight)}>\n <DateNavigationItemComponent kind={Direction.next} onClick={() => onYearNavigationClick(Direction.next)} />\n </div>\n <CSSTransition {...transitionOptions} in appear>\n <div className={styles.pickerOptions}>\n <YearsList\n selectedYear={selectedYear}\n onSelect={onYearSelect}\n yearsItems={yearsToDisplay}\n isYearBlocked={isYearBlocked}\n />\n </div>\n </CSSTransition>\n </div>\n );\n};\n\nexport default YearPicker;\n"],"names":["transitionOptions","classNames","timeout","enter","exit","YearPicker","_ref","selectedDate","isYearBlocked","changeCurrentDate","dateTestId","selectedYear","format","YEAR_FORMAT","moment","_useState","useState","calcNewYearsPage","parseInt","_useState2","_slicedToArray","yearsToDisplay","setYearsToDisplay","onYearNavigationClick","direction","firstYearInPage","newYearsArray","Direction","prev","next","React","createElement","concat","className","styles","monthYearPicker","classnames","navigationWrapper","navigationLeft","DateNavigationItemComponent","kind","onClick","navigationRight","CSSTransition","Object","assign","in","appear","pickerOptions","YearsList","onSelect","year","yearsItems"],"mappings":"kfAWA,IAAMA,EAAoB,CACxBC,WAAY,aACZC,QAAS,CAAEC,MAAO,IAAKC,KAAM,MAYzBC,EAAa,SAAHC,GAAsG,IAAhGC,EAAYD,EAAZC,aAAcC,EAAaF,EAAbE,cAAeC,EAAiBH,EAAjBG,kBAAkCC,EAAUJ,EAAzB,eAC9DK,EAAeJ,EAAeA,EAAaK,OAAOC,GAAeC,IAASF,OAAOC,GAEvFE,EAA4CC,EAC1CC,EAAiBC,SAASP,GAZG,EADf,KAcfQ,EAAAC,EAAAL,EAAA,GAFMM,EAAcF,EAAA,GAAEG,EAAiBH,EAAA,GAIlCI,EAAwB,SAACC,GAC7B,IAAMC,EAAkBJ,EAAe,GACnCK,EAA0B,GAC1BF,IAAcG,EAAUC,KAC1BF,EAAgBT,EAAiBQ,EApBrB,OAqBHD,IAAcG,EAAUE,OACjCH,EAAgBT,EAAiBQ,EAtBrB,QAwBdH,EAAkBI,IAOpB,OACEI,EAAkBC,cAAA,MAAA,CAAA,cAAAC,GAAAA,OAAGtB,EAAwB,gBAAEuB,UAAWC,EAAOC,iBAC/DL,EAAKC,cAAA,MAAA,CAAAE,UAAWG,EAAWF,EAAOG,kBAAmBH,EAAOI,iBAC1DR,EAACC,cAAAQ,GAA4BC,KAAMb,EAAUC,KAAMa,QAAS,WAAA,OAAMlB,EAAsBI,EAAUC,KAAK,KAEzGE,EAAKC,cAAA,MAAA,CAAAE,UAAWG,EAAWF,EAAOG,kBAAmBH,EAAOQ,kBAC1DZ,EAACC,cAAAQ,GAA4BC,KAAMb,EAAUE,KAAMY,QAAS,WAAA,OAAMlB,EAAsBI,EAAUE,KAAK,KAEzGC,EAAAC,cAACY,EAAkBC,OAAAC,OAAA,CAAA,EAAA7C,EAAmB,CAAA8C,MAAGC,QAAM,IAC7CjB,EAAAC,cAAA,MAAA,CAAKE,UAAWC,EAAOc,eACrBlB,EAACC,cAAAkB,GACCtC,aAAcA,EACduC,SAhBW,SAACC,GACpB1C,EAAkBK,IAASqC,KAAKA,KAgBxBC,WAAY/B,EACZb,cAAeA,MAM3B"}
1
+ {"version":3,"file":"YearPicker.js","sources":["../../../../../src/components/DatePicker/YearPicker/YearPicker.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport moment from \"moment\";\nimport { CSSTransition } from \"react-transition-group\";\nimport classnames from \"classnames\";\nimport { YEAR_FORMAT } from \"../constants\";\nimport DateNavigationItemComponent from \"../DateNavigationItem/DateNavigationItem\";\nimport { Moment, Direction } from \"../types\";\nimport styles from \"./YearPicker.module.scss\";\nimport { calcNewYearsPage } from \"../date-picker-utils\";\nimport YearsList from \"./YearsList\";\n\nconst transitionOptions = {\n classNames: \"slide-down\",\n timeout: { enter: 400, exit: 400 }\n};\n\nconst PAGE_SIZE = 18;\nconst BUFFER_FROM_CURRENT_YEAR = 4;\nexport interface YearPickerProps {\n /**\n * The currently selected date.\n */\n selectedDate?: Moment;\n /**\n * Function to determine if a year should be blocked.\n */\n isYearBlocked?: (year: number) => boolean;\n /**\n * Callback fired when changing the selected year.\n */\n changeCurrentDate: (date: Moment) => void;\n /**\n * Test ID for testing purposes.\n */\n \"data-testid\"?: string;\n}\n\nconst YearPicker = ({ selectedDate, isYearBlocked, changeCurrentDate, \"data-testid\": dateTestId }: YearPickerProps) => {\n const selectedYear = selectedDate ? selectedDate.format(YEAR_FORMAT) : moment().format(YEAR_FORMAT);\n\n const [yearsToDisplay, setYearsToDisplay] = useState(\n calcNewYearsPage(parseInt(selectedYear) - BUFFER_FROM_CURRENT_YEAR, PAGE_SIZE)\n );\n\n const onYearNavigationClick = (direction: Direction) => {\n const firstYearInPage = yearsToDisplay[0];\n let newYearsArray: number[] = [];\n if (direction === Direction.prev) {\n newYearsArray = calcNewYearsPage(firstYearInPage - PAGE_SIZE, PAGE_SIZE);\n } else if (direction === Direction.next) {\n newYearsArray = calcNewYearsPage(firstYearInPage + PAGE_SIZE, PAGE_SIZE);\n }\n setYearsToDisplay(newYearsArray);\n };\n\n const onYearSelect = (year: number) => {\n changeCurrentDate(moment().year(year));\n };\n\n return (\n <div data-testid={`${dateTestId}-year-picker`} className={styles.monthYearPicker}>\n <div className={classnames(styles.navigationWrapper, styles.navigationLeft)}>\n <DateNavigationItemComponent kind={Direction.prev} onClick={() => onYearNavigationClick(Direction.prev)} />\n </div>\n <div className={classnames(styles.navigationWrapper, styles.navigationRight)}>\n <DateNavigationItemComponent kind={Direction.next} onClick={() => onYearNavigationClick(Direction.next)} />\n </div>\n <CSSTransition {...transitionOptions} in appear>\n <div className={styles.pickerOptions}>\n <YearsList\n selectedYear={selectedYear}\n onSelect={onYearSelect}\n yearsItems={yearsToDisplay}\n isYearBlocked={isYearBlocked}\n />\n </div>\n </CSSTransition>\n </div>\n );\n};\n\nexport default YearPicker;\n"],"names":["transitionOptions","classNames","timeout","enter","exit","YearPicker","_ref","selectedDate","isYearBlocked","changeCurrentDate","dateTestId","selectedYear","format","YEAR_FORMAT","moment","_useState","useState","calcNewYearsPage","parseInt","_useState2","_slicedToArray","yearsToDisplay","setYearsToDisplay","onYearNavigationClick","direction","firstYearInPage","newYearsArray","Direction","prev","next","React","createElement","concat","className","styles","monthYearPicker","classnames","navigationWrapper","navigationLeft","DateNavigationItemComponent","kind","onClick","navigationRight","CSSTransition","Object","assign","in","appear","pickerOptions","YearsList","onSelect","year","yearsItems"],"mappings":"kfAWA,IAAMA,EAAoB,CACxBC,WAAY,aACZC,QAAS,CAAEC,MAAO,IAAKC,KAAM,MAwBzBC,EAAa,SAAHC,GAAsG,IAAhGC,EAAYD,EAAZC,aAAcC,EAAaF,EAAbE,cAAeC,EAAiBH,EAAjBG,kBAAkCC,EAAUJ,EAAzB,eAC9DK,EAAeJ,EAAeA,EAAaK,OAAOC,GAAeC,IAASF,OAAOC,GAEvFE,EAA4CC,EAC1CC,EAAiBC,SAASP,GAxBG,EADf,KA0BfQ,EAAAC,EAAAL,EAAA,GAFMM,EAAcF,EAAA,GAAEG,EAAiBH,EAAA,GAIlCI,EAAwB,SAACC,GAC7B,IAAMC,EAAkBJ,EAAe,GACnCK,EAA0B,GAC1BF,IAAcG,EAAUC,KAC1BF,EAAgBT,EAAiBQ,EAhCrB,OAiCHD,IAAcG,EAAUE,OACjCH,EAAgBT,EAAiBQ,EAlCrB,QAoCdH,EAAkBI,IAOpB,OACEI,EAAkBC,cAAA,MAAA,CAAA,cAAAC,GAAAA,OAAGtB,EAAwB,gBAAEuB,UAAWC,EAAOC,iBAC/DL,EAAKC,cAAA,MAAA,CAAAE,UAAWG,EAAWF,EAAOG,kBAAmBH,EAAOI,iBAC1DR,EAACC,cAAAQ,GAA4BC,KAAMb,EAAUC,KAAMa,QAAS,WAAA,OAAMlB,EAAsBI,EAAUC,KAAK,KAEzGE,EAAKC,cAAA,MAAA,CAAAE,UAAWG,EAAWF,EAAOG,kBAAmBH,EAAOQ,kBAC1DZ,EAACC,cAAAQ,GAA4BC,KAAMb,EAAUE,KAAMY,QAAS,WAAA,OAAMlB,EAAsBI,EAAUE,KAAK,KAEzGC,EAAAC,cAACY,EAAkBC,OAAAC,OAAA,CAAA,EAAA7C,EAAmB,CAAA8C,MAAGC,QAAM,IAC7CjB,EAAAC,cAAA,MAAA,CAAKE,UAAWC,EAAOc,eACrBlB,EAACC,cAAAkB,GACCtC,aAAcA,EACduC,SAhBW,SAACC,GACpB1C,EAAkBK,IAASqC,KAAKA,KAgBxBC,WAAY/B,EACZb,cAAeA,MAM3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"YearsList.js","sources":["../../../../../src/components/DatePicker/YearPicker/YearsList.tsx"],"sourcesContent":["import React from \"react\";\nimport Button from \"../../Button/Button\";\nimport styles from \"./YearPicker.module.scss\";\n\nconst NOOP = () => {};\n\nexport interface YearsListProps {\n yearsItems: number[];\n isYearBlocked?: (year: number) => boolean;\n onSelect: (year: number) => void;\n selectedYear: string;\n}\n\nconst YearsList = ({ yearsItems, isYearBlocked, onSelect, selectedYear }: YearsListProps) => {\n return (\n <>\n {yearsItems.map(currYear => {\n const shouldBlockYear = isYearBlocked && isYearBlocked(currYear);\n const onClick = !shouldBlockYear ? () => onSelect(currYear) : NOOP;\n const kind = parseInt(selectedYear, 10) === currYear ? Button?.kinds?.PRIMARY : Button?.kinds?.TERTIARY;\n\n return (\n <Button\n className={styles.pickerOption}\n key={currYear}\n kind={kind}\n onClick={onClick}\n disabled={shouldBlockYear}\n marginLeft\n marginRight\n >\n {currYear.toString()}\n </Button>\n );\n })}\n </>\n );\n};\n\nexport default YearsList;\n"],"names":["NOOP","YearsList","_ref","isYearBlocked","onSelect","selectedYear","React","yearsItems","map","currYear","shouldBlockYear","onClick","kind","parseInt","_a","Button","kinds","PRIMARY","_b","TERTIARY","createElement","className","styles","pickerOption","key","disabled","marginLeft","marginRight"],"mappings":"sGAIA,IAAMA,EAAO,aASPC,EAAY,SAAHC,GAA6E,IAA3DC,EAAaD,EAAbC,cAAeC,EAAQF,EAARE,SAAUC,EAAYH,EAAZG,aACxD,OACEC,gCAF2BJ,EAAVK,WAGHC,KAAI,SAAAC,WACRC,EAAkBP,GAAiBA,EAAcM,GACjDE,EAAWD,EAA6CV,EAA3B,WAAA,OAAMI,EAASK,EAAS,EACrDG,EAAOC,SAASR,EAAc,MAAQI,EAA0B,QAAfK,EAAAC,aAAM,EAANA,EAAQC,aAAO,IAAAF,OAAA,EAAAA,EAAAG,QAAuB,QAAbC,EAAAH,eAAAA,EAAQC,aAAK,IAAAE,OAAA,EAAAA,EAAEC,SAE/F,OACEb,EAACc,cAAAL,EACC,CAAAM,UAAWC,EAAOC,aAClBC,IAAKf,EACLG,KAAMA,EACND,QAASA,EACTc,SAAUf,EACVgB,YAAU,EACVC,aAAW,GAEVlB,KAGN,IAGP"}
1
+ {"version":3,"file":"YearsList.js","sources":["../../../../../src/components/DatePicker/YearPicker/YearsList.tsx"],"sourcesContent":["import React from \"react\";\nimport Button from \"../../Button/Button\";\nimport styles from \"./YearPicker.module.scss\";\n\nconst NOOP = () => {};\n\nexport interface YearsListProps {\n /**\n * The list of years to display.\n */\n yearsItems: number[];\n /**\n * Function to determine if a year should be blocked.\n */\n isYearBlocked?: (year: number) => boolean;\n /**\n * Callback fired when a year is selected.\n */\n onSelect: (year: number) => void;\n /**\n * The currently selected year.\n */\n selectedYear: string;\n}\n\nconst YearsList = ({ yearsItems, isYearBlocked, onSelect, selectedYear }: YearsListProps) => {\n return (\n <>\n {yearsItems.map(currYear => {\n const shouldBlockYear = isYearBlocked && isYearBlocked(currYear);\n const onClick = !shouldBlockYear ? () => onSelect(currYear) : NOOP;\n const kind = parseInt(selectedYear, 10) === currYear ? Button?.kinds?.PRIMARY : Button?.kinds?.TERTIARY;\n\n return (\n <Button\n className={styles.pickerOption}\n key={currYear}\n kind={kind}\n onClick={onClick}\n disabled={shouldBlockYear}\n marginLeft\n marginRight\n >\n {currYear.toString()}\n </Button>\n );\n })}\n </>\n );\n};\n\nexport default YearsList;\n"],"names":["NOOP","YearsList","_ref","isYearBlocked","onSelect","selectedYear","React","yearsItems","map","currYear","shouldBlockYear","onClick","kind","parseInt","_a","Button","kinds","PRIMARY","_b","TERTIARY","createElement","className","styles","pickerOption","key","disabled","marginLeft","marginRight"],"mappings":"sGAIA,IAAMA,EAAO,aAqBPC,EAAY,SAAHC,GAA6E,IAA3DC,EAAaD,EAAbC,cAAeC,EAAQF,EAARE,SAAUC,EAAYH,EAAZG,aACxD,OACEC,gCAF2BJ,EAAVK,WAGHC,KAAI,SAAAC,WACRC,EAAkBP,GAAiBA,EAAcM,GACjDE,EAAWD,EAA6CV,EAA3B,WAAA,OAAMI,EAASK,EAAS,EACrDG,EAAOC,SAASR,EAAc,MAAQI,EAA0B,QAAfK,EAAAC,aAAM,EAANA,EAAQC,aAAO,IAAAF,OAAA,EAAAA,EAAAG,QAAuB,QAAbC,EAAAH,eAAAA,EAAQC,aAAK,IAAAE,OAAA,EAAAA,EAAEC,SAE/F,OACEb,EAACc,cAAAL,EACC,CAAAM,UAAWC,EAAOC,aAClBC,IAAKf,EACLG,KAAMA,EACND,QAASA,EACTc,SAAUf,EACVgB,YAAU,EACVC,aAAW,GAEVlB,KAGN,IAGP"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../src/components/DatePicker/types.ts"],"sourcesContent":["import moment from \"moment\";\n\nexport type Moment = moment.Moment;\n\nexport enum FocusInput {\n startDate = \"startDate\",\n endDate = \"endDate\"\n}\n\nexport enum Direction {\n next = \"next\",\n prev = \"prev\"\n}\n\nexport interface RangeDate {\n startDate: Moment | null;\n endDate: Moment | null;\n}\n"],"names":["FocusInput","Direction"],"mappings":"IAIYA,EAKAC,GALZ,SAAYD,GACVA,EAAA,UAAA,YACAA,EAAA,QAAA,SACD,CAHD,CAAYA,IAAAA,EAGX,CAAA,IAED,SAAYC,GACVA,EAAA,KAAA,OACAA,EAAA,KAAA,MACD,CAHD,CAAYA,IAAAA,EAGX,CAAA"}
1
+ {"version":3,"file":"types.js","sources":["../../../../src/components/DatePicker/types.ts"],"sourcesContent":["import moment from \"moment\";\n\nexport type Moment = moment.Moment;\n\nexport enum FocusInput {\n startDate = \"startDate\",\n endDate = \"endDate\"\n}\n\nexport enum Direction {\n next = \"next\",\n prev = \"prev\"\n}\n\nexport interface RangeDate {\n /**\n * The start date of the range.\n */\n startDate: Moment | null;\n /**\n * The end date of the range.\n */\n endDate: Moment | null;\n}\n"],"names":["FocusInput","Direction"],"mappings":"IAIYA,EAKAC,GALZ,SAAYD,GACVA,EAAA,UAAA,YACAA,EAAA,QAAA,SACD,CAHD,CAAYA,IAAAA,EAGX,CAAA,IAED,SAAYC,GACVA,EAAA,KAAA,OACAA,EAAA,KAAA,MACD,CAHD,CAAYA,IAAAA,EAGX,CAAA"}