@vibe/core 3.36.0-alpha-94da6.0 → 3.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Accordion/Accordion/Accordion.d.ts +3 -15
- package/dist/components/Accordion/AccordionItem/AccordionItem.d.ts +9 -17
- package/dist/components/AlertBanner/AlertBanner.d.ts +16 -3
- package/dist/components/AlertBanner/AlertBannerButton/AlertBannerButton.d.ts +3 -0
- package/dist/components/AlertBanner/AlertBannerLink/AlertBannerLink.d.ts +3 -0
- package/dist/components/AlertBanner/AlertBannerText/AlertBannerText.d.ts +6 -0
- package/dist/components/AttentionBox/AttentionBox.d.ts +36 -4
- package/dist/components/Avatar/Avatar.d.ts +70 -3
- package/dist/components/Avatar/AvatarBadge.d.ts +10 -2
- package/dist/components/Avatar/AvatarContent.d.ts +24 -1
- package/dist/components/AvatarGroup/AvatarGroup.d.ts +17 -5
- package/dist/components/AvatarGroup/AvatarGroupCounter.d.ts +20 -2
- package/dist/components/AvatarGroup/AvatarGroupCounterTooltipContainer.d.ts +20 -3
- package/dist/components/AvatarGroup/AvatarGroupCounterTooltipContent.d.ts +10 -2
- package/dist/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.d.ts +13 -1
- package/dist/components/Badge/Badge.d.ts +15 -0
- package/dist/components/Badge/Indicator/Indicator.d.ts +3 -0
- package/dist/components/BaseInput/BaseInput.types.d.ts +8 -15
- package/dist/components/BaseListItem/BaseListItem.types.d.ts +2 -2
- package/dist/components/Box/Box.d.ts +75 -0
- package/dist/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbContent/BreadcrumbContent.d.ts +24 -0
- package/dist/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbItem.d.ts +24 -7
- package/dist/components/BreadcrumbsBar/BreadcrumbsBar.d.ts +6 -1
- package/dist/components/ButtonGroup/ButtonGroup.d.ts +46 -1
- package/dist/components/ButtonGroup/ButtonWrapper.d.ts +16 -1
- package/dist/components/Checkbox/Checkbox.d.ts +42 -18
- package/dist/components/Chips/Chips.d.ts +54 -20
- package/dist/components/Clickable/Clickable.d.ts +41 -5
- package/dist/components/Clickable/ClickableWrapper.d.ts +9 -0
- package/dist/components/ColorPicker/ColorPicker.d.ts +43 -1
- package/dist/components/ColorPicker/components/ColorPickerContent/ColorPickerClearButton.d.ts +9 -0
- package/dist/components/ColorPicker/components/ColorPickerContent/ColorPickerColorsGrid.d.ts +39 -0
- package/dist/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.d.ts +48 -0
- package/dist/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.d.ts +33 -1
- package/dist/components/Combobox/Combobox.d.ts +78 -25
- package/dist/components/Combobox/components/ComboboxCategory/ComboboxCategory.d.ts +6 -0
- package/dist/components/Combobox/components/ComboboxConstants.d.ts +156 -0
- package/dist/components/Combobox/components/ComboboxItems/ComboboxItems.d.ts +45 -0
- package/dist/components/Combobox/components/ComboboxOption/ComboboxOption.d.ts +30 -0
- package/dist/components/Counter/Counter.d.ts +33 -14
- package/dist/components/DatePicker/DateNavigationItem/DateNavigationItem.d.ts +6 -0
- package/dist/components/DatePicker/DatePicker.d.ts +39 -13
- package/dist/components/DatePicker/DatePickerHeader/DatePickerHeader.d.ts +18 -0
- package/dist/components/DatePicker/YearPicker/YearPicker.d.ts +12 -0
- package/dist/components/DatePicker/YearPicker/YearsList.d.ts +12 -0
- package/dist/components/DatePicker/types.d.ts +6 -0
- package/dist/components/Dialog/Dialog.d.ts +59 -36
- package/dist/components/Dialog/DialogContent/DialogContent.d.ts +52 -3
- package/dist/components/DialogContentContainer/DialogContentContainer.d.ts +18 -0
- package/dist/components/Divider/Divider.d.ts +2 -2
- package/dist/components/Dropdown/Dropdown.types.d.ts +97 -63
- package/dist/components/EditableHeading/EditableHeading.d.ts +4 -3
- package/dist/components/EditableText/EditableText.d.ts +6 -4
- package/dist/components/EditableTypography/EditableTypography.d.ts +48 -16
- package/dist/components/ExpandCollapse/ExpandCollapse.d.ts +20 -8
- package/dist/components/FieldLabel/FieldLabel.d.ts +18 -0
- package/dist/components/Flex/Flex.d.ts +36 -2
- package/dist/components/FormattedNumber/FormattedNumber.d.ts +8 -8
- package/dist/components/GridKeyboardNavigationContext/GridKeyboardNavigationContextConstants.d.ts +3 -0
- package/dist/components/Heading/Heading.d.ts +15 -0
- package/dist/components/HiddenText/HiddenText.d.ts +3 -0
- package/dist/components/Icon/CustomSvgIcon/CustomSvgIcon.d.ts +30 -0
- package/dist/components/Icon/FontIcon/FontIcon.d.ts +18 -0
- package/dist/components/Icon/Icon.d.ts +32 -8
- package/dist/components/IconButton/IconButton.d.ts +37 -27
- package/dist/components/Label/Label.d.ts +22 -1
- package/dist/components/Label/LabelCelebrationAnimation.d.ts +6 -0
- package/dist/components/LayerProvider/LayerContext.d.ts +3 -0
- package/dist/components/LayerProvider/LayerProvider.d.ts +7 -1
- package/dist/components/LegacyModal/LegacyModalHeader/LegacyModalHeader.d.ts +0 -8
- package/dist/components/Link/Link.d.ts +40 -14
- package/dist/components/List/List.d.ts +14 -5
- package/dist/components/List/VirtualizedListItems/VirtualizedListItems.d.ts +3 -0
- package/dist/components/ListItem/ListItem.d.ts +12 -25
- package/dist/components/ListItemAvatar/ListItemAvatar.d.ts +7 -1
- package/dist/components/ListItemIcon/ListItemIcon.d.ts +5 -2
- package/dist/components/ListTitle/ListTitle.d.ts +6 -0
- package/dist/components/Loader/Loader.d.ts +12 -2
- package/dist/components/Menu/Menu/Menu.d.ts +42 -0
- package/dist/components/Menu/MenuGridItem/MenuGridItem.d.ts +33 -5
- package/dist/components/Menu/MenuItem/AvatarMenuItem.d.ts +6 -0
- package/dist/components/Menu/MenuItem/MenuItem.d.ts +97 -7
- package/dist/components/Menu/MenuItem/components/BaseMenuItem/BaseMenuItem.types.d.ts +7 -0
- package/dist/components/Menu/MenuItem/components/MenuItemIcon/MenuItemIcon.types.d.ts +7 -6
- package/dist/components/Menu/MenuItem/components/MenuItemSubMenu/MenuItemSubMenu.types.d.ts +7 -3
- package/dist/components/Menu/MenuItem/components/MenuItemSubMenuIcon/MenuItemSubMenuIcon.types.d.ts +5 -1
- package/dist/components/Menu/MenuItemButton/MenuItemButton.d.ts +51 -0
- package/dist/components/Menu/MenuTitle/MenuTitle.d.ts +6 -0
- package/dist/components/MenuButton/MenuButton.d.ts +67 -19
- package/dist/components/Modal/ModalContent/ModalContent.types.d.ts +1 -1
- package/dist/components/Modal/ModalMedia/ModalMedia.types.d.ts +1 -1
- package/dist/components/Modal/ModalTopActions/ModalTopActions.types.d.ts +5 -5
- package/dist/components/Modal/context/ModalContext.types.d.ts +5 -5
- package/dist/components/Modal/footers/ModalFooter/ModalFooter.types.d.ts +1 -1
- package/dist/components/Modal/footers/ModalFooterBase/ModalFooterBase.types.d.ts +3 -3
- package/dist/components/Modal/footers/ModalFooterWizard/ModalFooterWizard.types.d.ts +4 -4
- package/dist/components/Modal/layouts/ModalBasicLayout/ModalBasicLayout.types.d.ts +1 -1
- package/dist/components/Modal/layouts/ModalFooterShadow.types.d.ts +1 -1
- package/dist/components/Modal/layouts/ModalLayoutScrollableContent.types.d.ts +2 -2
- package/dist/components/Modal/layouts/ModalMediaLayout/ModalMediaLayout.types.d.ts +1 -1
- package/dist/components/Modal/layouts/ModalSideBySideLayout/ModalSideBySideLayout.types.d.ts +1 -1
- package/dist/components/MultiStepIndicator/MultiStepIndicator.d.ts +30 -0
- package/dist/components/MultiStepIndicator/components/StepIndicator/StepIndicator.d.ts +57 -0
- package/dist/components/ProgressBars/LinearProgressBar/Bar/Bar.d.ts +17 -6
- package/dist/components/ProgressBars/LinearProgressBar/LinearProgressBar.d.ts +19 -22
- package/dist/components/ProgressBars/PercentageLabel/PercentageLabel.d.ts +2 -2
- package/dist/components/RadioButton/RadioButton.d.ts +45 -16
- package/dist/components/Search/Search.types.d.ts +24 -24
- package/dist/components/Skeleton/Skeleton.d.ts +16 -1
- package/dist/components/SlideTransition/SlideTransition.types.d.ts +12 -0
- package/dist/components/Slider/SelectionIndicator.d.ts +6 -0
- package/dist/components/Slider/SliderBase/SliderFilledTrack.d.ts +6 -8
- package/dist/components/Slider/SliderBase/SliderRail.d.ts +6 -4
- package/dist/components/Slider/SliderBase/SliderThumb.d.ts +9 -7
- package/dist/components/Slider/SliderBase/SliderTrack.d.ts +1 -2
- package/dist/components/Slider/SliderContext.d.ts +13 -8
- package/dist/components/Slider/SliderInfix.d.ts +1 -2
- package/dist/components/SplitButton/SplitButton.d.ts +25 -2
- package/dist/components/Steps/Steps.d.ts +32 -2
- package/dist/components/Steps/StepsCommand.d.ts +21 -0
- package/dist/components/Steps/StepsDot.d.ts +15 -0
- package/dist/components/Steps/StepsGalleryHeader.d.ts +15 -0
- package/dist/components/Steps/StepsHeader.d.ts +33 -0
- package/dist/components/Steps/StepsNumbersHeader.d.ts +9 -0
- package/dist/components/Switch/Switch.d.ts +39 -0
- package/dist/components/Table/Table/Table.d.ts +42 -0
- package/dist/components/Table/TableBody/TableBody.d.ts +3 -0
- package/dist/components/Table/TableCell/TableCell.d.ts +6 -0
- package/dist/components/Table/TableCellSkeleton/TableCellSkeleton.d.ts +6 -0
- package/dist/components/Table/TableContainer/TableContainer.types.d.ts +6 -0
- package/dist/components/Table/TableHeader/TableHeader.d.ts +3 -0
- package/dist/components/Table/TableHeaderCell/TableHeaderCell.d.ts +21 -0
- package/dist/components/Table/TableRow/TableRow.d.ts +7 -1
- package/dist/components/Table/TableRowMenu/TableRowMenu.types.d.ts +6 -0
- package/dist/components/Table/TableVirtualizedBody/TableVirtualizedBody.d.ts +15 -0
- package/dist/components/Tabs/Tab/Tab.d.ts +27 -3
- package/dist/components/Tabs/TabList/TabList.d.ts +15 -0
- package/dist/components/Tabs/TabPanel/TabPanel.d.ts +6 -0
- package/dist/components/Tabs/TabPanels/TabPanels.d.ts +9 -0
- package/dist/components/Tabs/TabsContext/TabsContext.d.ts +6 -0
- package/dist/components/Text/Text.d.ts +9 -0
- package/dist/components/TextArea/TextArea.types.d.ts +13 -16
- package/dist/components/TextField/TextField.d.ts +127 -9
- package/dist/components/TextWithHighlight/TextWithHighlight.d.ts +33 -6
- package/dist/components/ThemeProvider/ThemeProvider.d.ts +8 -5
- package/dist/components/Tipseen/Tipseen.d.ts +64 -6
- package/dist/components/Tipseen/TipseenBasicContent.d.ts +9 -0
- package/dist/components/Tipseen/TipseenContent.d.ts +25 -1
- package/dist/components/Tipseen/TipseenImage.d.ts +12 -0
- package/dist/components/Tipseen/TipseenMedia/TipseenMedia.d.ts +3 -0
- package/dist/components/Tipseen/TipseenTitle.d.ts +3 -0
- package/dist/components/Tipseen/TipseenWizard.d.ts +7 -1
- package/dist/components/Toast/Toast.d.ts +37 -8
- package/dist/components/Toggle/MockToggle.d.ts +21 -0
- package/dist/components/Toggle/Toggle.d.ts +37 -1
- package/dist/components/Toggle/ToggleText.d.ts +6 -0
- package/dist/components/Tooltip/Tooltip.d.ts +64 -27
- package/dist/components/TransitionView/TransitionView.types.d.ts +9 -0
- package/dist/components/Typography/Typography.d.ts +12 -6
- package/dist/components/VirtualizedGrid/VirtualizedGrid.d.ts +19 -19
- package/dist/components/VirtualizedList/VirtualizedList.d.ts +33 -27
- package/dist/hooks/useKeyEvent/index.d.ts +30 -0
- package/dist/hooks/useSwitch/index.d.ts +12 -0
- package/dist/hooks/useWizard/useWizard.types.d.ts +33 -0
- package/dist/mocked_classnames/components/Accordion/Accordion/Accordion.d.ts +3 -15
- package/dist/mocked_classnames/components/Accordion/AccordionItem/AccordionItem.d.ts +9 -17
- package/dist/mocked_classnames/components/AlertBanner/AlertBanner.d.ts +16 -3
- package/dist/mocked_classnames/components/AlertBanner/AlertBannerButton/AlertBannerButton.d.ts +3 -0
- package/dist/mocked_classnames/components/AlertBanner/AlertBannerLink/AlertBannerLink.d.ts +3 -0
- package/dist/mocked_classnames/components/AlertBanner/AlertBannerText/AlertBannerText.d.ts +6 -0
- package/dist/mocked_classnames/components/AttentionBox/AttentionBox.d.ts +36 -4
- package/dist/mocked_classnames/components/Avatar/Avatar.d.ts +70 -3
- package/dist/mocked_classnames/components/Avatar/AvatarBadge.d.ts +10 -2
- package/dist/mocked_classnames/components/Avatar/AvatarContent.d.ts +24 -1
- package/dist/mocked_classnames/components/AvatarGroup/AvatarGroup.d.ts +17 -5
- package/dist/mocked_classnames/components/AvatarGroup/AvatarGroupCounter.d.ts +20 -2
- package/dist/mocked_classnames/components/AvatarGroup/AvatarGroupCounterTooltipContainer.d.ts +20 -3
- package/dist/mocked_classnames/components/AvatarGroup/AvatarGroupCounterTooltipContent.d.ts +10 -2
- package/dist/mocked_classnames/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.d.ts +13 -1
- package/dist/mocked_classnames/components/Badge/Badge.d.ts +15 -0
- package/dist/mocked_classnames/components/Badge/Indicator/Indicator.d.ts +3 -0
- package/dist/mocked_classnames/components/BaseInput/BaseInput.types.d.ts +8 -15
- package/dist/mocked_classnames/components/BaseListItem/BaseListItem.types.d.ts +2 -2
- package/dist/mocked_classnames/components/Box/Box.d.ts +75 -0
- package/dist/mocked_classnames/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbContent/BreadcrumbContent.d.ts +24 -0
- package/dist/mocked_classnames/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbItem.d.ts +24 -7
- package/dist/mocked_classnames/components/BreadcrumbsBar/BreadcrumbsBar.d.ts +6 -1
- package/dist/mocked_classnames/components/ButtonGroup/ButtonGroup.d.ts +46 -1
- package/dist/mocked_classnames/components/ButtonGroup/ButtonWrapper.d.ts +16 -1
- package/dist/mocked_classnames/components/Checkbox/Checkbox.d.ts +42 -18
- package/dist/mocked_classnames/components/Chips/Chips.d.ts +54 -20
- package/dist/mocked_classnames/components/Clickable/Clickable.d.ts +41 -5
- package/dist/mocked_classnames/components/Clickable/ClickableWrapper.d.ts +9 -0
- package/dist/mocked_classnames/components/ColorPicker/ColorPicker.d.ts +43 -1
- package/dist/mocked_classnames/components/ColorPicker/components/ColorPickerContent/ColorPickerClearButton.d.ts +9 -0
- package/dist/mocked_classnames/components/ColorPicker/components/ColorPickerContent/ColorPickerColorsGrid.d.ts +39 -0
- package/dist/mocked_classnames/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.d.ts +48 -0
- package/dist/mocked_classnames/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.d.ts +33 -1
- package/dist/mocked_classnames/components/Combobox/Combobox.d.ts +78 -25
- package/dist/mocked_classnames/components/Combobox/components/ComboboxCategory/ComboboxCategory.d.ts +6 -0
- package/dist/mocked_classnames/components/Combobox/components/ComboboxConstants.d.ts +156 -0
- package/dist/mocked_classnames/components/Combobox/components/ComboboxItems/ComboboxItems.d.ts +45 -0
- package/dist/mocked_classnames/components/Combobox/components/ComboboxOption/ComboboxOption.d.ts +30 -0
- package/dist/mocked_classnames/components/Counter/Counter.d.ts +33 -14
- package/dist/mocked_classnames/components/DatePicker/DateNavigationItem/DateNavigationItem.d.ts +6 -0
- package/dist/mocked_classnames/components/DatePicker/DatePicker.d.ts +39 -13
- package/dist/mocked_classnames/components/DatePicker/DatePickerHeader/DatePickerHeader.d.ts +18 -0
- package/dist/mocked_classnames/components/DatePicker/YearPicker/YearPicker.d.ts +12 -0
- package/dist/mocked_classnames/components/DatePicker/YearPicker/YearsList.d.ts +12 -0
- package/dist/mocked_classnames/components/DatePicker/types.d.ts +6 -0
- package/dist/mocked_classnames/components/Dialog/Dialog.d.ts +59 -36
- package/dist/mocked_classnames/components/Dialog/DialogContent/DialogContent.d.ts +52 -3
- package/dist/mocked_classnames/components/DialogContentContainer/DialogContentContainer.d.ts +18 -0
- package/dist/mocked_classnames/components/Divider/Divider.d.ts +2 -2
- package/dist/mocked_classnames/components/Dropdown/Dropdown.types.d.ts +97 -63
- package/dist/mocked_classnames/components/EditableHeading/EditableHeading.d.ts +4 -3
- package/dist/mocked_classnames/components/EditableText/EditableText.d.ts +6 -4
- package/dist/mocked_classnames/components/EditableTypography/EditableTypography.d.ts +48 -16
- package/dist/mocked_classnames/components/ExpandCollapse/ExpandCollapse.d.ts +20 -8
- package/dist/mocked_classnames/components/FieldLabel/FieldLabel.d.ts +18 -0
- package/dist/mocked_classnames/components/Flex/Flex.d.ts +36 -2
- package/dist/mocked_classnames/components/FormattedNumber/FormattedNumber.d.ts +8 -8
- package/dist/mocked_classnames/components/GridKeyboardNavigationContext/GridKeyboardNavigationContextConstants.d.ts +3 -0
- package/dist/mocked_classnames/components/Heading/Heading.d.ts +15 -0
- package/dist/mocked_classnames/components/HiddenText/HiddenText.d.ts +3 -0
- package/dist/mocked_classnames/components/Icon/CustomSvgIcon/CustomSvgIcon.d.ts +30 -0
- package/dist/mocked_classnames/components/Icon/FontIcon/FontIcon.d.ts +18 -0
- package/dist/mocked_classnames/components/Icon/Icon.d.ts +32 -8
- package/dist/mocked_classnames/components/IconButton/IconButton.d.ts +37 -27
- package/dist/mocked_classnames/components/Label/Label.d.ts +22 -1
- package/dist/mocked_classnames/components/Label/LabelCelebrationAnimation.d.ts +6 -0
- package/dist/mocked_classnames/components/LayerProvider/LayerContext.d.ts +3 -0
- package/dist/mocked_classnames/components/LayerProvider/LayerProvider.d.ts +7 -1
- package/dist/mocked_classnames/components/LegacyModal/LegacyModalHeader/LegacyModalHeader.d.ts +0 -8
- package/dist/mocked_classnames/components/Link/Link.d.ts +40 -14
- package/dist/mocked_classnames/components/List/List.d.ts +14 -5
- package/dist/mocked_classnames/components/List/VirtualizedListItems/VirtualizedListItems.d.ts +3 -0
- package/dist/mocked_classnames/components/ListItem/ListItem.d.ts +12 -25
- package/dist/mocked_classnames/components/ListItemAvatar/ListItemAvatar.d.ts +7 -1
- package/dist/mocked_classnames/components/ListItemIcon/ListItemIcon.d.ts +5 -2
- package/dist/mocked_classnames/components/ListTitle/ListTitle.d.ts +6 -0
- package/dist/mocked_classnames/components/Loader/Loader.d.ts +12 -2
- package/dist/mocked_classnames/components/Menu/Menu/Menu.d.ts +42 -0
- package/dist/mocked_classnames/components/Menu/MenuGridItem/MenuGridItem.d.ts +33 -5
- package/dist/mocked_classnames/components/Menu/MenuItem/AvatarMenuItem.d.ts +6 -0
- package/dist/mocked_classnames/components/Menu/MenuItem/MenuItem.d.ts +97 -7
- package/dist/mocked_classnames/components/Menu/MenuItem/components/BaseMenuItem/BaseMenuItem.types.d.ts +7 -0
- package/dist/mocked_classnames/components/Menu/MenuItem/components/MenuItemIcon/MenuItemIcon.types.d.ts +7 -6
- package/dist/mocked_classnames/components/Menu/MenuItem/components/MenuItemSubMenu/MenuItemSubMenu.types.d.ts +7 -3
- package/dist/mocked_classnames/components/Menu/MenuItem/components/MenuItemSubMenuIcon/MenuItemSubMenuIcon.types.d.ts +5 -1
- package/dist/mocked_classnames/components/Menu/MenuItemButton/MenuItemButton.d.ts +51 -0
- package/dist/mocked_classnames/components/Menu/MenuTitle/MenuTitle.d.ts +6 -0
- package/dist/mocked_classnames/components/MenuButton/MenuButton.d.ts +67 -19
- package/dist/mocked_classnames/components/Modal/ModalContent/ModalContent.types.d.ts +1 -1
- package/dist/mocked_classnames/components/Modal/ModalMedia/ModalMedia.types.d.ts +1 -1
- package/dist/mocked_classnames/components/Modal/ModalTopActions/ModalTopActions.types.d.ts +5 -5
- package/dist/mocked_classnames/components/Modal/context/ModalContext.types.d.ts +5 -5
- package/dist/mocked_classnames/components/Modal/footers/ModalFooter/ModalFooter.types.d.ts +1 -1
- package/dist/mocked_classnames/components/Modal/footers/ModalFooterBase/ModalFooterBase.types.d.ts +3 -3
- package/dist/mocked_classnames/components/Modal/footers/ModalFooterWizard/ModalFooterWizard.types.d.ts +4 -4
- package/dist/mocked_classnames/components/Modal/layouts/ModalBasicLayout/ModalBasicLayout.types.d.ts +1 -1
- package/dist/mocked_classnames/components/Modal/layouts/ModalFooterShadow.types.d.ts +1 -1
- package/dist/mocked_classnames/components/Modal/layouts/ModalLayoutScrollableContent.types.d.ts +2 -2
- package/dist/mocked_classnames/components/Modal/layouts/ModalMediaLayout/ModalMediaLayout.types.d.ts +1 -1
- package/dist/mocked_classnames/components/Modal/layouts/ModalSideBySideLayout/ModalSideBySideLayout.types.d.ts +1 -1
- package/dist/mocked_classnames/components/MultiStepIndicator/MultiStepIndicator.d.ts +30 -0
- package/dist/mocked_classnames/components/MultiStepIndicator/components/StepIndicator/StepIndicator.d.ts +57 -0
- package/dist/mocked_classnames/components/ProgressBars/LinearProgressBar/Bar/Bar.d.ts +17 -6
- package/dist/mocked_classnames/components/ProgressBars/LinearProgressBar/LinearProgressBar.d.ts +19 -22
- package/dist/mocked_classnames/components/ProgressBars/PercentageLabel/PercentageLabel.d.ts +2 -2
- package/dist/mocked_classnames/components/RadioButton/RadioButton.d.ts +45 -16
- package/dist/mocked_classnames/components/Search/Search.types.d.ts +24 -24
- package/dist/mocked_classnames/components/Skeleton/Skeleton.d.ts +16 -1
- package/dist/mocked_classnames/components/SlideTransition/SlideTransition.types.d.ts +12 -0
- package/dist/mocked_classnames/components/Slider/SelectionIndicator.d.ts +6 -0
- package/dist/mocked_classnames/components/Slider/SliderBase/SliderFilledTrack.d.ts +6 -8
- package/dist/mocked_classnames/components/Slider/SliderBase/SliderRail.d.ts +6 -4
- package/dist/mocked_classnames/components/Slider/SliderBase/SliderThumb.d.ts +9 -7
- package/dist/mocked_classnames/components/Slider/SliderBase/SliderTrack.d.ts +1 -2
- package/dist/mocked_classnames/components/Slider/SliderContext.d.ts +13 -8
- package/dist/mocked_classnames/components/Slider/SliderInfix.d.ts +1 -2
- package/dist/mocked_classnames/components/SplitButton/SplitButton.d.ts +25 -2
- package/dist/mocked_classnames/components/Steps/Steps.d.ts +32 -2
- package/dist/mocked_classnames/components/Steps/StepsCommand.d.ts +21 -0
- package/dist/mocked_classnames/components/Steps/StepsDot.d.ts +15 -0
- package/dist/mocked_classnames/components/Steps/StepsGalleryHeader.d.ts +15 -0
- package/dist/mocked_classnames/components/Steps/StepsHeader.d.ts +33 -0
- package/dist/mocked_classnames/components/Steps/StepsNumbersHeader.d.ts +9 -0
- package/dist/mocked_classnames/components/Switch/Switch.d.ts +39 -0
- package/dist/mocked_classnames/components/Table/Table/Table.d.ts +42 -0
- package/dist/mocked_classnames/components/Table/TableBody/TableBody.d.ts +3 -0
- package/dist/mocked_classnames/components/Table/TableCell/TableCell.d.ts +6 -0
- package/dist/mocked_classnames/components/Table/TableCellSkeleton/TableCellSkeleton.d.ts +6 -0
- package/dist/mocked_classnames/components/Table/TableContainer/TableContainer.types.d.ts +6 -0
- package/dist/mocked_classnames/components/Table/TableHeader/TableHeader.d.ts +3 -0
- package/dist/mocked_classnames/components/Table/TableHeaderCell/TableHeaderCell.d.ts +21 -0
- package/dist/mocked_classnames/components/Table/TableRow/TableRow.d.ts +7 -1
- package/dist/mocked_classnames/components/Table/TableRowMenu/TableRowMenu.types.d.ts +6 -0
- package/dist/mocked_classnames/components/Table/TableVirtualizedBody/TableVirtualizedBody.d.ts +15 -0
- package/dist/mocked_classnames/components/Tabs/Tab/Tab.d.ts +27 -3
- package/dist/mocked_classnames/components/Tabs/TabList/TabList.d.ts +15 -0
- package/dist/mocked_classnames/components/Tabs/TabPanel/TabPanel.d.ts +6 -0
- package/dist/mocked_classnames/components/Tabs/TabPanels/TabPanels.d.ts +9 -0
- package/dist/mocked_classnames/components/Tabs/TabsContext/TabsContext.d.ts +6 -0
- package/dist/mocked_classnames/components/Text/Text.d.ts +9 -0
- package/dist/mocked_classnames/components/TextArea/TextArea.types.d.ts +13 -16
- package/dist/mocked_classnames/components/TextField/TextField.d.ts +127 -9
- package/dist/mocked_classnames/components/TextWithHighlight/TextWithHighlight.d.ts +33 -6
- package/dist/mocked_classnames/components/ThemeProvider/ThemeProvider.d.ts +8 -5
- package/dist/mocked_classnames/components/Tipseen/Tipseen.d.ts +64 -6
- package/dist/mocked_classnames/components/Tipseen/TipseenBasicContent.d.ts +9 -0
- package/dist/mocked_classnames/components/Tipseen/TipseenContent.d.ts +25 -1
- package/dist/mocked_classnames/components/Tipseen/TipseenImage.d.ts +12 -0
- package/dist/mocked_classnames/components/Tipseen/TipseenMedia/TipseenMedia.d.ts +3 -0
- package/dist/mocked_classnames/components/Tipseen/TipseenTitle.d.ts +3 -0
- package/dist/mocked_classnames/components/Tipseen/TipseenWizard.d.ts +7 -1
- package/dist/mocked_classnames/components/Toast/Toast.d.ts +37 -8
- package/dist/mocked_classnames/components/Toggle/MockToggle.d.ts +21 -0
- package/dist/mocked_classnames/components/Toggle/Toggle.d.ts +37 -1
- package/dist/mocked_classnames/components/Toggle/ToggleText.d.ts +6 -0
- package/dist/mocked_classnames/components/Tooltip/Tooltip.d.ts +64 -27
- package/dist/mocked_classnames/components/TransitionView/TransitionView.types.d.ts +9 -0
- package/dist/mocked_classnames/components/Typography/Typography.d.ts +12 -6
- package/dist/mocked_classnames/components/VirtualizedGrid/VirtualizedGrid.d.ts +19 -19
- package/dist/mocked_classnames/components/VirtualizedList/VirtualizedList.d.ts +33 -27
- package/dist/mocked_classnames/hooks/useKeyEvent/index.d.ts +30 -0
- package/dist/mocked_classnames/hooks/useSwitch/index.d.ts +12 -0
- package/dist/mocked_classnames/hooks/useWizard/useWizard.types.d.ts +33 -0
- package/dist/mocked_classnames/src/components/Accordion/Accordion/Accordion.js.map +1 -1
- package/dist/mocked_classnames/src/components/Accordion/AccordionItem/AccordionItem.js.map +1 -1
- package/dist/mocked_classnames/src/components/AlertBanner/AlertBanner.js.map +1 -1
- package/dist/mocked_classnames/src/components/AlertBanner/AlertBannerButton/AlertBannerButton.js.map +1 -1
- package/dist/mocked_classnames/src/components/AlertBanner/AlertBannerLink/AlertBannerLink.js.map +1 -1
- package/dist/mocked_classnames/src/components/AlertBanner/AlertBannerText/AlertBannerText.js.map +1 -1
- package/dist/mocked_classnames/src/components/AttentionBox/AttentionBox.js.map +1 -1
- package/dist/mocked_classnames/src/components/Avatar/Avatar.js.map +1 -1
- package/dist/mocked_classnames/src/components/Avatar/AvatarBadge.js.map +1 -1
- package/dist/mocked_classnames/src/components/Avatar/AvatarContent.js.map +1 -1
- package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroup.js.map +1 -1
- package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounter.js.map +1 -1
- package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContainer.js.map +1 -1
- package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContent.js.map +1 -1
- package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.js.map +1 -1
- package/dist/mocked_classnames/src/components/Badge/Badge.js.map +1 -1
- package/dist/mocked_classnames/src/components/Badge/Indicator/Indicator.js.map +1 -1
- package/dist/mocked_classnames/src/components/Box/Box.js.map +1 -1
- package/dist/mocked_classnames/src/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbContent/BreadcrumbContent.js.map +1 -1
- package/dist/mocked_classnames/src/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbItem.js.map +1 -1
- package/dist/mocked_classnames/src/components/BreadcrumbsBar/BreadcrumbsBar.js.map +1 -1
- package/dist/mocked_classnames/src/components/Button/Button.js +1 -1
- package/dist/mocked_classnames/src/components/Button/Button.js.map +1 -1
- package/dist/mocked_classnames/src/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/mocked_classnames/src/components/ButtonGroup/ButtonWrapper.js.map +1 -1
- package/dist/mocked_classnames/src/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/mocked_classnames/src/components/Chips/Chips.js.map +1 -1
- package/dist/mocked_classnames/src/components/Clickable/Clickable.js.map +1 -1
- package/dist/mocked_classnames/src/components/Clickable/ClickableWrapper.js.map +1 -1
- package/dist/mocked_classnames/src/components/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerContent/ColorPickerClearButton.js.map +1 -1
- package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerContent/ColorPickerColorsGrid.js.map +1 -1
- package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.js.map +1 -1
- package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.js.map +1 -1
- package/dist/mocked_classnames/src/components/Combobox/Combobox.js.map +1 -1
- package/dist/mocked_classnames/src/components/Combobox/components/ComboboxCategory/ComboboxCategory.js.map +1 -1
- package/dist/mocked_classnames/src/components/Combobox/components/ComboboxConstants.js.map +1 -1
- package/dist/mocked_classnames/src/components/Combobox/components/ComboboxItems/ComboboxItems.js.map +1 -1
- package/dist/mocked_classnames/src/components/Combobox/components/ComboboxOption/ComboboxOption.js.map +1 -1
- package/dist/mocked_classnames/src/components/Counter/Counter.js.map +1 -1
- package/dist/mocked_classnames/src/components/DatePicker/DateNavigationItem/DateNavigationItem.js.map +1 -1
- package/dist/mocked_classnames/src/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/mocked_classnames/src/components/DatePicker/DatePickerHeader/DatePickerHeader.js.map +1 -1
- package/dist/mocked_classnames/src/components/DatePicker/YearPicker/YearPicker.js.map +1 -1
- package/dist/mocked_classnames/src/components/DatePicker/YearPicker/YearsList.js.map +1 -1
- package/dist/mocked_classnames/src/components/DatePicker/types.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dialog/Dialog.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dialog/DialogContent/DialogContent.js.map +1 -1
- package/dist/mocked_classnames/src/components/DialogContentContainer/DialogContentContainer.js.map +1 -1
- package/dist/mocked_classnames/src/components/Divider/Divider.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/Dropdown.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/mocked_classnames/src/components/EditableHeading/EditableHeading.js.map +1 -1
- package/dist/mocked_classnames/src/components/EditableText/EditableText.js.map +1 -1
- package/dist/mocked_classnames/src/components/EditableTypography/EditableTypography.js.map +1 -1
- package/dist/mocked_classnames/src/components/ExpandCollapse/ExpandCollapse.js.map +1 -1
- package/dist/mocked_classnames/src/components/FieldLabel/FieldLabel.js.map +1 -1
- package/dist/mocked_classnames/src/components/Flex/Flex.js.map +1 -1
- package/dist/mocked_classnames/src/components/FormattedNumber/FormattedNumber.js.map +1 -1
- package/dist/mocked_classnames/src/components/Heading/Heading.js.map +1 -1
- package/dist/mocked_classnames/src/components/HiddenText/HiddenText.js.map +1 -1
- package/dist/mocked_classnames/src/components/Icon/CustomSvgIcon/CustomSvgIcon.js.map +1 -1
- package/dist/mocked_classnames/src/components/Icon/FontIcon/FontIcon.js.map +1 -1
- package/dist/mocked_classnames/src/components/Icon/Icon.js.map +1 -1
- package/dist/mocked_classnames/src/components/IconButton/IconButton.js.map +1 -1
- package/dist/mocked_classnames/src/components/Label/Label.js.map +1 -1
- package/dist/mocked_classnames/src/components/Label/LabelCelebrationAnimation.js.map +1 -1
- package/dist/mocked_classnames/src/components/LayerProvider/LayerContext.js.map +1 -1
- package/dist/mocked_classnames/src/components/LayerProvider/LayerProvider.js.map +1 -1
- package/dist/mocked_classnames/src/components/LegacyModal/LegacyModalHeader/LegacyModalHeader.js.map +1 -1
- package/dist/mocked_classnames/src/components/Link/Link.js.map +1 -1
- package/dist/mocked_classnames/src/components/List/List.js.map +1 -1
- package/dist/mocked_classnames/src/components/List/VirtualizedListItems/VirtualizedListItems.js.map +1 -1
- package/dist/mocked_classnames/src/components/ListItem/ListItem.js.map +1 -1
- package/dist/mocked_classnames/src/components/ListItemAvatar/ListItemAvatar.js.map +1 -1
- package/dist/mocked_classnames/src/components/ListItemIcon/ListItemIcon.js.map +1 -1
- package/dist/mocked_classnames/src/components/ListTitle/ListTitle.js.map +1 -1
- package/dist/mocked_classnames/src/components/Loader/Loader.js.map +1 -1
- package/dist/mocked_classnames/src/components/Menu/Menu/Menu.js.map +1 -1
- package/dist/mocked_classnames/src/components/Menu/MenuGridItem/MenuGridItem.js.map +1 -1
- package/dist/mocked_classnames/src/components/Menu/MenuItem/AvatarMenuItem.js.map +1 -1
- package/dist/mocked_classnames/src/components/Menu/MenuItem/MenuItem.js.map +1 -1
- package/dist/mocked_classnames/src/components/Menu/MenuItemButton/MenuItemButton.js.map +1 -1
- package/dist/mocked_classnames/src/components/Menu/MenuTitle/MenuTitle.js.map +1 -1
- package/dist/mocked_classnames/src/components/MenuButton/MenuButton.js.map +1 -1
- package/dist/mocked_classnames/src/components/Modal/hooks/usePortalTarget/usePortalTarget.js +1 -1
- package/dist/mocked_classnames/src/components/Modal/hooks/usePortalTarget/usePortalTarget.js.map +1 -1
- package/dist/mocked_classnames/src/components/MultiStepIndicator/MultiStepIndicator.js.map +1 -1
- package/dist/mocked_classnames/src/components/MultiStepIndicator/components/StepIndicator/StepIndicator.js.map +1 -1
- package/dist/mocked_classnames/src/components/ProgressBars/LinearProgressBar/Bar/Bar.js.map +1 -1
- package/dist/mocked_classnames/src/components/ProgressBars/LinearProgressBar/LinearProgressBar.js.map +1 -1
- package/dist/mocked_classnames/src/components/ProgressBars/PercentageLabel/PercentageLabel.js.map +1 -1
- package/dist/mocked_classnames/src/components/RadioButton/RadioButton.js.map +1 -1
- package/dist/mocked_classnames/src/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/mocked_classnames/src/components/Slider/SelectionIndicator.js.map +1 -1
- package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderFilledTrack.js.map +1 -1
- package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderRail.js.map +1 -1
- package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderThumb.js.map +1 -1
- package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderTrack.js.map +1 -1
- package/dist/mocked_classnames/src/components/Slider/SliderContext.js.map +1 -1
- package/dist/mocked_classnames/src/components/Slider/SliderInfix.js.map +1 -1
- package/dist/mocked_classnames/src/components/SplitButton/SplitButton.js.map +1 -1
- package/dist/mocked_classnames/src/components/Steps/Steps.js.map +1 -1
- package/dist/mocked_classnames/src/components/Steps/StepsCommand.js.map +1 -1
- package/dist/mocked_classnames/src/components/Steps/StepsDot.js.map +1 -1
- package/dist/mocked_classnames/src/components/Steps/StepsGalleryHeader.js.map +1 -1
- package/dist/mocked_classnames/src/components/Steps/StepsHeader.js.map +1 -1
- package/dist/mocked_classnames/src/components/Steps/StepsNumbersHeader.js.map +1 -1
- package/dist/mocked_classnames/src/components/Switch/Switch.js.map +1 -1
- package/dist/mocked_classnames/src/components/Table/Table/Table.js.map +1 -1
- package/dist/mocked_classnames/src/components/Table/TableBody/TableBody.js.map +1 -1
- package/dist/mocked_classnames/src/components/Table/TableCell/TableCell.js.map +1 -1
- package/dist/mocked_classnames/src/components/Table/TableCellSkeleton/TableCellSkeleton.js.map +1 -1
- package/dist/mocked_classnames/src/components/Table/TableHeader/TableHeader.js.map +1 -1
- package/dist/mocked_classnames/src/components/Table/TableHeaderCell/TableHeaderCell.js.map +1 -1
- package/dist/mocked_classnames/src/components/Table/TableRow/TableRow.js.map +1 -1
- package/dist/mocked_classnames/src/components/Table/TableVirtualizedBody/TableVirtualizedBody.js.map +1 -1
- package/dist/mocked_classnames/src/components/Tabs/Tab/Tab.js.map +1 -1
- package/dist/mocked_classnames/src/components/Tabs/TabList/TabList.js.map +1 -1
- package/dist/mocked_classnames/src/components/Tabs/TabPanel/TabPanel.js.map +1 -1
- package/dist/mocked_classnames/src/components/Tabs/TabPanels/TabPanels.js.map +1 -1
- package/dist/mocked_classnames/src/components/Tabs/TabsContext/TabsContext.js.map +1 -1
- package/dist/mocked_classnames/src/components/Text/Text.js.map +1 -1
- package/dist/mocked_classnames/src/components/TextField/TextField.js.map +1 -1
- package/dist/mocked_classnames/src/components/TextWithHighlight/TextWithHighlight.js.map +1 -1
- package/dist/mocked_classnames/src/components/ThemeProvider/ThemeProvider.js.map +1 -1
- package/dist/mocked_classnames/src/components/Tipseen/Tipseen.js.map +1 -1
- package/dist/mocked_classnames/src/components/Tipseen/TipseenBasicContent.js.map +1 -1
- package/dist/mocked_classnames/src/components/Tipseen/TipseenContent.js.map +1 -1
- package/dist/mocked_classnames/src/components/Tipseen/TipseenImage.js.map +1 -1
- package/dist/mocked_classnames/src/components/Tipseen/TipseenMedia/TipseenMedia.js.map +1 -1
- package/dist/mocked_classnames/src/components/Tipseen/TipseenTitle.js.map +1 -1
- package/dist/mocked_classnames/src/components/Tipseen/TipseenWizard.js.map +1 -1
- package/dist/mocked_classnames/src/components/Toast/Toast.js.map +1 -1
- package/dist/mocked_classnames/src/components/Toggle/MockToggle.js.map +1 -1
- package/dist/mocked_classnames/src/components/Toggle/Toggle.js.map +1 -1
- package/dist/mocked_classnames/src/components/Toggle/ToggleText.js.map +1 -1
- package/dist/mocked_classnames/src/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/mocked_classnames/src/components/Typography/Typography.js.map +1 -1
- package/dist/mocked_classnames/src/components/VirtualizedGrid/VirtualizedGrid.js.map +1 -1
- package/dist/mocked_classnames/src/components/VirtualizedList/VirtualizedList.js.map +1 -1
- package/dist/mocked_classnames/src/hooks/useKeyEvent/index.js.map +1 -1
- package/dist/mocked_classnames/src/hooks/useSwitch/index.js.map +1 -1
- package/dist/mocked_classnames/types/VibeComponentProps.d.ts +9 -0
- package/dist/src/components/Accordion/Accordion/Accordion.js.map +1 -1
- package/dist/src/components/Accordion/AccordionItem/AccordionItem.js.map +1 -1
- package/dist/src/components/AlertBanner/AlertBanner.js.map +1 -1
- package/dist/src/components/AlertBanner/AlertBannerButton/AlertBannerButton.js.map +1 -1
- package/dist/src/components/AlertBanner/AlertBannerLink/AlertBannerLink.js.map +1 -1
- package/dist/src/components/AlertBanner/AlertBannerText/AlertBannerText.js.map +1 -1
- package/dist/src/components/AttentionBox/AttentionBox.js.map +1 -1
- package/dist/src/components/Avatar/Avatar.js.map +1 -1
- package/dist/src/components/Avatar/AvatarBadge.js.map +1 -1
- package/dist/src/components/Avatar/AvatarContent.js.map +1 -1
- package/dist/src/components/AvatarGroup/AvatarGroup.js.map +1 -1
- package/dist/src/components/AvatarGroup/AvatarGroupCounter.js.map +1 -1
- package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContainer.js.map +1 -1
- package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContent.js.map +1 -1
- package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.js.map +1 -1
- package/dist/src/components/Badge/Badge.js.map +1 -1
- package/dist/src/components/Badge/Indicator/Indicator.js.map +1 -1
- package/dist/src/components/Box/Box.js.map +1 -1
- package/dist/src/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbContent/BreadcrumbContent.js.map +1 -1
- package/dist/src/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbItem.js.map +1 -1
- package/dist/src/components/BreadcrumbsBar/BreadcrumbsBar.js.map +1 -1
- package/dist/src/components/Button/Button.js +1 -1
- package/dist/src/components/Button/Button.js.map +1 -1
- package/dist/src/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/src/components/ButtonGroup/ButtonWrapper.js.map +1 -1
- package/dist/src/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/src/components/Chips/Chips.js.map +1 -1
- package/dist/src/components/Clickable/Clickable.js.map +1 -1
- package/dist/src/components/Clickable/ClickableWrapper.js.map +1 -1
- package/dist/src/components/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/src/components/ColorPicker/components/ColorPickerContent/ColorPickerClearButton.js.map +1 -1
- package/dist/src/components/ColorPicker/components/ColorPickerContent/ColorPickerColorsGrid.js.map +1 -1
- package/dist/src/components/ColorPicker/components/ColorPickerContent/ColorPickerContent.js.map +1 -1
- package/dist/src/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.js.map +1 -1
- package/dist/src/components/Combobox/Combobox.js.map +1 -1
- package/dist/src/components/Combobox/components/ComboboxCategory/ComboboxCategory.js.map +1 -1
- package/dist/src/components/Combobox/components/ComboboxConstants.js.map +1 -1
- package/dist/src/components/Combobox/components/ComboboxItems/ComboboxItems.js.map +1 -1
- package/dist/src/components/Combobox/components/ComboboxOption/ComboboxOption.js.map +1 -1
- package/dist/src/components/Counter/Counter.js.map +1 -1
- package/dist/src/components/DatePicker/DateNavigationItem/DateNavigationItem.js.map +1 -1
- package/dist/src/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/src/components/DatePicker/DatePickerHeader/DatePickerHeader.js.map +1 -1
- package/dist/src/components/DatePicker/YearPicker/YearPicker.js.map +1 -1
- package/dist/src/components/DatePicker/YearPicker/YearsList.js.map +1 -1
- package/dist/src/components/DatePicker/types.js.map +1 -1
- package/dist/src/components/Dialog/Dialog.js.map +1 -1
- package/dist/src/components/Dialog/DialogContent/DialogContent.js.map +1 -1
- package/dist/src/components/DialogContentContainer/DialogContentContainer.js.map +1 -1
- package/dist/src/components/Divider/Divider.js.map +1 -1
- package/dist/src/components/Dropdown/Dropdown.js +1 -1
- package/dist/src/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/src/components/EditableHeading/EditableHeading.js.map +1 -1
- package/dist/src/components/EditableText/EditableText.js.map +1 -1
- package/dist/src/components/EditableTypography/EditableTypography.js.map +1 -1
- package/dist/src/components/ExpandCollapse/ExpandCollapse.js.map +1 -1
- package/dist/src/components/FieldLabel/FieldLabel.js.map +1 -1
- package/dist/src/components/Flex/Flex.js.map +1 -1
- package/dist/src/components/FormattedNumber/FormattedNumber.js.map +1 -1
- package/dist/src/components/Heading/Heading.js.map +1 -1
- package/dist/src/components/HiddenText/HiddenText.js.map +1 -1
- package/dist/src/components/Icon/CustomSvgIcon/CustomSvgIcon.js.map +1 -1
- package/dist/src/components/Icon/FontIcon/FontIcon.js.map +1 -1
- package/dist/src/components/Icon/Icon.js.map +1 -1
- package/dist/src/components/IconButton/IconButton.js.map +1 -1
- package/dist/src/components/Label/Label.js.map +1 -1
- package/dist/src/components/Label/LabelCelebrationAnimation.js.map +1 -1
- package/dist/src/components/LayerProvider/LayerContext.js.map +1 -1
- package/dist/src/components/LayerProvider/LayerProvider.js.map +1 -1
- package/dist/src/components/LegacyModal/LegacyModalHeader/LegacyModalHeader.js.map +1 -1
- package/dist/src/components/Link/Link.js.map +1 -1
- package/dist/src/components/List/List.js.map +1 -1
- package/dist/src/components/List/VirtualizedListItems/VirtualizedListItems.js.map +1 -1
- package/dist/src/components/ListItem/ListItem.js.map +1 -1
- package/dist/src/components/ListItemAvatar/ListItemAvatar.js.map +1 -1
- package/dist/src/components/ListItemIcon/ListItemIcon.js.map +1 -1
- package/dist/src/components/ListTitle/ListTitle.js.map +1 -1
- package/dist/src/components/Loader/Loader.js.map +1 -1
- package/dist/src/components/Menu/Menu/Menu.js.map +1 -1
- package/dist/src/components/Menu/MenuGridItem/MenuGridItem.js.map +1 -1
- package/dist/src/components/Menu/MenuItem/AvatarMenuItem.js.map +1 -1
- package/dist/src/components/Menu/MenuItem/MenuItem.js.map +1 -1
- package/dist/src/components/Menu/MenuItemButton/MenuItemButton.js.map +1 -1
- package/dist/src/components/Menu/MenuTitle/MenuTitle.js.map +1 -1
- package/dist/src/components/MenuButton/MenuButton.js.map +1 -1
- package/dist/src/components/Modal/hooks/usePortalTarget/usePortalTarget.js +1 -1
- package/dist/src/components/Modal/hooks/usePortalTarget/usePortalTarget.js.map +1 -1
- package/dist/src/components/MultiStepIndicator/MultiStepIndicator.js.map +1 -1
- package/dist/src/components/MultiStepIndicator/components/StepIndicator/StepIndicator.js.map +1 -1
- package/dist/src/components/ProgressBars/LinearProgressBar/Bar/Bar.js.map +1 -1
- package/dist/src/components/ProgressBars/LinearProgressBar/LinearProgressBar.js.map +1 -1
- package/dist/src/components/ProgressBars/PercentageLabel/PercentageLabel.js.map +1 -1
- package/dist/src/components/RadioButton/RadioButton.js.map +1 -1
- package/dist/src/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/src/components/Slider/SelectionIndicator.js.map +1 -1
- package/dist/src/components/Slider/SliderBase/SliderFilledTrack.js.map +1 -1
- package/dist/src/components/Slider/SliderBase/SliderRail.js.map +1 -1
- package/dist/src/components/Slider/SliderBase/SliderThumb.js.map +1 -1
- package/dist/src/components/Slider/SliderBase/SliderTrack.js.map +1 -1
- package/dist/src/components/Slider/SliderContext.js.map +1 -1
- package/dist/src/components/Slider/SliderInfix.js.map +1 -1
- package/dist/src/components/SplitButton/SplitButton.js.map +1 -1
- package/dist/src/components/Steps/Steps.js.map +1 -1
- package/dist/src/components/Steps/StepsCommand.js.map +1 -1
- package/dist/src/components/Steps/StepsDot.js.map +1 -1
- package/dist/src/components/Steps/StepsGalleryHeader.js.map +1 -1
- package/dist/src/components/Steps/StepsHeader.js.map +1 -1
- package/dist/src/components/Steps/StepsNumbersHeader.js.map +1 -1
- package/dist/src/components/Switch/Switch.js.map +1 -1
- package/dist/src/components/Table/Table/Table.js.map +1 -1
- package/dist/src/components/Table/TableBody/TableBody.js.map +1 -1
- package/dist/src/components/Table/TableCell/TableCell.js.map +1 -1
- package/dist/src/components/Table/TableCellSkeleton/TableCellSkeleton.js.map +1 -1
- package/dist/src/components/Table/TableHeader/TableHeader.js.map +1 -1
- package/dist/src/components/Table/TableHeaderCell/TableHeaderCell.js.map +1 -1
- package/dist/src/components/Table/TableRow/TableRow.js.map +1 -1
- package/dist/src/components/Table/TableVirtualizedBody/TableVirtualizedBody.js.map +1 -1
- package/dist/src/components/Tabs/Tab/Tab.js.map +1 -1
- package/dist/src/components/Tabs/TabList/TabList.js.map +1 -1
- package/dist/src/components/Tabs/TabPanel/TabPanel.js.map +1 -1
- package/dist/src/components/Tabs/TabPanels/TabPanels.js.map +1 -1
- package/dist/src/components/Tabs/TabsContext/TabsContext.js.map +1 -1
- package/dist/src/components/Text/Text.js.map +1 -1
- package/dist/src/components/TextField/TextField.js.map +1 -1
- package/dist/src/components/TextWithHighlight/TextWithHighlight.js.map +1 -1
- package/dist/src/components/ThemeProvider/ThemeProvider.js.map +1 -1
- package/dist/src/components/Tipseen/Tipseen.js.map +1 -1
- package/dist/src/components/Tipseen/TipseenBasicContent.js.map +1 -1
- package/dist/src/components/Tipseen/TipseenContent.js.map +1 -1
- package/dist/src/components/Tipseen/TipseenImage.js.map +1 -1
- package/dist/src/components/Tipseen/TipseenMedia/TipseenMedia.js.map +1 -1
- package/dist/src/components/Tipseen/TipseenTitle.js.map +1 -1
- package/dist/src/components/Tipseen/TipseenWizard.js.map +1 -1
- package/dist/src/components/Toast/Toast.js.map +1 -1
- package/dist/src/components/Toggle/MockToggle.js.map +1 -1
- package/dist/src/components/Toggle/Toggle.js.map +1 -1
- package/dist/src/components/Toggle/ToggleText.js.map +1 -1
- package/dist/src/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/src/components/Typography/Typography.js.map +1 -1
- package/dist/src/components/VirtualizedGrid/VirtualizedGrid.js.map +1 -1
- package/dist/src/components/VirtualizedList/VirtualizedList.js.map +1 -1
- package/dist/src/hooks/useKeyEvent/index.js.map +1 -1
- package/dist/src/hooks/useSwitch/index.js.map +1 -1
- package/dist/types/VibeComponentProps.d.ts +9 -0
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualizedListItems.js","sources":["../../../../../src/components/List/VirtualizedListItems/VirtualizedListItems.tsx"],"sourcesContent":["import React, { CSSProperties, ReactElement, useCallback, useMemo } from \"react\";\nimport cx from \"classnames\";\nimport ListItem, { ListItemProps } from \"../../../components/ListItem/ListItem\";\nimport ListTitle, { ListTitleProps } from \"../../ListTitle/ListTitle\";\nimport VirtualizedList from \"../../../components/VirtualizedList/VirtualizedList\";\nimport VibeComponentProps from \"../../../types/VibeComponentProps\";\nimport { ListItemIconProps } from \"../../ListItemIcon/ListItemIcon\";\nimport styles from \"./VirtualizedListItems.module.scss\";\n\nconst ITEM_CHILDREN_TYPES = {\n TITLE: \"title\",\n ITEM: \"item\"\n};\n\nconst LIST_TITLE_HEIGHT = 48;\nconst LIST_ITEM_HEIGHT = 32;\n\nexport interface VirtualizedListItemsProps extends VibeComponentProps {\n children?: React.ReactElement<ListItemProps | ListTitleProps> | React.ReactElement<ListItemProps | ListTitleProps>[];\n}\n\nexport const VirtualizedListItems: React.FC<VirtualizedListItemsProps> = ({ children }) => {\n const items = useMemo(() => {\n const childrenArr = Array.isArray(children) ? children : [children];\n return childrenArr\n .map((child, index) => {\n // @ts-ignore displayName is coming from Component assigned field: ListTitle, ListItem\n const childTypeDisplayName = child.type.displayName;\n if (childTypeDisplayName === ListTitle.displayName) {\n return {\n type: ITEM_CHILDREN_TYPES.TITLE,\n id: `list-title-${index}`,\n props: child.props,\n // avoid add spacing to the first category on the list\n height: LIST_TITLE_HEIGHT\n };\n } else if (childTypeDisplayName === ListItem.displayName) {\n const { id } = child.props;\n return {\n type: ITEM_CHILDREN_TYPES.ITEM,\n id: id || `list-item-${index}`,\n props: child.props,\n height: LIST_ITEM_HEIGHT\n };\n } else {\n return undefined;\n }\n })\n .filter(item => item !== undefined);\n }, [children]);\n\n const itemRenderer = useCallback(\n (item: ReactElement<ListItemProps | ListItemIconProps | ListTitleProps>, index: number, style: CSSProperties) => {\n const { type, props } = item;\n let element;\n switch (type) {\n case ITEM_CHILDREN_TYPES.TITLE: {\n element = <ListTitle {...(props as ListTitleProps)} />;\n break;\n }\n case ITEM_CHILDREN_TYPES.ITEM: {\n element = <ListItem {...(props as ListItemProps)} />;\n break;\n }\n }\n\n return <div style={style}>{element}</div>;\n },\n []\n );\n\n return (\n // @ts-ignore TODO TS-migration fix when VirtualizedList is converted to TS\n <VirtualizedList scrollableClassName={cx(styles.scrollableContainer)} items={items} itemRenderer={itemRenderer} />\n );\n};\n"],"names":["ITEM_CHILDREN_TYPES","VirtualizedListItems","_ref","children","items","useMemo","Array","isArray","map","child","index","childTypeDisplayName","type","displayName","ListTitle","id","concat","props","height","ListItem","filter","item","undefined","itemRenderer","useCallback","style","element","React","createElement","Object","assign","VirtualizedList","scrollableClassName","cx","styles","scrollableContainer"],"mappings":"iRASA,IAAMA,EACG,QADHA,EAEE,
|
|
1
|
+
{"version":3,"file":"VirtualizedListItems.js","sources":["../../../../../src/components/List/VirtualizedListItems/VirtualizedListItems.tsx"],"sourcesContent":["import React, { CSSProperties, ReactElement, useCallback, useMemo } from \"react\";\nimport cx from \"classnames\";\nimport ListItem, { ListItemProps } from \"../../../components/ListItem/ListItem\";\nimport ListTitle, { ListTitleProps } from \"../../ListTitle/ListTitle\";\nimport VirtualizedList from \"../../../components/VirtualizedList/VirtualizedList\";\nimport VibeComponentProps from \"../../../types/VibeComponentProps\";\nimport { ListItemIconProps } from \"../../ListItemIcon/ListItemIcon\";\nimport styles from \"./VirtualizedListItems.module.scss\";\n\nconst ITEM_CHILDREN_TYPES = {\n TITLE: \"title\",\n ITEM: \"item\"\n};\n\nconst LIST_TITLE_HEIGHT = 48;\nconst LIST_ITEM_HEIGHT = 32;\n\nexport interface VirtualizedListItemsProps extends VibeComponentProps {\n /**\n * The list of children.\n */\n children?: React.ReactElement<ListItemProps | ListTitleProps> | React.ReactElement<ListItemProps | ListTitleProps>[];\n}\n\nexport const VirtualizedListItems: React.FC<VirtualizedListItemsProps> = ({ children }) => {\n const items = useMemo(() => {\n const childrenArr = Array.isArray(children) ? children : [children];\n return childrenArr\n .map((child, index) => {\n // @ts-ignore displayName is coming from Component assigned field: ListTitle, ListItem\n const childTypeDisplayName = child.type.displayName;\n if (childTypeDisplayName === ListTitle.displayName) {\n return {\n type: ITEM_CHILDREN_TYPES.TITLE,\n id: `list-title-${index}`,\n props: child.props,\n // avoid add spacing to the first category on the list\n height: LIST_TITLE_HEIGHT\n };\n } else if (childTypeDisplayName === ListItem.displayName) {\n const { id } = child.props;\n return {\n type: ITEM_CHILDREN_TYPES.ITEM,\n id: id || `list-item-${index}`,\n props: child.props,\n height: LIST_ITEM_HEIGHT\n };\n } else {\n return undefined;\n }\n })\n .filter(item => item !== undefined);\n }, [children]);\n\n const itemRenderer = useCallback(\n (item: ReactElement<ListItemProps | ListItemIconProps | ListTitleProps>, index: number, style: CSSProperties) => {\n const { type, props } = item;\n let element;\n switch (type) {\n case ITEM_CHILDREN_TYPES.TITLE: {\n element = <ListTitle {...(props as ListTitleProps)} />;\n break;\n }\n case ITEM_CHILDREN_TYPES.ITEM: {\n element = <ListItem {...(props as ListItemProps)} />;\n break;\n }\n }\n\n return <div style={style}>{element}</div>;\n },\n []\n );\n\n return (\n // @ts-ignore TODO TS-migration fix when VirtualizedList is converted to TS\n <VirtualizedList scrollableClassName={cx(styles.scrollableContainer)} items={items} itemRenderer={itemRenderer} />\n );\n};\n"],"names":["ITEM_CHILDREN_TYPES","VirtualizedListItems","_ref","children","items","useMemo","Array","isArray","map","child","index","childTypeDisplayName","type","displayName","ListTitle","id","concat","props","height","ListItem","filter","item","undefined","itemRenderer","useCallback","style","element","React","createElement","Object","assign","VirtualizedList","scrollableClassName","cx","styles","scrollableContainer"],"mappings":"iRASA,IAAMA,EACG,QADHA,EAEE,OAaKC,EAA4D,SAAxCC,GAAyD,IAAdC,EAAQD,EAARC,SACpEC,EAAQC,GAAQ,WAEpB,OADoBC,MAAMC,QAAQJ,GAAYA,EAAW,CAACA,IAEvDK,KAAI,SAACC,EAAOC,GAEX,IAAMC,EAAuBF,EAAMG,KAAKC,YACxC,OAAIF,IAAyBG,EAAUD,YAC9B,CACLD,KAAMZ,EACNe,GAAEC,cAAAA,OAAgBN,GAClBO,MAAOR,EAAMQ,MAEbC,OAvBc,IAyBPP,IAAyBQ,EAASN,YAEpC,CACLD,KAAMZ,EACNe,GAHaN,EAAMQ,MAAbF,IAGA,aAAAC,OAAiBN,GACvBO,MAAOR,EAAMQ,MACbC,OA9Ba,SAiCf,CAEJ,IACCE,QAAO,SAAAC,GAAI,YAAaC,IAATD,IACpB,GAAG,CAAClB,IAEEoB,EAAeC,GACnB,SAACH,EAAwEX,EAAee,GACtF,IACIC,EADUT,EAAUI,EAAVJ,MAEd,OAFwBI,EAAhBT,MAGN,KAAKZ,EACH0B,EAAUC,EAACC,cAAAd,EAAee,OAAAC,OAAA,CAAA,EAAAb,IAC1B,MAEF,KAAKjB,EACH0B,EAAUC,EAACC,cAAAT,EAAcU,OAAAC,OAAA,CAAA,EAAAb,IAK7B,OAAOU,uBAAKF,MAAOA,GAAQC,EAC5B,GACD,IAGF,OAEEC,EAACC,cAAAG,GAAgBC,oBAAqBC,EAAGC,EAAOC,qBAAsB/B,MAAOA,EAAOmB,aAAcA,GAEtG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItem.js","sources":["../../../../src/components/ListItem/ListItem.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { AriaAttributes, AriaRole, forwardRef, useCallback, useContext, useEffect, useRef } from \"react\";\nimport { camelCase } from \"lodash-es\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport Text from \"../Text/Text\";\nimport { SIZES, SELECTION_KEYS } from \"../../constants\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport { withStaticProps, VibeComponentProps, VibeComponent, ElementContent } from \"../../types\";\nimport { useKeyEvent } from \"../../hooks\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport { ListContext } from \"../List/utils/ListContext\";\nimport { ListItemComponentType as ListItemComponentTypeEnum } from \"./ListItemConstants\";\nimport { ListItemElement, ListItemSize } from \"./ListItem.types\";\nimport styles from \"./ListItem.module.scss\";\n\nexport interface ListItemProps extends VibeComponentProps {\n /**\n *
|
|
1
|
+
{"version":3,"file":"ListItem.js","sources":["../../../../src/components/ListItem/ListItem.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { AriaAttributes, AriaRole, forwardRef, useCallback, useContext, useEffect, useRef } from \"react\";\nimport { camelCase } from \"lodash-es\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport Text from \"../Text/Text\";\nimport { SIZES, SELECTION_KEYS } from \"../../constants\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport { withStaticProps, VibeComponentProps, VibeComponent, ElementContent } from \"../../types\";\nimport { useKeyEvent } from \"../../hooks\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport { ListContext } from \"../List/utils/ListContext\";\nimport { ListItemComponentType as ListItemComponentTypeEnum } from \"./ListItemConstants\";\nimport { ListItemElement, ListItemSize } from \"./ListItem.types\";\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\nconst ListItem: VibeComponent<ListItemProps> & { sizes?: typeof SIZES; components?: typeof ListItemComponentTypeEnum } =\n 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 }: ListItemProps,\n ref\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 useKeyEvent({\n keys: SELECTION_KEYS,\n ref: componentRef,\n callback: componentOnClick\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 >\n {children}\n </Text>\n );\n }\n );\n\nObject.assign(ListItem, {\n // Used by VirtualizedListItems\n displayName: \"ListItem\"\n});\n\nexport default withStaticProps(ListItem, {\n sizes: SIZES,\n components: ListItemComponentTypeEnum\n});\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","updateFocusedItem","useContext","ListContext","componentRef","useRef","mergedRef","useMergeRef","useEffect","componentOnClick","useCallback","event","useKeyEvent","keys","SELECTION_KEYS","callback","componentOnHover","React","createElement","Text","element","cx","styles","listItem","getStyle","camelCase","_defineProperty","type","onMouseEnter","onFocus","Object","assign","displayName","withStaticProps","sizes","components","ListItemComponentTypeEnum"],"mappings":"ynCA0DA,IAAMA,EACJC,GACE,SAAAC,EAgBEC,GACE,IAfAC,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,EAITE,EAAsBC,EAAWC,GAAjCF,kBACFG,EAAeC,EAAO,MACtBC,EAAYC,EAAY9B,EAAK2B,GAEnCI,GAAU,WACJrB,IACFc,SAAAA,EAAoBtB,GAEvB,GAAE,CAACQ,EAAUR,EAAIsB,IAElB,IAAMQ,EAAmBC,GACvB,SAACC,GACKtB,GACJN,EAAQ4B,EAAOhC,EAChB,GACD,CAACU,EAAUN,EAASJ,IAGtBiC,EAAY,CACVC,KAAMC,EACNrC,IAAK2B,EACLW,SAAUN,IAGZ,IAAMO,EAAmBN,GACvB,SAACC,GACKtB,GACJH,EAAQyB,EAAOhC,EAChB,GACD,CAACU,EAAUH,EAASP,IAGtB,OACEsC,EAAAC,cAACC,EAAI,CACHC,QAASvC,EACI,cAAAiB,GAAcnB,EAC3BF,IAAK6B,EACL5B,UAAW2C,EAAGC,EAAOC,SAAU7C,EAAW8C,EAASF,EAAQG,EAAUlC,IAAMmC,EAAAA,EACxEJ,CAAAA,EAAAA,EAAOnC,SAAWA,IAAaE,GAC/BiC,EAAOjC,SAAWA,IAErBV,GAAIA,EACJgD,KAAK,QACU,gBAAAtC,kBACAF,EACfJ,QAAS0B,EACTmB,aAAcZ,EACda,QAASb,EACThB,KAAMA,EACNL,SAAUA,EACI,eAAAE,GAEbD,EAGP,IAGJkC,OAAOC,OAAOzD,EAAU,CAEtB0D,YAAa,aAGf,IAAeC,EAAAA,EAAgB3D,EAAU,CACvC4D,MAAO1C,EACP2C,WAAYC"}
|
|
@@ -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 { VibeComponent, VibeComponentProps, withStaticProps } from \"../../types\";\nimport Avatar from \"../Avatar/Avatar\";\nimport { ListItemComponentType as ListItemComponentTypeEnum } from \"../ListItem/ListItemConstants\";\nimport { ListItemElement } from \"../ListItem/ListItem.types\";\nimport styles from \"./ListItemAvatar.module.scss\";\n\nexport interface ListItemAvatarProps extends VibeComponentProps {\n /**\n *
|
|
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 { VibeComponent, VibeComponentProps, withStaticProps } from \"../../types\";\nimport Avatar from \"../Avatar/Avatar\";\nimport { ListItemComponentType as ListItemComponentTypeEnum } from \"../ListItem/ListItemConstants\";\nimport { ListItemElement } from \"../ListItem/ListItem.types\";\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: VibeComponent<ListItemAvatarProps> & { components?: typeof ListItemComponentTypeEnum } =\n forwardRef(({ className, id, src, avatarClassName, component: Component = \"div\" }: ListItemAvatarProps, ref) => {\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\nexport default withStaticProps(ListItemAvatar, {\n components: ListItemComponentTypeEnum\n});\n"],"names":["withStaticProps","forwardRef","_ref","ref","className","id","src","avatarClassName","_ref$component","component","Component","componentRef","useRef","mergedRef","useMergeRef","React","cx","styles","listItemAvatar","createElement","Avatar","type","size","avatar","components","ListItemComponentTypeEnum"],"mappings":"yXAwBA,IAYeA,EAAAA,EAXbC,GAAW,SAAAC,EAA6FC,GAAO,IAAjGC,EAASF,EAATE,UAAWC,EAAEH,EAAFG,GAAIC,EAAGJ,EAAHI,IAAKC,EAAeL,EAAfK,gBAAeC,EAAAN,EAAEO,UAAWC,OAAY,IAAHF,EAAG,MAAKA,EACvEG,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,IAE6C,CAC7CiB,WAAYC"}
|
|
@@ -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 from \"../Icon/Icon\";\nimport { ListItemIconMargin as ListItemIconMarginEnum } from \"./ListItemIconConstants\";\nimport { ListItemComponentType as ListItemComponentTypeEnum } from \"../ListItem/ListItemConstants\";\nimport { ListItemElement } from \"../ListItem/ListItem.types\";\nimport { SubIcon, VibeComponent, VibeComponentProps, withStaticProps } from \"../../types\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport styles from \"./ListItemIcon.module.scss\";\nimport { ListItemIconMargin } from \"./ListItemIcon.types\";\n\nexport const LIST_ITEM_ICON_SIZE = 18;\n\nexport interface ListItemIconProps extends VibeComponentProps {\n /**\n *
|
|
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 from \"../Icon/Icon\";\nimport { ListItemIconMargin as ListItemIconMarginEnum } from \"./ListItemIconConstants\";\nimport { ListItemComponentType as ListItemComponentTypeEnum } from \"../ListItem/ListItemConstants\";\nimport { ListItemElement } from \"../ListItem/ListItem.types\";\nimport { SubIcon, VibeComponent, VibeComponentProps, withStaticProps } from \"../../types\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport styles from \"./ListItemIcon.module.scss\";\nimport { 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: VibeComponent<ListItemIconProps> & {\n margin?: typeof ListItemIconMarginEnum;\n components?: typeof ListItemComponentTypeEnum;\n} = forwardRef(({ className, id, icon, margin = \"start\", component: Component = \"div\" }: ListItemIconProps, ref) => {\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 iconSize={LIST_ITEM_ICON_SIZE} />\n </Component>\n );\n});\n\nexport default withStaticProps(ListItemIcon, {\n margin: ListItemIconMarginEnum,\n components: ListItemComponentTypeEnum\n});\n"],"names":["LIST_ITEM_ICON_SIZE","withStaticProps","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","iconSize","ListItemIconMarginEnum","components","ListItemComponentTypeEnum"],"mappings":"yfAYO,IAAMA,EAAsB,GAoCpBC,EAAAA,EAhBXC,GAAW,SAAAC,EAA6FC,GAAO,IAAjGC,EAASF,EAATE,UAAWC,EAAEH,EAAFG,GAAIC,EAAIJ,EAAJI,KAAIC,EAAAL,EAAEM,OAAAA,OAAS,IAAHD,EAAG,QAAOA,EAAAE,EAAAP,EAAEQ,UAAWC,OAAY,IAAHF,EAAG,MAAKA,EAC7EG,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,SA/BN,KAkCnC,IAE6C,CAC3ChB,OAAQiB,EACRC,WAAYC"}
|
|
@@ -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 VibeComponentProps from \"../../types/VibeComponentProps\";\nimport Text from \"../Text/Text\";\nimport styles from \"./ListTitle.module.scss\";\n\nexport interface ListTitleProps extends VibeComponentProps {\n tabIndex?: number;\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":"+
|
|
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 VibeComponentProps from \"../../types/VibeComponentProps\";\nimport Text from \"../Text/Text\";\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":"+LAkBMA,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loader.js","sources":["../../../../src/components/Loader/Loader.tsx"],"sourcesContent":["import React, { ForwardedRef, forwardRef, useMemo } from \"react\";\nimport cx from \"classnames\";\nimport { LoaderColors as LoaderColorsEnum, LoaderSizes as LoaderSizesEnum } from \"./LoaderConstants\";\nimport { LoaderColors, LoaderSize, LoaderSizes } from \"./Loader.types\";\nimport { getTestId } from \"../../tests/test-ids-utils\";\nimport { VibeComponent, VibeComponentProps, withStaticProps } from \"../../types\";\nimport { ComponentDefaultTestId } from \"../../tests/constants\";\nimport styles from \"./Loader.module.scss\";\n\nconst mapSizesToLoaderSize: Record<LoaderSizes, number> = {\n xs: 16,\n small: 24,\n medium: 40,\n large: 64\n};\n\nconst mapLoaderColorsToColors: Record<LoaderColors, string> = {\n primary: \"primary-color\",\n secondary: \"secondary-text-color\",\n onPrimary: \"text-color-on-inverted\",\n dark: \"primary-text-color\"\n};\n\nexport interface LoaderProps extends VibeComponentProps {\n
|
|
1
|
+
{"version":3,"file":"Loader.js","sources":["../../../../src/components/Loader/Loader.tsx"],"sourcesContent":["import React, { ForwardedRef, forwardRef, useMemo } from \"react\";\nimport cx from \"classnames\";\nimport { LoaderColors as LoaderColorsEnum, LoaderSizes as LoaderSizesEnum } from \"./LoaderConstants\";\nimport { LoaderColors, LoaderSize, LoaderSizes } from \"./Loader.types\";\nimport { getTestId } from \"../../tests/test-ids-utils\";\nimport { VibeComponent, VibeComponentProps, withStaticProps } from \"../../types\";\nimport { ComponentDefaultTestId } from \"../../tests/constants\";\nimport styles from \"./Loader.module.scss\";\n\nconst mapSizesToLoaderSize: Record<LoaderSizes, number> = {\n xs: 16,\n small: 24,\n medium: 40,\n large: 64\n};\n\nconst mapLoaderColorsToColors: Record<LoaderColors, string> = {\n primary: \"primary-color\",\n secondary: \"secondary-text-color\",\n onPrimary: \"text-color-on-inverted\",\n dark: \"primary-text-color\"\n};\n\nexport interface LoaderProps extends VibeComponentProps {\n /**\n * The size of the loader, either a predefined size or a custom number.\n */\n size?: LoaderSize;\n /**\n * The color of the loader.\n */\n color?: LoaderColors;\n /**\n * If true, a background circle is displayed behind the loader.\n */\n hasBackground?: boolean;\n /**\n * Class name applied to the wrapper element.\n */\n wrapperClassName?: string;\n}\n\nconst Loader: VibeComponent<LoaderProps, HTMLElement> & {\n sizes?: typeof LoaderSizesEnum;\n colors?: typeof LoaderColorsEnum;\n} = forwardRef(\n (\n { className, wrapperClassName, size, color, hasBackground = false, id, \"data-testid\": dataTestId }: LoaderProps,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const sizeStyle = useMemo(() => {\n const loaderSize = typeof size === \"string\" ? mapSizesToLoaderSize[size] : size;\n if (typeof loaderSize === \"number\") {\n return { width: loaderSize, height: loaderSize };\n }\n return undefined;\n }, [size]);\n\n const colorStyle = useMemo(() => {\n if (!mapLoaderColorsToColors[color]) return;\n return `var(--${mapLoaderColorsToColors[color]})`;\n }, [color]);\n\n return (\n <div\n className={cx(styles.loaderContainer, wrapperClassName)}\n ref={ref}\n role=\"alert\"\n title=\"loading\"\n style={sizeStyle}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.LOADER, id)}\n >\n <svg className={cx(styles.circleLoaderSpinner, className)} viewBox=\"0 0 50 50\" color={colorStyle} aria-hidden>\n {hasBackground && (\n <circle\n className={styles.circleLoaderSpinnerBackground}\n cx=\"25\"\n cy=\"25\"\n r=\"20\"\n fill=\"none\"\n strokeWidth=\"5\"\n />\n )}\n <circle className={styles.circleLoaderSpinnerPath} cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\" strokeWidth=\"5\" />\n </svg>\n </div>\n );\n }\n);\n\nexport default withStaticProps(Loader, {\n sizes: LoaderSizesEnum,\n colors: LoaderColorsEnum\n});\n"],"names":["mapSizesToLoaderSize","xs","small","medium","large","mapLoaderColorsToColors","primary","secondary","onPrimary","dark","withStaticProps","forwardRef","_ref","ref","className","wrapperClassName","size","color","_ref$hasBackground","hasBackground","id","dataTestId","sizeStyle","useMemo","loaderSize","width","height","colorStyle","concat","React","createElement","cx","styles","loaderContainer","role","title","style","getTestId","ComponentDefaultTestId","LOADER","circleLoaderSpinner","viewBox","circleLoaderSpinnerBackground","cy","r","fill","strokeWidth","circleLoaderSpinnerPath","sizes","LoaderSizesEnum","colors","LoaderColorsEnum"],"mappings":"sZASA,IAAMA,EAAoD,CACxDC,GAAI,GACJC,MAAO,GACPC,OAAQ,GACRC,MAAO,IAGHC,EAAwD,CAC5DC,QAAS,gBACTC,UAAW,uBACXC,UAAW,yBACXC,KAAM,sBAuEOC,EAAAA,EA9CXC,GACF,SAAAC,EAEEC,GACE,IAFAC,EAASF,EAATE,UAAWC,EAAgBH,EAAhBG,iBAAkBC,EAAIJ,EAAJI,KAAMC,EAAKL,EAALK,MAAKC,EAAAN,EAAEO,cAAAA,OAAgB,IAAHD,GAAQA,EAAEE,EAAER,EAAFQ,GAAmBC,EAAUT,EAAzB,eAGjEU,EAAYC,GAAQ,WACxB,IAAMC,EAA6B,iBAATR,EAAoBhB,EAAqBgB,GAAQA,EAC3E,GAA0B,iBAAfQ,EACT,MAAO,CAAEC,MAAOD,EAAYE,OAAQF,EAGxC,GAAG,CAACR,IAEEW,EAAaJ,GAAQ,WACzB,GAAKlB,EAAwBY,GAC7B,MAAA,SAAAW,OAAgBvB,EAAwBY,GAAM,IAChD,GAAG,CAACA,IAEJ,OACEY,EACEC,cAAA,MAAA,CAAAhB,UAAWiB,EAAGC,EAAOC,gBAAiBlB,GACtCF,IAAKA,EACLqB,KAAK,QACLC,MAAM,UACNC,MAAOd,EACPF,GAAIA,gBACSC,GAAcgB,EAAUC,EAAuBC,OAAQnB,IAEpES,EAAAC,cAAA,MAAA,CAAKhB,UAAWiB,EAAGC,EAAOQ,oBAAqB1B,GAAY2B,QAAQ,YAAYxB,MAAOU,EAAU,eAAA,GAC7FR,GACCU,EACEC,cAAA,SAAA,CAAAhB,UAAWkB,EAAOU,8BAClBX,GAAG,KACHY,GAAG,KACHC,EAAE,KACFC,KAAK,OACLC,YAAY,MAGhBjB,EAAAC,cAAA,SAAA,CAAQhB,UAAWkB,EAAOe,wBAAyBhB,GAAG,KAAKY,GAAG,KAAKC,EAAE,KAAKC,KAAK,OAAOC,YAAY,OAI1G,IAGqC,CACrCE,MAAOC,EACPC,OAAQC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sources":["../../../../../src/components/Menu/Menu/Menu.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport { SIZES } from \"../../../constants/sizes\";\nimport React, { forwardRef, ReactElement, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\nimport useIsomorphicLayoutEffect from \"../../../hooks/ssr/useIsomorphicLayoutEffect\";\nimport useClickOutside from \"../../../hooks/useClickOutside\";\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 { ElementContent, VibeComponent, VibeComponentProps, withStaticProps } from \"../../../types\";\nimport { CloseMenuOption, MenuChild } from \"./MenuConstants\";\nimport { getStyle } from \"../../../helpers/typesciptCssModulesHelper\";\nimport { getTestId } from \"../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../../tests/constants\";\nimport { useFocusOnMount } from \"./hooks/useFocusOnMount\";\nimport { useMenuId } from \"./hooks/useMenuId\";\nimport { generateMenuItemId } from \"./utils/utils\";\nimport styles from \"./Menu.module.scss\";\n\nexport interface MenuProps extends VibeComponentProps {\n size?: (typeof SIZES)[keyof typeof SIZES];\n tabIndex?: number;\n ariaLabel?: string;\n ariaDescribedBy?: string;\n focusOnMount?: boolean;\n onItemFocus?: (index: number) => void;\n isVisible?: boolean;\n onClose?: (option: CloseMenuOption) => void;\n focusItemIndex?: number;\n isSubMenu?: boolean;\n useDocumentEventListeners?: boolean;\n focusItemIndexOnMount?: number;\n shouldScrollMenu?: boolean;\n children?: ElementContent;\n}\n\nconst Menu: VibeComponent<MenuProps> & {\n isMenu?: boolean;\n supportFocusOnMount?: boolean;\n sizes?: typeof SIZES;\n} = forwardRef(\n (\n {\n id,\n className,\n size = Menu.sizes.MEDIUM,\n tabIndex = 0,\n ariaLabel = \"Menu\",\n 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\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 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 withStaticProps(Menu, {\n sizes: SIZES\n});\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","cx","styles","menu","getStyle","role","onMouseOver","map","cloneElement","Object","assign","menuRef","isParentMenuVisible","closeMenu","generateMenuItemId","isUnderSubMenu","isMenu","supportFocusOnMount","withStaticProps","SIZES"],"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/sizes\";\nimport React, { forwardRef, ReactElement, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\nimport useIsomorphicLayoutEffect from \"../../../hooks/ssr/useIsomorphicLayoutEffect\";\nimport useClickOutside from \"../../../hooks/useClickOutside\";\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 { ElementContent, VibeComponent, VibeComponentProps, withStaticProps } from \"../../../types\";\nimport { CloseMenuOption, MenuChild } from \"./MenuConstants\";\nimport { getStyle } from \"../../../helpers/typesciptCssModulesHelper\";\nimport { getTestId } from \"../../../tests/test-ids-utils\";\nimport { ComponentDefaultTestId } from \"../../../tests/constants\";\nimport { useFocusOnMount } from \"./hooks/useFocusOnMount\";\nimport { useMenuId } from \"./hooks/useMenuId\";\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 ariaLabel?: string;\n /**\n * ARIA description ID.\n */\n ariaDescribedBy?: 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: VibeComponent<MenuProps> & {\n isMenu?: boolean;\n supportFocusOnMount?: boolean;\n sizes?: typeof SIZES;\n} = forwardRef(\n (\n {\n id,\n className,\n size = Menu.sizes.MEDIUM,\n tabIndex = 0,\n ariaLabel = \"Menu\",\n 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\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 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 withStaticProps(Menu, {\n sizes: SIZES\n});\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","cx","styles","menu","getStyle","role","onMouseOver","map","cloneElement","Object","assign","menuRef","isParentMenuVisible","closeMenu","generateMenuItemId","isUnderSubMenu","isMenu","supportFocusOnMount","withStaticProps","SIZES"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuGridItem.js","sources":["../../../../../src/components/Menu/MenuGridItem/MenuGridItem.tsx"],"sourcesContent":["import React, { forwardRef, ReactElement, useCallback, useRef } from \"react\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\nimport { GridKeyboardNavigationContext } from \"../../GridKeyboardNavigationContext/GridKeyboardNavigationContext\";\nimport { useMenuGridItemNavContext } from \"./useMenuGridItemNavContext\";\nimport { useFocusGridItemByActiveStatus } from \"./useFocusGridItemByActiveStatus\";\nimport { useFocusWithin } from \"../../../hooks/useFocusWithin\";\nimport { VibeComponent, VibeComponentProps } from \"../../../types\";\nimport { CloseMenuOption } from \"../Menu/MenuConstants\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\n\nexport interface MenuGridItemProps extends VibeComponentProps {\n children?: ReactElement | ReactElement[];\n
|
|
1
|
+
{"version":3,"file":"MenuGridItem.js","sources":["../../../../../src/components/Menu/MenuGridItem/MenuGridItem.tsx"],"sourcesContent":["import React, { forwardRef, ReactElement, useCallback, useRef } from \"react\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\nimport { GridKeyboardNavigationContext } from \"../../GridKeyboardNavigationContext/GridKeyboardNavigationContext\";\nimport { useMenuGridItemNavContext } from \"./useMenuGridItemNavContext\";\nimport { useFocusGridItemByActiveStatus } from \"./useFocusGridItemByActiveStatus\";\nimport { useFocusWithin } from \"../../../hooks/useFocusWithin\";\nimport { VibeComponent, VibeComponentProps } from \"../../../types\";\nimport { CloseMenuOption } from \"../Menu/MenuConstants\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\n\nexport interface MenuGridItemProps extends VibeComponentProps {\n /**\n * The content of the menu grid item.\n */\n children?: ReactElement | ReactElement[];\n /**\n * If true, keyboard navigation will skip this item. This prop is also passed to the child.\n */\n disabled?: boolean;\n /**\n * A callback function to close the wrapping menu.\n */\n closeMenu?: (option: CloseMenuOption) => void;\n /**\n * The currently active index of the wrapping menu.\n */\n activeItemIndex?: number;\n /**\n * Callback function to set the active item index.\n */\n setActiveItemIndex?: (index: number) => void;\n /**\n * Function to get the next selectable index.\n */\n getNextSelectableIndex?: (activeItemIndex: number) => number;\n /**\n * Function to get the previous selectable index.\n */\n getPreviousSelectableIndex?: (activeItemIndex: number) => number;\n /**\n * The index of this menu grid item.\n */\n index?: number;\n /**\n * If true, this item is under a submenu instead of a top-level menu.\n */\n isUnderSubMenu?: boolean;\n /**\n * Callback function to open or close a submenu by its index.\n */\n setSubMenuIsOpenByIndex?: (index: number, isOpen: boolean) => void;\n /**\n * If true, event listeners will be attached to the document.\n */\n useDocumentEventListeners?: boolean;\n}\n\nconst MenuGridItem: VibeComponent<MenuGridItemProps> & {\n isMenuChild?: boolean;\n isSelectable?: boolean;\n} = forwardRef(\n (\n {\n className,\n id,\n children,\n index,\n activeItemIndex = -1,\n closeMenu,\n getNextSelectableIndex,\n getPreviousSelectableIndex,\n setActiveItemIndex,\n setSubMenuIsOpenByIndex,\n isUnderSubMenu = false,\n disabled = false,\n useDocumentEventListeners = false,\n \"data-testid\": dataTestId\n }: MenuGridItemProps,\n ref\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n const childRef = useRef();\n\n const child = children && React.Children.only(children);\n if (!child) {\n console.error(\n \"MenuGridItem can accept only a single element as first level child, this element is not valid: \",\n child\n );\n }\n\n const onFocusWithinChange = useCallback(\n (isFocusWithin: boolean) => {\n setSubMenuIsOpenByIndex(index, isFocusWithin);\n if (isFocusWithin) {\n setActiveItemIndex(index);\n }\n },\n [index, setActiveItemIndex, setSubMenuIsOpenByIndex]\n );\n const { focusWithinProps } = useFocusWithin({ onFocusWithinChange });\n\n useFocusGridItemByActiveStatus({\n wrapperRef: componentRef,\n childRef,\n activeItemIndex,\n index,\n useDocumentEventListeners\n });\n\n const keyboardContext = useMenuGridItemNavContext({\n wrapperRef: componentRef,\n setActiveItemIndex,\n getPreviousSelectableIndex,\n getNextSelectableIndex,\n activeItemIndex,\n isUnderSubMenu,\n closeMenu\n });\n\n return (\n <section\n ref={mergedRef}\n className={className}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.MENU_GRID_ITEM, id)}\n tabIndex={-1}\n role=\"grid\"\n {...focusWithinProps}\n >\n <GridKeyboardNavigationContext.Provider value={keyboardContext}>\n {React.cloneElement(child, {\n ...child?.props,\n disabled,\n ref: childRef\n })}\n </GridKeyboardNavigationContext.Provider>\n </section>\n );\n }\n);\n\nObject.assign(MenuGridItem, {\n isMenuChild: true,\n isSelectable: true\n});\n\nexport default MenuGridItem;\n"],"names":["MenuGridItem","forwardRef","_ref","ref","className","id","children","index","_ref$activeItemIndex","activeItemIndex","closeMenu","getNextSelectableIndex","getPreviousSelectableIndex","setActiveItemIndex","setSubMenuIsOpenByIndex","_ref$isUnderSubMenu","isUnderSubMenu","_ref$disabled","disabled","_ref$useDocumentEvent","useDocumentEventListeners","dataTestId","componentRef","useRef","mergedRef","useMergeRef","childRef","child","React","Children","only","console","error","onFocusWithinChange","useCallback","isFocusWithin","focusWithinProps","useFocusWithin","useFocusGridItemByActiveStatus","wrapperRef","keyboardContext","useMenuGridItemNavContext","createElement","Object","assign","getTestId","ComponentDefaultTestId","MENU_GRID_ITEM","tabIndex","role","GridKeyboardNavigationContext","Provider","value","cloneElement","props","isMenuChild","isSelectable"],"mappings":"yhBAyDMA,IAAAA,EAGFC,GACF,SAAAC,EAiBEC,GACE,IAhBAC,EAASF,EAATE,UACAC,EAAEH,EAAFG,GACAC,EAAQJ,EAARI,SACAC,EAAKL,EAALK,MAAKC,EAAAN,EACLO,gBAAAA,OAAe,IAAAD,GAAI,EAACA,EACpBE,EAASR,EAATQ,UACAC,EAAsBT,EAAtBS,uBACAC,EAA0BV,EAA1BU,2BACAC,EAAkBX,EAAlBW,mBACAC,EAAuBZ,EAAvBY,wBAAuBC,EAAAb,EACvBc,eAAAA,OAAiB,IAAHD,GAAQA,EAAAE,EAAAf,EACtBgB,SAAAA,OAAW,IAAHD,GAAQA,EAAAE,EAAAjB,EAChBkB,0BAAAA,OAA4B,IAAHD,GAAQA,EAClBE,EAAUnB,EAAzB,eAIIoB,EAAeC,EAAO,MACtBC,EAAYC,EAAYtB,EAAKmB,GAC7BI,EAAWH,IAEXI,EAAQrB,GAAYsB,EAAMC,SAASC,KAAKxB,GACzCqB,GACHI,QAAQC,MACN,kGACAL,GAIJ,IAAMM,EAAsBC,GAC1B,SAACC,GACCrB,EAAwBP,EAAO4B,GAC3BA,GACFtB,EAAmBN,EAEtB,GACD,CAACA,EAAOM,EAAoBC,IAEtBsB,EAAqBC,EAAe,CAAEJ,oBAAAA,IAAtCG,iBAERE,EAA+B,CAC7BC,WAAYjB,EACZI,SAAAA,EACAjB,gBAAAA,EACAF,MAAAA,EACAa,0BAAAA,IAGF,IAAMoB,EAAkBC,EAA0B,CAChDF,WAAYjB,EACZT,mBAAAA,EACAD,2BAAAA,EACAD,uBAAAA,EACAF,gBAAAA,EACAO,eAAAA,EACAN,UAAAA,IAGF,OACEkB,EAAAc,cAAA,UAAAC,OAAAC,OAAA,CACEzC,IAAKqB,EACLpB,UAAWA,EACXC,GAAIA,EAAE,cACOgB,GAAcwB,EAAUC,EAAuBC,eAAgB1C,GAC5E2C,UAAW,EACXC,KAAK,QACDb,GAEJR,EAAAc,cAACQ,EAA8BC,SAAQ,CAACC,MAAOZ,GAC5CZ,EAAMyB,aAAa1B,EACfgB,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAjB,aAAA,EAAAA,EAAO2B,QACVpC,SAAAA,EACAf,IAAKuB,MAKf,IAGFiB,OAAOC,OAAO5C,EAAc,CAC1BuD,aAAa,EACbC,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarMenuItem.js","sources":["../../../../../src/components/Menu/MenuItem/AvatarMenuItem.tsx"],"sourcesContent":["import React, { ForwardedRef, forwardRef, useCallback } from \"react\";\nimport MenuItem, { MenuItemProps } from \"./MenuItem\";\nimport Avatar, { AvatarProps } from \"../../Avatar/Avatar\";\nimport VibeComponentProps from \"../../../types/VibeComponentProps\";\n\nexport interface AvatarMenuItemProps extends VibeComponentProps {\n avatarProps?: AvatarProps;\n menuItemProps?: MenuItemProps;\n}\n\n/**\n * MenuItem with Avatar instead of Icon\n */\nconst AvatarMenuItem: React.FC<AvatarMenuItemProps & { isMenuChild?: boolean; isSelectable?: boolean }> = forwardRef(\n ({ avatarProps, menuItemProps, ...embeddedMenuItemProps }, ref: ForwardedRef<HTMLElement>) => {\n const renderAvatar = useCallback(() => <Avatar {...avatarProps} />, [avatarProps]);\n return <MenuItem {...embeddedMenuItemProps} {...menuItemProps} icon={renderAvatar} ref={ref} />;\n }\n);\n\nObject.assign(AvatarMenuItem, {\n isMenuChild: true,\n isSelectable: true\n});\n\nexport default AvatarMenuItem;\n"],"names":["AvatarMenuItem","forwardRef","_a","ref","avatarProps","menuItemProps","embeddedMenuItemProps","__rest","renderAvatar","useCallback","React","createElement","Avatar","Object","assign","MenuItem","icon","isMenuChild","isSelectable"],"mappings":"
|
|
1
|
+
{"version":3,"file":"AvatarMenuItem.js","sources":["../../../../../src/components/Menu/MenuItem/AvatarMenuItem.tsx"],"sourcesContent":["import React, { ForwardedRef, forwardRef, useCallback } from \"react\";\nimport MenuItem, { MenuItemProps } from \"./MenuItem\";\nimport Avatar, { AvatarProps } from \"../../Avatar/Avatar\";\nimport VibeComponentProps from \"../../../types/VibeComponentProps\";\n\nexport interface AvatarMenuItemProps extends VibeComponentProps {\n /**\n * Props passed to the avatar component.\n */\n avatarProps?: AvatarProps;\n /**\n * Props passed to the menu item component.\n */\n menuItemProps?: MenuItemProps;\n}\n\n/**\n * MenuItem with Avatar instead of Icon\n */\nconst AvatarMenuItem: React.FC<AvatarMenuItemProps & { isMenuChild?: boolean; isSelectable?: boolean }> = forwardRef(\n ({ avatarProps, menuItemProps, ...embeddedMenuItemProps }, ref: ForwardedRef<HTMLElement>) => {\n const renderAvatar = useCallback(() => <Avatar {...avatarProps} />, [avatarProps]);\n return <MenuItem {...embeddedMenuItemProps} {...menuItemProps} icon={renderAvatar} ref={ref} />;\n }\n);\n\nObject.assign(AvatarMenuItem, {\n isMenuChild: true,\n isSelectable: true\n});\n\nexport default AvatarMenuItem;\n"],"names":["AvatarMenuItem","forwardRef","_a","ref","avatarProps","menuItemProps","embeddedMenuItemProps","__rest","renderAvatar","useCallback","React","createElement","Avatar","Object","assign","MenuItem","icon","isMenuChild","isSelectable"],"mappings":"kLAmBMA,IAAAA,EAAoGC,GACxG,SAACC,EAA0DC,OAAxDC,EAA0BF,EAA1BE,YAAaC,EAAaH,EAAbG,cAAkBC,EAAqBC,EAAAL,EAAtD,iCACOM,EAAeC,GAAY,WAAA,OAAMC,EAAAC,cAACC,EAAMC,OAAAC,OAAA,CAAA,EAAKV,MAAiB,CAACA,IACrE,OAAOM,EAACC,cAAAI,EAAaF,OAAAC,OAAA,CAAA,EAAAR,EAA2BD,EAAa,CAAEW,KAAMR,EAAcL,IAAKA,IAC1F,IAGFU,OAAOC,OAAOd,EAAgB,CAC5BiB,aAAa,EACbC,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItem.js","sources":["../../../../../src/components/Menu/MenuItem/MenuItem.tsx"],"sourcesContent":["import React, { AriaAttributes, ForwardedRef, ReactElement, forwardRef, useMemo, useRef } from \"react\";\nimport Tooltip, { TooltipProps } from \"../../../components/Tooltip/Tooltip\";\nimport Icon from \"../../../components/Icon/Icon\";\nimport useIsOverflowing from \"../../../hooks/useIsOverflowing/useIsOverflowing\";\nimport { SubIcon, VibeComponent, VibeComponentProps, withStaticProps } from \"../../../types\";\nimport { IconType } from \"../../Icon\";\nimport { CloseMenuOption, MenuChild } from \"../Menu/MenuConstants\";\nimport Label from \"../../Label/Label\";\nimport styles from \"./MenuItem.module.scss\";\nimport BaseMenuItem from \"./components/BaseMenuItem/BaseMenuItem\";\nimport MenuItemIcon from \"./components/MenuItemIcon/MenuItemIcon\";\nimport { TooltipPositions } from \"../../Tooltip/Tooltip.types\";\nimport { TooltipPositions as TooltipPositionsEnum } from \"../../Tooltip/TooltipConstants\";\nimport { SubmenuPosition } from \"./MenuItem.types\";\n\nexport interface MenuItemProps extends VibeComponentProps {\n title?: string;\n label?: string | React.ReactElement<typeof Label>;\n icon?: SubIcon;\n iconType?: IconType;\n iconBackgroundColor?: string;\n disabled?: boolean;\n disableReason?: string;\n selected?: boolean;\n onClick?: (event: React.MouseEvent | React.KeyboardEvent) => void;\n activeItemIndex?: number;\n setActiveItemIndex?: (index: number) => void;\n index?: number;\n key?: string;\n isParentMenuVisible?: boolean;\n resetOpenSubMenuIndex?: () => void;\n hasOpenSubMenu?: boolean;\n setSubMenuIsOpenByIndex?: (index: number, isOpen: boolean) => void;\n useDocumentEventListeners?: boolean;\n tooltipContent?: string;\n tooltipPosition?: TooltipPositions;\n tooltipShowDelay?: number;\n tooltipProps?: Partial<TooltipProps>;\n onMouseLeave?: (event: React.MouseEvent) => void;\n onMouseEnter?: (event: React.MouseEvent) => void;\n /**\n * Class name
|
|
1
|
+
{"version":3,"file":"MenuItem.js","sources":["../../../../../src/components/Menu/MenuItem/MenuItem.tsx"],"sourcesContent":["import React, { AriaAttributes, ForwardedRef, ReactElement, forwardRef, useMemo, useRef } from \"react\";\nimport Tooltip, { TooltipProps } from \"../../../components/Tooltip/Tooltip\";\nimport Icon from \"../../../components/Icon/Icon\";\nimport useIsOverflowing from \"../../../hooks/useIsOverflowing/useIsOverflowing\";\nimport { SubIcon, VibeComponent, VibeComponentProps, withStaticProps } from \"../../../types\";\nimport { IconType } from \"../../Icon\";\nimport { CloseMenuOption, MenuChild } from \"../Menu/MenuConstants\";\nimport Label from \"../../Label/Label\";\nimport styles from \"./MenuItem.module.scss\";\nimport BaseMenuItem from \"./components/BaseMenuItem/BaseMenuItem\";\nimport MenuItemIcon from \"./components/MenuItemIcon/MenuItemIcon\";\nimport { TooltipPositions } from \"../../Tooltip/Tooltip.types\";\nimport { TooltipPositions as TooltipPositionsEnum } from \"../../Tooltip/TooltipConstants\";\nimport { SubmenuPosition } from \"./MenuItem.types\";\n\nexport interface MenuItemProps extends VibeComponentProps {\n /**\n * The title of the menu item.\n */\n title?: string;\n /**\n * The label displayed alongside the title.\n */\n label?: string | React.ReactElement<typeof Label>;\n /**\n * The icon displayed in the menu item.\n */\n icon?: SubIcon;\n /**\n * The type of icon.\n */\n iconType?: IconType;\n /**\n * The background color of the icon.\n */\n iconBackgroundColor?: string;\n /**\n * If true, the menu item is disabled.\n */\n disabled?: boolean;\n /**\n * The reason for disabling the item, shown in a tooltip.\n */\n disableReason?: string;\n /**\n * If true, the menu item is selected.\n */\n selected?: boolean;\n /**\n * Callback fired when the menu item is clicked.\n */\n onClick?: (event: React.MouseEvent | React.KeyboardEvent) => void;\n /**\n * The active item index in the menu.\n */\n activeItemIndex?: number;\n /**\n * Callback to set the active item index.\n */\n setActiveItemIndex?: (index: number) => void;\n /**\n * The index of the menu item.\n */\n index?: number;\n /**\n * The key of the menu item.\n */\n key?: string;\n /**\n * If true, the parent menu is visible.\n */\n isParentMenuVisible?: boolean;\n /**\n * Callback to reset the open submenu index.\n */\n resetOpenSubMenuIndex?: () => void;\n /**\n * If true, a submenu is open.\n */\n hasOpenSubMenu?: boolean;\n /**\n * Callback to open or close a submenu by index.\n */\n setSubMenuIsOpenByIndex?: (index: number, isOpen: boolean) => void;\n /**\n * If true, document event listeners are used for handling interactions.\n */\n useDocumentEventListeners?: boolean;\n /**\n * The tooltip content for the menu item.\n */\n tooltipContent?: string;\n /**\n * The position of the tooltip.\n */\n tooltipPosition?: TooltipPositions;\n /**\n * The delay in milliseconds before the tooltip shows.\n */\n tooltipShowDelay?: number;\n /**\n * Additional props for customizing the tooltip.\n */\n tooltipProps?: Partial<TooltipProps>;\n /**\n * Callback fired when the mouse leaves the item.\n */\n onMouseLeave?: (event: React.MouseEvent) => void;\n /**\n * Callback fired when the mouse enters the item.\n */\n onMouseEnter?: (event: React.MouseEvent) => void;\n /**\n * Class name applied to the icon wrapper.\n */\n iconWrapperClassName?: string;\n /**\n * If true, the menu item starts as selected.\n */\n isInitialSelectedState?: boolean;\n /**\n * If true, the menu scrolls to ensure visibility.\n */\n shouldScrollMenu?: boolean;\n /**\n * Function to close the menu with a given option.\n */\n closeMenu?: (option: CloseMenuOption) => void;\n /**\n * Reference to the menu container.\n */\n menuRef?: React.RefObject<HTMLElement>;\n /**\n * The submenu items, if applicable.\n */\n children?: MenuChild | MenuChild[];\n /**\n * If true, enables a split menu item interaction where the main area triggers an action,\n * while the icon button opens the submenu.\n */\n splitMenuItem?: boolean;\n /**\n * The label of the menu item for accessibility.\n */\n \"aria-label\"?: AriaAttributes[\"aria-label\"];\n /**\n * The position of a submenu relative to the menu item.\n */\n submenuPosition?: SubmenuPosition;\n /**\n * If true, automatically repositions the submenu when its content changes.\n */\n autoAdjustOnSubMenuContentResize?: boolean;\n}\n\nexport interface MenuItemTitleComponentProps extends Omit<MenuItemProps, \"title\"> {\n title: ReactElement;\n \"aria-label\": NonNullable<AriaAttributes[\"aria-label\"]>;\n}\n\nconst MenuItem: VibeComponent<MenuItemProps | MenuItemTitleComponentProps> & {\n iconType?: typeof Icon.type;\n isSelectable?: boolean;\n isMenuChild?: boolean;\n tooltipPositions?: typeof TooltipPositionsEnum;\n} = forwardRef(\n (\n {\n className,\n iconWrapperClassName,\n title = \"\",\n label = \"\",\n icon = \"\",\n iconType,\n iconBackgroundColor,\n disabled = false,\n disableReason,\n selected = false,\n key,\n children,\n tooltipContent,\n tooltipPosition = \"right\",\n tooltipShowDelay = 300,\n tooltipProps,\n \"aria-label\": ariaLabel,\n ...baseMenuProps\n }: MenuItemProps | MenuItemTitleComponentProps,\n ref: ForwardedRef<HTMLElement>\n ) => {\n const titleRef = useRef();\n\n // if \"title\" is a component ariaLabel is mandatory\n const iconLabel = ariaLabel ?? (title as string);\n\n const isTitleHoveredAndOverflowing = useIsOverflowing({ ref: titleRef });\n const shouldShowTooltip = isTitleHoveredAndOverflowing || disabled || tooltipContent;\n\n const finalTooltipContent = useMemo(() => {\n if (disabled) return disableReason;\n if (tooltipContent) return tooltipContent;\n return title;\n }, [disableReason, disabled, title, tooltipContent]);\n\n const renderLabel = useMemo(() => {\n if (!label) return;\n if (typeof label === \"string\") {\n return <Label kind=\"line\" text={label} />;\n }\n if (React.isValidElement(label) && label.type === Label) {\n return label;\n }\n }, [label]);\n\n return (\n <Tooltip\n content={shouldShowTooltip ? finalTooltipContent : null}\n position={tooltipPosition}\n showDelay={tooltipShowDelay}\n {...tooltipProps}\n >\n <BaseMenuItem\n key={key}\n ref={ref}\n subMenu={children}\n className={className}\n disabled={disabled}\n selected={selected}\n {...baseMenuProps}\n >\n {Boolean(icon) && (\n <MenuItemIcon\n icon={icon}\n type={iconType}\n label={iconLabel}\n disabled={disabled}\n selected={selected}\n backgroundColor={iconBackgroundColor}\n wrapperClassName={iconWrapperClassName}\n />\n )}\n <div ref={titleRef} className={styles.title}>\n {title}\n </div>\n {renderLabel}\n </BaseMenuItem>\n </Tooltip>\n );\n }\n);\n\nObject.assign(MenuItem, {\n isSelectable: true,\n isMenuChild: true\n});\n\nexport default withStaticProps(MenuItem, {\n iconType: Icon.type,\n tooltipPositions: TooltipPositionsEnum\n});\n"],"names":["MenuItem","forwardRef","_a","ref","className","iconWrapperClassName","_a$title","title","_a$label","label","_a$icon","icon","iconType","iconBackgroundColor","_a$disabled","disabled","disableReason","_a$selected","selected","key","children","tooltipContent","_a$tooltipPosition","tooltipPosition","_a$tooltipShowDelay","tooltipShowDelay","tooltipProps","ariaLabel","baseMenuProps","__rest","titleRef","useRef","iconLabel","shouldShowTooltip","useIsOverflowing","finalTooltipContent","useMemo","renderLabel","React","createElement","Label","kind","text","isValidElement","type","Tooltip","Object","assign","content","position","showDelay","BaseMenuItem","subMenu","MenuItemIcon","backgroundColor","wrapperClassName","styles","isSelectable","isMenuChild","withStaticProps","Icon","tooltipPositions","TooltipPositionsEnum"],"mappings":"snBAgKA,IAAMA,EAKFC,GACF,SACEC,EAoBAC,OAnBEC,EAgBuBF,EAhBvBE,UACAC,EAeuBH,EAfvBG,qBAAoBC,EAeGJ,EAdvBK,MAAAA,OAAQ,IAAHD,EAAG,GAAEA,EAAAE,EAcaN,EAbvBO,MAAAA,OAAQ,IAAHD,EAAG,GAAEA,EAAAE,EAaaR,EAZvBS,KAAAA,OAAO,IAAHD,EAAG,GAAEA,EACTE,EAWuBV,EAXvBU,SACAC,EAUuBX,EAVvBW,oBAAmBC,EAUIZ,EATvBa,SAAAA,OAAW,IAAHD,GAAQA,EAChBE,EAQuBd,EARvBc,cAAaC,EAQUf,EAPvBgB,SAAAA,OAAW,IAAHD,GAAQA,EAChBE,EAMuBjB,EANvBiB,IACAC,EAKuBlB,EALvBkB,SACAC,EAIuBnB,EAJvBmB,eAAcC,EAISpB,EAHvBqB,gBAAAA,OAAkB,IAAHD,EAAG,QAAOA,EAAAE,EAGFtB,EAFvBuB,iBAAAA,OAAmB,IAAHD,EAAG,IAAGA,EACtBE,EACuBxB,EADvBwB,aACcC,EAASzB,EAAvB,cACG0B,EAlBLC,EAAA3B,EAAA,CAAA,YAAA,uBAAA,QAAA,QAAA,OAAA,WAAA,sBAAA,WAAA,gBAAA,WAAA,MAAA,WAAA,iBAAA,kBAAA,mBAAA,eAAA,eAsBM4B,EAAWC,IAGXC,EAAYL,QAAAA,EAAcpB,EAG1B0B,EAD+BC,EAAiB,CAAE/B,IAAK2B,KACHf,GAAYM,EAEhEc,EAAsBC,GAAQ,WAClC,OAAIrB,EAAiBC,EACjBK,GACGd,CACR,GAAE,CAACS,EAAeD,EAAUR,EAAOc,IAE9BgB,EAAcD,GAAQ,WAC1B,GAAK3B,EACL,MAAqB,iBAAVA,EACF6B,EAAAC,cAACC,EAAK,CAACC,KAAK,OAAOC,KAAMjC,IAE9B6B,EAAMK,eAAelC,IAAUA,EAAMmC,OAASJ,EACzC/B,OADT,CAGF,GAAG,CAACA,IAEJ,OACE6B,EAACC,cAAAM,EACCC,OAAAC,OAAA,CAAAC,QAASf,EAAoBE,EAAsB,KACnDc,SAAU1B,EACV2B,UAAWzB,GACPC,GAEJY,EAACC,cAAAY,EACCL,OAAAC,OAAA,CAAA5B,IAAKA,EACLhB,IAAKA,EACLiD,QAAShC,EACThB,UAAWA,EACXW,SAAUA,EACVG,SAAUA,GACNU,KAEKjB,GACP2B,gBAACe,EAAY,CACX1C,KAAMA,EACNiC,KAAMhC,EACNH,MAAOuB,EACPjB,SAAUA,EACVG,SAAUA,EACVoC,gBAAiBzC,EACjB0C,iBAAkBlD,IAGtBiC,EAAKC,cAAA,MAAA,CAAApC,IAAK2B,EAAU1B,UAAWoD,EAAOjD,OACnCA,GAEF8B,GAIT,IAGFS,OAAOC,OAAO/C,EAAU,CACtByD,cAAc,EACdC,aAAa,IAGf,IAAeC,EAAAA,EAAgB3D,EAAU,CACvCY,SAAUgD,EAAKhB,KACfiB,iBAAkBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItemButton.js","sources":["../../../../../src/components/Menu/MenuItemButton/MenuItemButton.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { FC, useRef } from \"react\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\nimport Button from \"../../Button/Button\";\nimport Tooltip from \"../../Tooltip/Tooltip\";\nimport { ButtonType } from \"../../Button/Button.types\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\nimport useMenuItemMouseEvents from \"../MenuItem/hooks/useMenuItemMouseEvents\";\nimport useMenuItemKeyboardEvents from \"../MenuItem/hooks/useMenuItemKeyboardEvents\";\nimport { SubIcon, VibeComponentProps, withStaticProps, ElementContent } from \"../../../types\";\nimport Text from \"../../Text/Text\";\nimport styles from \"./MenuItemButton.module.scss\";\nimport { TooltipPositions } from \"../../Tooltip/Tooltip.types\";\nimport { TooltipPositions as TooltipPositionsEnum } from \"../../Tooltip/TooltipConstants\";\n\nexport interface MenuItemButtonProps extends VibeComponentProps {\n kind?: ButtonType;\n leftIcon?: SubIcon;\n rightIcon?: SubIcon;\n index?: number;\n activeItemIndex?: number;\n disabled?: boolean;\n disableReason?: string;\n onClick?: (event: React.MouseEvent | React.KeyboardEvent) => void;\n tooltipPosition?: TooltipPositions;\n tooltipShowDelay?: number;\n resetOpenSubMenuIndex?: () => void;\n setSubMenuIsOpenByIndex?: (index: number, isOpen: boolean) => void;\n setActiveItemIndex?: (index: number) => void;\n menuRef?: React.RefObject<HTMLElement>;\n closeMenu?: () => void;\n useDocumentEventListeners?: boolean;\n children?: ElementContent | ElementContent[];\n}\n\nconst MenuItemButton: FC<MenuItemButtonProps> & {\n kinds?: typeof Button.kinds;\n isSelectable?: boolean;\n isMenuChild?: boolean;\n tooltipPositions?: typeof TooltipPositionsEnum;\n} = ({\n className,\n kind = \"primary\",\n leftIcon = null,\n rightIcon = null,\n disabled = false,\n disableReason,\n index,\n activeItemIndex = -1,\n onClick,\n tooltipPosition = \"right\",\n tooltipShowDelay = 300,\n children,\n resetOpenSubMenuIndex,\n setSubMenuIsOpenByIndex,\n setActiveItemIndex,\n menuRef,\n closeMenu,\n useDocumentEventListeners,\n id,\n \"data-testid\": dataTestId\n}: MenuItemButtonProps) => {\n const ref = useRef(null);\n const referenceElementRef = useRef(null);\n const mergedRef = useMergeRef(ref, referenceElementRef);\n\n const shouldShowTooltip = disabled && disableReason;\n const tooltipContent = disableReason;\n\n const isActive = activeItemIndex === index;\n\n const isMouseEnter = useMenuItemMouseEvents({\n ref,\n resetOpenSubMenuIndex,\n setSubMenuIsOpenByIndex,\n isActive,\n setActiveItemIndex,\n index,\n hasChildren: false\n });\n\n const { onClickCallback } = useMenuItemKeyboardEvents({\n onClick,\n disabled,\n isActive,\n index,\n setActiveItemIndex,\n hasChildren: false,\n shouldShowSubMenu: false,\n setSubMenuIsOpenByIndex,\n menuRef,\n isMouseEnter,\n closeMenu,\n useDocumentEventListeners\n });\n\n return (\n <Tooltip\n content={shouldShowTooltip ? tooltipContent : null}\n position={tooltipPosition}\n showDelay={tooltipShowDelay}\n >\n <Text\n type=\"text2\"\n element=\"li\"\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.MENU_ITEM_BUTTON, id)}\n id={id}\n className={cx(styles.itemButton, className)}\n ref={mergedRef}\n role=\"menuitem\"\n aria-current={isActive}\n >\n <Button\n className={styles.buttonComponent}\n active={isActive}\n disabled={disabled}\n leftIcon={leftIcon}\n rightIcon={rightIcon}\n onClick={onClickCallback}\n kind={kind}\n size=\"small\"\n blurOnMouseUp={false}\n >\n <div className={styles.content}>{children}</div>\n </Button>\n </Text>\n </Tooltip>\n );\n};\n\nObject.assign(MenuItemButton, {\n isSelectable: true,\n isMenuChild: true\n});\n\nexport default withStaticProps(MenuItemButton, {\n kinds: Button.kinds,\n tooltipPositions: TooltipPositionsEnum\n});\n"],"names":["MenuItemButton","_ref","className","_ref$kind","kind","_ref$leftIcon","leftIcon","_ref$rightIcon","rightIcon","_ref$disabled","disabled","disableReason","index","_ref$activeItemIndex","activeItemIndex","onClick","_ref$tooltipPosition","tooltipPosition","_ref$tooltipShowDelay","tooltipShowDelay","children","resetOpenSubMenuIndex","setSubMenuIsOpenByIndex","setActiveItemIndex","menuRef","closeMenu","useDocumentEventListeners","id","dataTestId","ref","useRef","referenceElementRef","mergedRef","useMergeRef","shouldShowTooltip","tooltipContent","isActive","isMouseEnter","useMenuItemMouseEvents","hasChildren","onClickCallback","useMenuItemKeyboardEvents","shouldShowSubMenu","React","Tooltip","content","position","showDelay","createElement","Text","type","element","getTestId","ComponentDefaultTestId","MENU_ITEM_BUTTON","cx","styles","itemButton","role","Button","buttonComponent","active","size","blurOnMouseUp","Object","assign","isSelectable","isMenuChild","withStaticProps","kinds","tooltipPositions","TooltipPositionsEnum"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MenuItemButton.js","sources":["../../../../../src/components/Menu/MenuItemButton/MenuItemButton.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { FC, useRef } from \"react\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\nimport Button from \"../../Button/Button\";\nimport Tooltip from \"../../Tooltip/Tooltip\";\nimport { ButtonType } from \"../../Button/Button.types\";\nimport useMergeRef from \"../../../hooks/useMergeRef\";\nimport useMenuItemMouseEvents from \"../MenuItem/hooks/useMenuItemMouseEvents\";\nimport useMenuItemKeyboardEvents from \"../MenuItem/hooks/useMenuItemKeyboardEvents\";\nimport { SubIcon, VibeComponentProps, withStaticProps, ElementContent } from \"../../../types\";\nimport Text from \"../../Text/Text\";\nimport styles from \"./MenuItemButton.module.scss\";\nimport { TooltipPositions } from \"../../Tooltip/Tooltip.types\";\nimport { TooltipPositions as TooltipPositionsEnum } from \"../../Tooltip/TooltipConstants\";\n\nexport interface MenuItemButtonProps extends VibeComponentProps {\n /**\n * The style variant of the button.\n */\n kind?: ButtonType;\n /**\n * Icon displayed on the left side of the button.\n */\n leftIcon?: SubIcon;\n /**\n * Icon displayed on the right side of the button.\n */\n rightIcon?: SubIcon;\n /**\n * The index of the menu item in the menu.\n */\n index?: number;\n /**\n * The index of the currently active menu item.\n */\n activeItemIndex?: number;\n /**\n * If true, the button is disabled.\n */\n disabled?: boolean;\n /**\n * The reason why the button is disabled, displayed as a tooltip.\n */\n disableReason?: string;\n /**\n * Callback fired when the button is clicked.\n */\n onClick?: (event: React.MouseEvent | React.KeyboardEvent) => void;\n /**\n * The position of the tooltip.\n */\n tooltipPosition?: TooltipPositions;\n /**\n * The delay in milliseconds before the tooltip appears.\n */\n tooltipShowDelay?: number;\n /**\n * Callback to reset the open submenu index.\n */\n resetOpenSubMenuIndex?: () => void;\n /**\n * Callback to open or close a submenu by index.\n */\n setSubMenuIsOpenByIndex?: (index: number, isOpen: boolean) => void;\n /**\n * Callback to set the active item index.\n */\n setActiveItemIndex?: (index: number) => void;\n /**\n * Reference to the menu container.\n */\n menuRef?: React.RefObject<HTMLElement>;\n /**\n * Function to close the menu.\n */\n closeMenu?: () => void;\n /**\n * If true, event listeners are added at the document level.\n */\n useDocumentEventListeners?: boolean;\n /**\n * The content of the button.\n */\n children?: ElementContent | ElementContent[];\n}\n\nconst MenuItemButton: FC<MenuItemButtonProps> & {\n kinds?: typeof Button.kinds;\n isSelectable?: boolean;\n isMenuChild?: boolean;\n tooltipPositions?: typeof TooltipPositionsEnum;\n} = ({\n className,\n kind = \"primary\",\n leftIcon = null,\n rightIcon = null,\n disabled = false,\n disableReason,\n index,\n activeItemIndex = -1,\n onClick,\n tooltipPosition = \"right\",\n tooltipShowDelay = 300,\n children,\n resetOpenSubMenuIndex,\n setSubMenuIsOpenByIndex,\n setActiveItemIndex,\n menuRef,\n closeMenu,\n useDocumentEventListeners,\n id,\n \"data-testid\": dataTestId\n}: MenuItemButtonProps) => {\n const ref = useRef(null);\n const referenceElementRef = useRef(null);\n const mergedRef = useMergeRef(ref, referenceElementRef);\n\n const shouldShowTooltip = disabled && disableReason;\n const tooltipContent = disableReason;\n\n const isActive = activeItemIndex === index;\n\n const isMouseEnter = useMenuItemMouseEvents({\n ref,\n resetOpenSubMenuIndex,\n setSubMenuIsOpenByIndex,\n isActive,\n setActiveItemIndex,\n index,\n hasChildren: false\n });\n\n const { onClickCallback } = useMenuItemKeyboardEvents({\n onClick,\n disabled,\n isActive,\n index,\n setActiveItemIndex,\n hasChildren: false,\n shouldShowSubMenu: false,\n setSubMenuIsOpenByIndex,\n menuRef,\n isMouseEnter,\n closeMenu,\n useDocumentEventListeners\n });\n\n return (\n <Tooltip\n content={shouldShowTooltip ? tooltipContent : null}\n position={tooltipPosition}\n showDelay={tooltipShowDelay}\n >\n <Text\n type=\"text2\"\n element=\"li\"\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.MENU_ITEM_BUTTON, id)}\n id={id}\n className={cx(styles.itemButton, className)}\n ref={mergedRef}\n role=\"menuitem\"\n aria-current={isActive}\n >\n <Button\n className={styles.buttonComponent}\n active={isActive}\n disabled={disabled}\n leftIcon={leftIcon}\n rightIcon={rightIcon}\n onClick={onClickCallback}\n kind={kind}\n size=\"small\"\n blurOnMouseUp={false}\n >\n <div className={styles.content}>{children}</div>\n </Button>\n </Text>\n </Tooltip>\n );\n};\n\nObject.assign(MenuItemButton, {\n isSelectable: true,\n isMenuChild: true\n});\n\nexport default withStaticProps(MenuItemButton, {\n kinds: Button.kinds,\n tooltipPositions: TooltipPositionsEnum\n});\n"],"names":["MenuItemButton","_ref","className","_ref$kind","kind","_ref$leftIcon","leftIcon","_ref$rightIcon","rightIcon","_ref$disabled","disabled","disableReason","index","_ref$activeItemIndex","activeItemIndex","onClick","_ref$tooltipPosition","tooltipPosition","_ref$tooltipShowDelay","tooltipShowDelay","children","resetOpenSubMenuIndex","setSubMenuIsOpenByIndex","setActiveItemIndex","menuRef","closeMenu","useDocumentEventListeners","id","dataTestId","ref","useRef","referenceElementRef","mergedRef","useMergeRef","shouldShowTooltip","tooltipContent","isActive","isMouseEnter","useMenuItemMouseEvents","hasChildren","onClickCallback","useMenuItemKeyboardEvents","shouldShowSubMenu","React","Tooltip","content","position","showDelay","createElement","Text","type","element","getTestId","ComponentDefaultTestId","MENU_ITEM_BUTTON","cx","styles","itemButton","role","Button","buttonComponent","active","size","blurOnMouseUp","Object","assign","isSelectable","isMenuChild","withStaticProps","kinds","tooltipPositions","TooltipPositionsEnum"],"mappings":"soBAsFA,IAAMA,EAKF,SALgBC,GA0BM,IApBxBC,EAASD,EAATC,UAASC,EAAAF,EACTG,KAAAA,OAAO,IAAHD,EAAG,UAASA,EAAAE,EAAAJ,EAChBK,SAAAA,OAAW,IAAHD,EAAG,KAAIA,EAAAE,EAAAN,EACfO,UAAAA,OAAY,IAAHD,EAAG,KAAIA,EAAAE,EAAAR,EAChBS,SAAAA,OAAW,IAAHD,GAAQA,EAChBE,EAAaV,EAAbU,cACAC,EAAKX,EAALW,MAAKC,EAAAZ,EACLa,gBAAAA,OAAe,IAAAD,GAAI,EAACA,EACpBE,EAAOd,EAAPc,QAAOC,EAAAf,EACPgB,gBAAAA,OAAkB,IAAHD,EAAG,QAAOA,EAAAE,EAAAjB,EACzBkB,iBAAAA,OAAmB,IAAHD,EAAG,IAAGA,EACtBE,EAAQnB,EAARmB,SACAC,EAAqBpB,EAArBoB,sBACAC,EAAuBrB,EAAvBqB,wBACAC,EAAkBtB,EAAlBsB,mBACAC,EAAOvB,EAAPuB,QACAC,EAASxB,EAATwB,UACAC,EAAyBzB,EAAzByB,0BACAC,EAAE1B,EAAF0B,GACeC,EAAU3B,EAAzB,eAEM4B,EAAMC,EAAO,MACbC,EAAsBD,EAAO,MAC7BE,EAAYC,EAAYJ,EAAKE,GAE7BG,EAAoBxB,GAAYC,EAChCwB,EAAiBxB,EAEjByB,EAAWtB,IAAoBF,EAE/ByB,EAAeC,EAAuB,CAC1CT,IAAAA,EACAR,sBAAAA,EACAC,wBAAAA,EACAc,SAAAA,EACAb,mBAAAA,EACAX,MAAAA,EACA2B,aAAa,IAGPC,EAAoBC,EAA0B,CACpD1B,QAAAA,EACAL,SAAAA,EACA0B,SAAAA,EACAxB,MAAAA,EACAW,mBAAAA,EACAgB,aAAa,EACbG,mBAAmB,EACnBpB,wBAAAA,EACAE,QAAAA,EACAa,aAAAA,EACAZ,UAAAA,EACAC,0BAAAA,IAZMc,gBAeR,OACEG,gBAACC,EAAO,CACNC,QAASX,EAAoBC,EAAiB,KAC9CW,SAAU7B,EACV8B,UAAW5B,GAEXwB,EAACK,cAAAC,GACCC,KAAK,QACLC,QAAQ,KAAI,cACCvB,GAAcwB,EAAUC,EAAuBC,iBAAkB3B,GAC9EA,GAAIA,EACJzB,UAAWqD,EAAGC,EAAOC,WAAYvD,GACjC2B,IAAKG,EACL0B,KAAK,0BACStB,GAEdO,EAAAK,cAACW,EACC,CAAAzD,UAAWsD,EAAOI,gBAClBC,OAAQzB,EACR1B,SAAUA,EACVJ,SAAUA,EACVE,UAAWA,EACXO,QAASyB,EACTpC,KAAMA,EACN0D,KAAK,QACLC,eAAe,GAEfpB,EAAAK,cAAA,MAAA,CAAK9C,UAAWsD,EAAOX,SAAUzB,KAK3C,EAEA4C,OAAOC,OAAOjE,EAAgB,CAC5BkE,cAAc,EACdC,aAAa,IAGf,IAAeC,EAAAA,EAAgBpE,EAAgB,CAC7CqE,MAAOV,EAAOU,MACdC,iBAAkBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuTitle.js","sources":["../../../../../src/components/Menu/MenuTitle/MenuTitle.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { FC } from \"react\";\nimport { camelCase } from \"lodash-es\";\nimport { getStyle } from \"../../../helpers/typesciptCssModulesHelper\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\nimport Text from \"../../Text/Text\";\nimport { MenuTitleCaptionPosition as MenuTitleCaptionPositionEnum } from \"./MenuTitleConstants\";\nimport { MenuTitleCaptionPosition } from \"./MenuTitle.type\";\nimport { VibeComponentProps, withStaticProps } from \"../../../types\";\nimport styles from \"./MenuTitle.module.scss\";\n\nexport interface MenuTitleProps extends VibeComponentProps {\n caption?: string;\n captionPosition?: MenuTitleCaptionPosition;\n}\n\nconst MenuTitle: FC<MenuTitleProps> & {\n positions?: typeof MenuTitleCaptionPositionEnum;\n captionPositions?: typeof MenuTitleCaptionPositionEnum;\n isMenuChild?: boolean;\n} = ({ className, caption = \"\", captionPosition = \"bottom\", id, \"data-testid\": dataTestId }: MenuTitleProps) => {\n const renderCaptionIfNeeded = () => {\n if (caption) {\n return (\n <label\n className={cx(styles.titleCaption, getStyle(styles, camelCase(\"title__caption--\" + captionPosition)))}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.MENU_TITLE_CAPTION, id)}\n >\n {caption}\n </label>\n );\n }\n };\n return (\n <Text\n color=\"secondary\"\n type=\"text2\"\n className={cx(styles.title, className)}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.MENU_TITLE, id)}\n >\n {renderCaptionIfNeeded()}\n </Text>\n );\n};\n\nObject.assign(MenuTitle, {\n isMenuChild: true\n});\n\nexport default withStaticProps(MenuTitle, {\n positions: MenuTitleCaptionPositionEnum,\n captionPositions: MenuTitleCaptionPositionEnum\n});\n"],"names":["MenuTitle","_ref","_ref$caption","caption","_ref$captionPosition","captionPosition","id","dataTestId","React","createElement","Text","color","type","className","cx","styles","title","getTestId","ComponentDefaultTestId","MENU_TITLE","titleCaption","getStyle","camelCase","MENU_TITLE_CAPTION","renderCaptionIfNeeded","Object","assign","isMenuChild","withStaticProps","positions","MenuTitleCaptionPositionEnum","captionPositions"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MenuTitle.js","sources":["../../../../../src/components/Menu/MenuTitle/MenuTitle.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { FC } from \"react\";\nimport { camelCase } from \"lodash-es\";\nimport { getStyle } from \"../../../helpers/typesciptCssModulesHelper\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\nimport Text from \"../../Text/Text\";\nimport { MenuTitleCaptionPosition as MenuTitleCaptionPositionEnum } from \"./MenuTitleConstants\";\nimport { MenuTitleCaptionPosition } from \"./MenuTitle.type\";\nimport { VibeComponentProps, withStaticProps } from \"../../../types\";\nimport styles from \"./MenuTitle.module.scss\";\n\nexport interface MenuTitleProps extends VibeComponentProps {\n /**\n * The caption text displayed alongside the title.\n */\n caption?: string;\n /**\n * The position of the caption relative to the title.\n */\n captionPosition?: MenuTitleCaptionPosition;\n}\n\nconst MenuTitle: FC<MenuTitleProps> & {\n positions?: typeof MenuTitleCaptionPositionEnum;\n captionPositions?: typeof MenuTitleCaptionPositionEnum;\n isMenuChild?: boolean;\n} = ({ className, caption = \"\", captionPosition = \"bottom\", id, \"data-testid\": dataTestId }: MenuTitleProps) => {\n const renderCaptionIfNeeded = () => {\n if (caption) {\n return (\n <label\n className={cx(styles.titleCaption, getStyle(styles, camelCase(\"title__caption--\" + captionPosition)))}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.MENU_TITLE_CAPTION, id)}\n >\n {caption}\n </label>\n );\n }\n };\n return (\n <Text\n color=\"secondary\"\n type=\"text2\"\n className={cx(styles.title, className)}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.MENU_TITLE, id)}\n >\n {renderCaptionIfNeeded()}\n </Text>\n );\n};\n\nObject.assign(MenuTitle, {\n isMenuChild: true\n});\n\nexport default withStaticProps(MenuTitle, {\n positions: MenuTitleCaptionPositionEnum,\n captionPositions: MenuTitleCaptionPositionEnum\n});\n"],"names":["MenuTitle","_ref","_ref$caption","caption","_ref$captionPosition","captionPosition","id","dataTestId","React","createElement","Text","color","type","className","cx","styles","title","getTestId","ComponentDefaultTestId","MENU_TITLE","titleCaption","getStyle","camelCase","MENU_TITLE_CAPTION","renderCaptionIfNeeded","Object","assign","isMenuChild","withStaticProps","positions","MenuTitleCaptionPositionEnum","captionPositions"],"mappings":"6eAsBA,IAAMA,EAIF,SAJWC,GAIgG,IAA/FC,EAAAD,EAAEE,QAAAA,OAAU,IAAHD,EAAG,GAAEA,EAAAE,EAAAH,EAAEI,gBAAAA,OAAkB,IAAHD,EAAG,SAAQA,EAAEE,EAAEL,EAAFK,GAAmBC,EAAUN,EAAzB,eAc9D,OACEO,EAACC,cAAAC,EACC,CAAAC,MAAM,YACNC,KAAK,QACLC,UAAWC,EAAGC,EAAOC,MAlBXf,EAATY,WAmBY,cAAAN,GAAcU,EAAUC,EAAuBC,WAAYb,IAlB9C,WAC5B,GAAIH,EACF,OACEK,EACEC,cAAA,QAAA,CAAAI,UAAWC,EAAGC,EAAOK,aAAcC,EAASN,EAAQO,EAAU,mBAAqBjB,KACnFC,GAAIA,EACS,cAAAC,GAAcU,EAAUC,EAAuBK,mBAAoBjB,IAE/EH,GAYJqB,GAGP,EAEAC,OAAOC,OAAO1B,EAAW,CACvB2B,aAAa,IAGf,IAAeC,EAAAA,EAAgB5B,EAAW,CACxC6B,UAAWC,EACXC,iBAAkBD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuButton.js","sources":["../../../../src/components/MenuButton/MenuButton.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useRef, useState } from \"react\";\nimport cx from \"classnames\";\nimport { camelCase } from \"lodash-es\";\nimport { isForwardRef } from \"react-is\";\nimport Dialog, { DialogEvent } from \"../Dialog/Dialog\";\nimport DialogContentContainer from \"../DialogContentContainer/DialogContentContainer\";\nimport Tooltip, { TooltipProps } from \"../Tooltip/Tooltip\";\nimport useIsomorphicLayoutEffect from \"../../hooks/ssr/useIsomorphicLayoutEffect\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport { BUTTON_ICON_SIZE, SMALL_BUTTON_ICON_SIZE } from \"../Button/ButtonConstants\";\nimport { ElementContent, VibeComponent, VibeComponentProps, withStaticProps } from \"../../types\";\nimport {\n MenuButtonComponentPosition as MenuButtonComponentPositionEnum,\n MenuButtonSize as MenuButtonSizeEnum\n} from \"./MenuButtonConstants\";\nimport {\n DialogPosition as DialogPositionEnum,\n HideShowEvent as DialogTriggerEventEnum,\n DialogSize as DialogSizeEnum\n} from \"../Dialog/DialogConstants\";\nimport { MenuButtonComponentPosition, MenuButtonSize } from \"./MenuButton.types\";\nimport { DialogOffset, DialogPosition, DialogSize, DialogTriggerEvent } from \"../Dialog/Dialog.types\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport { Menu } from \"@vibe/icons\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport { MenuChild } from \"../Menu/Menu/MenuConstants\";\nimport styles from \"./MenuButton.module.scss\";\nimport { TooltipPositions } from \"../Tooltip/Tooltip.types\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nconst MOVE_BY = { main: 8, secondary: 0 };\n\nexport interface MenuButtonProps extends VibeComponentProps {\n /**\n * Control the button's selected state\n */\n active?: boolean;\n /**\n *Class name to add to the button when the dialog is open\n */\n openDialogComponentClassName?: string;\n /**\n * Receives React Component\n */\n component?: (() => JSX.Element) | React.ElementType;\n size?: MenuButtonSize;\n open?: boolean;\n onClick?: (event: React.MouseEvent) => void;\n zIndex?: number;\n ariaLabel?: string;\n /*\n Class name to provide the element which wraps the popover/modal/dialog\n */\n dialogClassName?: string;\n /**\n * main - `dialogOffset.main` - main axis offset; `dialogOffset.secondary` secondary axis offset\n */\n dialogOffset?: DialogOffset;\n dialogPaddingSize?: DialogSize;\n dialogPosition?: DialogPosition;\n dialogShowTriggerIgnoreClass?: string;\n dialogHideTriggerIgnoreClass?: string;\n /**\n * the container selector in which to append the dialog\n * for examples: \"body\" , \".my-class\", \"#my-id\"\n */\n dialogContainerSelector?: string;\n /**\n * Dialog Alignment\n */\n startingEdge?: string;\n /*\n Callback function to be called when the menu is shown\n */\n onMenuShow?: () => void;\n /*\n Callback function to be called when the menu is hidden\n */\n onMenuHide?: () => void;\n /**\n * Text to be displayed after the icon\n */\n text?: string;\n disabled?: boolean;\n tooltipContent?: string;\n /**\n Remove \"Tab\" key from the hide trigger\n */\n removeTabCloseTrigger?: boolean;\n /**\n is an array with the content of types:\n CLICK, CLICK_OUTSIDE, ESCAPE_KEY, TAB_KEY, MOUSE_ENTER, MOUSE_LEAVE,\n ENTER, MOUSE_DOWN, FOCUS, BLUR, CONTENT_CLICK\n */\n tooltipTriggers?: DialogTriggerEvent | DialogTriggerEvent[];\n /**\n * the disabled/tooltip position of the menu button - one of the MenuButton.dialogPositions\n */\n tooltipPosition?: TooltipPositions;\n /**\n * Tooltip Element Wrapper ClassName\n */\n tooltipReferenceClassName?: string;\n tooltipProps?: Partial<TooltipProps>;\n /**\n * When the MenuButton is hidden hide the dialog and tooltip as well\n */\n hideWhenReferenceHidden?: boolean;\n children?: ElementContent;\n /**\n * Specifies whether to render the component before or after the text\n */\n componentPosition?: MenuButtonComponentPosition;\n /**\n * Element to be used as the trigger element for the Menu - default is button\n */\n triggerElement?: React.ElementType;\n /**\n * Close the menu when an item is clicked\n */\n closeMenuOnItemClick?: boolean;\n /**\n * Whether tooltip should appear only when the trigger element is hovered and not the menu dialog\n */\n showTooltipOnlyOnTriggerElement?: boolean;\n closeDialogOnContentClick?: boolean;\n}\n\nconst MenuButton: VibeComponent<MenuButtonProps> & {\n sizes?: typeof MenuButtonSizeEnum;\n paddingSizes?: typeof DialogContentContainer.sizes;\n dialogPositions?: typeof DialogPositionEnum;\n hideTriggers?: typeof Dialog.hideShowTriggers;\n componentPositions?: typeof MenuButtonComponentPositionEnum;\n} = forwardRef(\n (\n {\n id,\n className,\n openDialogComponentClassName,\n children,\n component = Menu,\n componentPosition = \"start\",\n size = \"small\",\n open = false,\n onClick = NOOP,\n zIndex = null,\n ariaLabel = \"Menu\",\n closeMenuOnItemClick,\n dialogOffset = MOVE_BY,\n dialogPosition = Dialog.positions.BOTTOM_START,\n dialogClassName,\n dialogPaddingSize = DialogContentContainer.sizes.SMALL,\n dialogShowTriggerIgnoreClass,\n dialogHideTriggerIgnoreClass,\n onMenuHide = NOOP,\n onMenuShow = NOOP,\n disabled = false,\n text,\n tooltipContent,\n tooltipProps,\n tooltipTriggers = [MenuButton.hideTriggers.MOUSE_LEAVE],\n tooltipPosition = \"right\",\n startingEdge = \"bottom\",\n removeTabCloseTrigger = false,\n tooltipReferenceClassName,\n hideWhenReferenceHidden = true,\n dialogContainerSelector,\n active,\n triggerElement: TriggerElement = \"button\",\n showTooltipOnlyOnTriggerElement,\n \"data-testid\": dataTestId,\n closeDialogOnContentClick = false\n }: MenuButtonProps,\n ref\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n const [isOpen, setIsOpen] = useState(open);\n const isActive = active ?? isOpen;\n\n const handleMenuClose = useCallback(\n (focusOnMenuButtonAfterClose: boolean) => {\n onMenuHide();\n setIsOpen(false);\n const button = componentRef.current;\n if (!button || !focusOnMenuButtonAfterClose) {\n return;\n }\n window.requestAnimationFrame(() => {\n button.focus();\n });\n },\n [onMenuHide]\n );\n\n const onMenuDidClose = useCallback(\n (event: React.KeyboardEvent) => {\n // TODO: check the functionality of the isEscapeKey since the event is not an actual KeyboardEVent but an object with propagate property only\n const isEscapeKey = event?.key === \"Escape\";\n if (isEscapeKey || closeMenuOnItemClick) {\n // @ts-ignore\n if (event.propagate) {\n handleMenuClose(isEscapeKey);\n }\n }\n },\n [closeMenuOnItemClick, handleMenuClose]\n );\n\n const onDialogDidHide = useCallback(\n (event: DialogEvent, hideEvent: string) => {\n handleMenuClose(hideEvent === Dialog.hideShowTriggers.ESCAPE_KEY);\n },\n [handleMenuClose]\n );\n\n const onDialogDidShow = useCallback(() => {\n setIsOpen(true);\n onMenuShow();\n }, [setIsOpen, onMenuShow]);\n\n const [clonedChildren, hideTrigger] = useMemo(() => {\n const triggers = new Set([\n Dialog.hideShowTriggers.CLICK_OUTSIDE,\n Dialog.hideShowTriggers.TAB_KEY,\n Dialog.hideShowTriggers.ESCAPE_KEY\n ]);\n\n if (closeDialogOnContentClick) {\n triggers.add(Dialog.hideShowTriggers.CONTENT_CLICK);\n triggers.add(Dialog.hideShowTriggers.ENTER);\n }\n\n if (removeTabCloseTrigger) {\n triggers.delete(Dialog.hideShowTriggers.TAB_KEY);\n }\n const childrenArr = React.Children.toArray(children) as MenuChild[];\n const cloned = childrenArr.map(child => {\n if (!React.isValidElement(child)) return null;\n\n const newProps: { focusOnMount?: boolean; onClose?: (event: React.KeyboardEvent) => void } = {};\n if (child.type && child.type.supportFocusOnMount) {\n newProps.focusOnMount = true;\n triggers.delete(Dialog.hideShowTriggers.ESCAPE_KEY);\n }\n\n if (child.type && child.type.isMenu) {\n newProps.onClose = onMenuDidClose;\n }\n\n return React.cloneElement(child, newProps);\n });\n return [cloned, Array.from(triggers)];\n }, [children, onMenuDidClose, closeDialogOnContentClick, removeTabCloseTrigger]);\n\n const content = useMemo(() => {\n if (clonedChildren.length === 0) return null;\n return (\n <DialogContentContainer size={dialogPaddingSize} type={DialogContentContainer.types.POPOVER}>\n {clonedChildren}\n </DialogContentContainer>\n );\n }, [clonedChildren, dialogPaddingSize]);\n\n const computedDialogOffset = useMemo(\n () => ({\n ...MOVE_BY,\n ...dialogOffset\n }),\n [dialogOffset]\n );\n\n const onMouseUp = (event: React.MouseEvent<HTMLElement>) => {\n if (disabled) {\n event.currentTarget.blur();\n return;\n }\n onClick(event);\n };\n\n const Icon = component;\n const iconSize = useMemo(() => {\n switch (size) {\n case \"xxs\":\n case \"xs\":\n return SMALL_BUTTON_ICON_SIZE;\n case \"small\":\n case \"medium\":\n case \"large\":\n return BUTTON_ICON_SIZE;\n default:\n return 24;\n }\n }, [size]);\n const icon = Icon ? <Icon size={iconSize.toString()} role=\"img\" aria-hidden=\"true\" /> : null;\n\n useIsomorphicLayoutEffect(() => {\n setIsOpen(open);\n }, [open, setIsOpen]);\n\n // Trigger element props, which are only relevant for \"button\" element, but might be needed for other elements e.g. Button\n const triggerElementProps =\n TriggerElement === \"button\"\n ? {\n ref: mergedRef\n }\n : {\n active: isActive,\n disabled: disabled,\n ref: isForwardRef(TriggerElement) ? mergedRef : undefined\n };\n\n const triggerElementNode = (\n <TriggerElement\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.MENU_BUTTON, id)}\n data-vibe={ComponentVibeId.MENU_BUTTON}\n type=\"button\"\n className={cx(styles.wrapper, className, getStyle(styles, camelCase(`size-${size}`)), {\n [styles.active]: isActive,\n [getStyle(styles, openDialogComponentClassName)]: isOpen && openDialogComponentClassName,\n [styles.disabled]: disabled,\n [styles.text]: text\n })}\n aria-haspopup=\"true\"\n aria-expanded={isOpen}\n aria-label={!text && ariaLabel}\n onMouseUp={onMouseUp}\n aria-disabled={disabled}\n {...triggerElementProps}\n >\n {componentPosition === \"start\" && icon}\n {text && <span className={styles.innerText}>{text}</span>}\n {componentPosition === \"end\" && icon}\n </TriggerElement>\n );\n\n const dialogNode = (dialogChildren: React.ReactElement) => (\n <Dialog\n wrapperClassName={dialogClassName}\n position={dialogPosition}\n containerSelector={dialogContainerSelector}\n startingEdge={startingEdge}\n animationType=\"expand\"\n content={content}\n moveBy={computedDialogOffset}\n showTrigger={disabled ? [] : [\"click\", \"enter\"]}\n hideTrigger={hideTrigger}\n showTriggerIgnoreClass={dialogShowTriggerIgnoreClass}\n hideTriggerIgnoreClass={dialogHideTriggerIgnoreClass}\n useDerivedStateFromProps={true}\n onDialogDidShow={onDialogDidShow}\n onDialogDidHide={onDialogDidHide}\n zIndex={zIndex}\n isOpen={isOpen}\n hideWhenReferenceHidden={hideWhenReferenceHidden}\n >\n {dialogChildren}\n </Dialog>\n );\n\n const tooltipNode = (tooltipChildren: React.ReactElement) => (\n <Tooltip\n content={tooltipContent}\n position={tooltipPosition}\n showTrigger=\"mouseenter\"\n hideTrigger={tooltipTriggers}\n referenceWrapperClassName={tooltipReferenceClassName}\n hideWhenReferenceHidden={hideWhenReferenceHidden}\n {...tooltipProps}\n >\n {tooltipChildren}\n </Tooltip>\n );\n\n if (showTooltipOnlyOnTriggerElement) {\n return dialogNode(tooltipNode(triggerElementNode));\n }\n return tooltipNode(dialogNode(triggerElementNode));\n }\n);\n\nexport default withStaticProps(MenuButton, {\n sizes: MenuButtonSizeEnum,\n paddingSizes: DialogSizeEnum,\n dialogPositions: DialogPositionEnum,\n hideTriggers: DialogTriggerEventEnum,\n componentPositions: MenuButtonComponentPositionEnum\n});\n"],"names":["MOVE_BY","main","secondary","MenuButton","forwardRef","_ref","ref","id","className","openDialogComponentClassName","children","_ref$component","component","Menu","_ref$componentPositio","componentPosition","_ref$size","size","_ref$open","open","_ref$onClick","onClick","NOOP","_ref$zIndex","zIndex","_ref$ariaLabel","ariaLabel","closeMenuOnItemClick","_ref$dialogOffset","dialogOffset","_ref$dialogPosition","dialogPosition","Dialog","positions","BOTTOM_START","dialogClassName","_ref$dialogPaddingSiz","dialogPaddingSize","DialogContentContainer","sizes","SMALL","dialogShowTriggerIgnoreClass","dialogHideTriggerIgnoreClass","_ref$onMenuHide","onMenuHide","_ref$onMenuShow","onMenuShow","_ref$disabled","disabled","text","tooltipContent","tooltipProps","_ref$tooltipTriggers","tooltipTriggers","hideTriggers","MOUSE_LEAVE","_ref$tooltipPosition","tooltipPosition","_ref$startingEdge","startingEdge","_ref$removeTabCloseTr","removeTabCloseTrigger","tooltipReferenceClassName","_ref$hideWhenReferenc","hideWhenReferenceHidden","dialogContainerSelector","active","_ref$triggerElement","triggerElement","TriggerElement","showTooltipOnlyOnTriggerElement","dataTestId","_ref$closeDialogOnCon","closeDialogOnContentClick","componentRef","useRef","mergedRef","useMergeRef","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","isActive","handleMenuClose","useCallback","focusOnMenuButtonAfterClose","button","current","window","requestAnimationFrame","focus","onMenuDidClose","event","isEscapeKey","key","propagate","onDialogDidHide","hideEvent","hideShowTriggers","ESCAPE_KEY","onDialogDidShow","_useMemo","useMemo","triggers","Set","CLICK_OUTSIDE","TAB_KEY","add","CONTENT_CLICK","ENTER","delete","React","Children","toArray","map","child","isValidElement","newProps","type","supportFocusOnMount","focusOnMount","isMenu","onClose","cloneElement","Array","from","_useMemo2","clonedChildren","hideTrigger","content","length","createElement","types","POPOVER","computedDialogOffset","Object","assign","Icon","iconSize","SMALL_BUTTON_ICON_SIZE","BUTTON_ICON_SIZE","icon","role","useIsomorphicLayoutEffect","triggerElementProps","isForwardRef","undefined","triggerElementNode","getTestId","ComponentDefaultTestId","MENU_BUTTON","ComponentVibeId","cx","styles","wrapper","getStyle","camelCase","concat","_defineProperty","onMouseUp","currentTarget","blur","innerText","dialogNode","dialogChildren","wrapperClassName","position","containerSelector","animationType","moveBy","showTrigger","showTriggerIgnoreClass","hideTriggerIgnoreClass","useDerivedStateFromProps","tooltipNode","tooltipChildren","Tooltip","referenceWrapperClassName","withStaticProps","MenuButtonSizeEnum","paddingSizes","DialogSizeEnum","dialogPositions","DialogPositionEnum","DialogTriggerEventEnum","componentPositions","MenuButtonComponentPositionEnum"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MenuButton.js","sources":["../../../../src/components/MenuButton/MenuButton.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useRef, useState } from \"react\";\nimport cx from \"classnames\";\nimport { camelCase } from \"lodash-es\";\nimport { isForwardRef } from \"react-is\";\nimport Dialog, { DialogEvent } from \"../Dialog/Dialog\";\nimport DialogContentContainer from \"../DialogContentContainer/DialogContentContainer\";\nimport Tooltip, { TooltipProps } from \"../Tooltip/Tooltip\";\nimport useIsomorphicLayoutEffect from \"../../hooks/ssr/useIsomorphicLayoutEffect\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport { BUTTON_ICON_SIZE, SMALL_BUTTON_ICON_SIZE } from \"../Button/ButtonConstants\";\nimport { ElementContent, VibeComponent, VibeComponentProps, withStaticProps } from \"../../types\";\nimport {\n MenuButtonComponentPosition as MenuButtonComponentPositionEnum,\n MenuButtonSize as MenuButtonSizeEnum\n} from \"./MenuButtonConstants\";\nimport {\n DialogPosition as DialogPositionEnum,\n HideShowEvent as DialogTriggerEventEnum,\n DialogSize as DialogSizeEnum\n} from \"../Dialog/DialogConstants\";\nimport { MenuButtonComponentPosition, MenuButtonSize } from \"./MenuButton.types\";\nimport { DialogOffset, DialogPosition, DialogSize, DialogTriggerEvent } from \"../Dialog/Dialog.types\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport { Menu } from \"@vibe/icons\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport { MenuChild } from \"../Menu/Menu/MenuConstants\";\nimport styles from \"./MenuButton.module.scss\";\nimport { TooltipPositions } from \"../Tooltip/Tooltip.types\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nconst MOVE_BY = { main: 8, secondary: 0 };\n\nexport interface MenuButtonProps extends VibeComponentProps {\n /**\n * If true, the button is in an active state.\n */\n active?: boolean;\n /**\n * Class name applied to the button when the dialog is open.\n */\n openDialogComponentClassName?: string;\n /**\n * The component used as the button icon.\n */\n component?: (() => JSX.Element) | React.ElementType;\n /**\n * The size of the button.\n */\n size?: MenuButtonSize;\n /**\n * If true, the menu is open.\n */\n open?: boolean;\n /**\n * Callback fired when the button is clicked.\n */\n onClick?: (event: React.MouseEvent) => void;\n /**\n * The z-index of the menu.\n */\n zIndex?: number;\n /**\n * The label of the button for accessibility.\n */\n ariaLabel?: string;\n /**\n * Class name applied to the menu dialog wrapper.\n */\n dialogClassName?: string;\n /**\n * The offset of the menu relative to the button.\n */\n dialogOffset?: DialogOffset;\n /**\n * The padding size inside the menu dialog.\n */\n dialogPaddingSize?: DialogSize;\n /**\n * The position of the menu dialog relative to the button.\n */\n dialogPosition?: DialogPosition;\n /**\n * Class name ignored for dialog show trigger.\n */\n dialogShowTriggerIgnoreClass?: string;\n /**\n * Class name ignored for dialog hide trigger.\n */\n dialogHideTriggerIgnoreClass?: string;\n /**\n * The container selector in which to append the dialog.\n */\n dialogContainerSelector?: string;\n /**\n * The starting edge alignment of the menu.\n */\n startingEdge?: string;\n /**\n * Callback fired when the menu is shown.\n */\n onMenuShow?: () => void;\n /**\n * Callback fired when the menu is hidden.\n */\n onMenuHide?: () => void;\n /**\n * The text displayed inside the button.\n */\n text?: string;\n /**\n * If true, the button is disabled.\n */\n disabled?: boolean;\n /**\n * The tooltip content displayed when hovering over the button.\n */\n tooltipContent?: string;\n /**\n * If true, removes the tab key from the hide trigger.\n */\n removeTabCloseTrigger?: boolean;\n /**\n * The triggers that cause the tooltip to show or hide.\n */\n tooltipTriggers?: DialogTriggerEvent | DialogTriggerEvent[];\n /**\n * The position of the tooltip.\n */\n tooltipPosition?: TooltipPositions;\n /**\n * Class name applied to the tooltip reference wrapper.\n */\n tooltipReferenceClassName?: string;\n /**\n * Additional props for customizing the tooltip.\n */\n tooltipProps?: Partial<TooltipProps>;\n /**\n * If true, hides the menu and tooltip when the button is not visible.\n */\n hideWhenReferenceHidden?: boolean;\n /**\n * The content inside the menu button.\n */\n children?: ElementContent;\n /**\n * The position of the component relative to the text.\n */\n componentPosition?: MenuButtonComponentPosition;\n /**\n * The element used as the trigger for the menu.\n */\n triggerElement?: React.ElementType;\n /**\n * If true, closes the menu when a menu item is clicked.\n */\n closeMenuOnItemClick?: boolean;\n /**\n * If true, the tooltip appears only when hovering over the trigger element, not the menu dialog.\n */\n showTooltipOnlyOnTriggerElement?: boolean;\n /**\n * If true, closes the menu when clicking inside the dialog.\n */\n closeDialogOnContentClick?: boolean;\n}\n\nconst MenuButton: VibeComponent<MenuButtonProps> & {\n sizes?: typeof MenuButtonSizeEnum;\n paddingSizes?: typeof DialogContentContainer.sizes;\n dialogPositions?: typeof DialogPositionEnum;\n hideTriggers?: typeof Dialog.hideShowTriggers;\n componentPositions?: typeof MenuButtonComponentPositionEnum;\n} = forwardRef(\n (\n {\n id,\n className,\n openDialogComponentClassName,\n children,\n component = Menu,\n componentPosition = \"start\",\n size = \"small\",\n open = false,\n onClick = NOOP,\n zIndex = null,\n ariaLabel = \"Menu\",\n closeMenuOnItemClick,\n dialogOffset = MOVE_BY,\n dialogPosition = Dialog.positions.BOTTOM_START,\n dialogClassName,\n dialogPaddingSize = DialogContentContainer.sizes.SMALL,\n dialogShowTriggerIgnoreClass,\n dialogHideTriggerIgnoreClass,\n onMenuHide = NOOP,\n onMenuShow = NOOP,\n disabled = false,\n text,\n tooltipContent,\n tooltipProps,\n tooltipTriggers = [MenuButton.hideTriggers.MOUSE_LEAVE],\n tooltipPosition = \"right\",\n startingEdge = \"bottom\",\n removeTabCloseTrigger = false,\n tooltipReferenceClassName,\n hideWhenReferenceHidden = true,\n dialogContainerSelector,\n active,\n triggerElement: TriggerElement = \"button\",\n showTooltipOnlyOnTriggerElement,\n \"data-testid\": dataTestId,\n closeDialogOnContentClick = false\n }: MenuButtonProps,\n ref\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n const [isOpen, setIsOpen] = useState(open);\n const isActive = active ?? isOpen;\n\n const handleMenuClose = useCallback(\n (focusOnMenuButtonAfterClose: boolean) => {\n onMenuHide();\n setIsOpen(false);\n const button = componentRef.current;\n if (!button || !focusOnMenuButtonAfterClose) {\n return;\n }\n window.requestAnimationFrame(() => {\n button.focus();\n });\n },\n [onMenuHide]\n );\n\n const onMenuDidClose = useCallback(\n (event: React.KeyboardEvent) => {\n // TODO: check the functionality of the isEscapeKey since the event is not an actual KeyboardEVent but an object with propagate property only\n const isEscapeKey = event?.key === \"Escape\";\n if (isEscapeKey || closeMenuOnItemClick) {\n // @ts-ignore\n if (event.propagate) {\n handleMenuClose(isEscapeKey);\n }\n }\n },\n [closeMenuOnItemClick, handleMenuClose]\n );\n\n const onDialogDidHide = useCallback(\n (event: DialogEvent, hideEvent: string) => {\n handleMenuClose(hideEvent === Dialog.hideShowTriggers.ESCAPE_KEY);\n },\n [handleMenuClose]\n );\n\n const onDialogDidShow = useCallback(() => {\n setIsOpen(true);\n onMenuShow();\n }, [setIsOpen, onMenuShow]);\n\n const [clonedChildren, hideTrigger] = useMemo(() => {\n const triggers = new Set([\n Dialog.hideShowTriggers.CLICK_OUTSIDE,\n Dialog.hideShowTriggers.TAB_KEY,\n Dialog.hideShowTriggers.ESCAPE_KEY\n ]);\n\n if (closeDialogOnContentClick) {\n triggers.add(Dialog.hideShowTriggers.CONTENT_CLICK);\n triggers.add(Dialog.hideShowTriggers.ENTER);\n }\n\n if (removeTabCloseTrigger) {\n triggers.delete(Dialog.hideShowTriggers.TAB_KEY);\n }\n const childrenArr = React.Children.toArray(children) as MenuChild[];\n const cloned = childrenArr.map(child => {\n if (!React.isValidElement(child)) return null;\n\n const newProps: { focusOnMount?: boolean; onClose?: (event: React.KeyboardEvent) => void } = {};\n if (child.type && child.type.supportFocusOnMount) {\n newProps.focusOnMount = true;\n triggers.delete(Dialog.hideShowTriggers.ESCAPE_KEY);\n }\n\n if (child.type && child.type.isMenu) {\n newProps.onClose = onMenuDidClose;\n }\n\n return React.cloneElement(child, newProps);\n });\n return [cloned, Array.from(triggers)];\n }, [children, onMenuDidClose, closeDialogOnContentClick, removeTabCloseTrigger]);\n\n const content = useMemo(() => {\n if (clonedChildren.length === 0) return null;\n return (\n <DialogContentContainer size={dialogPaddingSize} type={DialogContentContainer.types.POPOVER}>\n {clonedChildren}\n </DialogContentContainer>\n );\n }, [clonedChildren, dialogPaddingSize]);\n\n const computedDialogOffset = useMemo(\n () => ({\n ...MOVE_BY,\n ...dialogOffset\n }),\n [dialogOffset]\n );\n\n const onMouseUp = (event: React.MouseEvent<HTMLElement>) => {\n if (disabled) {\n event.currentTarget.blur();\n return;\n }\n onClick(event);\n };\n\n const Icon = component;\n const iconSize = useMemo(() => {\n switch (size) {\n case \"xxs\":\n case \"xs\":\n return SMALL_BUTTON_ICON_SIZE;\n case \"small\":\n case \"medium\":\n case \"large\":\n return BUTTON_ICON_SIZE;\n default:\n return 24;\n }\n }, [size]);\n const icon = Icon ? <Icon size={iconSize.toString()} role=\"img\" aria-hidden=\"true\" /> : null;\n\n useIsomorphicLayoutEffect(() => {\n setIsOpen(open);\n }, [open, setIsOpen]);\n\n // Trigger element props, which are only relevant for \"button\" element, but might be needed for other elements e.g. Button\n const triggerElementProps =\n TriggerElement === \"button\"\n ? {\n ref: mergedRef\n }\n : {\n active: isActive,\n disabled: disabled,\n ref: isForwardRef(TriggerElement) ? mergedRef : undefined\n };\n\n const triggerElementNode = (\n <TriggerElement\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.MENU_BUTTON, id)}\n data-vibe={ComponentVibeId.MENU_BUTTON}\n type=\"button\"\n className={cx(styles.wrapper, className, getStyle(styles, camelCase(`size-${size}`)), {\n [styles.active]: isActive,\n [getStyle(styles, openDialogComponentClassName)]: isOpen && openDialogComponentClassName,\n [styles.disabled]: disabled,\n [styles.text]: text\n })}\n aria-haspopup=\"true\"\n aria-expanded={isOpen}\n aria-label={!text && ariaLabel}\n onMouseUp={onMouseUp}\n aria-disabled={disabled}\n {...triggerElementProps}\n >\n {componentPosition === \"start\" && icon}\n {text && <span className={styles.innerText}>{text}</span>}\n {componentPosition === \"end\" && icon}\n </TriggerElement>\n );\n\n const dialogNode = (dialogChildren: React.ReactElement) => (\n <Dialog\n wrapperClassName={dialogClassName}\n position={dialogPosition}\n containerSelector={dialogContainerSelector}\n startingEdge={startingEdge}\n animationType=\"expand\"\n content={content}\n moveBy={computedDialogOffset}\n showTrigger={disabled ? [] : [\"click\", \"enter\"]}\n hideTrigger={hideTrigger}\n showTriggerIgnoreClass={dialogShowTriggerIgnoreClass}\n hideTriggerIgnoreClass={dialogHideTriggerIgnoreClass}\n useDerivedStateFromProps={true}\n onDialogDidShow={onDialogDidShow}\n onDialogDidHide={onDialogDidHide}\n zIndex={zIndex}\n isOpen={isOpen}\n hideWhenReferenceHidden={hideWhenReferenceHidden}\n >\n {dialogChildren}\n </Dialog>\n );\n\n const tooltipNode = (tooltipChildren: React.ReactElement) => (\n <Tooltip\n content={tooltipContent}\n position={tooltipPosition}\n showTrigger=\"mouseenter\"\n hideTrigger={tooltipTriggers}\n referenceWrapperClassName={tooltipReferenceClassName}\n hideWhenReferenceHidden={hideWhenReferenceHidden}\n {...tooltipProps}\n >\n {tooltipChildren}\n </Tooltip>\n );\n\n if (showTooltipOnlyOnTriggerElement) {\n return dialogNode(tooltipNode(triggerElementNode));\n }\n return tooltipNode(dialogNode(triggerElementNode));\n }\n);\n\nexport default withStaticProps(MenuButton, {\n sizes: MenuButtonSizeEnum,\n paddingSizes: DialogSizeEnum,\n dialogPositions: DialogPositionEnum,\n hideTriggers: DialogTriggerEventEnum,\n componentPositions: MenuButtonComponentPositionEnum\n});\n"],"names":["MOVE_BY","main","secondary","MenuButton","forwardRef","_ref","ref","id","className","openDialogComponentClassName","children","_ref$component","component","Menu","_ref$componentPositio","componentPosition","_ref$size","size","_ref$open","open","_ref$onClick","onClick","NOOP","_ref$zIndex","zIndex","_ref$ariaLabel","ariaLabel","closeMenuOnItemClick","_ref$dialogOffset","dialogOffset","_ref$dialogPosition","dialogPosition","Dialog","positions","BOTTOM_START","dialogClassName","_ref$dialogPaddingSiz","dialogPaddingSize","DialogContentContainer","sizes","SMALL","dialogShowTriggerIgnoreClass","dialogHideTriggerIgnoreClass","_ref$onMenuHide","onMenuHide","_ref$onMenuShow","onMenuShow","_ref$disabled","disabled","text","tooltipContent","tooltipProps","_ref$tooltipTriggers","tooltipTriggers","hideTriggers","MOUSE_LEAVE","_ref$tooltipPosition","tooltipPosition","_ref$startingEdge","startingEdge","_ref$removeTabCloseTr","removeTabCloseTrigger","tooltipReferenceClassName","_ref$hideWhenReferenc","hideWhenReferenceHidden","dialogContainerSelector","active","_ref$triggerElement","triggerElement","TriggerElement","showTooltipOnlyOnTriggerElement","dataTestId","_ref$closeDialogOnCon","closeDialogOnContentClick","componentRef","useRef","mergedRef","useMergeRef","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","isActive","handleMenuClose","useCallback","focusOnMenuButtonAfterClose","button","current","window","requestAnimationFrame","focus","onMenuDidClose","event","isEscapeKey","key","propagate","onDialogDidHide","hideEvent","hideShowTriggers","ESCAPE_KEY","onDialogDidShow","_useMemo","useMemo","triggers","Set","CLICK_OUTSIDE","TAB_KEY","add","CONTENT_CLICK","ENTER","delete","React","Children","toArray","map","child","isValidElement","newProps","type","supportFocusOnMount","focusOnMount","isMenu","onClose","cloneElement","Array","from","_useMemo2","clonedChildren","hideTrigger","content","length","createElement","types","POPOVER","computedDialogOffset","Object","assign","Icon","iconSize","SMALL_BUTTON_ICON_SIZE","BUTTON_ICON_SIZE","icon","role","useIsomorphicLayoutEffect","triggerElementProps","isForwardRef","undefined","triggerElementNode","getTestId","ComponentDefaultTestId","MENU_BUTTON","ComponentVibeId","cx","styles","wrapper","getStyle","camelCase","concat","_defineProperty","onMouseUp","currentTarget","blur","innerText","dialogNode","dialogChildren","wrapperClassName","position","containerSelector","animationType","moveBy","showTrigger","showTriggerIgnoreClass","hideTriggerIgnoreClass","useDerivedStateFromProps","tooltipNode","tooltipChildren","Tooltip","referenceWrapperClassName","withStaticProps","MenuButtonSizeEnum","paddingSizes","DialogSizeEnum","dialogPositions","DialogPositionEnum","DialogTriggerEventEnum","componentPositions","MenuButtonComponentPositionEnum"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{slicedToArray as
|
|
1
|
+
import{slicedToArray as t}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as n,useEffect as e}from"react";var o=function(o){var c=n(document.body),a=t(c,2),u=a[0],i=a[1];return e((function(){var t=function(){if(!o)return document.body;if("string"==typeof o){var t=document.querySelector(o);return t||(r('Target with selector "'.concat(o,'" not found. Falling back to document.body.')),document.body)}return o instanceof Element||o instanceof DocumentFragment?o:o.current instanceof Element?o.current:(r("Invalid target provided. Falling back to document.body."),document.body)}();i(t)}),[o]),u};function r(t){console.warn(t)}export{o as default};
|
|
2
2
|
//# sourceMappingURL=usePortalTarget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePortalTarget.js","sources":["../../../../../../src/components/Modal/hooks/usePortalTarget/usePortalTarget.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { PortalTarget } from \"./usePortalTarget.types\";\n\nconst usePortalTarget = (portalTarget?: PortalTarget): Element | DocumentFragment => {\n const [resolvedTarget, setResolvedTarget] = useState<Element | DocumentFragment>(document.body);\n\n useEffect(() => {\n const resolveTarget = (): Element | DocumentFragment => {\n if (!portalTarget) {\n return document.body;\n }\n\n if (typeof portalTarget === \"string\") {\n const target = document.querySelector(portalTarget);\n if (!target) {\n warn(`Target with selector \"${portalTarget}\" not found. Falling back to document.body.`);\n return document.body;\n }\n return target;\n }\n\n if (portalTarget instanceof Element || portalTarget instanceof DocumentFragment) {\n return portalTarget;\n }\n\n if (portalTarget.current instanceof Element) {\n return portalTarget.current;\n }\n\n warn(\"Invalid target provided. Falling back to document.body.\");\n return document.body;\n };\n\n const target = resolveTarget();\n setResolvedTarget(target);\n }, [portalTarget]);\n\n return resolvedTarget;\n};\n\nexport default usePortalTarget;\n\nfunction warn(message: string): void {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(message);\n }\n}\n"],"names":["usePortalTarget","portalTarget","_useState","useState","document","body","_useState2","_slicedToArray","resolvedTarget","setResolvedTarget","useEffect","target","querySelector","warn","concat","Element","DocumentFragment","current","resolveTarget","message","
|
|
1
|
+
{"version":3,"file":"usePortalTarget.js","sources":["../../../../../../src/components/Modal/hooks/usePortalTarget/usePortalTarget.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { PortalTarget } from \"./usePortalTarget.types\";\n\nconst usePortalTarget = (portalTarget?: PortalTarget): Element | DocumentFragment => {\n const [resolvedTarget, setResolvedTarget] = useState<Element | DocumentFragment>(document.body);\n\n useEffect(() => {\n const resolveTarget = (): Element | DocumentFragment => {\n if (!portalTarget) {\n return document.body;\n }\n\n if (typeof portalTarget === \"string\") {\n const target = document.querySelector(portalTarget);\n if (!target) {\n warn(`Target with selector \"${portalTarget}\" not found. Falling back to document.body.`);\n return document.body;\n }\n return target;\n }\n\n if (portalTarget instanceof Element || portalTarget instanceof DocumentFragment) {\n return portalTarget;\n }\n\n if (portalTarget.current instanceof Element) {\n return portalTarget.current;\n }\n\n warn(\"Invalid target provided. Falling back to document.body.\");\n return document.body;\n };\n\n const target = resolveTarget();\n setResolvedTarget(target);\n }, [portalTarget]);\n\n return resolvedTarget;\n};\n\nexport default usePortalTarget;\n\nfunction warn(message: string): void {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(message);\n }\n}\n"],"names":["usePortalTarget","portalTarget","_useState","useState","document","body","_useState2","_slicedToArray","resolvedTarget","setResolvedTarget","useEffect","target","querySelector","warn","concat","Element","DocumentFragment","current","resolveTarget","message","console"],"mappings":"qIAGA,IAAMA,EAAkB,SAACC,GACvB,IAAAC,EAA4CC,EAAqCC,SAASC,MAAKC,EAAAC,EAAAL,EAAA,GAAxFM,EAAcF,EAAA,GAAEG,EAAiBH,EAAA,GAiCxC,OA/BAI,GAAU,WACR,IA0BMC,EA1BgB,WACpB,IAAKV,EACH,OAAOG,SAASC,KAGlB,GAA4B,iBAAjBJ,EAA2B,CACpC,IAAMU,EAASP,SAASQ,cAAcX,GACtC,OAAKU,IACHE,EAAIC,yBAAAA,OAA0Bb,kDACvBG,SAASC,KAGnB,CAED,OAAIJ,aAAwBc,SAAWd,aAAwBe,iBACtDf,EAGLA,EAAagB,mBAAmBF,QAC3Bd,EAAagB,SAGtBJ,EAAK,2DACET,SAASC,MAGHa,GACfT,EAAkBE,EACpB,GAAG,CAACV,IAEGO,CACT,EAIA,SAASK,EAAKM,GAEVC,QAAQP,KAAKM,EAEjB"}
|