@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":"ColorPickerContent.js","sources":["../../../../../../../src/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.tsx"],"sourcesContent":["import { difference as _difference, intersection as _intersection } from \"lodash-es\";\nimport React, { forwardRef, useCallback, useMemo, useRef } from \"react\";\nimport { BaseSizes } from \"../../../../constants\";\nimport { ColorStyle as ColorStyleEnum, CONTENT_COLORS_VALUES, contentColors } from \"../../../../utils/colors-vars-map\";\nimport { NoColor } from \"@vibe/icons\";\nimport { ColorShapes as ColorShapesEnum, DEFAULT_NUMBER_OF_COLORS_IN_LINE } from \"../../ColorPickerConstants\";\nimport { ColorShapes, ColorPickerSizes, ColorPickerValue, ColorPickerArrayValueOnly } from \"../../ColorPicker.types\";\nimport { calculateColorPickerWidth } from \"../../services/ColorPickerStyleService\";\nimport {\n GridKeyboardNavigationContext,\n useGridKeyboardNavigationContext\n} from \"../../../GridKeyboardNavigationContext/GridKeyboardNavigationContext\";\nimport { ColorPickerClearButton } from \"./ColorPickerClearButton\";\nimport { ColorPickerColorsGrid } from \"./ColorPickerColorsGrid\";\nimport { VibeComponentProps, VibeComponent, SubIcon, withStaticProps } from \"../../../../types\";\nimport useMergeRef from \"../../../../hooks/useMergeRef\";\nimport { ColorStyle } from \"../../../../types/Colors\";\n\nexport interface ColorPickerContentProps extends VibeComponentProps {\n value: ColorPickerValue;\n onValueChange: (value: ColorPickerArrayValueOnly) => void;\n colorsList: ColorPickerArrayValueOnly;\n ColorIndicatorIcon?: SubIcon;\n SelectedIndicatorIcon?: SubIcon;\n NoColorIcon?: SubIcon;\n colorStyle?: ColorStyle;\n colorSize?: ColorPickerSizes;\n colorShape?: ColorShapes;\n tooltipContentByColor?: Partial<Record<CONTENT_COLORS_VALUES, string>>;\n noColorText?: string;\n shouldRenderIndicatorWithoutBackground?: boolean;\n isBlackListMode?: boolean;\n numberOfColorsInLine?: number;\n focusOnMount?: boolean;\n isMultiselect?: boolean;\n /**\n * Used to force the component render the colorList prop as is. Usually, this flag should not be used. It's intended only for edge cases.\n * Usually, only \"monday colors\" will be rendered (unless blacklist mode is used). This flag will override this behavior.\n */\n forceUseRawColorList?: boolean;\n /**\n * Used to enable color name tooltip on each color in the component.\n * When \"tooltipContentByColor\" is supplied, it will override the color name tooltip.\n */\n showColorNameTooltip?: boolean;\n}\n\nconst ColorPickerContent: VibeComponent<ColorPickerContentProps, HTMLDivElement> & {\n sizes?: typeof BaseSizes;\n colorStyles?: typeof ColorStyleEnum;\n colorSizes?: typeof BaseSizes;\n colorShapes?: typeof ColorShapesEnum;\n} = forwardRef(\n (\n {\n className,\n onValueChange,\n value,\n noColorText,\n colorStyle = \"regular\",\n ColorIndicatorIcon,\n SelectedIndicatorIcon,\n shouldRenderIndicatorWithoutBackground,\n NoColorIcon = NoColor,\n isBlackListMode = true,\n colorsList,\n isMultiselect,\n colorSize = BaseSizes.MEDIUM,\n numberOfColorsInLine = DEFAULT_NUMBER_OF_COLORS_IN_LINE,\n tooltipContentByColor = {},\n focusOnMount,\n colorShape = \"square\",\n forceUseRawColorList,\n showColorNameTooltip,\n id,\n \"data-testid\": dataTestId\n }: ColorPickerContentProps,\n ref\n ) => {\n const gridRef = useRef(null);\n const mergedRef = useMergeRef(ref, gridRef);\n const colorsRef = useRef(null);\n const buttonRef = useRef(null);\n\n const onClearButton = useCallback(() => {\n onValueChange(null);\n }, [onValueChange]);\n\n const colorsToRender = useMemo(() => {\n if (forceUseRawColorList) {\n return colorsList;\n }\n return isBlackListMode ? _difference(contentColors, colorsList) : _intersection(contentColors, colorsList);\n }, [forceUseRawColorList, isBlackListMode, colorsList]);\n\n const onColorClicked = useCallback(\n (color: CONTENT_COLORS_VALUES) => {\n if (!isMultiselect) {\n onValueChange([color]);\n return;\n }\n const colors = [...value];\n if (colors.includes(color)) {\n const indexInSelected = colors.indexOf(color);\n if (indexInSelected > -1) {\n colors.splice(indexInSelected, 1);\n }\n } else {\n colors.push(color);\n }\n onValueChange(colors);\n },\n [isMultiselect, onValueChange, value]\n );\n\n const positions = useMemo(() => [{ topElement: colorsRef, bottomElement: buttonRef }], []);\n const keyboardContext = useGridKeyboardNavigationContext(positions, gridRef);\n const width = calculateColorPickerWidth(colorSize as BaseSizes, numberOfColorsInLine);\n\n return (\n <div className={className} style={{ width }} ref={mergedRef} tabIndex={-1}>\n <GridKeyboardNavigationContext.Provider value={keyboardContext}>\n <ColorPickerColorsGrid\n ref={colorsRef}\n onColorClicked={onColorClicked}\n colorsToRender={colorsToRender}\n numberOfColorsInLine={numberOfColorsInLine}\n focusOnMount={focusOnMount}\n value={value}\n colorStyle={colorStyle}\n ColorIndicatorIcon={ColorIndicatorIcon}\n shouldRenderIndicatorWithoutBackground={shouldRenderIndicatorWithoutBackground}\n SelectedIndicatorIcon={SelectedIndicatorIcon}\n colorSize={colorSize}\n tooltipContentByColor={tooltipContentByColor}\n colorShape={colorShape}\n showColorNameTooltip={showColorNameTooltip}\n id={id}\n data-testid={dataTestId}\n />\n {noColorText && (\n <ColorPickerClearButton Icon={NoColorIcon} onClick={onClearButton} text={noColorText} ref={buttonRef} />\n )}\n </GridKeyboardNavigationContext.Provider>\n </div>\n );\n }\n);\n\nexport default withStaticProps(ColorPickerContent, {\n sizes: BaseSizes,\n colorStyles: ColorStyleEnum,\n colorSizes: BaseSizes,\n colorShapes: ColorShapesEnum\n});\n"],"names":["withStaticProps","forwardRef","_ref","ref","className","onValueChange","value","noColorText","_ref$colorStyle","colorStyle","ColorIndicatorIcon","SelectedIndicatorIcon","shouldRenderIndicatorWithoutBackground","_ref$NoColorIcon","NoColorIcon","NoColor","_ref$isBlackListMode","isBlackListMode","colorsList","isMultiselect","_ref$colorSize","colorSize","BaseSizes","MEDIUM","_ref$numberOfColorsIn","numberOfColorsInLine","DEFAULT_NUMBER_OF_COLORS_IN_LINE","_ref$tooltipContentBy","tooltipContentByColor","focusOnMount","_ref$colorShape","colorShape","forceUseRawColorList","showColorNameTooltip","id","dataTestId","gridRef","useRef","mergedRef","useMergeRef","colorsRef","buttonRef","onClearButton","useCallback","colorsToRender","useMemo","_difference","contentColors","_intersection","onColorClicked","color","colors","_toConsumableArray","includes","indexInSelected","indexOf","splice","push","positions","topElement","bottomElement","keyboardContext","useGridKeyboardNavigationContext","width","calculateColorPickerWidth","React","createElement","style","tabIndex","GridKeyboardNavigationContext","Provider","ColorPickerColorsGrid","ColorPickerClearButton","Icon","onClick","text","sizes","colorStyles","ColorStyleEnum","colorSizes","colorShapes","ColorShapesEnum"],"mappings":"igCA+CA,IAsGeA,EAAAA,EAjGXC,GACF,SAAAC,EAwBEC,GACE,IAvBAC,EAASF,EAATE,UACAC,EAAaH,EAAbG,cACAC,EAAKJ,EAALI,MACAC,EAAWL,EAAXK,YAAWC,EAAAN,EACXO,WAAAA,OAAa,IAAHD,EAAG,UAASA,EACtBE,EAAkBR,EAAlBQ,mBACAC,EAAqBT,EAArBS,sBACAC,EAAsCV,EAAtCU,uCAAsCC,EAAAX,EACtCY,YAAAA,OAAcC,IAAHF,EAAGE,EAAOF,EAAAG,EAAAd,EACrBe,gBAAAA,OAAkB,IAAHD,GAAOA,EACtBE,EAAUhB,EAAVgB,WACAC,EAAajB,EAAbiB,cAAaC,EAAAlB,EACbmB,UAAAA,OAAS,IAAAD,EAAGE,EAAUC,OAAMH,EAAAI,EAAAtB,EAC5BuB,qBAAAA,OAAuBC,IAAHF,EAAGE,EAAgCF,EAAAG,EAAAzB,EACvD0B,sBAAAA,OAAqB,IAAAD,EAAG,CAAE,EAAAA,EAC1BE,EAAY3B,EAAZ2B,aAAYC,EAAA5B,EACZ6B,WAAAA,OAAa,IAAHD,EAAG,SAAQA,EACrBE,EAAoB9B,EAApB8B,qBACAC,EAAoB/B,EAApB+B,qBACAC,EAAEhC,EAAFgC,GACeC,EAAUjC,EAAzB,eAIIkC,EAAUC,EAAO,MACjBC,EAAYC,EAAYpC,EAAKiC,GAC7BI,EAAYH,EAAO,MACnBI,EAAYJ,EAAO,MAEnBK,EAAgBC,GAAY,WAChCtC,EAAc,KAChB,GAAG,CAACA,IAEEuC,EAAiBC,GAAQ,WAC7B,OAAIb,EACKd,EAEFD,EAAkB6B,EAAYC,EAAe7B,GAAc8B,EAAcD,EAAe7B,EAChG,GAAE,CAACc,EAAsBf,EAAiBC,IAErC+B,EAAiBN,GACrB,SAACO,GACC,GAAK/B,EAAL,CAIA,IAAMgC,EAAMC,EAAO9C,GACnB,GAAI6C,EAAOE,SAASH,GAAQ,CAC1B,IAAMI,EAAkBH,EAAOI,QAAQL,GACnCI,GAAmB,GACrBH,EAAOK,OAAOF,EAAiB,EAElC,MACCH,EAAOM,KAAKP,GAEd7C,EAAc8C,EAVb,MAFC9C,EAAc,CAAC6C,GAalB,GACD,CAAC/B,EAAed,EAAeC,IAG3BoD,GAAYb,GAAQ,WAAA,MAAM,CAAC,CAAEc,WAAYnB,EAAWoB,cAAenB,GAAY,GAAE,IACjFoB,GAAkBC,EAAiCJ,GAAWtB,GAC9D2B,GAAQC,EAA0B3C,EAAwBI,GAEhE,OACEwC,EAAKC,cAAA,MAAA,CAAA9D,UAAWA,EAAW+D,MAAO,CAAEJ,MAAAA,IAAS5D,IAAKmC,EAAW8B,UAAW,GACtEH,EAAAC,cAACG,EAA8BC,SAAS,CAAAhE,MAAOuD,IAC7CI,EAAAC,cAACK,EAAqB,CACpBpE,IAAKqC,EACLS,eAAgBA,EAChBL,eAAgBA,EAChBnB,qBAAsBA,EACtBI,aAAcA,EACdvB,MAAOA,EACPG,WAAYA,EACZC,mBAAoBA,EACpBE,uCAAwCA,EACxCD,sBAAuBA,EACvBU,UAAWA,EACXO,sBAAuBA,EACvBG,WAAYA,EACZE,qBAAsBA,EACtBC,GAAIA,EAAE,cACOC,IAEd5B,GACC0D,EAAAC,cAACM,EAAsB,CAACC,KAAM3D,EAAa4D,QAAShC,EAAeiC,KAAMpE,EAAaJ,IAAKsC,KAKrG,IAGiD,CACjDmC,MAAOtD,EACPuD,YAAaC,EACbC,WAAYzD,EACZ0D,YAAaC"}
1
+ {"version":3,"file":"ColorPickerContent.js","sources":["../../../../../../../src/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.tsx"],"sourcesContent":["import { difference as _difference, intersection as _intersection } from \"lodash-es\";\nimport React, { forwardRef, useCallback, useMemo, useRef } from \"react\";\nimport { BaseSizes } from \"../../../../constants\";\nimport { ColorStyle as ColorStyleEnum, CONTENT_COLORS_VALUES, contentColors } from \"../../../../utils/colors-vars-map\";\nimport { NoColor } from \"@vibe/icons\";\nimport { ColorShapes as ColorShapesEnum, DEFAULT_NUMBER_OF_COLORS_IN_LINE } from \"../../ColorPickerConstants\";\nimport { ColorShapes, ColorPickerSizes, ColorPickerValue, ColorPickerArrayValueOnly } from \"../../ColorPicker.types\";\nimport { calculateColorPickerWidth } from \"../../services/ColorPickerStyleService\";\nimport {\n GridKeyboardNavigationContext,\n useGridKeyboardNavigationContext\n} from \"../../../GridKeyboardNavigationContext/GridKeyboardNavigationContext\";\nimport { ColorPickerClearButton } from \"./ColorPickerClearButton\";\nimport { ColorPickerColorsGrid } from \"./ColorPickerColorsGrid\";\nimport { VibeComponentProps, VibeComponent, SubIcon, withStaticProps } from \"../../../../types\";\nimport useMergeRef from \"../../../../hooks/useMergeRef\";\nimport { ColorStyle } from \"../../../../types/Colors\";\n\nexport interface ColorPickerContentProps extends VibeComponentProps {\n /**\n * The selected color(s).\n */\n value: ColorPickerValue;\n /**\n * Callback fired when the selected color(s) change.\n */\n onValueChange: (value: ColorPickerArrayValueOnly) => void;\n /**\n * The list of colors available for selection.\n */\n colorsList: ColorPickerArrayValueOnly;\n /**\n * Icon displayed as an indicator inside the color.\n */\n ColorIndicatorIcon?: SubIcon;\n /**\n * Icon displayed when a color is selected.\n */\n SelectedIndicatorIcon?: SubIcon;\n /**\n * Icon used for clearing the color selection.\n */\n NoColorIcon?: SubIcon;\n /**\n * The style applied to the colors.\n */\n colorStyle?: ColorStyle;\n /**\n * The size of the color items.\n */\n colorSize?: ColorPickerSizes;\n /**\n * The shape of the color items.\n */\n colorShape?: ColorShapes;\n /**\n * Custom tooltip content for specific colors.\n */\n tooltipContentByColor?: Partial<Record<CONTENT_COLORS_VALUES, string>>;\n /**\n * Text displayed for the \"no color\" option.\n */\n noColorText?: string;\n /**\n * If true, renders the color indicator without a background.\n */\n shouldRenderIndicatorWithoutBackground?: boolean;\n /**\n * If true, treats the color list as a blacklist rather than a whitelist.\n */\n isBlackListMode?: boolean;\n /**\n * The number of colors displayed per row.\n */\n numberOfColorsInLine?: number;\n /**\n * If true, the first color is focused when the component mounts.\n */\n focusOnMount?: boolean;\n /**\n * If true, allows selecting multiple colors.\n */\n isMultiselect?: boolean;\n /**\n * Used to force the component render the colorList prop as is. Usually, this flag should not be used. It's intended only for edge cases.\n * Usually, only \"monday colors\" will be rendered (unless blacklist mode is used). This flag will override this behavior.\n */\n forceUseRawColorList?: boolean;\n /**\n * Used to enable color name tooltip on each color in the component.\n * When \"tooltipContentByColor\" is supplied, it will override the color name tooltip.\n */\n showColorNameTooltip?: boolean;\n}\n\nconst ColorPickerContent: VibeComponent<ColorPickerContentProps, HTMLDivElement> & {\n sizes?: typeof BaseSizes;\n colorStyles?: typeof ColorStyleEnum;\n colorSizes?: typeof BaseSizes;\n colorShapes?: typeof ColorShapesEnum;\n} = forwardRef(\n (\n {\n className,\n onValueChange,\n value,\n noColorText,\n colorStyle = \"regular\",\n ColorIndicatorIcon,\n SelectedIndicatorIcon,\n shouldRenderIndicatorWithoutBackground,\n NoColorIcon = NoColor,\n isBlackListMode = true,\n colorsList,\n isMultiselect,\n colorSize = BaseSizes.MEDIUM,\n numberOfColorsInLine = DEFAULT_NUMBER_OF_COLORS_IN_LINE,\n tooltipContentByColor = {},\n focusOnMount,\n colorShape = \"square\",\n forceUseRawColorList,\n showColorNameTooltip,\n id,\n \"data-testid\": dataTestId\n }: ColorPickerContentProps,\n ref\n ) => {\n const gridRef = useRef(null);\n const mergedRef = useMergeRef(ref, gridRef);\n const colorsRef = useRef(null);\n const buttonRef = useRef(null);\n\n const onClearButton = useCallback(() => {\n onValueChange(null);\n }, [onValueChange]);\n\n const colorsToRender = useMemo(() => {\n if (forceUseRawColorList) {\n return colorsList;\n }\n return isBlackListMode ? _difference(contentColors, colorsList) : _intersection(contentColors, colorsList);\n }, [forceUseRawColorList, isBlackListMode, colorsList]);\n\n const onColorClicked = useCallback(\n (color: CONTENT_COLORS_VALUES) => {\n if (!isMultiselect) {\n onValueChange([color]);\n return;\n }\n const colors = [...value];\n if (colors.includes(color)) {\n const indexInSelected = colors.indexOf(color);\n if (indexInSelected > -1) {\n colors.splice(indexInSelected, 1);\n }\n } else {\n colors.push(color);\n }\n onValueChange(colors);\n },\n [isMultiselect, onValueChange, value]\n );\n\n const positions = useMemo(() => [{ topElement: colorsRef, bottomElement: buttonRef }], []);\n const keyboardContext = useGridKeyboardNavigationContext(positions, gridRef);\n const width = calculateColorPickerWidth(colorSize as BaseSizes, numberOfColorsInLine);\n\n return (\n <div className={className} style={{ width }} ref={mergedRef} tabIndex={-1}>\n <GridKeyboardNavigationContext.Provider value={keyboardContext}>\n <ColorPickerColorsGrid\n ref={colorsRef}\n onColorClicked={onColorClicked}\n colorsToRender={colorsToRender}\n numberOfColorsInLine={numberOfColorsInLine}\n focusOnMount={focusOnMount}\n value={value}\n colorStyle={colorStyle}\n ColorIndicatorIcon={ColorIndicatorIcon}\n shouldRenderIndicatorWithoutBackground={shouldRenderIndicatorWithoutBackground}\n SelectedIndicatorIcon={SelectedIndicatorIcon}\n colorSize={colorSize}\n tooltipContentByColor={tooltipContentByColor}\n colorShape={colorShape}\n showColorNameTooltip={showColorNameTooltip}\n id={id}\n data-testid={dataTestId}\n />\n {noColorText && (\n <ColorPickerClearButton Icon={NoColorIcon} onClick={onClearButton} text={noColorText} ref={buttonRef} />\n )}\n </GridKeyboardNavigationContext.Provider>\n </div>\n );\n }\n);\n\nexport default withStaticProps(ColorPickerContent, {\n sizes: BaseSizes,\n colorStyles: ColorStyleEnum,\n colorSizes: BaseSizes,\n colorShapes: ColorShapesEnum\n});\n"],"names":["withStaticProps","forwardRef","_ref","ref","className","onValueChange","value","noColorText","_ref$colorStyle","colorStyle","ColorIndicatorIcon","SelectedIndicatorIcon","shouldRenderIndicatorWithoutBackground","_ref$NoColorIcon","NoColorIcon","NoColor","_ref$isBlackListMode","isBlackListMode","colorsList","isMultiselect","_ref$colorSize","colorSize","BaseSizes","MEDIUM","_ref$numberOfColorsIn","numberOfColorsInLine","DEFAULT_NUMBER_OF_COLORS_IN_LINE","_ref$tooltipContentBy","tooltipContentByColor","focusOnMount","_ref$colorShape","colorShape","forceUseRawColorList","showColorNameTooltip","id","dataTestId","gridRef","useRef","mergedRef","useMergeRef","colorsRef","buttonRef","onClearButton","useCallback","colorsToRender","useMemo","_difference","contentColors","_intersection","onColorClicked","color","colors","_toConsumableArray","includes","indexInSelected","indexOf","splice","push","positions","topElement","bottomElement","keyboardContext","useGridKeyboardNavigationContext","width","calculateColorPickerWidth","React","createElement","style","tabIndex","GridKeyboardNavigationContext","Provider","ColorPickerColorsGrid","ColorPickerClearButton","Icon","onClick","text","sizes","colorStyles","ColorStyleEnum","colorSizes","colorShapes","ColorShapesEnum"],"mappings":"igCA+FA,IAsGeA,EAAAA,EAjGXC,GACF,SAAAC,EAwBEC,GACE,IAvBAC,EAASF,EAATE,UACAC,EAAaH,EAAbG,cACAC,EAAKJ,EAALI,MACAC,EAAWL,EAAXK,YAAWC,EAAAN,EACXO,WAAAA,OAAa,IAAHD,EAAG,UAASA,EACtBE,EAAkBR,EAAlBQ,mBACAC,EAAqBT,EAArBS,sBACAC,EAAsCV,EAAtCU,uCAAsCC,EAAAX,EACtCY,YAAAA,OAAcC,IAAHF,EAAGE,EAAOF,EAAAG,EAAAd,EACrBe,gBAAAA,OAAkB,IAAHD,GAAOA,EACtBE,EAAUhB,EAAVgB,WACAC,EAAajB,EAAbiB,cAAaC,EAAAlB,EACbmB,UAAAA,OAAS,IAAAD,EAAGE,EAAUC,OAAMH,EAAAI,EAAAtB,EAC5BuB,qBAAAA,OAAuBC,IAAHF,EAAGE,EAAgCF,EAAAG,EAAAzB,EACvD0B,sBAAAA,OAAqB,IAAAD,EAAG,CAAE,EAAAA,EAC1BE,EAAY3B,EAAZ2B,aAAYC,EAAA5B,EACZ6B,WAAAA,OAAa,IAAHD,EAAG,SAAQA,EACrBE,EAAoB9B,EAApB8B,qBACAC,EAAoB/B,EAApB+B,qBACAC,EAAEhC,EAAFgC,GACeC,EAAUjC,EAAzB,eAIIkC,EAAUC,EAAO,MACjBC,EAAYC,EAAYpC,EAAKiC,GAC7BI,EAAYH,EAAO,MACnBI,EAAYJ,EAAO,MAEnBK,EAAgBC,GAAY,WAChCtC,EAAc,KAChB,GAAG,CAACA,IAEEuC,EAAiBC,GAAQ,WAC7B,OAAIb,EACKd,EAEFD,EAAkB6B,EAAYC,EAAe7B,GAAc8B,EAAcD,EAAe7B,EAChG,GAAE,CAACc,EAAsBf,EAAiBC,IAErC+B,EAAiBN,GACrB,SAACO,GACC,GAAK/B,EAAL,CAIA,IAAMgC,EAAMC,EAAO9C,GACnB,GAAI6C,EAAOE,SAASH,GAAQ,CAC1B,IAAMI,EAAkBH,EAAOI,QAAQL,GACnCI,GAAmB,GACrBH,EAAOK,OAAOF,EAAiB,EAElC,MACCH,EAAOM,KAAKP,GAEd7C,EAAc8C,EAVb,MAFC9C,EAAc,CAAC6C,GAalB,GACD,CAAC/B,EAAed,EAAeC,IAG3BoD,GAAYb,GAAQ,WAAA,MAAM,CAAC,CAAEc,WAAYnB,EAAWoB,cAAenB,GAAY,GAAE,IACjFoB,GAAkBC,EAAiCJ,GAAWtB,GAC9D2B,GAAQC,EAA0B3C,EAAwBI,GAEhE,OACEwC,EAAKC,cAAA,MAAA,CAAA9D,UAAWA,EAAW+D,MAAO,CAAEJ,MAAAA,IAAS5D,IAAKmC,EAAW8B,UAAW,GACtEH,EAAAC,cAACG,EAA8BC,SAAS,CAAAhE,MAAOuD,IAC7CI,EAAAC,cAACK,EAAqB,CACpBpE,IAAKqC,EACLS,eAAgBA,EAChBL,eAAgBA,EAChBnB,qBAAsBA,EACtBI,aAAcA,EACdvB,MAAOA,EACPG,WAAYA,EACZC,mBAAoBA,EACpBE,uCAAwCA,EACxCD,sBAAuBA,EACvBU,UAAWA,EACXO,sBAAuBA,EACvBG,WAAYA,EACZE,qBAAsBA,EACtBC,GAAIA,EAAE,cACOC,IAEd5B,GACC0D,EAAAC,cAACM,EAAsB,CAACC,KAAM3D,EAAa4D,QAAShC,EAAeiC,KAAMpE,EAAaJ,IAAKsC,KAKrG,IAGiD,CACjDmC,MAAOtD,EACPuD,YAAaC,EACbC,WAAYzD,EACZ0D,YAAaC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColorPickerItemComponent.js","sources":["../../../../../../../src/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.tsx"],"sourcesContent":["import { camelCase } from \"lodash-es\";\nimport { getStyle } from \"../../../../helpers/typesciptCssModulesHelper\";\nimport cx from \"classnames\";\nimport React, { useRef, useCallback, useMemo, forwardRef, useEffect } from \"react\";\nimport { contentColors } from \"../../../../utils/colors-vars-map\";\nimport ColorUtils from \"../../../../utils/colors-utils\";\nimport Icon from \"../../../Icon/Icon\";\nimport Tooltip from \"../../../Tooltip/Tooltip\";\nimport Clickable from \"../../../Clickable/Clickable\";\nimport { ColorPickerValueOnly } from \"../../ColorPicker.types\";\nimport { ColorShapes, ColorPickerSizes } from \"../../ColorPicker.types\";\nimport { getTestId } from \"../../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../../../tests/constants\";\nimport { SubIcon, VibeComponent, VibeComponentProps, ElementContent, ColorStyle } from \"../../../../types\";\nimport styles from \"./ColorPickerItemComponent.module.scss\";\n\nexport interface ColorPickerItemComponentProps extends VibeComponentProps {\n color: ColorPickerValueOnly;\n onColorClicked: (color: ColorPickerValueOnly) => void;\n colorStyle: ColorStyle;\n shouldRenderIndicatorWithoutBackground: boolean;\n ColorIndicatorIcon: SubIcon;\n SelectedIndicatorIcon: SubIcon;\n isSelected: boolean;\n colorSize: ColorPickerSizes;\n tooltipContent: ElementContent;\n isActive: boolean;\n colorShape: ColorShapes;\n [\"data-testid\"]?: string;\n}\n\nconst ColorPickerItemComponent: VibeComponent<ColorPickerItemComponentProps> = forwardRef(\n (\n {\n color,\n onColorClicked,\n colorStyle = \"regular\",\n shouldRenderIndicatorWithoutBackground,\n ColorIndicatorIcon,\n SelectedIndicatorIcon = ColorIndicatorIcon,\n isSelected,\n colorSize,\n tooltipContent,\n isActive,\n colorShape,\n \"data-testid\": dataTestId\n }: ColorPickerItemComponentProps,\n _ref\n ) => {\n const isMondayColor = useMemo(() => (contentColors as readonly string[]).includes(color), [color]); // casting to any since color can be one of the system content colors but can also be a custom one\n const colorAsStyle = isMondayColor ? ColorUtils.getMondayColorAsStyle(color, colorStyle) : color;\n const itemRef = useRef<HTMLDivElement>(null);\n\n const onClick = useCallback(() => onColorClicked(color), [onColorClicked, color]);\n\n useEffect(() => {\n if (!itemRef?.current || shouldRenderIndicatorWithoutBackground || !isMondayColor) return;\n const item = itemRef.current;\n const setHoverColor = (e: MouseEvent) => {\n if (colorStyle === \"selected\") {\n (e.target as HTMLDivElement).style.background = ColorUtils.getMondayColorAsStyle(color, \"regular\");\n } else {\n (e.target as HTMLDivElement).style.background = ColorUtils.getMondayColorAsStyle(color, \"hover\");\n }\n };\n const restoreToOriginalColor = (e: MouseEvent) => {\n (e.target as HTMLDivElement).style.background = colorAsStyle;\n };\n item.addEventListener(\"mouseenter\", setHoverColor, false);\n item.addEventListener(\"mouseleave\", restoreToOriginalColor, false);\n\n return () => {\n item.removeEventListener(\"mouseenter\", setHoverColor, false);\n item.removeEventListener(\"mouseleave\", restoreToOriginalColor, false);\n };\n }, [color, colorAsStyle, colorStyle, isMondayColor, itemRef, shouldRenderIndicatorWithoutBackground]);\n\n const shouldRenderIcon = isSelected || ColorIndicatorIcon;\n const colorIndicatorWrapperStyle = shouldRenderIndicatorWithoutBackground ? { color: colorAsStyle } : {};\n return (\n <Tooltip content={tooltipContent}>\n <li\n className={cx(styles.itemWrapper, {\n [styles.selectedColor]: isSelected,\n [styles.active]: isActive,\n [styles.circle]: colorShape === \"circle\"\n })}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.COLOR_PICKER_ITEM, color)}\n >\n <div className={cx(styles.feedbackIndicator)} />\n <Clickable\n ref={itemRef}\n ariaLabel={color}\n className={cx(styles.colorItem, getStyle(styles, camelCase(\"color-item-size-\" + colorSize)), {\n [styles.colorItemTextMode]: shouldRenderIndicatorWithoutBackground\n })}\n style={{ background: shouldRenderIndicatorWithoutBackground ? \"transparent\" : colorAsStyle }}\n onClick={onClick}\n tabIndex=\"-1\"\n onMouseDown={e => e.preventDefault()} // this is for quill to not lose the selection\n >\n <div className={cx(styles.colorIndicatorWrapper)} style={colorIndicatorWrapperStyle}>\n {shouldRenderIcon && (\n <Icon\n icon={isSelected ? SelectedIndicatorIcon : ColorIndicatorIcon}\n className={cx({\n [styles.colorIconWhite]: !shouldRenderIndicatorWithoutBackground\n })}\n ignoreFocusStyle\n />\n )}\n </div>\n </Clickable>\n </li>\n </Tooltip>\n );\n }\n);\n\nexport default ColorPickerItemComponent;\n"],"names":["ColorPickerItemComponent","forwardRef","_ref2","_ref","color","onColorClicked","_ref2$colorStyle","colorStyle","shouldRenderIndicatorWithoutBackground","ColorIndicatorIcon","_ref2$SelectedIndicat","SelectedIndicatorIcon","isSelected","colorSize","tooltipContent","isActive","colorShape","dataTestId","isMondayColor","useMemo","contentColors","includes","colorAsStyle","ColorUtils","getMondayColorAsStyle","itemRef","useRef","onClick","useCallback","useEffect","current","item","setHoverColor","e","target","style","background","restoreToOriginalColor","addEventListener","removeEventListener","shouldRenderIcon","colorIndicatorWrapperStyle","React","createElement","Tooltip","content","className","cx","styles","itemWrapper","_defineProperty","selectedColor","active","circle","getTestId","ComponentDefaultTestId","COLOR_PICKER_ITEM","feedbackIndicator","Clickable","ref","ariaLabel","colorItem","getStyle","camelCase","colorItemTextMode","tabIndex","onMouseDown","preventDefault","colorIndicatorWrapper","Icon","icon","colorIconWhite","ignoreFocusStyle"],"mappings":"gvBA+BMA,IAAAA,EAAyEC,GAC7E,SAAAC,EAeEC,GACE,IAdAC,EAAKF,EAALE,MACAC,EAAcH,EAAdG,eAAcC,EAAAJ,EACdK,WAAAA,OAAa,IAAHD,EAAG,UAASA,EACtBE,EAAsCN,EAAtCM,uCACAC,EAAkBP,EAAlBO,mBAAkBC,EAAAR,EAClBS,sBAAAA,OAAwBF,IAAHC,EAAGD,EAAkBC,EAC1CE,EAAUV,EAAVU,WACAC,EAASX,EAATW,UACAC,EAAcZ,EAAdY,eACAC,EAAQb,EAARa,SACAC,EAAUd,EAAVc,WACeC,EAAUf,EAAzB,eAIIgB,EAAgBC,GAAQ,WAAA,OAAOC,EAAoCC,SAASjB,EAAM,GAAE,CAACA,IACrFkB,EAAeJ,EAAgBK,EAAWC,sBAAsBpB,EAAOG,GAAcH,EACrFqB,EAAUC,EAAuB,MAEjCC,EAAUC,GAAY,WAAA,OAAMvB,EAAeD,EAAM,GAAE,CAACC,EAAgBD,IAE1EyB,GAAU,WACR,IAAKJ,aAAA,EAAAA,EAASK,WAAWtB,GAA2CU,EAApE,CACA,IAAMa,EAAON,EAAQK,QACfE,EAAgB,SAACC,GAElBA,EAAEC,OAA0BC,MAAMC,WAAab,EAAWC,sBAAsBpB,EADhE,aAAfG,EACsF,UAEA,UAGtF8B,EAAyB,SAACJ,GAC7BA,EAAEC,OAA0BC,MAAMC,WAAad,GAKlD,OAHAS,EAAKO,iBAAiB,aAAcN,GAAe,GACnDD,EAAKO,iBAAiB,aAAcD,GAAwB,GAErD,WACLN,EAAKQ,oBAAoB,aAAcP,GAAe,GACtDD,EAAKQ,oBAAoB,aAAcF,GAAwB,GAjBkB,CAmBrF,GAAG,CAACjC,EAAOkB,EAAcf,EAAYW,EAAeO,EAASjB,IAE7D,IAAMgC,EAAmB5B,GAAcH,EACjCgC,EAA6BjC,EAAyC,CAAEJ,MAAOkB,GAAiB,GACtG,OACEoB,EAACC,cAAAC,EAAQ,CAAAC,QAAS/B,GAChB4B,EAAAC,cAAA,KAAA,CACEG,UAAWC,EAAGC,EAAOC,YAAWC,EAAAA,EAAAA,EAAA,CAAA,EAC7BF,EAAOG,cAAgBvC,GACvBoC,EAAOI,OAASrC,GAChBiC,EAAOK,OAAwB,WAAfrC,IACjB,cACWC,GAAcqC,EAAUC,EAAuBC,kBAAmBpD,IAE/EsC,EAAKC,cAAA,MAAA,CAAAG,UAAWC,EAAGC,EAAOS,qBAC1Bf,EAAAC,cAACe,EAAS,CACRC,IAAKlC,EACLmC,UAAWxD,EACX0C,UAAWC,EAAGC,EAAOa,UAAWC,EAASd,EAAQe,EAAU,mBAAqBlD,IAAWqC,EAAA,CAAA,EACxFF,EAAOgB,kBAAoBxD,IAE9B2B,MAAO,CAAEC,WAAY5B,EAAyC,cAAgBc,GAC9EK,QAASA,EACTsC,SAAS,KACTC,YAAa,SAAAjC,GAAC,OAAIA,EAAEkC,gBAAgB,GAEpCzB,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAGC,EAAOoB,uBAAwBjC,MAAOM,GACtDD,GACCE,EAAAC,cAAC0B,EAAI,CACHC,KAAM1D,EAAaD,EAAwBF,EAC3CqC,UAAWC,EAAEG,EACVF,CAAAA,EAAAA,EAAOuB,gBAAkB/D,IAE5BgE,kBACA,OAOhB"}
1
+ {"version":3,"file":"ColorPickerItemComponent.js","sources":["../../../../../../../src/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.tsx"],"sourcesContent":["import { camelCase } from \"lodash-es\";\nimport { getStyle } from \"../../../../helpers/typesciptCssModulesHelper\";\nimport cx from \"classnames\";\nimport React, { useRef, useCallback, useMemo, forwardRef, useEffect } from \"react\";\nimport { contentColors } from \"../../../../utils/colors-vars-map\";\nimport ColorUtils from \"../../../../utils/colors-utils\";\nimport Icon from \"../../../Icon/Icon\";\nimport Tooltip from \"../../../Tooltip/Tooltip\";\nimport Clickable from \"../../../Clickable/Clickable\";\nimport { ColorPickerValueOnly } from \"../../ColorPicker.types\";\nimport { ColorShapes, ColorPickerSizes } from \"../../ColorPicker.types\";\nimport { getTestId } from \"../../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../../../tests/constants\";\nimport { SubIcon, VibeComponent, VibeComponentProps, ElementContent, ColorStyle } from \"../../../../types\";\nimport styles from \"./ColorPickerItemComponent.module.scss\";\n\nexport interface ColorPickerItemComponentProps extends VibeComponentProps {\n /**\n * The color value of the item.\n */\n color: ColorPickerValueOnly;\n /**\n * Callback fired when the color is clicked.\n */\n onColorClicked: (color: ColorPickerValueOnly) => void;\n /**\n * The style applied to the color.\n */\n colorStyle: ColorStyle;\n /**\n * If true, renders the color indicator without a background.\n */\n shouldRenderIndicatorWithoutBackground: boolean;\n /**\n * Icon displayed inside the color item.\n */\n ColorIndicatorIcon: SubIcon;\n /**\n * Icon displayed when the color is selected.\n */\n SelectedIndicatorIcon: SubIcon;\n /**\n * If true, the color is marked as selected.\n */\n isSelected: boolean;\n /**\n * The size of the color item.\n */\n colorSize: ColorPickerSizes;\n /**\n * Tooltip content for the color item.\n */\n tooltipContent: ElementContent;\n /**\n * If true, the color item is currently active.\n */\n isActive: boolean;\n /**\n * The shape of the color item.\n */\n colorShape: ColorShapes;\n}\n\nconst ColorPickerItemComponent: VibeComponent<ColorPickerItemComponentProps> = forwardRef(\n (\n {\n color,\n onColorClicked,\n colorStyle = \"regular\",\n shouldRenderIndicatorWithoutBackground,\n ColorIndicatorIcon,\n SelectedIndicatorIcon = ColorIndicatorIcon,\n isSelected,\n colorSize,\n tooltipContent,\n isActive,\n colorShape,\n \"data-testid\": dataTestId\n }: ColorPickerItemComponentProps,\n _ref\n ) => {\n const isMondayColor = useMemo(() => (contentColors as readonly string[]).includes(color), [color]); // casting to any since color can be one of the system content colors but can also be a custom one\n const colorAsStyle = isMondayColor ? ColorUtils.getMondayColorAsStyle(color, colorStyle) : color;\n const itemRef = useRef<HTMLDivElement>(null);\n\n const onClick = useCallback(() => onColorClicked(color), [onColorClicked, color]);\n\n useEffect(() => {\n if (!itemRef?.current || shouldRenderIndicatorWithoutBackground || !isMondayColor) return;\n const item = itemRef.current;\n const setHoverColor = (e: MouseEvent) => {\n if (colorStyle === \"selected\") {\n (e.target as HTMLDivElement).style.background = ColorUtils.getMondayColorAsStyle(color, \"regular\");\n } else {\n (e.target as HTMLDivElement).style.background = ColorUtils.getMondayColorAsStyle(color, \"hover\");\n }\n };\n const restoreToOriginalColor = (e: MouseEvent) => {\n (e.target as HTMLDivElement).style.background = colorAsStyle;\n };\n item.addEventListener(\"mouseenter\", setHoverColor, false);\n item.addEventListener(\"mouseleave\", restoreToOriginalColor, false);\n\n return () => {\n item.removeEventListener(\"mouseenter\", setHoverColor, false);\n item.removeEventListener(\"mouseleave\", restoreToOriginalColor, false);\n };\n }, [color, colorAsStyle, colorStyle, isMondayColor, itemRef, shouldRenderIndicatorWithoutBackground]);\n\n const shouldRenderIcon = isSelected || ColorIndicatorIcon;\n const colorIndicatorWrapperStyle = shouldRenderIndicatorWithoutBackground ? { color: colorAsStyle } : {};\n return (\n <Tooltip content={tooltipContent}>\n <li\n className={cx(styles.itemWrapper, {\n [styles.selectedColor]: isSelected,\n [styles.active]: isActive,\n [styles.circle]: colorShape === \"circle\"\n })}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.COLOR_PICKER_ITEM, color)}\n >\n <div className={cx(styles.feedbackIndicator)} />\n <Clickable\n ref={itemRef}\n ariaLabel={color}\n className={cx(styles.colorItem, getStyle(styles, camelCase(\"color-item-size-\" + colorSize)), {\n [styles.colorItemTextMode]: shouldRenderIndicatorWithoutBackground\n })}\n style={{ background: shouldRenderIndicatorWithoutBackground ? \"transparent\" : colorAsStyle }}\n onClick={onClick}\n tabIndex=\"-1\"\n onMouseDown={e => e.preventDefault()} // this is for quill to not lose the selection\n >\n <div className={cx(styles.colorIndicatorWrapper)} style={colorIndicatorWrapperStyle}>\n {shouldRenderIcon && (\n <Icon\n icon={isSelected ? SelectedIndicatorIcon : ColorIndicatorIcon}\n className={cx({\n [styles.colorIconWhite]: !shouldRenderIndicatorWithoutBackground\n })}\n ignoreFocusStyle\n />\n )}\n </div>\n </Clickable>\n </li>\n </Tooltip>\n );\n }\n);\n\nexport default ColorPickerItemComponent;\n"],"names":["ColorPickerItemComponent","forwardRef","_ref2","_ref","color","onColorClicked","_ref2$colorStyle","colorStyle","shouldRenderIndicatorWithoutBackground","ColorIndicatorIcon","_ref2$SelectedIndicat","SelectedIndicatorIcon","isSelected","colorSize","tooltipContent","isActive","colorShape","dataTestId","isMondayColor","useMemo","contentColors","includes","colorAsStyle","ColorUtils","getMondayColorAsStyle","itemRef","useRef","onClick","useCallback","useEffect","current","item","setHoverColor","e","target","style","background","restoreToOriginalColor","addEventListener","removeEventListener","shouldRenderIcon","colorIndicatorWrapperStyle","React","createElement","Tooltip","content","className","cx","styles","itemWrapper","_defineProperty","selectedColor","active","circle","getTestId","ComponentDefaultTestId","COLOR_PICKER_ITEM","feedbackIndicator","Clickable","ref","ariaLabel","colorItem","getStyle","camelCase","colorItemTextMode","tabIndex","onMouseDown","preventDefault","colorIndicatorWrapper","Icon","icon","colorIconWhite","ignoreFocusStyle"],"mappings":"gvBA+DMA,IAAAA,EAAyEC,GAC7E,SAAAC,EAeEC,GACE,IAdAC,EAAKF,EAALE,MACAC,EAAcH,EAAdG,eAAcC,EAAAJ,EACdK,WAAAA,OAAa,IAAHD,EAAG,UAASA,EACtBE,EAAsCN,EAAtCM,uCACAC,EAAkBP,EAAlBO,mBAAkBC,EAAAR,EAClBS,sBAAAA,OAAwBF,IAAHC,EAAGD,EAAkBC,EAC1CE,EAAUV,EAAVU,WACAC,EAASX,EAATW,UACAC,EAAcZ,EAAdY,eACAC,EAAQb,EAARa,SACAC,EAAUd,EAAVc,WACeC,EAAUf,EAAzB,eAIIgB,EAAgBC,GAAQ,WAAA,OAAOC,EAAoCC,SAASjB,EAAM,GAAE,CAACA,IACrFkB,EAAeJ,EAAgBK,EAAWC,sBAAsBpB,EAAOG,GAAcH,EACrFqB,EAAUC,EAAuB,MAEjCC,EAAUC,GAAY,WAAA,OAAMvB,EAAeD,EAAM,GAAE,CAACC,EAAgBD,IAE1EyB,GAAU,WACR,IAAKJ,aAAA,EAAAA,EAASK,WAAWtB,GAA2CU,EAApE,CACA,IAAMa,EAAON,EAAQK,QACfE,EAAgB,SAACC,GAElBA,EAAEC,OAA0BC,MAAMC,WAAab,EAAWC,sBAAsBpB,EADhE,aAAfG,EACsF,UAEA,UAGtF8B,EAAyB,SAACJ,GAC7BA,EAAEC,OAA0BC,MAAMC,WAAad,GAKlD,OAHAS,EAAKO,iBAAiB,aAAcN,GAAe,GACnDD,EAAKO,iBAAiB,aAAcD,GAAwB,GAErD,WACLN,EAAKQ,oBAAoB,aAAcP,GAAe,GACtDD,EAAKQ,oBAAoB,aAAcF,GAAwB,GAjBkB,CAmBrF,GAAG,CAACjC,EAAOkB,EAAcf,EAAYW,EAAeO,EAASjB,IAE7D,IAAMgC,EAAmB5B,GAAcH,EACjCgC,EAA6BjC,EAAyC,CAAEJ,MAAOkB,GAAiB,GACtG,OACEoB,EAACC,cAAAC,EAAQ,CAAAC,QAAS/B,GAChB4B,EAAAC,cAAA,KAAA,CACEG,UAAWC,EAAGC,EAAOC,YAAWC,EAAAA,EAAAA,EAAA,CAAA,EAC7BF,EAAOG,cAAgBvC,GACvBoC,EAAOI,OAASrC,GAChBiC,EAAOK,OAAwB,WAAfrC,IACjB,cACWC,GAAcqC,EAAUC,EAAuBC,kBAAmBpD,IAE/EsC,EAAKC,cAAA,MAAA,CAAAG,UAAWC,EAAGC,EAAOS,qBAC1Bf,EAAAC,cAACe,EAAS,CACRC,IAAKlC,EACLmC,UAAWxD,EACX0C,UAAWC,EAAGC,EAAOa,UAAWC,EAASd,EAAQe,EAAU,mBAAqBlD,IAAWqC,EAAA,CAAA,EACxFF,EAAOgB,kBAAoBxD,IAE9B2B,MAAO,CAAEC,WAAY5B,EAAyC,cAAgBc,GAC9EK,QAASA,EACTsC,SAAS,KACTC,YAAa,SAAAjC,GAAC,OAAIA,EAAEkC,gBAAgB,GAEpCzB,EAAAC,cAAA,MAAA,CAAKG,UAAWC,EAAGC,EAAOoB,uBAAwBjC,MAAOM,GACtDD,GACCE,EAAAC,cAAC0B,EAAI,CACHC,KAAM1D,EAAaD,EAAwBF,EAC3CqC,UAAWC,EAAEG,EACVF,CAAAA,EAAAA,EAAOuB,gBAAkB/D,IAE5BgE,kBACA,OAOhB"}
@@ -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":"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"}
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":"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"}
@@ -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":"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"}
@@ -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"}