@vibe/core 4.5.1 → 4.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Dropdown/Dropdown.types.d.ts +17 -0
- package/dist/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.d.ts +5 -1
- package/dist/components/Dropdown/components/Trigger/DropdownInput.d.ts +4 -2
- package/dist/components/Dropdown/context/DropdownContext.types.d.ts +8 -1
- package/dist/components/Dropdown/hooks/useDropdownCombobox.d.ts +2 -2
- package/dist/components/Dropdown/hooks/useDropdownMultiCombobox.d.ts +373 -2
- package/dist/components/icon-button/dist/IconButton/IconButton.module.scss.js +1 -1
- package/dist/components/layout/dist/Box/Box.module.scss.js +1 -1
- package/dist/components/layout/dist/Flex/Flex.js +1 -1
- package/dist/components/layout/dist/Flex/Flex.js.map +1 -1
- package/dist/components/layout/dist/Flex/Flex.module.scss.js +1 -1
- package/dist/components/tooltip/dist/Tooltip/Tooltip.js +1 -1
- package/dist/components/tooltip/dist/Tooltip/Tooltip.js.map +1 -1
- 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 +27 -0
- package/dist/metadata/examples/DropdownBasicDropdown.md +16 -16
- package/dist/metadata.json +27 -0
- package/dist/mocked_classnames/components/Dropdown/Dropdown.types.d.ts +17 -0
- package/dist/mocked_classnames/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.d.ts +5 -1
- package/dist/mocked_classnames/components/Dropdown/components/Trigger/DropdownInput.d.ts +4 -2
- package/dist/mocked_classnames/components/Dropdown/context/DropdownContext.types.d.ts +8 -1
- package/dist/mocked_classnames/components/Dropdown/hooks/useDropdownCombobox.d.ts +2 -2
- package/dist/mocked_classnames/components/Dropdown/hooks/useDropdownMultiCombobox.d.ts +373 -2
- 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/Avatar/Avatar.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Avatar/AvatarBadge.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Avatar/AvatarContent.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/ButtonGroup/ButtonGroup.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Checkbox/Checkbox.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Chips/Chips.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/ColorPicker/ColorPicker.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerContent/ColorPickerClearButton.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerContent/ColorPickerColorsGrid.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.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/Counter/Counter.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/Divider/Divider.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/DropdownBase/DropdownBase.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/DropdownBase/DropdownBase.js.map +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.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/DropdownBaseList/DropdownBaseList.js.map +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/DropdownWrapperUI.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/DropdownWrapperUI.js.map +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.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.js.map +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/DropdownInput.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/DropdownInput.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/Trigger.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/TriggerActions.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/TriggerActions.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/hooks/useDropdownCombobox.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/hooks/useDropdownCombobox.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/hooks/useDropdownMultiCombobox.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/hooks/useDropdownMultiCombobox.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/modes/DropdownComboboxController.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/modes/DropdownComboboxController.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/modes/DropdownMultiComboboxController.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/modes/DropdownMultiComboboxController.js.map +1 -1
- package/dist/mocked_classnames/src/components/EditableHeading/EditableHeading.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/EditableText/EditableText.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/EditableTypography/EditableTypography.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/EmptyState/EmptyState.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/ExpandCollapse/ExpandCollapse.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/FieldLabel/FieldLabel.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/FormattedNumber/FormattedNumber.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/HiddenText/HiddenText.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/Label/Label.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Label/LabelCelebrationAnimation.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Link/Link.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/ProgressBars/PercentageLabel/PercentageLabel.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/ProgressBars/ProgressBar/Bar/Bar.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/ProgressBars/ProgressBar/ProgressBar.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/RadioButton/RadioButton.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Search/Search.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Skeleton/Skeleton.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/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.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/Tabs/Tab/Tab.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Tabs/TabList/TabList.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Tabs/TabPanel/TabPanel.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Tabs/TabPanels/TabPanels.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/TextWithHighlight/TextWithHighlight.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/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/Avatar/Avatar.module.scss.js +1 -1
- package/dist/src/components/Avatar/AvatarBadge.module.scss.js +1 -1
- package/dist/src/components/Avatar/AvatarContent.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/ButtonGroup/ButtonGroup.module.scss.js +1 -1
- package/dist/src/components/Checkbox/Checkbox.module.scss.js +1 -1
- package/dist/src/components/Chips/Chips.module.scss.js +1 -1
- package/dist/src/components/ColorPicker/ColorPicker.module.scss.js +1 -1
- package/dist/src/components/ColorPicker/components/ColorPickerContent/ColorPickerClearButton.module.scss.js +1 -1
- package/dist/src/components/ColorPicker/components/ColorPickerContent/ColorPickerColorsGrid.module.scss.js +1 -1
- package/dist/src/components/ColorPicker/components/ColorPickerItemComponent/ColorPickerItemComponent.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/Counter/Counter.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/Divider/Divider.module.scss.js +1 -1
- package/dist/src/components/Dropdown/components/DropdownBase/DropdownBase.js +1 -1
- package/dist/src/components/Dropdown/components/DropdownBase/DropdownBase.js.map +1 -1
- package/dist/src/components/Dropdown/components/DropdownBase/DropdownBase.module.scss.js +1 -1
- package/dist/src/components/Dropdown/components/DropdownBaseList/DropdownBaseList.js +1 -1
- package/dist/src/components/Dropdown/components/DropdownBaseList/DropdownBaseList.js.map +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/DropdownWrapperUI.js +1 -1
- package/dist/src/components/Dropdown/components/DropdownWrapperUI.js.map +1 -1
- package/dist/src/components/Dropdown/components/Menu/Menu.module.scss.js +1 -1
- package/dist/src/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.js +1 -1
- package/dist/src/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.js.map +1 -1
- package/dist/src/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.module.scss.js +1 -1
- package/dist/src/components/Dropdown/components/Trigger/DropdownInput.js +1 -1
- package/dist/src/components/Dropdown/components/Trigger/DropdownInput.js.map +1 -1
- package/dist/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js +1 -1
- package/dist/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js.map +1 -1
- package/dist/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js +1 -1
- package/dist/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js.map +1 -1
- package/dist/src/components/Dropdown/components/Trigger/Trigger.module.scss.js +1 -1
- package/dist/src/components/Dropdown/components/Trigger/TriggerActions.js +1 -1
- package/dist/src/components/Dropdown/components/Trigger/TriggerActions.js.map +1 -1
- package/dist/src/components/Dropdown/hooks/useDropdownCombobox.js +1 -1
- package/dist/src/components/Dropdown/hooks/useDropdownCombobox.js.map +1 -1
- package/dist/src/components/Dropdown/hooks/useDropdownMultiCombobox.js +1 -1
- package/dist/src/components/Dropdown/hooks/useDropdownMultiCombobox.js.map +1 -1
- package/dist/src/components/Dropdown/modes/DropdownComboboxController.js +1 -1
- package/dist/src/components/Dropdown/modes/DropdownComboboxController.js.map +1 -1
- package/dist/src/components/Dropdown/modes/DropdownMultiComboboxController.js +1 -1
- package/dist/src/components/Dropdown/modes/DropdownMultiComboboxController.js.map +1 -1
- package/dist/src/components/EditableHeading/EditableHeading.module.scss.js +1 -1
- package/dist/src/components/EditableText/EditableText.module.scss.js +1 -1
- package/dist/src/components/EditableTypography/EditableTypography.module.scss.js +1 -1
- package/dist/src/components/EmptyState/EmptyState.module.scss.js +1 -1
- package/dist/src/components/ExpandCollapse/ExpandCollapse.module.scss.js +1 -1
- package/dist/src/components/FieldLabel/FieldLabel.module.scss.js +1 -1
- package/dist/src/components/FormattedNumber/FormattedNumber.module.scss.js +1 -1
- package/dist/src/components/HiddenText/HiddenText.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/Label/Label.module.scss.js +1 -1
- package/dist/src/components/Label/LabelCelebrationAnimation.module.scss.js +1 -1
- package/dist/src/components/Link/Link.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/ProgressBars/PercentageLabel/PercentageLabel.module.scss.js +1 -1
- package/dist/src/components/ProgressBars/ProgressBar/Bar/Bar.module.scss.js +1 -1
- package/dist/src/components/ProgressBars/ProgressBar/ProgressBar.module.scss.js +1 -1
- package/dist/src/components/RadioButton/RadioButton.module.scss.js +1 -1
- package/dist/src/components/Search/Search.module.scss.js +1 -1
- package/dist/src/components/Skeleton/Skeleton.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/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.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/Tabs/Tab/Tab.module.scss.js +1 -1
- package/dist/src/components/Tabs/TabList/TabList.module.scss.js +1 -1
- package/dist/src/components/Tabs/TabPanel/TabPanel.module.scss.js +1 -1
- package/dist/src/components/Tabs/TabPanels/TabPanels.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/TextWithHighlight/TextWithHighlight.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/style/dist/index.min.css.js +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelectedValues.js","sources":["../../../../../../../src/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.tsx"],"sourcesContent":["import React, { useRef, useMemo, createRef } from \"react\";\nimport { type BaseItemData } from \"../../../BaseItem\";\nimport { Chips } from \"../../../Chips\";\nimport { Flex } from \"@vibe/layout\";\nimport { DialogContentContainer, Dialog } from \"@vibe/dialog\";\nimport useItemsOverflow from \"../../../../hooks/useItemsOverflow/useItemsOverflow\";\nimport styles from \"./MultiSelectedValues.module.scss\";\nimport cx from \"classnames\";\nimport DropdownChip from \"../Trigger/DropdownChip\";\n\nconst INPUT_DEDUCTED_WIDTH = 48;\n\ntype MultiSelectedValuesProps<Item> = {\n selectedItems: Item[];\n onRemove: (item: Item) => void;\n renderInput?: () => React.ReactNode;\n disabled?: boolean;\n readOnly?: boolean;\n minVisibleCount?: number;\n};\n\nfunction MultiSelectedValues<Item extends BaseItemData<Record<string, unknown>>>({\n selectedItems,\n onRemove,\n renderInput,\n disabled,\n readOnly,\n minVisibleCount = 0\n}: MultiSelectedValuesProps<Item>) {\n const containerRef = useRef<HTMLDivElement>(null);\n const deductedSpaceRef = useRef<HTMLDivElement>(null);\n\n const itemRefs = useMemo(() => selectedItems.map(() => createRef<HTMLDivElement>()), [selectedItems]);\n\n const { visibleCount, hasMeasured } = useItemsOverflow({\n containerRef,\n itemRefs,\n gap: 4,\n deductedSpaceRef,\n deductedWidth: renderInput ? INPUT_DEDUCTED_WIDTH : 0,\n minVisibleCount: selectedItems.length === 1 ? 1 : minVisibleCount\n });\n\n const { hiddenItems, hiddenCount } = useMemo(() => {\n const hiddenItems = selectedItems.length > visibleCount ? selectedItems.slice(visibleCount) : [];\n return {\n hiddenItems,\n hiddenCount: hiddenItems.length\n };\n }, [selectedItems, visibleCount]);\n\n const dialogContent = useMemo(() => {\n return () => (\n <DialogContentContainer>\n <Flex direction=\"column\" gap=\"xs\" align=\"start\" className={styles.hiddenChipsDialog}>\n {hiddenItems.map(item => {\n return (\n <DropdownChip\n key={`dropdown-chip-dialog-${item.value}`}\n item={item}\n onDelete={() => onRemove(item)}\n className={styles.dialogChip}\n disabled={disabled}\n readOnly={readOnly}\n />\n );\n })}\n </Flex>\n </DialogContentContainer>\n );\n }, [hiddenItems, onRemove, disabled, readOnly]);\n\n const chipElements = useMemo(() => {\n return selectedItems.map((item, index) => {\n const isVisible = index < visibleCount;\n\n return (\n <div\n key={`dropdown-chip-visible-${item.value}`}\n ref={itemRefs[index]}\n className={cx({\n [styles.chipWrapperWithOverflow]: minVisibleCount !== undefined,\n [styles.hiddenChip]: !isVisible\n })}\n aria-hidden={!isVisible}\n data-testid={`dropdown-chip-${item.value}`}\n >\n <DropdownChip\n item={item}\n onDelete={() => onRemove(item)}\n disabled={disabled}\n readOnly={readOnly}\n className={styles.visibleChip}\n />\n </div>\n );\n });\n }, [selectedItems, visibleCount, onRemove, itemRefs, disabled, readOnly, minVisibleCount]);\n\n if (!selectedItems?.length) return null;\n\n const isSingleChip = selectedItems.length === 1;\n\n return (\n <Flex\n align=\"center\"\n wrap={false}\n gap=\"xs\"\n ref={containerRef}\n className={cx(styles.containerWrapper, {\n [styles.singleChip]: isSingleChip,\n [styles.measuring]: !hasMeasured\n })}\n >\n {chipElements}\n\n <Flex gap=\"xs\" className={styles.inputAndCounterWrapper}>\n {hiddenCount > 0 && (\n <div\n ref={deductedSpaceRef}\n onClick={e => {\n e.stopPropagation();\n }}\n onKeyDown={e => {\n e.stopPropagation();\n }}\n onMouseDown={e => {\n e.stopPropagation();\n }}\n >\n <Dialog\n content={dialogContent}\n showTrigger={[\"click\", \"enter\"]}\n hideTrigger={[\"clickoutside\", \"enter\"]}\n position=\"bottom\"\n moveBy={{ main: 4 }}\n hideWhenReferenceHidden\n addKeyboardHideShowTriggersByDefault\n >\n <Chips\n label={`+ ${hiddenCount}`}\n readOnly\n noMargin\n aria-label={`+${hiddenCount}. ${selectedItems.length - hiddenCount} items are visible out of ${\n selectedItems.length\n }`}\n data-testid=\"dropdown-overflow-counter\"\n className={styles.overflowCounter}\n onClick={() => {}}\n onMouseDown={e => {\n e.preventDefault();\n }}\n />\n </Dialog>\n </div>\n )}\n {renderInput && <div className={styles.inputWrapper}>{renderInput()}</div>}\n </Flex>\n </Flex>\n );\n}\n\nexport default MultiSelectedValues;\n"],"names":["MultiSelectedValues","_ref","selectedItems","onRemove","renderInput","disabled","readOnly","_ref$minVisibleCount","minVisibleCount","containerRef","useRef","deductedSpaceRef","itemRefs","useMemo","map","createRef","_useItemsOverflow","useItemsOverflow","gap","deductedWidth","length","visibleCount","hasMeasured","_useMemo","hiddenItems","slice","hiddenCount","dialogContent","React","DialogContentContainer","createElement","Flex","direction","align","className","styles","hiddenChipsDialog","item","DropdownChip","key","concat","value","onDelete","dialogChip","chipElements","index","isVisible","ref","cx","_defineProperty","chipWrapperWithOverflow","undefined","hiddenChip","visibleChip","wrap","containerWrapper","singleChip","measuring","inputAndCounterWrapper","onClick","e","stopPropagation","onKeyDown","onMouseDown","Dialog","content","showTrigger","hideTrigger","position","moveBy","main","hideWhenReferenceHidden","addKeyboardHideShowTriggersByDefault","Chips","label","noMargin","overflowCounter","preventDefault","inputWrapper"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MultiSelectedValues.js","sources":["../../../../../../../src/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.tsx"],"sourcesContent":["import React, { useRef, useMemo, useCallback, createRef } from \"react\";\nimport { type BaseItemData } from \"../../../BaseItem\";\nimport { Chips } from \"../../../Chips\";\nimport { Flex } from \"@vibe/layout\";\nimport { DialogContentContainer, Dialog } from \"@vibe/dialog\";\nimport { useMergeRef } from \"@vibe/shared\";\nimport useItemsOverflow from \"../../../../hooks/useItemsOverflow/useItemsOverflow\";\nimport styles from \"./MultiSelectedValues.module.scss\";\nimport cx from \"classnames\";\nimport DropdownChip from \"../Trigger/DropdownChip\";\n\nconst INPUT_DEDUCTED_WIDTH = 48;\n\ntype MultiSelectedValuesProps<Item> = {\n selectedItems: Item[];\n onRemove: (item: Item) => void;\n renderInput?: () => React.ReactNode;\n disabled?: boolean;\n readOnly?: boolean;\n minVisibleCount?: number;\n /** Extra props (tabIndex, onKeyDown, etc.) to spread on each visible chip container. */\n getChipContainerProps?: (item: Item, index: number) => Record<string, any>;\n /** Ref forwarded to the +N overflow Chips element, for external keyboard focus management. */\n badgeRef?: React.Ref<HTMLDivElement>;\n};\n\nfunction MultiSelectedValues<Item extends BaseItemData<Record<string, unknown>>>({\n selectedItems,\n onRemove,\n renderInput,\n disabled,\n readOnly,\n minVisibleCount = 0,\n getChipContainerProps,\n badgeRef\n}: MultiSelectedValuesProps<Item>) {\n const containerRef = useRef<HTMLDivElement>(null);\n const deductedSpaceRef = useRef<HTMLDivElement>(null);\n const dialogContentRef = useRef<HTMLDivElement>(null);\n const localBadgeRef = useRef<HTMLDivElement>(null);\n const mergedBadgeRef = useMergeRef(badgeRef, localBadgeRef);\n\n // Focus the dialog's first control on open. onDialogDidShow fires just before the content mounts,\n // so defer to the next frame.\n const handleDialogDidShow = useCallback(() => {\n requestAnimationFrame(() => {\n const firstFocusable = dialogContentRef.current?.querySelector<HTMLElement>(\n \"button, [href], input, [tabindex]:not([tabindex='-1'])\"\n );\n firstFocusable?.focus();\n });\n }, []);\n\n // Return focus to the +N badge when the dialog is dismissed with Esc. Defer to the next frame:\n // onDialogDidHide fires before the dialog content unmounts, and that teardown would otherwise\n // reset focus to <body> (the top of the page) after a synchronous focus call.\n const handleDialogDidHide = useCallback((_event: unknown, eventName: string) => {\n if (eventName !== \"esckey\") return;\n requestAnimationFrame(() => {\n const badge =\n localBadgeRef.current ??\n deductedSpaceRef.current?.querySelector<HTMLElement>('[data-testid=\"dropdown-overflow-counter\"]');\n badge?.focus();\n });\n }, []);\n\n const itemRefs = useMemo(() => selectedItems.map(() => createRef<HTMLDivElement>()), [selectedItems]);\n\n const { visibleCount, hasMeasured } = useItemsOverflow({\n containerRef,\n itemRefs,\n gap: 4,\n deductedSpaceRef,\n deductedWidth: renderInput ? INPUT_DEDUCTED_WIDTH : 0,\n minVisibleCount: selectedItems.length === 1 ? 1 : minVisibleCount\n });\n\n const { hiddenItems, hiddenCount } = useMemo(() => {\n const hiddenItems = selectedItems.length > visibleCount ? selectedItems.slice(visibleCount) : [];\n return {\n hiddenItems,\n hiddenCount: hiddenItems.length\n };\n }, [selectedItems, visibleCount]);\n\n const dialogContent = useMemo(() => {\n return () => (\n <DialogContentContainer>\n <Flex direction=\"column\" gap=\"xs\" align=\"start\" ref={dialogContentRef} className={styles.hiddenChipsDialog}>\n {hiddenItems.map(item => {\n return (\n <DropdownChip\n key={`dropdown-chip-dialog-${item.value}`}\n item={item}\n onDelete={() => onRemove(item)}\n className={styles.dialogChip}\n disabled={disabled}\n readOnly={readOnly}\n />\n );\n })}\n </Flex>\n </DialogContentContainer>\n );\n }, [hiddenItems, onRemove, disabled, readOnly]);\n\n const chipElements = useMemo(() => {\n return selectedItems.map((item, index) => {\n const isVisible = index < visibleCount;\n const extraProps = isVisible && getChipContainerProps ? getChipContainerProps(item, index) : {};\n const { ref: extraRef, ...extraAttrs } = extraProps;\n\n return (\n <div\n key={`dropdown-chip-visible-${item.value}`}\n ref={el => {\n (itemRefs[index] as React.MutableRefObject<HTMLDivElement | null>).current = el;\n if (typeof extraRef === \"function\") extraRef(el);\n }}\n className={cx({\n [styles.chipWrapperWithOverflow]: minVisibleCount !== undefined,\n [styles.hiddenChip]: !isVisible\n })}\n aria-hidden={!isVisible}\n data-testid={`dropdown-chip-${item.value}`}\n {...extraAttrs}\n >\n <DropdownChip\n item={item}\n onDelete={() => onRemove(item)}\n disabled={disabled}\n readOnly={readOnly}\n className={styles.visibleChip}\n />\n </div>\n );\n });\n }, [selectedItems, visibleCount, onRemove, itemRefs, disabled, readOnly, minVisibleCount, getChipContainerProps]);\n\n if (!selectedItems?.length) return null;\n\n const isSingleChip = selectedItems.length === 1;\n\n return (\n <Flex\n align=\"center\"\n wrap={false}\n gap=\"xs\"\n ref={containerRef}\n role=\"group\"\n aria-label=\"selected items\"\n className={cx(styles.containerWrapper, {\n [styles.singleChip]: isSingleChip,\n [styles.measuring]: !hasMeasured\n })}\n >\n {chipElements}\n\n <Flex gap=\"xs\" className={styles.inputAndCounterWrapper}>\n {hiddenCount > 0 && (\n <div\n ref={deductedSpaceRef}\n onClick={e => {\n e.stopPropagation();\n }}\n onKeyDown={e => {\n e.stopPropagation();\n if (e.key === \"ArrowLeft\") {\n e.preventDefault();\n (itemRefs[visibleCount - 1] as React.MutableRefObject<HTMLDivElement | null>)?.current?.focus();\n }\n }}\n onMouseDown={e => {\n e.stopPropagation();\n }}\n >\n <Dialog\n content={dialogContent}\n showTrigger={[\"click\", \"enter\"]}\n // \"enter\" is intentionally NOT a hide trigger: Enter keydown opens and the Enter keyup\n // would otherwise immediately toggle it shut. Close via Esc or click-outside instead.\n hideTrigger={[\"clickoutside\"]}\n position=\"bottom\"\n moveBy={{ main: 4 }}\n hideWhenReferenceHidden\n addKeyboardHideShowTriggersByDefault\n onDialogDidShow={handleDialogDidShow}\n onDialogDidHide={handleDialogDidHide}\n >\n <Chips\n ref={mergedBadgeRef}\n label={`+ ${hiddenCount}`}\n readOnly\n noMargin\n aria-label={`+${hiddenCount}. ${selectedItems.length - hiddenCount} items are visible out of ${\n selectedItems.length\n }`}\n data-testid=\"dropdown-overflow-counter\"\n className={styles.overflowCounter}\n onClick={() => {}}\n onMouseDown={e => {\n e.preventDefault();\n }}\n />\n </Dialog>\n </div>\n )}\n {renderInput && <div className={styles.inputWrapper}>{renderInput()}</div>}\n </Flex>\n </Flex>\n );\n}\n\nexport default MultiSelectedValues;\n"],"names":["MultiSelectedValues","_ref","selectedItems","onRemove","renderInput","disabled","readOnly","_ref$minVisibleCount","minVisibleCount","getChipContainerProps","badgeRef","containerRef","useRef","deductedSpaceRef","dialogContentRef","localBadgeRef","mergedBadgeRef","useMergeRef","handleDialogDidShow","useCallback","requestAnimationFrame","firstFocusable","_a","current","querySelector","focus","handleDialogDidHide","_event","eventName","badge","_b","itemRefs","useMemo","map","createRef","_useItemsOverflow","useItemsOverflow","gap","deductedWidth","length","visibleCount","hasMeasured","_useMemo","hiddenItems","slice","hiddenCount","dialogContent","React","DialogContentContainer","createElement","Flex","direction","align","ref","className","styles","hiddenChipsDialog","item","DropdownChip","key","concat","value","onDelete","dialogChip","chipElements","index","isVisible","extraProps","extraRef","extraAttrs","__rest","Object","assign","el","cx","_defineProperty","chipWrapperWithOverflow","undefined","hiddenChip","visibleChip","wrap","role","containerWrapper","singleChip","measuring","inputAndCounterWrapper","onClick","e","stopPropagation","onKeyDown","preventDefault","onMouseDown","Dialog","content","showTrigger","hideTrigger","position","moveBy","main","hideWhenReferenceHidden","addKeyboardHideShowTriggersByDefault","onDialogDidShow","onDialogDidHide","Chips","label","noMargin","overflowCounter","inputWrapper"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var n={containerWrapper:"containerWrapper",singleChip:"singleChip",measuring:"measuring",hiddenChip:"hiddenChip",inputAndCounterWrapper:"inputAndCounterWrapper",inputWrapper:"inputWrapper",chipWrapperWithOverflow:"chipWrapperWithOverflow",visibleChip:"visibleChip",hiddenChipsDialog:"hiddenChipsDialog",dialogChip:"dialogChip"};!function(n){const i="s_id-
|
|
1
|
+
var n={containerWrapper:"containerWrapper",singleChip:"singleChip",measuring:"measuring",hiddenChip:"hiddenChip",inputAndCounterWrapper:"inputAndCounterWrapper",inputWrapper:"inputWrapper",chipWrapperWithOverflow:"chipWrapperWithOverflow",visibleChip:"visibleChip",hiddenChipsDialog:"hiddenChipsDialog",dialogChip:"dialogChip"};!function(n){const i="s_id-a777ca35d111_4_5_2";if("undefined"!=typeof document){const e=document.head||document.getElementsByTagName("head")[0];if(e.querySelector("#"+i))return;const p=document.createElement("style");p.id=i,e.firstChild?e.insertBefore(p,e.firstChild):e.appendChild(p),p.appendChild(document.createTextNode(n))}else globalThis.injectedStyles&&(globalThis.injectedStyles[i]=n)}(".containerWrapper {\n min-width: 1px;\n flex-grow: 1;\n}\n.containerWrapper.singleChip > div:first-child {\n min-width: 50px;\n flex-shrink: 1;\n}\n.containerWrapper.singleChip > div:first-child div {\n max-width: 100%;\n}\n.containerWrapper.measuring > div:not(.hiddenChip) {\n opacity: 0;\n}\n.inputAndCounterWrapper {\n flex-grow: 1;\n min-width: 0;\n}\n.inputWrapper {\n flex-grow: 1;\n}\n.inputWrapper input {\n width: 100%;\n}\n.chipWrapperWithOverflow {\n max-width: 100%;\n flex-shrink: 0;\n}\n.chipWrapperWithOverflow .visibleChip {\n max-width: 100%;\n}\n.hiddenChip {\n position: absolute;\n visibility: hidden;\n pointer-events: none;\n z-index: -1;\n}\n.hiddenChipsDialog {\n max-width: 192px;\n}\n.dialogChip {\n max-width: 100%;\n}");export{n as default};
|
|
2
2
|
//# sourceMappingURL=MultiSelectedValues.module.scss.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineProperty as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import l,{useRef as t}from"react";import
|
|
1
|
+
import{defineProperty as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import l,{useRef as a,useMemo as t}from"react";import r from"classnames";import{BaseInput as o}from"@vibe/base/mockedClassNames";import i from"./Trigger.module.scss.js";import{useDropdownContext as n}from"../../context/DropdownContext.js";import{Text as s}from"@vibe/typography/mockedClassNames";var m=function(m){var d=m.inputSize,c=m.fullWidth,p=m.onKeyDown,u=m.inputRef,b=n(),f=b.inputValue,v=b.autoFocus,g=b.disabled,h=b.readOnly,y=b.placeholder,x=b.multi,j=b.selectedItem,E=b.selectedItems,F=void 0===E?[]:E,N=b.inputAriaLabel,O=b["aria-label"],P=b.searchable,w=b.size,C=b.label,D=b.isOpen,I=b.getDropdownProps,z=b.getLabelProps,B=b.getInputProps,K=b.interactiveChips,S=b.helperTextId,T=a(null),W=t((function(){return x?function(e){return e.map((function(e){return e.label||e.value||""})).filter(Boolean).join(", ")}(F):""}),[x,F]),k=null!=u?u:T,A=x?F.length>0:!!j,H=I?I({preventKeyAction:K?!(!f||0>=f.length):D}):{},L="".concat(z().id,"-selected-value"),R=[S,W?L:void 0].filter(Boolean).join(" ")||void 0;return l.createElement(l.Fragment,null,P?l.createElement(l.Fragment,null,l.createElement(o,Object.assign({},B(Object.assign({"aria-labelledby":C?z().id:void 0,"aria-label":N||(C?void 0:O),"aria-describedby":R,"aria-haspopup":"dialog",placeholder:A?"":y,ref:k,onKeyDown:p},H)),{inputRole:"combobox",value:f||"",autoFocus:v,size:d||w,className:r(i.inputWrapper,e(e(e(e(e({},i.hasSelected,!x&&j&&!f),i.small,"small"===d),i.multi,x&&A),i.multiSelected,x&&A&&"small"===d),i.fullWidth,c)),disabled:g,readOnly:h})),W&&l.createElement("span",{id:L,className:i.visuallyHidden},W)):l.createElement(l.Fragment,null,!A&&y&&l.createElement(s,{color:"secondary",className:r(i.placeholderText,e({},i.disabled,!!g)),type:"small"===w?"text2":"text1"},y)))};export{m as default};
|
|
2
2
|
//# sourceMappingURL=DropdownInput.js.map
|
package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/DropdownInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownInput.js","sources":["../../../../../../../src/components/Dropdown/components/Trigger/DropdownInput.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport cx from \"classnames\";\nimport { BaseInput } from \"@vibe/base\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseItemData } from \"../../../BaseItem\";\nimport { Text } from \"@vibe/typography\";\n\nconst DropdownInput = ({
|
|
1
|
+
{"version":3,"file":"DropdownInput.js","sources":["../../../../../../../src/components/Dropdown/components/Trigger/DropdownInput.tsx"],"sourcesContent":["import React, { useMemo, useRef, type RefObject } from \"react\";\nimport cx from \"classnames\";\nimport { BaseInput } from \"@vibe/base\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseItemData } from \"../../../BaseItem\";\nimport { Text } from \"@vibe/typography\";\n\n// Screen-reader announcement of the current multi-select selection, surfaced via aria-describedby.\nfunction getSelectedValueText(selectedItems: BaseItemData[]): string {\n return selectedItems\n .map(item => item.label || item.value || \"\")\n .filter(Boolean)\n .join(\", \");\n}\n\nconst DropdownInput = ({\n inputSize,\n fullWidth,\n onKeyDown: externalKeyDown,\n inputRef: externalInputRef\n}: {\n inputSize?: \"small\" | \"medium\" | \"large\";\n fullWidth?: boolean;\n onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>;\n inputRef?: RefObject<HTMLInputElement>;\n}) => {\n const {\n inputValue,\n autoFocus,\n disabled,\n readOnly,\n placeholder,\n multi,\n selectedItem,\n selectedItems = [],\n inputAriaLabel,\n \"aria-label\": ariaLabel,\n searchable,\n size,\n label,\n isOpen,\n getDropdownProps,\n getLabelProps,\n getInputProps,\n interactiveChips,\n helperTextId\n } = useDropdownContext<BaseItemData>();\n\n const internalRef = useRef<HTMLInputElement>(null);\n const selectedValueText = useMemo(() => (multi ? getSelectedValueText(selectedItems) : \"\"), [multi, selectedItems]);\n\n const inputRef = externalInputRef ?? internalRef;\n const hasSelection = multi ? selectedItems.length > 0 : !!selectedItem;\n // interactiveChips: suppress Backspace/Arrow chip-navigation only while the input has text (so those\n // keys edit the text); when the input is empty they reach the chips. Default multi gates it on isOpen.\n const preventKeyAction = interactiveChips ? !!(inputValue && inputValue.length > 0) : isOpen;\n const multipleSelectionDropdownProps = getDropdownProps ? getDropdownProps({ preventKeyAction }) : {};\n\n // Id for the visually hidden element that announces the current selection (multi-select chips only;\n // single-select keeps the value inside the input). Derived from the downshift-generated label id so\n // it's unique per dropdown instance and stable across SSR/hydration (no Math.random / useId).\n const selectedValueId = `${getLabelProps().id}-selected-value`;\n const describedBy =\n [helperTextId, selectedValueText ? selectedValueId : undefined].filter(Boolean).join(\" \") || undefined;\n\n return (\n <>\n {searchable ? (\n <>\n <BaseInput\n {...getInputProps({\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n // Fall back to the field's aria-label so the input still has a name when there's no label.\n \"aria-label\": inputAriaLabel || (label ? undefined : ariaLabel),\n \"aria-describedby\": describedBy,\n \"aria-haspopup\": \"dialog\",\n placeholder: hasSelection ? \"\" : placeholder,\n ref: inputRef,\n onKeyDown: externalKeyDown,\n ...multipleSelectionDropdownProps\n })}\n inputRole=\"combobox\"\n value={inputValue || \"\"}\n autoFocus={autoFocus}\n size={inputSize || size}\n className={cx(styles.inputWrapper, {\n [styles.hasSelected]: !multi && selectedItem && !inputValue,\n [styles.small]: inputSize === \"small\",\n [styles.multi]: multi && hasSelection,\n [styles.multiSelected]: multi && hasSelection && inputSize === \"small\",\n [styles.fullWidth]: fullWidth\n })}\n disabled={disabled}\n readOnly={readOnly}\n />\n {selectedValueText && (\n <span id={selectedValueId} className={styles.visuallyHidden}>\n {selectedValueText}\n </span>\n )}\n </>\n ) : (\n <>\n {!hasSelection && placeholder && (\n <Text\n color=\"secondary\"\n className={cx(styles.placeholderText, {\n [styles.disabled]: !!disabled\n })}\n type={size === \"small\" ? \"text2\" : \"text1\"}\n >\n {placeholder}\n </Text>\n )}\n </>\n )}\n </>\n );\n};\n\nexport default DropdownInput;\n"],"names":["DropdownInput","_ref","inputSize","fullWidth","externalKeyDown","onKeyDown","externalInputRef","inputRef","_useDropdownContext","useDropdownContext","inputValue","autoFocus","disabled","readOnly","placeholder","multi","selectedItem","_useDropdownContext$s","selectedItems","inputAriaLabel","ariaLabel","searchable","size","label","isOpen","getDropdownProps","getLabelProps","getInputProps","interactiveChips","helperTextId","internalRef","useRef","selectedValueText","useMemo","map","item","value","filter","Boolean","join","getSelectedValueText","hasSelection","length","multipleSelectionDropdownProps","preventKeyAction","selectedValueId","concat","id","describedBy","undefined","React","createElement","Fragment","BaseInput","Object","assign","ref","inputRole","className","cx","styles","inputWrapper","_defineProperty","hasSelected","small","multiSelected","visuallyHidden","Text","color","placeholderText","type"],"mappings":"8XAgBA,IAAMA,EAAgB,SAAHC,GAUd,IATHC,EAASD,EAATC,UACAC,EAASF,EAATE,UACWC,EAAeH,EAA1BI,UACUC,EAAgBL,EAA1BM,SAOAC,EAoBIC,IAnBFC,EAAUF,EAAVE,WACAC,EAASH,EAATG,UACAC,EAAQJ,EAARI,SACAC,EAAQL,EAARK,SACAC,EAAWN,EAAXM,YACAC,EAAKP,EAALO,MACAC,EAAYR,EAAZQ,aAAYC,EAAAT,EACZU,cAAAA,OAAgB,IAAHD,EAAG,GAAEA,EAClBE,EAAcX,EAAdW,eACcC,EAASZ,EAAvB,cACAa,EAAUb,EAAVa,WACAC,EAAId,EAAJc,KACAC,EAAKf,EAALe,MACAC,EAAMhB,EAANgB,OACAC,EAAgBjB,EAAhBiB,iBACAC,EAAalB,EAAbkB,cACAC,EAAanB,EAAbmB,cACAC,EAAgBpB,EAAhBoB,iBACAC,EAAYrB,EAAZqB,aAGIC,EAAcC,EAAyB,MACvCC,EAAoBC,GAAQ,WAAA,OAAOlB,EAzC3C,SAA8BG,GAC5B,OAAOA,EACJgB,KAAI,SAAAC,GAAI,OAAIA,EAAKZ,OAASY,EAAKC,OAAS,EAAG,IAC3CC,OAAOC,SACPC,KAAK,KACV,CAoCmDC,CAAqBtB,GAAiB,EAAE,GAAG,CAACH,EAAOG,IAE9FX,EAAWD,QAAAA,EAAoBwB,EAC/BW,EAAe1B,EAAQG,EAAcwB,OAAS,IAAM1B,EAIpD2B,EAAiClB,EAAmBA,EAAiB,CAAEmB,iBADpDhB,KAAsBlB,GAAkC,GAApBA,EAAWgC,QAAclB,IACa,CAAA,EAK7FqB,KAAeC,OAAMpB,IAAgBqB,GAAmB,mBACxDC,EACJ,CAACnB,EAAcG,EAAoBa,OAAkBI,GAAWZ,OAAOC,SAASC,KAAK,WAAQU,EAE/F,OACEC,EACGC,cAAAD,EAAAE,SAAA,KAAA/B,EACC6B,EAAAC,cAAAD,EAAAE,SAAA,KACEF,EAAAC,cAACE,EACKC,OAAAC,OAAA,GAAA5B,EACF2B,OAAAC,OAAA,CAAA,kBAAmBhC,EAAQG,IAAgBqB,QAAKE,EAEhD,aAAc9B,IAAmBI,OAAQ0B,EAAY7B,GACrD,mBAAoB4B,EACpB,gBAAiB,SACjBlC,YAAa2B,EAAe,GAAK3B,EACjC0C,IAAKjD,EACLF,UAAWD,GACRuC,IAEL,CAAAc,UAAU,WACVrB,MAAO1B,GAAc,GACrBC,UAAWA,EACXW,KAAMpB,GAAaoB,EACnBoC,UAAWC,EAAGC,EAAOC,aAAYC,EAAAA,EAAAA,EAAAA,EAAAA,EAC9BF,CAAAA,EAAAA,EAAOG,aAAehD,GAASC,IAAiBN,GAChDkD,EAAOI,MAAsB,UAAd9D,GACf0D,EAAO7C,MAAQA,GAAS0B,GACxBmB,EAAOK,cAAgBlD,GAAS0B,GAA8B,UAAdvC,GAChD0D,EAAOzD,UAAYA,IAEtBS,SAAUA,EACVC,SAAUA,KAEXmB,GACCkB,EAAAC,cAAA,OAAA,CAAMJ,GAAIF,EAAiBa,UAAWE,EAAOM,gBAC1ClC,IAKPkB,EACGC,cAAAD,EAAAE,SAAA,MAACX,GAAgB3B,GAChBoC,EAAAC,cAACgB,EACC,CAAAC,MAAM,YACNV,UAAWC,EAAGC,EAAOS,gBAAeP,EACjCF,GAAAA,EAAOhD,WAAaA,IAEvB0D,KAAe,UAAThD,EAAmB,QAAU,SAElCR,IAOf"}
|
package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"react";import{Flex as
|
|
1
|
+
import e,{useRef as t}from"react";import{Flex as r}from"@vibe/layout/mockedClassNames";import l from"../MultiSelectedValues/MultiSelectedValues.js";import n from"./DropdownInput.js";import{useDropdownContext as i}from"../../context/DropdownContext.js";import a from"./TriggerActions.js";import o from"./Trigger.module.scss.js";import{getStyle as m}from"@vibe/shared";import s from"classnames";import d from"./DropdownChip.js";var u=function(){var u=i(),c=u.selectedItems,p=void 0===c?[]:c,v=u.contextOnOptionRemove,f=u.getSelectedItemProps,b=u.multiline,g=u.disabled,E=u.readOnly,h=u.error,y=u.size,I=u.searchable,C=u.getToggleButtonProps,j=u.label,x=u.getLabelProps,w=u["aria-label"],O=u.minVisibleCount,S=u.interactiveChips,D=u.helperTextId,T=p.length>0,V=t(null);return e.createElement(r,{justify:"space-between",align:"center"},e.createElement("div",Object.assign({className:s(o.triggerWrapper,m(o,y))},I?{}:C({"aria-haspopup":"dialog","aria-labelledby":j?x().id:void 0,"aria-label":j?void 0:w,"aria-describedby":D,"aria-disabled":g?"true":void 0,"aria-invalid":h?"true":void 0,"aria-readonly":E?"true":void 0})),S&&I&&!E?0===p.length?e.createElement(n,null):e.createElement("div",{className:o.multiWrapper,onKeyDown:function(e){"ArrowLeft"===e.key&&e.target instanceof HTMLInputElement&&!e.target.value&&V.current&&V.current.focus()}},e.createElement(l,{disabled:g,readOnly:E,selectedItems:p,onRemove:function(e){return null==v?void 0:v(e)},renderInput:function(){return e.createElement(n,{inputSize:"small",fullWidth:!0})},getChipContainerProps:function(e,t){var r;return null!==(r=null==f?void 0:f({selectedItem:e,index:t}))&&void 0!==r?r:{}},badgeRef:V,minVisibleCount:O})):T?e.createElement("div",{className:o.multiWrapper},b?e.createElement(r,{gap:"xs",wrap:!0},p.map((function(t,l){var i,a;return e.createElement(r,{key:(null!==(a=null!==(i=t.id)&&void 0!==i?i:t.value)&&void 0!==a?a:l)+""},e.createElement("div",{style:{flexShrink:0}},e.createElement(d,{item:t,onDelete:function(){null==v||v(t)},readOnly:E,disabled:g})),l===p.length-1&&e.createElement(n,{inputSize:"small"}))}))):e.createElement(l,{disabled:g,readOnly:E,selectedItems:p,onRemove:function(e){null==v||v(e)},renderInput:I?function(){return e.createElement(n,{inputSize:"small",fullWidth:!0})}:void 0,minVisibleCount:O})):e.createElement(n,null)),e.createElement(a,null))};export{u as default};
|
|
2
2
|
//# sourceMappingURL=MultiSelectTrigger.js.map
|
package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelectTrigger.js","sources":["../../../../../../../src/components/Dropdown/components/Trigger/MultiSelectTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport { Flex } from \"@vibe/layout\";\nimport MultiSelectedValues from \"../MultiSelectedValues/MultiSelectedValues\";\nimport DropdownInput from \"./DropdownInput\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseItemData } from \"../../../BaseItem\";\nimport TriggerActions from \"./TriggerActions\";\nimport styles from \"./Trigger.module.scss\";\nimport { getStyle } from \"@vibe/shared\";\nimport cx from \"classnames\";\nimport DropdownChip from \"./DropdownChip\";\n\nconst MultiSelectTrigger = () => {\n const {\n selectedItems = [],\n contextOnOptionRemove,\n multiline,\n disabled,\n readOnly,\n error,\n size,\n searchable,\n getToggleButtonProps,\n label,\n getLabelProps,\n \"aria-label\": ariaLabel,\n minVisibleCount\n } = useDropdownContext<BaseItemData>();\n\n
|
|
1
|
+
{"version":3,"file":"MultiSelectTrigger.js","sources":["../../../../../../../src/components/Dropdown/components/Trigger/MultiSelectTrigger.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport { Flex } from \"@vibe/layout\";\nimport MultiSelectedValues from \"../MultiSelectedValues/MultiSelectedValues\";\nimport DropdownInput from \"./DropdownInput\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseItemData } from \"../../../BaseItem\";\nimport TriggerActions from \"./TriggerActions\";\nimport styles from \"./Trigger.module.scss\";\nimport { getStyle } from \"@vibe/shared\";\nimport cx from \"classnames\";\nimport DropdownChip from \"./DropdownChip\";\n\nconst MultiSelectTrigger = () => {\n const {\n selectedItems = [],\n contextOnOptionRemove,\n getSelectedItemProps,\n multiline,\n disabled,\n readOnly,\n error,\n size,\n searchable,\n getToggleButtonProps,\n label,\n getLabelProps,\n \"aria-label\": ariaLabel,\n minVisibleCount,\n interactiveChips,\n helperTextId\n } = useDropdownContext<BaseItemData>();\n\n const showChips = selectedItems.length > 0;\n const overflowBadgeRef = useRef<HTMLDivElement>(null);\n\n const renderTriggerContent = () => {\n if (interactiveChips && searchable && !readOnly) {\n if (selectedItems.length === 0) {\n return <DropdownInput />;\n }\n return (\n <div\n className={styles.multiWrapper}\n onKeyDown={e => {\n if (\n e.key === \"ArrowLeft\" &&\n e.target instanceof HTMLInputElement &&\n !e.target.value &&\n overflowBadgeRef.current\n ) {\n overflowBadgeRef.current.focus();\n }\n }}\n >\n <MultiSelectedValues\n disabled={disabled}\n readOnly={readOnly}\n selectedItems={selectedItems}\n onRemove={item => contextOnOptionRemove?.(item)}\n renderInput={() => <DropdownInput inputSize=\"small\" fullWidth />}\n getChipContainerProps={(item, index) => getSelectedItemProps?.({ selectedItem: item, index }) ?? {}}\n badgeRef={overflowBadgeRef}\n minVisibleCount={minVisibleCount}\n />\n </div>\n );\n }\n\n // Default chips mode: original behavior.\n if (showChips) {\n return (\n <div className={styles.multiWrapper}>\n {!multiline ? (\n <MultiSelectedValues\n disabled={disabled}\n readOnly={readOnly}\n selectedItems={selectedItems}\n onRemove={item => {\n contextOnOptionRemove?.(item);\n }}\n renderInput={searchable ? () => <DropdownInput inputSize=\"small\" fullWidth /> : undefined}\n minVisibleCount={minVisibleCount}\n />\n ) : (\n <Flex gap=\"xs\" wrap>\n {selectedItems.map((item, index) => (\n <Flex key={String(item.id ?? item.value ?? index)}>\n <div style={{ flexShrink: 0 }}>\n <DropdownChip\n item={item}\n onDelete={() => {\n contextOnOptionRemove?.(item);\n }}\n readOnly={readOnly}\n disabled={disabled}\n />\n </div>\n {index === selectedItems.length - 1 && <DropdownInput inputSize=\"small\" />}\n </Flex>\n ))}\n </Flex>\n )}\n </div>\n );\n }\n\n return <DropdownInput />;\n };\n\n return (\n <Flex justify=\"space-between\" align=\"center\">\n <div\n className={cx(styles.triggerWrapper, getStyle(styles, size))}\n {...(!searchable\n ? getToggleButtonProps({\n \"aria-haspopup\": \"dialog\",\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": label ? undefined : ariaLabel,\n \"aria-describedby\": helperTextId,\n \"aria-disabled\": disabled ? \"true\" : undefined,\n \"aria-invalid\": error ? \"true\" : undefined,\n \"aria-readonly\": readOnly ? \"true\" : undefined\n })\n : {})}\n >\n {renderTriggerContent()}\n </div>\n <TriggerActions />\n </Flex>\n );\n};\n\nexport default MultiSelectTrigger;\n"],"names":["MultiSelectTrigger","_useDropdownContext","useDropdownContext","_useDropdownContext$s","selectedItems","contextOnOptionRemove","getSelectedItemProps","multiline","disabled","readOnly","error","size","searchable","getToggleButtonProps","label","getLabelProps","ariaLabel","minVisibleCount","interactiveChips","helperTextId","showChips","length","overflowBadgeRef","useRef","React","createElement","Flex","justify","align","Object","assign","className","cx","styles","triggerWrapper","getStyle","id","undefined","DropdownInput","multiWrapper","onKeyDown","e","key","target","HTMLInputElement","value","current","focus","MultiSelectedValues","onRemove","item","renderInput","inputSize","fullWidth","getChipContainerProps","index","_a","selectedItem","badgeRef","gap","wrap","map","_b","String","style","flexShrink","DropdownChip","onDelete","TriggerActions"],"mappings":"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"}
|
package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineProperty as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import r from"react";import t from"classnames";import a from"../../../BaseItem/BaseItem.js";import i from"./DropdownInput.js";import l from"./Trigger.module.scss.js";import{useDropdownContext as o}from"../../context/DropdownContext.js";import{Flex as s}from"@vibe/layout/mockedClassNames";import n from"./TriggerActions.js";import{getStyle as
|
|
1
|
+
import{defineProperty as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import r from"react";import t from"classnames";import a from"../../../BaseItem/BaseItem.js";import i from"./DropdownInput.js";import l from"./Trigger.module.scss.js";import{useDropdownContext as o}from"../../context/DropdownContext.js";import{Flex as s}from"@vibe/layout/mockedClassNames";import n from"./TriggerActions.js";import{getStyle as d}from"@vibe/shared";var m=function(){var m,p=o(),c=p.isFocused,u=p.selectedItem,b=p.searchable,v=p.size,g=p.valueRenderer,f=p.getToggleButtonProps,j=p.disabled,y=p.readOnly,E=p.error,I=p.label,O=p.getLabelProps,h=p["aria-label"],x=p.helperTextId,B=p.inlineSelectedValue,P=(B?!b:!p.inputValue)&&!!u;return r.createElement(s,{justify:"space-between",align:"center"},r.createElement("div",Object.assign({className:t(l.triggerWrapper,d(l,v))},b?{}:f({"aria-haspopup":"dialog","aria-labelledby":I?O().id:void 0,"aria-label":I?void 0:h,"aria-describedby":x,"aria-disabled":j?"true":void 0,"aria-invalid":E?"true":void 0,"aria-readonly":y?"true":void 0})),r.createElement(i,null),P&&r.createElement("div",{className:t(l.selectedItem,e({},l.faded,!B&&c&&b),d(l,v))},r.createElement(a,{component:"div",itemRenderer:g,size:v,readOnly:!0,item:Object.assign(Object.assign({},u),{disabled:j,startElement:"indent"===(null===(m=u.startElement)||void 0===m?void 0:m.type)?void 0:u.startElement})}))),r.createElement(n,null))};export{m as default};
|
|
2
2
|
//# sourceMappingURL=SingleSelectTrigger.js.map
|
package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleSelectTrigger.js","sources":["../../../../../../../src/components/Dropdown/components/Trigger/SingleSelectTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport cx from \"classnames\";\nimport { BaseItem, type BaseItemData } from \"../../../BaseItem\";\nimport DropdownInput from \"./DropdownInput\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { Flex } from \"@vibe/layout\";\nimport TriggerActions from \"./TriggerActions\";\nimport { getStyle } from \"@vibe/shared\";\n\nconst SingleSelectTrigger = () => {\n const {\n inputValue,\n selectedItem,\n searchable,\n size,\n valueRenderer,\n
|
|
1
|
+
{"version":3,"file":"SingleSelectTrigger.js","sources":["../../../../../../../src/components/Dropdown/components/Trigger/SingleSelectTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport cx from \"classnames\";\nimport { BaseItem, type BaseItemData } from \"../../../BaseItem\";\nimport DropdownInput from \"./DropdownInput\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { Flex } from \"@vibe/layout\";\nimport TriggerActions from \"./TriggerActions\";\nimport { getStyle } from \"@vibe/shared\";\n\nconst SingleSelectTrigger = () => {\n const {\n inputValue,\n isFocused,\n selectedItem,\n searchable,\n size,\n valueRenderer,\n getToggleButtonProps,\n disabled,\n readOnly,\n error,\n label,\n getLabelProps,\n \"aria-label\": ariaLabel,\n helperTextId,\n inlineSelectedValue\n } = useDropdownContext<BaseItemData>();\n\n // inlineSelectedValue puts the selected label inside the input, so the overlay only renders for\n // non-searchable single select. Without it (default), the selection is shown via the overlay —\n // including in searchable mode, faded while the input is focused (the original behavior).\n const showSelectedOverlay = (inlineSelectedValue ? !searchable : !inputValue) && !!selectedItem;\n\n return (\n <Flex justify=\"space-between\" align=\"center\">\n <div\n className={cx(styles.triggerWrapper, getStyle(styles, size))}\n {...(!searchable\n ? getToggleButtonProps({\n \"aria-haspopup\": \"dialog\",\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": label ? undefined : ariaLabel,\n \"aria-describedby\": helperTextId,\n \"aria-disabled\": disabled ? \"true\" : undefined,\n \"aria-invalid\": error ? \"true\" : undefined,\n \"aria-readonly\": readOnly ? \"true\" : undefined\n })\n : {})}\n >\n <DropdownInput />\n\n {showSelectedOverlay && (\n <div\n className={cx(\n styles.selectedItem,\n { [styles.faded]: !inlineSelectedValue && isFocused && searchable },\n getStyle(styles, size)\n )}\n >\n <BaseItem\n component=\"div\"\n itemRenderer={valueRenderer}\n size={size}\n readOnly\n item={{\n ...selectedItem,\n disabled,\n startElement: selectedItem.startElement?.type === \"indent\" ? undefined : selectedItem.startElement\n }}\n />\n </div>\n )}\n </div>\n <TriggerActions />\n </Flex>\n );\n};\n\nexport default SingleSelectTrigger;\n"],"names":["SingleSelectTrigger","_useDropdownContext","useDropdownContext","isFocused","selectedItem","searchable","size","valueRenderer","getToggleButtonProps","disabled","readOnly","error","label","getLabelProps","ariaLabel","helperTextId","inlineSelectedValue","showSelectedOverlay","inputValue","React","createElement","Flex","justify","align","Object","assign","className","cx","styles","triggerWrapper","getStyle","id","undefined","DropdownInput","_defineProperty","faded","BaseItem","component","itemRenderer","item","startElement","_a","type","TriggerActions"],"mappings":"kcAUA,IAAMA,EAAsB,iBAC1BC,EAgBIC,IAdFC,EAASF,EAATE,UACAC,EAAYH,EAAZG,aACAC,EAAUJ,EAAVI,WACAC,EAAIL,EAAJK,KACAC,EAAaN,EAAbM,cACAC,EAAoBP,EAApBO,qBACAC,EAAQR,EAARQ,SACAC,EAAQT,EAARS,SACAC,EAAKV,EAALU,MACAC,EAAKX,EAALW,MACAC,EAAaZ,EAAbY,cACcC,EAASb,EAAvB,cACAc,EAAYd,EAAZc,aACAC,EAAmBf,EAAnBe,oBAMIC,GAAuBD,GAAuBX,GApBxCJ,EAAViB,eAoBiFd,EAEnF,OACEe,EAACC,cAAAC,EAAK,CAAAC,QAAQ,gBAAgBC,MAAM,UAClCJ,EAAAC,cAAA,MAAAI,OAAAC,OAAA,CACEC,UAAWC,EAAGC,EAAOC,eAAgBC,EAASF,EAAQtB,KAChDD,EAUF,CAAG,EATHG,EAAqB,CACnB,gBAAiB,SACjB,kBAAmBI,EAAQC,IAAgBkB,QAAKC,EAChD,aAAcpB,OAAQoB,EAAYlB,EAClC,mBAAoBC,EACpB,gBAAiBN,EAAW,YAASuB,EACrC,eAAgBrB,EAAQ,YAASqB,EACjC,gBAAiBtB,EAAW,YAASsB,KAI3Cb,EAAAC,cAACa,EAAgB,MAEhBhB,GACCE,EACEC,cAAA,MAAA,CAAAM,UAAWC,EACTC,EAAOxB,aAAY8B,EAChBN,CAAAA,EAAAA,EAAOO,OAASnB,GAAuBb,GAAaE,GACvDyB,EAASF,EAAQtB,KAGnBa,EAACC,cAAAgB,GACCC,UAAU,MACVC,aAAc/B,EACdD,KAAMA,EACNI,UAAQ,EACR6B,KACKf,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAArB,GACH,CAAAK,SAAAA,EACA+B,aAAkD,oBAApCC,EAAArC,EAAaoC,mCAAcE,WAAoBV,EAAY5B,EAAaoC,mBAMhGrB,EAAAC,cAACuB,EAAc,MAGrB"}
|
package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/Trigger.module.scss.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e={triggerWrapper:"triggerWrapper",small:"small",placeholderText:"placeholderText",medium:"medium",large:"large",inputWrapper:"inputWrapper",multiSelected:"multiSelected",fullWidth:"fullWidth",hasSelected:"hasSelected",selectedItem:"selectedItem",faded:"faded",disabled:"disabled",multiWrapper:"multiWrapper",actionsWrapper:"actionsWrapper"};!function(e){const n="s_id-
|
|
1
|
+
var e={triggerWrapper:"triggerWrapper",small:"small",placeholderText:"placeholderText",medium:"medium",large:"large",inputWrapper:"inputWrapper",multiSelected:"multiSelected",fullWidth:"fullWidth",hasSelected:"hasSelected",selectedItem:"selectedItem",faded:"faded",disabled:"disabled",multiWrapper:"multiWrapper",actionsWrapper:"actionsWrapper",visuallyHidden:"visuallyHidden"};!function(e){const n="s_id-e51df68c2f8a_4_5_2";if("undefined"!=typeof document){const r=document.head||document.getElementsByTagName("head")[0];if(r.querySelector("#"+n))return;const t=document.createElement("style");t.id=n,r.firstChild?r.insertBefore(t,r.firstChild):r.appendChild(t),t.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[n]=e)}("/* stylelint-disable */\n/* stylelint-enable */\n.triggerWrapper {\n flex-grow: 1;\n position: relative;\n min-width: 1px;\n display: flex;\n align-items: center;\n cursor: pointer;\n outline: none;\n}\n.triggerWrapper.small {\n min-height: 32px;\n}\n.triggerWrapper.small .placeholderText {\n padding-inline-start: var(--space-8);\n}\n.triggerWrapper.medium {\n min-height: 40px;\n}\n.triggerWrapper.large {\n min-height: 48px;\n}\n.triggerWrapper .inputWrapper {\n border: none;\n width: 100%;\n background: transparent;\n}\n.triggerWrapper .inputWrapper.small {\n height: 24px;\n min-height: 24px;\n}\n.triggerWrapper .inputWrapper.multiSelected {\n width: 48px;\n flex-shrink: 0;\n padding: 0 var(--space-4);\n}\n.triggerWrapper .inputWrapper.multiSelected.fullWidth {\n width: 100%;\n flex-grow: 1;\n}\n.triggerWrapper .inputWrapper.hasSelected {\n position: absolute;\n inset: 0;\n cursor: pointer;\n}\n.triggerWrapper .selectedItem {\n position: relative;\n pointer-events: none;\n inset: 0;\n padding-inline-start: 0;\n width: 100%;\n -webkit-font-smoothing: var(--font-smoothing-webkit);\n -moz-osx-font-smoothing: var(--font-smoothing-moz);\n}\n.triggerWrapper .selectedItem.small {\n min-height: 32px;\n height: 32px;\n}\n.triggerWrapper .selectedItem.medium {\n min-height: 40px;\n height: 40px;\n}\n.triggerWrapper .selectedItem.large {\n min-height: 48px;\n height: 48px;\n}\n.triggerWrapper .selectedItem.faded {\n opacity: 0.6;\n}\n.triggerWrapper .placeholderText {\n padding-inline-start: var(--space-12);\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n cursor: pointer;\n color: var(--placeholder-color);\n -webkit-font-smoothing: var(--font-smoothing-webkit);\n -moz-osx-font-smoothing: var(--font-smoothing-moz);\n}\n.triggerWrapper .placeholderText.disabled {\n color: var(--disabled-text-color);\n}\n.multiWrapper {\n padding: var(--space-4) 0 var(--space-4) var(--space-8);\n width: 100%;\n}\n.actionsWrapper {\n padding: 0 var(--space-4);\n}\n.visuallyHidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}");export{e as default};
|
|
2
2
|
//# sourceMappingURL=Trigger.module.scss.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"react";import{CloseSmall as o,DropdownChevronUp as a,DropdownChevronDown as
|
|
1
|
+
import e from"react";import{CloseSmall as o,DropdownChevronUp as a,DropdownChevronDown as l}from"@vibe/icons";import{IconButton as t}from"@vibe/icon-button/mockedClassNames";import{Flex as i}from"@vibe/layout/mockedClassNames";import{Loader as r}from"@vibe/loader/mockedClassNames";import n from"./Trigger.module.scss.js";import{useDropdownContext as s}from"../../context/DropdownContext.js";var m={large:"medium",medium:"small",small:"xs"},d=function(){var d=s(),c=d.isOpen,p=d.reset,b=d.contextOnClear,u=d.disabled,f=d.clearable,g=d.readOnly,v=d.selectedItems,x=void 0===v?[]:v,C=d.toggleMenu,k=d.getMenuProps,y=d.loading,E=d.clearAriaLabel,z=d.boxMode,N=d.label,P=d["aria-label"],h=d.inputAriaLabel,w=d.multi?(null==x?void 0:x.length)>0:!!d.selectedItem,I=m[d.size]||"small",L=N?(0,d.getLabelProps)().id:void 0,M=N?void 0:P||h;return g?null:e.createElement("div",{onKeyDown:function(e){e.stopPropagation()}},e.createElement(i,{className:n.actionsWrapper},y&&e.createElement(r,{size:"xs"===I?16:"small"===I?20:24,color:"secondary"}),w&&f&&!u&&e.createElement(t,{"data-testid":"dropdown-clear-button",icon:o,onClick:function(e){e.stopPropagation(),b?b():p()},size:I,"aria-label":E,hideTooltip:!0}),!z&&e.createElement(t,{icon:c?a:l,size:I,disabled:u,"aria-controls":k().id,"aria-expanded":c,"aria-labelledby":L,"aria-label":M,hideTooltip:!0,tabIndex:-1,onClick:function(){C()}})))};export{d as default};
|
|
2
2
|
//# sourceMappingURL=TriggerActions.js.map
|
package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/TriggerActions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriggerActions.js","sources":["../../../../../../../src/components/Dropdown/components/Trigger/TriggerActions.tsx"],"sourcesContent":["import React from \"react\";\nimport { CloseSmall, DropdownChevronDown, DropdownChevronUp } from \"@vibe/icons\";\nimport { IconButton } from \"@vibe/icon-button\";\nimport { Flex } from \"@vibe/layout\";\nimport { Loader } from \"@vibe/loader\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseItemData } from \"../../../BaseItem\";\n\nconst sizeMap = {\n large: \"medium\",\n medium: \"small\",\n small: \"xs\"\n} as const;\n\nconst TriggerActions = () => {\n const {\n isOpen,\n reset,\n contextOnClear,\n size,\n disabled,\n clearable,\n readOnly,\n multi,\n selectedItem,\n selectedItems = [],\n toggleMenu,\n getMenuProps,\n loading,\n clearAriaLabel,\n boxMode\n } = useDropdownContext<BaseItemData>();\n\n const hasSelection = multi ? selectedItems?.length > 0 : !!selectedItem;\n const iconButtonSize = sizeMap[size] || \"small\";\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (contextOnClear) {\n contextOnClear();\n } else {\n reset();\n }\n };\n\n if (readOnly) {\n return null;\n }\n\n return (\n <div\n onKeyDown={e => {\n e.stopPropagation();\n }}\n >\n <Flex className={styles.actionsWrapper}>\n {loading && (\n <Loader size={iconButtonSize === \"xs\" ? 16 : iconButtonSize === \"small\" ? 20 : 24} color=\"secondary\" />\n )}\n {hasSelection && clearable && !disabled && (\n <IconButton\n data-testid=\"dropdown-clear-button\"\n icon={CloseSmall}\n onClick={handleClear}\n size={iconButtonSize}\n aria-label={clearAriaLabel}\n hideTooltip\n />\n )}\n {!boxMode && (\n <IconButton\n icon={isOpen ? DropdownChevronUp : DropdownChevronDown}\n size={iconButtonSize}\n disabled={disabled}\n aria-controls={getMenuProps().id}\n aria-expanded={isOpen}\n aria-labelledby={
|
|
1
|
+
{"version":3,"file":"TriggerActions.js","sources":["../../../../../../../src/components/Dropdown/components/Trigger/TriggerActions.tsx"],"sourcesContent":["import React from \"react\";\nimport { CloseSmall, DropdownChevronDown, DropdownChevronUp } from \"@vibe/icons\";\nimport { IconButton } from \"@vibe/icon-button\";\nimport { Flex } from \"@vibe/layout\";\nimport { Loader } from \"@vibe/loader\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseItemData } from \"../../../BaseItem\";\n\nconst sizeMap = {\n large: \"medium\",\n medium: \"small\",\n small: \"xs\"\n} as const;\n\nconst TriggerActions = () => {\n const {\n isOpen,\n reset,\n contextOnClear,\n size,\n disabled,\n clearable,\n readOnly,\n multi,\n selectedItem,\n selectedItems = [],\n toggleMenu,\n getMenuProps,\n loading,\n clearAriaLabel,\n boxMode,\n label,\n getLabelProps,\n \"aria-label\": ariaLabel,\n inputAriaLabel\n } = useDropdownContext<BaseItemData>();\n\n const hasSelection = multi ? selectedItems?.length > 0 : !!selectedItem;\n const iconButtonSize = sizeMap[size] || \"small\";\n\n const chevronLabelledBy = label ? getLabelProps().id : undefined;\n const chevronAriaLabel = label ? undefined : ariaLabel || inputAriaLabel;\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (contextOnClear) {\n contextOnClear();\n } else {\n reset();\n }\n };\n\n if (readOnly) {\n return null;\n }\n\n return (\n <div\n onKeyDown={e => {\n e.stopPropagation();\n }}\n >\n <Flex className={styles.actionsWrapper}>\n {loading && (\n <Loader size={iconButtonSize === \"xs\" ? 16 : iconButtonSize === \"small\" ? 20 : 24} color=\"secondary\" />\n )}\n {hasSelection && clearable && !disabled && (\n <IconButton\n data-testid=\"dropdown-clear-button\"\n icon={CloseSmall}\n onClick={handleClear}\n size={iconButtonSize}\n aria-label={clearAriaLabel}\n hideTooltip\n />\n )}\n {!boxMode && (\n <IconButton\n icon={isOpen ? DropdownChevronUp : DropdownChevronDown}\n size={iconButtonSize}\n disabled={disabled}\n aria-controls={getMenuProps().id}\n aria-expanded={isOpen}\n aria-labelledby={chevronLabelledBy}\n aria-label={chevronAriaLabel}\n // The accessible name is for assistive tech only — don't surface it as a hover tooltip.\n hideTooltip\n tabIndex={-1}\n onClick={() => {\n toggleMenu();\n }}\n />\n )}\n </Flex>\n </div>\n );\n};\n\nexport default TriggerActions;\n"],"names":["sizeMap","large","medium","small","TriggerActions","_useDropdownContext","useDropdownContext","isOpen","reset","contextOnClear","disabled","clearable","readOnly","_useDropdownContext$s","selectedItems","toggleMenu","getMenuProps","loading","clearAriaLabel","boxMode","label","ariaLabel","inputAriaLabel","hasSelection","multi","length","selectedItem","iconButtonSize","size","chevronLabelledBy","getLabelProps","id","undefined","chevronAriaLabel","React","createElement","onKeyDown","e","stopPropagation","Flex","className","styles","actionsWrapper","Loader","color","IconButton","icon","CloseSmall","onClick","hideTooltip","DropdownChevronUp","DropdownChevronDown","tabIndex"],"mappings":"wYASA,IAAMA,EAAU,CACdC,MAAO,SACPC,OAAQ,QACRC,MAAO,MAGHC,EAAiB,WACrB,IAAAC,EAoBIC,IAnBFC,EAAMF,EAANE,OACAC,EAAKH,EAALG,MACAC,EAAcJ,EAAdI,eAEAC,EAAQL,EAARK,SACAC,EAASN,EAATM,UACAC,EAAQP,EAARO,SAEYC,EAAAR,EACZS,cAAAA,OAAgB,IAAHD,EAAG,GAAEA,EAClBE,EAAUV,EAAVU,WACAC,EAAYX,EAAZW,aACAC,EAAOZ,EAAPY,QACAC,EAAcb,EAAda,eACAC,EAAOd,EAAPc,QACAC,EAAKf,EAALe,MAEcC,EAAShB,EAAvB,cACAiB,EAAcjB,EAAdiB,eAGIC,EAdClB,EAALmB,OAc2BV,aAAa,EAAbA,EAAeW,QAAS,IAbvCpB,EAAZqB,aAcIC,EAAiB3B,EAnBjBK,EAAJuB,OAmBsC,QAElCC,EAAoBT,GAAQU,EARnBzB,EAAbyB,iBAQgDC,QAAKC,EACjDC,EAAmBb,OAAQY,EAAYX,GAAaC,EAW1D,OAAIV,EACK,KAIPsB,EACEC,cAAA,MAAA,CAAAC,UAAW,SAAAC,GACTA,EAAEC,iBACJ,GAEAJ,EAAAC,cAACI,EAAK,CAAAC,UAAWC,EAAOC,gBACrBzB,GACCiB,EAACC,cAAAQ,GAAOf,KAAyB,OAAnBD,EAA0B,GAAwB,UAAnBA,EAA6B,GAAK,GAAIiB,MAAM,cAE1FrB,GAAgBZ,IAAcD,GAC7BwB,EAAAC,cAACU,EAAU,CAAA,cACG,wBACZC,KAAMC,EACNC,QA3BU,SAACX,GACnBA,EAAEC,kBACE7B,EACFA,IAEAD,KAuBMoB,KAAMD,EAAc,aACRT,EACZ+B,aAAW,KAGb9B,GACAe,EAAAC,cAACU,EACC,CAAAC,KAAMvC,EAAS2C,EAAoBC,EACnCvB,KAAMD,EACNjB,SAAUA,EACK,gBAAAM,IAAee,GACf,gBAAAxB,EACE,kBAAAsB,eACLI,EAEZgB,aAAW,EACXG,UAAW,EACXJ,QAAS,WACPjC,GACF,KAMZ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as n,useRef as t,useMemo as l,useCallback as u}from"react";import{useCombobox as i}from"downshift";import
|
|
1
|
+
import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as n,useRef as t,useMemo as l,useCallback as u}from"react";import{useCombobox as i}from"downshift";import o from"./useDropdownFiltering.js";function s(s,a,r,p,c,g,d,f,v,I,m,h,y,O,C,b){var P=n(c||null),T=e(P,2),M=T[0],j=T[1],w=t(null),D=void 0!==g?g:M,V=l((function(){return D?[D]:[]}),[D]),K=o(s,y,O,V),S=K.filteredOptions,B=K.filterOptions,k=l((function(){return S.flatMap((function(e){return e.options}))}),[S]),x=i({items:k,itemToString:function(e){var n;return null!==(n=null==e?void 0:e.label)&&void 0!==n?n:""},itemToKey:function(e){return void 0!==(null==e?void 0:e.value)?e.value+"":""},isItemDisabled:function(e){return!!e.disabled},initialInputValue:d||(b?null==D?void 0:D.label:void 0)||"",selectedItem:D,isOpen:a,initialIsOpen:r,id:C,onIsOpenChange:function(e){var n=e.isOpen;b&&!n&&B(""),n?null==m||m():null==I||I()},onInputValueChange:u((function(e){var n=e.inputValue;b&&e.type!==i.stateChangeTypes.InputChange||B(n||""),null==v||v(n)}),[v,B,b]),onSelectedItemChange:u((function(e){var n=e.selectedItem;void 0===g&&j(n||null),n?(null==h||h(n),null==f||f(n),B("")):(null==f||f(null),B(""))}),[g,h,B,f]),onStateChange:u((function(e){var n,t=e.type;!p||t!==i.stateChangeTypes.ItemClick&&t!==i.stateChangeTypes.InputKeyDownEnter||null===(n=w.current)||void 0===n||n.focus()}),[p]),stateReducer:function(e,n){var t=n.changes;switch(n.type){case i.stateChangeTypes.InputKeyDownEnter:case i.stateChangeTypes.ItemClick:case i.stateChangeTypes.FunctionSelectItem:return Object.assign(Object.assign({},t),b?{isOpen:!p}:{inputValue:null,isOpen:!p});case i.stateChangeTypes.InputBlur:case i.stateChangeTypes.ControlledPropUpdatedSelectedItem:return b?t:Object.assign(Object.assign({},t),{inputValue:null});default:return t}}}),E=x.isOpen,F=x.highlightedIndex,L=x.getInputProps,_=x.reset,A=x.selectItem;return{isOpen:E,inputValue:x.inputValue,highlightedIndex:F,selectedItem:D,getToggleButtonProps:x.getToggleButtonProps,getLabelProps:x.getLabelProps,getMenuProps:x.getMenuProps,getInputProps:function(e){return L(Object.assign(Object.assign({},e),{ref:w,onKeyDown:function(n){var t;if(null===(t=null==e?void 0:e.onKeyDown)||void 0===t||t.call(e,n)," "===n.key&&!n.defaultPrevented&&E&&F>=0){var l=k[F];l&&!l.disabled&&(n.preventDefault(),A(l))}}}))},getItemProps:x.getItemProps,reset:function(){void 0===g&&j(null),_(),B("")},filteredOptions:S,openMenu:x.openMenu,toggleMenu:x.toggleMenu,closeMenu:x.closeMenu}}export{s as default};
|
|
2
2
|
//# sourceMappingURL=useDropdownCombobox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDropdownCombobox.js","sources":["../../../../../../src/components/Dropdown/hooks/useDropdownCombobox.ts"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from \"react\";\nimport { useCombobox } from \"downshift\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { type BaseItemData } from \"../../BaseItem\";\nimport { type DropdownGroupOption } from \"../Dropdown.types\";\n\nfunction useDropdownCombobox<T extends BaseItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n isMenuOpen?: boolean,\n autoFocus?: boolean,\n closeMenuOnSelect?: boolean,\n defaultValue?: T,\n value?: T,\n inputValueProp?: string,\n onChange?: (option: T | T[] | null) => void,\n onInputChange?: (value: string | null) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean,\n id?: string\n) {\n const [currentSelectedItem, setCurrentSelectedItem] = useState<T | null>(defaultValue || null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n // Use controlled value if provided, otherwise use internal state\n const selectedItem = value !== undefined ? value : currentSelectedItem;\n\n const memoizedSelectedItemForFiltering = useMemo(() => {\n return selectedItem ? [selectedItem] : [];\n }, [selectedItem]);\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n memoizedSelectedItemForFiltering\n );\n\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n itemToKey: item => (item?.value !== undefined ? String(item.value) : \"\"),\n isItemDisabled: item => Boolean(item.disabled),\n initialInputValue: inputValueProp || \"\",\n selectedItem: selectedItem,\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n id,\n onIsOpenChange: ({ isOpen }) => {\n isOpen ? onMenuClose?.() : onMenuOpen?.();\n },\n\n onInputValueChange: useCallback(\n ({ inputValue }) => {\n filterOptions(inputValue || \"\");\n onInputChange?.(inputValue);\n },\n [onInputChange, filterOptions]\n ),\n onSelectedItemChange: useCallback(\n ({ selectedItem }) => {\n if (value === undefined) {\n setCurrentSelectedItem(selectedItem || null);\n }\n if (selectedItem) {\n onOptionSelect?.(selectedItem);\n onChange?.(selectedItem);\n filterOptions(\"\");\n } else {\n onChange?.(null);\n filterOptions(\"\");\n }\n },\n [value, onOptionSelect, filterOptions, onChange]\n ),\n onStateChange: useCallback(\n ({ type }) => {\n // Blur input after selection via click or Enter key\n if (\n closeMenuOnSelect &&\n (type === useCombobox.stateChangeTypes.ItemClick || type === useCombobox.stateChangeTypes.InputKeyDownEnter)\n ) {\n inputRef.current?.blur();\n }\n },\n [closeMenuOnSelect]\n ),\n stateReducer: (state, actionAndChanges) => {\n switch (actionAndChanges.type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return { ...actionAndChanges.changes, inputValue: null, isOpen: !closeMenuOnSelect };\n case useCombobox.stateChangeTypes.InputBlur:\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:\n return { ...actionAndChanges.changes, inputValue: null };\n\n default:\n return actionAndChanges.changes;\n }\n }\n });\n\n return {\n isOpen,\n inputValue,\n highlightedIndex,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps: (options?: Parameters<typeof getInputProps>[0]) => getInputProps({ ...options, ref: inputRef }),\n getItemProps,\n reset: () => {\n if (value === undefined) {\n setCurrentSelectedItem(null);\n }\n reset();\n filterOptions(\"\");\n },\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownCombobox;\n"],"names":["useDropdownCombobox","options","isMenuOpen","autoFocus","closeMenuOnSelect","defaultValue","value","inputValueProp","onChange","onInputChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","showSelectedOptions","id","_useState","useState","_useState2","_slicedToArray","currentSelectedItem","setCurrentSelectedItem","inputRef","useRef","selectedItem","undefined","memoizedSelectedItemForFiltering","useMemo","_useDropdownFiltering","useDropdownFiltering","filteredOptions","filterOptions","flatOptions","flatMap","group","_useCombobox","useCombobox","items","itemToString","item","_a","label","itemToKey","String","isItemDisabled","disabled","initialInputValue","isOpen","initialIsOpen","onIsOpenChange","_ref","onInputValueChange","useCallback","_ref2","inputValue","onSelectedItemChange","_ref3","onStateChange","_ref4","type","stateChangeTypes","ItemClick","InputKeyDownEnter","current","blur","stateReducer","state","actionAndChanges","Object","assign","changes","InputBlur","ControlledPropUpdatedSelectedItem","getInputProps","reset","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","ref","getItemProps","openMenu","toggleMenu","closeMenu"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDropdownCombobox.js","sources":["../../../../../../src/components/Dropdown/hooks/useDropdownCombobox.ts"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from \"react\";\nimport { useCombobox } from \"downshift\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { type BaseItemData } from \"../../BaseItem\";\nimport { type DropdownGroupOption } from \"../Dropdown.types\";\n\nfunction useDropdownCombobox<T extends BaseItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n isMenuOpen?: boolean,\n autoFocus?: boolean,\n closeMenuOnSelect?: boolean,\n defaultValue?: T,\n value?: T,\n inputValueProp?: string,\n onChange?: (option: T | T[] | null) => void,\n onInputChange?: (value: string | null) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean,\n id?: string,\n inlineSelectedValue?: boolean\n) {\n const [currentSelectedItem, setCurrentSelectedItem] = useState<T | null>(defaultValue || null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n // Use controlled value if provided, otherwise use internal state\n const selectedItem = value !== undefined ? value : currentSelectedItem;\n\n const memoizedSelectedItemForFiltering = useMemo(() => {\n return selectedItem ? [selectedItem] : [];\n }, [selectedItem]);\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n memoizedSelectedItemForFiltering\n );\n\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n openMenu,\n toggleMenu,\n closeMenu,\n selectItem\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n itemToKey: item => (item?.value !== undefined ? String(item.value) : \"\"),\n isItemDisabled: item => Boolean(item.disabled),\n // With inlineSelectedValue, seed the input with the selected item's label so a defaultValue/value is\n // visible (and exposed to assistive technologies) on mount. Otherwise the selection shows in an overlay.\n initialInputValue: inputValueProp || (inlineSelectedValue ? selectedItem?.label : undefined) || \"\",\n selectedItem: selectedItem,\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n id,\n onIsOpenChange: ({ isOpen }) => {\n // inlineSelectedValue keeps the selected label in the input, so reset the filter on close to\n // ensure reopening shows the full option list.\n if (inlineSelectedValue && !isOpen) {\n filterOptions(\"\");\n }\n isOpen ? onMenuClose?.() : onMenuOpen?.();\n },\n\n onInputValueChange: useCallback(\n ({ inputValue, type }) => {\n // With inlineSelectedValue, downshift also writes the selected item's label into the input on\n // selection/blur — filter only on actual typing so those writes don't filter the list. Without\n // it the input is cleared on selection, so every change can filter (original behavior).\n if (!inlineSelectedValue || type === useCombobox.stateChangeTypes.InputChange) {\n filterOptions(inputValue || \"\");\n }\n onInputChange?.(inputValue);\n },\n [onInputChange, filterOptions, inlineSelectedValue]\n ),\n onSelectedItemChange: useCallback(\n ({ selectedItem }) => {\n if (value === undefined) {\n setCurrentSelectedItem(selectedItem || null);\n }\n if (selectedItem) {\n onOptionSelect?.(selectedItem);\n onChange?.(selectedItem);\n filterOptions(\"\");\n } else {\n onChange?.(null);\n filterOptions(\"\");\n }\n },\n [value, onOptionSelect, filterOptions, onChange]\n ),\n onStateChange: useCallback(\n ({ type }) => {\n // Keep focus on the input after selecting via click or Enter so focus is never lost\n // (the menu still closes through the stateReducer's isOpen change).\n if (\n closeMenuOnSelect &&\n (type === useCombobox.stateChangeTypes.ItemClick || type === useCombobox.stateChangeTypes.InputKeyDownEnter)\n ) {\n inputRef.current?.focus();\n }\n },\n [closeMenuOnSelect]\n ),\n stateReducer: (state, actionAndChanges) => {\n const { type, changes } = actionAndChanges;\n switch (type) {\n // FunctionSelectItem (Space selecting the highlighted option, see getInputProps below) is\n // handled the same as Enter/click selection.\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n case useCombobox.stateChangeTypes.FunctionSelectItem:\n // inlineSelectedValue keeps Downshift's default inputValue (the selected label) inside the\n // input; otherwise clear it so the selection is shown via the overlay instead.\n return inlineSelectedValue\n ? { ...changes, isOpen: !closeMenuOnSelect }\n : { ...changes, inputValue: null, isOpen: !closeMenuOnSelect };\n case useCombobox.stateChangeTypes.InputBlur:\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:\n // Overlay mode clears the input on blur / controlled update; inline mode keeps the label.\n return inlineSelectedValue ? changes : { ...changes, inputValue: null };\n default:\n return changes;\n }\n }\n });\n\n return {\n isOpen,\n inputValue,\n highlightedIndex,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps: (options?: Parameters<typeof getInputProps>[0]) =>\n getInputProps({\n ...options,\n ref: inputRef,\n onKeyDown: event => {\n options?.onKeyDown?.(event);\n // Space selects the highlighted option instead of typing a literal space. It only applies\n // when the user has arrowed to an option (highlightedIndex set, i.e. aria-activedescendant\n // is set); while typing/filtering there is no highlight, so Space types normally.\n if (event.key === \" \" && !event.defaultPrevented && isOpen && highlightedIndex >= 0) {\n const item = flatOptions[highlightedIndex];\n if (item && !item.disabled) {\n event.preventDefault();\n selectItem(item);\n }\n }\n }\n }),\n getItemProps,\n reset: () => {\n if (value === undefined) {\n setCurrentSelectedItem(null);\n }\n reset();\n filterOptions(\"\");\n },\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownCombobox;\n"],"names":["useDropdownCombobox","options","isMenuOpen","autoFocus","closeMenuOnSelect","defaultValue","value","inputValueProp","onChange","onInputChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","showSelectedOptions","id","inlineSelectedValue","_useState","useState","_useState2","_slicedToArray","currentSelectedItem","setCurrentSelectedItem","inputRef","useRef","selectedItem","undefined","memoizedSelectedItemForFiltering","useMemo","_useDropdownFiltering","useDropdownFiltering","filteredOptions","filterOptions","flatOptions","flatMap","group","_useCombobox","useCombobox","items","itemToString","item","_a","label","itemToKey","String","isItemDisabled","disabled","initialInputValue","isOpen","initialIsOpen","onIsOpenChange","_ref","onInputValueChange","useCallback","_ref2","inputValue","type","stateChangeTypes","InputChange","onSelectedItemChange","_ref3","onStateChange","_ref4","ItemClick","InputKeyDownEnter","current","focus","stateReducer","state","actionAndChanges","changes","FunctionSelectItem","Object","assign","InputBlur","ControlledPropUpdatedSelectedItem","highlightedIndex","getInputProps","reset","selectItem","getToggleButtonProps","getLabelProps","getMenuProps","ref","onKeyDown","event","call","key","defaultPrevented","preventDefault","getItemProps","openMenu","toggleMenu","closeMenu"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useMemo as e,useCallback as t}from"react";import n from"./useDropdownFiltering.js";import{useMultipleSelection as l,useCombobox as i}from"downshift";function
|
|
1
|
+
import{useMemo as e,useCallback as t}from"react";import n from"./useDropdownFiltering.js";import{useMultipleSelection as l,useCombobox as i}from"downshift";function s(s,u,o,a,r,p,d,c,g,m,I,f,v,h,O,y,C){var P=void 0!==d?d:u,S=n(s,h,O,P),b=S.filteredOptions,T=S.filterOptions,D=e((function(){return b.flatMap((function(e){return e.options}))}),[b]),w=l({selectedItems:P,initialSelectedItems:p,onSelectedItemsChange:function(e){var t=e.selectedItems;void 0===d&&o(t||[]),null==g||g(t||[])},onStateChange:function(e){var t=e.type,n=e.selectedItems;if((t===l.stateChangeTypes.SelectedItemKeyDownBackspace||t===l.stateChangeTypes.SelectedItemKeyDownDelete)&&n){var i=P.find((function(e){return!n.some((function(t){return t.value===e.value}))}));i&&(null==C||C(i))}}}),j=w.getSelectedItemProps,M=w.getDropdownProps,V=w.addSelectedItem,K=w.removeSelectedItem,x=i({items:D,itemToString:function(e){var t;return null!==(t=null==e?void 0:e.label)&&void 0!==t?t:""},itemToKey:function(e){return void 0!==(null==e?void 0:e.value)?e.value+"":""},isItemDisabled:function(e){return!!e.disabled},isOpen:a,initialIsOpen:r,initialInputValue:null!=c?c:"",id:y,onIsOpenChange:function(e){var t=e.isOpen;T(""),t?null==f||f():null==I||I()},onInputValueChange:t((function(e){var t=e.inputValue;e.type===i.stateChangeTypes.InputChange&&T(t||""),null==m||m(t)}),[m,T]),onSelectedItemChange:function(e){var t=e.selectedItem;if(t){var n=P.find((function(e){return e.value===t.value}));n?(K(n),null==C||C(n)):V(t),null==v||v(t),T("")}},stateReducer:function(e,t){var n,l,s=t.changes;switch(t.type){case i.stateChangeTypes.InputKeyDownEnter:case i.stateChangeTypes.ItemClick:case i.stateChangeTypes.FunctionSelectItem:return Object.assign(Object.assign({},s),{inputValue:null,isOpen:!0,highlightedIndex:null!==(l=null===(n=s.selectedItem)||void 0===n?void 0:n.index)&&void 0!==l?l:0});case i.stateChangeTypes.InputBlur:case i.stateChangeTypes.ControlledPropUpdatedSelectedItem:return Object.assign(Object.assign({},s),{inputValue:null});default:return!s.isOpen&&e.isOpen?Object.assign(Object.assign({},s),{inputValue:null}):s}}}),B=x.isOpen,k=x.inputValue,F=x.highlightedIndex,L=x.getToggleButtonProps,E=x.getLabelProps,R=x.getMenuProps,U=x.getInputProps,q=x.getItemProps,z=x.reset,A=x.openMenu,G=x.toggleMenu,H=x.closeMenu,J=x.selectItem,N=t((function(){void 0===d&&o([]),z(),null==g||g([])}),[d,o,z,g]);return{isOpen:B,inputValue:k,highlightedIndex:F,selectedItems:P,getSelectedItemProps:j,getDropdownProps:M,addSelectedItem:V,getToggleButtonProps:L,getLabelProps:E,getMenuProps:R,getInputProps:function(e){return U(Object.assign(Object.assign({},e),{onKeyDown:function(t){var n;if(null===(n=null==e?void 0:e.onKeyDown)||void 0===n||n.call(e,t)," "===t.key&&!t.defaultPrevented&&B&&F>=0){var l=D[F];l&&!l.disabled&&(t.preventDefault(),J(l))}}}))},getItemProps:q,reset:N,removeSelectedItem:K,filteredOptions:b,openMenu:A,toggleMenu:G,closeMenu:H}}export{s as default};
|
|
2
2
|
//# sourceMappingURL=useDropdownMultiCombobox.js.map
|
package/dist/mocked_classnames/src/components/Dropdown/hooks/useDropdownMultiCombobox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDropdownMultiCombobox.js","sources":["../../../../../../src/components/Dropdown/hooks/useDropdownMultiCombobox.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { useMultipleSelection, useCombobox } from \"downshift\";\nimport { type DropdownGroupOption } from \"../Dropdown.types\";\nimport { type BaseItemData } from \"../../BaseItem\";\n\nfunction useDropdownMultiCombobox<T extends BaseItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n selectedItems: T[],\n setSelectedItems: (items: T[]) => void,\n isMenuOpen: boolean,\n autoFocus?: boolean,\n defaultValue?: T[],\n value?: T[],\n inputValueProp?: string,\n onChange?: (options: T[]) => void,\n onInputChange?: (value: string | null) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean,\n id?: string\n) {\n // Use controlled value if provided, otherwise use internal state\n const currentSelectedItems = value !== undefined ? value : selectedItems;\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n currentSelectedItems\n );\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const { getSelectedItemProps, getDropdownProps, addSelectedItem, removeSelectedItem } = useMultipleSelection<T>({\n selectedItems: currentSelectedItems,\n initialSelectedItems: defaultValue,\n onSelectedItemsChange: ({ selectedItems }) => {\n if (value === undefined) {\n setSelectedItems(selectedItems || []);\n }\n onChange?.(selectedItems || []);\n }\n });\n\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset: downshiftReset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n itemToKey: item => (item?.value !== undefined ? String(item.value) : \"\"),\n isItemDisabled: item => Boolean(item.disabled),\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n initialInputValue: inputValueProp || \"\",\n id,\n onIsOpenChange: ({ isOpen }) => {\n isOpen ? onMenuClose?.() : onMenuOpen?.();\n },\n onInputValueChange: ({ inputValue }) => {\n filterOptions(inputValue || \"\");\n onInputChange?.(inputValue);\n },\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n if (!newSelectedItem) return;\n const existingItem = currentSelectedItems.find(item => item.value === newSelectedItem.value);\n if (existingItem) {\n removeSelectedItem(existingItem);\n } else {\n addSelectedItem(newSelectedItem);\n }\n onOptionSelect?.(newSelectedItem);\n filterOptions(\"\");\n },\n stateReducer: (state, actionAndChanges) => {\n switch (actionAndChanges.type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return {\n ...actionAndChanges.changes,\n inputValue: null,\n isOpen: true,\n highlightedIndex: (actionAndChanges.changes.selectedItem?.index as number) ?? 0\n };\n case useCombobox.stateChangeTypes.InputBlur:\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:\n return { ...actionAndChanges.changes, inputValue: null };\n default:\n return actionAndChanges.changes;\n }\n }\n });\n\n const reset = useCallback(() => {\n if (value === undefined) {\n setSelectedItems([]);\n }\n downshiftReset();\n onChange?.([]);\n }, [value, setSelectedItems, downshiftReset, onChange]);\n\n return {\n isOpen,\n inputValue,\n highlightedIndex,\n selectedItems: currentSelectedItems,\n getSelectedItemProps,\n getDropdownProps,\n addSelectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n removeSelectedItem,\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownMultiCombobox;\n"],"names":["useDropdownMultiCombobox","options","selectedItems","setSelectedItems","isMenuOpen","autoFocus","defaultValue","value","inputValueProp","onChange","onInputChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","showSelectedOptions","id","currentSelectedItems","undefined","_useDropdownFiltering","useDropdownFiltering","filteredOptions","filterOptions","flatOptions","useMemo","flatMap","group","_useMultipleSelection","useMultipleSelection","initialSelectedItems","onSelectedItemsChange","_ref","getSelectedItemProps","getDropdownProps","addSelectedItem","removeSelectedItem","_useCombobox","useCombobox","items","itemToString","item","_a","label","itemToKey","String","isItemDisabled","disabled","isOpen","initialIsOpen","initialInputValue","onIsOpenChange","_ref2","onInputValueChange","_ref3","inputValue","onSelectedItemChange","_ref4","newSelectedItem","selectedItem","existingItem","find","stateReducer","state","actionAndChanges","type","stateChangeTypes","InputKeyDownEnter","ItemClick","Object","assign","changes","highlightedIndex","_b","index","InputBlur","ControlledPropUpdatedSelectedItem","getToggleButtonProps","getLabelProps","getMenuProps","getInputProps","getItemProps","downshiftReset","reset","openMenu","toggleMenu","closeMenu","useCallback"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDropdownMultiCombobox.js","sources":["../../../../../../src/components/Dropdown/hooks/useDropdownMultiCombobox.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { useMultipleSelection, useCombobox } from \"downshift\";\nimport { type DropdownGroupOption } from \"../Dropdown.types\";\nimport { type BaseItemData } from \"../../BaseItem\";\n\nfunction useDropdownMultiCombobox<T extends BaseItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n selectedItems: T[],\n setSelectedItems: (items: T[]) => void,\n isMenuOpen: boolean,\n autoFocus?: boolean,\n defaultValue?: T[],\n value?: T[],\n inputValueProp?: string,\n onChange?: (options: T[]) => void,\n onInputChange?: (value: string | null) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean,\n id?: string,\n onOptionRemove?: (option: T) => void\n) {\n // Use controlled value if provided, otherwise use internal state\n const currentSelectedItems = value !== undefined ? value : selectedItems;\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n currentSelectedItems\n );\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const { getSelectedItemProps, getDropdownProps, addSelectedItem, removeSelectedItem } = useMultipleSelection<T>({\n selectedItems: currentSelectedItems,\n initialSelectedItems: defaultValue,\n onSelectedItemsChange: ({ selectedItems }) => {\n if (value === undefined) {\n setSelectedItems(selectedItems || []);\n }\n onChange?.(selectedItems || []);\n },\n onStateChange: ({ type, selectedItems: newSelectedItems }) => {\n // Notify onOptionRemove for keyboard-driven chip deletion (× button uses contextOnOptionRemove).\n if (\n (type === useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace ||\n type === useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete) &&\n newSelectedItems\n ) {\n const removedItem = currentSelectedItems.find(item => !newSelectedItems.some(si => si.value === item.value));\n if (removedItem) onOptionRemove?.(removedItem);\n }\n }\n });\n\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset: downshiftReset,\n openMenu,\n toggleMenu,\n closeMenu,\n selectItem\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n itemToKey: item => (item?.value !== undefined ? String(item.value) : \"\"),\n isItemDisabled: item => Boolean(item.disabled),\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n initialInputValue: inputValueProp ?? \"\",\n id,\n onIsOpenChange: ({ isOpen }) => {\n // Reset the text filter on any open/close change so the full list is always ready.\n filterOptions(\"\");\n isOpen ? onMenuClose?.() : onMenuOpen?.();\n },\n onInputValueChange: useCallback(\n ({ inputValue, type }) => {\n // Only filter on actual user typing. Downshift also writes values into the input on\n // open/close/selection — those changes must not filter the list.\n if (type === useCombobox.stateChangeTypes.InputChange) {\n filterOptions(inputValue || \"\");\n }\n onInputChange?.(inputValue);\n },\n [onInputChange, filterOptions]\n ),\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n if (!newSelectedItem) return;\n const existingItem = currentSelectedItems.find(item => item.value === newSelectedItem.value);\n if (existingItem) {\n removeSelectedItem(existingItem);\n onOptionRemove?.(existingItem);\n } else {\n addSelectedItem(newSelectedItem);\n }\n onOptionSelect?.(newSelectedItem);\n filterOptions(\"\");\n },\n stateReducer: (state, actionAndChanges) => {\n const { type, changes } = actionAndChanges;\n\n switch (type) {\n // FunctionSelectItem (Space toggling the highlighted option, see getInputProps below) is\n // handled the same as Enter/click selection.\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n case useCombobox.stateChangeTypes.FunctionSelectItem:\n // Keep the menu open and clear the input to restore the placeholder.\n return {\n ...changes,\n inputValue: null,\n isOpen: true,\n highlightedIndex: (changes.selectedItem?.index as number) ?? 0\n };\n case useCombobox.stateChangeTypes.InputBlur:\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:\n return { ...changes, inputValue: null };\n default:\n if (!changes.isOpen && state.isOpen) {\n return { ...changes, inputValue: null };\n }\n return changes;\n }\n }\n });\n\n const reset = useCallback(() => {\n if (value === undefined) {\n setSelectedItems([]);\n }\n downshiftReset();\n onChange?.([]);\n }, [value, setSelectedItems, downshiftReset, onChange]);\n\n return {\n isOpen,\n inputValue,\n highlightedIndex,\n selectedItems: currentSelectedItems,\n getSelectedItemProps,\n getDropdownProps,\n addSelectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps: (options?: Parameters<typeof getInputProps>[0]) =>\n getInputProps({\n ...options,\n onKeyDown: event => {\n options?.onKeyDown?.(event);\n // Space toggles the highlighted option instead of typing a literal space. It only applies\n // when the user has arrowed to an option (highlightedIndex set, i.e. aria-activedescendant\n // is set); while typing/filtering there is no highlight, so Space types normally.\n if (event.key === \" \" && !event.defaultPrevented && isOpen && highlightedIndex >= 0) {\n const item = flatOptions[highlightedIndex];\n if (item && !item.disabled) {\n event.preventDefault();\n selectItem(item);\n }\n }\n }\n }),\n getItemProps,\n reset,\n removeSelectedItem,\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownMultiCombobox;\n"],"names":["useDropdownMultiCombobox","options","selectedItems","setSelectedItems","isMenuOpen","autoFocus","defaultValue","value","inputValueProp","onChange","onInputChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","showSelectedOptions","id","onOptionRemove","currentSelectedItems","undefined","_useDropdownFiltering","useDropdownFiltering","filteredOptions","filterOptions","flatOptions","useMemo","flatMap","group","_useMultipleSelection","useMultipleSelection","initialSelectedItems","onSelectedItemsChange","_ref","onStateChange","_ref2","type","newSelectedItems","stateChangeTypes","SelectedItemKeyDownBackspace","SelectedItemKeyDownDelete","removedItem","find","item","some","si","getSelectedItemProps","getDropdownProps","addSelectedItem","removeSelectedItem","_useCombobox","useCombobox","items","itemToString","_a","label","itemToKey","String","isItemDisabled","disabled","isOpen","initialIsOpen","initialInputValue","onIsOpenChange","_ref3","onInputValueChange","useCallback","_ref4","inputValue","InputChange","onSelectedItemChange","_ref5","newSelectedItem","selectedItem","existingItem","stateReducer","state","actionAndChanges","changes","InputKeyDownEnter","ItemClick","FunctionSelectItem","Object","assign","highlightedIndex","_b","index","InputBlur","ControlledPropUpdatedSelectedItem","getToggleButtonProps","getLabelProps","getMenuProps","getInputProps","getItemProps","downshiftReset","reset","openMenu","toggleMenu","closeMenu","selectItem","onKeyDown","event","call","key","defaultPrevented","preventDefault"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useState as n}from"react";import l from"../hooks/useDropdownCombobox.js";import t from"../components/DropdownWrapperUI.js";var i=function(i){var u=i.options,r=i.isMenuOpen,s=i.autoFocus,d=i.closeMenuOnSelect,a=void 0===d||d,c=i.defaultValue,p=i.value,g=i.inputValue,v=i.onChange,m=i.onInputChange,f=i.onMenuClose,O=i.onMenuOpen,b=i.onOptionSelect,I=i.filterOption,h=i.showSelectedOptions,P=void 0===h||h,M=i.clearable,w=void 0===M||M,x=i.searchable,j=void 0===x||x,
|
|
1
|
+
import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useState as n}from"react";import l from"../hooks/useDropdownCombobox.js";import t from"../components/DropdownWrapperUI.js";var i=function(i){var u=i.options,r=i.isMenuOpen,s=i.autoFocus,d=i.closeMenuOnSelect,a=void 0===d||d,c=i.defaultValue,p=i.value,g=i.inputValue,v=i.onChange,m=i.onInputChange,f=i.onMenuClose,O=i.onMenuOpen,b=i.onOptionSelect,I=i.filterOption,h=i.showSelectedOptions,P=void 0===h||h,M=i.clearable,w=void 0===M||M,x=i.searchable,j=void 0===x||x,S=i.multi,B=void 0!==S&&S,C=i.dropdownRef,V=i.onFocus,y=i.onBlur,D=i.onKeyDown,F=i.onClear,K=i.loading,R=void 0!==K&&K,T=i.size,z=void 0===T?"medium":T,L=i.id,_=i.readOnly,k=i.disabled,A=i.boxMode,E=void 0!==A&&A,H=i.inlineSelectedValue,U=void 0!==H&&H,W=n(!1),q=e(W,2),G=q[0],J=q[1],N=l(u,E?void 0:r,s,a,c,p,g,v,m,f,O,(function(e){null==b||b(e),e&&J(!1)}),I,P,L,U),Q=N.isOpen,X=N.inputValue,Y=N.highlightedIndex,Z=N.getToggleButtonProps,$=N.getLabelProps,ee=N.getMenuProps,oe=N.getItemProps,ne=N.getInputProps,le=N.reset,te=N.filteredOptions,ie=N.selectedItem,ue=N.toggleMenu,re=Object.assign(Object.assign({},i),{isOpen:!!E||Q,inputValue:null!=X?X:null,highlightedIndex:Y,selectedItem:ie,selectedItems:[],filteredOptions:te,getToggleButtonProps:Z,getLabelProps:$,getMenuProps:ee,getItemProps:oe,getInputProps:function(e){return ne(Object.assign(Object.assign({},e||{}),{disabled:_||k,onFocus:function(o){var n;J(!0),null==V||V(o),null===(n=null==e?void 0:e.onFocus)||void 0===n||n.call(e,o)},onBlur:function(o){var n;J(!1),null==y||y(o),null===(n=null==e?void 0:e.onBlur)||void 0===n||n.call(e,o)},onKeyDown:function(o){var n;null==D||D(o),null===(n=null==e?void 0:e.onKeyDown)||void 0===n||n.call(e,o)}}))},reset:le,contextOnClear:function(){le(),null==F||F()},contextOnOptionRemove:function(){},addSelectedItem:void 0,removeSelectedItem:void 0,isFocused:G,clearable:w,searchable:j,multi:B,closeMenuOnSelect:a,size:z,toggleMenu:ue,loading:R});return o.createElement(t,{contextValue:re,dropdownRef:C})};export{i as default};
|
|
2
2
|
//# sourceMappingURL=DropdownComboboxController.js.map
|
package/dist/mocked_classnames/src/components/Dropdown/modes/DropdownComboboxController.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownComboboxController.js","sources":["../../../../../../src/components/Dropdown/modes/DropdownComboboxController.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { type DropdownSingleControllerProps } from \"../Dropdown.types\";\nimport useDropdownCombobox from \"../hooks/useDropdownCombobox\";\nimport { type BaseItemData } from \"../../BaseItem\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownComboboxController = <Item extends BaseItemData<Record<string, unknown>>>(\n props: DropdownSingleControllerProps<Item>\n) => {\n const {\n options,\n isMenuOpen: isMenuOpenProp,\n autoFocus,\n closeMenuOnSelect = true,\n defaultValue,\n value,\n inputValue: inputValueProp,\n onChange,\n onInputChange,\n onMenuClose,\n onMenuOpen,\n onOptionSelect,\n filterOption,\n showSelectedOptions = true,\n clearable = true,\n searchable = true,\n multi = false,\n dropdownRef,\n onFocus,\n onBlur,\n onKeyDown,\n onClear,\n loading = false,\n size = \"medium\",\n id,\n readOnly,\n disabled,\n boxMode = false\n } = props;\n\n const [isFocused, setIsFocused] = useState(false);\n\n const handleOptionSelect = (item: Item | null) => {\n onOptionSelect?.(item);\n if (item) {\n setIsFocused(false);\n }\n };\n\n const {\n isOpen,\n inputValue: hookInputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n getInputProps: hookGetInputProps,\n reset: hookReset,\n filteredOptions,\n selectedItem: hookSelectedItem,\n toggleMenu\n } = useDropdownCombobox<Item>(\n options,\n boxMode ? undefined : isMenuOpenProp,\n autoFocus,\n closeMenuOnSelect,\n defaultValue,\n value,\n inputValueProp,\n onChange,\n onInputChange,\n onMenuClose,\n onMenuOpen,\n handleOptionSelect,\n filterOption,\n showSelectedOptions,\n id\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen: boxMode ? true : isOpen,\n inputValue: hookInputValue ?? null,\n highlightedIndex,\n selectedItem: hookSelectedItem,\n selectedItems: [],\n filteredOptions,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n getInputProps: (inputOptions?: any) => {\n return hookGetInputProps!({\n ...(inputOptions || {}),\n disabled: readOnly || disabled,\n onFocus: (event: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(true);\n onFocus?.(event as any);\n inputOptions?.onFocus?.(event);\n },\n onBlur: (event: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n inputOptions?.onBlur?.(event);\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n inputOptions?.onKeyDown?.(event);\n }\n });\n },\n reset: hookReset,\n contextOnClear: () => {\n hookReset();\n onClear?.();\n },\n contextOnOptionRemove: () => {},\n addSelectedItem: undefined,\n removeSelectedItem: undefined,\n isFocused,\n clearable,\n searchable,\n multi,\n closeMenuOnSelect,\n size,\n toggleMenu,\n loading\n };\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownComboboxController;\n"],"names":["DropdownComboboxController","props","options","isMenuOpenProp","isMenuOpen","autoFocus","_props$closeMenuOnSel","closeMenuOnSelect","defaultValue","value","inputValueProp","inputValue","onChange","onInputChange","onMenuClose","onMenuOpen","onOptionSelect","filterOption","_props$showSelectedOp","showSelectedOptions","_props$clearable","clearable","_props$searchable","searchable","_props$multi","multi","dropdownRef","onFocus","onBlur","onKeyDown","onClear","_props$loading","loading","_props$size","size","id","readOnly","disabled","_props$boxMode","boxMode","_useState","useState","_useState2","_slicedToArray","isFocused","setIsFocused","_useDropdownCombobox","useDropdownCombobox","undefined","item","isOpen","hookInputValue","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookGetInputProps","getInputProps","hookReset","reset","filteredOptions","hookSelectedItem","selectedItem","toggleMenu","contextValue","Object","assign","selectedItems","inputOptions","event","_a","call","contextOnClear","contextOnOptionRemove","addSelectedItem","removeSelectedItem","React","createElement","DropdownWrapperUI"],"mappings":"uNAOA,IAAMA,EAA6B,SACjCC,GAEA,IACEC,
|
|
1
|
+
{"version":3,"file":"DropdownComboboxController.js","sources":["../../../../../../src/components/Dropdown/modes/DropdownComboboxController.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { type DropdownSingleControllerProps } from \"../Dropdown.types\";\nimport useDropdownCombobox from \"../hooks/useDropdownCombobox\";\nimport { type BaseItemData } from \"../../BaseItem\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownComboboxController = <Item extends BaseItemData<Record<string, unknown>>>(\n props: DropdownSingleControllerProps<Item>\n) => {\n const {\n options,\n isMenuOpen: isMenuOpenProp,\n autoFocus,\n closeMenuOnSelect = true,\n defaultValue,\n value,\n inputValue: inputValueProp,\n onChange,\n onInputChange,\n onMenuClose,\n onMenuOpen,\n onOptionSelect,\n filterOption,\n showSelectedOptions = true,\n clearable = true,\n searchable = true,\n multi = false,\n dropdownRef,\n onFocus,\n onBlur,\n onKeyDown,\n onClear,\n loading = false,\n size = \"medium\",\n id,\n readOnly,\n disabled,\n boxMode = false,\n inlineSelectedValue = false\n } = props;\n\n const [isFocused, setIsFocused] = useState(false);\n\n const handleOptionSelect = (item: Item | null) => {\n onOptionSelect?.(item);\n if (item) {\n setIsFocused(false);\n }\n };\n\n const {\n isOpen,\n inputValue: hookInputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n getInputProps: hookGetInputProps,\n reset: hookReset,\n filteredOptions,\n selectedItem: hookSelectedItem,\n toggleMenu\n } = useDropdownCombobox<Item>(\n options,\n boxMode ? undefined : isMenuOpenProp,\n autoFocus,\n closeMenuOnSelect,\n defaultValue,\n value,\n inputValueProp,\n onChange,\n onInputChange,\n onMenuClose,\n onMenuOpen,\n handleOptionSelect,\n filterOption,\n showSelectedOptions,\n id,\n inlineSelectedValue\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen: boxMode ? true : isOpen,\n inputValue: hookInputValue ?? null,\n highlightedIndex,\n selectedItem: hookSelectedItem,\n selectedItems: [],\n filteredOptions,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n getInputProps: (inputOptions?: any) => {\n return hookGetInputProps!({\n ...(inputOptions || {}),\n disabled: readOnly || disabled,\n onFocus: (event: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(true);\n onFocus?.(event as any);\n inputOptions?.onFocus?.(event);\n },\n onBlur: (event: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n inputOptions?.onBlur?.(event);\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n inputOptions?.onKeyDown?.(event);\n }\n });\n },\n reset: hookReset,\n contextOnClear: () => {\n hookReset();\n onClear?.();\n },\n contextOnOptionRemove: () => {},\n addSelectedItem: undefined,\n removeSelectedItem: undefined,\n isFocused,\n clearable,\n searchable,\n multi,\n closeMenuOnSelect,\n size,\n toggleMenu,\n loading\n };\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownComboboxController;\n"],"names":["DropdownComboboxController","props","options","isMenuOpenProp","isMenuOpen","autoFocus","_props$closeMenuOnSel","closeMenuOnSelect","defaultValue","value","inputValueProp","inputValue","onChange","onInputChange","onMenuClose","onMenuOpen","onOptionSelect","filterOption","_props$showSelectedOp","showSelectedOptions","_props$clearable","clearable","_props$searchable","searchable","_props$multi","multi","dropdownRef","onFocus","onBlur","onKeyDown","onClear","_props$loading","loading","_props$size","size","id","readOnly","disabled","_props$boxMode","boxMode","_props$inlineSelected","inlineSelectedValue","_useState","useState","_useState2","_slicedToArray","isFocused","setIsFocused","_useDropdownCombobox","useDropdownCombobox","undefined","item","isOpen","hookInputValue","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookGetInputProps","getInputProps","hookReset","reset","filteredOptions","hookSelectedItem","selectedItem","toggleMenu","contextValue","Object","assign","selectedItems","inputOptions","event","_a","call","contextOnClear","contextOnOptionRemove","addSelectedItem","removeSelectedItem","React","createElement","DropdownWrapperUI"],"mappings":"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"}
|
package/dist/mocked_classnames/src/components/Dropdown/modes/DropdownMultiComboboxController.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useState as n}from"react";import t from"../hooks/useDropdownMultiCombobox.js";import l from"../components/DropdownWrapperUI.js";var i=function(i){var r=i.options,
|
|
1
|
+
import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useState as n}from"react";import t from"../hooks/useDropdownMultiCombobox.js";import l from"../components/DropdownWrapperUI.js";var i=function(i){var r=i.options,s=i.isMenuOpen,u=i.autoFocus,d=i.defaultValue,a=i.value,p=i.inputValue,c=i.onChange,g=i.onInputChange,m=i.onMenuClose,v=i.onMenuOpen,O=i.onOptionSelect,f=i.filterOption,b=i.showSelectedOptions,I=void 0===b||b,P=i.clearable,h=void 0===P||P,M=i.searchable,w=void 0===M||M,S=i.multi,x=void 0===S||S,C=i.closeMenuOnSelect,j=void 0===C||C,y=i.dropdownRef,D=i.onFocus,B=i.onBlur,F=i.onKeyDown,V=i.onClear,R=i.onOptionRemove,A=i.loading,K=void 0!==A&&A,T=i.size,z=void 0===T?"medium":T,L=i.id,_=i.boxMode,k=void 0!==_&&_,E=i.interactiveChips,H=n(Array.isArray(d)?d:[]),U=e(H,2),W=U[0],q=U[1],G=n(!1),J=e(G,2),N=J[0],Q=J[1],X=t(r,W,q,k?void 0:s,u,d,a,p,c,g,m,v,O,f,I,L,R),Y=X.isOpen,Z=X.inputValue,$=X.highlightedIndex,ee=X.getToggleButtonProps,oe=X.getLabelProps,ne=X.getMenuProps,te=X.getItemProps,le=X.getInputProps,ie=X.reset,re=X.toggleMenu,se=X.filteredOptions,ue=X.selectedItems,de=X.addSelectedItem,ae=X.removeSelectedItem,pe=X.getDropdownProps,ce=X.getSelectedItemProps,ge=Object.assign(Object.assign({},i),{isOpen:!!k||Y,inputValue:null!=Z?Z:null,highlightedIndex:$,selectedItems:ue||[],filteredOptions:se,getToggleButtonProps:ee,getLabelProps:oe,getMenuProps:ne,getItemProps:te,getInputProps:function(e){return le(Object.assign(Object.assign({},e||{}),{disabled:i.readOnly||i.disabled,onFocus:function(o){var n;Q(!0),null==D||D(o),null===(n=null==e?void 0:e.onFocus)||void 0===n||n.call(e,o)},onBlur:function(o){var n;Q(!1),null==B||B(o),null===(n=null==e?void 0:e.onBlur)||void 0===n||n.call(e,o)},onKeyDown:function(o){var n;null==F||F(o),null===(n=null==e?void 0:e.onKeyDown)||void 0===n||n.call(e,o)}}))},reset:ie,contextOnClear:function(){ie(),void 0===a&&q([]),null==V||V()},contextOnOptionRemove:function(e){ae&&ae(e),null==R||R(e)},addSelectedItem:de,removeSelectedItem:ae,getSelectedItemProps:ce,isFocused:N,clearable:h,searchable:w,multi:x,closeMenuOnSelect:j,size:z,getDropdownProps:pe,toggleMenu:re,loading:K,interactiveChips:E});return o.createElement(l,{contextValue:ge,dropdownRef:y})};export{i as default};
|
|
2
2
|
//# sourceMappingURL=DropdownMultiComboboxController.js.map
|