@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.
Files changed (360) hide show
  1. package/README.md +15 -3
  2. package/dist/compass-ui-standalone.css +270 -276
  3. package/dist/compass-ui.css +293 -290
  4. package/dist/components/action-button/ActionButton.cjs.map +1 -1
  5. package/dist/components/action-button/ActionButton.d.ts +2 -1
  6. package/dist/components/action-button/ActionButton.d.ts.map +1 -1
  7. package/dist/components/action-button/ActionButton.js.map +1 -1
  8. package/dist/components/admin-console-header/AdminConsoleHeader.cjs.map +1 -1
  9. package/dist/components/admin-console-header/AdminConsoleHeader.d.ts +3 -1
  10. package/dist/components/admin-console-header/AdminConsoleHeader.d.ts.map +1 -1
  11. package/dist/components/admin-console-header/AdminConsoleHeader.js.map +1 -1
  12. package/dist/components/admin-panel/AdminPanel.cjs +1 -1
  13. package/dist/components/admin-panel/AdminPanel.cjs.map +1 -1
  14. package/dist/components/admin-panel/AdminPanel.d.ts +13 -6
  15. package/dist/components/admin-panel/AdminPanel.d.ts.map +1 -1
  16. package/dist/components/admin-panel/AdminPanel.js +21 -15
  17. package/dist/components/admin-panel/AdminPanel.js.map +1 -1
  18. package/dist/components/admin-panel-footer/AdminPanelFooter.cjs.map +1 -1
  19. package/dist/components/admin-panel-footer/AdminPanelFooter.d.ts +8 -4
  20. package/dist/components/admin-panel-footer/AdminPanelFooter.d.ts.map +1 -1
  21. package/dist/components/admin-panel-footer/AdminPanelFooter.js.map +1 -1
  22. package/dist/components/admin-panel-header/AdminPanelHeader.cjs +1 -1
  23. package/dist/components/admin-panel-header/AdminPanelHeader.cjs.map +1 -1
  24. package/dist/components/admin-panel-header/AdminPanelHeader.css +1 -1
  25. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts +11 -4
  26. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts.map +1 -1
  27. package/dist/components/admin-panel-header/AdminPanelHeader.js +25 -23
  28. package/dist/components/admin-panel-header/AdminPanelHeader.js.map +1 -1
  29. package/dist/components/admin-panel-header/AdminPanelHeader.module.scss.cjs +1 -1
  30. package/dist/components/admin-panel-header/AdminPanelHeader.module.scss.js +10 -10
  31. package/dist/components/attachment-card/AttachmentCard.cjs +1 -1
  32. package/dist/components/attachment-card/AttachmentCard.cjs.map +1 -1
  33. package/dist/components/attachment-card/AttachmentCard.d.ts +18 -5
  34. package/dist/components/attachment-card/AttachmentCard.d.ts.map +1 -1
  35. package/dist/components/attachment-card/AttachmentCard.js +85 -79
  36. package/dist/components/attachment-card/AttachmentCard.js.map +1 -1
  37. package/dist/components/card-button/CardButton.css +1 -1
  38. package/dist/components/card-button/CardButton.module.scss.cjs +1 -1
  39. package/dist/components/card-button/CardButton.module.scss.js +7 -7
  40. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.cjs +1 -1
  41. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.cjs.map +1 -1
  42. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.d.ts +5 -4
  43. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.d.ts.map +1 -1
  44. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.js +7 -7
  45. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.js.map +1 -1
  46. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs +1 -1
  47. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs.map +1 -1
  48. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts +10 -4
  49. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts.map +1 -1
  50. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js +64 -60
  51. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js.map +1 -1
  52. package/dist/components/chip/Chip.cjs.map +1 -1
  53. package/dist/components/chip/Chip.css +1 -1
  54. package/dist/components/chip/Chip.d.ts +4 -0
  55. package/dist/components/chip/Chip.d.ts.map +1 -1
  56. package/dist/components/chip/Chip.js.map +1 -1
  57. package/dist/components/chip/Chip.module.scss.cjs +1 -1
  58. package/dist/components/chip/Chip.module.scss.js +11 -11
  59. package/dist/components/combobox/Combobox.cjs +1 -1
  60. package/dist/components/combobox/Combobox.cjs.map +1 -1
  61. package/dist/components/combobox/Combobox.css +1 -1
  62. package/dist/components/combobox/Combobox.d.ts +24 -1
  63. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  64. package/dist/components/combobox/Combobox.js +307 -271
  65. package/dist/components/combobox/Combobox.js.map +1 -1
  66. package/dist/components/combobox/Combobox.module.scss.cjs +1 -1
  67. package/dist/components/combobox/Combobox.module.scss.js +28 -26
  68. package/dist/components/combobox/Combobox.module.scss.js.map +1 -1
  69. package/dist/components/date-range-picker/DateRangePicker.cjs +1 -1
  70. package/dist/components/date-range-picker/DateRangePicker.cjs.map +1 -1
  71. package/dist/components/date-range-picker/DateRangePicker.css +1 -1
  72. package/dist/components/date-range-picker/DateRangePicker.d.ts +18 -2
  73. package/dist/components/date-range-picker/DateRangePicker.d.ts.map +1 -1
  74. package/dist/components/date-range-picker/DateRangePicker.js +134 -126
  75. package/dist/components/date-range-picker/DateRangePicker.js.map +1 -1
  76. package/dist/components/date-range-picker/DateRangePicker.module.scss.cjs +1 -1
  77. package/dist/components/date-range-picker/DateRangePicker.module.scss.js +26 -26
  78. package/dist/components/emoji-popover/EmojiPopover.cjs +1 -1
  79. package/dist/components/emoji-popover/EmojiPopover.cjs.map +1 -1
  80. package/dist/components/emoji-popover/EmojiPopover.d.ts +25 -4
  81. package/dist/components/emoji-popover/EmojiPopover.d.ts.map +1 -1
  82. package/dist/components/emoji-popover/EmojiPopover.js +84 -73
  83. package/dist/components/emoji-popover/EmojiPopover.js.map +1 -1
  84. package/dist/components/empty-state/EmptyState.cjs +1 -1
  85. package/dist/components/empty-state/EmptyState.cjs.map +1 -1
  86. package/dist/components/empty-state/EmptyState.d.ts +3 -3
  87. package/dist/components/empty-state/EmptyState.d.ts.map +1 -1
  88. package/dist/components/empty-state/EmptyState.js +11 -9
  89. package/dist/components/empty-state/EmptyState.js.map +1 -1
  90. package/dist/components/error-message/ErrorMessage.cjs +1 -1
  91. package/dist/components/error-message/ErrorMessage.cjs.map +1 -1
  92. package/dist/components/error-message/ErrorMessage.d.ts +3 -3
  93. package/dist/components/error-message/ErrorMessage.d.ts.map +1 -1
  94. package/dist/components/error-message/ErrorMessage.js +10 -9
  95. package/dist/components/error-message/ErrorMessage.js.map +1 -1
  96. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.cjs.map +1 -1
  97. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.d.ts +7 -6
  98. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.d.ts.map +1 -1
  99. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.js.map +1 -1
  100. package/dist/components/global-banner/GlobalBanner.cjs +1 -1
  101. package/dist/components/global-banner/GlobalBanner.cjs.map +1 -1
  102. package/dist/components/global-banner/GlobalBanner.d.ts +10 -5
  103. package/dist/components/global-banner/GlobalBanner.d.ts.map +1 -1
  104. package/dist/components/global-banner/GlobalBanner.js +33 -26
  105. package/dist/components/global-banner/GlobalBanner.js.map +1 -1
  106. package/dist/components/icon-button/IconButton.css +1 -1
  107. package/dist/components/icon-button/IconButton.module.scss.cjs +1 -1
  108. package/dist/components/icon-button/IconButton.module.scss.js +15 -15
  109. package/dist/components/image-preview/ImagePreview.cjs +1 -1
  110. package/dist/components/image-preview/ImagePreview.cjs.map +1 -1
  111. package/dist/components/image-preview/ImagePreview.css +1 -1
  112. package/dist/components/image-preview/ImagePreview.d.ts +12 -1
  113. package/dist/components/image-preview/ImagePreview.d.ts.map +1 -1
  114. package/dist/components/image-preview/ImagePreview.js +25 -20
  115. package/dist/components/image-preview/ImagePreview.js.map +1 -1
  116. package/dist/components/image-preview/ImagePreview.module.scss.cjs +1 -1
  117. package/dist/components/image-preview/ImagePreview.module.scss.js +15 -15
  118. package/dist/components/link-preview/LinkPreview.cjs +1 -1
  119. package/dist/components/link-preview/LinkPreview.cjs.map +1 -1
  120. package/dist/components/link-preview/LinkPreview.d.ts +12 -6
  121. package/dist/components/link-preview/LinkPreview.d.ts.map +1 -1
  122. package/dist/components/link-preview/LinkPreview.js +19 -16
  123. package/dist/components/link-preview/LinkPreview.js.map +1 -1
  124. package/dist/components/mention-badge/MentionBadge.cjs +1 -1
  125. package/dist/components/mention-badge/MentionBadge.cjs.map +1 -1
  126. package/dist/components/mention-badge/MentionBadge.d.ts +3 -1
  127. package/dist/components/mention-badge/MentionBadge.d.ts.map +1 -1
  128. package/dist/components/mention-badge/MentionBadge.js +18 -23
  129. package/dist/components/mention-badge/MentionBadge.js.map +1 -1
  130. package/dist/components/menu-group-heading/MenuGroupHeading.cjs.map +1 -1
  131. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts +3 -3
  132. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts.map +1 -1
  133. package/dist/components/menu-group-heading/MenuGroupHeading.js.map +1 -1
  134. package/dist/components/menu-item/MenuItem.cjs +1 -1
  135. package/dist/components/menu-item/MenuItem.cjs.map +1 -1
  136. package/dist/components/menu-item/MenuItem.d.ts +2 -0
  137. package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
  138. package/dist/components/menu-item/MenuItem.js +29 -28
  139. package/dist/components/menu-item/MenuItem.js.map +1 -1
  140. package/dist/components/message-actions/MessageActions.cjs +1 -1
  141. package/dist/components/message-actions/MessageActions.cjs.map +1 -1
  142. package/dist/components/message-actions/MessageActions.d.ts +26 -2
  143. package/dist/components/message-actions/MessageActions.d.ts.map +1 -1
  144. package/dist/components/message-actions/MessageActions.js +67 -55
  145. package/dist/components/message-actions/MessageActions.js.map +1 -1
  146. package/dist/components/message-header/MessageHeader.cjs.map +1 -1
  147. package/dist/components/message-header/MessageHeader.d.ts +5 -3
  148. package/dist/components/message-header/MessageHeader.d.ts.map +1 -1
  149. package/dist/components/message-header/MessageHeader.js.map +1 -1
  150. package/dist/components/message-separator/MessageSeparator.cjs +1 -1
  151. package/dist/components/message-separator/MessageSeparator.cjs.map +1 -1
  152. package/dist/components/message-separator/MessageSeparator.d.ts +8 -4
  153. package/dist/components/message-separator/MessageSeparator.d.ts.map +1 -1
  154. package/dist/components/message-separator/MessageSeparator.js +16 -14
  155. package/dist/components/message-separator/MessageSeparator.js.map +1 -1
  156. package/dist/components/modal/Modal.cjs +1 -1
  157. package/dist/components/modal/Modal.cjs.map +1 -1
  158. package/dist/components/modal/Modal.d.ts +17 -3
  159. package/dist/components/modal/Modal.d.ts.map +1 -1
  160. package/dist/components/modal/Modal.js +38 -26
  161. package/dist/components/modal/Modal.js.map +1 -1
  162. package/dist/components/modal-header/ModalHeader.cjs +1 -1
  163. package/dist/components/modal-header/ModalHeader.cjs.map +1 -1
  164. package/dist/components/modal-header/ModalHeader.css +1 -1
  165. package/dist/components/modal-header/ModalHeader.d.ts +16 -1
  166. package/dist/components/modal-header/ModalHeader.d.ts.map +1 -1
  167. package/dist/components/modal-header/ModalHeader.js +72 -57
  168. package/dist/components/modal-header/ModalHeader.js.map +1 -1
  169. package/dist/components/modal-header/ModalHeader.module.scss.cjs +1 -1
  170. package/dist/components/modal-header/ModalHeader.module.scss.js +15 -13
  171. package/dist/components/modal-header/ModalHeader.module.scss.js.map +1 -1
  172. package/dist/components/more-unreads-banner/MoreUnreadsBanner.cjs +1 -1
  173. package/dist/components/more-unreads-banner/MoreUnreadsBanner.cjs.map +1 -1
  174. package/dist/components/more-unreads-banner/MoreUnreadsBanner.d.ts +4 -1
  175. package/dist/components/more-unreads-banner/MoreUnreadsBanner.d.ts.map +1 -1
  176. package/dist/components/more-unreads-banner/MoreUnreadsBanner.js +11 -10
  177. package/dist/components/more-unreads-banner/MoreUnreadsBanner.js.map +1 -1
  178. package/dist/components/new-message-banner/NewMessageBanner.cjs +1 -1
  179. package/dist/components/new-message-banner/NewMessageBanner.cjs.map +1 -1
  180. package/dist/components/new-message-banner/NewMessageBanner.d.ts +15 -3
  181. package/dist/components/new-message-banner/NewMessageBanner.d.ts.map +1 -1
  182. package/dist/components/new-message-banner/NewMessageBanner.js +30 -22
  183. package/dist/components/new-message-banner/NewMessageBanner.js.map +1 -1
  184. package/dist/components/pagination-dots/PaginationDots.cjs +1 -1
  185. package/dist/components/pagination-dots/PaginationDots.cjs.map +1 -1
  186. package/dist/components/pagination-dots/PaginationDots.css +1 -1
  187. package/dist/components/pagination-dots/PaginationDots.d.ts +5 -1
  188. package/dist/components/pagination-dots/PaginationDots.d.ts.map +1 -1
  189. package/dist/components/pagination-dots/PaginationDots.js +22 -19
  190. package/dist/components/pagination-dots/PaginationDots.js.map +1 -1
  191. package/dist/components/pagination-dots/PaginationDots.module.scss.cjs +1 -1
  192. package/dist/components/pagination-dots/PaginationDots.module.scss.js +10 -10
  193. package/dist/components/permalink-preview/PermalinkPreview.cjs +1 -1
  194. package/dist/components/permalink-preview/PermalinkPreview.cjs.map +1 -1
  195. package/dist/components/permalink-preview/PermalinkPreview.d.ts +16 -5
  196. package/dist/components/permalink-preview/PermalinkPreview.d.ts.map +1 -1
  197. package/dist/components/permalink-preview/PermalinkPreview.js +39 -35
  198. package/dist/components/permalink-preview/PermalinkPreview.js.map +1 -1
  199. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.cjs +1 -1
  200. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.cjs.map +1 -1
  201. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.d.ts +8 -1
  202. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.d.ts.map +1 -1
  203. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.js +20 -17
  204. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.js.map +1 -1
  205. package/dist/components/popover-notice/PopoverNotice.cjs +1 -1
  206. package/dist/components/popover-notice/PopoverNotice.cjs.map +1 -1
  207. package/dist/components/popover-notice/PopoverNotice.d.ts +13 -5
  208. package/dist/components/popover-notice/PopoverNotice.d.ts.map +1 -1
  209. package/dist/components/popover-notice/PopoverNotice.js +58 -48
  210. package/dist/components/popover-notice/PopoverNotice.js.map +1 -1
  211. package/dist/components/profile-popover/ProfilePopover.cjs +1 -1
  212. package/dist/components/profile-popover/ProfilePopover.cjs.map +1 -1
  213. package/dist/components/profile-popover/ProfilePopover.d.ts +34 -12
  214. package/dist/components/profile-popover/ProfilePopover.d.ts.map +1 -1
  215. package/dist/components/profile-popover/ProfilePopover.js +122 -106
  216. package/dist/components/profile-popover/ProfilePopover.js.map +1 -1
  217. package/dist/components/progress-bar/ProgressBar.cjs +1 -1
  218. package/dist/components/progress-bar/ProgressBar.cjs.map +1 -1
  219. package/dist/components/progress-bar/ProgressBar.d.ts +4 -3
  220. package/dist/components/progress-bar/ProgressBar.d.ts.map +1 -1
  221. package/dist/components/progress-bar/ProgressBar.js +9 -7
  222. package/dist/components/progress-bar/ProgressBar.js.map +1 -1
  223. package/dist/components/radio/Radio.css +1 -1
  224. package/dist/components/radio/Radio.module.scss.cjs +1 -1
  225. package/dist/components/radio/Radio.module.scss.js +12 -12
  226. package/dist/components/reaction-button/ReactionButton.cjs +1 -1
  227. package/dist/components/reaction-button/ReactionButton.cjs.map +1 -1
  228. package/dist/components/reaction-button/ReactionButton.d.ts +3 -1
  229. package/dist/components/reaction-button/ReactionButton.d.ts.map +1 -1
  230. package/dist/components/reaction-button/ReactionButton.js +20 -18
  231. package/dist/components/reaction-button/ReactionButton.js.map +1 -1
  232. package/dist/components/reactions-row/ReactionsRow.cjs +1 -1
  233. package/dist/components/reactions-row/ReactionsRow.cjs.map +1 -1
  234. package/dist/components/reactions-row/ReactionsRow.d.ts +10 -2
  235. package/dist/components/reactions-row/ReactionsRow.d.ts.map +1 -1
  236. package/dist/components/reactions-row/ReactionsRow.js +33 -28
  237. package/dist/components/reactions-row/ReactionsRow.js.map +1 -1
  238. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs +1 -1
  239. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs.map +1 -1
  240. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts +15 -7
  241. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts.map +1 -1
  242. package/dist/components/right-sidebar-header/RightSidebarHeader.js +23 -19
  243. package/dist/components/right-sidebar-header/RightSidebarHeader.js.map +1 -1
  244. package/dist/components/scrollbar/Scrollbar.cjs +1 -1
  245. package/dist/components/scrollbar/Scrollbar.cjs.map +1 -1
  246. package/dist/components/scrollbar/Scrollbar.css +1 -1
  247. package/dist/components/scrollbar/Scrollbar.d.ts +2 -2
  248. package/dist/components/scrollbar/Scrollbar.d.ts.map +1 -1
  249. package/dist/components/scrollbar/Scrollbar.js +24 -15
  250. package/dist/components/scrollbar/Scrollbar.js.map +1 -1
  251. package/dist/components/scrollbar/Scrollbar.module.scss.cjs +1 -1
  252. package/dist/components/scrollbar/Scrollbar.module.scss.js +4 -4
  253. package/dist/components/scrollbar/simplebar-vendor.css +1 -0
  254. package/dist/components/search-input/SearchInput.cjs +1 -1
  255. package/dist/components/search-input/SearchInput.cjs.map +1 -1
  256. package/dist/components/search-input/SearchInput.d.ts +5 -0
  257. package/dist/components/search-input/SearchInput.d.ts.map +1 -1
  258. package/dist/components/search-input/SearchInput.js +92 -85
  259. package/dist/components/search-input/SearchInput.js.map +1 -1
  260. package/dist/components/search-tip-banner/SearchTipBanner.cjs +1 -1
  261. package/dist/components/search-tip-banner/SearchTipBanner.cjs.map +1 -1
  262. package/dist/components/search-tip-banner/SearchTipBanner.d.ts +8 -5
  263. package/dist/components/search-tip-banner/SearchTipBanner.d.ts.map +1 -1
  264. package/dist/components/search-tip-banner/SearchTipBanner.js +17 -16
  265. package/dist/components/search-tip-banner/SearchTipBanner.js.map +1 -1
  266. package/dist/components/section-notice/SectionNotice.cjs +1 -1
  267. package/dist/components/section-notice/SectionNotice.cjs.map +1 -1
  268. package/dist/components/section-notice/SectionNotice.d.ts +16 -3
  269. package/dist/components/section-notice/SectionNotice.d.ts.map +1 -1
  270. package/dist/components/section-notice/SectionNotice.js +64 -48
  271. package/dist/components/section-notice/SectionNotice.js.map +1 -1
  272. package/dist/components/select/Select.cjs +1 -1
  273. package/dist/components/select/Select.cjs.map +1 -1
  274. package/dist/components/select/Select.d.ts +8 -1
  275. package/dist/components/select/Select.d.ts.map +1 -1
  276. package/dist/components/select/Select.js +81 -79
  277. package/dist/components/select/Select.js.map +1 -1
  278. package/dist/components/spinner/Spinner.cjs.map +1 -1
  279. package/dist/components/spinner/Spinner.css +1 -1
  280. package/dist/components/spinner/Spinner.d.ts +1 -0
  281. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  282. package/dist/components/spinner/Spinner.js.map +1 -1
  283. package/dist/components/spinner/Spinner.module.scss.cjs +1 -1
  284. package/dist/components/spinner/Spinner.module.scss.js +5 -5
  285. package/dist/components/status-badge/StatusBadge.css +1 -1
  286. package/dist/components/status-badge/StatusBadge.module.scss.cjs +1 -1
  287. package/dist/components/status-badge/StatusBadge.module.scss.js +11 -11
  288. package/dist/components/switch/Switch.css +1 -1
  289. package/dist/components/switch/Switch.module.scss.cjs +1 -1
  290. package/dist/components/switch/Switch.module.scss.js +14 -14
  291. package/dist/components/tabs/Tabs.cjs +1 -1
  292. package/dist/components/tabs/Tabs.cjs.map +1 -1
  293. package/dist/components/tabs/Tabs.css +1 -1
  294. package/dist/components/tabs/Tabs.d.ts +11 -3
  295. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  296. package/dist/components/tabs/Tabs.js +56 -53
  297. package/dist/components/tabs/Tabs.js.map +1 -1
  298. package/dist/components/tabs/Tabs.module.scss.cjs +1 -1
  299. package/dist/components/tabs/Tabs.module.scss.js +9 -9
  300. package/dist/components/tag/Tag.cjs +1 -1
  301. package/dist/components/tag/Tag.cjs.map +1 -1
  302. package/dist/components/tag/Tag.d.ts +3 -3
  303. package/dist/components/tag/Tag.d.ts.map +1 -1
  304. package/dist/components/tag/Tag.js +12 -11
  305. package/dist/components/tag/Tag.js.map +1 -1
  306. package/dist/components/thread-footer/ThreadFooter.cjs +1 -1
  307. package/dist/components/thread-footer/ThreadFooter.cjs.map +1 -1
  308. package/dist/components/thread-footer/ThreadFooter.css +1 -1
  309. package/dist/components/thread-footer/ThreadFooter.d.ts +19 -3
  310. package/dist/components/thread-footer/ThreadFooter.d.ts.map +1 -1
  311. package/dist/components/thread-footer/ThreadFooter.js +53 -48
  312. package/dist/components/thread-footer/ThreadFooter.js.map +1 -1
  313. package/dist/components/thread-footer/ThreadFooter.module.scss.cjs +1 -1
  314. package/dist/components/thread-footer/ThreadFooter.module.scss.js +18 -18
  315. package/dist/components/thread-list-item/ThreadListItem.cjs +1 -1
  316. package/dist/components/thread-list-item/ThreadListItem.cjs.map +1 -1
  317. package/dist/components/thread-list-item/ThreadListItem.d.ts +15 -7
  318. package/dist/components/thread-list-item/ThreadListItem.d.ts.map +1 -1
  319. package/dist/components/thread-list-item/ThreadListItem.js +66 -62
  320. package/dist/components/thread-list-item/ThreadListItem.js.map +1 -1
  321. package/dist/components/toast/Toast.cjs +1 -1
  322. package/dist/components/toast/Toast.cjs.map +1 -1
  323. package/dist/components/toast/Toast.d.ts +8 -3
  324. package/dist/components/toast/Toast.d.ts.map +1 -1
  325. package/dist/components/toast/Toast.js +47 -39
  326. package/dist/components/toast/Toast.js.map +1 -1
  327. package/dist/components/tour-point/TourPoint.cjs +1 -1
  328. package/dist/components/tour-point/TourPoint.cjs.map +1 -1
  329. package/dist/components/tour-point/TourPoint.css +1 -1
  330. package/dist/components/tour-point/TourPoint.d.ts +19 -5
  331. package/dist/components/tour-point/TourPoint.d.ts.map +1 -1
  332. package/dist/components/tour-point/TourPoint.js +66 -54
  333. package/dist/components/tour-point/TourPoint.js.map +1 -1
  334. package/dist/components/tour-point/TourPoint.module.scss.cjs +1 -1
  335. package/dist/components/tour-point/TourPoint.module.scss.js +28 -28
  336. package/dist/components/unread-badge/UnreadBadge.css +1 -1
  337. package/dist/components/unread-badge/UnreadBadge.module.scss.cjs +1 -1
  338. package/dist/components/unread-badge/UnreadBadge.module.scss.js +5 -5
  339. package/dist/components/user-avatar/UserAvatar.css +1 -1
  340. package/dist/components/user-avatar/UserAvatar.module.scss.cjs +1 -1
  341. package/dist/components/user-avatar/UserAvatar.module.scss.js +26 -26
  342. package/dist/components/user-avatar-group/UserAvatarGroup.cjs +1 -1
  343. package/dist/components/user-avatar-group/UserAvatarGroup.cjs.map +1 -1
  344. package/dist/components/user-avatar-group/UserAvatarGroup.css +1 -1
  345. package/dist/components/user-avatar-group/UserAvatarGroup.d.ts +8 -1
  346. package/dist/components/user-avatar-group/UserAvatarGroup.d.ts.map +1 -1
  347. package/dist/components/user-avatar-group/UserAvatarGroup.js +22 -18
  348. package/dist/components/user-avatar-group/UserAvatarGroup.js.map +1 -1
  349. package/dist/components/user-avatar-group/UserAvatarGroup.module.scss.cjs +1 -1
  350. package/dist/components/user-avatar-group/UserAvatarGroup.module.scss.js +14 -14
  351. package/dist/index.d.ts +1 -0
  352. package/dist/index.d.ts.map +1 -1
  353. package/dist/utils/props.cjs +2 -0
  354. package/dist/utils/props.cjs.map +1 -0
  355. package/dist/utils/props.d.ts +13 -0
  356. package/dist/utils/props.d.ts.map +1 -0
  357. package/dist/utils/props.js +7 -0
  358. package/dist/utils/props.js.map +1 -0
  359. package/package.json +1 -6
  360. package/dist/node_modules/simplebar-react/dist/simplebar.min.css +0 -1
@@ -1,66 +1,70 @@
1
- import { jsxs as s, jsx as t } from "react/jsx-runtime";
2
- import __b from "@mattermost/compass-icons/components/dots-horizontal.js";const b=__b&&__b.default?__b.default:__b;
3
- import x from "../icon/Icon.js";
4
- import B from "../icon-button/IconButton.js";
5
- import D from "../tag/Tag.js";
6
- import E from "../mention-badge/MentionBadge.js";
7
- import j from "../unread-badge/UnreadBadge.js";
8
- import z from "../user-avatar-group/UserAvatarGroup.js";
1
+ import { jsxs as r, jsx as t } from "react/jsx-runtime";
2
+ import __E from "@mattermost/compass-icons/components/dots-horizontal.js";const E=__E&&__E.default?__E.default:__E;
3
+ import M from "../icon/Icon.js";
4
+ import j from "../icon-button/IconButton.js";
5
+ import z from "../tag/Tag.js";
6
+ import P from "../mention-badge/MentionBadge.js";
7
+ import S from "../unread-badge/UnreadBadge.js";
8
+ import L from "../user-avatar-group/UserAvatarGroup.js";
9
9
  import e from "./ThreadListItem.module.scss.js";
10
- const M = [
10
+ const F = [
11
11
  { key: "leonard", name: "Leonard Riley" },
12
12
  { key: "aiko", name: "Aiko Tan" },
13
13
  { key: "arjun", name: "Arjun Patel" },
14
14
  { key: "marco", name: "Marco Rinaldi" },
15
15
  { key: "sofia", name: "Sofia Bauer" }
16
- ];
17
- function q({
18
- active: l = !1,
19
- badge: r = "none",
20
- mentionCount: d = 1,
21
- authorName: N = "Martin Kraft",
22
- channelLabel: v = "ENTERPRISE TEAM",
16
+ ], K = (i) => i === 1 ? "1 reply" : `${i} replies`, U = (i) => `${i} mention${i === 1 ? "" : "s"}`;
17
+ function X({
18
+ active: i = !1,
19
+ badge: n = "none",
20
+ mentionCount: o = 1,
21
+ authorName: u = "Martin Kraft",
22
+ channelLabel: N = "ENTERPRISE TEAM",
23
23
  previewText: f = "Do we have a guideline for what minimum width we should support in the system console? I know that…",
24
- timestamp: y = "5 mins ago",
25
- replyCount: o = 3,
26
- participants: m,
27
- threadTitle: c,
24
+ timestamp: v = "5 mins ago",
25
+ replyCount: y = 3,
26
+ participants: d,
27
+ threadTitle: m,
28
28
  className: g = "",
29
29
  onClick: a,
30
- onMenuClick: h
30
+ onMenuClick: c,
31
+ formatReplyCount: w = K,
32
+ formatMentionLabel: A = U,
33
+ unreadLabel: I = "unread",
34
+ menuLabel: T = "Thread actions"
31
35
  }) {
32
- const _ = m === void 0 ? M : m, w = _.length > 0, p = !l && (r === "unread" || r === "mention"), A = o === 1 ? "1 reply" : `${o} replies`, I = [
36
+ const h = d === void 0 ? F : d, R = h.length > 0, _ = !i && (n === "unread" || n === "mention"), b = w(y), x = [
33
37
  e["thread-list-item"],
34
- l ? e["thread-list-item--active"] : "",
38
+ i ? e["thread-list-item--active"] : "",
35
39
  g
36
- ].filter(Boolean).join(" "), u = r === "mention" ? `${d} mention${d === 1 ? "" : "s"}` : r === "unread" ? "unread" : void 0, T = (i) => {
37
- const n = window.getSelection();
38
- (n == null ? void 0 : n.type) === "Range" && n.toString().length > 0 && i.currentTarget.contains(
39
- n.getRangeAt(0).commonAncestorContainer
40
+ ].filter(Boolean).join(" "), p = n === "mention" ? A(o) : n === "unread" ? I : void 0, B = (s) => {
41
+ const l = window.getSelection();
42
+ (l == null ? void 0 : l.type) === "Range" && l.toString().length > 0 && s.currentTarget.contains(
43
+ l.getRangeAt(0).commonAncestorContainer
40
44
  ) || a == null || a();
41
- }, R = (i) => {
42
- i.key !== "Enter" && i.key !== " " || (i.preventDefault(), a == null || a());
45
+ }, D = (s) => {
46
+ s.key !== "Enter" && s.key !== " " || (s.preventDefault(), a == null || a());
43
47
  };
44
- return /* @__PURE__ */ s("div", { className: I, children: [
48
+ return /* @__PURE__ */ r("div", { className: x, children: [
45
49
  /* @__PURE__ */ t(
46
50
  "div",
47
51
  {
48
52
  className: e["thread-list-item__main"],
49
53
  role: a ? "button" : void 0,
50
54
  tabIndex: a ? 0 : void 0,
51
- onClick: a ? T : void 0,
52
- onKeyDown: a ? R : void 0,
53
- "aria-current": l ? !0 : void 0,
54
- children: /* @__PURE__ */ t("div", { className: e["thread-list-item__thread"], children: /* @__PURE__ */ s("div", { className: e["thread-list-item__container"], children: [
55
- /* @__PURE__ */ s("div", { className: e["thread-list-item__post-content"], children: [
56
- /* @__PURE__ */ s("div", { className: e["thread-list-item__gutter"], children: [
57
- p && r === "unread" && /* @__PURE__ */ t(
55
+ onClick: a ? B : void 0,
56
+ onKeyDown: a ? D : void 0,
57
+ "aria-current": i ? !0 : void 0,
58
+ children: /* @__PURE__ */ t("div", { className: e["thread-list-item__thread"], children: /* @__PURE__ */ r("div", { className: e["thread-list-item__container"], children: [
59
+ /* @__PURE__ */ r("div", { className: e["thread-list-item__post-content"], children: [
60
+ /* @__PURE__ */ r("div", { className: e["thread-list-item__gutter"], children: [
61
+ _ && n === "unread" && /* @__PURE__ */ t(
58
62
  "span",
59
63
  {
60
64
  className: e["thread-list-item__unread-gutter"],
61
65
  "aria-hidden": !0,
62
66
  children: /* @__PURE__ */ t(
63
- j,
67
+ S,
64
68
  {
65
69
  className: e["thread-list-item__unread-badge"],
66
70
  context: "icon-button"
@@ -68,15 +72,15 @@ function q({
68
72
  )
69
73
  }
70
74
  ),
71
- p && r === "mention" && /* @__PURE__ */ t(
75
+ _ && n === "mention" && /* @__PURE__ */ t(
72
76
  "span",
73
77
  {
74
78
  className: e["thread-list-item__mention-gutter"],
75
79
  "aria-hidden": !0,
76
80
  children: /* @__PURE__ */ t(
77
- E,
81
+ P,
78
82
  {
79
- count: d,
83
+ count: o,
80
84
  location: "channel",
81
85
  size: "medium"
82
86
  }
@@ -84,57 +88,57 @@ function q({
84
88
  }
85
89
  )
86
90
  ] }),
87
- /* @__PURE__ */ t("div", { className: e["thread-list-item__post-body"], children: /* @__PURE__ */ s("div", { className: e["thread-list-item__post-body-content"], children: [
88
- /* @__PURE__ */ s("div", { className: e["thread-list-item__name-row"], children: [
89
- /* @__PURE__ */ s("div", { className: e["thread-list-item__name-group"], children: [
90
- /* @__PURE__ */ t("span", { className: e["thread-list-item__author"], children: N }),
91
- /* @__PURE__ */ t(D, { casing: "all-caps", label: v }),
92
- u && /* @__PURE__ */ t(
91
+ /* @__PURE__ */ t("div", { className: e["thread-list-item__post-body"], children: /* @__PURE__ */ r("div", { className: e["thread-list-item__post-body-content"], children: [
92
+ /* @__PURE__ */ r("div", { className: e["thread-list-item__name-row"], children: [
93
+ /* @__PURE__ */ r("div", { className: e["thread-list-item__name-group"], children: [
94
+ /* @__PURE__ */ t("span", { className: e["thread-list-item__author"], children: u }),
95
+ /* @__PURE__ */ t(z, { casing: "all-caps", label: N }),
96
+ p && /* @__PURE__ */ t(
93
97
  "span",
94
98
  {
95
99
  className: e["thread-list-item__status-hint"],
96
- children: u
100
+ children: p
97
101
  }
98
102
  )
99
103
  ] }),
100
- /* @__PURE__ */ t("span", { className: e["thread-list-item__timestamp"], children: y })
104
+ /* @__PURE__ */ t("span", { className: e["thread-list-item__timestamp"], children: v })
101
105
  ] }),
102
- c != null && /* @__PURE__ */ t("div", { className: e["thread-list-item__title-row"], children: /* @__PURE__ */ t("p", { className: e["thread-list-item__title"], children: c }) }),
106
+ m != null && /* @__PURE__ */ t("div", { className: e["thread-list-item__title-row"], children: /* @__PURE__ */ t("p", { className: e["thread-list-item__title"], children: m }) }),
103
107
  /* @__PURE__ */ t("p", { className: e["thread-list-item__preview"], children: f })
104
108
  ] }) })
105
109
  ] }),
106
- /* @__PURE__ */ t("div", { className: e["thread-list-item__replies"], children: /* @__PURE__ */ s("div", { className: e["thread-list-item__replies-inner"], children: [
107
- w && /* @__PURE__ */ t(
108
- z,
110
+ /* @__PURE__ */ t("div", { className: e["thread-list-item__replies"], children: /* @__PURE__ */ r("div", { className: e["thread-list-item__replies-inner"], children: [
111
+ R && /* @__PURE__ */ t(
112
+ L,
109
113
  {
110
- avatars: _,
114
+ avatars: h,
111
115
  className: e["thread-list-item__avatar-group"],
112
116
  max: 3,
113
117
  size: "20"
114
118
  }
115
119
  ),
116
- /* @__PURE__ */ t("span", { className: e["thread-list-item__reply-count"], children: A })
120
+ /* @__PURE__ */ t("span", { className: e["thread-list-item__reply-count"], children: b })
117
121
  ] }) })
118
122
  ] }) })
119
123
  }
120
124
  ),
121
- h && /* @__PURE__ */ t("div", { className: e["thread-list-item__actions"], children: /* @__PURE__ */ t("span", { className: e["thread-list-item__menu-button"], children: /* @__PURE__ */ t(
122
- B,
125
+ c && /* @__PURE__ */ t("div", { className: e["thread-list-item__actions"], children: /* @__PURE__ */ t("span", { className: e["thread-list-item__menu-button"], children: /* @__PURE__ */ t(
126
+ j,
123
127
  {
124
- "aria-label": "Thread actions",
125
- icon: /* @__PURE__ */ t(x, { size: "16", glyph: /* @__PURE__ */ t(b, {}) }),
128
+ "aria-label": T,
129
+ icon: /* @__PURE__ */ t(M, { size: "16", glyph: /* @__PURE__ */ t(E, {}) }),
126
130
  padding: "compact",
127
131
  size: "small",
128
132
  style: "default",
129
133
  type: "button",
130
- onClick: (i) => {
131
- i.stopPropagation(), h(i);
134
+ onClick: (s) => {
135
+ s.stopPropagation(), c(s);
132
136
  }
133
137
  }
134
138
  ) }) })
135
139
  ] });
136
140
  }
137
141
  export {
138
- q as default
142
+ X as default
139
143
  };
140
144
  //# sourceMappingURL=ThreadListItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadListItem.js","sources":["../../../src/components/thread-list-item/ThreadListItem.tsx"],"sourcesContent":["import DotsHorizontalIcon from '@mattermost/compass-icons/components/dots-horizontal';\nimport type { KeyboardEvent, MouseEvent } from 'react';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Tag from '@/components/tag/Tag';\nimport MentionBadge from '../mention-badge/MentionBadge';\nimport UnreadBadge from '../unread-badge/UnreadBadge';\nimport UserAvatarGroup, {\n type UserAvatarGroupItem,\n} from '../user-avatar-group/UserAvatarGroup';\nimport styles from './ThreadListItem.module.scss';\n\nconst DEFAULT_PARTICIPANTS: UserAvatarGroupItem[] = [\n { key: 'leonard', name: 'Leonard Riley' },\n { key: 'aiko', name: 'Aiko Tan' },\n { key: 'arjun', name: 'Arjun Patel' },\n { key: 'marco', name: 'Marco Rinaldi' },\n { key: 'sofia', name: 'Sofia Bauer' },\n];\n\nexport interface ThreadListItemProps {\n /** Whether this item is the active/selected thread. */\n active?: boolean;\n /** Badge in the left gutter. Default: None. Hidden when `active` is true. */\n badge?: 'none' | 'unread' | 'mention';\n /** Shown when `badge` is Mention. Default: 1. */\n mentionCount?: number;\n /** Author name. */\n authorName?: string;\n /** Channel/team label. */\n channelLabel?: string;\n /** Message preview text. */\n previewText?: string;\n /** Timestamp label. */\n timestamp?: string;\n /** Number of replies. */\n replyCount?: number;\n /** Stacked avatars for recent participants. Pass `[]` to hide. When omitted, uses demo participants. */\n participants?: UserAvatarGroupItem[];\n /** Optional thread title. */\n threadTitle?: string;\n /** Optional CSS class name. */\n className?: string;\n /** Opens the thread. Sibling of the overflow menu for keyboard reachability. */\n onClick?: () => void;\n /** Thread overflow menu handler. */\n onMenuClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n}\n\n/**\n * The Thread List Item is a single entry in the Threads view. Each row gives the user enough\n * context — who, where, what, when — to decide whether to open the thread without opening\n * it.\n */\nexport default function ThreadListItem({\n active = false,\n badge = 'none',\n mentionCount = 1,\n authorName = 'Martin Kraft',\n channelLabel = 'ENTERPRISE TEAM',\n previewText = 'Do we have a guideline for what minimum width we should support in the system console? I know that…',\n timestamp = '5 mins ago',\n replyCount = 3,\n participants: participantsProp,\n threadTitle,\n className = '',\n onClick,\n onMenuClick,\n}: ThreadListItemProps) {\n const participants =\n participantsProp === undefined ? DEFAULT_PARTICIPANTS : participantsProp;\n const showParticipants = participants.length > 0;\n const showGutterBadge =\n !active && (badge === 'unread' || badge === 'mention');\n const replyLabel = replyCount === 1 ? '1 reply' : `${replyCount} replies`;\n\n const rootClass = [\n styles['thread-list-item'],\n active ? styles['thread-list-item--active'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const statusHint =\n badge === 'mention'\n ? `${mentionCount} mention${mentionCount === 1 ? '' : 's'}`\n : badge === 'unread'\n ? 'unread'\n : undefined;\n\n const handleMainClick = (event: MouseEvent<HTMLDivElement>) => {\n const selection = window.getSelection();\n if (\n selection?.type === 'Range' &&\n selection.toString().length > 0 &&\n event.currentTarget.contains(\n selection.getRangeAt(0).commonAncestorContainer,\n )\n ) {\n return;\n }\n onClick?.();\n };\n\n const handleMainKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key !== 'Enter' && event.key !== ' ') {\n return;\n }\n event.preventDefault();\n onClick?.();\n };\n\n return (\n <div className={rootClass}>\n <div\n className={styles['thread-list-item__main']}\n role={onClick ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n onClick={onClick ? handleMainClick : undefined}\n onKeyDown={onClick ? handleMainKeyDown : undefined}\n aria-current={active ? true : undefined}\n >\n <div className={styles['thread-list-item__thread']}>\n <div className={styles['thread-list-item__container']}>\n <div className={styles['thread-list-item__post-content']}>\n <div className={styles['thread-list-item__gutter']}>\n {showGutterBadge && badge === 'unread' && (\n <span\n className={styles['thread-list-item__unread-gutter']}\n aria-hidden\n >\n <UnreadBadge\n className={styles['thread-list-item__unread-badge']}\n context=\"icon-button\"\n />\n </span>\n )}\n {showGutterBadge && badge === 'mention' && (\n <span\n className={styles['thread-list-item__mention-gutter']}\n aria-hidden\n >\n <MentionBadge\n count={mentionCount}\n location=\"channel\"\n size=\"medium\"\n />\n </span>\n )}\n </div>\n <div className={styles['thread-list-item__post-body']}>\n <div className={styles['thread-list-item__post-body-content']}>\n <div className={styles['thread-list-item__name-row']}>\n <div className={styles['thread-list-item__name-group']}>\n <span className={styles['thread-list-item__author']}>\n {authorName}\n </span>\n <Tag casing=\"all-caps\" label={channelLabel} />\n {statusHint && (\n <span\n className={styles['thread-list-item__status-hint']}\n >\n {statusHint}\n </span>\n )}\n </div>\n <span className={styles['thread-list-item__timestamp']}>\n {timestamp}\n </span>\n </div>\n {threadTitle != null && (\n <div className={styles['thread-list-item__title-row']}>\n <p className={styles['thread-list-item__title']}>\n {threadTitle}\n </p>\n </div>\n )}\n <p className={styles['thread-list-item__preview']}>\n {previewText}\n </p>\n </div>\n </div>\n </div>\n <div className={styles['thread-list-item__replies']}>\n <div className={styles['thread-list-item__replies-inner']}>\n {showParticipants && (\n <UserAvatarGroup\n avatars={participants}\n className={styles['thread-list-item__avatar-group']}\n max={3}\n size=\"20\"\n />\n )}\n <span className={styles['thread-list-item__reply-count']}>\n {replyLabel}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n {onMenuClick && (\n <div className={styles['thread-list-item__actions']}>\n <span className={styles['thread-list-item__menu-button']}>\n <IconButton\n aria-label=\"Thread actions\"\n icon={<Icon size=\"16\" glyph={<DotsHorizontalIcon />} />}\n padding=\"compact\"\n size=\"small\"\n style=\"default\"\n type=\"button\"\n onClick={(event) => {\n event.stopPropagation();\n onMenuClick(event);\n }}\n />\n </span>\n </div>\n )}\n </div>\n );\n}\n"],"names":["DEFAULT_PARTICIPANTS","ThreadListItem","active","badge","mentionCount","authorName","channelLabel","previewText","timestamp","replyCount","participantsProp","threadTitle","className","onClick","onMenuClick","participants","showParticipants","showGutterBadge","replyLabel","rootClass","styles","statusHint","handleMainClick","event","selection","handleMainKeyDown","jsxs","jsx","UnreadBadge","MentionBadge","Tag","UserAvatarGroup","IconButton","Icon","DotsHorizontalIcon"],"mappings":"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"}
1
+ {"version":3,"file":"ThreadListItem.js","sources":["../../../src/components/thread-list-item/ThreadListItem.tsx"],"sourcesContent":["import DotsHorizontalIcon from '@mattermost/compass-icons/components/dots-horizontal';\nimport type { KeyboardEvent, MouseEvent, ReactNode } from 'react';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Tag from '@/components/tag/Tag';\nimport MentionBadge from '../mention-badge/MentionBadge';\nimport UnreadBadge from '../unread-badge/UnreadBadge';\nimport UserAvatarGroup, {\n type UserAvatarGroupItem,\n} from '../user-avatar-group/UserAvatarGroup';\nimport styles from './ThreadListItem.module.scss';\n\nconst DEFAULT_PARTICIPANTS: UserAvatarGroupItem[] = [\n { key: 'leonard', name: 'Leonard Riley' },\n { key: 'aiko', name: 'Aiko Tan' },\n { key: 'arjun', name: 'Arjun Patel' },\n { key: 'marco', name: 'Marco Rinaldi' },\n { key: 'sofia', name: 'Sofia Bauer' },\n];\n\nexport interface ThreadListItemProps {\n /** Whether this item is the active/selected thread. */\n active?: boolean;\n /** Badge in the left gutter. Default: None. Hidden when `active` is true. */\n badge?: 'none' | 'unread' | 'mention';\n /** Shown when `badge` is Mention. Default: 1. */\n mentionCount?: number;\n /** Author name. */\n authorName?: ReactNode;\n /** Channel/team label. */\n channelLabel?: ReactNode;\n /** Message preview text. */\n previewText?: ReactNode;\n /** Timestamp label. */\n timestamp?: ReactNode;\n /** Number of replies. */\n replyCount?: number;\n /** Stacked avatars for recent participants. Pass `[]` to hide. When omitted, uses demo participants. */\n participants?: UserAvatarGroupItem[];\n /** Optional thread title. */\n threadTitle?: ReactNode;\n /** Optional CSS class name. */\n className?: string;\n /** Opens the thread. Sibling of the overflow menu for keyboard reachability. */\n onClick?: () => void;\n /** Thread overflow menu handler. */\n onMenuClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n /** Visible reply count. Default: `1 reply` / `{count} replies`. */\n formatReplyCount?: (count: number) => ReactNode;\n /** Visually hidden mention hint. Default: `{count} mention(s)`. */\n formatMentionLabel?: (count: number) => ReactNode;\n /** Visually hidden unread hint. Default: \"unread\". */\n unreadLabel?: ReactNode;\n /** Accessible name for the overflow menu button. Default: \"Thread actions\". */\n menuLabel?: string;\n}\n\nconst defaultFormatReplies = (count: number) =>\n count === 1 ? '1 reply' : `${count} replies`;\nconst defaultFormatMentions = (count: number) =>\n `${count} mention${count === 1 ? '' : 's'}`;\n\n/**\n * The Thread List Item is a single entry in the Threads view. Each row gives the user enough\n * context — who, where, what, when — to decide whether to open the thread without opening\n * it.\n */\nexport default function ThreadListItem({\n active = false,\n badge = 'none',\n mentionCount = 1,\n authorName = 'Martin Kraft',\n channelLabel = 'ENTERPRISE TEAM',\n previewText = 'Do we have a guideline for what minimum width we should support in the system console? I know that…',\n timestamp = '5 mins ago',\n replyCount = 3,\n participants: participantsProp,\n threadTitle,\n className = '',\n onClick,\n onMenuClick,\n formatReplyCount = defaultFormatReplies,\n formatMentionLabel = defaultFormatMentions,\n unreadLabel = 'unread',\n menuLabel = 'Thread actions',\n}: ThreadListItemProps) {\n const participants =\n participantsProp === undefined ? DEFAULT_PARTICIPANTS : participantsProp;\n const showParticipants = participants.length > 0;\n const showGutterBadge =\n !active && (badge === 'unread' || badge === 'mention');\n const replyLabel = formatReplyCount(replyCount);\n\n const rootClass = [\n styles['thread-list-item'],\n active ? styles['thread-list-item--active'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const statusHint =\n badge === 'mention'\n ? formatMentionLabel(mentionCount)\n : badge === 'unread'\n ? unreadLabel\n : undefined;\n\n const handleMainClick = (event: MouseEvent<HTMLDivElement>) => {\n const selection = window.getSelection();\n if (\n selection?.type === 'Range' &&\n selection.toString().length > 0 &&\n event.currentTarget.contains(\n selection.getRangeAt(0).commonAncestorContainer,\n )\n ) {\n return;\n }\n onClick?.();\n };\n\n const handleMainKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key !== 'Enter' && event.key !== ' ') {\n return;\n }\n event.preventDefault();\n onClick?.();\n };\n\n return (\n <div className={rootClass}>\n <div\n className={styles['thread-list-item__main']}\n role={onClick ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n onClick={onClick ? handleMainClick : undefined}\n onKeyDown={onClick ? handleMainKeyDown : undefined}\n aria-current={active ? true : undefined}\n >\n <div className={styles['thread-list-item__thread']}>\n <div className={styles['thread-list-item__container']}>\n <div className={styles['thread-list-item__post-content']}>\n <div className={styles['thread-list-item__gutter']}>\n {showGutterBadge && badge === 'unread' && (\n <span\n className={styles['thread-list-item__unread-gutter']}\n aria-hidden\n >\n <UnreadBadge\n className={styles['thread-list-item__unread-badge']}\n context=\"icon-button\"\n />\n </span>\n )}\n {showGutterBadge && badge === 'mention' && (\n <span\n className={styles['thread-list-item__mention-gutter']}\n aria-hidden\n >\n <MentionBadge\n count={mentionCount}\n location=\"channel\"\n size=\"medium\"\n />\n </span>\n )}\n </div>\n <div className={styles['thread-list-item__post-body']}>\n <div className={styles['thread-list-item__post-body-content']}>\n <div className={styles['thread-list-item__name-row']}>\n <div className={styles['thread-list-item__name-group']}>\n <span className={styles['thread-list-item__author']}>\n {authorName}\n </span>\n <Tag casing=\"all-caps\" label={channelLabel} />\n {statusHint && (\n <span\n className={styles['thread-list-item__status-hint']}\n >\n {statusHint}\n </span>\n )}\n </div>\n <span className={styles['thread-list-item__timestamp']}>\n {timestamp}\n </span>\n </div>\n {threadTitle != null && (\n <div className={styles['thread-list-item__title-row']}>\n <p className={styles['thread-list-item__title']}>\n {threadTitle}\n </p>\n </div>\n )}\n <p className={styles['thread-list-item__preview']}>\n {previewText}\n </p>\n </div>\n </div>\n </div>\n <div className={styles['thread-list-item__replies']}>\n <div className={styles['thread-list-item__replies-inner']}>\n {showParticipants && (\n <UserAvatarGroup\n avatars={participants}\n className={styles['thread-list-item__avatar-group']}\n max={3}\n size=\"20\"\n />\n )}\n <span className={styles['thread-list-item__reply-count']}>\n {replyLabel}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n {onMenuClick && (\n <div className={styles['thread-list-item__actions']}>\n <span className={styles['thread-list-item__menu-button']}>\n <IconButton\n aria-label={menuLabel}\n icon={<Icon size=\"16\" glyph={<DotsHorizontalIcon />} />}\n padding=\"compact\"\n size=\"small\"\n style=\"default\"\n type=\"button\"\n onClick={(event) => {\n event.stopPropagation();\n onMenuClick(event);\n }}\n />\n </span>\n </div>\n )}\n </div>\n );\n}\n"],"names":["DEFAULT_PARTICIPANTS","defaultFormatReplies","count","defaultFormatMentions","ThreadListItem","active","badge","mentionCount","authorName","channelLabel","previewText","timestamp","replyCount","participantsProp","threadTitle","className","onClick","onMenuClick","formatReplyCount","formatMentionLabel","unreadLabel","menuLabel","participants","showParticipants","showGutterBadge","replyLabel","rootClass","styles","statusHint","handleMainClick","event","selection","handleMainKeyDown","jsxs","jsx","UnreadBadge","MentionBadge","Tag","UserAvatarGroup","IconButton","Icon","DotsHorizontalIcon"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),__o=require("@mattermost/compass-icons/components/alert-circle-outline.js"),o=__o?.default??__o,__x=require("@mattermost/compass-icons/components/alert-outline.js"),x=__x?.default??__x,__m=require("@mattermost/compass-icons/components/check.js"),m=__m?.default??__m,___=require("@mattermost/compass-icons/components/close.js"),_=___?.default??___,__h=require("@mattermost/compass-icons/components/information-outline.js"),h=__h?.default??__h,C=require("../button/Button.cjs"),a=require("../icon/Icon.cjs"),p=require("../icon-button/IconButton.cjs"),s=require("./Toast.module.scss.cjs"),q={general:e.jsx(o,{}),info:e.jsx(h,{}),success:e.jsx(m,{}),danger:e.jsx(x,{}),warning:e.jsx(o,{})};function I({className:r="",message:i,type:l="general",icon:c,actionLabel:n,onAction:u,onDismiss:t}){const d=s.default[`toast--type-${l.toLowerCase()}`],f=t==null?s.default["toast--no-dismiss"]:"",j=[s.default.toast,d,f,r].filter(Boolean).join(" ");return e.jsxs("div",{className:j,role:"status","aria-live":"polite",children:[e.jsxs("div",{className:s.default.toast__content,children:[e.jsx("span",{className:s.default.toast__icon,"aria-hidden":!0,children:e.jsx(a.IconSlotContext.Provider,{value:{size:"16"},children:c??e.jsx(a.default,{glyph:q[l]})})}),e.jsx("span",{className:s.default.toast__message,children:i}),n!=null&&e.jsx(C.default,{appearance:"default",emphasis:"tertiary",size:"x-small",className:s.default["toast__action-btn--on-dark"],onClick:u,children:n})]}),t!=null&&e.jsx(p.default,{"aria-label":"Dismiss",size:"small",className:s.default.toast__dismiss,icon:e.jsx(a.default,{glyph:e.jsx(_,{}),size:"16"}),onClick:t})]})}exports.default=I;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),__r=require("@mattermost/compass-icons/components/alert-circle-outline.js"),r=__r?.default??__r,__C=require("@mattermost/compass-icons/components/alert-outline.js"),C=__C?.default??__C,__h=require("@mattermost/compass-icons/components/check.js"),h=__h?.default??__h,__q=require("@mattermost/compass-icons/components/close.js"),q=__q?.default??__q,__g=require("@mattermost/compass-icons/components/information-outline.js"),g=__g?.default??__g,I=require("../button/Button.cjs"),l=require("../icon/Icon.cjs"),N=require("../icon-button/IconButton.cjs"),p=require("../../utils/props.cjs"),s=require("./Toast.module.scss.cjs"),v={general:e.jsx(r,{}),info:e.jsx(g,{}),success:e.jsx(h,{}),danger:e.jsx(C,{}),warning:e.jsx(r,{})};function y({className:c="",message:i,type:n="general",icon:u,actionLabel:o,onAction:d,onDismiss:a,dismissLabel:f="Dismiss",dismissButtonProps:t,...j}){const x=s.default[`toast--type-${n.toLowerCase()}`],m=a==null?s.default["toast--no-dismiss"]:"",_=[s.default.toast,x,m,c].filter(Boolean).join(" ");return e.jsxs("div",{...j,className:_,role:"status","aria-live":"polite",children:[e.jsxs("div",{className:s.default.toast__content,children:[e.jsx("span",{className:s.default.toast__icon,"aria-hidden":!0,children:e.jsx(l.IconSlotContext.Provider,{value:{size:"16"},children:u??e.jsx(l.default,{glyph:v[n]})})}),e.jsx("span",{className:s.default.toast__message,children:i}),o!=null&&e.jsx(I.default,{appearance:"default",emphasis:"tertiary",size:"x-small",className:s.default["toast__action-btn--on-dark"],onClick:d,children:o})]}),a!=null&&e.jsx(N.default,{...t,"aria-label":f,size:"small",className:p.mergeClassNames(s.default.toast__dismiss,t==null?void 0:t.className),icon:e.jsx(l.default,{glyph:e.jsx(q,{}),size:"16"}),onClick:a})]})}exports.default=y;
2
2
  //# sourceMappingURL=Toast.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.cjs","sources":["../../../src/components/toast/Toast.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport AlertCircleOutlineIcon from '@mattermost/compass-icons/components/alert-circle-outline';\nimport AlertOutlineIcon from '@mattermost/compass-icons/components/alert-outline';\nimport CheckIcon from '@mattermost/compass-icons/components/check';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport InformationOutlineIcon from '@mattermost/compass-icons/components/information-outline';\nimport Button from '@/components/button/Button';\nimport Icon from '@/components/icon/Icon';\nimport { IconSlotContext } from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport styles from './Toast.module.scss';\n\nexport type ToastType = 'general' | 'info' | 'success' | 'warning' | 'danger';\n\nexport interface ToastProps {\n className?: string;\n /** Toast message. Accepts translated nodes (e.g. `<FormattedMessage/>`). */\n message: ReactNode;\n type?: ToastType;\n /** Optional icon override — pass `<Icon glyph={<SomeIcon />} />`; replaces the default type icon. Toast provides the correct size via context. */\n icon?: ReactNode;\n actionLabel?: ReactNode;\n onAction?: () => void;\n onDismiss?: () => void;\n}\n\nconst TYPE_ICONS: Record<ToastType, ReactNode> = {\n general: <AlertCircleOutlineIcon />,\n info: <InformationOutlineIcon />,\n success: <CheckIcon />,\n danger: <AlertOutlineIcon />,\n warning: <AlertCircleOutlineIcon />,\n};\n\n/**\n * Toasts notify the user that an action has completed or surface a brief message about a\n * system process. They sit on top of the workflow without interrupting it, don't require\n * user input to disappear, and auto-dismiss after a short duration.\n */\nexport default function Toast({\n className = '',\n message,\n type = 'general',\n icon,\n actionLabel,\n onAction,\n onDismiss,\n}: ToastProps) {\n const typeClass = styles[`toast--type-${type.toLowerCase()}`];\n const noDismissClass = onDismiss == null ? styles['toast--no-dismiss'] : '';\n const rootClass = [styles.toast, typeClass, noDismissClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} role=\"status\" aria-live=\"polite\">\n <div className={styles['toast__content']}>\n <span className={styles['toast__icon']} aria-hidden>\n <IconSlotContext.Provider value={{ size: '16' }}>\n {icon ?? <Icon glyph={TYPE_ICONS[type]} />}\n </IconSlotContext.Provider>\n </span>\n <span className={styles['toast__message']}>{message}</span>\n {actionLabel != null && (\n <Button\n appearance=\"default\"\n emphasis=\"tertiary\"\n size=\"x-small\"\n className={styles['toast__action-btn--on-dark']}\n onClick={onAction}\n >\n {actionLabel}\n </Button>\n )}\n </div>\n {onDismiss != null && (\n <IconButton\n aria-label=\"Dismiss\"\n size=\"small\"\n className={styles['toast__dismiss']}\n icon={<Icon glyph={<CloseIcon />} size=\"16\" />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["TYPE_ICONS","AlertCircleOutlineIcon","InformationOutlineIcon","CheckIcon","AlertOutlineIcon","Toast","className","message","type","icon","actionLabel","onAction","onDismiss","typeClass","styles","noDismissClass","rootClass","jsxs","jsx","IconSlotContext","Icon","Button","IconButton","CloseIcon"],"mappings":"6lBA0BMA,EAA2C,CAC/C,cAAUC,EAAA,EAAuB,EACjC,WAAOC,EAAA,EAAuB,EAC9B,cAAUC,EAAA,EAAU,EACpB,aAASC,EAAA,EAAiB,EAC1B,cAAUH,EAAA,CAAA,CAAuB,CACnC,EAOA,SAAwBI,EAAM,CAC5B,UAAAC,EAAY,GACZ,QAAAC,EACA,KAAAC,EAAO,UACP,KAAAC,EACA,YAAAC,EACA,SAAAC,EACA,UAAAC,CACF,EAAe,CACb,MAAMC,EAAYC,EAAAA,QAAO,eAAeN,EAAK,YAAA,CAAa,EAAE,EACtDO,EAAiBH,GAAa,KAAOE,EAAAA,QAAO,mBAAmB,EAAI,GACnEE,EAAY,CAACF,UAAO,MAAOD,EAAWE,EAAgBT,CAAS,EAClE,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,cACG,MAAA,CAAI,UAAWU,EAAW,KAAK,SAAS,YAAU,SACjD,SAAA,CAAAC,EAAAA,KAAC,MAAA,CAAI,UAAWH,EAAAA,QAAO,eACrB,SAAA,CAAAI,EAAAA,IAAC,OAAA,CAAK,UAAWJ,EAAAA,QAAO,YAAgB,cAAW,GACjD,SAAAI,EAAAA,IAACC,EAAAA,gBAAgB,SAAhB,CAAyB,MAAO,CAAE,KAAM,IAAA,EACtC,SAAAV,GAAQS,EAAAA,IAACE,EAAAA,QAAA,CAAK,MAAOpB,EAAWQ,CAAI,CAAA,CAAG,CAAA,CAC1C,CAAA,CACF,QACC,OAAA,CAAK,UAAWM,EAAAA,QAAO,eAAoB,SAAAP,EAAQ,EACnDG,GAAe,MACdQ,EAAAA,IAACG,EAAAA,QAAA,CACC,WAAW,UACX,SAAS,WACT,KAAK,UACL,UAAWP,EAAAA,QAAO,4BAA4B,EAC9C,QAASH,EAER,SAAAD,CAAA,CAAA,CACH,EAEJ,EACCE,GAAa,MACZM,EAAAA,IAACI,EAAAA,QAAA,CACC,aAAW,UACX,KAAK,QACL,UAAWR,EAAAA,QAAO,eAClB,WAAOM,UAAA,CAAK,YAAQG,EAAA,EAAU,EAAI,KAAK,KAAK,EAC5C,QAASX,CAAA,CAAA,CACX,EAEJ,CAEJ"}
1
+ {"version":3,"file":"Toast.cjs","sources":["../../../src/components/toast/Toast.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\nimport AlertCircleOutlineIcon from '@mattermost/compass-icons/components/alert-circle-outline';\nimport AlertOutlineIcon from '@mattermost/compass-icons/components/alert-outline';\nimport CheckIcon from '@mattermost/compass-icons/components/check';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport InformationOutlineIcon from '@mattermost/compass-icons/components/information-outline';\nimport Button from '@/components/button/Button';\nimport Icon from '@/components/icon/Icon';\nimport { IconSlotContext } from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport type { BuiltInButtonProps } from '@/utils/props';\nimport { mergeClassNames } from '@/utils/props';\nimport styles from './Toast.module.scss';\n\nexport type ToastType = 'general' | 'info' | 'success' | 'warning' | 'danger';\n\nexport interface ToastProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n /** Toast message. Accepts translated nodes (e.g. `<FormattedMessage/>`). */\n message: ReactNode;\n type?: ToastType;\n /** Optional icon override — pass `<Icon glyph={<SomeIcon />} />`; replaces the default type icon. Toast provides the correct size via context. */\n icon?: ReactNode;\n actionLabel?: ReactNode;\n onAction?: () => void;\n onDismiss?: () => void;\n /** Accessible name for the dismiss button. Default: \"Dismiss\". */\n dismissLabel?: string;\n /** Extra attributes for the dismiss button (e.g. `data-testid`). */\n dismissButtonProps?: BuiltInButtonProps;\n}\n\nconst TYPE_ICONS: Record<ToastType, ReactNode> = {\n general: <AlertCircleOutlineIcon />,\n info: <InformationOutlineIcon />,\n success: <CheckIcon />,\n danger: <AlertOutlineIcon />,\n warning: <AlertCircleOutlineIcon />,\n};\n\n/**\n * Toasts notify the user that an action has completed or surface a brief message about a\n * system process. They sit on top of the workflow without interrupting it, don't require\n * user input to disappear, and auto-dismiss after a short duration.\n */\nexport default function Toast({\n className = '',\n message,\n type = 'general',\n icon,\n actionLabel,\n onAction,\n onDismiss,\n dismissLabel = 'Dismiss',\n dismissButtonProps,\n ...rest\n}: ToastProps) {\n const typeClass = styles[`toast--type-${type.toLowerCase()}`];\n const noDismissClass = onDismiss == null ? styles['toast--no-dismiss'] : '';\n const rootClass = [styles.toast, typeClass, noDismissClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div {...rest} className={rootClass} role=\"status\" aria-live=\"polite\">\n <div className={styles['toast__content']}>\n <span className={styles['toast__icon']} aria-hidden>\n <IconSlotContext.Provider value={{ size: '16' }}>\n {icon ?? <Icon glyph={TYPE_ICONS[type]} />}\n </IconSlotContext.Provider>\n </span>\n <span className={styles['toast__message']}>{message}</span>\n {actionLabel != null && (\n <Button\n appearance=\"default\"\n emphasis=\"tertiary\"\n size=\"x-small\"\n className={styles['toast__action-btn--on-dark']}\n onClick={onAction}\n >\n {actionLabel}\n </Button>\n )}\n </div>\n {onDismiss != null && (\n <IconButton\n {...dismissButtonProps}\n aria-label={dismissLabel}\n size=\"small\"\n className={mergeClassNames(\n styles['toast__dismiss'],\n dismissButtonProps?.className,\n )}\n icon={<Icon glyph={<CloseIcon />} size=\"16\" />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["TYPE_ICONS","AlertCircleOutlineIcon","InformationOutlineIcon","CheckIcon","AlertOutlineIcon","Toast","className","message","type","icon","actionLabel","onAction","onDismiss","dismissLabel","dismissButtonProps","rest","typeClass","styles","noDismissClass","rootClass","jsxs","jsx","IconSlotContext","Icon","Button","IconButton","mergeClassNames","CloseIcon"],"mappings":"goBAgCMA,EAA2C,CAC/C,cAAUC,EAAA,EAAuB,EACjC,WAAOC,EAAA,EAAuB,EAC9B,cAAUC,EAAA,EAAU,EACpB,aAASC,EAAA,EAAiB,EAC1B,cAAUH,EAAA,CAAA,CAAuB,CACnC,EAOA,SAAwBI,EAAM,CAC5B,UAAAC,EAAY,GACZ,QAAAC,EACA,KAAAC,EAAO,UACP,KAAAC,EACA,YAAAC,EACA,SAAAC,EACA,UAAAC,EACA,aAAAC,EAAe,UACf,mBAAAC,EACA,GAAGC,CACL,EAAe,CACb,MAAMC,EAAYC,EAAAA,QAAO,eAAeT,EAAK,YAAA,CAAa,EAAE,EACtDU,EAAiBN,GAAa,KAAOK,EAAAA,QAAO,mBAAmB,EAAI,GACnEE,EAAY,CAACF,UAAO,MAAOD,EAAWE,EAAgBZ,CAAS,EAClE,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEc,OAAC,OAAK,GAAGL,EAAM,UAAWI,EAAW,KAAK,SAAS,YAAU,SAC3D,SAAA,CAAAC,EAAAA,KAAC,MAAA,CAAI,UAAWH,EAAAA,QAAO,eACrB,SAAA,CAAAI,EAAAA,IAAC,OAAA,CAAK,UAAWJ,EAAAA,QAAO,YAAgB,cAAW,GACjD,SAAAI,EAAAA,IAACC,EAAAA,gBAAgB,SAAhB,CAAyB,MAAO,CAAE,KAAM,IAAA,EACtC,SAAAb,GAAQY,EAAAA,IAACE,EAAAA,QAAA,CAAK,MAAOvB,EAAWQ,CAAI,CAAA,CAAG,CAAA,CAC1C,CAAA,CACF,QACC,OAAA,CAAK,UAAWS,EAAAA,QAAO,eAAoB,SAAAV,EAAQ,EACnDG,GAAe,MACdW,EAAAA,IAACG,EAAAA,QAAA,CACC,WAAW,UACX,SAAS,WACT,KAAK,UACL,UAAWP,EAAAA,QAAO,4BAA4B,EAC9C,QAASN,EAER,SAAAD,CAAA,CAAA,CACH,EAEJ,EACCE,GAAa,MACZS,EAAAA,IAACI,EAAAA,QAAA,CACE,GAAGX,EACJ,aAAYD,EACZ,KAAK,QACL,UAAWa,EAAAA,gBACTT,EAAAA,QAAO,eACPH,GAAA,YAAAA,EAAoB,SAAA,EAEtB,WAAOS,UAAA,CAAK,YAAQI,EAAA,EAAU,EAAI,KAAK,KAAK,EAC5C,QAASf,CAAA,CAAA,CACX,EAEJ,CAEJ"}
@@ -1,6 +1,7 @@
1
- import { ReactNode } from 'react';
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ import { BuiltInButtonProps } from '../../utils/props';
2
3
  export type ToastType = 'general' | 'info' | 'success' | 'warning' | 'danger';
3
- export interface ToastProps {
4
+ export interface ToastProps extends HTMLAttributes<HTMLDivElement> {
4
5
  className?: string;
5
6
  /** Toast message. Accepts translated nodes (e.g. `<FormattedMessage/>`). */
6
7
  message: ReactNode;
@@ -10,11 +11,15 @@ export interface ToastProps {
10
11
  actionLabel?: ReactNode;
11
12
  onAction?: () => void;
12
13
  onDismiss?: () => void;
14
+ /** Accessible name for the dismiss button. Default: "Dismiss". */
15
+ dismissLabel?: string;
16
+ /** Extra attributes for the dismiss button (e.g. `data-testid`). */
17
+ dismissButtonProps?: BuiltInButtonProps;
13
18
  }
14
19
  /**
15
20
  * Toasts notify the user that an action has completed or surface a brief message about a
16
21
  * system process. They sit on top of the workflow without interrupting it, don't require
17
22
  * user input to disappear, and auto-dismiss after a short duration.
18
23
  */
19
- export default function Toast({ className, message, type, icon, actionLabel, onAction, onDismiss, }: ToastProps): import("react/jsx-runtime").JSX.Element;
24
+ export default function Toast({ className, message, type, icon, actionLabel, onAction, onDismiss, dismissLabel, dismissButtonProps, ...rest }: ToastProps): import("react/jsx-runtime").JSX.Element;
20
25
  //# sourceMappingURL=Toast.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/components/toast/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAYvC,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE9E,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kJAAkJ;IAClJ,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAUD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,SAAc,EACd,OAAO,EACP,IAAgB,EAChB,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,SAAS,GACV,EAAE,UAAU,2CAuCZ"}
1
+ {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/components/toast/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxD,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE9E,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAC,cAAc,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,kJAAkJ;IAClJ,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAUD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,SAAc,EACd,OAAO,EACP,IAAgB,EAChB,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAwB,EACxB,kBAAkB,EAClB,GAAG,IAAI,EACR,EAAE,UAAU,2CA2CZ"}
@@ -1,59 +1,67 @@
1
- import { jsxs as n, jsx as o } from "react/jsx-runtime";
2
- import __r from "@mattermost/compass-icons/components/alert-circle-outline.js";const r=__r&&__r.default?__r.default:__r;
3
- import __h from "@mattermost/compass-icons/components/alert-outline.js";const h=__h&&__h.default?__h.default:__h;
4
- import __C from "@mattermost/compass-icons/components/check.js";const C=__C&&__C.default?__C.default:__C;
5
- import ___ from "@mattermost/compass-icons/components/close.js";const _=___&&___.default?___.default:___;
6
- import __I from "@mattermost/compass-icons/components/information-outline.js";const I=__I&&__I.default?__I.default:__I;
7
- import g from "../button/Button.js";
8
- import i, { IconSlotContext as N } from "../icon/Icon.js";
9
- import v from "../icon-button/IconButton.js";
10
- import t from "./Toast.module.scss.js";
11
- const x = {
12
- general: /* @__PURE__ */ o(r, {}),
13
- info: /* @__PURE__ */ o(I, {}),
14
- success: /* @__PURE__ */ o(C, {}),
15
- danger: /* @__PURE__ */ o(h, {}),
16
- warning: /* @__PURE__ */ o(r, {})
1
+ import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
+ import __s from "@mattermost/compass-icons/components/alert-circle-outline.js";const s=__s&&__s.default?__s.default:__s;
3
+ import __I from "@mattermost/compass-icons/components/alert-outline.js";const I=__I&&__I.default?__I.default:__I;
4
+ import __N from "@mattermost/compass-icons/components/check.js";const N=__N&&__N.default?__N.default:__N;
5
+ import __g from "@mattermost/compass-icons/components/close.js";const g=__g&&__g.default?__g.default:__g;
6
+ import __v from "@mattermost/compass-icons/components/information-outline.js";const v=__v&&__v.default?__v.default:__v;
7
+ import x from "../button/Button.js";
8
+ import i, { IconSlotContext as y } from "../icon/Icon.js";
9
+ import k from "../icon-button/IconButton.js";
10
+ import { mergeClassNames as z } from "../../utils/props.js";
11
+ import o from "./Toast.module.scss.js";
12
+ const O = {
13
+ general: /* @__PURE__ */ e(s, {}),
14
+ info: /* @__PURE__ */ e(v, {}),
15
+ success: /* @__PURE__ */ e(N, {}),
16
+ danger: /* @__PURE__ */ e(I, {}),
17
+ warning: /* @__PURE__ */ e(s, {})
17
18
  };
18
- function T({
19
- className: l = "",
20
- message: c,
21
- type: e = "general",
22
- icon: m,
23
- actionLabel: a,
19
+ function F({
20
+ className: c = "",
21
+ message: m,
22
+ type: l = "general",
23
+ icon: f,
24
+ actionLabel: r,
24
25
  onAction: p,
25
- onDismiss: s
26
+ onDismiss: t,
27
+ dismissLabel: d = "Dismiss",
28
+ dismissButtonProps: a,
29
+ ...C
26
30
  }) {
27
- const d = t[`toast--type-${e.toLowerCase()}`], f = s == null ? t["toast--no-dismiss"] : "", u = [t.toast, d, f, l].filter(Boolean).join(" ");
28
- return /* @__PURE__ */ n("div", { className: u, role: "status", "aria-live": "polite", children: [
29
- /* @__PURE__ */ n("div", { className: t.toast__content, children: [
30
- /* @__PURE__ */ o("span", { className: t.toast__icon, "aria-hidden": !0, children: /* @__PURE__ */ o(N.Provider, { value: { size: "16" }, children: m ?? /* @__PURE__ */ o(i, { glyph: x[e] }) }) }),
31
- /* @__PURE__ */ o("span", { className: t.toast__message, children: c }),
32
- a != null && /* @__PURE__ */ o(
33
- g,
31
+ const h = o[`toast--type-${l.toLowerCase()}`], u = t == null ? o["toast--no-dismiss"] : "", _ = [o.toast, h, u, c].filter(Boolean).join(" ");
32
+ return /* @__PURE__ */ n("div", { ...C, className: _, role: "status", "aria-live": "polite", children: [
33
+ /* @__PURE__ */ n("div", { className: o.toast__content, children: [
34
+ /* @__PURE__ */ e("span", { className: o.toast__icon, "aria-hidden": !0, children: /* @__PURE__ */ e(y.Provider, { value: { size: "16" }, children: f ?? /* @__PURE__ */ e(i, { glyph: O[l] }) }) }),
35
+ /* @__PURE__ */ e("span", { className: o.toast__message, children: m }),
36
+ r != null && /* @__PURE__ */ e(
37
+ x,
34
38
  {
35
39
  appearance: "default",
36
40
  emphasis: "tertiary",
37
41
  size: "x-small",
38
- className: t["toast__action-btn--on-dark"],
42
+ className: o["toast__action-btn--on-dark"],
39
43
  onClick: p,
40
- children: a
44
+ children: r
41
45
  }
42
46
  )
43
47
  ] }),
44
- s != null && /* @__PURE__ */ o(
45
- v,
48
+ t != null && /* @__PURE__ */ e(
49
+ k,
46
50
  {
47
- "aria-label": "Dismiss",
51
+ ...a,
52
+ "aria-label": d,
48
53
  size: "small",
49
- className: t.toast__dismiss,
50
- icon: /* @__PURE__ */ o(i, { glyph: /* @__PURE__ */ o(_, {}), size: "16" }),
51
- onClick: s
54
+ className: z(
55
+ o.toast__dismiss,
56
+ a == null ? void 0 : a.className
57
+ ),
58
+ icon: /* @__PURE__ */ e(i, { glyph: /* @__PURE__ */ e(g, {}), size: "16" }),
59
+ onClick: t
52
60
  }
53
61
  )
54
62
  ] });
55
63
  }
56
64
  export {
57
- T as default
65
+ F as default
58
66
  };
59
67
  //# sourceMappingURL=Toast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","sources":["../../../src/components/toast/Toast.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport AlertCircleOutlineIcon from '@mattermost/compass-icons/components/alert-circle-outline';\nimport AlertOutlineIcon from '@mattermost/compass-icons/components/alert-outline';\nimport CheckIcon from '@mattermost/compass-icons/components/check';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport InformationOutlineIcon from '@mattermost/compass-icons/components/information-outline';\nimport Button from '@/components/button/Button';\nimport Icon from '@/components/icon/Icon';\nimport { IconSlotContext } from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport styles from './Toast.module.scss';\n\nexport type ToastType = 'general' | 'info' | 'success' | 'warning' | 'danger';\n\nexport interface ToastProps {\n className?: string;\n /** Toast message. Accepts translated nodes (e.g. `<FormattedMessage/>`). */\n message: ReactNode;\n type?: ToastType;\n /** Optional icon override — pass `<Icon glyph={<SomeIcon />} />`; replaces the default type icon. Toast provides the correct size via context. */\n icon?: ReactNode;\n actionLabel?: ReactNode;\n onAction?: () => void;\n onDismiss?: () => void;\n}\n\nconst TYPE_ICONS: Record<ToastType, ReactNode> = {\n general: <AlertCircleOutlineIcon />,\n info: <InformationOutlineIcon />,\n success: <CheckIcon />,\n danger: <AlertOutlineIcon />,\n warning: <AlertCircleOutlineIcon />,\n};\n\n/**\n * Toasts notify the user that an action has completed or surface a brief message about a\n * system process. They sit on top of the workflow without interrupting it, don't require\n * user input to disappear, and auto-dismiss after a short duration.\n */\nexport default function Toast({\n className = '',\n message,\n type = 'general',\n icon,\n actionLabel,\n onAction,\n onDismiss,\n}: ToastProps) {\n const typeClass = styles[`toast--type-${type.toLowerCase()}`];\n const noDismissClass = onDismiss == null ? styles['toast--no-dismiss'] : '';\n const rootClass = [styles.toast, typeClass, noDismissClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} role=\"status\" aria-live=\"polite\">\n <div className={styles['toast__content']}>\n <span className={styles['toast__icon']} aria-hidden>\n <IconSlotContext.Provider value={{ size: '16' }}>\n {icon ?? <Icon glyph={TYPE_ICONS[type]} />}\n </IconSlotContext.Provider>\n </span>\n <span className={styles['toast__message']}>{message}</span>\n {actionLabel != null && (\n <Button\n appearance=\"default\"\n emphasis=\"tertiary\"\n size=\"x-small\"\n className={styles['toast__action-btn--on-dark']}\n onClick={onAction}\n >\n {actionLabel}\n </Button>\n )}\n </div>\n {onDismiss != null && (\n <IconButton\n aria-label=\"Dismiss\"\n size=\"small\"\n className={styles['toast__dismiss']}\n icon={<Icon glyph={<CloseIcon />} size=\"16\" />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["TYPE_ICONS","AlertCircleOutlineIcon","InformationOutlineIcon","CheckIcon","AlertOutlineIcon","Toast","className","message","type","icon","actionLabel","onAction","onDismiss","typeClass","styles","noDismissClass","rootClass","jsxs","jsx","IconSlotContext","Icon","Button","IconButton","CloseIcon"],"mappings":";;;;;;;;;;AA0BA,MAAMA,IAA2C;AAAA,EAC/C,2BAAUC,GAAA,EAAuB;AAAA,EACjC,wBAAOC,GAAA,EAAuB;AAAA,EAC9B,2BAAUC,GAAA,EAAU;AAAA,EACpB,0BAASC,GAAA,EAAiB;AAAA,EAC1B,2BAAUH,GAAA,CAAA,CAAuB;AACnC;AAOA,SAAwBI,EAAM;AAAA,EAC5B,WAAAC,IAAY;AAAA,EACZ,SAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AACF,GAAe;AACb,QAAMC,IAAYC,EAAO,eAAeN,EAAK,YAAA,CAAa,EAAE,GACtDO,IAAiBH,KAAa,OAAOE,EAAO,mBAAmB,IAAI,IACnEE,IAAY,CAACF,EAAO,OAAOD,GAAWE,GAAgBT,CAAS,EAClE,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,2BACG,OAAA,EAAI,WAAWU,GAAW,MAAK,UAAS,aAAU,UACjD,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWH,EAAO,gBACrB,UAAA;AAAA,MAAA,gBAAAI,EAAC,QAAA,EAAK,WAAWJ,EAAO,aAAgB,eAAW,IACjD,UAAA,gBAAAI,EAACC,EAAgB,UAAhB,EAAyB,OAAO,EAAE,MAAM,KAAA,GACtC,UAAAV,KAAQ,gBAAAS,EAACE,GAAA,EAAK,OAAOpB,EAAWQ,CAAI,EAAA,CAAG,EAAA,CAC1C,EAAA,CACF;AAAA,wBACC,QAAA,EAAK,WAAWM,EAAO,gBAAoB,UAAAP,GAAQ;AAAA,MACnDG,KAAe,QACd,gBAAAQ;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,YAAW;AAAA,UACX,UAAS;AAAA,UACT,MAAK;AAAA,UACL,WAAWP,EAAO,4BAA4B;AAAA,UAC9C,SAASH;AAAA,UAER,UAAAD;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,GAEJ;AAAA,IACCE,KAAa,QACZ,gBAAAM;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,cAAW;AAAA,QACX,MAAK;AAAA,QACL,WAAWR,EAAO;AAAA,QAClB,wBAAOM,GAAA,EAAK,yBAAQG,GAAA,EAAU,GAAI,MAAK,MAAK;AAAA,QAC5C,SAASX;AAAA,MAAA;AAAA,IAAA;AAAA,EACX,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"Toast.js","sources":["../../../src/components/toast/Toast.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\nimport AlertCircleOutlineIcon from '@mattermost/compass-icons/components/alert-circle-outline';\nimport AlertOutlineIcon from '@mattermost/compass-icons/components/alert-outline';\nimport CheckIcon from '@mattermost/compass-icons/components/check';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport InformationOutlineIcon from '@mattermost/compass-icons/components/information-outline';\nimport Button from '@/components/button/Button';\nimport Icon from '@/components/icon/Icon';\nimport { IconSlotContext } from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport type { BuiltInButtonProps } from '@/utils/props';\nimport { mergeClassNames } from '@/utils/props';\nimport styles from './Toast.module.scss';\n\nexport type ToastType = 'general' | 'info' | 'success' | 'warning' | 'danger';\n\nexport interface ToastProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n /** Toast message. Accepts translated nodes (e.g. `<FormattedMessage/>`). */\n message: ReactNode;\n type?: ToastType;\n /** Optional icon override — pass `<Icon glyph={<SomeIcon />} />`; replaces the default type icon. Toast provides the correct size via context. */\n icon?: ReactNode;\n actionLabel?: ReactNode;\n onAction?: () => void;\n onDismiss?: () => void;\n /** Accessible name for the dismiss button. Default: \"Dismiss\". */\n dismissLabel?: string;\n /** Extra attributes for the dismiss button (e.g. `data-testid`). */\n dismissButtonProps?: BuiltInButtonProps;\n}\n\nconst TYPE_ICONS: Record<ToastType, ReactNode> = {\n general: <AlertCircleOutlineIcon />,\n info: <InformationOutlineIcon />,\n success: <CheckIcon />,\n danger: <AlertOutlineIcon />,\n warning: <AlertCircleOutlineIcon />,\n};\n\n/**\n * Toasts notify the user that an action has completed or surface a brief message about a\n * system process. They sit on top of the workflow without interrupting it, don't require\n * user input to disappear, and auto-dismiss after a short duration.\n */\nexport default function Toast({\n className = '',\n message,\n type = 'general',\n icon,\n actionLabel,\n onAction,\n onDismiss,\n dismissLabel = 'Dismiss',\n dismissButtonProps,\n ...rest\n}: ToastProps) {\n const typeClass = styles[`toast--type-${type.toLowerCase()}`];\n const noDismissClass = onDismiss == null ? styles['toast--no-dismiss'] : '';\n const rootClass = [styles.toast, typeClass, noDismissClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div {...rest} className={rootClass} role=\"status\" aria-live=\"polite\">\n <div className={styles['toast__content']}>\n <span className={styles['toast__icon']} aria-hidden>\n <IconSlotContext.Provider value={{ size: '16' }}>\n {icon ?? <Icon glyph={TYPE_ICONS[type]} />}\n </IconSlotContext.Provider>\n </span>\n <span className={styles['toast__message']}>{message}</span>\n {actionLabel != null && (\n <Button\n appearance=\"default\"\n emphasis=\"tertiary\"\n size=\"x-small\"\n className={styles['toast__action-btn--on-dark']}\n onClick={onAction}\n >\n {actionLabel}\n </Button>\n )}\n </div>\n {onDismiss != null && (\n <IconButton\n {...dismissButtonProps}\n aria-label={dismissLabel}\n size=\"small\"\n className={mergeClassNames(\n styles['toast__dismiss'],\n dismissButtonProps?.className,\n )}\n icon={<Icon glyph={<CloseIcon />} size=\"16\" />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["TYPE_ICONS","AlertCircleOutlineIcon","InformationOutlineIcon","CheckIcon","AlertOutlineIcon","Toast","className","message","type","icon","actionLabel","onAction","onDismiss","dismissLabel","dismissButtonProps","rest","typeClass","styles","noDismissClass","rootClass","jsxs","jsx","IconSlotContext","Icon","Button","IconButton","mergeClassNames","CloseIcon"],"mappings":";;;;;;;;;;;AAgCA,MAAMA,IAA2C;AAAA,EAC/C,2BAAUC,GAAA,EAAuB;AAAA,EACjC,wBAAOC,GAAA,EAAuB;AAAA,EAC9B,2BAAUC,GAAA,EAAU;AAAA,EACpB,0BAASC,GAAA,EAAiB;AAAA,EAC1B,2BAAUH,GAAA,CAAA,CAAuB;AACnC;AAOA,SAAwBI,EAAM;AAAA,EAC5B,WAAAC,IAAY;AAAA,EACZ,SAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,oBAAAC;AAAA,EACA,GAAGC;AACL,GAAe;AACb,QAAMC,IAAYC,EAAO,eAAeT,EAAK,YAAA,CAAa,EAAE,GACtDU,IAAiBN,KAAa,OAAOK,EAAO,mBAAmB,IAAI,IACnEE,IAAY,CAACF,EAAO,OAAOD,GAAWE,GAAgBZ,CAAS,EAClE,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAc,EAAC,SAAK,GAAGL,GAAM,WAAWI,GAAW,MAAK,UAAS,aAAU,UAC3D,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWH,EAAO,gBACrB,UAAA;AAAA,MAAA,gBAAAI,EAAC,QAAA,EAAK,WAAWJ,EAAO,aAAgB,eAAW,IACjD,UAAA,gBAAAI,EAACC,EAAgB,UAAhB,EAAyB,OAAO,EAAE,MAAM,KAAA,GACtC,UAAAb,KAAQ,gBAAAY,EAACE,GAAA,EAAK,OAAOvB,EAAWQ,CAAI,EAAA,CAAG,EAAA,CAC1C,EAAA,CACF;AAAA,wBACC,QAAA,EAAK,WAAWS,EAAO,gBAAoB,UAAAV,GAAQ;AAAA,MACnDG,KAAe,QACd,gBAAAW;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,YAAW;AAAA,UACX,UAAS;AAAA,UACT,MAAK;AAAA,UACL,WAAWP,EAAO,4BAA4B;AAAA,UAC9C,SAASN;AAAA,UAER,UAAAD;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,GAEJ;AAAA,IACCE,KAAa,QACZ,gBAAAS;AAAA,MAACI;AAAA,MAAA;AAAA,QACE,GAAGX;AAAA,QACJ,cAAYD;AAAA,QACZ,MAAK;AAAA,QACL,WAAWa;AAAA,UACTT,EAAO;AAAA,UACPH,KAAA,gBAAAA,EAAoB;AAAA,QAAA;AAAA,QAEtB,wBAAOS,GAAA,EAAK,yBAAQI,GAAA,EAAU,GAAI,MAAK,MAAK;AAAA,QAC5C,SAASf;AAAA,MAAA;AAAA,IAAA;AAAA,EACX,GAEJ;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),__x=require("@mattermost/compass-icons/components/close.js"),x=__x?.default??__x,__h=require("@mattermost/compass-icons/components/chevron-right.js"),h=__h?.default??__h,m=require("../button/Button.cjs"),u=require("../icon/Icon.cjs"),g=require("../icon-button/IconButton.cjs"),N=require("../pagination-dots/PaginationDots.cjs"),v=require("../../utils/string.cjs"),t=require("./TourPoint.module.scss.cjs");function q({title:r,children:d,media:n,pointerPosition:o="top-center",showPulsingDot:c=!0,onClose:l,progress:s,primaryAction:a,className:p=""}){const i=o!=="none",_=i&&t.default[`tour-point--pointer-${v.toKebab(o)}`],f=[t.default["tour-point"],_,p].filter(Boolean).join(" "),j=s!=null||a!=null;return e.jsxs("div",{className:f,children:[i&&e.jsxs("span",{className:t.default["tour-point__pointer"],"aria-hidden":!0,children:[e.jsx("span",{className:t.default["tour-point__pointer-triangle"]}),c&&e.jsxs("span",{className:t.default["tour-point__pointer-pulse"],children:[e.jsx("span",{className:t.default["tour-point__pointer-pulse-ring"]}),e.jsx("span",{className:[t.default["tour-point__pointer-pulse-ring"],t.default["tour-point__pointer-pulse-ring--delay"]].join(" ")}),e.jsx("span",{className:t.default["tour-point__pointer-pulse-core"]})]})]}),e.jsxs("div",{className:t.default["tour-point__panel"],children:[e.jsxs("div",{className:t.default["tour-point__header"],children:[e.jsx("h2",{className:t.default["tour-point__title"],children:r}),l&&e.jsx(g.default,{className:t.default["tour-point__close"],"aria-label":"Close",size:"small",padding:"compact",style:"default",icon:e.jsx(u.default,{size:"16",glyph:e.jsx(x,{})}),onClick:l})]}),e.jsxs("div",{className:t.default["tour-point__body"],children:[e.jsx("div",{className:t.default["tour-point__description"],children:d}),n!=null&&e.jsx("div",{className:t.default["tour-point__media"],children:n})]}),j&&e.jsxs("div",{className:t.default["tour-point__footer"],children:[s!=null?e.jsx(N.default,{className:t.default["tour-point__progress"],pages:s.pages,activePage:s.activePage,dotStyle:"on-primary",onPageChange:s.onPageChange}):e.jsx("span",{className:t.default["tour-point__footer-spacer"],"aria-hidden":!0}),a!=null?e.jsx("div",{className:t.default["tour-point__next-wrap"],children:e.jsx(m.default,{emphasis:"primary",size:"small",trailingIcon:e.jsx(u.default,{size:"16",glyph:e.jsx(h,{})}),onClick:a.onClick,children:a.label})}):null]})]})]})}exports.default=q;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),__g=require("@mattermost/compass-icons/components/close.js"),g=__g?.default??__g,__N=require("@mattermost/compass-icons/components/chevron-right.js"),N=__N?.default??__N,b=require("../button/Button.cjs"),r=require("../icon/Icon.cjs"),v=require("../icon-button/IconButton.cjs"),q=require("../pagination-dots/PaginationDots.cjs"),C=require("../../utils/props.cjs"),I=require("../../utils/string.cjs"),a=require("./TourPoint.module.scss.cjs");function P({title:d,children:c,media:n,pointerPosition:i="top-center",showPulsingDot:p=!0,onClose:o,closeLabel:_="Close",closeButtonProps:s,progress:t,primaryAction:l,className:f="",...j}){const u=i!=="none",m=u&&a.default[`tour-point--pointer-${I.toKebab(i)}`],x=[a.default["tour-point"],m,f].filter(Boolean).join(" "),h=t!=null||l!=null;return e.jsxs("div",{...j,className:x,children:[u&&e.jsxs("span",{className:a.default["tour-point__pointer"],"aria-hidden":!0,children:[e.jsx("span",{className:a.default["tour-point__pointer-triangle"]}),p&&e.jsxs("span",{className:a.default["tour-point__pointer-pulse"],children:[e.jsx("span",{className:a.default["tour-point__pointer-pulse-ring"]}),e.jsx("span",{className:[a.default["tour-point__pointer-pulse-ring"],a.default["tour-point__pointer-pulse-ring--delay"]].join(" ")}),e.jsx("span",{className:a.default["tour-point__pointer-pulse-core"]})]})]}),e.jsxs("div",{className:a.default["tour-point__panel"],children:[e.jsxs("div",{className:a.default["tour-point__header"],children:[e.jsx("h2",{className:a.default["tour-point__title"],children:d}),o&&e.jsx(v.default,{...s,className:C.mergeClassNames(a.default["tour-point__close"],s==null?void 0:s.className),"aria-label":_,size:"small",padding:"compact",style:"default",icon:e.jsx(r.default,{size:"16",glyph:e.jsx(g,{})}),onClick:o})]}),e.jsxs("div",{className:a.default["tour-point__body"],children:[e.jsx("div",{className:a.default["tour-point__description"],children:c}),n!=null&&e.jsx("div",{className:a.default["tour-point__media"],children:n})]}),h&&e.jsxs("div",{className:a.default["tour-point__footer"],children:[t!=null?e.jsx(q.default,{className:a.default["tour-point__progress"],pages:t.pages,activePage:t.activePage,dotStyle:"on-primary",onPageChange:t.onPageChange,label:t.label,formatPageLabel:t.formatPageLabel}):e.jsx("span",{className:a.default["tour-point__footer-spacer"],"aria-hidden":!0}),l!=null?e.jsx("div",{className:a.default["tour-point__next-wrap"],children:e.jsx(b.default,{emphasis:"primary",size:"small",trailingIcon:e.jsx(r.default,{size:"16",glyph:e.jsx(N,{})}),disabled:l.disabled,loading:l.loading,onClick:l.onClick,children:l.label})}):null]})]})]})}exports.default=P;
2
2
  //# sourceMappingURL=TourPoint.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TourPoint.cjs","sources":["../../../src/components/tour-point/TourPoint.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport ChevronRightIcon from '@mattermost/compass-icons/components/chevron-right';\nimport Button from '@/components/button/Button';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport PaginationDots from '@/components/pagination-dots/PaginationDots';\nimport { toKebab } from '@/utils/string';\nimport styles from './TourPoint.module.scss';\n\nexport type TourPointPointerPosition =\n | 'top-center'\n | 'top-left'\n | 'top-right'\n | 'bottom-center'\n | 'bottom-left'\n | 'bottom-right'\n | 'left-center'\n | 'right-center';\n\nexport interface TourPointProgress {\n pages: number;\n activePage: number;\n onPageChange?: (page: number) => void;\n}\n\nexport interface TourPointPrimaryAction {\n label: string;\n onClick?: () => void;\n}\n\nexport interface TourPointProps {\n title: string;\n children: ReactNode;\n /** Optional image between body copy and footer (e.g. screenshot as an img). */\n media?: ReactNode;\n /** Where the pointer sits on the card edge; omit or `none` to hide the pointer. */\n pointerPosition?: TourPointPointerPosition | 'none';\n /**\n * Animated marker at the arrow tip (Figma Pulsing Dot). Only applies when a\n * pointer is shown. Default on; set false for reduced motion preference at the\n * callsite or a static tour step.\n */\n showPulsingDot?: boolean;\n onClose?: () => void;\n progress?: TourPointProgress;\n primaryAction?: TourPointPrimaryAction;\n className?: string;\n}\n\nexport default function TourPoint({\n title,\n children,\n media,\n pointerPosition = 'top-center',\n showPulsingDot = true,\n onClose,\n progress,\n primaryAction,\n className = '',\n}: TourPointProps) {\n const showPointer = pointerPosition !== 'none';\n const pointerModifier =\n showPointer &&\n styles[\n `tour-point--pointer-${toKebab(pointerPosition as TourPointPointerPosition)}`\n ];\n\n const rootClass = [styles['tour-point'], pointerModifier, className]\n .filter(Boolean)\n .join(' ');\n\n const showFooter = progress != null || primaryAction != null;\n\n return (\n <div className={rootClass}>\n {showPointer && (\n <span className={styles['tour-point__pointer']} aria-hidden>\n <span className={styles['tour-point__pointer-triangle']} />\n {showPulsingDot && (\n <span className={styles['tour-point__pointer-pulse']}>\n <span className={styles['tour-point__pointer-pulse-ring']} />\n <span\n className={[\n styles['tour-point__pointer-pulse-ring'],\n styles['tour-point__pointer-pulse-ring--delay'],\n ].join(' ')}\n />\n <span className={styles['tour-point__pointer-pulse-core']} />\n </span>\n )}\n </span>\n )}\n\n <div className={styles['tour-point__panel']}>\n <div className={styles['tour-point__header']}>\n <h2 className={styles['tour-point__title']}>{title}</h2>\n {onClose && (\n <IconButton\n className={styles['tour-point__close']}\n aria-label=\"Close\"\n size=\"small\"\n padding=\"compact\"\n style=\"default\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onClose}\n />\n )}\n </div>\n\n <div className={styles['tour-point__body']}>\n <div className={styles['tour-point__description']}>{children}</div>\n {media != null && (\n <div className={styles['tour-point__media']}>{media}</div>\n )}\n </div>\n\n {showFooter && (\n <div className={styles['tour-point__footer']}>\n {progress != null ? (\n <PaginationDots\n className={styles['tour-point__progress']}\n pages={progress.pages}\n activePage={progress.activePage}\n dotStyle=\"on-primary\"\n onPageChange={progress.onPageChange}\n />\n ) : (\n <span\n className={styles['tour-point__footer-spacer']}\n aria-hidden\n />\n )}\n\n {primaryAction != null ? (\n <div className={styles['tour-point__next-wrap']}>\n <Button\n emphasis=\"primary\"\n size=\"small\"\n trailingIcon={<Icon size=\"16\" glyph={<ChevronRightIcon />} />}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n </div>\n ) : null}\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"names":["TourPoint","title","children","media","pointerPosition","showPulsingDot","onClose","progress","primaryAction","className","showPointer","pointerModifier","styles","toKebab","rootClass","showFooter","jsxs","jsx","IconButton","Icon","CloseIcon","PaginationDots","Button","ChevronRightIcon"],"mappings":"kfAkDA,SAAwBA,EAAU,CAChC,MAAAC,EACA,SAAAC,EACA,MAAAC,EACA,gBAAAC,EAAkB,aAClB,eAAAC,EAAiB,GACjB,QAAAC,EACA,SAAAC,EACA,cAAAC,EACA,UAAAC,EAAY,EACd,EAAmB,CACjB,MAAMC,EAAcN,IAAoB,OAClCO,EACJD,GACAE,UACE,uBAAuBC,UAAQT,CAA2C,CAAC,EAC7E,EAEIU,EAAY,CAACF,UAAO,YAAY,EAAGD,EAAiBF,CAAS,EAChE,OAAO,OAAO,EACd,KAAK,GAAG,EAELM,EAAaR,GAAY,MAAQC,GAAiB,KAExD,OACEQ,EAAAA,KAAC,MAAA,CAAI,UAAWF,EACb,SAAA,CAAAJ,UACE,OAAA,CAAK,UAAWE,UAAO,qBAAqB,EAAG,cAAW,GACzD,SAAA,CAAAK,EAAAA,IAAC,OAAA,CAAK,UAAWL,EAAAA,QAAO,8BAA8B,CAAA,CAAG,EACxDP,GACCW,EAAAA,KAAC,OAAA,CAAK,UAAWJ,UAAO,2BAA2B,EACjD,SAAA,CAAAK,EAAAA,IAAC,OAAA,CAAK,UAAWL,EAAAA,QAAO,gCAAgC,CAAA,CAAG,EAC3DK,EAAAA,IAAC,OAAA,CACC,UAAW,CACTL,EAAAA,QAAO,gCAAgC,EACvCA,EAAAA,QAAO,uCAAuC,CAAA,EAC9C,KAAK,GAAG,CAAA,CAAA,EAEZK,EAAAA,IAAC,OAAA,CAAK,UAAWL,EAAAA,QAAO,gCAAgC,CAAA,CAAG,CAAA,CAAA,CAC7D,CAAA,EAEJ,EAGFI,EAAAA,KAAC,MAAA,CAAI,UAAWJ,EAAAA,QAAO,mBAAmB,EACxC,SAAA,CAAAI,EAAAA,KAAC,MAAA,CAAI,UAAWJ,EAAAA,QAAO,oBAAoB,EACzC,SAAA,CAAAK,MAAC,KAAA,CAAG,UAAWL,EAAAA,QAAO,mBAAmB,EAAI,SAAAX,EAAM,EAClDK,GACCW,EAAAA,IAACC,EAAAA,QAAA,CACC,UAAWN,EAAAA,QAAO,mBAAmB,EACrC,aAAW,QACX,KAAK,QACL,QAAQ,UACR,MAAM,UACN,WAAOO,UAAA,CAAK,KAAK,KAAK,MAAOF,MAACG,IAAU,EAAI,EAC5C,QAASd,CAAA,CAAA,CACX,EAEJ,EAEAU,EAAAA,KAAC,MAAA,CAAI,UAAWJ,EAAAA,QAAO,kBAAkB,EACvC,SAAA,CAAAK,EAAAA,IAAC,MAAA,CAAI,UAAWL,EAAAA,QAAO,yBAAyB,EAAI,SAAAV,EAAS,EAC5DC,GAAS,MACRc,EAAAA,IAAC,MAAA,CAAI,UAAWL,EAAAA,QAAO,mBAAmB,EAAI,SAAAT,CAAA,CAAM,CAAA,EAExD,EAECY,GACCC,EAAAA,KAAC,MAAA,CAAI,UAAWJ,UAAO,oBAAoB,EACxC,SAAA,CAAAL,GAAY,KACXU,EAAAA,IAACI,EAAAA,QAAA,CACC,UAAWT,EAAAA,QAAO,sBAAsB,EACxC,MAAOL,EAAS,MAChB,WAAYA,EAAS,WACrB,SAAS,aACT,aAAcA,EAAS,YAAA,CAAA,EAGzBU,EAAAA,IAAC,OAAA,CACC,UAAWL,EAAAA,QAAO,2BAA2B,EAC7C,cAAW,EAAA,CAAA,EAIdJ,GAAiB,KAChBS,EAAAA,IAAC,OAAI,UAAWL,UAAO,uBAAuB,EAC5C,SAAAK,EAAAA,IAACK,EAAAA,QAAA,CACC,SAAS,UACT,KAAK,QACL,mBAAeH,UAAA,CAAK,KAAK,KAAK,MAAOF,MAACM,IAAiB,EAAI,EAC3D,QAASf,EAAc,QAEtB,SAAAA,EAAc,KAAA,CAAA,EAEnB,EACE,IAAA,CAAA,CACN,CAAA,CAAA,CAEJ,CAAA,EACF,CAEJ"}
1
+ {"version":3,"file":"TourPoint.cjs","sources":["../../../src/components/tour-point/TourPoint.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport ChevronRightIcon from '@mattermost/compass-icons/components/chevron-right';\nimport Button from '@/components/button/Button';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport PaginationDots from '@/components/pagination-dots/PaginationDots';\nimport type { BuiltInButtonProps } from '@/utils/props';\nimport { mergeClassNames } from '@/utils/props';\nimport { toKebab } from '@/utils/string';\nimport styles from './TourPoint.module.scss';\n\nexport type TourPointPointerPosition =\n | 'top-center'\n | 'top-left'\n | 'top-right'\n | 'bottom-center'\n | 'bottom-left'\n | 'bottom-right'\n | 'left-center'\n | 'right-center';\n\nexport interface TourPointProgress {\n pages: number;\n activePage: number;\n onPageChange?: (page: number) => void;\n /** Accessible name for the step dots. Default: \"Pages\". */\n label?: string;\n /** Accessible name for each step dot. Default: `Page {page}`. */\n formatPageLabel?: (page: number) => string;\n}\n\nexport interface TourPointPrimaryAction {\n /** Button label. Accepts translated nodes (e.g. `<FormattedMessage/>`). */\n label: ReactNode;\n onClick?: () => void;\n disabled?: boolean;\n /** Shows a spinner in the button and disables it. */\n loading?: boolean;\n}\n\nexport interface TourPointProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'title' | 'children'\n> {\n /** Tour step heading. Accepts translated nodes (e.g. `<FormattedMessage/>`). */\n title: ReactNode;\n children: ReactNode;\n /** Optional image between body copy and footer (e.g. screenshot as an img). */\n media?: ReactNode;\n /** Where the pointer sits on the card edge; omit or `none` to hide the pointer. */\n pointerPosition?: TourPointPointerPosition | 'none';\n /**\n * Animated marker at the arrow tip (Figma Pulsing Dot). Only applies when a\n * pointer is shown. Default on; set false for reduced motion preference at the\n * callsite or a static tour step.\n */\n showPulsingDot?: boolean;\n onClose?: () => void;\n /** Accessible name for the close button. Default: \"Close\". */\n closeLabel?: string;\n /** Extra attributes for the close button (e.g. `data-testid`). */\n closeButtonProps?: BuiltInButtonProps;\n progress?: TourPointProgress;\n primaryAction?: TourPointPrimaryAction;\n className?: string;\n}\n\nexport default function TourPoint({\n title,\n children,\n media,\n pointerPosition = 'top-center',\n showPulsingDot = true,\n onClose,\n closeLabel = 'Close',\n closeButtonProps,\n progress,\n primaryAction,\n className = '',\n ...rest\n}: TourPointProps) {\n const showPointer = pointerPosition !== 'none';\n const pointerModifier =\n showPointer &&\n styles[\n `tour-point--pointer-${toKebab(pointerPosition as TourPointPointerPosition)}`\n ];\n\n const rootClass = [styles['tour-point'], pointerModifier, className]\n .filter(Boolean)\n .join(' ');\n\n const showFooter = progress != null || primaryAction != null;\n\n return (\n <div {...rest} className={rootClass}>\n {showPointer && (\n <span className={styles['tour-point__pointer']} aria-hidden>\n <span className={styles['tour-point__pointer-triangle']} />\n {showPulsingDot && (\n <span className={styles['tour-point__pointer-pulse']}>\n <span className={styles['tour-point__pointer-pulse-ring']} />\n <span\n className={[\n styles['tour-point__pointer-pulse-ring'],\n styles['tour-point__pointer-pulse-ring--delay'],\n ].join(' ')}\n />\n <span className={styles['tour-point__pointer-pulse-core']} />\n </span>\n )}\n </span>\n )}\n\n <div className={styles['tour-point__panel']}>\n <div className={styles['tour-point__header']}>\n <h2 className={styles['tour-point__title']}>{title}</h2>\n {onClose && (\n <IconButton\n {...closeButtonProps}\n className={mergeClassNames(\n styles['tour-point__close'],\n closeButtonProps?.className,\n )}\n aria-label={closeLabel}\n size=\"small\"\n padding=\"compact\"\n style=\"default\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onClose}\n />\n )}\n </div>\n\n <div className={styles['tour-point__body']}>\n <div className={styles['tour-point__description']}>{children}</div>\n {media != null && (\n <div className={styles['tour-point__media']}>{media}</div>\n )}\n </div>\n\n {showFooter && (\n <div className={styles['tour-point__footer']}>\n {progress != null ? (\n <PaginationDots\n className={styles['tour-point__progress']}\n pages={progress.pages}\n activePage={progress.activePage}\n dotStyle=\"on-primary\"\n onPageChange={progress.onPageChange}\n label={progress.label}\n formatPageLabel={progress.formatPageLabel}\n />\n ) : (\n <span\n className={styles['tour-point__footer-spacer']}\n aria-hidden\n />\n )}\n\n {primaryAction != null ? (\n <div className={styles['tour-point__next-wrap']}>\n <Button\n emphasis=\"primary\"\n size=\"small\"\n trailingIcon={<Icon size=\"16\" glyph={<ChevronRightIcon />} />}\n disabled={primaryAction.disabled}\n loading={primaryAction.loading}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n </div>\n ) : null}\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"names":["TourPoint","title","children","media","pointerPosition","showPulsingDot","onClose","closeLabel","closeButtonProps","progress","primaryAction","className","rest","showPointer","pointerModifier","styles","toKebab","rootClass","showFooter","jsxs","jsx","IconButton","mergeClassNames","Icon","CloseIcon","PaginationDots","Button","ChevronRightIcon"],"mappings":"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"}