@mattermost/compass-ui 0.1.0-alpha.27 → 0.1.0-alpha.29
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/compass-ui.css +20 -2
- package/dist/components/admin-console-footer/AdminConsoleFooter.css +1 -1
- package/dist/components/admin-console-footer/AdminConsoleFooter.module.scss.cjs +1 -1
- package/dist/components/admin-console-footer/AdminConsoleFooter.module.scss.js +7 -7
- package/dist/components/admin-console-header/AdminConsoleHeader.css +1 -1
- package/dist/components/admin-console-header/AdminConsoleHeader.module.scss.cjs +1 -1
- package/dist/components/admin-console-header/AdminConsoleHeader.module.scss.js +8 -8
- package/dist/components/admin-panel/AdminPanel.css +1 -1
- package/dist/components/admin-panel/AdminPanel.module.scss.cjs +1 -1
- package/dist/components/admin-panel/AdminPanel.module.scss.js +5 -5
- package/dist/components/admin-panel-footer/AdminPanelFooter.css +1 -1
- package/dist/components/admin-panel-footer/AdminPanelFooter.module.scss.cjs +1 -1
- package/dist/components/admin-panel-footer/AdminPanelFooter.module.scss.js +5 -5
- package/dist/components/admin-panel-header/AdminPanelHeader.cjs +1 -1
- package/dist/components/admin-panel-header/AdminPanelHeader.cjs.map +1 -1
- package/dist/components/admin-panel-header/AdminPanelHeader.css +1 -1
- package/dist/components/admin-panel-header/AdminPanelHeader.d.ts +6 -0
- package/dist/components/admin-panel-header/AdminPanelHeader.d.ts.map +1 -1
- package/dist/components/admin-panel-header/AdminPanelHeader.js +145 -109
- package/dist/components/admin-panel-header/AdminPanelHeader.js.map +1 -1
- package/dist/components/admin-panel-header/AdminPanelHeader.module.scss.cjs +1 -1
- package/dist/components/admin-panel-header/AdminPanelHeader.module.scss.js +11 -10
- package/dist/components/admin-panel-header/AdminPanelHeader.module.scss.js.map +1 -1
- package/dist/components/attachment-card/AttachmentCard.css +1 -1
- package/dist/components/attachment-card/AttachmentCard.module.scss.cjs +1 -1
- package/dist/components/attachment-card/AttachmentCard.module.scss.js +22 -19
- package/dist/components/attachment-card/AttachmentCard.module.scss.js.map +1 -1
- package/dist/components/button/Button.css +1 -1
- package/dist/components/button/Button.module.scss.cjs +1 -1
- package/dist/components/button/Button.module.scss.js +20 -19
- package/dist/components/button/Button.module.scss.js.map +1 -1
- package/dist/components/card-button/CardButton.css +1 -1
- package/dist/components/card-button/CardButton.module.scss.cjs +1 -1
- package/dist/components/card-button/CardButton.module.scss.js +7 -7
- package/dist/components/card-button/CardButtonGroup.css +1 -1
- package/dist/components/card-button/CardButtonGroup.module.scss.cjs +1 -1
- package/dist/components/card-button/CardButtonGroup.module.scss.js +1 -1
- package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.css +1 -1
- package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.module.scss.cjs +1 -1
- package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.module.scss.js +8 -8
- package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs +1 -1
- package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs.map +1 -1
- package/dist/components/channel-sidebar-item/ChannelSidebarItem.css +1 -1
- package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts +66 -7
- package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts.map +1 -1
- package/dist/components/channel-sidebar-item/ChannelSidebarItem.js +163 -93
- package/dist/components/channel-sidebar-item/ChannelSidebarItem.js.map +1 -1
- package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.cjs +1 -1
- package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.js +35 -22
- package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.js.map +1 -1
- package/dist/components/checkbox/Checkbox.css +1 -1
- package/dist/components/checkbox/Checkbox.module.scss.cjs +1 -1
- package/dist/components/checkbox/Checkbox.module.scss.js +7 -7
- package/dist/components/chip/Chip.cjs +1 -1
- package/dist/components/chip/Chip.cjs.map +1 -1
- package/dist/components/chip/Chip.css +1 -1
- package/dist/components/chip/Chip.d.ts.map +1 -1
- package/dist/components/chip/Chip.js +8 -8
- package/dist/components/chip/Chip.js.map +1 -1
- package/dist/components/chip/Chip.module.scss.cjs +1 -1
- package/dist/components/chip/Chip.module.scss.js +13 -10
- package/dist/components/chip/Chip.module.scss.js.map +1 -1
- package/dist/components/chip/ChipGroup.cjs +1 -1
- package/dist/components/chip/ChipGroup.cjs.map +1 -1
- package/dist/components/chip/ChipGroup.css +1 -1
- package/dist/components/chip/ChipGroup.d.ts +1 -1
- package/dist/components/chip/ChipGroup.d.ts.map +1 -1
- package/dist/components/chip/ChipGroup.js +30 -30
- package/dist/components/chip/ChipGroup.js.map +1 -1
- package/dist/components/chip/ChipGroup.module.scss.cjs +1 -1
- package/dist/components/chip/ChipGroup.module.scss.js +1 -1
- package/dist/components/combobox/Combobox.cjs +1 -1
- package/dist/components/combobox/Combobox.cjs.map +1 -1
- package/dist/components/combobox/Combobox.css +1 -1
- package/dist/components/combobox/Combobox.d.ts +10 -0
- package/dist/components/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.js +269 -252
- package/dist/components/combobox/Combobox.js.map +1 -1
- package/dist/components/combobox/Combobox.module.scss.cjs +1 -1
- package/dist/components/combobox/Combobox.module.scss.js +34 -31
- package/dist/components/combobox/Combobox.module.scss.js.map +1 -1
- package/dist/components/date-range-picker/DateRangePicker.cjs +1 -1
- package/dist/components/date-range-picker/DateRangePicker.cjs.map +1 -1
- package/dist/components/date-range-picker/DateRangePicker.css +1 -1
- package/dist/components/date-range-picker/DateRangePicker.d.ts +14 -1
- package/dist/components/date-range-picker/DateRangePicker.d.ts.map +1 -1
- package/dist/components/date-range-picker/DateRangePicker.js +217 -195
- package/dist/components/date-range-picker/DateRangePicker.js.map +1 -1
- package/dist/components/date-range-picker/DateRangePicker.module.scss.cjs +1 -1
- package/dist/components/date-range-picker/DateRangePicker.module.scss.js +29 -26
- package/dist/components/date-range-picker/DateRangePicker.module.scss.js.map +1 -1
- package/dist/components/divider/Divider.css +1 -1
- package/dist/components/divider/Divider.module.scss.cjs +1 -1
- package/dist/components/divider/Divider.module.scss.js +1 -1
- package/dist/components/dropdown/Dropdown.css +1 -1
- package/dist/components/dropdown/Dropdown.module.scss.cjs +1 -1
- package/dist/components/dropdown/Dropdown.module.scss.js +23 -22
- package/dist/components/dropdown/Dropdown.module.scss.js.map +1 -1
- package/dist/components/emoji/Emoji.css +1 -1
- package/dist/components/emoji/Emoji.module.scss.cjs +1 -1
- package/dist/components/emoji/Emoji.module.scss.js +12 -12
- package/dist/components/emoji-button/EmojiButton.css +1 -1
- package/dist/components/emoji-button/EmojiButton.module.scss.cjs +1 -1
- package/dist/components/emoji-button/EmojiButton.module.scss.js +12 -9
- package/dist/components/emoji-button/EmojiButton.module.scss.js.map +1 -1
- package/dist/components/emoji-popover/EmojiPopover.css +1 -1
- package/dist/components/emoji-popover/EmojiPopover.module.scss.cjs +1 -1
- package/dist/components/emoji-popover/EmojiPopover.module.scss.js +21 -21
- package/dist/components/empty-state/EmptyState.css +1 -1
- package/dist/components/empty-state/EmptyState.module.scss.cjs +1 -1
- package/dist/components/empty-state/EmptyState.module.scss.js +7 -7
- package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.css +1 -1
- package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.module.scss.cjs +1 -1
- package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.module.scss.js +9 -9
- package/dist/components/field/FieldClearButton.css +1 -1
- package/dist/components/field/FieldClearButton.module.scss.cjs +1 -1
- package/dist/components/field/FieldClearButton.module.scss.js +3 -3
- package/dist/components/field-message/FieldMessage.css +1 -1
- package/dist/components/field-message/FieldMessage.module.scss.cjs +1 -1
- package/dist/components/field-message/FieldMessage.module.scss.js +7 -7
- package/dist/components/global-banner/GlobalBanner.css +1 -1
- package/dist/components/global-banner/GlobalBanner.module.scss.cjs +1 -1
- package/dist/components/global-banner/GlobalBanner.module.scss.js +10 -10
- package/dist/components/icon/Icon.css +1 -1
- package/dist/components/icon/Icon.module.scss.cjs +1 -1
- package/dist/components/icon/Icon.module.scss.js +13 -13
- package/dist/components/icon-button/IconButton.css +1 -1
- package/dist/components/icon-button/IconButton.module.scss.cjs +1 -1
- package/dist/components/icon-button/IconButton.module.scss.js +19 -16
- package/dist/components/icon-button/IconButton.module.scss.js.map +1 -1
- package/dist/components/illustration/Illustration.css +1 -1
- package/dist/components/illustration/Illustration.module.scss.cjs +1 -1
- package/dist/components/illustration/Illustration.module.scss.js +1 -1
- package/dist/components/image-preview/ImagePreview.css +1 -1
- package/dist/components/image-preview/ImagePreview.module.scss.cjs +1 -1
- package/dist/components/image-preview/ImagePreview.module.scss.js +15 -15
- package/dist/components/link-preview/LinkPreview.css +1 -1
- package/dist/components/link-preview/LinkPreview.module.scss.cjs +1 -1
- package/dist/components/link-preview/LinkPreview.module.scss.js +14 -14
- package/dist/components/mention-badge/MentionBadge.css +1 -1
- package/dist/components/mention-badge/MentionBadge.module.scss.cjs +1 -1
- package/dist/components/mention-badge/MentionBadge.module.scss.js +9 -9
- package/dist/components/menu-group-heading/MenuGroupHeading.css +1 -1
- package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.cjs +1 -1
- package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.js +2 -2
- package/dist/components/menu-item/MenuItem.css +1 -1
- package/dist/components/menu-item/MenuItem.module.scss.cjs +1 -1
- package/dist/components/menu-item/MenuItem.module.scss.js +18 -18
- package/dist/components/message-actions/MessageActions.css +1 -1
- package/dist/components/message-actions/MessageActions.module.scss.cjs +1 -1
- package/dist/components/message-actions/MessageActions.module.scss.js +2 -2
- package/dist/components/message-header/MessageHeader.css +1 -1
- package/dist/components/message-header/MessageHeader.module.scss.cjs +1 -1
- package/dist/components/message-header/MessageHeader.module.scss.js +3 -3
- package/dist/components/message-separator/MessageSeparator.css +1 -1
- package/dist/components/message-separator/MessageSeparator.module.scss.cjs +1 -1
- package/dist/components/message-separator/MessageSeparator.module.scss.js +11 -11
- package/dist/components/modal/Modal.cjs +1 -1
- package/dist/components/modal/Modal.cjs.map +1 -1
- package/dist/components/modal/Modal.css +1 -1
- package/dist/components/modal/Modal.d.ts +11 -1
- package/dist/components/modal/Modal.d.ts.map +1 -1
- package/dist/components/modal/Modal.js +38 -36
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/components/modal/Modal.module.scss.cjs +1 -1
- package/dist/components/modal/Modal.module.scss.js +11 -11
- package/dist/components/modal/ModalOverlay.cjs.map +1 -1
- package/dist/components/modal/ModalOverlay.css +1 -1
- package/dist/components/modal/ModalOverlay.d.ts +1 -1
- package/dist/components/modal/ModalOverlay.js.map +1 -1
- package/dist/components/modal/ModalOverlay.module.scss.cjs +1 -1
- package/dist/components/modal/ModalOverlay.module.scss.js +5 -5
- package/dist/components/modal-footer/ModalFooter.css +1 -1
- package/dist/components/modal-footer/ModalFooter.module.scss.cjs +1 -1
- package/dist/components/modal-footer/ModalFooter.module.scss.js +11 -11
- package/dist/components/modal-header/ModalHeader.cjs +1 -1
- package/dist/components/modal-header/ModalHeader.cjs.map +1 -1
- package/dist/components/modal-header/ModalHeader.css +1 -1
- package/dist/components/modal-header/ModalHeader.d.ts +13 -3
- package/dist/components/modal-header/ModalHeader.d.ts.map +1 -1
- package/dist/components/modal-header/ModalHeader.js +61 -55
- package/dist/components/modal-header/ModalHeader.js.map +1 -1
- package/dist/components/modal-header/ModalHeader.module.scss.cjs +1 -1
- package/dist/components/modal-header/ModalHeader.module.scss.js +18 -16
- package/dist/components/modal-header/ModalHeader.module.scss.js.map +1 -1
- package/dist/components/more-unreads-banner/MoreUnreadsBanner.css +1 -1
- package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.scss.cjs +1 -1
- package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.scss.js +8 -5
- package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.scss.js.map +1 -1
- package/dist/components/new-message-banner/NewMessageBanner.css +1 -1
- package/dist/components/new-message-banner/NewMessageBanner.module.scss.cjs +1 -1
- package/dist/components/new-message-banner/NewMessageBanner.module.scss.js +9 -9
- package/dist/components/pagination-dots/PaginationDots.css +1 -1
- package/dist/components/pagination-dots/PaginationDots.module.scss.cjs +1 -1
- package/dist/components/pagination-dots/PaginationDots.module.scss.js +10 -10
- package/dist/components/password-input/PasswordInput.css +1 -1
- package/dist/components/password-input/PasswordInput.module.scss.cjs +1 -1
- package/dist/components/password-input/PasswordInput.module.scss.js +15 -14
- package/dist/components/password-input/PasswordInput.module.scss.js.map +1 -1
- package/dist/components/permalink-preview/PermalinkPreview.css +1 -1
- package/dist/components/permalink-preview/PermalinkPreview.module.scss.cjs +1 -1
- package/dist/components/permalink-preview/PermalinkPreview.module.scss.js +13 -13
- package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.css +1 -1
- package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.module.scss.cjs +1 -1
- package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.module.scss.js +7 -7
- package/dist/components/popover-menu/PopoverMenu.css +1 -1
- package/dist/components/popover-menu/PopoverMenu.module.scss.cjs +1 -1
- package/dist/components/popover-menu/PopoverMenu.module.scss.js +13 -13
- package/dist/components/popover-notice/PopoverNotice.css +1 -1
- package/dist/components/popover-notice/PopoverNotice.module.scss.cjs +1 -1
- package/dist/components/popover-notice/PopoverNotice.module.scss.js +14 -14
- package/dist/components/profile-popover/ProfilePopover.css +1 -1
- package/dist/components/profile-popover/ProfilePopover.module.scss.cjs +1 -1
- package/dist/components/profile-popover/ProfilePopover.module.scss.js +33 -33
- package/dist/components/progress-bar/ProgressBar.css +1 -1
- package/dist/components/progress-bar/ProgressBar.module.scss.cjs +1 -1
- package/dist/components/progress-bar/ProgressBar.module.scss.js +9 -9
- package/dist/components/radio/Radio.css +1 -1
- package/dist/components/radio/Radio.module.scss.cjs +1 -1
- package/dist/components/radio/Radio.module.scss.js +12 -12
- package/dist/components/reaction-button/ReactionButton.css +1 -1
- package/dist/components/reaction-button/ReactionButton.module.scss.cjs +1 -1
- package/dist/components/reaction-button/ReactionButton.module.scss.js +8 -8
- package/dist/components/reactions-row/ReactionsRow.css +1 -1
- package/dist/components/reactions-row/ReactionsRow.module.scss.cjs +1 -1
- package/dist/components/reactions-row/ReactionsRow.module.scss.js +8 -8
- package/dist/components/right-sidebar-header/RightSidebarHeader.cjs +1 -1
- package/dist/components/right-sidebar-header/RightSidebarHeader.cjs.map +1 -1
- package/dist/components/right-sidebar-header/RightSidebarHeader.css +1 -1
- package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts.map +1 -1
- package/dist/components/right-sidebar-header/RightSidebarHeader.js +39 -36
- package/dist/components/right-sidebar-header/RightSidebarHeader.js.map +1 -1
- package/dist/components/right-sidebar-header/RightSidebarHeader.module.scss.cjs +1 -1
- package/dist/components/right-sidebar-header/RightSidebarHeader.module.scss.js +12 -13
- package/dist/components/right-sidebar-header/RightSidebarHeader.module.scss.js.map +1 -1
- package/dist/components/scrollbar/Scrollbar.css +1 -1
- package/dist/components/scrollbar/Scrollbar.module.scss.cjs +1 -1
- package/dist/components/scrollbar/Scrollbar.module.scss.js +5 -5
- package/dist/components/search-input/SearchInput.css +1 -1
- package/dist/components/search-input/SearchInput.module.scss.cjs +1 -1
- package/dist/components/search-input/SearchInput.module.scss.js +15 -15
- package/dist/components/search-tip-banner/SearchTipBanner.css +1 -1
- package/dist/components/search-tip-banner/SearchTipBanner.module.scss.cjs +1 -1
- package/dist/components/search-tip-banner/SearchTipBanner.module.scss.js +3 -3
- package/dist/components/section-notice/SectionNotice.css +1 -1
- package/dist/components/section-notice/SectionNotice.module.scss.cjs +1 -1
- package/dist/components/section-notice/SectionNotice.module.scss.js +12 -12
- package/dist/components/segmented-control/SegmentedControl.cjs +2 -0
- package/dist/components/segmented-control/SegmentedControl.cjs.map +1 -0
- package/dist/components/segmented-control/SegmentedControl.css +1 -0
- package/dist/components/segmented-control/SegmentedControl.d.ts +71 -0
- package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -0
- package/dist/components/segmented-control/SegmentedControl.js +173 -0
- package/dist/components/segmented-control/SegmentedControl.js.map +1 -0
- package/dist/components/segmented-control/SegmentedControl.module.scss.cjs +2 -0
- package/dist/components/segmented-control/SegmentedControl.module.scss.cjs.map +1 -0
- package/dist/components/segmented-control/SegmentedControl.module.scss.js +20 -0
- package/dist/components/segmented-control/SegmentedControl.module.scss.js.map +1 -0
- package/dist/components/segmented-control/index.cjs +2 -0
- package/dist/components/segmented-control/index.cjs.map +1 -0
- package/dist/components/segmented-control/index.d.ts +3 -0
- package/dist/components/segmented-control/index.d.ts.map +1 -0
- package/dist/components/segmented-control/index.js +5 -0
- package/dist/components/segmented-control/index.js.map +1 -0
- package/dist/components/select/Select.cjs +1 -1
- package/dist/components/select/Select.cjs.map +1 -1
- package/dist/components/select/Select.css +1 -1
- package/dist/components/select/Select.d.ts +14 -0
- package/dist/components/select/Select.d.ts.map +1 -1
- package/dist/components/select/Select.js +151 -130
- package/dist/components/select/Select.js.map +1 -1
- package/dist/components/select/Select.module.scss.cjs +1 -1
- package/dist/components/select/Select.module.scss.js +28 -26
- package/dist/components/select/Select.module.scss.js.map +1 -1
- package/dist/components/shortcut-tag/ShortcutTag.css +1 -1
- package/dist/components/shortcut-tag/ShortcutTag.module.scss.cjs +1 -1
- package/dist/components/shortcut-tag/ShortcutTag.module.scss.js +7 -7
- package/dist/components/spinner/Spinner.css +1 -1
- package/dist/components/spinner/Spinner.module.scss.cjs +1 -1
- package/dist/components/spinner/Spinner.module.scss.js +2 -2
- package/dist/components/status-badge/StatusBadge.cjs +1 -1
- package/dist/components/status-badge/StatusBadge.cjs.map +1 -1
- package/dist/components/status-badge/StatusBadge.css +1 -1
- package/dist/components/status-badge/StatusBadge.d.ts +3 -1
- package/dist/components/status-badge/StatusBadge.d.ts.map +1 -1
- package/dist/components/status-badge/StatusBadge.js +16 -15
- package/dist/components/status-badge/StatusBadge.js.map +1 -1
- package/dist/components/status-badge/StatusBadge.module.scss.cjs +1 -1
- package/dist/components/status-badge/StatusBadge.module.scss.js +11 -11
- package/dist/components/switch/Switch.css +1 -1
- package/dist/components/switch/Switch.module.scss.cjs +1 -1
- package/dist/components/switch/Switch.module.scss.js +8 -8
- package/dist/components/tabs/Tabs.css +1 -1
- package/dist/components/tabs/Tabs.module.scss.cjs +1 -1
- package/dist/components/tabs/Tabs.module.scss.js +16 -13
- package/dist/components/tabs/Tabs.module.scss.js.map +1 -1
- package/dist/components/tag/Tag.css +1 -1
- package/dist/components/tag/Tag.module.scss.cjs +1 -1
- package/dist/components/tag/Tag.module.scss.js +11 -11
- package/dist/components/team-avatar/TeamAvatar.css +1 -1
- package/dist/components/team-avatar/TeamAvatar.module.scss.cjs +1 -1
- package/dist/components/team-avatar/TeamAvatar.module.scss.js +17 -17
- package/dist/components/text-area/TextArea.css +1 -1
- package/dist/components/text-area/TextArea.module.scss.cjs +1 -1
- package/dist/components/text-area/TextArea.module.scss.js +12 -12
- package/dist/components/text-input/TextInput.css +1 -1
- package/dist/components/text-input/TextInput.module.scss.cjs +1 -1
- package/dist/components/text-input/TextInput.module.scss.js +19 -19
- package/dist/components/thread-footer/ThreadFooter.cjs +1 -1
- package/dist/components/thread-footer/ThreadFooter.cjs.map +1 -1
- package/dist/components/thread-footer/ThreadFooter.css +1 -1
- package/dist/components/thread-footer/ThreadFooter.d.ts.map +1 -1
- package/dist/components/thread-footer/ThreadFooter.js +14 -14
- package/dist/components/thread-footer/ThreadFooter.js.map +1 -1
- package/dist/components/thread-footer/ThreadFooter.module.scss.cjs +1 -1
- package/dist/components/thread-footer/ThreadFooter.module.scss.js +19 -20
- package/dist/components/thread-footer/ThreadFooter.module.scss.js.map +1 -1
- package/dist/components/thread-list-item/ThreadListItem.css +1 -1
- package/dist/components/thread-list-item/ThreadListItem.module.scss.cjs +1 -1
- package/dist/components/thread-list-item/ThreadListItem.module.scss.js +26 -26
- package/dist/components/tile-button/TileButton.css +1 -1
- package/dist/components/tile-button/TileButton.module.scss.cjs +1 -1
- package/dist/components/tile-button/TileButton.module.scss.js +6 -6
- package/dist/components/toast/Toast.css +1 -1
- package/dist/components/toast/Toast.module.scss.cjs +1 -1
- package/dist/components/toast/Toast.module.scss.js +11 -11
- package/dist/components/tooltip/Tooltip.cjs +1 -1
- package/dist/components/tooltip/Tooltip.cjs.map +1 -1
- package/dist/components/tooltip/Tooltip.css +1 -1
- package/dist/components/tooltip/Tooltip.d.ts +10 -1
- package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/tooltip/Tooltip.js +29 -17
- package/dist/components/tooltip/Tooltip.js.map +1 -1
- package/dist/components/tooltip/Tooltip.module.scss.cjs +1 -1
- package/dist/components/tooltip/Tooltip.module.scss.js +7 -6
- package/dist/components/tooltip/Tooltip.module.scss.js.map +1 -1
- package/dist/components/tooltip/index.d.ts +1 -1
- package/dist/components/tooltip/index.d.ts.map +1 -1
- package/dist/components/tour-point/TourPoint.css +1 -1
- package/dist/components/tour-point/TourPoint.module.scss.cjs +1 -1
- package/dist/components/tour-point/TourPoint.module.scss.js +28 -28
- package/dist/components/unread-badge/UnreadBadge.css +1 -1
- package/dist/components/unread-badge/UnreadBadge.module.scss.cjs +1 -1
- package/dist/components/unread-badge/UnreadBadge.module.scss.js +5 -5
- package/dist/components/user-avatar/UserAvatar.cjs +1 -1
- package/dist/components/user-avatar/UserAvatar.cjs.map +1 -1
- package/dist/components/user-avatar/UserAvatar.css +1 -1
- package/dist/components/user-avatar/UserAvatar.d.ts +18 -8
- package/dist/components/user-avatar/UserAvatar.d.ts.map +1 -1
- package/dist/components/user-avatar/UserAvatar.js +84 -52
- package/dist/components/user-avatar/UserAvatar.js.map +1 -1
- package/dist/components/user-avatar/UserAvatar.module.scss.cjs +1 -1
- package/dist/components/user-avatar/UserAvatar.module.scss.js +33 -26
- package/dist/components/user-avatar/UserAvatar.module.scss.js.map +1 -1
- package/dist/components/user-avatar-group/UserAvatarGroup.css +1 -1
- package/dist/components/user-avatar-group/UserAvatarGroup.module.scss.cjs +1 -1
- package/dist/components/user-avatar-group/UserAvatarGroup.module.scss.js +14 -14
- package/dist/hooks/use-anchored-popup-portal.cjs.map +1 -1
- package/dist/hooks/use-anchored-popup-portal.d.ts +1 -1
- package/dist/hooks/use-anchored-popup-portal.d.ts.map +1 -1
- package/dist/hooks/use-anchored-popup-portal.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +57 -55
- package/dist/index.js.map +1 -1
- package/dist/utils/anchoredPopupPlacement.cjs +1 -1
- package/dist/utils/anchoredPopupPlacement.cjs.map +1 -1
- package/dist/utils/anchoredPopupPlacement.d.ts +8 -4
- package/dist/utils/anchoredPopupPlacement.d.ts.map +1 -1
- package/dist/utils/anchoredPopupPlacement.js +18 -18
- package/dist/utils/anchoredPopupPlacement.js.map +1 -1
- package/package.json +4 -1
|
@@ -1,261 +1,282 @@
|
|
|
1
|
-
import { jsxs as k, jsx as o, Fragment as
|
|
2
|
-
import { forwardRef as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
1
|
+
import { jsxs as k, jsx as o, Fragment as Re } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as Se, useId as Ve, useRef as D, useCallback as p, useState as M, useMemo as Z, useEffect as ee } from "react";
|
|
3
|
+
import __$e from "@mattermost/compass-icons/components/chevron-down.js";const $e=__$e&&__$e.default?__$e.default:__$e;
|
|
4
|
+
import Ae, { IconSlotContext as Be } from "../icon/Icon.js";
|
|
5
|
+
import { mergeFieldDescribedBy as Oe, hasFieldMessage as He, isFieldInvalid as je } from "../field/fieldDescribedBy.js";
|
|
6
|
+
import Ce from "../field-message/FieldMessage.js";
|
|
7
|
+
import ze from "../menu-item/MenuItem.js";
|
|
8
|
+
import Ue, { PopoverMenuScroll as Ke, PopoverMenuDivider as Le } from "../popover-menu/PopoverMenu.js";
|
|
9
|
+
import { useAnchoredPopupPortal as Te } from "../../hooks/use-anchored-popup-portal.js";
|
|
10
|
+
import { useOutsideClose as qe } from "../../hooks/use-outside-close.js";
|
|
11
|
+
import { usePopoverTransition as Ge } from "../../hooks/use-popover-transition.js";
|
|
12
|
+
import { mergeMenuItemProps as Xe } from "../../utils/menuItemProps.js";
|
|
13
|
+
import { toKebab as Je } from "../../utils/string.js";
|
|
12
14
|
import l from "./Select.module.scss.js";
|
|
13
|
-
const
|
|
14
|
-
function
|
|
15
|
-
option:
|
|
15
|
+
const te = 280;
|
|
16
|
+
function Qe({
|
|
17
|
+
option: a,
|
|
16
18
|
menuItemProps: m,
|
|
17
19
|
listboxId: N,
|
|
18
20
|
selected: g,
|
|
19
21
|
active: E,
|
|
20
22
|
onSelect: v,
|
|
21
|
-
onHover:
|
|
23
|
+
onHover: F,
|
|
22
24
|
dividerAfter: u = !1
|
|
23
25
|
}) {
|
|
24
|
-
return /* @__PURE__ */ k(
|
|
26
|
+
return /* @__PURE__ */ k(Re, { children: [
|
|
25
27
|
/* @__PURE__ */ o("li", { className: l.select__option, role: "presentation", children: /* @__PURE__ */ o(
|
|
26
|
-
|
|
28
|
+
ze,
|
|
27
29
|
{
|
|
28
|
-
...
|
|
29
|
-
id: `${N}-option-${
|
|
30
|
+
...Xe(m, a.menuItemProps),
|
|
31
|
+
id: `${N}-option-${a.value}`,
|
|
30
32
|
role: "option",
|
|
31
|
-
label:
|
|
32
|
-
secondaryLabel:
|
|
33
|
-
leadingElement:
|
|
34
|
-
leadingVisual:
|
|
33
|
+
label: a.label,
|
|
34
|
+
secondaryLabel: a.secondaryLabel,
|
|
35
|
+
leadingElement: a.leadingVisual != null,
|
|
36
|
+
leadingVisual: a.leadingVisual,
|
|
35
37
|
trailingElement: g,
|
|
36
38
|
active: E,
|
|
37
|
-
disabled:
|
|
39
|
+
disabled: a.disabled,
|
|
38
40
|
"aria-selected": g,
|
|
39
41
|
onMouseDown: (I) => I.preventDefault(),
|
|
40
|
-
onMouseEnter:
|
|
42
|
+
onMouseEnter: F,
|
|
41
43
|
onPointerUp: () => {
|
|
42
|
-
|
|
44
|
+
a.disabled || v(a);
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
47
|
) }),
|
|
46
|
-
u ? /* @__PURE__ */ o("li", { role: "presentation", children: /* @__PURE__ */ o(
|
|
48
|
+
u ? /* @__PURE__ */ o("li", { role: "presentation", children: /* @__PURE__ */ o(Le, { "aria-hidden": "true" }) }) : null
|
|
47
49
|
] });
|
|
48
50
|
}
|
|
49
|
-
const
|
|
51
|
+
const dt = Se(function({
|
|
50
52
|
options: m,
|
|
51
53
|
menuItemProps: N,
|
|
52
54
|
value: g,
|
|
53
55
|
defaultValue: E = "",
|
|
54
56
|
onChange: v,
|
|
55
|
-
placeholder:
|
|
57
|
+
placeholder: F,
|
|
56
58
|
label: u,
|
|
57
59
|
leadingIcon: I,
|
|
58
|
-
size:
|
|
59
|
-
invalid:
|
|
60
|
+
size: le = "medium",
|
|
61
|
+
invalid: se = !1,
|
|
62
|
+
message: R,
|
|
63
|
+
messageTone: $,
|
|
64
|
+
required: ne = !1,
|
|
60
65
|
disabled: b = !1,
|
|
61
|
-
id:
|
|
62
|
-
name:
|
|
63
|
-
className:
|
|
64
|
-
"aria-label":
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
id: re,
|
|
67
|
+
name: A,
|
|
68
|
+
className: oe = "",
|
|
69
|
+
"aria-label": B,
|
|
70
|
+
"aria-describedby": ie,
|
|
71
|
+
listboxLabel: ae = "Options",
|
|
72
|
+
portalContainer: ce = null,
|
|
73
|
+
zIndex: ue
|
|
74
|
+
}, y) {
|
|
75
|
+
const de = Ve(), x = re ?? de, h = `${x}-listbox`, O = D(null), H = D(null), j = D(null), fe = p(
|
|
70
76
|
(e) => {
|
|
71
|
-
|
|
77
|
+
j.current = e, typeof y == "function" ? y(e) : y && (y.current = e);
|
|
72
78
|
},
|
|
73
|
-
[
|
|
74
|
-
), S = g !== void 0, [
|
|
79
|
+
[y]
|
|
80
|
+
), S = g !== void 0, [pe, me] = M(E), d = S ? g : pe, [n, C] = M(!1), [ve, z] = M(!1), [i, f] = M(-1), P = D(!1), be = p(
|
|
75
81
|
(e) => {
|
|
76
|
-
e !==
|
|
82
|
+
e !== i && (P.current = !0, f(e));
|
|
77
83
|
},
|
|
78
|
-
[
|
|
79
|
-
), V =
|
|
84
|
+
[i]
|
|
85
|
+
), V = Z(
|
|
80
86
|
() => m.find((e) => e.value === d),
|
|
81
87
|
[m, d]
|
|
82
|
-
), r =
|
|
88
|
+
), r = Z(
|
|
83
89
|
() => m.filter((e) => e.value !== ""),
|
|
84
90
|
[m]
|
|
85
|
-
),
|
|
86
|
-
placement:
|
|
87
|
-
maxHeight:
|
|
88
|
-
style:
|
|
89
|
-
portalRef:
|
|
90
|
-
renderPortal:
|
|
91
|
-
} =
|
|
92
|
-
preferredHeight:
|
|
93
|
-
maxHeightCap:
|
|
94
|
-
portalContainer:
|
|
95
|
-
zIndex:
|
|
91
|
+
), U = d !== "", { mounted: K, visible: he } = Ge(n), {
|
|
92
|
+
placement: _e,
|
|
93
|
+
maxHeight: ge,
|
|
94
|
+
style: Ie,
|
|
95
|
+
portalRef: L,
|
|
96
|
+
renderPortal: ye
|
|
97
|
+
} = Te(H, K, {
|
|
98
|
+
preferredHeight: te,
|
|
99
|
+
maxHeightCap: te,
|
|
100
|
+
portalContainer: ce,
|
|
101
|
+
zIndex: ue
|
|
96
102
|
}), _ = p(() => {
|
|
97
|
-
|
|
98
|
-
}, []),
|
|
99
|
-
b ||
|
|
103
|
+
C(!1), f(-1);
|
|
104
|
+
}, []), w = p(() => {
|
|
105
|
+
b || C(!0);
|
|
100
106
|
}, [b]);
|
|
101
|
-
|
|
102
|
-
|
|
107
|
+
qe(O, n, _, L), ee(() => {
|
|
108
|
+
n && f((e) => {
|
|
103
109
|
if (r.length === 0) return -1;
|
|
104
110
|
if (e >= 0 && e < r.length) return e;
|
|
105
111
|
const t = r.findIndex((c) => c.value === d);
|
|
106
112
|
if (t >= 0) return t;
|
|
107
|
-
const
|
|
108
|
-
return
|
|
113
|
+
const s = r.findIndex((c) => !c.disabled);
|
|
114
|
+
return s >= 0 ? s : 0;
|
|
109
115
|
});
|
|
110
|
-
}, [
|
|
116
|
+
}, [n, r, d]);
|
|
111
117
|
const T = p(
|
|
112
118
|
(e) => {
|
|
113
|
-
S ||
|
|
119
|
+
S || me(e), v == null || v(e);
|
|
114
120
|
},
|
|
115
121
|
[S, v]
|
|
116
|
-
),
|
|
122
|
+
), q = p(
|
|
117
123
|
(e) => {
|
|
118
124
|
var t;
|
|
119
|
-
e.disabled || (T(e.value), _(), (t =
|
|
125
|
+
e.disabled || (T(e.value), _(), (t = j.current) == null || t.focus());
|
|
120
126
|
},
|
|
121
127
|
[T, _]
|
|
122
128
|
), G = p(
|
|
123
129
|
(e) => {
|
|
124
|
-
|
|
125
|
-
const t = r.map((
|
|
130
|
+
P.current = !1;
|
|
131
|
+
const t = r.map((s, c) => ({ o: s, i: c })).filter(({ o: s }) => !s.disabled);
|
|
126
132
|
if (t.length === 0) {
|
|
127
133
|
f(-1);
|
|
128
134
|
return;
|
|
129
135
|
}
|
|
130
|
-
f((
|
|
131
|
-
const c = t.findIndex(({ i:
|
|
132
|
-
return t[
|
|
136
|
+
f((s) => {
|
|
137
|
+
const c = t.findIndex(({ i: Fe }) => Fe === s), Ee = c < 0 ? e > 0 ? 0 : t.length - 1 : (c + e + t.length) % t.length;
|
|
138
|
+
return t[Ee].i;
|
|
133
139
|
});
|
|
134
140
|
},
|
|
135
141
|
[r]
|
|
136
142
|
);
|
|
137
|
-
|
|
138
|
-
var
|
|
139
|
-
if (!
|
|
140
|
-
if (
|
|
141
|
-
|
|
143
|
+
ee(() => {
|
|
144
|
+
var s;
|
|
145
|
+
if (!n || i < 0) return;
|
|
146
|
+
if (P.current) {
|
|
147
|
+
P.current = !1;
|
|
142
148
|
return;
|
|
143
149
|
}
|
|
144
|
-
const e = r[
|
|
150
|
+
const e = r[i];
|
|
145
151
|
if (!e) return;
|
|
146
152
|
const t = document.getElementById(`${h}-option-${e.value}`);
|
|
147
|
-
(
|
|
148
|
-
}, [
|
|
149
|
-
const
|
|
153
|
+
(s = t == null ? void 0 : t.scrollIntoView) == null || s.call(t, { block: "nearest" });
|
|
154
|
+
}, [n, i, r, h]);
|
|
155
|
+
const xe = (e) => {
|
|
150
156
|
var t;
|
|
151
157
|
if (!b)
|
|
152
158
|
switch (e.key) {
|
|
153
159
|
case "ArrowDown":
|
|
154
|
-
e.preventDefault(),
|
|
160
|
+
e.preventDefault(), n ? G(1) : w();
|
|
155
161
|
break;
|
|
156
162
|
case "ArrowUp":
|
|
157
|
-
e.preventDefault(),
|
|
163
|
+
e.preventDefault(), n ? G(-1) : w();
|
|
158
164
|
break;
|
|
159
165
|
case "Home":
|
|
160
|
-
if (
|
|
166
|
+
if (n && r.length > 0) {
|
|
161
167
|
e.preventDefault();
|
|
162
|
-
const
|
|
163
|
-
f(
|
|
168
|
+
const s = r.findIndex((c) => !c.disabled);
|
|
169
|
+
f(s >= 0 ? s : 0);
|
|
164
170
|
}
|
|
165
171
|
break;
|
|
166
172
|
case "End":
|
|
167
|
-
if (
|
|
173
|
+
if (n && r.length > 0) {
|
|
168
174
|
e.preventDefault();
|
|
169
|
-
for (let
|
|
170
|
-
if (!((t = r[
|
|
171
|
-
f(
|
|
175
|
+
for (let s = r.length - 1; s >= 0; s--)
|
|
176
|
+
if (!((t = r[s]) != null && t.disabled)) {
|
|
177
|
+
f(s);
|
|
172
178
|
break;
|
|
173
179
|
}
|
|
174
180
|
}
|
|
175
181
|
break;
|
|
176
182
|
case "Enter":
|
|
177
183
|
case " ":
|
|
178
|
-
e.preventDefault(),
|
|
184
|
+
e.preventDefault(), n && i >= 0 && r[i] ? q(r[i]) : n || w();
|
|
179
185
|
break;
|
|
180
186
|
case "Escape":
|
|
181
|
-
|
|
187
|
+
n && (e.preventDefault(), _());
|
|
182
188
|
break;
|
|
183
189
|
case "Tab":
|
|
184
190
|
_();
|
|
185
191
|
break;
|
|
186
192
|
}
|
|
187
|
-
},
|
|
193
|
+
}, Pe = ve || n || U, X = (V == null ? void 0 : V.label) ?? F ?? "", we = !U && X !== "", J = i >= 0 ? r[i] : void 0, De = n && J != null ? `${h}-option-${J.value}` : void 0, Q = je(se, R, $), W = He(R), Y = W ? `${x}-message` : void 0, Me = l[`select--size-${Je(le)}`], ke = [
|
|
188
194
|
l.select,
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
u != null &&
|
|
195
|
+
Me,
|
|
196
|
+
Q ? l["select--invalid"] : "",
|
|
197
|
+
u != null && Pe ? l["select--label-floated"] : "",
|
|
192
198
|
I != null ? l["select--has-leading-icon"] : "",
|
|
193
|
-
|
|
199
|
+
n ? l["select--open"] : "",
|
|
194
200
|
b ? l["select--disabled"] : "",
|
|
195
|
-
|
|
196
|
-
].filter(Boolean).join(" "),
|
|
201
|
+
oe
|
|
202
|
+
].filter(Boolean).join(" "), Ne = [
|
|
197
203
|
l.select__control,
|
|
198
|
-
|
|
204
|
+
we ? l["select__control--placeholder"] : ""
|
|
199
205
|
].filter(Boolean).join(" ");
|
|
200
|
-
return /* @__PURE__ */ k("div", { className:
|
|
206
|
+
return /* @__PURE__ */ k("div", { className: ke, ref: O, children: [
|
|
201
207
|
/* @__PURE__ */ k("div", { className: l.select__wrapper, ref: H, children: [
|
|
202
|
-
u != null && /* @__PURE__ */ o("label", { className: l.select__label, htmlFor:
|
|
208
|
+
u != null && /* @__PURE__ */ o("label", { className: l.select__label, htmlFor: x, children: u }),
|
|
203
209
|
/* @__PURE__ */ k(
|
|
204
210
|
"button",
|
|
205
211
|
{
|
|
206
|
-
ref:
|
|
207
|
-
id:
|
|
212
|
+
ref: fe,
|
|
213
|
+
id: x,
|
|
208
214
|
type: "button",
|
|
209
215
|
role: "combobox",
|
|
210
|
-
className:
|
|
216
|
+
className: Ne,
|
|
211
217
|
disabled: b,
|
|
212
218
|
"aria-haspopup": "listbox",
|
|
213
|
-
"aria-expanded":
|
|
219
|
+
"aria-expanded": n,
|
|
214
220
|
"aria-controls": h,
|
|
215
|
-
"aria-activedescendant":
|
|
216
|
-
"aria-invalid":
|
|
217
|
-
"aria-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
221
|
+
"aria-activedescendant": De,
|
|
222
|
+
"aria-invalid": Q ? !0 : void 0,
|
|
223
|
+
"aria-required": ne ? !0 : void 0,
|
|
224
|
+
"aria-describedby": Oe(
|
|
225
|
+
ie,
|
|
226
|
+
Y,
|
|
227
|
+
void 0
|
|
228
|
+
),
|
|
229
|
+
"aria-label": B,
|
|
230
|
+
onClick: () => n ? _() : w(),
|
|
231
|
+
onFocus: () => z(!0),
|
|
232
|
+
onBlur: () => z(!1),
|
|
233
|
+
onKeyDown: xe,
|
|
222
234
|
children: [
|
|
223
|
-
I != null && /* @__PURE__ */ o("span", { className: l["select__leading-icon"], "aria-hidden": !0, children: /* @__PURE__ */ o(
|
|
235
|
+
I != null && /* @__PURE__ */ o("span", { className: l["select__leading-icon"], "aria-hidden": !0, children: /* @__PURE__ */ o(Be.Provider, { value: { size: "16" }, children: I }) }),
|
|
224
236
|
/* @__PURE__ */ o("span", { className: l.select__value, children: X }),
|
|
225
|
-
/* @__PURE__ */ o("span", { className: l["select__trailing-icon"], "aria-hidden": !0, children: /* @__PURE__ */ o(
|
|
237
|
+
/* @__PURE__ */ o("span", { className: l["select__trailing-icon"], "aria-hidden": !0, children: /* @__PURE__ */ o(Ae, { size: "12", glyph: /* @__PURE__ */ o($e, {}) }) })
|
|
226
238
|
]
|
|
227
239
|
}
|
|
228
240
|
)
|
|
229
241
|
] }),
|
|
230
|
-
|
|
231
|
-
|
|
242
|
+
W && /* @__PURE__ */ o(
|
|
243
|
+
Ce,
|
|
244
|
+
{
|
|
245
|
+
id: Y,
|
|
246
|
+
className: l.select__message,
|
|
247
|
+
message: R,
|
|
248
|
+
tone: $ ?? "error"
|
|
249
|
+
}
|
|
250
|
+
),
|
|
251
|
+
A != null && !b && /* @__PURE__ */ o("input", { type: "hidden", name: A, value: d }),
|
|
252
|
+
K && ye(
|
|
232
253
|
/* @__PURE__ */ o(
|
|
233
254
|
"div",
|
|
234
255
|
{
|
|
235
|
-
ref:
|
|
256
|
+
ref: L,
|
|
236
257
|
className: [
|
|
237
258
|
l.select__popup,
|
|
238
|
-
|
|
239
|
-
|
|
259
|
+
_e === "above" ? l["select__popup--above"] : "",
|
|
260
|
+
he ? l["select__popup--visible"] : ""
|
|
240
261
|
].filter(Boolean).join(" "),
|
|
241
|
-
style:
|
|
242
|
-
children: /* @__PURE__ */ o(
|
|
262
|
+
style: Ie,
|
|
263
|
+
children: /* @__PURE__ */ o(Ue, { className: l.select__menu, children: /* @__PURE__ */ o(Ke, { maxHeight: ge, children: /* @__PURE__ */ o(
|
|
243
264
|
"ul",
|
|
244
265
|
{
|
|
245
266
|
id: h,
|
|
246
267
|
className: l.select__list,
|
|
247
268
|
role: "listbox",
|
|
248
|
-
"aria-label": typeof u == "string" ? u :
|
|
269
|
+
"aria-label": typeof u == "string" ? u : B ?? ae,
|
|
249
270
|
children: r.map((e, t) => /* @__PURE__ */ o(
|
|
250
|
-
|
|
271
|
+
Qe,
|
|
251
272
|
{
|
|
252
273
|
option: e,
|
|
253
274
|
menuItemProps: N,
|
|
254
275
|
listboxId: h,
|
|
255
276
|
selected: e.value === d,
|
|
256
|
-
active: t ===
|
|
257
|
-
onSelect:
|
|
258
|
-
onHover: () =>
|
|
277
|
+
active: t === i,
|
|
278
|
+
onSelect: q,
|
|
279
|
+
onHover: () => be(t),
|
|
259
280
|
dividerAfter: e.dividerAfter
|
|
260
281
|
},
|
|
261
282
|
e.value
|
|
@@ -268,6 +289,6 @@ const Ye = De(function({
|
|
|
268
289
|
] });
|
|
269
290
|
});
|
|
270
291
|
export {
|
|
271
|
-
|
|
292
|
+
dt as default
|
|
272
293
|
};
|
|
273
294
|
//# sourceMappingURL=Select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../../src/components/select/Select.tsx"],"sourcesContent":["import type { KeyboardEvent, ReactNode } from 'react';\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport ChevronDownIcon from '@mattermost/compass-icons/components/chevron-down';\nimport Icon from '@/components/icon/Icon';\nimport { IconSlotContext } from '@/components/icon/Icon';\nimport MenuItem from '@/components/menu-item/MenuItem';\nimport type {\n MenuItemOwnedProps,\n MenuItemPassthroughProps,\n} from '@/components/menu-item/MenuItem';\nimport PopoverMenu, {\n PopoverMenuDivider,\n PopoverMenuScroll,\n} from '@/components/popover-menu/PopoverMenu';\nimport { useAnchoredPopupPortal } from '@/hooks/use-anchored-popup-portal';\nimport { useOutsideClose } from '@/hooks/use-outside-close';\nimport { usePopoverTransition } from '@/hooks/use-popover-transition';\nimport { mergeMenuItemProps } from '@/utils/menuItemProps';\nimport { toKebab } from '@/utils/string';\nimport styles from './Select.module.scss';\n\nexport type SelectSize = 'small' | 'medium' | 'large';\n\n// Select rows use `onPointerUp`, so `onClick` is left for callers.\ntype SelectMenuItemProps = MenuItemPassthroughProps<\n Exclude<MenuItemOwnedProps, 'onClick'>\n>;\n\nexport type SelectOption = {\n value: string;\n /** Kept as `string` like `ComboboxOption.label` (which drives filtering), so option lists can be shared. */\n label: string;\n disabled?: boolean;\n leadingVisual?: ReactNode;\n /** Accepts translated nodes. */\n secondaryLabel?: ReactNode;\n /** When true, renders a menu divider after this option. */\n dividerAfter?: boolean;\n /**\n * Extra `MenuItem` props for this row (e.g. `secondaryLabelPosition`, `tag`,\n * `trailingVisual`, `className`). Overrides the `menuItemProps` set on the\n * Select; the props Select owns (ARIA, selection, handlers) can't be set.\n */\n menuItemProps?: SelectMenuItemProps;\n};\n\nexport interface SelectProps {\n options: SelectOption[];\n /**\n * `MenuItem` props applied to every option row, e.g.\n * `menuItemProps={{ secondaryLabelPosition: 'inline' }}`. A row's own\n * `menuItemProps` wins.\n */\n menuItemProps?: SelectMenuItemProps;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n /** Shown on the trigger when no value is selected. Empty-value options are not listed in the menu. */\n placeholder?: string;\n label?: ReactNode;\n /** Leading icon — pass `<Icon glyph={<SomeIcon />} />`; Select provides the correct size via context. */\n leadingIcon?: ReactNode;\n size?: SelectSize;\n invalid?: boolean;\n disabled?: boolean;\n id?: string;\n name?: string;\n className?: string;\n 'aria-label'?: string;\n /**\n * Accessible name for the options list when `label` isn't a string and no\n * `aria-label` is set. Default: \"Options\".\n */\n listboxLabel?: string;\n /** Portal mount node for the menu; defaults to `document.body`. */\n portalContainer?: HTMLElement | null;\n /** Stacking order for the portaled menu. */\n zIndex?: number;\n}\n\nconst POPUP_MAX_HEIGHT = 280;\n\nfunction SelectOptionRow({\n option,\n menuItemProps,\n listboxId,\n selected,\n active,\n onSelect,\n onHover,\n dividerAfter = false,\n}: {\n option: SelectOption;\n menuItemProps?: SelectMenuItemProps;\n listboxId: string;\n selected: boolean;\n active: boolean;\n onSelect: (option: SelectOption) => void;\n onHover: () => void;\n dividerAfter?: boolean;\n}) {\n return (\n <>\n <li className={styles.select__option} role=\"presentation\">\n <MenuItem\n {...mergeMenuItemProps(menuItemProps, option.menuItemProps)}\n id={`${listboxId}-option-${option.value}`}\n role=\"option\"\n label={option.label}\n secondaryLabel={option.secondaryLabel}\n leadingElement={option.leadingVisual != null}\n leadingVisual={option.leadingVisual}\n trailingElement={selected}\n active={active}\n disabled={option.disabled}\n aria-selected={selected}\n onMouseDown={(ev) => ev.preventDefault()}\n onMouseEnter={onHover}\n onPointerUp={() => {\n if (!option.disabled) onSelect(option);\n }}\n />\n </li>\n {dividerAfter ? (\n <li role=\"presentation\">\n <PopoverMenuDivider aria-hidden=\"true\" />\n </li>\n ) : null}\n </>\n );\n}\n\n/**\n * { value: 'town-square', label: 'Town Square' }, { value: 'off-topic', label: 'Off-Topic'\n * }, { value: 'design', label: 'Design' }, ];\n */\nconst Select = forwardRef<HTMLButtonElement, SelectProps>(function Select(\n {\n options,\n menuItemProps,\n value: valueProp,\n defaultValue = '',\n onChange,\n placeholder,\n label,\n leadingIcon,\n size = 'medium',\n invalid = false,\n disabled = false,\n id: idProp,\n name,\n className = '',\n 'aria-label': ariaLabel,\n listboxLabel = 'Options',\n portalContainer = null,\n zIndex,\n },\n ref,\n) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const listboxId = `${id}-listbox`;\n\n const rootRef = useRef<HTMLDivElement>(null);\n const anchorRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n\n const setButtonRef = useCallback(\n (node: HTMLButtonElement | null) => {\n buttonRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n },\n [ref],\n );\n\n const isControlled = valueProp !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const value = isControlled ? valueProp! : uncontrolledValue;\n\n const [isOpen, setIsOpen] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n const [activeIndex, setActiveIndex] = useState(-1);\n // Hover moves the highlight without scrolling; only keyboard changes scroll the row into view.\n const activatedByPointer = useRef(false);\n const hoverRow = useCallback(\n (index: number) => {\n if (index === activeIndex) return;\n activatedByPointer.current = true;\n setActiveIndex(index);\n },\n [activeIndex],\n );\n\n const selectedOption = useMemo(\n () => options.find((o) => o.value === value),\n [options, value],\n );\n\n const listOptions = useMemo(\n () => options.filter((o) => o.value !== ''),\n [options],\n );\n\n const hasValue = value !== '';\n\n const { mounted: popupMounted, visible: popupVisible } =\n usePopoverTransition(isOpen);\n\n const {\n placement,\n maxHeight,\n style: popupStyle,\n portalRef,\n renderPortal,\n } = useAnchoredPopupPortal(anchorRef, popupMounted, {\n preferredHeight: POPUP_MAX_HEIGHT,\n maxHeightCap: POPUP_MAX_HEIGHT,\n portalContainer,\n zIndex,\n });\n\n const close = useCallback(() => {\n setIsOpen(false);\n setActiveIndex(-1);\n }, []);\n\n const open = useCallback(() => {\n if (disabled) return;\n setIsOpen(true);\n }, [disabled]);\n\n useOutsideClose(rootRef, isOpen, close, portalRef);\n\n useEffect(() => {\n if (!isOpen) return;\n setActiveIndex((prev) => {\n if (listOptions.length === 0) return -1;\n if (prev >= 0 && prev < listOptions.length) return prev;\n const selectedIdx = listOptions.findIndex((o) => o.value === value);\n if (selectedIdx >= 0) return selectedIdx;\n const firstEnabled = listOptions.findIndex((o) => !o.disabled);\n return firstEnabled >= 0 ? firstEnabled : 0;\n });\n }, [isOpen, listOptions, value]);\n\n const commitValue = useCallback(\n (next: string) => {\n if (!isControlled) setUncontrolledValue(next);\n onChange?.(next);\n },\n [isControlled, onChange],\n );\n\n const selectOption = useCallback(\n (option: SelectOption) => {\n if (option.disabled) return;\n commitValue(option.value);\n close();\n buttonRef.current?.focus();\n },\n [commitValue, close],\n );\n\n const moveActive = useCallback(\n (delta: number) => {\n activatedByPointer.current = false;\n const enabled = listOptions\n .map((o, i) => ({ o, i }))\n .filter(({ o }) => !o.disabled);\n if (enabled.length === 0) {\n setActiveIndex(-1);\n return;\n }\n setActiveIndex((prev) => {\n const currentPos = enabled.findIndex(({ i }) => i === prev);\n const nextPos =\n currentPos < 0\n ? delta > 0\n ? 0\n : enabled.length - 1\n : (currentPos + delta + enabled.length) % enabled.length;\n return enabled[nextPos].i;\n });\n },\n [listOptions],\n );\n\n useEffect(() => {\n if (!isOpen || activeIndex < 0) return;\n if (activatedByPointer.current) {\n activatedByPointer.current = false;\n return;\n }\n const option = listOptions[activeIndex];\n if (!option) return;\n const el = document.getElementById(`${listboxId}-option-${option.value}`);\n el?.scrollIntoView?.({ block: 'nearest' });\n }, [isOpen, activeIndex, listOptions, listboxId]);\n\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled) return;\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n if (!isOpen) open();\n else moveActive(1);\n break;\n case 'ArrowUp':\n e.preventDefault();\n if (!isOpen) open();\n else moveActive(-1);\n break;\n case 'Home':\n if (isOpen && listOptions.length > 0) {\n e.preventDefault();\n const idx = listOptions.findIndex((o) => !o.disabled);\n setActiveIndex(idx >= 0 ? idx : 0);\n }\n break;\n case 'End':\n if (isOpen && listOptions.length > 0) {\n e.preventDefault();\n for (let i = listOptions.length - 1; i >= 0; i--) {\n if (!listOptions[i]?.disabled) {\n setActiveIndex(i);\n break;\n }\n }\n }\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (isOpen && activeIndex >= 0 && listOptions[activeIndex]) {\n selectOption(listOptions[activeIndex]);\n } else if (!isOpen) {\n open();\n }\n break;\n case 'Escape':\n if (isOpen) {\n e.preventDefault();\n close();\n }\n break;\n case 'Tab':\n close();\n break;\n default:\n break;\n }\n };\n\n const labelFloated = isFocused || isOpen || hasValue;\n const displayLabel = selectedOption?.label ?? placeholder ?? '';\n const showPlaceholderStyle = !hasValue && displayLabel !== '';\n\n const activeOption = activeIndex >= 0 ? listOptions[activeIndex] : undefined;\n const activeDescendant =\n isOpen && activeOption != null\n ? `${listboxId}-option-${activeOption.value}`\n : undefined;\n\n const sizeClass = styles[`select--size-${toKebab(size)}`];\n const rootClass = [\n styles.select,\n sizeClass,\n invalid ? styles['select--invalid'] : '',\n label != null && labelFloated ? styles['select--label-floated'] : '',\n leadingIcon != null ? styles['select--has-leading-icon'] : '',\n isOpen ? styles['select--open'] : '',\n disabled ? styles['select--disabled'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const controlClass = [\n styles.select__control,\n showPlaceholderStyle ? styles['select__control--placeholder'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} ref={rootRef}>\n <div className={styles.select__wrapper} ref={anchorRef}>\n {label != null && (\n <label className={styles.select__label} htmlFor={id}>\n {label}\n </label>\n )}\n <button\n ref={setButtonRef}\n id={id}\n type=\"button\"\n role=\"combobox\"\n className={controlClass}\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={listboxId}\n aria-activedescendant={activeDescendant}\n aria-invalid={invalid ? true : undefined}\n aria-label={ariaLabel}\n onClick={() => (isOpen ? close() : open())}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n onKeyDown={handleKeyDown}\n >\n {leadingIcon != null && (\n <span className={styles['select__leading-icon']} aria-hidden>\n <IconSlotContext.Provider value={{ size: '16' }}>\n {leadingIcon}\n </IconSlotContext.Provider>\n </span>\n )}\n <span className={styles.select__value}>{displayLabel}</span>\n <span className={styles['select__trailing-icon']} aria-hidden>\n <Icon size=\"12\" glyph={<ChevronDownIcon />} />\n </span>\n </button>\n </div>\n\n {name != null && !disabled && (\n <input type=\"hidden\" name={name} value={value} />\n )}\n\n {popupMounted &&\n renderPortal(\n <div\n ref={portalRef}\n className={[\n styles.select__popup,\n placement === 'above' ? styles['select__popup--above'] : '',\n popupVisible ? styles['select__popup--visible'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n style={popupStyle}\n >\n <PopoverMenu className={styles.select__menu}>\n <PopoverMenuScroll maxHeight={maxHeight}>\n <ul\n id={listboxId}\n className={styles.select__list}\n role=\"listbox\"\n aria-label={\n typeof label === 'string'\n ? label\n : (ariaLabel ?? listboxLabel)\n }\n >\n {listOptions.map((option, index) => (\n <SelectOptionRow\n key={option.value}\n option={option}\n menuItemProps={menuItemProps}\n listboxId={listboxId}\n selected={option.value === value}\n active={index === activeIndex}\n onSelect={selectOption}\n onHover={() => hoverRow(index)}\n dividerAfter={option.dividerAfter}\n />\n ))}\n </ul>\n </PopoverMenuScroll>\n </PopoverMenu>\n </div>,\n )}\n </div>\n );\n});\n\nexport default Select;\n"],"names":["POPUP_MAX_HEIGHT","SelectOptionRow","option","menuItemProps","listboxId","selected","active","onSelect","onHover","dividerAfter","jsxs","Fragment","jsx","styles","MenuItem","mergeMenuItemProps","ev","PopoverMenuDivider","Select","forwardRef","options","valueProp","defaultValue","onChange","placeholder","label","leadingIcon","size","invalid","disabled","idProp","name","className","ariaLabel","listboxLabel","portalContainer","zIndex","ref","generatedId","useId","id","rootRef","useRef","anchorRef","buttonRef","setButtonRef","useCallback","node","isControlled","uncontrolledValue","setUncontrolledValue","useState","value","isOpen","setIsOpen","isFocused","setIsFocused","activeIndex","setActiveIndex","activatedByPointer","hoverRow","index","selectedOption","useMemo","o","listOptions","hasValue","popupMounted","popupVisible","usePopoverTransition","placement","maxHeight","popupStyle","portalRef","renderPortal","useAnchoredPopupPortal","close","open","useOutsideClose","useEffect","prev","selectedIdx","firstEnabled","commitValue","next","selectOption","_a","moveActive","delta","enabled","i","currentPos","nextPos","el","handleKeyDown","idx","labelFloated","displayLabel","showPlaceholderStyle","activeOption","activeDescendant","sizeClass","toKebab","rootClass","controlClass","IconSlotContext","Icon","ChevronDownIcon","PopoverMenu","PopoverMenuScroll"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../src/components/select/Select.tsx"],"sourcesContent":["import type { KeyboardEvent, ReactNode } from 'react';\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport ChevronDownIcon from '@mattermost/compass-icons/components/chevron-down';\nimport Icon from '@/components/icon/Icon';\nimport { IconSlotContext } from '@/components/icon/Icon';\nimport {\n hasFieldMessage,\n isFieldInvalid,\n mergeFieldDescribedBy,\n} from '@/components/field/fieldDescribedBy';\nimport FieldMessage from '@/components/field-message/FieldMessage';\nimport type { FieldMessageTone } from '@/components/field-message/FieldMessage';\nimport MenuItem from '@/components/menu-item/MenuItem';\nimport type {\n MenuItemOwnedProps,\n MenuItemPassthroughProps,\n} from '@/components/menu-item/MenuItem';\nimport PopoverMenu, {\n PopoverMenuDivider,\n PopoverMenuScroll,\n} from '@/components/popover-menu/PopoverMenu';\nimport { useAnchoredPopupPortal } from '@/hooks/use-anchored-popup-portal';\nimport { useOutsideClose } from '@/hooks/use-outside-close';\nimport { usePopoverTransition } from '@/hooks/use-popover-transition';\nimport { mergeMenuItemProps } from '@/utils/menuItemProps';\nimport { toKebab } from '@/utils/string';\nimport styles from './Select.module.scss';\n\nexport type SelectSize = 'small' | 'medium' | 'large';\n\n// Select rows use `onPointerUp`, so `onClick` is left for callers.\ntype SelectMenuItemProps = MenuItemPassthroughProps<\n Exclude<MenuItemOwnedProps, 'onClick'>\n>;\n\nexport type SelectOption = {\n value: string;\n /** Kept as `string` like `ComboboxOption.label` (which drives filtering), so option lists can be shared. */\n label: string;\n disabled?: boolean;\n leadingVisual?: ReactNode;\n /** Accepts translated nodes. */\n secondaryLabel?: ReactNode;\n /** When true, renders a menu divider after this option. */\n dividerAfter?: boolean;\n /**\n * Extra `MenuItem` props for this row (e.g. `secondaryLabelPosition`, `tag`,\n * `trailingVisual`, `className`). Overrides the `menuItemProps` set on the\n * Select; the props Select owns (ARIA, selection, handlers) can't be set.\n */\n menuItemProps?: SelectMenuItemProps;\n};\n\nexport interface SelectProps {\n options: SelectOption[];\n /**\n * `MenuItem` props applied to every option row, e.g.\n * `menuItemProps={{ secondaryLabelPosition: 'inline' }}`. A row's own\n * `menuItemProps` wins.\n */\n menuItemProps?: SelectMenuItemProps;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n /** Shown on the trigger when no value is selected. Empty-value options are not listed in the menu. */\n placeholder?: string;\n label?: ReactNode;\n /** Leading icon — pass `<Icon glyph={<SomeIcon />} />`; Select provides the correct size via context. */\n leadingIcon?: ReactNode;\n size?: SelectSize;\n /** When true, shows invalid/error styling. */\n invalid?: boolean;\n /**\n * Field message under the field. Accepts translated nodes (e.g. `<FormattedMessage/>`).\n * Defaults to error tone (invalid chrome) when set without `messageTone`. It is linked to\n * the trigger with `aria-describedby`.\n */\n message?: ReactNode;\n /** Visual tone for `message`. Default: `error` when `message` is set. */\n messageTone?: FieldMessageTone;\n /** Marks the field required for assistive tech (`aria-required=\"true\"`). */\n required?: boolean;\n disabled?: boolean;\n id?: string;\n name?: string;\n className?: string;\n 'aria-label'?: string;\n /** Extra description ids for the trigger; the field message id is appended. */\n 'aria-describedby'?: string;\n /**\n * Accessible name for the options list when `label` isn't a string and no\n * `aria-label` is set. Default: \"Options\".\n */\n listboxLabel?: string;\n /** Portal mount node for the menu; defaults to `document.body`. */\n portalContainer?: HTMLElement | null;\n /** Stacking order for the portaled menu. */\n zIndex?: number;\n}\n\nconst POPUP_MAX_HEIGHT = 280;\n\nfunction SelectOptionRow({\n option,\n menuItemProps,\n listboxId,\n selected,\n active,\n onSelect,\n onHover,\n dividerAfter = false,\n}: {\n option: SelectOption;\n menuItemProps?: SelectMenuItemProps;\n listboxId: string;\n selected: boolean;\n active: boolean;\n onSelect: (option: SelectOption) => void;\n onHover: () => void;\n dividerAfter?: boolean;\n}) {\n return (\n <>\n <li className={styles.select__option} role=\"presentation\">\n <MenuItem\n {...mergeMenuItemProps(menuItemProps, option.menuItemProps)}\n id={`${listboxId}-option-${option.value}`}\n role=\"option\"\n label={option.label}\n secondaryLabel={option.secondaryLabel}\n leadingElement={option.leadingVisual != null}\n leadingVisual={option.leadingVisual}\n trailingElement={selected}\n active={active}\n disabled={option.disabled}\n aria-selected={selected}\n onMouseDown={(ev) => ev.preventDefault()}\n onMouseEnter={onHover}\n onPointerUp={() => {\n if (!option.disabled) onSelect(option);\n }}\n />\n </li>\n {dividerAfter ? (\n <li role=\"presentation\">\n <PopoverMenuDivider aria-hidden=\"true\" />\n </li>\n ) : null}\n </>\n );\n}\n\n/**\n * { value: 'town-square', label: 'Town Square' }, { value: 'off-topic', label: 'Off-Topic'\n * }, { value: 'design', label: 'Design' }, ];\n */\nconst Select = forwardRef<HTMLButtonElement, SelectProps>(function Select(\n {\n options,\n menuItemProps,\n value: valueProp,\n defaultValue = '',\n onChange,\n placeholder,\n label,\n leadingIcon,\n size = 'medium',\n invalid = false,\n message,\n messageTone,\n required = false,\n disabled = false,\n id: idProp,\n name,\n className = '',\n 'aria-label': ariaLabel,\n 'aria-describedby': describedBy,\n listboxLabel = 'Options',\n portalContainer = null,\n zIndex,\n },\n ref,\n) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const listboxId = `${id}-listbox`;\n\n const rootRef = useRef<HTMLDivElement>(null);\n const anchorRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n\n const setButtonRef = useCallback(\n (node: HTMLButtonElement | null) => {\n buttonRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n },\n [ref],\n );\n\n const isControlled = valueProp !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const value = isControlled ? valueProp! : uncontrolledValue;\n\n const [isOpen, setIsOpen] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n const [activeIndex, setActiveIndex] = useState(-1);\n // Hover moves the highlight without scrolling; only keyboard changes scroll the row into view.\n const activatedByPointer = useRef(false);\n const hoverRow = useCallback(\n (index: number) => {\n if (index === activeIndex) return;\n activatedByPointer.current = true;\n setActiveIndex(index);\n },\n [activeIndex],\n );\n\n const selectedOption = useMemo(\n () => options.find((o) => o.value === value),\n [options, value],\n );\n\n const listOptions = useMemo(\n () => options.filter((o) => o.value !== ''),\n [options],\n );\n\n const hasValue = value !== '';\n\n const { mounted: popupMounted, visible: popupVisible } =\n usePopoverTransition(isOpen);\n\n const {\n placement,\n maxHeight,\n style: popupStyle,\n portalRef,\n renderPortal,\n } = useAnchoredPopupPortal(anchorRef, popupMounted, {\n preferredHeight: POPUP_MAX_HEIGHT,\n maxHeightCap: POPUP_MAX_HEIGHT,\n portalContainer,\n zIndex,\n });\n\n const close = useCallback(() => {\n setIsOpen(false);\n setActiveIndex(-1);\n }, []);\n\n const open = useCallback(() => {\n if (disabled) return;\n setIsOpen(true);\n }, [disabled]);\n\n useOutsideClose(rootRef, isOpen, close, portalRef);\n\n useEffect(() => {\n if (!isOpen) return;\n setActiveIndex((prev) => {\n if (listOptions.length === 0) return -1;\n if (prev >= 0 && prev < listOptions.length) return prev;\n const selectedIdx = listOptions.findIndex((o) => o.value === value);\n if (selectedIdx >= 0) return selectedIdx;\n const firstEnabled = listOptions.findIndex((o) => !o.disabled);\n return firstEnabled >= 0 ? firstEnabled : 0;\n });\n }, [isOpen, listOptions, value]);\n\n const commitValue = useCallback(\n (next: string) => {\n if (!isControlled) setUncontrolledValue(next);\n onChange?.(next);\n },\n [isControlled, onChange],\n );\n\n const selectOption = useCallback(\n (option: SelectOption) => {\n if (option.disabled) return;\n commitValue(option.value);\n close();\n buttonRef.current?.focus();\n },\n [commitValue, close],\n );\n\n const moveActive = useCallback(\n (delta: number) => {\n activatedByPointer.current = false;\n const enabled = listOptions\n .map((o, i) => ({ o, i }))\n .filter(({ o }) => !o.disabled);\n if (enabled.length === 0) {\n setActiveIndex(-1);\n return;\n }\n setActiveIndex((prev) => {\n const currentPos = enabled.findIndex(({ i }) => i === prev);\n const nextPos =\n currentPos < 0\n ? delta > 0\n ? 0\n : enabled.length - 1\n : (currentPos + delta + enabled.length) % enabled.length;\n return enabled[nextPos].i;\n });\n },\n [listOptions],\n );\n\n useEffect(() => {\n if (!isOpen || activeIndex < 0) return;\n if (activatedByPointer.current) {\n activatedByPointer.current = false;\n return;\n }\n const option = listOptions[activeIndex];\n if (!option) return;\n const el = document.getElementById(`${listboxId}-option-${option.value}`);\n el?.scrollIntoView?.({ block: 'nearest' });\n }, [isOpen, activeIndex, listOptions, listboxId]);\n\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled) return;\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n if (!isOpen) open();\n else moveActive(1);\n break;\n case 'ArrowUp':\n e.preventDefault();\n if (!isOpen) open();\n else moveActive(-1);\n break;\n case 'Home':\n if (isOpen && listOptions.length > 0) {\n e.preventDefault();\n const idx = listOptions.findIndex((o) => !o.disabled);\n setActiveIndex(idx >= 0 ? idx : 0);\n }\n break;\n case 'End':\n if (isOpen && listOptions.length > 0) {\n e.preventDefault();\n for (let i = listOptions.length - 1; i >= 0; i--) {\n if (!listOptions[i]?.disabled) {\n setActiveIndex(i);\n break;\n }\n }\n }\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (isOpen && activeIndex >= 0 && listOptions[activeIndex]) {\n selectOption(listOptions[activeIndex]);\n } else if (!isOpen) {\n open();\n }\n break;\n case 'Escape':\n if (isOpen) {\n e.preventDefault();\n close();\n }\n break;\n case 'Tab':\n close();\n break;\n default:\n break;\n }\n };\n\n const labelFloated = isFocused || isOpen || hasValue;\n const displayLabel = selectedOption?.label ?? placeholder ?? '';\n const showPlaceholderStyle = !hasValue && displayLabel !== '';\n\n const activeOption = activeIndex >= 0 ? listOptions[activeIndex] : undefined;\n const activeDescendant =\n isOpen && activeOption != null\n ? `${listboxId}-option-${activeOption.value}`\n : undefined;\n\n const showInvalid = isFieldInvalid(invalid, message, messageTone);\n const showMessage = hasFieldMessage(message);\n const messageId = showMessage ? `${id}-message` : undefined;\n\n const sizeClass = styles[`select--size-${toKebab(size)}`];\n const rootClass = [\n styles.select,\n sizeClass,\n showInvalid ? styles['select--invalid'] : '',\n label != null && labelFloated ? styles['select--label-floated'] : '',\n leadingIcon != null ? styles['select--has-leading-icon'] : '',\n isOpen ? styles['select--open'] : '',\n disabled ? styles['select--disabled'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const controlClass = [\n styles.select__control,\n showPlaceholderStyle ? styles['select__control--placeholder'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} ref={rootRef}>\n <div className={styles.select__wrapper} ref={anchorRef}>\n {label != null && (\n <label className={styles.select__label} htmlFor={id}>\n {label}\n </label>\n )}\n <button\n ref={setButtonRef}\n id={id}\n type=\"button\"\n role=\"combobox\"\n className={controlClass}\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={listboxId}\n aria-activedescendant={activeDescendant}\n aria-invalid={showInvalid ? true : undefined}\n aria-required={required ? true : undefined}\n aria-describedby={mergeFieldDescribedBy(\n describedBy,\n messageId,\n undefined,\n )}\n aria-label={ariaLabel}\n onClick={() => (isOpen ? close() : open())}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n onKeyDown={handleKeyDown}\n >\n {leadingIcon != null && (\n <span className={styles['select__leading-icon']} aria-hidden>\n <IconSlotContext.Provider value={{ size: '16' }}>\n {leadingIcon}\n </IconSlotContext.Provider>\n </span>\n )}\n <span className={styles.select__value}>{displayLabel}</span>\n <span className={styles['select__trailing-icon']} aria-hidden>\n <Icon size=\"12\" glyph={<ChevronDownIcon />} />\n </span>\n </button>\n </div>\n\n {showMessage && (\n <FieldMessage\n id={messageId}\n className={styles['select__message']}\n message={message}\n tone={messageTone ?? 'error'}\n />\n )}\n\n {name != null && !disabled && (\n <input type=\"hidden\" name={name} value={value} />\n )}\n\n {popupMounted &&\n renderPortal(\n <div\n ref={portalRef}\n className={[\n styles.select__popup,\n placement === 'above' ? styles['select__popup--above'] : '',\n popupVisible ? styles['select__popup--visible'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n style={popupStyle}\n >\n <PopoverMenu className={styles.select__menu}>\n <PopoverMenuScroll maxHeight={maxHeight}>\n <ul\n id={listboxId}\n className={styles.select__list}\n role=\"listbox\"\n aria-label={\n typeof label === 'string'\n ? label\n : (ariaLabel ?? listboxLabel)\n }\n >\n {listOptions.map((option, index) => (\n <SelectOptionRow\n key={option.value}\n option={option}\n menuItemProps={menuItemProps}\n listboxId={listboxId}\n selected={option.value === value}\n active={index === activeIndex}\n onSelect={selectOption}\n onHover={() => hoverRow(index)}\n dividerAfter={option.dividerAfter}\n />\n ))}\n </ul>\n </PopoverMenuScroll>\n </PopoverMenu>\n </div>,\n )}\n </div>\n );\n});\n\nexport default Select;\n"],"names":["POPUP_MAX_HEIGHT","SelectOptionRow","option","menuItemProps","listboxId","selected","active","onSelect","onHover","dividerAfter","jsxs","Fragment","jsx","styles","MenuItem","mergeMenuItemProps","ev","PopoverMenuDivider","Select","forwardRef","options","valueProp","defaultValue","onChange","placeholder","label","leadingIcon","size","invalid","message","messageTone","required","disabled","idProp","name","className","ariaLabel","describedBy","listboxLabel","portalContainer","zIndex","ref","generatedId","useId","id","rootRef","useRef","anchorRef","buttonRef","setButtonRef","useCallback","node","isControlled","uncontrolledValue","setUncontrolledValue","useState","value","isOpen","setIsOpen","isFocused","setIsFocused","activeIndex","setActiveIndex","activatedByPointer","hoverRow","index","selectedOption","useMemo","o","listOptions","hasValue","popupMounted","popupVisible","usePopoverTransition","placement","maxHeight","popupStyle","portalRef","renderPortal","useAnchoredPopupPortal","close","open","useOutsideClose","useEffect","prev","selectedIdx","firstEnabled","commitValue","next","selectOption","_a","moveActive","delta","enabled","i","currentPos","nextPos","el","handleKeyDown","idx","labelFloated","displayLabel","showPlaceholderStyle","activeOption","activeDescendant","showInvalid","isFieldInvalid","showMessage","hasFieldMessage","messageId","sizeClass","toKebab","rootClass","controlClass","mergeFieldDescribedBy","IconSlotContext","Icon","ChevronDownIcon","FieldMessage","PopoverMenu","PopoverMenuScroll"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./Select.css');const e="
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./Select.css');const e="_select_ew42w_13",_="_select__wrapper_ew42w_19",l="_select__label_ew42w_37",s="_select__message_ew42w_67",t="_select__control_ew42w_70",c="_select__value_ew42w_96",o="_select__popup_ew42w_125",w="_select__menu_ew42w_141",n="_select__list_ew42w_146",i="_select__option_ew42w_151",a={select:e,select__wrapper:_,"select--disabled":"_select--disabled_ew42w_27",select__label:l,"select--label-floated":"_select--label-floated_ew42w_58",select__message:s,select__control:t,"select__control--placeholder":"_select__control--placeholder_ew42w_96",select__value:c,"select__leading-icon":"_select__leading-icon_ew42w_106","select__trailing-icon":"_select__trailing-icon_ew42w_113","select--open":"_select--open_ew42w_122",select__popup:o,"select__popup--above":"_select__popup--above_ew42w_132","select__popup--visible":"_select__popup--visible_ew42w_135",select__menu:w,select__list:n,select__option:i,"select__option-content--disabled":"_select__option-content--disabled_ew42w_159","select--size-small":"_select--size-small_ew42w_162","select--size-medium":"_select--size-medium_ew42w_182","select--size-large":"_select--size-large_ew42w_207","select--invalid":"_select--invalid_ew42w_235","select--has-leading-icon":"_select--has-leading-icon_ew42w_247"};exports.default=a;exports.select=e;exports.select__control=t;exports.select__label=l;exports.select__list=n;exports.select__menu=w;exports.select__message=s;exports.select__option=i;exports.select__popup=o;exports.select__value=c;exports.select__wrapper=_;
|
|
2
2
|
//# sourceMappingURL=Select.module.scss.cjs.map
|
|
@@ -1,38 +1,40 @@
|
|
|
1
|
-
import './Select.css';const e = "
|
|
1
|
+
import './Select.css';const e = "_select_ew42w_13", _ = "_select__wrapper_ew42w_19", l = "_select__label_ew42w_37", s = "_select__message_ew42w_67", t = "_select__control_ew42w_70", c = "_select__value_ew42w_96", o = "_select__popup_ew42w_125", w = "_select__menu_ew42w_141", n = "_select__list_ew42w_146", i = "_select__option_ew42w_151", a = {
|
|
2
2
|
select: e,
|
|
3
3
|
select__wrapper: _,
|
|
4
|
-
"select--disabled": "_select--
|
|
4
|
+
"select--disabled": "_select--disabled_ew42w_27",
|
|
5
5
|
select__label: l,
|
|
6
|
-
"select--label-floated": "_select--label-
|
|
6
|
+
"select--label-floated": "_select--label-floated_ew42w_58",
|
|
7
|
+
select__message: s,
|
|
7
8
|
select__control: t,
|
|
8
|
-
"select__control--placeholder": "_select__control--
|
|
9
|
-
select__value:
|
|
10
|
-
"select__leading-icon": "_select__leading-
|
|
11
|
-
"select__trailing-icon": "_select__trailing-
|
|
12
|
-
"select--open": "_select--
|
|
13
|
-
select__popup:
|
|
14
|
-
"select__popup--above": "_select__popup--
|
|
15
|
-
"select__popup--visible": "_select__popup--
|
|
16
|
-
select__menu:
|
|
17
|
-
select__list:
|
|
18
|
-
select__option:
|
|
19
|
-
"select__option-content--disabled": "_select__option-content--
|
|
20
|
-
"select--size-small": "_select--size-
|
|
21
|
-
"select--size-medium": "_select--size-
|
|
22
|
-
"select--size-large": "_select--size-
|
|
23
|
-
"select--invalid": "_select--
|
|
24
|
-
"select--has-leading-icon": "_select--has-leading-
|
|
9
|
+
"select__control--placeholder": "_select__control--placeholder_ew42w_96",
|
|
10
|
+
select__value: c,
|
|
11
|
+
"select__leading-icon": "_select__leading-icon_ew42w_106",
|
|
12
|
+
"select__trailing-icon": "_select__trailing-icon_ew42w_113",
|
|
13
|
+
"select--open": "_select--open_ew42w_122",
|
|
14
|
+
select__popup: o,
|
|
15
|
+
"select__popup--above": "_select__popup--above_ew42w_132",
|
|
16
|
+
"select__popup--visible": "_select__popup--visible_ew42w_135",
|
|
17
|
+
select__menu: w,
|
|
18
|
+
select__list: n,
|
|
19
|
+
select__option: i,
|
|
20
|
+
"select__option-content--disabled": "_select__option-content--disabled_ew42w_159",
|
|
21
|
+
"select--size-small": "_select--size-small_ew42w_162",
|
|
22
|
+
"select--size-medium": "_select--size-medium_ew42w_182",
|
|
23
|
+
"select--size-large": "_select--size-large_ew42w_207",
|
|
24
|
+
"select--invalid": "_select--invalid_ew42w_235",
|
|
25
|
+
"select--has-leading-icon": "_select--has-leading-icon_ew42w_247"
|
|
25
26
|
};
|
|
26
27
|
export {
|
|
27
|
-
|
|
28
|
+
a as default,
|
|
28
29
|
e as select,
|
|
29
30
|
t as select__control,
|
|
30
31
|
l as select__label,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
n as select__list,
|
|
33
|
+
w as select__menu,
|
|
34
|
+
s as select__message,
|
|
35
|
+
i as select__option,
|
|
36
|
+
o as select__popup,
|
|
37
|
+
c as select__value,
|
|
36
38
|
_ as select__wrapper
|
|
37
39
|
};
|
|
38
40
|
//# sourceMappingURL=Select.module.scss.js.map
|