@vibe/core 4.0.0 → 4.0.1-alpha-649fd.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 (550) hide show
  1. package/dist/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.d.ts +4 -0
  2. package/dist/hooks/useEventListener/index.d.ts +2 -8
  3. package/dist/hooks/useKeyEvent/index.d.ts +2 -56
  4. package/dist/mocked_classnames/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.d.ts +4 -0
  5. package/dist/mocked_classnames/hooks/useEventListener/index.d.ts +2 -8
  6. package/dist/mocked_classnames/hooks/useKeyEvent/index.d.ts +2 -56
  7. package/dist/mocked_classnames/src/components/Accordion/Accordion/Accordion.js +1 -1
  8. package/dist/mocked_classnames/src/components/Accordion/Accordion/Accordion.js.map +1 -1
  9. package/dist/mocked_classnames/src/components/Accordion/AccordionItem/AccordionItem.js +1 -1
  10. package/dist/mocked_classnames/src/components/Accordion/AccordionItem/AccordionItem.js.map +1 -1
  11. package/dist/mocked_classnames/src/components/AlertBanner/AlertBanner.js +1 -1
  12. package/dist/mocked_classnames/src/components/AlertBanner/AlertBanner.js.map +1 -1
  13. package/dist/mocked_classnames/src/components/Avatar/Avatar.js +1 -1
  14. package/dist/mocked_classnames/src/components/Avatar/Avatar.js.map +1 -1
  15. package/dist/mocked_classnames/src/components/Avatar/AvatarBadge.js +1 -1
  16. package/dist/mocked_classnames/src/components/Avatar/AvatarBadge.js.map +1 -1
  17. package/dist/mocked_classnames/src/components/Avatar/AvatarContent.js +1 -1
  18. package/dist/mocked_classnames/src/components/Avatar/AvatarContent.js.map +1 -1
  19. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounter.js +1 -1
  20. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounter.js.map +1 -1
  21. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipHelper.js +1 -1
  22. package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipHelper.js.map +1 -1
  23. package/dist/mocked_classnames/src/components/Badge/Badge.js +1 -1
  24. package/dist/mocked_classnames/src/components/Badge/Badge.js.map +1 -1
  25. package/dist/mocked_classnames/src/components/BaseItem/BaseItem.js +1 -1
  26. package/dist/mocked_classnames/src/components/BaseItem/BaseItem.js.map +1 -1
  27. package/dist/mocked_classnames/src/components/BaseList/BaseList.js +1 -1
  28. package/dist/mocked_classnames/src/components/BaseList/BaseList.js.map +1 -1
  29. package/dist/mocked_classnames/src/components/BaseList/context/BaseListContext.js +1 -1
  30. package/dist/mocked_classnames/src/components/BaseList/context/BaseListContext.js.map +1 -1
  31. package/dist/mocked_classnames/src/components/BaseList/hooks/useBaseListKeyboard.js +1 -1
  32. package/dist/mocked_classnames/src/components/BaseList/hooks/useBaseListKeyboard.js.map +1 -1
  33. package/dist/mocked_classnames/src/components/ButtonGroup/ButtonGroup.js +1 -1
  34. package/dist/mocked_classnames/src/components/ButtonGroup/ButtonGroup.js.map +1 -1
  35. package/dist/mocked_classnames/src/components/Checkbox/Checkbox.js +1 -1
  36. package/dist/mocked_classnames/src/components/Checkbox/Checkbox.js.map +1 -1
  37. package/dist/mocked_classnames/src/components/Checkbox/hooks/useSupportFirefoxLabelClick.js +1 -1
  38. package/dist/mocked_classnames/src/components/Checkbox/hooks/useSupportFirefoxLabelClick.js.map +1 -1
  39. package/dist/mocked_classnames/src/components/Chips/Chips.js +1 -1
  40. package/dist/mocked_classnames/src/components/Chips/Chips.js.map +1 -1
  41. package/dist/mocked_classnames/src/components/ColorPicker/ColorPicker.js +1 -1
  42. package/dist/mocked_classnames/src/components/ColorPicker/ColorPicker.js.map +1 -1
  43. package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerContent/ColorPickerClearButton.js +1 -1
  44. package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerContent/ColorPickerClearButton.js.map +1 -1
  45. package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerContent/ColorPickerColorsGrid.js +1 -1
  46. package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerContent/ColorPickerColorsGrid.js.map +1 -1
  47. package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.js +1 -1
  48. package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.js.map +1 -1
  49. package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.js +1 -1
  50. package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.js.map +1 -1
  51. package/dist/mocked_classnames/src/components/Combobox/Combobox.js +1 -1
  52. package/dist/mocked_classnames/src/components/Combobox/Combobox.js.map +1 -1
  53. package/dist/mocked_classnames/src/components/Counter/Counter.js +1 -1
  54. package/dist/mocked_classnames/src/components/Counter/Counter.js.map +1 -1
  55. package/dist/mocked_classnames/src/components/Divider/Divider.js +1 -1
  56. package/dist/mocked_classnames/src/components/Divider/Divider.js.map +1 -1
  57. package/dist/mocked_classnames/src/components/Dropdown/Dropdown.js +1 -1
  58. package/dist/mocked_classnames/src/components/Dropdown/Dropdown.js.map +1 -1
  59. package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js +1 -1
  60. package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js.map +1 -1
  61. package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js +1 -1
  62. package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js.map +1 -1
  63. package/dist/mocked_classnames/src/components/EditableHeading/EditableHeading.js +1 -1
  64. package/dist/mocked_classnames/src/components/EditableHeading/EditableHeading.js.map +1 -1
  65. package/dist/mocked_classnames/src/components/EditableText/EditableText.js +1 -1
  66. package/dist/mocked_classnames/src/components/EditableText/EditableText.js.map +1 -1
  67. package/dist/mocked_classnames/src/components/EditableTypography/EditableTypography.js +1 -1
  68. package/dist/mocked_classnames/src/components/EditableTypography/EditableTypography.js.map +1 -1
  69. package/dist/mocked_classnames/src/components/EmptyState/EmptyState.js +1 -1
  70. package/dist/mocked_classnames/src/components/EmptyState/EmptyState.js.map +1 -1
  71. package/dist/mocked_classnames/src/components/ExpandCollapse/ExpandCollapse.js +1 -1
  72. package/dist/mocked_classnames/src/components/ExpandCollapse/ExpandCollapse.js.map +1 -1
  73. package/dist/mocked_classnames/src/components/GridKeyboardNavigationContext/GridKeyboardNavigationContext.js +1 -1
  74. package/dist/mocked_classnames/src/components/GridKeyboardNavigationContext/GridKeyboardNavigationContext.js.map +1 -1
  75. package/dist/mocked_classnames/src/components/HiddenText/HiddenText.js +1 -1
  76. package/dist/mocked_classnames/src/components/HiddenText/HiddenText.js.map +1 -1
  77. package/dist/mocked_classnames/src/components/Info/Info.js +1 -1
  78. package/dist/mocked_classnames/src/components/Info/Info.js.map +1 -1
  79. package/dist/mocked_classnames/src/components/Label/Label.js +1 -1
  80. package/dist/mocked_classnames/src/components/Label/Label.js.map +1 -1
  81. package/dist/mocked_classnames/src/components/Link/Link.js +1 -1
  82. package/dist/mocked_classnames/src/components/Link/Link.js.map +1 -1
  83. package/dist/mocked_classnames/src/components/List/List.js +1 -1
  84. package/dist/mocked_classnames/src/components/List/List.js.map +1 -1
  85. package/dist/mocked_classnames/src/components/List/utils/ListContext.js +1 -1
  86. package/dist/mocked_classnames/src/components/List/utils/ListContext.js.map +1 -1
  87. package/dist/mocked_classnames/src/components/List/utils/ListUtils.js +1 -1
  88. package/dist/mocked_classnames/src/components/List/utils/ListUtils.js.map +1 -1
  89. package/dist/mocked_classnames/src/components/ListItem/ListItem.js +1 -1
  90. package/dist/mocked_classnames/src/components/ListItem/ListItem.js.map +1 -1
  91. package/dist/mocked_classnames/src/components/ListItemAvatar/ListItemAvatar.js +1 -1
  92. package/dist/mocked_classnames/src/components/ListItemAvatar/ListItemAvatar.js.map +1 -1
  93. package/dist/mocked_classnames/src/components/ListItemIcon/ListItemIcon.js +1 -1
  94. package/dist/mocked_classnames/src/components/ListItemIcon/ListItemIcon.js.map +1 -1
  95. package/dist/mocked_classnames/src/components/ListTitle/ListTitle.js +1 -1
  96. package/dist/mocked_classnames/src/components/ListTitle/ListTitle.js.map +1 -1
  97. package/dist/mocked_classnames/src/components/Menu/Menu/Menu.js +1 -1
  98. package/dist/mocked_classnames/src/components/Menu/Menu/Menu.js.map +1 -1
  99. package/dist/mocked_classnames/src/components/Menu/Menu/hooks/useCloseMenuOnKeyEvent.js +1 -1
  100. package/dist/mocked_classnames/src/components/Menu/Menu/hooks/useCloseMenuOnKeyEvent.js.map +1 -1
  101. package/dist/mocked_classnames/src/components/Menu/Menu/hooks/useLastNavigationDirection.js +1 -1
  102. package/dist/mocked_classnames/src/components/Menu/Menu/hooks/useLastNavigationDirection.js.map +1 -1
  103. package/dist/mocked_classnames/src/components/Menu/Menu/hooks/useMenuId.js +1 -1
  104. package/dist/mocked_classnames/src/components/Menu/Menu/hooks/useMenuId.js.map +1 -1
  105. package/dist/mocked_classnames/src/components/Menu/Menu/hooks/useMenuKeyboardNavigation.js +1 -1
  106. package/dist/mocked_classnames/src/components/Menu/Menu/hooks/useMenuKeyboardNavigation.js.map +1 -1
  107. package/dist/mocked_classnames/src/components/Menu/Menu/hooks/useMouseLeave.js +1 -1
  108. package/dist/mocked_classnames/src/components/Menu/Menu/hooks/useMouseLeave.js.map +1 -1
  109. package/dist/mocked_classnames/src/components/Menu/MenuGridItem/MenuGridItem.js +1 -1
  110. package/dist/mocked_classnames/src/components/Menu/MenuGridItem/MenuGridItem.js.map +1 -1
  111. package/dist/mocked_classnames/src/components/Menu/MenuItem/components/BaseMenuItem/BaseMenuItem.js +1 -1
  112. package/dist/mocked_classnames/src/components/Menu/MenuItem/components/BaseMenuItem/BaseMenuItem.js.map +1 -1
  113. package/dist/mocked_classnames/src/components/Menu/MenuItem/hooks/useMenuItemKeyboardEvents.js +1 -1
  114. package/dist/mocked_classnames/src/components/Menu/MenuItem/hooks/useMenuItemKeyboardEvents.js.map +1 -1
  115. package/dist/mocked_classnames/src/components/Menu/MenuItem/hooks/useMenuItemMouseEvents.js +1 -1
  116. package/dist/mocked_classnames/src/components/Menu/MenuItem/hooks/useMenuItemMouseEvents.js.map +1 -1
  117. package/dist/mocked_classnames/src/components/Menu/MenuItemButton/MenuItemButton.js +1 -1
  118. package/dist/mocked_classnames/src/components/Menu/MenuItemButton/MenuItemButton.js.map +1 -1
  119. package/dist/mocked_classnames/src/components/Menu/MenuTitle/MenuTitle.js +1 -1
  120. package/dist/mocked_classnames/src/components/Menu/MenuTitle/MenuTitle.js.map +1 -1
  121. package/dist/mocked_classnames/src/components/MenuButton/MenuButton.js +1 -1
  122. package/dist/mocked_classnames/src/components/MenuButton/MenuButton.js.map +1 -1
  123. package/dist/mocked_classnames/src/components/Modal/Modal/Modal.js +1 -1
  124. package/dist/mocked_classnames/src/components/Modal/Modal/Modal.js.map +1 -1
  125. package/dist/mocked_classnames/src/components/MultiStepIndicator/MultiStepIndicator.js +1 -1
  126. package/dist/mocked_classnames/src/components/MultiStepIndicator/MultiStepIndicator.js.map +1 -1
  127. package/dist/mocked_classnames/src/components/MultiStepIndicator/components/StepIndicator/StepIndicator.js +1 -1
  128. package/dist/mocked_classnames/src/components/MultiStepIndicator/components/StepIndicator/StepIndicator.js.map +1 -1
  129. package/dist/mocked_classnames/src/components/NumberField/NumberField.js +1 -1
  130. package/dist/mocked_classnames/src/components/NumberField/NumberField.js.map +1 -1
  131. package/dist/mocked_classnames/src/components/NumberField/components/NumberFieldSpinButton/NumberFieldSpinButton.js +1 -1
  132. package/dist/mocked_classnames/src/components/NumberField/components/NumberFieldSpinButton/NumberFieldSpinButton.js.map +1 -1
  133. package/dist/mocked_classnames/src/components/ProgressBars/ProgressBar/Bar/Bar.js +1 -1
  134. package/dist/mocked_classnames/src/components/ProgressBars/ProgressBar/Bar/Bar.js.map +1 -1
  135. package/dist/mocked_classnames/src/components/ProgressBars/ProgressBar/ProgressBar.js +1 -1
  136. package/dist/mocked_classnames/src/components/ProgressBars/ProgressBar/ProgressBar.js.map +1 -1
  137. package/dist/mocked_classnames/src/components/RadioButton/RadioButton.js +1 -1
  138. package/dist/mocked_classnames/src/components/RadioButton/RadioButton.js.map +1 -1
  139. package/dist/mocked_classnames/src/components/Search/Search.js +1 -1
  140. package/dist/mocked_classnames/src/components/Search/Search.js.map +1 -1
  141. package/dist/mocked_classnames/src/components/Skeleton/Skeleton.js +1 -1
  142. package/dist/mocked_classnames/src/components/Skeleton/Skeleton.js.map +1 -1
  143. package/dist/mocked_classnames/src/components/Slider/Slider.js +1 -1
  144. package/dist/mocked_classnames/src/components/Slider/Slider.js.map +1 -1
  145. package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderBase.js +1 -1
  146. package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderBase.js.map +1 -1
  147. package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderFilledTrack.js +1 -1
  148. package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderFilledTrack.js.map +1 -1
  149. package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderRail.js +1 -1
  150. package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderRail.js.map +1 -1
  151. package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderThumb.js +1 -1
  152. package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderThumb.js.map +1 -1
  153. package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderTrack.js +1 -1
  154. package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderTrack.js.map +1 -1
  155. package/dist/mocked_classnames/src/components/Slider/SliderContext.js +1 -1
  156. package/dist/mocked_classnames/src/components/Slider/SliderContext.js.map +1 -1
  157. package/dist/mocked_classnames/src/components/Slider/SliderHooks.js +1 -1
  158. package/dist/mocked_classnames/src/components/Slider/SliderHooks.js.map +1 -1
  159. package/dist/mocked_classnames/src/components/Slider/SliderInfix.js +1 -1
  160. package/dist/mocked_classnames/src/components/Slider/SliderInfix.js.map +1 -1
  161. package/dist/mocked_classnames/src/components/SplitButton/SplitButton.js +1 -1
  162. package/dist/mocked_classnames/src/components/SplitButton/SplitButton.js.map +1 -1
  163. package/dist/mocked_classnames/src/components/SplitButton/SplitButtonMenu/SplitButtonMenu.js +1 -1
  164. package/dist/mocked_classnames/src/components/SplitButton/SplitButtonMenu/SplitButtonMenu.js.map +1 -1
  165. package/dist/mocked_classnames/src/components/Steps/Steps.js +1 -1
  166. package/dist/mocked_classnames/src/components/Steps/Steps.js.map +1 -1
  167. package/dist/mocked_classnames/src/components/Steps/StepsCommand.js +1 -1
  168. package/dist/mocked_classnames/src/components/Steps/StepsCommand.js.map +1 -1
  169. package/dist/mocked_classnames/src/components/Steps/StepsDot.js +1 -1
  170. package/dist/mocked_classnames/src/components/Steps/StepsDot.js.map +1 -1
  171. package/dist/mocked_classnames/src/components/Table/Table/Table.js +1 -1
  172. package/dist/mocked_classnames/src/components/Table/Table/Table.js.map +1 -1
  173. package/dist/mocked_classnames/src/components/Table/TableCellSkeleton/TableCellSkeleton.js +1 -1
  174. package/dist/mocked_classnames/src/components/Table/TableCellSkeleton/TableCellSkeleton.js.map +1 -1
  175. package/dist/mocked_classnames/src/components/Table/TableHeader/TableHeader.js +1 -1
  176. package/dist/mocked_classnames/src/components/Table/TableHeader/TableHeader.js.map +1 -1
  177. package/dist/mocked_classnames/src/components/Table/TableHeaderCell/TableHeaderCell.js +1 -1
  178. package/dist/mocked_classnames/src/components/Table/TableHeaderCell/TableHeaderCell.js.map +1 -1
  179. package/dist/mocked_classnames/src/components/Table/TableRow/TableRow.js +1 -1
  180. package/dist/mocked_classnames/src/components/Table/TableRow/TableRow.js.map +1 -1
  181. package/dist/mocked_classnames/src/components/Table/TableRowMenu/TableRowMenu.js +1 -1
  182. package/dist/mocked_classnames/src/components/Table/TableRowMenu/TableRowMenu.js.map +1 -1
  183. package/dist/mocked_classnames/src/components/Tabs/Tab/Tab.js +1 -1
  184. package/dist/mocked_classnames/src/components/Tabs/Tab/Tab.js.map +1 -1
  185. package/dist/mocked_classnames/src/components/Tabs/TabList/TabList.js +1 -1
  186. package/dist/mocked_classnames/src/components/Tabs/TabList/TabList.js.map +1 -1
  187. package/dist/mocked_classnames/src/components/Tabs/TabPanel/TabPanel.js +1 -1
  188. package/dist/mocked_classnames/src/components/Tabs/TabPanel/TabPanel.js.map +1 -1
  189. package/dist/mocked_classnames/src/components/Tabs/TabPanels/TabPanels.js +1 -1
  190. package/dist/mocked_classnames/src/components/Tabs/TabPanels/TabPanels.js.map +1 -1
  191. package/dist/mocked_classnames/src/components/Tabs/TabsContext/TabsContext.js +1 -1
  192. package/dist/mocked_classnames/src/components/Tabs/TabsContext/TabsContext.js.map +1 -1
  193. package/dist/mocked_classnames/src/components/TextField/TextField.js +1 -1
  194. package/dist/mocked_classnames/src/components/TextField/TextField.js.map +1 -1
  195. package/dist/mocked_classnames/src/components/TextWithHighlight/TextWithHighlight.js +1 -1
  196. package/dist/mocked_classnames/src/components/TextWithHighlight/TextWithHighlight.js.map +1 -1
  197. package/dist/mocked_classnames/src/components/ThemeProvider/ThemeProvider.js +1 -1
  198. package/dist/mocked_classnames/src/components/ThemeProvider/ThemeProvider.js.map +1 -1
  199. package/dist/mocked_classnames/src/components/Tipseen/Tipseen.js +1 -1
  200. package/dist/mocked_classnames/src/components/Tipseen/Tipseen.js.map +1 -1
  201. package/dist/mocked_classnames/src/components/Tipseen/TipseenMedia/TipseenMedia.js +1 -1
  202. package/dist/mocked_classnames/src/components/Tipseen/TipseenMedia/TipseenMedia.js.map +1 -1
  203. package/dist/mocked_classnames/src/components/Toast/Toast.js +1 -1
  204. package/dist/mocked_classnames/src/components/Toast/Toast.js.map +1 -1
  205. package/dist/mocked_classnames/src/components/Toggle/MockToggle.js +1 -1
  206. package/dist/mocked_classnames/src/components/Toggle/MockToggle.js.map +1 -1
  207. package/dist/mocked_classnames/src/components/VirtualizedGrid/VirtualizedGrid.js +1 -1
  208. package/dist/mocked_classnames/src/components/VirtualizedGrid/VirtualizedGrid.js.map +1 -1
  209. package/dist/mocked_classnames/src/components/VirtualizedList/VirtualizedList.js +1 -1
  210. package/dist/mocked_classnames/src/components/VirtualizedList/VirtualizedList.js.map +1 -1
  211. package/dist/mocked_classnames/src/helpers/textManipulations.js +1 -1
  212. package/dist/mocked_classnames/src/helpers/textManipulations.js.map +1 -1
  213. package/dist/mocked_classnames/src/hooks/useActiveDescendantListFocus/useActiveDescendantListFocusHooks.js +1 -1
  214. package/dist/mocked_classnames/src/hooks/useActiveDescendantListFocus/useActiveDescendantListFocusHooks.js.map +1 -1
  215. package/dist/mocked_classnames/src/hooks/useFullKeyboardListeners.js +1 -1
  216. package/dist/mocked_classnames/src/hooks/useFullKeyboardListeners.js.map +1 -1
  217. package/dist/mocked_classnames/src/hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.js +1 -1
  218. package/dist/mocked_classnames/src/hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.js.map +1 -1
  219. package/dist/mocked_classnames/src/hooks/useIsMouseEnter.js +1 -1
  220. package/dist/mocked_classnames/src/hooks/useIsMouseEnter.js.map +1 -1
  221. package/dist/mocked_classnames/src/hooks/useIsMouseOver.js +1 -1
  222. package/dist/mocked_classnames/src/hooks/useIsMouseOver.js.map +1 -1
  223. package/dist/mocked_classnames/src/hooks/useItemsOverflow/useItemsOverflow.js +1 -1
  224. package/dist/mocked_classnames/src/hooks/useItemsOverflow/useItemsOverflow.js.map +1 -1
  225. package/dist/mocked_classnames/src/hooks/useListenFocusTriggers/index.js +1 -1
  226. package/dist/mocked_classnames/src/hooks/useListenFocusTriggers/index.js.map +1 -1
  227. package/dist/mocked_classnames/src/hooks/useMediaQuery/index.js +1 -1
  228. package/dist/mocked_classnames/src/hooks/useMediaQuery/index.js.map +1 -1
  229. package/dist/mocked_classnames/src/hooks/usePrevious/index.js +1 -1
  230. package/dist/mocked_classnames/src/hooks/usePrevious/index.js.map +1 -1
  231. package/dist/mocked_classnames/src/hooks/useSetFocus/index.js +1 -1
  232. package/dist/mocked_classnames/src/hooks/useSetFocus/index.js.map +1 -1
  233. package/dist/mocked_classnames/src/hooks/useVibeMediaQuery/index.js +1 -1
  234. package/dist/mocked_classnames/src/hooks/useVibeMediaQuery/index.js.map +1 -1
  235. package/dist/mocked_classnames/src/index.js +1 -1
  236. package/dist/shared/dist/utils/dom-event-utils.js.map +1 -0
  237. package/dist/shared/dist/utils/media-query-utils.js +2 -0
  238. package/dist/shared/dist/utils/media-query-utils.js.map +1 -0
  239. package/dist/shared/dist/utils/testid-helper.js.map +1 -0
  240. package/dist/shared/dist/utils/user-agent-utils.js.map +1 -0
  241. package/dist/shared/dist/utils/warn-deprecated.js.map +1 -0
  242. package/dist/src/components/Accordion/Accordion/Accordion.js +1 -1
  243. package/dist/src/components/Accordion/Accordion/Accordion.js.map +1 -1
  244. package/dist/src/components/Accordion/AccordionItem/AccordionItem.js +1 -1
  245. package/dist/src/components/Accordion/AccordionItem/AccordionItem.js.map +1 -1
  246. package/dist/src/components/AlertBanner/AlertBanner.js +1 -1
  247. package/dist/src/components/AlertBanner/AlertBanner.js.map +1 -1
  248. package/dist/src/components/Avatar/Avatar.js +1 -1
  249. package/dist/src/components/Avatar/Avatar.js.map +1 -1
  250. package/dist/src/components/Avatar/AvatarBadge.js +1 -1
  251. package/dist/src/components/Avatar/AvatarBadge.js.map +1 -1
  252. package/dist/src/components/Avatar/AvatarContent.js +1 -1
  253. package/dist/src/components/Avatar/AvatarContent.js.map +1 -1
  254. package/dist/src/components/AvatarGroup/AvatarGroupCounter.js +1 -1
  255. package/dist/src/components/AvatarGroup/AvatarGroupCounter.js.map +1 -1
  256. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipHelper.js +1 -1
  257. package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipHelper.js.map +1 -1
  258. package/dist/src/components/Badge/Badge.js +1 -1
  259. package/dist/src/components/Badge/Badge.js.map +1 -1
  260. package/dist/src/components/BaseItem/BaseItem.js +1 -1
  261. package/dist/src/components/BaseItem/BaseItem.js.map +1 -1
  262. package/dist/src/components/BaseList/BaseList.js +1 -1
  263. package/dist/src/components/BaseList/BaseList.js.map +1 -1
  264. package/dist/src/components/BaseList/context/BaseListContext.js +1 -1
  265. package/dist/src/components/BaseList/context/BaseListContext.js.map +1 -1
  266. package/dist/src/components/BaseList/hooks/useBaseListKeyboard.js +1 -1
  267. package/dist/src/components/BaseList/hooks/useBaseListKeyboard.js.map +1 -1
  268. package/dist/src/components/ButtonGroup/ButtonGroup.js +1 -1
  269. package/dist/src/components/ButtonGroup/ButtonGroup.js.map +1 -1
  270. package/dist/src/components/Checkbox/Checkbox.js +1 -1
  271. package/dist/src/components/Checkbox/Checkbox.js.map +1 -1
  272. package/dist/src/components/Checkbox/hooks/useSupportFirefoxLabelClick.js +1 -1
  273. package/dist/src/components/Checkbox/hooks/useSupportFirefoxLabelClick.js.map +1 -1
  274. package/dist/src/components/Chips/Chips.js +1 -1
  275. package/dist/src/components/Chips/Chips.js.map +1 -1
  276. package/dist/src/components/ColorPicker/ColorPicker.js +1 -1
  277. package/dist/src/components/ColorPicker/ColorPicker.js.map +1 -1
  278. package/dist/src/components/ColorPicker/components/ColorPickerContent/ColorPickerClearButton.js +1 -1
  279. package/dist/src/components/ColorPicker/components/ColorPickerContent/ColorPickerClearButton.js.map +1 -1
  280. package/dist/src/components/ColorPicker/components/ColorPickerContent/ColorPickerColorsGrid.js +1 -1
  281. package/dist/src/components/ColorPicker/components/ColorPickerContent/ColorPickerColorsGrid.js.map +1 -1
  282. package/dist/src/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.js +1 -1
  283. package/dist/src/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.js.map +1 -1
  284. package/dist/src/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.js +1 -1
  285. package/dist/src/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.js.map +1 -1
  286. package/dist/src/components/Combobox/Combobox.js +1 -1
  287. package/dist/src/components/Combobox/Combobox.js.map +1 -1
  288. package/dist/src/components/Counter/Counter.js +1 -1
  289. package/dist/src/components/Counter/Counter.js.map +1 -1
  290. package/dist/src/components/Divider/Divider.js +1 -1
  291. package/dist/src/components/Divider/Divider.js.map +1 -1
  292. package/dist/src/components/Dropdown/Dropdown.js +1 -1
  293. package/dist/src/components/Dropdown/Dropdown.js.map +1 -1
  294. package/dist/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js +1 -1
  295. package/dist/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js.map +1 -1
  296. package/dist/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js +1 -1
  297. package/dist/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js.map +1 -1
  298. package/dist/src/components/EditableHeading/EditableHeading.js +1 -1
  299. package/dist/src/components/EditableHeading/EditableHeading.js.map +1 -1
  300. package/dist/src/components/EditableText/EditableText.js +1 -1
  301. package/dist/src/components/EditableText/EditableText.js.map +1 -1
  302. package/dist/src/components/EditableTypography/EditableTypography.js +1 -1
  303. package/dist/src/components/EditableTypography/EditableTypography.js.map +1 -1
  304. package/dist/src/components/EmptyState/EmptyState.js +1 -1
  305. package/dist/src/components/EmptyState/EmptyState.js.map +1 -1
  306. package/dist/src/components/ExpandCollapse/ExpandCollapse.js +1 -1
  307. package/dist/src/components/ExpandCollapse/ExpandCollapse.js.map +1 -1
  308. package/dist/src/components/GridKeyboardNavigationContext/GridKeyboardNavigationContext.js +1 -1
  309. package/dist/src/components/GridKeyboardNavigationContext/GridKeyboardNavigationContext.js.map +1 -1
  310. package/dist/src/components/HiddenText/HiddenText.js +1 -1
  311. package/dist/src/components/HiddenText/HiddenText.js.map +1 -1
  312. package/dist/src/components/Info/Info.js +1 -1
  313. package/dist/src/components/Info/Info.js.map +1 -1
  314. package/dist/src/components/Label/Label.js +1 -1
  315. package/dist/src/components/Label/Label.js.map +1 -1
  316. package/dist/src/components/Link/Link.js +1 -1
  317. package/dist/src/components/Link/Link.js.map +1 -1
  318. package/dist/src/components/List/List.js +1 -1
  319. package/dist/src/components/List/List.js.map +1 -1
  320. package/dist/src/components/List/utils/ListContext.js +1 -1
  321. package/dist/src/components/List/utils/ListContext.js.map +1 -1
  322. package/dist/src/components/List/utils/ListUtils.js +1 -1
  323. package/dist/src/components/List/utils/ListUtils.js.map +1 -1
  324. package/dist/src/components/ListItem/ListItem.js +1 -1
  325. package/dist/src/components/ListItem/ListItem.js.map +1 -1
  326. package/dist/src/components/ListItemAvatar/ListItemAvatar.js +1 -1
  327. package/dist/src/components/ListItemAvatar/ListItemAvatar.js.map +1 -1
  328. package/dist/src/components/ListItemIcon/ListItemIcon.js +1 -1
  329. package/dist/src/components/ListItemIcon/ListItemIcon.js.map +1 -1
  330. package/dist/src/components/ListTitle/ListTitle.js +1 -1
  331. package/dist/src/components/ListTitle/ListTitle.js.map +1 -1
  332. package/dist/src/components/Menu/Menu/Menu.js +1 -1
  333. package/dist/src/components/Menu/Menu/Menu.js.map +1 -1
  334. package/dist/src/components/Menu/Menu/hooks/useCloseMenuOnKeyEvent.js +1 -1
  335. package/dist/src/components/Menu/Menu/hooks/useCloseMenuOnKeyEvent.js.map +1 -1
  336. package/dist/src/components/Menu/Menu/hooks/useLastNavigationDirection.js +1 -1
  337. package/dist/src/components/Menu/Menu/hooks/useLastNavigationDirection.js.map +1 -1
  338. package/dist/src/components/Menu/Menu/hooks/useMenuId.js +1 -1
  339. package/dist/src/components/Menu/Menu/hooks/useMenuId.js.map +1 -1
  340. package/dist/src/components/Menu/Menu/hooks/useMenuKeyboardNavigation.js +1 -1
  341. package/dist/src/components/Menu/Menu/hooks/useMenuKeyboardNavigation.js.map +1 -1
  342. package/dist/src/components/Menu/Menu/hooks/useMouseLeave.js +1 -1
  343. package/dist/src/components/Menu/Menu/hooks/useMouseLeave.js.map +1 -1
  344. package/dist/src/components/Menu/MenuGridItem/MenuGridItem.js +1 -1
  345. package/dist/src/components/Menu/MenuGridItem/MenuGridItem.js.map +1 -1
  346. package/dist/src/components/Menu/MenuItem/components/BaseMenuItem/BaseMenuItem.js +1 -1
  347. package/dist/src/components/Menu/MenuItem/components/BaseMenuItem/BaseMenuItem.js.map +1 -1
  348. package/dist/src/components/Menu/MenuItem/components/MenuItemSubMenu/MenuItemSubMenu.js +1 -1
  349. package/dist/src/components/Menu/MenuItem/hooks/useMenuItemKeyboardEvents.js +1 -1
  350. package/dist/src/components/Menu/MenuItem/hooks/useMenuItemKeyboardEvents.js.map +1 -1
  351. package/dist/src/components/Menu/MenuItem/hooks/useMenuItemMouseEvents.js +1 -1
  352. package/dist/src/components/Menu/MenuItem/hooks/useMenuItemMouseEvents.js.map +1 -1
  353. package/dist/src/components/Menu/MenuItemButton/MenuItemButton.js +1 -1
  354. package/dist/src/components/Menu/MenuItemButton/MenuItemButton.js.map +1 -1
  355. package/dist/src/components/Menu/MenuTitle/MenuTitle.js +1 -1
  356. package/dist/src/components/Menu/MenuTitle/MenuTitle.js.map +1 -1
  357. package/dist/src/components/MenuButton/MenuButton.js +1 -1
  358. package/dist/src/components/MenuButton/MenuButton.js.map +1 -1
  359. package/dist/src/components/Modal/Modal/Modal.js +1 -1
  360. package/dist/src/components/Modal/Modal/Modal.js.map +1 -1
  361. package/dist/src/components/MultiStepIndicator/MultiStepIndicator.js +1 -1
  362. package/dist/src/components/MultiStepIndicator/MultiStepIndicator.js.map +1 -1
  363. package/dist/src/components/MultiStepIndicator/components/StepIndicator/StepIndicator.js +1 -1
  364. package/dist/src/components/MultiStepIndicator/components/StepIndicator/StepIndicator.js.map +1 -1
  365. package/dist/src/components/NumberField/NumberField.js +1 -1
  366. package/dist/src/components/NumberField/NumberField.js.map +1 -1
  367. package/dist/src/components/NumberField/components/NumberFieldSpinButton/NumberFieldSpinButton.js +1 -1
  368. package/dist/src/components/NumberField/components/NumberFieldSpinButton/NumberFieldSpinButton.js.map +1 -1
  369. package/dist/src/components/ProgressBars/ProgressBar/Bar/Bar.js +1 -1
  370. package/dist/src/components/ProgressBars/ProgressBar/Bar/Bar.js.map +1 -1
  371. package/dist/src/components/ProgressBars/ProgressBar/ProgressBar.js +1 -1
  372. package/dist/src/components/ProgressBars/ProgressBar/ProgressBar.js.map +1 -1
  373. package/dist/src/components/RadioButton/RadioButton.js +1 -1
  374. package/dist/src/components/RadioButton/RadioButton.js.map +1 -1
  375. package/dist/src/components/Search/Search.js +1 -1
  376. package/dist/src/components/Search/Search.js.map +1 -1
  377. package/dist/src/components/Skeleton/Skeleton.js +1 -1
  378. package/dist/src/components/Skeleton/Skeleton.js.map +1 -1
  379. package/dist/src/components/Slider/Slider.js +1 -1
  380. package/dist/src/components/Slider/Slider.js.map +1 -1
  381. package/dist/src/components/Slider/SliderBase/SliderBase.js +1 -1
  382. package/dist/src/components/Slider/SliderBase/SliderBase.js.map +1 -1
  383. package/dist/src/components/Slider/SliderBase/SliderFilledTrack.js +1 -1
  384. package/dist/src/components/Slider/SliderBase/SliderFilledTrack.js.map +1 -1
  385. package/dist/src/components/Slider/SliderBase/SliderRail.js +1 -1
  386. package/dist/src/components/Slider/SliderBase/SliderRail.js.map +1 -1
  387. package/dist/src/components/Slider/SliderBase/SliderThumb.js +1 -1
  388. package/dist/src/components/Slider/SliderBase/SliderThumb.js.map +1 -1
  389. package/dist/src/components/Slider/SliderBase/SliderTrack.js +1 -1
  390. package/dist/src/components/Slider/SliderBase/SliderTrack.js.map +1 -1
  391. package/dist/src/components/Slider/SliderContext.js +1 -1
  392. package/dist/src/components/Slider/SliderContext.js.map +1 -1
  393. package/dist/src/components/Slider/SliderHooks.js +1 -1
  394. package/dist/src/components/Slider/SliderHooks.js.map +1 -1
  395. package/dist/src/components/Slider/SliderInfix.js +1 -1
  396. package/dist/src/components/Slider/SliderInfix.js.map +1 -1
  397. package/dist/src/components/SplitButton/SplitButton.js +1 -1
  398. package/dist/src/components/SplitButton/SplitButton.js.map +1 -1
  399. package/dist/src/components/SplitButton/SplitButtonMenu/SplitButtonMenu.js +1 -1
  400. package/dist/src/components/SplitButton/SplitButtonMenu/SplitButtonMenu.js.map +1 -1
  401. package/dist/src/components/Steps/Steps.js +1 -1
  402. package/dist/src/components/Steps/Steps.js.map +1 -1
  403. package/dist/src/components/Steps/StepsCommand.js +1 -1
  404. package/dist/src/components/Steps/StepsCommand.js.map +1 -1
  405. package/dist/src/components/Steps/StepsDot.js +1 -1
  406. package/dist/src/components/Steps/StepsDot.js.map +1 -1
  407. package/dist/src/components/Table/Table/Table.js +1 -1
  408. package/dist/src/components/Table/Table/Table.js.map +1 -1
  409. package/dist/src/components/Table/TableCellSkeleton/TableCellSkeleton.js +1 -1
  410. package/dist/src/components/Table/TableCellSkeleton/TableCellSkeleton.js.map +1 -1
  411. package/dist/src/components/Table/TableHeader/TableHeader.js +1 -1
  412. package/dist/src/components/Table/TableHeader/TableHeader.js.map +1 -1
  413. package/dist/src/components/Table/TableHeaderCell/TableHeaderCell.js +1 -1
  414. package/dist/src/components/Table/TableHeaderCell/TableHeaderCell.js.map +1 -1
  415. package/dist/src/components/Table/TableRow/TableRow.js +1 -1
  416. package/dist/src/components/Table/TableRow/TableRow.js.map +1 -1
  417. package/dist/src/components/Table/TableRowMenu/TableRowMenu.js +1 -1
  418. package/dist/src/components/Table/TableRowMenu/TableRowMenu.js.map +1 -1
  419. package/dist/src/components/Tabs/Tab/Tab.js +1 -1
  420. package/dist/src/components/Tabs/Tab/Tab.js.map +1 -1
  421. package/dist/src/components/Tabs/TabList/TabList.js +1 -1
  422. package/dist/src/components/Tabs/TabList/TabList.js.map +1 -1
  423. package/dist/src/components/Tabs/TabPanel/TabPanel.js +1 -1
  424. package/dist/src/components/Tabs/TabPanel/TabPanel.js.map +1 -1
  425. package/dist/src/components/Tabs/TabPanels/TabPanels.js +1 -1
  426. package/dist/src/components/Tabs/TabPanels/TabPanels.js.map +1 -1
  427. package/dist/src/components/Tabs/TabsContext/TabsContext.js +1 -1
  428. package/dist/src/components/Tabs/TabsContext/TabsContext.js.map +1 -1
  429. package/dist/src/components/TextField/TextField.js +1 -1
  430. package/dist/src/components/TextField/TextField.js.map +1 -1
  431. package/dist/src/components/TextWithHighlight/TextWithHighlight.js +1 -1
  432. package/dist/src/components/TextWithHighlight/TextWithHighlight.js.map +1 -1
  433. package/dist/src/components/ThemeProvider/ThemeProvider.js +1 -1
  434. package/dist/src/components/ThemeProvider/ThemeProvider.js.map +1 -1
  435. package/dist/src/components/Tipseen/Tipseen.js +1 -1
  436. package/dist/src/components/Tipseen/Tipseen.js.map +1 -1
  437. package/dist/src/components/Tipseen/TipseenMedia/TipseenMedia.js +1 -1
  438. package/dist/src/components/Tipseen/TipseenMedia/TipseenMedia.js.map +1 -1
  439. package/dist/src/components/Toast/Toast.js +1 -1
  440. package/dist/src/components/Toast/Toast.js.map +1 -1
  441. package/dist/src/components/Toggle/MockToggle.js +1 -1
  442. package/dist/src/components/Toggle/MockToggle.js.map +1 -1
  443. package/dist/src/components/VirtualizedGrid/VirtualizedGrid.js +1 -1
  444. package/dist/src/components/VirtualizedGrid/VirtualizedGrid.js.map +1 -1
  445. package/dist/src/components/VirtualizedList/VirtualizedList.js +1 -1
  446. package/dist/src/components/VirtualizedList/VirtualizedList.js.map +1 -1
  447. package/dist/src/helpers/textManipulations.js +1 -1
  448. package/dist/src/helpers/textManipulations.js.map +1 -1
  449. package/dist/src/hooks/useActiveDescendantListFocus/useActiveDescendantListFocusHooks.js +1 -1
  450. package/dist/src/hooks/useActiveDescendantListFocus/useActiveDescendantListFocusHooks.js.map +1 -1
  451. package/dist/src/hooks/useFullKeyboardListeners.js +1 -1
  452. package/dist/src/hooks/useFullKeyboardListeners.js.map +1 -1
  453. package/dist/src/hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.js +1 -1
  454. package/dist/src/hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.js.map +1 -1
  455. package/dist/src/hooks/useIsMouseEnter.js +1 -1
  456. package/dist/src/hooks/useIsMouseEnter.js.map +1 -1
  457. package/dist/src/hooks/useIsMouseOver.js +1 -1
  458. package/dist/src/hooks/useIsMouseOver.js.map +1 -1
  459. package/dist/src/hooks/useItemsOverflow/useItemsOverflow.js +1 -1
  460. package/dist/src/hooks/useItemsOverflow/useItemsOverflow.js.map +1 -1
  461. package/dist/src/hooks/useListenFocusTriggers/index.js +1 -1
  462. package/dist/src/hooks/useListenFocusTriggers/index.js.map +1 -1
  463. package/dist/src/hooks/useMediaQuery/index.js +1 -1
  464. package/dist/src/hooks/useMediaQuery/index.js.map +1 -1
  465. package/dist/src/hooks/usePrevious/index.js +1 -1
  466. package/dist/src/hooks/usePrevious/index.js.map +1 -1
  467. package/dist/src/hooks/useSetFocus/index.js +1 -1
  468. package/dist/src/hooks/useSetFocus/index.js.map +1 -1
  469. package/dist/src/hooks/useVibeMediaQuery/index.js +1 -1
  470. package/dist/src/hooks/useVibeMediaQuery/index.js.map +1 -1
  471. package/dist/src/index.js +1 -1
  472. package/package.json +15 -15
  473. package/dist/helpers/screenReaderAccessHelper.d.ts +0 -31
  474. package/dist/helpers/testid-helper.d.ts +0 -1
  475. package/dist/helpers/typesciptCssModulesHelper.d.ts +0 -6
  476. package/dist/hooks/ssr/useIsMounted.d.ts +0 -1
  477. package/dist/hooks/ssr/useIsomorphicLayoutEffect.d.ts +0 -3
  478. package/dist/hooks/useMergeRef.d.ts +0 -7
  479. package/dist/mocked_classnames/helpers/screenReaderAccessHelper.d.ts +0 -31
  480. package/dist/mocked_classnames/helpers/testid-helper.d.ts +0 -1
  481. package/dist/mocked_classnames/helpers/typesciptCssModulesHelper.d.ts +0 -6
  482. package/dist/mocked_classnames/hooks/ssr/useIsMounted.d.ts +0 -1
  483. package/dist/mocked_classnames/hooks/ssr/useIsomorphicLayoutEffect.d.ts +0 -3
  484. package/dist/mocked_classnames/hooks/useMergeRef.d.ts +0 -7
  485. package/dist/mocked_classnames/src/helpers/testid-helper.js.map +0 -1
  486. package/dist/mocked_classnames/src/helpers/typesciptCssModulesHelper.js +0 -2
  487. package/dist/mocked_classnames/src/helpers/typesciptCssModulesHelper.js.map +0 -1
  488. package/dist/mocked_classnames/src/hooks/ssr/useIsomorphicLayoutEffect.js +0 -2
  489. package/dist/mocked_classnames/src/hooks/ssr/useIsomorphicLayoutEffect.js.map +0 -1
  490. package/dist/mocked_classnames/src/hooks/useEventListener/index.js +0 -2
  491. package/dist/mocked_classnames/src/hooks/useEventListener/index.js.map +0 -1
  492. package/dist/mocked_classnames/src/hooks/useKeyEvent/index.js +0 -2
  493. package/dist/mocked_classnames/src/hooks/useKeyEvent/index.js.map +0 -1
  494. package/dist/mocked_classnames/src/hooks/useMergeRef.js +0 -2
  495. package/dist/mocked_classnames/src/hooks/useMergeRef.js.map +0 -1
  496. package/dist/mocked_classnames/src/utils/dom-event-utils.js.map +0 -1
  497. package/dist/mocked_classnames/src/utils/dom-utils.js +0 -2
  498. package/dist/mocked_classnames/src/utils/dom-utils.js.map +0 -1
  499. package/dist/mocked_classnames/src/utils/function-utils.js +0 -2
  500. package/dist/mocked_classnames/src/utils/function-utils.js.map +0 -1
  501. package/dist/mocked_classnames/src/utils/media-query-utils.js +0 -2
  502. package/dist/mocked_classnames/src/utils/media-query-utils.js.map +0 -1
  503. package/dist/mocked_classnames/src/utils/ssr-utils.js +0 -2
  504. package/dist/mocked_classnames/src/utils/ssr-utils.js.map +0 -1
  505. package/dist/mocked_classnames/src/utils/user-agent-utils.js.map +0 -1
  506. package/dist/mocked_classnames/src/utils/warn-deprecated.js.map +0 -1
  507. package/dist/mocked_classnames/utils/dom-event-utils.d.ts +0 -16
  508. package/dist/mocked_classnames/utils/dom-utils.d.ts +0 -2
  509. package/dist/mocked_classnames/utils/function-utils.d.ts +0 -5
  510. package/dist/mocked_classnames/utils/media-query-utils.d.ts +0 -23
  511. package/dist/mocked_classnames/utils/ssr-utils.d.ts +0 -2
  512. package/dist/mocked_classnames/utils/user-agent-utils.d.ts +0 -2
  513. package/dist/mocked_classnames/utils/warn-deprecated.d.ts +0 -10
  514. package/dist/src/helpers/testid-helper.js +0 -2
  515. package/dist/src/helpers/testid-helper.js.map +0 -1
  516. package/dist/src/helpers/typesciptCssModulesHelper.js +0 -2
  517. package/dist/src/helpers/typesciptCssModulesHelper.js.map +0 -1
  518. package/dist/src/hooks/ssr/useIsomorphicLayoutEffect.js +0 -2
  519. package/dist/src/hooks/ssr/useIsomorphicLayoutEffect.js.map +0 -1
  520. package/dist/src/hooks/useEventListener/index.js +0 -2
  521. package/dist/src/hooks/useEventListener/index.js.map +0 -1
  522. package/dist/src/hooks/useKeyEvent/index.js +0 -2
  523. package/dist/src/hooks/useKeyEvent/index.js.map +0 -1
  524. package/dist/src/hooks/useMergeRef.js +0 -2
  525. package/dist/src/hooks/useMergeRef.js.map +0 -1
  526. package/dist/src/utils/dom-event-utils.js +0 -2
  527. package/dist/src/utils/dom-event-utils.js.map +0 -1
  528. package/dist/src/utils/dom-utils.js +0 -2
  529. package/dist/src/utils/dom-utils.js.map +0 -1
  530. package/dist/src/utils/function-utils.js +0 -2
  531. package/dist/src/utils/function-utils.js.map +0 -1
  532. package/dist/src/utils/media-query-utils.js +0 -2
  533. package/dist/src/utils/media-query-utils.js.map +0 -1
  534. package/dist/src/utils/ssr-utils.js +0 -2
  535. package/dist/src/utils/ssr-utils.js.map +0 -1
  536. package/dist/src/utils/user-agent-utils.js +0 -2
  537. package/dist/src/utils/user-agent-utils.js.map +0 -1
  538. package/dist/src/utils/warn-deprecated.js +0 -2
  539. package/dist/src/utils/warn-deprecated.js.map +0 -1
  540. package/dist/utils/dom-event-utils.d.ts +0 -16
  541. package/dist/utils/dom-utils.d.ts +0 -2
  542. package/dist/utils/function-utils.d.ts +0 -5
  543. package/dist/utils/media-query-utils.d.ts +0 -23
  544. package/dist/utils/ssr-utils.d.ts +0 -2
  545. package/dist/utils/user-agent-utils.d.ts +0 -2
  546. package/dist/utils/warn-deprecated.d.ts +0 -10
  547. /package/dist/{mocked_classnames/src → shared/dist}/utils/dom-event-utils.js +0 -0
  548. /package/dist/{mocked_classnames/src/helpers → shared/dist/utils}/testid-helper.js +0 -0
  549. /package/dist/{mocked_classnames/src → shared/dist}/utils/user-agent-utils.js +0 -0
  550. /package/dist/{mocked_classnames/src → shared/dist}/utils/warn-deprecated.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"SplitButton.js","sources":["../../../../../src/components/SplitButton/SplitButton.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport { camelCase } from \"es-toolkit\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\n// Libraries import\nimport React, { type ReactElement, useCallback, useMemo, useRef, useState } from \"react\";\n// Constants import\nimport {\n DEFAULT_DIALOG_HIDE_TRIGGER,\n DEFAULT_DIALOG_SHOW_TRIGGER,\n DIALOG_MOVE_BY,\n ENTER_KEYS,\n SECONDARY_BUTTON_ARIA_LABEL,\n SECONDARY_BUTTON_WRAPPER_CLASSNAME,\n type SplitButtonSecondaryContentPositionType\n} from \"./SplitButtonConstants\";\n// Utils import\nimport { NOOP } from \"../../utils/function-utils\";\nimport { isInsideClass } from \"../../utils/dom-utils\";\n// Hooks import\nimport useKeyEvent from \"../../hooks/useKeyEvent\";\nimport useEventListener from \"../../hooks/useEventListener\";\n// Components import\nimport { Button, type ButtonProps } from \"@vibe/button\";\nimport { DropdownChevronDown } from \"@vibe/icons\";\nimport {\n DialogContentContainer,\n type DialogSize,\n type DialogStartingEdge,\n type DialogTriggerEvent,\n Dialog,\n type DialogEvent,\n type DialogPosition\n} from \"@vibe/dialog\";\nimport styles from \"./SplitButton.module.scss\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nexport interface SplitButtonProps extends ButtonProps {\n /**\n * The element or renderer that is displayed inside the dialog opened by clicking the secondary button.\n */\n secondaryDialogContent?: ReactElement | (() => string | ReactElement);\n /**\n * Callback fired when the secondary dialog is shown.\n */\n onSecondaryDialogDidShow?: () => void;\n /**\n * Callback fired when the secondary dialog is hidden.\n */\n onSecondaryDialogDidHide?: () => void;\n /**\n * The z-index applied to the secondary dialog.\n */\n zIndex?: number;\n /**\n * Class name applied to the wrapper of the secondary dialog.\n */\n secondaryDialogClassName?: string;\n /**\n * The position of the secondary dialog.\n */\n secondaryDialogPosition?: SplitButtonSecondaryContentPositionType;\n /**\n * The padding size inside the secondary dialog.\n */\n dialogPaddingSize?: DialogSize;\n /**\n * The CSS selector of the container where the dialog should be rendered.\n */\n dialogContainerSelector?: string;\n /**\n * If true, clicking inside the dialog will close it.\n */\n shouldCloseOnClickInsideDialog?: boolean;\n}\n\nconst SplitButton = ({\n secondaryDialogContent,\n onSecondaryDialogDidShow = NOOP,\n onSecondaryDialogDidHide = NOOP,\n shouldCloseOnClickInsideDialog,\n zIndex = null,\n secondaryDialogClassName = \"\",\n secondaryDialogPosition = \"bottom-start\",\n dialogContainerSelector,\n dialogPaddingSize = \"medium\",\n disabled,\n // success mode not working right now, need to fix it in different pr\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n success,\n loading,\n kind = \"primary\",\n color = \"primary\",\n className,\n leftIcon,\n rightIcon,\n onClick,\n children,\n marginLeft,\n marginRight,\n active,\n id,\n \"data-testid\": dataTestId,\n ...buttonProps\n}: SplitButtonProps) => {\n // State //\n const [isDialogOpen, setDialogOpen] = useState(false);\n const [isHovered, setIsHover] = useState(false);\n const [isActive, setIsActive] = useState(false);\n\n // Refs //\n const ref = useRef(null);\n const secondaryButtonRef = useRef(null);\n\n // Callbacks //\n const setHovered = useCallback(() => setIsHover(true), [setIsHover]);\n const setNotHovered = useCallback(() => setIsHover(false), [setIsHover]);\n\n const shouldSetActive = useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n if (disabled) return false;\n return !isInsideClass(e.target as HTMLElement, SECONDARY_BUTTON_WRAPPER_CLASSNAME);\n },\n [disabled]\n );\n\n const setActive = useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n if (!shouldSetActive(e)) return;\n setIsActive(true);\n },\n [setIsActive, shouldSetActive]\n );\n const setNotActive = useCallback(() => setIsActive(false), [setIsActive]);\n const setActiveOnEnter = useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n if (!shouldSetActive(e)) return;\n setIsActive(true);\n },\n [setIsActive, shouldSetActive]\n );\n\n const showDialog = useCallback(() => {\n setDialogOpen(true);\n onSecondaryDialogDidShow();\n }, [setDialogOpen, onSecondaryDialogDidShow]);\n\n const hideDialog = useCallback(\n (_: DialogEvent, eventName: DialogTriggerEvent) => {\n setDialogOpen(false);\n onSecondaryDialogDidHide();\n if (eventName === \"esckey\") {\n secondaryButtonRef.current.focus();\n }\n },\n [setDialogOpen, onSecondaryDialogDidHide]\n );\n\n // Event listeners //\n\n // Used to set both buttons as hovered no matter what button was hovered\n useEventListener({ eventName: \"mouseenter\", callback: setHovered, ref });\n useEventListener({ eventName: \"mouseleave\", callback: setNotHovered, ref });\n\n useEventListener({ eventName: \"mousedown\", callback: setActive, ref });\n useEventListener({ eventName: \"mouseup\", callback: setNotActive, ref });\n\n // Used to finish active transition if clicked on enter\n useEventListener({ eventName: \"transitionend\", callback: setNotActive, ref });\n\n // Key events\n useKeyEvent({ keys: ENTER_KEYS, ref, callback: setActiveOnEnter });\n\n const classNames = useMemo(\n () =>\n cx(\n styles.button,\n getStyle(styles, camelCase(\"kind-\" + kind)),\n getStyle(styles, camelCase(\"color-\" + color)),\n {\n [styles.mainActive]: active,\n [styles.active]: isActive,\n [styles.splitContentOpen]: isDialogOpen,\n [styles.hovered]: isHovered,\n [styles.disabled]: disabled\n },\n className\n ),\n [className, kind, color, active, isActive, isDialogOpen, isHovered, disabled]\n );\n\n const dialogShowTrigger = useMemo(() => (disabled ? [] : DEFAULT_DIALOG_SHOW_TRIGGER), [disabled]);\n\n const dialogHideTrigger = useMemo(() => {\n if (shouldCloseOnClickInsideDialog)\n return [...DEFAULT_DIALOG_HIDE_TRIGGER, \"onContentClick\"] as DialogTriggerEvent[];\n return DEFAULT_DIALOG_HIDE_TRIGGER;\n }, [shouldCloseOnClickInsideDialog]);\n\n const actionsContent = useCallback(() => {\n const content = typeof secondaryDialogContent === \"function\" ? secondaryDialogContent() : secondaryDialogContent;\n return (\n <DialogContentContainer type=\"popover\" size={dialogPaddingSize}>\n {content}\n </DialogContentContainer>\n );\n }, [secondaryDialogContent, dialogPaddingSize]);\n\n const animationEdgePosition: DialogStartingEdge | undefined = useMemo(() => {\n if (secondaryDialogPosition === \"bottom\") {\n return undefined;\n }\n if (secondaryDialogPosition === \"bottom-start\") {\n return \"bottom\";\n }\n\n return \"top\";\n }, [secondaryDialogPosition]);\n\n return (\n <div\n className={classNames}\n ref={ref}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.SPLIT_BUTTON, id)}\n data-vibe={ComponentVibeId.SPLIT_BUTTON}\n >\n <Button\n {\n ...buttonProps /* We are enriching button with other props so we must use spreading */\n }\n preventClickAnimation\n leftIcon={leftIcon}\n rightIcon={rightIcon}\n rightFlat\n color={color}\n kind={kind}\n active={active}\n onClick={onClick}\n className={styles.mainButton}\n marginLeft={marginLeft}\n onFocus={setHovered}\n onBlur={setNotHovered}\n disabled={disabled}\n loading={loading}\n data-testid={getTestId(ComponentDefaultTestId.SPLIT_BUTTON_PRIMARY_BUTTON, id)}\n >\n {children}\n </Button>\n <div className={styles.secondaryButtonWrapper}>\n <Dialog\n wrapperClassName={secondaryDialogClassName}\n zIndex={zIndex}\n content={actionsContent}\n position={secondaryDialogPosition as DialogPosition}\n containerSelector={dialogContainerSelector}\n startingEdge={animationEdgePosition}\n animationType=\"expand\"\n moveBy={DIALOG_MOVE_BY}\n onDialogDidShow={showDialog}\n onDialogDidHide={hideDialog}\n showTrigger={dialogShowTrigger}\n hideTrigger={dialogHideTrigger}\n >\n <Button\n {...buttonProps}\n ref={secondaryButtonRef}\n preventClickAnimation\n leftFlat\n noSidePadding\n color={color}\n kind={kind}\n className={styles.secondaryButton}\n active={isDialogOpen}\n marginRight={marginRight}\n onFocus={setHovered}\n onBlur={setNotHovered}\n disabled={disabled}\n aria-label={SECONDARY_BUTTON_ARIA_LABEL}\n aria-haspopup\n aria-expanded={isDialogOpen}\n data-testid={getTestId(ComponentDefaultTestId.SPLIT_BUTTON_SECONDARY_BUTTON, id)}\n >\n <div className={styles.secondaryButtonIconWrapper}>\n <DropdownChevronDown aria-hidden=\"true\" />\n </div>\n </Button>\n </Dialog>\n </div>\n </div>\n );\n};\n\nexport default SplitButton;\n"],"names":["SplitButton","_a","secondaryDialogContent","_a$onSecondaryDialogD","onSecondaryDialogDidShow","NOOP","_a$onSecondaryDialogD2","onSecondaryDialogDidHide","shouldCloseOnClickInsideDialog","_a$zIndex","zIndex","_a$secondaryDialogCla","secondaryDialogClassName","_a$secondaryDialogPos","secondaryDialogPosition","dialogContainerSelector","_a$dialogPaddingSize","dialogPaddingSize","disabled","loading","_a$kind","kind","_a$color","color","className","leftIcon","rightIcon","onClick","children","marginLeft","marginRight","active","id","dataTestId","buttonProps","__rest","_useState","useState","_useState2","_slicedToArray","isDialogOpen","setDialogOpen","_useState3","_useState4","isHovered","setIsHover","_useState5","_useState6","isActive","setIsActive","ref","useRef","secondaryButtonRef","setHovered","useCallback","setNotHovered","shouldSetActive","e","isInsideClass","target","SECONDARY_BUTTON_WRAPPER_CLASSNAME","setActive","setNotActive","setActiveOnEnter","showDialog","hideDialog","_","eventName","current","focus","useEventListener","callback","useKeyEvent","keys","ENTER_KEYS","classNames","useMemo","cx","styles","button","getStyle","camelCase","_defineProperty","mainActive","splitContentOpen","hovered","dialogShowTrigger","DEFAULT_DIALOG_SHOW_TRIGGER","dialogHideTrigger","concat","_toConsumableArray","DEFAULT_DIALOG_HIDE_TRIGGER","actionsContent","content","React","createElement","DialogContentContainer","type","size","animationEdgePosition","getTestId","ComponentDefaultTestId","SPLIT_BUTTON","ComponentVibeId","Button","Object","assign","preventClickAnimation","rightFlat","mainButton","onFocus","onBlur","SPLIT_BUTTON_PRIMARY_BUTTON","secondaryButtonWrapper","Dialog","wrapperClassName","position","containerSelector","startingEdge","animationType","moveBy","DIALOG_MOVE_BY","onDialogDidShow","onDialogDidHide","showTrigger","hideTrigger","leftFlat","noSidePadding","secondaryButton","SECONDARY_BUTTON_ARIA_LABEL","SPLIT_BUTTON_SECONDARY_BUTTON","secondaryButtonIconWrapper","DropdownChevronDown"],"mappings":"+pCA6EA,IAAMA,EAAc,SAACC,GAAA,IACnBC,EAyByBD,EAzBzBC,uBAAsBC,EAyBGF,EAxBzBG,yBAAAA,OAA2BC,IAAHF,EAAGE,EAAIF,EAAAG,EAwBNL,EAvBzBM,yBAAAA,OAA2BF,IAAHC,EAAGD,EAAIC,EAC/BE,EAsByBP,EAtBzBO,+BAA8BC,EAsBLR,EArBzBS,OAAAA,OAAS,IAAHD,EAAG,KAAIA,EAAAE,EAqBYV,EApBzBW,yBAAAA,OAA2B,IAAHD,EAAG,GAAEA,EAAAE,EAoBJZ,EAnBzBa,wBAAAA,OAA0B,IAAHD,EAAG,eAAcA,EACxCE,EAkByBd,EAlBzBc,wBAAuBC,EAkBEf,EAjBzBgB,kBAAAA,OAAoB,IAAHD,EAAG,SAAQA,EAC5BE,EAgByBjB,EAhBzBiB,SAIAC,EAYyBlB,EAZzBkB,QAAOC,EAYkBnB,EAXzBoB,KAAAA,OAAO,IAAHD,EAAG,UAASA,EAAAE,EAWSrB,EAVzBsB,MAAAA,OAAQ,IAAHD,EAAG,UAASA,EACjBE,EASyBvB,EATzBuB,UACAC,EAQyBxB,EARzBwB,SACAC,GAOyBzB,EAPzByB,UACAC,GAMyB1B,EANzB0B,QACAC,GAKyB3B,EALzB2B,SACAC,GAIyB5B,EAJzB4B,WACAC,GAGyB7B,EAHzB6B,YACAC,GAEyB9B,EAFzB8B,OACAC,GACyB/B,EADzB+B,GACeC,GAAUhC,EAAzB,eACGiC,GAAWC,EAAAlC,EA3BK,4XA8BnBmC,GAAsCC,GAAS,GAAMC,GAAAC,EAAAH,GAAA,GAA9CI,GAAYF,GAAA,GAAEG,GAAaH,GAAA,GAClCI,GAAgCL,GAAS,GAAMM,GAAAJ,EAAAG,GAAA,GAAxCE,GAASD,GAAA,GAAEE,GAAUF,GAAA,GAC5BG,GAAgCT,GAAS,GAAMU,GAAAR,EAAAO,GAAA,GAAxCE,GAAQD,GAAA,GAAEE,GAAWF,GAAA,GAGtBG,GAAMC,EAAO,MACbC,GAAqBD,EAAO,MAG5BE,GAAaC,GAAY,WAAA,OAAMT,IAAW,KAAO,CAACA,KAClDU,GAAgBD,GAAY,WAAA,OAAMT,IAAW,KAAQ,CAACA,KAEtDW,GAAkBF,GACtB,SAACG,GACC,OAAIvC,IACIwC,EAAcD,EAAEE,OAAuBC,EACjD,GACA,CAAC1C,IAGG2C,GAAYP,GAChB,SAACG,GACMD,GAAgBC,IACrBR,IAAY,EACd,GACA,CAACA,GAAaO,KAEVM,GAAeR,GAAY,WAAA,OAAML,IAAY,KAAQ,CAACA,KACtDc,GAAmBT,GACvB,SAACG,GACMD,GAAgBC,IACrBR,IAAY,EACd,GACA,CAACA,GAAaO,KAGVQ,GAAaV,GAAY,WAC7Bb,IAAc,GACdrC,GACF,GAAG,CAACqC,GAAerC,IAEb6D,GAAaX,GACjB,SAACY,EAAgBC,GACf1B,IAAc,GACdlC,IACkB,WAAd4D,GACFf,GAAmBgB,QAAQC,OAE/B,GACA,CAAC5B,GAAelC,IAMlB+D,EAAiB,CAAEH,UAAW,aAAcI,SAAUlB,GAAYH,IAAAA,KAClEoB,EAAiB,CAAEH,UAAW,aAAcI,SAAUhB,GAAeL,IAAAA,KAErEoB,EAAiB,CAAEH,UAAW,YAAaI,SAAUV,GAAWX,IAAAA,KAChEoB,EAAiB,CAAEH,UAAW,UAAWI,SAAUT,GAAcZ,IAAAA,KAGjEoB,EAAiB,CAAEH,UAAW,gBAAiBI,SAAUT,GAAcZ,IAAAA,KAGvEsB,EAAY,CAAEC,KAAMC,EAAYxB,IAAAA,GAAKqB,SAAUR,KAE/C,IAAMY,GAAaC,GACjB,WAAA,OACEC,EACEC,EAAOC,OACPC,EAASF,EAAQG,EAAU,QAAU5D,IACrC2D,EAASF,EAAQG,EAAU,SAAW1D,IAAO2D,EAAAA,EAAAA,EAAAA,EAAAA,EAE1CJ,CAAAA,EAAAA,EAAOK,WAAapD,IACpB+C,EAAO/C,OAASiB,IAChB8B,EAAOM,iBAAmB5C,IAC1BsC,EAAOO,QAAUzC,IACjBkC,EAAO5D,SAAWA,GAErBM,EACD,GACH,CAACA,EAAWH,EAAME,EAAOQ,GAAQiB,GAAUR,GAAcI,GAAW1B,IAGhEoE,GAAoBV,GAAQ,WAAA,OAAO1D,EAAW,GAAKqE,CAA2B,GAAG,CAACrE,IAElFsE,GAAoBZ,GAAQ,WAChC,OAAIpE,EACFiF,GAAAA,OAAAC,EAAWC,GAA2B,CAAE,mBACnCA,CACT,GAAG,CAACnF,IAEEoF,GAAiBtC,GAAY,WACjC,IAAMuC,EAA4C,mBAA3B3F,EAAwCA,IAA2BA,EAC1F,OACE4F,EAAAC,cAACC,EAAsB,CAACC,KAAK,UAAUC,KAAMjF,GAC1C4E,EAGP,GAAG,CAAC3F,EAAwBe,IAEtBkF,GAAwDvB,GAAQ,WACpE,GAAgC,WAA5B9D,EAGJ,MAAgC,iBAA5BA,EACK,SAGF,KACT,GAAG,CAACA,IAEJ,OACEgF,EACEC,cAAA,MAAA,CAAAvE,UAAWmD,GACXzB,IAAKA,GACLlB,GAAIA,GACS,cAAAC,IAAcmE,EAAUC,EAAuBC,aAActE,IAAG,YAClEuE,EAAgBD,cAE3BR,EAAAC,cAACS,EAAMC,OAAAC,OAAA,CAAA,EAEAxE,GAEL,CAAAyE,uBACA,EAAAlF,SAAUA,EACVC,UAAWA,GACXkF,WAAS,EACTrF,MAAOA,EACPF,KAAMA,EACNU,OAAQA,GACRJ,QAASA,GACTH,UAAWsD,EAAO+B,WAClBhF,WAAYA,GACZiF,QAASzD,GACT0D,OAAQxD,GACRrC,SAAUA,EACVC,QAASA,gBACIiF,EAAUC,EAAuBW,4BAA6BhF,MAE1EJ,IAEHkE,EAAAC,cAAA,MAAA,CAAKvE,UAAWsD,EAAOmC,wBACrBnB,EAACC,cAAAmB,GACCC,iBAAkBvG,EAClBF,OAAQA,EACRmF,QAASD,GACTwB,SAAUtG,EACVuG,kBAAmBtG,EACnBuG,aAAcnB,GACdoB,cAAc,SACdC,OAAQC,EACRC,gBAAiB1D,GACjB2D,gBAAiB1D,GACjB2D,YAAatC,GACbuC,YAAarC,IAEbM,EAACC,cAAAS,EACKC,OAAAC,OAAA,CAAA,EAAAxE,GACJ,CAAAgB,IAAKE,GACLuD,uBACA,EAAAmB,UACA,EAAAC,eACA,EAAAxG,MAAOA,EACPF,KAAMA,EACNG,UAAWsD,EAAOkD,gBAClBjG,OAAQS,GACRV,YAAaA,GACbgF,QAASzD,GACT0D,OAAQxD,GACRrC,SAAUA,EACE,aAAA+G,EAEG,iBAAA,EAAA,gBAAAzF,GACF,cAAA4D,EAAUC,EAAuB6B,8BAA+BlG,MAE7E8D,EAAAC,cAAA,MAAA,CAAKvE,UAAWsD,EAAOqD,4BACrBrC,EAACC,cAAAqC,EAAgC,CAAA,cAAA,aAO/C"}
1
+ {"version":3,"file":"SplitButton.js","sources":["../../../../../src/components/SplitButton/SplitButton.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport { camelCase } from \"es-toolkit\";\nimport { getStyle, NOOP, isInsideClass } from \"@vibe/shared\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\n// Libraries import\nimport React, { type ReactElement, useCallback, useMemo, useRef, useState } from \"react\";\n// Constants import\nimport {\n DEFAULT_DIALOG_HIDE_TRIGGER,\n DEFAULT_DIALOG_SHOW_TRIGGER,\n DIALOG_MOVE_BY,\n ENTER_KEYS,\n SECONDARY_BUTTON_ARIA_LABEL,\n SECONDARY_BUTTON_WRAPPER_CLASSNAME,\n type SplitButtonSecondaryContentPositionType\n} from \"./SplitButtonConstants\";\n// Utils import\n\n// Hooks import\nimport useKeyEvent from \"../../hooks/useKeyEvent\";\nimport useEventListener from \"../../hooks/useEventListener\";\n// Components import\nimport { Button, type ButtonProps } from \"@vibe/button\";\nimport { DropdownChevronDown } from \"@vibe/icons\";\nimport {\n DialogContentContainer,\n type DialogSize,\n type DialogStartingEdge,\n type DialogTriggerEvent,\n Dialog,\n type DialogEvent,\n type DialogPosition\n} from \"@vibe/dialog\";\nimport styles from \"./SplitButton.module.scss\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nexport interface SplitButtonProps extends ButtonProps {\n /**\n * The element or renderer that is displayed inside the dialog opened by clicking the secondary button.\n */\n secondaryDialogContent?: ReactElement | (() => string | ReactElement);\n /**\n * Callback fired when the secondary dialog is shown.\n */\n onSecondaryDialogDidShow?: () => void;\n /**\n * Callback fired when the secondary dialog is hidden.\n */\n onSecondaryDialogDidHide?: () => void;\n /**\n * The z-index applied to the secondary dialog.\n */\n zIndex?: number;\n /**\n * Class name applied to the wrapper of the secondary dialog.\n */\n secondaryDialogClassName?: string;\n /**\n * The position of the secondary dialog.\n */\n secondaryDialogPosition?: SplitButtonSecondaryContentPositionType;\n /**\n * The padding size inside the secondary dialog.\n */\n dialogPaddingSize?: DialogSize;\n /**\n * The CSS selector of the container where the dialog should be rendered.\n */\n dialogContainerSelector?: string;\n /**\n * If true, clicking inside the dialog will close it.\n */\n shouldCloseOnClickInsideDialog?: boolean;\n}\n\nconst SplitButton = ({\n secondaryDialogContent,\n onSecondaryDialogDidShow = NOOP,\n onSecondaryDialogDidHide = NOOP,\n shouldCloseOnClickInsideDialog,\n zIndex = null,\n secondaryDialogClassName = \"\",\n secondaryDialogPosition = \"bottom-start\",\n dialogContainerSelector,\n dialogPaddingSize = \"medium\",\n disabled,\n // success mode not working right now, need to fix it in different pr\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n success,\n loading,\n kind = \"primary\",\n color = \"primary\",\n className,\n leftIcon,\n rightIcon,\n onClick,\n children,\n marginLeft,\n marginRight,\n active,\n id,\n \"data-testid\": dataTestId,\n ...buttonProps\n}: SplitButtonProps) => {\n // State //\n const [isDialogOpen, setDialogOpen] = useState(false);\n const [isHovered, setIsHover] = useState(false);\n const [isActive, setIsActive] = useState(false);\n\n // Refs //\n const ref = useRef(null);\n const secondaryButtonRef = useRef(null);\n\n // Callbacks //\n const setHovered = useCallback(() => setIsHover(true), [setIsHover]);\n const setNotHovered = useCallback(() => setIsHover(false), [setIsHover]);\n\n const shouldSetActive = useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n if (disabled) return false;\n return !isInsideClass(e.target as HTMLElement, SECONDARY_BUTTON_WRAPPER_CLASSNAME);\n },\n [disabled]\n );\n\n const setActive = useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n if (!shouldSetActive(e)) return;\n setIsActive(true);\n },\n [setIsActive, shouldSetActive]\n );\n const setNotActive = useCallback(() => setIsActive(false), [setIsActive]);\n const setActiveOnEnter = useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n if (!shouldSetActive(e)) return;\n setIsActive(true);\n },\n [setIsActive, shouldSetActive]\n );\n\n const showDialog = useCallback(() => {\n setDialogOpen(true);\n onSecondaryDialogDidShow();\n }, [setDialogOpen, onSecondaryDialogDidShow]);\n\n const hideDialog = useCallback(\n (_: DialogEvent, eventName: DialogTriggerEvent) => {\n setDialogOpen(false);\n onSecondaryDialogDidHide();\n if (eventName === \"esckey\") {\n secondaryButtonRef.current.focus();\n }\n },\n [setDialogOpen, onSecondaryDialogDidHide]\n );\n\n // Event listeners //\n\n // Used to set both buttons as hovered no matter what button was hovered\n useEventListener({ eventName: \"mouseenter\", callback: setHovered, ref });\n useEventListener({ eventName: \"mouseleave\", callback: setNotHovered, ref });\n\n useEventListener({ eventName: \"mousedown\", callback: setActive, ref });\n useEventListener({ eventName: \"mouseup\", callback: setNotActive, ref });\n\n // Used to finish active transition if clicked on enter\n useEventListener({ eventName: \"transitionend\", callback: setNotActive, ref });\n\n // Key events\n useKeyEvent({ keys: ENTER_KEYS, ref, callback: setActiveOnEnter });\n\n const classNames = useMemo(\n () =>\n cx(\n styles.button,\n getStyle(styles, camelCase(\"kind-\" + kind)),\n getStyle(styles, camelCase(\"color-\" + color)),\n {\n [styles.mainActive]: active,\n [styles.active]: isActive,\n [styles.splitContentOpen]: isDialogOpen,\n [styles.hovered]: isHovered,\n [styles.disabled]: disabled\n },\n className\n ),\n [className, kind, color, active, isActive, isDialogOpen, isHovered, disabled]\n );\n\n const dialogShowTrigger = useMemo(() => (disabled ? [] : DEFAULT_DIALOG_SHOW_TRIGGER), [disabled]);\n\n const dialogHideTrigger = useMemo(() => {\n if (shouldCloseOnClickInsideDialog)\n return [...DEFAULT_DIALOG_HIDE_TRIGGER, \"onContentClick\"] as DialogTriggerEvent[];\n return DEFAULT_DIALOG_HIDE_TRIGGER;\n }, [shouldCloseOnClickInsideDialog]);\n\n const actionsContent = useCallback(() => {\n const content = typeof secondaryDialogContent === \"function\" ? secondaryDialogContent() : secondaryDialogContent;\n return (\n <DialogContentContainer type=\"popover\" size={dialogPaddingSize}>\n {content}\n </DialogContentContainer>\n );\n }, [secondaryDialogContent, dialogPaddingSize]);\n\n const animationEdgePosition: DialogStartingEdge | undefined = useMemo(() => {\n if (secondaryDialogPosition === \"bottom\") {\n return undefined;\n }\n if (secondaryDialogPosition === \"bottom-start\") {\n return \"bottom\";\n }\n\n return \"top\";\n }, [secondaryDialogPosition]);\n\n return (\n <div\n className={classNames}\n ref={ref}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.SPLIT_BUTTON, id)}\n data-vibe={ComponentVibeId.SPLIT_BUTTON}\n >\n <Button\n {\n ...buttonProps /* We are enriching button with other props so we must use spreading */\n }\n preventClickAnimation\n leftIcon={leftIcon}\n rightIcon={rightIcon}\n rightFlat\n color={color}\n kind={kind}\n active={active}\n onClick={onClick}\n className={styles.mainButton}\n marginLeft={marginLeft}\n onFocus={setHovered}\n onBlur={setNotHovered}\n disabled={disabled}\n loading={loading}\n data-testid={getTestId(ComponentDefaultTestId.SPLIT_BUTTON_PRIMARY_BUTTON, id)}\n >\n {children}\n </Button>\n <div className={styles.secondaryButtonWrapper}>\n <Dialog\n wrapperClassName={secondaryDialogClassName}\n zIndex={zIndex}\n content={actionsContent}\n position={secondaryDialogPosition as DialogPosition}\n containerSelector={dialogContainerSelector}\n startingEdge={animationEdgePosition}\n animationType=\"expand\"\n moveBy={DIALOG_MOVE_BY}\n onDialogDidShow={showDialog}\n onDialogDidHide={hideDialog}\n showTrigger={dialogShowTrigger}\n hideTrigger={dialogHideTrigger}\n >\n <Button\n {...buttonProps}\n ref={secondaryButtonRef}\n preventClickAnimation\n leftFlat\n noSidePadding\n color={color}\n kind={kind}\n className={styles.secondaryButton}\n active={isDialogOpen}\n marginRight={marginRight}\n onFocus={setHovered}\n onBlur={setNotHovered}\n disabled={disabled}\n aria-label={SECONDARY_BUTTON_ARIA_LABEL}\n aria-haspopup\n aria-expanded={isDialogOpen}\n data-testid={getTestId(ComponentDefaultTestId.SPLIT_BUTTON_SECONDARY_BUTTON, id)}\n >\n <div className={styles.secondaryButtonIconWrapper}>\n <DropdownChevronDown aria-hidden=\"true\" />\n </div>\n </Button>\n </Dialog>\n </div>\n </div>\n );\n};\n\nexport default SplitButton;\n"],"names":["SplitButton","_a","secondaryDialogContent","_a$onSecondaryDialogD","onSecondaryDialogDidShow","NOOP","_a$onSecondaryDialogD2","onSecondaryDialogDidHide","shouldCloseOnClickInsideDialog","_a$zIndex","zIndex","_a$secondaryDialogCla","secondaryDialogClassName","_a$secondaryDialogPos","secondaryDialogPosition","dialogContainerSelector","_a$dialogPaddingSize","dialogPaddingSize","disabled","loading","_a$kind","kind","_a$color","color","className","leftIcon","rightIcon","onClick","children","marginLeft","marginRight","active","id","dataTestId","buttonProps","__rest","_useState","useState","_useState2","_slicedToArray","isDialogOpen","setDialogOpen","_useState3","_useState4","isHovered","setIsHover","_useState5","_useState6","isActive","setIsActive","ref","useRef","secondaryButtonRef","setHovered","useCallback","setNotHovered","shouldSetActive","e","isInsideClass","target","SECONDARY_BUTTON_WRAPPER_CLASSNAME","setActive","setNotActive","setActiveOnEnter","showDialog","hideDialog","_","eventName","current","focus","useEventListener","callback","useKeyEvent","keys","ENTER_KEYS","classNames","useMemo","cx","styles","button","getStyle","camelCase","_defineProperty","mainActive","splitContentOpen","hovered","dialogShowTrigger","DEFAULT_DIALOG_SHOW_TRIGGER","dialogHideTrigger","concat","_toConsumableArray","DEFAULT_DIALOG_HIDE_TRIGGER","actionsContent","content","React","createElement","DialogContentContainer","type","size","animationEdgePosition","getTestId","ComponentDefaultTestId","SPLIT_BUTTON","ComponentVibeId","Button","Object","assign","preventClickAnimation","rightFlat","mainButton","onFocus","onBlur","SPLIT_BUTTON_PRIMARY_BUTTON","secondaryButtonWrapper","Dialog","wrapperClassName","position","containerSelector","startingEdge","animationType","moveBy","DIALOG_MOVE_BY","onDialogDidShow","onDialogDidHide","showTrigger","hideTrigger","leftFlat","noSidePadding","secondaryButton","SECONDARY_BUTTON_ARIA_LABEL","SPLIT_BUTTON_SECONDARY_BUTTON","secondaryButtonIconWrapper","DropdownChevronDown"],"mappings":"k/BA4EA,IAAMA,EAAc,SAACC,GAAA,IACnBC,EAyByBD,EAzBzBC,uBAAsBC,EAyBGF,EAxBzBG,yBAAAA,OAA2BC,IAAHF,EAAGE,EAAIF,EAAAG,EAwBNL,EAvBzBM,yBAAAA,OAA2BF,IAAHC,EAAGD,EAAIC,EAC/BE,EAsByBP,EAtBzBO,+BAA8BC,EAsBLR,EArBzBS,OAAAA,OAAS,IAAHD,EAAG,KAAIA,EAAAE,EAqBYV,EApBzBW,yBAAAA,OAA2B,IAAHD,EAAG,GAAEA,EAAAE,EAoBJZ,EAnBzBa,wBAAAA,OAA0B,IAAHD,EAAG,eAAcA,EACxCE,EAkByBd,EAlBzBc,wBAAuBC,EAkBEf,EAjBzBgB,kBAAAA,OAAoB,IAAHD,EAAG,SAAQA,EAC5BE,EAgByBjB,EAhBzBiB,SAIAC,EAYyBlB,EAZzBkB,QAAOC,EAYkBnB,EAXzBoB,KAAAA,OAAO,IAAHD,EAAG,UAASA,EAAAE,EAWSrB,EAVzBsB,MAAAA,OAAQ,IAAHD,EAAG,UAASA,EACjBE,EASyBvB,EATzBuB,UACAC,EAQyBxB,EARzBwB,SACAC,GAOyBzB,EAPzByB,UACAC,GAMyB1B,EANzB0B,QACAC,GAKyB3B,EALzB2B,SACAC,GAIyB5B,EAJzB4B,WACAC,GAGyB7B,EAHzB6B,YACAC,GAEyB9B,EAFzB8B,OACAC,GACyB/B,EADzB+B,GACeC,GAAUhC,EAAzB,eACGiC,GAAWC,EAAAlC,EA3BK,4XA8BnBmC,GAAsCC,GAAS,GAAMC,GAAAC,EAAAH,GAAA,GAA9CI,GAAYF,GAAA,GAAEG,GAAaH,GAAA,GAClCI,GAAgCL,GAAS,GAAMM,GAAAJ,EAAAG,GAAA,GAAxCE,GAASD,GAAA,GAAEE,GAAUF,GAAA,GAC5BG,GAAgCT,GAAS,GAAMU,GAAAR,EAAAO,GAAA,GAAxCE,GAAQD,GAAA,GAAEE,GAAWF,GAAA,GAGtBG,GAAMC,EAAO,MACbC,GAAqBD,EAAO,MAG5BE,GAAaC,GAAY,WAAA,OAAMT,IAAW,KAAO,CAACA,KAClDU,GAAgBD,GAAY,WAAA,OAAMT,IAAW,KAAQ,CAACA,KAEtDW,GAAkBF,GACtB,SAACG,GACC,OAAIvC,IACIwC,EAAcD,EAAEE,OAAuBC,EACjD,GACA,CAAC1C,IAGG2C,GAAYP,GAChB,SAACG,GACMD,GAAgBC,IACrBR,IAAY,EACd,GACA,CAACA,GAAaO,KAEVM,GAAeR,GAAY,WAAA,OAAML,IAAY,KAAQ,CAACA,KACtDc,GAAmBT,GACvB,SAACG,GACMD,GAAgBC,IACrBR,IAAY,EACd,GACA,CAACA,GAAaO,KAGVQ,GAAaV,GAAY,WAC7Bb,IAAc,GACdrC,GACF,GAAG,CAACqC,GAAerC,IAEb6D,GAAaX,GACjB,SAACY,EAAgBC,GACf1B,IAAc,GACdlC,IACkB,WAAd4D,GACFf,GAAmBgB,QAAQC,OAE/B,GACA,CAAC5B,GAAelC,IAMlB+D,EAAiB,CAAEH,UAAW,aAAcI,SAAUlB,GAAYH,IAAAA,KAClEoB,EAAiB,CAAEH,UAAW,aAAcI,SAAUhB,GAAeL,IAAAA,KAErEoB,EAAiB,CAAEH,UAAW,YAAaI,SAAUV,GAAWX,IAAAA,KAChEoB,EAAiB,CAAEH,UAAW,UAAWI,SAAUT,GAAcZ,IAAAA,KAGjEoB,EAAiB,CAAEH,UAAW,gBAAiBI,SAAUT,GAAcZ,IAAAA,KAGvEsB,EAAY,CAAEC,KAAMC,EAAYxB,IAAAA,GAAKqB,SAAUR,KAE/C,IAAMY,GAAaC,GACjB,WAAA,OACEC,EACEC,EAAOC,OACPC,EAASF,EAAQG,EAAU,QAAU5D,IACrC2D,EAASF,EAAQG,EAAU,SAAW1D,IAAO2D,EAAAA,EAAAA,EAAAA,EAAAA,EAE1CJ,CAAAA,EAAAA,EAAOK,WAAapD,IACpB+C,EAAO/C,OAASiB,IAChB8B,EAAOM,iBAAmB5C,IAC1BsC,EAAOO,QAAUzC,IACjBkC,EAAO5D,SAAWA,GAErBM,EACD,GACH,CAACA,EAAWH,EAAME,EAAOQ,GAAQiB,GAAUR,GAAcI,GAAW1B,IAGhEoE,GAAoBV,GAAQ,WAAA,OAAO1D,EAAW,GAAKqE,CAA2B,GAAG,CAACrE,IAElFsE,GAAoBZ,GAAQ,WAChC,OAAIpE,EACFiF,GAAAA,OAAAC,EAAWC,GAA2B,CAAE,mBACnCA,CACT,GAAG,CAACnF,IAEEoF,GAAiBtC,GAAY,WACjC,IAAMuC,EAA4C,mBAA3B3F,EAAwCA,IAA2BA,EAC1F,OACE4F,EAAAC,cAACC,EAAsB,CAACC,KAAK,UAAUC,KAAMjF,GAC1C4E,EAGP,GAAG,CAAC3F,EAAwBe,IAEtBkF,GAAwDvB,GAAQ,WACpE,GAAgC,WAA5B9D,EAGJ,MAAgC,iBAA5BA,EACK,SAGF,KACT,GAAG,CAACA,IAEJ,OACEgF,EACEC,cAAA,MAAA,CAAAvE,UAAWmD,GACXzB,IAAKA,GACLlB,GAAIA,GACS,cAAAC,IAAcmE,EAAUC,EAAuBC,aAActE,IAAG,YAClEuE,EAAgBD,cAE3BR,EAAAC,cAACS,EAAMC,OAAAC,OAAA,CAAA,EAEAxE,GAEL,CAAAyE,uBACA,EAAAlF,SAAUA,EACVC,UAAWA,GACXkF,WAAS,EACTrF,MAAOA,EACPF,KAAMA,EACNU,OAAQA,GACRJ,QAASA,GACTH,UAAWsD,EAAO+B,WAClBhF,WAAYA,GACZiF,QAASzD,GACT0D,OAAQxD,GACRrC,SAAUA,EACVC,QAASA,gBACIiF,EAAUC,EAAuBW,4BAA6BhF,MAE1EJ,IAEHkE,EAAAC,cAAA,MAAA,CAAKvE,UAAWsD,EAAOmC,wBACrBnB,EAACC,cAAAmB,GACCC,iBAAkBvG,EAClBF,OAAQA,EACRmF,QAASD,GACTwB,SAAUtG,EACVuG,kBAAmBtG,EACnBuG,aAAcnB,GACdoB,cAAc,SACdC,OAAQC,EACRC,gBAAiB1D,GACjB2D,gBAAiB1D,GACjB2D,YAAatC,GACbuC,YAAarC,IAEbM,EAACC,cAAAS,EACKC,OAAAC,OAAA,CAAA,EAAAxE,GACJ,CAAAgB,IAAKE,GACLuD,uBACA,EAAAmB,UACA,EAAAC,eACA,EAAAxG,MAAOA,EACPF,KAAMA,EACNG,UAAWsD,EAAOkD,gBAClBjG,OAAQS,GACRV,YAAaA,GACbgF,QAASzD,GACT0D,OAAQxD,GACRrC,SAAUA,EACE,aAAA+G,EAEG,iBAAA,EAAA,gBAAAzF,GACF,cAAA4D,EAAUC,EAAuB6B,8BAA+BlG,MAE7E8D,EAAAC,cAAA,MAAA,CAAKvE,UAAWsD,EAAOqD,4BACrBrC,EAACC,cAAAqC,EAAgC,CAAA,cAAA,aAO/C"}
@@ -1,2 +1,2 @@
1
- import{__rest as e}from"../../../../_virtual/_tslib.js";import r,{forwardRef as t,useRef as n}from"react";import o from"../../../hooks/useMergeRef.js";import u from"../../Menu/Menu/Menu.js";var i=t((function(t,i){var m=t.children,s=e(t,["children"]),f=n(null),a=o(i,f);return r.createElement(u,Object.assign({focusItemIndexOnMount:0},s,{ref:a}),m)}));export{i as default};
1
+ import{__rest as r}from"../../../../_virtual/_tslib.js";import e,{forwardRef as t,useRef as n}from"react";import{useMergeRef as o}from"@vibe/shared";import i from"../../Menu/Menu/Menu.js";var m=t((function(t,m){var u=t.children,a=r(t,["children"]),f=n(null),l=o(m,f);return e.createElement(i,Object.assign({focusItemIndexOnMount:0},a,{ref:l}),u)}));export{m as default};
2
2
  //# sourceMappingURL=SplitButtonMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SplitButtonMenu.js","sources":["../../../../../../src/components/SplitButton/SplitButtonMenu/SplitButtonMenu.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from \"react\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\nimport Menu, { type MenuProps } from \"../../Menu/Menu/Menu\";\n\nexport type SplitButtonMenuProps = Omit<MenuProps, \"focusItemIndexOnMount\"> & { children: React.ReactNode };\n\nconst SplitButtonMenu = forwardRef(\n ({ children, ...splitButtonMenuProps }: SplitButtonMenuProps, ref: React.ForwardedRef<HTMLElement>) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n return (\n <Menu focusItemIndexOnMount={0} {...splitButtonMenuProps} ref={mergedRef}>\n {children}\n </Menu>\n );\n }\n);\n\nexport default SplitButtonMenu;\n"],"names":["SplitButtonMenu","forwardRef","_a","ref","children","splitButtonMenuProps","__rest","componentRef","useRef","mergedRef","useMergeRef","React","createElement","Menu","Object","assign","focusItemIndexOnMount"],"mappings":"8LAMMA,IAAAA,EAAkBC,GACtB,SAACC,EAA6DC,GAA7D,IAAEC,EAAyDF,EAAzDE,SAAaC,EAAoBC,EAAAJ,EAAnC,cACOK,EAAeC,EAAO,MACtBC,EAAYC,EAAYP,EAAKI,GAEnC,OACEI,EAACC,cAAAC,EAAKC,OAAAC,OAAA,CAAAC,sBAAuB,GAAOX,EAAoB,CAAEF,IAAKM,IAC5DL,EAGP"}
1
+ {"version":3,"file":"SplitButtonMenu.js","sources":["../../../../../../src/components/SplitButton/SplitButtonMenu/SplitButtonMenu.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from \"react\";\nimport { useMergeRef } from \"@vibe/shared\";\nimport Menu, { type MenuProps } from \"../../Menu/Menu/Menu\";\n\nexport type SplitButtonMenuProps = Omit<MenuProps, \"focusItemIndexOnMount\"> & { children: React.ReactNode };\n\nconst SplitButtonMenu = forwardRef(\n ({ children, ...splitButtonMenuProps }: SplitButtonMenuProps, ref: React.ForwardedRef<HTMLElement>) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n return (\n <Menu focusItemIndexOnMount={0} {...splitButtonMenuProps} ref={mergedRef}>\n {children}\n </Menu>\n );\n }\n);\n\nexport default SplitButtonMenu;\n"],"names":["SplitButtonMenu","forwardRef","_a","ref","children","splitButtonMenuProps","__rest","componentRef","useRef","mergedRef","useMergeRef","React","createElement","Menu","Object","assign","focusItemIndexOnMount"],"mappings":"4LAMMA,IAAAA,EAAkBC,GACtB,SAACC,EAA6DC,GAA7D,IAAEC,EAAyDF,EAAzDE,SAAaC,EAAoBC,EAAAJ,EAAnC,cACOK,EAAeC,EAAO,MACtBC,EAAYC,EAAYP,EAAKI,GAEnC,OACEI,EAACC,cAAAC,EAAKC,OAAAC,OAAA,CAAAC,sBAAuB,GAAOX,EAAoB,CAAEF,IAAKM,IAC5DL,EAGP"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as t}from"../../../_virtual/_rollupPluginBabelHelpers.js";import o,{forwardRef as e,useRef as s}from"react";import n from"classnames";import{NOOP as i}from"../../utils/function-utils.js";import r from"../../hooks/useMergeRef.js";import{StepsHeader as a}from"./StepsHeader.js";import{getTestId as d,ComponentDefaultTestId as p}from"../../tests/testIds.js";import m from"./Steps.module.scss.js";import{ComponentVibeId as c}from"../../tests/constants.js";var l=e((function(e,l){var u=e.className,v=e.id,f=e["data-testid"],B=e.steps,P=void 0===B?[]:B,S=e.activeStepIndex,g=void 0===S?0:S,h=e.type,j=void 0===h?"gallery":h,H=e.onChangeActiveStep,x=void 0===H?i:H,I=e.onFinish,N=e.color,b=e.areNavigationButtonsHidden,y=void 0!==b&&b,C=e.isContentOnTop,E=void 0!==C&&C,T=e.backButtonProps,k=void 0===T?{}:T,O=e.nextButtonProps,A=void 0===O?{}:O,F=e.finishButtonProps,_=void 0===F?{}:F,M=e.areButtonsIconsHidden,R=void 0!==M&&M,q=s(null),w=r(l,q);return o.createElement("div",{ref:w,className:n(m.steps,u),id:v,"data-testid":f||d(p.STEPS,v),"data-vibe":c.STEPS},E&&P[g],o.createElement(a,{onChangeActiveStep:x,type:j,activeStepIndex:g,stepsCount:P.length,areNavigationButtonsHidden:y,color:N,backButtonProps:k,nextButtonProps:A,finishButtonProps:_,areButtonsIconsHidden:R,onFinish:I,className:n(t(t({},m.contentOnTop,E),m.contentOnBottom,!E))}),!E&&P[g])}));export{l as default};
1
+ import{defineProperty as t}from"../../../_virtual/_rollupPluginBabelHelpers.js";import e,{forwardRef as o,useRef as s}from"react";import n from"classnames";import{useMergeRef as i,NOOP as r}from"@vibe/shared";import{StepsHeader as a}from"./StepsHeader.js";import{getTestId as d,ComponentDefaultTestId as p}from"../../tests/testIds.js";import m from"./Steps.module.scss.js";import{ComponentVibeId as c}from"../../tests/constants.js";var v=o((function(o,v){var l=o.className,u=o.id,f=o["data-testid"],B=o.steps,P=void 0===B?[]:B,S=o.activeStepIndex,h=void 0===S?0:S,g=o.type,H=void 0===g?"gallery":g,b=o.onChangeActiveStep,j=void 0===b?r:b,x=o.onFinish,I=o.color,N=o.areNavigationButtonsHidden,y=void 0!==N&&N,C=o.isContentOnTop,E=void 0!==C&&C,T=o.backButtonProps,O=void 0===T?{}:T,k=o.nextButtonProps,A=void 0===k?{}:k,F=o.finishButtonProps,_=void 0===F?{}:F,q=o.areButtonsIconsHidden,w=void 0!==q&&q,z=s(null),D=i(v,z);return e.createElement("div",{ref:D,className:n(m.steps,l),id:u,"data-testid":f||d(p.STEPS,u),"data-vibe":c.STEPS},E&&P[h],e.createElement(a,{onChangeActiveStep:j,type:H,activeStepIndex:h,stepsCount:P.length,areNavigationButtonsHidden:y,color:I,backButtonProps:O,nextButtonProps:A,finishButtonProps:_,areButtonsIconsHidden:w,onFinish:x,className:n(t(t({},m.contentOnTop,E),m.contentOnBottom,!E))}),!E&&P[h])}));export{v as default};
2
2
  //# sourceMappingURL=Steps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Steps.js","sources":["../../../../../src/components/Steps/Steps.tsx"],"sourcesContent":["import React, { forwardRef, type ReactElement, useRef } from \"react\";\nimport cx from \"classnames\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport { StepsHeader } from \"./StepsHeader\";\nimport { type StepsColor, type StepsType } from \"./Steps.types\";\nimport { type ButtonProps } from \"@vibe/button\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport { type VibeComponentProps } from \"../../types\";\nimport styles from \"./Steps.module.scss\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nexport interface StepsProps extends VibeComponentProps {\n /**\n * The index of the currently active step.\n */\n activeStepIndex?: number;\n /**\n * Callback fired when the active step changes.\n */\n onChangeActiveStep?: (e: React.MouseEvent, stepIndex: number) => void;\n /**\n * If true, hides the navigation buttons.\n */\n areNavigationButtonsHidden?: boolean;\n /**\n * The list of steps in the steps component.\n */\n steps?: ReactElement[];\n /**\n * The visual style of the steps component.\n */\n type?: StepsType;\n /**\n * The color theme of the steps component.\n */\n color?: StepsColor;\n /**\n * If true, the content is displayed above the step navigation.\n */\n isContentOnTop?: boolean;\n /**\n * If true, hides the icons in the navigation buttons.\n */\n areButtonsIconsHidden?: boolean;\n /**\n * Props applied to the back button.\n */\n backButtonProps?: Partial<ButtonProps>;\n /**\n * Props applied to the next button.\n */\n nextButtonProps?: Partial<ButtonProps>;\n /**\n * Props applied to the finish button.\n */\n finishButtonProps?: Partial<ButtonProps>;\n /**\n * Callback fired when the finish button is clicked.\n */\n onFinish?: (e: React.MouseEvent | React.KeyboardEvent) => void;\n}\n\nconst Steps = forwardRef(\n (\n {\n className,\n id,\n \"data-testid\": dataTestId,\n steps = [],\n activeStepIndex = 0,\n type = \"gallery\",\n onChangeActiveStep = NOOP,\n onFinish,\n color,\n areNavigationButtonsHidden = false,\n isContentOnTop = false,\n backButtonProps = {},\n nextButtonProps = {},\n finishButtonProps = {},\n areButtonsIconsHidden = false\n }: StepsProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n return (\n <div\n ref={mergedRef}\n className={cx(styles.steps, className)}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.STEPS, id)}\n data-vibe={ComponentVibeId.STEPS}\n >\n {isContentOnTop && steps[activeStepIndex]}\n <StepsHeader\n onChangeActiveStep={onChangeActiveStep}\n type={type}\n activeStepIndex={activeStepIndex}\n stepsCount={steps.length}\n areNavigationButtonsHidden={areNavigationButtonsHidden}\n color={color}\n backButtonProps={backButtonProps}\n nextButtonProps={nextButtonProps}\n finishButtonProps={finishButtonProps}\n areButtonsIconsHidden={areButtonsIconsHidden}\n onFinish={onFinish}\n className={cx({\n [styles.contentOnTop]: isContentOnTop,\n [styles.contentOnBottom]: !isContentOnTop\n })}\n />\n {!isContentOnTop && steps[activeStepIndex]}\n </div>\n );\n }\n);\n\nexport default Steps;\n"],"names":["Steps","forwardRef","_ref","ref","className","id","dataTestId","_ref$steps","steps","_ref$activeStepIndex","activeStepIndex","_ref$type","type","_ref$onChangeActiveSt","onChangeActiveStep","NOOP","onFinish","color","_ref$areNavigationBut","areNavigationButtonsHidden","_ref$isContentOnTop","isContentOnTop","_ref$backButtonProps","backButtonProps","_ref$nextButtonProps","nextButtonProps","_ref$finishButtonProp","finishButtonProps","_ref$areButtonsIconsH","areButtonsIconsHidden","componentRef","useRef","mergedRef","useMergeRef","React","createElement","cx","styles","getTestId","ComponentDefaultTestId","STEPS","ComponentVibeId","StepsHeader","stepsCount","length","_defineProperty","contentOnTop","contentOnBottom"],"mappings":"0dA+DMA,IAAAA,EAAQC,GACZ,SAAAC,EAkBEC,GACE,IAjBAC,EAASF,EAATE,UACAC,EAAEH,EAAFG,GACeC,EAAUJ,EAAzB,eAAaK,EAAAL,EACbM,MAAAA,OAAQ,IAAHD,EAAG,GAAEA,EAAAE,EAAAP,EACVQ,gBAAAA,OAAkB,IAAHD,EAAG,EAACA,EAAAE,EAAAT,EACnBU,KAAAA,OAAO,IAAHD,EAAG,UAASA,EAAAE,EAAAX,EAChBY,mBAAAA,OAAqBC,IAAHF,EAAGE,EAAIF,EACzBG,EAAQd,EAARc,SACAC,EAAKf,EAALe,MAAKC,EAAAhB,EACLiB,2BAAAA,OAA6B,IAAHD,GAAQA,EAAAE,EAAAlB,EAClCmB,eAAAA,OAAiB,IAAHD,GAAQA,EAAAE,EAAApB,EACtBqB,gBAAAA,OAAe,IAAAD,EAAG,CAAE,EAAAA,EAAAE,EAAAtB,EACpBuB,gBAAAA,OAAe,IAAAD,EAAG,CAAE,EAAAA,EAAAE,EAAAxB,EACpByB,kBAAAA,OAAiB,IAAAD,EAAG,CAAE,EAAAA,EAAAE,EAAA1B,EACtB2B,sBAAAA,OAAwB,IAAHD,GAAQA,EAIzBE,EAAeC,EAAO,MACtBC,EAAYC,EAAY9B,EAAK2B,GAEnC,OACEI,EAAAC,cAAA,MAAA,CACEhC,IAAK6B,EACL5B,UAAWgC,EAAGC,EAAO7B,MAAOJ,GAC5BC,GAAIA,EAAE,cACOC,GAAcgC,EAAUC,EAAuBC,MAAOnC,GACxD,YAAAoC,EAAgBD,OAE1BnB,GAAkBb,EAAME,GACzBwB,EAACC,cAAAO,GACC5B,mBAAoBA,EACpBF,KAAMA,EACNF,gBAAiBA,EACjBiC,WAAYnC,EAAMoC,OAClBzB,2BAA4BA,EAC5BF,MAAOA,EACPM,gBAAiBA,EACjBE,gBAAiBA,EACjBE,kBAAmBA,EACnBE,sBAAuBA,EACvBb,SAAUA,EACVZ,UAAWgC,EAAES,EAAAA,KACVR,EAAOS,aAAezB,GACtBgB,EAAOU,iBAAmB1B,OAG7BA,GAAkBb,EAAME,GAGhC"}
1
+ {"version":3,"file":"Steps.js","sources":["../../../../../src/components/Steps/Steps.tsx"],"sourcesContent":["import React, { forwardRef, type ReactElement, useRef } from \"react\";\nimport cx from \"classnames\";\nimport { NOOP, useMergeRef } from \"@vibe/shared\";\n\nimport { StepsHeader } from \"./StepsHeader\";\nimport { type StepsColor, type StepsType } from \"./Steps.types\";\nimport { type ButtonProps } from \"@vibe/button\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport { type VibeComponentProps } from \"../../types\";\nimport styles from \"./Steps.module.scss\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nexport interface StepsProps extends VibeComponentProps {\n /**\n * The index of the currently active step.\n */\n activeStepIndex?: number;\n /**\n * Callback fired when the active step changes.\n */\n onChangeActiveStep?: (e: React.MouseEvent, stepIndex: number) => void;\n /**\n * If true, hides the navigation buttons.\n */\n areNavigationButtonsHidden?: boolean;\n /**\n * The list of steps in the steps component.\n */\n steps?: ReactElement[];\n /**\n * The visual style of the steps component.\n */\n type?: StepsType;\n /**\n * The color theme of the steps component.\n */\n color?: StepsColor;\n /**\n * If true, the content is displayed above the step navigation.\n */\n isContentOnTop?: boolean;\n /**\n * If true, hides the icons in the navigation buttons.\n */\n areButtonsIconsHidden?: boolean;\n /**\n * Props applied to the back button.\n */\n backButtonProps?: Partial<ButtonProps>;\n /**\n * Props applied to the next button.\n */\n nextButtonProps?: Partial<ButtonProps>;\n /**\n * Props applied to the finish button.\n */\n finishButtonProps?: Partial<ButtonProps>;\n /**\n * Callback fired when the finish button is clicked.\n */\n onFinish?: (e: React.MouseEvent | React.KeyboardEvent) => void;\n}\n\nconst Steps = forwardRef(\n (\n {\n className,\n id,\n \"data-testid\": dataTestId,\n steps = [],\n activeStepIndex = 0,\n type = \"gallery\",\n onChangeActiveStep = NOOP,\n onFinish,\n color,\n areNavigationButtonsHidden = false,\n isContentOnTop = false,\n backButtonProps = {},\n nextButtonProps = {},\n finishButtonProps = {},\n areButtonsIconsHidden = false\n }: StepsProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n return (\n <div\n ref={mergedRef}\n className={cx(styles.steps, className)}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.STEPS, id)}\n data-vibe={ComponentVibeId.STEPS}\n >\n {isContentOnTop && steps[activeStepIndex]}\n <StepsHeader\n onChangeActiveStep={onChangeActiveStep}\n type={type}\n activeStepIndex={activeStepIndex}\n stepsCount={steps.length}\n areNavigationButtonsHidden={areNavigationButtonsHidden}\n color={color}\n backButtonProps={backButtonProps}\n nextButtonProps={nextButtonProps}\n finishButtonProps={finishButtonProps}\n areButtonsIconsHidden={areButtonsIconsHidden}\n onFinish={onFinish}\n className={cx({\n [styles.contentOnTop]: isContentOnTop,\n [styles.contentOnBottom]: !isContentOnTop\n })}\n />\n {!isContentOnTop && steps[activeStepIndex]}\n </div>\n );\n }\n);\n\nexport default Steps;\n"],"names":["Steps","forwardRef","_ref","ref","className","id","dataTestId","_ref$steps","steps","_ref$activeStepIndex","activeStepIndex","_ref$type","type","_ref$onChangeActiveSt","onChangeActiveStep","NOOP","onFinish","color","_ref$areNavigationBut","areNavigationButtonsHidden","_ref$isContentOnTop","isContentOnTop","_ref$backButtonProps","backButtonProps","_ref$nextButtonProps","nextButtonProps","_ref$finishButtonProp","finishButtonProps","_ref$areButtonsIconsH","areButtonsIconsHidden","componentRef","useRef","mergedRef","useMergeRef","React","createElement","cx","styles","getTestId","ComponentDefaultTestId","STEPS","ComponentVibeId","StepsHeader","stepsCount","length","_defineProperty","contentOnTop","contentOnBottom"],"mappings":"gbA+DMA,IAAAA,EAAQC,GACZ,SAAAC,EAkBEC,GACE,IAjBAC,EAASF,EAATE,UACAC,EAAEH,EAAFG,GACeC,EAAUJ,EAAzB,eAAaK,EAAAL,EACbM,MAAAA,OAAQ,IAAHD,EAAG,GAAEA,EAAAE,EAAAP,EACVQ,gBAAAA,OAAkB,IAAHD,EAAG,EAACA,EAAAE,EAAAT,EACnBU,KAAAA,OAAO,IAAHD,EAAG,UAASA,EAAAE,EAAAX,EAChBY,mBAAAA,OAAqBC,IAAHF,EAAGE,EAAIF,EACzBG,EAAQd,EAARc,SACAC,EAAKf,EAALe,MAAKC,EAAAhB,EACLiB,2BAAAA,OAA6B,IAAHD,GAAQA,EAAAE,EAAAlB,EAClCmB,eAAAA,OAAiB,IAAHD,GAAQA,EAAAE,EAAApB,EACtBqB,gBAAAA,OAAe,IAAAD,EAAG,CAAE,EAAAA,EAAAE,EAAAtB,EACpBuB,gBAAAA,OAAe,IAAAD,EAAG,CAAE,EAAAA,EAAAE,EAAAxB,EACpByB,kBAAAA,OAAiB,IAAAD,EAAG,CAAE,EAAAA,EAAAE,EAAA1B,EACtB2B,sBAAAA,OAAwB,IAAHD,GAAQA,EAIzBE,EAAeC,EAAO,MACtBC,EAAYC,EAAY9B,EAAK2B,GAEnC,OACEI,EAAAC,cAAA,MAAA,CACEhC,IAAK6B,EACL5B,UAAWgC,EAAGC,EAAO7B,MAAOJ,GAC5BC,GAAIA,EAAE,cACOC,GAAcgC,EAAUC,EAAuBC,MAAOnC,GACxD,YAAAoC,EAAgBD,OAE1BnB,GAAkBb,EAAME,GACzBwB,EAACC,cAAAO,GACC5B,mBAAoBA,EACpBF,KAAMA,EACNF,gBAAiBA,EACjBiC,WAAYnC,EAAMoC,OAClBzB,2BAA4BA,EAC5BF,MAAOA,EACPM,gBAAiBA,EACjBE,gBAAiBA,EACjBE,kBAAmBA,EACnBE,sBAAuBA,EACvBb,SAAUA,EACVZ,UAAWgC,EAAES,EAAAA,KACVR,EAAOS,aAAezB,GACtBgB,EAAOU,iBAAmB1B,OAG7BA,GAAkBb,EAAME,GAGhC"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as o}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{__rest as t}from"../../../_virtual/_tslib.js";import r,{useMemo as e,useCallback as i}from"react";import s from"classnames";import{NavigationChevronRight as m,NavigationChevronLeft as n}from"@vibe/icons";import{Icon as a}from"@vibe/icon/mockedClassNames";import{Button as l}from"@vibe/button/mockedClassNames";import{NOOP as c}from"../../utils/function-utils.js";import{NEXT_TEXT as p,BACK_TEXT as d}from"./StepsConstants.js";import{ComponentDefaultTestId as u}from"../../tests/constants.js";import f from"./StepsCommand.module.scss.js";import{camelCase as v}from"es-toolkit";import{getStyle as b}from"../../helpers/typesciptCssModulesHelper.js";var C=function(C){var j=C.isNext,S=void 0!==j&&j,_=C.onChangeActiveStep,N=void 0===_?c:_,k=C.activeStepIndex,A=C.stepsCount,M=C.isIconHidden,P=void 0!==M&&M,h=C.buttonProps,y=void 0===h?{}:h,D=C.color,E=void 0===D?"primary":D,O=y.children,g=t(y,["children"]),x=e((function(){return O||(S?p:d)}),[S,O]),H=S?k+1:k-1,R=i((function(o){return N(o,H)}),[H,N]),B=S&&k===A-1||!S&&0===k,I=S?m:n;return r.createElement(l,Object.assign({className:s(f.command,o({},f.backward,!S)),"data-testid":S?u.STEPS_FORWARD_COMMAND:u.STEPS_BACKWARD_COMMAND,kind:"tertiary",onClick:R,disabled:B,color:E},g),x,P?null:r.createElement(a,{icon:I,className:s(f.icon,b(f,v("color-"+E)),o({},f.disabled,B))}))};export{C as StepsCommand};
1
+ import{defineProperty as o}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{__rest as t}from"../../../_virtual/_tslib.js";import r,{useMemo as e,useCallback as i}from"react";import s from"classnames";import{NavigationChevronRight as m,NavigationChevronLeft as n}from"@vibe/icons";import{Icon as a}from"@vibe/icon/mockedClassNames";import{Button as c}from"@vibe/button/mockedClassNames";import{getStyle as l,NOOP as d}from"@vibe/shared";import{NEXT_TEXT as p,BACK_TEXT as f}from"./StepsConstants.js";import{ComponentDefaultTestId as u}from"../../tests/constants.js";import v from"./StepsCommand.module.scss.js";import{camelCase as b}from"es-toolkit";var C=function(C){var S=C.isNext,_=void 0!==S&&S,N=C.onChangeActiveStep,j=void 0===N?d:N,k=C.activeStepIndex,A=C.stepsCount,P=C.isIconHidden,h=void 0!==P&&P,D=C.buttonProps,E=void 0===D?{}:D,M=C.color,O=void 0===M?"primary":M,g=E.children,x=t(E,["children"]),y=e((function(){return g||(_?p:f)}),[_,g]),R=_?k+1:k-1,B=i((function(o){return j(o,R)}),[R,j]),H=_&&k===A-1||!_&&0===k,I=_?m:n;return r.createElement(c,Object.assign({className:s(v.command,o({},v.backward,!_)),"data-testid":_?u.STEPS_FORWARD_COMMAND:u.STEPS_BACKWARD_COMMAND,kind:"tertiary",onClick:B,disabled:H,color:O},x),y,h?null:r.createElement(a,{icon:I,className:s(v.icon,l(v,b("color-"+O)),o({},v.disabled,H))}))};export{C as StepsCommand};
2
2
  //# sourceMappingURL=StepsCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StepsCommand.js","sources":["../../../../../src/components/Steps/StepsCommand.tsx"],"sourcesContent":["import React, { type FC, useCallback, useMemo } from \"react\";\nimport cx from \"classnames\";\nimport { NavigationChevronRight, NavigationChevronLeft } from \"@vibe/icons\";\nimport { Icon } from \"@vibe/icon\";\nimport { Button, type ButtonProps } from \"@vibe/button\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport { BACK_TEXT, NEXT_TEXT } from \"./StepsConstants\";\nimport { type StepsColor } from \"./Steps.types\";\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport { ComponentDefaultTestId } from \"../../tests/constants\";\nimport styles from \"./StepsCommand.module.scss\";\nimport { camelCase } from \"es-toolkit\";\nimport { getStyle } from \"../..//helpers/typesciptCssModulesHelper\";\n\nexport interface StepsCommandProps extends VibeComponentProps {\n /**\n * If true, this button is for moving to the next step.\n */\n isNext?: boolean;\n /**\n * Callback fired when the active step changes.\n */\n onChangeActiveStep?: (e: React.MouseEvent, newStepIndex: number) => void;\n /**\n * The index of the currently active step.\n */\n activeStepIndex: number;\n /**\n * The total number of steps.\n */\n stepsCount: number;\n /**\n * If true, hides the navigation icon.\n */\n isIconHidden?: boolean;\n /**\n * Props applied to the button.\n */\n buttonProps?: Partial<ButtonProps>;\n /**\n * The color theme of the button.\n */\n color?: StepsColor;\n}\n\nexport const StepsCommand: FC<StepsCommandProps> = ({\n isNext = false,\n onChangeActiveStep = NOOP,\n activeStepIndex,\n stepsCount,\n isIconHidden = false,\n buttonProps = {},\n color = \"primary\"\n}: StepsCommandProps) => {\n const { children: buttonChildren, ...otherButtonProps } = buttonProps;\n const description = useMemo(() => {\n if (buttonChildren) return buttonChildren;\n return isNext ? NEXT_TEXT : BACK_TEXT;\n }, [isNext, buttonChildren]);\n const newStepIndex = isNext ? activeStepIndex + 1 : activeStepIndex - 1;\n const onClick = useCallback(\n (e: React.MouseEvent) => onChangeActiveStep(e, newStepIndex),\n [newStepIndex, onChangeActiveStep]\n );\n const isDisabled = (isNext && activeStepIndex === stepsCount - 1) || (!isNext && activeStepIndex === 0);\n\n const icon = isNext ? NavigationChevronRight : NavigationChevronLeft;\n return (\n <Button\n className={cx(styles.command, { [styles.backward]: !isNext })}\n data-testid={\n isNext ? ComponentDefaultTestId.STEPS_FORWARD_COMMAND : ComponentDefaultTestId.STEPS_BACKWARD_COMMAND\n }\n kind=\"tertiary\"\n onClick={onClick}\n disabled={isDisabled}\n // @ts-ignore\n color={color}\n {...otherButtonProps}\n >\n {description}\n {isIconHidden ? null : (\n <Icon\n icon={icon}\n className={cx(styles.icon, getStyle(styles, camelCase(\"color-\" + color)), {\n [styles.disabled]: isDisabled\n })}\n />\n )}\n </Button>\n );\n};\n"],"names":["StepsCommand","_ref","_ref$isNext","isNext","_ref$onChangeActiveSt","onChangeActiveStep","NOOP","activeStepIndex","stepsCount","_ref$isIconHidden","isIconHidden","_ref$buttonProps","buttonProps","_ref$color","color","buttonChildren","children","otherButtonProps","__rest","description","useMemo","NEXT_TEXT","BACK_TEXT","newStepIndex","onClick","useCallback","e","isDisabled","icon","NavigationChevronRight","NavigationChevronLeft","React","Button","Object","assign","className","cx","styles","command","_defineProperty","backward","ComponentDefaultTestId","STEPS_FORWARD_COMMAND","STEPS_BACKWARD_COMMAND","kind","disabled","createElement","Icon","getStyle","camelCase"],"mappings":"iuBA6CaA,EAAsC,SAA1BC,GAQD,IAAAC,EAAAD,EAPtBE,OAAAA,OAAS,IAAHD,GAAQA,EAAAE,EAAAH,EACdI,mBAAAA,OAAqBC,IAAHF,EAAGE,EAAIF,EACzBG,EAAeN,EAAfM,gBACAC,EAAUP,EAAVO,WAAUC,EAAAR,EACVS,aAAAA,OAAe,IAAHD,GAAQA,EAAAE,EAAAV,EACpBW,YAAAA,OAAW,IAAAD,EAAG,CAAE,EAAAA,EAAAE,EAAAZ,EAChBa,MAAAA,OAAQ,IAAHD,EAAG,UAASA,EAECE,EAAwCH,EAAlDI,SAA6BC,EAAqBC,EAAAN,EAApD,CAAA,aACAO,EAAcC,GAAQ,WAC1B,OAAIL,IACGZ,EAASkB,EAAYC,EAC9B,GAAG,CAACnB,EAAQY,IACNQ,EAAepB,EAASI,EAAkB,EAAIA,EAAkB,EAChEiB,EAAUC,GACd,SAACC,GAAmB,OAAKrB,EAAmBqB,EAAGH,EAAa,GAC5D,CAACA,EAAclB,IAEXsB,EAAcxB,GAAUI,IAAoBC,EAAa,IAAQL,GAA8B,IAApBI,EAE3EqB,EAAOzB,EAAS0B,EAAyBC,EAC/C,OACEC,gBAACC,EAAMC,OAAAC,OAAA,CACLC,UAAWC,EAAGC,EAAOC,QAAOC,EAAKF,CAAAA,EAAAA,EAAOG,UAAYrC,IAAS,cAE3DA,EAASsC,EAAuBC,sBAAwBD,EAAuBE,uBAEjFC,KAAK,WACLpB,QAASA,EACTqB,SAAUlB,EAEVb,MAAOA,GACHG,GAEHE,EACAT,EAAe,KACdqB,EAAAe,cAACC,EACC,CAAAnB,KAAMA,EACNO,UAAWC,EAAGC,EAAOT,KAAMoB,EAASX,EAAQY,EAAU,SAAWnC,IAAOyB,EACrEF,CAAAA,EAAAA,EAAOQ,SAAWlB,MAM/B"}
1
+ {"version":3,"file":"StepsCommand.js","sources":["../../../../../src/components/Steps/StepsCommand.tsx"],"sourcesContent":["import React, { type FC, useCallback, useMemo } from \"react\";\nimport cx from \"classnames\";\nimport { NavigationChevronRight, NavigationChevronLeft } from \"@vibe/icons\";\nimport { Icon } from \"@vibe/icon\";\nimport { Button, type ButtonProps } from \"@vibe/button\";\nimport { NOOP, getStyle } from \"@vibe/shared\";\nimport { BACK_TEXT, NEXT_TEXT } from \"./StepsConstants\";\nimport { type StepsColor } from \"./Steps.types\";\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport { ComponentDefaultTestId } from \"../../tests/constants\";\nimport styles from \"./StepsCommand.module.scss\";\nimport { camelCase } from \"es-toolkit\";\n\nexport interface StepsCommandProps extends VibeComponentProps {\n /**\n * If true, this button is for moving to the next step.\n */\n isNext?: boolean;\n /**\n * Callback fired when the active step changes.\n */\n onChangeActiveStep?: (e: React.MouseEvent, newStepIndex: number) => void;\n /**\n * The index of the currently active step.\n */\n activeStepIndex: number;\n /**\n * The total number of steps.\n */\n stepsCount: number;\n /**\n * If true, hides the navigation icon.\n */\n isIconHidden?: boolean;\n /**\n * Props applied to the button.\n */\n buttonProps?: Partial<ButtonProps>;\n /**\n * The color theme of the button.\n */\n color?: StepsColor;\n}\n\nexport const StepsCommand: FC<StepsCommandProps> = ({\n isNext = false,\n onChangeActiveStep = NOOP,\n activeStepIndex,\n stepsCount,\n isIconHidden = false,\n buttonProps = {},\n color = \"primary\"\n}: StepsCommandProps) => {\n const { children: buttonChildren, ...otherButtonProps } = buttonProps;\n const description = useMemo(() => {\n if (buttonChildren) return buttonChildren;\n return isNext ? NEXT_TEXT : BACK_TEXT;\n }, [isNext, buttonChildren]);\n const newStepIndex = isNext ? activeStepIndex + 1 : activeStepIndex - 1;\n const onClick = useCallback(\n (e: React.MouseEvent) => onChangeActiveStep(e, newStepIndex),\n [newStepIndex, onChangeActiveStep]\n );\n const isDisabled = (isNext && activeStepIndex === stepsCount - 1) || (!isNext && activeStepIndex === 0);\n\n const icon = isNext ? NavigationChevronRight : NavigationChevronLeft;\n return (\n <Button\n className={cx(styles.command, { [styles.backward]: !isNext })}\n data-testid={\n isNext ? ComponentDefaultTestId.STEPS_FORWARD_COMMAND : ComponentDefaultTestId.STEPS_BACKWARD_COMMAND\n }\n kind=\"tertiary\"\n onClick={onClick}\n disabled={isDisabled}\n // @ts-ignore\n color={color}\n {...otherButtonProps}\n >\n {description}\n {isIconHidden ? null : (\n <Icon\n icon={icon}\n className={cx(styles.icon, getStyle(styles, camelCase(\"color-\" + color)), {\n [styles.disabled]: isDisabled\n })}\n />\n )}\n </Button>\n );\n};\n"],"names":["StepsCommand","_ref","_ref$isNext","isNext","_ref$onChangeActiveSt","onChangeActiveStep","NOOP","activeStepIndex","stepsCount","_ref$isIconHidden","isIconHidden","_ref$buttonProps","buttonProps","_ref$color","color","buttonChildren","children","otherButtonProps","__rest","description","useMemo","NEXT_TEXT","BACK_TEXT","newStepIndex","onClick","useCallback","e","isDisabled","icon","NavigationChevronRight","NavigationChevronLeft","React","Button","Object","assign","className","cx","styles","command","_defineProperty","backward","ComponentDefaultTestId","STEPS_FORWARD_COMMAND","STEPS_BACKWARD_COMMAND","kind","disabled","createElement","Icon","getStyle","camelCase"],"mappings":"wpBA4CaA,EAAsC,SAA1BC,GAQD,IAAAC,EAAAD,EAPtBE,OAAAA,OAAS,IAAHD,GAAQA,EAAAE,EAAAH,EACdI,mBAAAA,OAAqBC,IAAHF,EAAGE,EAAIF,EACzBG,EAAeN,EAAfM,gBACAC,EAAUP,EAAVO,WAAUC,EAAAR,EACVS,aAAAA,OAAe,IAAHD,GAAQA,EAAAE,EAAAV,EACpBW,YAAAA,OAAW,IAAAD,EAAG,CAAE,EAAAA,EAAAE,EAAAZ,EAChBa,MAAAA,OAAQ,IAAHD,EAAG,UAASA,EAECE,EAAwCH,EAAlDI,SAA6BC,EAAqBC,EAAAN,EAApD,CAAA,aACAO,EAAcC,GAAQ,WAC1B,OAAIL,IACGZ,EAASkB,EAAYC,EAC9B,GAAG,CAACnB,EAAQY,IACNQ,EAAepB,EAASI,EAAkB,EAAIA,EAAkB,EAChEiB,EAAUC,GACd,SAACC,GAAmB,OAAKrB,EAAmBqB,EAAGH,EAAa,GAC5D,CAACA,EAAclB,IAEXsB,EAAcxB,GAAUI,IAAoBC,EAAa,IAAQL,GAA8B,IAApBI,EAE3EqB,EAAOzB,EAAS0B,EAAyBC,EAC/C,OACEC,gBAACC,EAAMC,OAAAC,OAAA,CACLC,UAAWC,EAAGC,EAAOC,QAAOC,EAAKF,CAAAA,EAAAA,EAAOG,UAAYrC,IAAS,cAE3DA,EAASsC,EAAuBC,sBAAwBD,EAAuBE,uBAEjFC,KAAK,WACLpB,QAASA,EACTqB,SAAUlB,EAEVb,MAAOA,GACHG,GAEHE,EACAT,EAAe,KACdqB,EAAAe,cAACC,EACC,CAAAnB,KAAMA,EACNO,UAAWC,EAAGC,EAAOT,KAAMoB,EAASX,EAAQY,EAAU,SAAWnC,IAAOyB,EACrEF,CAAAA,EAAAA,EAAOQ,SAAWlB,MAM/B"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as r}from"../../../_virtual/_rollupPluginBabelHelpers.js";import e from"classnames";import{camelCase as o,noop as t}from"es-toolkit";import s from"react";import i from"./StepsDot.module.scss.js";import{getStyle as a}from"../../helpers/typesciptCssModulesHelper.js";var l=function(l){var m=l.isActive,p=l.onClick,c=void 0===p?t:p,n=l.ariaCurrent,u=l.className;return s.createElement("button",{type:"button","aria-label":l["aria-label"],"aria-current":!!m&&(void 0===n?"step":n),className:e(i.dot,a(i,o("color-"+l.color)),r({},i.isActive,m),u),onClick:c})};export{l as StepsDot};
1
+ import{defineProperty as r}from"../../../_virtual/_rollupPluginBabelHelpers.js";import o from"classnames";import{camelCase as e,noop as t}from"es-toolkit";import a from"react";import i from"./StepsDot.module.scss.js";import{getStyle as l}from"@vibe/shared";var s=function(s){var m=s.isActive,c=s.onClick,n=void 0===c?t:c,p=s.ariaCurrent,u=s.className;return a.createElement("button",{type:"button","aria-label":s["aria-label"],"aria-current":!!m&&(void 0===p?"step":p),className:o(i.dot,l(i,e("color-"+s.color)),r({},i.isActive,m),u),onClick:n})};export{s as StepsDot};
2
2
  //# sourceMappingURL=StepsDot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StepsDot.js","sources":["../../../../../src/components/Steps/StepsDot.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport { noop as NOOP, camelCase } from \"es-toolkit\";\nimport { type StepsColor, type StepsDotAriaCurrent } from \"./Steps.types\";\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport React, { type FC } from \"react\";\nimport styles from \"./StepsDot.module.scss\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\n\nexport interface StepsDotProps extends VibeComponentProps {\n /**\n * Callback fired when the dot is clicked.\n */\n onClick?: (e: React.MouseEvent) => void;\n /**\n * ARIA attribute to indicate the current step.\n */\n ariaCurrent?: StepsDotAriaCurrent | boolean;\n /**\n * If true, marks the dot as active.\n */\n isActive?: boolean;\n /**\n * The ARIA label for the dot.\n */\n \"aria-label\"?: string;\n /**\n * The color theme of the dot.\n */\n color?: StepsColor;\n}\n\nexport const StepsDot: FC<StepsDotProps> = ({\n isActive,\n onClick = NOOP,\n ariaCurrent = \"step\",\n \"aria-label\": ariaLabel,\n color,\n className\n}: StepsDotProps) => {\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n aria-current={isActive ? ariaCurrent : false}\n className={cx(\n styles.dot,\n getStyle(styles, camelCase(\"color-\" + color)),\n {\n [styles.isActive]: isActive\n },\n className\n )}\n onClick={onClick}\n />\n );\n};\n"],"names":["StepsDot","_ref","isActive","_ref$onClick","onClick","NOOP","_ref$ariaCurrent","ariaCurrent","className","React","createElement","type","cx","styles","dot","getStyle","camelCase","color","_defineProperty"],"mappings":"mSA+BaA,EAA8B,SAAtBC,GAOD,IANlBC,EAAQD,EAARC,SAAQC,EAAAF,EACRG,QAAAA,OAAUC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAL,EACdM,YAGAC,EAASP,EAATO,UAEA,OACEC,EACEC,cAAA,SAAA,CAAAC,KAAK,sBANcV,EAAvB,cAOyB,iBACPC,SATJ,IAAHI,EAAG,OAAMA,GAUhBE,UAAWI,EACTC,EAAOC,IACPC,EAASF,EAAQG,EAAU,SAV5Bf,EAALgB,QAUmDC,EAE1CL,GAAAA,EAAOX,SAAWA,GAErBM,GAEFJ,QAASA,GAGf"}
1
+ {"version":3,"file":"StepsDot.js","sources":["../../../../../src/components/Steps/StepsDot.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport { noop as NOOP, camelCase } from \"es-toolkit\";\nimport { type StepsColor, type StepsDotAriaCurrent } from \"./Steps.types\";\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport React, { type FC } from \"react\";\nimport styles from \"./StepsDot.module.scss\";\nimport { getStyle } from \"@vibe/shared\";\n\nexport interface StepsDotProps extends VibeComponentProps {\n /**\n * Callback fired when the dot is clicked.\n */\n onClick?: (e: React.MouseEvent) => void;\n /**\n * ARIA attribute to indicate the current step.\n */\n ariaCurrent?: StepsDotAriaCurrent | boolean;\n /**\n * If true, marks the dot as active.\n */\n isActive?: boolean;\n /**\n * The ARIA label for the dot.\n */\n \"aria-label\"?: string;\n /**\n * The color theme of the dot.\n */\n color?: StepsColor;\n}\n\nexport const StepsDot: FC<StepsDotProps> = ({\n isActive,\n onClick = NOOP,\n ariaCurrent = \"step\",\n \"aria-label\": ariaLabel,\n color,\n className\n}: StepsDotProps) => {\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n aria-current={isActive ? ariaCurrent : false}\n className={cx(\n styles.dot,\n getStyle(styles, camelCase(\"color-\" + color)),\n {\n [styles.isActive]: isActive\n },\n className\n )}\n onClick={onClick}\n />\n );\n};\n"],"names":["StepsDot","_ref","isActive","_ref$onClick","onClick","NOOP","_ref$ariaCurrent","ariaCurrent","className","React","createElement","type","cx","styles","dot","getStyle","camelCase","color","_defineProperty"],"mappings":"qQA+BaA,EAA8B,SAAtBC,GAOD,IANlBC,EAAQD,EAARC,SAAQC,EAAAF,EACRG,QAAAA,OAAUC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAL,EACdM,YAGAC,EAASP,EAATO,UAEA,OACEC,EACEC,cAAA,SAAA,CAAAC,KAAK,sBANcV,EAAvB,cAOyB,iBACPC,SATJ,IAAHI,EAAG,OAAMA,GAUhBE,UAAWI,EACTC,EAAOC,IACPC,EAASF,EAAQG,EAAU,SAV5Bf,EAALgB,QAUmDC,EAE1CL,GAAAA,EAAOX,SAAWA,GAErBM,GAEFJ,QAASA,GAGf"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e,defineProperty as t}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import r,{forwardRef as o,useRef as a,useState as s,useCallback as l,useMemo as n}from"react";import i from"classnames";import{getTableRowLayoutStyles as u}from"./tableHelpers.js";import{getTestId as m}from"../../../tests/testIds.js";import{ComponentDefaultTestId as c,ComponentVibeId as f}from"../../../tests/constants.js";import{RowHeights as d}from"./TableConsts.js";import p from"./Table.module.scss.js";import{TableProvider as b}from"../context/TableContext/TableContext.js";import{TableRowMenuProvider as v}from"../context/TableRowMenuContext/TableRowMenuContext.js";import R from"../../../hooks/useMergeRef.js";var T=o((function(o,T){var j=o.id,S=o.className,x=o["data-testid"],w=o.columns,g=o.errorState,y=o.emptyState,z=o.dataState,C=o.style,h=o.children,E=o.size,M=void 0===E?"medium":E,A=o.withoutBorder,B=a(null),H=R(T,B),I=s(!1),L=e(I,2),O=L[0],k=L[1],N=s(null),P=e(N,2),V=P[0],_=P[1],q=l((function(){k(!1),_(null)}),[]),D=s(!1),F=e(D,2),G=F[0],J=F[1],K=l((function(){J(!0)}),[]),Q=s(!1),U=e(Q,2),W=U[0],X=U[1],Y=l((function(e){if(q(),!G){var t=e.target.scrollLeft>0;X((function(e){return e!==t?t:e}))}}),[q,G]),Z=u(w),$=Object.assign({"--table-grid-template-columns":Z.gridTemplateColumns,"--table-row-size":"".concat(d[M],"px")},C),ee=n((function(){return{columns:w,dataState:z,emptyState:y,errorState:g,size:M,tableRootRef:B,isVirtualized:G,markTableAsVirtualized:K,isScrolled:W,setIsScrolled:function(e){return X(e)}}}),[w,z,y,g,G,K,W,M]),te=n((function(){return{tableRootRef:B,hoveredRowRef:V,isMenuOpen:O,resetHoveredRow:q,setHoveredRowRef:function(e){return _(e)},setIsMenuOpen:function(e){return k(e)}}}),[V,O,q,_]);return r.createElement(b,{value:ee},r.createElement(v,{value:te},r.createElement("div",{ref:H,id:j,className:i(p.table,t(t(t({},p.border,!A),p.virtualized,G),p.hasScroll,W),S),"data-testid":x||m(c.TABLE,j),"data-vibe":f.TABLE,role:"table",style:$,onScroll:Y},h)))}));export{T as default};
1
+ import{slicedToArray as e,defineProperty as t}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import r,{forwardRef as o,useRef as a,useState as l,useCallback as s,useMemo as n}from"react";import i from"classnames";import{getTableRowLayoutStyles as m}from"./tableHelpers.js";import{getTestId as u}from"../../../tests/testIds.js";import{ComponentDefaultTestId as c,ComponentVibeId as d}from"../../../tests/constants.js";import{RowHeights as f}from"./TableConsts.js";import p from"./Table.module.scss.js";import{TableProvider as b}from"../context/TableContext/TableContext.js";import{TableRowMenuProvider as v}from"../context/TableRowMenuContext/TableRowMenuContext.js";import{useMergeRef as R}from"@vibe/shared";var T=o((function(o,T){var S=o.id,j=o.className,x=o["data-testid"],w=o.columns,y=o.errorState,z=o.emptyState,C=o.dataState,g=o.style,h=o.children,E=o.size,A=void 0===E?"medium":E,B=o.withoutBorder,H=a(null),M=R(T,H),I=l(!1),L=e(I,2),O=L[0],N=L[1],P=l(null),V=e(P,2),_=V[0],k=V[1],q=s((function(){N(!1),k(null)}),[]),D=l(!1),F=e(D,2),G=F[0],J=F[1],K=s((function(){J(!0)}),[]),Q=l(!1),U=e(Q,2),W=U[0],X=U[1],Y=s((function(e){if(q(),!G){var t=e.target.scrollLeft>0;X((function(e){return e!==t?t:e}))}}),[q,G]),Z=m(w),$=Object.assign({"--table-grid-template-columns":Z.gridTemplateColumns,"--table-row-size":"".concat(f[A],"px")},g),ee=n((function(){return{columns:w,dataState:C,emptyState:z,errorState:y,size:A,tableRootRef:H,isVirtualized:G,markTableAsVirtualized:K,isScrolled:W,setIsScrolled:function(e){return X(e)}}}),[w,C,z,y,G,K,W,A]),te=n((function(){return{tableRootRef:H,hoveredRowRef:_,isMenuOpen:O,resetHoveredRow:q,setHoveredRowRef:function(e){return k(e)},setIsMenuOpen:function(e){return N(e)}}}),[_,O,q,k]);return r.createElement(b,{value:ee},r.createElement(v,{value:te},r.createElement("div",{ref:M,id:S,className:i(p.table,t(t(t({},p.border,!B),p.virtualized,G),p.hasScroll,W),j),"data-testid":x||u(c.TABLE,S),"data-vibe":d.TABLE,role:"table",style:$,onScroll:Y},h)))}));export{T as default};
2
2
  //# sourceMappingURL=Table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../../../../../../src/components/Table/Table/Table.tsx"],"sourcesContent":["import React, {\n forwardRef,\n type ReactElement,\n type UIEventHandler,\n useCallback,\n useMemo,\n useRef,\n useState\n} from \"react\";\nimport cx from \"classnames\";\nimport { type VibeComponentProps } from \"../../../types\";\nimport { type TableHeaderProps } from \"../TableHeader/TableHeader\";\nimport { type TableBodyProps } from \"../TableBody/TableBody\";\nimport { getTableRowLayoutStyles } from \"./tableHelpers\";\nimport { getTestId } from \"../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId, ComponentVibeId } from \"../../../tests/constants\";\nimport { RowHeights } from \"./TableConsts\";\nimport { type RowSizes } from \"./Table.types\";\nimport styles from \"./Table.module.scss\";\nimport { TableProvider } from \"../context/TableContext/TableContext\";\nimport { TableRowMenuProvider } from \"../context/TableRowMenuContext/TableRowMenuContext\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\nimport { type TableProviderValue } from \"../context/TableContext/TableContext.types\";\nimport { type TableRowMenuProviderValue } from \"../context/TableRowMenuContext/TableRowMenuContext.types\";\nimport { type SubIcon } from \"@vibe/icon\";\n\nexport type TableLoadingStateType = \"long-text\" | \"medium-text\" | \"circle\" | \"rectangle\";\n\ntype Width = number | `${number}%` | `${number}px` | `${number}fr`;\n\nexport interface TableColumn {\n /**\n * Unique identifier for the column.\n */\n id: string;\n /**\n * Column title displayed in the header.\n */\n title: string;\n /**\n * Additional information displayed as a tooltip.\n */\n infoContent?: string;\n /**\n * Column width configuration.\n */\n width?: Width | { min: Width; max: Width };\n /**\n * Icon displayed next to the column title.\n */\n icon?: SubIcon;\n /**\n * Loading state type for the column when data is being fetched.\n */\n loadingStateType?: TableLoadingStateType;\n}\n\nexport interface TableProps extends VibeComponentProps {\n /**\n * Defines the columns of the table.\n */\n columns: TableColumn[];\n /**\n * State of the data being displayed (loading or error).\n */\n dataState?: {\n isLoading?: boolean;\n isError?: boolean;\n };\n /**\n * React element displayed when there is an error state.\n */\n errorState: ReactElement;\n /**\n * React element displayed when there is no data.\n */\n emptyState: ReactElement;\n /**\n * Custom styles for the table.\n */\n style?: React.CSSProperties;\n /**\n * The child components inside the table, such as `<TableHeader />` and `<TableBody />`.\n */\n children?:\n | ReactElement<TableHeaderProps>\n | ReactElement<TableBodyProps>\n | Array<ReactElement<TableHeaderProps> | ReactElement<TableBodyProps>>;\n /**\n * The row size of the table.\n */\n size?: RowSizes;\n /**\n * If true, removes the table's outer border.\n */\n withoutBorder?: boolean;\n}\n\nconst Table = forwardRef(\n (\n {\n id,\n className,\n \"data-testid\": dataTestId,\n columns,\n errorState,\n emptyState,\n dataState,\n style,\n children,\n size = \"medium\",\n withoutBorder\n }: TableProps,\n ref: React.ForwardedRef<HTMLDivElement>\n ) => {\n const tableRootRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRef(ref, tableRootRef);\n\n const [isMenuOpen, setIsMenuOpen] = useState<boolean>(false);\n const [hoveredRowRef, setHoveredRowRef] = useState<React.RefObject<HTMLDivElement>>(null);\n\n const resetHoveredRow = useCallback(() => {\n setIsMenuOpen(false);\n setHoveredRowRef(null);\n }, []);\n\n const [isVirtualized, setIsVirtualized] = useState<boolean>(false);\n const markTableAsVirtualized = useCallback(() => {\n setIsVirtualized(true);\n }, []);\n\n const [isScrolled, setIsScrolled] = useState<boolean>(false);\n\n const onScroll = useCallback<UIEventHandler<HTMLDivElement>>(\n e => {\n resetHoveredRow();\n if (!isVirtualized) {\n const newLeft = (e.target as HTMLDivElement).scrollLeft;\n const hasScroll = newLeft > 0;\n setIsScrolled(prevScroll => (prevScroll !== hasScroll ? hasScroll : prevScroll));\n }\n },\n [resetHoveredRow, isVirtualized]\n );\n\n const { gridTemplateColumns } = getTableRowLayoutStyles(columns);\n\n /**\n * The `--table-grid-template-columns` and `--table-row-size` variables will be available under each <Table /> scope\n * and will be consumed in the stylesheets of its children (<TableHeader />, <TableRow />, <TableHeaderCell />)\n */\n const calculatedStyle = {\n \"--table-grid-template-columns\": gridTemplateColumns,\n \"--table-row-size\": `${RowHeights[size]}px`,\n ...style\n } as React.CSSProperties;\n\n const tableProviderValue = useMemo<TableProviderValue>(\n () => ({\n columns,\n dataState,\n emptyState,\n errorState,\n size,\n tableRootRef,\n isVirtualized,\n markTableAsVirtualized,\n isScrolled,\n setIsScrolled: (scrollLeft: boolean) => setIsScrolled(scrollLeft)\n }),\n [columns, dataState, emptyState, errorState, isVirtualized, markTableAsVirtualized, isScrolled, size]\n );\n\n const tableRowMenuProviderValue = useMemo<TableRowMenuProviderValue>(\n () => ({\n tableRootRef,\n hoveredRowRef,\n isMenuOpen,\n resetHoveredRow,\n setHoveredRowRef: (rowRef: React.RefObject<HTMLDivElement>) => setHoveredRowRef(rowRef),\n setIsMenuOpen: (isOpen: boolean) => setIsMenuOpen(isOpen)\n }),\n [hoveredRowRef, isMenuOpen, resetHoveredRow, setHoveredRowRef]\n );\n\n return (\n <TableProvider value={tableProviderValue}>\n <TableRowMenuProvider value={tableRowMenuProviderValue}>\n <div\n ref={mergedRef}\n id={id}\n className={cx(\n styles.table,\n {\n [styles.border]: !withoutBorder,\n [styles.virtualized]: isVirtualized,\n [styles.hasScroll]: isScrolled\n },\n className\n )}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TABLE, id)}\n data-vibe={ComponentVibeId.TABLE}\n role=\"table\"\n style={calculatedStyle}\n onScroll={onScroll}\n >\n {children}\n </div>\n </TableRowMenuProvider>\n </TableProvider>\n );\n }\n);\n\nexport default Table;\n"],"names":["Table","forwardRef","_ref","ref","id","className","dataTestId","columns","errorState","emptyState","dataState","style","children","_ref$size","size","withoutBorder","tableRootRef","useRef","mergedRef","useMergeRef","_useState","useState","_useState2","_slicedToArray","isMenuOpen","setIsMenuOpen","_useState3","_useState4","hoveredRowRef","setHoveredRowRef","resetHoveredRow","useCallback","_useState5","_useState6","isVirtualized","setIsVirtualized","markTableAsVirtualized","_useState7","_useState8","isScrolled","setIsScrolled","onScroll","e","hasScroll","target","scrollLeft","prevScroll","_getTableRowLayoutSty","getTableRowLayoutStyles","calculatedStyle","Object","assign","gridTemplateColumns","concat","RowHeights","tableProviderValue","useMemo","tableRowMenuProviderValue","rowRef","isOpen","React","createElement","TableProvider","value","TableRowMenuProvider","cx","styles","table","_defineProperty","border","virtualized","getTestId","ComponentDefaultTestId","TABLE","ComponentVibeId","role"],"mappings":"gtBAkGMA,IAAAA,EAAQC,GACZ,SAAAC,EAcEC,GACE,IAbAC,EAAEF,EAAFE,GACAC,EAASH,EAATG,UACeC,EAAUJ,EAAzB,eACAK,EAAOL,EAAPK,QACAC,EAAUN,EAAVM,WACAC,EAAUP,EAAVO,WACAC,EAASR,EAATQ,UACAC,EAAKT,EAALS,MACAC,EAAQV,EAARU,SAAQC,EAAAX,EACRY,KAAAA,OAAO,IAAHD,EAAG,SAAQA,EACfE,EAAab,EAAba,cAIIC,EAAeC,EAAuB,MACtCC,EAAYC,EAAYhB,EAAKa,GAEnCI,EAAoCC,GAAkB,GAAMC,EAAAC,EAAAH,EAAA,GAArDI,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAChCI,EAA0CL,EAA0C,MAAKM,EAAAJ,EAAAG,EAAA,GAAlFE,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GAEhCG,EAAkBC,GAAY,WAClCN,GAAc,GACdI,EAAiB,KAClB,GAAE,IAEHG,EAA0CX,GAAkB,GAAMY,EAAAV,EAAAS,EAAA,GAA3DE,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GAChCG,EAAyBL,GAAY,WACzCI,GAAiB,EAClB,GAAE,IAEHE,EAAoChB,GAAkB,GAAMiB,EAAAf,EAAAc,EAAA,GAArDE,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAE1BG,EAAWV,GACf,SAAAW,GAEE,GADAZ,KACKI,EAAe,CAClB,IACMS,EADWD,EAAEE,OAA0BC,WACjB,EAC5BL,GAAc,SAAAM,GAAU,OAAKA,IAAeH,EAAYA,EAAYG,CAAU,GAChF,CACF,GACA,CAAChB,EAAiBI,IAGpBa,EAAgCC,EAAwBzC,GAMlD0C,EAAkBC,OAAAC,OAAA,CACtB,gCAPyBJ,EAAnBK,oBAQN,sBAAkBC,OAAKC,EAAWxC,GAAK,OACpCH,GAGC4C,GAAqBC,GACzB,WAAA,MAAO,CACLjD,QAAAA,EACAG,UAAAA,EACAD,WAAAA,EACAD,WAAAA,EACAM,KAAAA,EACAE,aAAAA,EACAkB,cAAAA,EACAE,uBAAAA,EACAG,WAAAA,EACAC,cAAe,SAACK,GAAmB,OAAKL,EAAcK,EAAW,EAClE,GACD,CAACtC,EAASG,EAAWD,EAAYD,EAAY0B,EAAeE,EAAwBG,EAAYzB,IAG5F2C,GAA4BD,GAChC,WAAA,MAAO,CACLxC,aAAAA,EACAY,cAAAA,EACAJ,WAAAA,EACAM,gBAAAA,EACAD,iBAAkB,SAAC6B,GAAuC,OAAK7B,EAAiB6B,EAAO,EACvFjC,cAAe,SAACkC,GAAe,OAAKlC,EAAckC,EAAO,EACzD,GACF,CAAC/B,EAAeJ,EAAYM,EAAiBD,IAG/C,OACE+B,EAACC,cAAAC,EAAc,CAAAC,MAAOR,IACpBK,EAAAC,cAACG,EAAoB,CAACD,MAAON,IAC3BG,EAAAC,cAAA,MAAA,CACE1D,IAAKe,EACLd,GAAIA,EACJC,UAAW4D,EACTC,EAAOC,MAAKC,EAAAA,EAAAA,EAAA,CAAA,EAETF,EAAOG,QAAUtD,GACjBmD,EAAOI,YAAcpC,GACrBgC,EAAOvB,UAAYJ,GAEtBlC,GAEW,cAAAC,GAAciE,EAAUC,EAAuBC,MAAOrE,GAAG,YAC3DsE,EAAgBD,MAC3BE,KAAK,QACLhE,MAAOsC,EACPR,SAAUA,GAET7B,IAKX"}
1
+ {"version":3,"file":"Table.js","sources":["../../../../../../src/components/Table/Table/Table.tsx"],"sourcesContent":["import React, {\n forwardRef,\n type ReactElement,\n type UIEventHandler,\n useCallback,\n useMemo,\n useRef,\n useState\n} from \"react\";\nimport cx from \"classnames\";\nimport { type VibeComponentProps } from \"../../../types\";\nimport { type TableHeaderProps } from \"../TableHeader/TableHeader\";\nimport { type TableBodyProps } from \"../TableBody/TableBody\";\nimport { getTableRowLayoutStyles } from \"./tableHelpers\";\nimport { getTestId } from \"../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId, ComponentVibeId } from \"../../../tests/constants\";\nimport { RowHeights } from \"./TableConsts\";\nimport { type RowSizes } from \"./Table.types\";\nimport styles from \"./Table.module.scss\";\nimport { TableProvider } from \"../context/TableContext/TableContext\";\nimport { TableRowMenuProvider } from \"../context/TableRowMenuContext/TableRowMenuContext\";\nimport { useMergeRef } from \"@vibe/shared\";\nimport { type TableProviderValue } from \"../context/TableContext/TableContext.types\";\nimport { type TableRowMenuProviderValue } from \"../context/TableRowMenuContext/TableRowMenuContext.types\";\nimport { type SubIcon } from \"@vibe/icon\";\n\nexport type TableLoadingStateType = \"long-text\" | \"medium-text\" | \"circle\" | \"rectangle\";\n\ntype Width = number | `${number}%` | `${number}px` | `${number}fr`;\n\nexport interface TableColumn {\n /**\n * Unique identifier for the column.\n */\n id: string;\n /**\n * Column title displayed in the header.\n */\n title: string;\n /**\n * Additional information displayed as a tooltip.\n */\n infoContent?: string;\n /**\n * Column width configuration.\n */\n width?: Width | { min: Width; max: Width };\n /**\n * Icon displayed next to the column title.\n */\n icon?: SubIcon;\n /**\n * Loading state type for the column when data is being fetched.\n */\n loadingStateType?: TableLoadingStateType;\n}\n\nexport interface TableProps extends VibeComponentProps {\n /**\n * Defines the columns of the table.\n */\n columns: TableColumn[];\n /**\n * State of the data being displayed (loading or error).\n */\n dataState?: {\n isLoading?: boolean;\n isError?: boolean;\n };\n /**\n * React element displayed when there is an error state.\n */\n errorState: ReactElement;\n /**\n * React element displayed when there is no data.\n */\n emptyState: ReactElement;\n /**\n * Custom styles for the table.\n */\n style?: React.CSSProperties;\n /**\n * The child components inside the table, such as `<TableHeader />` and `<TableBody />`.\n */\n children?:\n | ReactElement<TableHeaderProps>\n | ReactElement<TableBodyProps>\n | Array<ReactElement<TableHeaderProps> | ReactElement<TableBodyProps>>;\n /**\n * The row size of the table.\n */\n size?: RowSizes;\n /**\n * If true, removes the table's outer border.\n */\n withoutBorder?: boolean;\n}\n\nconst Table = forwardRef(\n (\n {\n id,\n className,\n \"data-testid\": dataTestId,\n columns,\n errorState,\n emptyState,\n dataState,\n style,\n children,\n size = \"medium\",\n withoutBorder\n }: TableProps,\n ref: React.ForwardedRef<HTMLDivElement>\n ) => {\n const tableRootRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRef(ref, tableRootRef);\n\n const [isMenuOpen, setIsMenuOpen] = useState<boolean>(false);\n const [hoveredRowRef, setHoveredRowRef] = useState<React.RefObject<HTMLDivElement>>(null);\n\n const resetHoveredRow = useCallback(() => {\n setIsMenuOpen(false);\n setHoveredRowRef(null);\n }, []);\n\n const [isVirtualized, setIsVirtualized] = useState<boolean>(false);\n const markTableAsVirtualized = useCallback(() => {\n setIsVirtualized(true);\n }, []);\n\n const [isScrolled, setIsScrolled] = useState<boolean>(false);\n\n const onScroll = useCallback<UIEventHandler<HTMLDivElement>>(\n e => {\n resetHoveredRow();\n if (!isVirtualized) {\n const newLeft = (e.target as HTMLDivElement).scrollLeft;\n const hasScroll = newLeft > 0;\n setIsScrolled(prevScroll => (prevScroll !== hasScroll ? hasScroll : prevScroll));\n }\n },\n [resetHoveredRow, isVirtualized]\n );\n\n const { gridTemplateColumns } = getTableRowLayoutStyles(columns);\n\n /**\n * The `--table-grid-template-columns` and `--table-row-size` variables will be available under each <Table /> scope\n * and will be consumed in the stylesheets of its children (<TableHeader />, <TableRow />, <TableHeaderCell />)\n */\n const calculatedStyle = {\n \"--table-grid-template-columns\": gridTemplateColumns,\n \"--table-row-size\": `${RowHeights[size]}px`,\n ...style\n } as React.CSSProperties;\n\n const tableProviderValue = useMemo<TableProviderValue>(\n () => ({\n columns,\n dataState,\n emptyState,\n errorState,\n size,\n tableRootRef,\n isVirtualized,\n markTableAsVirtualized,\n isScrolled,\n setIsScrolled: (scrollLeft: boolean) => setIsScrolled(scrollLeft)\n }),\n [columns, dataState, emptyState, errorState, isVirtualized, markTableAsVirtualized, isScrolled, size]\n );\n\n const tableRowMenuProviderValue = useMemo<TableRowMenuProviderValue>(\n () => ({\n tableRootRef,\n hoveredRowRef,\n isMenuOpen,\n resetHoveredRow,\n setHoveredRowRef: (rowRef: React.RefObject<HTMLDivElement>) => setHoveredRowRef(rowRef),\n setIsMenuOpen: (isOpen: boolean) => setIsMenuOpen(isOpen)\n }),\n [hoveredRowRef, isMenuOpen, resetHoveredRow, setHoveredRowRef]\n );\n\n return (\n <TableProvider value={tableProviderValue}>\n <TableRowMenuProvider value={tableRowMenuProviderValue}>\n <div\n ref={mergedRef}\n id={id}\n className={cx(\n styles.table,\n {\n [styles.border]: !withoutBorder,\n [styles.virtualized]: isVirtualized,\n [styles.hasScroll]: isScrolled\n },\n className\n )}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TABLE, id)}\n data-vibe={ComponentVibeId.TABLE}\n role=\"table\"\n style={calculatedStyle}\n onScroll={onScroll}\n >\n {children}\n </div>\n </TableRowMenuProvider>\n </TableProvider>\n );\n }\n);\n\nexport default Table;\n"],"names":["Table","forwardRef","_ref","ref","id","className","dataTestId","columns","errorState","emptyState","dataState","style","children","_ref$size","size","withoutBorder","tableRootRef","useRef","mergedRef","useMergeRef","_useState","useState","_useState2","_slicedToArray","isMenuOpen","setIsMenuOpen","_useState3","_useState4","hoveredRowRef","setHoveredRowRef","resetHoveredRow","useCallback","_useState5","_useState6","isVirtualized","setIsVirtualized","markTableAsVirtualized","_useState7","_useState8","isScrolled","setIsScrolled","onScroll","e","hasScroll","target","scrollLeft","prevScroll","_getTableRowLayoutSty","getTableRowLayoutStyles","calculatedStyle","Object","assign","gridTemplateColumns","concat","RowHeights","tableProviderValue","useMemo","tableRowMenuProviderValue","rowRef","isOpen","React","createElement","TableProvider","value","TableRowMenuProvider","cx","styles","table","_defineProperty","border","virtualized","getTestId","ComponentDefaultTestId","TABLE","ComponentVibeId","role"],"mappings":"8sBAkGMA,IAAAA,EAAQC,GACZ,SAAAC,EAcEC,GACE,IAbAC,EAAEF,EAAFE,GACAC,EAASH,EAATG,UACeC,EAAUJ,EAAzB,eACAK,EAAOL,EAAPK,QACAC,EAAUN,EAAVM,WACAC,EAAUP,EAAVO,WACAC,EAASR,EAATQ,UACAC,EAAKT,EAALS,MACAC,EAAQV,EAARU,SAAQC,EAAAX,EACRY,KAAAA,OAAO,IAAHD,EAAG,SAAQA,EACfE,EAAab,EAAba,cAIIC,EAAeC,EAAuB,MACtCC,EAAYC,EAAYhB,EAAKa,GAEnCI,EAAoCC,GAAkB,GAAMC,EAAAC,EAAAH,EAAA,GAArDI,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAChCI,EAA0CL,EAA0C,MAAKM,EAAAJ,EAAAG,EAAA,GAAlFE,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GAEhCG,EAAkBC,GAAY,WAClCN,GAAc,GACdI,EAAiB,KAClB,GAAE,IAEHG,EAA0CX,GAAkB,GAAMY,EAAAV,EAAAS,EAAA,GAA3DE,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GAChCG,EAAyBL,GAAY,WACzCI,GAAiB,EAClB,GAAE,IAEHE,EAAoChB,GAAkB,GAAMiB,EAAAf,EAAAc,EAAA,GAArDE,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAE1BG,EAAWV,GACf,SAAAW,GAEE,GADAZ,KACKI,EAAe,CAClB,IACMS,EADWD,EAAEE,OAA0BC,WACjB,EAC5BL,GAAc,SAAAM,GAAU,OAAKA,IAAeH,EAAYA,EAAYG,CAAU,GAChF,CACF,GACA,CAAChB,EAAiBI,IAGpBa,EAAgCC,EAAwBzC,GAMlD0C,EAAkBC,OAAAC,OAAA,CACtB,gCAPyBJ,EAAnBK,oBAQN,sBAAkBC,OAAKC,EAAWxC,GAAK,OACpCH,GAGC4C,GAAqBC,GACzB,WAAA,MAAO,CACLjD,QAAAA,EACAG,UAAAA,EACAD,WAAAA,EACAD,WAAAA,EACAM,KAAAA,EACAE,aAAAA,EACAkB,cAAAA,EACAE,uBAAAA,EACAG,WAAAA,EACAC,cAAe,SAACK,GAAmB,OAAKL,EAAcK,EAAW,EAClE,GACD,CAACtC,EAASG,EAAWD,EAAYD,EAAY0B,EAAeE,EAAwBG,EAAYzB,IAG5F2C,GAA4BD,GAChC,WAAA,MAAO,CACLxC,aAAAA,EACAY,cAAAA,EACAJ,WAAAA,EACAM,gBAAAA,EACAD,iBAAkB,SAAC6B,GAAuC,OAAK7B,EAAiB6B,EAAO,EACvFjC,cAAe,SAACkC,GAAe,OAAKlC,EAAckC,EAAO,EACzD,GACF,CAAC/B,EAAeJ,EAAYM,EAAiBD,IAG/C,OACE+B,EAACC,cAAAC,EAAc,CAAAC,MAAOR,IACpBK,EAAAC,cAACG,EAAoB,CAACD,MAAON,IAC3BG,EAAAC,cAAA,MAAA,CACE1D,IAAKe,EACLd,GAAIA,EACJC,UAAW4D,EACTC,EAAOC,MAAKC,EAAAA,EAAAA,EAAA,CAAA,EAETF,EAAOG,QAAUtD,GACjBmD,EAAOI,YAAcpC,GACrBgC,EAAOvB,UAAYJ,GAEtBlC,GAEW,cAAAC,GAAciE,EAAUC,EAAuBC,MAAOrE,GAAG,YAC3DsE,EAAgBD,MAC3BE,KAAK,QACLhE,MAAOsC,EACPR,SAAUA,GAET7B,IAKX"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import l from"react";import t from"classnames";import r from"../TableCell/TableCell.js";import o from"../../Skeleton/Skeleton.js";import s from"./TableCellSkeleton.module.scss.js";import{getStyle as m}from"../../../helpers/typesciptCssModulesHelper.js";import{getSkeletonType as a}from"../Table/tableHelpers.js";import{camelCase as p}from"es-toolkit";var i=function(i){var n=i.type,f=void 0===n?"long-text":n,u=["long-text","medium-text"].includes(f);return l.createElement(r,null,l.createElement(o,{type:a(f),wrapperClassName:t(s.tableCellSkeletonWrapper,m(s,p(f))),className:t(s.tableCellSkeleton,e({},m(s,p(f)),!u)),fullWidth:!0}))};export{i as default};
1
+ import{defineProperty as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import l from"react";import t from"classnames";import r from"../TableCell/TableCell.js";import o from"../../Skeleton/Skeleton.js";import a from"./TableCellSkeleton.module.scss.js";import{getStyle as m}from"@vibe/shared";import{getSkeletonType as s}from"../Table/tableHelpers.js";import{camelCase as p}from"es-toolkit";var i=function(i){var n=i.type,f=void 0===n?"long-text":n,u=["long-text","medium-text"].includes(f);return l.createElement(r,null,l.createElement(o,{type:s(f),wrapperClassName:t(a.tableCellSkeletonWrapper,m(a,p(f))),className:t(a.tableCellSkeleton,e({},m(a,p(f)),!u)),fullWidth:!0}))};export{i as default};
2
2
  //# sourceMappingURL=TableCellSkeleton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableCellSkeleton.js","sources":["../../../../../../src/components/Table/TableCellSkeleton/TableCellSkeleton.tsx"],"sourcesContent":["import React from \"react\";\nimport cx from \"classnames\";\nimport TableCell from \"../TableCell/TableCell\";\nimport Skeleton from \"../../Skeleton/Skeleton\";\nimport styles from \"./TableCellSkeleton.module.scss\";\nimport { type VibeComponentProps } from \"../../../types\";\nimport { getStyle } from \"../../../helpers/typesciptCssModulesHelper\";\nimport { type TableLoadingStateType } from \"../Table/Table\";\nimport { getSkeletonType } from \"../Table/tableHelpers\";\nimport { camelCase } from \"es-toolkit\";\n\nexport interface TableCellSkeletonProps extends VibeComponentProps {\n /**\n * The type of loading state for the skeleton.\n */\n type?: TableLoadingStateType;\n /**\n * If true, renders a shorter skeleton for text-based loading states.\n */\n short?: boolean;\n}\n\nconst TableCellSkeleton: React.FC<TableCellSkeletonProps> = ({ type = \"long-text\" }) => {\n const isText = [\"long-text\", \"medium-text\"].includes(type);\n return (\n <TableCell>\n <Skeleton\n type={getSkeletonType(type)}\n wrapperClassName={cx(styles.tableCellSkeletonWrapper, getStyle(styles, camelCase(type)))}\n className={cx(styles.tableCellSkeleton, { [getStyle(styles, camelCase(type))]: !isText })}\n fullWidth\n />\n </TableCell>\n );\n};\n\nexport default TableCellSkeleton;\n"],"names":["TableCellSkeleton","_ref","_ref$type","type","isText","includes","React","TableCell","createElement","Skeleton","getSkeletonType","wrapperClassName","cx","styles","tableCellSkeletonWrapper","getStyle","camelCase","className","tableCellSkeleton","_defineProperty","fullWidth"],"mappings":"kbAsBA,IAAMA,EAAsD,SAArCC,GAAgE,IAAAC,EAAAD,EAAxBE,KAAAA,OAAO,IAAHD,EAAG,YAAWA,EACzEE,EAAS,CAAC,YAAa,eAAeC,SAASF,GACrD,OACEG,gBAACC,EAAS,KACRD,EAACE,cAAAC,EACC,CAAAN,KAAMO,EAAgBP,GACtBQ,iBAAkBC,EAAGC,EAAOC,yBAA0BC,EAASF,EAAQG,EAAUb,KACjFc,UAAWL,EAAGC,EAAOK,kBAAiBC,EAAA,CAAA,EAAKJ,EAASF,EAAQG,EAAUb,KAAUC,IAChFgB,WAAS,IAIjB"}
1
+ {"version":3,"file":"TableCellSkeleton.js","sources":["../../../../../../src/components/Table/TableCellSkeleton/TableCellSkeleton.tsx"],"sourcesContent":["import React from \"react\";\nimport cx from \"classnames\";\nimport TableCell from \"../TableCell/TableCell\";\nimport Skeleton from \"../../Skeleton/Skeleton\";\nimport styles from \"./TableCellSkeleton.module.scss\";\nimport { type VibeComponentProps } from \"../../../types\";\nimport { getStyle } from \"@vibe/shared\";\nimport { type TableLoadingStateType } from \"../Table/Table\";\nimport { getSkeletonType } from \"../Table/tableHelpers\";\nimport { camelCase } from \"es-toolkit\";\n\nexport interface TableCellSkeletonProps extends VibeComponentProps {\n /**\n * The type of loading state for the skeleton.\n */\n type?: TableLoadingStateType;\n /**\n * If true, renders a shorter skeleton for text-based loading states.\n */\n short?: boolean;\n}\n\nconst TableCellSkeleton: React.FC<TableCellSkeletonProps> = ({ type = \"long-text\" }) => {\n const isText = [\"long-text\", \"medium-text\"].includes(type);\n return (\n <TableCell>\n <Skeleton\n type={getSkeletonType(type)}\n wrapperClassName={cx(styles.tableCellSkeletonWrapper, getStyle(styles, camelCase(type)))}\n className={cx(styles.tableCellSkeleton, { [getStyle(styles, camelCase(type))]: !isText })}\n fullWidth\n />\n </TableCell>\n );\n};\n\nexport default TableCellSkeleton;\n"],"names":["TableCellSkeleton","_ref","_ref$type","type","isText","includes","React","TableCell","createElement","Skeleton","getSkeletonType","wrapperClassName","cx","styles","tableCellSkeletonWrapper","getStyle","camelCase","className","tableCellSkeleton","_defineProperty","fullWidth"],"mappings":"iZAsBA,IAAMA,EAAsD,SAArCC,GAAgE,IAAAC,EAAAD,EAAxBE,KAAAA,OAAO,IAAHD,EAAG,YAAWA,EACzEE,EAAS,CAAC,YAAa,eAAeC,SAASF,GACrD,OACEG,gBAACC,EAAS,KACRD,EAACE,cAAAC,EACC,CAAAN,KAAMO,EAAgBP,GACtBQ,iBAAkBC,EAAGC,EAAOC,yBAA0BC,EAASF,EAAQG,EAAUb,KACjFc,UAAWL,EAAGC,EAAOK,kBAAiBC,EAAA,CAAA,EAAKJ,EAASF,EAAQG,EAAUb,KAAUC,IAChFgB,WAAS,IAIjB"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import r,{forwardRef as t}from"react";import o from"./TableHeader.module.scss.js";import s from"classnames";import{getTestId as a}from"../../../tests/testIds.js";import{ComponentDefaultTestId as l}from"../../../tests/constants.js";import{useTable as i}from"../context/TableContext/TableContext.js";import m from"../../../hooks/useMergeRef.js";var d=t((function(t,d){var n=t.id,f=t.className,p=t["data-testid"],c=t.children,u=i(),j=u.onHeadScroll,b=u.isVirtualized,v=m(u.headRef,d);return r.createElement("div",{ref:v,id:n,className:s(o.tableHeader,e({},o.virtualized,b),f),"data-testid":p||a(l.TABLE_HEADER,n),role:"rowgroup",onScroll:j},c)}));export{d as default};
1
+ import{defineProperty as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import r,{forwardRef as t}from"react";import o from"./TableHeader.module.scss.js";import a from"classnames";import{getTestId as s}from"../../../tests/testIds.js";import{ComponentDefaultTestId as i}from"../../../tests/constants.js";import{useTable as l}from"../context/TableContext/TableContext.js";import{useMergeRef as m}from"@vibe/shared";var d=t((function(t,d){var n=t.id,f=t.className,p=t["data-testid"],c=t.children,u=l(),b=u.onHeadScroll,v=u.isVirtualized,j=m(u.headRef,d);return r.createElement("div",{ref:j,id:n,className:a(o.tableHeader,e({},o.virtualized,v),f),"data-testid":p||s(i.TABLE_HEADER,n),role:"rowgroup",onScroll:b},c)}));export{d as default};
2
2
  //# sourceMappingURL=TableHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeader.js","sources":["../../../../../../src/components/Table/TableHeader/TableHeader.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\nimport { type VibeComponentProps } from \"../../../types\";\nimport styles from \"./TableHeader.module.scss\";\nimport { type TableHeaderCellProps } from \"../TableHeaderCell/TableHeaderCell\";\nimport cx from \"classnames\";\nimport { getTestId } from \"../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../../tests/constants\";\nimport { useTable } from \"../context/TableContext/TableContext\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\n\nexport interface TableHeaderProps extends VibeComponentProps {\n /**\n * The child elements inside the table header, typically `<TableHeaderCell />` components.\n */\n children?: React.ReactElement<TableHeaderCellProps> | React.ReactElement<TableHeaderCellProps>[];\n}\n\nconst TableHeader = forwardRef(\n (\n { id, className, \"data-testid\": dataTestId, children }: TableHeaderProps,\n ref: React.ForwardedRef<HTMLDivElement>\n ) => {\n const { headRef, onHeadScroll, isVirtualized } = useTable();\n const mergedRef = useMergeRef(headRef, ref);\n\n return (\n <div\n ref={mergedRef}\n id={id}\n className={cx(styles.tableHeader, { [styles.virtualized]: isVirtualized }, className)}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TABLE_HEADER, id)}\n role=\"rowgroup\"\n onScroll={onHeadScroll}\n >\n {children}\n </div>\n );\n }\n);\n\nexport default TableHeader;\n"],"names":["TableHeader","forwardRef","_ref","ref","id","className","dataTestId","children","_useTable","useTable","onHeadScroll","isVirtualized","mergedRef","useMergeRef","headRef","React","createElement","cx","styles","tableHeader","_defineProperty","virtualized","getTestId","ComponentDefaultTestId","TABLE_HEADER","role","onScroll"],"mappings":"0aAiBMA,IAAAA,EAAcC,GAClB,SAAAC,EAEEC,GACE,IAFAC,EAAEF,EAAFE,GAAIC,EAASH,EAATG,UAA0BC,EAAUJ,EAAzB,eAA2BK,EAAQL,EAARK,SAG5CC,EAAiDC,IAAhCC,EAAYF,EAAZE,aAAcC,EAAaH,EAAbG,cACzBC,EAAYC,EADHL,EAAPM,QAC+BX,GAEvC,OACEY,EACEC,cAAA,MAAA,CAAAb,IAAKS,EACLR,GAAIA,EACJC,UAAWY,EAAGC,EAAOC,YAAWC,EAAKF,GAAAA,EAAOG,YAAcV,GAAiBN,GAAU,cACxEC,GAAcgB,EAAUC,EAAuBC,aAAcpB,GAC1EqB,KAAK,WACLC,SAAUhB,GAETH,EAGP"}
1
+ {"version":3,"file":"TableHeader.js","sources":["../../../../../../src/components/Table/TableHeader/TableHeader.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\nimport { type VibeComponentProps } from \"../../../types\";\nimport styles from \"./TableHeader.module.scss\";\nimport { type TableHeaderCellProps } from \"../TableHeaderCell/TableHeaderCell\";\nimport cx from \"classnames\";\nimport { getTestId } from \"../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../../tests/constants\";\nimport { useTable } from \"../context/TableContext/TableContext\";\nimport { useMergeRef } from \"@vibe/shared\";\n\nexport interface TableHeaderProps extends VibeComponentProps {\n /**\n * The child elements inside the table header, typically `<TableHeaderCell />` components.\n */\n children?: React.ReactElement<TableHeaderCellProps> | React.ReactElement<TableHeaderCellProps>[];\n}\n\nconst TableHeader = forwardRef(\n (\n { id, className, \"data-testid\": dataTestId, children }: TableHeaderProps,\n ref: React.ForwardedRef<HTMLDivElement>\n ) => {\n const { headRef, onHeadScroll, isVirtualized } = useTable();\n const mergedRef = useMergeRef(headRef, ref);\n\n return (\n <div\n ref={mergedRef}\n id={id}\n className={cx(styles.tableHeader, { [styles.virtualized]: isVirtualized }, className)}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TABLE_HEADER, id)}\n role=\"rowgroup\"\n onScroll={onHeadScroll}\n >\n {children}\n </div>\n );\n }\n);\n\nexport default TableHeader;\n"],"names":["TableHeader","forwardRef","_ref","ref","id","className","dataTestId","children","_useTable","useTable","onHeadScroll","isVirtualized","mergedRef","useMergeRef","headRef","React","createElement","cx","styles","tableHeader","_defineProperty","virtualized","getTestId","ComponentDefaultTestId","TABLE_HEADER","role","onScroll"],"mappings":"waAiBMA,IAAAA,EAAcC,GAClB,SAAAC,EAEEC,GACE,IAFAC,EAAEF,EAAFE,GAAIC,EAASH,EAATG,UAA0BC,EAAUJ,EAAzB,eAA2BK,EAAQL,EAARK,SAG5CC,EAAiDC,IAAhCC,EAAYF,EAAZE,aAAcC,EAAaH,EAAbG,cACzBC,EAAYC,EADHL,EAAPM,QAC+BX,GAEvC,OACEY,EACEC,cAAA,MAAA,CAAAb,IAAKS,EACLR,GAAIA,EACJC,UAAWY,EAAGC,EAAOC,YAAWC,EAAKF,GAAAA,EAAOG,YAAcV,GAAiBN,GAAU,cACxEC,GAAcgB,EAAUC,EAAuBC,aAAcpB,GAC1EqB,KAAK,WACLC,SAAUhB,GAETH,EAGP"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e,defineProperty as t}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import o,{forwardRef as r,useState as a}from"react";import s from"classnames";import i from"./TableHeaderCell.module.scss.js";import{Icon as n}from"@vibe/icon/mockedClassNames";import{IconButton as l}from"@vibe/icon-button/mockedClassNames";import{Info as m}from"@vibe/icons";import{Text as c}from"@vibe/typography/mockedClassNames";import{Flex as d}from"@vibe/layout/mockedClassNames";import{getSortIcon as p,getNextSortState as f,getAriaSort as u}from"../Table/tableHelpers.js";import{Tooltip as b}from"@vibe/tooltip/mockedClassNames";import{getTestId as v}from"../../../tests/testIds.js";import{ComponentDefaultTestId as C}from"../../../tests/constants.js";import{getStyle as y}from"../../../helpers/typesciptCssModulesHelper.js";var E=r((function(r,E){var N=r.id,k=r.className,H=r["data-testid"],g=r.title,h=r.onSortClicked,j=r.infoContent,x=r.icon,A=r.sortState,L=void 0===A?"none":A,T=r.sortButtonAriaLabel,w=void 0===T?"Sort":T,B=r.sticky,S=a(!1),_=e(S,2),M=_[0],I=_[1],P=u(L),z="none"!==P||M;return o.createElement("div",{ref:E,id:N,className:s(i.tableHeaderCell,t(t({},i.sortActive,h&&"none"!==P),i.sticky,B),k),"data-testid":H||v(C.TABLE_HEADER_CELL,N),role:"columnheader",onMouseOver:function(){return I(!0)},onMouseLeave:function(){return I(!1)},onFocus:function(){return I(!0)},onBlur:function(){return I(!1)},"aria-sort":h?P:void 0,tabIndex:h?0:void 0},o.createElement(d,{direction:"row",align:"center",className:i.tableHeaderCellContent,gap:"xs"},x&&o.createElement(n,{icon:x,className:i.icon}),"string"==typeof g?o.createElement(c,{type:"text2",weight:"medium",color:"secondary"},g):g,j&&o.createElement(b,{content:j,referenceWrapperClassName:i.infoTooltip},o.createElement(n,{icon:m,label:j}))),h&&o.createElement(d,{direction:"row",align:"center",className:i.tableHeaderCellSort},o.createElement(l,{icon:p(L),kind:"tertiary",size:"xs","aria-label":w,"aria-hidden":!z,className:s(i.sort,y(i,L),t({},i.show,z)),onClick:function(){return h(f(L))}})))}));export{E as default};
1
+ import{slicedToArray as e,defineProperty as t}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import o,{forwardRef as r,useState as a}from"react";import i from"classnames";import n from"./TableHeaderCell.module.scss.js";import{Icon as s}from"@vibe/icon/mockedClassNames";import{IconButton as l}from"@vibe/icon-button/mockedClassNames";import{Info as m}from"@vibe/icons";import{Text as c}from"@vibe/typography/mockedClassNames";import{Flex as d}from"@vibe/layout/mockedClassNames";import{getSortIcon as p,getNextSortState as f,getAriaSort as u}from"../Table/tableHelpers.js";import{Tooltip as b}from"@vibe/tooltip/mockedClassNames";import{getTestId as v}from"../../../tests/testIds.js";import{ComponentDefaultTestId as C}from"../../../tests/constants.js";import{getStyle as E}from"@vibe/shared";var N=r((function(r,N){var y=r.id,k=r.className,g=r["data-testid"],H=r.title,h=r.onSortClicked,j=r.infoContent,x=r.icon,A=r.sortState,L=void 0===A?"none":A,T=r.sortButtonAriaLabel,w=void 0===T?"Sort":T,B=r.sticky,S=a(!1),_=e(S,2),I=_[0],M=_[1],P=u(L),z="none"!==P||I;return o.createElement("div",{ref:N,id:y,className:i(n.tableHeaderCell,t(t({},n.sortActive,h&&"none"!==P),n.sticky,B),k),"data-testid":g||v(C.TABLE_HEADER_CELL,y),role:"columnheader",onMouseOver:function(){return M(!0)},onMouseLeave:function(){return M(!1)},onFocus:function(){return M(!0)},onBlur:function(){return M(!1)},"aria-sort":h?P:void 0,tabIndex:h?0:void 0},o.createElement(d,{direction:"row",align:"center",className:n.tableHeaderCellContent,gap:"xs"},x&&o.createElement(s,{icon:x,className:n.icon}),"string"==typeof H?o.createElement(c,{type:"text2",weight:"medium",color:"secondary"},H):H,j&&o.createElement(b,{content:j,referenceWrapperClassName:n.infoTooltip},o.createElement(s,{icon:m,label:j}))),h&&o.createElement(d,{direction:"row",align:"center",className:n.tableHeaderCellSort},o.createElement(l,{icon:p(L),kind:"tertiary",size:"xs","aria-label":w,"aria-hidden":!z,className:i(n.sort,E(n,L),t({},n.show,z)),onClick:function(){return h(f(L))}})))}));export{N as default};
2
2
  //# sourceMappingURL=TableHeaderCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeaderCell.js","sources":["../../../../../../src/components/Table/TableHeaderCell/TableHeaderCell.tsx"],"sourcesContent":["import React, { forwardRef, useState } from \"react\";\nimport cx from \"classnames\";\nimport { type VibeComponentProps } from \"../../../types\";\nimport styles from \"./TableHeaderCell.module.scss\";\nimport { Icon, type SubIcon } from \"@vibe/icon\";\nimport { IconButton } from \"@vibe/icon-button\";\nimport { Info } from \"@vibe/icons\";\nimport { Text } from \"@vibe/typography\";\nimport { Flex } from \"@vibe/layout\";\nimport { getAriaSort, getNextSortState, getSortIcon } from \"../Table/tableHelpers\";\nimport { Tooltip } from \"@vibe/tooltip\";\nimport { getTestId } from \"../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../../tests/constants\";\nimport { getStyle } from \"../../../helpers/typesciptCssModulesHelper\";\n\nexport interface TableHeaderCellProps extends VibeComponentProps {\n /**\n * The title of the column, displayed inside the header cell.\n */\n title: string | React.ReactNode;\n /**\n * Icon displayed next to the column title.\n */\n icon?: SubIcon;\n /**\n * Tooltip content for additional information about the column.\n */\n infoContent?: string;\n /**\n * Current sorting state of the column.\n */\n sortState?: \"asc\" | \"desc\" | \"none\";\n /**\n * Callback fired when the column header is clicked to change sorting.\n */\n onSortClicked?: (direction: \"asc\" | \"desc\" | \"none\") => void;\n /**\n * ARIA label for the sort button.\n */\n sortButtonAriaLabel?: string;\n /**\n * If true, the header cell remains visible while scrolling horizontally.\n */\n sticky?: boolean;\n}\n\nconst TableHeaderCell = forwardRef(\n (\n {\n id,\n className,\n \"data-testid\": dataTestId,\n title,\n onSortClicked,\n infoContent,\n icon,\n sortState = \"none\",\n sortButtonAriaLabel = \"Sort\",\n sticky\n }: TableHeaderCellProps,\n ref: React.ForwardedRef<HTMLDivElement>\n ) => {\n const [isHovered, setIsHovered] = useState<boolean>(false);\n const ariaSort = getAriaSort(sortState);\n const isSortActive = onSortClicked && ariaSort !== \"none\";\n const shouldShowSortIcon = ariaSort !== \"none\" || isHovered;\n\n return (\n <div\n ref={ref}\n id={id}\n className={cx(\n styles.tableHeaderCell,\n { [styles.sortActive]: isSortActive, [styles.sticky]: sticky },\n className\n )}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TABLE_HEADER_CELL, id)}\n role=\"columnheader\"\n onMouseOver={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onFocus={() => setIsHovered(true)}\n onBlur={() => setIsHovered(false)}\n aria-sort={onSortClicked ? ariaSort : undefined}\n tabIndex={onSortClicked ? 0 : undefined}\n >\n <Flex direction=\"row\" align=\"center\" className={styles.tableHeaderCellContent} gap=\"xs\">\n {icon && <Icon icon={icon} className={styles.icon} />}\n {typeof title === \"string\" ? (\n <Text type=\"text2\" weight=\"medium\" color=\"secondary\">\n {title}\n </Text>\n ) : (\n title\n )}\n {infoContent && (\n <Tooltip content={infoContent} referenceWrapperClassName={styles.infoTooltip}>\n <Icon icon={Info} label={infoContent} />\n </Tooltip>\n )}\n </Flex>\n {onSortClicked && (\n <Flex direction=\"row\" align=\"center\" className={styles.tableHeaderCellSort}>\n <IconButton\n icon={getSortIcon(sortState)}\n kind=\"tertiary\"\n size=\"xs\"\n aria-label={sortButtonAriaLabel}\n aria-hidden={!shouldShowSortIcon}\n className={cx(styles.sort, getStyle(styles, sortState), {\n [styles.show]: shouldShowSortIcon\n })}\n onClick={() => onSortClicked(getNextSortState(sortState))}\n />\n </Flex>\n )}\n </div>\n );\n }\n);\n\nexport default TableHeaderCell;\n"],"names":["TableHeaderCell","forwardRef","_ref","ref","id","className","dataTestId","title","onSortClicked","infoContent","icon","_ref$sortState","sortState","_ref$sortButtonAriaLa","sortButtonAriaLabel","sticky","_useState","useState","_useState2","_slicedToArray","isHovered","setIsHovered","ariaSort","getAriaSort","shouldShowSortIcon","React","createElement","cx","styles","tableHeaderCell","_defineProperty","sortActive","getTestId","ComponentDefaultTestId","TABLE_HEADER_CELL","role","onMouseOver","onMouseLeave","onFocus","onBlur","undefined","tabIndex","Flex","direction","align","tableHeaderCellContent","gap","Icon","Text","type","weight","color","Tooltip","content","referenceWrapperClassName","infoTooltip","Info","label","tableHeaderCellSort","IconButton","getSortIcon","kind","size","sort","getStyle","show","onClick","getNextSortState"],"mappings":"m0BA8CMA,IAAAA,EAAkBC,GACtB,SAAAC,EAaEC,GACE,IAZAC,EAAEF,EAAFE,GACAC,EAASH,EAATG,UACeC,EAAUJ,EAAzB,eACAK,EAAKL,EAALK,MACAC,EAAaN,EAAbM,cACAC,EAAWP,EAAXO,YACAC,EAAIR,EAAJQ,KAAIC,EAAAT,EACJU,UAAAA,OAAY,IAAHD,EAAG,OAAMA,EAAAE,EAAAX,EAClBY,oBAAAA,OAAsB,IAAHD,EAAG,OAAMA,EAC5BE,EAAMb,EAANa,OAIFC,EAAkCC,GAAkB,GAAMC,EAAAC,EAAAH,EAAA,GAAnDI,EAASF,EAAA,GAAEG,EAAYH,EAAA,GACxBI,EAAWC,EAAYX,GAEvBY,EAAkC,SAAbF,GAAuBF,EAElD,OACEK,EACEC,cAAA,MAAA,CAAAvB,IAAKA,EACLC,GAAIA,EACJC,UAAWsB,EACTC,EAAOC,gBAAeC,EAAAA,EACnBF,CAAAA,EAAAA,EAAOG,WATKvB,GAA8B,SAAbc,GASMM,EAAOb,OAASA,GACtDV,GAEW,cAAAC,GAAc0B,EAAUC,EAAuBC,kBAAmB9B,GAC/E+B,KAAK,eACLC,YAAa,WAAA,OAAMf,GAAa,EAAK,EACrCgB,aAAc,WAAA,OAAMhB,GAAa,EAAM,EACvCiB,QAAS,WAAA,OAAMjB,GAAa,EAAK,EACjCkB,OAAQ,WAAA,OAAMlB,GAAa,EAAM,EACtB,YAAAb,EAAgBc,OAAWkB,EACtCC,SAAUjC,EAAgB,OAAIgC,GAE9Bf,EAAAC,cAACgB,EAAK,CAAAC,UAAU,MAAMC,MAAM,SAASvC,UAAWuB,EAAOiB,uBAAwBC,IAAI,MAChFpC,GAAQe,EAAAC,cAACqB,EAAI,CAACrC,KAAMA,EAAML,UAAWuB,EAAOlB,OAC3B,iBAAVH,EACNkB,EAAAC,cAACsB,EAAI,CAACC,KAAK,QAAQC,OAAO,SAASC,MAAM,aACtC5C,GAGHA,EAEDE,GACCgB,EAACC,cAAA0B,EAAQ,CAAAC,QAAS5C,EAAa6C,0BAA2B1B,EAAO2B,aAC/D9B,EAAAC,cAACqB,EAAI,CAACrC,KAAM8C,EAAMC,MAAOhD,MAI9BD,GACCiB,EAAAC,cAACgB,EAAI,CAACC,UAAU,MAAMC,MAAM,SAASvC,UAAWuB,EAAO8B,qBACrDjC,EAAAC,cAACiC,EACC,CAAAjD,KAAMkD,EAAYhD,GAClBiD,KAAK,WACLC,KAAK,KACO,aAAAhD,EACC,eAACU,EACdnB,UAAWsB,EAAGC,EAAOmC,KAAMC,EAASpC,EAAQhB,GAAUkB,EACnDF,CAAAA,EAAAA,EAAOqC,KAAOzC,IAEjB0C,QAAS,WAAA,OAAM1D,EAAc2D,EAAiBvD,GAAW,KAMrE"}
1
+ {"version":3,"file":"TableHeaderCell.js","sources":["../../../../../../src/components/Table/TableHeaderCell/TableHeaderCell.tsx"],"sourcesContent":["import React, { forwardRef, useState } from \"react\";\nimport cx from \"classnames\";\nimport { type VibeComponentProps } from \"../../../types\";\nimport styles from \"./TableHeaderCell.module.scss\";\nimport { Icon, type SubIcon } from \"@vibe/icon\";\nimport { IconButton } from \"@vibe/icon-button\";\nimport { Info } from \"@vibe/icons\";\nimport { Text } from \"@vibe/typography\";\nimport { Flex } from \"@vibe/layout\";\nimport { getAriaSort, getNextSortState, getSortIcon } from \"../Table/tableHelpers\";\nimport { Tooltip } from \"@vibe/tooltip\";\nimport { getTestId } from \"../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../../tests/constants\";\nimport { getStyle } from \"@vibe/shared\";\n\nexport interface TableHeaderCellProps extends VibeComponentProps {\n /**\n * The title of the column, displayed inside the header cell.\n */\n title: string | React.ReactNode;\n /**\n * Icon displayed next to the column title.\n */\n icon?: SubIcon;\n /**\n * Tooltip content for additional information about the column.\n */\n infoContent?: string;\n /**\n * Current sorting state of the column.\n */\n sortState?: \"asc\" | \"desc\" | \"none\";\n /**\n * Callback fired when the column header is clicked to change sorting.\n */\n onSortClicked?: (direction: \"asc\" | \"desc\" | \"none\") => void;\n /**\n * ARIA label for the sort button.\n */\n sortButtonAriaLabel?: string;\n /**\n * If true, the header cell remains visible while scrolling horizontally.\n */\n sticky?: boolean;\n}\n\nconst TableHeaderCell = forwardRef(\n (\n {\n id,\n className,\n \"data-testid\": dataTestId,\n title,\n onSortClicked,\n infoContent,\n icon,\n sortState = \"none\",\n sortButtonAriaLabel = \"Sort\",\n sticky\n }: TableHeaderCellProps,\n ref: React.ForwardedRef<HTMLDivElement>\n ) => {\n const [isHovered, setIsHovered] = useState<boolean>(false);\n const ariaSort = getAriaSort(sortState);\n const isSortActive = onSortClicked && ariaSort !== \"none\";\n const shouldShowSortIcon = ariaSort !== \"none\" || isHovered;\n\n return (\n <div\n ref={ref}\n id={id}\n className={cx(\n styles.tableHeaderCell,\n { [styles.sortActive]: isSortActive, [styles.sticky]: sticky },\n className\n )}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TABLE_HEADER_CELL, id)}\n role=\"columnheader\"\n onMouseOver={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onFocus={() => setIsHovered(true)}\n onBlur={() => setIsHovered(false)}\n aria-sort={onSortClicked ? ariaSort : undefined}\n tabIndex={onSortClicked ? 0 : undefined}\n >\n <Flex direction=\"row\" align=\"center\" className={styles.tableHeaderCellContent} gap=\"xs\">\n {icon && <Icon icon={icon} className={styles.icon} />}\n {typeof title === \"string\" ? (\n <Text type=\"text2\" weight=\"medium\" color=\"secondary\">\n {title}\n </Text>\n ) : (\n title\n )}\n {infoContent && (\n <Tooltip content={infoContent} referenceWrapperClassName={styles.infoTooltip}>\n <Icon icon={Info} label={infoContent} />\n </Tooltip>\n )}\n </Flex>\n {onSortClicked && (\n <Flex direction=\"row\" align=\"center\" className={styles.tableHeaderCellSort}>\n <IconButton\n icon={getSortIcon(sortState)}\n kind=\"tertiary\"\n size=\"xs\"\n aria-label={sortButtonAriaLabel}\n aria-hidden={!shouldShowSortIcon}\n className={cx(styles.sort, getStyle(styles, sortState), {\n [styles.show]: shouldShowSortIcon\n })}\n onClick={() => onSortClicked(getNextSortState(sortState))}\n />\n </Flex>\n )}\n </div>\n );\n }\n);\n\nexport default TableHeaderCell;\n"],"names":["TableHeaderCell","forwardRef","_ref","ref","id","className","dataTestId","title","onSortClicked","infoContent","icon","_ref$sortState","sortState","_ref$sortButtonAriaLa","sortButtonAriaLabel","sticky","_useState","useState","_useState2","_slicedToArray","isHovered","setIsHovered","ariaSort","getAriaSort","shouldShowSortIcon","React","createElement","cx","styles","tableHeaderCell","_defineProperty","sortActive","getTestId","ComponentDefaultTestId","TABLE_HEADER_CELL","role","onMouseOver","onMouseLeave","onFocus","onBlur","undefined","tabIndex","Flex","direction","align","tableHeaderCellContent","gap","Icon","Text","type","weight","color","Tooltip","content","referenceWrapperClassName","infoTooltip","Info","label","tableHeaderCellSort","IconButton","getSortIcon","kind","size","sort","getStyle","show","onClick","getNextSortState"],"mappings":"kyBA8CMA,IAAAA,EAAkBC,GACtB,SAAAC,EAaEC,GACE,IAZAC,EAAEF,EAAFE,GACAC,EAASH,EAATG,UACeC,EAAUJ,EAAzB,eACAK,EAAKL,EAALK,MACAC,EAAaN,EAAbM,cACAC,EAAWP,EAAXO,YACAC,EAAIR,EAAJQ,KAAIC,EAAAT,EACJU,UAAAA,OAAY,IAAHD,EAAG,OAAMA,EAAAE,EAAAX,EAClBY,oBAAAA,OAAsB,IAAHD,EAAG,OAAMA,EAC5BE,EAAMb,EAANa,OAIFC,EAAkCC,GAAkB,GAAMC,EAAAC,EAAAH,EAAA,GAAnDI,EAASF,EAAA,GAAEG,EAAYH,EAAA,GACxBI,EAAWC,EAAYX,GAEvBY,EAAkC,SAAbF,GAAuBF,EAElD,OACEK,EACEC,cAAA,MAAA,CAAAvB,IAAKA,EACLC,GAAIA,EACJC,UAAWsB,EACTC,EAAOC,gBAAeC,EAAAA,EACnBF,CAAAA,EAAAA,EAAOG,WATKvB,GAA8B,SAAbc,GASMM,EAAOb,OAASA,GACtDV,GAEW,cAAAC,GAAc0B,EAAUC,EAAuBC,kBAAmB9B,GAC/E+B,KAAK,eACLC,YAAa,WAAA,OAAMf,GAAa,EAAK,EACrCgB,aAAc,WAAA,OAAMhB,GAAa,EAAM,EACvCiB,QAAS,WAAA,OAAMjB,GAAa,EAAK,EACjCkB,OAAQ,WAAA,OAAMlB,GAAa,EAAM,EACtB,YAAAb,EAAgBc,OAAWkB,EACtCC,SAAUjC,EAAgB,OAAIgC,GAE9Bf,EAAAC,cAACgB,EAAK,CAAAC,UAAU,MAAMC,MAAM,SAASvC,UAAWuB,EAAOiB,uBAAwBC,IAAI,MAChFpC,GAAQe,EAAAC,cAACqB,EAAI,CAACrC,KAAMA,EAAML,UAAWuB,EAAOlB,OAC3B,iBAAVH,EACNkB,EAAAC,cAACsB,EAAI,CAACC,KAAK,QAAQC,OAAO,SAASC,MAAM,aACtC5C,GAGHA,EAEDE,GACCgB,EAACC,cAAA0B,EAAQ,CAAAC,QAAS5C,EAAa6C,0BAA2B1B,EAAO2B,aAC/D9B,EAAAC,cAACqB,EAAI,CAACrC,KAAM8C,EAAMC,MAAOhD,MAI9BD,GACCiB,EAAAC,cAACgB,EAAI,CAACC,UAAU,MAAMC,MAAM,SAASvC,UAAWuB,EAAO8B,qBACrDjC,EAAAC,cAACiC,EACC,CAAAjD,KAAMkD,EAAYhD,GAClBiD,KAAK,WACLC,KAAK,KACO,aAAAhD,EACC,eAACU,EACdnB,UAAWsB,EAAGC,EAAOmC,KAAMC,EAASpC,EAAQhB,GAAUkB,EACnDF,CAAAA,EAAAA,EAAOqC,KAAOzC,IAEjB0C,QAAS,WAAA,OAAM1D,EAAc2D,EAAiBvD,GAAW,KAMrE"}
@@ -1,2 +1,2 @@
1
- import e,{forwardRef as t,useRef as o,useCallback as s}from"react";import r from"../../../hooks/useMergeRef.js";import{getTestId as a}from"../../../tests/testIds.js";import{ComponentDefaultTestId as n}from"../../../tests/constants.js";import m from"classnames";import i from"./TableRow.module.scss.js";import{useTableRowMenu as l}from"../context/TableRowMenuContext/TableRowMenuContext.js";var d=t((function(t,d){var u=t.highlighted,c=t.children,f=t.style,p=t.id,R=t.className,w=t["data-testid"],M=o(null),v=r(M,d),b=l(),h=b.onMouseOverRow,j=b.onMouseLeaveRow,x=s((function(){h(M)}),[h]);return e.createElement("div",{id:p,"data-testid":w||a(n.TABLE_ROW,p),ref:v,role:"row","aria-selected":u||!1,className:m(i.tableRow,R),style:f,onMouseEnter:x,onMouseLeave:j,tabIndex:-1},c)}));export{d as default};
1
+ import e,{forwardRef as t,useRef as o,useCallback as s}from"react";import{useMergeRef as r}from"@vibe/shared";import{getTestId as a}from"../../../tests/testIds.js";import{ComponentDefaultTestId as n}from"../../../tests/constants.js";import i from"classnames";import m from"./TableRow.module.scss.js";import{useTableRowMenu as l}from"../context/TableRowMenuContext/TableRowMenuContext.js";var d=t((function(t,d){var c=t.highlighted,u=t.children,f=t.style,p=t.id,v=t.className,w=t["data-testid"],R=o(null),b=r(R,d),M=l(),h=M.onMouseOverRow,x=M.onMouseLeaveRow,j=s((function(){h(R)}),[h]);return e.createElement("div",{id:p,"data-testid":w||a(n.TABLE_ROW,p),ref:b,role:"row","aria-selected":c||!1,className:i(m.tableRow,v),style:f,onMouseEnter:j,onMouseLeave:x,tabIndex:-1},u)}));export{d as default};
2
2
  //# sourceMappingURL=TableRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableRow.js","sources":["../../../../../../src/components/Table/TableRow/TableRow.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useRef } from \"react\";\nimport { type VibeComponentProps } from \"../../../types\";\nimport { type TableCellProps } from \"../TableCell/TableCell\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\nimport { getTestId } from \"../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../../tests/constants\";\nimport cx from \"classnames\";\nimport styles from \"./TableRow.module.scss\";\nimport { useTableRowMenu } from \"../context/TableRowMenuContext/TableRowMenuContext\";\n\nexport interface TableRowProps extends VibeComponentProps {\n /**\n * If true, applies a highlighted style to the row.\n */\n highlighted?: boolean;\n /**\n * The child components inside the table row, typically `<TableCell />` elements.\n */\n children?: React.ReactElement<TableCellProps> | React.ReactElement<TableCellProps>[];\n /**\n * Custom styles applied to the table row.\n */\n style?: React.CSSProperties;\n}\n\nconst TableRow = forwardRef(\n (\n { highlighted, children, style, id, className, \"data-testid\": dataTestId }: TableRowProps,\n ref: React.ForwardedRef<HTMLDivElement>\n ) => {\n const componentRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRef(componentRef, ref);\n const { onMouseOverRow, onMouseLeaveRow } = useTableRowMenu();\n\n const onMouseEnter = useCallback(() => {\n onMouseOverRow(componentRef);\n }, [onMouseOverRow]);\n\n return (\n <div\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TABLE_ROW, id)}\n ref={mergedRef}\n role=\"row\"\n aria-selected={highlighted || false}\n className={cx(styles.tableRow, className)}\n style={style}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeaveRow}\n tabIndex={-1}\n >\n {children}\n </div>\n );\n }\n);\n\nexport default TableRow;\n"],"names":["TableRow","forwardRef","_ref","ref","highlighted","children","style","id","className","dataTestId","componentRef","useRef","mergedRef","useMergeRef","_useTableRowMenu","useTableRowMenu","onMouseOverRow","onMouseLeaveRow","onMouseEnter","useCallback","React","createElement","getTestId","ComponentDefaultTestId","TABLE_ROW","role","cx","styles","tableRow","onMouseLeave","tabIndex"],"mappings":"sYAyBMA,IAAAA,EAAWC,GACf,SAAAC,EAEEC,GACE,IAFAC,EAAWF,EAAXE,YAAaC,EAAQH,EAARG,SAAUC,EAAKJ,EAALI,MAAOC,EAAEL,EAAFK,GAAIC,EAASN,EAATM,UAA0BC,EAAUP,EAAzB,eAGzCQ,EAAeC,EAAuB,MACtCC,EAAYC,EAAYH,EAAcP,GAC5CW,EAA4CC,IAApCC,EAAcF,EAAdE,eAAgBC,EAAeH,EAAfG,gBAElBC,EAAeC,GAAY,WAC/BH,EAAeN,EACjB,GAAG,CAACM,IAEJ,OACEI,EAAAC,cAAA,MAAA,CACEd,GAAIA,EAAE,cACOE,GAAca,EAAUC,EAAuBC,UAAWjB,GACvEJ,IAAKS,EACLa,KAAK,MACU,gBAAArB,IAAe,EAC9BI,UAAWkB,EAAGC,EAAOC,SAAUpB,GAC/BF,MAAOA,EACPY,aAAcA,EACdW,aAAcZ,EACda,UAAW,GAEVzB,EAGP"}
1
+ {"version":3,"file":"TableRow.js","sources":["../../../../../../src/components/Table/TableRow/TableRow.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useRef } from \"react\";\nimport { type VibeComponentProps } from \"../../../types\";\nimport { type TableCellProps } from \"../TableCell/TableCell\";\nimport { useMergeRef } from \"@vibe/shared\";\nimport { getTestId } from \"../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../../tests/constants\";\nimport cx from \"classnames\";\nimport styles from \"./TableRow.module.scss\";\nimport { useTableRowMenu } from \"../context/TableRowMenuContext/TableRowMenuContext\";\n\nexport interface TableRowProps extends VibeComponentProps {\n /**\n * If true, applies a highlighted style to the row.\n */\n highlighted?: boolean;\n /**\n * The child components inside the table row, typically `<TableCell />` elements.\n */\n children?: React.ReactElement<TableCellProps> | React.ReactElement<TableCellProps>[];\n /**\n * Custom styles applied to the table row.\n */\n style?: React.CSSProperties;\n}\n\nconst TableRow = forwardRef(\n (\n { highlighted, children, style, id, className, \"data-testid\": dataTestId }: TableRowProps,\n ref: React.ForwardedRef<HTMLDivElement>\n ) => {\n const componentRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRef(componentRef, ref);\n const { onMouseOverRow, onMouseLeaveRow } = useTableRowMenu();\n\n const onMouseEnter = useCallback(() => {\n onMouseOverRow(componentRef);\n }, [onMouseOverRow]);\n\n return (\n <div\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TABLE_ROW, id)}\n ref={mergedRef}\n role=\"row\"\n aria-selected={highlighted || false}\n className={cx(styles.tableRow, className)}\n style={style}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeaveRow}\n tabIndex={-1}\n >\n {children}\n </div>\n );\n }\n);\n\nexport default TableRow;\n"],"names":["TableRow","forwardRef","_ref","ref","highlighted","children","style","id","className","dataTestId","componentRef","useRef","mergedRef","useMergeRef","_useTableRowMenu","useTableRowMenu","onMouseOverRow","onMouseLeaveRow","onMouseEnter","useCallback","React","createElement","getTestId","ComponentDefaultTestId","TABLE_ROW","role","cx","styles","tableRow","onMouseLeave","tabIndex"],"mappings":"oYAyBMA,IAAAA,EAAWC,GACf,SAAAC,EAEEC,GACE,IAFAC,EAAWF,EAAXE,YAAaC,EAAQH,EAARG,SAAUC,EAAKJ,EAALI,MAAOC,EAAEL,EAAFK,GAAIC,EAASN,EAATM,UAA0BC,EAAUP,EAAzB,eAGzCQ,EAAeC,EAAuB,MACtCC,EAAYC,EAAYH,EAAcP,GAC5CW,EAA4CC,IAApCC,EAAcF,EAAdE,eAAgBC,EAAeH,EAAfG,gBAElBC,EAAeC,GAAY,WAC/BH,EAAeN,EACjB,GAAG,CAACM,IAEJ,OACEI,EAAAC,cAAA,MAAA,CACEd,GAAIA,EAAE,cACOE,GAAca,EAAUC,EAAuBC,UAAWjB,GACvEJ,IAAKS,EACLa,KAAK,MACU,gBAAArB,IAAe,EAC9BI,UAAWkB,EAAGC,EAAOC,SAAUpB,GAC/BF,MAAOA,EACPY,aAAcA,EACdW,aAAcZ,EACda,UAAW,GAEVzB,EAGP"}
@@ -1,2 +1,2 @@
1
- import e,{forwardRef as t,useCallback as n}from"react";import o from"classnames";import{getTestId as r}from"../../../tests/testIds.js";import{ComponentDefaultTestId as u}from"../../../tests/constants.js";import s from"./TableRowMenu.module.scss.js";import m from"../../MenuButton/MenuButton.js";import i from"../../Menu/Menu/Menu.js";import"../../Menu/MenuItem/MenuItem.js";import"../../Menu/MenuItemButton/MenuItemButton.js";import"../../Menu/MenuDivider/MenuDivider.js";import"../../Menu/MenuTitle/MenuTitle.js";import"../../Menu/MenuGridItem/MenuGridItem.js";import{createPortal as a}from"react-dom";import{useTable as M}from"../context/TableContext/TableContext.js";import{getStyle as l}from"../../../helpers/typesciptCssModulesHelper.js";import{useTableRowMenu as d}from"../context/TableRowMenuContext/TableRowMenuContext.js";import{useTableContainer as p}from"../context/TableContainerContext/TableContainerContext.js";var c=t((function(t,c){var f=t.rowId,j=t.className,T=t.id,x=t["data-testid"],C=t.children,b=p().menuContainerRef,w=M().size,v=d(),I=v.hoveredRowId,R=v.setTableMenuHidden,E=v.setTableMenuShown,B=v.menuButtonPosition,h=v.onMouseOverRowMenu,N=v.onMouseLeaveRowMenu,H=n((function(){R()}),[R]),L=n((function(){E()}),[E]);return b.current&&I&&I===f?e.createElement(e.Fragment,null,a(e.createElement("div",{className:o(s.rowMenuContainer,l(s,w)),style:{top:B},onMouseEnter:h,onMouseLeave:N},e.createElement(m,{id:T,ref:c,className:o(s.tableMenu,j),size:"xs",onMenuHide:H,onMenuShow:L,"data-testid":x||r(u.TABLE_ROW_MENU,T)},e.createElement(i,null,C))),b.current)):null}));export{c as default};
1
+ import e,{forwardRef as t,useCallback as n}from"react";import o from"classnames";import{getTestId as r}from"../../../tests/testIds.js";import{ComponentDefaultTestId as u}from"../../../tests/constants.js";import m from"./TableRowMenu.module.scss.js";import s from"../../MenuButton/MenuButton.js";import i from"../../Menu/Menu/Menu.js";import"../../Menu/MenuItem/MenuItem.js";import"../../Menu/MenuItemButton/MenuItemButton.js";import"../../Menu/MenuDivider/MenuDivider.js";import"../../Menu/MenuTitle/MenuTitle.js";import"../../Menu/MenuGridItem/MenuGridItem.js";import{createPortal as a}from"react-dom";import{useTable as M}from"../context/TableContext/TableContext.js";import{getStyle as l}from"@vibe/shared";import{useTableRowMenu as d}from"../context/TableRowMenuContext/TableRowMenuContext.js";import{useTableContainer as c}from"../context/TableContainerContext/TableContainerContext.js";var p=t((function(t,p){var f=t.rowId,j=t.className,T=t.id,b=t["data-testid"],x=t.children,v=c().menuContainerRef,w=M().size,C=d(),I=C.hoveredRowId,R=C.setTableMenuHidden,E=C.setTableMenuShown,B=C.menuButtonPosition,h=C.onMouseOverRowMenu,N=C.onMouseLeaveRowMenu,L=n((function(){R()}),[R]),z=n((function(){E()}),[E]);return v.current&&I&&I===f?e.createElement(e.Fragment,null,a(e.createElement("div",{className:o(m.rowMenuContainer,l(m,w)),style:{top:B},onMouseEnter:h,onMouseLeave:N},e.createElement(s,{id:T,ref:p,className:o(m.tableMenu,j),size:"xs",onMenuHide:L,onMenuShow:z,"data-testid":b||r(u.TABLE_ROW_MENU,T)},e.createElement(i,null,x))),v.current)):null}));export{p as default};
2
2
  //# sourceMappingURL=TableRowMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableRowMenu.js","sources":["../../../../../../src/components/Table/TableRowMenu/TableRowMenu.tsx"],"sourcesContent":["import React, { forwardRef, useCallback } from \"react\";\nimport cx from \"classnames\";\nimport { getTestId } from \"../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../../tests/constants\";\nimport styles from \"./TableRowMenu.module.scss\";\nimport MenuButton from \"../../MenuButton/MenuButton\";\nimport { Menu } from \"../../Menu\";\nimport { createPortal } from \"react-dom\";\nimport { useTable } from \"../context/TableContext/TableContext\";\nimport { getStyle } from \"../../../helpers/typesciptCssModulesHelper\";\nimport { useTableRowMenu } from \"../context/TableRowMenuContext/TableRowMenuContext\";\nimport { useTableContainer } from \"../context/TableContainerContext/TableContainerContext\";\nimport { type TableMenuProps } from \"./TableRowMenu.types\";\n\nconst TableRowMenu = forwardRef(\n (\n { rowId, className, id, \"data-testid\": dataTestId, children }: TableMenuProps,\n ref: React.ForwardedRef<HTMLDivElement>\n ) => {\n const { menuContainerRef } = useTableContainer();\n const { size } = useTable();\n const {\n hoveredRowId,\n setTableMenuHidden,\n setTableMenuShown,\n menuButtonPosition,\n onMouseOverRowMenu,\n onMouseLeaveRowMenu\n } = useTableRowMenu();\n\n const onMenuHide = useCallback(() => {\n setTableMenuHidden();\n }, [setTableMenuHidden]);\n\n const onMenuShow = useCallback(() => {\n setTableMenuShown();\n }, [setTableMenuShown]);\n\n const shouldShowMenu = menuContainerRef.current && hoveredRowId && hoveredRowId === rowId;\n if (!shouldShowMenu) return null;\n\n return (\n <>\n {createPortal(\n <div\n className={cx(styles.rowMenuContainer, getStyle(styles, size))}\n style={{ top: menuButtonPosition }}\n onMouseEnter={onMouseOverRowMenu}\n onMouseLeave={onMouseLeaveRowMenu}\n >\n <MenuButton\n id={id}\n ref={ref}\n className={cx(styles.tableMenu, className)}\n size=\"xs\"\n onMenuHide={onMenuHide}\n onMenuShow={onMenuShow}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TABLE_ROW_MENU, id)}\n >\n <Menu>{children}</Menu>\n </MenuButton>\n </div>,\n menuContainerRef.current\n )}\n </>\n );\n }\n);\n\nexport default TableRowMenu;\n"],"names":["TableRowMenu","forwardRef","_ref","ref","rowId","className","id","dataTestId","children","menuContainerRef","useTableContainer","size","useTable","_useTableRowMenu","useTableRowMenu","hoveredRowId","setTableMenuHidden","setTableMenuShown","menuButtonPosition","onMouseOverRowMenu","onMouseLeaveRowMenu","onMenuHide","useCallback","onMenuShow","current","React","createElement","Fragment","createPortal","cx","styles","rowMenuContainer","getStyle","style","top","onMouseEnter","onMouseLeave","MenuButton","tableMenu","getTestId","ComponentDefaultTestId","TABLE_ROW_MENU","Menu"],"mappings":"65BAcMA,IAAAA,EAAeC,GACnB,SAAAC,EAEEC,GACE,IAFAC,EAAKF,EAALE,MAAOC,EAASH,EAATG,UAAWC,EAAEJ,EAAFI,GAAmBC,EAAUL,EAAzB,eAA2BM,EAAQN,EAARM,SAG3CC,EAAqBC,IAArBD,iBACAE,EAASC,IAATD,KACRE,EAOIC,IANFC,EAAYF,EAAZE,aACAC,EAAkBH,EAAlBG,mBACAC,EAAiBJ,EAAjBI,kBACAC,EAAkBL,EAAlBK,mBACAC,EAAkBN,EAAlBM,mBACAC,EAAmBP,EAAnBO,oBAGIC,EAAaC,GAAY,WAC7BN,GACF,GAAG,CAACA,IAEEO,EAAaD,GAAY,WAC7BL,GACF,GAAG,CAACA,IAGJ,OADuBR,EAAiBe,SAAWT,GAAgBA,IAAiBX,EAIlFqB,EAAAC,cAAAD,EAAAE,SAAA,KACGC,EACCH,uBACEpB,UAAWwB,EAAGC,EAAOC,iBAAkBC,EAASF,EAAQnB,IACxDsB,MAAO,CAAEC,IAAKhB,GACdiB,aAAchB,EACdiB,aAAchB,GAEdK,EAAAC,cAACW,EACC,CAAA/B,GAAIA,EACJH,IAAKA,EACLE,UAAWwB,EAAGC,EAAOQ,UAAWjC,GAChCM,KAAK,KACLU,WAAYA,EACZE,WAAYA,gBACChB,GAAcgC,EAAUC,EAAuBC,eAAgBnC,IAE5EmB,EAAAC,cAACgB,EAAI,KAAElC,KAGXC,EAAiBe,UAvBK,IA2B9B"}
1
+ {"version":3,"file":"TableRowMenu.js","sources":["../../../../../../src/components/Table/TableRowMenu/TableRowMenu.tsx"],"sourcesContent":["import React, { forwardRef, useCallback } from \"react\";\nimport cx from \"classnames\";\nimport { getTestId } from \"../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../../tests/constants\";\nimport styles from \"./TableRowMenu.module.scss\";\nimport MenuButton from \"../../MenuButton/MenuButton\";\nimport { Menu } from \"../../Menu\";\nimport { createPortal } from \"react-dom\";\nimport { useTable } from \"../context/TableContext/TableContext\";\nimport { getStyle } from \"@vibe/shared\";\nimport { useTableRowMenu } from \"../context/TableRowMenuContext/TableRowMenuContext\";\nimport { useTableContainer } from \"../context/TableContainerContext/TableContainerContext\";\nimport { type TableMenuProps } from \"./TableRowMenu.types\";\n\nconst TableRowMenu = forwardRef(\n (\n { rowId, className, id, \"data-testid\": dataTestId, children }: TableMenuProps,\n ref: React.ForwardedRef<HTMLDivElement>\n ) => {\n const { menuContainerRef } = useTableContainer();\n const { size } = useTable();\n const {\n hoveredRowId,\n setTableMenuHidden,\n setTableMenuShown,\n menuButtonPosition,\n onMouseOverRowMenu,\n onMouseLeaveRowMenu\n } = useTableRowMenu();\n\n const onMenuHide = useCallback(() => {\n setTableMenuHidden();\n }, [setTableMenuHidden]);\n\n const onMenuShow = useCallback(() => {\n setTableMenuShown();\n }, [setTableMenuShown]);\n\n const shouldShowMenu = menuContainerRef.current && hoveredRowId && hoveredRowId === rowId;\n if (!shouldShowMenu) return null;\n\n return (\n <>\n {createPortal(\n <div\n className={cx(styles.rowMenuContainer, getStyle(styles, size))}\n style={{ top: menuButtonPosition }}\n onMouseEnter={onMouseOverRowMenu}\n onMouseLeave={onMouseLeaveRowMenu}\n >\n <MenuButton\n id={id}\n ref={ref}\n className={cx(styles.tableMenu, className)}\n size=\"xs\"\n onMenuHide={onMenuHide}\n onMenuShow={onMenuShow}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TABLE_ROW_MENU, id)}\n >\n <Menu>{children}</Menu>\n </MenuButton>\n </div>,\n menuContainerRef.current\n )}\n </>\n );\n }\n);\n\nexport default TableRowMenu;\n"],"names":["TableRowMenu","forwardRef","_ref","ref","rowId","className","id","dataTestId","children","menuContainerRef","useTableContainer","size","useTable","_useTableRowMenu","useTableRowMenu","hoveredRowId","setTableMenuHidden","setTableMenuShown","menuButtonPosition","onMouseOverRowMenu","onMouseLeaveRowMenu","onMenuHide","useCallback","onMenuShow","current","React","createElement","Fragment","createPortal","cx","styles","rowMenuContainer","getStyle","style","top","onMouseEnter","onMouseLeave","MenuButton","tableMenu","getTestId","ComponentDefaultTestId","TABLE_ROW_MENU","Menu"],"mappings":"43BAcMA,IAAAA,EAAeC,GACnB,SAAAC,EAEEC,GACE,IAFAC,EAAKF,EAALE,MAAOC,EAASH,EAATG,UAAWC,EAAEJ,EAAFI,GAAmBC,EAAUL,EAAzB,eAA2BM,EAAQN,EAARM,SAG3CC,EAAqBC,IAArBD,iBACAE,EAASC,IAATD,KACRE,EAOIC,IANFC,EAAYF,EAAZE,aACAC,EAAkBH,EAAlBG,mBACAC,EAAiBJ,EAAjBI,kBACAC,EAAkBL,EAAlBK,mBACAC,EAAkBN,EAAlBM,mBACAC,EAAmBP,EAAnBO,oBAGIC,EAAaC,GAAY,WAC7BN,GACF,GAAG,CAACA,IAEEO,EAAaD,GAAY,WAC7BL,GACF,GAAG,CAACA,IAGJ,OADuBR,EAAiBe,SAAWT,GAAgBA,IAAiBX,EAIlFqB,EAAAC,cAAAD,EAAAE,SAAA,KACGC,EACCH,uBACEpB,UAAWwB,EAAGC,EAAOC,iBAAkBC,EAASF,EAAQnB,IACxDsB,MAAO,CAAEC,IAAKhB,GACdiB,aAAchB,EACdiB,aAAchB,GAEdK,EAAAC,cAACW,EACC,CAAA/B,GAAIA,EACJH,IAAKA,EACLE,UAAWwB,EAAGC,EAAOQ,UAAWjC,GAChCM,KAAK,KACLU,WAAYA,EACZE,WAAYA,gBACChB,GAAcgC,EAAUC,EAAuBC,eAAgBnC,IAE5EmB,EAAAC,cAACgB,EAAI,KAAElC,KAGXC,EAAiBe,UAvBK,IA2B9B"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as e,toConsumableArray as t}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import o from"classnames";import s,{forwardRef as r,useRef as a}from"react";import{noop as i}from"es-toolkit";import n from"../../../hooks/useMergeRef.js";import{getStyle as l}from"../../../helpers/typesciptCssModulesHelper.js";import{Icon as c}from"@vibe/icon/mockedClassNames";import{getTestId as d,ComponentDefaultTestId as m}from"../../../tests/testIds.js";import p from"./Tab.module.scss.js";import{Tooltip as f}from"@vibe/tooltip/mockedClassNames";import{ComponentVibeId as u}from"../../../tests/constants.js";import{keyCodes as v}from"../../../constants/keyCodes.js";import"../../../constants/sizes.js";var b=r((function(r,b){var y=r.className,k=r.tabInnerClassName,C=r.id,j=r.value,N=void 0===j?0:j,h=r.disabled,E=void 0!==h&&h,I=r.active,A=void 0!==I&&I,T=r.focus,g=void 0!==T&&T,P=r.stretchedUnderline,x=void 0!==P&&P,B=r.onClick,S=void 0===B?i:B,z=r.tooltipProps,D=void 0===z?{}:z,F=r.icon,H=r.iconType,M=r.iconSide,R=void 0===M?"left":M,U=r.children,_=r["data-testid"],w=r.tabIndex,K=r["aria-controls"],O=a(null),V=n(b,O);return s.createElement(f,Object.assign({},D,{content:D.content}),s.createElement("li",{ref:V,key:C,className:o(p.tabWrapper,y,e(e(e(e({},p.active,A),p.disabled,E),p.tabFocusVisibleInset,g),p.stretchedUnderline,x)),id:C,role:"tab","aria-selected":A,"aria-disabled":E,"aria-controls":K||void 0,tabIndex:w,"data-testid":_||d(m.TAB,C),"data-vibe":u.TAB,onClick:function(){return!E&&S(N)},onKeyDown:function(e){e.key!==v.ENTER&&e.key!==v.SPACE||(e.preventDefault(),!E&&S(N))}},s.createElement("div",{className:o(p.tabInner,k)},function(){if(!F)return U;var e=s.createElement(c,{"aria-hidden":!0,type:H,icon:F,className:o(p.tabIcon,l(p,R)),size:18,ignoreFocusStyle:!0}),r=s.Children.toArray(U);return"left"===R?[e].concat(t(r)):[].concat(t(r),[e])}())))}));export{b as default};
1
+ import{defineProperty as e,toConsumableArray as t}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import o from"classnames";import a,{forwardRef as r,useRef as i}from"react";import{noop as s}from"es-toolkit";import{useMergeRef as n,getStyle as c}from"@vibe/shared";import{Icon as l}from"@vibe/icon/mockedClassNames";import{getTestId as d,ComponentDefaultTestId as m}from"../../../tests/testIds.js";import p from"./Tab.module.scss.js";import{Tooltip as f}from"@vibe/tooltip/mockedClassNames";import{ComponentVibeId as v}from"../../../tests/constants.js";import{keyCodes as b}from"../../../constants/keyCodes.js";import"../../../constants/sizes.js";var u=r((function(r,u){var y=r.className,k=r.tabInnerClassName,C=r.id,N=r.value,j=void 0===N?0:N,E=r.disabled,I=void 0!==E&&E,h=r.active,A=void 0!==h&&h,T=r.focus,P=void 0!==T&&T,g=r.stretchedUnderline,x=void 0!==g&&g,B=r.onClick,S=void 0===B?s:B,z=r.tooltipProps,D=void 0===z?{}:z,F=r.icon,U=r.iconType,_=r.iconSide,w=void 0===_?"left":_,H=r.children,K=r["data-testid"],O=r.tabIndex,R=r["aria-controls"],V=i(null),W=n(u,V);return a.createElement(f,Object.assign({},D,{content:D.content}),a.createElement("li",{ref:W,key:C,className:o(p.tabWrapper,y,e(e(e(e({},p.active,A),p.disabled,I),p.tabFocusVisibleInset,P),p.stretchedUnderline,x)),id:C,role:"tab","aria-selected":A,"aria-disabled":I,"aria-controls":R||void 0,tabIndex:O,"data-testid":K||d(m.TAB,C),"data-vibe":v.TAB,onClick:function(){return!I&&S(j)},onKeyDown:function(e){e.key!==b.ENTER&&e.key!==b.SPACE||(e.preventDefault(),!I&&S(j))}},a.createElement("div",{className:o(p.tabInner,k)},function(){if(!F)return H;var e=a.createElement(l,{"aria-hidden":!0,type:U,icon:F,className:o(p.tabIcon,c(p,w)),size:18,ignoreFocusStyle:!0}),r=a.Children.toArray(H);return"left"===w?[e].concat(t(r)):[].concat(t(r),[e])}())))}));export{u as default};
2
2
  //# sourceMappingURL=Tab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.js","sources":["../../../../../../src/components/Tabs/Tab/Tab.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { type FC, forwardRef, type ReactElement, useRef } from \"react\";\nimport { noop as NOOP } from \"es-toolkit\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\nimport { getStyle } from \"../../../helpers/typesciptCssModulesHelper\";\nimport { Icon, type IconType, type SubIcon } from \"@vibe/icon\";\nimport type VibeComponentProps from \"../../../types/VibeComponentProps\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\nimport styles from \"./Tab.module.scss\";\nimport { Tooltip, type TooltipProps } from \"@vibe/tooltip\";\nimport { ComponentVibeId } from \"../../../tests/constants\";\nimport { keyCodes } from \"../../../constants\";\n\nexport interface TabProps extends VibeComponentProps {\n /**\n * Class name applied to the inner tab content.\n */\n tabInnerClassName?: string;\n /**\n * The index value of the tab.\n */\n value?: number;\n /**\n * If true, disables the tab.\n */\n disabled?: boolean;\n /**\n * If true, marks the tab as active.\n */\n active?: boolean;\n /**\n * If true, applies focus styles to the tab.\n */\n focus?: boolean;\n /**\n * If true, hides the individual tab border when using stretched underline.\n */\n stretchedUnderline?: boolean;\n /**\n * The icon displayed in the tab.\n */\n icon?: SubIcon;\n /**\n * The type of icon.\n */\n iconType?: IconType;\n /**\n * The position of the icon relative to the text.\n */\n iconSide?: string;\n /**\n * Callback fired when the tab is clicked.\n */\n onClick?: (value: number) => void;\n /**\n * Props passed to the tab's tooltip.\n */\n tooltipProps?: Partial<TooltipProps>;\n /**\n * The content displayed inside the tab.\n */\n children?: string | ReactElement | ReactElement[];\n /**\n * Tab index for focus management.\n */\n tabIndex?: number;\n /**\n * The id of the associated TabPanel for aria-controls attribute.\n */\n \"aria-controls\"?: string;\n}\n\nconst Tab: FC<TabProps> = forwardRef(\n (\n {\n className,\n tabInnerClassName,\n id,\n value = 0,\n disabled = false,\n active = false,\n focus = false,\n stretchedUnderline = false,\n onClick = NOOP,\n tooltipProps = {} as TooltipProps,\n icon,\n iconType,\n iconSide = \"left\",\n children,\n \"data-testid\": dataTestId,\n tabIndex,\n \"aria-controls\": ariaControls\n }: TabProps,\n ref\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n function renderIconAndChildren() {\n if (!icon) return children;\n\n const iconElement = (\n <Icon\n aria-hidden={true}\n type={iconType}\n icon={icon}\n className={cx(styles.tabIcon, getStyle(styles, iconSide))}\n size={18}\n ignoreFocusStyle\n />\n );\n\n const childrenArray = React.Children.toArray(children);\n\n if (iconSide === \"left\") {\n return [iconElement, ...childrenArray];\n }\n\n return [...childrenArray, iconElement];\n }\n\n function handleKeyDown(event: React.KeyboardEvent) {\n if (event.key === keyCodes.ENTER || event.key === keyCodes.SPACE) {\n event.preventDefault();\n !disabled && onClick(value);\n }\n }\n\n return (\n <Tooltip {...tooltipProps} content={tooltipProps.content}>\n <li\n ref={mergedRef}\n key={id}\n className={cx(styles.tabWrapper, className, {\n [styles.active]: active,\n [styles.disabled]: disabled,\n [styles.tabFocusVisibleInset]: focus,\n [styles.stretchedUnderline]: stretchedUnderline\n })}\n id={id}\n role=\"tab\"\n aria-selected={active}\n aria-disabled={disabled}\n aria-controls={ariaControls || undefined}\n tabIndex={tabIndex}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TAB, id)}\n data-vibe={ComponentVibeId.TAB}\n onClick={() => !disabled && onClick(value)}\n onKeyDown={handleKeyDown}\n >\n <div className={cx(styles.tabInner, tabInnerClassName)}>{renderIconAndChildren()}</div>\n </li>\n </Tooltip>\n );\n }\n);\n\nexport default Tab;\n"],"names":["Tab","forwardRef","_ref","ref","className","tabInnerClassName","id","_ref$value","value","_ref$disabled","disabled","_ref$active","active","_ref$focus","focus","_ref$stretchedUnderli","stretchedUnderline","_ref$onClick","onClick","NOOP","_ref$tooltipProps","tooltipProps","icon","iconType","_ref$iconSide","iconSide","children","dataTestId","tabIndex","ariaControls","componentRef","useRef","mergedRef","useMergeRef","React","createElement","Tooltip","Object","assign","content","key","cx","styles","tabWrapper","_defineProperty","tabFocusVisibleInset","role","undefined","getTestId","ComponentDefaultTestId","TAB","ComponentVibeId","onKeyDown","event","keyCodes","ENTER","SPACE","preventDefault","tabInner","iconElement","Icon","type","tabIcon","getStyle","size","ignoreFocusStyle","childrenArray","Children","toArray","concat","_toConsumableArray","renderIconAndChildren"],"mappings":"4sBAwEMA,IAAAA,EAAoBC,GACxB,SAAAC,EAoBEC,GACE,IAnBAC,EAASF,EAATE,UACAC,EAAiBH,EAAjBG,kBACAC,EAAEJ,EAAFI,GAAEC,EAAAL,EACFM,MAAAA,OAAQ,IAAHD,EAAG,EAACA,EAAAE,EAAAP,EACTQ,SAAAA,OAAW,IAAHD,GAAQA,EAAAE,EAAAT,EAChBU,OAAAA,OAAS,IAAHD,GAAQA,EAAAE,EAAAX,EACdY,MAAAA,OAAQ,IAAHD,GAAQA,EAAAE,EAAAb,EACbc,mBAAAA,OAAqB,IAAHD,GAAQA,EAAAE,EAAAf,EAC1BgB,QAAAA,OAAUC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAlB,EACdmB,aAAAA,OAAY,IAAAD,EAAG,CAAkB,EAAAA,EACjCE,EAAIpB,EAAJoB,KACAC,EAAQrB,EAARqB,SAAQC,EAAAtB,EACRuB,SAAAA,OAAW,IAAHD,EAAG,OAAMA,EACjBE,EAAQxB,EAARwB,SACeC,EAAUzB,EAAzB,eACA0B,EAAQ1B,EAAR0B,SACiBC,EAAY3B,EAA7B,iBAII4B,EAAeC,EAAO,MACtBC,EAAYC,EAAY9B,EAAK2B,GAgCnC,OACEI,EAACC,cAAAC,EAAYC,OAAAC,OAAA,CAAA,EAAAjB,GAAckB,QAASlB,EAAakB,UAC/CL,EAAAC,cAAA,KAAA,CACEhC,IAAK6B,EACLQ,IAAKlC,EACLF,UAAWqC,EAAGC,EAAOC,WAAYvC,EAASwC,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EACvCF,EAAO9B,OAASA,GAChB8B,EAAOhC,SAAWA,GAClBgC,EAAOG,qBAAuB/B,GAC9B4B,EAAO1B,mBAAqBA,IAE/BV,GAAIA,EACJwC,KAAK,MAAK,gBACKlC,EAAM,gBACNF,EACA,gBAAAmB,QAAgBkB,EAC/BnB,SAAUA,EAAQ,cACLD,GAAcqB,EAAUC,EAAuBC,IAAK5C,GAAG,YACzD6C,EAAgBD,IAC3BhC,QAAS,WAAA,OAAOR,GAAYQ,EAAQV,EAAM,EAC1C4C,UA3BN,SAAuBC,GACjBA,EAAMb,MAAQc,EAASC,OAASF,EAAMb,MAAQc,EAASE,QACzDH,EAAMI,kBACL/C,GAAYQ,EAAQV,GAEzB,GAwBM0B,EAAAC,cAAA,MAAA,CAAK/B,UAAWqC,EAAGC,EAAOgB,SAAUrD,IApD1C,WACE,IAAKiB,EAAM,OAAOI,EAElB,IAAMiC,EACJzB,EAACC,cAAAyB,kBACc,EACbC,KAAMtC,EACND,KAAMA,EACNlB,UAAWqC,EAAGC,EAAOoB,QAASC,EAASrB,EAAQjB,IAC/CuC,KAAM,GACNC,kBAAgB,IAIdC,EAAgBhC,EAAMiC,SAASC,QAAQ1C,GAE7C,MAAiB,SAAbD,EACF,CAAQkC,GAAWU,OAAAC,EAAKJ,IAG1B,GAAAG,OAAAC,EAAWJ,IAAeP,GAC5B,CA+B+DY,KAIjE"}
1
+ {"version":3,"file":"Tab.js","sources":["../../../../../../src/components/Tabs/Tab/Tab.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { type FC, forwardRef, type ReactElement, useRef } from \"react\";\nimport { noop as NOOP } from \"es-toolkit\";\nimport { useMergeRef, getStyle } from \"@vibe/shared\";\n\nimport { Icon, type IconType, type SubIcon } from \"@vibe/icon\";\nimport type VibeComponentProps from \"../../../types/VibeComponentProps\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\nimport styles from \"./Tab.module.scss\";\nimport { Tooltip, type TooltipProps } from \"@vibe/tooltip\";\nimport { ComponentVibeId } from \"../../../tests/constants\";\nimport { keyCodes } from \"../../../constants\";\n\nexport interface TabProps extends VibeComponentProps {\n /**\n * Class name applied to the inner tab content.\n */\n tabInnerClassName?: string;\n /**\n * The index value of the tab.\n */\n value?: number;\n /**\n * If true, disables the tab.\n */\n disabled?: boolean;\n /**\n * If true, marks the tab as active.\n */\n active?: boolean;\n /**\n * If true, applies focus styles to the tab.\n */\n focus?: boolean;\n /**\n * If true, hides the individual tab border when using stretched underline.\n */\n stretchedUnderline?: boolean;\n /**\n * The icon displayed in the tab.\n */\n icon?: SubIcon;\n /**\n * The type of icon.\n */\n iconType?: IconType;\n /**\n * The position of the icon relative to the text.\n */\n iconSide?: string;\n /**\n * Callback fired when the tab is clicked.\n */\n onClick?: (value: number) => void;\n /**\n * Props passed to the tab's tooltip.\n */\n tooltipProps?: Partial<TooltipProps>;\n /**\n * The content displayed inside the tab.\n */\n children?: string | ReactElement | ReactElement[];\n /**\n * Tab index for focus management.\n */\n tabIndex?: number;\n /**\n * The id of the associated TabPanel for aria-controls attribute.\n */\n \"aria-controls\"?: string;\n}\n\nconst Tab: FC<TabProps> = forwardRef(\n (\n {\n className,\n tabInnerClassName,\n id,\n value = 0,\n disabled = false,\n active = false,\n focus = false,\n stretchedUnderline = false,\n onClick = NOOP,\n tooltipProps = {} as TooltipProps,\n icon,\n iconType,\n iconSide = \"left\",\n children,\n \"data-testid\": dataTestId,\n tabIndex,\n \"aria-controls\": ariaControls\n }: TabProps,\n ref\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n function renderIconAndChildren() {\n if (!icon) return children;\n\n const iconElement = (\n <Icon\n aria-hidden={true}\n type={iconType}\n icon={icon}\n className={cx(styles.tabIcon, getStyle(styles, iconSide))}\n size={18}\n ignoreFocusStyle\n />\n );\n\n const childrenArray = React.Children.toArray(children);\n\n if (iconSide === \"left\") {\n return [iconElement, ...childrenArray];\n }\n\n return [...childrenArray, iconElement];\n }\n\n function handleKeyDown(event: React.KeyboardEvent) {\n if (event.key === keyCodes.ENTER || event.key === keyCodes.SPACE) {\n event.preventDefault();\n !disabled && onClick(value);\n }\n }\n\n return (\n <Tooltip {...tooltipProps} content={tooltipProps.content}>\n <li\n ref={mergedRef}\n key={id}\n className={cx(styles.tabWrapper, className, {\n [styles.active]: active,\n [styles.disabled]: disabled,\n [styles.tabFocusVisibleInset]: focus,\n [styles.stretchedUnderline]: stretchedUnderline\n })}\n id={id}\n role=\"tab\"\n aria-selected={active}\n aria-disabled={disabled}\n aria-controls={ariaControls || undefined}\n tabIndex={tabIndex}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TAB, id)}\n data-vibe={ComponentVibeId.TAB}\n onClick={() => !disabled && onClick(value)}\n onKeyDown={handleKeyDown}\n >\n <div className={cx(styles.tabInner, tabInnerClassName)}>{renderIconAndChildren()}</div>\n </li>\n </Tooltip>\n );\n }\n);\n\nexport default Tab;\n"],"names":["Tab","forwardRef","_ref","ref","className","tabInnerClassName","id","_ref$value","value","_ref$disabled","disabled","_ref$active","active","_ref$focus","focus","_ref$stretchedUnderli","stretchedUnderline","_ref$onClick","onClick","NOOP","_ref$tooltipProps","tooltipProps","icon","iconType","_ref$iconSide","iconSide","children","dataTestId","tabIndex","ariaControls","componentRef","useRef","mergedRef","useMergeRef","React","createElement","Tooltip","Object","assign","content","key","cx","styles","tabWrapper","_defineProperty","tabFocusVisibleInset","role","undefined","getTestId","ComponentDefaultTestId","TAB","ComponentVibeId","onKeyDown","event","keyCodes","ENTER","SPACE","preventDefault","tabInner","iconElement","Icon","type","tabIcon","getStyle","size","ignoreFocusStyle","childrenArray","Children","toArray","concat","_toConsumableArray","renderIconAndChildren"],"mappings":"+oBAwEMA,IAAAA,EAAoBC,GACxB,SAAAC,EAoBEC,GACE,IAnBAC,EAASF,EAATE,UACAC,EAAiBH,EAAjBG,kBACAC,EAAEJ,EAAFI,GAAEC,EAAAL,EACFM,MAAAA,OAAQ,IAAHD,EAAG,EAACA,EAAAE,EAAAP,EACTQ,SAAAA,OAAW,IAAHD,GAAQA,EAAAE,EAAAT,EAChBU,OAAAA,OAAS,IAAHD,GAAQA,EAAAE,EAAAX,EACdY,MAAAA,OAAQ,IAAHD,GAAQA,EAAAE,EAAAb,EACbc,mBAAAA,OAAqB,IAAHD,GAAQA,EAAAE,EAAAf,EAC1BgB,QAAAA,OAAUC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAlB,EACdmB,aAAAA,OAAY,IAAAD,EAAG,CAAkB,EAAAA,EACjCE,EAAIpB,EAAJoB,KACAC,EAAQrB,EAARqB,SAAQC,EAAAtB,EACRuB,SAAAA,OAAW,IAAHD,EAAG,OAAMA,EACjBE,EAAQxB,EAARwB,SACeC,EAAUzB,EAAzB,eACA0B,EAAQ1B,EAAR0B,SACiBC,EAAY3B,EAA7B,iBAII4B,EAAeC,EAAO,MACtBC,EAAYC,EAAY9B,EAAK2B,GAgCnC,OACEI,EAACC,cAAAC,EAAYC,OAAAC,OAAA,CAAA,EAAAjB,GAAckB,QAASlB,EAAakB,UAC/CL,EAAAC,cAAA,KAAA,CACEhC,IAAK6B,EACLQ,IAAKlC,EACLF,UAAWqC,EAAGC,EAAOC,WAAYvC,EAASwC,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EACvCF,EAAO9B,OAASA,GAChB8B,EAAOhC,SAAWA,GAClBgC,EAAOG,qBAAuB/B,GAC9B4B,EAAO1B,mBAAqBA,IAE/BV,GAAIA,EACJwC,KAAK,MAAK,gBACKlC,EAAM,gBACNF,EACA,gBAAAmB,QAAgBkB,EAC/BnB,SAAUA,EAAQ,cACLD,GAAcqB,EAAUC,EAAuBC,IAAK5C,GAAG,YACzD6C,EAAgBD,IAC3BhC,QAAS,WAAA,OAAOR,GAAYQ,EAAQV,EAAM,EAC1C4C,UA3BN,SAAuBC,GACjBA,EAAMb,MAAQc,EAASC,OAASF,EAAMb,MAAQc,EAASE,QACzDH,EAAMI,kBACL/C,GAAYQ,EAAQV,GAEzB,GAwBM0B,EAAAC,cAAA,MAAA,CAAK/B,UAAWqC,EAAGC,EAAOgB,SAAUrD,IApD1C,WACE,IAAKiB,EAAM,OAAOI,EAElB,IAAMiC,EACJzB,EAACC,cAAAyB,kBACc,EACbC,KAAMtC,EACND,KAAMA,EACNlB,UAAWqC,EAAGC,EAAOoB,QAASC,EAASrB,EAAQjB,IAC/CuC,KAAM,GACNC,kBAAgB,IAIdC,EAAgBhC,EAAMiC,SAASC,QAAQ1C,GAE7C,MAAiB,SAAbD,EACF,CAAQkC,GAAWU,OAAAC,EAAKJ,IAG1B,GAAAG,OAAAC,EAAWJ,IAAeP,GAC5B,CA+B+DY,KAIjE"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e,defineProperty as r}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import t from"classnames";import{camelCase as n}from"es-toolkit";import o,{forwardRef as i,useRef as s,useState as a,useEffect as l,useMemo as d,useCallback as c}from"react";import u from"../../../hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.js";import m from"../../../hooks/useMergeRef.js";import f from"../../../hooks/usePrevious/index.js";import{NOOP as p}from"../../../utils/function-utils.js";import{getTestId as v,ComponentDefaultTestId as b}from"../../../tests/testIds.js";import{getStyle as h}from"../../../helpers/typesciptCssModulesHelper.js";import I from"./TabList.module.scss.js";var C=i((function(i,C){var g=i.className,N=i.id,T=i.onTabChange,j=void 0===T?p:T,y=i.activeTabId,k=void 0===y?0:y,L=i.tabType,x=void 0===L?"Compact":L,A=i.size,E=i.stretchedUnderline,P=void 0!==E&&E,B=i.tabPanelIds,S=void 0===B?[]:B,U=i.children,_=i["data-testid"],G=s(null),H=m(C,G),K=s({}),M=a(k),O=e(M,2),W=O[0],w=O[1],z=f(k),R=f(W);l((function(){k!==z&&k!==W&&w(k)}),[k,z,W,w]),l((function(){var e;void 0!==R&&R!==W&&K.current[W]&&(null===(e=K.current[W])||void 0===e||e.focus())}),[W,R]);var q=d((function(){var e=new Set;return o.Children.forEach(U,(function(r,t){r.props.disabled&&e.add(t)})),e}),[U]),D=c((function(e){q.has(e)||(w(e),j&&j(e))}),[j,q]),F=c((function(e,r){var t,n=null===(t=U[r].props)||void 0===t?void 0:t.onClick;q.has(r)||(n&&n(r),D(r))}),[U,q,D]),J=c((function(e){return U[e]}),[U]),Q=d((function(){return Array.from(q)}),[q]),V=s(),X=u({ref:V,numberOfItemsInLine:null==U?void 0:U.length,itemsCount:null==U?void 0:U.length,getItemByIndex:J,onItemClicked:F,disabledIndexes:Q,circularNavigation:!0}),Y=X.activeIndex,Z=X.onSelectionAction,$=f(Y);l((function(){var e;void 0!==Y&&Y>=0&&$!==Y&&K.current[Y]&&(null===(e=K.current[Y])||void 0===e||e.focus())}),[Y,$]);var ee=d((function(){return o.Children.map(U,(function(e,r){var n=W===r,i=void 0===Y||0>Y?n:Y===r;return o.cloneElement(e,{value:r,active:n,focus:Y===r,onClick:Z,stretchedUnderline:P,className:t(I.tabListTabWrapper,e.props.className),tabInnerClassName:t(I.tabListTabInner,e.props.tabInnerClassName),tabIndex:i?0:-1,"aria-controls":S[r],ref:function(e){K.current[r]=e}})}))}),[U,W,Y,Z,P,S,N]);return o.createElement("div",{ref:H,className:t(I.tabsWrapper,g,[h(I,n(x))],r({},I.stretchedUnderline,P)),id:N,"data-testid":_||v(b.TAB_LIST,N)},o.createElement("ul",{ref:V,className:t(I.tabsList,[h(I,A)]),role:"tablist"},ee))}));Object.assign(C,{isTabList:!0});export{C as default};
1
+ import{slicedToArray as e,defineProperty as r}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import t from"classnames";import{camelCase as n}from"es-toolkit";import i,{forwardRef as a,useRef as o,useState as s,useEffect as l,useMemo as d,useCallback as c}from"react";import u from"../../../hooks/useGridKeyboardNavigation/useGridKeyboardNavigation.js";import{useMergeRef as m,getStyle as f,NOOP as v}from"@vibe/shared";import p from"../../../hooks/usePrevious/index.js";import{getTestId as b,ComponentDefaultTestId as h}from"../../../tests/testIds.js";import I from"./TabList.module.scss.js";var C=a((function(a,C){var N=a.className,T=a.id,g=a.onTabChange,y=void 0===g?v:g,L=a.activeTabId,j=void 0===L?0:L,k=a.tabType,x=void 0===k?"Compact":k,A=a.size,E=a.stretchedUnderline,P=void 0!==E&&E,B=a.tabPanelIds,S=void 0===B?[]:B,U=a.children,_=a["data-testid"],G=o(null),K=m(C,G),O=o({}),W=s(j),w=e(W,2),z=w[0],H=w[1],q=p(j),D=p(z);l((function(){j!==q&&j!==z&&H(j)}),[j,q,z,H]),l((function(){var e;void 0!==D&&D!==z&&O.current[z]&&(null===(e=O.current[z])||void 0===e||e.focus())}),[z,D]);var F=d((function(){var e=new Set;return i.Children.forEach(U,(function(r,t){r.props.disabled&&e.add(t)})),e}),[U]),J=c((function(e){F.has(e)||(H(e),y&&y(e))}),[y,F]),M=c((function(e,r){var t,n=null===(t=U[r].props)||void 0===t?void 0:t.onClick;F.has(r)||(n&&n(r),J(r))}),[U,F,J]),Q=c((function(e){return U[e]}),[U]),R=d((function(){return Array.from(F)}),[F]),V=o(),X=u({ref:V,numberOfItemsInLine:null==U?void 0:U.length,itemsCount:null==U?void 0:U.length,getItemByIndex:Q,onItemClicked:M,disabledIndexes:R,circularNavigation:!0}),Y=X.activeIndex,Z=X.onSelectionAction,$=p(Y);l((function(){var e;void 0!==Y&&Y>=0&&$!==Y&&O.current[Y]&&(null===(e=O.current[Y])||void 0===e||e.focus())}),[Y,$]);var ee=d((function(){return i.Children.map(U,(function(e,r){var n=z===r,a=void 0===Y||0>Y?n:Y===r;return i.cloneElement(e,{value:r,active:n,focus:Y===r,onClick:Z,stretchedUnderline:P,className:t(I.tabListTabWrapper,e.props.className),tabInnerClassName:t(I.tabListTabInner,e.props.tabInnerClassName),tabIndex:a?0:-1,"aria-controls":S[r],ref:function(e){O.current[r]=e}})}))}),[U,z,Y,Z,P,S,T]);return i.createElement("div",{ref:K,className:t(I.tabsWrapper,N,[f(I,n(x))],r({},I.stretchedUnderline,P)),id:T,"data-testid":_||b(h.TAB_LIST,T)},i.createElement("ul",{ref:V,className:t(I.tabsList,[f(I,A)]),role:"tablist"},ee))}));Object.assign(C,{isTabList:!0});export{C as default};
2
2
  //# sourceMappingURL=TabList.js.map