@vibe/core 4.5.13 → 4.5.15
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/base/dist/BaseInput/BaseInput.module.scss.js +1 -1
- package/dist/components/Table/Table/tableHelpers.d.ts +1 -1
- package/dist/components/a11y/dist/HiddenText/HiddenText.module.scss.js +1 -1
- package/dist/components/avatar/dist/Avatar/Avatar.module.scss.js +1 -1
- package/dist/components/avatar/dist/Avatar/AvatarBadge.module.scss.js +1 -1
- package/dist/components/avatar/dist/Avatar/AvatarContent.module.scss.js +1 -1
- package/dist/components/button/dist/Button/Button.module.scss.js +1 -1
- package/dist/components/button-group/dist/ButtonGroup/ButtonGroup.module.scss.js +1 -1
- package/dist/components/checkbox/dist/Checkbox/Checkbox.module.scss.js +1 -1
- package/dist/components/clickable/dist/Clickable/Clickable.module.scss.js +1 -1
- package/dist/components/color-picker/dist/ColorPicker/ColorPicker.module.scss.js +1 -1
- package/dist/components/color-picker/dist/ColorPicker/components/ColorPickerContent/ColorPickerClearButton.module.scss.js +1 -1
- package/dist/components/color-picker/dist/ColorPicker/components/ColorPickerContent/ColorPickerColorsGrid.module.scss.js +1 -1
- package/dist/components/color-picker/dist/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.module.scss.js +1 -1
- package/dist/components/counter/dist/Counter/Counter.module.scss.js +1 -1
- package/dist/components/dialog/dist/Dialog/Dialog.module.scss.js +1 -1
- package/dist/components/dialog/dist/Dialog/components/DialogContent/DialogContent.module.scss.js +1 -1
- package/dist/components/dialog/dist/DialogContentContainer/DialogContentContainer.module.scss.js +1 -1
- package/dist/components/divider/dist/Divider/Divider.module.scss.js +1 -1
- package/dist/components/editable/dist/EditableHeading/EditableHeading.module.scss.js +1 -1
- package/dist/components/editable/dist/EditableText/EditableText.module.scss.js +1 -1
- package/dist/components/editable/dist/EditableTypography/EditableTypography.module.scss.js +1 -1
- package/dist/components/expand-collapse/dist/ExpandCollapse/ExpandCollapse.module.scss.js +1 -1
- package/dist/components/formatted-number/dist/FormattedNumber/FormattedNumber.module.scss.js +1 -1
- package/dist/components/icon/dist/Icon/Icon.module.scss.js +1 -1
- package/dist/components/icon-button/dist/IconButton/IconButton.module.scss.js +1 -1
- package/dist/components/index.d.ts +4 -4
- package/dist/components/label/dist/Label/Label.module.scss.js +1 -1
- package/dist/components/label/dist/Label/LabelCelebrationAnimation.module.scss.js +1 -1
- package/dist/components/layout/dist/Box/Box.module.scss.js +1 -1
- package/dist/components/layout/dist/Flex/Flex.module.scss.js +1 -1
- package/dist/components/link/dist/Link/Link.module.scss.js +1 -1
- package/dist/components/loader/dist/Loader/Loader.module.scss.js +1 -1
- package/dist/components/progress-bars/dist/ProgressBars/PercentageLabel/PercentageLabel.module.scss.js +1 -1
- package/dist/components/progress-bars/dist/ProgressBars/ProgressBar/Bar/Bar.module.scss.js +1 -1
- package/dist/components/progress-bars/dist/ProgressBars/ProgressBar/ProgressBar.module.scss.js +1 -1
- package/dist/components/radio-button/dist/RadioButton/RadioButton.module.scss.js +1 -1
- package/dist/components/skeleton/dist/Skeleton/Skeleton.js +2 -0
- package/dist/components/skeleton/dist/Skeleton/Skeleton.js.map +1 -0
- package/dist/components/skeleton/dist/Skeleton/Skeleton.module.scss.js +2 -0
- package/dist/components/skeleton/dist/Skeleton/SkeletonConstants.js +2 -0
- package/dist/components/skeleton/dist/Skeleton/SkeletonConstants.js.map +1 -0
- package/dist/components/tabs/dist/Tab/Tab.js +2 -0
- package/dist/components/tabs/dist/Tab/Tab.js.map +1 -0
- package/dist/components/tabs/dist/Tab/Tab.module.scss.js +2 -0
- package/dist/components/tabs/dist/TabList/TabList.js +2 -0
- package/dist/components/tabs/dist/TabList/TabList.js.map +1 -0
- package/dist/components/tabs/dist/TabList/TabList.module.scss.js +2 -0
- package/dist/components/tabs/dist/TabPanel/TabPanel.js +2 -0
- package/dist/components/tabs/dist/TabPanel/TabPanel.js.map +1 -0
- package/dist/components/tabs/dist/TabPanel/TabPanel.module.scss.js +2 -0
- package/dist/components/tabs/dist/TabPanels/TabPanels.js +2 -0
- package/dist/components/tabs/dist/TabPanels/TabPanels.js.map +1 -0
- package/dist/components/tabs/dist/TabPanels/TabPanels.module.scss.js +2 -0
- package/dist/components/tabs/dist/TabsContext/TabsContext.js +2 -0
- package/dist/components/tabs/dist/TabsContext/TabsContext.js.map +1 -0
- package/dist/components/text-with-highlight/dist/TextWithHighlight/TextWithHighlight.js +2 -0
- package/dist/components/text-with-highlight/dist/TextWithHighlight/TextWithHighlight.js.map +1 -0
- package/dist/components/text-with-highlight/dist/TextWithHighlight/TextWithHighlight.module.scss.js +2 -0
- package/dist/components/theme-provider/dist/ThemeProvider/ThemeProvider.js +2 -0
- package/dist/components/theme-provider/dist/ThemeProvider/ThemeProvider.js.map +1 -0
- package/dist/components/theme-provider/dist/ThemeProvider/ThemeProviderConstants.js.map +1 -0
- package/dist/components/theme-provider/dist/ThemeProvider/ThemeProviderUtils.js +2 -0
- package/dist/components/theme-provider/dist/ThemeProvider/ThemeProviderUtils.js.map +1 -0
- package/dist/components/tooltip/dist/Tooltip/Tooltip.module.scss.js +1 -1
- package/dist/components/typography/dist/Heading/Heading.module.scss.js +1 -1
- package/dist/components/typography/dist/Text/Text.module.scss.js +1 -1
- package/dist/components/typography/dist/Typography/Typography.module.scss.js +1 -1
- package/dist/metadata/components.json +7 -12
- package/dist/metadata.json +7 -12
- package/dist/mocked_classnames/components/Table/Table/tableHelpers.d.ts +1 -1
- package/dist/mocked_classnames/components/index.d.ts +4 -4
- package/dist/mocked_classnames/src/components/Accordion/Accordion/Accordion.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/AlertBanner/AlertBanner.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/AlertBanner/AlertBannerButton/AlertBannerButton.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/AlertBanner/AlertBannerLink/AlertBannerLink.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/AlertBanner/AlertBannerText/AlertBannerText.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/AttentionBox/AttentionBox.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/AttentionBox/components/AttentionBoxCloseButton/AttentionBoxCloseButton.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/AttentionBox/components/AttentionBoxLeadingIcon/AttentionBoxLeadingIcon.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/AttentionBox/components/AttentionBoxLink/AttentionBoxLink.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/AttentionBox/layouts/AttentionBoxCompact/AttentionBoxCompact.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/AttentionBox/layouts/AttentionBoxDefault/AttentionBoxDefault.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroup.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounter.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContent.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Badge/Badge.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Badge/Indicator/Indicator.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/BaseItem/BaseItem.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/BaseList/BaseList.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbContent/BreadcrumbContent.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbItem.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/BreadcrumbsBar/BreadcrumbMenu/BreadcrumbsMenu.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/BreadcrumbsBar/BreadcrumbsBar.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Chips/Chips.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Combobox/Combobox.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Combobox/ComboboxHelpers/ComboboxHelpers.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Combobox/components/ComboboxCategory/ComboboxCategory.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Combobox/components/ComboboxItems/ComboboxItems.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Combobox/components/ComboboxOption/ComboboxOption.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Combobox/components/StickyCategoryHeader/StickyCategoryHeader.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/DatePicker/DatePicker.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/DatePicker/DatePickerHeader.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/DropdownBase/DropdownBase.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/DropdownBaseList/DropdownBaseList.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/DropdownBoxMode/DropdownBoxMode.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Menu/Menu.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/Trigger.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/EmptyState/EmptyState.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/FieldLabel/FieldLabel.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Info/components/InfoDialogContent/InfoDialogContent.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Info/components/InfoLink/InfoLink.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/InfoText/InfoText.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/List/List.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/List/VirtualizedListItems/VirtualizedListItems.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/ListItem/ListItem.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/ListItemAvatar/ListItemAvatar.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/ListItemIcon/ListItemIcon.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/ListTitle/ListTitle.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Menu/Menu/Menu.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Menu/MenuDivider/MenuDivider.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Menu/MenuItem/MenuItem.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Menu/MenuItem/components/BaseMenuItem/BaseMenuItem.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Menu/MenuItem/components/MenuItemIcon/MenuItemIcon.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Menu/MenuItem/components/MenuItemSubMenuIcon/MenuItemSubMenuIcon.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Menu/MenuItemButton/MenuItemButton.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Menu/MenuTitle/MenuTitle.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/MenuButton/MenuButton.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Modal/Modal/Modal.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Modal/ModalHeader/ModalHeader.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Modal/ModalMedia/ModalMedia.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Modal/ModalTopActions/ModalTopActions.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Modal/footers/ModalFooter/ModalFooter.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Modal/footers/ModalFooterBase/ModalFooterBase.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Modal/footers/ModalFooterWizard/ModalFooterWizard.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Modal/layouts/ModalBasicLayout/ModalBasicLayout.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Modal/layouts/ModalFooterShadow.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Modal/layouts/ModalLayoutScrollableContent.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Modal/layouts/ModalMediaLayout/ModalMediaLayout.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Modal/layouts/ModalSideBySideLayout/ModalSideBySideLayout.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/MultiStepIndicator/MultiStepIndicator.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/MultiStepIndicator/components/StepIndicator/StepIndicator.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/NumberField/NumberField.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/NumberField/components/NumberFieldSpinButton/NumberFieldSpinButton.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Search/Search.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/SlideTransition/SlideTransition.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Slider/SelectionIndicator.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Slider/Slider.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderBase.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderFilledTrack.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderRail.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderThumb.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Slider/SliderBase/SliderTrack.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Slider/SliderInfix.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/SplitButton/SplitButton.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Steps/Steps.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Steps/StepsCommand.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Steps/StepsDot.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Steps/StepsGalleryHeader.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Steps/StepsHeader.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Steps/StepsNumbersHeader.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Switch/Switch.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Table/Table/Table.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Table/Table/tableHelpers.js.map +1 -1
- package/dist/mocked_classnames/src/components/Table/TableBody/TableBody.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Table/TableCell/TableCell.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Table/TableCellSkeleton/TableCellSkeleton.js +1 -1
- package/dist/mocked_classnames/src/components/Table/TableCellSkeleton/TableCellSkeleton.js.map +1 -1
- package/dist/mocked_classnames/src/components/Table/TableCellSkeleton/TableCellSkeleton.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Table/TableContainer/TableContainer.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Table/TableHeader/TableHeader.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Table/TableHeaderCell/TableHeaderCell.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Table/TableRow/TableRow.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Table/TableRowMenu/TableRowMenu.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Table/TableVirtualizedBody/TableVirtualizedBody.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/TextArea/TextArea.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/TextField/TextField.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Tipseen/Tipseen.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Tipseen/TipseenBasicContent.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Tipseen/TipseenContent.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Tipseen/TipseenMedia/TipseenMedia.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Tipseen/TipseenTitle.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Tipseen/TipseenWizard.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Toast/Toast.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Toast/ToastLink/ToastLink.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Toggle/MockToggle.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Toggle/Toggle.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Toggle/ToggleText.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/TransitionView/TransitionView.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/VirtualizedGrid/VirtualizedGrid.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/VirtualizedList/VirtualizedList.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/next/List/List.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/next/List/ListTitle/ListTitle.module.scss.js +1 -1
- package/dist/mocked_classnames/src/index.js +1 -1
- package/dist/src/components/Accordion/Accordion/Accordion.module.scss.js +1 -1
- package/dist/src/components/AlertBanner/AlertBanner.module.scss.js +1 -1
- package/dist/src/components/AlertBanner/AlertBannerButton/AlertBannerButton.module.scss.js +1 -1
- package/dist/src/components/AlertBanner/AlertBannerLink/AlertBannerLink.module.scss.js +1 -1
- package/dist/src/components/AlertBanner/AlertBannerText/AlertBannerText.module.scss.js +1 -1
- package/dist/src/components/AttentionBox/AttentionBox.module.scss.js +1 -1
- package/dist/src/components/AttentionBox/components/AttentionBoxCloseButton/AttentionBoxCloseButton.module.scss.js +1 -1
- package/dist/src/components/AttentionBox/components/AttentionBoxLeadingIcon/AttentionBoxLeadingIcon.module.scss.js +1 -1
- package/dist/src/components/AttentionBox/components/AttentionBoxLink/AttentionBoxLink.module.scss.js +1 -1
- package/dist/src/components/AttentionBox/layouts/AttentionBoxCompact/AttentionBoxCompact.module.scss.js +1 -1
- package/dist/src/components/AttentionBox/layouts/AttentionBoxDefault/AttentionBoxDefault.module.scss.js +1 -1
- package/dist/src/components/AvatarGroup/AvatarGroup.module.scss.js +1 -1
- package/dist/src/components/AvatarGroup/AvatarGroupCounter.module.scss.js +1 -1
- package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContent.module.scss.js +1 -1
- package/dist/src/components/AvatarGroup/AvatarGroupCounterTooltipContentVirtualizedList.module.scss.js +1 -1
- package/dist/src/components/Badge/Badge.module.scss.js +1 -1
- package/dist/src/components/Badge/Indicator/Indicator.module.scss.js +1 -1
- package/dist/src/components/BaseItem/BaseItem.module.scss.js +1 -1
- package/dist/src/components/BaseList/BaseList.module.scss.js +1 -1
- package/dist/src/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbContent/BreadcrumbContent.module.scss.js +1 -1
- package/dist/src/components/BreadcrumbsBar/BreadcrumbItem/BreadcrumbItem.module.scss.js +1 -1
- package/dist/src/components/BreadcrumbsBar/BreadcrumbMenu/BreadcrumbsMenu.module.scss.js +1 -1
- package/dist/src/components/BreadcrumbsBar/BreadcrumbsBar.module.scss.js +1 -1
- package/dist/src/components/Chips/Chips.module.scss.js +1 -1
- package/dist/src/components/Combobox/Combobox.module.scss.js +1 -1
- package/dist/src/components/Combobox/ComboboxHelpers/ComboboxHelpers.module.scss.js +1 -1
- package/dist/src/components/Combobox/components/ComboboxCategory/ComboboxCategory.module.scss.js +1 -1
- package/dist/src/components/Combobox/components/ComboboxItems/ComboboxItems.module.scss.js +1 -1
- package/dist/src/components/Combobox/components/ComboboxOption/ComboboxOption.module.scss.js +1 -1
- package/dist/src/components/Combobox/components/StickyCategoryHeader/StickyCategoryHeader.module.scss.js +1 -1
- package/dist/src/components/DatePicker/DatePicker.module.scss.js +1 -1
- package/dist/src/components/DatePicker/DatePickerHeader.module.scss.js +1 -1
- package/dist/src/components/Dropdown/components/DropdownBase/DropdownBase.module.scss.js +1 -1
- package/dist/src/components/Dropdown/components/DropdownBaseList/DropdownBaseList.module.scss.js +1 -1
- package/dist/src/components/Dropdown/components/DropdownBoxMode/DropdownBoxMode.module.scss.js +1 -1
- package/dist/src/components/Dropdown/components/Menu/Menu.module.scss.js +1 -1
- package/dist/src/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.module.scss.js +1 -1
- package/dist/src/components/Dropdown/components/Trigger/Trigger.module.scss.js +1 -1
- package/dist/src/components/EmptyState/EmptyState.module.scss.js +1 -1
- package/dist/src/components/FieldLabel/FieldLabel.module.scss.js +1 -1
- package/dist/src/components/Info/components/InfoDialogContent/InfoDialogContent.module.scss.js +1 -1
- package/dist/src/components/Info/components/InfoLink/InfoLink.module.scss.js +1 -1
- package/dist/src/components/InfoText/InfoText.module.scss.js +1 -1
- package/dist/src/components/List/List.module.scss.js +1 -1
- package/dist/src/components/List/VirtualizedListItems/VirtualizedListItems.module.scss.js +1 -1
- package/dist/src/components/ListItem/ListItem.module.scss.js +1 -1
- package/dist/src/components/ListItemAvatar/ListItemAvatar.module.scss.js +1 -1
- package/dist/src/components/ListItemIcon/ListItemIcon.module.scss.js +1 -1
- package/dist/src/components/ListTitle/ListTitle.module.scss.js +1 -1
- package/dist/src/components/Menu/Menu/Menu.module.scss.js +1 -1
- package/dist/src/components/Menu/MenuDivider/MenuDivider.module.scss.js +1 -1
- package/dist/src/components/Menu/MenuItem/MenuItem.module.scss.js +1 -1
- package/dist/src/components/Menu/MenuItem/components/BaseMenuItem/BaseMenuItem.module.scss.js +1 -1
- package/dist/src/components/Menu/MenuItem/components/MenuItemIcon/MenuItemIcon.module.scss.js +1 -1
- package/dist/src/components/Menu/MenuItem/components/MenuItemSubMenuIcon/MenuItemSubMenuIcon.module.scss.js +1 -1
- package/dist/src/components/Menu/MenuItemButton/MenuItemButton.module.scss.js +1 -1
- package/dist/src/components/Menu/MenuTitle/MenuTitle.module.scss.js +1 -1
- package/dist/src/components/MenuButton/MenuButton.module.scss.js +1 -1
- package/dist/src/components/Modal/Modal/Modal.module.scss.js +1 -1
- package/dist/src/components/Modal/ModalHeader/ModalHeader.module.scss.js +1 -1
- package/dist/src/components/Modal/ModalMedia/ModalMedia.module.scss.js +1 -1
- package/dist/src/components/Modal/ModalTopActions/ModalTopActions.module.scss.js +1 -1
- package/dist/src/components/Modal/footers/ModalFooter/ModalFooter.module.scss.js +1 -1
- package/dist/src/components/Modal/footers/ModalFooterBase/ModalFooterBase.module.scss.js +1 -1
- package/dist/src/components/Modal/footers/ModalFooterWizard/ModalFooterWizard.module.scss.js +1 -1
- package/dist/src/components/Modal/layouts/ModalBasicLayout/ModalBasicLayout.module.scss.js +1 -1
- package/dist/src/components/Modal/layouts/ModalFooterShadow.module.scss.js +1 -1
- package/dist/src/components/Modal/layouts/ModalLayoutScrollableContent.module.scss.js +1 -1
- package/dist/src/components/Modal/layouts/ModalMediaLayout/ModalMediaLayout.module.scss.js +1 -1
- package/dist/src/components/Modal/layouts/ModalSideBySideLayout/ModalSideBySideLayout.module.scss.js +1 -1
- package/dist/src/components/MultiStepIndicator/MultiStepIndicator.module.scss.js +1 -1
- package/dist/src/components/MultiStepIndicator/components/StepIndicator/StepIndicator.module.scss.js +1 -1
- package/dist/src/components/NumberField/NumberField.module.scss.js +1 -1
- package/dist/src/components/NumberField/components/NumberFieldSpinButton/NumberFieldSpinButton.module.scss.js +1 -1
- package/dist/src/components/Search/Search.module.scss.js +1 -1
- package/dist/src/components/SlideTransition/SlideTransition.module.scss.js +1 -1
- package/dist/src/components/Slider/SelectionIndicator.module.scss.js +1 -1
- package/dist/src/components/Slider/Slider.module.scss.js +1 -1
- package/dist/src/components/Slider/SliderBase/SliderBase.module.scss.js +1 -1
- package/dist/src/components/Slider/SliderBase/SliderFilledTrack.module.scss.js +1 -1
- package/dist/src/components/Slider/SliderBase/SliderRail.module.scss.js +1 -1
- package/dist/src/components/Slider/SliderBase/SliderThumb.module.scss.js +1 -1
- package/dist/src/components/Slider/SliderBase/SliderTrack.module.scss.js +1 -1
- package/dist/src/components/Slider/SliderInfix.module.scss.js +1 -1
- package/dist/src/components/SplitButton/SplitButton.module.scss.js +1 -1
- package/dist/src/components/Steps/Steps.module.scss.js +1 -1
- package/dist/src/components/Steps/StepsCommand.module.scss.js +1 -1
- package/dist/src/components/Steps/StepsDot.module.scss.js +1 -1
- package/dist/src/components/Steps/StepsGalleryHeader.module.scss.js +1 -1
- package/dist/src/components/Steps/StepsHeader.module.scss.js +1 -1
- package/dist/src/components/Steps/StepsNumbersHeader.module.scss.js +1 -1
- package/dist/src/components/Switch/Switch.module.scss.js +1 -1
- package/dist/src/components/Table/Table/Table.module.scss.js +1 -1
- package/dist/src/components/Table/Table/tableHelpers.js.map +1 -1
- package/dist/src/components/Table/TableBody/TableBody.module.scss.js +1 -1
- package/dist/src/components/Table/TableCell/TableCell.module.scss.js +1 -1
- package/dist/src/components/Table/TableCellSkeleton/TableCellSkeleton.js +1 -1
- package/dist/src/components/Table/TableCellSkeleton/TableCellSkeleton.js.map +1 -1
- package/dist/src/components/Table/TableCellSkeleton/TableCellSkeleton.module.scss.js +1 -1
- package/dist/src/components/Table/TableContainer/TableContainer.module.scss.js +1 -1
- package/dist/src/components/Table/TableHeader/TableHeader.module.scss.js +1 -1
- package/dist/src/components/Table/TableHeaderCell/TableHeaderCell.module.scss.js +1 -1
- package/dist/src/components/Table/TableRow/TableRow.module.scss.js +1 -1
- package/dist/src/components/Table/TableRowMenu/TableRowMenu.module.scss.js +1 -1
- package/dist/src/components/Table/TableVirtualizedBody/TableVirtualizedBody.module.scss.js +1 -1
- package/dist/src/components/TextArea/TextArea.module.scss.js +1 -1
- package/dist/src/components/TextField/TextField.module.scss.js +1 -1
- package/dist/src/components/Tipseen/Tipseen.module.scss.js +1 -1
- package/dist/src/components/Tipseen/TipseenBasicContent.module.scss.js +1 -1
- package/dist/src/components/Tipseen/TipseenContent.module.scss.js +1 -1
- package/dist/src/components/Tipseen/TipseenMedia/TipseenMedia.module.scss.js +1 -1
- package/dist/src/components/Tipseen/TipseenTitle.module.scss.js +1 -1
- package/dist/src/components/Tipseen/TipseenWizard.module.scss.js +1 -1
- package/dist/src/components/Toast/Toast.module.scss.js +1 -1
- package/dist/src/components/Toast/ToastLink/ToastLink.module.scss.js +1 -1
- package/dist/src/components/Toggle/MockToggle.module.scss.js +1 -1
- package/dist/src/components/Toggle/Toggle.module.scss.js +1 -1
- package/dist/src/components/Toggle/ToggleText.module.scss.js +1 -1
- package/dist/src/components/TransitionView/TransitionView.module.scss.js +1 -1
- package/dist/src/components/VirtualizedGrid/VirtualizedGrid.module.scss.js +1 -1
- package/dist/src/components/VirtualizedList/VirtualizedList.module.scss.js +1 -1
- package/dist/src/components/next/List/List.module.scss.js +1 -1
- package/dist/src/components/next/List/ListTitle/ListTitle.module.scss.js +1 -1
- package/dist/src/index.js +1 -1
- package/dist/style/dist/index.min.css.js +1 -1
- package/package.json +6 -2
- package/dist/components/Skeleton/Skeleton.d.ts +0 -31
- package/dist/components/Skeleton/SkeletonConstants.d.ts +0 -1
- package/dist/components/Skeleton/Skelton.types.d.ts +0 -4
- package/dist/components/Skeleton/index.d.ts +0 -2
- package/dist/components/Tabs/Tab/Tab.d.ts +0 -64
- package/dist/components/Tabs/TabList/TabList.d.ts +0 -35
- package/dist/components/Tabs/TabPanel/TabPanel.d.ts +0 -14
- package/dist/components/Tabs/TabPanels/TabPanels.d.ts +0 -20
- package/dist/components/Tabs/TabPanels/TabPanels.types.d.ts +0 -1
- package/dist/components/Tabs/TabsContext/TabsContext.d.ts +0 -14
- package/dist/components/Tabs/index.d.ts +0 -6
- package/dist/components/TextWithHighlight/TextWithHighlight.d.ts +0 -51
- package/dist/components/TextWithHighlight/index.d.ts +0 -1
- package/dist/components/ThemeProvider/ThemeProvider.d.ts +0 -30
- package/dist/components/ThemeProvider/ThemeProvider.types.d.ts +0 -5
- package/dist/components/ThemeProvider/ThemeProviderConstants.d.ts +0 -23
- package/dist/components/ThemeProvider/ThemeProviderUtils.d.ts +0 -10
- package/dist/components/ThemeProvider/index.d.ts +0 -2
- package/dist/mocked_classnames/components/Skeleton/Skeleton.d.ts +0 -31
- package/dist/mocked_classnames/components/Skeleton/SkeletonConstants.d.ts +0 -1
- package/dist/mocked_classnames/components/Skeleton/Skelton.types.d.ts +0 -4
- package/dist/mocked_classnames/components/Skeleton/index.d.ts +0 -2
- package/dist/mocked_classnames/components/Tabs/Tab/Tab.d.ts +0 -64
- package/dist/mocked_classnames/components/Tabs/TabList/TabList.d.ts +0 -35
- package/dist/mocked_classnames/components/Tabs/TabPanel/TabPanel.d.ts +0 -14
- package/dist/mocked_classnames/components/Tabs/TabPanels/TabPanels.d.ts +0 -20
- package/dist/mocked_classnames/components/Tabs/TabPanels/TabPanels.types.d.ts +0 -1
- package/dist/mocked_classnames/components/Tabs/TabsContext/TabsContext.d.ts +0 -14
- package/dist/mocked_classnames/components/Tabs/index.d.ts +0 -6
- package/dist/mocked_classnames/components/TextWithHighlight/TextWithHighlight.d.ts +0 -51
- package/dist/mocked_classnames/components/TextWithHighlight/index.d.ts +0 -1
- package/dist/mocked_classnames/components/ThemeProvider/ThemeProvider.d.ts +0 -30
- package/dist/mocked_classnames/components/ThemeProvider/ThemeProvider.types.d.ts +0 -5
- package/dist/mocked_classnames/components/ThemeProvider/ThemeProviderConstants.d.ts +0 -23
- package/dist/mocked_classnames/components/ThemeProvider/ThemeProviderUtils.d.ts +0 -10
- package/dist/mocked_classnames/components/ThemeProvider/index.d.ts +0 -2
- package/dist/mocked_classnames/src/components/Skeleton/Skeleton.js +0 -2
- package/dist/mocked_classnames/src/components/Skeleton/Skeleton.js.map +0 -1
- package/dist/mocked_classnames/src/components/Skeleton/Skeleton.module.scss.js +0 -2
- package/dist/mocked_classnames/src/components/Skeleton/SkeletonConstants.js +0 -2
- package/dist/mocked_classnames/src/components/Skeleton/SkeletonConstants.js.map +0 -1
- package/dist/mocked_classnames/src/components/Tabs/Tab/Tab.js +0 -2
- package/dist/mocked_classnames/src/components/Tabs/Tab/Tab.js.map +0 -1
- package/dist/mocked_classnames/src/components/Tabs/Tab/Tab.module.scss.js +0 -2
- package/dist/mocked_classnames/src/components/Tabs/TabList/TabList.js +0 -2
- package/dist/mocked_classnames/src/components/Tabs/TabList/TabList.js.map +0 -1
- package/dist/mocked_classnames/src/components/Tabs/TabList/TabList.module.scss.js +0 -2
- package/dist/mocked_classnames/src/components/Tabs/TabPanel/TabPanel.js +0 -2
- package/dist/mocked_classnames/src/components/Tabs/TabPanel/TabPanel.js.map +0 -1
- package/dist/mocked_classnames/src/components/Tabs/TabPanel/TabPanel.module.scss.js +0 -2
- package/dist/mocked_classnames/src/components/Tabs/TabPanels/TabPanels.js +0 -2
- package/dist/mocked_classnames/src/components/Tabs/TabPanels/TabPanels.js.map +0 -1
- package/dist/mocked_classnames/src/components/Tabs/TabPanels/TabPanels.module.scss.js +0 -2
- package/dist/mocked_classnames/src/components/Tabs/TabsContext/TabsContext.js +0 -2
- package/dist/mocked_classnames/src/components/Tabs/TabsContext/TabsContext.js.map +0 -1
- package/dist/mocked_classnames/src/components/TextWithHighlight/TextWithHighlight.js +0 -2
- package/dist/mocked_classnames/src/components/TextWithHighlight/TextWithHighlight.js.map +0 -1
- package/dist/mocked_classnames/src/components/TextWithHighlight/TextWithHighlight.module.scss.js +0 -2
- package/dist/mocked_classnames/src/components/ThemeProvider/ThemeProvider.js +0 -2
- package/dist/mocked_classnames/src/components/ThemeProvider/ThemeProvider.js.map +0 -1
- package/dist/mocked_classnames/src/components/ThemeProvider/ThemeProviderConstants.js.map +0 -1
- package/dist/mocked_classnames/src/components/ThemeProvider/ThemeProviderUtils.js +0 -2
- package/dist/mocked_classnames/src/components/ThemeProvider/ThemeProviderUtils.js.map +0 -1
- package/dist/src/components/Skeleton/Skeleton.js +0 -2
- package/dist/src/components/Skeleton/Skeleton.js.map +0 -1
- package/dist/src/components/Skeleton/Skeleton.module.scss.js +0 -2
- package/dist/src/components/Skeleton/Skeleton.module.scss.js.map +0 -1
- package/dist/src/components/Skeleton/SkeletonConstants.js +0 -2
- package/dist/src/components/Skeleton/SkeletonConstants.js.map +0 -1
- package/dist/src/components/Tabs/Tab/Tab.js +0 -2
- package/dist/src/components/Tabs/Tab/Tab.js.map +0 -1
- package/dist/src/components/Tabs/Tab/Tab.module.scss.js +0 -2
- package/dist/src/components/Tabs/Tab/Tab.module.scss.js.map +0 -1
- package/dist/src/components/Tabs/TabList/TabList.js +0 -2
- package/dist/src/components/Tabs/TabList/TabList.js.map +0 -1
- package/dist/src/components/Tabs/TabList/TabList.module.scss.js +0 -2
- package/dist/src/components/Tabs/TabList/TabList.module.scss.js.map +0 -1
- package/dist/src/components/Tabs/TabPanel/TabPanel.js +0 -2
- package/dist/src/components/Tabs/TabPanel/TabPanel.js.map +0 -1
- package/dist/src/components/Tabs/TabPanel/TabPanel.module.scss.js +0 -2
- package/dist/src/components/Tabs/TabPanel/TabPanel.module.scss.js.map +0 -1
- package/dist/src/components/Tabs/TabPanels/TabPanels.js +0 -2
- package/dist/src/components/Tabs/TabPanels/TabPanels.js.map +0 -1
- package/dist/src/components/Tabs/TabPanels/TabPanels.module.scss.js +0 -2
- package/dist/src/components/Tabs/TabPanels/TabPanels.module.scss.js.map +0 -1
- package/dist/src/components/Tabs/TabsContext/TabsContext.js +0 -2
- package/dist/src/components/Tabs/TabsContext/TabsContext.js.map +0 -1
- package/dist/src/components/TextWithHighlight/TextWithHighlight.js +0 -2
- package/dist/src/components/TextWithHighlight/TextWithHighlight.js.map +0 -1
- package/dist/src/components/TextWithHighlight/TextWithHighlight.module.scss.js +0 -2
- package/dist/src/components/TextWithHighlight/TextWithHighlight.module.scss.js.map +0 -1
- package/dist/src/components/ThemeProvider/ThemeProvider.js +0 -2
- package/dist/src/components/ThemeProvider/ThemeProvider.js.map +0 -1
- package/dist/src/components/ThemeProvider/ThemeProviderConstants.js +0 -2
- package/dist/src/components/ThemeProvider/ThemeProviderConstants.js.map +0 -1
- package/dist/src/components/ThemeProvider/ThemeProviderUtils.js +0 -2
- package/dist/src/components/ThemeProvider/ThemeProviderUtils.js.map +0 -1
- /package/dist/{mocked_classnames/src/components → components/skeleton/dist}/Skeleton/Skeleton.module.scss.js.map +0 -0
- /package/dist/{mocked_classnames/src/components/Tabs → components/tabs/dist}/Tab/Tab.module.scss.js.map +0 -0
- /package/dist/{mocked_classnames/src/components/Tabs → components/tabs/dist}/TabList/TabList.module.scss.js.map +0 -0
- /package/dist/{mocked_classnames/src/components/Tabs → components/tabs/dist}/TabPanel/TabPanel.module.scss.js.map +0 -0
- /package/dist/{mocked_classnames/src/components/Tabs → components/tabs/dist}/TabPanels/TabPanels.module.scss.js.map +0 -0
- /package/dist/{mocked_classnames/src/components → components/text-with-highlight/dist}/TextWithHighlight/TextWithHighlight.module.scss.js.map +0 -0
- /package/dist/{mocked_classnames/src/components → components/theme-provider/dist}/ThemeProvider/ThemeProviderConstants.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabPanels.js","sources":["../../../../../../src/components/Tabs/TabPanels/TabPanels.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport { camelCase } from \"es-toolkit\";\nimport React, { forwardRef, type ReactElement, useMemo, useRef } from \"react\";\nimport { useMergeRef, getStyle } from \"@vibe/shared\";\nimport { type TabPanelsAnimationDirection } from \"./TabPanels.types\";\nimport { type TabPanelProps } from \"../TabPanel/TabPanel\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\n\nimport { type VibeComponentProps } from \"../../../types\";\nimport styles from \"./TabPanels.module.scss\";\n\nexport interface TabPanelsProps extends VibeComponentProps {\n /**\n * The index of the currently active tab panel.\n */\n activeTabId?: number;\n /**\n * The animation direction when switching between tab panels.\n */\n animationDirection?: TabPanelsAnimationDirection;\n /**\n * The child elements representing tab panels.\n */\n children?: ReactElement<TabPanelProps> | ReactElement<TabPanelProps>[];\n}\n\nconst TabPanels = forwardRef(\n (\n { className, id, activeTabId = 0, animationDirection = \"rtl\", children, \"data-testid\": dataTestId }: TabPanelsProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n const renderedTabs = useMemo(() => {\n return React.Children.map(children, (child, index) => {\n const isActiveTab = activeTabId === index;\n if (!isActiveTab) return null;\n const activeClass = isActiveTab ? \"active\" : \"non-active\";\n const animationClass = isActiveTab ? `animation-direction-${animationDirection}` : \"\";\n return React.cloneElement(child, {\n index,\n ...child.props,\n className: cx(\n styles.tabPanel,\n [getStyle(styles, activeClass)],\n [getStyle(styles, camelCase(animationClass))],\n child.props.className\n )\n });\n }).filter(Boolean);\n }, [children, activeTabId, animationDirection]);\n\n return (\n <div\n ref={mergedRef}\n className={cx(styles.tabPanelsWrapper, className)}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TAB_PANELS, id)}\n >\n {renderedTabs}\n </div>\n );\n }\n);\n\nObject.assign(TabPanels, {\n isTabPanels: true\n});\n\nexport default TabPanels;\n"],"names":["TabPanels","forwardRef","_ref","ref","className","id","_ref$activeTabId","activeTabId","_ref$animationDirecti","animationDirection","children","dataTestId","componentRef","useRef","mergedRef","useMergeRef","renderedTabs","useMemo","React","Children","map","child","index","isActiveTab","activeClass","animationClass","concat","cloneElement","Object","assign","props","cx","styles","tabPanel","getStyle","camelCase","filter","Boolean","createElement","tabPanelsWrapper","getTestId","ComponentDefaultTestId","TAB_PANELS","isTabPanels"],"mappings":"qTA0BMA,IAAAA,EAAYC,GAChB,SAAAC,EAEEC,GACE,IAFAC,EAASF,EAATE,UAAWC,EAAEH,EAAFG,GAAEC,EAAAJ,EAAEK,YAAAA,OAAc,IAAHD,EAAG,EAACA,EAAAE,EAAAN,EAAEO,mBAAAA,OAAqB,IAAHD,EAAG,MAAKA,EAAEE,EAAQR,EAARQ,SAAyBC,EAAUT,EAAzB,eAGlEU,EAAeC,EAAO,MACtBC,EAAYC,EAAYZ,EAAKS,GAC7BI,EAAeC,GAAQ,WAC3B,OAAOC,EAAMC,SAASC,IAAIV,GAAU,SAACW,EAAOC,GAC1C,IAAMC,EAAchB,IAAgBe,EACpC,IAAKC,EAAa,OAAO,KACzB,IAAMC,EAAcD,EAAc,SAAW,aACvCE,EAAiBF,EAAW,uBAAAG,OAA0BjB,GAAuB,GACnF,OAAOS,EAAMS,aAAaN,EACxBO,OAAAC,OAAAD,OAAAC,OAAA,CAAAP,MAAAA,GACGD,EAAMS,QACT1B,UAAW2B,EACTC,EAAOC,SACP,CAACC,EAASF,EAAQR,IAClB,CAACU,EAASF,EAAQG,EAAUV,KAC5BJ,EAAMS,MAAM1B,aAGlB,IAAGgC,OAAOC,QACX,GAAE,CAAC3B,EAAUH,EAAaE,IAE3B,OACES,EAAAoB,cAAA,MAAA,CACEnC,IAAKW,EACLV,UAAW2B,EAAGC,EAAOO,iBAAkBnC,GACvCC,GAAIA,EACS,cAAAM,GAAc6B,EAAUC,EAAuBC,WAAYrC,IAEvEW,EAGP,IAGFY,OAAOC,OAAO7B,EAAW,CACvB2C,aAAa"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var n={tabPanelsWrapper:"tabPanelsWrapper",tabPanel:"tabPanel",animationDirectionRtl:"animationDirectionRtl",animationDirectionLtr:"animationDirectionLtr",active:"active",panelSlideIn:"panelSlideIn"};!function(n){const e="s_id-078bacbdb1e4_4_5_12";if("undefined"!=typeof document){const a=document.head||document.getElementsByTagName("head")[0];if(a.querySelector("#"+e))return;const t=document.createElement("style");t.id=e,a.firstChild?a.insertBefore(t,a.firstChild):a.appendChild(t),t.appendChild(document.createTextNode(n))}else globalThis.injectedStyles&&(globalThis.injectedStyles[e]=n)}("/* stylelint-disable */\n/* stylelint-enable */\n.tabPanelsWrapper .tabPanel {\n display: none;\n}\n.tabPanelsWrapper .tabPanel.animationDirectionRtl {\n transform: translateX(8px);\n}\n.tabPanelsWrapper .tabPanel.animationDirectionLtr {\n transform: translateX(-8px);\n}\n.tabPanelsWrapper .tabPanel.active {\n display: block;\n animation: panelSlideIn var(--motion-productive-long) forwards var(--motion-timing-enter);\n}\n@keyframes panelSlideIn {\n 100% {\n transform: translateX(0%);\n }\n}");export{n as default};
|
|
2
|
-
//# sourceMappingURL=TabPanels.module.scss.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import t,{forwardRef as r,useRef as a,useState as n,useEffect as i,useCallback as o,useMemo as l}from"react";import{useMergeRef as s}from"@vibe/shared";import{usePrevious as c}from"@vibe/hooks";import{getTestId as d,ComponentDefaultTestId as f}from"../../../tests/testIds.js";var p=r((function(r,p){var u=r.className,m=r.id,v=r.activeTabId,b=void 0===v?0:v,T=r.children,h=r["data-testid"],C=a(null),E=s(p,C),I=n(b),y=e(I,2),P=y[0],g=y[1],N=n(b),_=e(N,2),j=_[0],A=_[1],B=c(b);i((function(){b!==B&&b!==j&&(g(j),A(b))}),[b,j,B]);var k=o((function(e){g(j),A(e)}),[j]),x=l((function(){var e=[];return t.Children.forEach(T,(function(r){r.type.isTabPanels&&t.Children.forEach(r.props.children,(function(t,r){e[r]=t.props.id}))})),e}),[T]);return t.createElement("div",{ref:E,className:u,id:m,"data-testid":h||d(f.TABS_CONTEXT,m)},t.Children.map(T,(function(e){if(e.type.isTabList){var r=e.props.onTabChange;return t.cloneElement(e,{activeTabId:j,onTabChange:function(e){k(e),null==r||r(e)},tabPanelIds:x})}return e.type.isTabPanels?t.cloneElement(e,{activeTabId:j,animationDirection:j>P?"ltr":"rtl"}):e})))}));export{p as default};
|
|
2
|
-
//# sourceMappingURL=TabsContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabsContext.js","sources":["../../../../../../src/components/Tabs/TabsContext/TabsContext.tsx"],"sourcesContent":["import React, {\n type FC,\n forwardRef,\n type ReactElement,\n useCallback,\n useEffect,\n useRef,\n useState,\n useMemo\n} from \"react\";\nimport { useMergeRef } from \"@vibe/shared\";\nimport { usePrevious } from \"@vibe/hooks\";\nimport type VibeComponentProps from \"../../../types/VibeComponentProps\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\n\nexport interface TabsContextProps extends VibeComponentProps {\n /**\n * The index of the currently active tab.\n */\n activeTabId?: number;\n /**\n * The child elements representing the tab list and tab panels.\n */\n children?: ReactElement | ReactElement[];\n}\n\ntype TabsChild = ReactElement & {\n type: Record<string, unknown>;\n};\n\nconst TabsContext: FC<TabsContextProps> = forwardRef(\n ({ className, id, activeTabId = 0, children, \"data-testid\": dataTestId }, ref) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n const [previousActiveTabIdState, setPreviousActiveTabIdState] = useState(activeTabId);\n const [activeTabIdState, setActiveTabIdState] = useState(activeTabId);\n const prevActiveTabIdProp = usePrevious(activeTabId);\n\n useEffect(() => {\n // Update active tab if changed from props\n if (activeTabId !== prevActiveTabIdProp && activeTabId !== activeTabIdState) {\n setPreviousActiveTabIdState(activeTabIdState);\n setActiveTabIdState(activeTabId);\n }\n }, [activeTabId, activeTabIdState, prevActiveTabIdProp]);\n\n const onTabClick = useCallback(\n (tabId: number) => {\n setPreviousActiveTabIdState(activeTabIdState);\n setActiveTabIdState(tabId);\n },\n [activeTabIdState]\n );\n\n // Collect TabPanel ids for aria-controls relationship\n const tabPanelIds = useMemo(() => {\n const ids: string[] = [];\n React.Children.forEach(children, (child: TabsChild) => {\n if (child.type.isTabPanels) {\n React.Children.forEach(child.props.children, (panelChild: ReactElement, index: number) => {\n ids[index] = panelChild.props.id;\n });\n }\n });\n return ids;\n }, [children]);\n\n return (\n <div\n ref={mergedRef}\n className={className}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TABS_CONTEXT, id)}\n >\n {React.Children.map(children, (child: TabsChild) => {\n if (child.type.isTabList) {\n const originalOnTabChange = child.props.onTabChange;\n const onTabChange = (tabId: number) => {\n onTabClick(tabId);\n originalOnTabChange?.(tabId);\n };\n return React.cloneElement(child, { activeTabId: activeTabIdState, onTabChange, tabPanelIds });\n }\n if (child.type.isTabPanels) {\n const animationDirection = previousActiveTabIdState < activeTabIdState ? \"ltr\" : \"rtl\";\n return React.cloneElement(child, { activeTabId: activeTabIdState, animationDirection });\n }\n return child;\n })}\n </div>\n );\n }\n);\n\nexport default TabsContext;\n"],"names":["TabsContext","forwardRef","_ref","ref","className","id","_ref$activeTabId","activeTabId","children","dataTestId","componentRef","useRef","mergedRef","useMergeRef","_useState","useState","_useState2","_slicedToArray","previousActiveTabIdState","setPreviousActiveTabIdState","_useState3","_useState4","activeTabIdState","setActiveTabIdState","prevActiveTabIdProp","usePrevious","useEffect","onTabClick","useCallback","tabId","tabPanelIds","useMemo","ids","React","Children","forEach","child","type","isTabPanels","props","panelChild","index","createElement","getTestId","ComponentDefaultTestId","TABS_CONTEXT","map","isTabList","originalOnTabChange","onTabChange","cloneElement","animationDirection"],"mappings":"sWA8BMA,IAAAA,EAAoCC,GACxC,SAAAC,EAA0EC,GAAO,IAA9EC,EAASF,EAATE,UAAWC,EAAEH,EAAFG,GAAEC,EAAAJ,EAAEK,YAAAA,OAAc,IAAHD,EAAG,EAACA,EAAEE,EAAQN,EAARM,SAAyBC,EAAUP,EAAzB,eACrCQ,EAAeC,EAAO,MACtBC,EAAYC,EAAYV,EAAKO,GAEnCI,EAAgEC,EAASR,GAAYS,EAAAC,EAAAH,EAAA,GAA9EI,EAAwBF,EAAA,GAAEG,EAA2BH,EAAA,GAC5DI,EAAgDL,EAASR,GAAYc,EAAAJ,EAAAG,EAAA,GAA9DE,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,GACtCG,EAAsBC,EAAYlB,GAExCmB,GAAU,WAEJnB,IAAgBiB,GAAuBjB,IAAgBe,IACzDH,EAA4BG,GAC5BC,EAAoBhB,GAEvB,GAAE,CAACA,EAAae,EAAkBE,IAEnC,IAAMG,EAAaC,GACjB,SAACC,GACCV,EAA4BG,GAC5BC,EAAoBM,EACtB,GACA,CAACP,IAIGQ,EAAcC,GAAQ,WAC1B,IAAMC,EAAgB,GAQtB,OAPAC,EAAMC,SAASC,QAAQ3B,GAAU,SAAC4B,GAC5BA,EAAMC,KAAKC,aACbL,EAAMC,SAASC,QAAQC,EAAMG,MAAM/B,UAAU,SAACgC,EAA0BC,GACtET,EAAIS,GAASD,EAAWD,MAAMlC,EAChC,GAEJ,IACO2B,CACT,GAAG,CAACxB,IAEJ,OACEyB,EACES,cAAA,MAAA,CAAAvC,IAAKS,EACLR,UAAWA,EACXC,GAAIA,EACS,cAAAI,GAAckC,EAAUC,EAAuBC,aAAcxC,IAEzE4B,EAAMC,SAASY,IAAItC,GAAU,SAAC4B,GAC7B,GAAIA,EAAMC,KAAKU,UAAW,CACxB,IAAMC,EAAsBZ,EAAMG,MAAMU,YAKxC,OAAOhB,EAAMiB,aAAad,EAAO,CAAE7B,YAAae,EAAkB2B,YAJ9C,SAACpB,GACnBF,EAAWE,GACXmB,SAAAA,EAAsBnB,IAEuDC,YAAAA,GACjF,CACA,OAAIM,EAAMC,KAAKC,YAENL,EAAMiB,aAAad,EAAO,CAAE7B,YAAae,EAAkB6B,mBADZ7B,EAA3BJ,EAA8C,MAAQ,QAG5EkB,CACR,IAGP"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{defineProperty as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{getTestId as t,ComponentDefaultTestId as i}from"../../tests/testIds.js";import r from"classnames";import o,{forwardRef as s,useRef as l,useMemo as a}from"react";import{Tooltip as n}from"@vibe/tooltip/mockedClassNames";import{useIsOverflowing as m}from"@vibe/hooks";import{useMergeRef as p,useIsomorphicLayoutEffect as c}from"@vibe/shared";import d from"./TextWithHighlight.module.scss.js";var g=function(e,t,i){return i?o.createElement(arguments.length>3&&void 0!==arguments[3]?arguments[3]:"em",{className:r(d.highlightText,arguments.length>4?arguments[4]:void 0),key:t},e):o.createElement("span",{key:t},e)},h=s((function(s,h){var v=s.className,f=s.id,u=s.text,T=void 0===u?"":u,E=s.highlightTerm,x=s.limit,H=s.useEllipsis,b=void 0===H||H,j=s.linesToClamp,y=void 0===j?3:j,N=s.ignoreCase,k=void 0===N||N,w=s.allowTermSplit,C=void 0===w||w,I=s.nonEllipsisTooltip,P=s.wrappingTextTag,W=void 0===P?"em":P,_=s.wrappingElementClassName,G=s.tooltipProps,$=void 0===G?{}:G,B=s["data-testid"],L=l(null),O=p(h,L),R=a((function(){if(!T||!E||0===x)return T;var e=E.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");C&&(e=e.split(" ").join("|"));for(var t=RegExp("(".concat(e,")"),k?"i":""),i=T.split(t),r=[],o=0,s=0,l=0;i.length>l;l++)if(i[l]){var a=l%2==1;r.push(g(i[l],s++,a&&(!x||0>x||x>o),W,_)),a&&o++}return r}),[T,E,x,k,C,W,_]),S=m({ref:b&&L});c((function(){L.current&&L.current.style.setProperty("--heading-clamp-lines",""+y)}),[L,y,S]);var X=o.createElement("div",{ref:O,className:r(d.textWithHighlightWrapper,v,e({},d.withEllipsis,b)),id:f,"data-testid":B||t(i.TEXT_WITH_HIGHLIGHT,f)},R);return S||I?o.createElement(n,Object.assign({content:S?T:I},$),X):X}));export{h as default};
|
|
2
|
-
//# sourceMappingURL=TextWithHighlight.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextWithHighlight.js","sources":["../../../../../src/components/TextWithHighlight/TextWithHighlight.tsx"],"sourcesContent":["import { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport React, { forwardRef, useMemo, useRef } from \"react\";\nimport { Tooltip, type TooltipProps } from \"@vibe/tooltip\";\nimport { useIsOverflowing } from \"@vibe/hooks\";\nimport { useIsomorphicLayoutEffect, useMergeRef } from \"@vibe/shared\";\n\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport styles from \"./TextWithHighlight.module.scss\";\n\nconst getTextPart = (\n text: string,\n key: number,\n shouldHighlight: boolean,\n wrappingTextTag: keyof JSX.IntrinsicElements = \"em\",\n wrappingElementClassName: string\n) => {\n const WrappingElement = wrappingTextTag;\n if (shouldHighlight) {\n return (\n <WrappingElement className={cx(styles.highlightText, wrappingElementClassName)} key={key}>\n {text}\n </WrappingElement>\n );\n }\n return <span key={key}>{text}</span>;\n};\n\nexport interface TextWithHighlightProps extends VibeComponentProps {\n /**\n * The text content to display.\n */\n text?: string;\n /**\n * The term to highlight within the text.\n */\n highlightTerm?: string;\n /**\n * The maximum number of highlighted terms allowed.\n */\n limit?: number;\n /**\n * If true, the highlight search is case-insensitive.\n */\n ignoreCase?: boolean;\n /**\n * If true, truncates overflowing text with an ellipsis.\n */\n useEllipsis?: boolean;\n /**\n * If true, allows splitting the highlight term into separate words.\n */\n allowTermSplit?: boolean;\n /**\n * The number of lines to display before truncating with an ellipsis.\n */\n linesToClamp?: number;\n /**\n * Tooltip content displayed when there is no overflow.\n */\n nonEllipsisTooltip?: string;\n /**\n * The HTML tag used to wrap highlighted text.\n */\n wrappingTextTag?: keyof JSX.IntrinsicElements;\n /**\n * Class name applied to the wrapping element of highlighted text.\n */\n wrappingElementClassName?: string;\n /**\n * Additional props to customize the tooltip component.\n */\n tooltipProps?: Partial<TooltipProps>;\n}\n\nconst TextWithHighlight: React.FC<TextWithHighlightProps> = forwardRef(\n (\n {\n className,\n id,\n text = \"\",\n highlightTerm,\n limit,\n useEllipsis = true,\n linesToClamp = 3,\n ignoreCase = true,\n allowTermSplit = true,\n nonEllipsisTooltip,\n wrappingTextTag = \"em\",\n wrappingElementClassName,\n tooltipProps = {},\n \"data-testid\": dataTestId\n }: TextWithHighlightProps,\n ref\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n const textWithHighlights = useMemo(() => {\n if (!text || !highlightTerm || limit === 0) return text;\n let finalTerm = escapeRegExp(highlightTerm);\n if (allowTermSplit) {\n finalTerm = finalTerm.split(\" \").join(\"|\");\n }\n const regex = new RegExp(`(${finalTerm})`, ignoreCase ? \"i\" : \"\");\n const tokens = text.split(regex);\n const parts = [];\n // Tokens include the term search (in odd indices)\n let highlightTermsCount = 0;\n let key = 0;\n for (let i = 0; i < tokens.length; i++) {\n // skip empty tokens\n if (tokens[i]) {\n // adding highlight part\n const isTermPart = i % 2 === 1;\n const shouldHighlight = isTermPart && (!limit || limit < 0 || highlightTermsCount < limit);\n parts.push(getTextPart(tokens[i], key++, shouldHighlight, wrappingTextTag, wrappingElementClassName));\n if (isTermPart) highlightTermsCount++;\n }\n }\n\n return parts;\n }, [text, highlightTerm, limit, ignoreCase, allowTermSplit, wrappingTextTag, wrappingElementClassName]);\n\n const isOverflowing = useIsOverflowing({ ref: useEllipsis && componentRef });\n\n useIsomorphicLayoutEffect(() => {\n if (componentRef.current) {\n componentRef.current.style.setProperty(\"--heading-clamp-lines\", linesToClamp.toString());\n }\n }, [componentRef, linesToClamp, isOverflowing]);\n\n const Element = (\n <div\n ref={mergedRef}\n className={cx(styles.textWithHighlightWrapper, className, {\n [styles.withEllipsis]: useEllipsis\n })}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TEXT_WITH_HIGHLIGHT, id)}\n >\n {textWithHighlights}\n </div>\n );\n\n if (isOverflowing || nonEllipsisTooltip) {\n const tooltipContent = isOverflowing ? text : nonEllipsisTooltip;\n return (\n <Tooltip content={tooltipContent} {...tooltipProps}>\n {Element}\n </Tooltip>\n );\n }\n return Element;\n }\n);\n\nexport default TextWithHighlight;\n\nfunction escapeRegExp(string: string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n"],"names":["getTextPart","text","key","shouldHighlight","React","arguments","length","undefined","className","cx","styles","highlightText","TextWithHighlight","forwardRef","_ref","ref","id","_ref$text","highlightTerm","limit","_ref$useEllipsis","useEllipsis","_ref$linesToClamp","linesToClamp","_ref$ignoreCase","ignoreCase","_ref$allowTermSplit","allowTermSplit","nonEllipsisTooltip","_ref$wrappingTextTag","wrappingTextTag","wrappingElementClassName","_ref$tooltipProps","tooltipProps","dataTestId","componentRef","useRef","mergedRef","useMergeRef","textWithHighlights","useMemo","finalTerm","replace","split","join","regex","RegExp","concat","tokens","parts","highlightTermsCount","i","isTermPart","push","isOverflowing","useIsOverflowing","useIsomorphicLayoutEffect","current","style","setProperty","Element","createElement","textWithHighlightWrapper","_defineProperty","withEllipsis","getTestId","ComponentDefaultTestId","TEXT_WITH_HIGHLIGHT","Tooltip","Object","assign","content"],"mappings":"4dAUA,IAAMA,EAAc,SAClBC,EACAC,EACAC,GAKA,OAAIA,EAEAC,gBAN2CC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAA,KAM3B,CAACG,UAAWC,EAAGC,EAAOC,cALVN,UAAAC,OAAAD,EAAAA,kBAAAE,GAKoDL,IAAKA,GAClFD,GAIAG,wBAAMF,IAAKA,GAAMD,EAC1B,EAiDMW,EAAsDC,GAC1D,SAAAC,EAiBEC,GACE,IAhBAP,EAASM,EAATN,UACAQ,EAAEF,EAAFE,GAAEC,EAAAH,EACFb,KAAAA,OAAO,IAAHgB,EAAG,GAAEA,EACTC,EAAaJ,EAAbI,cACAC,EAAKL,EAALK,MAAKC,EAAAN,EACLO,YAAAA,OAAc,IAAHD,GAAOA,EAAAE,EAAAR,EAClBS,aAAAA,OAAe,IAAHD,EAAG,EAACA,EAAAE,EAAAV,EAChBW,WAAAA,OAAa,IAAHD,GAAOA,EAAAE,EAAAZ,EACjBa,eAAAA,OAAiB,IAAHD,GAAOA,EACrBE,EAAkBd,EAAlBc,mBAAkBC,EAAAf,EAClBgB,gBAAAA,OAAkB,IAAHD,EAAG,KAAIA,EACtBE,EAAwBjB,EAAxBiB,yBAAwBC,EAAAlB,EACxBmB,aAAAA,OAAY,IAAAD,EAAG,CAAE,EAAAA,EACFE,EAAUpB,EAAzB,eAIIqB,EAAeC,EAAO,MACtBC,EAAYC,EAAYvB,EAAKoB,GAE7BI,EAAqBC,GAAQ,WACjC,IAAKvC,IAASiB,GAA2B,IAAVC,EAAa,OAAOlB,EACnD,IAAIwC,EAAyBvB,EA4DnBwB,QAAQ,sBAAuB,QA3DrCf,IACFc,EAAYA,EAAUE,MAAM,KAAKC,KAAK,MAQxC,IANA,IAAMC,EAAYC,WAAMC,OAAKN,EAAS,KAAKhB,EAAa,IAAM,IACxDuB,EAAS/C,EAAK0C,MAAME,GACpBI,EAAQ,GAEVC,EAAsB,EACtBhD,EAAM,EACDiD,EAAI,EAAOH,EAAO1C,OAAX6C,EAAmBA,IAEjC,GAAIH,EAAOG,GAAI,CAEb,IAAMC,EAAaD,EAAI,GAAM,EAE7BF,EAAMI,KAAKrD,EAAYgD,EAAOG,GAAIjD,IADVkD,KAAgBjC,GAAiB,EAARA,GAAmCA,EAAtB+B,GACJpB,EAAiBC,IACvEqB,GAAYF,GAClB,CAGF,OAAOD,CACT,GAAG,CAAChD,EAAMiB,EAAeC,EAAOM,EAAYE,EAAgBG,EAAiBC,IAEvEuB,EAAgBC,EAAiB,CAAExC,IAAKM,GAAec,IAE7DqB,GAA0B,WACpBrB,EAAasB,SACftB,EAAasB,QAAQC,MAAMC,YAAY,wBAAyBpC,KAEnE,GAAE,CAACY,EAAcZ,EAAc+B,IAEhC,IAAMM,EACJxD,EACEyD,cAAA,MAAA,CAAA9C,IAAKsB,EACL7B,UAAWC,EAAGC,EAAOoD,yBAA0BtD,EAASuD,KACrDrD,EAAOsD,aAAe3C,IAEzBL,GAAIA,EACS,cAAAkB,GAAc+B,EAAUC,EAAuBC,oBAAqBnD,IAEhFuB,GAIL,OAAIe,GAAiB1B,EAGjBxB,EAAAyD,cAACO,EAAOC,OAAAC,OAAA,CAACC,QAFYjB,EAAgBrD,EAAO2B,GAENK,GACnC2B,GAIAA,CACT"}
|
package/dist/mocked_classnames/src/components/TextWithHighlight/TextWithHighlight.module.scss.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e={textWithHighlightWrapper:"textWithHighlightWrapper",highlightText:"highlightText",withEllipsis:"withEllipsis"};!function(e){const t="s_id-42c1fd2afe36_4_5_12";if("undefined"!=typeof document){const i=document.head||document.getElementsByTagName("head")[0];if(i.querySelector("#"+t))return;const l=document.createElement("style");l.id=t,i.firstChild?i.insertBefore(l,i.firstChild):i.appendChild(l),l.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[t]=e)}("/* stylelint-disable */\n/* stylelint-enable */\n.textWithHighlightWrapper {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n}\n.textWithHighlightWrapper em.highlightText {\n background-color: var(--primary-selected-color);\n color: var(--primary-text-color);\n border-radius: 2px;\n}\n.textWithHighlightWrapper.withEllipsis {\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: var(--heading-clamp-lines);\n -webkit-box-orient: vertical;\n white-space: initial;\n word-break: break-word;\n}");export{e as default};
|
|
2
|
-
//# sourceMappingURL=TextWithHighlight.module.scss.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{slicedToArray as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import r from"classnames";import t,{useState as n,useMemo as i,useEffect as o}from"react";import{generateRandomAlphaString as m,isAnySystemThemeClassNameOnBody as a,addSystemThemeClassNameToBody as c,removeSystemThemeClassNameFromBody as l,shouldGenerateTheme as s,generateThemeCssOverride as d}from"./ThemeProviderUtils.js";import{useIsomorphicLayoutEffect as u}from"@vibe/shared";var f=function(f){var h=f.themeConfig,p=f.children,v=f.themeClassSpecifier,y=f.systemTheme,g=f.className,C=n(!1),T=e(C,2),b=T[0],x=T[1],E=i((function(){return v||m()}),[v]);return u((function(){if(y&&!a())return c(y),function(){l(y)}}),[y]),o((function(){if(s(h)){if(!document.getElementById(h.name)){var e=document.createElement("style");e.type="text/css",e.id=h.name;var r=d(h,E);try{e.appendChild(document.createTextNode(r)),document.head.appendChild(e),x(!0)}catch(e){console.error("vibe ThemeProvider: error inserting theme-generated css - ",e)}return function(){document.head.removeChild(e)}}x(!0)}}),[E,h]),!b&&s(h)?null:t.createElement("div",{className:r(null==h?void 0:h.name,E,g)},p)};export{f as default};
|
|
2
|
-
//# sourceMappingURL=ThemeProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.js","sources":["../../../../../src/components/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { type ReactElement, useEffect, useMemo, useState } from \"react\";\nimport { type Theme } from \"./ThemeProviderConstants\";\nimport { type SystemTheme } from \"./ThemeProvider.types\";\nimport {\n addSystemThemeClassNameToBody,\n generateRandomAlphaString,\n generateThemeCssOverride,\n isAnySystemThemeClassNameOnBody,\n removeSystemThemeClassNameFromBody,\n shouldGenerateTheme\n} from \"./ThemeProviderUtils\";\nimport { useIsomorphicLayoutEffect } from \"@vibe/shared\";\nexport interface ThemeProviderProps {\n /**\n * The theme configuration to apply. It consists of a `name` (a unique CSS class name added to the children)\n * and an object of color overrides for each system theme.\n */\n themeConfig?: Theme;\n /**\n * The children to be rendered with the applied theme.\n */\n children: ReactElement;\n /**\n * A string added to the theme name selector to make it more specific, in case `themeConfig.name`\n * collides with another class name.\n */\n themeClassSpecifier?: string;\n /**\n * The system theme to apply to the `body` element on mount,\n * if there is no system theme class name on the body already.\n */\n systemTheme?: SystemTheme;\n /**\n * Class name applied to the wrapping `div`.\n */\n className?: string;\n}\n\nconst ThemeProvider = ({\n themeConfig,\n children,\n themeClassSpecifier: customThemeClassSpecifier,\n systemTheme,\n className\n}: ThemeProviderProps) => {\n const [stylesLoaded, setStylesLoaded] = useState(false);\n const themeClassSpecifier = useMemo(\n () => customThemeClassSpecifier || generateRandomAlphaString(),\n [customThemeClassSpecifier]\n );\n\n // Add the systemTheme class name to the body on mount\n useIsomorphicLayoutEffect(() => {\n if (!systemTheme) {\n return;\n }\n\n if (isAnySystemThemeClassNameOnBody()) {\n // If there is already a systemTheme class name on the body, we don't want to override it\n return;\n }\n\n addSystemThemeClassNameToBody(systemTheme);\n\n return () => {\n // Cleanup the systemTheme class name from the body on ThemeProvider unmount\n removeSystemThemeClassNameFromBody(systemTheme);\n };\n }, [systemTheme]);\n\n useEffect(() => {\n if (!shouldGenerateTheme(themeConfig)) {\n return;\n }\n if (document.getElementById(themeConfig.name)) {\n setStylesLoaded(true);\n return;\n }\n\n const styleElement = document.createElement(\"style\");\n styleElement.type = \"text/css\";\n styleElement.id = themeConfig.name;\n const themeCssOverride = generateThemeCssOverride(themeConfig, themeClassSpecifier);\n\n try {\n styleElement.appendChild(document.createTextNode(themeCssOverride));\n document.head.appendChild(styleElement);\n setStylesLoaded(true);\n } catch (error) {\n console.error(\"vibe ThemeProvider: error inserting theme-generated css - \", error);\n }\n\n return () => {\n document.head.removeChild(styleElement);\n };\n }, [themeClassSpecifier, themeConfig]);\n\n if (!stylesLoaded && shouldGenerateTheme(themeConfig)) {\n // Waiting for styles to load before children render\n return null;\n }\n\n // Pass the theme name as a class to the div wrapping children - to scope the effect of the theme\n return <div className={cx(themeConfig?.name, themeClassSpecifier, className)}>{children}</div>;\n};\n\nexport default ThemeProvider;\n"],"names":["ThemeProvider","_ref","themeConfig","children","customThemeClassSpecifier","themeClassSpecifier","systemTheme","className","_useState","useState","_useState2","_slicedToArray","stylesLoaded","setStylesLoaded","useMemo","generateRandomAlphaString","useIsomorphicLayoutEffect","isAnySystemThemeClassNameOnBody","addSystemThemeClassNameToBody","removeSystemThemeClassNameFromBody","useEffect","shouldGenerateTheme","document","getElementById","name","styleElement","createElement","type","id","themeCssOverride","generateThemeCssOverride","appendChild","createTextNode","head","error","console","removeChild","React","cx"],"mappings":"6cAuCA,IAAMA,EAAgB,SAAHC,GAMM,IALvBC,EAAWD,EAAXC,YACAC,EAAQF,EAARE,SACqBC,EAAyBH,EAA9CI,oBACAC,EAAWL,EAAXK,YACAC,EAASN,EAATM,UAEAC,EAAwCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAAhDI,EAAYF,EAAA,GAAEG,EAAeH,EAAA,GAC9BL,EAAsBS,GAC1B,WAAA,OAAMV,GAA6BW,MACnC,CAACX,IAiDH,OA7CAY,GAA0B,WACxB,GAAKV,IAIDW,IAOJ,OAFAC,EAA8BZ,GAEvB,WAELa,EAAmCb,GAEvC,GAAG,CAACA,IAEJc,GAAU,WACR,GAAKC,EAAoBnB,GAAzB,CAGA,IAAIoB,SAASC,eAAerB,EAAYsB,MAAxC,CAKA,IAAMC,EAAeH,SAASI,cAAc,SAC5CD,EAAaE,KAAO,WACpBF,EAAaG,GAAK1B,EAAYsB,KAC9B,IAAMK,EAAmBC,EAAyB5B,EAAaG,GAE/D,IACEoB,EAAaM,YAAYT,SAASU,eAAeH,IACjDP,SAASW,KAAKF,YAAYN,GAC1BZ,GAAgB,EACjB,CAAC,MAAOqB,GACPC,QAAQD,MAAM,6DAA8DA,EAC9E,CAEA,OAAO,WACLZ,SAASW,KAAKG,YAAYX,GAhB5B,CAFEZ,GAAgB,EAFlB,CAsBF,GAAG,CAACR,EAAqBH,KAEpBU,GAAgBS,EAAoBnB,GAEhC,KAIFmC,EAAAX,cAAA,MAAA,CAAKnB,UAAW+B,EAAGpC,aAAA,EAAAA,EAAasB,KAAMnB,EAAqBE,IAAaJ,EACjF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProviderConstants.js","sources":["../../../../../src/components/ThemeProvider/ThemeProviderConstants.ts"],"sourcesContent":["import { type SystemTheme, type ThemeColor } from \"./ThemeProvider.types\";\n\nexport type Theme = {\n /**\n * The name of the theme - name of css class that will be added to the children - should be unique\n */\n name: string;\n colors: SystemThemeColorMap;\n};\n\ntype SystemThemeColorMap = {\n [key in SystemTheme]?: ThemeColorTokenValueMap;\n};\n\nexport type ThemeColorTokenValueMap = ThemeColorTokenValue | ThemeCustomClassValue;\n\nexport type ThemeColorTokenValue = {\n [key in ThemeColor]?: string;\n};\n\ntype ThemeCustomClassValue = {\n [key: string]: ThemeColorTokenValue | ThemeCustomClassValue;\n};\n\nexport const SystemThemeClassMap: SystemThemeClassMapType = {\n light: \"light-app-theme\",\n dark: \"dark-app-theme\",\n black: \"black-app-theme\"\n};\n\ntype SystemThemeClassMapType = {\n [key in SystemTheme]: string;\n};\n"],"names":["SystemThemeClassMap","light","dark","black"],"mappings":"AAwBO,IAAMA,EAA+C,CAC1DC,MAAO,kBACPC,KAAM,iBACNC,MAAO"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{typeof as n}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{SystemThemeClassMap as t}from"./ThemeProviderConstants.js";var r=function t(r,o,c){for(var e=0,a=Object.keys(r);a.length>e;e++){var u=a[e];"string"==typeof r[u]&&(o+="--".concat(u,": ").concat(r[u],";"))}""!==o&&(o=c+" {"+o+"}");for(var i=0,l=Object.keys(r);l.length>i;i++){var f=l[i];if("object"===n(r[f])){var s="".concat(c," .").concat(f);o+="\n"+t(r[f],"",s)}}return o},o=function(n){return!!(null==n?void 0:n.colors)&&!!(null==n?void 0:n.name)},c=function(n,c){if(!o(n))return null;for(var e="",a=0,u=Object.keys(n.colors);u.length>a;a++){var i=u[a];e+=r(n.colors[i],"",".".concat(t[i]," .").concat(c,".").concat(n.name))+"\n"}return e},e=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:6,t="",r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",o=0;n>o;o++)t+=r.charAt(Math.floor(52*Math.random()));return t},a="-app-theme",u=function(n){return n.endsWith(a)},i=function(n){return"".concat(n).concat(a)},l=function(){for(var n=document.body.classList,t=0,r=Array.from(n);r.length>t;t++){var o=r[t];if(u(o))return o}return null},f=function(){return!!l()},s=function(n){document.body.classList.add(i(n))},v=function(n){document.body.classList.remove(i(n))};export{i as addAppThemeSuffix,s as addSystemThemeClassNameToBody,e as generateRandomAlphaString,c as generateThemeCssOverride,l as getBodySystemThemeClassName,f as isAnySystemThemeClassNameOnBody,v as removeSystemThemeClassNameFromBody,o as shouldGenerateTheme};
|
|
2
|
-
//# sourceMappingURL=ThemeProviderUtils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProviderUtils.js","sources":["../../../../../src/components/ThemeProvider/ThemeProviderUtils.ts"],"sourcesContent":["import { type Theme, type ThemeColorTokenValueMap, SystemThemeClassMap } from \"./ThemeProviderConstants\";\nimport { type SystemTheme } from \"./ThemeProvider.types\";\n\nconst generateCss = (object: ThemeColorTokenValueMap, stack: string, parentSelector: string) => {\n for (const key of Object.keys(object)) {\n if (typeof object[key as keyof ThemeColorTokenValueMap] === \"string\") {\n stack += `--${key}: ${object[key as keyof ThemeColorTokenValueMap]};`;\n }\n }\n\n if (stack !== \"\") {\n stack = parentSelector + \" {\" + stack + \"}\";\n }\n\n for (const key of Object.keys(object)) {\n if (typeof object[key as keyof ThemeColorTokenValueMap] === \"object\") {\n const selector = `${parentSelector} .${key}`;\n stack +=\n \"\\n\" + generateCss(object[key as keyof ThemeColorTokenValueMap] as ThemeColorTokenValueMap, \"\", selector);\n }\n }\n\n return stack;\n};\n\nexport const shouldGenerateTheme = (themeConfig: Theme) => {\n return !!themeConfig?.colors && !!themeConfig?.name;\n};\n\nexport const generateThemeCssOverride = (themeConfig: Theme, themeClassSpecifier: string) => {\n if (!shouldGenerateTheme(themeConfig)) {\n return null;\n }\n\n let css = \"\";\n for (const systemTheme of Object.keys(themeConfig.colors) as SystemTheme[]) {\n css +=\n generateCss(\n themeConfig.colors[systemTheme],\n \"\",\n `.${SystemThemeClassMap[systemTheme]} .${themeClassSpecifier}.${themeConfig.name}`\n ) + \"\\n\";\n }\n\n return css;\n};\n\nexport const generateRandomAlphaString = (length = 6) => {\n let result = \"\";\n const characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n\n return result;\n};\n\nconst APP_THEME_SUFFIX = \"-app-theme\";\n\nconst isAppThemeClassName = (className: string) => {\n return className.endsWith(APP_THEME_SUFFIX);\n};\n\nexport const addAppThemeSuffix = (systemTheme: SystemTheme) => {\n return `${systemTheme}${APP_THEME_SUFFIX}`;\n};\n\nexport const getBodySystemThemeClassName = () => {\n const classList = document.body.classList;\n for (const className of Array.from(classList)) {\n if (isAppThemeClassName(className)) {\n return className;\n }\n }\n return null;\n};\n\nexport const isAnySystemThemeClassNameOnBody = () => {\n const bodySystemThemeClassName = getBodySystemThemeClassName();\n return !!bodySystemThemeClassName;\n};\n\nexport const addSystemThemeClassNameToBody = (systemTheme: SystemTheme) => {\n document.body.classList.add(addAppThemeSuffix(systemTheme));\n};\n\nexport const removeSystemThemeClassNameFromBody = (systemTheme: SystemTheme) => {\n document.body.classList.remove(addAppThemeSuffix(systemTheme));\n};\n"],"names":["generateCss","object","stack","parentSelector","_i","_Object$keys","Object","keys","length","key","concat","_i2","_Object$keys2","_typeof","selector","shouldGenerateTheme","themeConfig","colors","name","generateThemeCssOverride","themeClassSpecifier","css","_i3","_Object$keys3","systemTheme","SystemThemeClassMap","generateRandomAlphaString","arguments","undefined","result","characters","i","charAt","Math","floor","random","APP_THEME_SUFFIX","isAppThemeClassName","className","endsWith","addAppThemeSuffix","getBodySystemThemeClassName","classList","document","body","_i4","_Array$from","Array","from","isAnySystemThemeClassNameOnBody","addSystemThemeClassNameToBody","add","removeSystemThemeClassNameFromBody","remove"],"mappings":"0IAGA,IAAMA,EAAc,SAAdA,EAAeC,EAAiCC,EAAeC,GACnE,IAAA,IAAAC,EAAAC,EAAAA,EAAkBC,OAAOC,KAAKN,GAAOI,EAAAG,OAAAJ,EAAAA,IAAE,CAAlC,IAAMK,EAAGJ,EAAAD,GACgD,iBAAjDH,EAAOQ,KAChBP,GAAK,KAAAQ,OAASD,EAAG,MAAAC,OAAKT,EAAOQ,GAAwC,KAEzE,CAEc,KAAVP,IACFA,EAAQC,EAAiB,KAAOD,EAAQ,KAG1C,IAAA,IAAAS,EAAAC,EAAAA,EAAkBN,OAAOC,KAAKN,GAAOW,EAAAJ,OAAAG,EAAAA,IAAE,CAAlC,IAAMF,EAAGG,EAAAD,GACZ,GAA4D,WAAxDE,EAAOZ,EAAOQ,IAAoD,CACpE,IAAMK,KAAQJ,OAAMP,EAAcO,MAAAA,OAAKD,GACvCP,GACE,KAAOF,EAAYC,EAAOQ,GAAkE,GAAIK,EACpG,CACF,CAEA,OAAOZ,CACT,EAEaa,EAAsB,SAACC,GAClC,SAASA,aAAW,EAAXA,EAAaC,YAAYD,eAAAA,EAAaE,KACjD,EAEaC,EAA2B,SAACH,EAAoBI,GAC3D,IAAKL,EAAoBC,GACvB,OAAO,KAIT,IADA,IAAIK,EAAM,GACVC,IAAAC,EAA0BjB,OAAOC,KAAKS,EAAYC,QAAwBM,EAAAf,OAAAc,EAAAA,IAAE,CAAvE,IAAME,EAAWD,EAAAD,GACpBD,GACErB,EACEgB,EAAYC,OAAOO,GACnB,GAAE,IAAAd,OACEe,EAAoBD,GAAY,MAAAd,OAAKU,EAAmBV,KAAAA,OAAIM,EAAYE,OAC1E,IACR,CAEA,OAAOG,CACT,EAEaK,EAA4B,WAIvC,IAJsD,IAAdlB,EAAMmB,UAAAnB,OAAA,QAAAoB,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7CE,EAAS,GACPC,EAAa,uDAEVC,EAAI,EAAOvB,EAAJuB,EAAYA,IAC1BF,GAAUC,EAAWE,OAAOC,KAAKC,MAAsBJ,GAAhBG,KAAKE,WAG9C,OAAON,CACT,EAEMO,EAAmB,aAEnBC,EAAsB,SAACC,GAC3B,OAAOA,EAAUC,SAASH,EAC5B,EAEaI,EAAoB,SAAChB,GAChC,MAAA,GAAAd,OAAUc,GAAWd,OAAG0B,EAC1B,EAEaK,EAA8B,WAEzC,IADA,IAAMC,EAAYC,SAASC,KAAKF,UAChCG,EAAAC,EAAAA,EAAwBC,MAAMC,KAAKN,GAAUI,EAAAtC,OAAAqC,EAAAA,IAAE,CAA1C,IAAMP,EAASQ,EAAAD,GAClB,GAAIR,EAAoBC,GACtB,OAAOA,CAEX,CACA,OAAO,IACT,EAEaW,EAAkC,WAE7C,QADiCR,GAEnC,EAEaS,EAAgC,SAAC1B,GAC5CmB,SAASC,KAAKF,UAAUS,IAAIX,EAAkBhB,GAChD,EAEa4B,EAAqC,SAAC5B,GACjDmB,SAASC,KAAKF,UAAUW,OAAOb,EAAkBhB,GACnD"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{defineProperty as t}from"../../../_virtual/_rollupPluginBabelHelpers.js";import e from"react";import{camelCase as s}from"es-toolkit";import{getTestId as r,ComponentDefaultTestId as i}from"../../tests/testIds.js";import o from"classnames";import{SKELETON_CUSTOM_SIZE as l}from"./SkeletonConstants.js";import a from"./Skeleton.module.scss.js";import{getStyle as m}from"../../../shared/dist/utils/typesciptCssModulesHelper.js";var d=function(d){var p=d.type,n=d.size,f=d.className,c=d.width,u=d.height,h=d.fullWidth,v=void 0!==h&&h,g=d.id,j=d["data-testid"],N=(void 0===p?"rectangle":p)||"rectangle",k=(void 0===n?"custom":n)||l;return e.createElement("div",{id:g,className:o(a.skeleton,d.wrapperClassName,t({},a.fullWidth,v)),"data-testid":j||r(i.SKELETON,g)},e.createElement("div",{className:o(a[N],m(a,s(N+"-"+k)),f,t({},a.fullWidth,v)),style:{width:c,height:u}}))};export{d as default};
|
|
2
|
-
//# sourceMappingURL=Skeleton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Skeleton.js","sources":["../../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import React from \"react\";\nimport { camelCase } from \"es-toolkit\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport { SKELETON_CUSTOM_SIZE } from \"./SkeletonConstants\";\nimport { type SkeletonType, type SkeletonSizeType } from \"./Skelton.types\";\nimport { getStyle } from \"@vibe/shared\";\nimport { type VibeComponentProps } from \"../../types\";\nimport styles from \"./Skeleton.module.scss\";\n\nexport interface SkeletonProps extends VibeComponentProps {\n /**\n * The type of skeleton.\n */\n type?: SkeletonType;\n /**\n * The predefined size of the skeleton.\n */\n size?: SkeletonSizeType;\n /**\n * The width of the skeleton in pixels.\n */\n width?: number;\n /**\n * The height of the skeleton in pixels.\n */\n height?: number;\n /**\n * Class name applied to the wrapper element.\n */\n wrapperClassName?: string;\n /**\n * If true, the skeleton will take up the full width of its container.\n */\n fullWidth?: boolean;\n}\n\nconst Skeleton = ({\n type = \"rectangle\",\n size = \"custom\",\n className,\n wrapperClassName,\n width,\n height,\n fullWidth = false,\n id,\n \"data-testid\": dataTestId\n}: SkeletonProps) => {\n const skeletonType = type || \"rectangle\";\n\n // Skeleton has sizes only for text type, other types support only custom size\n const skeletonSize = size || SKELETON_CUSTOM_SIZE;\n\n return (\n <div\n id={id}\n className={cx(styles.skeleton, wrapperClassName, { [styles.fullWidth]: fullWidth })}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.SKELETON, id)}\n >\n <div\n className={cx(styles[skeletonType], getStyle(styles, camelCase(skeletonType + \"-\" + skeletonSize)), className, {\n [styles.fullWidth]: fullWidth\n })}\n style={{ width, height }}\n />\n </div>\n );\n};\n\nexport default Skeleton;\n"],"names":["Skeleton","_ref","_ref$type","type","_ref$size","size","className","width","height","_ref$fullWidth","fullWidth","id","dataTestId","skeletonType","skeletonSize","SKELETON_CUSTOM_SIZE","React","createElement","cx","styles","skeleton","wrapperClassName","_defineProperty","getTestId","ComponentDefaultTestId","SKELETON","getStyle","camelCase","style"],"mappings":"+aAqCA,IAAMA,EAAW,SAAHC,GAUM,IAAAC,EAAAD,EATlBE,KAAkBC,EAAAH,EAClBI,KACAC,EAASL,EAATK,UAEAC,EAAKN,EAALM,MACAC,EAAMP,EAANO,OAAMC,EAAAR,EACNS,UAAAA,OAAY,IAAHD,GAAQA,EACjBE,EAAEV,EAAFU,GACeC,EAAUX,EAAzB,eAEMY,QAVC,IAAHX,EAAG,YAAWA,IAUW,YAGvBY,QAZC,IAAHV,EAAG,SAAQA,IAYcW,EAE7B,OACEC,EACEC,cAAA,MAAA,CAAAN,GAAIA,EACJL,UAAWY,EAAGC,EAAOC,SAfTnB,EAAhBoB,iBAemDC,KAAKH,EAAOT,UAAYA,IAC1D,cAAAE,GAAcW,EAAUC,EAAuBC,SAAUd,IAEtEK,EACEC,cAAA,MAAA,CAAAX,UAAWY,EAAGC,EAAON,GAAea,EAASP,EAAQQ,EAAUd,EAAe,IAAMC,IAAgBR,EAASgB,EAC1GH,CAAAA,EAAAA,EAAOT,UAAYA,IAEtBkB,MAAO,CAAErB,MAAAA,EAAOC,OAAAA,KAIxB"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var n={skeleton:"skeleton_214347145b",rectangle:"rectangle_06c57f8381",shine:"shine_c9afa0c551",circle:"circle_4aed9658f6",text:"text_1d926b904e",textH1:"textH1_313c9f1eb4",textH2:"textH2_8ef0535ab5",textH3:"textH3_8ef0535ab5",textH4:"textH4_6a7717590b",textH5:"textH5_093a3f7f93",textH6:"textH6_b1d35bbd57",textSmall:"textSmall_ae38a5b0b1",textCustom:"textCustom_b1d35bbd57",fullWidth:"fullWidth_32872c93b9"};!function(n){const t="s_id-41cda04b2bc0_4_5_12";if("undefined"!=typeof document){const e=document.head||document.getElementsByTagName("head")[0];if(e.querySelector("#"+t))return;const i=document.createElement("style");i.id=t,e.firstChild?e.insertBefore(i,e.firstChild):e.appendChild(i),i.appendChild(document.createTextNode(n))}else globalThis.injectedStyles&&(globalThis.injectedStyles[t]=n)}(".skeleton_214347145b {\n display: flex;\n}\n\n.rectangle_06c57f8381 {\n height: 160px;\n background: var(--ui-background-color);\n border-radius: var(--border-radius-small);\n overflow: hidden;\n animation-duration: 0.8s;\n animation-direction: alternate;\n animation-iteration-count: infinite;\n animation-name: shine_c9afa0c551;\n animation-timing-function: steps(10, end);\n}\n\n@keyframes shine_c9afa0c551 {\n 0% {\n opacity: 0.4;\n }\n 100% {\n opacity: 1;\n }\n}\n\n.circle_4aed9658f6 {\n height: 40px;\n background: var(--ui-background-color);\n border-radius: 50%;\n overflow: hidden;\n animation-duration: 0.8s;\n animation-direction: alternate;\n animation-iteration-count: infinite;\n animation-name: shine_c9afa0c551;\n animation-timing-function: steps(10, end);\n}\n\n@keyframes shine_c9afa0c551 {\n 0% {\n opacity: 0.4;\n }\n 100% {\n opacity: 1;\n }\n}\n\n.text_1d926b904e {\n background: var(--ui-background-color);\n border-radius: var(--border-radius-small);\n overflow: hidden;\n animation-duration: 0.8s;\n animation-direction: alternate;\n animation-iteration-count: infinite;\n animation-name: shine_c9afa0c551;\n animation-timing-function: steps(10, end);\n}\n\n@keyframes shine_c9afa0c551 {\n 0% {\n opacity: 0.4;\n }\n 100% {\n opacity: 1;\n }\n}\n\n.textH1_313c9f1eb4 {\n height: 32px;\n}\n\n.textH2_8ef0535ab5 {\n height: 24px;\n}\n\n.textH3_8ef0535ab5 {\n height: 24px;\n}\n\n.textH4_6a7717590b {\n height: 21px;\n}\n\n.textH5_093a3f7f93 {\n height: 16px;\n}\n\n.textH6_b1d35bbd57 {\n height: 12px;\n}\n\n.textSmall_ae38a5b0b1,\n.textCustom_b1d35bbd57 {\n height: 12px;\n}\n\n.fullWidth_32872c93b9 {\n width: 100%;\n}\n\n.skeleton_214347145b:not(.fullWidth_32872c93b9) .text_1d926b904e {\n width: 162px;\n}\n\n.skeleton_214347145b:not(.fullWidth_32872c93b9) .circle_4aed9658f6 {\n width: 40px;\n}\n\n.skeleton_214347145b:not(.fullWidth_32872c93b9) .rectangle_06c57f8381 {\n width: 160px;\n}");export{n as default};
|
|
2
|
-
//# sourceMappingURL=Skeleton.module.scss.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Skeleton.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SkeletonConstants.js","sources":["../../../../src/components/Skeleton/SkeletonConstants.ts"],"sourcesContent":["// Fixed names\nexport const SKELETON_CUSTOM_SIZE = \"custom\";\n"],"names":["SKELETON_CUSTOM_SIZE"],"mappings":"AACO,IAAMA,EAAuB"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{defineProperty as e,toConsumableArray as t}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import o from"classnames";import s,{forwardRef as i,useRef as r}from"react";import{noop as a}from"es-toolkit";import{getTestId as n,ComponentDefaultTestId as c}from"../../../tests/testIds.js";import l from"./Tab.module.scss.js";import{ComponentVibeId as d}from"../../../tests/constants.js";import{keyCodes as m}from"../../../constants/keyCodes.js";import"../../../constants/sizes.js";import p from"../../../../components/tooltip/dist/Tooltip/Tooltip.js";import f from"../../../../components/icon/dist/Icon/Icon.js";import{useMergeRef as u}from"../../../../shared/dist/hooks/useMergeRef.js";import{getStyle as v}from"../../../../shared/dist/utils/typesciptCssModulesHelper.js";var b=i((function(i,b){var y=i.className,j=i.tabInnerClassName,I=i.id,h=i.value,k=void 0===h?0:h,C=i.disabled,E=void 0!==C&&C,T=i.active,N=void 0!==T&&T,A=i.focus,g=void 0!==A&&A,P=i.stretchedUnderline,x=void 0!==P&&P,B=i.onClick,S=void 0===B?a:B,z=i.tooltipProps,D=void 0===z?{}:z,F=i.icon,H=i.iconType,M=i.iconSide,R=void 0===M?"left":M,U=i.children,_=i["data-testid"],w=i.tabIndex,K=i["aria-controls"],O=r(null),V=u(b,O);return s.createElement(p,Object.assign({},D,{content:D.content}),s.createElement("li",{ref:V,key:I,className:o(l.tabWrapper,y,e(e(e(e({},l.active,N),l.disabled,E),l.tabFocusVisibleInset,g),l.stretchedUnderline,x)),id:I,role:"tab","aria-selected":N,"aria-disabled":E,"aria-controls":K||void 0,tabIndex:w,"data-testid":_||n(c.TAB,I),"data-vibe":d.TAB,onClick:function(){return!E&&S(k)},onKeyDown:function(e){e.key!==m.ENTER&&e.key!==m.SPACE||(e.preventDefault(),!E&&S(k))}},s.createElement("div",{className:o(l.tabInner,j)},function(){if(!F)return U;var e=s.createElement(f,{"aria-hidden":!0,type:H,icon:F,className:o(l.tabIcon,v(l,R)),size:18,ignoreFocusStyle:!0}),i=s.Children.toArray(U);return"left"===R?[e].concat(t(i)):[].concat(t(i),[e])}())))}));export{b as default};
|
|
2
|
-
//# sourceMappingURL=Tab.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.js","sources":["../../../../../src/components/Tabs/Tab/Tab.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { type FC, forwardRef, type ReactElement, useRef } from \"react\";\nimport { noop as NOOP } from \"es-toolkit\";\nimport { useMergeRef, getStyle } from \"@vibe/shared\";\n\nimport { Icon, type IconType, type SubIcon } from \"@vibe/icon\";\nimport type VibeComponentProps from \"../../../types/VibeComponentProps\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\nimport styles from \"./Tab.module.scss\";\nimport { Tooltip, type TooltipProps } from \"@vibe/tooltip\";\nimport { ComponentVibeId } from \"../../../tests/constants\";\nimport { keyCodes } from \"../../../constants\";\n\nexport interface TabProps extends VibeComponentProps {\n /**\n * Class name applied to the inner tab content.\n */\n tabInnerClassName?: string;\n /**\n * The index value of the tab.\n */\n value?: number;\n /**\n * If true, disables the tab.\n */\n disabled?: boolean;\n /**\n * If true, marks the tab as active.\n */\n active?: boolean;\n /**\n * If true, applies focus styles to the tab.\n */\n focus?: boolean;\n /**\n * If true, hides the individual tab border when using stretched underline.\n */\n stretchedUnderline?: boolean;\n /**\n * The icon displayed in the tab.\n */\n icon?: SubIcon;\n /**\n * The type of icon.\n */\n iconType?: IconType;\n /**\n * The position of the icon relative to the text.\n */\n iconSide?: string;\n /**\n * Callback fired when the tab is clicked.\n */\n onClick?: (value: number) => void;\n /**\n * Props passed to the tab's tooltip.\n */\n tooltipProps?: Partial<TooltipProps>;\n /**\n * The content displayed inside the tab.\n */\n children?: string | ReactElement | ReactElement[];\n /**\n * Tab index for focus management.\n */\n tabIndex?: number;\n /**\n * The id of the associated TabPanel for aria-controls attribute.\n */\n \"aria-controls\"?: string;\n}\n\nconst Tab: FC<TabProps> = forwardRef(\n (\n {\n className,\n tabInnerClassName,\n id,\n value = 0,\n disabled = false,\n active = false,\n focus = false,\n stretchedUnderline = false,\n onClick = NOOP,\n tooltipProps = {} as TooltipProps,\n icon,\n iconType,\n iconSide = \"left\",\n children,\n \"data-testid\": dataTestId,\n tabIndex,\n \"aria-controls\": ariaControls\n }: TabProps,\n ref\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n function renderIconAndChildren() {\n if (!icon) return children;\n\n const iconElement = (\n <Icon\n aria-hidden={true}\n type={iconType}\n icon={icon}\n className={cx(styles.tabIcon, getStyle(styles, iconSide))}\n size={18}\n ignoreFocusStyle\n />\n );\n\n const childrenArray = React.Children.toArray(children);\n\n if (iconSide === \"left\") {\n return [iconElement, ...childrenArray];\n }\n\n return [...childrenArray, iconElement];\n }\n\n function handleKeyDown(event: React.KeyboardEvent) {\n if (event.key === keyCodes.ENTER || event.key === keyCodes.SPACE) {\n event.preventDefault();\n !disabled && onClick(value);\n }\n }\n\n return (\n <Tooltip {...tooltipProps} content={tooltipProps.content}>\n <li\n ref={mergedRef}\n key={id}\n className={cx(styles.tabWrapper, className, {\n [styles.active]: active,\n [styles.disabled]: disabled,\n [styles.tabFocusVisibleInset]: focus,\n [styles.stretchedUnderline]: stretchedUnderline\n })}\n id={id}\n role=\"tab\"\n aria-selected={active}\n aria-disabled={disabled}\n aria-controls={ariaControls || undefined}\n tabIndex={tabIndex}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TAB, id)}\n data-vibe={ComponentVibeId.TAB}\n onClick={() => !disabled && onClick(value)}\n onKeyDown={handleKeyDown}\n >\n <div className={cx(styles.tabInner, tabInnerClassName)}>{renderIconAndChildren()}</div>\n </li>\n </Tooltip>\n );\n }\n);\n\nexport default Tab;\n"],"names":["Tab","forwardRef","_ref","ref","className","tabInnerClassName","id","_ref$value","value","_ref$disabled","disabled","_ref$active","active","_ref$focus","focus","_ref$stretchedUnderli","stretchedUnderline","_ref$onClick","onClick","NOOP","_ref$tooltipProps","tooltipProps","icon","iconType","_ref$iconSide","iconSide","children","dataTestId","tabIndex","ariaControls","componentRef","useRef","mergedRef","useMergeRef","React","createElement","Tooltip","Object","assign","content","key","cx","styles","tabWrapper","_defineProperty","tabFocusVisibleInset","role","undefined","getTestId","ComponentDefaultTestId","TAB","ComponentVibeId","onKeyDown","event","keyCodes","ENTER","SPACE","preventDefault","tabInner","iconElement","Icon","type","tabIcon","getStyle","size","ignoreFocusStyle","childrenArray","Children","toArray","concat","_toConsumableArray","renderIconAndChildren"],"mappings":"8wBAwEMA,IAAAA,EAAoBC,GACxB,SAAAC,EAoBEC,GACE,IAnBAC,EAASF,EAATE,UACAC,EAAiBH,EAAjBG,kBACAC,EAAEJ,EAAFI,GAAEC,EAAAL,EACFM,MAAAA,OAAQ,IAAHD,EAAG,EAACA,EAAAE,EAAAP,EACTQ,SAAAA,OAAW,IAAHD,GAAQA,EAAAE,EAAAT,EAChBU,OAAAA,OAAS,IAAHD,GAAQA,EAAAE,EAAAX,EACdY,MAAAA,OAAQ,IAAHD,GAAQA,EAAAE,EAAAb,EACbc,mBAAAA,OAAqB,IAAHD,GAAQA,EAAAE,EAAAf,EAC1BgB,QAAAA,OAAUC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAlB,EACdmB,aAAAA,OAAY,IAAAD,EAAG,CAAkB,EAAAA,EACjCE,EAAIpB,EAAJoB,KACAC,EAAQrB,EAARqB,SAAQC,EAAAtB,EACRuB,SAAAA,OAAW,IAAHD,EAAG,OAAMA,EACjBE,EAAQxB,EAARwB,SACeC,EAAUzB,EAAzB,eACA0B,EAAQ1B,EAAR0B,SACiBC,EAAY3B,EAA7B,iBAII4B,EAAeC,EAAO,MACtBC,EAAYC,EAAY9B,EAAK2B,GAgCnC,OACEI,EAACC,cAAAC,EAAYC,OAAAC,OAAA,CAAA,EAAAjB,GAAckB,QAASlB,EAAakB,UAC/CL,EAAAC,cAAA,KAAA,CACEhC,IAAK6B,EACLQ,IAAKlC,EACLF,UAAWqC,EAAGC,EAAOC,WAAYvC,EAASwC,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EACvCF,EAAO9B,OAASA,GAChB8B,EAAOhC,SAAWA,GAClBgC,EAAOG,qBAAuB/B,GAC9B4B,EAAO1B,mBAAqBA,IAE/BV,GAAIA,EACJwC,KAAK,MAAK,gBACKlC,EAAM,gBACNF,EACA,gBAAAmB,QAAgBkB,EAC/BnB,SAAUA,EAAQ,cACLD,GAAcqB,EAAUC,EAAuBC,IAAK5C,GAAG,YACzD6C,EAAgBD,IAC3BhC,QAAS,WAAA,OAAOR,GAAYQ,EAAQV,EAAM,EAC1C4C,UA3BN,SAAuBC,GACjBA,EAAMb,MAAQc,EAASC,OAASF,EAAMb,MAAQc,EAASE,QACzDH,EAAMI,kBACL/C,GAAYQ,EAAQV,GAEzB,GAwBM0B,EAAAC,cAAA,MAAA,CAAK/B,UAAWqC,EAAGC,EAAOgB,SAAUrD,IApD1C,WACE,IAAKiB,EAAM,OAAOI,EAElB,IAAMiC,EACJzB,EAACC,cAAAyB,kBACc,EACbC,KAAMtC,EACND,KAAMA,EACNlB,UAAWqC,EAAGC,EAAOoB,QAASC,EAASrB,EAAQjB,IAC/CuC,KAAM,GACNC,kBAAgB,IAIdC,EAAgBhC,EAAMiC,SAASC,QAAQ1C,GAE7C,MAAiB,SAAbD,EACF,CAAQkC,GAAWU,OAAAC,EAAKJ,IAG1B,GAAAG,OAAAC,EAAWJ,IAAeP,GAC5B,CA+B+DY,KAIjE"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e={tabWrapper:"tabWrapper_cfa3de9419",stretchedUnderline:"stretchedUnderline_16884e9956",tabInner:"tabInner_ecadb13f05",tabIcon:"tabIcon_ffed076c47",right:"right_6797a2a86c",tabFocusVisibleInset:"tabFocusVisibleInset_08b9a433dc",active:"active_4af6c649ff",disabled:"disabled_18cfc0d9e7"};!function(e){const n="s_id-bfaa9c7255c3_4_5_12";if("undefined"!=typeof document){const a=document.head||document.getElementsByTagName("head")[0];if(a.querySelector("#"+n))return;const t=document.createElement("style");t.id=n,a.firstChild?a.insertBefore(t,a.firstChild):a.appendChild(t),t.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[n]=e)}('/* stylelint-disable */\n/* stylelint-enable */\n/* stylelint-disable selector-class-pattern */\n/* stylelint-disable */\n/* stylelint-enable */\n.tabWrapper_cfa3de9419 {\n position: relative;\n display: inline-block;\n padding-inline: 1px;\n border-top: 1px solid transparent;\n border-bottom: 2px solid;\n border-bottom-color: var(--ui-background-color);\n color: var(--primary-text-color);\n text-align: center;\n height: 100%;\n margin: 0;\n}\n.tabWrapper_cfa3de9419.stretchedUnderline_16884e9956 {\n border-bottom: 0;\n}\n.tabWrapper_cfa3de9419:after {\n display: block;\n position: absolute;\n inset-inline: 0;\n content: "";\n border-bottom: solid 2px;\n border-bottom-color: var(--primary-color);\n transform: scaleX(0);\n z-index: 0;\n}\n.tabWrapper_cfa3de9419 .tabInner_ecadb13f05 {\n height: calc(100% - 1px);\n display: flex;\n align-items: center;\n justify-content: center;\n text-decoration: none;\n padding: 4px 16px;\n font: var(--font-text1-normal);\n user-select: none;\n margin-bottom: 1px;\n cursor: pointer;\n color: var(--primary-text-color);\n}\n.tabWrapper_cfa3de9419 .tabInner_ecadb13f05:focus {\n outline: none;\n}\n.tabWrapper_cfa3de9419 .tabInner_ecadb13f05 .tabIcon_ffed076c47 {\n color: var(--icon-color);\n margin-inline-end: var(--space-8);\n}\n.tabWrapper_cfa3de9419 .tabInner_ecadb13f05 .tabIcon_ffed076c47.right_6797a2a86c {\n margin-inline-end: 0;\n margin-inline-start: var(--space-8);\n}\n.tabWrapper_cfa3de9419.tabFocusVisibleInset_08b9a433dc {\n outline: none;\n z-index: 11;\n border-radius: 3px;\n box-shadow: 0 0 0 3px hsla(209, 100%, 50%, 0.5) inset, 0 0 0 1px var(--primary-hover-color) inset;\n position: relative;\n}\n.tabWrapper_cfa3de9419.active_4af6c649ff:after {\n transform: scaleX(1);\n transition: transform var(--motion-productive-medium) var(--motion-timing-enter);\n}\n.tabWrapper_cfa3de9419.disabled_18cfc0d9e7 .tabInner_ecadb13f05 {\n color: var(--disabled-text-color);\n cursor: not-allowed;\n}\n.tabWrapper_cfa3de9419:not(.disabled_18cfc0d9e7) .tabInner_ecadb13f05:hover {\n border-radius: 4px;\n background-color: var(--primary-background-hover-color);\n}');export{e as default};
|
|
2
|
-
//# sourceMappingURL=Tab.module.scss.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{slicedToArray as e,defineProperty as t}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import r from"classnames";import{camelCase as i}from"es-toolkit";import n,{forwardRef as s,useRef as o,useState as a,useEffect as d,useMemo as l,useCallback as c}from"react";import{getTestId as u,ComponentDefaultTestId as m}from"../../../tests/testIds.js";import f from"./TabList.module.scss.js";import p from"../../../../hooks/dist/usePrevious/index.js";import v from"../../../../components/a11y/dist/useGridKeyboardNavigation/useGridKeyboardNavigation.js";import{useMergeRef as b}from"../../../../shared/dist/hooks/useMergeRef.js";import{getStyle as h}from"../../../../shared/dist/utils/typesciptCssModulesHelper.js";import{NOOP as I}from"../../../../shared/dist/utils/function-utils.js";var C=s((function(s,C){var g=s.className,N=s.id,T=s.onTabChange,j=void 0===T?I:T,y=s.activeTabId,L=void 0===y?0:y,k=s.tabType,x=void 0===k?"Compact":k,A=s.size,E=s.stretchedUnderline,P=void 0!==E&&E,B=s.tabPanelIds,S=void 0===B?[]:B,U=s.children,_=s["data-testid"],G=o(null),H=b(C,G),K=o({}),M=a(L),O=e(M,2),W=O[0],w=O[1],z=p(L),R=p(W);d((function(){L!==z&&L!==W&&w(L)}),[L,z,W,w]),d((function(){var e;void 0!==R&&R!==W&&K.current[W]&&(null===(e=K.current[W])||void 0===e||e.focus())}),[W,R]);var q=l((function(){var e=new Set;return n.Children.forEach(U,(function(t,r){t.props.disabled&&e.add(r)})),e}),[U]),D=c((function(e){q.has(e)||(w(e),j&&j(e))}),[j,q]),F=c((function(e,t){var r,i=null===(r=U[t].props)||void 0===r?void 0:r.onClick;q.has(t)||(i&&i(t),D(t))}),[U,q,D]),J=c((function(e){return U[e]}),[U]),Q=l((function(){return Array.from(q)}),[q]),V=o(),X=v({ref:V,numberOfItemsInLine:null==U?void 0:U.length,itemsCount:null==U?void 0:U.length,getItemByIndex:J,onItemClicked:F,disabledIndexes:Q,circularNavigation:!0}),Y=X.activeIndex,Z=X.onSelectionAction,$=p(Y);d((function(){var e;void 0!==Y&&Y>=0&&$!==Y&&K.current[Y]&&(null===(e=K.current[Y])||void 0===e||e.focus())}),[Y,$]);var ee=l((function(){return n.Children.map(U,(function(e,t){var i=W===t,s=void 0===Y||0>Y?i:Y===t;return n.cloneElement(e,{value:t,active:i,focus:Y===t,onClick:Z,stretchedUnderline:P,className:r(f.tabListTabWrapper,e.props.className),tabInnerClassName:r(f.tabListTabInner,e.props.tabInnerClassName),tabIndex:s?0:-1,"aria-controls":S[t],ref:function(e){K.current[t]=e}})}))}),[U,W,Y,Z,P,S,N]);return n.createElement("div",{ref:H,className:r(f.tabsWrapper,g,[h(f,i(x))],t({},f.stretchedUnderline,P)),id:N,"data-testid":_||u(m.TAB_LIST,N)},n.createElement("ul",{ref:V,className:r(f.tabsList,[h(f,A)]),role:"tablist"},ee))}));Object.assign(C,{isTabList:!0});export{C as default};
|
|
2
|
-
//# sourceMappingURL=TabList.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabList.js","sources":["../../../../../src/components/Tabs/TabList/TabList.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport { camelCase } from \"es-toolkit\";\nimport React, {\n type FC,\n forwardRef,\n type ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState\n} from \"react\";\nimport { useGridKeyboardNavigation } from \"@vibe/a11y\";\nimport { useMergeRef, NOOP, getStyle } from \"@vibe/shared\";\nimport { usePrevious } from \"@vibe/hooks\";\nimport type VibeComponentProps from \"../../../types/VibeComponentProps\";\n\nimport { type TabProps } from \"../Tab/Tab\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\n\nimport styles from \"./TabList.module.scss\";\n\nexport interface TabListProps extends VibeComponentProps {\n /**\n * Callback fired when the active tab changes.\n */\n onTabChange?: (tabId: number) => void;\n /**\n * The index of the currently active tab.\n */\n activeTabId?: number;\n /**\n * The type of tab style.\n */\n tabType?: string;\n /**\n * The size of the tab list.\n */\n size?: string;\n /**\n * If true, Sets an E2E underline under the whole tabs component.\n */\n stretchedUnderline?: boolean;\n /**\n * Array of corresponding TabPanel ids for aria-controls relationship.\n */\n tabPanelIds?: string[];\n /**\n * The child elements representing tabs.\n */\n children?: ReactElement<TabProps>[];\n}\nconst TabList: FC<TabListProps> = forwardRef(\n (\n {\n className,\n id,\n onTabChange = NOOP,\n activeTabId = 0,\n tabType = \"Compact\",\n size,\n stretchedUnderline = false,\n tabPanelIds = [],\n children,\n \"data-testid\": dataTestId\n },\n ref\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n const tabRefs = useRef<Record<number, HTMLElement | null>>({});\n\n const [activeTabState, setActiveTabState] = useState<number>(activeTabId);\n\n const prevActiveTabIdProp = usePrevious(activeTabId);\n const prevActiveTabState = usePrevious(activeTabState);\n\n useEffect(() => {\n // Update active tab if changed from props\n\n if (activeTabId !== prevActiveTabIdProp && activeTabId !== activeTabState) {\n setActiveTabState(activeTabId);\n }\n }, [activeTabId, prevActiveTabIdProp, activeTabState, setActiveTabState]);\n\n // Focus management: when activeTabState changes, focus the active tab\n useEffect(() => {\n if (\n prevActiveTabState !== undefined &&\n prevActiveTabState !== activeTabState &&\n tabRefs.current[activeTabState]\n ) {\n tabRefs.current[activeTabState]?.focus();\n }\n }, [activeTabState, prevActiveTabState]);\n\n const disabledTabIds = useMemo(() => {\n const disabledIds = new Set<number>();\n React.Children.forEach(children, (child, index) => {\n if (child.props.disabled) {\n disabledIds.add(index);\n }\n });\n return disabledIds;\n }, [children]);\n const onTabSelect = useCallback(\n (tabId: number) => {\n if (disabledTabIds.has(tabId)) return;\n setActiveTabState(tabId);\n onTabChange && onTabChange(tabId);\n },\n [onTabChange, disabledTabIds]\n );\n const onTabClick = useCallback(\n (value: HTMLElement | void, tabId: number) => {\n const tabCallbackFunc = children[tabId].props?.onClick;\n if (disabledTabIds.has(tabId)) return;\n if (tabCallbackFunc) tabCallbackFunc(tabId);\n onTabSelect(tabId);\n },\n [children, disabledTabIds, onTabSelect]\n );\n const getItemByIndex = useCallback((index: number): ReactElement<TabProps> => children[index], [children]);\n const disabledIndexes = useMemo(() => Array.from(disabledTabIds), [disabledTabIds]);\n const ulRef = useRef();\n const { activeIndex: focusIndex, onSelectionAction } = useGridKeyboardNavigation({\n ref: ulRef,\n numberOfItemsInLine: children?.length,\n itemsCount: children?.length,\n getItemByIndex,\n onItemClicked: onTabClick,\n disabledIndexes,\n circularNavigation: true\n });\n\n // Focus management: when focusIndex changes during keyboard navigation, focus the focused tab\n const prevFocusIndex = usePrevious(focusIndex);\n useEffect(() => {\n if (focusIndex !== undefined && focusIndex >= 0 && prevFocusIndex !== focusIndex && tabRefs.current[focusIndex]) {\n tabRefs.current[focusIndex]?.focus();\n }\n }, [focusIndex, prevFocusIndex]);\n\n const tabsToRender = useMemo(() => {\n const childrenToRender = React.Children.map(children, (child, index) => {\n const isActive = activeTabState === index;\n\n const shouldBeFocusable = focusIndex !== undefined && focusIndex >= 0 ? focusIndex === index : isActive;\n\n return React.cloneElement(child, {\n value: index,\n active: isActive,\n focus: focusIndex === index,\n onClick: onSelectionAction,\n stretchedUnderline,\n className: cx(styles.tabListTabWrapper, child.props.className),\n tabInnerClassName: cx(styles.tabListTabInner, child.props.tabInnerClassName),\n tabIndex: shouldBeFocusable ? 0 : -1,\n \"aria-controls\": tabPanelIds[index],\n ref: (element: HTMLElement | null) => {\n tabRefs.current[index] = element;\n }\n } as Partial<TabProps> & { ref: React.Ref<HTMLElement>; tabInnerLabelId?: string });\n });\n return childrenToRender;\n }, [children, activeTabState, focusIndex, onSelectionAction, stretchedUnderline, tabPanelIds, id]);\n\n return (\n <div\n ref={mergedRef}\n className={cx(styles.tabsWrapper, className, [getStyle(styles, camelCase(tabType))], {\n [styles.stretchedUnderline]: stretchedUnderline\n })}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TAB_LIST, id)}\n >\n <ul ref={ulRef} className={cx(styles.tabsList, [getStyle(styles, size)])} role=\"tablist\">\n {tabsToRender}\n </ul>\n </div>\n );\n }\n);\nObject.assign(TabList, {\n isTabList: true\n});\n\nexport default TabList;\n"],"names":["TabList","forwardRef","_ref","ref","className","id","_ref$onTabChange","onTabChange","NOOP","_ref$activeTabId","activeTabId","_ref$tabType","tabType","size","_ref$stretchedUnderli","stretchedUnderline","_ref$tabPanelIds","tabPanelIds","children","dataTestId","componentRef","useRef","mergedRef","useMergeRef","tabRefs","_useState","useState","_useState2","_slicedToArray","activeTabState","setActiveTabState","prevActiveTabIdProp","usePrevious","prevActiveTabState","useEffect","undefined","current","_a","focus","disabledTabIds","useMemo","disabledIds","Set","React","Children","forEach","child","index","props","disabled","add","onTabSelect","useCallback","tabId","has","onTabClick","value","tabCallbackFunc","onClick","getItemByIndex","disabledIndexes","Array","from","ulRef","_useGridKeyboardNavig","useGridKeyboardNavigation","numberOfItemsInLine","length","itemsCount","onItemClicked","circularNavigation","focusIndex","activeIndex","onSelectionAction","prevFocusIndex","tabsToRender","map","isActive","shouldBeFocusable","cloneElement","active","cx","styles","tabListTabWrapper","tabInnerClassName","tabListTabInner","tabIndex","element","createElement","tabsWrapper","getStyle","camelCase","_defineProperty","getTestId","ComponentDefaultTestId","TAB_LIST","tabsList","role","Object","assign","isTabList"],"mappings":"wxBAoDMA,IAAAA,EAA4BC,GAChC,SAAAC,EAaEC,GACE,IAZAC,EAASF,EAATE,UACAC,EAAEH,EAAFG,GAAEC,EAAAJ,EACFK,YAAAA,OAAcC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAP,EAClBQ,YAAAA,OAAc,IAAHD,EAAG,EAACA,EAAAE,EAAAT,EACfU,QAAAA,OAAU,IAAHD,EAAG,UAASA,EACnBE,EAAIX,EAAJW,KAAIC,EAAAZ,EACJa,mBAAAA,OAAqB,IAAHD,GAAQA,EAAAE,EAAAd,EAC1Be,YAAAA,OAAc,IAAHD,EAAG,GAAEA,EAChBE,EAAQhB,EAARgB,SACeC,EAAUjB,EAAzB,eAIIkB,EAAeC,EAAO,MACtBC,EAAYC,EAAYpB,EAAKiB,GAC7BI,EAAUH,EAA2C,CAAA,GAE3DI,EAA4CC,EAAiBhB,GAAYiB,EAAAC,EAAAH,EAAA,GAAlEI,EAAcF,EAAA,GAAEG,EAAiBH,EAAA,GAElCI,EAAsBC,EAAYtB,GAClCuB,EAAqBD,EAAYH,GAEvCK,GAAU,WAGJxB,IAAgBqB,GAAuBrB,IAAgBmB,GACzDC,EAAkBpB,EAErB,GAAE,CAACA,EAAaqB,EAAqBF,EAAgBC,IAGtDI,GAAU,sBAEiBC,IAAvBF,GACAA,IAAuBJ,GACvBL,EAAQY,QAAQP,KAEe,QAA/BQ,EAAAb,EAAQY,QAAQP,UAAe,IAAAQ,GAAAA,EAAEC,QAErC,GAAG,CAACT,EAAgBI,IAEpB,IAAMM,EAAiBC,GAAQ,WAC7B,IAAMC,EAAc,IAAIC,IAMxB,OALAC,EAAMC,SAASC,QAAQ3B,GAAU,SAAC4B,EAAOC,GACnCD,EAAME,MAAMC,UACdR,EAAYS,IAAIH,EAEpB,IACON,CACT,GAAG,CAACvB,IACEiC,EAAcC,GAClB,SAACC,GACKd,EAAee,IAAID,KACvBvB,EAAkBuB,GAClB9C,GAAeA,EAAY8C,GAC7B,GACA,CAAC9C,EAAagC,IAEVgB,EAAaH,GACjB,SAACI,EAA2BH,SACpBI,EAAyC,QAAvBpB,EAAAnB,EAASmC,GAAOL,aAAO,IAAAX,OAAA,EAAAA,EAAAqB,QAC3CnB,EAAee,IAAID,KACnBI,GAAiBA,EAAgBJ,GACrCF,EAAYE,GACb,GACD,CAACnC,EAAUqB,EAAgBY,IAEvBQ,EAAiBP,GAAY,SAACL,GAAa,OAA6B7B,EAAS6B,KAAQ,CAAC7B,IAC1F0C,EAAkBpB,GAAQ,WAAA,OAAMqB,MAAMC,KAAKvB,KAAiB,CAACA,IAC7DwB,EAAQ1C,IACd2C,EAAuDC,EAA0B,CAC/E9D,IAAK4D,EACLG,oBAAqBhD,aAAA,EAAAA,EAAUiD,OAC/BC,WAAYlD,aAAA,EAAAA,EAAUiD,OACtBR,eAAAA,EACAU,cAAed,EACfK,gBAAAA,EACAU,oBAAoB,IAPDC,EAAUP,EAAvBQ,YAAyBC,EAAiBT,EAAjBS,kBAW3BC,EAAiB1C,EAAYuC,GACnCrC,GAAU,sBACWC,IAAfoC,GAA4BA,GAAc,GAAKG,IAAmBH,GAAc/C,EAAQY,QAAQmC,KACvE,QAA3BlC,EAAAb,EAAQY,QAAQmC,UAAW,IAAAlC,GAAAA,EAAEC,QAEjC,GAAG,CAACiC,EAAYG,IAEhB,IAAMC,GAAenC,GAAQ,WAqB3B,OApByBG,EAAMC,SAASgC,IAAI1D,GAAU,SAAC4B,EAAOC,GAC5D,IAAM8B,EAAWhD,IAAmBkB,EAE9B+B,OAAmC3C,IAAfoC,GAA0C,EAAdA,EAAyCM,EAAvBN,IAAexB,EAEvF,OAAOJ,EAAMoC,aAAajC,EAAO,CAC/BU,MAAOT,EACPiC,OAAQH,EACRvC,MAAOiC,IAAexB,EACtBW,QAASe,EACT1D,mBAAAA,EACAX,UAAW6E,EAAGC,EAAOC,kBAAmBrC,EAAME,MAAM5C,WACpDgF,kBAAmBH,EAAGC,EAAOG,gBAAiBvC,EAAME,MAAMoC,mBAC1DE,SAAUR,EAAoB,GAAK,EACnC,gBAAiB7D,EAAY8B,GAC7B5C,IAAK,SAACoF,GACJ/D,EAAQY,QAAQW,GAASwC,CAC3B,GAEJ,GAEF,GAAG,CAACrE,EAAUW,EAAgB0C,EAAYE,EAAmB1D,EAAoBE,EAAaZ,IAE9F,OACEsC,EACE6C,cAAA,MAAA,CAAArF,IAAKmB,EACLlB,UAAW6E,EAAGC,EAAOO,YAAarF,EAAW,CAACsF,EAASR,EAAQS,EAAU/E,KAAUgF,EAChFV,CAAAA,EAAAA,EAAOnE,mBAAqBA,IAE/BV,GAAIA,gBACSc,GAAc0E,EAAUC,EAAuBC,SAAU1F,IAEtEsC,EAAA6C,cAAA,KAAA,CAAIrF,IAAK4D,EAAO3D,UAAW6E,EAAGC,EAAOc,SAAU,CAACN,EAASR,EAAQrE,KAASoF,KAAK,WAC5EtB,IAIT,IAEFuB,OAAOC,OAAOnG,EAAS,CACrBoG,WAAW"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e={tabsWrapper:"tabsWrapper_ab7a208044",tabsList:"tabsList_4ad002b444",sm:"sm_313c9f1eb4",lg:"lg_97a848f8df",stretched:"stretched_4fb1af6c03",tabListTabWrapper:"tabListTabWrapper_32872c93b9",tabListTabInner:"tabListTabInner_32872c93b9",disabled:"disabled_d7ef3ab1e2",stretchedUnderline:"stretchedUnderline_108a3f1b8c"};!function(e){const t="s_id-1dd2e005bc2f_4_5_12";if("undefined"!=typeof document){const a=document.head||document.getElementsByTagName("head")[0];if(a.querySelector("#"+t))return;const n=document.createElement("style");n.id=t,a.firstChild?a.insertBefore(n,a.firstChild):a.appendChild(n),n.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[t]=e)}("/* stylelint-disable */\n/* stylelint-enable */\n.tabsWrapper_ab7a208044 .tabsList_4ad002b444 {\n display: flex;\n flex-direction: row;\n list-style-type: none;\n font-size: 0;\n position: relative;\n height: 40px;\n outline: none;\n padding: 0;\n}\n.tabsWrapper_ab7a208044 .tabsList_4ad002b444.sm_313c9f1eb4 {\n height: 32px;\n}\n.tabsWrapper_ab7a208044 .tabsList_4ad002b444.lg_97a848f8df {\n height: 48px;\n}\n.tabsWrapper_ab7a208044.stretched_4fb1af6c03 .tabsList_4ad002b444 {\n width: 100%;\n}\n.tabsWrapper_ab7a208044.stretched_4fb1af6c03 .tabsList_4ad002b444 .tabListTabWrapper_32872c93b9 {\n width: 100%;\n}\n.tabsWrapper_ab7a208044.stretched_4fb1af6c03 .tabsList_4ad002b444 .tabListTabWrapper_32872c93b9 .tabListTabInner_32872c93b9 {\n width: 100%;\n}\n.tabsWrapper_ab7a208044.disabled_d7ef3ab1e2 {\n opacity: 0;\n height: 0;\n padding-bottom: 5px;\n pointer-events: none;\n}\n.tabsWrapper_ab7a208044.stretchedUnderline_108a3f1b8c {\n border-bottom: 2px solid var(--ui-background-color);\n}");export{e as default};
|
|
2
|
-
//# sourceMappingURL=TabList.module.scss.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabList.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import e,{forwardRef as t,useRef as a}from"react";import r from"classnames";import{getTestId as s,ComponentDefaultTestId as o}from"../../../tests/testIds.js";import m from"./TabPanel.module.scss.js";import{useMergeRef as d}from"../../../../shared/dist/hooks/useMergeRef.js";var i=t((function(t,i){var l=t.className,n=t.id,c=t.children,f=t.index,p=t["data-testid"],u=a(null),b=d(i,u);return e.createElement("div",{key:"".concat(n,"_").concat(f),ref:b,className:r(m.tabPanelWrapper,l),id:n,"data-testid":p||s(o.TAB_PANEL,n),role:"tabpanel"},c)}));export{i as default};
|
|
2
|
-
//# sourceMappingURL=TabPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabPanel.js","sources":["../../../../../src/components/Tabs/TabPanel/TabPanel.tsx"],"sourcesContent":["import React, { type FC, forwardRef, type ReactElement, useRef } from \"react\";\nimport cx from \"classnames\";\nimport { useMergeRef } from \"@vibe/shared\";\nimport type VibeComponentProps from \"../../../types/VibeComponentProps\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\nimport styles from \"./TabPanel.module.scss\";\n\nexport interface TabPanelProps extends VibeComponentProps {\n /**\n * The content inside the tab panel.\n */\n children?: ReactElement | ReactElement[] | string;\n /**\n * The index of the tab panel.\n */\n index?: number;\n}\n\nconst TabPanel: FC<TabPanelProps> = forwardRef(({ className, id, children, index, \"data-testid\": dataTestId }, ref) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n return (\n <div\n key={`${id}_${index}`}\n ref={mergedRef}\n className={cx(styles.tabPanelWrapper, className)}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TAB_PANEL, id)}\n role=\"tabpanel\"\n >\n {children}\n </div>\n );\n});\n\nexport default TabPanel;\n"],"names":["TabPanel","forwardRef","_ref","ref","className","id","children","index","dataTestId","componentRef","useRef","mergedRef","useMergeRef","React","key","concat","cx","styles","tabPanelWrapper","getTestId","ComponentDefaultTestId","TAB_PANEL","role"],"mappings":"kRAkBMA,IAAAA,EAA8BC,GAAW,SAAAC,EAAgEC,GAAO,IAApEC,EAASF,EAATE,UAAWC,EAAEH,EAAFG,GAAIC,EAAQJ,EAARI,SAAUC,EAAKL,EAALK,MAAsBC,EAAUN,EAAzB,eAC1EO,EAAeC,EAAO,MACtBC,EAAYC,EAAYT,EAAKM,GAEnC,OACEI,uBACEC,IAAG,GAAAC,OAAKV,OAAEU,OAAIR,GACdJ,IAAKQ,EACLP,UAAWY,EAAGC,EAAOC,gBAAiBd,GACtCC,GAAIA,EAAE,cACOG,GAAcW,EAAUC,EAAuBC,UAAWhB,GACvEiB,KAAK,YAEJhB,EAGP"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e={tabPanelWrapper:"tabPanelWrapper_241dde3dc3"};!function(e){const t="s_id-82244d4a2f7b_4_5_12";if("undefined"!=typeof document){const d=document.head||document.getElementsByTagName("head")[0];if(d.querySelector("#"+t))return;const a=document.createElement("style");a.id=t,d.firstChild?d.insertBefore(a,d.firstChild):d.appendChild(a),a.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[t]=e)}(".tabPanelWrapper_241dde3dc3 {\n color: var(--primary-text-color);\n}");export{e as default};
|
|
2
|
-
//# sourceMappingURL=TabPanel.module.scss.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabPanel.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import e from"classnames";import{camelCase as t}from"es-toolkit";import s,{forwardRef as a,useRef as r,useMemo as i}from"react";import{getTestId as o,ComponentDefaultTestId as n}from"../../../tests/testIds.js";import l from"./TabPanels.module.scss.js";import{useMergeRef as m}from"../../../../shared/dist/hooks/useMergeRef.js";import{getStyle as c}from"../../../../shared/dist/utils/typesciptCssModulesHelper.js";var d=a((function(a,d){var p=a.className,f=a.id,u=a.activeTabId,v=void 0===u?0:u,b=a.animationDirection,j=void 0===b?"rtl":b,h=a.children,N=a["data-testid"],P=r(null),g=m(d,P),T=i((function(){return s.Children.map(h,(function(a,r){var i=v===r;if(!i)return null;var o=i?"active":"non-active",n=i?"animation-direction-".concat(j):"";return s.cloneElement(a,Object.assign(Object.assign({index:r},a.props),{className:e(l.tabPanel,[c(l,o)],[c(l,t(n))],a.props.className)}))})).filter(Boolean)}),[h,v,j]);return s.createElement("div",{ref:g,className:e(l.tabPanelsWrapper,p),id:f,"data-testid":N||o(n.TAB_PANELS,f)},T)}));Object.assign(d,{isTabPanels:!0});export{d as default};
|
|
2
|
-
//# sourceMappingURL=TabPanels.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabPanels.js","sources":["../../../../../src/components/Tabs/TabPanels/TabPanels.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport { camelCase } from \"es-toolkit\";\nimport React, { forwardRef, type ReactElement, useMemo, useRef } from \"react\";\nimport { useMergeRef, getStyle } from \"@vibe/shared\";\nimport { type TabPanelsAnimationDirection } from \"./TabPanels.types\";\nimport { type TabPanelProps } from \"../TabPanel/TabPanel\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\n\nimport { type VibeComponentProps } from \"../../../types\";\nimport styles from \"./TabPanels.module.scss\";\n\nexport interface TabPanelsProps extends VibeComponentProps {\n /**\n * The index of the currently active tab panel.\n */\n activeTabId?: number;\n /**\n * The animation direction when switching between tab panels.\n */\n animationDirection?: TabPanelsAnimationDirection;\n /**\n * The child elements representing tab panels.\n */\n children?: ReactElement<TabPanelProps> | ReactElement<TabPanelProps>[];\n}\n\nconst TabPanels = forwardRef(\n (\n { className, id, activeTabId = 0, animationDirection = \"rtl\", children, \"data-testid\": dataTestId }: TabPanelsProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n const renderedTabs = useMemo(() => {\n return React.Children.map(children, (child, index) => {\n const isActiveTab = activeTabId === index;\n if (!isActiveTab) return null;\n const activeClass = isActiveTab ? \"active\" : \"non-active\";\n const animationClass = isActiveTab ? `animation-direction-${animationDirection}` : \"\";\n return React.cloneElement(child, {\n index,\n ...child.props,\n className: cx(\n styles.tabPanel,\n [getStyle(styles, activeClass)],\n [getStyle(styles, camelCase(animationClass))],\n child.props.className\n )\n });\n }).filter(Boolean);\n }, [children, activeTabId, animationDirection]);\n\n return (\n <div\n ref={mergedRef}\n className={cx(styles.tabPanelsWrapper, className)}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TAB_PANELS, id)}\n >\n {renderedTabs}\n </div>\n );\n }\n);\n\nObject.assign(TabPanels, {\n isTabPanels: true\n});\n\nexport default TabPanels;\n"],"names":["TabPanels","forwardRef","_ref","ref","className","id","_ref$activeTabId","activeTabId","_ref$animationDirecti","animationDirection","children","dataTestId","componentRef","useRef","mergedRef","useMergeRef","renderedTabs","useMemo","React","Children","map","child","index","isActiveTab","activeClass","animationClass","concat","cloneElement","Object","assign","props","cx","styles","tabPanel","getStyle","camelCase","filter","Boolean","createElement","tabPanelsWrapper","getTestId","ComponentDefaultTestId","TAB_PANELS","isTabPanels"],"mappings":"6ZA0BMA,IAAAA,EAAYC,GAChB,SAAAC,EAEEC,GACE,IAFAC,EAASF,EAATE,UAAWC,EAAEH,EAAFG,GAAEC,EAAAJ,EAAEK,YAAAA,OAAc,IAAHD,EAAG,EAACA,EAAAE,EAAAN,EAAEO,mBAAAA,OAAqB,IAAHD,EAAG,MAAKA,EAAEE,EAAQR,EAARQ,SAAyBC,EAAUT,EAAzB,eAGlEU,EAAeC,EAAO,MACtBC,EAAYC,EAAYZ,EAAKS,GAC7BI,EAAeC,GAAQ,WAC3B,OAAOC,EAAMC,SAASC,IAAIV,GAAU,SAACW,EAAOC,GAC1C,IAAMC,EAAchB,IAAgBe,EACpC,IAAKC,EAAa,OAAO,KACzB,IAAMC,EAAcD,EAAc,SAAW,aACvCE,EAAiBF,EAAW,uBAAAG,OAA0BjB,GAAuB,GACnF,OAAOS,EAAMS,aAAaN,EACxBO,OAAAC,OAAAD,OAAAC,OAAA,CAAAP,MAAAA,GACGD,EAAMS,QACT1B,UAAW2B,EACTC,EAAOC,SACP,CAACC,EAASF,EAAQR,IAClB,CAACU,EAASF,EAAQG,EAAUV,KAC5BJ,EAAMS,MAAM1B,aAGlB,IAAGgC,OAAOC,QACX,GAAE,CAAC3B,EAAUH,EAAaE,IAE3B,OACES,EAAAoB,cAAA,MAAA,CACEnC,IAAKW,EACLV,UAAW2B,EAAGC,EAAOO,iBAAkBnC,GACvCC,GAAIA,EACS,cAAAM,GAAc6B,EAAUC,EAAuBC,WAAYrC,IAEvEW,EAGP,IAGFY,OAAOC,OAAO7B,EAAW,CACvB2C,aAAa"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var a={tabPanelsWrapper:"tabPanelsWrapper_4a78cca0e7",tabPanel:"tabPanel_75147a5806",animationDirectionRtl:"animationDirectionRtl_5fa0c49198",animationDirectionLtr:"animationDirectionLtr_b25cf1c7bd",active:"active_b08b39b8da",panelSlideIn:"panelSlideIn_8b09faea94"};!function(a){const e="s_id-078bacbdb1e4_4_5_12";if("undefined"!=typeof document){const n=document.head||document.getElementsByTagName("head")[0];if(n.querySelector("#"+e))return;const t=document.createElement("style");t.id=e,n.firstChild?n.insertBefore(t,n.firstChild):n.appendChild(t),t.appendChild(document.createTextNode(a))}else globalThis.injectedStyles&&(globalThis.injectedStyles[e]=a)}("/* stylelint-disable */\n/* stylelint-enable */\n.tabPanelsWrapper_4a78cca0e7 .tabPanel_75147a5806 {\n display: none;\n}\n.tabPanelsWrapper_4a78cca0e7 .tabPanel_75147a5806.animationDirectionRtl_5fa0c49198 {\n transform: translateX(8px);\n}\n.tabPanelsWrapper_4a78cca0e7 .tabPanel_75147a5806.animationDirectionLtr_b25cf1c7bd {\n transform: translateX(-8px);\n}\n.tabPanelsWrapper_4a78cca0e7 .tabPanel_75147a5806.active_b08b39b8da {\n display: block;\n animation: panelSlideIn_8b09faea94 var(--motion-productive-long) forwards var(--motion-timing-enter);\n}\n@keyframes panelSlideIn_8b09faea94 {\n 100% {\n transform: translateX(0%);\n }\n}");export{a as default};
|
|
2
|
-
//# sourceMappingURL=TabPanels.module.scss.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabPanels.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import t,{forwardRef as r,useRef as a,useState as i,useEffect as n,useCallback as o,useMemo as s}from"react";import{getTestId as l,ComponentDefaultTestId as d}from"../../../tests/testIds.js";import c from"../../../../hooks/dist/usePrevious/index.js";import{useMergeRef as u}from"../../../../shared/dist/hooks/useMergeRef.js";var f=r((function(r,f){var p=r.className,m=r.id,h=r.activeTabId,v=void 0===h?0:h,T=r.children,b=r["data-testid"],C=a(null),E=u(f,C),I=i(v),P=e(I,2),g=P[0],j=P[1],y=i(v),N=e(y,2),_=N[0],k=N[1],x=c(v);n((function(){v!==x&&v!==_&&(j(_),k(v))}),[v,_,x]);var A=o((function(e){j(_),k(e)}),[_]),B=s((function(){var e=[];return t.Children.forEach(T,(function(r){r.type.isTabPanels&&t.Children.forEach(r.props.children,(function(t,r){e[r]=t.props.id}))})),e}),[T]);return t.createElement("div",{ref:E,className:p,id:m,"data-testid":b||l(d.TABS_CONTEXT,m)},t.Children.map(T,(function(e){if(e.type.isTabList){var r=e.props.onTabChange;return t.cloneElement(e,{activeTabId:_,onTabChange:function(e){A(e),null==r||r(e)},tabPanelIds:B})}return e.type.isTabPanels?t.cloneElement(e,{activeTabId:_,animationDirection:_>g?"ltr":"rtl"}):e})))}));export{f as default};
|
|
2
|
-
//# sourceMappingURL=TabsContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabsContext.js","sources":["../../../../../src/components/Tabs/TabsContext/TabsContext.tsx"],"sourcesContent":["import React, {\n type FC,\n forwardRef,\n type ReactElement,\n useCallback,\n useEffect,\n useRef,\n useState,\n useMemo\n} from \"react\";\nimport { useMergeRef } from \"@vibe/shared\";\nimport { usePrevious } from \"@vibe/hooks\";\nimport type VibeComponentProps from \"../../../types/VibeComponentProps\";\nimport { ComponentDefaultTestId, getTestId } from \"../../../tests/test-ids-utils\";\n\nexport interface TabsContextProps extends VibeComponentProps {\n /**\n * The index of the currently active tab.\n */\n activeTabId?: number;\n /**\n * The child elements representing the tab list and tab panels.\n */\n children?: ReactElement | ReactElement[];\n}\n\ntype TabsChild = ReactElement & {\n type: Record<string, unknown>;\n};\n\nconst TabsContext: FC<TabsContextProps> = forwardRef(\n ({ className, id, activeTabId = 0, children, \"data-testid\": dataTestId }, ref) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n const [previousActiveTabIdState, setPreviousActiveTabIdState] = useState(activeTabId);\n const [activeTabIdState, setActiveTabIdState] = useState(activeTabId);\n const prevActiveTabIdProp = usePrevious(activeTabId);\n\n useEffect(() => {\n // Update active tab if changed from props\n if (activeTabId !== prevActiveTabIdProp && activeTabId !== activeTabIdState) {\n setPreviousActiveTabIdState(activeTabIdState);\n setActiveTabIdState(activeTabId);\n }\n }, [activeTabId, activeTabIdState, prevActiveTabIdProp]);\n\n const onTabClick = useCallback(\n (tabId: number) => {\n setPreviousActiveTabIdState(activeTabIdState);\n setActiveTabIdState(tabId);\n },\n [activeTabIdState]\n );\n\n // Collect TabPanel ids for aria-controls relationship\n const tabPanelIds = useMemo(() => {\n const ids: string[] = [];\n React.Children.forEach(children, (child: TabsChild) => {\n if (child.type.isTabPanels) {\n React.Children.forEach(child.props.children, (panelChild: ReactElement, index: number) => {\n ids[index] = panelChild.props.id;\n });\n }\n });\n return ids;\n }, [children]);\n\n return (\n <div\n ref={mergedRef}\n className={className}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TABS_CONTEXT, id)}\n >\n {React.Children.map(children, (child: TabsChild) => {\n if (child.type.isTabList) {\n const originalOnTabChange = child.props.onTabChange;\n const onTabChange = (tabId: number) => {\n onTabClick(tabId);\n originalOnTabChange?.(tabId);\n };\n return React.cloneElement(child, { activeTabId: activeTabIdState, onTabChange, tabPanelIds });\n }\n if (child.type.isTabPanels) {\n const animationDirection = previousActiveTabIdState < activeTabIdState ? \"ltr\" : \"rtl\";\n return React.cloneElement(child, { activeTabId: activeTabIdState, animationDirection });\n }\n return child;\n })}\n </div>\n );\n }\n);\n\nexport default TabsContext;\n"],"names":["TabsContext","forwardRef","_ref","ref","className","id","_ref$activeTabId","activeTabId","children","dataTestId","componentRef","useRef","mergedRef","useMergeRef","_useState","useState","_useState2","_slicedToArray","previousActiveTabIdState","setPreviousActiveTabIdState","_useState3","_useState4","activeTabIdState","setActiveTabIdState","prevActiveTabIdProp","usePrevious","useEffect","onTabClick","useCallback","tabId","tabPanelIds","useMemo","ids","React","Children","forEach","child","type","isTabPanels","props","panelChild","index","createElement","getTestId","ComponentDefaultTestId","TABS_CONTEXT","map","isTabList","originalOnTabChange","onTabChange","cloneElement","animationDirection"],"mappings":"uZA8BMA,IAAAA,EAAoCC,GACxC,SAAAC,EAA0EC,GAAO,IAA9EC,EAASF,EAATE,UAAWC,EAAEH,EAAFG,GAAEC,EAAAJ,EAAEK,YAAAA,OAAc,IAAHD,EAAG,EAACA,EAAEE,EAAQN,EAARM,SAAyBC,EAAUP,EAAzB,eACrCQ,EAAeC,EAAO,MACtBC,EAAYC,EAAYV,EAAKO,GAEnCI,EAAgEC,EAASR,GAAYS,EAAAC,EAAAH,EAAA,GAA9EI,EAAwBF,EAAA,GAAEG,EAA2BH,EAAA,GAC5DI,EAAgDL,EAASR,GAAYc,EAAAJ,EAAAG,EAAA,GAA9DE,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,GACtCG,EAAsBC,EAAYlB,GAExCmB,GAAU,WAEJnB,IAAgBiB,GAAuBjB,IAAgBe,IACzDH,EAA4BG,GAC5BC,EAAoBhB,GAEvB,GAAE,CAACA,EAAae,EAAkBE,IAEnC,IAAMG,EAAaC,GACjB,SAACC,GACCV,EAA4BG,GAC5BC,EAAoBM,EACtB,GACA,CAACP,IAIGQ,EAAcC,GAAQ,WAC1B,IAAMC,EAAgB,GAQtB,OAPAC,EAAMC,SAASC,QAAQ3B,GAAU,SAAC4B,GAC5BA,EAAMC,KAAKC,aACbL,EAAMC,SAASC,QAAQC,EAAMG,MAAM/B,UAAU,SAACgC,EAA0BC,GACtET,EAAIS,GAASD,EAAWD,MAAMlC,EAChC,GAEJ,IACO2B,CACT,GAAG,CAACxB,IAEJ,OACEyB,EACES,cAAA,MAAA,CAAAvC,IAAKS,EACLR,UAAWA,EACXC,GAAIA,EACS,cAAAI,GAAckC,EAAUC,EAAuBC,aAAcxC,IAEzE4B,EAAMC,SAASY,IAAItC,GAAU,SAAC4B,GAC7B,GAAIA,EAAMC,KAAKU,UAAW,CACxB,IAAMC,EAAsBZ,EAAMG,MAAMU,YAKxC,OAAOhB,EAAMiB,aAAad,EAAO,CAAE7B,YAAae,EAAkB2B,YAJ9C,SAACpB,GACnBF,EAAWE,GACXmB,SAAAA,EAAsBnB,IAEuDC,YAAAA,GACjF,CACA,OAAIM,EAAMC,KAAKC,YAENL,EAAMiB,aAAad,EAAO,CAAE7B,YAAae,EAAkB6B,mBADZ7B,EAA3BJ,EAA8C,MAAQ,QAG5EkB,CACR,IAGP"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{defineProperty as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{getTestId as t,ComponentDefaultTestId as i}from"../../tests/testIds.js";import o from"classnames";import r,{forwardRef as s,useRef as l,useMemo as a}from"react";import n from"./TextWithHighlight.module.scss.js";import p from"../../../hooks/dist/useIsOverflowing/index.js";import m from"../../../components/tooltip/dist/Tooltip/Tooltip.js";import{useMergeRef as d}from"../../../shared/dist/hooks/useMergeRef.js";import{useIsomorphicLayoutEffect as c}from"../../../shared/dist/hooks/ssr/useIsomorphicLayoutEffect.js";var f=function(e,t,i){return i?r.createElement(arguments.length>3&&void 0!==arguments[3]?arguments[3]:"em",{className:o(n.highlightText,arguments.length>4?arguments[4]:void 0),key:t},e):r.createElement("span",{key:t},e)},h=s((function(s,h){var g=s.className,u=s.id,v=s.text,T=void 0===v?"":v,E=s.highlightTerm,j=s.limit,x=s.useEllipsis,H=void 0===x||x,y=s.linesToClamp,I=void 0===y?3:y,k=s.ignoreCase,w=void 0===k||k,N=s.allowTermSplit,P=void 0===N||N,W=s.nonEllipsisTooltip,_=s.wrappingTextTag,C=void 0===_?"em":_,b=s.wrappingElementClassName,G=s.tooltipProps,L=void 0===G?{}:G,O=s["data-testid"],R=l(null),$=d(h,R),B=a((function(){if(!T||!E||0===j)return T;var e=E.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");P&&(e=e.split(" ").join("|"));for(var t=RegExp("(".concat(e,")"),w?"i":""),i=T.split(t),o=[],r=0,s=0,l=0;i.length>l;l++)if(i[l]){var a=l%2==1;o.push(f(i[l],s++,a&&(!j||0>j||j>r),C,b)),a&&r++}return o}),[T,E,j,w,P,C,b]),M=p({ref:H&&R});c((function(){R.current&&R.current.style.setProperty("--heading-clamp-lines",""+I)}),[R,I,M]);var S=r.createElement("div",{ref:$,className:o(n.textWithHighlightWrapper,g,e({},n.withEllipsis,H)),id:u,"data-testid":O||t(i.TEXT_WITH_HIGHLIGHT,u)},B);return M||W?r.createElement(m,Object.assign({content:M?T:W},L),S):S}));export{h as default};
|
|
2
|
-
//# sourceMappingURL=TextWithHighlight.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextWithHighlight.js","sources":["../../../../src/components/TextWithHighlight/TextWithHighlight.tsx"],"sourcesContent":["import { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport React, { forwardRef, useMemo, useRef } from \"react\";\nimport { Tooltip, type TooltipProps } from \"@vibe/tooltip\";\nimport { useIsOverflowing } from \"@vibe/hooks\";\nimport { useIsomorphicLayoutEffect, useMergeRef } from \"@vibe/shared\";\n\nimport type VibeComponentProps from \"../../types/VibeComponentProps\";\nimport styles from \"./TextWithHighlight.module.scss\";\n\nconst getTextPart = (\n text: string,\n key: number,\n shouldHighlight: boolean,\n wrappingTextTag: keyof JSX.IntrinsicElements = \"em\",\n wrappingElementClassName: string\n) => {\n const WrappingElement = wrappingTextTag;\n if (shouldHighlight) {\n return (\n <WrappingElement className={cx(styles.highlightText, wrappingElementClassName)} key={key}>\n {text}\n </WrappingElement>\n );\n }\n return <span key={key}>{text}</span>;\n};\n\nexport interface TextWithHighlightProps extends VibeComponentProps {\n /**\n * The text content to display.\n */\n text?: string;\n /**\n * The term to highlight within the text.\n */\n highlightTerm?: string;\n /**\n * The maximum number of highlighted terms allowed.\n */\n limit?: number;\n /**\n * If true, the highlight search is case-insensitive.\n */\n ignoreCase?: boolean;\n /**\n * If true, truncates overflowing text with an ellipsis.\n */\n useEllipsis?: boolean;\n /**\n * If true, allows splitting the highlight term into separate words.\n */\n allowTermSplit?: boolean;\n /**\n * The number of lines to display before truncating with an ellipsis.\n */\n linesToClamp?: number;\n /**\n * Tooltip content displayed when there is no overflow.\n */\n nonEllipsisTooltip?: string;\n /**\n * The HTML tag used to wrap highlighted text.\n */\n wrappingTextTag?: keyof JSX.IntrinsicElements;\n /**\n * Class name applied to the wrapping element of highlighted text.\n */\n wrappingElementClassName?: string;\n /**\n * Additional props to customize the tooltip component.\n */\n tooltipProps?: Partial<TooltipProps>;\n}\n\nconst TextWithHighlight: React.FC<TextWithHighlightProps> = forwardRef(\n (\n {\n className,\n id,\n text = \"\",\n highlightTerm,\n limit,\n useEllipsis = true,\n linesToClamp = 3,\n ignoreCase = true,\n allowTermSplit = true,\n nonEllipsisTooltip,\n wrappingTextTag = \"em\",\n wrappingElementClassName,\n tooltipProps = {},\n \"data-testid\": dataTestId\n }: TextWithHighlightProps,\n ref\n ) => {\n const componentRef = useRef(null);\n const mergedRef = useMergeRef(ref, componentRef);\n\n const textWithHighlights = useMemo(() => {\n if (!text || !highlightTerm || limit === 0) return text;\n let finalTerm = escapeRegExp(highlightTerm);\n if (allowTermSplit) {\n finalTerm = finalTerm.split(\" \").join(\"|\");\n }\n const regex = new RegExp(`(${finalTerm})`, ignoreCase ? \"i\" : \"\");\n const tokens = text.split(regex);\n const parts = [];\n // Tokens include the term search (in odd indices)\n let highlightTermsCount = 0;\n let key = 0;\n for (let i = 0; i < tokens.length; i++) {\n // skip empty tokens\n if (tokens[i]) {\n // adding highlight part\n const isTermPart = i % 2 === 1;\n const shouldHighlight = isTermPart && (!limit || limit < 0 || highlightTermsCount < limit);\n parts.push(getTextPart(tokens[i], key++, shouldHighlight, wrappingTextTag, wrappingElementClassName));\n if (isTermPart) highlightTermsCount++;\n }\n }\n\n return parts;\n }, [text, highlightTerm, limit, ignoreCase, allowTermSplit, wrappingTextTag, wrappingElementClassName]);\n\n const isOverflowing = useIsOverflowing({ ref: useEllipsis && componentRef });\n\n useIsomorphicLayoutEffect(() => {\n if (componentRef.current) {\n componentRef.current.style.setProperty(\"--heading-clamp-lines\", linesToClamp.toString());\n }\n }, [componentRef, linesToClamp, isOverflowing]);\n\n const Element = (\n <div\n ref={mergedRef}\n className={cx(styles.textWithHighlightWrapper, className, {\n [styles.withEllipsis]: useEllipsis\n })}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TEXT_WITH_HIGHLIGHT, id)}\n >\n {textWithHighlights}\n </div>\n );\n\n if (isOverflowing || nonEllipsisTooltip) {\n const tooltipContent = isOverflowing ? text : nonEllipsisTooltip;\n return (\n <Tooltip content={tooltipContent} {...tooltipProps}>\n {Element}\n </Tooltip>\n );\n }\n return Element;\n }\n);\n\nexport default TextWithHighlight;\n\nfunction escapeRegExp(string: string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n"],"names":["getTextPart","text","key","shouldHighlight","React","arguments","length","undefined","className","cx","styles","highlightText","TextWithHighlight","forwardRef","_ref","ref","id","_ref$text","highlightTerm","limit","_ref$useEllipsis","useEllipsis","_ref$linesToClamp","linesToClamp","_ref$ignoreCase","ignoreCase","_ref$allowTermSplit","allowTermSplit","nonEllipsisTooltip","_ref$wrappingTextTag","wrappingTextTag","wrappingElementClassName","_ref$tooltipProps","tooltipProps","dataTestId","componentRef","useRef","mergedRef","useMergeRef","textWithHighlights","useMemo","finalTerm","replace","split","join","regex","RegExp","concat","tokens","parts","highlightTermsCount","i","isTermPart","push","isOverflowing","useIsOverflowing","useIsomorphicLayoutEffect","current","style","setProperty","Element","createElement","textWithHighlightWrapper","_defineProperty","withEllipsis","getTestId","ComponentDefaultTestId","TEXT_WITH_HIGHLIGHT","Tooltip","Object","assign","content"],"mappings":"0lBAUA,IAAMA,EAAc,SAClBC,EACAC,EACAC,GAKA,OAAIA,EAEAC,gBAN2CC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAA,KAM3B,CAACG,UAAWC,EAAGC,EAAOC,cALVN,UAAAC,OAAAD,EAAAA,kBAAAE,GAKoDL,IAAKA,GAClFD,GAIAG,wBAAMF,IAAKA,GAAMD,EAC1B,EAiDMW,EAAsDC,GAC1D,SAAAC,EAiBEC,GACE,IAhBAP,EAASM,EAATN,UACAQ,EAAEF,EAAFE,GAAEC,EAAAH,EACFb,KAAAA,OAAO,IAAHgB,EAAG,GAAEA,EACTC,EAAaJ,EAAbI,cACAC,EAAKL,EAALK,MAAKC,EAAAN,EACLO,YAAAA,OAAc,IAAHD,GAAOA,EAAAE,EAAAR,EAClBS,aAAAA,OAAe,IAAHD,EAAG,EAACA,EAAAE,EAAAV,EAChBW,WAAAA,OAAa,IAAHD,GAAOA,EAAAE,EAAAZ,EACjBa,eAAAA,OAAiB,IAAHD,GAAOA,EACrBE,EAAkBd,EAAlBc,mBAAkBC,EAAAf,EAClBgB,gBAAAA,OAAkB,IAAHD,EAAG,KAAIA,EACtBE,EAAwBjB,EAAxBiB,yBAAwBC,EAAAlB,EACxBmB,aAAAA,OAAY,IAAAD,EAAG,CAAE,EAAAA,EACFE,EAAUpB,EAAzB,eAIIqB,EAAeC,EAAO,MACtBC,EAAYC,EAAYvB,EAAKoB,GAE7BI,EAAqBC,GAAQ,WACjC,IAAKvC,IAASiB,GAA2B,IAAVC,EAAa,OAAOlB,EACnD,IAAIwC,EAAyBvB,EA4DnBwB,QAAQ,sBAAuB,QA3DrCf,IACFc,EAAYA,EAAUE,MAAM,KAAKC,KAAK,MAQxC,IANA,IAAMC,EAAYC,WAAMC,OAAKN,EAAS,KAAKhB,EAAa,IAAM,IACxDuB,EAAS/C,EAAK0C,MAAME,GACpBI,EAAQ,GAEVC,EAAsB,EACtBhD,EAAM,EACDiD,EAAI,EAAOH,EAAO1C,OAAX6C,EAAmBA,IAEjC,GAAIH,EAAOG,GAAI,CAEb,IAAMC,EAAaD,EAAI,GAAM,EAE7BF,EAAMI,KAAKrD,EAAYgD,EAAOG,GAAIjD,IADVkD,KAAgBjC,GAAiB,EAARA,GAAmCA,EAAtB+B,GACJpB,EAAiBC,IACvEqB,GAAYF,GAClB,CAGF,OAAOD,CACT,GAAG,CAAChD,EAAMiB,EAAeC,EAAOM,EAAYE,EAAgBG,EAAiBC,IAEvEuB,EAAgBC,EAAiB,CAAExC,IAAKM,GAAec,IAE7DqB,GAA0B,WACpBrB,EAAasB,SACftB,EAAasB,QAAQC,MAAMC,YAAY,wBAAyBpC,KAEnE,GAAE,CAACY,EAAcZ,EAAc+B,IAEhC,IAAMM,EACJxD,EACEyD,cAAA,MAAA,CAAA9C,IAAKsB,EACL7B,UAAWC,EAAGC,EAAOoD,yBAA0BtD,EAASuD,KACrDrD,EAAOsD,aAAe3C,IAEzBL,GAAIA,EACS,cAAAkB,GAAc+B,EAAUC,EAAuBC,oBAAqBnD,IAEhFuB,GAIL,OAAIe,GAAiB1B,EAGjBxB,EAAAyD,cAACO,EAAOC,OAAAC,OAAA,CAACC,QAFYjB,EAAgBrD,EAAO2B,GAENK,GACnC2B,GAIAA,CACT"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e={textWithHighlightWrapper:"textWithHighlightWrapper_cfffdb3a8c",highlightText:"highlightText_a72d4fd5bb",withEllipsis:"withEllipsis_8202e4bed3"};!function(e){const t="s_id-42c1fd2afe36_4_5_12";if("undefined"!=typeof document){const i=document.head||document.getElementsByTagName("head")[0];if(i.querySelector("#"+t))return;const l=document.createElement("style");l.id=t,i.firstChild?i.insertBefore(l,i.firstChild):i.appendChild(l),l.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[t]=e)}("/* stylelint-disable */\n/* stylelint-enable */\n.textWithHighlightWrapper_cfffdb3a8c {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n}\n.textWithHighlightWrapper_cfffdb3a8c em.highlightText_a72d4fd5bb {\n background-color: var(--primary-selected-color);\n color: var(--primary-text-color);\n border-radius: 2px;\n}\n.textWithHighlightWrapper_cfffdb3a8c.withEllipsis_8202e4bed3 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: var(--heading-clamp-lines);\n -webkit-box-orient: vertical;\n white-space: initial;\n word-break: break-word;\n}");export{e as default};
|
|
2
|
-
//# sourceMappingURL=TextWithHighlight.module.scss.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextWithHighlight.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{slicedToArray as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import r from"classnames";import t,{useState as n,useMemo as o,useEffect as i}from"react";import{generateRandomAlphaString as m,isAnySystemThemeClassNameOnBody as s,addSystemThemeClassNameToBody as a,removeSystemThemeClassNameFromBody as c,shouldGenerateTheme as l,generateThemeCssOverride as d}from"./ThemeProviderUtils.js";import{useIsomorphicLayoutEffect as u}from"../../../shared/dist/hooks/ssr/useIsomorphicLayoutEffect.js";var f=function(f){var h=f.themeConfig,p=f.children,v=f.themeClassSpecifier,y=f.systemTheme,g=f.className,C=n(!1),T=e(C,2),E=T[0],j=T[1],x=o((function(){return v||m()}),[v]);return u((function(){if(y&&!s())return a(y),function(){c(y)}}),[y]),i((function(){if(l(h)){if(!document.getElementById(h.name)){var e=document.createElement("style");e.type="text/css",e.id=h.name;var r=d(h,x);try{e.appendChild(document.createTextNode(r)),document.head.appendChild(e),j(!0)}catch(e){console.error("vibe ThemeProvider: error inserting theme-generated css - ",e)}return function(){document.head.removeChild(e)}}j(!0)}}),[x,h]),!E&&l(h)?null:t.createElement("div",{className:r(null==h?void 0:h.name,x,g)},p)};export{f as default};
|
|
2
|
-
//# sourceMappingURL=ThemeProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.js","sources":["../../../../src/components/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { type ReactElement, useEffect, useMemo, useState } from \"react\";\nimport { type Theme } from \"./ThemeProviderConstants\";\nimport { type SystemTheme } from \"./ThemeProvider.types\";\nimport {\n addSystemThemeClassNameToBody,\n generateRandomAlphaString,\n generateThemeCssOverride,\n isAnySystemThemeClassNameOnBody,\n removeSystemThemeClassNameFromBody,\n shouldGenerateTheme\n} from \"./ThemeProviderUtils\";\nimport { useIsomorphicLayoutEffect } from \"@vibe/shared\";\nexport interface ThemeProviderProps {\n /**\n * The theme configuration to apply. It consists of a `name` (a unique CSS class name added to the children)\n * and an object of color overrides for each system theme.\n */\n themeConfig?: Theme;\n /**\n * The children to be rendered with the applied theme.\n */\n children: ReactElement;\n /**\n * A string added to the theme name selector to make it more specific, in case `themeConfig.name`\n * collides with another class name.\n */\n themeClassSpecifier?: string;\n /**\n * The system theme to apply to the `body` element on mount,\n * if there is no system theme class name on the body already.\n */\n systemTheme?: SystemTheme;\n /**\n * Class name applied to the wrapping `div`.\n */\n className?: string;\n}\n\nconst ThemeProvider = ({\n themeConfig,\n children,\n themeClassSpecifier: customThemeClassSpecifier,\n systemTheme,\n className\n}: ThemeProviderProps) => {\n const [stylesLoaded, setStylesLoaded] = useState(false);\n const themeClassSpecifier = useMemo(\n () => customThemeClassSpecifier || generateRandomAlphaString(),\n [customThemeClassSpecifier]\n );\n\n // Add the systemTheme class name to the body on mount\n useIsomorphicLayoutEffect(() => {\n if (!systemTheme) {\n return;\n }\n\n if (isAnySystemThemeClassNameOnBody()) {\n // If there is already a systemTheme class name on the body, we don't want to override it\n return;\n }\n\n addSystemThemeClassNameToBody(systemTheme);\n\n return () => {\n // Cleanup the systemTheme class name from the body on ThemeProvider unmount\n removeSystemThemeClassNameFromBody(systemTheme);\n };\n }, [systemTheme]);\n\n useEffect(() => {\n if (!shouldGenerateTheme(themeConfig)) {\n return;\n }\n if (document.getElementById(themeConfig.name)) {\n setStylesLoaded(true);\n return;\n }\n\n const styleElement = document.createElement(\"style\");\n styleElement.type = \"text/css\";\n styleElement.id = themeConfig.name;\n const themeCssOverride = generateThemeCssOverride(themeConfig, themeClassSpecifier);\n\n try {\n styleElement.appendChild(document.createTextNode(themeCssOverride));\n document.head.appendChild(styleElement);\n setStylesLoaded(true);\n } catch (error) {\n console.error(\"vibe ThemeProvider: error inserting theme-generated css - \", error);\n }\n\n return () => {\n document.head.removeChild(styleElement);\n };\n }, [themeClassSpecifier, themeConfig]);\n\n if (!stylesLoaded && shouldGenerateTheme(themeConfig)) {\n // Waiting for styles to load before children render\n return null;\n }\n\n // Pass the theme name as a class to the div wrapping children - to scope the effect of the theme\n return <div className={cx(themeConfig?.name, themeClassSpecifier, className)}>{children}</div>;\n};\n\nexport default ThemeProvider;\n"],"names":["ThemeProvider","_ref","themeConfig","children","customThemeClassSpecifier","themeClassSpecifier","systemTheme","className","_useState","useState","_useState2","_slicedToArray","stylesLoaded","setStylesLoaded","useMemo","generateRandomAlphaString","useIsomorphicLayoutEffect","isAnySystemThemeClassNameOnBody","addSystemThemeClassNameToBody","removeSystemThemeClassNameFromBody","useEffect","shouldGenerateTheme","document","getElementById","name","styleElement","createElement","type","id","themeCssOverride","generateThemeCssOverride","appendChild","createTextNode","head","error","console","removeChild","React","cx"],"mappings":"4fAuCA,IAAMA,EAAgB,SAAHC,GAMM,IALvBC,EAAWD,EAAXC,YACAC,EAAQF,EAARE,SACqBC,EAAyBH,EAA9CI,oBACAC,EAAWL,EAAXK,YACAC,EAASN,EAATM,UAEAC,EAAwCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAAhDI,EAAYF,EAAA,GAAEG,EAAeH,EAAA,GAC9BL,EAAsBS,GAC1B,WAAA,OAAMV,GAA6BW,MACnC,CAACX,IAiDH,OA7CAY,GAA0B,WACxB,GAAKV,IAIDW,IAOJ,OAFAC,EAA8BZ,GAEvB,WAELa,EAAmCb,GAEvC,GAAG,CAACA,IAEJc,GAAU,WACR,GAAKC,EAAoBnB,GAAzB,CAGA,IAAIoB,SAASC,eAAerB,EAAYsB,MAAxC,CAKA,IAAMC,EAAeH,SAASI,cAAc,SAC5CD,EAAaE,KAAO,WACpBF,EAAaG,GAAK1B,EAAYsB,KAC9B,IAAMK,EAAmBC,EAAyB5B,EAAaG,GAE/D,IACEoB,EAAaM,YAAYT,SAASU,eAAeH,IACjDP,SAASW,KAAKF,YAAYN,GAC1BZ,GAAgB,EACjB,CAAC,MAAOqB,GACPC,QAAQD,MAAM,6DAA8DA,EAC9E,CAEA,OAAO,WACLZ,SAASW,KAAKG,YAAYX,GAhB5B,CAFEZ,GAAgB,EAFlB,CAsBF,GAAG,CAACR,EAAqBH,KAEpBU,GAAgBS,EAAoBnB,GAEhC,KAIFmC,EAAAX,cAAA,MAAA,CAAKnB,UAAW+B,EAAGpC,aAAA,EAAAA,EAAasB,KAAMnB,EAAqBE,IAAaJ,EACjF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProviderConstants.js","sources":["../../../../src/components/ThemeProvider/ThemeProviderConstants.ts"],"sourcesContent":["import { type SystemTheme, type ThemeColor } from \"./ThemeProvider.types\";\n\nexport type Theme = {\n /**\n * The name of the theme - name of css class that will be added to the children - should be unique\n */\n name: string;\n colors: SystemThemeColorMap;\n};\n\ntype SystemThemeColorMap = {\n [key in SystemTheme]?: ThemeColorTokenValueMap;\n};\n\nexport type ThemeColorTokenValueMap = ThemeColorTokenValue | ThemeCustomClassValue;\n\nexport type ThemeColorTokenValue = {\n [key in ThemeColor]?: string;\n};\n\ntype ThemeCustomClassValue = {\n [key: string]: ThemeColorTokenValue | ThemeCustomClassValue;\n};\n\nexport const SystemThemeClassMap: SystemThemeClassMapType = {\n light: \"light-app-theme\",\n dark: \"dark-app-theme\",\n black: \"black-app-theme\"\n};\n\ntype SystemThemeClassMapType = {\n [key in SystemTheme]: string;\n};\n"],"names":["SystemThemeClassMap","light","dark","black"],"mappings":"AAwBO,IAAMA,EAA+C,CAC1DC,MAAO,kBACPC,KAAM,iBACNC,MAAO"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{typeof as n}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{SystemThemeClassMap as t}from"./ThemeProviderConstants.js";var r=function t(r,o,c){for(var e=0,a=Object.keys(r);a.length>e;e++){var u=a[e];"string"==typeof r[u]&&(o+="--".concat(u,": ").concat(r[u],";"))}""!==o&&(o=c+" {"+o+"}");for(var i=0,l=Object.keys(r);l.length>i;i++){var f=l[i];if("object"===n(r[f])){var s="".concat(c," .").concat(f);o+="\n"+t(r[f],"",s)}}return o},o=function(n){return!!(null==n?void 0:n.colors)&&!!(null==n?void 0:n.name)},c=function(n,c){if(!o(n))return null;for(var e="",a=0,u=Object.keys(n.colors);u.length>a;a++){var i=u[a];e+=r(n.colors[i],"",".".concat(t[i]," .").concat(c,".").concat(n.name))+"\n"}return e},e=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:6,t="",r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",o=0;n>o;o++)t+=r.charAt(Math.floor(52*Math.random()));return t},a="-app-theme",u=function(n){return n.endsWith(a)},i=function(n){return"".concat(n).concat(a)},l=function(){for(var n=document.body.classList,t=0,r=Array.from(n);r.length>t;t++){var o=r[t];if(u(o))return o}return null},f=function(){return!!l()},s=function(n){document.body.classList.add(i(n))},v=function(n){document.body.classList.remove(i(n))};export{i as addAppThemeSuffix,s as addSystemThemeClassNameToBody,e as generateRandomAlphaString,c as generateThemeCssOverride,l as getBodySystemThemeClassName,f as isAnySystemThemeClassNameOnBody,v as removeSystemThemeClassNameFromBody,o as shouldGenerateTheme};
|
|
2
|
-
//# sourceMappingURL=ThemeProviderUtils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProviderUtils.js","sources":["../../../../src/components/ThemeProvider/ThemeProviderUtils.ts"],"sourcesContent":["import { type Theme, type ThemeColorTokenValueMap, SystemThemeClassMap } from \"./ThemeProviderConstants\";\nimport { type SystemTheme } from \"./ThemeProvider.types\";\n\nconst generateCss = (object: ThemeColorTokenValueMap, stack: string, parentSelector: string) => {\n for (const key of Object.keys(object)) {\n if (typeof object[key as keyof ThemeColorTokenValueMap] === \"string\") {\n stack += `--${key}: ${object[key as keyof ThemeColorTokenValueMap]};`;\n }\n }\n\n if (stack !== \"\") {\n stack = parentSelector + \" {\" + stack + \"}\";\n }\n\n for (const key of Object.keys(object)) {\n if (typeof object[key as keyof ThemeColorTokenValueMap] === \"object\") {\n const selector = `${parentSelector} .${key}`;\n stack +=\n \"\\n\" + generateCss(object[key as keyof ThemeColorTokenValueMap] as ThemeColorTokenValueMap, \"\", selector);\n }\n }\n\n return stack;\n};\n\nexport const shouldGenerateTheme = (themeConfig: Theme) => {\n return !!themeConfig?.colors && !!themeConfig?.name;\n};\n\nexport const generateThemeCssOverride = (themeConfig: Theme, themeClassSpecifier: string) => {\n if (!shouldGenerateTheme(themeConfig)) {\n return null;\n }\n\n let css = \"\";\n for (const systemTheme of Object.keys(themeConfig.colors) as SystemTheme[]) {\n css +=\n generateCss(\n themeConfig.colors[systemTheme],\n \"\",\n `.${SystemThemeClassMap[systemTheme]} .${themeClassSpecifier}.${themeConfig.name}`\n ) + \"\\n\";\n }\n\n return css;\n};\n\nexport const generateRandomAlphaString = (length = 6) => {\n let result = \"\";\n const characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n\n return result;\n};\n\nconst APP_THEME_SUFFIX = \"-app-theme\";\n\nconst isAppThemeClassName = (className: string) => {\n return className.endsWith(APP_THEME_SUFFIX);\n};\n\nexport const addAppThemeSuffix = (systemTheme: SystemTheme) => {\n return `${systemTheme}${APP_THEME_SUFFIX}`;\n};\n\nexport const getBodySystemThemeClassName = () => {\n const classList = document.body.classList;\n for (const className of Array.from(classList)) {\n if (isAppThemeClassName(className)) {\n return className;\n }\n }\n return null;\n};\n\nexport const isAnySystemThemeClassNameOnBody = () => {\n const bodySystemThemeClassName = getBodySystemThemeClassName();\n return !!bodySystemThemeClassName;\n};\n\nexport const addSystemThemeClassNameToBody = (systemTheme: SystemTheme) => {\n document.body.classList.add(addAppThemeSuffix(systemTheme));\n};\n\nexport const removeSystemThemeClassNameFromBody = (systemTheme: SystemTheme) => {\n document.body.classList.remove(addAppThemeSuffix(systemTheme));\n};\n"],"names":["generateCss","object","stack","parentSelector","_i","_Object$keys","Object","keys","length","key","concat","_i2","_Object$keys2","_typeof","selector","shouldGenerateTheme","themeConfig","colors","name","generateThemeCssOverride","themeClassSpecifier","css","_i3","_Object$keys3","systemTheme","SystemThemeClassMap","generateRandomAlphaString","arguments","undefined","result","characters","i","charAt","Math","floor","random","APP_THEME_SUFFIX","isAppThemeClassName","className","endsWith","addAppThemeSuffix","getBodySystemThemeClassName","classList","document","body","_i4","_Array$from","Array","from","isAnySystemThemeClassNameOnBody","addSystemThemeClassNameToBody","add","removeSystemThemeClassNameFromBody","remove"],"mappings":"0IAGA,IAAMA,EAAc,SAAdA,EAAeC,EAAiCC,EAAeC,GACnE,IAAA,IAAAC,EAAAC,EAAAA,EAAkBC,OAAOC,KAAKN,GAAOI,EAAAG,OAAAJ,EAAAA,IAAE,CAAlC,IAAMK,EAAGJ,EAAAD,GACgD,iBAAjDH,EAAOQ,KAChBP,GAAK,KAAAQ,OAASD,EAAG,MAAAC,OAAKT,EAAOQ,GAAwC,KAEzE,CAEc,KAAVP,IACFA,EAAQC,EAAiB,KAAOD,EAAQ,KAG1C,IAAA,IAAAS,EAAAC,EAAAA,EAAkBN,OAAOC,KAAKN,GAAOW,EAAAJ,OAAAG,EAAAA,IAAE,CAAlC,IAAMF,EAAGG,EAAAD,GACZ,GAA4D,WAAxDE,EAAOZ,EAAOQ,IAAoD,CACpE,IAAMK,KAAQJ,OAAMP,EAAcO,MAAAA,OAAKD,GACvCP,GACE,KAAOF,EAAYC,EAAOQ,GAAkE,GAAIK,EACpG,CACF,CAEA,OAAOZ,CACT,EAEaa,EAAsB,SAACC,GAClC,SAASA,aAAW,EAAXA,EAAaC,YAAYD,eAAAA,EAAaE,KACjD,EAEaC,EAA2B,SAACH,EAAoBI,GAC3D,IAAKL,EAAoBC,GACvB,OAAO,KAIT,IADA,IAAIK,EAAM,GACVC,IAAAC,EAA0BjB,OAAOC,KAAKS,EAAYC,QAAwBM,EAAAf,OAAAc,EAAAA,IAAE,CAAvE,IAAME,EAAWD,EAAAD,GACpBD,GACErB,EACEgB,EAAYC,OAAOO,GACnB,GAAE,IAAAd,OACEe,EAAoBD,GAAY,MAAAd,OAAKU,EAAmBV,KAAAA,OAAIM,EAAYE,OAC1E,IACR,CAEA,OAAOG,CACT,EAEaK,EAA4B,WAIvC,IAJsD,IAAdlB,EAAMmB,UAAAnB,OAAA,QAAAoB,IAAAD,UAAA,GAAAA,UAAA,GAAG,EAC7CE,EAAS,GACPC,EAAa,uDAEVC,EAAI,EAAOvB,EAAJuB,EAAYA,IAC1BF,GAAUC,EAAWE,OAAOC,KAAKC,MAAsBJ,GAAhBG,KAAKE,WAG9C,OAAON,CACT,EAEMO,EAAmB,aAEnBC,EAAsB,SAACC,GAC3B,OAAOA,EAAUC,SAASH,EAC5B,EAEaI,EAAoB,SAAChB,GAChC,MAAA,GAAAd,OAAUc,GAAWd,OAAG0B,EAC1B,EAEaK,EAA8B,WAEzC,IADA,IAAMC,EAAYC,SAASC,KAAKF,UAChCG,EAAAC,EAAAA,EAAwBC,MAAMC,KAAKN,GAAUI,EAAAtC,OAAAqC,EAAAA,IAAE,CAA1C,IAAMP,EAASQ,EAAAD,GAClB,GAAIR,EAAoBC,GACtB,OAAOA,CAEX,CACA,OAAO,IACT,EAEaW,EAAkC,WAE7C,QADiCR,GAEnC,EAEaS,EAAgC,SAAC1B,GAC5CmB,SAASC,KAAKF,UAAUS,IAAIX,EAAkBhB,GAChD,EAEa4B,EAAqC,SAAC5B,GACjDmB,SAASC,KAAKF,UAAUW,OAAOb,EAAkBhB,GACnD"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|