@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":"Info.js","sources":["../../../../../src/components/Info/Info.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useRef, useState } from \"react\";\nimport { Info as InfoIcon } from \"@vibe/icons\";\nimport { IconButton } from \"@vibe/icon-button\";\nimport { Dialog, type DialogEvent } from \"@vibe/dialog\";\nimport { InfoDialogContent } from \"./components\";\nimport { type InfoProps } from \"./Info.types\";\nimport { ComponentDefaultTestId, ComponentVibeId } from \"../../tests/constants\";\nimport { getTestId } from \"../../tests/test-ids-utils\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\n\nconst Info = forwardRef(\n (\n {\n id,\n className,\n title,\n body,\n link,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n position = \"bottom-start\",\n disabled = false,\n onDialogShow,\n onDialogHide,\n hideButtonTooltip,\n dialogClassName,\n containerSelector,\n \"data-testid\": dataTestId\n }: InfoProps,\n ref: React.ForwardedRef<HTMLButtonElement>\n ) => {\n const iconButtonRef = useRef<HTMLButtonElement>(null);\n const mergedRef = useMergeRef(ref, iconButtonRef);\n const dialogContentRef = useRef<HTMLDivElement>(null);\n\n const [isOpen, setIsOpen] = useState(false);\n\n const dialogId = id ? `${id}-dialog` : undefined;\n\n const handleDialogShow = useCallback(() => {\n setIsOpen(true);\n onDialogShow?.();\n requestAnimationFrame(() => {\n dialogContentRef.current?.focus();\n });\n }, [onDialogShow]);\n\n const handleDialogHide = useCallback(\n (e: DialogEvent) => {\n setIsOpen(false);\n onDialogHide?.();\n if ((e as React.KeyboardEvent).key === \"Escape\") {\n iconButtonRef.current?.focus();\n }\n },\n [onDialogHide]\n );\n\n return (\n <Dialog\n id={dialogId}\n disable={disabled}\n position={position}\n moveBy={{ main: 4, secondary: 0 }}\n showTrigger={[\"click\"]}\n hideTrigger={[\"click\", \"clickoutside\", \"esckey\"]}\n onDialogDidShow={handleDialogShow}\n onDialogDidHide={handleDialogHide}\n containerSelector={containerSelector}\n content={\n <InfoDialogContent\n ref={dialogContentRef}\n id={dialogId}\n title={title}\n body={body}\n link={link}\n className={dialogClassName}\n />\n }\n hideWhenReferenceHidden\n >\n <IconButton\n ref={mergedRef}\n id={id}\n className={className}\n icon={InfoIcon}\n size=\"xs\"\n kind=\"tertiary\"\n active={isOpen}\n disabled={disabled}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-controls={dialogId}\n aria-haspopup=\"dialog\"\n aria-expanded={isOpen}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.INFO, id)}\n data-vibe={ComponentVibeId.INFO}\n hideTooltip={hideButtonTooltip}\n />\n </Dialog>\n );\n }\n);\n\nexport default Info;\n"],"names":["Info","forwardRef","_ref","ref","id","className","title","body","link","ariaLabel","ariaLabelledby","_ref$position","position","_ref$disabled","disabled","onDialogShow","onDialogHide","hideButtonTooltip","dialogClassName","containerSelector","dataTestId","iconButtonRef","useRef","mergedRef","useMergeRef","dialogContentRef","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","dialogId","concat","undefined","handleDialogShow","useCallback","requestAnimationFrame","_a","current","focus","handleDialogHide","e","key","React","createElement","Dialog","disable","moveBy","main","secondary","showTrigger","hideTrigger","onDialogDidShow","onDialogDidHide","content","InfoDialogContent","hideWhenReferenceHidden","IconButton","icon","InfoIcon","size","kind","active","getTestId","ComponentDefaultTestId","INFO","ComponentVibeId","hideTooltip"],"mappings":"yvBAUMA,IAAAA,EAAOC,GACX,SAAAC,EAkBEC,GACE,IAjBAC,EAAEF,EAAFE,GACAC,EAASH,EAATG,UACAC,EAAKJ,EAALI,MACAC,EAAIL,EAAJK,KACAC,EAAIN,EAAJM,KACcC,EAASP,EAAvB,cACmBQ,EAAcR,EAAjC,mBAAiBS,EAAAT,EACjBU,SAAAA,OAAW,IAAHD,EAAG,eAAcA,EAAAE,EAAAX,EACzBY,SAAAA,OAAW,IAAHD,GAAQA,EAChBE,EAAYb,EAAZa,aACAC,EAAYd,EAAZc,aACAC,EAAiBf,EAAjBe,kBACAC,EAAehB,EAAfgB,gBACAC,EAAiBjB,EAAjBiB,kBACeC,EAAUlB,EAAzB,eAIImB,EAAgBC,EAA0B,MAC1CC,EAAYC,EAAYrB,EAAKkB,GAC7BI,EAAmBH,EAAuB,MAEhDI,EAA4BC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAApCI,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAElBI,EAAW5B,EAAE,GAAA6B,OAAM7B,kBAAc8B,EAEjCC,EAAmBC,GAAY,WACnCL,GAAU,GACVhB,SAAAA,IACAsB,uBAAsB,iBACM,QAA1BC,EAAAb,EAAiBc,eAAS,IAAAD,GAAAA,EAAAE,OAC5B,GACF,GAAG,CAACzB,IAEE0B,EAAmBL,GACvB,SAACM,SACCX,GAAU,GACVf,SAAAA,IACuC,WAAlC0B,EAA0BC,MACN,QAAvBL,EAAAjB,EAAckB,eAAS,IAAAD,GAAAA,EAAAE,QAE3B,GACA,CAACxB,IAGH,OACE4B,EAACC,cAAAC,GACC1C,GAAI4B,EACJe,QAASjC,EACTF,SAAUA,EACVoC,OAAQ,CAAEC,KAAM,EAAGC,UAAW,GAC9BC,YAAa,CAAC,SACdC,YAAa,CAAC,QAAS,eAAgB,UACvCC,gBAAiBlB,EACjBmB,gBAAiBb,EACjBtB,kBAAmBA,EACnBoC,QACEX,EAAAC,cAACW,EACC,CAAArD,IAAKsB,EACLrB,GAAI4B,EACJ1B,MAAOA,EACPC,KAAMA,EACNC,KAAMA,EACNH,UAAWa,IAGfuC,yBAAuB,GAEvBb,EAAAC,cAACa,EAAU,CACTvD,IAAKoB,EACLnB,GAAIA,EACJC,UAAWA,EACXsD,KAAMC,EACNC,KAAK,KACLC,KAAK,WACLC,OAAQjC,EACRhB,SAAUA,EAAQ,aACNL,EAAS,kBACJC,EAAc,gBAChBsB,EAAQ,gBACT,SAAQ,gBACPF,EAAM,cACRV,GAAc4C,EAAUC,EAAuBC,KAAM9D,GAAG,YAC1D+D,EAAgBD,KAC3BE,YAAanD,IAIrB"}
1
+ {"version":3,"file":"Info.js","sources":["../../../../../src/components/Info/Info.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useRef, useState } from \"react\";\nimport { Info as InfoIcon } from \"@vibe/icons\";\nimport { IconButton } from \"@vibe/icon-button\";\nimport { Dialog, type DialogEvent } from \"@vibe/dialog\";\nimport { InfoDialogContent } from \"./components\";\nimport { type InfoProps } from \"./Info.types\";\nimport { ComponentDefaultTestId, ComponentVibeId } from \"../../tests/constants\";\nimport { getTestId } from \"../../tests/test-ids-utils\";\nimport { useMergeRef } from \"@vibe/shared\";\n\nconst Info = forwardRef(\n (\n {\n id,\n className,\n title,\n body,\n link,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n position = \"bottom-start\",\n disabled = false,\n onDialogShow,\n onDialogHide,\n hideButtonTooltip,\n dialogClassName,\n containerSelector,\n \"data-testid\": dataTestId\n }: InfoProps,\n ref: React.ForwardedRef<HTMLButtonElement>\n ) => {\n const iconButtonRef = useRef<HTMLButtonElement>(null);\n const mergedRef = useMergeRef(ref, iconButtonRef);\n const dialogContentRef = useRef<HTMLDivElement>(null);\n\n const [isOpen, setIsOpen] = useState(false);\n\n const dialogId = id ? `${id}-dialog` : undefined;\n\n const handleDialogShow = useCallback(() => {\n setIsOpen(true);\n onDialogShow?.();\n requestAnimationFrame(() => {\n dialogContentRef.current?.focus();\n });\n }, [onDialogShow]);\n\n const handleDialogHide = useCallback(\n (e: DialogEvent) => {\n setIsOpen(false);\n onDialogHide?.();\n if ((e as React.KeyboardEvent).key === \"Escape\") {\n iconButtonRef.current?.focus();\n }\n },\n [onDialogHide]\n );\n\n return (\n <Dialog\n id={dialogId}\n disable={disabled}\n position={position}\n moveBy={{ main: 4, secondary: 0 }}\n showTrigger={[\"click\"]}\n hideTrigger={[\"click\", \"clickoutside\", \"esckey\"]}\n onDialogDidShow={handleDialogShow}\n onDialogDidHide={handleDialogHide}\n containerSelector={containerSelector}\n content={\n <InfoDialogContent\n ref={dialogContentRef}\n id={dialogId}\n title={title}\n body={body}\n link={link}\n className={dialogClassName}\n />\n }\n hideWhenReferenceHidden\n >\n <IconButton\n ref={mergedRef}\n id={id}\n className={className}\n icon={InfoIcon}\n size=\"xs\"\n kind=\"tertiary\"\n active={isOpen}\n disabled={disabled}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-controls={dialogId}\n aria-haspopup=\"dialog\"\n aria-expanded={isOpen}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.INFO, id)}\n data-vibe={ComponentVibeId.INFO}\n hideTooltip={hideButtonTooltip}\n />\n </Dialog>\n );\n }\n);\n\nexport default Info;\n"],"names":["Info","forwardRef","_ref","ref","id","className","title","body","link","ariaLabel","ariaLabelledby","_ref$position","position","_ref$disabled","disabled","onDialogShow","onDialogHide","hideButtonTooltip","dialogClassName","containerSelector","dataTestId","iconButtonRef","useRef","mergedRef","useMergeRef","dialogContentRef","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","dialogId","concat","undefined","handleDialogShow","useCallback","requestAnimationFrame","_a","current","focus","handleDialogHide","e","key","React","createElement","Dialog","disable","moveBy","main","secondary","showTrigger","hideTrigger","onDialogDidShow","onDialogDidHide","content","InfoDialogContent","hideWhenReferenceHidden","IconButton","icon","InfoIcon","size","kind","active","getTestId","ComponentDefaultTestId","INFO","ComponentVibeId","hideTooltip"],"mappings":"0vBAUMA,IAAAA,EAAOC,GACX,SAAAC,EAkBEC,GACE,IAjBAC,EAAEF,EAAFE,GACAC,EAASH,EAATG,UACAC,EAAKJ,EAALI,MACAC,EAAIL,EAAJK,KACAC,EAAIN,EAAJM,KACcC,EAASP,EAAvB,cACmBQ,EAAcR,EAAjC,mBAAiBS,EAAAT,EACjBU,SAAAA,OAAW,IAAHD,EAAG,eAAcA,EAAAE,EAAAX,EACzBY,SAAAA,OAAW,IAAHD,GAAQA,EAChBE,EAAYb,EAAZa,aACAC,EAAYd,EAAZc,aACAC,EAAiBf,EAAjBe,kBACAC,EAAehB,EAAfgB,gBACAC,EAAiBjB,EAAjBiB,kBACeC,EAAUlB,EAAzB,eAIImB,EAAgBC,EAA0B,MAC1CC,EAAYC,EAAYrB,EAAKkB,GAC7BI,EAAmBH,EAAuB,MAEhDI,EAA4BC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAApCI,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAElBI,EAAW5B,EAAE,GAAA6B,OAAM7B,kBAAc8B,EAEjCC,EAAmBC,GAAY,WACnCL,GAAU,GACVhB,SAAAA,IACAsB,uBAAsB,iBACM,QAA1BC,EAAAb,EAAiBc,eAAS,IAAAD,GAAAA,EAAAE,OAC5B,GACF,GAAG,CAACzB,IAEE0B,EAAmBL,GACvB,SAACM,SACCX,GAAU,GACVf,SAAAA,IACuC,WAAlC0B,EAA0BC,MACN,QAAvBL,EAAAjB,EAAckB,eAAS,IAAAD,GAAAA,EAAAE,QAE3B,GACA,CAACxB,IAGH,OACE4B,EAACC,cAAAC,GACC1C,GAAI4B,EACJe,QAASjC,EACTF,SAAUA,EACVoC,OAAQ,CAAEC,KAAM,EAAGC,UAAW,GAC9BC,YAAa,CAAC,SACdC,YAAa,CAAC,QAAS,eAAgB,UACvCC,gBAAiBlB,EACjBmB,gBAAiBb,EACjBtB,kBAAmBA,EACnBoC,QACEX,EAAAC,cAACW,EACC,CAAArD,IAAKsB,EACLrB,GAAI4B,EACJ1B,MAAOA,EACPC,KAAMA,EACNC,KAAMA,EACNH,UAAWa,IAGfuC,yBAAuB,GAEvBb,EAAAC,cAACa,EAAU,CACTvD,IAAKoB,EACLnB,GAAIA,EACJC,UAAWA,EACXsD,KAAMC,EACNC,KAAK,KACLC,KAAK,WACLC,OAAQjC,EACRhB,SAAUA,EAAQ,aACNL,EAAS,kBACJC,EAAc,gBAChBsB,EAAQ,gBACT,SAAQ,gBACPF,EAAM,cACRV,GAAc4C,EAAUC,EAAuBC,KAAM9D,GAAG,YAC1D+D,EAAgBD,KAC3BE,YAAanD,IAIrB"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e,defineProperty as r}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{camelCase as t}from"es-toolkit";import a from"classnames";import{getTestId as o,ComponentDefaultTestId as l}from"../../tests/testIds.js";import{getStyle as s}from"../../helpers/typesciptCssModulesHelper.js";import i,{forwardRef as n,useRef as m,useState as c,useMemo as p,useCallback as d,useEffect as f}from"react";import{Text as u}from"@vibe/typography/mockedClassNames";import b from"./Leg.js";import{contentColors as v}from"../../utils/colors-vars-map.js";import{useClickableProps as k}from"@vibe/clickable/mockedClassNames";import j from"../../hooks/useMergeRef.js";import y from"./Label.module.scss.js";import L from"./LabelCelebrationAnimation.js";import{mapSizesToTextSize as g}from"./LabelConstants.js";import{ComponentVibeId as C}from"../../tests/constants.js";var E=n((function(n,E){var N=n.className,h=n.labelClassName,A=n.kind,x=void 0===A?"fill":A,B=n.color,I=void 0===B?"primary":B,P=n.text,H=void 0===P?"":P,M=n.isLegIncluded,T=void 0!==M&&M,W=n.id,_=n["data-testid"],w=n.onClick,z=n.celebrationAnimation,D=n.size,O=void 0===D?"medium":D,R=m(null),q=j(E,R),F=c(z),G=e(F,2),J=G[0],K=G[1],Q=!!w,S=p((function(){return a(y.label,s(y,t("kind-"+x)),s(y,t("color-"+I)),r(r(r({},y.withLeg,T),y.clickable,Q),y.small,"small"===O),h)}),[x,I,T,h,Q,O]),U=p((function(){if(v.includes(I))return"line"===x?{color:"var(--color-".concat(I,")")}:{backgroundColor:"var(--color-".concat(I,")")}}),[I,x]),V=d((function(e){w&&(e.preventDefault(),w(e))}),[w]),X=k({onClick:V,id:W,"aria-hidden":!1,"aria-haspopup":!1,"aria-expanded":!1},R);f((function(){K(z)}),[z]);var Y=p((function(){return i.createElement("span",Object.assign({},Q&&X,{className:a(r({},y.clickableWrapper,Q),N),"data-testid":_||o(l.LABEL,W),"data-vibe":C.LABEL,ref:q}),i.createElement(u,{style:U,element:"span",type:g[O],className:S,color:"dark"===I?"onInverted":"onPrimary","data-celebration-text":J},i.createElement(u,{element:"span",type:g[O],color:"inherit",className:a(r({},y.smallText,"small"===O))},H),i.createElement("span",{className:a(y.legWrapper)},T?i.createElement(b,null):null)))}),[Q,X,N,_,W,q,S,J,H,T,O,U,I]);return J&&"line"===x?i.createElement(L,{onAnimationEnd:function(){return K(!1)}},Y):Y}));export{E as default};
1
+ import{slicedToArray as e,defineProperty as a}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{camelCase as r}from"es-toolkit";import t from"classnames";import{getTestId as o,ComponentDefaultTestId as l}from"../../tests/testIds.js";import{useMergeRef as i,getStyle as n}from"@vibe/shared";import s,{forwardRef as m,useRef as c,useState as p,useMemo as d,useCallback as f,useEffect as u}from"react";import{Text as b}from"@vibe/typography/mockedClassNames";import v from"./Leg.js";import{contentColors as k}from"../../utils/colors-vars-map.js";import{useClickableProps as L}from"@vibe/clickable/mockedClassNames";import j from"./Label.module.scss.js";import y from"./LabelCelebrationAnimation.js";import{mapSizesToTextSize as E}from"./LabelConstants.js";import{ComponentVibeId as g}from"../../tests/constants.js";var C=m((function(m,C){var N=m.className,h=m.labelClassName,A=m.kind,x=void 0===A?"fill":A,B=m.color,I=void 0===B?"primary":B,P=m.text,T=void 0===P?"":P,W=m.isLegIncluded,_=void 0!==W&&W,w=m.id,z=m["data-testid"],D=m.onClick,H=m.celebrationAnimation,O=m.size,q=void 0===O?"medium":O,F=c(null),G=i(C,F),J=p(H),K=e(J,2),M=K[0],Q=K[1],R=!!D,S=d((function(){return t(j.label,n(j,r("kind-"+x)),n(j,r("color-"+I)),a(a(a({},j.withLeg,_),j.clickable,R),j.small,"small"===q),h)}),[x,I,_,h,R,q]),U=d((function(){if(k.includes(I))return"line"===x?{color:"var(--color-".concat(I,")")}:{backgroundColor:"var(--color-".concat(I,")")}}),[I,x]),V=f((function(e){D&&(e.preventDefault(),D(e))}),[D]),X=L({onClick:V,id:w,"aria-hidden":!1,"aria-haspopup":!1,"aria-expanded":!1},F);u((function(){Q(H)}),[H]);var Y=d((function(){return s.createElement("span",Object.assign({},R&&X,{className:t(a({},j.clickableWrapper,R),N),"data-testid":z||o(l.LABEL,w),"data-vibe":g.LABEL,ref:G}),s.createElement(b,{style:U,element:"span",type:E[q],className:S,color:"dark"===I?"onInverted":"onPrimary","data-celebration-text":M},s.createElement(b,{element:"span",type:E[q],color:"inherit",className:t(a({},j.smallText,"small"===q))},T),s.createElement("span",{className:t(j.legWrapper)},_?s.createElement(v,null):null)))}),[R,X,N,z,w,G,S,M,T,_,q,U,I]);return M&&"line"===x?s.createElement(y,{onAnimationEnd:function(){return Q(!1)}},Y):Y}));export{C as default};
2
2
  //# sourceMappingURL=Label.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Label.js","sources":["../../../../../src/components/Label/Label.tsx"],"sourcesContent":["import { camelCase } from \"es-toolkit\";\nimport cx from \"classnames\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport React, { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { Text } from \"@vibe/typography\";\nimport Leg from \"./Leg\";\nimport { type LabelColor, type LabelKind, type ContentColor } from \"./Label.types\";\nimport { contentColors } from \"../../utils/colors-vars-map\";\nimport { type VibeComponentProps } from \"../../types\";\nimport { useClickableProps } from \"@vibe/clickable\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport styles from \"./Label.module.scss\";\nimport LabelCelebrationAnimation from \"./LabelCelebrationAnimation\";\nimport { type LabelSizes } from \"./Label.types\";\nimport { mapSizesToTextSize } from \"./LabelConstants\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nexport interface LabelProps extends VibeComponentProps {\n /**\n * Class name applied to the inner text wrapper.\n */\n labelClassName?: string;\n /**\n * The visual style of the label.\n */\n kind?: LabelKind;\n /**\n * The background color of the label.\n */\n color?: LabelColor;\n /**\n * The text content of the label.\n */\n text?: string;\n /**\n * If true, includes a leg (decorative extension).\n */\n isLegIncluded?: boolean;\n /**\n * Callback fired when the label is clicked.\n */\n onClick?: (event: React.MouseEvent<HTMLSpanElement, MouseEvent>) => void;\n /**\n * If true, triggers a celebration animation.\n */\n celebrationAnimation?: boolean;\n /**\n * The size of the label.\n */\n size?: LabelSizes;\n}\n\nconst Label = forwardRef<HTMLElement, LabelProps>(\n (\n {\n className,\n labelClassName,\n kind = \"fill\",\n color = \"primary\",\n text = \"\",\n isLegIncluded = false,\n id,\n \"data-testid\": dataTestId,\n onClick,\n celebrationAnimation,\n size = \"medium\"\n }: LabelProps,\n ref\n ) => {\n const labelRef = useRef<HTMLSpanElement>(null);\n const mergedRef = useMergeRef(ref, labelRef);\n const [isCelebrationAnimation, setIsCelebrationAnimation] = useState(celebrationAnimation);\n\n const isClickable = Boolean(onClick);\n\n const classNames = useMemo(\n () =>\n cx(\n styles.label,\n getStyle(styles, camelCase(\"kind\" + \"-\" + kind)),\n getStyle(styles, camelCase(\"color\" + \"-\" + color)),\n {\n [styles.withLeg]: isLegIncluded,\n [styles.clickable]: isClickable,\n [styles.small]: size === \"small\"\n },\n labelClassName\n ),\n [kind, color, isLegIncluded, labelClassName, isClickable, size]\n );\n\n const backgroundColorStyle = useMemo(() => {\n if (contentColors.includes(color as ContentColor)) {\n if (kind === \"line\") {\n return { color: `var(--color-${color})` };\n }\n return { backgroundColor: `var(--color-${color})` };\n }\n }, [color, kind]);\n\n const onClickCallback = useCallback(\n (event: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n if (onClick) {\n event.preventDefault();\n onClick(event);\n }\n },\n [onClick]\n );\n\n const clickableProps = useClickableProps(\n {\n onClick: onClickCallback,\n id,\n \"aria-hidden\": false,\n \"aria-haspopup\": false,\n \"aria-expanded\": false\n },\n labelRef\n );\n\n useEffect(() => {\n setIsCelebrationAnimation(celebrationAnimation);\n }, [celebrationAnimation]);\n\n const label = useMemo(() => {\n return (\n <span\n {...(isClickable && clickableProps)}\n className={cx({ [styles.clickableWrapper]: isClickable }, className)}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.LABEL, id)}\n data-vibe={ComponentVibeId.LABEL}\n ref={mergedRef}\n >\n <Text\n style={backgroundColorStyle}\n element=\"span\"\n type={mapSizesToTextSize[size]}\n className={classNames}\n color={color === \"dark\" ? \"onInverted\" : \"onPrimary\"}\n data-celebration-text={isCelebrationAnimation}\n >\n <Text\n element=\"span\"\n type={mapSizesToTextSize[size]}\n color=\"inherit\"\n className={cx({ [styles.smallText]: size === \"small\" })}\n >\n {text}\n </Text>\n <span className={cx(styles.legWrapper)}>{isLegIncluded ? <Leg /> : null}</span>\n </Text>\n </span>\n );\n }, [\n isClickable,\n clickableProps,\n className,\n dataTestId,\n id,\n mergedRef,\n classNames,\n isCelebrationAnimation,\n text,\n isLegIncluded,\n size,\n backgroundColorStyle,\n color\n ]);\n\n // Celebration animation is applied only for line kind\n if (isCelebrationAnimation && kind === \"line\") {\n return (\n <LabelCelebrationAnimation onAnimationEnd={() => setIsCelebrationAnimation(false)}>\n {label}\n </LabelCelebrationAnimation>\n );\n }\n\n return label;\n }\n);\n\nexport default Label;\n"],"names":["Label","forwardRef","_ref","ref","className","labelClassName","_ref$kind","kind","_ref$color","color","_ref$text","text","_ref$isLegIncluded","isLegIncluded","id","dataTestId","onClick","celebrationAnimation","_ref$size","size","labelRef","useRef","mergedRef","useMergeRef","_useState","useState","_useState2","_slicedToArray","isCelebrationAnimation","setIsCelebrationAnimation","isClickable","classNames","useMemo","cx","styles","label","getStyle","camelCase","_defineProperty","withLeg","clickable","small","backgroundColorStyle","contentColors","includes","concat","backgroundColor","onClickCallback","useCallback","event","preventDefault","clickableProps","useClickableProps","useEffect","React","createElement","Object","assign","clickableWrapper","getTestId","ComponentDefaultTestId","LABEL","ComponentVibeId","Text","style","element","type","mapSizesToTextSize","smallText","legWrapper","Leg","LabelCelebrationAnimation","onAnimationEnd"],"mappings":"62BAqDMA,IAAAA,EAAQC,GACZ,SAAAC,EAcEC,GACE,IAbAC,EAASF,EAATE,UACAC,EAAcH,EAAdG,eAAcC,EAAAJ,EACdK,KAAAA,OAAO,IAAHD,EAAG,OAAMA,EAAAE,EAAAN,EACbO,MAAAA,OAAQ,IAAHD,EAAG,UAASA,EAAAE,EAAAR,EACjBS,KAAAA,OAAO,IAAHD,EAAG,GAAEA,EAAAE,EAAAV,EACTW,cAAAA,OAAgB,IAAHD,GAAQA,EACrBE,EAAEZ,EAAFY,GACeC,EAAUb,EAAzB,eACAc,EAAOd,EAAPc,QACAC,EAAoBf,EAApBe,qBAAoBC,EAAAhB,EACpBiB,KAAAA,OAAO,IAAHD,EAAG,SAAQA,EAIXE,EAAWC,EAAwB,MACnCC,EAAYC,EAAYpB,EAAKiB,GACnCI,EAA4DC,EAASR,GAAqBS,EAAAC,EAAAH,EAAA,GAAnFI,EAAsBF,EAAA,GAAEG,EAAyBH,EAAA,GAElDI,IAAsBd,EAEtBe,EAAaC,GACjB,WAAA,OACEC,EACEC,EAAOC,MACPC,EAASF,EAAQG,EAAU,QAAe9B,IAC1C6B,EAASF,EAAQG,EAAU,SAAgB5B,IAAO6B,EAAAA,EAAAA,EAAA,CAAA,EAE/CJ,EAAOK,QAAU1B,GACjBqB,EAAOM,UAAYV,GACnBI,EAAOO,MAAiB,UAATtB,GAElBd,EACD,GACH,CAACE,EAAME,EAAOI,EAAeR,EAAgByB,EAAaX,IAGtDuB,EAAuBV,GAAQ,WACnC,GAAIW,EAAcC,SAASnC,GACzB,MAAa,SAATF,EACK,CAAEE,MAAK,eAAAoC,OAAiBpC,EAAK,MAE/B,CAAEqC,gBAAe,eAAAD,OAAiBpC,EAAK,KAElD,GAAG,CAACA,EAAOF,IAELwC,EAAkBC,GACtB,SAACC,GACKjC,IACFiC,EAAMC,iBACNlC,EAAQiC,GAEZ,GACA,CAACjC,IAGGmC,EAAiBC,EACrB,CACEpC,QAAS+B,EACTjC,GAAAA,EACA,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAEnBM,GAGFiC,GAAU,WACRxB,EAA0BZ,EAC5B,GAAG,CAACA,IAEJ,IAAMkB,EAAQH,GAAQ,WACpB,OACEsB,EACMC,cAAA,OAAAC,OAAAC,OAAA,CAAA,EAAC3B,GAAeqB,EACpB,CAAA/C,UAAW6B,EAAEK,EAAIJ,CAAAA,EAAAA,EAAOwB,iBAAmB5B,GAAe1B,GAC7C,cAAAW,GAAc4C,EAAUC,EAAuBC,MAAO/C,eACxDgD,EAAgBD,MAC3B1D,IAAKmB,IAELgC,EAAAC,cAACQ,EAAI,CACHC,MAAOtB,EACPuB,QAAQ,OACRC,KAAMC,EAAmBhD,GACzBf,UAAW2B,EACXtB,MAAiB,SAAVA,EAAmB,aAAe,oCAClBmB,GAEvB0B,EAAAC,cAACQ,EAAI,CACHE,QAAQ,OACRC,KAAMC,EAAmBhD,GACzBV,MAAM,UACNL,UAAW6B,EAAEK,EAAIJ,CAAAA,EAAAA,EAAOkC,UAAqB,UAATjD,KAEnCR,GAEH2C,EAAMC,cAAA,OAAA,CAAAnD,UAAW6B,EAAGC,EAAOmC,aAAcxD,EAAgByC,EAACC,cAAAe,EAAM,MAAG,OAI3E,GAAG,CACDxC,EACAqB,EACA/C,EACAW,EACAD,EACAQ,EACAS,EACAH,EACAjB,EACAE,EACAM,EACAuB,EACAjC,IAIF,OAAImB,GAAmC,SAATrB,EAE1B+C,EAACC,cAAAgB,EAA0B,CAAAC,eAAgB,WAAA,OAAM3C,GAA0B,EAAM,GAC9EM,GAKAA,CACT"}
1
+ {"version":3,"file":"Label.js","sources":["../../../../../src/components/Label/Label.tsx"],"sourcesContent":["import { camelCase } from \"es-toolkit\";\nimport cx from \"classnames\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport { getStyle, useMergeRef } from \"@vibe/shared\";\nimport React, { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { Text } from \"@vibe/typography\";\nimport Leg from \"./Leg\";\nimport { type LabelColor, type LabelKind, type ContentColor } from \"./Label.types\";\nimport { contentColors } from \"../../utils/colors-vars-map\";\nimport { type VibeComponentProps } from \"../../types\";\nimport { useClickableProps } from \"@vibe/clickable\";\n\nimport styles from \"./Label.module.scss\";\nimport LabelCelebrationAnimation from \"./LabelCelebrationAnimation\";\nimport { type LabelSizes } from \"./Label.types\";\nimport { mapSizesToTextSize } from \"./LabelConstants\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nexport interface LabelProps extends VibeComponentProps {\n /**\n * Class name applied to the inner text wrapper.\n */\n labelClassName?: string;\n /**\n * The visual style of the label.\n */\n kind?: LabelKind;\n /**\n * The background color of the label.\n */\n color?: LabelColor;\n /**\n * The text content of the label.\n */\n text?: string;\n /**\n * If true, includes a leg (decorative extension).\n */\n isLegIncluded?: boolean;\n /**\n * Callback fired when the label is clicked.\n */\n onClick?: (event: React.MouseEvent<HTMLSpanElement, MouseEvent>) => void;\n /**\n * If true, triggers a celebration animation.\n */\n celebrationAnimation?: boolean;\n /**\n * The size of the label.\n */\n size?: LabelSizes;\n}\n\nconst Label = forwardRef<HTMLElement, LabelProps>(\n (\n {\n className,\n labelClassName,\n kind = \"fill\",\n color = \"primary\",\n text = \"\",\n isLegIncluded = false,\n id,\n \"data-testid\": dataTestId,\n onClick,\n celebrationAnimation,\n size = \"medium\"\n }: LabelProps,\n ref\n ) => {\n const labelRef = useRef<HTMLSpanElement>(null);\n const mergedRef = useMergeRef(ref, labelRef);\n const [isCelebrationAnimation, setIsCelebrationAnimation] = useState(celebrationAnimation);\n\n const isClickable = Boolean(onClick);\n\n const classNames = useMemo(\n () =>\n cx(\n styles.label,\n getStyle(styles, camelCase(\"kind\" + \"-\" + kind)),\n getStyle(styles, camelCase(\"color\" + \"-\" + color)),\n {\n [styles.withLeg]: isLegIncluded,\n [styles.clickable]: isClickable,\n [styles.small]: size === \"small\"\n },\n labelClassName\n ),\n [kind, color, isLegIncluded, labelClassName, isClickable, size]\n );\n\n const backgroundColorStyle = useMemo(() => {\n if (contentColors.includes(color as ContentColor)) {\n if (kind === \"line\") {\n return { color: `var(--color-${color})` };\n }\n return { backgroundColor: `var(--color-${color})` };\n }\n }, [color, kind]);\n\n const onClickCallback = useCallback(\n (event: React.MouseEvent<HTMLSpanElement, MouseEvent>) => {\n if (onClick) {\n event.preventDefault();\n onClick(event);\n }\n },\n [onClick]\n );\n\n const clickableProps = useClickableProps(\n {\n onClick: onClickCallback,\n id,\n \"aria-hidden\": false,\n \"aria-haspopup\": false,\n \"aria-expanded\": false\n },\n labelRef\n );\n\n useEffect(() => {\n setIsCelebrationAnimation(celebrationAnimation);\n }, [celebrationAnimation]);\n\n const label = useMemo(() => {\n return (\n <span\n {...(isClickable && clickableProps)}\n className={cx({ [styles.clickableWrapper]: isClickable }, className)}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.LABEL, id)}\n data-vibe={ComponentVibeId.LABEL}\n ref={mergedRef}\n >\n <Text\n style={backgroundColorStyle}\n element=\"span\"\n type={mapSizesToTextSize[size]}\n className={classNames}\n color={color === \"dark\" ? \"onInverted\" : \"onPrimary\"}\n data-celebration-text={isCelebrationAnimation}\n >\n <Text\n element=\"span\"\n type={mapSizesToTextSize[size]}\n color=\"inherit\"\n className={cx({ [styles.smallText]: size === \"small\" })}\n >\n {text}\n </Text>\n <span className={cx(styles.legWrapper)}>{isLegIncluded ? <Leg /> : null}</span>\n </Text>\n </span>\n );\n }, [\n isClickable,\n clickableProps,\n className,\n dataTestId,\n id,\n mergedRef,\n classNames,\n isCelebrationAnimation,\n text,\n isLegIncluded,\n size,\n backgroundColorStyle,\n color\n ]);\n\n // Celebration animation is applied only for line kind\n if (isCelebrationAnimation && kind === \"line\") {\n return (\n <LabelCelebrationAnimation onAnimationEnd={() => setIsCelebrationAnimation(false)}>\n {label}\n </LabelCelebrationAnimation>\n );\n }\n\n return label;\n }\n);\n\nexport default Label;\n"],"names":["Label","forwardRef","_ref","ref","className","labelClassName","_ref$kind","kind","_ref$color","color","_ref$text","text","_ref$isLegIncluded","isLegIncluded","id","dataTestId","onClick","celebrationAnimation","_ref$size","size","labelRef","useRef","mergedRef","useMergeRef","_useState","useState","_useState2","_slicedToArray","isCelebrationAnimation","setIsCelebrationAnimation","isClickable","classNames","useMemo","cx","styles","label","getStyle","camelCase","_defineProperty","withLeg","clickable","small","backgroundColorStyle","contentColors","includes","concat","backgroundColor","onClickCallback","useCallback","event","preventDefault","clickableProps","useClickableProps","useEffect","React","createElement","Object","assign","clickableWrapper","getTestId","ComponentDefaultTestId","LABEL","ComponentVibeId","Text","style","element","type","mapSizesToTextSize","smallText","legWrapper","Leg","LabelCelebrationAnimation","onAnimationEnd"],"mappings":"szBAqDMA,IAAAA,EAAQC,GACZ,SAAAC,EAcEC,GACE,IAbAC,EAASF,EAATE,UACAC,EAAcH,EAAdG,eAAcC,EAAAJ,EACdK,KAAAA,OAAO,IAAHD,EAAG,OAAMA,EAAAE,EAAAN,EACbO,MAAAA,OAAQ,IAAHD,EAAG,UAASA,EAAAE,EAAAR,EACjBS,KAAAA,OAAO,IAAHD,EAAG,GAAEA,EAAAE,EAAAV,EACTW,cAAAA,OAAgB,IAAHD,GAAQA,EACrBE,EAAEZ,EAAFY,GACeC,EAAUb,EAAzB,eACAc,EAAOd,EAAPc,QACAC,EAAoBf,EAApBe,qBAAoBC,EAAAhB,EACpBiB,KAAAA,OAAO,IAAHD,EAAG,SAAQA,EAIXE,EAAWC,EAAwB,MACnCC,EAAYC,EAAYpB,EAAKiB,GACnCI,EAA4DC,EAASR,GAAqBS,EAAAC,EAAAH,EAAA,GAAnFI,EAAsBF,EAAA,GAAEG,EAAyBH,EAAA,GAElDI,IAAsBd,EAEtBe,EAAaC,GACjB,WAAA,OACEC,EACEC,EAAOC,MACPC,EAASF,EAAQG,EAAU,QAAe9B,IAC1C6B,EAASF,EAAQG,EAAU,SAAgB5B,IAAO6B,EAAAA,EAAAA,EAAA,CAAA,EAE/CJ,EAAOK,QAAU1B,GACjBqB,EAAOM,UAAYV,GACnBI,EAAOO,MAAiB,UAATtB,GAElBd,EACD,GACH,CAACE,EAAME,EAAOI,EAAeR,EAAgByB,EAAaX,IAGtDuB,EAAuBV,GAAQ,WACnC,GAAIW,EAAcC,SAASnC,GACzB,MAAa,SAATF,EACK,CAAEE,MAAK,eAAAoC,OAAiBpC,EAAK,MAE/B,CAAEqC,gBAAe,eAAAD,OAAiBpC,EAAK,KAElD,GAAG,CAACA,EAAOF,IAELwC,EAAkBC,GACtB,SAACC,GACKjC,IACFiC,EAAMC,iBACNlC,EAAQiC,GAEZ,GACA,CAACjC,IAGGmC,EAAiBC,EACrB,CACEpC,QAAS+B,EACTjC,GAAAA,EACA,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAEnBM,GAGFiC,GAAU,WACRxB,EAA0BZ,EAC5B,GAAG,CAACA,IAEJ,IAAMkB,EAAQH,GAAQ,WACpB,OACEsB,EACMC,cAAA,OAAAC,OAAAC,OAAA,CAAA,EAAC3B,GAAeqB,EACpB,CAAA/C,UAAW6B,EAAEK,EAAIJ,CAAAA,EAAAA,EAAOwB,iBAAmB5B,GAAe1B,GAC7C,cAAAW,GAAc4C,EAAUC,EAAuBC,MAAO/C,eACxDgD,EAAgBD,MAC3B1D,IAAKmB,IAELgC,EAAAC,cAACQ,EAAI,CACHC,MAAOtB,EACPuB,QAAQ,OACRC,KAAMC,EAAmBhD,GACzBf,UAAW2B,EACXtB,MAAiB,SAAVA,EAAmB,aAAe,oCAClBmB,GAEvB0B,EAAAC,cAACQ,EAAI,CACHE,QAAQ,OACRC,KAAMC,EAAmBhD,GACzBV,MAAM,UACNL,UAAW6B,EAAEK,EAAIJ,CAAAA,EAAAA,EAAOkC,UAAqB,UAATjD,KAEnCR,GAEH2C,EAAMC,cAAA,OAAA,CAAAnD,UAAW6B,EAAGC,EAAOmC,aAAcxD,EAAgByC,EAACC,cAAAe,EAAM,MAAG,OAI3E,GAAG,CACDxC,EACAqB,EACA/C,EACAW,EACAD,EACAQ,EACAS,EACAH,EACAjB,EACAE,EACAM,EACAuB,EACAjC,IAIF,OAAImB,GAAmC,SAATrB,EAE1B+C,EAACC,cAAAgB,EAA0B,CAAAC,eAAgB,WAAA,OAAM3C,GAA0B,EAAM,GAC9EM,GAKAA,CACT"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{getTestId as t,ComponentDefaultTestId as i}from"../../tests/testIds.js";import o from"classnames";import r,{forwardRef as a,useCallback as s}from"react";import{NOOP as l}from"../../utils/function-utils.js";import{Icon as n}from"@vibe/icon/mockedClassNames";import d from"./Link.module.scss.js";import{getStyle as m}from"../../helpers/typesciptCssModulesHelper.js";import{camelCase as c}from"es-toolkit";import{ComponentVibeId as f}from"../../tests/constants.js";var p=a((function(a,n){var p=a.className,b=a.textClassName,u=a.href,y=void 0===u?"":u,N=a.text,k=void 0===N?"":N,j=a.rel,x=void 0===j?"noreferrer":j,h=a.onClick,C=void 0===h?l:h,g=a.target,E=void 0===g?"_blank":g,I=a["aria-label"],L=void 0===I?"":I,P=a.color,S=void 0===P?"primary":P,_=a["aria-describedby"],z=void 0===_?"":_,F=a.icon,H=void 0===F?"":F,K=a.iconPosition,T=a.id,B=void 0===T?"":T,D=a["aria-labelledby"],M=void 0===D?"":D,q=a.disableNavigation,w=void 0!==q&&q,A=a.inheritFontSize,G=void 0!==A&&A,J=a.inlineText,O=void 0!==J&&J,Q=a.style,R=a["data-testid"],U="start"===(void 0===K?"start":K),V=s((function(e){w&&e.preventDefault(),C&&C(e)}),[w,C]);return r.createElement("a",{"data-testid":R||t(i.LINK,B),"data-vibe":f.LINK,id:B,href:y,rel:x,ref:n,onClick:V,target:E,style:Q,className:o(d.link,p,m(d,c("color-"+S)),e(e({},d.inheritFontSize,G),d.inlineText,O)),"aria-label":L,"aria-describedby":z,"aria-labelledby":M},v(U,H,o(d.iconStart)),r.createElement("span",{className:o(d.text,b)},k),v(!U,H,o(d.iconEnd)))}));function v(e,t,i){if(e)return r.createElement(n,{className:i,icon:t,type:"font"})}export{p as default};
1
+ import{defineProperty as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{getTestId as i,ComponentDefaultTestId as t}from"../../tests/testIds.js";import r from"classnames";import o,{forwardRef as a,useCallback as s}from"react";import{getStyle as l,NOOP as n}from"@vibe/shared";import{Icon as d}from"@vibe/icon/mockedClassNames";import m from"./Link.module.scss.js";import{camelCase as c}from"es-toolkit";import{ComponentVibeId as v}from"../../tests/constants.js";var f=a((function(a,d){var f=a.className,b=a.textClassName,u=a.href,y=void 0===u?"":u,N=a.text,k=void 0===N?"":N,x=a.rel,h=void 0===x?"noreferrer":x,g=a.onClick,j=void 0===g?n:g,C=a.target,E=void 0===C?"_blank":C,I=a["aria-label"],L=void 0===I?"":I,P=a.color,S=void 0===P?"primary":P,_=a["aria-describedby"],z=void 0===_?"":_,F=a.icon,K=void 0===F?"":F,T=a.iconPosition,B=a.id,D=void 0===B?"":B,H=a["aria-labelledby"],q=void 0===H?"":H,w=a.disableNavigation,A=void 0!==w&&w,G=a.inheritFontSize,J=void 0!==G&&G,M=a.inlineText,O=void 0!==M&&M,Q=a.style,R=a["data-testid"],U="start"===(void 0===T?"start":T),V=s((function(e){A&&e.preventDefault(),j&&j(e)}),[A,j]);return o.createElement("a",{"data-testid":R||i(t.LINK,D),"data-vibe":v.LINK,id:D,href:y,rel:h,ref:d,onClick:V,target:E,style:Q,className:r(m.link,f,l(m,c("color-"+S)),e(e({},m.inheritFontSize,J),m.inlineText,O)),"aria-label":L,"aria-describedby":z,"aria-labelledby":q},p(U,K,r(m.iconStart)),o.createElement("span",{className:r(m.text,b)},k),p(!U,K,r(m.iconEnd)))}));function p(e,i,t){if(e)return o.createElement(d,{className:t,icon:i,type:"font"})}export{f as default};
2
2
  //# sourceMappingURL=Link.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Link.js","sources":["../../../../../src/components/Link/Link.tsx"],"sourcesContent":["import { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport React, { forwardRef, useCallback } from \"react\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport { Icon, type SubIcon } from \"@vibe/icon\";\nimport { type LinkColor, type LinkIconPosition, type LinkTarget } from \"./Link.types\";\nimport { type VibeComponentProps } from \"../../types\";\nimport styles from \"./Link.module.scss\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport { camelCase } from \"es-toolkit\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nexport interface LinkProps extends VibeComponentProps {\n /**\n * Class name applied to the link text.\n */\n textClassName?: string;\n /**\n * The URL the link points to.\n */\n href?: string;\n /**\n * The text content of the link.\n */\n text?: string;\n /**\n * Specifies the relationship between the current document and the linked resource.\n */\n rel?: string;\n /**\n * Callback fired when the link is clicked.\n */\n onClick?: (event: React.MouseEvent) => void;\n /**\n * Specifies where to open the linked document.\n */\n target?: LinkTarget;\n /**\n * The ARIA label for accessibility.\n */\n \"aria-label\"?: string;\n /**\n * The ID of the element that describes this link.\n */\n \"aria-describedby\"?: string;\n /**\n * The ID of the element labeling this link.\n */\n \"aria-labelledby\"?: string;\n /**\n * Icon displayed next to the link text.\n */\n icon?: SubIcon;\n /**\n * The position of the icon relative to the text.\n */\n iconPosition?: LinkIconPosition;\n /**\n * If true, disables navigation when the link is clicked.\n */\n disableNavigation?: boolean;\n /**\n * If true, the link inherits the surrounding text's font size.\n */\n inheritFontSize?: boolean;\n /**\n * If true, the link is styled to fit within inline text content.\n */\n inlineText?: boolean;\n /** The link's color style */\n color?: LinkColor;\n /**\n * Inline style object applied to the link element.\n */\n style?: React.CSSProperties;\n}\n\nconst Link = forwardRef(\n (\n {\n className,\n textClassName,\n href = \"\",\n text = \"\",\n rel = \"noreferrer\",\n onClick = NOOP,\n target = \"_blank\",\n \"aria-label\": ariaLabel = \"\",\n color = \"primary\",\n \"aria-describedby\": ariaDescribedby = \"\",\n icon = \"\",\n iconPosition = \"start\",\n id = \"\",\n \"aria-labelledby\": ariaLabelledBy = \"\",\n disableNavigation = false,\n inheritFontSize = false,\n inlineText = false,\n style,\n \"data-testid\": dataTestId\n }: LinkProps,\n ref: React.ForwardedRef<HTMLAnchorElement>\n ) => {\n const isStart = iconPosition === \"start\";\n\n const onClickWrapper = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n if (disableNavigation) {\n e.preventDefault();\n }\n onClick && onClick(e);\n },\n [disableNavigation, onClick]\n );\n\n return (\n <a\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.LINK, id)}\n data-vibe={ComponentVibeId.LINK}\n id={id}\n href={href}\n rel={rel}\n ref={ref}\n onClick={onClickWrapper}\n target={target}\n style={style}\n className={cx(styles.link, className, getStyle(styles, camelCase(\"color-\" + color)), {\n [styles.inheritFontSize]: inheritFontSize,\n [styles.inlineText]: inlineText\n })}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n aria-labelledby={ariaLabelledBy}\n >\n {getIcon(isStart, icon, cx(styles.iconStart))}\n <span className={cx(styles.text, textClassName)}>{text}</span>\n {getIcon(!isStart, icon, cx(styles.iconEnd))}\n </a>\n );\n }\n);\n\nfunction getIcon(shouldShow: boolean, icon: string | React.FunctionComponent | null, className: string) {\n if (!shouldShow) return;\n return <Icon className={className} icon={icon} type=\"font\" />;\n}\n\nexport default Link;\n"],"names":["Link","forwardRef","_ref","ref","className","textClassName","_ref$href","href","_ref$text","text","_ref$rel","rel","_ref$onClick","onClick","NOOP","_ref$target","target","_ref$ariaLabel","ariaLabel","_ref$color","color","_ref$ariaDescribedby","ariaDescribedby","_ref$icon","icon","_ref$iconPosition","iconPosition","_ref$id","id","_ref$ariaLabelledby","ariaLabelledBy","_ref$disableNavigatio","disableNavigation","_ref$inheritFontSize","inheritFontSize","_ref$inlineText","inlineText","style","dataTestId","isStart","onClickWrapper","useCallback","e","preventDefault","React","createElement","getTestId","ComponentDefaultTestId","LINK","ComponentVibeId","cx","styles","link","getStyle","camelCase","_defineProperty","getIcon","iconStart","iconEnd","shouldShow","Icon","type"],"mappings":"qiBA6EMA,IAAAA,EAAOC,GACX,SAAAC,EAsBEC,GACE,IArBAC,EAASF,EAATE,UACAC,EAAaH,EAAbG,cAAaC,EAAAJ,EACbK,KAAAA,OAAO,IAAHD,EAAG,GAAEA,EAAAE,EAAAN,EACTO,KAAAA,OAAO,IAAHD,EAAG,GAAEA,EAAAE,EAAAR,EACTS,IAAAA,OAAM,IAAHD,EAAG,aAAYA,EAAAE,EAAAV,EAClBW,QAAAA,OAAUC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAb,EACdc,OAAAA,OAAS,IAAHD,EAAG,SAAQA,EAAAE,EAAAf,EACjB,cAAcgB,OAAY,IAAHD,EAAG,GAAEA,EAAAE,EAAAjB,EAC5BkB,MAAAA,OAAQ,IAAHD,EAAG,UAASA,EAAAE,EAAAnB,EACjB,oBAAoBoB,OAAkB,IAAHD,EAAG,GAAEA,EAAAE,EAAArB,EACxCsB,KAAAA,OAAO,IAAHD,EAAG,GAAEA,EAAAE,EAAAvB,EACTwB,aAAsBC,EAAAzB,EACtB0B,GAAAA,OAAK,IAAHD,EAAG,GAAEA,EAAAE,EAAA3B,EACP,mBAAmB4B,OAAiB,IAAHD,EAAG,GAAEA,EAAAE,EAAA7B,EACtC8B,kBAAAA,OAAoB,IAAHD,GAAQA,EAAAE,EAAA/B,EACzBgC,gBAAAA,OAAkB,IAAHD,GAAQA,EAAAE,EAAAjC,EACvBkC,WAAAA,OAAa,IAAHD,GAAQA,EAClBE,EAAKnC,EAALmC,MACeC,EAAUpC,EAAzB,eAIIqC,EAA2B,gBAXhB,IAAHd,EAAG,QAAOA,GAalBe,EAAiBC,GACrB,SAACC,GACKV,GACFU,EAAEC,iBAEJ9B,GAAWA,EAAQ6B,EACrB,GACA,CAACV,EAAmBnB,IAGtB,OACE+B,EAAAC,cAAA,IAAA,CAAA,cACeP,GAAcQ,EAAUC,EAAuBC,KAAMpB,eACvDqB,EAAgBD,KAC3BpB,GAAIA,EACJrB,KAAMA,EACNI,IAAKA,EACLR,IAAKA,EACLU,QAAS2B,EACTxB,OAAQA,EACRqB,MAAOA,EACPjC,UAAW8C,EAAGC,EAAOC,KAAMhD,EAAWiD,EAASF,EAAQG,EAAU,SAAWlC,IAAOmC,EAAAA,EAAA,CAAA,EAChFJ,EAAOjB,gBAAkBA,GACzBiB,EAAOf,WAAaA,IAEX,aAAAlB,EACM,mBAAAI,oBACDQ,GAEhB0B,EAAQjB,EAASf,EAAM0B,EAAGC,EAAOM,YAClCb,EAAAC,cAAA,OAAA,CAAMzC,UAAW8C,EAAGC,EAAO1C,KAAMJ,IAAiBI,GACjD+C,GAASjB,EAASf,EAAM0B,EAAGC,EAAOO,UAGzC,IAGF,SAASF,EAAQG,EAAqBnC,EAA+CpB,GACnF,GAAKuD,EACL,OAAOf,EAACC,cAAAe,EAAK,CAAAxD,UAAWA,EAAWoB,KAAMA,EAAMqC,KAAK,QACtD"}
1
+ {"version":3,"file":"Link.js","sources":["../../../../../src/components/Link/Link.tsx"],"sourcesContent":["import { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport React, { forwardRef, useCallback } from \"react\";\nimport { NOOP, getStyle } from \"@vibe/shared\";\nimport { Icon, type SubIcon } from \"@vibe/icon\";\nimport { type LinkColor, type LinkIconPosition, type LinkTarget } from \"./Link.types\";\nimport { type VibeComponentProps } from \"../../types\";\nimport styles from \"./Link.module.scss\";\n\nimport { camelCase } from \"es-toolkit\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nexport interface LinkProps extends VibeComponentProps {\n /**\n * Class name applied to the link text.\n */\n textClassName?: string;\n /**\n * The URL the link points to.\n */\n href?: string;\n /**\n * The text content of the link.\n */\n text?: string;\n /**\n * Specifies the relationship between the current document and the linked resource.\n */\n rel?: string;\n /**\n * Callback fired when the link is clicked.\n */\n onClick?: (event: React.MouseEvent) => void;\n /**\n * Specifies where to open the linked document.\n */\n target?: LinkTarget;\n /**\n * The ARIA label for accessibility.\n */\n \"aria-label\"?: string;\n /**\n * The ID of the element that describes this link.\n */\n \"aria-describedby\"?: string;\n /**\n * The ID of the element labeling this link.\n */\n \"aria-labelledby\"?: string;\n /**\n * Icon displayed next to the link text.\n */\n icon?: SubIcon;\n /**\n * The position of the icon relative to the text.\n */\n iconPosition?: LinkIconPosition;\n /**\n * If true, disables navigation when the link is clicked.\n */\n disableNavigation?: boolean;\n /**\n * If true, the link inherits the surrounding text's font size.\n */\n inheritFontSize?: boolean;\n /**\n * If true, the link is styled to fit within inline text content.\n */\n inlineText?: boolean;\n /** The link's color style */\n color?: LinkColor;\n /**\n * Inline style object applied to the link element.\n */\n style?: React.CSSProperties;\n}\n\nconst Link = forwardRef(\n (\n {\n className,\n textClassName,\n href = \"\",\n text = \"\",\n rel = \"noreferrer\",\n onClick = NOOP,\n target = \"_blank\",\n \"aria-label\": ariaLabel = \"\",\n color = \"primary\",\n \"aria-describedby\": ariaDescribedby = \"\",\n icon = \"\",\n iconPosition = \"start\",\n id = \"\",\n \"aria-labelledby\": ariaLabelledBy = \"\",\n disableNavigation = false,\n inheritFontSize = false,\n inlineText = false,\n style,\n \"data-testid\": dataTestId\n }: LinkProps,\n ref: React.ForwardedRef<HTMLAnchorElement>\n ) => {\n const isStart = iconPosition === \"start\";\n\n const onClickWrapper = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n if (disableNavigation) {\n e.preventDefault();\n }\n onClick && onClick(e);\n },\n [disableNavigation, onClick]\n );\n\n return (\n <a\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.LINK, id)}\n data-vibe={ComponentVibeId.LINK}\n id={id}\n href={href}\n rel={rel}\n ref={ref}\n onClick={onClickWrapper}\n target={target}\n style={style}\n className={cx(styles.link, className, getStyle(styles, camelCase(\"color-\" + color)), {\n [styles.inheritFontSize]: inheritFontSize,\n [styles.inlineText]: inlineText\n })}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n aria-labelledby={ariaLabelledBy}\n >\n {getIcon(isStart, icon, cx(styles.iconStart))}\n <span className={cx(styles.text, textClassName)}>{text}</span>\n {getIcon(!isStart, icon, cx(styles.iconEnd))}\n </a>\n );\n }\n);\n\nfunction getIcon(shouldShow: boolean, icon: string | React.FunctionComponent | null, className: string) {\n if (!shouldShow) return;\n return <Icon className={className} icon={icon} type=\"font\" />;\n}\n\nexport default Link;\n"],"names":["Link","forwardRef","_ref","ref","className","textClassName","_ref$href","href","_ref$text","text","_ref$rel","rel","_ref$onClick","onClick","NOOP","_ref$target","target","_ref$ariaLabel","ariaLabel","_ref$color","color","_ref$ariaDescribedby","ariaDescribedby","_ref$icon","icon","_ref$iconPosition","iconPosition","_ref$id","id","_ref$ariaLabelledby","ariaLabelledBy","_ref$disableNavigatio","disableNavigation","_ref$inheritFontSize","inheritFontSize","_ref$inlineText","inlineText","style","dataTestId","isStart","onClickWrapper","useCallback","e","preventDefault","React","createElement","getTestId","ComponentDefaultTestId","LINK","ComponentVibeId","cx","styles","link","getStyle","camelCase","_defineProperty","getIcon","iconStart","iconEnd","shouldShow","Icon","type"],"mappings":"4dA6EMA,IAAAA,EAAOC,GACX,SAAAC,EAsBEC,GACE,IArBAC,EAASF,EAATE,UACAC,EAAaH,EAAbG,cAAaC,EAAAJ,EACbK,KAAAA,OAAO,IAAHD,EAAG,GAAEA,EAAAE,EAAAN,EACTO,KAAAA,OAAO,IAAHD,EAAG,GAAEA,EAAAE,EAAAR,EACTS,IAAAA,OAAM,IAAHD,EAAG,aAAYA,EAAAE,EAAAV,EAClBW,QAAAA,OAAUC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAb,EACdc,OAAAA,OAAS,IAAHD,EAAG,SAAQA,EAAAE,EAAAf,EACjB,cAAcgB,OAAY,IAAHD,EAAG,GAAEA,EAAAE,EAAAjB,EAC5BkB,MAAAA,OAAQ,IAAHD,EAAG,UAASA,EAAAE,EAAAnB,EACjB,oBAAoBoB,OAAkB,IAAHD,EAAG,GAAEA,EAAAE,EAAArB,EACxCsB,KAAAA,OAAO,IAAHD,EAAG,GAAEA,EAAAE,EAAAvB,EACTwB,aAAsBC,EAAAzB,EACtB0B,GAAAA,OAAK,IAAHD,EAAG,GAAEA,EAAAE,EAAA3B,EACP,mBAAmB4B,OAAiB,IAAHD,EAAG,GAAEA,EAAAE,EAAA7B,EACtC8B,kBAAAA,OAAoB,IAAHD,GAAQA,EAAAE,EAAA/B,EACzBgC,gBAAAA,OAAkB,IAAHD,GAAQA,EAAAE,EAAAjC,EACvBkC,WAAAA,OAAa,IAAHD,GAAQA,EAClBE,EAAKnC,EAALmC,MACeC,EAAUpC,EAAzB,eAIIqC,EAA2B,gBAXhB,IAAHd,EAAG,QAAOA,GAalBe,EAAiBC,GACrB,SAACC,GACKV,GACFU,EAAEC,iBAEJ9B,GAAWA,EAAQ6B,EACrB,GACA,CAACV,EAAmBnB,IAGtB,OACE+B,EAAAC,cAAA,IAAA,CAAA,cACeP,GAAcQ,EAAUC,EAAuBC,KAAMpB,eACvDqB,EAAgBD,KAC3BpB,GAAIA,EACJrB,KAAMA,EACNI,IAAKA,EACLR,IAAKA,EACLU,QAAS2B,EACTxB,OAAQA,EACRqB,MAAOA,EACPjC,UAAW8C,EAAGC,EAAOC,KAAMhD,EAAWiD,EAASF,EAAQG,EAAU,SAAWlC,IAAOmC,EAAAA,EAAA,CAAA,EAChFJ,EAAOjB,gBAAkBA,GACzBiB,EAAOf,WAAaA,IAEX,aAAAlB,EACM,mBAAAI,oBACDQ,GAEhB0B,EAAQjB,EAASf,EAAM0B,EAAGC,EAAOM,YAClCb,EAAAC,cAAA,OAAA,CAAMzC,UAAW8C,EAAGC,EAAO1C,KAAMJ,IAAiBI,GACjD+C,GAASjB,EAASf,EAAM0B,EAAGC,EAAOO,UAGzC,IAGF,SAASF,EAAQG,EAAqBnC,EAA+CpB,GACnF,GAAKuD,EACL,OAAOf,EAACC,cAAAe,EAAK,CAAAxD,UAAWA,EAAWoB,KAAMA,EAAMqC,KAAK,QACtD"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import t from"classnames";import r,{forwardRef as i,useRef as n,useState as o,useCallback as s,useEffect as a,useMemo as l}from"react";import u from"../../hooks/useMergeRef.js";import c from"../../hooks/useKeyEvent/index.js";import{VirtualizedListItems as d}from"./VirtualizedListItems/VirtualizedListItems.js";import{keyCodes as m,UP_DOWN_ARROWS as f}from"../../constants/keyCodes.js";import{getTestId as p,ComponentDefaultTestId as v}from"../../tests/testIds.js";import{ListContext as b}from"./utils/ListContext.js";import{useListId as y,getListItemIndexById as I,getNextListItemIndex as j,getPrevListItemIndex as x,getListItemIdByIndex as L,isListItem as k,getListItemComponentType as A}from"./utils/ListUtils.js";import E from"./List.module.scss.js";import{ComponentVibeId as h}from"../../tests/constants.js";var g=i((function(i,g){var R=i.className,O=i.id,T=i.component,V=void 0===T?"ul":T,_=i.children,C=i["aria-label"],N=i["aria-describedby"],P=i["aria-controls"],W=i.renderOnlyVisibleItems,z=void 0!==W&&W,D=i.style,H=i.role,M=void 0===H?"listbox":H,S=i["data-testid"],U=n(null),B=u(g,U),F=n([]),K=y(O),q=o(0),w=e(q,2),G=w[0],J=w[1],Q=V,X=s((function(e){var t;J(I(F,e)),null===(t=null==U?void 0:U.current)||void 0===t||t.setAttribute("aria-activedescendant",e)}),[]),Y=s((function(e){if(!z){e.preventDefault();var t=e.key===m.UP_ARROW,r=void 0;e.key===m.DOWN_ARROW&&F.current.length>G+1?r=j(G,F):t&&G>0&&(r=x(G,F)),void 0!==r&&(X(L(F,r)),F.current[r].focus())}}),[G,z,X]);c({keys:f,callback:Y,ref:U}),a((function(){var e=F.current.findIndex((function(e){return e instanceof HTMLElement&&k(e)&&"true"===(null==e?void 0:e.getAttribute("aria-selected"))}));if(-1!==e)X(L(F,e));else{var t=F.current.findIndex((function(e){return k(e)}));-1!==t&&X(L(F,t))}}),[X]);var Z=l((function(){var e=Array.isArray(_)?_:[_];return z?e=r.createElement(d,null,e):(F.current=F.current.slice(0,e.length),e=r.Children.map(e,(function(e,t){if(!r.isValidElement(e))return e;var i=e.props.id||"".concat(K,"-item-").concat(t),n=F.current[t],o=null==n||k(n);return r.cloneElement(e,{ref:function(e){return F.current[t]=e},tabIndex:G===t&&o?0:-1,id:i,component:A(V),role:e.props.role})}))),e}),[_,V,G,K,z]);return r.createElement(b.Provider,{value:{updateFocusedItem:X}},r.createElement(Q,{"data-testid":S||p(v.LIST,O),"data-vibe":h.LIST,ref:B,style:D,className:t(E.list,R),id:K,"aria-label":C,"aria-describedby":N,"aria-controls":P,tabIndex:-1,role:M},Z))}));export{g as default};
1
+ import{slicedToArray as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import t from"classnames";import r,{forwardRef as i,useRef as n,useState as a,useCallback as o,useEffect as s,useMemo as l}from"react";import{useMergeRef as c,useKeyEvent as u}from"@vibe/shared";import{VirtualizedListItems as d}from"./VirtualizedListItems/VirtualizedListItems.js";import{keyCodes as m,UP_DOWN_ARROWS as f}from"../../constants/keyCodes.js";import{getTestId as v,ComponentDefaultTestId as p}from"../../tests/testIds.js";import{ListContext as b}from"./utils/ListContext.js";import{useListId as y,getListItemIndexById as I,getNextListItemIndex as j,getPrevListItemIndex as L,getListItemIdByIndex as x,isListItem as A,getListItemComponentType as E}from"./utils/ListUtils.js";import h from"./List.module.scss.js";import{ComponentVibeId as k}from"../../tests/constants.js";var g=i((function(i,g){var O=i.className,R=i.id,T=i.component,V=void 0===T?"ul":T,_=i.children,C=i["aria-label"],N=i["aria-describedby"],P=i["aria-controls"],W=i.renderOnlyVisibleItems,z=void 0!==W&&W,D=i.style,H=i.role,S=void 0===H?"listbox":H,U=i["data-testid"],B=n(null),F=c(g,B),M=n([]),q=y(R),w=a(0),G=e(w,2),J=G[0],K=G[1],Q=V,X=o((function(e){var t;K(I(M,e)),null===(t=null==B?void 0:B.current)||void 0===t||t.setAttribute("aria-activedescendant",e)}),[]),Y=o((function(e){if(!z){e.preventDefault();var t=e.key===m.UP_ARROW,r=void 0;e.key===m.DOWN_ARROW&&M.current.length>J+1?r=j(J,M):t&&J>0&&(r=L(J,M)),void 0!==r&&(X(x(M,r)),M.current[r].focus())}}),[J,z,X]);u({keys:f,callback:Y,ref:B}),s((function(){var e=M.current.findIndex((function(e){return e instanceof HTMLElement&&A(e)&&"true"===(null==e?void 0:e.getAttribute("aria-selected"))}));if(-1!==e)X(x(M,e));else{var t=M.current.findIndex((function(e){return A(e)}));-1!==t&&X(x(M,t))}}),[X]);var Z=l((function(){var e=Array.isArray(_)?_:[_];return z?e=r.createElement(d,null,e):(M.current=M.current.slice(0,e.length),e=r.Children.map(e,(function(e,t){if(!r.isValidElement(e))return e;var i=e.props.id||"".concat(q,"-item-").concat(t),n=M.current[t],a=null==n||A(n);return r.cloneElement(e,{ref:function(e){return M.current[t]=e},tabIndex:J===t&&a?0:-1,id:i,component:E(V),role:e.props.role})}))),e}),[_,V,J,q,z]);return r.createElement(b.Provider,{value:{updateFocusedItem:X}},r.createElement(Q,{"data-testid":U||v(p.LIST,R),"data-vibe":k.LIST,ref:F,style:D,className:t(h.list,O),id:q,"aria-label":C,"aria-describedby":N,"aria-controls":P,tabIndex:-1,role:S},Z))}));export{g as default};
2
2
  //# sourceMappingURL=List.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","sources":["../../../../../src/components/List/List.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, {\n type AriaAttributes,\n type AriaRole,\n type CSSProperties,\n forwardRef,\n type ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState\n} from \"react\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport useKeyEvent from \"../../hooks/useKeyEvent\";\nimport { VirtualizedListItems } from \"./VirtualizedListItems/VirtualizedListItems\";\nimport { keyCodes, UP_DOWN_ARROWS } from \"../../constants/keyCodes\";\nimport { type VibeComponentProps } from \"../../types\";\nimport { type ListItemProps } from \"../ListItem/ListItem\";\nimport { type ListTitleProps } from \"../ListTitle/ListTitle\";\nimport { type ListElement } from \"./List.types\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport { ListContext } from \"./utils/ListContext\";\nimport {\n getListItemComponentType,\n getListItemIdByIndex,\n getListItemIndexById,\n getNextListItemIndex,\n getPrevListItemIndex,\n isListItem,\n useListId\n} from \"./utils/ListUtils\";\nimport styles from \"./List.module.scss\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nexport interface ListProps extends VibeComponentProps {\n /**\n * The wrapping component for the list.\n */\n component?: ListElement;\n /**\n * The ARIA label describing the list.\n */\n \"aria-label\"?: string;\n /**\n * The ID of an element that describes the list.\n */\n \"aria-describedby\"?: string;\n /**\n * The ID of an element controlled by the list.\n */\n \"aria-controls\"?: AriaAttributes[\"aria-controls\"];\n /**\n * The child elements inside the list.\n */\n children?: ReactElement<ListItemProps | ListTitleProps> | ReactElement<ListItemProps | ListTitleProps>[];\n /**\n * If true, uses a virtualized list to render only visible items for performance optimization.\n */\n renderOnlyVisibleItems?: boolean;\n /**\n * Custom inline styles applied to the list.\n */\n style?: CSSProperties;\n /**\n * The ARIA role of the list.\n */\n role?: AriaRole;\n}\n\nconst List = forwardRef(\n (\n {\n className,\n id,\n component = \"ul\",\n children,\n \"aria-label\": ariaLabel,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-controls\": ariaControls,\n renderOnlyVisibleItems = false,\n style,\n role = \"listbox\",\n \"data-testid\": dataTestId\n }: ListProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n const childrenRefs: React.MutableRefObject<HTMLElement[]> = useRef([]);\n\n const overrideId = useListId(id);\n const [focusIndex, setFocusIndex] = useState(0);\n const Component = component;\n\n const updateFocusedItem = useCallback((id: string) => {\n setFocusIndex(getListItemIndexById(childrenRefs, id));\n componentRef?.current?.setAttribute(\"aria-activedescendant\", id);\n }, []);\n\n const onUpDownArrows = useCallback(\n (event: KeyboardEvent) => {\n if (renderOnlyVisibleItems) {\n return;\n }\n event.preventDefault();\n\n const isUpKey = event.key === keyCodes.UP_ARROW;\n const isDownKey = event.key === keyCodes.DOWN_ARROW;\n let overrideFocusIndex = undefined;\n\n if (isDownKey && focusIndex + 1 < childrenRefs.current.length) {\n overrideFocusIndex = getNextListItemIndex(focusIndex, childrenRefs);\n } else if (isUpKey && focusIndex > 0) {\n overrideFocusIndex = getPrevListItemIndex(focusIndex, childrenRefs);\n }\n if (overrideFocusIndex !== undefined) {\n updateFocusedItem(getListItemIdByIndex(childrenRefs, overrideFocusIndex));\n childrenRefs.current[overrideFocusIndex].focus();\n }\n },\n [focusIndex, renderOnlyVisibleItems, updateFocusedItem]\n );\n\n useKeyEvent({\n keys: UP_DOWN_ARROWS,\n callback: onUpDownArrows,\n ref: componentRef\n });\n\n useEffect(() => {\n const selectedItemIndex = childrenRefs.current.findIndex(\n child => child instanceof HTMLElement && isListItem(child) && child?.getAttribute(\"aria-selected\") === \"true\"\n );\n if (selectedItemIndex !== -1) {\n updateFocusedItem(getListItemIdByIndex(childrenRefs, selectedItemIndex));\n } else {\n const firstFocusableIndex = childrenRefs.current.findIndex(child => isListItem(child));\n if (firstFocusableIndex !== -1) {\n updateFocusedItem(getListItemIdByIndex(childrenRefs, firstFocusableIndex));\n }\n }\n }, [updateFocusedItem]);\n\n const overrideChildren = useMemo(() => {\n let override: ReactElement | ReactElement[] = Array.isArray(children) ? children : [children];\n if (renderOnlyVisibleItems) {\n override = <VirtualizedListItems>{override}</VirtualizedListItems>;\n } else {\n childrenRefs.current = childrenRefs.current.slice(0, override.length);\n override = React.Children.map(override, (child, index) => {\n if (!React.isValidElement(child)) {\n return child;\n }\n const id = (child.props as ListItemProps).id || `${overrideId}-item-${index}`;\n const currentRef = childrenRefs.current[index];\n const isFocusableItem = currentRef === undefined || currentRef === null || isListItem(currentRef);\n return React.cloneElement(child, {\n // @ts-ignore not sure how to deal with ref here\n ref: ref => (childrenRefs.current[index] = ref),\n tabIndex: focusIndex === index && isFocusableItem ? 0 : -1,\n id,\n component: getListItemComponentType(component),\n role: (child.props as ListItemProps).role\n });\n });\n }\n\n return override;\n }, [children, component, focusIndex, overrideId, renderOnlyVisibleItems]);\n\n return (\n <ListContext.Provider value={{ updateFocusedItem }}>\n <Component\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.LIST, id)}\n data-vibe={ComponentVibeId.LIST}\n ref={mergedRef}\n style={style}\n className={cx(styles.list, className)}\n id={overrideId}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n aria-controls={ariaControls}\n tabIndex={-1}\n role={role}\n >\n {overrideChildren}\n </Component>\n </ListContext.Provider>\n );\n }\n);\n\nexport default List;\n"],"names":["List","forwardRef","_ref","ref","className","id","_ref$component","component","children","ariaLabel","ariaDescribedBy","ariaControls","_ref$renderOnlyVisibl","renderOnlyVisibleItems","style","_ref$role","role","dataTestId","componentRef","useRef","mergedRef","useMergeRef","childrenRefs","overrideId","useListId","_useState","useState","_useState2","_slicedToArray","focusIndex","setFocusIndex","Component","updateFocusedItem","useCallback","getListItemIndexById","_a","current","setAttribute","onUpDownArrows","event","preventDefault","isUpKey","key","keyCodes","UP_ARROW","overrideFocusIndex","undefined","DOWN_ARROW","length","getNextListItemIndex","getPrevListItemIndex","getListItemIdByIndex","focus","useKeyEvent","keys","UP_DOWN_ARROWS","callback","useEffect","selectedItemIndex","findIndex","child","HTMLElement","isListItem","getAttribute","firstFocusableIndex","overrideChildren","useMemo","override","Array","isArray","React","createElement","VirtualizedListItems","slice","Children","map","index","isValidElement","props","concat","currentRef","isFocusableItem","cloneElement","_ref2","tabIndex","getListItemComponentType","ListContext","Provider","value","getTestId","ComponentDefaultTestId","LIST","ComponentVibeId","cx","styles","list"],"mappings":"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"}
1
+ {"version":3,"file":"List.js","sources":["../../../../../src/components/List/List.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, {\n type AriaAttributes,\n type AriaRole,\n type CSSProperties,\n forwardRef,\n type ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState\n} from \"react\";\nimport { useMergeRef } from \"@vibe/shared\";\nimport useKeyEvent from \"../../hooks/useKeyEvent\";\nimport { VirtualizedListItems } from \"./VirtualizedListItems/VirtualizedListItems\";\nimport { keyCodes, UP_DOWN_ARROWS } from \"../../constants/keyCodes\";\nimport { type VibeComponentProps } from \"../../types\";\nimport { type ListItemProps } from \"../ListItem/ListItem\";\nimport { type ListTitleProps } from \"../ListTitle/ListTitle\";\nimport { type ListElement } from \"./List.types\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport { ListContext } from \"./utils/ListContext\";\nimport {\n getListItemComponentType,\n getListItemIdByIndex,\n getListItemIndexById,\n getNextListItemIndex,\n getPrevListItemIndex,\n isListItem,\n useListId\n} from \"./utils/ListUtils\";\nimport styles from \"./List.module.scss\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nexport interface ListProps extends VibeComponentProps {\n /**\n * The wrapping component for the list.\n */\n component?: ListElement;\n /**\n * The ARIA label describing the list.\n */\n \"aria-label\"?: string;\n /**\n * The ID of an element that describes the list.\n */\n \"aria-describedby\"?: string;\n /**\n * The ID of an element controlled by the list.\n */\n \"aria-controls\"?: AriaAttributes[\"aria-controls\"];\n /**\n * The child elements inside the list.\n */\n children?: ReactElement<ListItemProps | ListTitleProps> | ReactElement<ListItemProps | ListTitleProps>[];\n /**\n * If true, uses a virtualized list to render only visible items for performance optimization.\n */\n renderOnlyVisibleItems?: boolean;\n /**\n * Custom inline styles applied to the list.\n */\n style?: CSSProperties;\n /**\n * The ARIA role of the list.\n */\n role?: AriaRole;\n}\n\nconst List = forwardRef(\n (\n {\n className,\n id,\n component = \"ul\",\n children,\n \"aria-label\": ariaLabel,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-controls\": ariaControls,\n renderOnlyVisibleItems = false,\n style,\n role = \"listbox\",\n \"data-testid\": dataTestId\n }: ListProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n const childrenRefs: React.MutableRefObject<HTMLElement[]> = useRef([]);\n\n const overrideId = useListId(id);\n const [focusIndex, setFocusIndex] = useState(0);\n const Component = component;\n\n const updateFocusedItem = useCallback((id: string) => {\n setFocusIndex(getListItemIndexById(childrenRefs, id));\n componentRef?.current?.setAttribute(\"aria-activedescendant\", id);\n }, []);\n\n const onUpDownArrows = useCallback(\n (event: KeyboardEvent) => {\n if (renderOnlyVisibleItems) {\n return;\n }\n event.preventDefault();\n\n const isUpKey = event.key === keyCodes.UP_ARROW;\n const isDownKey = event.key === keyCodes.DOWN_ARROW;\n let overrideFocusIndex = undefined;\n\n if (isDownKey && focusIndex + 1 < childrenRefs.current.length) {\n overrideFocusIndex = getNextListItemIndex(focusIndex, childrenRefs);\n } else if (isUpKey && focusIndex > 0) {\n overrideFocusIndex = getPrevListItemIndex(focusIndex, childrenRefs);\n }\n if (overrideFocusIndex !== undefined) {\n updateFocusedItem(getListItemIdByIndex(childrenRefs, overrideFocusIndex));\n childrenRefs.current[overrideFocusIndex].focus();\n }\n },\n [focusIndex, renderOnlyVisibleItems, updateFocusedItem]\n );\n\n useKeyEvent({\n keys: UP_DOWN_ARROWS,\n callback: onUpDownArrows,\n ref: componentRef\n });\n\n useEffect(() => {\n const selectedItemIndex = childrenRefs.current.findIndex(\n child => child instanceof HTMLElement && isListItem(child) && child?.getAttribute(\"aria-selected\") === \"true\"\n );\n if (selectedItemIndex !== -1) {\n updateFocusedItem(getListItemIdByIndex(childrenRefs, selectedItemIndex));\n } else {\n const firstFocusableIndex = childrenRefs.current.findIndex(child => isListItem(child));\n if (firstFocusableIndex !== -1) {\n updateFocusedItem(getListItemIdByIndex(childrenRefs, firstFocusableIndex));\n }\n }\n }, [updateFocusedItem]);\n\n const overrideChildren = useMemo(() => {\n let override: ReactElement | ReactElement[] = Array.isArray(children) ? children : [children];\n if (renderOnlyVisibleItems) {\n override = <VirtualizedListItems>{override}</VirtualizedListItems>;\n } else {\n childrenRefs.current = childrenRefs.current.slice(0, override.length);\n override = React.Children.map(override, (child, index) => {\n if (!React.isValidElement(child)) {\n return child;\n }\n const id = (child.props as ListItemProps).id || `${overrideId}-item-${index}`;\n const currentRef = childrenRefs.current[index];\n const isFocusableItem = currentRef === undefined || currentRef === null || isListItem(currentRef);\n return React.cloneElement(child, {\n // @ts-ignore not sure how to deal with ref here\n ref: ref => (childrenRefs.current[index] = ref),\n tabIndex: focusIndex === index && isFocusableItem ? 0 : -1,\n id,\n component: getListItemComponentType(component),\n role: (child.props as ListItemProps).role\n });\n });\n }\n\n return override;\n }, [children, component, focusIndex, overrideId, renderOnlyVisibleItems]);\n\n return (\n <ListContext.Provider value={{ updateFocusedItem }}>\n <Component\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.LIST, id)}\n data-vibe={ComponentVibeId.LIST}\n ref={mergedRef}\n style={style}\n className={cx(styles.list, className)}\n id={overrideId}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n aria-controls={ariaControls}\n tabIndex={-1}\n role={role}\n >\n {overrideChildren}\n </Component>\n </ListContext.Provider>\n );\n }\n);\n\nexport default List;\n"],"names":["List","forwardRef","_ref","ref","className","id","_ref$component","component","children","ariaLabel","ariaDescribedBy","ariaControls","_ref$renderOnlyVisibl","renderOnlyVisibleItems","style","_ref$role","role","dataTestId","componentRef","useRef","mergedRef","useMergeRef","childrenRefs","overrideId","useListId","_useState","useState","_useState2","_slicedToArray","focusIndex","setFocusIndex","Component","updateFocusedItem","useCallback","getListItemIndexById","_a","current","setAttribute","onUpDownArrows","event","preventDefault","isUpKey","key","keyCodes","UP_ARROW","overrideFocusIndex","undefined","DOWN_ARROW","length","getNextListItemIndex","getPrevListItemIndex","getListItemIdByIndex","focus","useKeyEvent","keys","UP_DOWN_ARROWS","callback","useEffect","selectedItemIndex","findIndex","child","HTMLElement","isListItem","getAttribute","firstFocusableIndex","overrideChildren","useMemo","override","Array","isArray","React","createElement","VirtualizedListItems","slice","Children","map","index","isValidElement","props","concat","currentRef","isFocusableItem","cloneElement","_ref2","tabIndex","getListItemComponentType","ListContext","Provider","value","getTestId","ComponentDefaultTestId","LIST","ComponentVibeId","cx","styles","list"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import t from"react";import{NOOP as e}from"../../../utils/function-utils.js";var o=t.createContext({updateFocusedItem:e});export{o as ListContext};
1
+ import e from"react";import{NOOP as r}from"@vibe/shared";var t=e.createContext({updateFocusedItem:r});export{t as ListContext};
2
2
  //# sourceMappingURL=ListContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListContext.js","sources":["../../../../../../src/components/List/utils/ListContext.ts"],"sourcesContent":["import React from \"react\";\nimport { NOOP } from \"../../../utils/function-utils\";\n\ntype ListContextType = {\n /**\n * A callback function which is being called when the item is being focused by keyboard navigation\n * @param ListItem id\n */\n updateFocusedItem: (id: string) => void;\n};\n\nexport const ListContext = React.createContext<ListContextType>({ updateFocusedItem: NOOP });\n"],"names":["ListContext","React","createContext","updateFocusedItem","NOOP"],"mappings":"iFAWaA,EAAcC,EAAMC,cAA+B,CAAEC,kBAAmBC"}
1
+ {"version":3,"file":"ListContext.js","sources":["../../../../../../src/components/List/utils/ListContext.ts"],"sourcesContent":["import React from \"react\";\nimport { NOOP } from \"@vibe/shared\";\n\ntype ListContextType = {\n /**\n * A callback function which is being called when the item is being focused by keyboard navigation\n * @param ListItem id\n */\n updateFocusedItem: (id: string) => void;\n};\n\nexport const ListContext = React.createContext<ListContextType>({ updateFocusedItem: NOOP });\n"],"names":["ListContext","React","createContext","updateFocusedItem","NOOP"],"mappings":"6DAWaA,EAAcC,EAAMC,cAA+B,CAAEC,kBAAmBC"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as r}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as t}from"react";import n from"../../../hooks/ssr/useIsomorphicLayoutEffect.js";var e=0,u=function(){return"list-".concat(e++)},i=["option","listitem","menuitem","tab","treeitem"],o=function(e){var i=t(),o=r(i,2),c=o[0],f=o[1];return n((function(){f(e||u())}),[e]),c},c=function(r,t){var n;return null===(n=r.current[t])||void 0===n?void 0:n.id},f=function(r,t){return r.current.findIndex((function(r){return(null==r?void 0:r.id)===t}))},l=function(r){switch(r){case"ul":case"ol":return"li";case"nav":return"a";default:return"div"}},a=function(r){return r&&r instanceof HTMLElement&&i.includes(r.getAttribute("role"))},s=function(r,t){for(;t.current.length-1>r;){var n=t.current[++r];if(a(n))return r}},m=function(r,t){for(;r>0;){var n=t.current[--r];if(a(n))return r}};export{u as generateListId,l as getListItemComponentType,c as getListItemIdByIndex,f as getListItemIndexById,s as getNextListItemIndex,m as getPrevListItemIndex,a as isListItem,o as useListId};
1
+ import{slicedToArray as r}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as n}from"react";import{useIsomorphicLayoutEffect as t}from"@vibe/shared";var e=0,i=function(){return"list-".concat(e++)},u=["option","listitem","menuitem","tab","treeitem"],o=function(e){var u=n(),o=r(u,2),c=o[0],l=o[1];return t((function(){l(e||i())}),[e]),c},c=function(r,n){var t;return null===(t=r.current[n])||void 0===t?void 0:t.id},l=function(r,n){return r.current.findIndex((function(r){return(null==r?void 0:r.id)===n}))},a=function(r){switch(r){case"ul":case"ol":return"li";case"nav":return"a";default:return"div"}},f=function(r){return r&&r instanceof HTMLElement&&u.includes(r.getAttribute("role"))},s=function(r,n){for(;n.current.length-1>r;){var t=n.current[++r];if(f(t))return r}},d=function(r,n){for(;r>0;){var t=n.current[--r];if(f(t))return r}};export{i as generateListId,a as getListItemComponentType,c as getListItemIdByIndex,l as getListItemIndexById,s as getNextListItemIndex,d as getPrevListItemIndex,f as isListItem,o as useListId};
2
2
  //# sourceMappingURL=ListUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListUtils.js","sources":["../../../../../../src/components/List/utils/ListUtils.ts"],"sourcesContent":["import { type MutableRefObject, useState } from \"react\";\nimport { type ListItemElement } from \"../../ListItem/ListItem.types\";\nimport { type ListElement } from \"../List.types\";\nimport useIsomorphicLayoutEffect from \"../../../hooks/ssr/useIsomorphicLayoutEffect\";\n\nlet listIdCounter = 0;\nexport const generateListId = () => {\n return `list-${listIdCounter++}`;\n};\n\nconst VALID_ROLES = [\"option\", \"listitem\", \"menuitem\", \"tab\", \"treeitem\"];\n\nexport const useListId = (id: string) => {\n const [listId, setListId] = useState<string>();\n useIsomorphicLayoutEffect(() => {\n setListId(id || generateListId());\n }, [id]);\n return listId;\n};\n\nexport const getListItemIdByIndex = (childrenRefs: MutableRefObject<HTMLElement[]>, index: number): string => {\n return childrenRefs.current[index]?.id;\n};\n\nexport const getListItemIndexById = (childrenRefs: MutableRefObject<HTMLElement[]>, id: string): number => {\n return childrenRefs.current.findIndex(child => child?.id === id);\n};\n\nexport const getListItemComponentType = (listComponent: ListElement): ListItemElement => {\n switch (listComponent) {\n case \"ul\":\n case \"ol\":\n return \"li\";\n case \"nav\":\n return \"a\";\n default:\n return \"div\";\n }\n};\n\nexport const isListItem = (element: HTMLElement) => {\n return element && element instanceof HTMLElement && VALID_ROLES.includes(element.getAttribute(\"role\"));\n};\n\nexport const getNextListItemIndex = (currentIndex: number, childrenRefs: MutableRefObject<HTMLElement[]>) => {\n while (currentIndex < childrenRefs.current.length - 1) {\n const child = childrenRefs.current[++currentIndex];\n if (isListItem(child)) {\n return currentIndex;\n }\n }\n return undefined;\n};\n\nexport const getPrevListItemIndex = (currentIndex: number, childrenRefs: MutableRefObject<HTMLElement[]>) => {\n while (currentIndex > 0) {\n const child = childrenRefs.current[--currentIndex];\n if (isListItem(child)) {\n return currentIndex;\n }\n }\n return undefined;\n};\n"],"names":["listIdCounter","generateListId","concat","VALID_ROLES","useListId","id","_useState","useState","_useState2","_slicedToArray","listId","setListId","useIsomorphicLayoutEffect","getListItemIdByIndex","childrenRefs","index","_a","current","getListItemIndexById","findIndex","child","getListItemComponentType","listComponent","isListItem","element","HTMLElement","includes","getAttribute","getNextListItemIndex","currentIndex","length","getPrevListItemIndex"],"mappings":"kLAKA,IAAIA,EAAgB,EACPC,EAAiB,WAC5B,MAAAC,QAAAA,OAAeF,IACjB,EAEMG,EAAc,CAAC,SAAU,WAAY,WAAY,MAAO,YAEjDC,EAAY,SAACC,GACxB,IAAAC,EAA4BC,IAAkBC,EAAAC,EAAAH,EAAA,GAAvCI,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAIxB,OAHAI,GAA0B,WACxBD,EAAUN,GAAMJ,IAClB,GAAG,CAACI,IACGK,CACT,EAEaG,EAAuB,SAACC,EAA+CC,SAClF,OAAoC,QAA7BC,EAAAF,EAAaG,QAAQF,UAAQ,IAAAC,OAAA,EAAAA,EAAAX,EACtC,EAEaa,EAAuB,SAACJ,EAA+CT,GAClF,OAAOS,EAAaG,QAAQE,WAAU,SAAAC,GAAK,OAAIA,aAAA,EAAAA,EAAOf,MAAOA,IAC/D,EAEagB,EAA2B,SAACC,GACvC,OAAQA,GACN,IAAK,KACL,IAAK,KACH,MAAO,KACT,IAAK,MACH,MAAO,IACT,QACE,MAAO,MAEb,EAEaC,EAAa,SAACC,GACzB,OAAOA,GAAWA,aAAmBC,aAAetB,EAAYuB,SAASF,EAAQG,aAAa,QAChG,EAEaC,EAAuB,SAACC,EAAsBf,GACzD,KAAsBA,EAAaG,QAAQa,OAAS,EAA7CD,GAAgD,CACrD,IAAMT,EAAQN,EAAaG,UAAUY,GACrC,GAAIN,EAAWH,GACb,OAAOS,CAEX,CAEF,EAEaE,EAAuB,SAACF,EAAsBf,GACzD,KAAOe,EAAe,GAAG,CACvB,IAAMT,EAAQN,EAAaG,UAAUY,GACrC,GAAIN,EAAWH,GACb,OAAOS,CAEX,CAEF"}
1
+ {"version":3,"file":"ListUtils.js","sources":["../../../../../../src/components/List/utils/ListUtils.ts"],"sourcesContent":["import { type MutableRefObject, useState } from \"react\";\nimport { type ListItemElement } from \"../../ListItem/ListItem.types\";\nimport { type ListElement } from \"../List.types\";\nimport { useIsomorphicLayoutEffect } from \"@vibe/shared\";\n\nlet listIdCounter = 0;\nexport const generateListId = () => {\n return `list-${listIdCounter++}`;\n};\n\nconst VALID_ROLES = [\"option\", \"listitem\", \"menuitem\", \"tab\", \"treeitem\"];\n\nexport const useListId = (id: string) => {\n const [listId, setListId] = useState<string>();\n useIsomorphicLayoutEffect(() => {\n setListId(id || generateListId());\n }, [id]);\n return listId;\n};\n\nexport const getListItemIdByIndex = (childrenRefs: MutableRefObject<HTMLElement[]>, index: number): string => {\n return childrenRefs.current[index]?.id;\n};\n\nexport const getListItemIndexById = (childrenRefs: MutableRefObject<HTMLElement[]>, id: string): number => {\n return childrenRefs.current.findIndex(child => child?.id === id);\n};\n\nexport const getListItemComponentType = (listComponent: ListElement): ListItemElement => {\n switch (listComponent) {\n case \"ul\":\n case \"ol\":\n return \"li\";\n case \"nav\":\n return \"a\";\n default:\n return \"div\";\n }\n};\n\nexport const isListItem = (element: HTMLElement) => {\n return element && element instanceof HTMLElement && VALID_ROLES.includes(element.getAttribute(\"role\"));\n};\n\nexport const getNextListItemIndex = (currentIndex: number, childrenRefs: MutableRefObject<HTMLElement[]>) => {\n while (currentIndex < childrenRefs.current.length - 1) {\n const child = childrenRefs.current[++currentIndex];\n if (isListItem(child)) {\n return currentIndex;\n }\n }\n return undefined;\n};\n\nexport const getPrevListItemIndex = (currentIndex: number, childrenRefs: MutableRefObject<HTMLElement[]>) => {\n while (currentIndex > 0) {\n const child = childrenRefs.current[--currentIndex];\n if (isListItem(child)) {\n return currentIndex;\n }\n }\n return undefined;\n};\n"],"names":["listIdCounter","generateListId","concat","VALID_ROLES","useListId","id","_useState","useState","_useState2","_slicedToArray","listId","setListId","useIsomorphicLayoutEffect","getListItemIdByIndex","childrenRefs","index","_a","current","getListItemIndexById","findIndex","child","getListItemComponentType","listComponent","isListItem","element","HTMLElement","includes","getAttribute","getNextListItemIndex","currentIndex","length","getPrevListItemIndex"],"mappings":"4KAKA,IAAIA,EAAgB,EACPC,EAAiB,WAC5B,MAAAC,QAAAA,OAAeF,IACjB,EAEMG,EAAc,CAAC,SAAU,WAAY,WAAY,MAAO,YAEjDC,EAAY,SAACC,GACxB,IAAAC,EAA4BC,IAAkBC,EAAAC,EAAAH,EAAA,GAAvCI,EAAMF,EAAA,GAAEG,EAASH,EAAA,GAIxB,OAHAI,GAA0B,WACxBD,EAAUN,GAAMJ,IAClB,GAAG,CAACI,IACGK,CACT,EAEaG,EAAuB,SAACC,EAA+CC,SAClF,OAAoC,QAA7BC,EAAAF,EAAaG,QAAQF,UAAQ,IAAAC,OAAA,EAAAA,EAAAX,EACtC,EAEaa,EAAuB,SAACJ,EAA+CT,GAClF,OAAOS,EAAaG,QAAQE,WAAU,SAAAC,GAAK,OAAIA,aAAA,EAAAA,EAAOf,MAAOA,IAC/D,EAEagB,EAA2B,SAACC,GACvC,OAAQA,GACN,IAAK,KACL,IAAK,KACH,MAAO,KACT,IAAK,MACH,MAAO,IACT,QACE,MAAO,MAEb,EAEaC,EAAa,SAACC,GACzB,OAAOA,GAAWA,aAAmBC,aAAetB,EAAYuB,SAASF,EAAQG,aAAa,QAChG,EAEaC,EAAuB,SAACC,EAAsBf,GACzD,KAAsBA,EAAaG,QAAQa,OAAS,EAA7CD,GAAgD,CACrD,IAAMT,EAAQN,EAAaG,UAAUY,GACrC,GAAIN,EAAWH,GACb,OAAOS,CAEX,CAEF,EAEaE,EAAuB,SAACF,EAAsBf,GACzD,KAAOe,EAAe,GAAG,CACvB,IAAMT,EAAQN,EAAaG,UAAUY,GACrC,GAAIN,EAAWH,GACb,OAAOS,CAEX,CAEF"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import o from"classnames";import t,{forwardRef as s,useContext as i,useRef as r,useEffect as n,useCallback as a}from"react";import{camelCase as m}from"es-toolkit";import{getStyle as l}from"../../helpers/typesciptCssModulesHelper.js";import{Text as d}from"@vibe/typography/mockedClassNames";import{SELECTION_KEYS as p}from"../../constants/keyCodes.js";import{SIZES as u}from"../../constants/sizes.js";import{NOOP as c}from"../../utils/function-utils.js";import f from"../../hooks/useKeyEvent/index.js";import"@vibe/hooks";import"../Menu/Menu/hooks/useLastNavigationDirection.js";import"../../hooks/useFullKeyboardListeners.js";import"../../hooks/useActiveDescendantListFocus/index.js";import"../../hooks/useVibeMediaQuery/index.js";import"../../hooks/useSwitch/index.js";import v from"../../hooks/useMergeRef.js";import{ListContext as j}from"../List/utils/ListContext.js";import k from"./ListItem.module.scss.js";var b=s((function(s,b){var h=s.className,y=s.id,x=s.component,L=void 0===x?"div":x,M=s.onClick,C=void 0===M?c:M,I=s.onHover,g=void 0===I?c:I,N=s.selected,F=s.disabled,P=void 0!==F&&F,E=s.size,H=void 0===E?u.SMALL:E,z=s.tabIndex,A=void 0===z?0:z,D=s.children,K=s["aria-current"],S=s["data-testid"],_=s.role,w=void 0===_?"option":_,B=s.tooltipProps,O=i(j).updateFocusedItem,Q=r(null),R=v(b,Q);n((function(){N&&(null==O||O(y))}),[N,y,O]);var V=a((function(e){P||C(e,y)}),[P,C,y]),q=a((function(e){return V(e)}),[V]);f({keys:p,ref:Q,callback:q});var G=a((function(e){P||g(e,y)}),[P,g,y]);return t.createElement(d,{element:L,"data-testid":S||y,ref:R,className:o(k.listItem,h,l(k,m(H)),e(e({},k.selected,N&&!P),k.disabled,P)),id:y,type:"text2","aria-disabled":P,"aria-selected":N,onClick:V,onMouseEnter:G,onFocus:G,role:w,tabIndex:A,"aria-current":K,tooltipProps:B},D)}));Object.assign(b,{displayName:"ListItem"});export{b as default};
1
+ import{defineProperty as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import o from"classnames";import t,{forwardRef as i,useContext as s,useRef as r,useEffect as a,useCallback as n}from"react";import{camelCase as d}from"es-toolkit";import{useMergeRef as m,useKeyEvent as l,getStyle as c,NOOP as p}from"@vibe/shared";import{Text as u}from"@vibe/typography/mockedClassNames";import{SELECTION_KEYS as f}from"../../constants/keyCodes.js";import{SIZES as v}from"../../constants/sizes.js";import"@vibe/hooks";import"../Menu/Menu/hooks/useLastNavigationDirection.js";import"../../hooks/useFullKeyboardListeners.js";import"../../hooks/useActiveDescendantListFocus/index.js";import"../../hooks/useVibeMediaQuery/index.js";import"../../hooks/useSwitch/index.js";import{ListContext as b}from"../List/utils/ListContext.js";import k from"./ListItem.module.scss.js";var j=i((function(i,j){var h=i.className,y=i.id,L=i.component,x=void 0===L?"div":L,I=i.onClick,C=void 0===I?p:I,M=i.onHover,N=void 0===M?p:M,g=i.selected,F=i.disabled,P=void 0!==F&&F,z=i.size,A=void 0===z?v.SMALL:z,D=i.tabIndex,E=void 0===D?0:D,H=i.children,S=i["aria-current"],_=i["data-testid"],w=i.role,B=void 0===w?"option":w,K=i.tooltipProps,O=s(b).updateFocusedItem,Q=r(null),V=m(j,Q);a((function(){g&&(null==O||O(y))}),[g,y,O]);var q=n((function(e){P||C(e,y)}),[P,C,y]),G=n((function(e){return q(e)}),[q]);l({keys:f,ref:Q,callback:G});var J=n((function(e){P||N(e,y)}),[P,N,y]);return t.createElement(u,{element:x,"data-testid":_||y,ref:V,className:o(k.listItem,h,c(k,d(A)),e(e({},k.selected,g&&!P),k.disabled,P)),id:y,type:"text2","aria-disabled":P,"aria-selected":g,onClick:q,onMouseEnter:J,onFocus:J,role:B,tabIndex:E,"aria-current":S,tooltipProps:K},H)}));Object.assign(j,{displayName:"ListItem"});export{j as default};
2
2
  //# sourceMappingURL=ListItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.js","sources":["../../../../../src/components/ListItem/ListItem.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, {\n type AriaAttributes,\n type AriaRole,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useRef\n} from \"react\";\nimport { camelCase } from \"es-toolkit\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport { Text } from \"@vibe/typography\";\nimport { SIZES, SELECTION_KEYS } from \"../../constants\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport { type VibeComponentProps, type ElementContent } from \"../../types\";\nimport { useKeyEvent } from \"../../hooks\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport { ListContext } from \"../List/utils/ListContext\";\nimport { type ListItemElement, type ListItemSize } from \"./ListItem.types\";\nimport { type TooltipProps } from \"@vibe/tooltip\";\nimport styles from \"./ListItem.module.scss\";\n\nexport interface ListItemProps extends VibeComponentProps {\n /**\n * The HTML element used for the list item.\n */\n component?: ListItemElement;\n /**\n * The textual content inside the list item.\n */\n children?: ElementContent;\n /**\n * Callback fired when the item is clicked.\n */\n onClick?: (event: React.MouseEvent | React.KeyboardEvent, id: string) => void;\n /**\n * Callback fired when the item is hovered.\n */\n onHover?: (event: React.MouseEvent | React.FocusEvent, id: string) => void;\n /**\n * If true, disables the item and prevents interactions.\n */\n disabled?: boolean;\n /**\n * If true, marks the item as selected.\n */\n selected?: boolean;\n /**\n * The size of the list item.\n */\n size?: ListItemSize;\n /**\n * The tab index of the list item for keyboard navigation.\n */\n tabIndex?: number;\n /**\n * Indicates the current state of the item in a set of items.\n */\n \"aria-current\"?: AriaAttributes[\"aria-current\"];\n /**\n * The ARIA role of the list item.\n */\n role?: AriaRole;\n /**\n * Props passed to the tooltip displayed when hovering over the text.\n */\n tooltipProps?: Partial<TooltipProps>;\n}\n\nconst ListItem = forwardRef(\n (\n {\n className,\n id,\n component = \"div\",\n onClick = NOOP,\n onHover = NOOP,\n selected,\n disabled = false,\n size = SIZES.SMALL,\n tabIndex = 0,\n children,\n \"aria-current\": ariaCurrent,\n \"data-testid\": dataTestId,\n role = \"option\",\n tooltipProps\n }: ListItemProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const { updateFocusedItem } = useContext(ListContext);\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n useEffect(() => {\n if (selected) {\n updateFocusedItem?.(id);\n }\n }, [selected, id, updateFocusedItem]);\n\n const componentOnClick = useCallback(\n (event: React.MouseEvent | React.KeyboardEvent) => {\n if (disabled) return;\n onClick(event, id);\n },\n [disabled, onClick, id]\n );\n\n const onKeyboardSelect = useCallback((event: React.KeyboardEvent) => componentOnClick(event), [componentOnClick]);\n\n useKeyEvent({\n keys: SELECTION_KEYS,\n ref: componentRef,\n callback: onKeyboardSelect\n });\n\n const componentOnHover = useCallback(\n (event: React.MouseEvent | React.FocusEvent) => {\n if (disabled) return;\n onHover(event, id);\n },\n [disabled, onHover, id]\n );\n\n return (\n <Text\n element={component}\n data-testid={dataTestId || id}\n ref={mergedRef}\n className={cx(styles.listItem, className, getStyle(styles, camelCase(size)), {\n [styles.selected]: selected && !disabled,\n [styles.disabled]: disabled\n })}\n id={id}\n type=\"text2\"\n aria-disabled={disabled}\n aria-selected={selected}\n onClick={componentOnClick}\n onMouseEnter={componentOnHover}\n onFocus={componentOnHover}\n role={role}\n tabIndex={tabIndex}\n aria-current={ariaCurrent}\n tooltipProps={tooltipProps}\n >\n {children}\n </Text>\n );\n }\n);\n\nObject.assign(ListItem, {\n // Used by VirtualizedListItems\n displayName: \"ListItem\"\n});\n\nexport default ListItem;\n"],"names":["ListItem","forwardRef","_ref","ref","className","id","_ref$component","component","_ref$onClick","onClick","NOOP","_ref$onHover","onHover","selected","_ref$disabled","disabled","_ref$size","size","SIZES","SMALL","_ref$tabIndex","tabIndex","children","ariaCurrent","dataTestId","_ref$role","role","tooltipProps","updateFocusedItem","useContext","ListContext","componentRef","useRef","mergedRef","useMergeRef","useEffect","componentOnClick","useCallback","event","onKeyboardSelect","useKeyEvent","keys","SELECTION_KEYS","callback","componentOnHover","React","createElement","Text","element","cx","styles","listItem","getStyle","camelCase","_defineProperty","type","onMouseEnter","onFocus","Object","assign","displayName"],"mappings":"g+BAsEMA,IAAAA,EAAWC,GACf,SAAAC,EAiBEC,GACE,IAhBAC,EAASF,EAATE,UACAC,EAAEH,EAAFG,GAAEC,EAAAJ,EACFK,UAAAA,OAAY,IAAHD,EAAG,MAAKA,EAAAE,EAAAN,EACjBO,QAAAA,OAAUC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAT,EACdU,QAAAA,OAAUF,IAAHC,EAAGD,EAAIC,EACdE,EAAQX,EAARW,SAAQC,EAAAZ,EACRa,SAAAA,OAAW,IAAHD,GAAQA,EAAAE,EAAAd,EAChBe,KAAAA,OAAI,IAAAD,EAAGE,EAAMC,MAAKH,EAAAI,EAAAlB,EAClBmB,SAAAA,OAAW,IAAHD,EAAG,EAACA,EACZE,EAAQpB,EAARoB,SACgBC,EAAWrB,EAA3B,gBACesB,EAAUtB,EAAzB,eAAauB,EAAAvB,EACbwB,KAAAA,OAAO,IAAHD,EAAG,SAAQA,EACfE,EAAYzB,EAAZyB,aAIMC,EAAsBC,EAAWC,GAAjCF,kBACFG,EAAeC,EAAO,MACtBC,EAAYC,EAAY/B,EAAK4B,GAEnCI,GAAU,WACJtB,IACFe,SAAAA,EAAoBvB,GAEvB,GAAE,CAACQ,EAAUR,EAAIuB,IAElB,IAAMQ,EAAmBC,GACvB,SAACC,GACKvB,GACJN,EAAQ6B,EAAOjC,EAChB,GACD,CAACU,EAAUN,EAASJ,IAGhBkC,EAAmBF,GAAY,SAACC,GAA0B,OAAKF,EAAiBE,KAAQ,CAACF,IAE/FI,EAAY,CACVC,KAAMC,EACNvC,IAAK4B,EACLY,SAAUJ,IAGZ,IAAMK,EAAmBP,GACvB,SAACC,GACKvB,GACJH,EAAQ0B,EAAOjC,EAChB,GACD,CAACU,EAAUH,EAASP,IAGtB,OACEwC,EAAAC,cAACC,EAAI,CACHC,QAASzC,EACI,cAAAiB,GAAcnB,EAC3BF,IAAK8B,EACL7B,UAAW6C,EAAGC,EAAOC,SAAU/C,EAAWgD,EAASF,EAAQG,EAAUpC,IAAMqC,EAAAA,EACxEJ,CAAAA,EAAAA,EAAOrC,SAAWA,IAAaE,GAC/BmC,EAAOnC,SAAWA,IAErBV,GAAIA,EACJkD,KAAK,QAAO,gBACGxC,EACA,gBAAAF,EACfJ,QAAS2B,EACToB,aAAcZ,EACda,QAASb,EACTlB,KAAMA,EACNL,SAAUA,iBACIE,EACdI,aAAcA,GAEbL,EAGP,IAGFoC,OAAOC,OAAO3D,EAAU,CAEtB4D,YAAa"}
1
+ {"version":3,"file":"ListItem.js","sources":["../../../../../src/components/ListItem/ListItem.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, {\n type AriaAttributes,\n type AriaRole,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useRef\n} from \"react\";\nimport { camelCase } from \"es-toolkit\";\nimport { getStyle, NOOP, useMergeRef } from \"@vibe/shared\";\nimport { Text } from \"@vibe/typography\";\nimport { SIZES, SELECTION_KEYS } from \"../../constants\";\n\nimport { type VibeComponentProps, type ElementContent } from \"../../types\";\nimport { useKeyEvent } from \"../../hooks\";\n\nimport { ListContext } from \"../List/utils/ListContext\";\nimport { type ListItemElement, type ListItemSize } from \"./ListItem.types\";\nimport { type TooltipProps } from \"@vibe/tooltip\";\nimport styles from \"./ListItem.module.scss\";\n\nexport interface ListItemProps extends VibeComponentProps {\n /**\n * The HTML element used for the list item.\n */\n component?: ListItemElement;\n /**\n * The textual content inside the list item.\n */\n children?: ElementContent;\n /**\n * Callback fired when the item is clicked.\n */\n onClick?: (event: React.MouseEvent | React.KeyboardEvent, id: string) => void;\n /**\n * Callback fired when the item is hovered.\n */\n onHover?: (event: React.MouseEvent | React.FocusEvent, id: string) => void;\n /**\n * If true, disables the item and prevents interactions.\n */\n disabled?: boolean;\n /**\n * If true, marks the item as selected.\n */\n selected?: boolean;\n /**\n * The size of the list item.\n */\n size?: ListItemSize;\n /**\n * The tab index of the list item for keyboard navigation.\n */\n tabIndex?: number;\n /**\n * Indicates the current state of the item in a set of items.\n */\n \"aria-current\"?: AriaAttributes[\"aria-current\"];\n /**\n * The ARIA role of the list item.\n */\n role?: AriaRole;\n /**\n * Props passed to the tooltip displayed when hovering over the text.\n */\n tooltipProps?: Partial<TooltipProps>;\n}\n\nconst ListItem = forwardRef(\n (\n {\n className,\n id,\n component = \"div\",\n onClick = NOOP,\n onHover = NOOP,\n selected,\n disabled = false,\n size = SIZES.SMALL,\n tabIndex = 0,\n children,\n \"aria-current\": ariaCurrent,\n \"data-testid\": dataTestId,\n role = \"option\",\n tooltipProps\n }: ListItemProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const { updateFocusedItem } = useContext(ListContext);\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n useEffect(() => {\n if (selected) {\n updateFocusedItem?.(id);\n }\n }, [selected, id, updateFocusedItem]);\n\n const componentOnClick = useCallback(\n (event: React.MouseEvent | React.KeyboardEvent) => {\n if (disabled) return;\n onClick(event, id);\n },\n [disabled, onClick, id]\n );\n\n const onKeyboardSelect = useCallback((event: React.KeyboardEvent) => componentOnClick(event), [componentOnClick]);\n\n useKeyEvent({\n keys: SELECTION_KEYS,\n ref: componentRef,\n callback: onKeyboardSelect\n });\n\n const componentOnHover = useCallback(\n (event: React.MouseEvent | React.FocusEvent) => {\n if (disabled) return;\n onHover(event, id);\n },\n [disabled, onHover, id]\n );\n\n return (\n <Text\n element={component}\n data-testid={dataTestId || id}\n ref={mergedRef}\n className={cx(styles.listItem, className, getStyle(styles, camelCase(size)), {\n [styles.selected]: selected && !disabled,\n [styles.disabled]: disabled\n })}\n id={id}\n type=\"text2\"\n aria-disabled={disabled}\n aria-selected={selected}\n onClick={componentOnClick}\n onMouseEnter={componentOnHover}\n onFocus={componentOnHover}\n role={role}\n tabIndex={tabIndex}\n aria-current={ariaCurrent}\n tooltipProps={tooltipProps}\n >\n {children}\n </Text>\n );\n }\n);\n\nObject.assign(ListItem, {\n // Used by VirtualizedListItems\n displayName: \"ListItem\"\n});\n\nexport default ListItem;\n"],"names":["ListItem","forwardRef","_ref","ref","className","id","_ref$component","component","_ref$onClick","onClick","NOOP","_ref$onHover","onHover","selected","_ref$disabled","disabled","_ref$size","size","SIZES","SMALL","_ref$tabIndex","tabIndex","children","ariaCurrent","dataTestId","_ref$role","role","tooltipProps","updateFocusedItem","useContext","ListContext","componentRef","useRef","mergedRef","useMergeRef","useEffect","componentOnClick","useCallback","event","onKeyboardSelect","useKeyEvent","keys","SELECTION_KEYS","callback","componentOnHover","React","createElement","Text","element","cx","styles","listItem","getStyle","camelCase","_defineProperty","type","onMouseEnter","onFocus","Object","assign","displayName"],"mappings":"+1BAsEMA,IAAAA,EAAWC,GACf,SAAAC,EAiBEC,GACE,IAhBAC,EAASF,EAATE,UACAC,EAAEH,EAAFG,GAAEC,EAAAJ,EACFK,UAAAA,OAAY,IAAHD,EAAG,MAAKA,EAAAE,EAAAN,EACjBO,QAAAA,OAAUC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAT,EACdU,QAAAA,OAAUF,IAAHC,EAAGD,EAAIC,EACdE,EAAQX,EAARW,SAAQC,EAAAZ,EACRa,SAAAA,OAAW,IAAHD,GAAQA,EAAAE,EAAAd,EAChBe,KAAAA,OAAI,IAAAD,EAAGE,EAAMC,MAAKH,EAAAI,EAAAlB,EAClBmB,SAAAA,OAAW,IAAHD,EAAG,EAACA,EACZE,EAAQpB,EAARoB,SACgBC,EAAWrB,EAA3B,gBACesB,EAAUtB,EAAzB,eAAauB,EAAAvB,EACbwB,KAAAA,OAAO,IAAHD,EAAG,SAAQA,EACfE,EAAYzB,EAAZyB,aAIMC,EAAsBC,EAAWC,GAAjCF,kBACFG,EAAeC,EAAO,MACtBC,EAAYC,EAAY/B,EAAK4B,GAEnCI,GAAU,WACJtB,IACFe,SAAAA,EAAoBvB,GAEvB,GAAE,CAACQ,EAAUR,EAAIuB,IAElB,IAAMQ,EAAmBC,GACvB,SAACC,GACKvB,GACJN,EAAQ6B,EAAOjC,EAChB,GACD,CAACU,EAAUN,EAASJ,IAGhBkC,EAAmBF,GAAY,SAACC,GAA0B,OAAKF,EAAiBE,KAAQ,CAACF,IAE/FI,EAAY,CACVC,KAAMC,EACNvC,IAAK4B,EACLY,SAAUJ,IAGZ,IAAMK,EAAmBP,GACvB,SAACC,GACKvB,GACJH,EAAQ0B,EAAOjC,EAChB,GACD,CAACU,EAAUH,EAASP,IAGtB,OACEwC,EAAAC,cAACC,EAAI,CACHC,QAASzC,EACI,cAAAiB,GAAcnB,EAC3BF,IAAK8B,EACL7B,UAAW6C,EAAGC,EAAOC,SAAU/C,EAAWgD,EAASF,EAAQG,EAAUpC,IAAMqC,EAAAA,EACxEJ,CAAAA,EAAAA,EAAOrC,SAAWA,IAAaE,GAC/BmC,EAAOnC,SAAWA,IAErBV,GAAIA,EACJkD,KAAK,QAAO,gBACGxC,EACA,gBAAAF,EACfJ,QAAS2B,EACToB,aAAcZ,EACda,QAASb,EACTlB,KAAMA,EACNL,SAAUA,iBACIE,EACdI,aAAcA,GAEbL,EAGP,IAGFoC,OAAOC,OAAO3D,EAAU,CAEtB4D,YAAa"}
@@ -1,2 +1,2 @@
1
- import a,{forwardRef as e,useRef as r}from"react";import t from"classnames";import s from"../../hooks/useMergeRef.js";import m from"../Avatar/Avatar.js";import o from"./ListItemAvatar.module.scss.js";var i=e((function(e,i){var l=e.className,c=e.id,n=e.src,v=e.avatarClassName,f=e.component,d=void 0===f?"div":f,p=r(null),u=s(i,p);return a.createElement(d,{ref:u,className:t(o.listItemAvatar,l),id:c,"aria-hidden":"true"},a.createElement(m,{src:n,type:"img",size:"small",className:t(o.avatar,v)}))}));export{i as default};
1
+ import a,{forwardRef as r,useRef as e}from"react";import t from"classnames";import{useMergeRef as s}from"@vibe/shared";import m from"../Avatar/Avatar.js";import i from"./ListItemAvatar.module.scss.js";var o=r((function(r,o){var l=r.className,c=r.id,v=r.src,n=r.avatarClassName,d=r.component,f=void 0===d?"div":d,p=e(null),u=s(o,p);return a.createElement(f,{ref:u,className:t(i.listItemAvatar,l),id:c,"aria-hidden":"true"},a.createElement(m,{src:v,type:"img",size:"small",className:t(i.avatar,n)}))}));export{o as default};
2
2
  //# sourceMappingURL=ListItemAvatar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListItemAvatar.js","sources":["../../../../../src/components/ListItemAvatar/ListItemAvatar.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from \"react\";\nimport cx from \"classnames\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport { type VibeComponentProps } from \"../../types\";\nimport Avatar from \"../Avatar/Avatar\";\nimport { type ListItemElement } from \"../ListItem\";\nimport styles from \"./ListItemAvatar.module.scss\";\n\nexport interface ListItemAvatarProps extends VibeComponentProps {\n /**\n * The HTML element used for the list item avatar.\n */\n component?: ListItemElement;\n /**\n * The source URL of the avatar image.\n */\n src?: string;\n /**\n * Class name applied to the avatar.\n */\n avatarClassName?: string;\n}\n\nconst ListItemAvatar = forwardRef(\n (\n { className, id, src, avatarClassName, component: Component = \"div\" }: ListItemAvatarProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n return (\n <Component ref={mergedRef} className={cx(styles.listItemAvatar, className)} id={id} aria-hidden=\"true\">\n <Avatar src={src} type=\"img\" size=\"small\" className={cx(styles.avatar, avatarClassName)} />\n </Component>\n );\n }\n);\n\nexport default ListItemAvatar;\n"],"names":["ListItemAvatar","forwardRef","_ref","ref","className","id","src","avatarClassName","_ref$component","component","Component","componentRef","useRef","mergedRef","useMergeRef","React","cx","styles","listItemAvatar","createElement","Avatar","type","size","avatar"],"mappings":"wMAuBMA,IAAAA,EAAiBC,GACrB,SAAAC,EAEEC,GACE,IAFAC,EAASF,EAATE,UAAWC,EAAEH,EAAFG,GAAIC,EAAGJ,EAAHI,IAAKC,EAAeL,EAAfK,gBAAeC,EAAAN,EAAEO,UAAWC,OAAY,IAAHF,EAAG,MAAKA,EAG7DG,EAAeC,EAAO,MACtBC,EAAYC,EAAYX,EAAKQ,GAEnC,OACEI,gBAACL,EAAS,CAACP,IAAKU,EAAWT,UAAWY,EAAGC,EAAOC,eAAgBd,GAAYC,GAAIA,EAAE,cAAc,QAC9FU,EAACI,cAAAC,EAAO,CAAAd,IAAKA,EAAKe,KAAK,MAAMC,KAAK,QAAQlB,UAAWY,EAAGC,EAAOM,OAAQhB,KAG7E"}
1
+ {"version":3,"file":"ListItemAvatar.js","sources":["../../../../../src/components/ListItemAvatar/ListItemAvatar.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from \"react\";\nimport cx from \"classnames\";\nimport { useMergeRef } from \"@vibe/shared\";\nimport { type VibeComponentProps } from \"../../types\";\nimport Avatar from \"../Avatar/Avatar\";\nimport { type ListItemElement } from \"../ListItem\";\nimport styles from \"./ListItemAvatar.module.scss\";\n\nexport interface ListItemAvatarProps extends VibeComponentProps {\n /**\n * The HTML element used for the list item avatar.\n */\n component?: ListItemElement;\n /**\n * The source URL of the avatar image.\n */\n src?: string;\n /**\n * Class name applied to the avatar.\n */\n avatarClassName?: string;\n}\n\nconst ListItemAvatar = forwardRef(\n (\n { className, id, src, avatarClassName, component: Component = \"div\" }: ListItemAvatarProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n return (\n <Component ref={mergedRef} className={cx(styles.listItemAvatar, className)} id={id} aria-hidden=\"true\">\n <Avatar src={src} type=\"img\" size=\"small\" className={cx(styles.avatar, avatarClassName)} />\n </Component>\n );\n }\n);\n\nexport default ListItemAvatar;\n"],"names":["ListItemAvatar","forwardRef","_ref","ref","className","id","src","avatarClassName","_ref$component","component","Component","componentRef","useRef","mergedRef","useMergeRef","React","cx","styles","listItemAvatar","createElement","Avatar","type","size","avatar"],"mappings":"yMAuBMA,IAAAA,EAAiBC,GACrB,SAAAC,EAEEC,GACE,IAFAC,EAASF,EAATE,UAAWC,EAAEH,EAAFG,GAAIC,EAAGJ,EAAHI,IAAKC,EAAeL,EAAfK,gBAAeC,EAAAN,EAAEO,UAAWC,OAAY,IAAHF,EAAG,MAAKA,EAG7DG,EAAeC,EAAO,MACtBC,EAAYC,EAAYX,EAAKQ,GAEnC,OACEI,gBAACL,EAAS,CAACP,IAAKU,EAAWT,UAAWY,EAAGC,EAAOC,eAAgBd,GAAYC,GAAIA,EAAE,cAAc,QAC9FU,EAACI,cAAAC,EAAO,CAAAd,IAAKA,EAAKe,KAAK,MAAMC,KAAK,QAAQlB,UAAWY,EAAGC,EAAOM,OAAQhB,KAG7E"}
@@ -1,2 +1,2 @@
1
- import e from"classnames";import o,{forwardRef as r,useRef as s}from"react";import t from"../../hooks/useMergeRef.js";import{Icon as i}from"@vibe/icon/mockedClassNames";import{getStyle as m}from"../../helpers/typesciptCssModulesHelper.js";import a from"./ListItemIcon.module.scss.js";var c=18,n=r((function(r,c){var n=r.className,l=r.id,p=r.icon,d=r.margin,f=void 0===d?"start":d,u=r.component,v=void 0===u?"div":u,I=s(null),g=t(c,I);return o.createElement(v,{ref:g,className:e(a.listItemIcon,m(a,f),n),id:l,"aria-hidden":"true"},o.createElement(i,{icon:p,ignoreFocusStyle:!0,size:18}))}));export{c as LIST_ITEM_ICON_SIZE,n as default};
1
+ import e from"classnames";import o,{forwardRef as r,useRef as i}from"react";import{useMergeRef as t,getStyle as m}from"@vibe/shared";import{Icon as s}from"@vibe/icon/mockedClassNames";import a from"./ListItemIcon.module.scss.js";var n=18,c=r((function(r,n){var c=r.className,l=r.id,d=r.icon,f=r.margin,p=void 0===f?"start":f,u=r.component,v=void 0===u?"div":u,I=i(null),N=t(n,I);return o.createElement(v,{ref:N,className:e(a.listItemIcon,m(a,p),c),id:l,"aria-hidden":"true"},o.createElement(s,{icon:d,ignoreFocusStyle:!0,size:18}))}));export{n as LIST_ITEM_ICON_SIZE,c as default};
2
2
  //# sourceMappingURL=ListItemIcon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListItemIcon.js","sources":["../../../../../src/components/ListItemIcon/ListItemIcon.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { forwardRef, useRef } from \"react\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport { Icon, type SubIcon } from \"@vibe/icon\";\nimport { type ListItemElement } from \"../ListItem\";\nimport { type VibeComponentProps } from \"../../types\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport styles from \"./ListItemIcon.module.scss\";\nimport { type ListItemIconMargin } from \"./ListItemIcon.types\";\n\nexport const LIST_ITEM_ICON_SIZE = 18;\n\nexport interface ListItemIconProps extends VibeComponentProps {\n /**\n * The HTML element used for the list item icon.\n */\n component?: ListItemElement;\n /**\n * The icon displayed inside the list item.\n */\n icon?: SubIcon;\n /**\n * The position of the icon inside the list item, determining its margins.\n */\n margin?: ListItemIconMargin;\n}\n\nconst ListItemIcon = forwardRef(\n (\n { className, id, icon, margin = \"start\", component: Component = \"div\" }: ListItemIconProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n return (\n <Component\n ref={mergedRef}\n className={cx(styles.listItemIcon, getStyle(styles, margin), className)}\n id={id}\n aria-hidden=\"true\"\n >\n <Icon icon={icon} ignoreFocusStyle size={LIST_ITEM_ICON_SIZE} />\n </Component>\n );\n }\n);\n\nexport default ListItemIcon;\n"],"names":["LIST_ITEM_ICON_SIZE","ListItemIcon","forwardRef","_ref","ref","className","id","icon","_ref$margin","margin","_ref$component","component","Component","componentRef","useRef","mergedRef","useMergeRef","React","createElement","cx","styles","listItemIcon","getStyle","Icon","ignoreFocusStyle","size"],"mappings":"4RAUO,IAAMA,EAAsB,GAiB7BC,EAAeC,GACnB,SAAAC,EAEEC,GACE,IAFAC,EAASF,EAATE,UAAWC,EAAEH,EAAFG,GAAIC,EAAIJ,EAAJI,KAAIC,EAAAL,EAAEM,OAAAA,OAAS,IAAHD,EAAG,QAAOA,EAAAE,EAAAP,EAAEQ,UAAWC,OAAY,IAAHF,EAAG,MAAKA,EAG/DG,EAAeC,EAAO,MACtBC,EAAYC,EAAYZ,EAAKS,GAEnC,OACEI,EAAAC,cAACN,EAAS,CACRR,IAAKW,EACLV,UAAWc,EAAGC,EAAOC,aAAcC,EAASF,EAAQX,GAASJ,GAC7DC,GAAIA,gBACQ,QAEZW,EAAAC,cAACK,EAAI,CAAChB,KAAMA,EAAMiB,kBAAiB,EAAAC,KAhCR,KAmCjC"}
1
+ {"version":3,"file":"ListItemIcon.js","sources":["../../../../../src/components/ListItemIcon/ListItemIcon.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { forwardRef, useRef } from \"react\";\nimport { useMergeRef, getStyle } from \"@vibe/shared\";\nimport { Icon, type SubIcon } from \"@vibe/icon\";\nimport { type ListItemElement } from \"../ListItem\";\nimport { type VibeComponentProps } from \"../../types\";\n\nimport styles from \"./ListItemIcon.module.scss\";\nimport { type ListItemIconMargin } from \"./ListItemIcon.types\";\n\nexport const LIST_ITEM_ICON_SIZE = 18;\n\nexport interface ListItemIconProps extends VibeComponentProps {\n /**\n * The HTML element used for the list item icon.\n */\n component?: ListItemElement;\n /**\n * The icon displayed inside the list item.\n */\n icon?: SubIcon;\n /**\n * The position of the icon inside the list item, determining its margins.\n */\n margin?: ListItemIconMargin;\n}\n\nconst ListItemIcon = forwardRef(\n (\n { className, id, icon, margin = \"start\", component: Component = \"div\" }: ListItemIconProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n return (\n <Component\n ref={mergedRef}\n className={cx(styles.listItemIcon, getStyle(styles, margin), className)}\n id={id}\n aria-hidden=\"true\"\n >\n <Icon icon={icon} ignoreFocusStyle size={LIST_ITEM_ICON_SIZE} />\n </Component>\n );\n }\n);\n\nexport default ListItemIcon;\n"],"names":["LIST_ITEM_ICON_SIZE","ListItemIcon","forwardRef","_ref","ref","className","id","icon","_ref$margin","margin","_ref$component","component","Component","componentRef","useRef","mergedRef","useMergeRef","React","createElement","cx","styles","listItemIcon","getStyle","Icon","ignoreFocusStyle","size"],"mappings":"qOAUO,IAAMA,EAAsB,GAiB7BC,EAAeC,GACnB,SAAAC,EAEEC,GACE,IAFAC,EAASF,EAATE,UAAWC,EAAEH,EAAFG,GAAIC,EAAIJ,EAAJI,KAAIC,EAAAL,EAAEM,OAAAA,OAAS,IAAHD,EAAG,QAAOA,EAAAE,EAAAP,EAAEQ,UAAWC,OAAY,IAAHF,EAAG,MAAKA,EAG/DG,EAAeC,EAAO,MACtBC,EAAYC,EAAYZ,EAAKS,GAEnC,OACEI,EAAAC,cAACN,EAAS,CACRR,IAAKW,EACLV,UAAWc,EAAGC,EAAOC,aAAcC,EAASF,EAAQX,GAASJ,GAC7DC,GAAIA,gBACQ,QAEZW,EAAAC,cAACK,EAAI,CAAChB,KAAMA,EAAMiB,kBAAiB,EAAAC,KAhCR,KAmCjC"}
@@ -1,2 +1,2 @@
1
- import e from"classnames";import t,{forwardRef as a,useRef as s}from"react";import i from"../../hooks/useMergeRef.js";import{Text as r}from"@vibe/typography/mockedClassNames";import m from"./ListTitle.module.scss.js";var l=a((function(a,l){var o=a.className,d=a.id,n=a.children,c=a.tabIndex,p=a["data-testid"],f=s(null),u=i(l,f);return t.createElement(r,{type:"text1",weight:"medium","data-testid":p||d,"aria-level":3,tabIndex:c,role:"heading",ref:u,className:e(m.listTitle,o),id:d},n)}));Object.assign(l,{displayName:"ListTitle"});export{l as default};
1
+ import e from"classnames";import t,{forwardRef as a,useRef as i}from"react";import{useMergeRef as s}from"@vibe/shared";import{Text as r}from"@vibe/typography/mockedClassNames";import m from"./ListTitle.module.scss.js";var l=a((function(a,l){var d=a.className,o=a.id,n=a.children,c=a.tabIndex,p=a["data-testid"],f=i(null),u=s(l,f);return t.createElement(r,{type:"text1",weight:"medium","data-testid":p||o,"aria-level":3,tabIndex:c,role:"heading",ref:u,className:e(m.listTitle,d),id:o},n)}));Object.assign(l,{displayName:"ListTitle"});export{l as default};
2
2
  //# sourceMappingURL=ListTitle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListTitle.js","sources":["../../../../../src/components/ListTitle/ListTitle.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { forwardRef, useRef } from \"react\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport { Text } from \"@vibe/typography\";\nimport styles from \"./ListTitle.module.scss\";\n\nexport interface ListTitleProps extends VibeComponentProps {\n /**\n * The tab index for keyboard navigation.\n */\n tabIndex?: number;\n /**\n * The title text.\n */\n children?: string;\n}\n\nconst ListTitle: React.FC<ListTitleProps> = forwardRef(\n ({ className, id, children, tabIndex, \"data-testid\": dataTestId }, ref) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n return (\n <Text\n type=\"text1\"\n weight=\"medium\"\n data-testid={dataTestId || id}\n aria-level={3}\n tabIndex={tabIndex}\n role=\"heading\"\n ref={mergedRef}\n className={cx(styles.listTitle, className)}\n id={id}\n >\n {children}\n </Text>\n );\n }\n);\n\nObject.assign(ListTitle, {\n // Used by VirtualizedListItems\n displayName: \"ListTitle\"\n});\n\nexport default ListTitle;\n"],"names":["ListTitle","forwardRef","_ref","ref","className","id","children","tabIndex","dataTestId","componentRef","useRef","mergedRef","useMergeRef","React","Text","type","weight","role","cx","styles","listTitle","Object","assign","displayName"],"mappings":"yNAkBMA,IAAAA,EAAsCC,GAC1C,SAAAC,EAAmEC,GAAO,IAAvEC,EAASF,EAATE,UAAWC,EAAEH,EAAFG,GAAIC,EAAQJ,EAARI,SAAUC,EAAQL,EAARK,SAAyBC,EAAUN,EAAzB,eAC9BO,EAAeC,EAAO,MACtBC,EAAYC,EAAYT,EAAKM,GAEnC,OACEI,gBAACC,EAAI,CACHC,KAAK,QACLC,OAAO,uBACMR,GAAcH,EACf,aAAA,EACZE,SAAUA,EACVU,KAAK,UACLd,IAAKQ,EACLP,UAAWc,EAAGC,EAAOC,UAAWhB,GAChCC,GAAIA,GAEHC,EAGP,IAGFe,OAAOC,OAAOtB,EAAW,CAEvBuB,YAAa"}
1
+ {"version":3,"file":"ListTitle.js","sources":["../../../../../src/components/ListTitle/ListTitle.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { forwardRef, useRef } from \"react\";\nimport { useMergeRef } from \"@vibe/shared\";\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport { Text } from \"@vibe/typography\";\nimport styles from \"./ListTitle.module.scss\";\n\nexport interface ListTitleProps extends VibeComponentProps {\n /**\n * The tab index for keyboard navigation.\n */\n tabIndex?: number;\n /**\n * The title text.\n */\n children?: string;\n}\n\nconst ListTitle: React.FC<ListTitleProps> = forwardRef(\n ({ className, id, children, tabIndex, \"data-testid\": dataTestId }, ref) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n return (\n <Text\n type=\"text1\"\n weight=\"medium\"\n data-testid={dataTestId || id}\n aria-level={3}\n tabIndex={tabIndex}\n role=\"heading\"\n ref={mergedRef}\n className={cx(styles.listTitle, className)}\n id={id}\n >\n {children}\n </Text>\n );\n }\n);\n\nObject.assign(ListTitle, {\n // Used by VirtualizedListItems\n displayName: \"ListTitle\"\n});\n\nexport default ListTitle;\n"],"names":["ListTitle","forwardRef","_ref","ref","className","id","children","tabIndex","dataTestId","componentRef","useRef","mergedRef","useMergeRef","React","Text","type","weight","role","cx","styles","listTitle","Object","assign","displayName"],"mappings":"0NAkBMA,IAAAA,EAAsCC,GAC1C,SAAAC,EAAmEC,GAAO,IAAvEC,EAASF,EAATE,UAAWC,EAAEH,EAAFG,GAAIC,EAAQJ,EAARI,SAAUC,EAAQL,EAARK,SAAyBC,EAAUN,EAAzB,eAC9BO,EAAeC,EAAO,MACtBC,EAAYC,EAAYT,EAAKM,GAEnC,OACEI,gBAACC,EAAI,CACHC,KAAK,QACLC,OAAO,uBACMR,GAAcH,EACf,aAAA,EACZE,SAAUA,EACVU,KAAK,UACLd,IAAKQ,EACLP,UAAWc,EAAGC,EAAOC,UAAWhB,GAChCC,GAAIA,GAEHC,EAGP,IAGFe,OAAOC,OAAOtB,EAAW,CAEvBuB,YAAa"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import n from"classnames";import{SIZES as t}from"../../../constants/sizes.js";import o,{forwardRef as s,useRef as u,useState as i,useMemo as r,useCallback as l,useEffect as d}from"react";import c from"../../../hooks/useMergeRef.js";import a from"../../../hooks/ssr/useIsomorphicLayoutEffect.js";import{useClickOutside as m}from"@vibe/hooks";import v from"./hooks/useSubMenuIndex.js";import p from"./hooks/useOnCloseMenu.js";import f from"./hooks/useCloseMenuOnKeyEvent.js";import I from"./hooks/useMenuKeyboardNavigation.js";import M from"./hooks/useMouseLeave.js";import{useAdjacentSelectableMenuIndex as b}from"./hooks/useAdjacentSelectableMenuIndex.js";import{useFocusWithin as h}from"../../../hooks/useFocusWithin.js";import x from"../../../hooks/usePrevious/index.js";import{getStyle as S}from"../../../helpers/typesciptCssModulesHelper.js";import{getTestId as O}from"../../../tests/testIds.js";import{ComponentDefaultTestId as j,ComponentVibeId as k}from"../../../tests/constants.js";import{useFocusOnMount as g}from"./hooks/useFocusOnMount.js";import{useMenuId as E}from"./hooks/useMenuId.js";import{generateMenuItemId as C}from"./utils/utils.js";import y from"./Menu.module.scss.js";var A=s((function(s,A){var N=s.id,F=s.className,B=s.size,P=void 0===B?t.MEDIUM:B,D=s.tabIndex,L=void 0===D?0:D,V=s["aria-label"],U=void 0===V?"Menu":V,R=s["aria-describedby"],T=s.children,W=s.isVisible,z=void 0===W||W,H=s.onClose,K=s.onItemFocus,_=s.focusOnMount,q=void 0!==_&&_,w=s.focusItemIndex,G=void 0===w?-1:w,J=s.focusItemIndexOnMount,Q=void 0===J?-1:J,X=s.isSubMenu,Y=void 0!==X&&X,Z=s.useDocumentEventListeners,$=void 0!==Z&&Z,ee=s.shouldScrollMenu,ne=void 0!==ee&&ee,te=s["data-testid"],oe=u(null),se=c(oe,A),ue=E(N),ie=u(null),re=i(G),le=e(re,2),de=le[0],ce=le[1],ae=i(!1),me=e(ae,2),ve=me[0],pe=me[1],fe=r((function(){return o.Children.toArray(T).filter((function(e){return!!e.type.isMenuChild||(console.error("Menu child must be a menuChild item (such as MenuItem, MenuDivider, MenuTitle, etc). This child is not supported: ",e),!1)}))}),[T]),Ie=l((function(e){var n,t,s;ce(e);var u=fe[e],i=o.isValidElement(u)?(null===(n=null==u?void 0:u.props)||void 0===n?void 0:n.id)||"".concat(ue,"-item-").concat(e):void 0;i?null===(t=null==oe?void 0:oe.current)||void 0===t||t.setAttribute("aria-activedescendant",i):null===(s=null==oe?void 0:oe.current)||void 0===s||s.removeAttribute("aria-activedescendant")}),[fe,ue]),Me=l((function(e){K&&K(e),Ie(e),pe(!1)}),[Ie,K]),be=v(),he=be.setSubMenuIsOpenByIndex,xe=be.hasOpenSubMenu,Se=be.openSubMenuIndex,Oe=be.resetOpenSubMenuIndex,je=p({setActiveItemIndex:Me,setOpenSubMenuIndex:be.setOpenSubMenuIndex,onClose:H});m({ref:oe,callback:function(){return je()}}),f({hasOpenSubMenu:xe,onCloseMenu:je,ref:oe,onClose:H,isSubMenu:Y,useDocumentEventListeners:$});var ke=b({children:fe}),ge=ke.getNextSelectableIndex,Ee=ke.getPreviousSelectableIndex;I({hasOpenSubMenu:xe,getNextSelectableIndex:ge,getPreviousSelectableIndex:Ee,activeItemIndex:de,setActiveItemIndex:Me,isVisible:z,ref:oe,useDocumentEventListeners:$}),M({resetOpenSubMenuIndex:Oe,hasOpenSubMenu:xe,ref:oe,setActiveItemIndex:Me}),g({focusItemIndexOnMount:Q,focusChildOnMount:fe[Q],getNextSelectableIndex:ge,updateActiveItemIndex:Ie,setIsInitialFocusSet:pe});var Ce=l((function(){pe(!0)}),[pe]),ye=x(xe);d((function(){var e;xe||$||de>-1&&ye&&(null===(e=null==oe?void 0:oe.current)||void 0===e||e.focus())}),[de,xe,ye,$]),a((function(){q&&!$&&requestAnimationFrame((function(){oe&&oe.current&&oe.current.focus()}))}),[oe,q,$]);var Ae=h({onBlurWithin:function(){je&&je()}}).focusWithinProps;return o.createElement("ul",{onFocus:null==Ae?void 0:Ae.onFocus,onBlur:null==Ae?void 0:Ae.onBlur,id:ue,"data-testid":te||O(j.MENU,N),"data-vibe":k.MENU,className:n(y.menu,S(y,P),F),ref:se,tabIndex:L,"aria-label":U,role:"menu","aria-describedby":R,onMouseOver:Ce},fe&&o.Children.map(fe,(function(e,n){return o.isValidElement(e)?o.cloneElement(e,Object.assign(Object.assign({},null==e?void 0:e.props),{activeItemIndex:de,index:n,setActiveItemIndex:Ie,menuRef:oe,resetOpenSubMenuIndex:Oe,isParentMenuVisible:z,setSubMenuIsOpenByIndex:he,hasOpenSubMenu:n===Se,closeMenu:je,id:C(ue,e,n),useDocumentEventListeners:$,isInitialSelectedState:ve,shouldScrollMenu:ne,getNextSelectableIndex:ge,getPreviousSelectableIndex:Ee,isUnderSubMenu:Y,splitMenuItemIconButtonRef:ie})):null})))}));Object.assign(A,{isMenu:!0,supportFocusOnMount:!0});export{A as default};
1
+ import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import n from"classnames";import{SIZES as t}from"../../../constants/sizes.js";import o,{forwardRef as s,useRef as u,useState as i,useMemo as r,useCallback as l,useEffect as d}from"react";import{useMergeRef as a,useIsomorphicLayoutEffect as c,getStyle as m}from"@vibe/shared";import{useClickOutside as v}from"@vibe/hooks";import I from"./hooks/useSubMenuIndex.js";import f from"./hooks/useOnCloseMenu.js";import p from"./hooks/useCloseMenuOnKeyEvent.js";import b from"./hooks/useMenuKeyboardNavigation.js";import M from"./hooks/useMouseLeave.js";import{useAdjacentSelectableMenuIndex as x}from"./hooks/useAdjacentSelectableMenuIndex.js";import{useFocusWithin as h}from"../../../hooks/useFocusWithin.js";import S from"../../../hooks/usePrevious/index.js";import{getTestId as O}from"../../../tests/testIds.js";import{ComponentDefaultTestId as j,ComponentVibeId as g}from"../../../tests/constants.js";import{useFocusOnMount as k}from"./hooks/useFocusOnMount.js";import{useMenuId as E}from"./hooks/useMenuId.js";import{generateMenuItemId as A}from"./utils/utils.js";import C from"./Menu.module.scss.js";var y=s((function(s,y){var N=s.id,F=s.className,B=s.size,P=void 0===B?t.MEDIUM:B,D=s.tabIndex,L=void 0===D?0:D,V=s["aria-label"],U=void 0===V?"Menu":V,T=s["aria-describedby"],W=s.children,z=s.isVisible,K=void 0===z||z,R=s.onClose,_=s.onItemFocus,q=s.focusOnMount,H=void 0!==q&&q,w=s.focusItemIndex,G=void 0===w?-1:w,J=s.focusItemIndexOnMount,Q=void 0===J?-1:J,X=s.isSubMenu,Y=void 0!==X&&X,Z=s.useDocumentEventListeners,$=void 0!==Z&&Z,ee=s.shouldScrollMenu,ne=void 0!==ee&&ee,te=s["data-testid"],oe=u(null),se=a(oe,y),ue=E(N),ie=u(null),re=i(G),le=e(re,2),de=le[0],ae=le[1],ce=i(!1),me=e(ce,2),ve=me[0],Ie=me[1],fe=r((function(){return o.Children.toArray(W).filter((function(e){return!!e.type.isMenuChild||(console.error("Menu child must be a menuChild item (such as MenuItem, MenuDivider, MenuTitle, etc). This child is not supported: ",e),!1)}))}),[W]),pe=l((function(e){var n,t,s;ae(e);var u=fe[e],i=o.isValidElement(u)?(null===(n=null==u?void 0:u.props)||void 0===n?void 0:n.id)||"".concat(ue,"-item-").concat(e):void 0;i?null===(t=null==oe?void 0:oe.current)||void 0===t||t.setAttribute("aria-activedescendant",i):null===(s=null==oe?void 0:oe.current)||void 0===s||s.removeAttribute("aria-activedescendant")}),[fe,ue]),be=l((function(e){_&&_(e),pe(e),Ie(!1)}),[pe,_]),Me=I(),xe=Me.setSubMenuIsOpenByIndex,he=Me.hasOpenSubMenu,Se=Me.openSubMenuIndex,Oe=Me.resetOpenSubMenuIndex,je=f({setActiveItemIndex:be,setOpenSubMenuIndex:Me.setOpenSubMenuIndex,onClose:R});v({ref:oe,callback:function(){return je()}}),p({hasOpenSubMenu:he,onCloseMenu:je,ref:oe,onClose:R,isSubMenu:Y,useDocumentEventListeners:$});var ge=x({children:fe}),ke=ge.getNextSelectableIndex,Ee=ge.getPreviousSelectableIndex;b({hasOpenSubMenu:he,getNextSelectableIndex:ke,getPreviousSelectableIndex:Ee,activeItemIndex:de,setActiveItemIndex:be,isVisible:K,ref:oe,useDocumentEventListeners:$}),M({resetOpenSubMenuIndex:Oe,hasOpenSubMenu:he,ref:oe,setActiveItemIndex:be}),k({focusItemIndexOnMount:Q,focusChildOnMount:fe[Q],getNextSelectableIndex:ke,updateActiveItemIndex:pe,setIsInitialFocusSet:Ie});var Ae=l((function(){Ie(!0)}),[Ie]),Ce=S(he);d((function(){var e;he||$||de>-1&&Ce&&(null===(e=null==oe?void 0:oe.current)||void 0===e||e.focus())}),[de,he,Ce,$]),c((function(){H&&!$&&requestAnimationFrame((function(){oe&&oe.current&&oe.current.focus()}))}),[oe,H,$]);var ye=h({onBlurWithin:function(){je&&je()}}).focusWithinProps;return o.createElement("ul",{onFocus:null==ye?void 0:ye.onFocus,onBlur:null==ye?void 0:ye.onBlur,id:ue,"data-testid":te||O(j.MENU,N),"data-vibe":g.MENU,className:n(C.menu,m(C,P),F),ref:se,tabIndex:L,"aria-label":U,role:"menu","aria-describedby":T,onMouseOver:Ae},fe&&o.Children.map(fe,(function(e,n){return o.isValidElement(e)?o.cloneElement(e,Object.assign(Object.assign({},null==e?void 0:e.props),{activeItemIndex:de,index:n,setActiveItemIndex:pe,menuRef:oe,resetOpenSubMenuIndex:Oe,isParentMenuVisible:K,setSubMenuIsOpenByIndex:xe,hasOpenSubMenu:n===Se,closeMenu:je,id:A(ue,e,n),useDocumentEventListeners:$,isInitialSelectedState:ve,shouldScrollMenu:ne,getNextSelectableIndex:ke,getPreviousSelectableIndex:Ee,isUnderSubMenu:Y,splitMenuItemIconButtonRef:ie})):null})))}));Object.assign(y,{isMenu:!0,supportFocusOnMount:!0});export{y as default};
2
2
  //# sourceMappingURL=Menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sources":["../../../../../../src/components/Menu/Menu/Menu.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport { SIZES } from \"../../../constants\";\nimport React, { forwardRef, type ReactElement, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\nimport useIsomorphicLayoutEffect from \"../../../hooks/ssr/useIsomorphicLayoutEffect\";\nimport { useClickOutside } from \"@vibe/hooks\";\nimport useSubMenuIndex from \"./hooks/useSubMenuIndex\";\nimport useOnCloseMenu from \"./hooks/useOnCloseMenu\";\nimport useCloseMenuOnKeyEvent from \"./hooks/useCloseMenuOnKeyEvent\";\nimport useMenuKeyboardNavigation from \"./hooks/useMenuKeyboardNavigation\";\nimport useMouseLeave from \"./hooks/useMouseLeave\";\nimport { useAdjacentSelectableMenuIndex } from \"./hooks/useAdjacentSelectableMenuIndex\";\nimport { useFocusWithin } from \"../../../hooks/useFocusWithin\";\nimport usePrevious from \"../../../hooks/usePrevious\";\nimport { type ElementContent, type VibeComponentProps } from \"../../../types\";\nimport { getStyle } from \"../../../helpers/typesciptCssModulesHelper\";\nimport { getTestId } from \"../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId, ComponentVibeId } from \"../../../tests/constants\";\nimport { useFocusOnMount } from \"./hooks/useFocusOnMount\";\nimport { useMenuId } from \"./hooks/useMenuId\";\nimport { type CloseMenuOption, type MenuChild } from \"./MenuConstants\";\nimport { generateMenuItemId } from \"./utils/utils\";\nimport styles from \"./Menu.module.scss\";\n\nexport interface MenuProps extends VibeComponentProps {\n /**\n * Size of the menu.\n */\n size?: (typeof SIZES)[keyof typeof SIZES];\n /**\n * The tab index of the menu.\n */\n tabIndex?: number;\n /**\n * ARIA label for accessibility.\n */\n \"aria-label\"?: string;\n /**\n * ARIA description ID.\n */\n \"aria-describedby\"?: string;\n /**\n * If true, the menu will automatically focus on mount.\n */\n focusOnMount?: boolean;\n /**\n * Callback when a menu item gains focus.\n */\n onItemFocus?: (index: number) => void;\n /**\n * Controls the visibility of the menu.\n */\n isVisible?: boolean;\n /**\n * Callback triggered when the menu closes.\n */\n onClose?: (option: CloseMenuOption) => void;\n /**\n * Index of the focused menu item.\n */\n focusItemIndex?: number;\n /**\n * If true, this menu is a submenu.\n */\n isSubMenu?: boolean;\n /**\n * If true, event listeners will be attached to the document.\n */\n useDocumentEventListeners?: boolean;\n /**\n * Index of the item that should be focused when the menu mounts.\n */\n focusItemIndexOnMount?: number;\n /**\n * If true, enables scrolling within the menu.\n */\n shouldScrollMenu?: boolean;\n /**\n * The menu items.\n */\n children?: ElementContent;\n}\n\nconst Menu = forwardRef(\n (\n {\n id,\n className,\n size = SIZES.MEDIUM,\n tabIndex = 0,\n \"aria-label\": ariaLabel = \"Menu\",\n \"aria-describedby\": ariaDescribedBy,\n children: originalChildren,\n isVisible = true,\n onClose,\n onItemFocus,\n focusOnMount = false,\n focusItemIndex = -1,\n focusItemIndexOnMount = -1,\n isSubMenu = false,\n useDocumentEventListeners = false,\n shouldScrollMenu = false,\n \"data-testid\": dataTestId\n }: MenuProps,\n forwardedRef: React.ForwardedRef<HTMLElement>\n ) => {\n const ref = useRef(null);\n const mergedRef = useMergeRef(ref, forwardedRef);\n\n const overrideId = useMenuId(id);\n const splitMenuItemIconButtonRef = useRef<HTMLElement>(null);\n\n const [activeItemIndex, setActiveItemIndex] = useState(focusItemIndex);\n const [isInitialSelectedState, setIsInitialSelectedState] = useState(false);\n\n const children = useMemo(() => {\n const allChildren = React.Children.toArray(originalChildren) as MenuChild[];\n return allChildren.filter(child => {\n if (child.type.isMenuChild) return true;\n console.error(\n \"Menu child must be a menuChild item (such as MenuItem, MenuDivider, MenuTitle, etc). This child is not supported: \",\n child\n );\n return false;\n });\n }, [originalChildren]);\n\n const updateActiveItemIndex = useCallback(\n (index: number) => {\n setActiveItemIndex(index);\n\n const activeChild = children[index];\n const ariaActiveDescendant = React.isValidElement(activeChild)\n ? activeChild?.props?.id || `${overrideId}-item-${index}`\n : undefined;\n if (ariaActiveDescendant) {\n ref?.current?.setAttribute(\"aria-activedescendant\", ariaActiveDescendant);\n } else {\n ref?.current?.removeAttribute(\"aria-activedescendant\");\n }\n },\n [children, overrideId]\n );\n\n const onSetActiveItemIndexCallback = useCallback(\n (index: number) => {\n onItemFocus && onItemFocus(index);\n updateActiveItemIndex(index);\n setIsInitialSelectedState(false);\n },\n [updateActiveItemIndex, onItemFocus]\n );\n\n const { setSubMenuIsOpenByIndex, hasOpenSubMenu, openSubMenuIndex, setOpenSubMenuIndex, resetOpenSubMenuIndex } =\n useSubMenuIndex();\n\n const onCloseMenu = useOnCloseMenu({\n setActiveItemIndex: onSetActiveItemIndexCallback,\n setOpenSubMenuIndex,\n onClose\n });\n\n useClickOutside({ ref, callback: () => onCloseMenu() });\n useCloseMenuOnKeyEvent({ hasOpenSubMenu, onCloseMenu, ref, onClose, isSubMenu, useDocumentEventListeners });\n\n const { getNextSelectableIndex, getPreviousSelectableIndex } = useAdjacentSelectableMenuIndex({\n children: children as ReactElement[]\n });\n useMenuKeyboardNavigation({\n hasOpenSubMenu,\n getNextSelectableIndex,\n getPreviousSelectableIndex,\n activeItemIndex,\n setActiveItemIndex: onSetActiveItemIndexCallback,\n isVisible,\n ref,\n useDocumentEventListeners\n });\n useMouseLeave({\n resetOpenSubMenuIndex,\n hasOpenSubMenu,\n ref,\n setActiveItemIndex: onSetActiveItemIndexCallback\n });\n useFocusOnMount({\n focusItemIndexOnMount,\n focusChildOnMount: children[focusItemIndexOnMount] as ReactElement,\n getNextSelectableIndex,\n updateActiveItemIndex,\n setIsInitialFocusSet: setIsInitialSelectedState\n });\n\n const onMouseMove = useCallback(() => {\n setIsInitialSelectedState(true);\n }, [setIsInitialSelectedState]);\n\n const previousHasOpenSubMenu = usePrevious(hasOpenSubMenu);\n useEffect(() => {\n if (hasOpenSubMenu || useDocumentEventListeners) return;\n if (activeItemIndex > -1 && previousHasOpenSubMenu) {\n // the submenu was just closed, so we want to focus the menu to capture keyboard events\n ref?.current?.focus();\n }\n }, [activeItemIndex, hasOpenSubMenu, previousHasOpenSubMenu, useDocumentEventListeners]);\n\n useIsomorphicLayoutEffect(() => {\n if (!focusOnMount || useDocumentEventListeners) return;\n requestAnimationFrame(() => {\n ref && ref.current && ref.current.focus();\n });\n }, [ref, focusOnMount, useDocumentEventListeners]);\n\n const { focusWithinProps } = useFocusWithin({\n onBlurWithin: () => {\n onCloseMenu && onCloseMenu();\n }\n });\n\n return (\n <ul\n onFocus={focusWithinProps?.onFocus}\n onBlur={focusWithinProps?.onBlur}\n id={overrideId}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.MENU, id)}\n data-vibe={ComponentVibeId.MENU}\n className={cx(styles.menu, getStyle(styles, size), className)}\n ref={mergedRef}\n tabIndex={tabIndex}\n aria-label={ariaLabel}\n role=\"menu\"\n aria-describedby={ariaDescribedBy}\n onMouseOver={onMouseMove}\n >\n {children &&\n React.Children.map(children, (child, index) => {\n return React.isValidElement(child)\n ? React.cloneElement(child, {\n ...child?.props,\n activeItemIndex,\n index,\n setActiveItemIndex: updateActiveItemIndex,\n menuRef: ref,\n resetOpenSubMenuIndex,\n isParentMenuVisible: isVisible,\n setSubMenuIsOpenByIndex,\n hasOpenSubMenu: index === openSubMenuIndex,\n closeMenu: onCloseMenu,\n id: generateMenuItemId(overrideId, child, index),\n useDocumentEventListeners,\n isInitialSelectedState,\n shouldScrollMenu,\n getNextSelectableIndex,\n getPreviousSelectableIndex,\n isUnderSubMenu: isSubMenu,\n splitMenuItemIconButtonRef\n })\n : null;\n })}\n </ul>\n );\n }\n);\n\nObject.assign(Menu, {\n isMenu: true,\n supportFocusOnMount: true\n});\n\nexport default Menu;\n"],"names":["Menu","forwardRef","_ref","forwardedRef","id","className","_ref$size","size","SIZES","MEDIUM","_ref$tabIndex","tabIndex","_ref$ariaLabel","ariaLabel","ariaDescribedBy","originalChildren","children","_ref$isVisible","isVisible","onClose","onItemFocus","_ref$focusOnMount","focusOnMount","_ref$focusItemIndex","focusItemIndex","_ref$focusItemIndexOn","focusItemIndexOnMount","_ref$isSubMenu","isSubMenu","_ref$useDocumentEvent","useDocumentEventListeners","_ref$shouldScrollMenu","shouldScrollMenu","dataTestId","ref","useRef","mergedRef","useMergeRef","overrideId","useMenuId","splitMenuItemIconButtonRef","_useState","useState","_useState2","_slicedToArray","activeItemIndex","setActiveItemIndex","_useState3","_useState4","isInitialSelectedState","setIsInitialSelectedState","useMemo","React","Children","toArray","filter","child","type","isMenuChild","console","error","updateActiveItemIndex","useCallback","index","activeChild","ariaActiveDescendant","isValidElement","_a","props","concat","undefined","_b","current","setAttribute","_c","removeAttribute","onSetActiveItemIndexCallback","_useSubMenuIndex","useSubMenuIndex","setSubMenuIsOpenByIndex","hasOpenSubMenu","openSubMenuIndex","resetOpenSubMenuIndex","onCloseMenu","useOnCloseMenu","setOpenSubMenuIndex","useClickOutside","callback","useCloseMenuOnKeyEvent","_useAdjacentSelectabl","useAdjacentSelectableMenuIndex","getNextSelectableIndex","getPreviousSelectableIndex","useMenuKeyboardNavigation","useMouseLeave","useFocusOnMount","focusChildOnMount","setIsInitialFocusSet","onMouseMove","previousHasOpenSubMenu","usePrevious","useEffect","focus","useIsomorphicLayoutEffect","requestAnimationFrame","focusWithinProps","useFocusWithin","onBlurWithin","createElement","onFocus","onBlur","getTestId","ComponentDefaultTestId","MENU","ComponentVibeId","cx","styles","menu","getStyle","role","onMouseOver","map","cloneElement","Object","assign","menuRef","isParentMenuVisible","closeMenu","generateMenuItemId","isUnderSubMenu","isMenu","supportFocusOnMount"],"mappings":"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"}
1
+ {"version":3,"file":"Menu.js","sources":["../../../../../../src/components/Menu/Menu/Menu.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport { SIZES } from \"../../../constants\";\nimport React, { forwardRef, type ReactElement, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useMergeRef, useIsomorphicLayoutEffect, getStyle } from \"@vibe/shared\";\n\nimport { useClickOutside } from \"@vibe/hooks\";\nimport useSubMenuIndex from \"./hooks/useSubMenuIndex\";\nimport useOnCloseMenu from \"./hooks/useOnCloseMenu\";\nimport useCloseMenuOnKeyEvent from \"./hooks/useCloseMenuOnKeyEvent\";\nimport useMenuKeyboardNavigation from \"./hooks/useMenuKeyboardNavigation\";\nimport useMouseLeave from \"./hooks/useMouseLeave\";\nimport { useAdjacentSelectableMenuIndex } from \"./hooks/useAdjacentSelectableMenuIndex\";\nimport { useFocusWithin } from \"../../../hooks/useFocusWithin\";\nimport usePrevious from \"../../../hooks/usePrevious\";\nimport { type ElementContent, type VibeComponentProps } from \"../../../types\";\n\nimport { getTestId } from \"../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId, ComponentVibeId } from \"../../../tests/constants\";\nimport { useFocusOnMount } from \"./hooks/useFocusOnMount\";\nimport { useMenuId } from \"./hooks/useMenuId\";\nimport { type CloseMenuOption, type MenuChild } from \"./MenuConstants\";\nimport { generateMenuItemId } from \"./utils/utils\";\nimport styles from \"./Menu.module.scss\";\n\nexport interface MenuProps extends VibeComponentProps {\n /**\n * Size of the menu.\n */\n size?: (typeof SIZES)[keyof typeof SIZES];\n /**\n * The tab index of the menu.\n */\n tabIndex?: number;\n /**\n * ARIA label for accessibility.\n */\n \"aria-label\"?: string;\n /**\n * ARIA description ID.\n */\n \"aria-describedby\"?: string;\n /**\n * If true, the menu will automatically focus on mount.\n */\n focusOnMount?: boolean;\n /**\n * Callback when a menu item gains focus.\n */\n onItemFocus?: (index: number) => void;\n /**\n * Controls the visibility of the menu.\n */\n isVisible?: boolean;\n /**\n * Callback triggered when the menu closes.\n */\n onClose?: (option: CloseMenuOption) => void;\n /**\n * Index of the focused menu item.\n */\n focusItemIndex?: number;\n /**\n * If true, this menu is a submenu.\n */\n isSubMenu?: boolean;\n /**\n * If true, event listeners will be attached to the document.\n */\n useDocumentEventListeners?: boolean;\n /**\n * Index of the item that should be focused when the menu mounts.\n */\n focusItemIndexOnMount?: number;\n /**\n * If true, enables scrolling within the menu.\n */\n shouldScrollMenu?: boolean;\n /**\n * The menu items.\n */\n children?: ElementContent;\n}\n\nconst Menu = forwardRef(\n (\n {\n id,\n className,\n size = SIZES.MEDIUM,\n tabIndex = 0,\n \"aria-label\": ariaLabel = \"Menu\",\n \"aria-describedby\": ariaDescribedBy,\n children: originalChildren,\n isVisible = true,\n onClose,\n onItemFocus,\n focusOnMount = false,\n focusItemIndex = -1,\n focusItemIndexOnMount = -1,\n isSubMenu = false,\n useDocumentEventListeners = false,\n shouldScrollMenu = false,\n \"data-testid\": dataTestId\n }: MenuProps,\n forwardedRef: React.ForwardedRef<HTMLElement>\n ) => {\n const ref = useRef(null);\n const mergedRef = useMergeRef(ref, forwardedRef);\n\n const overrideId = useMenuId(id);\n const splitMenuItemIconButtonRef = useRef<HTMLElement>(null);\n\n const [activeItemIndex, setActiveItemIndex] = useState(focusItemIndex);\n const [isInitialSelectedState, setIsInitialSelectedState] = useState(false);\n\n const children = useMemo(() => {\n const allChildren = React.Children.toArray(originalChildren) as MenuChild[];\n return allChildren.filter(child => {\n if (child.type.isMenuChild) return true;\n console.error(\n \"Menu child must be a menuChild item (such as MenuItem, MenuDivider, MenuTitle, etc). This child is not supported: \",\n child\n );\n return false;\n });\n }, [originalChildren]);\n\n const updateActiveItemIndex = useCallback(\n (index: number) => {\n setActiveItemIndex(index);\n\n const activeChild = children[index];\n const ariaActiveDescendant = React.isValidElement(activeChild)\n ? activeChild?.props?.id || `${overrideId}-item-${index}`\n : undefined;\n if (ariaActiveDescendant) {\n ref?.current?.setAttribute(\"aria-activedescendant\", ariaActiveDescendant);\n } else {\n ref?.current?.removeAttribute(\"aria-activedescendant\");\n }\n },\n [children, overrideId]\n );\n\n const onSetActiveItemIndexCallback = useCallback(\n (index: number) => {\n onItemFocus && onItemFocus(index);\n updateActiveItemIndex(index);\n setIsInitialSelectedState(false);\n },\n [updateActiveItemIndex, onItemFocus]\n );\n\n const { setSubMenuIsOpenByIndex, hasOpenSubMenu, openSubMenuIndex, setOpenSubMenuIndex, resetOpenSubMenuIndex } =\n useSubMenuIndex();\n\n const onCloseMenu = useOnCloseMenu({\n setActiveItemIndex: onSetActiveItemIndexCallback,\n setOpenSubMenuIndex,\n onClose\n });\n\n useClickOutside({ ref, callback: () => onCloseMenu() });\n useCloseMenuOnKeyEvent({ hasOpenSubMenu, onCloseMenu, ref, onClose, isSubMenu, useDocumentEventListeners });\n\n const { getNextSelectableIndex, getPreviousSelectableIndex } = useAdjacentSelectableMenuIndex({\n children: children as ReactElement[]\n });\n useMenuKeyboardNavigation({\n hasOpenSubMenu,\n getNextSelectableIndex,\n getPreviousSelectableIndex,\n activeItemIndex,\n setActiveItemIndex: onSetActiveItemIndexCallback,\n isVisible,\n ref,\n useDocumentEventListeners\n });\n useMouseLeave({\n resetOpenSubMenuIndex,\n hasOpenSubMenu,\n ref,\n setActiveItemIndex: onSetActiveItemIndexCallback\n });\n useFocusOnMount({\n focusItemIndexOnMount,\n focusChildOnMount: children[focusItemIndexOnMount] as ReactElement,\n getNextSelectableIndex,\n updateActiveItemIndex,\n setIsInitialFocusSet: setIsInitialSelectedState\n });\n\n const onMouseMove = useCallback(() => {\n setIsInitialSelectedState(true);\n }, [setIsInitialSelectedState]);\n\n const previousHasOpenSubMenu = usePrevious(hasOpenSubMenu);\n useEffect(() => {\n if (hasOpenSubMenu || useDocumentEventListeners) return;\n if (activeItemIndex > -1 && previousHasOpenSubMenu) {\n // the submenu was just closed, so we want to focus the menu to capture keyboard events\n ref?.current?.focus();\n }\n }, [activeItemIndex, hasOpenSubMenu, previousHasOpenSubMenu, useDocumentEventListeners]);\n\n useIsomorphicLayoutEffect(() => {\n if (!focusOnMount || useDocumentEventListeners) return;\n requestAnimationFrame(() => {\n ref && ref.current && ref.current.focus();\n });\n }, [ref, focusOnMount, useDocumentEventListeners]);\n\n const { focusWithinProps } = useFocusWithin({\n onBlurWithin: () => {\n onCloseMenu && onCloseMenu();\n }\n });\n\n return (\n <ul\n onFocus={focusWithinProps?.onFocus}\n onBlur={focusWithinProps?.onBlur}\n id={overrideId}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.MENU, id)}\n data-vibe={ComponentVibeId.MENU}\n className={cx(styles.menu, getStyle(styles, size), className)}\n ref={mergedRef}\n tabIndex={tabIndex}\n aria-label={ariaLabel}\n role=\"menu\"\n aria-describedby={ariaDescribedBy}\n onMouseOver={onMouseMove}\n >\n {children &&\n React.Children.map(children, (child, index) => {\n return React.isValidElement(child)\n ? React.cloneElement(child, {\n ...child?.props,\n activeItemIndex,\n index,\n setActiveItemIndex: updateActiveItemIndex,\n menuRef: ref,\n resetOpenSubMenuIndex,\n isParentMenuVisible: isVisible,\n setSubMenuIsOpenByIndex,\n hasOpenSubMenu: index === openSubMenuIndex,\n closeMenu: onCloseMenu,\n id: generateMenuItemId(overrideId, child, index),\n useDocumentEventListeners,\n isInitialSelectedState,\n shouldScrollMenu,\n getNextSelectableIndex,\n getPreviousSelectableIndex,\n isUnderSubMenu: isSubMenu,\n splitMenuItemIconButtonRef\n })\n : null;\n })}\n </ul>\n );\n }\n);\n\nObject.assign(Menu, {\n isMenu: true,\n supportFocusOnMount: true\n});\n\nexport default Menu;\n"],"names":["Menu","forwardRef","_ref","forwardedRef","id","className","_ref$size","size","SIZES","MEDIUM","_ref$tabIndex","tabIndex","_ref$ariaLabel","ariaLabel","ariaDescribedBy","originalChildren","children","_ref$isVisible","isVisible","onClose","onItemFocus","_ref$focusOnMount","focusOnMount","_ref$focusItemIndex","focusItemIndex","_ref$focusItemIndexOn","focusItemIndexOnMount","_ref$isSubMenu","isSubMenu","_ref$useDocumentEvent","useDocumentEventListeners","_ref$shouldScrollMenu","shouldScrollMenu","dataTestId","ref","useRef","mergedRef","useMergeRef","overrideId","useMenuId","splitMenuItemIconButtonRef","_useState","useState","_useState2","_slicedToArray","activeItemIndex","setActiveItemIndex","_useState3","_useState4","isInitialSelectedState","setIsInitialSelectedState","useMemo","React","Children","toArray","filter","child","type","isMenuChild","console","error","updateActiveItemIndex","useCallback","index","activeChild","ariaActiveDescendant","isValidElement","_a","props","concat","undefined","_b","current","setAttribute","_c","removeAttribute","onSetActiveItemIndexCallback","_useSubMenuIndex","useSubMenuIndex","setSubMenuIsOpenByIndex","hasOpenSubMenu","openSubMenuIndex","resetOpenSubMenuIndex","onCloseMenu","useOnCloseMenu","setOpenSubMenuIndex","useClickOutside","callback","useCloseMenuOnKeyEvent","_useAdjacentSelectabl","useAdjacentSelectableMenuIndex","getNextSelectableIndex","getPreviousSelectableIndex","useMenuKeyboardNavigation","useMouseLeave","useFocusOnMount","focusChildOnMount","setIsInitialFocusSet","onMouseMove","previousHasOpenSubMenu","usePrevious","useEffect","focus","useIsomorphicLayoutEffect","requestAnimationFrame","focusWithinProps","useFocusWithin","onBlurWithin","createElement","onFocus","onBlur","getTestId","ComponentDefaultTestId","MENU","ComponentVibeId","cx","styles","menu","getStyle","role","onMouseOver","map","cloneElement","Object","assign","menuRef","isParentMenuVisible","closeMenu","generateMenuItemId","isUnderSubMenu","isMenu","supportFocusOnMount"],"mappings":"4pCAmFMA,IAAAA,EAAOC,GACX,SAAAC,EAoBEC,GACE,IAnBAC,EAAEF,EAAFE,GACAC,EAASH,EAATG,UAASC,EAAAJ,EACTK,KAAAA,OAAI,IAAAD,EAAGE,EAAMC,OAAMH,EAAAI,EAAAR,EACnBS,SAAAA,OAAW,IAAHD,EAAG,EAACA,EAAAE,EAAAV,EACZ,cAAcW,OAAY,IAAHD,EAAG,OAAMA,EACZE,EAAeZ,EAAnC,oBACUa,EAAgBb,EAA1Bc,SAAQC,EAAAf,EACRgB,UAAAA,OAAY,IAAHD,GAAOA,EAChBE,EAAOjB,EAAPiB,QACAC,EAAWlB,EAAXkB,YAAWC,EAAAnB,EACXoB,aAAAA,OAAe,IAAHD,GAAQA,EAAAE,EAAArB,EACpBsB,eAAAA,OAAc,IAAAD,GAAI,EAACA,EAAAE,EAAAvB,EACnBwB,sBAAAA,OAAqB,IAAAD,GAAI,EAACA,EAAAE,EAAAzB,EAC1B0B,UAAAA,OAAY,IAAHD,GAAQA,EAAAE,EAAA3B,EACjB4B,0BAAAA,OAA4B,IAAHD,GAAQA,EAAAE,GAAA7B,EACjC8B,iBAAAA,QAAmB,IAAHD,IAAQA,GACTE,GAAU/B,EAAzB,eAIIgC,GAAMC,EAAO,MACbC,GAAYC,EAAYH,GAAK/B,GAE7BmC,GAAaC,EAAUnC,GACvBoC,GAA6BL,EAAoB,MAEvDM,GAA8CC,EAASlB,GAAemB,GAAAC,EAAAH,GAAA,GAA/DI,GAAeF,GAAA,GAAEG,GAAkBH,GAAA,GAC1CI,GAA4DL,GAAS,GAAMM,GAAAJ,EAAAG,GAAA,GAApEE,GAAsBD,GAAA,GAAEE,GAAyBF,GAAA,GAElDhC,GAAWmC,GAAQ,WAEvB,OADoBC,EAAMC,SAASC,QAAQvC,GACxBwC,QAAO,SAAAC,GACxB,QAAIA,EAAMC,KAAKC,cACfC,QAAQC,MACN,qHACAJ,IAEK,EACT,GACF,GAAG,CAACzC,IAEE8C,GAAwBC,GAC5B,SAACC,aACCjB,GAAmBiB,GAEnB,IAAMC,EAAchD,GAAS+C,GACvBE,EAAuBb,EAAMc,eAAeF,YAC9CG,EAAAH,aAAA,EAAAA,EAAaI,4BAAOhE,KAAEiE,GAAAA,OAAO/B,GAAU+B,UAAAA,OAASN,QAChDO,EACAL,EACY,QAAdM,EAAArC,cAAG,EAAHA,GAAKsC,eAAS,IAAAD,GAAAA,EAAAE,aAAa,wBAAyBR,GAExC,QAAZS,EAAAxC,cAAG,EAAHA,GAAKsC,eAAO,IAAAE,GAAAA,EAAEC,gBAAgB,wBAElC,GACA,CAAC3D,GAAUsB,KAGPsC,GAA+Bd,GACnC,SAACC,GACC3C,GAAeA,EAAY2C,GAC3BF,GAAsBE,GACtBb,IAA0B,EAC5B,GACA,CAACW,GAAuBzC,IAG1ByD,GACEC,IADMC,GAAuBF,GAAvBE,wBAAyBC,GAAcH,GAAdG,eAAgBC,GAAgBJ,GAAhBI,iBAAuCC,GAAqBL,GAArBK,sBAGlFC,GAAcC,EAAe,CACjCtC,mBAAoB8B,GACpBS,oBALoFR,GAAnBQ,oBAMjElE,QAAAA,IAGFmE,EAAgB,CAAEpD,IAAAA,GAAKqD,SAAU,WAAA,OAAMJ,IAAa,IACpDK,EAAuB,CAAER,eAAAA,GAAgBG,YAAAA,GAAajD,IAAAA,GAAKf,QAAAA,EAASS,UAAAA,EAAWE,0BAAAA,IAE/E,IAAA2D,GAA+DC,EAA+B,CAC5F1E,SAAUA,KADJ2E,GAAsBF,GAAtBE,uBAAwBC,GAA0BH,GAA1BG,2BAGhCC,EAA0B,CACxBb,eAAAA,GACAW,uBAAAA,GACAC,2BAAAA,GACA/C,gBAAAA,GACAC,mBAAoB8B,GACpB1D,UAAAA,EACAgB,IAAAA,GACAJ,0BAAAA,IAEFgE,EAAc,CACZZ,sBAAAA,GACAF,eAAAA,GACA9C,IAAAA,GACAY,mBAAoB8B,KAEtBmB,EAAgB,CACdrE,sBAAAA,EACAsE,kBAAmBhF,GAASU,GAC5BiE,uBAAAA,GACA9B,sBAAAA,GACAoC,qBAAsB/C,KAGxB,IAAMgD,GAAcpC,GAAY,WAC9BZ,IAA0B,EAC5B,GAAG,CAACA,KAEEiD,GAAyBC,EAAYpB,IAC3CqB,GAAU,iBACJrB,IAAkBlD,GAClBe,IAAmB,GAAKsD,KAEd,QAAZhC,EAAAjC,cAAA,EAAAA,GAAKsC,eAAO,IAAAL,GAAAA,EAAEmC,QAEjB,GAAE,CAACzD,GAAiBmC,GAAgBmB,GAAwBrE,IAE7DyE,GAA0B,WACnBjF,IAAgBQ,GACrB0E,uBAAsB,WACpBtE,IAAOA,GAAIsC,SAAWtC,GAAIsC,QAAQ8B,OACpC,GACD,GAAE,CAACpE,GAAKZ,EAAcQ,IAEvB,IAAQ2E,GAAqBC,EAAe,CAC1CC,aAAc,WACZxB,IAAeA,IACjB,IAHMsB,iBAMR,OACErD,EACEwD,cAAA,KAAA,CAAAC,QAASJ,cAAgB,EAAhBA,GAAkBI,QAC3BC,OAAQL,cAAgB,EAAhBA,GAAkBK,OAC1B1G,GAAIkC,iBACSL,IAAc8E,EAAUC,EAAuBC,KAAM7G,eACvD8G,EAAgBD,KAC3B5G,UAAW8G,EAAGC,EAAOC,KAAMC,EAASF,EAAQ7G,GAAOF,GACnD6B,IAAKE,GACLzB,SAAUA,EAAQ,aACNE,EACZ0G,KAAK,0BACazG,EAClB0G,YAAatB,IAEZlF,IACCoC,EAAMC,SAASoE,IAAIzG,IAAU,SAACwC,EAAOO,GACnC,OAAOX,EAAMc,eAAeV,GACxBJ,EAAMsE,aAAalE,EAAKmE,OAAAC,OAAAD,OAAAC,OAAA,GACnBpE,aAAA,EAAAA,EAAOY,QACVvB,gBAAAA,GACAkB,MAAAA,EACAjB,mBAAoBe,GACpBgE,QAAS3F,GACTgD,sBAAAA,GACA4C,oBAAqB5G,EACrB6D,wBAAAA,GACAC,eAAgBjB,IAAUkB,GAC1B8C,UAAW5C,GACX/E,GAAI4H,EAAmB1F,GAAYkB,EAAOO,GAC1CjC,0BAAAA,EACAmB,uBAAAA,GACAjB,iBAAAA,GACA2D,uBAAAA,GACAC,2BAAAA,GACAqC,eAAgBrG,EAChBY,2BAAAA,MAEF,IACL,IAGT,IAGFmF,OAAOC,OAAO5H,EAAM,CAClBkI,QAAQ,EACRC,qBAAqB"}
@@ -1,2 +1,2 @@
1
- import{useCallback as e}from"react";import o from"../../../../hooks/useKeyEvent/index.js";import{keyCodes as s}from"../../../../constants/keyCodes.js";import"../../../../constants/sizes.js";var t=[s.ESCAPE,s.LEFT_ARROW,s.TAB];function n(n){var r=n.hasOpenSubMenu,a=n.onCloseMenu,i=n.ref,p=n.onClose,u=n.isSubMenu,c=n.useDocumentEventListeners,f=e((function(e){var o=e.key;r||(o!==s.LEFT_ARROW||u)&&[s.ESCAPE,s.LEFT_ARROW,s.TAB].includes(o)&&(a({propagate:!1}),p&&(p({propagate:!1},o),e.preventDefault(),e.stopPropagation()))}),[p,r,a,u]);o({keys:t,callback:f,ref:c?void 0:i})}export{n as default};
1
+ import{useCallback as e}from"react";import{useKeyEvent as o}from"@vibe/shared";import{keyCodes as t}from"../../../../constants/keyCodes.js";import"../../../../constants/sizes.js";var s=[t.ESCAPE,t.LEFT_ARROW,t.TAB];function n(n){var r=n.hasOpenSubMenu,a=n.onCloseMenu,i=n.ref,p=n.onClose,u=n.isSubMenu,c=n.useDocumentEventListeners,f=e((function(e){var o=e.key;r||(o!==t.LEFT_ARROW||u)&&[t.ESCAPE,t.LEFT_ARROW,t.TAB].includes(o)&&(a({propagate:!1}),p&&(p({propagate:!1},o),e.preventDefault(),e.stopPropagation()))}),[p,r,a,u]);o({keys:s,callback:f,ref:c?void 0:i})}export{n as default};
2
2
  //# sourceMappingURL=useCloseMenuOnKeyEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCloseMenuOnKeyEvent.js","sources":["../../../../../../../src/components/Menu/Menu/hooks/useCloseMenuOnKeyEvent.tsx"],"sourcesContent":["import type React from \"react\";\nimport { useCallback } from \"react\";\nimport useKeyEvent from \"../../../../hooks/useKeyEvent\";\nimport { type CloseMenuOption } from \"../MenuConstants\";\nimport { keyCodes } from \"../../../../constants\";\n\nconst KEYS = [keyCodes.ESCAPE, keyCodes.LEFT_ARROW, keyCodes.TAB];\n\nexport default function useCloseMenuOnKeyEvent({\n hasOpenSubMenu,\n onCloseMenu,\n ref,\n onClose,\n isSubMenu,\n useDocumentEventListeners\n}: {\n hasOpenSubMenu: boolean;\n onCloseMenu: (option: CloseMenuOption) => void;\n ref: React.RefObject<HTMLElement>;\n onClose: (option: CloseMenuOption, key?: string) => void;\n isSubMenu: boolean;\n useDocumentEventListeners: boolean;\n}) {\n const onKeyEvent = useCallback(\n (event: React.KeyboardEvent) => {\n const key = event.key;\n\n if (hasOpenSubMenu) return;\n\n if (key === keyCodes.LEFT_ARROW && !isSubMenu) {\n return;\n }\n if (![keyCodes.ESCAPE, keyCodes.LEFT_ARROW, keyCodes.TAB].includes(key)) {\n return;\n }\n\n onCloseMenu({ propagate: false });\n\n if (onClose) {\n onClose({ propagate: false }, key);\n event.preventDefault();\n event.stopPropagation();\n }\n },\n [onClose, hasOpenSubMenu, onCloseMenu, isSubMenu]\n );\n\n useKeyEvent({\n keys: KEYS,\n callback: onKeyEvent,\n ref: useDocumentEventListeners ? undefined : ref\n });\n}\n"],"names":["KEYS","keyCodes","ESCAPE","LEFT_ARROW","TAB","useCloseMenuOnKeyEvent","_ref","hasOpenSubMenu","onCloseMenu","ref","onClose","isSubMenu","useDocumentEventListeners","onKeyEvent","useCallback","event","key","includes","propagate","preventDefault","stopPropagation","useKeyEvent","keys","callback","undefined"],"mappings":"8LAMA,IAAMA,EAAO,CAACC,EAASC,OAAQD,EAASE,WAAYF,EAASG,KAE/C,SAAUC,EAAsBC,GAc7C,IAbCC,EAAcD,EAAdC,eACAC,EAAWF,EAAXE,YACAC,EAAGH,EAAHG,IACAC,EAAOJ,EAAPI,QACAC,EAASL,EAATK,UACAC,EAAyBN,EAAzBM,0BASMC,EAAaC,GACjB,SAACC,GACC,IAAMC,EAAMD,EAAMC,IAEdT,IAEAS,IAAQf,EAASE,YAAeQ,IAG/B,CAACV,EAASC,OAAQD,EAASE,WAAYF,EAASG,KAAKa,SAASD,KAInER,EAAY,CAAEU,WAAW,IAErBR,IACFA,EAAQ,CAAEQ,WAAW,GAASF,GAC9BD,EAAMI,iBACNJ,EAAMK,mBAET,GACD,CAACV,EAASH,EAAgBC,EAAaG,IAGzCU,EAAY,CACVC,KAAMtB,EACNuB,SAAUV,EACVJ,IAAKG,OAA4BY,EAAYf,GAEjD"}
1
+ {"version":3,"file":"useCloseMenuOnKeyEvent.js","sources":["../../../../../../../src/components/Menu/Menu/hooks/useCloseMenuOnKeyEvent.tsx"],"sourcesContent":["import type React from \"react\";\nimport { useCallback } from \"react\";\nimport useKeyEvent from \"../../../../hooks/useKeyEvent\";\nimport { type CloseMenuOption } from \"../MenuConstants\";\nimport { keyCodes } from \"../../../../constants\";\n\nconst KEYS = [keyCodes.ESCAPE, keyCodes.LEFT_ARROW, keyCodes.TAB];\n\nexport default function useCloseMenuOnKeyEvent({\n hasOpenSubMenu,\n onCloseMenu,\n ref,\n onClose,\n isSubMenu,\n useDocumentEventListeners\n}: {\n hasOpenSubMenu: boolean;\n onCloseMenu: (option: CloseMenuOption) => void;\n ref: React.RefObject<HTMLElement>;\n onClose: (option: CloseMenuOption, key?: string) => void;\n isSubMenu: boolean;\n useDocumentEventListeners: boolean;\n}) {\n const onKeyEvent = useCallback(\n (event: React.KeyboardEvent) => {\n const key = event.key;\n\n if (hasOpenSubMenu) return;\n\n if (key === keyCodes.LEFT_ARROW && !isSubMenu) {\n return;\n }\n if (![keyCodes.ESCAPE, keyCodes.LEFT_ARROW, keyCodes.TAB].includes(key)) {\n return;\n }\n\n onCloseMenu({ propagate: false });\n\n if (onClose) {\n onClose({ propagate: false }, key);\n event.preventDefault();\n event.stopPropagation();\n }\n },\n [onClose, hasOpenSubMenu, onCloseMenu, isSubMenu]\n );\n\n useKeyEvent({\n keys: KEYS,\n callback: onKeyEvent,\n ref: useDocumentEventListeners ? undefined : ref\n });\n}\n"],"names":["KEYS","keyCodes","ESCAPE","LEFT_ARROW","TAB","useCloseMenuOnKeyEvent","_ref","hasOpenSubMenu","onCloseMenu","ref","onClose","isSubMenu","useDocumentEventListeners","onKeyEvent","useCallback","event","key","includes","propagate","preventDefault","stopPropagation","useKeyEvent","keys","callback","undefined"],"mappings":"mLAMA,IAAMA,EAAO,CAACC,EAASC,OAAQD,EAASE,WAAYF,EAASG,KAE/C,SAAUC,EAAsBC,GAc7C,IAbCC,EAAcD,EAAdC,eACAC,EAAWF,EAAXE,YACAC,EAAGH,EAAHG,IACAC,EAAOJ,EAAPI,QACAC,EAASL,EAATK,UACAC,EAAyBN,EAAzBM,0BASMC,EAAaC,GACjB,SAACC,GACC,IAAMC,EAAMD,EAAMC,IAEdT,IAEAS,IAAQf,EAASE,YAAeQ,IAG/B,CAACV,EAASC,OAAQD,EAASE,WAAYF,EAASG,KAAKa,SAASD,KAInER,EAAY,CAAEU,WAAW,IAErBR,IACFA,EAAQ,CAAEQ,WAAW,GAASF,GAC9BD,EAAMI,iBACNJ,EAAMK,mBAET,GACD,CAACV,EAASH,EAAgBC,EAAaG,IAGzCU,EAAY,CACVC,KAAMtB,EACNuB,SAAUV,EACVJ,IAAKG,OAA4BY,EAAYf,GAEjD"}