@vibe/core 3.50.1-alpha-b401f.0 → 3.50.1-alpha-b92cc.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 (220) hide show
  1. package/dist/components/AlertBanner/AlertBanner.d.ts +1 -1
  2. package/dist/components/AttentionBox/AttentionBox.d.ts +1 -1
  3. package/dist/components/Avatar/Avatar.d.ts +1 -1
  4. package/dist/components/Avatar/AvatarBadge.d.ts +1 -1
  5. package/dist/components/Avatar/AvatarContent.d.ts +1 -1
  6. package/dist/components/Badge/Badge.d.ts +1 -1
  7. package/dist/components/Badge/Indicator/Indicator.d.ts +1 -1
  8. package/dist/components/Box/Box.d.ts +1 -1
  9. package/dist/components/BreadcrumbsBar/BreadcrumbsBar.d.ts +1 -1
  10. package/dist/components/Button/Button.d.ts +1 -1
  11. package/dist/components/ButtonGroup/ButtonGroup.d.ts +1 -1
  12. package/dist/components/Chips/Chips.d.ts +1 -1
  13. package/dist/components/ColorPicker/ColorPicker.d.ts +1 -1
  14. package/dist/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.d.ts +1 -1
  15. package/dist/components/Combobox/Combobox.d.ts +1 -1
  16. package/dist/components/Combobox/components/ComboboxOption/ComboboxOption.d.ts +1 -1
  17. package/dist/components/Counter/Counter.d.ts +1 -1
  18. package/dist/components/DialogContentContainer/DialogContentContainer.d.ts +1 -1
  19. package/dist/components/Divider/Divider.d.ts +1 -1
  20. package/dist/components/Dropdown/Dropdown.d.ts +1 -1
  21. package/dist/components/DropdownNew/Dropdown.types.d.ts +42 -16
  22. package/dist/components/DropdownNew/hooks/useDropdownCombobox.d.ts +1 -1
  23. package/dist/components/DropdownNew/hooks/useDropdownFiltering.d.ts +1 -1
  24. package/dist/components/DropdownNew/hooks/useDropdownMultiCombobox.d.ts +1 -1
  25. package/dist/components/DropdownNew/utils/dropdownUtils.d.ts +1 -1
  26. package/dist/components/EditableHeading/EditableHeading.d.ts +1 -1
  27. package/dist/components/EditableText/EditableText.d.ts +1 -1
  28. package/dist/components/Flex/Flex.d.ts +1 -1
  29. package/dist/components/FormattedNumber/FormattedNumber.d.ts +1 -1
  30. package/dist/components/Heading/Heading.d.ts +1 -1
  31. package/dist/components/Icon/Icon.d.ts +1 -1
  32. package/dist/components/IconButton/IconButton.d.ts +1 -1
  33. package/dist/components/Label/Label.d.ts +1 -1
  34. package/dist/components/LegacyModal/LegacyModal.d.ts +1 -1
  35. package/dist/components/Link/Link.d.ts +1 -1
  36. package/dist/components/List/List.d.ts +1 -1
  37. package/dist/components/ListItem/ListItem.d.ts +1 -1
  38. package/dist/components/ListItemAvatar/ListItemAvatar.d.ts +1 -1
  39. package/dist/components/ListItemIcon/ListItemIcon.d.ts +1 -1
  40. package/dist/components/Loader/Loader.d.ts +1 -1
  41. package/dist/components/Menu/Menu/Menu.d.ts +1 -1
  42. package/dist/components/Menu/MenuItem/MenuItem.d.ts +1 -1
  43. package/dist/components/Menu/MenuItemButton/MenuItemButton.d.ts +1 -1
  44. package/dist/components/Menu/MenuTitle/MenuTitle.d.ts +1 -1
  45. package/dist/components/MenuButton/MenuButton.d.ts +1 -1
  46. package/dist/components/MultiStepIndicator/MultiStepIndicator.d.ts +1 -1
  47. package/dist/components/ProgressBars/LinearProgressBar/LinearProgressBar.d.ts +1 -1
  48. package/dist/components/Skeleton/Skeleton.d.ts +1 -1
  49. package/dist/components/Slider/Slider.d.ts +1 -1
  50. package/dist/components/Slider/SliderInfix.d.ts +1 -1
  51. package/dist/components/SplitButton/SplitButton.d.ts +1 -1
  52. package/dist/components/Steps/Steps.d.ts +1 -1
  53. package/dist/components/Table/Table/Table.d.ts +1 -1
  54. package/dist/components/Tabs/TabPanels/TabPanels.d.ts +1 -1
  55. package/dist/components/Text/Text.d.ts +1 -1
  56. package/dist/components/TextField/TextField.d.ts +1 -1
  57. package/dist/components/ThemeProvider/ThemeProvider.d.ts +1 -1
  58. package/dist/components/Tipseen/Tipseen.d.ts +1 -1
  59. package/dist/components/Toast/Toast.d.ts +1 -1
  60. package/dist/hooks/useGridKeyboardNavigation/gridKeyboardNavigationHelper.d.ts +1 -2
  61. package/dist/hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.d.ts +1 -3
  62. package/dist/metadata.json +19677 -3193
  63. package/dist/mocked_classnames/components/AlertBanner/AlertBanner.d.ts +1 -1
  64. package/dist/mocked_classnames/components/AttentionBox/AttentionBox.d.ts +1 -1
  65. package/dist/mocked_classnames/components/Avatar/Avatar.d.ts +1 -1
  66. package/dist/mocked_classnames/components/Avatar/AvatarBadge.d.ts +1 -1
  67. package/dist/mocked_classnames/components/Avatar/AvatarContent.d.ts +1 -1
  68. package/dist/mocked_classnames/components/Badge/Badge.d.ts +1 -1
  69. package/dist/mocked_classnames/components/Badge/Indicator/Indicator.d.ts +1 -1
  70. package/dist/mocked_classnames/components/Box/Box.d.ts +1 -1
  71. package/dist/mocked_classnames/components/BreadcrumbsBar/BreadcrumbsBar.d.ts +1 -1
  72. package/dist/mocked_classnames/components/Button/Button.d.ts +1 -1
  73. package/dist/mocked_classnames/components/ButtonGroup/ButtonGroup.d.ts +1 -1
  74. package/dist/mocked_classnames/components/Chips/Chips.d.ts +1 -1
  75. package/dist/mocked_classnames/components/ColorPicker/ColorPicker.d.ts +1 -1
  76. package/dist/mocked_classnames/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.d.ts +1 -1
  77. package/dist/mocked_classnames/components/Combobox/Combobox.d.ts +1 -1
  78. package/dist/mocked_classnames/components/Combobox/components/ComboboxOption/ComboboxOption.d.ts +1 -1
  79. package/dist/mocked_classnames/components/Counter/Counter.d.ts +1 -1
  80. package/dist/mocked_classnames/components/DialogContentContainer/DialogContentContainer.d.ts +1 -1
  81. package/dist/mocked_classnames/components/Divider/Divider.d.ts +1 -1
  82. package/dist/mocked_classnames/components/Dropdown/Dropdown.d.ts +1 -1
  83. package/dist/mocked_classnames/components/DropdownNew/Dropdown.types.d.ts +42 -16
  84. package/dist/mocked_classnames/components/DropdownNew/hooks/useDropdownCombobox.d.ts +1 -1
  85. package/dist/mocked_classnames/components/DropdownNew/hooks/useDropdownFiltering.d.ts +1 -1
  86. package/dist/mocked_classnames/components/DropdownNew/hooks/useDropdownMultiCombobox.d.ts +1 -1
  87. package/dist/mocked_classnames/components/DropdownNew/utils/dropdownUtils.d.ts +1 -1
  88. package/dist/mocked_classnames/components/EditableHeading/EditableHeading.d.ts +1 -1
  89. package/dist/mocked_classnames/components/EditableText/EditableText.d.ts +1 -1
  90. package/dist/mocked_classnames/components/Flex/Flex.d.ts +1 -1
  91. package/dist/mocked_classnames/components/FormattedNumber/FormattedNumber.d.ts +1 -1
  92. package/dist/mocked_classnames/components/Heading/Heading.d.ts +1 -1
  93. package/dist/mocked_classnames/components/Icon/Icon.d.ts +1 -1
  94. package/dist/mocked_classnames/components/IconButton/IconButton.d.ts +1 -1
  95. package/dist/mocked_classnames/components/Label/Label.d.ts +1 -1
  96. package/dist/mocked_classnames/components/LegacyModal/LegacyModal.d.ts +1 -1
  97. package/dist/mocked_classnames/components/Link/Link.d.ts +1 -1
  98. package/dist/mocked_classnames/components/List/List.d.ts +1 -1
  99. package/dist/mocked_classnames/components/ListItem/ListItem.d.ts +1 -1
  100. package/dist/mocked_classnames/components/ListItemAvatar/ListItemAvatar.d.ts +1 -1
  101. package/dist/mocked_classnames/components/ListItemIcon/ListItemIcon.d.ts +1 -1
  102. package/dist/mocked_classnames/components/Loader/Loader.d.ts +1 -1
  103. package/dist/mocked_classnames/components/Menu/Menu/Menu.d.ts +1 -1
  104. package/dist/mocked_classnames/components/Menu/MenuItem/MenuItem.d.ts +1 -1
  105. package/dist/mocked_classnames/components/Menu/MenuItemButton/MenuItemButton.d.ts +1 -1
  106. package/dist/mocked_classnames/components/Menu/MenuTitle/MenuTitle.d.ts +1 -1
  107. package/dist/mocked_classnames/components/MenuButton/MenuButton.d.ts +1 -1
  108. package/dist/mocked_classnames/components/MultiStepIndicator/MultiStepIndicator.d.ts +1 -1
  109. package/dist/mocked_classnames/components/ProgressBars/LinearProgressBar/LinearProgressBar.d.ts +1 -1
  110. package/dist/mocked_classnames/components/Skeleton/Skeleton.d.ts +1 -1
  111. package/dist/mocked_classnames/components/Slider/Slider.d.ts +1 -1
  112. package/dist/mocked_classnames/components/Slider/SliderInfix.d.ts +1 -1
  113. package/dist/mocked_classnames/components/SplitButton/SplitButton.d.ts +1 -1
  114. package/dist/mocked_classnames/components/Steps/Steps.d.ts +1 -1
  115. package/dist/mocked_classnames/components/Table/Table/Table.d.ts +1 -1
  116. package/dist/mocked_classnames/components/Tabs/TabPanels/TabPanels.d.ts +1 -1
  117. package/dist/mocked_classnames/components/Text/Text.d.ts +1 -1
  118. package/dist/mocked_classnames/components/TextField/TextField.d.ts +1 -1
  119. package/dist/mocked_classnames/components/ThemeProvider/ThemeProvider.d.ts +1 -1
  120. package/dist/mocked_classnames/components/Tipseen/Tipseen.d.ts +1 -1
  121. package/dist/mocked_classnames/components/Toast/Toast.d.ts +1 -1
  122. package/dist/mocked_classnames/hooks/useGridKeyboardNavigation/gridKeyboardNavigationHelper.d.ts +1 -2
  123. package/dist/mocked_classnames/hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.d.ts +1 -3
  124. package/dist/mocked_classnames/src/components/AttentionBox/AttentionBox.js +1 -1
  125. package/dist/mocked_classnames/src/components/AttentionBox/AttentionBox.js.map +1 -1
  126. package/dist/mocked_classnames/src/components/Avatar/Avatar.js +1 -1
  127. package/dist/mocked_classnames/src/components/Avatar/Avatar.js.map +1 -1
  128. package/dist/mocked_classnames/src/components/Avatar/AvatarBadge.js +1 -1
  129. package/dist/mocked_classnames/src/components/Avatar/AvatarBadge.js.map +1 -1
  130. package/dist/mocked_classnames/src/components/Avatar/AvatarContent.js +1 -1
  131. package/dist/mocked_classnames/src/components/Avatar/AvatarContent.js.map +1 -1
  132. package/dist/mocked_classnames/src/components/Badge/Indicator/Indicator.js +1 -1
  133. package/dist/mocked_classnames/src/components/Badge/Indicator/Indicator.js.map +1 -1
  134. package/dist/mocked_classnames/src/components/BreadcrumbsBar/BreadcrumbsBar.js +1 -1
  135. package/dist/mocked_classnames/src/components/BreadcrumbsBar/BreadcrumbsBar.js.map +1 -1
  136. package/dist/mocked_classnames/src/components/Combobox/components/ComboboxOption/ComboboxOption.js +1 -1
  137. package/dist/mocked_classnames/src/components/Combobox/components/ComboboxOption/ComboboxOption.js.map +1 -1
  138. package/dist/mocked_classnames/src/components/Counter/Counter.js +1 -1
  139. package/dist/mocked_classnames/src/components/Counter/Counter.js.map +1 -1
  140. package/dist/mocked_classnames/src/components/Divider/Divider.js +1 -1
  141. package/dist/mocked_classnames/src/components/Divider/Divider.js.map +1 -1
  142. package/dist/mocked_classnames/src/components/LegacyModal/LegacyModal.js +1 -1
  143. package/dist/mocked_classnames/src/components/LegacyModal/LegacyModal.js.map +1 -1
  144. package/dist/mocked_classnames/src/components/Menu/MenuItemButton/MenuItemButton.js +1 -1
  145. package/dist/mocked_classnames/src/components/Menu/MenuItemButton/MenuItemButton.js.map +1 -1
  146. package/dist/mocked_classnames/src/components/Menu/MenuTitle/MenuTitle.js +1 -1
  147. package/dist/mocked_classnames/src/components/Menu/MenuTitle/MenuTitle.js.map +1 -1
  148. package/dist/mocked_classnames/src/components/Skeleton/Skeleton.js +1 -1
  149. package/dist/mocked_classnames/src/components/Skeleton/Skeleton.js.map +1 -1
  150. package/dist/mocked_classnames/src/components/Slider/SliderInfix.js +1 -1
  151. package/dist/mocked_classnames/src/components/Slider/SliderInfix.js.map +1 -1
  152. package/dist/mocked_classnames/src/components/SplitButton/SplitButton.js +1 -1
  153. package/dist/mocked_classnames/src/components/SplitButton/SplitButton.js.map +1 -1
  154. package/dist/mocked_classnames/src/components/Tabs/Tab/Tab.js +1 -1
  155. package/dist/mocked_classnames/src/components/Tabs/Tab/Tab.js.map +1 -1
  156. package/dist/mocked_classnames/src/components/Tabs/TabList/TabList.js +1 -1
  157. package/dist/mocked_classnames/src/components/Tabs/TabList/TabList.js.map +1 -1
  158. package/dist/mocked_classnames/src/components/TextField/TextField.js +1 -1
  159. package/dist/mocked_classnames/src/components/TextField/TextField.js.map +1 -1
  160. package/dist/mocked_classnames/src/components/ThemeProvider/ThemeProvider.js +1 -1
  161. package/dist/mocked_classnames/src/components/ThemeProvider/ThemeProvider.js.map +1 -1
  162. package/dist/mocked_classnames/src/components/Toast/Toast.js +1 -1
  163. package/dist/mocked_classnames/src/components/Toast/Toast.js.map +1 -1
  164. package/dist/mocked_classnames/src/hooks/useGridKeyboardNavigation/gridKeyboardNavigationHelper.js +1 -1
  165. package/dist/mocked_classnames/src/hooks/useGridKeyboardNavigation/gridKeyboardNavigationHelper.js.map +1 -1
  166. package/dist/mocked_classnames/src/hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.js +1 -1
  167. package/dist/mocked_classnames/src/hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.js.map +1 -1
  168. package/dist/mocked_classnames/src/index.js +1 -1
  169. package/dist/mocked_classnames/src/types/withStaticProps.js +1 -1
  170. package/dist/mocked_classnames/src/types/withStaticProps.js.map +1 -1
  171. package/dist/mocked_classnames/types/withStaticProps.d.ts +2 -2
  172. package/dist/src/components/AttentionBox/AttentionBox.js +1 -1
  173. package/dist/src/components/AttentionBox/AttentionBox.js.map +1 -1
  174. package/dist/src/components/Avatar/Avatar.js +1 -1
  175. package/dist/src/components/Avatar/Avatar.js.map +1 -1
  176. package/dist/src/components/Avatar/AvatarBadge.js +1 -1
  177. package/dist/src/components/Avatar/AvatarBadge.js.map +1 -1
  178. package/dist/src/components/Avatar/AvatarContent.js +1 -1
  179. package/dist/src/components/Avatar/AvatarContent.js.map +1 -1
  180. package/dist/src/components/Badge/Indicator/Indicator.js +1 -1
  181. package/dist/src/components/Badge/Indicator/Indicator.js.map +1 -1
  182. package/dist/src/components/BreadcrumbsBar/BreadcrumbsBar.js +1 -1
  183. package/dist/src/components/BreadcrumbsBar/BreadcrumbsBar.js.map +1 -1
  184. package/dist/src/components/Combobox/components/ComboboxOption/ComboboxOption.js +1 -1
  185. package/dist/src/components/Combobox/components/ComboboxOption/ComboboxOption.js.map +1 -1
  186. package/dist/src/components/Counter/Counter.js +1 -1
  187. package/dist/src/components/Counter/Counter.js.map +1 -1
  188. package/dist/src/components/Divider/Divider.js +1 -1
  189. package/dist/src/components/Divider/Divider.js.map +1 -1
  190. package/dist/src/components/LegacyModal/LegacyModal.js +1 -1
  191. package/dist/src/components/LegacyModal/LegacyModal.js.map +1 -1
  192. package/dist/src/components/Menu/MenuItemButton/MenuItemButton.js +1 -1
  193. package/dist/src/components/Menu/MenuItemButton/MenuItemButton.js.map +1 -1
  194. package/dist/src/components/Menu/MenuTitle/MenuTitle.js +1 -1
  195. package/dist/src/components/Menu/MenuTitle/MenuTitle.js.map +1 -1
  196. package/dist/src/components/Skeleton/Skeleton.js +1 -1
  197. package/dist/src/components/Skeleton/Skeleton.js.map +1 -1
  198. package/dist/src/components/Slider/SliderInfix.js +1 -1
  199. package/dist/src/components/Slider/SliderInfix.js.map +1 -1
  200. package/dist/src/components/SplitButton/SplitButton.js +1 -1
  201. package/dist/src/components/SplitButton/SplitButton.js.map +1 -1
  202. package/dist/src/components/Tabs/Tab/Tab.js +1 -1
  203. package/dist/src/components/Tabs/Tab/Tab.js.map +1 -1
  204. package/dist/src/components/Tabs/TabList/TabList.js +1 -1
  205. package/dist/src/components/Tabs/TabList/TabList.js.map +1 -1
  206. package/dist/src/components/TextField/TextField.js +1 -1
  207. package/dist/src/components/TextField/TextField.js.map +1 -1
  208. package/dist/src/components/ThemeProvider/ThemeProvider.js +1 -1
  209. package/dist/src/components/ThemeProvider/ThemeProvider.js.map +1 -1
  210. package/dist/src/components/Toast/Toast.js +1 -1
  211. package/dist/src/components/Toast/Toast.js.map +1 -1
  212. package/dist/src/hooks/useGridKeyboardNavigation/gridKeyboardNavigationHelper.js +1 -1
  213. package/dist/src/hooks/useGridKeyboardNavigation/gridKeyboardNavigationHelper.js.map +1 -1
  214. package/dist/src/hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.js +1 -1
  215. package/dist/src/hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.js.map +1 -1
  216. package/dist/src/index.js +1 -1
  217. package/dist/src/types/withStaticProps.js +1 -1
  218. package/dist/src/types/withStaticProps.js.map +1 -1
  219. package/dist/types/withStaticProps.d.ts +2 -2
  220. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","sources":["../../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import { camelCase } from \"lodash-es\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport React, { ReactElement, useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { IconSubComponentProps } from \"../Icon/Icon\";\nimport Text from \"../Text/Text\";\nimport Loader from \"../Loader/Loader\";\nimport Flex from \"../Flex/Flex\";\nimport { CloseSmall } from \"@vibe/icons\";\nimport ToastLink from \"./ToastLink/ToastLink\";\nimport ToastButton from \"./ToastButton/ToastButton\";\nimport { ToastActionType as ToastActionTypeEnum, ToastType as ToastTypeEnum } from \"./ToastConstants\";\nimport { ToastType, ToastAction } from \"./Toast.types\";\nimport { getIcon } from \"./ToastHelpers\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport { withStaticProps, VibeComponentProps } from \"../../types\";\nimport styles from \"./Toast.module.scss\";\nimport IconButton from \"../IconButton/IconButton\";\nimport usePrevious from \"../../hooks/usePrevious\";\n\nexport interface ToastProps extends VibeComponentProps {\n /**\n * The actions available in the toast.\n */\n actions?: ToastAction[];\n /**\n * If true, the toast is open (visible).\n */\n open?: boolean;\n /**\n * If true, displays a loading indicator inside the toast.\n */\n loading?: boolean;\n /**\n * The type of toast.\n */\n type?: ToastType;\n /**\n * The icon displayed in the toast.\n */\n icon?: string | React.FC<IconSubComponentProps> | null;\n /**\n * If true, hides the toast icon.\n */\n hideIcon?: boolean;\n /**\n * The action element displayed in the toast.\n */\n action?: JSX.Element;\n /**\n * If false, hides the close button.\n */\n closeable?: boolean;\n /**\n * Callback fired when the toast is closed.\n */\n onClose?: () => void;\n /**\n * The number of milliseconds before the toast automatically closes.\n * (0 or null disables auto-close behavior).\n */\n autoHideDuration?: number;\n /**\n * The content displayed inside the toast.\n */\n children?: ReactElement | ReactElement[] | string;\n /**\n * The aria-label for the close button.\n */\n closeButtonAriaLabel?: string;\n}\n\nconst Toast = ({\n open = false,\n loading = false,\n autoHideDuration = null,\n type = \"normal\",\n icon,\n hideIcon = false,\n action: deprecatedAction,\n actions,\n children,\n closeable = true,\n onClose = NOOP,\n className,\n id,\n closeButtonAriaLabel = \"Close\",\n \"data-testid\": dataTestId\n}: ToastProps) => {\n const ref = useRef(null);\n const prevActions = usePrevious(actions?.length);\n const toastLinks = useMemo(() => {\n return actions\n ? actions\n .filter(action => action.type === \"link\")\n .map(({ type: _type, ...otherProps }) => (\n <ToastLink key={otherProps.href} className={styles.actionLink} {...otherProps} />\n ))\n : null;\n }, [actions]);\n\n const shouldShowButtonTransition = useMemo(() => {\n return prevActions !== undefined && actions?.length !== prevActions;\n }, [actions, prevActions]);\n\n const toastButtons: JSX.Element[] | null = useMemo(() => {\n return actions\n ? actions\n .filter(action => action.type === \"button\")\n .map(({ type: _type, content, ...otherProps }, index) => (\n <ToastButton\n key={`alert-button-${index}`}\n className={cx(styles.actionButton, { [styles.withTransition]: shouldShowButtonTransition })}\n {...otherProps}\n >\n {content}\n </ToastButton>\n ))\n : null;\n }, [actions, shouldShowButtonTransition]);\n\n const classNames = useMemo(\n () => cx(styles.toast, getStyle(styles, camelCase(\"type-\" + type)), className),\n [type, className]\n );\n\n const handleClose = useCallback(() => {\n if (onClose) {\n onClose();\n }\n }, [onClose]);\n\n /* Timer */\n const timerAutoHide = useRef<NodeJS.Timeout>();\n const setAutoHideTimer = useCallback(\n (duration: number) => {\n if (!onClose || duration == null) {\n return;\n }\n\n clearTimeout(timerAutoHide.current);\n timerAutoHide.current = setTimeout(() => {\n handleClose();\n }, duration);\n },\n [handleClose, onClose]\n );\n\n useEffect(() => {\n if (open && autoHideDuration > 0) {\n setAutoHideTimer(autoHideDuration);\n }\n\n return () => {\n clearTimeout(timerAutoHide.current);\n };\n }, [open, autoHideDuration, setAutoHideTimer]);\n\n const iconElement = !hideIcon && getIcon(type, icon);\n\n // https://n12v.com/css-transition-to-from-auto/\n const recalculateElementWidth = useCallback((element: HTMLElement) => {\n const prevWidth = element.style.width;\n element.style.width = \"auto\";\n const endWidth = getComputedStyle(element).width;\n element.style.width = prevWidth;\n element.offsetWidth; // force repaint\n element.style.width = endWidth;\n }, []);\n\n useEffect(() => {\n if (ref.current) {\n recalculateElementWidth(ref.current);\n }\n }, [children, recalculateElementWidth]);\n\n return (\n <CSSTransition\n in={open}\n classNames={{ enterActive: styles.enterActive, exitActive: styles.exitActive }}\n timeout={400}\n unmountOnExit\n >\n <Text\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TOAST, id)}\n type=\"text2\"\n element=\"div\"\n color=\"fixedLight\"\n className={classNames}\n role=\"alert\"\n aria-live=\"polite\"\n ref={ref}\n >\n {iconElement && <div className={cx(styles.icon)}>{iconElement}</div>}\n <Flex align=\"center\" gap=\"large\" className={styles.content}>\n <Flex\n gap=\"medium\"\n data-testid={getTestId(ComponentDefaultTestId.TOAST_CONTENT)}\n className={styles.textContent}\n >\n <span>{children}</span>\n {toastLinks}\n </Flex>\n {(toastButtons || deprecatedAction) && (toastButtons || deprecatedAction)}\n {loading && <Loader size=\"xs\" />}\n </Flex>\n {closeable && (\n <IconButton\n className={cx(styles.closeButton)}\n onClick={handleClose}\n size=\"small\"\n kind=\"tertiary\"\n color=\"fixed-light\"\n ariaLabel={closeButtonAriaLabel}\n data-testid={getTestId(ComponentDefaultTestId.TOAST_CLOSE_BUTTON)}\n icon={CloseSmall}\n hideTooltip\n />\n )}\n </Text>\n </CSSTransition>\n );\n};\n\ninterface ToastStaticProps {\n types: typeof ToastTypeEnum;\n actionTypes: typeof ToastActionTypeEnum;\n}\n\nexport default withStaticProps<ToastProps, ToastStaticProps>(Toast, {\n types: ToastTypeEnum,\n actionTypes: ToastActionTypeEnum\n});\n"],"names":["withStaticProps","_ref","_ref$open","open","_ref$loading","loading","_ref$autoHideDuration","autoHideDuration","_ref$type","type","icon","_ref$hideIcon","hideIcon","deprecatedAction","action","actions","children","_ref$closeable","closeable","_ref$onClose","onClose","NOOP","className","id","_ref$closeButtonAriaL","closeButtonAriaLabel","dataTestId","ref","useRef","prevActions","usePrevious","length","toastLinks","useMemo","filter","map","_a","otherProps","__rest","React","createElement","ToastLink","key","href","styles","actionLink","shouldShowButtonTransition","undefined","toastButtons","index","content","ToastButton","Object","assign","concat","cx","actionButton","_defineProperty","withTransition","classNames","toast","getStyle","camelCase","handleClose","useCallback","timerAutoHide","setAutoHideTimer","duration","clearTimeout","current","setTimeout","useEffect","iconElement","getIcon","recalculateElementWidth","element","prevWidth","style","width","endWidth","getComputedStyle","CSSTransition","in","enterActive","exitActive","timeout","unmountOnExit","Text","getTestId","ComponentDefaultTestId","TOAST","color","role","Flex","align","gap","TOAST_CONTENT","textContent","Loader","size","IconButton","closeButton","onClick","kind","ariaLabel","TOAST_CLOSE_BUTTON","CloseSmall","hideTooltip","types","ToastTypeEnum","actionTypes","ToastActionTypeEnum"],"mappings":"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"}
1
+ {"version":3,"file":"Toast.js","sources":["../../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import { camelCase } from \"lodash-es\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport React, { ReactElement, useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { IconSubComponentProps } from \"../Icon/Icon\";\nimport Text from \"../Text/Text\";\nimport Loader from \"../Loader/Loader\";\nimport Flex from \"../Flex/Flex\";\nimport { CloseSmall } from \"@vibe/icons\";\nimport ToastLink from \"./ToastLink/ToastLink\";\nimport ToastButton from \"./ToastButton/ToastButton\";\nimport { ToastActionType as ToastActionTypeEnum, ToastType as ToastTypeEnum } from \"./ToastConstants\";\nimport { ToastType, ToastAction } from \"./Toast.types\";\nimport { getIcon } from \"./ToastHelpers\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport { VibeComponentProps, withStaticPropsWithoutForwardRef } from \"../../types\";\nimport styles from \"./Toast.module.scss\";\nimport IconButton from \"../IconButton/IconButton\";\nimport usePrevious from \"../../hooks/usePrevious\";\n\nexport interface ToastProps extends VibeComponentProps {\n /**\n * The actions available in the toast.\n */\n actions?: ToastAction[];\n /**\n * If true, the toast is open (visible).\n */\n open?: boolean;\n /**\n * If true, displays a loading indicator inside the toast.\n */\n loading?: boolean;\n /**\n * The type of toast.\n */\n type?: ToastType;\n /**\n * The icon displayed in the toast.\n */\n icon?: string | React.FC<IconSubComponentProps> | null;\n /**\n * If true, hides the toast icon.\n */\n hideIcon?: boolean;\n /**\n * The action element displayed in the toast.\n */\n action?: JSX.Element;\n /**\n * If false, hides the close button.\n */\n closeable?: boolean;\n /**\n * Callback fired when the toast is closed.\n */\n onClose?: () => void;\n /**\n * The number of milliseconds before the toast automatically closes.\n * (0 or null disables auto-close behavior).\n */\n autoHideDuration?: number;\n /**\n * The content displayed inside the toast.\n */\n children?: ReactElement | ReactElement[] | string;\n /**\n * The aria-label for the close button.\n */\n closeButtonAriaLabel?: string;\n}\n\nconst Toast = ({\n open = false,\n loading = false,\n autoHideDuration = null,\n type = \"normal\",\n icon,\n hideIcon = false,\n action: deprecatedAction,\n actions,\n children,\n closeable = true,\n onClose = NOOP,\n className,\n id,\n closeButtonAriaLabel = \"Close\",\n \"data-testid\": dataTestId\n}: ToastProps) => {\n const ref = useRef(null);\n const prevActions = usePrevious(actions?.length);\n const toastLinks = useMemo(() => {\n return actions\n ? actions\n .filter(action => action.type === \"link\")\n .map(({ type: _type, ...otherProps }) => (\n <ToastLink key={otherProps.href} className={styles.actionLink} {...otherProps} />\n ))\n : null;\n }, [actions]);\n\n const shouldShowButtonTransition = useMemo(() => {\n return prevActions !== undefined && actions?.length !== prevActions;\n }, [actions, prevActions]);\n\n const toastButtons: JSX.Element[] | null = useMemo(() => {\n return actions\n ? actions\n .filter(action => action.type === \"button\")\n .map(({ type: _type, content, ...otherProps }, index) => (\n <ToastButton\n key={`alert-button-${index}`}\n className={cx(styles.actionButton, { [styles.withTransition]: shouldShowButtonTransition })}\n {...otherProps}\n >\n {content}\n </ToastButton>\n ))\n : null;\n }, [actions, shouldShowButtonTransition]);\n\n const classNames = useMemo(\n () => cx(styles.toast, getStyle(styles, camelCase(\"type-\" + type)), className),\n [type, className]\n );\n\n const handleClose = useCallback(() => {\n if (onClose) {\n onClose();\n }\n }, [onClose]);\n\n /* Timer */\n const timerAutoHide = useRef<NodeJS.Timeout>();\n const setAutoHideTimer = useCallback(\n (duration: number) => {\n if (!onClose || duration == null) {\n return;\n }\n\n clearTimeout(timerAutoHide.current);\n timerAutoHide.current = setTimeout(() => {\n handleClose();\n }, duration);\n },\n [handleClose, onClose]\n );\n\n useEffect(() => {\n if (open && autoHideDuration > 0) {\n setAutoHideTimer(autoHideDuration);\n }\n\n return () => {\n clearTimeout(timerAutoHide.current);\n };\n }, [open, autoHideDuration, setAutoHideTimer]);\n\n const iconElement = !hideIcon && getIcon(type, icon);\n\n // https://n12v.com/css-transition-to-from-auto/\n const recalculateElementWidth = useCallback((element: HTMLElement) => {\n const prevWidth = element.style.width;\n element.style.width = \"auto\";\n const endWidth = getComputedStyle(element).width;\n element.style.width = prevWidth;\n element.offsetWidth; // force repaint\n element.style.width = endWidth;\n }, []);\n\n useEffect(() => {\n if (ref.current) {\n recalculateElementWidth(ref.current);\n }\n }, [children, recalculateElementWidth]);\n\n return (\n <CSSTransition\n in={open}\n classNames={{ enterActive: styles.enterActive, exitActive: styles.exitActive }}\n timeout={400}\n unmountOnExit\n >\n <Text\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TOAST, id)}\n type=\"text2\"\n element=\"div\"\n color=\"fixedLight\"\n className={classNames}\n role=\"alert\"\n aria-live=\"polite\"\n ref={ref}\n >\n {iconElement && <div className={cx(styles.icon)}>{iconElement}</div>}\n <Flex align=\"center\" gap=\"large\" className={styles.content}>\n <Flex\n gap=\"medium\"\n data-testid={getTestId(ComponentDefaultTestId.TOAST_CONTENT)}\n className={styles.textContent}\n >\n <span>{children}</span>\n {toastLinks}\n </Flex>\n {(toastButtons || deprecatedAction) && (toastButtons || deprecatedAction)}\n {loading && <Loader size=\"xs\" />}\n </Flex>\n {closeable && (\n <IconButton\n className={cx(styles.closeButton)}\n onClick={handleClose}\n size=\"small\"\n kind=\"tertiary\"\n color=\"fixed-light\"\n ariaLabel={closeButtonAriaLabel}\n data-testid={getTestId(ComponentDefaultTestId.TOAST_CLOSE_BUTTON)}\n icon={CloseSmall}\n hideTooltip\n />\n )}\n </Text>\n </CSSTransition>\n );\n};\n\ninterface ToastStaticProps {\n types: typeof ToastTypeEnum;\n actionTypes: typeof ToastActionTypeEnum;\n}\n\nexport default withStaticPropsWithoutForwardRef<ToastProps, ToastStaticProps>(Toast, {\n types: ToastTypeEnum,\n actionTypes: ToastActionTypeEnum\n});\n"],"names":["withStaticPropsWithoutForwardRef","_ref","_ref$open","open","_ref$loading","loading","_ref$autoHideDuration","autoHideDuration","_ref$type","type","icon","_ref$hideIcon","hideIcon","deprecatedAction","action","actions","children","_ref$closeable","closeable","_ref$onClose","onClose","NOOP","className","id","_ref$closeButtonAriaL","closeButtonAriaLabel","dataTestId","ref","useRef","prevActions","usePrevious","length","toastLinks","useMemo","filter","map","_a","otherProps","__rest","React","createElement","ToastLink","key","href","styles","actionLink","shouldShowButtonTransition","undefined","toastButtons","index","content","ToastButton","Object","assign","concat","cx","actionButton","_defineProperty","withTransition","classNames","toast","getStyle","camelCase","handleClose","useCallback","timerAutoHide","setAutoHideTimer","duration","clearTimeout","current","setTimeout","useEffect","iconElement","getIcon","recalculateElementWidth","element","prevWidth","style","width","endWidth","getComputedStyle","CSSTransition","in","enterActive","exitActive","timeout","unmountOnExit","Text","getTestId","ComponentDefaultTestId","TOAST","color","role","Flex","align","gap","TOAST_CONTENT","textContent","Loader","size","IconButton","closeButton","onClick","kind","ariaLabel","TOAST_CLOSE_BUTTON","CloseSmall","hideTooltip","types","ToastTypeEnum","actionTypes","ToastActionTypeEnum"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{NavDirections as n}from"../useFullKeyboardListeners.js";function e(e){var t=e.direction,i=e.numberOfItemsInLine,r=e.itemsCount,u=function(){var e=Math.floor(i/2);if(t===n.UP)return(Math.ceil(r/i)-1)*i+e;if(t===n.DOWN)return e;if(t===n.LEFT){for(var u=i-1,o=Math.floor((r-1)/2);o>u;)u+=i;return u}if(t===n.RIGHT){for(var a=0,c=Math.floor((r-1)/2);c>a+i;)a+=i;return a}}();return Math.max(0,Math.min(u,r-1))}function t(e){var t=e.activeIndex,i=e.itemsCount,r=e.numberOfItemsInLine,u=e.circularNavigation,o=void 0!==u&&u,a=function(n){return Math.ceil((n+1)/r)},c=function(n){var e=t+(n?1:-1);if(0>e||e>=i){if(!o)return{isOutbound:!0};0>e?e=i-1:i>e||(e=0)}return a(t)!==a(e)?{isOutbound:!0}:{isOutbound:!1,nextIndex:e}},s=function(n){var e=t+r*(n?1:-1);return 0>e||e>=i?{isOutbound:!0}:{isOutbound:!1,nextIndex:e}};switch(e.direction){case n.RIGHT:return c(!0);case n.LEFT:return c(!1);case n.DOWN:return s(!0);case n.UP:return s(!1)}}function i(n){for(var e=n.itemsCount,i=n.numberOfItemsInLine,r=n.direction,u=n.disabledIndexes,o=void 0===u?[]:u,a=n.circularNavigation,c=void 0!==a&&a,s=t({activeIndex:n.activeIndex,itemsCount:e,numberOfItemsInLine:i,direction:r,circularNavigation:c});!s.isOutbound&&o.includes(s.nextIndex);)s=t({activeIndex:s.nextIndex,itemsCount:e,numberOfItemsInLine:i,direction:r,circularNavigation:c});return s}export{i as calcActiveIndexAfterArrowNavigation,e as getActiveIndexFromInboundNavigation};
1
+ import{NavDirections as n}from"../useFullKeyboardListeners.js";function e(e){var t=e.direction,r=e.numberOfItemsInLine,i=e.itemsCount,u=function(){var e=Math.floor(r/2);if(t===n.UP)return(Math.ceil(i/r)-1)*r+e;if(t===n.DOWN)return e;if(t===n.LEFT){for(var u=r-1,o=Math.floor((i-1)/2);o>u;)u+=r;return u}if(t===n.RIGHT){for(var s=0,a=Math.floor((i-1)/2);a>s+r;)s+=r;return s}}();return Math.max(0,Math.min(u,i-1))}function t(e){var t=e.activeIndex,r=e.itemsCount,i=e.numberOfItemsInLine,u=function(n){return Math.ceil((n+1)/i)},o=function(n){var e=t+(n?1:-1);return 0>e||e>=r||u(t)!==u(e)?{isOutbound:!0}:{isOutbound:!1,nextIndex:e}},s=function(n){var e=t+i*(n?1:-1);return 0>e||e>=r?{isOutbound:!0}:{isOutbound:!1,nextIndex:e}};switch(e.direction){case n.RIGHT:return o(!0);case n.LEFT:return o(!1);case n.DOWN:return s(!0);case n.UP:return s(!1)}}function r(n){for(var e=n.itemsCount,r=n.numberOfItemsInLine,i=n.direction,u=n.disabledIndexes,o=void 0===u?[]:u,s=t({activeIndex:n.activeIndex,itemsCount:e,numberOfItemsInLine:r,direction:i});!s.isOutbound&&o.includes(s.nextIndex);)s=t({activeIndex:s.nextIndex,itemsCount:e,numberOfItemsInLine:r,direction:i});return s}export{r as calcActiveIndexAfterArrowNavigation,e as getActiveIndexFromInboundNavigation};
2
2
  //# sourceMappingURL=gridKeyboardNavigationHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gridKeyboardNavigationHelper.js","sources":["../../../../src/hooks/useGridKeyboardNavigation/gridKeyboardNavigationHelper.ts"],"sourcesContent":["import { NavDirections } from \"../useFullKeyboardListeners\";\n\nexport function getActiveIndexFromInboundNavigation({\n direction,\n numberOfItemsInLine,\n itemsCount\n}: {\n direction: NavDirections;\n numberOfItemsInLine: number;\n itemsCount: number;\n}) {\n const getRawIndex = () => {\n const firstLineMiddleIndex = Math.floor(numberOfItemsInLine / 2);\n if (direction === NavDirections.UP) {\n // last line, middle\n const rowCount = Math.ceil(itemsCount / numberOfItemsInLine);\n return (rowCount - 1) * numberOfItemsInLine + firstLineMiddleIndex;\n }\n if (direction === NavDirections.DOWN) {\n // first line, middle\n return firstLineMiddleIndex;\n }\n if (direction === NavDirections.LEFT) {\n // middle line, last item\n let result = numberOfItemsInLine - 1;\n const midIndex = Math.floor((itemsCount - 1) / 2);\n while (result < midIndex) {\n result += numberOfItemsInLine;\n }\n return result;\n }\n if (direction === NavDirections.RIGHT) {\n // middle line, first item\n let result = 0;\n const midIndex = Math.floor((itemsCount - 1) / 2);\n while (result + numberOfItemsInLine < midIndex) {\n result += numberOfItemsInLine;\n }\n return result;\n }\n };\n\n const rawIndex = getRawIndex();\n return Math.max(0, Math.min(rawIndex, itemsCount - 1));\n}\n\nfunction calcRawNewIndexAfterArrowNavigation({\n activeIndex,\n itemsCount,\n numberOfItemsInLine,\n direction,\n circularNavigation = false\n}: {\n activeIndex: number;\n itemsCount: number;\n numberOfItemsInLine: number;\n direction: NavDirections;\n circularNavigation?: boolean;\n}) {\n const getIndexLine = (index: number) => Math.ceil((index + 1) / numberOfItemsInLine);\n\n const horizontalChange = (isIndexIncrease: boolean) => {\n let nextIndex = activeIndex + (isIndexIncrease ? 1 : -1);\n\n if (nextIndex < 0 || nextIndex >= itemsCount) {\n if (circularNavigation) {\n if (nextIndex < 0) {\n nextIndex = itemsCount - 1;\n } else if (nextIndex >= itemsCount) {\n nextIndex = 0;\n }\n } else {\n return { isOutbound: true };\n }\n }\n\n const currentLine = getIndexLine(activeIndex);\n const nextIndexLine = getIndexLine(nextIndex);\n if (currentLine !== nextIndexLine) {\n return { isOutbound: true };\n }\n\n return { isOutbound: false, nextIndex };\n };\n\n const verticalChange = (isIndexIncrease: boolean) => {\n const nextIndex = activeIndex + numberOfItemsInLine * (isIndexIncrease ? 1 : -1);\n if (nextIndex < 0 || itemsCount <= nextIndex) {\n return { isOutbound: true };\n }\n return { isOutbound: false, nextIndex };\n };\n\n switch (direction) {\n case NavDirections.RIGHT:\n return horizontalChange(true);\n case NavDirections.LEFT:\n return horizontalChange(false);\n case NavDirections.DOWN:\n return verticalChange(true);\n case NavDirections.UP:\n return verticalChange(false);\n }\n}\n\nexport function calcActiveIndexAfterArrowNavigation({\n activeIndex,\n itemsCount,\n numberOfItemsInLine,\n direction,\n disabledIndexes = [],\n circularNavigation = false\n}: {\n activeIndex: number;\n itemsCount: number;\n numberOfItemsInLine: number;\n direction: NavDirections;\n disabledIndexes?: number[];\n circularNavigation?: boolean;\n}) {\n let result = calcRawNewIndexAfterArrowNavigation({\n activeIndex,\n itemsCount,\n numberOfItemsInLine,\n direction,\n circularNavigation\n });\n while (!result.isOutbound && disabledIndexes.includes(result.nextIndex)) {\n result = calcRawNewIndexAfterArrowNavigation({\n activeIndex: result.nextIndex,\n itemsCount,\n numberOfItemsInLine,\n direction,\n circularNavigation\n });\n }\n\n return result;\n}\n"],"names":["getActiveIndexFromInboundNavigation","_ref","direction","numberOfItemsInLine","itemsCount","rawIndex","firstLineMiddleIndex","Math","floor","NavDirections","UP","ceil","DOWN","LEFT","result","midIndex","RIGHT","getRawIndex","max","min","calcRawNewIndexAfterArrowNavigation","_ref2","activeIndex","_ref2$circularNavigat","circularNavigation","getIndexLine","index","horizontalChange","isIndexIncrease","nextIndex","isOutbound","verticalChange","calcActiveIndexAfterArrowNavigation","_ref3","_ref3$disabledIndexes","disabledIndexes","_ref3$circularNavigat","includes"],"mappings":"+DAEM,SAAUA,EAAmCC,GAQlD,IAPCC,EAASD,EAATC,UACAC,EAAmBF,EAAnBE,oBACAC,EAAUH,EAAVG,WAqCMC,EA/Bc,WAClB,IAAMC,EAAuBC,KAAKC,MAAML,EAAsB,GAC9D,GAAID,IAAcO,EAAcC,GAG9B,OADiBH,KAAKI,KAAKP,EAAaD,GACrB,GAAKA,EAAsBG,EAEhD,GAAIJ,IAAcO,EAAcG,KAE9B,OAAON,EAET,GAAIJ,IAAcO,EAAcI,KAAM,CAIpC,IAFA,IAAIC,EAASX,EAAsB,EAC7BY,EAAWR,KAAKC,OAAOJ,EAAa,GAAK,GAC/BW,EAATD,GACLA,GAAUX,EAEZ,OAAOW,CACR,CACD,GAAIZ,IAAcO,EAAcO,MAAO,CAIrC,IAFA,IAAIF,EAAS,EACPC,EAAWR,KAAKC,OAAOJ,EAAa,GAAK,GACTW,EAA/BD,EAASX,GACdW,GAAUX,EAEZ,OAAOW,CACR,EAGcG,GACjB,OAAOV,KAAKW,IAAI,EAAGX,KAAKY,IAAId,EAAUD,EAAa,GACrD,CAEA,SAASgB,EAAmCC,GAY3C,IAXCC,EAAWD,EAAXC,YACAlB,EAAUiB,EAAVjB,WACAD,EAAmBkB,EAAnBlB,oBACSoB,EAAAF,EACTG,mBAAAA,OAAqB,IAAHD,GAAQA,EAQpBE,EAAe,SAACC,GAAa,OAAKnB,KAAKI,MAAMe,EAAQ,GAAKvB,EAAoB,EAE9EwB,EAAmB,SAACC,GACxB,IAAIC,EAAYP,GAAeM,EAAkB,GAAK,GAEtD,GAAgB,EAAZC,GAAiBA,GAAazB,EAAY,CAC5C,IAAIoB,EAOF,MAAO,CAAEM,YAAY,GANL,EAAZD,EACFA,EAAYzB,EAAa,EACHA,EAAbyB,IACTA,EAAY,EAKjB,CAID,OAFoBJ,EAAaH,KACXG,EAAaI,GAE1B,CAAEC,YAAY,GAGhB,CAAEA,YAAY,EAAOD,UAAAA,IAGxBE,EAAiB,SAACH,GACtB,IAAMC,EAAYP,EAAcnB,GAAuByB,EAAkB,GAAK,GAC9E,OAAgB,EAAZC,GAA+BA,GAAdzB,EACZ,CAAE0B,YAAY,GAEhB,CAAEA,YAAY,EAAOD,UAAAA,IAG9B,OA3CSR,EAATnB,WA4CE,KAAKO,EAAcO,MACjB,OAAOW,GAAiB,GAC1B,KAAKlB,EAAcI,KACjB,OAAOc,GAAiB,GAC1B,KAAKlB,EAAcG,KACjB,OAAOmB,GAAe,GACxB,KAAKtB,EAAcC,GACjB,OAAOqB,GAAe,GAE5B,UAEgBC,EAAmCC,GAsBjD,IARD,IAZC7B,EAAU6B,EAAV7B,WACAD,EAAmB8B,EAAnB9B,oBACAD,EAAS+B,EAAT/B,UAASgC,EAAAD,EACTE,gBAAAA,OAAkB,IAAHD,EAAG,GAAEA,EAAAE,EAAAH,EACpBT,mBAAAA,OAAqB,IAAHY,GAAQA,EAStBtB,EAASM,EAAoC,CAC/CE,YAfSW,EAAXX,YAgBElB,WAAAA,EACAD,oBAAAA,EACAD,UAAAA,EACAsB,mBAAAA,KAEMV,EAAOgB,YAAcK,EAAgBE,SAASvB,EAAOe,YAC3Df,EAASM,EAAoC,CAC3CE,YAAaR,EAAOe,UACpBzB,WAAAA,EACAD,oBAAAA,EACAD,UAAAA,EACAsB,mBAAAA,IAIJ,OAAOV,CACT"}
1
+ {"version":3,"file":"gridKeyboardNavigationHelper.js","sources":["../../../../src/hooks/useGridKeyboardNavigation/gridKeyboardNavigationHelper.ts"],"sourcesContent":["import { NavDirections } from \"../useFullKeyboardListeners\";\n\nexport function getActiveIndexFromInboundNavigation({\n direction,\n numberOfItemsInLine,\n itemsCount\n}: {\n direction: NavDirections;\n numberOfItemsInLine: number;\n itemsCount: number;\n}) {\n const getRawIndex = () => {\n const firstLineMiddleIndex = Math.floor(numberOfItemsInLine / 2);\n if (direction === NavDirections.UP) {\n // last line, middle\n const rowCount = Math.ceil(itemsCount / numberOfItemsInLine);\n return (rowCount - 1) * numberOfItemsInLine + firstLineMiddleIndex;\n }\n if (direction === NavDirections.DOWN) {\n // first line, middle\n return firstLineMiddleIndex;\n }\n if (direction === NavDirections.LEFT) {\n // middle line, last item\n let result = numberOfItemsInLine - 1;\n const midIndex = Math.floor((itemsCount - 1) / 2);\n while (result < midIndex) {\n result += numberOfItemsInLine;\n }\n return result;\n }\n if (direction === NavDirections.RIGHT) {\n // middle line, first item\n let result = 0;\n const midIndex = Math.floor((itemsCount - 1) / 2);\n while (result + numberOfItemsInLine < midIndex) {\n result += numberOfItemsInLine;\n }\n return result;\n }\n };\n\n const rawIndex = getRawIndex();\n return Math.max(0, Math.min(rawIndex, itemsCount - 1));\n}\n\nfunction calcRawNewIndexAfterArrowNavigation({\n activeIndex,\n itemsCount,\n numberOfItemsInLine,\n direction\n}: {\n activeIndex: number;\n itemsCount: number;\n numberOfItemsInLine: number;\n direction: NavDirections;\n}) {\n const getIndexLine = (index: number) => Math.ceil((index + 1) / numberOfItemsInLine);\n\n const horizontalChange = (isIndexIncrease: boolean) => {\n const nextIndex = activeIndex + (isIndexIncrease ? 1 : -1);\n if (nextIndex < 0 || itemsCount <= nextIndex) {\n return { isOutbound: true };\n }\n const currentLine = getIndexLine(activeIndex);\n const nextIndexLine = getIndexLine(nextIndex);\n if (currentLine !== nextIndexLine) {\n return { isOutbound: true };\n }\n\n return { isOutbound: false, nextIndex };\n };\n\n const verticalChange = (isIndexIncrease: boolean) => {\n const nextIndex = activeIndex + numberOfItemsInLine * (isIndexIncrease ? 1 : -1);\n if (nextIndex < 0 || itemsCount <= nextIndex) {\n return { isOutbound: true };\n }\n return { isOutbound: false, nextIndex };\n };\n\n switch (direction) {\n case NavDirections.RIGHT:\n return horizontalChange(true);\n case NavDirections.LEFT:\n return horizontalChange(false);\n case NavDirections.DOWN:\n return verticalChange(true);\n case NavDirections.UP:\n return verticalChange(false);\n }\n}\n\nexport function calcActiveIndexAfterArrowNavigation({\n activeIndex,\n itemsCount,\n numberOfItemsInLine,\n direction,\n disabledIndexes = []\n}: {\n activeIndex: number;\n itemsCount: number;\n numberOfItemsInLine: number;\n direction: NavDirections;\n disabledIndexes?: number[];\n}) {\n let result = calcRawNewIndexAfterArrowNavigation({ activeIndex, itemsCount, numberOfItemsInLine, direction });\n while (!result.isOutbound && disabledIndexes.includes(result.nextIndex)) {\n result = calcRawNewIndexAfterArrowNavigation({\n activeIndex: result.nextIndex,\n itemsCount,\n numberOfItemsInLine,\n direction\n });\n }\n\n return result;\n}\n"],"names":["getActiveIndexFromInboundNavigation","_ref","direction","numberOfItemsInLine","itemsCount","rawIndex","firstLineMiddleIndex","Math","floor","NavDirections","UP","ceil","DOWN","LEFT","result","midIndex","RIGHT","getRawIndex","max","min","calcRawNewIndexAfterArrowNavigation","_ref2","activeIndex","getIndexLine","index","horizontalChange","isIndexIncrease","nextIndex","isOutbound","verticalChange","calcActiveIndexAfterArrowNavigation","_ref3","_ref3$disabledIndexes","disabledIndexes","includes"],"mappings":"+DAEM,SAAUA,EAAmCC,GAQlD,IAPCC,EAASD,EAATC,UACAC,EAAmBF,EAAnBE,oBACAC,EAAUH,EAAVG,WAqCMC,EA/Bc,WAClB,IAAMC,EAAuBC,KAAKC,MAAML,EAAsB,GAC9D,GAAID,IAAcO,EAAcC,GAG9B,OADiBH,KAAKI,KAAKP,EAAaD,GACrB,GAAKA,EAAsBG,EAEhD,GAAIJ,IAAcO,EAAcG,KAE9B,OAAON,EAET,GAAIJ,IAAcO,EAAcI,KAAM,CAIpC,IAFA,IAAIC,EAASX,EAAsB,EAC7BY,EAAWR,KAAKC,OAAOJ,EAAa,GAAK,GAC/BW,EAATD,GACLA,GAAUX,EAEZ,OAAOW,CACR,CACD,GAAIZ,IAAcO,EAAcO,MAAO,CAIrC,IAFA,IAAIF,EAAS,EACPC,EAAWR,KAAKC,OAAOJ,EAAa,GAAK,GACTW,EAA/BD,EAASX,GACdW,GAAUX,EAEZ,OAAOW,CACR,EAGcG,GACjB,OAAOV,KAAKW,IAAI,EAAGX,KAAKY,IAAId,EAAUD,EAAa,GACrD,CAEA,SAASgB,EAAmCC,GAU3C,IATCC,EAAWD,EAAXC,YACAlB,EAAUiB,EAAVjB,WACAD,EAAmBkB,EAAnBlB,oBAQMoB,EAAe,SAACC,GAAa,OAAKjB,KAAKI,MAAMa,EAAQ,GAAKrB,EAAoB,EAE9EsB,EAAmB,SAACC,GACxB,IAAMC,EAAYL,GAAeI,EAAkB,GAAK,GACxD,OAAgB,EAAZC,GAA+BA,GAAdvB,GAGDmB,EAAaD,KACXC,EAAaI,GAH1B,CAAEC,YAAY,GAQhB,CAAEA,YAAY,EAAOD,UAAAA,IAGxBE,EAAiB,SAACH,GACtB,IAAMC,EAAYL,EAAcnB,GAAuBuB,EAAkB,GAAK,GAC9E,OAAgB,EAAZC,GAA+BA,GAAdvB,EACZ,CAAEwB,YAAY,GAEhB,CAAEA,YAAY,EAAOD,UAAAA,IAG9B,OA/BSN,EAATnB,WAgCE,KAAKO,EAAcO,MACjB,OAAOS,GAAiB,GAC1B,KAAKhB,EAAcI,KACjB,OAAOY,GAAiB,GAC1B,KAAKhB,EAAcG,KACjB,OAAOiB,GAAe,GACxB,KAAKpB,EAAcC,GACjB,OAAOmB,GAAe,GAE5B,CAEgB,SAAAC,EAAmCC,GAcjD,IAFD,IAVC3B,EAAU2B,EAAV3B,WACAD,EAAmB4B,EAAnB5B,oBACAD,EAAS6B,EAAT7B,UAAS8B,EAAAD,EACTE,gBAAAA,OAAkB,IAAHD,EAAG,GAAEA,EAQhBlB,EAASM,EAAoC,CAAEE,YAZxCS,EAAXT,YAYgElB,WAAAA,EAAYD,oBAAAA,EAAqBD,UAAAA,KACzFY,EAAOc,YAAcK,EAAgBC,SAASpB,EAAOa,YAC3Db,EAASM,EAAoC,CAC3CE,YAAaR,EAAOa,UACpBvB,WAAAA,EACAD,oBAAAA,EACAD,UAAAA,IAIJ,OAAOY,CACT"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as n}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as e,useRef as i,useContext as o,useEffect as t,useCallback as r}from"react";import{GridKeyboardNavigationContext as a}from"../../components/GridKeyboardNavigationContext/GridKeyboardNavigationContext.js";import u from"../useFullKeyboardListeners.js";import c from"../useEventListener/index.js";import{getActiveIndexFromInboundNavigation as s,calcActiveIndexAfterArrowNavigation as d}from"./gridKeyboardNavigationHelper.js";import{useLastNavigationDirection as l}from"../../components/Menu/Menu/hooks/useLastNavigationDirection.js";var f=-1;function v(v){var m=v.ref,b=v.itemsCount,I=v.numberOfItemsInLine,g=v.onItemClicked,p=v.entryFocusStrategy,x=void 0===p?"directional":p,N=v.getItemByIndex,y=void 0===N?function(n){}:N,O=v.focusOnMount,j=void 0!==O&&O,C=v.focusItemIndexOnMount,L=void 0===C?f:C,k=v.disabledIndexes,K=void 0===k?[]:k,M=v.circularNavigation,A=void 0!==M&&M,S=e(j&&L!==f),h=n(S,2),w=h[0],B=h[1],D=i(!1),E=e(w?L:f),F=n(E,2),G=F[0],H=F[1],_=e(!0),P=n(_,2),R=P[0],T=P[1],q=o(a);t((function(){D.current?B(!1):D.current=!0}),[G]);var z=r((function(){var n;return null===(n=m.current)||void 0===n?void 0:n.blur()}),[m]),J=l().lastNavigationDirectionRef,Q=r((function(){if(G===f){var n=J.current;H("directional"===x&&n?s({direction:n,numberOfItemsInLine:I,itemsCount:b}):0),T(!0)}else T(!0)}),[G,x,b,J,I,H,T]),U=r((function(){T(!1)}),[T]),V=r((function(){T(!0),H(f)}),[H]);c({eventName:"focus",callback:Q,ref:m}),c({eventName:"mousedown",callback:U,ref:m}),c({eventName:"blur",callback:V,ref:m}),t((function(){var n;G>-1&&(null===(n=m.current)||void 0===n||n.focus())}),[G,m]);var W=r((function(n){T(arguments.length>1&&void 0!==arguments[1]&&arguments[1]),H(n),g(y(n),n)}),[H,g,y]),X=r((function(){if(R)return W(G,!0)}),[R,W,G]);return u({ref:m,onSelectionKey:X,onArrowNavigation:function(n){if(T(!0),G!==f){var e=d({activeIndex:G,itemsCount:b,numberOfItemsInLine:I,direction:n,disabledIndexes:K,circularNavigation:A}),i=e.nextIndex;e.isOutbound?null==q||q.onOutboundNavigation(m,n):H(i)}else H(0)},onEscape:z,focusOnMount:j}),{activeIndex:R?G:f,onSelectionAction:W,isInitialActiveState:w}}export{v as default};
1
+ import{slicedToArray as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as n,useRef as t,useContext as o,useEffect as i,useCallback as r}from"react";import{GridKeyboardNavigationContext as a}from"../../components/GridKeyboardNavigationContext/GridKeyboardNavigationContext.js";import u from"../useFullKeyboardListeners.js";import c from"../useEventListener/index.js";import{getActiveIndexFromInboundNavigation as s,calcActiveIndexAfterArrowNavigation as d}from"./gridKeyboardNavigationHelper.js";import{useLastNavigationDirection as l}from"../../components/Menu/Menu/hooks/useLastNavigationDirection.js";var f=-1;function m(m){var v=m.ref,b=m.itemsCount,I=m.numberOfItemsInLine,p=m.onItemClicked,g=m.entryFocusStrategy,x=void 0===g?"directional":g,N=m.getItemByIndex,y=void 0===N?function(e){}:N,O=m.focusOnMount,j=void 0!==O&&O,C=m.focusItemIndexOnMount,L=void 0===C?f:C,k=m.disabledIndexes,K=void 0===k?[]:k,M=n(j&&L!==f),A=e(M,2),S=A[0],h=A[1],w=t(!1),B=n(S?L:f),D=e(B,2),E=D[0],F=D[1],G=n(!0),H=e(G,2),_=H[0],P=H[1],R=o(a);i((function(){w.current?h(!1):w.current=!0}),[E]);var T=r((function(){var e;return null===(e=v.current)||void 0===e?void 0:e.blur()}),[v]),q=l().lastNavigationDirectionRef,z=r((function(){if(E===f){var e=q.current;F("directional"===x&&e?s({direction:e,numberOfItemsInLine:I,itemsCount:b}):0),P(!0)}else P(!0)}),[E,x,b,q,I,F,P]),J=r((function(){P(!1)}),[P]),Q=r((function(){P(!0),F(f)}),[F]);c({eventName:"focus",callback:z,ref:v}),c({eventName:"mousedown",callback:J,ref:v}),c({eventName:"blur",callback:Q,ref:v}),i((function(){var e;E>-1&&(null===(e=v.current)||void 0===e||e.focus())}),[E,v]);var U=r((function(e){P(arguments.length>1&&void 0!==arguments[1]&&arguments[1]),F(e),p(y(e),e)}),[F,p,y]),V=r((function(){if(_)return U(E,!0)}),[_,U,E]);return u({ref:v,onSelectionKey:V,onArrowNavigation:function(e){if(P(!0),E!==f){var n=d({activeIndex:E,itemsCount:b,numberOfItemsInLine:I,direction:e,disabledIndexes:K}),t=n.nextIndex;n.isOutbound?null==R||R.onOutboundNavigation(v,e):F(t)}else F(0)},onEscape:T,focusOnMount:j}),{activeIndex:_?E:f,onSelectionAction:U,isInitialActiveState:S}}export{m as default};
2
2
  //# sourceMappingURL=useGridKeyboardNavigation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGridKeyboardNavigation.js","sources":["../../../../src/hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.ts"],"sourcesContent":["import { MutableRefObject, ReactElement, useCallback, useContext, useEffect, useRef, useState } from \"react\";\nimport { GridKeyboardNavigationContext } from \"../../components/GridKeyboardNavigationContext/GridKeyboardNavigationContext\";\nimport useFullKeyboardListeners, { NavDirections } from \"../../hooks/useFullKeyboardListeners\";\nimport useEventListener from \"../../hooks/useEventListener\";\nimport {\n calcActiveIndexAfterArrowNavigation,\n getActiveIndexFromInboundNavigation\n} from \"./gridKeyboardNavigationHelper\";\nimport { useLastNavigationDirection } from \"../../components/Menu/Menu/hooks/useLastNavigationDirection\";\n\nconst NO_ACTIVE_INDEX = -1;\n\n/**\n * A hook which is used for accessible keyboard navigation. Useful for components rendering a list of items that can be navigated and selected with a keyboard.\n * @param {Object} options\n * @param {React.MutableRefObject} options.ref - the reference for the component that listens to keyboard\n * @param {number} options.itemsCount - the number of items\n * @param {number} options.numberOfItemsInLine - the number of items on each line of the grid\n * @param {function} options.onItemClicked - the callback for selecting an item. It will be called when an active item is selected, for example with \"Enter\".\n * @param {function} options.getItemByIndex - a function which gets an index as a param, and returns the item on that index\n * @param {\"directional\" | \"first\"} options.entryFocusStrategy - Determines how the first item is focused when entering the grid via keyboard.\n * - \"directional\": Tries to focus based on the entry direction (Tab vs Shift+Tab). This is the default.\n * - \"first\": Always focuses the first item.\n * @param {boolean=} options.focusOnMount - if true, the referenced element will be focused when mounted\n * @param {number=} options.focusItemIndexOnMount - optional item index to focus when mounted. Only works with \"options.focusOnMount\".\n * @param {number[]=} options.disabledIndexes - optional array of disabled indices, which will be skipped while navigating.\n * @param {boolean=} options.circularNavigation - if true, the navigation will wrap around the grid\n * @returns {useGridKeyboardNavigationResult}\n *\n * @typedef useGridKeyboardNavigationResult\n * @property {number} activeIndex - the currently active index\n * @property {boolean} isInitialActiveState - if true, the currently active element was due to an initial mounting index option. See \"options.focusItemIndexOnMount\".\n * @property {(index: number, isKeyboardAction?: boolean) => void} onSelectionAction - the callback which should be used to select an item.\n * It should be called with the selected item's index. Use this callback for onClick handlers, for example.\n * The \"isKeyboardAction\" can be used to indicate a keyboard selection, which will affect the currently active index.\n */\nexport default function useGridKeyboardNavigation({\n ref,\n itemsCount,\n numberOfItemsInLine,\n onItemClicked, // the callback to call when an item is selected\n entryFocusStrategy = \"directional\",\n getItemByIndex = (_index: number) => {},\n focusOnMount = false,\n focusItemIndexOnMount = NO_ACTIVE_INDEX,\n disabledIndexes = [],\n circularNavigation = false\n}: {\n ref: MutableRefObject<HTMLElement>;\n itemsCount: number;\n numberOfItemsInLine: number;\n onItemClicked: (element: HTMLElement | ReactElement | void | string, index: number) => void;\n entryFocusStrategy?: \"directional\" | \"first\";\n getItemByIndex: (index: number | void) => HTMLElement | ReactElement | void | string;\n focusOnMount?: boolean;\n focusItemIndexOnMount?: number;\n disabledIndexes?: number[];\n circularNavigation?: boolean;\n}) {\n const [isInitialActiveState, setIsInitialActiveState] = useState(\n focusOnMount && focusItemIndexOnMount !== NO_ACTIVE_INDEX\n );\n const skippedInitialActiveIndexChange = useRef(false);\n const [activeIndex, setActiveIndex] = useState(isInitialActiveState ? focusItemIndexOnMount : NO_ACTIVE_INDEX);\n const [isUsingKeyboardNav, setIsUsingKeyboardNav] = useState(true);\n\n const keyboardContext = useContext(GridKeyboardNavigationContext);\n\n const onArrowNavigation = (direction: NavDirections) => {\n setIsUsingKeyboardNav(true);\n if (activeIndex === NO_ACTIVE_INDEX) {\n setActiveIndex(0);\n return;\n }\n\n const { isOutbound, nextIndex } = calcActiveIndexAfterArrowNavigation({\n activeIndex,\n itemsCount,\n numberOfItemsInLine,\n direction,\n disabledIndexes,\n circularNavigation\n });\n if (isOutbound) {\n keyboardContext?.onOutboundNavigation(ref, direction);\n } else {\n setActiveIndex(nextIndex);\n }\n };\n\n useEffect(() => {\n if (!skippedInitialActiveIndexChange.current) {\n skippedInitialActiveIndexChange.current = true;\n return;\n }\n // if the active state changes, this is no longer the initial active state\n setIsInitialActiveState(false);\n }, [activeIndex]);\n\n const blurTargetElement = useCallback(() => ref.current?.blur(), [ref]);\n\n const { lastNavigationDirectionRef } = useLastNavigationDirection();\n const onFocus = useCallback(() => {\n if (activeIndex !== NO_ACTIVE_INDEX) {\n setIsUsingKeyboardNav(true);\n return;\n }\n\n const direction = lastNavigationDirectionRef.current;\n setActiveIndex(\n entryFocusStrategy === \"directional\" && direction\n ? getActiveIndexFromInboundNavigation({ direction, numberOfItemsInLine, itemsCount })\n : 0\n );\n setIsUsingKeyboardNav(true);\n }, [\n activeIndex,\n entryFocusStrategy,\n itemsCount,\n lastNavigationDirectionRef,\n numberOfItemsInLine,\n setActiveIndex,\n setIsUsingKeyboardNav\n ]);\n\n const onMouseDown = useCallback(() => {\n // If the user clicked on the grid element we assume that that what will caused the focus\n setIsUsingKeyboardNav(false);\n }, [setIsUsingKeyboardNav]);\n\n const onBlur = useCallback(() => {\n // If we lose focus we will return to isUsingKeyboardNav default mode which is that any interaction\n // with the grid always done by keyboard, unless we clicked on the grid element before that with a mouse\n setIsUsingKeyboardNav(true);\n setActiveIndex(NO_ACTIVE_INDEX);\n }, [setActiveIndex]);\n\n useEventListener({ eventName: \"focus\", callback: onFocus, ref });\n useEventListener({ eventName: \"mousedown\", callback: onMouseDown, ref });\n useEventListener({ eventName: \"blur\", callback: onBlur, ref });\n\n useEffect(() => {\n if (activeIndex > -1) {\n ref.current?.focus();\n }\n }, [activeIndex, ref]);\n\n const onSelectionAction = useCallback(\n (index: number, isKeyboardAction = false) => {\n setIsUsingKeyboardNav(isKeyboardAction);\n setActiveIndex(index);\n\n onItemClicked(getItemByIndex(index), index);\n },\n [setActiveIndex, onItemClicked, getItemByIndex]\n );\n\n const onKeyboardSelection = useCallback(() => {\n if (!isUsingKeyboardNav) {\n return;\n }\n return onSelectionAction(activeIndex, true);\n }, [isUsingKeyboardNav, onSelectionAction, activeIndex]);\n\n useFullKeyboardListeners({\n ref,\n onSelectionKey: onKeyboardSelection,\n onArrowNavigation,\n onEscape: blurTargetElement,\n focusOnMount\n });\n\n // if the user is not using keyboard nav, the consumers should not treat the index as active\n const externalActiveIndex = isUsingKeyboardNav ? activeIndex : NO_ACTIVE_INDEX;\n return {\n activeIndex: externalActiveIndex,\n onSelectionAction,\n isInitialActiveState\n };\n}\n"],"names":["NO_ACTIVE_INDEX","useGridKeyboardNavigation","_ref","ref","itemsCount","numberOfItemsInLine","onItemClicked","_ref$entryFocusStrate","entryFocusStrategy","_ref$getItemByIndex","getItemByIndex","_index","_ref$focusOnMount","focusOnMount","_ref$focusItemIndexOn","focusItemIndexOnMount","_ref$disabledIndexes","disabledIndexes","_ref$circularNavigati","circularNavigation","_useState","useState","_useState2","_slicedToArray","isInitialActiveState","setIsInitialActiveState","skippedInitialActiveIndexChange","useRef","_useState3","_useState4","activeIndex","setActiveIndex","_useState5","_useState6","isUsingKeyboardNav","setIsUsingKeyboardNav","keyboardContext","useContext","GridKeyboardNavigationContext","useEffect","current","blurTargetElement","useCallback","_a","blur","lastNavigationDirectionRef","useLastNavigationDirection","onFocus","direction","getActiveIndexFromInboundNavigation","onMouseDown","onBlur","useEventListener","eventName","callback","focus","onSelectionAction","index","arguments","length","undefined","onKeyboardSelection","useFullKeyboardListeners","onSelectionKey","onArrowNavigation","_calcActiveIndexAfter","calcActiveIndexAfterArrowNavigation","nextIndex","isOutbound","onOutboundNavigation","onEscape"],"mappings":"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"}
1
+ {"version":3,"file":"useGridKeyboardNavigation.js","sources":["../../../../src/hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.ts"],"sourcesContent":["import { MutableRefObject, ReactElement, useCallback, useContext, useEffect, useRef, useState } from \"react\";\nimport { GridKeyboardNavigationContext } from \"../../components/GridKeyboardNavigationContext/GridKeyboardNavigationContext\";\nimport useFullKeyboardListeners, { NavDirections } from \"../../hooks/useFullKeyboardListeners\";\nimport useEventListener from \"../../hooks/useEventListener\";\nimport {\n calcActiveIndexAfterArrowNavigation,\n getActiveIndexFromInboundNavigation\n} from \"./gridKeyboardNavigationHelper\";\nimport { useLastNavigationDirection } from \"../../components/Menu/Menu/hooks/useLastNavigationDirection\";\n\nconst NO_ACTIVE_INDEX = -1;\n\n/**\n * A hook which is used for accessible keyboard navigation. Useful for components rendering a list of items that can be navigated and selected with a keyboard.\n * @param {Object} options\n * @param {React.MutableRefObject} options.ref - the reference for the component that listens to keyboard\n * @param {number} options.itemsCount - the number of items\n * @param {number} options.numberOfItemsInLine - the number of items on each line of the grid\n * @param {function} options.onItemClicked - the callback for selecting an item. It will be called when an active item is selected, for example with \"Enter\".\n * @param {function} options.getItemByIndex - a function which gets an index as a param, and returns the item on that index\n * @param {\"directional\" | \"first\"} options.entryFocusStrategy - Determines how the first item is focused when entering the grid via keyboard.\n * - \"directional\": Tries to focus based on the entry direction (Tab vs Shift+Tab). This is the default.\n * - \"first\": Always focuses the first item.\n * @param {boolean=} options.focusOnMount - if true, the referenced element will be focused when mounted\n * @param {number=} options.focusItemIndexOnMount - optional item index to focus when mounted. Only works with \"options.focusOnMount\".\n * @param {number[]=} options.disabledIndexes - optional array of disabled indices, which will be skipped while navigating.\n * @returns {useGridKeyboardNavigationResult}\n *\n * @typedef useGridKeyboardNavigationResult\n * @property {number} activeIndex - the currently active index\n * @property {boolean} isInitialActiveState - if true, the currently active element was due to an initial mounting index option. See \"options.focusItemIndexOnMount\".\n * @property {(index: number, isKeyboardAction?: boolean) => void} onSelectionAction - the callback which should be used to select an item.\n * It should be called with the selected item's index. Use this callback for onClick handlers, for example.\n * The \"isKeyboardAction\" can be used to indicate a keyboard selection, which will affect the currently active index.\n */\nexport default function useGridKeyboardNavigation({\n ref,\n itemsCount,\n numberOfItemsInLine,\n onItemClicked, // the callback to call when an item is selected\n entryFocusStrategy = \"directional\",\n getItemByIndex = (_index: number) => {},\n focusOnMount = false,\n focusItemIndexOnMount = NO_ACTIVE_INDEX,\n disabledIndexes = []\n}: {\n ref: MutableRefObject<HTMLElement>;\n itemsCount: number;\n numberOfItemsInLine: number;\n onItemClicked: (element: HTMLElement | ReactElement | void | string, index: number) => void;\n entryFocusStrategy?: \"directional\" | \"first\";\n getItemByIndex: (index: number | void) => HTMLElement | ReactElement | void | string;\n focusOnMount?: boolean;\n focusItemIndexOnMount?: number;\n disabledIndexes?: number[];\n}) {\n const [isInitialActiveState, setIsInitialActiveState] = useState(\n focusOnMount && focusItemIndexOnMount !== NO_ACTIVE_INDEX\n );\n const skippedInitialActiveIndexChange = useRef(false);\n const [activeIndex, setActiveIndex] = useState(isInitialActiveState ? focusItemIndexOnMount : NO_ACTIVE_INDEX);\n const [isUsingKeyboardNav, setIsUsingKeyboardNav] = useState(true);\n\n const keyboardContext = useContext(GridKeyboardNavigationContext);\n\n const onArrowNavigation = (direction: NavDirections) => {\n setIsUsingKeyboardNav(true);\n if (activeIndex === NO_ACTIVE_INDEX) {\n setActiveIndex(0);\n return;\n }\n\n const { isOutbound, nextIndex } = calcActiveIndexAfterArrowNavigation({\n activeIndex,\n itemsCount,\n numberOfItemsInLine,\n direction,\n disabledIndexes\n });\n if (isOutbound) {\n keyboardContext?.onOutboundNavigation(ref, direction);\n } else {\n setActiveIndex(nextIndex);\n }\n };\n\n useEffect(() => {\n if (!skippedInitialActiveIndexChange.current) {\n skippedInitialActiveIndexChange.current = true;\n return;\n }\n // if the active state changes, this is no longer the initial active state\n setIsInitialActiveState(false);\n }, [activeIndex]);\n\n const blurTargetElement = useCallback(() => ref.current?.blur(), [ref]);\n\n const { lastNavigationDirectionRef } = useLastNavigationDirection();\n const onFocus = useCallback(() => {\n if (activeIndex !== NO_ACTIVE_INDEX) {\n setIsUsingKeyboardNav(true);\n return;\n }\n\n const direction = lastNavigationDirectionRef.current;\n setActiveIndex(\n entryFocusStrategy === \"directional\" && direction\n ? getActiveIndexFromInboundNavigation({ direction, numberOfItemsInLine, itemsCount })\n : 0\n );\n setIsUsingKeyboardNav(true);\n }, [\n activeIndex,\n entryFocusStrategy,\n itemsCount,\n lastNavigationDirectionRef,\n numberOfItemsInLine,\n setActiveIndex,\n setIsUsingKeyboardNav\n ]);\n\n const onMouseDown = useCallback(() => {\n // If the user clicked on the grid element we assume that that what will caused the focus\n setIsUsingKeyboardNav(false);\n }, [setIsUsingKeyboardNav]);\n\n const onBlur = useCallback(() => {\n // If we lose focus we will return to isUsingKeyboardNav default mode which is that any interaction\n // with the grid always done by keyboard, unless we clicked on the grid element before that with a mouse\n setIsUsingKeyboardNav(true);\n setActiveIndex(NO_ACTIVE_INDEX);\n }, [setActiveIndex]);\n\n useEventListener({ eventName: \"focus\", callback: onFocus, ref });\n useEventListener({ eventName: \"mousedown\", callback: onMouseDown, ref });\n useEventListener({ eventName: \"blur\", callback: onBlur, ref });\n\n useEffect(() => {\n if (activeIndex > -1) {\n ref.current?.focus();\n }\n }, [activeIndex, ref]);\n\n const onSelectionAction = useCallback(\n (index: number, isKeyboardAction = false) => {\n setIsUsingKeyboardNav(isKeyboardAction);\n setActiveIndex(index);\n\n onItemClicked(getItemByIndex(index), index);\n },\n [setActiveIndex, onItemClicked, getItemByIndex]\n );\n\n const onKeyboardSelection = useCallback(() => {\n if (!isUsingKeyboardNav) {\n return;\n }\n return onSelectionAction(activeIndex, true);\n }, [isUsingKeyboardNav, onSelectionAction, activeIndex]);\n\n useFullKeyboardListeners({\n ref,\n onSelectionKey: onKeyboardSelection,\n onArrowNavigation,\n onEscape: blurTargetElement,\n focusOnMount\n });\n\n // if the user is not using keyboard nav, the consumers should not treat the index as active\n const externalActiveIndex = isUsingKeyboardNav ? activeIndex : NO_ACTIVE_INDEX;\n return {\n activeIndex: externalActiveIndex,\n onSelectionAction,\n isInitialActiveState\n };\n}\n"],"names":["NO_ACTIVE_INDEX","useGridKeyboardNavigation","_ref","ref","itemsCount","numberOfItemsInLine","onItemClicked","_ref$entryFocusStrate","entryFocusStrategy","_ref$getItemByIndex","getItemByIndex","_index","_ref$focusOnMount","focusOnMount","_ref$focusItemIndexOn","focusItemIndexOnMount","_ref$disabledIndexes","disabledIndexes","_useState","useState","_useState2","_slicedToArray","isInitialActiveState","setIsInitialActiveState","skippedInitialActiveIndexChange","useRef","_useState3","_useState4","activeIndex","setActiveIndex","_useState5","_useState6","isUsingKeyboardNav","setIsUsingKeyboardNav","keyboardContext","useContext","GridKeyboardNavigationContext","useEffect","current","blurTargetElement","useCallback","_a","blur","lastNavigationDirectionRef","useLastNavigationDirection","onFocus","direction","getActiveIndexFromInboundNavigation","onMouseDown","onBlur","useEventListener","eventName","callback","focus","onSelectionAction","index","arguments","length","undefined","onKeyboardSelection","useFullKeyboardListeners","onSelectionKey","onArrowNavigation","_calcActiveIndexAfter","calcActiveIndexAfterArrowNavigation","nextIndex","isOutbound","onOutboundNavigation","onEscape"],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import"../style/dist/index.min.css.js";export{default as Accordion}from"./components/Accordion/Accordion/Accordion.js";export{default as AccordionItem}from"./components/Accordion/AccordionItem/AccordionItem.js";export{default as AlertBanner}from"./components/AlertBanner/AlertBanner.js";export{default as AlertBannerButton}from"./components/AlertBanner/AlertBannerButton/AlertBannerButton.js";export{default as AlertBannerLink}from"./components/AlertBanner/AlertBannerLink/AlertBannerLink.js";export{default as AlertBannerText}from"./components/AlertBanner/AlertBannerText/AlertBannerText.js";export{default as AttentionBox}from"./components/AttentionBox/AttentionBox.js";export{default as AttentionBoxLink}from"./components/AttentionBox/AttentionBoxLink/AttentionBoxLink.js";export{default as Avatar}from"./components/Avatar/Avatar.js";export{default as AvatarGroup}from"./components/AvatarGroup/AvatarGroup.js";export{default as Badge}from"./components/Badge/Badge.js";export{default as Box}from"./components/Box/Box.js";export{default as BreadcrumbsBar}from"./components/BreadcrumbsBar/BreadcrumbsBar.js";export{default as BreadcrumbItem}from"./components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbItem.js";export{default as BreadcrumbMenu}from"./components/BreadcrumbsBar/BreadcrumbMenu/BreadcrumbMenu.js";export{default as BreadcrumbMenuItem}from"./components/BreadcrumbsBar/BreadcrumbMenu/BreadcrumbMenuItem/BreadcrumbMenuItem.js";export{default as Button}from"./components/Button/Button.js";export{default as ButtonGroup}from"./components/ButtonGroup/ButtonGroup.js";export{default as Checkbox}from"./components/Checkbox/Checkbox.js";export{default as Chips}from"./components/Chips/Chips.js";export{default as Clickable}from"./components/Clickable/Clickable.js";export{default as ColorPicker}from"./components/ColorPicker/ColorPicker.js";export{default as ColorPickerContent}from"./components/ColorPicker/components/ColorPickerContent/ColorPickerContent.js";export{default as Combobox}from"./components/Combobox/Combobox.js";export{default as Counter}from"./components/Counter/Counter.js";export{default as DatePicker}from"./components/DatePicker/DatePicker.js";export{default as Dialog}from"./components/Dialog/Dialog.js";export{default as DialogContentContainer}from"./components/DialogContentContainer/DialogContentContainer.js";export{default as Divider}from"./components/Divider/Divider.js";export{default as Dropdown}from"./components/Dropdown/Dropdown.js";export{default as DropdownMenu}from"./components/Dropdown/components/menu/menu.js";export{default as DropdownOption}from"./components/Dropdown/components/option/option.js";export{default as DropdownSingleValue}from"./components/Dropdown/components/singleValue/singleValue.js";export{default as EditableHeading}from"./components/EditableHeading/EditableHeading.js";export{default as EditableText}from"./components/EditableText/EditableText.js";export{default as EmptyState}from"./components/EmptyState/EmptyState.js";export{default as ExpandCollapse}from"./components/ExpandCollapse/ExpandCollapse.js";export{default as Flex}from"./components/Flex/Flex.js";export{default as FormattedNumber}from"./components/FormattedNumber/FormattedNumber.js";export{GridKeyboardNavigationContext,useGridKeyboardNavigationContext}from"./components/GridKeyboardNavigationContext/GridKeyboardNavigationContext.js";export{default as Heading}from"./components/Heading/Heading.js";export{default as HiddenText}from"./components/HiddenText/HiddenText.js";export{default as Icon}from"./components/Icon/Icon.js";export{default as CustomSvgIcon}from"./components/Icon/CustomSvgIcon/CustomSvgIcon.js";export{default as IconButton}from"./components/IconButton/IconButton.js";export{default as Label}from"./components/Label/Label.js";export{default as LayerProvider}from"./components/LayerProvider/LayerProvider.js";export{default as Link}from"./components/Link/Link.js";export{default as List}from"./components/List/List.js";export{default as ListItem}from"./components/ListItem/ListItem.js";export{default as ListItemAvatar}from"./components/ListItemAvatar/ListItemAvatar.js";export{default as ListItemIcon}from"./components/ListItemIcon/ListItemIcon.js";export{default as ListTitle}from"./components/ListTitle/ListTitle.js";export{default as Loader}from"./components/Loader/Loader.js";export{default as Menu}from"./components/Menu/Menu/Menu.js";export{default as MenuItem}from"./components/Menu/MenuItem/MenuItem.js";export{default as MenuItemButton}from"./components/Menu/MenuItemButton/MenuItemButton.js";export{default as MenuDivider}from"./components/Menu/MenuDivider/MenuDivider.js";export{default as MenuTitle}from"./components/Menu/MenuTitle/MenuTitle.js";export{default as MenuGridItem}from"./components/Menu/MenuGridItem/MenuGridItem.js";export{default as MenuButton}from"./components/MenuButton/MenuButton.js";export{default as Modal}from"./components/LegacyModal/LegacyModal.js";export{default as ModalHeader}from"./components/LegacyModal/LegacyModalHeader/LegacyModalHeader.js";export{default as ModalContent}from"./components/LegacyModal/LegacyModalContent/LegacyModalContent.js";export{default as ModalFooter}from"./components/LegacyModal/LegacyModalFooter/LegacyModalFooter.js";export{default as ModalFooterButtons}from"./components/LegacyModal/LegacyModalFooter/LegacyModalFooterButtons/LegacyModalFooterButtons.js";export{default as MultiStepIndicator}from"./components/MultiStepIndicator/MultiStepIndicator.js";export{default as LinearProgressBar}from"./components/ProgressBars/LinearProgressBar/LinearProgressBar.js";export{default as RadioButton}from"./components/RadioButton/RadioButton.js";export{default as Search}from"./components/Search/Search.js";export{default as Skeleton}from"./components/Skeleton/Skeleton.js";export{default as Slider}from"./components/Slider/Slider.js";export{default as SplitButton}from"./components/SplitButton/SplitButton.js";export{default as SplitButtonMenu}from"./components/SplitButton/SplitButtonMenu/SplitButtonMenu.js";export{default as Steps}from"./components/Steps/Steps.js";export{default as Table}from"./components/Table/Table/Table.js";export{default as TableContainer}from"./components/Table/TableContainer/TableContainer.js";export{default as TableHeader}from"./components/Table/TableHeader/TableHeader.js";export{default as TableHeaderCell}from"./components/Table/TableHeaderCell/TableHeaderCell.js";export{default as TableBody}from"./components/Table/TableBody/TableBody.js";export{default as TableVirtualizedBody}from"./components/Table/TableVirtualizedBody/TableVirtualizedBody.js";export{default as TableRow}from"./components/Table/TableRow/TableRow.js";export{default as TableRowMenu}from"./components/Table/TableRowMenu/TableRowMenu.js";export{default as TableCell}from"./components/Table/TableCell/TableCell.js";export{default as Tab}from"./components/Tabs/Tab/Tab.js";export{default as TabList}from"./components/Tabs/TabList/TabList.js";export{default as TabPanel}from"./components/Tabs/TabPanel/TabPanel.js";export{default as TabsContext}from"./components/Tabs/TabsContext/TabsContext.js";export{default as TabPanels}from"./components/Tabs/TabPanels/TabPanels.js";export{default as Text}from"./components/Text/Text.js";export{default as TextArea}from"./components/TextArea/TextArea.js";export{default as TextField}from"./components/TextField/TextField.js";export{default as TextWithHighlight}from"./components/TextWithHighlight/TextWithHighlight.js";export{default as ThemeProvider}from"./components/ThemeProvider/ThemeProvider.js";export{default as Tipseen}from"./components/Tipseen/Tipseen.js";export{default as TipseenContent}from"./components/Tipseen/TipseenContent.js";export{default as TipseenWizard}from"./components/Tipseen/TipseenWizard.js";export{default as TipseenImage}from"./components/Tipseen/TipseenImage.js";export{default as TipseenMedia}from"./components/Tipseen/TipseenMedia/TipseenMedia.js";export{default as Toast}from"./components/Toast/Toast.js";export{default as ToastButton}from"./components/Toast/ToastButton/ToastButton.js";export{default as ToastLink}from"./components/Toast/ToastLink/ToastLink.js";export{default as Toggle}from"./components/Toggle/Toggle.js";export{default as Tooltip}from"./components/Tooltip/Tooltip.js";export{default as TransitionView}from"./components/TransitionView/TransitionView.js";export{default as VirtualizedGrid}from"./components/VirtualizedGrid/VirtualizedGrid.js";export{default as VirtualizedList}from"./components/VirtualizedList/VirtualizedList.js";export{default as ColorUtils}from"./utils/colors-utils.js";export{default as useKeyEvent}from"./hooks/useKeyEvent/index.js";export{default as useEventListener}from"./hooks/useEventListener/index.js";export{default as useDebounceEvent}from"./hooks/useDebounceEvent/index.js";export{default as useClickOutside}from"./hooks/useClickOutside/index.js";export{default as useResizeObserver}from"./hooks/useResizeObserver.js";export{default as useAfterFirstRender}from"./hooks/useAfterFirstRender/index.js";export{default as useTimeout}from"./hooks/useTimeout/index.js";export{default as usePrevious}from"./hooks/usePrevious/index.js";export{default as useSetFocus}from"./hooks/useSetFocus/index.js";export{default as useMergeRefs}from"./hooks/useMergeRefs.js";export{default as useIsMouseOver}from"./hooks/useIsMouseOver.js";export{default as useHover}from"./hooks/useHover/useHover.js";export{default as useGridKeyboardNavigation}from"./hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.js";export{default as useIsOverflowing}from"./hooks/useIsOverflowing/useIsOverflowing.js";export{default as useActiveDescendantListFocus}from"./hooks/useActiveDescendantListFocus/index.js";export{useMediaQuery}from"./hooks/useMediaQuery/index.js";export{default as useVibeMediaQuery}from"./hooks/useVibeMediaQuery/index.js";export{default as useListenFocusTriggers}from"./hooks/useListenFocusTriggers/index.js";export{default as useClickableProps}from"./hooks/useClickableProps/useClickableProps.js";export{default as useSwitch}from"./hooks/useSwitch/index.js";export{default as useElementsOverflowingIndex}from"./hooks/useElementsOverflowingIndex.js";export{default as useWizard}from"./hooks/useWizard/useWizard.js";export{withStaticProps}from"./types/withStaticProps.js";export{getElementColor}from"./types/Colors.js";
1
+ import"../style/dist/index.min.css.js";export{default as Accordion}from"./components/Accordion/Accordion/Accordion.js";export{default as AccordionItem}from"./components/Accordion/AccordionItem/AccordionItem.js";export{default as AlertBanner}from"./components/AlertBanner/AlertBanner.js";export{default as AlertBannerButton}from"./components/AlertBanner/AlertBannerButton/AlertBannerButton.js";export{default as AlertBannerLink}from"./components/AlertBanner/AlertBannerLink/AlertBannerLink.js";export{default as AlertBannerText}from"./components/AlertBanner/AlertBannerText/AlertBannerText.js";export{default as AttentionBox}from"./components/AttentionBox/AttentionBox.js";export{default as AttentionBoxLink}from"./components/AttentionBox/AttentionBoxLink/AttentionBoxLink.js";export{default as Avatar}from"./components/Avatar/Avatar.js";export{default as AvatarGroup}from"./components/AvatarGroup/AvatarGroup.js";export{default as Badge}from"./components/Badge/Badge.js";export{default as Box}from"./components/Box/Box.js";export{default as BreadcrumbsBar}from"./components/BreadcrumbsBar/BreadcrumbsBar.js";export{default as BreadcrumbItem}from"./components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbItem.js";export{default as BreadcrumbMenu}from"./components/BreadcrumbsBar/BreadcrumbMenu/BreadcrumbMenu.js";export{default as BreadcrumbMenuItem}from"./components/BreadcrumbsBar/BreadcrumbMenu/BreadcrumbMenuItem/BreadcrumbMenuItem.js";export{default as Button}from"./components/Button/Button.js";export{default as ButtonGroup}from"./components/ButtonGroup/ButtonGroup.js";export{default as Checkbox}from"./components/Checkbox/Checkbox.js";export{default as Chips}from"./components/Chips/Chips.js";export{default as Clickable}from"./components/Clickable/Clickable.js";export{default as ColorPicker}from"./components/ColorPicker/ColorPicker.js";export{default as ColorPickerContent}from"./components/ColorPicker/components/ColorPickerContent/ColorPickerContent.js";export{default as Combobox}from"./components/Combobox/Combobox.js";export{default as Counter}from"./components/Counter/Counter.js";export{default as DatePicker}from"./components/DatePicker/DatePicker.js";export{default as Dialog}from"./components/Dialog/Dialog.js";export{default as DialogContentContainer}from"./components/DialogContentContainer/DialogContentContainer.js";export{default as Divider}from"./components/Divider/Divider.js";export{default as Dropdown}from"./components/Dropdown/Dropdown.js";export{default as DropdownMenu}from"./components/Dropdown/components/menu/menu.js";export{default as DropdownOption}from"./components/Dropdown/components/option/option.js";export{default as DropdownSingleValue}from"./components/Dropdown/components/singleValue/singleValue.js";export{default as EditableHeading}from"./components/EditableHeading/EditableHeading.js";export{default as EditableText}from"./components/EditableText/EditableText.js";export{default as EmptyState}from"./components/EmptyState/EmptyState.js";export{default as ExpandCollapse}from"./components/ExpandCollapse/ExpandCollapse.js";export{default as Flex}from"./components/Flex/Flex.js";export{default as FormattedNumber}from"./components/FormattedNumber/FormattedNumber.js";export{GridKeyboardNavigationContext,useGridKeyboardNavigationContext}from"./components/GridKeyboardNavigationContext/GridKeyboardNavigationContext.js";export{default as Heading}from"./components/Heading/Heading.js";export{default as HiddenText}from"./components/HiddenText/HiddenText.js";export{default as Icon}from"./components/Icon/Icon.js";export{default as CustomSvgIcon}from"./components/Icon/CustomSvgIcon/CustomSvgIcon.js";export{default as IconButton}from"./components/IconButton/IconButton.js";export{default as Label}from"./components/Label/Label.js";export{default as LayerProvider}from"./components/LayerProvider/LayerProvider.js";export{default as Link}from"./components/Link/Link.js";export{default as List}from"./components/List/List.js";export{default as ListItem}from"./components/ListItem/ListItem.js";export{default as ListItemAvatar}from"./components/ListItemAvatar/ListItemAvatar.js";export{default as ListItemIcon}from"./components/ListItemIcon/ListItemIcon.js";export{default as ListTitle}from"./components/ListTitle/ListTitle.js";export{default as Loader}from"./components/Loader/Loader.js";export{default as Menu}from"./components/Menu/Menu/Menu.js";export{default as MenuItem}from"./components/Menu/MenuItem/MenuItem.js";export{default as MenuItemButton}from"./components/Menu/MenuItemButton/MenuItemButton.js";export{default as MenuDivider}from"./components/Menu/MenuDivider/MenuDivider.js";export{default as MenuTitle}from"./components/Menu/MenuTitle/MenuTitle.js";export{default as MenuGridItem}from"./components/Menu/MenuGridItem/MenuGridItem.js";export{default as MenuButton}from"./components/MenuButton/MenuButton.js";export{default as Modal}from"./components/LegacyModal/LegacyModal.js";export{default as ModalHeader}from"./components/LegacyModal/LegacyModalHeader/LegacyModalHeader.js";export{default as ModalContent}from"./components/LegacyModal/LegacyModalContent/LegacyModalContent.js";export{default as ModalFooter}from"./components/LegacyModal/LegacyModalFooter/LegacyModalFooter.js";export{default as ModalFooterButtons}from"./components/LegacyModal/LegacyModalFooter/LegacyModalFooterButtons/LegacyModalFooterButtons.js";export{default as MultiStepIndicator}from"./components/MultiStepIndicator/MultiStepIndicator.js";export{default as LinearProgressBar}from"./components/ProgressBars/LinearProgressBar/LinearProgressBar.js";export{default as RadioButton}from"./components/RadioButton/RadioButton.js";export{default as Search}from"./components/Search/Search.js";export{default as Skeleton}from"./components/Skeleton/Skeleton.js";export{default as Slider}from"./components/Slider/Slider.js";export{default as SplitButton}from"./components/SplitButton/SplitButton.js";export{default as SplitButtonMenu}from"./components/SplitButton/SplitButtonMenu/SplitButtonMenu.js";export{default as Steps}from"./components/Steps/Steps.js";export{default as Table}from"./components/Table/Table/Table.js";export{default as TableContainer}from"./components/Table/TableContainer/TableContainer.js";export{default as TableHeader}from"./components/Table/TableHeader/TableHeader.js";export{default as TableHeaderCell}from"./components/Table/TableHeaderCell/TableHeaderCell.js";export{default as TableBody}from"./components/Table/TableBody/TableBody.js";export{default as TableVirtualizedBody}from"./components/Table/TableVirtualizedBody/TableVirtualizedBody.js";export{default as TableRow}from"./components/Table/TableRow/TableRow.js";export{default as TableRowMenu}from"./components/Table/TableRowMenu/TableRowMenu.js";export{default as TableCell}from"./components/Table/TableCell/TableCell.js";export{default as Tab}from"./components/Tabs/Tab/Tab.js";export{default as TabList}from"./components/Tabs/TabList/TabList.js";export{default as TabPanel}from"./components/Tabs/TabPanel/TabPanel.js";export{default as TabsContext}from"./components/Tabs/TabsContext/TabsContext.js";export{default as TabPanels}from"./components/Tabs/TabPanels/TabPanels.js";export{default as Text}from"./components/Text/Text.js";export{default as TextArea}from"./components/TextArea/TextArea.js";export{default as TextField}from"./components/TextField/TextField.js";export{default as TextWithHighlight}from"./components/TextWithHighlight/TextWithHighlight.js";export{default as ThemeProvider}from"./components/ThemeProvider/ThemeProvider.js";export{default as Tipseen}from"./components/Tipseen/Tipseen.js";export{default as TipseenContent}from"./components/Tipseen/TipseenContent.js";export{default as TipseenWizard}from"./components/Tipseen/TipseenWizard.js";export{default as TipseenImage}from"./components/Tipseen/TipseenImage.js";export{default as TipseenMedia}from"./components/Tipseen/TipseenMedia/TipseenMedia.js";export{default as Toast}from"./components/Toast/Toast.js";export{default as ToastButton}from"./components/Toast/ToastButton/ToastButton.js";export{default as ToastLink}from"./components/Toast/ToastLink/ToastLink.js";export{default as Toggle}from"./components/Toggle/Toggle.js";export{default as Tooltip}from"./components/Tooltip/Tooltip.js";export{default as TransitionView}from"./components/TransitionView/TransitionView.js";export{default as VirtualizedGrid}from"./components/VirtualizedGrid/VirtualizedGrid.js";export{default as VirtualizedList}from"./components/VirtualizedList/VirtualizedList.js";export{default as ColorUtils}from"./utils/colors-utils.js";export{default as useKeyEvent}from"./hooks/useKeyEvent/index.js";export{default as useEventListener}from"./hooks/useEventListener/index.js";export{default as useDebounceEvent}from"./hooks/useDebounceEvent/index.js";export{default as useClickOutside}from"./hooks/useClickOutside/index.js";export{default as useResizeObserver}from"./hooks/useResizeObserver.js";export{default as useAfterFirstRender}from"./hooks/useAfterFirstRender/index.js";export{default as useTimeout}from"./hooks/useTimeout/index.js";export{default as usePrevious}from"./hooks/usePrevious/index.js";export{default as useSetFocus}from"./hooks/useSetFocus/index.js";export{default as useMergeRefs}from"./hooks/useMergeRefs.js";export{default as useIsMouseOver}from"./hooks/useIsMouseOver.js";export{default as useHover}from"./hooks/useHover/useHover.js";export{default as useGridKeyboardNavigation}from"./hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.js";export{default as useIsOverflowing}from"./hooks/useIsOverflowing/useIsOverflowing.js";export{default as useActiveDescendantListFocus}from"./hooks/useActiveDescendantListFocus/index.js";export{useMediaQuery}from"./hooks/useMediaQuery/index.js";export{default as useVibeMediaQuery}from"./hooks/useVibeMediaQuery/index.js";export{default as useListenFocusTriggers}from"./hooks/useListenFocusTriggers/index.js";export{default as useClickableProps}from"./hooks/useClickableProps/useClickableProps.js";export{default as useSwitch}from"./hooks/useSwitch/index.js";export{default as useElementsOverflowingIndex}from"./hooks/useElementsOverflowingIndex.js";export{default as useWizard}from"./hooks/useWizard/useWizard.js";export{withStaticProps,withStaticPropsWithoutForwardRef}from"./types/withStaticProps.js";export{getElementColor}from"./types/Colors.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- var n=function(n,r){return Object.assign(n,r)};export{n as withStaticProps};
1
+ var n=function(n,t){return Object.assign(n,t)},t=function(n,t){return Object.assign(n,t)};export{n as withStaticProps,t as withStaticPropsWithoutForwardRef};
2
2
  //# sourceMappingURL=withStaticProps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"withStaticProps.js","sources":["../../../src/types/withStaticProps.ts"],"sourcesContent":["import React, { ForwardRefExoticComponent, RefAttributes } from \"react\";\n\ntype Required<T> = {\n [P in keyof T]-?: T[P];\n};\n\ntype Component<P, R> = React.FC<P> | ForwardRefExoticComponent<P & RefAttributes<R>>;\n\nexport const withStaticProps = <Props, StaticProps, Ref = HTMLElement>(\n component: Component<Props, Ref>,\n staticProps: Required<StaticProps>\n) => Object.assign(component, staticProps) as Component<Props, Ref> & Required<StaticProps>;\n"],"names":["withStaticProps","component","staticProps","Object","assign"],"mappings":"AAQO,IAAMA,EAAkB,SAC7BC,EACAC,GAAkC,OAC/BC,OAAOC,OAAOH,EAAWC,EAA6D"}
1
+ {"version":3,"file":"withStaticProps.js","sources":["../../../src/types/withStaticProps.ts"],"sourcesContent":["import React, { ForwardRefExoticComponent, RefAttributes } from \"react\";\n\ntype Required<T> = {\n [P in keyof T]-?: T[P];\n};\n\nexport const withStaticProps = <Props, StaticProps, Ref = HTMLElement>(\n component: ForwardRefExoticComponent<Props & RefAttributes<Ref>>,\n staticProps: Required<StaticProps>\n) => Object.assign(component, staticProps);\n\nexport const withStaticPropsWithoutForwardRef = <Props, StaticProps>(\n component: React.FC<Props>,\n staticProps: Required<StaticProps>\n) => Object.assign(component, staticProps);\n"],"names":["withStaticProps","component","staticProps","Object","assign","withStaticPropsWithoutForwardRef"],"mappings":"AAMO,IAAMA,EAAkB,SAC7BC,EACAC,GAAkC,OAC/BC,OAAOC,OAAOH,EAAWC,EAAY,EAE7BG,EAAmC,SAC9CJ,EACAC,GAAkC,OAC/BC,OAAOC,OAAOH,EAAWC,EAAY"}
@@ -2,6 +2,6 @@ import React, { ForwardRefExoticComponent, RefAttributes } from "react";
2
2
  type Required<T> = {
3
3
  [P in keyof T]-?: T[P];
4
4
  };
5
- type Component<P, R> = React.FC<P> | ForwardRefExoticComponent<P & RefAttributes<R>>;
6
- export declare const withStaticProps: <Props, StaticProps, Ref = HTMLElement>(component: Component<Props, Ref>, staticProps: Required<StaticProps>) => Component<Props, Ref> & Required<StaticProps>;
5
+ export declare const withStaticProps: <Props, StaticProps, Ref = HTMLElement>(component: React.ForwardRefExoticComponent<Props & React.RefAttributes<Ref>>, staticProps: Required<StaticProps>) => React.ForwardRefExoticComponent<Props & React.RefAttributes<Ref>> & Required<StaticProps>;
6
+ export declare const withStaticPropsWithoutForwardRef: <Props, StaticProps>(component: React.FC<Props>, staticProps: Required<StaticProps>) => React.FC<Props> & Required<StaticProps>;
7
7
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibe/core",
3
- "version": "3.50.1-alpha-b401f.0",
3
+ "version": "3.50.1-alpha-b92cc.0",
4
4
  "description": "Official monday.com UI resources for application development in React.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -88,7 +88,7 @@
88
88
  },
89
89
  "dependencies": {
90
90
  "@popperjs/core": "2.11.6",
91
- "@vibe/icons": "1.7.3-alpha-b401f.0",
91
+ "@vibe/icons": "1.7.2",
92
92
  "a11y-dialog": "^7.5.2",
93
93
  "body-scroll-lock": "^4.0.0-beta.0",
94
94
  "browserslist-config-monday": "1.0.6",
@@ -287,5 +287,5 @@
287
287
  "gzip": true
288
288
  }
289
289
  ],
290
- "gitHead": "ef89547a9d6a8682c0fe7c9a04e992ee36530cce"
290
+ "gitHead": "a4b363cd28a58a26c7fc5a25b4965a7a75ea6716"
291
291
  }