@mattermost/compass-ui 0.1.0-alpha.12 → 0.1.0-alpha.13
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/README.md +15 -3
- package/dist/compass-ui-standalone.css +270 -276
- package/dist/compass-ui.css +293 -290
- package/dist/components/action-button/ActionButton.cjs.map +1 -1
- package/dist/components/action-button/ActionButton.d.ts +2 -1
- package/dist/components/action-button/ActionButton.d.ts.map +1 -1
- package/dist/components/action-button/ActionButton.js.map +1 -1
- package/dist/components/admin-console-header/AdminConsoleHeader.cjs.map +1 -1
- package/dist/components/admin-console-header/AdminConsoleHeader.d.ts +3 -1
- package/dist/components/admin-console-header/AdminConsoleHeader.d.ts.map +1 -1
- package/dist/components/admin-console-header/AdminConsoleHeader.js.map +1 -1
- package/dist/components/admin-panel/AdminPanel.cjs +1 -1
- package/dist/components/admin-panel/AdminPanel.cjs.map +1 -1
- package/dist/components/admin-panel/AdminPanel.d.ts +13 -6
- package/dist/components/admin-panel/AdminPanel.d.ts.map +1 -1
- package/dist/components/admin-panel/AdminPanel.js +21 -15
- package/dist/components/admin-panel/AdminPanel.js.map +1 -1
- package/dist/components/admin-panel-footer/AdminPanelFooter.cjs.map +1 -1
- package/dist/components/admin-panel-footer/AdminPanelFooter.d.ts +8 -4
- package/dist/components/admin-panel-footer/AdminPanelFooter.d.ts.map +1 -1
- package/dist/components/admin-panel-footer/AdminPanelFooter.js.map +1 -1
- 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 +11 -4
- package/dist/components/admin-panel-header/AdminPanelHeader.d.ts.map +1 -1
- package/dist/components/admin-panel-header/AdminPanelHeader.js +25 -23
- 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 +10 -10
- package/dist/components/attachment-card/AttachmentCard.cjs +1 -1
- package/dist/components/attachment-card/AttachmentCard.cjs.map +1 -1
- package/dist/components/attachment-card/AttachmentCard.d.ts +18 -5
- package/dist/components/attachment-card/AttachmentCard.d.ts.map +1 -1
- package/dist/components/attachment-card/AttachmentCard.js +85 -79
- package/dist/components/attachment-card/AttachmentCard.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/channel-info-msg-header/ChannelInfoMsgHeader.cjs +1 -1
- package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.cjs.map +1 -1
- package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.d.ts +5 -4
- package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.d.ts.map +1 -1
- package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.js +7 -7
- package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.js.map +1 -1
- 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.d.ts +10 -4
- package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts.map +1 -1
- package/dist/components/channel-sidebar-item/ChannelSidebarItem.js +64 -60
- package/dist/components/channel-sidebar-item/ChannelSidebarItem.js.map +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 +4 -0
- package/dist/components/chip/Chip.d.ts.map +1 -1
- 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 +11 -11
- 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 +24 -1
- package/dist/components/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.js +307 -271
- 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 +28 -26
- 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 +18 -2
- package/dist/components/date-range-picker/DateRangePicker.d.ts.map +1 -1
- package/dist/components/date-range-picker/DateRangePicker.js +134 -126
- 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 +26 -26
- package/dist/components/emoji-popover/EmojiPopover.cjs +1 -1
- package/dist/components/emoji-popover/EmojiPopover.cjs.map +1 -1
- package/dist/components/emoji-popover/EmojiPopover.d.ts +25 -4
- package/dist/components/emoji-popover/EmojiPopover.d.ts.map +1 -1
- package/dist/components/emoji-popover/EmojiPopover.js +84 -73
- package/dist/components/emoji-popover/EmojiPopover.js.map +1 -1
- package/dist/components/empty-state/EmptyState.cjs +1 -1
- package/dist/components/empty-state/EmptyState.cjs.map +1 -1
- package/dist/components/empty-state/EmptyState.d.ts +3 -3
- package/dist/components/empty-state/EmptyState.d.ts.map +1 -1
- package/dist/components/empty-state/EmptyState.js +11 -9
- package/dist/components/empty-state/EmptyState.js.map +1 -1
- package/dist/components/error-message/ErrorMessage.cjs +1 -1
- package/dist/components/error-message/ErrorMessage.cjs.map +1 -1
- package/dist/components/error-message/ErrorMessage.d.ts +3 -3
- package/dist/components/error-message/ErrorMessage.d.ts.map +1 -1
- package/dist/components/error-message/ErrorMessage.js +10 -9
- package/dist/components/error-message/ErrorMessage.js.map +1 -1
- package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.cjs.map +1 -1
- package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.d.ts +7 -6
- package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.d.ts.map +1 -1
- package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.js.map +1 -1
- package/dist/components/global-banner/GlobalBanner.cjs +1 -1
- package/dist/components/global-banner/GlobalBanner.cjs.map +1 -1
- package/dist/components/global-banner/GlobalBanner.d.ts +10 -5
- package/dist/components/global-banner/GlobalBanner.d.ts.map +1 -1
- package/dist/components/global-banner/GlobalBanner.js +33 -26
- package/dist/components/global-banner/GlobalBanner.js.map +1 -1
- 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 +15 -15
- package/dist/components/image-preview/ImagePreview.cjs +1 -1
- package/dist/components/image-preview/ImagePreview.cjs.map +1 -1
- package/dist/components/image-preview/ImagePreview.css +1 -1
- package/dist/components/image-preview/ImagePreview.d.ts +12 -1
- package/dist/components/image-preview/ImagePreview.d.ts.map +1 -1
- package/dist/components/image-preview/ImagePreview.js +25 -20
- package/dist/components/image-preview/ImagePreview.js.map +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.cjs +1 -1
- package/dist/components/link-preview/LinkPreview.cjs.map +1 -1
- package/dist/components/link-preview/LinkPreview.d.ts +12 -6
- package/dist/components/link-preview/LinkPreview.d.ts.map +1 -1
- package/dist/components/link-preview/LinkPreview.js +19 -16
- package/dist/components/link-preview/LinkPreview.js.map +1 -1
- package/dist/components/mention-badge/MentionBadge.cjs +1 -1
- package/dist/components/mention-badge/MentionBadge.cjs.map +1 -1
- package/dist/components/mention-badge/MentionBadge.d.ts +3 -1
- package/dist/components/mention-badge/MentionBadge.d.ts.map +1 -1
- package/dist/components/mention-badge/MentionBadge.js +18 -23
- package/dist/components/mention-badge/MentionBadge.js.map +1 -1
- package/dist/components/menu-group-heading/MenuGroupHeading.cjs.map +1 -1
- package/dist/components/menu-group-heading/MenuGroupHeading.d.ts +3 -3
- package/dist/components/menu-group-heading/MenuGroupHeading.d.ts.map +1 -1
- package/dist/components/menu-group-heading/MenuGroupHeading.js.map +1 -1
- package/dist/components/menu-item/MenuItem.cjs +1 -1
- package/dist/components/menu-item/MenuItem.cjs.map +1 -1
- package/dist/components/menu-item/MenuItem.d.ts +2 -0
- package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
- package/dist/components/menu-item/MenuItem.js +29 -28
- package/dist/components/menu-item/MenuItem.js.map +1 -1
- package/dist/components/message-actions/MessageActions.cjs +1 -1
- package/dist/components/message-actions/MessageActions.cjs.map +1 -1
- package/dist/components/message-actions/MessageActions.d.ts +26 -2
- package/dist/components/message-actions/MessageActions.d.ts.map +1 -1
- package/dist/components/message-actions/MessageActions.js +67 -55
- package/dist/components/message-actions/MessageActions.js.map +1 -1
- package/dist/components/message-header/MessageHeader.cjs.map +1 -1
- package/dist/components/message-header/MessageHeader.d.ts +5 -3
- package/dist/components/message-header/MessageHeader.d.ts.map +1 -1
- package/dist/components/message-header/MessageHeader.js.map +1 -1
- package/dist/components/message-separator/MessageSeparator.cjs +1 -1
- package/dist/components/message-separator/MessageSeparator.cjs.map +1 -1
- package/dist/components/message-separator/MessageSeparator.d.ts +8 -4
- package/dist/components/message-separator/MessageSeparator.d.ts.map +1 -1
- package/dist/components/message-separator/MessageSeparator.js +16 -14
- package/dist/components/message-separator/MessageSeparator.js.map +1 -1
- package/dist/components/modal/Modal.cjs +1 -1
- package/dist/components/modal/Modal.cjs.map +1 -1
- package/dist/components/modal/Modal.d.ts +17 -3
- package/dist/components/modal/Modal.d.ts.map +1 -1
- package/dist/components/modal/Modal.js +38 -26
- package/dist/components/modal/Modal.js.map +1 -1
- 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 +16 -1
- package/dist/components/modal-header/ModalHeader.d.ts.map +1 -1
- package/dist/components/modal-header/ModalHeader.js +72 -57
- 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 +15 -13
- package/dist/components/modal-header/ModalHeader.module.scss.js.map +1 -1
- package/dist/components/more-unreads-banner/MoreUnreadsBanner.cjs +1 -1
- package/dist/components/more-unreads-banner/MoreUnreadsBanner.cjs.map +1 -1
- package/dist/components/more-unreads-banner/MoreUnreadsBanner.d.ts +4 -1
- package/dist/components/more-unreads-banner/MoreUnreadsBanner.d.ts.map +1 -1
- package/dist/components/more-unreads-banner/MoreUnreadsBanner.js +11 -10
- package/dist/components/more-unreads-banner/MoreUnreadsBanner.js.map +1 -1
- package/dist/components/new-message-banner/NewMessageBanner.cjs +1 -1
- package/dist/components/new-message-banner/NewMessageBanner.cjs.map +1 -1
- package/dist/components/new-message-banner/NewMessageBanner.d.ts +15 -3
- package/dist/components/new-message-banner/NewMessageBanner.d.ts.map +1 -1
- package/dist/components/new-message-banner/NewMessageBanner.js +30 -22
- package/dist/components/new-message-banner/NewMessageBanner.js.map +1 -1
- package/dist/components/pagination-dots/PaginationDots.cjs +1 -1
- package/dist/components/pagination-dots/PaginationDots.cjs.map +1 -1
- package/dist/components/pagination-dots/PaginationDots.css +1 -1
- package/dist/components/pagination-dots/PaginationDots.d.ts +5 -1
- package/dist/components/pagination-dots/PaginationDots.d.ts.map +1 -1
- package/dist/components/pagination-dots/PaginationDots.js +22 -19
- package/dist/components/pagination-dots/PaginationDots.js.map +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/permalink-preview/PermalinkPreview.cjs +1 -1
- package/dist/components/permalink-preview/PermalinkPreview.cjs.map +1 -1
- package/dist/components/permalink-preview/PermalinkPreview.d.ts +16 -5
- package/dist/components/permalink-preview/PermalinkPreview.d.ts.map +1 -1
- package/dist/components/permalink-preview/PermalinkPreview.js +39 -35
- package/dist/components/permalink-preview/PermalinkPreview.js.map +1 -1
- package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.cjs +1 -1
- package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.cjs.map +1 -1
- package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.d.ts +8 -1
- package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.d.ts.map +1 -1
- package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.js +20 -17
- package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.js.map +1 -1
- package/dist/components/popover-notice/PopoverNotice.cjs +1 -1
- package/dist/components/popover-notice/PopoverNotice.cjs.map +1 -1
- package/dist/components/popover-notice/PopoverNotice.d.ts +13 -5
- package/dist/components/popover-notice/PopoverNotice.d.ts.map +1 -1
- package/dist/components/popover-notice/PopoverNotice.js +58 -48
- package/dist/components/popover-notice/PopoverNotice.js.map +1 -1
- package/dist/components/profile-popover/ProfilePopover.cjs +1 -1
- package/dist/components/profile-popover/ProfilePopover.cjs.map +1 -1
- package/dist/components/profile-popover/ProfilePopover.d.ts +34 -12
- package/dist/components/profile-popover/ProfilePopover.d.ts.map +1 -1
- package/dist/components/profile-popover/ProfilePopover.js +122 -106
- package/dist/components/profile-popover/ProfilePopover.js.map +1 -1
- package/dist/components/progress-bar/ProgressBar.cjs +1 -1
- package/dist/components/progress-bar/ProgressBar.cjs.map +1 -1
- package/dist/components/progress-bar/ProgressBar.d.ts +4 -3
- package/dist/components/progress-bar/ProgressBar.d.ts.map +1 -1
- package/dist/components/progress-bar/ProgressBar.js +9 -7
- package/dist/components/progress-bar/ProgressBar.js.map +1 -1
- 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.cjs +1 -1
- package/dist/components/reaction-button/ReactionButton.cjs.map +1 -1
- package/dist/components/reaction-button/ReactionButton.d.ts +3 -1
- package/dist/components/reaction-button/ReactionButton.d.ts.map +1 -1
- package/dist/components/reaction-button/ReactionButton.js +20 -18
- package/dist/components/reaction-button/ReactionButton.js.map +1 -1
- package/dist/components/reactions-row/ReactionsRow.cjs +1 -1
- package/dist/components/reactions-row/ReactionsRow.cjs.map +1 -1
- package/dist/components/reactions-row/ReactionsRow.d.ts +10 -2
- package/dist/components/reactions-row/ReactionsRow.d.ts.map +1 -1
- package/dist/components/reactions-row/ReactionsRow.js +33 -28
- package/dist/components/reactions-row/ReactionsRow.js.map +1 -1
- 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.d.ts +15 -7
- package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts.map +1 -1
- package/dist/components/right-sidebar-header/RightSidebarHeader.js +23 -19
- package/dist/components/right-sidebar-header/RightSidebarHeader.js.map +1 -1
- package/dist/components/scrollbar/Scrollbar.cjs +1 -1
- package/dist/components/scrollbar/Scrollbar.cjs.map +1 -1
- package/dist/components/scrollbar/Scrollbar.css +1 -1
- package/dist/components/scrollbar/Scrollbar.d.ts +2 -2
- package/dist/components/scrollbar/Scrollbar.d.ts.map +1 -1
- package/dist/components/scrollbar/Scrollbar.js +24 -15
- package/dist/components/scrollbar/Scrollbar.js.map +1 -1
- package/dist/components/scrollbar/Scrollbar.module.scss.cjs +1 -1
- package/dist/components/scrollbar/Scrollbar.module.scss.js +4 -4
- package/dist/components/scrollbar/simplebar-vendor.css +1 -0
- package/dist/components/search-input/SearchInput.cjs +1 -1
- package/dist/components/search-input/SearchInput.cjs.map +1 -1
- package/dist/components/search-input/SearchInput.d.ts +5 -0
- package/dist/components/search-input/SearchInput.d.ts.map +1 -1
- package/dist/components/search-input/SearchInput.js +92 -85
- package/dist/components/search-input/SearchInput.js.map +1 -1
- package/dist/components/search-tip-banner/SearchTipBanner.cjs +1 -1
- package/dist/components/search-tip-banner/SearchTipBanner.cjs.map +1 -1
- package/dist/components/search-tip-banner/SearchTipBanner.d.ts +8 -5
- package/dist/components/search-tip-banner/SearchTipBanner.d.ts.map +1 -1
- package/dist/components/search-tip-banner/SearchTipBanner.js +17 -16
- package/dist/components/search-tip-banner/SearchTipBanner.js.map +1 -1
- package/dist/components/section-notice/SectionNotice.cjs +1 -1
- package/dist/components/section-notice/SectionNotice.cjs.map +1 -1
- package/dist/components/section-notice/SectionNotice.d.ts +16 -3
- package/dist/components/section-notice/SectionNotice.d.ts.map +1 -1
- package/dist/components/section-notice/SectionNotice.js +64 -48
- package/dist/components/section-notice/SectionNotice.js.map +1 -1
- package/dist/components/select/Select.cjs +1 -1
- package/dist/components/select/Select.cjs.map +1 -1
- package/dist/components/select/Select.d.ts +8 -1
- package/dist/components/select/Select.d.ts.map +1 -1
- package/dist/components/select/Select.js +81 -79
- package/dist/components/select/Select.js.map +1 -1
- package/dist/components/spinner/Spinner.cjs.map +1 -1
- package/dist/components/spinner/Spinner.css +1 -1
- package/dist/components/spinner/Spinner.d.ts +1 -0
- package/dist/components/spinner/Spinner.d.ts.map +1 -1
- package/dist/components/spinner/Spinner.js.map +1 -1
- package/dist/components/spinner/Spinner.module.scss.cjs +1 -1
- package/dist/components/spinner/Spinner.module.scss.js +5 -5
- package/dist/components/status-badge/StatusBadge.css +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 +14 -14
- package/dist/components/tabs/Tabs.cjs +1 -1
- package/dist/components/tabs/Tabs.cjs.map +1 -1
- package/dist/components/tabs/Tabs.css +1 -1
- package/dist/components/tabs/Tabs.d.ts +11 -3
- package/dist/components/tabs/Tabs.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.js +56 -53
- package/dist/components/tabs/Tabs.js.map +1 -1
- package/dist/components/tabs/Tabs.module.scss.cjs +1 -1
- package/dist/components/tabs/Tabs.module.scss.js +9 -9
- package/dist/components/tag/Tag.cjs +1 -1
- package/dist/components/tag/Tag.cjs.map +1 -1
- package/dist/components/tag/Tag.d.ts +3 -3
- package/dist/components/tag/Tag.d.ts.map +1 -1
- package/dist/components/tag/Tag.js +12 -11
- package/dist/components/tag/Tag.js.map +1 -1
- 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 +19 -3
- package/dist/components/thread-footer/ThreadFooter.d.ts.map +1 -1
- package/dist/components/thread-footer/ThreadFooter.js +53 -48
- 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 +18 -18
- package/dist/components/thread-list-item/ThreadListItem.cjs +1 -1
- package/dist/components/thread-list-item/ThreadListItem.cjs.map +1 -1
- package/dist/components/thread-list-item/ThreadListItem.d.ts +15 -7
- package/dist/components/thread-list-item/ThreadListItem.d.ts.map +1 -1
- package/dist/components/thread-list-item/ThreadListItem.js +66 -62
- package/dist/components/thread-list-item/ThreadListItem.js.map +1 -1
- package/dist/components/toast/Toast.cjs +1 -1
- package/dist/components/toast/Toast.cjs.map +1 -1
- package/dist/components/toast/Toast.d.ts +8 -3
- package/dist/components/toast/Toast.d.ts.map +1 -1
- package/dist/components/toast/Toast.js +47 -39
- package/dist/components/toast/Toast.js.map +1 -1
- package/dist/components/tour-point/TourPoint.cjs +1 -1
- package/dist/components/tour-point/TourPoint.cjs.map +1 -1
- package/dist/components/tour-point/TourPoint.css +1 -1
- package/dist/components/tour-point/TourPoint.d.ts +19 -5
- package/dist/components/tour-point/TourPoint.d.ts.map +1 -1
- package/dist/components/tour-point/TourPoint.js +66 -54
- package/dist/components/tour-point/TourPoint.js.map +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.css +1 -1
- package/dist/components/user-avatar/UserAvatar.module.scss.cjs +1 -1
- package/dist/components/user-avatar/UserAvatar.module.scss.js +26 -26
- package/dist/components/user-avatar-group/UserAvatarGroup.cjs +1 -1
- package/dist/components/user-avatar-group/UserAvatarGroup.cjs.map +1 -1
- package/dist/components/user-avatar-group/UserAvatarGroup.css +1 -1
- package/dist/components/user-avatar-group/UserAvatarGroup.d.ts +8 -1
- package/dist/components/user-avatar-group/UserAvatarGroup.d.ts.map +1 -1
- package/dist/components/user-avatar-group/UserAvatarGroup.js +22 -18
- package/dist/components/user-avatar-group/UserAvatarGroup.js.map +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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/utils/props.cjs +2 -0
- package/dist/utils/props.cjs.map +1 -0
- package/dist/utils/props.d.ts +13 -0
- package/dist/utils/props.d.ts.map +1 -0
- package/dist/utils/props.js +7 -0
- package/dist/utils/props.js.map +1 -0
- package/package.json +1 -6
- package/dist/node_modules/simplebar-react/dist/simplebar.min.css +0 -1
|
@@ -2,13 +2,13 @@ import { jsx as e, jsxs as l } from "react/jsx-runtime";
|
|
|
2
2
|
import t from "../icon/Icon.js";
|
|
3
3
|
import w from "../icon-button/IconButton.js";
|
|
4
4
|
import { usePopoverTransition as _ } from "../../hooks/use-popover-transition.js";
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import { useRef as p, useEffect as
|
|
5
|
+
import __B from "@mattermost/compass-icons/components/link-variant.js";const B=__B&&__B.default?__B.default:__B;
|
|
6
|
+
import __C from "@mattermost/compass-icons/components/download-outline.js";const C=__C&&__C.default?__C.default:__C;
|
|
7
|
+
import __D from "@mattermost/compass-icons/components/menu-down.js";const D=__D&&__D.default?__D.default:__D;
|
|
8
|
+
import __R from "@mattermost/compass-icons/components/menu-right.js";const R=__R&&__R.default?__R.default:__R;
|
|
9
|
+
import { useRef as p, useEffect as x } from "react";
|
|
10
10
|
import i from "./ImagePreview.module.scss.js";
|
|
11
|
-
function
|
|
11
|
+
function G({
|
|
12
12
|
src: h,
|
|
13
13
|
alt: b = "",
|
|
14
14
|
collapsed: r = !1,
|
|
@@ -16,12 +16,17 @@ function O({
|
|
|
16
16
|
onCopyLink: u,
|
|
17
17
|
onDownload: f,
|
|
18
18
|
aspectRatio: g = "16:9",
|
|
19
|
-
className: y = ""
|
|
19
|
+
className: y = "",
|
|
20
|
+
showLabel: N = "Show Image preview",
|
|
21
|
+
showAriaLabel: k = "Show image preview",
|
|
22
|
+
collapseLabel: I = "Collapse image preview",
|
|
23
|
+
copyLinkLabel: z = "Copy link",
|
|
24
|
+
downloadLabel: j = "Download"
|
|
20
25
|
}) {
|
|
21
26
|
const a = _(!r), n = _(r), s = p(null), c = p(null), o = p(!1), d = (v) => {
|
|
22
27
|
(v.key === "Enter" || v.key === " ") && (o.current = !0);
|
|
23
28
|
};
|
|
24
|
-
|
|
29
|
+
x(() => {
|
|
25
30
|
if (o.current) {
|
|
26
31
|
if (r) {
|
|
27
32
|
if (!n.mounted || !s.current) return;
|
|
@@ -31,14 +36,14 @@ function O({
|
|
|
31
36
|
!a.mounted || !c.current || (o.current = !1, c.current.focus());
|
|
32
37
|
}
|
|
33
38
|
}, [r, a.mounted, n.mounted]);
|
|
34
|
-
const
|
|
39
|
+
const T = [
|
|
35
40
|
i["image-preview"],
|
|
36
41
|
r ? i["image-preview--collapsed"] : "",
|
|
37
42
|
g === "4:3" ? i["image-preview--ratio-4-3"] : "",
|
|
38
43
|
g === "1:1" ? i["image-preview--ratio-1-1"] : "",
|
|
39
44
|
y
|
|
40
45
|
].filter(Boolean).join(" ");
|
|
41
|
-
return /* @__PURE__ */ e("div", { className:
|
|
46
|
+
return /* @__PURE__ */ e("div", { className: T, children: /* @__PURE__ */ l("div", { className: i["image-preview__stage"], children: [
|
|
42
47
|
n.mounted && /* @__PURE__ */ e(
|
|
43
48
|
"button",
|
|
44
49
|
{
|
|
@@ -50,17 +55,17 @@ function O({
|
|
|
50
55
|
].filter(Boolean).join(" "),
|
|
51
56
|
onClick: m,
|
|
52
57
|
onKeyDown: d,
|
|
53
|
-
"aria-label":
|
|
58
|
+
"aria-label": k,
|
|
54
59
|
children: /* @__PURE__ */ l("span", { className: i["image-preview__show-label"], children: [
|
|
55
60
|
/* @__PURE__ */ e(
|
|
56
61
|
"span",
|
|
57
62
|
{
|
|
58
63
|
className: i["image-preview__show-icon"],
|
|
59
64
|
"aria-hidden": "true",
|
|
60
|
-
children: /* @__PURE__ */ e(t, { size: "12", glyph: /* @__PURE__ */ e(
|
|
65
|
+
children: /* @__PURE__ */ e(t, { size: "12", glyph: /* @__PURE__ */ e(R, {}) })
|
|
61
66
|
}
|
|
62
67
|
),
|
|
63
|
-
|
|
68
|
+
N
|
|
64
69
|
] })
|
|
65
70
|
}
|
|
66
71
|
),
|
|
@@ -88,8 +93,8 @@ function O({
|
|
|
88
93
|
className: i["image-preview__collapse-btn"],
|
|
89
94
|
onClick: m,
|
|
90
95
|
onKeyDown: d,
|
|
91
|
-
"aria-label":
|
|
92
|
-
children: /* @__PURE__ */ e(t, { size: "16", glyph: /* @__PURE__ */ e(
|
|
96
|
+
"aria-label": I,
|
|
97
|
+
children: /* @__PURE__ */ e(t, { size: "16", glyph: /* @__PURE__ */ e(D, {}) })
|
|
93
98
|
}
|
|
94
99
|
),
|
|
95
100
|
/* @__PURE__ */ l("div", { className: i["image-preview__actions"], children: [
|
|
@@ -98,8 +103,8 @@ function O({
|
|
|
98
103
|
{
|
|
99
104
|
size: "small",
|
|
100
105
|
padding: "compact",
|
|
101
|
-
"aria-label":
|
|
102
|
-
icon: /* @__PURE__ */ e(t, { size: "16", glyph: /* @__PURE__ */ e(
|
|
106
|
+
"aria-label": z,
|
|
107
|
+
icon: /* @__PURE__ */ e(t, { size: "16", glyph: /* @__PURE__ */ e(B, {}) }),
|
|
103
108
|
onClick: u
|
|
104
109
|
}
|
|
105
110
|
),
|
|
@@ -108,8 +113,8 @@ function O({
|
|
|
108
113
|
{
|
|
109
114
|
size: "small",
|
|
110
115
|
padding: "compact",
|
|
111
|
-
"aria-label":
|
|
112
|
-
icon: /* @__PURE__ */ e(t, { size: "16", glyph: /* @__PURE__ */ e(
|
|
116
|
+
"aria-label": j,
|
|
117
|
+
icon: /* @__PURE__ */ e(t, { size: "16", glyph: /* @__PURE__ */ e(C, {}) }),
|
|
113
118
|
onClick: f
|
|
114
119
|
}
|
|
115
120
|
)
|
|
@@ -120,6 +125,6 @@ function O({
|
|
|
120
125
|
] }) });
|
|
121
126
|
}
|
|
122
127
|
export {
|
|
123
|
-
|
|
128
|
+
G as default
|
|
124
129
|
};
|
|
125
130
|
//# sourceMappingURL=ImagePreview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImagePreview.js","sources":["../../../src/components/image-preview/ImagePreview.tsx"],"sourcesContent":["import Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport { usePopoverTransition } from '@/hooks/use-popover-transition';\nimport LinkVariantIcon from '@mattermost/compass-icons/components/link-variant';\nimport DownloadOutlineIcon from '@mattermost/compass-icons/components/download-outline';\nimport MenuDownIcon from '@mattermost/compass-icons/components/menu-down';\nimport MenuRightIcon from '@mattermost/compass-icons/components/menu-right';\nimport { useEffect, useRef, type KeyboardEvent } from 'react';\nimport styles from './ImagePreview.module.scss';\n\nexport type ImagePreviewAspectRatio = '16:9' | '4:3' | '1:1';\n\nexport interface ImagePreviewProps {\n /** Image src URL. */\n src: string;\n /** Alt text. */\n alt?: string;\n /** Whether the preview is collapsed (shows toggle label only). */\n collapsed?: boolean;\n /** Callback when the collapse toggle is clicked. */\n onToggleCollapse?: () => void;\n /** Callback when the copy-link action is clicked. */\n onCopyLink?: () => void;\n /** Callback when the download action is clicked. */\n onDownload?: () => void;\n /** Aspect ratio of the image container. Default: 16:9 */\n aspectRatio?: ImagePreviewAspectRatio;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * Image Preview displays image attachments, markdown images, and inline image links inside\n * the message stream. It frames the image, shows hover actions for copy and download, and\n * lets the user collapse the preview when it's in the way. Keyboard activation\n * moves focus to the paired expand/collapse control; pointer activation does not.\n */\nexport default function ImagePreview({\n src,\n alt = '',\n collapsed = false,\n onToggleCollapse,\n onCopyLink,\n onDownload,\n aspectRatio = '16:9',\n className = '',\n}: ImagePreviewProps) {\n const frameTransition = usePopoverTransition(!collapsed);\n const labelTransition = usePopoverTransition(collapsed);\n const showTriggerRef = useRef<HTMLButtonElement>(null);\n const collapseTriggerRef = useRef<HTMLButtonElement>(null);\n const keyboardToggleRef = useRef(false);\n\n const markKeyboardToggle = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n keyboardToggleRef.current = true;\n }\n };\n\n useEffect(() => {\n if (!keyboardToggleRef.current) return;\n\n if (collapsed) {\n if (!labelTransition.mounted || !showTriggerRef.current) return;\n keyboardToggleRef.current = false;\n showTriggerRef.current.focus();\n return;\n }\n\n if (!frameTransition.mounted || !collapseTriggerRef.current) return;\n keyboardToggleRef.current = false;\n collapseTriggerRef.current.focus();\n }, [collapsed, frameTransition.mounted, labelTransition.mounted]);\n\n const rootClass = [\n styles['image-preview'],\n collapsed ? styles['image-preview--collapsed'] : '',\n aspectRatio === '4:3' ? styles['image-preview--ratio-4-3'] : '',\n aspectRatio === '1:1' ? styles['image-preview--ratio-1-1'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n <div className={styles['image-preview__stage']}>\n {labelTransition.mounted && (\n <button\n ref={showTriggerRef}\n type=\"button\"\n className={[\n styles['image-preview__collapsed-trigger'],\n labelTransition.visible\n ? styles['image-preview__collapsed-trigger--visible']\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onToggleCollapse}\n onKeyDown={markKeyboardToggle}\n aria-label=\"Show image preview\"\n >\n <span className={styles['image-preview__show-label']}>\n <span\n className={styles['image-preview__show-icon']}\n aria-hidden=\"true\"\n >\n <Icon size=\"12\" glyph={<MenuRightIcon />} />\n </span>\n Show Image preview\n </span>\n </button>\n )}\n\n {frameTransition.mounted && (\n <div\n className={[\n styles['image-preview__frame'],\n frameTransition.visible\n ? styles['image-preview__frame--visible']\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={styles['image-preview__media']}>\n <img\n src={src}\n alt={alt}\n className={styles['image-preview__img']}\n />\n </div>\n\n {onToggleCollapse != null && (\n <button\n ref={collapseTriggerRef}\n type=\"button\"\n className={styles['image-preview__collapse-btn']}\n onClick={onToggleCollapse}\n onKeyDown={markKeyboardToggle}\n aria-label=\"Collapse image preview\"\n >\n <Icon size=\"16\" glyph={<MenuDownIcon />} />\n </button>\n )}\n\n <div className={styles['image-preview__actions']}>\n {onCopyLink != null && (\n <IconButton\n size=\"small\"\n padding=\"compact\"\n aria-label=\"Copy link\"\n icon={<Icon size=\"16\" glyph={<LinkVariantIcon />} />}\n onClick={onCopyLink}\n />\n )}\n {onDownload != null && (\n <IconButton\n size=\"small\"\n padding=\"compact\"\n aria-label=\"Download\"\n icon={<Icon size=\"16\" glyph={<DownloadOutlineIcon />} />}\n onClick={onDownload}\n />\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"names":["ImagePreview","src","alt","collapsed","onToggleCollapse","onCopyLink","onDownload","aspectRatio","className","frameTransition","usePopoverTransition","labelTransition","showTriggerRef","useRef","collapseTriggerRef","keyboardToggleRef","markKeyboardToggle","event","useEffect","rootClass","styles","jsx","jsxs","Icon","MenuRightIcon","MenuDownIcon","IconButton","LinkVariantIcon","DownloadOutlineIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ImagePreview.js","sources":["../../../src/components/image-preview/ImagePreview.tsx"],"sourcesContent":["import Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport { usePopoverTransition } from '@/hooks/use-popover-transition';\nimport LinkVariantIcon from '@mattermost/compass-icons/components/link-variant';\nimport DownloadOutlineIcon from '@mattermost/compass-icons/components/download-outline';\nimport MenuDownIcon from '@mattermost/compass-icons/components/menu-down';\nimport MenuRightIcon from '@mattermost/compass-icons/components/menu-right';\nimport { useEffect, useRef, type KeyboardEvent, type ReactNode } from 'react';\nimport styles from './ImagePreview.module.scss';\n\nexport type ImagePreviewAspectRatio = '16:9' | '4:3' | '1:1';\n\nexport interface ImagePreviewProps {\n /** Image src URL. */\n src: string;\n /** Alt text. */\n alt?: string;\n /** Whether the preview is collapsed (shows toggle label only). */\n collapsed?: boolean;\n /** Callback when the collapse toggle is clicked. */\n onToggleCollapse?: () => void;\n /** Callback when the copy-link action is clicked. */\n onCopyLink?: () => void;\n /** Callback when the download action is clicked. */\n onDownload?: () => void;\n /** Aspect ratio of the image container. Default: 16:9 */\n aspectRatio?: ImagePreviewAspectRatio;\n /** Optional CSS class name. */\n className?: string;\n /** Visible text of the collapsed toggle. Default: \"Show Image preview\". */\n showLabel?: ReactNode;\n /** Accessible name of the collapsed toggle. Default: \"Show image preview\". */\n showAriaLabel?: string;\n /** Accessible name of the collapse button. Default: \"Collapse image preview\". */\n collapseLabel?: string;\n /** Accessible name of the copy-link button. Default: \"Copy link\". */\n copyLinkLabel?: string;\n /** Accessible name of the download button. Default: \"Download\". */\n downloadLabel?: string;\n}\n\n/**\n * Image Preview displays image attachments, markdown images, and inline image links inside\n * the message stream. It frames the image, shows hover actions for copy and download, and\n * lets the user collapse the preview when it's in the way. Keyboard activation\n * moves focus to the paired expand/collapse control; pointer activation does not.\n */\nexport default function ImagePreview({\n src,\n alt = '',\n collapsed = false,\n onToggleCollapse,\n onCopyLink,\n onDownload,\n aspectRatio = '16:9',\n className = '',\n showLabel = 'Show Image preview',\n showAriaLabel = 'Show image preview',\n collapseLabel = 'Collapse image preview',\n copyLinkLabel = 'Copy link',\n downloadLabel = 'Download',\n}: ImagePreviewProps) {\n const frameTransition = usePopoverTransition(!collapsed);\n const labelTransition = usePopoverTransition(collapsed);\n const showTriggerRef = useRef<HTMLButtonElement>(null);\n const collapseTriggerRef = useRef<HTMLButtonElement>(null);\n const keyboardToggleRef = useRef(false);\n\n const markKeyboardToggle = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n keyboardToggleRef.current = true;\n }\n };\n\n useEffect(() => {\n if (!keyboardToggleRef.current) return;\n\n if (collapsed) {\n if (!labelTransition.mounted || !showTriggerRef.current) return;\n keyboardToggleRef.current = false;\n showTriggerRef.current.focus();\n return;\n }\n\n if (!frameTransition.mounted || !collapseTriggerRef.current) return;\n keyboardToggleRef.current = false;\n collapseTriggerRef.current.focus();\n }, [collapsed, frameTransition.mounted, labelTransition.mounted]);\n\n const rootClass = [\n styles['image-preview'],\n collapsed ? styles['image-preview--collapsed'] : '',\n aspectRatio === '4:3' ? styles['image-preview--ratio-4-3'] : '',\n aspectRatio === '1:1' ? styles['image-preview--ratio-1-1'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n <div className={styles['image-preview__stage']}>\n {labelTransition.mounted && (\n <button\n ref={showTriggerRef}\n type=\"button\"\n className={[\n styles['image-preview__collapsed-trigger'],\n labelTransition.visible\n ? styles['image-preview__collapsed-trigger--visible']\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onToggleCollapse}\n onKeyDown={markKeyboardToggle}\n aria-label={showAriaLabel}\n >\n <span className={styles['image-preview__show-label']}>\n <span\n className={styles['image-preview__show-icon']}\n aria-hidden=\"true\"\n >\n <Icon size=\"12\" glyph={<MenuRightIcon />} />\n </span>\n {showLabel}\n </span>\n </button>\n )}\n\n {frameTransition.mounted && (\n <div\n className={[\n styles['image-preview__frame'],\n frameTransition.visible\n ? styles['image-preview__frame--visible']\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={styles['image-preview__media']}>\n <img\n src={src}\n alt={alt}\n className={styles['image-preview__img']}\n />\n </div>\n\n {onToggleCollapse != null && (\n <button\n ref={collapseTriggerRef}\n type=\"button\"\n className={styles['image-preview__collapse-btn']}\n onClick={onToggleCollapse}\n onKeyDown={markKeyboardToggle}\n aria-label={collapseLabel}\n >\n <Icon size=\"16\" glyph={<MenuDownIcon />} />\n </button>\n )}\n\n <div className={styles['image-preview__actions']}>\n {onCopyLink != null && (\n <IconButton\n size=\"small\"\n padding=\"compact\"\n aria-label={copyLinkLabel}\n icon={<Icon size=\"16\" glyph={<LinkVariantIcon />} />}\n onClick={onCopyLink}\n />\n )}\n {onDownload != null && (\n <IconButton\n size=\"small\"\n padding=\"compact\"\n aria-label={downloadLabel}\n icon={<Icon size=\"16\" glyph={<DownloadOutlineIcon />} />}\n onClick={onDownload}\n />\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"names":["ImagePreview","src","alt","collapsed","onToggleCollapse","onCopyLink","onDownload","aspectRatio","className","showLabel","showAriaLabel","collapseLabel","copyLinkLabel","downloadLabel","frameTransition","usePopoverTransition","labelTransition","showTriggerRef","useRef","collapseTriggerRef","keyboardToggleRef","markKeyboardToggle","event","useEffect","rootClass","styles","jsx","jsxs","Icon","MenuRightIcon","MenuDownIcon","IconButton","LinkVariantIcon","DownloadOutlineIcon"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ImagePreview.css');const e={"image-preview":"_image-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ImagePreview.css');const e={"image-preview":"_image-preview_10kas_2","image-preview__stage":"_image-preview__stage_10kas_9","image-preview__frame":"_image-preview__frame_10kas_19","image-preview__frame--visible":"_image-preview__frame--visible_10kas_33","image-preview__media":"_image-preview__media_10kas_50","image-preview--ratio-4-3":"_image-preview--ratio-4-3_10kas_56","image-preview--ratio-1-1":"_image-preview--ratio-1-1_10kas_62","image-preview__img":"_image-preview__img_10kas_68","image-preview__actions":"_image-preview__actions_10kas_77","image-preview__collapse-btn":"_image-preview__collapse-btn_10kas_94","image-preview--collapsed":"_image-preview--collapsed_10kas_114","image-preview__collapsed-trigger":"_image-preview__collapsed-trigger_10kas_117","image-preview__collapsed-trigger--visible":"_image-preview__collapsed-trigger--visible_10kas_126","image-preview__show-label":"_image-preview__show-label_10kas_131","image-preview__show-icon":"_image-preview__show-icon_10kas_142"};exports.default=e;
|
|
2
2
|
//# sourceMappingURL=ImagePreview.module.scss.cjs.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import './ImagePreview.css';const e = {
|
|
2
|
-
"image-preview": "_image-
|
|
3
|
-
"image-preview__stage": "_image-
|
|
4
|
-
"image-preview__frame": "_image-
|
|
5
|
-
"image-preview__frame--visible": "_image-preview__frame--
|
|
6
|
-
"image-preview__media": "_image-
|
|
7
|
-
"image-preview--ratio-4-3": "_image-preview--ratio-4-
|
|
8
|
-
"image-preview--ratio-1-1": "_image-preview--ratio-1-
|
|
9
|
-
"image-preview__img": "_image-
|
|
10
|
-
"image-preview__actions": "_image-
|
|
11
|
-
"image-preview__collapse-btn": "_image-preview__collapse-
|
|
12
|
-
"image-preview--collapsed": "_image-preview--
|
|
13
|
-
"image-preview__collapsed-trigger": "_image-preview__collapsed-
|
|
14
|
-
"image-preview__collapsed-trigger--visible": "_image-preview__collapsed-trigger--
|
|
15
|
-
"image-preview__show-label": "_image-preview__show-
|
|
16
|
-
"image-preview__show-icon": "_image-preview__show-
|
|
2
|
+
"image-preview": "_image-preview_10kas_2",
|
|
3
|
+
"image-preview__stage": "_image-preview__stage_10kas_9",
|
|
4
|
+
"image-preview__frame": "_image-preview__frame_10kas_19",
|
|
5
|
+
"image-preview__frame--visible": "_image-preview__frame--visible_10kas_33",
|
|
6
|
+
"image-preview__media": "_image-preview__media_10kas_50",
|
|
7
|
+
"image-preview--ratio-4-3": "_image-preview--ratio-4-3_10kas_56",
|
|
8
|
+
"image-preview--ratio-1-1": "_image-preview--ratio-1-1_10kas_62",
|
|
9
|
+
"image-preview__img": "_image-preview__img_10kas_68",
|
|
10
|
+
"image-preview__actions": "_image-preview__actions_10kas_77",
|
|
11
|
+
"image-preview__collapse-btn": "_image-preview__collapse-btn_10kas_94",
|
|
12
|
+
"image-preview--collapsed": "_image-preview--collapsed_10kas_114",
|
|
13
|
+
"image-preview__collapsed-trigger": "_image-preview__collapsed-trigger_10kas_117",
|
|
14
|
+
"image-preview__collapsed-trigger--visible": "_image-preview__collapsed-trigger--visible_10kas_126",
|
|
15
|
+
"image-preview__show-label": "_image-preview__show-label_10kas_131",
|
|
16
|
+
"image-preview__show-icon": "_image-preview__show-icon_10kas_142"
|
|
17
17
|
};
|
|
18
18
|
export {
|
|
19
19
|
e as default
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),x=require("../icon/Icon.cjs"),g=require("../icon-button/IconButton.cjs"),N=require("../image-preview/ImagePreview.cjs"),__b=require("@mattermost/compass-icons/components/close.js"),b=__b?.default??__b,l=require("./LinkPreview.module.scss.cjs");function I({siteName:d="Mattermost.com",title:u="Mattermost: Open-source, high-trust, developer-centric collaboration platform",description:m="Mattermost is a secure, open source platform for communication, collaboration, and workflow orchestration across tools and teams.",imageSrc:a,imageAlt:n="",imageSize:r="none",imageCollapsed:s=!1,onToggleImageCollapse:p,onCopyImageLink:v,onDownloadImage:_,onDismiss:t,dismissLabel:f="Remove link preview",imagePreviewLabels:w,className:k=""}){const o=a!=null&&r==="none"?"large":r,c=o==="small"&&a!=null,i=o==="large"&&a!=null,j=[l.default["link-preview"],k].filter(Boolean).join(" "),h=[l.default["link-preview__card"],c?l.default["link-preview__card--small-image"]:"",i&&!s?l.default["link-preview__card--large-image"]:"",i&&s?l.default["link-preview__card--collapsed-image"]:""].filter(Boolean).join(" ");return e.jsxs("div",{className:j,children:[t!=null&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:l.default["link-preview__dismiss-bridge"],"aria-hidden":!0}),e.jsx(g.default,{className:l.default["link-preview__dismiss"],size:"x-small",padding:"compact","aria-label":f,icon:e.jsx(x.default,{size:"12",glyph:e.jsx(b,{})}),onClick:t})]}),e.jsxs("div",{className:h,children:[e.jsxs("div",{className:l.default["link-preview__text"],children:[e.jsx("p",{className:l.default["link-preview__site-name"],children:d}),e.jsx("p",{className:l.default["link-preview__title"],children:u}),e.jsx("p",{className:l.default["link-preview__description"],children:m})]}),c&&e.jsx("div",{className:l.default["link-preview__thumbnail"],children:e.jsx("img",{src:a,alt:n,className:l.default["link-preview__thumbnail-img"]})}),i&&e.jsx(N.default,{...w,className:l.default["link-preview__image-preview"],src:a,alt:n,collapsed:s,onToggleCollapse:p,onCopyLink:v,onDownload:_})]})]})}exports.default=I;
|
|
2
2
|
//# sourceMappingURL=LinkPreview.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkPreview.cjs","sources":["../../../src/components/link-preview/LinkPreview.tsx"],"sourcesContent":["import Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport ImagePreview from '@/components/image-preview/ImagePreview';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './LinkPreview.module.scss';\n\nexport type LinkPreviewImageSize = 'none' | 'small' | 'large';\n\nexport interface LinkPreviewProps {\n /** The site/domain label shown above the title. */\n siteName?:
|
|
1
|
+
{"version":3,"file":"LinkPreview.cjs","sources":["../../../src/components/link-preview/LinkPreview.tsx"],"sourcesContent":["import Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport type { ReactNode } from 'react';\nimport ImagePreview from '@/components/image-preview/ImagePreview';\nimport type { ImagePreviewProps } from '@/components/image-preview/ImagePreview';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './LinkPreview.module.scss';\n\nexport type LinkPreviewImageSize = 'none' | 'small' | 'large';\n\nexport interface LinkPreviewProps {\n /** The site/domain label shown above the title. */\n siteName?: ReactNode;\n /** The main link title. Accepts translated nodes. */\n title?: ReactNode;\n /** Description text. Accepts translated nodes. */\n description?: ReactNode;\n /** Preview image URL. Pair with `imageSize` to choose layout. */\n imageSrc?: string;\n /** Alt text for the preview image. */\n imageAlt?: string;\n /** Small: square thumbnail on the right. Large: ImagePreview below text. */\n imageSize?: LinkPreviewImageSize;\n /** Whether the large image preview is collapsed. Only applies when `imageSize` is `large`. */\n imageCollapsed?: boolean;\n /** Callback when the large image collapse toggle is clicked. */\n onToggleImageCollapse?: () => void;\n /** Callback when copy-link is clicked on the large image preview. */\n onCopyImageLink?: () => void;\n /** Callback when download is clicked on the large image preview. */\n onDownloadImage?: () => void;\n /** Called when the dismiss control is clicked. Shown on hover when provided. */\n onDismiss?: () => void;\n /** Accessible name for the dismiss button. Default: \"Remove link preview\". */\n dismissLabel?: string;\n /** Label overrides for the large image preview. */\n imagePreviewLabels?: Pick<\n ImagePreviewProps,\n | 'showLabel'\n | 'showAriaLabel'\n | 'collapseLabel'\n | 'copyLinkLabel'\n | 'downloadLabel'\n >;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * Link Previews appear under a message whenever it contains a URL with rich metadata — a\n * documentation page, a blog post, a product link. They give the recipient enough context to\n * decide whether to click without forcing them to open the link cold.\n */\nexport default function LinkPreview({\n siteName = 'Mattermost.com',\n title = 'Mattermost: Open-source, high-trust, developer-centric collaboration platform',\n description = 'Mattermost is a secure, open source platform for communication, collaboration, and workflow orchestration across tools and teams.',\n imageSrc,\n imageAlt = '',\n imageSize = 'none',\n imageCollapsed = false,\n onToggleImageCollapse,\n onCopyImageLink,\n onDownloadImage,\n onDismiss,\n dismissLabel = 'Remove link preview',\n imagePreviewLabels,\n className = '',\n}: LinkPreviewProps) {\n const resolvedImageSize =\n imageSrc != null && imageSize === 'none' ? 'large' : imageSize;\n const hasSmallImage = resolvedImageSize === 'small' && imageSrc != null;\n const hasLargeImage = resolvedImageSize === 'large' && imageSrc != null;\n\n const rootClass = [styles['link-preview'], className]\n .filter(Boolean)\n .join(' ');\n\n const cardClass = [\n styles['link-preview__card'],\n hasSmallImage ? styles['link-preview__card--small-image'] : '',\n hasLargeImage && !imageCollapsed\n ? styles['link-preview__card--large-image']\n : '',\n hasLargeImage && imageCollapsed\n ? styles['link-preview__card--collapsed-image']\n : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n {onDismiss != null && (\n <>\n <div className={styles['link-preview__dismiss-bridge']} aria-hidden />\n <IconButton\n className={styles['link-preview__dismiss']}\n size=\"x-small\"\n padding=\"compact\"\n aria-label={dismissLabel}\n icon={<Icon size=\"12\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n </>\n )}\n\n <div className={cardClass}>\n <div className={styles['link-preview__text']}>\n <p className={styles['link-preview__site-name']}>{siteName}</p>\n <p className={styles['link-preview__title']}>{title}</p>\n <p className={styles['link-preview__description']}>{description}</p>\n </div>\n\n {hasSmallImage && (\n <div className={styles['link-preview__thumbnail']}>\n <img\n src={imageSrc}\n alt={imageAlt}\n className={styles['link-preview__thumbnail-img']}\n />\n </div>\n )}\n\n {hasLargeImage && (\n <ImagePreview\n {...imagePreviewLabels}\n className={styles['link-preview__image-preview']}\n src={imageSrc}\n alt={imageAlt}\n collapsed={imageCollapsed}\n onToggleCollapse={onToggleImageCollapse}\n onCopyLink={onCopyImageLink}\n onDownload={onDownloadImage}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["LinkPreview","siteName","title","description","imageSrc","imageAlt","imageSize","imageCollapsed","onToggleImageCollapse","onCopyImageLink","onDownloadImage","onDismiss","dismissLabel","imagePreviewLabels","className","resolvedImageSize","hasSmallImage","hasLargeImage","rootClass","styles","cardClass","jsxs","Fragment","jsx","IconButton","Icon","CloseIcon","ImagePreview"],"mappings":"0WAqDA,SAAwBA,EAAY,CAClC,SAAAC,EAAW,iBACX,MAAAC,EAAQ,gFACR,YAAAC,EAAc,oIACd,SAAAC,EACA,SAAAC,EAAW,GACX,UAAAC,EAAY,OACZ,eAAAC,EAAiB,GACjB,sBAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,UAAAC,EACA,aAAAC,EAAe,sBACf,mBAAAC,EACA,UAAAC,EAAY,EACd,EAAqB,CACnB,MAAMC,EACJX,GAAY,MAAQE,IAAc,OAAS,QAAUA,EACjDU,EAAgBD,IAAsB,SAAWX,GAAY,KAC7Da,EAAgBF,IAAsB,SAAWX,GAAY,KAE7Dc,EAAY,CAACC,UAAO,cAAc,EAAGL,CAAS,EACjD,OAAO,OAAO,EACd,KAAK,GAAG,EAELM,EAAY,CAChBD,EAAAA,QAAO,oBAAoB,EAC3BH,EAAgBG,EAAAA,QAAO,iCAAiC,EAAI,GAC5DF,GAAiB,CAACV,EACdY,UAAO,iCAAiC,EACxC,GACJF,GAAiBV,EACbY,UAAO,qCAAqC,EAC5C,EAAA,EAEH,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEE,EAAAA,KAAC,MAAA,CAAI,UAAWH,EACb,SAAA,CAAAP,GAAa,MACZU,EAAAA,KAAAC,EAAAA,SAAA,CACE,SAAA,CAAAC,MAAC,OAAI,UAAWJ,EAAAA,QAAO,8BAA8B,EAAG,cAAW,GAAC,EACpEI,EAAAA,IAACC,EAAAA,QAAA,CACC,UAAWL,EAAAA,QAAO,uBAAuB,EACzC,KAAK,UACL,QAAQ,UACR,aAAYP,EACZ,WAAOa,UAAA,CAAK,KAAK,KAAK,MAAOF,MAACG,IAAU,EAAI,EAC5C,QAASf,CAAA,CAAA,CACX,EACF,EAGFU,EAAAA,KAAC,MAAA,CAAI,UAAWD,EACd,SAAA,CAAAC,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,oBAAoB,EACzC,SAAA,CAAAI,MAAC,IAAA,CAAE,UAAWJ,EAAAA,QAAO,yBAAyB,EAAI,SAAAlB,EAAS,QAC1D,IAAA,CAAE,UAAWkB,EAAAA,QAAO,qBAAqB,EAAI,SAAAjB,EAAM,QACnD,IAAA,CAAE,UAAWiB,EAAAA,QAAO,2BAA2B,EAAI,SAAAhB,CAAA,CAAY,CAAA,EAClE,EAECa,GACCO,EAAAA,IAAC,MAAA,CAAI,UAAWJ,EAAAA,QAAO,yBAAyB,EAC9C,SAAAI,EAAAA,IAAC,MAAA,CACC,IAAKnB,EACL,IAAKC,EACL,UAAWc,EAAAA,QAAO,6BAA6B,CAAA,CAAA,EAEnD,EAGDF,GACCM,EAAAA,IAACI,EAAAA,QAAA,CACE,GAAGd,EACJ,UAAWM,EAAAA,QAAO,6BAA6B,EAC/C,IAAKf,EACL,IAAKC,EACL,UAAWE,EACX,iBAAkBC,EAClB,WAAYC,EACZ,WAAYC,CAAA,CAAA,CACd,CAAA,CAEJ,CAAA,EACF,CAEJ"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ImagePreviewProps } from '../image-preview/ImagePreview';
|
|
1
3
|
export type LinkPreviewImageSize = 'none' | 'small' | 'large';
|
|
2
4
|
export interface LinkPreviewProps {
|
|
3
5
|
/** The site/domain label shown above the title. */
|
|
4
|
-
siteName?:
|
|
5
|
-
/** The main link title. */
|
|
6
|
-
title?:
|
|
7
|
-
/** Description text. */
|
|
8
|
-
description?:
|
|
6
|
+
siteName?: ReactNode;
|
|
7
|
+
/** The main link title. Accepts translated nodes. */
|
|
8
|
+
title?: ReactNode;
|
|
9
|
+
/** Description text. Accepts translated nodes. */
|
|
10
|
+
description?: ReactNode;
|
|
9
11
|
/** Preview image URL. Pair with `imageSize` to choose layout. */
|
|
10
12
|
imageSrc?: string;
|
|
11
13
|
/** Alt text for the preview image. */
|
|
@@ -22,6 +24,10 @@ export interface LinkPreviewProps {
|
|
|
22
24
|
onDownloadImage?: () => void;
|
|
23
25
|
/** Called when the dismiss control is clicked. Shown on hover when provided. */
|
|
24
26
|
onDismiss?: () => void;
|
|
27
|
+
/** Accessible name for the dismiss button. Default: "Remove link preview". */
|
|
28
|
+
dismissLabel?: string;
|
|
29
|
+
/** Label overrides for the large image preview. */
|
|
30
|
+
imagePreviewLabels?: Pick<ImagePreviewProps, 'showLabel' | 'showAriaLabel' | 'collapseLabel' | 'copyLinkLabel' | 'downloadLabel'>;
|
|
25
31
|
/** Optional CSS class name. */
|
|
26
32
|
className?: string;
|
|
27
33
|
}
|
|
@@ -30,5 +36,5 @@ export interface LinkPreviewProps {
|
|
|
30
36
|
* documentation page, a blog post, a product link. They give the recipient enough context to
|
|
31
37
|
* decide whether to click without forcing them to open the link cold.
|
|
32
38
|
*/
|
|
33
|
-
export default function LinkPreview({ siteName, title, description, imageSrc, imageAlt, imageSize, imageCollapsed, onToggleImageCollapse, onCopyImageLink, onDownloadImage, onDismiss, className, }: LinkPreviewProps): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
export default function LinkPreview({ siteName, title, description, imageSrc, imageAlt, imageSize, imageCollapsed, onToggleImageCollapse, onCopyImageLink, onDownloadImage, onDismiss, dismissLabel, imagePreviewLabels, className, }: LinkPreviewProps): import("react/jsx-runtime").JSX.Element;
|
|
34
40
|
//# sourceMappingURL=LinkPreview.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkPreview.d.ts","sourceRoot":"","sources":["../../../src/components/link-preview/LinkPreview.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LinkPreview.d.ts","sourceRoot":"","sources":["../../../src/components/link-preview/LinkPreview.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAIhF,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qDAAqD;IACrD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,kDAAkD;IAClD,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,8FAA8F;IAC9F,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gEAAgE;IAChE,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,IAAI,CACvB,iBAAiB,EACf,WAAW,GACX,eAAe,GACf,eAAe,GACf,eAAe,GACf,eAAe,CAClB,CAAC;IACF,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,QAA2B,EAC3B,KAAuF,EACvF,WAAiJ,EACjJ,QAAQ,EACR,QAAa,EACb,SAAkB,EAClB,cAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,SAAS,EACT,YAAoC,EACpC,kBAAkB,EAClB,SAAc,GACf,EAAE,gBAAgB,2CAuElB"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { jsxs as r, Fragment as
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
1
|
+
import { jsxs as r, Fragment as I, jsx as l } from "react/jsx-runtime";
|
|
2
|
+
import b from "../icon/Icon.js";
|
|
3
|
+
import x from "../icon-button/IconButton.js";
|
|
4
|
+
import j from "../image-preview/ImagePreview.js";
|
|
5
|
+
import __C from "@mattermost/compass-icons/components/close.js";const C=__C&&__C.default?__C.default:__C;
|
|
6
6
|
import e from "./LinkPreview.module.scss.js";
|
|
7
|
-
function
|
|
7
|
+
function F({
|
|
8
8
|
siteName: p = "Mattermost.com",
|
|
9
9
|
title: d = "Mattermost: Open-source, high-trust, developer-centric collaboration platform",
|
|
10
10
|
description: v = "Mattermost is a secure, open source platform for communication, collaboration, and workflow orchestration across tools and teams.",
|
|
@@ -16,30 +16,32 @@ function z({
|
|
|
16
16
|
onCopyImageLink: w,
|
|
17
17
|
onDownloadImage: k,
|
|
18
18
|
onDismiss: t,
|
|
19
|
-
|
|
19
|
+
dismissLabel: h = "Remove link preview",
|
|
20
|
+
imagePreviewLabels: u,
|
|
21
|
+
className: f = ""
|
|
20
22
|
}) {
|
|
21
|
-
const c = i != null && s === "none" ? "large" : s, m = c === "small" && i != null, o = c === "large" && i != null,
|
|
23
|
+
const c = i != null && s === "none" ? "large" : s, m = c === "small" && i != null, o = c === "large" && i != null, g = [e["link-preview"], f].filter(Boolean).join(" "), N = [
|
|
22
24
|
e["link-preview__card"],
|
|
23
25
|
m ? e["link-preview__card--small-image"] : "",
|
|
24
26
|
o && !a ? e["link-preview__card--large-image"] : "",
|
|
25
27
|
o && a ? e["link-preview__card--collapsed-image"] : ""
|
|
26
28
|
].filter(Boolean).join(" ");
|
|
27
|
-
return /* @__PURE__ */ r("div", { className:
|
|
28
|
-
t != null && /* @__PURE__ */ r(
|
|
29
|
+
return /* @__PURE__ */ r("div", { className: g, children: [
|
|
30
|
+
t != null && /* @__PURE__ */ r(I, { children: [
|
|
29
31
|
/* @__PURE__ */ l("div", { className: e["link-preview__dismiss-bridge"], "aria-hidden": !0 }),
|
|
30
32
|
/* @__PURE__ */ l(
|
|
31
|
-
|
|
33
|
+
x,
|
|
32
34
|
{
|
|
33
35
|
className: e["link-preview__dismiss"],
|
|
34
36
|
size: "x-small",
|
|
35
37
|
padding: "compact",
|
|
36
|
-
"aria-label":
|
|
37
|
-
icon: /* @__PURE__ */ l(
|
|
38
|
+
"aria-label": h,
|
|
39
|
+
icon: /* @__PURE__ */ l(b, { size: "12", glyph: /* @__PURE__ */ l(C, {}) }),
|
|
38
40
|
onClick: t
|
|
39
41
|
}
|
|
40
42
|
)
|
|
41
43
|
] }),
|
|
42
|
-
/* @__PURE__ */ r("div", { className:
|
|
44
|
+
/* @__PURE__ */ r("div", { className: N, children: [
|
|
43
45
|
/* @__PURE__ */ r("div", { className: e["link-preview__text"], children: [
|
|
44
46
|
/* @__PURE__ */ l("p", { className: e["link-preview__site-name"], children: p }),
|
|
45
47
|
/* @__PURE__ */ l("p", { className: e["link-preview__title"], children: d }),
|
|
@@ -54,8 +56,9 @@ function z({
|
|
|
54
56
|
}
|
|
55
57
|
) }),
|
|
56
58
|
o && /* @__PURE__ */ l(
|
|
57
|
-
|
|
59
|
+
j,
|
|
58
60
|
{
|
|
61
|
+
...u,
|
|
59
62
|
className: e["link-preview__image-preview"],
|
|
60
63
|
src: i,
|
|
61
64
|
alt: n,
|
|
@@ -69,6 +72,6 @@ function z({
|
|
|
69
72
|
] });
|
|
70
73
|
}
|
|
71
74
|
export {
|
|
72
|
-
|
|
75
|
+
F as default
|
|
73
76
|
};
|
|
74
77
|
//# sourceMappingURL=LinkPreview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkPreview.js","sources":["../../../src/components/link-preview/LinkPreview.tsx"],"sourcesContent":["import Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport ImagePreview from '@/components/image-preview/ImagePreview';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './LinkPreview.module.scss';\n\nexport type LinkPreviewImageSize = 'none' | 'small' | 'large';\n\nexport interface LinkPreviewProps {\n /** The site/domain label shown above the title. */\n siteName?:
|
|
1
|
+
{"version":3,"file":"LinkPreview.js","sources":["../../../src/components/link-preview/LinkPreview.tsx"],"sourcesContent":["import Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport type { ReactNode } from 'react';\nimport ImagePreview from '@/components/image-preview/ImagePreview';\nimport type { ImagePreviewProps } from '@/components/image-preview/ImagePreview';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './LinkPreview.module.scss';\n\nexport type LinkPreviewImageSize = 'none' | 'small' | 'large';\n\nexport interface LinkPreviewProps {\n /** The site/domain label shown above the title. */\n siteName?: ReactNode;\n /** The main link title. Accepts translated nodes. */\n title?: ReactNode;\n /** Description text. Accepts translated nodes. */\n description?: ReactNode;\n /** Preview image URL. Pair with `imageSize` to choose layout. */\n imageSrc?: string;\n /** Alt text for the preview image. */\n imageAlt?: string;\n /** Small: square thumbnail on the right. Large: ImagePreview below text. */\n imageSize?: LinkPreviewImageSize;\n /** Whether the large image preview is collapsed. Only applies when `imageSize` is `large`. */\n imageCollapsed?: boolean;\n /** Callback when the large image collapse toggle is clicked. */\n onToggleImageCollapse?: () => void;\n /** Callback when copy-link is clicked on the large image preview. */\n onCopyImageLink?: () => void;\n /** Callback when download is clicked on the large image preview. */\n onDownloadImage?: () => void;\n /** Called when the dismiss control is clicked. Shown on hover when provided. */\n onDismiss?: () => void;\n /** Accessible name for the dismiss button. Default: \"Remove link preview\". */\n dismissLabel?: string;\n /** Label overrides for the large image preview. */\n imagePreviewLabels?: Pick<\n ImagePreviewProps,\n | 'showLabel'\n | 'showAriaLabel'\n | 'collapseLabel'\n | 'copyLinkLabel'\n | 'downloadLabel'\n >;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * Link Previews appear under a message whenever it contains a URL with rich metadata — a\n * documentation page, a blog post, a product link. They give the recipient enough context to\n * decide whether to click without forcing them to open the link cold.\n */\nexport default function LinkPreview({\n siteName = 'Mattermost.com',\n title = 'Mattermost: Open-source, high-trust, developer-centric collaboration platform',\n description = 'Mattermost is a secure, open source platform for communication, collaboration, and workflow orchestration across tools and teams.',\n imageSrc,\n imageAlt = '',\n imageSize = 'none',\n imageCollapsed = false,\n onToggleImageCollapse,\n onCopyImageLink,\n onDownloadImage,\n onDismiss,\n dismissLabel = 'Remove link preview',\n imagePreviewLabels,\n className = '',\n}: LinkPreviewProps) {\n const resolvedImageSize =\n imageSrc != null && imageSize === 'none' ? 'large' : imageSize;\n const hasSmallImage = resolvedImageSize === 'small' && imageSrc != null;\n const hasLargeImage = resolvedImageSize === 'large' && imageSrc != null;\n\n const rootClass = [styles['link-preview'], className]\n .filter(Boolean)\n .join(' ');\n\n const cardClass = [\n styles['link-preview__card'],\n hasSmallImage ? styles['link-preview__card--small-image'] : '',\n hasLargeImage && !imageCollapsed\n ? styles['link-preview__card--large-image']\n : '',\n hasLargeImage && imageCollapsed\n ? styles['link-preview__card--collapsed-image']\n : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n {onDismiss != null && (\n <>\n <div className={styles['link-preview__dismiss-bridge']} aria-hidden />\n <IconButton\n className={styles['link-preview__dismiss']}\n size=\"x-small\"\n padding=\"compact\"\n aria-label={dismissLabel}\n icon={<Icon size=\"12\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n </>\n )}\n\n <div className={cardClass}>\n <div className={styles['link-preview__text']}>\n <p className={styles['link-preview__site-name']}>{siteName}</p>\n <p className={styles['link-preview__title']}>{title}</p>\n <p className={styles['link-preview__description']}>{description}</p>\n </div>\n\n {hasSmallImage && (\n <div className={styles['link-preview__thumbnail']}>\n <img\n src={imageSrc}\n alt={imageAlt}\n className={styles['link-preview__thumbnail-img']}\n />\n </div>\n )}\n\n {hasLargeImage && (\n <ImagePreview\n {...imagePreviewLabels}\n className={styles['link-preview__image-preview']}\n src={imageSrc}\n alt={imageAlt}\n collapsed={imageCollapsed}\n onToggleCollapse={onToggleImageCollapse}\n onCopyLink={onCopyImageLink}\n onDownload={onDownloadImage}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["LinkPreview","siteName","title","description","imageSrc","imageAlt","imageSize","imageCollapsed","onToggleImageCollapse","onCopyImageLink","onDownloadImage","onDismiss","dismissLabel","imagePreviewLabels","className","resolvedImageSize","hasSmallImage","hasLargeImage","rootClass","styles","cardClass","jsxs","Fragment","jsx","IconButton","Icon","CloseIcon","ImagePreview"],"mappings":";;;;;;AAqDA,SAAwBA,EAAY;AAAA,EAClC,UAAAC,IAAW;AAAA,EACX,OAAAC,IAAQ;AAAA,EACR,aAAAC,IAAc;AAAA,EACd,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,WAAAC,IAAY;AAAA,EACZ,gBAAAC,IAAiB;AAAA,EACjB,uBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,oBAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAqB;AACnB,QAAMC,IACJX,KAAY,QAAQE,MAAc,SAAS,UAAUA,GACjDU,IAAgBD,MAAsB,WAAWX,KAAY,MAC7Da,IAAgBF,MAAsB,WAAWX,KAAY,MAE7Dc,IAAY,CAACC,EAAO,cAAc,GAAGL,CAAS,EACjD,OAAO,OAAO,EACd,KAAK,GAAG,GAELM,IAAY;AAAA,IAChBD,EAAO,oBAAoB;AAAA,IAC3BH,IAAgBG,EAAO,iCAAiC,IAAI;AAAA,IAC5DF,KAAiB,CAACV,IACdY,EAAO,iCAAiC,IACxC;AAAA,IACJF,KAAiBV,IACbY,EAAO,qCAAqC,IAC5C;AAAA,EAAA,EAEH,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAE,EAAC,OAAA,EAAI,WAAWH,GACb,UAAA;AAAA,IAAAP,KAAa,QACZ,gBAAAU,EAAAC,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAC,EAAC,SAAI,WAAWJ,EAAO,8BAA8B,GAAG,eAAW,IAAC;AAAA,MACpE,gBAAAI;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,WAAWL,EAAO,uBAAuB;AAAA,UACzC,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,cAAYP;AAAA,UACZ,wBAAOa,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAF,EAACG,KAAU,GAAI;AAAA,UAC5C,SAASf;AAAA,QAAA;AAAA,MAAA;AAAA,IACX,GACF;AAAA,IAGF,gBAAAU,EAAC,OAAA,EAAI,WAAWD,GACd,UAAA;AAAA,MAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWF,EAAO,oBAAoB,GACzC,UAAA;AAAA,QAAA,gBAAAI,EAAC,KAAA,EAAE,WAAWJ,EAAO,yBAAyB,GAAI,UAAAlB,GAAS;AAAA,0BAC1D,KAAA,EAAE,WAAWkB,EAAO,qBAAqB,GAAI,UAAAjB,GAAM;AAAA,0BACnD,KAAA,EAAE,WAAWiB,EAAO,2BAA2B,GAAI,UAAAhB,EAAA,CAAY;AAAA,MAAA,GAClE;AAAA,MAECa,KACC,gBAAAO,EAAC,OAAA,EAAI,WAAWJ,EAAO,yBAAyB,GAC9C,UAAA,gBAAAI;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAKnB;AAAA,UACL,KAAKC;AAAA,UACL,WAAWc,EAAO,6BAA6B;AAAA,QAAA;AAAA,MAAA,GAEnD;AAAA,MAGDF,KACC,gBAAAM;AAAA,QAACI;AAAA,QAAA;AAAA,UACE,GAAGd;AAAA,UACJ,WAAWM,EAAO,6BAA6B;AAAA,UAC/C,KAAKf;AAAA,UACL,KAAKC;AAAA,UACL,WAAWE;AAAA,UACX,kBAAkBC;AAAA,UAClB,YAAYC;AAAA,UACZ,YAAYC;AAAA,QAAA;AAAA,MAAA;AAAA,IACd,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("react/jsx-runtime"),o=require("../../utils/string.cjs"),t=require("./MentionBadge.module.scss.cjs"),b=e=>`${e} mention${e===1?"":"s"}`;function g({className:e="",count:n,location:i="sidebar",size:s="small",formatLabel:l=b}){const a=n>99?"99+":String(n),d=a.length,r=[t.default["mention-badge"],t.default[`mention-badge--size-${o.toKebab(s)}`],t.default[`mention-badge--digits-${d}`],i!=="sidebar"?t.default[`mention-badge--location-${o.toKebab(i)}`]:"",e].filter(Boolean).join(" ");return u.jsx("span",{className:r,"aria-label":l(n),children:a})}exports.default=g;
|
|
2
2
|
//# sourceMappingURL=MentionBadge.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentionBadge.cjs","sources":["../../../src/components/mention-badge/MentionBadge.tsx"],"sourcesContent":["import { toKebab } from '@/utils/string';\nimport styles from './MentionBadge.module.scss';\n\n/** Figma Mention Badge location context — controls color scheme. */\nexport type MentionBadgeLocation =\n | 'sidebar'\n | 'menu-item'\n | 'icon-button'\n | 'channel';\n\n/** Figma Mention Badge size. */\nexport type MentionBadgeSize = 'small' | 'medium' | 'large';\n\nexport interface MentionBadgeProps {\n /** Optional CSS class name. */\n className?: string;\n /** Mention count. Displays as-is up to 99; shows \"99+\" above that. */\n count: number;\n /** Color context. Figma: Location. Default: Sidebar. */\n location?: MentionBadgeLocation;\n /** Size variant. Figma: Size. Default: Small. */\n size?: MentionBadgeSize;\n}\n\n/**\n * Mention Badges show a numerical count of pending mentions. They appear next to channel\n * names in the sidebar, on app-bar icons, inline in menu items, and on center-channel lists\n * such as thread rows — small, high-contrast pills that pull the eye without dominating the\n * row.\n */\nexport default function MentionBadge({\n className = '',\n count,\n location = 'sidebar',\n size = 'small',\n}: MentionBadgeProps) {\n const displayText = count > 99 ? '99+' : String(count);\n const digitCount = displayText.length; // 1, 2, or 3 (for \"99+\")\n\n const rootClass = [\n styles['mention-badge'],\n styles[`mention-badge--size-${toKebab(size)}`],\n styles[`mention-badge--digits-${digitCount}`],\n location !== 'sidebar'\n ? styles[`mention-badge--location-${toKebab(location)}`]\n : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <span
|
|
1
|
+
{"version":3,"file":"MentionBadge.cjs","sources":["../../../src/components/mention-badge/MentionBadge.tsx"],"sourcesContent":["import { toKebab } from '@/utils/string';\nimport styles from './MentionBadge.module.scss';\n\n/** Figma Mention Badge location context — controls color scheme. */\nexport type MentionBadgeLocation =\n | 'sidebar'\n | 'menu-item'\n | 'icon-button'\n | 'channel';\n\n/** Figma Mention Badge size. */\nexport type MentionBadgeSize = 'small' | 'medium' | 'large';\n\nexport interface MentionBadgeProps {\n /** Optional CSS class name. */\n className?: string;\n /** Mention count. Displays as-is up to 99; shows \"99+\" above that. */\n count: number;\n /** Color context. Figma: Location. Default: Sidebar. */\n location?: MentionBadgeLocation;\n /** Size variant. Figma: Size. Default: Small. */\n size?: MentionBadgeSize;\n /** Accessible name. Default: `{count} mention(s)`. */\n formatLabel?: (count: number) => string;\n}\n\nconst defaultFormatMentionLabel = (count: number) =>\n `${count} mention${count === 1 ? '' : 's'}`;\n\n/**\n * Mention Badges show a numerical count of pending mentions. They appear next to channel\n * names in the sidebar, on app-bar icons, inline in menu items, and on center-channel lists\n * such as thread rows — small, high-contrast pills that pull the eye without dominating the\n * row.\n */\nexport default function MentionBadge({\n className = '',\n count,\n location = 'sidebar',\n size = 'small',\n formatLabel = defaultFormatMentionLabel,\n}: MentionBadgeProps) {\n const displayText = count > 99 ? '99+' : String(count);\n const digitCount = displayText.length; // 1, 2, or 3 (for \"99+\")\n\n const rootClass = [\n styles['mention-badge'],\n styles[`mention-badge--size-${toKebab(size)}`],\n styles[`mention-badge--digits-${digitCount}`],\n location !== 'sidebar'\n ? styles[`mention-badge--location-${toKebab(location)}`]\n : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <span className={rootClass} aria-label={formatLabel(count)}>\n {displayText}\n </span>\n );\n}\n"],"names":["defaultFormatMentionLabel","count","MentionBadge","className","location","size","formatLabel","displayText","digitCount","rootClass","styles","toKebab","jsx"],"mappings":"iOA0BMA,EAA6BC,GACjC,GAAGA,CAAK,WAAWA,IAAU,EAAI,GAAK,GAAG,GAQ3C,SAAwBC,EAAa,CACnC,UAAAC,EAAY,GACZ,MAAAF,EACA,SAAAG,EAAW,UACX,KAAAC,EAAO,QACP,YAAAC,EAAcN,CAChB,EAAsB,CACpB,MAAMO,EAAcN,EAAQ,GAAK,MAAQ,OAAOA,CAAK,EAC/CO,EAAaD,EAAY,OAEzBE,EAAY,CAChBC,EAAAA,QAAO,eAAe,EACtBA,EAAAA,QAAO,uBAAuBC,EAAAA,QAAQN,CAAI,CAAC,EAAE,EAC7CK,EAAAA,QAAO,yBAAyBF,CAAU,EAAE,EAC5CJ,IAAa,UACTM,EAAAA,QAAO,2BAA2BC,EAAAA,QAAQP,CAAQ,CAAC,EAAE,EACrD,GACJD,CAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACES,MAAC,QAAK,UAAWH,EAAW,aAAYH,EAAYL,CAAK,EACtD,SAAAM,CAAA,CACH,CAEJ"}
|
|
@@ -11,6 +11,8 @@ export interface MentionBadgeProps {
|
|
|
11
11
|
location?: MentionBadgeLocation;
|
|
12
12
|
/** Size variant. Figma: Size. Default: Small. */
|
|
13
13
|
size?: MentionBadgeSize;
|
|
14
|
+
/** Accessible name. Default: `{count} mention(s)`. */
|
|
15
|
+
formatLabel?: (count: number) => string;
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
16
18
|
* Mention Badges show a numerical count of pending mentions. They appear next to channel
|
|
@@ -18,5 +20,5 @@ export interface MentionBadgeProps {
|
|
|
18
20
|
* such as thread rows — small, high-contrast pills that pull the eye without dominating the
|
|
19
21
|
* row.
|
|
20
22
|
*/
|
|
21
|
-
export default function MentionBadge({ className, count, location, size, }: MentionBadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export default function MentionBadge({ className, count, location, size, formatLabel, }: MentionBadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
22
24
|
//# sourceMappingURL=MentionBadge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentionBadge.d.ts","sourceRoot":"","sources":["../../../src/components/mention-badge/MentionBadge.tsx"],"names":[],"mappings":"AAGA,oEAAoE;AACpE,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,WAAW,GACX,aAAa,GACb,SAAS,CAAC;AAEd,gCAAgC;AAChC,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,iDAAiD;IACjD,IAAI,CAAC,EAAE,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"MentionBadge.d.ts","sourceRoot":"","sources":["../../../src/components/mention-badge/MentionBadge.tsx"],"names":[],"mappings":"AAGA,oEAAoE;AACpE,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,WAAW,GACX,aAAa,GACb,SAAS,CAAC;AAEd,gCAAgC;AAChC,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,iDAAiD;IACjD,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,sDAAsD;IACtD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAKD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,SAAc,EACd,KAAK,EACL,QAAoB,EACpB,IAAc,EACd,WAAuC,GACxC,EAAE,iBAAiB,2CAqBnB"}
|
|
@@ -1,29 +1,24 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { toKebab as
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { jsx as d } from "react/jsx-runtime";
|
|
2
|
+
import { toKebab as a } from "../../utils/string.js";
|
|
3
|
+
import t from "./MentionBadge.module.scss.js";
|
|
4
|
+
const b = (e) => `${e} mention${e === 1 ? "" : "s"}`;
|
|
5
|
+
function $({
|
|
6
|
+
className: e = "",
|
|
7
|
+
count: n,
|
|
8
|
+
location: i = "sidebar",
|
|
9
|
+
size: s = "small",
|
|
10
|
+
formatLabel: r = b
|
|
9
11
|
}) {
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
const o = n > 99 ? "99+" : String(n), l = o.length, m = [
|
|
13
|
+
t["mention-badge"],
|
|
14
|
+
t[`mention-badge--size-${a(s)}`],
|
|
15
|
+
t[`mention-badge--digits-${l}`],
|
|
16
|
+
i !== "sidebar" ? t[`mention-badge--location-${a(i)}`] : "",
|
|
17
|
+
e
|
|
16
18
|
].filter(Boolean).join(" ");
|
|
17
|
-
return /* @__PURE__ */ m(
|
|
18
|
-
"span",
|
|
19
|
-
{
|
|
20
|
-
className: l,
|
|
21
|
-
"aria-label": `${e} mention${e === 1 ? "" : "s"}`,
|
|
22
|
-
children: n
|
|
23
|
-
}
|
|
24
|
-
);
|
|
19
|
+
return /* @__PURE__ */ d("span", { className: m, "aria-label": r(n), children: o });
|
|
25
20
|
}
|
|
26
21
|
export {
|
|
27
|
-
|
|
22
|
+
$ as default
|
|
28
23
|
};
|
|
29
24
|
//# sourceMappingURL=MentionBadge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentionBadge.js","sources":["../../../src/components/mention-badge/MentionBadge.tsx"],"sourcesContent":["import { toKebab } from '@/utils/string';\nimport styles from './MentionBadge.module.scss';\n\n/** Figma Mention Badge location context — controls color scheme. */\nexport type MentionBadgeLocation =\n | 'sidebar'\n | 'menu-item'\n | 'icon-button'\n | 'channel';\n\n/** Figma Mention Badge size. */\nexport type MentionBadgeSize = 'small' | 'medium' | 'large';\n\nexport interface MentionBadgeProps {\n /** Optional CSS class name. */\n className?: string;\n /** Mention count. Displays as-is up to 99; shows \"99+\" above that. */\n count: number;\n /** Color context. Figma: Location. Default: Sidebar. */\n location?: MentionBadgeLocation;\n /** Size variant. Figma: Size. Default: Small. */\n size?: MentionBadgeSize;\n}\n\n/**\n * Mention Badges show a numerical count of pending mentions. They appear next to channel\n * names in the sidebar, on app-bar icons, inline in menu items, and on center-channel lists\n * such as thread rows — small, high-contrast pills that pull the eye without dominating the\n * row.\n */\nexport default function MentionBadge({\n className = '',\n count,\n location = 'sidebar',\n size = 'small',\n}: MentionBadgeProps) {\n const displayText = count > 99 ? '99+' : String(count);\n const digitCount = displayText.length; // 1, 2, or 3 (for \"99+\")\n\n const rootClass = [\n styles['mention-badge'],\n styles[`mention-badge--size-${toKebab(size)}`],\n styles[`mention-badge--digits-${digitCount}`],\n location !== 'sidebar'\n ? styles[`mention-badge--location-${toKebab(location)}`]\n : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <span
|
|
1
|
+
{"version":3,"file":"MentionBadge.js","sources":["../../../src/components/mention-badge/MentionBadge.tsx"],"sourcesContent":["import { toKebab } from '@/utils/string';\nimport styles from './MentionBadge.module.scss';\n\n/** Figma Mention Badge location context — controls color scheme. */\nexport type MentionBadgeLocation =\n | 'sidebar'\n | 'menu-item'\n | 'icon-button'\n | 'channel';\n\n/** Figma Mention Badge size. */\nexport type MentionBadgeSize = 'small' | 'medium' | 'large';\n\nexport interface MentionBadgeProps {\n /** Optional CSS class name. */\n className?: string;\n /** Mention count. Displays as-is up to 99; shows \"99+\" above that. */\n count: number;\n /** Color context. Figma: Location. Default: Sidebar. */\n location?: MentionBadgeLocation;\n /** Size variant. Figma: Size. Default: Small. */\n size?: MentionBadgeSize;\n /** Accessible name. Default: `{count} mention(s)`. */\n formatLabel?: (count: number) => string;\n}\n\nconst defaultFormatMentionLabel = (count: number) =>\n `${count} mention${count === 1 ? '' : 's'}`;\n\n/**\n * Mention Badges show a numerical count of pending mentions. They appear next to channel\n * names in the sidebar, on app-bar icons, inline in menu items, and on center-channel lists\n * such as thread rows — small, high-contrast pills that pull the eye without dominating the\n * row.\n */\nexport default function MentionBadge({\n className = '',\n count,\n location = 'sidebar',\n size = 'small',\n formatLabel = defaultFormatMentionLabel,\n}: MentionBadgeProps) {\n const displayText = count > 99 ? '99+' : String(count);\n const digitCount = displayText.length; // 1, 2, or 3 (for \"99+\")\n\n const rootClass = [\n styles['mention-badge'],\n styles[`mention-badge--size-${toKebab(size)}`],\n styles[`mention-badge--digits-${digitCount}`],\n location !== 'sidebar'\n ? styles[`mention-badge--location-${toKebab(location)}`]\n : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <span className={rootClass} aria-label={formatLabel(count)}>\n {displayText}\n </span>\n );\n}\n"],"names":["defaultFormatMentionLabel","count","MentionBadge","className","location","size","formatLabel","displayText","digitCount","rootClass","styles","toKebab","jsx"],"mappings":";;;AA0BA,MAAMA,IAA4B,CAACC,MACjC,GAAGA,CAAK,WAAWA,MAAU,IAAI,KAAK,GAAG;AAQ3C,SAAwBC,EAAa;AAAA,EACnC,WAAAC,IAAY;AAAA,EACZ,OAAAF;AAAA,EACA,UAAAG,IAAW;AAAA,EACX,MAAAC,IAAO;AAAA,EACP,aAAAC,IAAcN;AAChB,GAAsB;AACpB,QAAMO,IAAcN,IAAQ,KAAK,QAAQ,OAAOA,CAAK,GAC/CO,IAAaD,EAAY,QAEzBE,IAAY;AAAA,IAChBC,EAAO,eAAe;AAAA,IACtBA,EAAO,uBAAuBC,EAAQN,CAAI,CAAC,EAAE;AAAA,IAC7CK,EAAO,yBAAyBF,CAAU,EAAE;AAAA,IAC5CJ,MAAa,YACTM,EAAO,2BAA2BC,EAAQP,CAAQ,CAAC,EAAE,IACrD;AAAA,IACJD;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAS,EAAC,UAAK,WAAWH,GAAW,cAAYH,EAAYL,CAAK,GACtD,UAAAM,EAAA,CACH;AAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuGroupHeading.cjs","sources":["../../../src/components/menu-group-heading/MenuGroupHeading.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport styles from './MenuGroupHeading.module.scss';\n\nexport interface MenuGroupHeadingProps extends HTMLAttributes<HTMLDivElement> {\n /** The section label text. Rendered in all-caps. */\n label:
|
|
1
|
+
{"version":3,"file":"MenuGroupHeading.cjs","sources":["../../../src/components/menu-group-heading/MenuGroupHeading.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\nimport styles from './MenuGroupHeading.module.scss';\n\nexport interface MenuGroupHeadingProps extends HTMLAttributes<HTMLDivElement> {\n /** The section label text. Rendered in all-caps. Accepts translated nodes (e.g. `<FormattedMessage/>`). */\n label: ReactNode;\n}\n\n/**\n * Menu Group Heading is an optional all-caps label that titles a grouped\n * section of Menu Items inside a dropdown or context menu.\n */\nexport default function MenuGroupHeading({\n label,\n className = '',\n ...rest\n}: MenuGroupHeadingProps) {\n return (\n <div\n className={[styles['menu-group-heading'], className]\n .filter(Boolean)\n .join(' ')}\n {...rest}\n >\n <span className={styles['menu-group-heading__label']}>{label}</span>\n </div>\n );\n}\n"],"names":["MenuGroupHeading","label","className","rest","jsx","styles"],"mappings":"iMAYA,SAAwBA,EAAiB,CACvC,MAAAC,EACA,UAAAC,EAAY,GACZ,GAAGC,CACL,EAA0B,CACxB,OACEC,EAAAA,IAAC,MAAA,CACC,UAAW,CAACC,UAAO,oBAAoB,EAAGH,CAAS,EAChD,OAAO,OAAO,EACd,KAAK,GAAG,EACV,GAAGC,EAEJ,eAAC,OAAA,CAAK,UAAWE,EAAAA,QAAO,2BAA2B,EAAI,SAAAJ,CAAA,CAAM,CAAA,CAAA,CAGnE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { HTMLAttributes } from 'react';
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
2
|
export interface MenuGroupHeadingProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
-
/** The section label text. Rendered in all-caps. */
|
|
4
|
-
label:
|
|
3
|
+
/** The section label text. Rendered in all-caps. Accepts translated nodes (e.g. `<FormattedMessage/>`). */
|
|
4
|
+
label: ReactNode;
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
7
|
* Menu Group Heading is an optional all-caps label that titles a grouped
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuGroupHeading.d.ts","sourceRoot":"","sources":["../../../src/components/menu-group-heading/MenuGroupHeading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MenuGroupHeading.d.ts","sourceRoot":"","sources":["../../../src/components/menu-group-heading/MenuGroupHeading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvD,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC3E,2GAA2G;IAC3G,KAAK,EAAE,SAAS,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,KAAK,EACL,SAAc,EACd,GAAG,IAAI,EACR,EAAE,qBAAqB,2CAWvB"}
|