@mattermost/compass-ui 0.1.0-alpha.12 → 0.1.0-alpha.14

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 (398) 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 +67 -62
  51. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js.map +1 -1
  52. package/dist/components/checkbox/Checkbox.css +1 -1
  53. package/dist/components/checkbox/Checkbox.module.scss.cjs +1 -1
  54. package/dist/components/checkbox/Checkbox.module.scss.js +10 -10
  55. package/dist/components/chip/Chip.cjs.map +1 -1
  56. package/dist/components/chip/Chip.css +1 -1
  57. package/dist/components/chip/Chip.d.ts +4 -0
  58. package/dist/components/chip/Chip.d.ts.map +1 -1
  59. package/dist/components/chip/Chip.js.map +1 -1
  60. package/dist/components/chip/Chip.module.scss.cjs +1 -1
  61. package/dist/components/chip/Chip.module.scss.js +11 -11
  62. package/dist/components/combobox/Combobox.cjs +1 -1
  63. package/dist/components/combobox/Combobox.cjs.map +1 -1
  64. package/dist/components/combobox/Combobox.css +1 -1
  65. package/dist/components/combobox/Combobox.d.ts +24 -1
  66. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  67. package/dist/components/combobox/Combobox.js +307 -271
  68. package/dist/components/combobox/Combobox.js.map +1 -1
  69. package/dist/components/combobox/Combobox.module.scss.cjs +1 -1
  70. package/dist/components/combobox/Combobox.module.scss.js +28 -26
  71. package/dist/components/combobox/Combobox.module.scss.js.map +1 -1
  72. package/dist/components/date-range-picker/DateRangePicker.cjs +1 -1
  73. package/dist/components/date-range-picker/DateRangePicker.cjs.map +1 -1
  74. package/dist/components/date-range-picker/DateRangePicker.css +1 -1
  75. package/dist/components/date-range-picker/DateRangePicker.d.ts +18 -2
  76. package/dist/components/date-range-picker/DateRangePicker.d.ts.map +1 -1
  77. package/dist/components/date-range-picker/DateRangePicker.js +134 -126
  78. package/dist/components/date-range-picker/DateRangePicker.js.map +1 -1
  79. package/dist/components/date-range-picker/DateRangePicker.module.scss.cjs +1 -1
  80. package/dist/components/date-range-picker/DateRangePicker.module.scss.js +26 -26
  81. package/dist/components/emoji-popover/EmojiPopover.cjs +1 -1
  82. package/dist/components/emoji-popover/EmojiPopover.cjs.map +1 -1
  83. package/dist/components/emoji-popover/EmojiPopover.d.ts +25 -4
  84. package/dist/components/emoji-popover/EmojiPopover.d.ts.map +1 -1
  85. package/dist/components/emoji-popover/EmojiPopover.js +84 -73
  86. package/dist/components/emoji-popover/EmojiPopover.js.map +1 -1
  87. package/dist/components/empty-state/EmptyState.cjs +1 -1
  88. package/dist/components/empty-state/EmptyState.cjs.map +1 -1
  89. package/dist/components/empty-state/EmptyState.d.ts +3 -3
  90. package/dist/components/empty-state/EmptyState.d.ts.map +1 -1
  91. package/dist/components/empty-state/EmptyState.js +11 -9
  92. package/dist/components/empty-state/EmptyState.js.map +1 -1
  93. package/dist/components/error-message/ErrorMessage.cjs +1 -1
  94. package/dist/components/error-message/ErrorMessage.cjs.map +1 -1
  95. package/dist/components/error-message/ErrorMessage.d.ts +3 -3
  96. package/dist/components/error-message/ErrorMessage.d.ts.map +1 -1
  97. package/dist/components/error-message/ErrorMessage.js +10 -9
  98. package/dist/components/error-message/ErrorMessage.js.map +1 -1
  99. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.cjs.map +1 -1
  100. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.d.ts +7 -6
  101. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.d.ts.map +1 -1
  102. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.js.map +1 -1
  103. package/dist/components/global-banner/GlobalBanner.cjs +1 -1
  104. package/dist/components/global-banner/GlobalBanner.cjs.map +1 -1
  105. package/dist/components/global-banner/GlobalBanner.d.ts +10 -5
  106. package/dist/components/global-banner/GlobalBanner.d.ts.map +1 -1
  107. package/dist/components/global-banner/GlobalBanner.js +33 -26
  108. package/dist/components/global-banner/GlobalBanner.js.map +1 -1
  109. package/dist/components/icon-button/IconButton.css +1 -1
  110. package/dist/components/icon-button/IconButton.module.scss.cjs +1 -1
  111. package/dist/components/icon-button/IconButton.module.scss.js +15 -15
  112. package/dist/components/image-preview/ImagePreview.cjs +1 -1
  113. package/dist/components/image-preview/ImagePreview.cjs.map +1 -1
  114. package/dist/components/image-preview/ImagePreview.css +1 -1
  115. package/dist/components/image-preview/ImagePreview.d.ts +12 -1
  116. package/dist/components/image-preview/ImagePreview.d.ts.map +1 -1
  117. package/dist/components/image-preview/ImagePreview.js +25 -20
  118. package/dist/components/image-preview/ImagePreview.js.map +1 -1
  119. package/dist/components/image-preview/ImagePreview.module.scss.cjs +1 -1
  120. package/dist/components/image-preview/ImagePreview.module.scss.js +15 -15
  121. package/dist/components/link-preview/LinkPreview.cjs +1 -1
  122. package/dist/components/link-preview/LinkPreview.cjs.map +1 -1
  123. package/dist/components/link-preview/LinkPreview.d.ts +12 -6
  124. package/dist/components/link-preview/LinkPreview.d.ts.map +1 -1
  125. package/dist/components/link-preview/LinkPreview.js +19 -16
  126. package/dist/components/link-preview/LinkPreview.js.map +1 -1
  127. package/dist/components/mention-badge/MentionBadge.cjs +1 -1
  128. package/dist/components/mention-badge/MentionBadge.cjs.map +1 -1
  129. package/dist/components/mention-badge/MentionBadge.d.ts +3 -1
  130. package/dist/components/mention-badge/MentionBadge.d.ts.map +1 -1
  131. package/dist/components/mention-badge/MentionBadge.js +18 -23
  132. package/dist/components/mention-badge/MentionBadge.js.map +1 -1
  133. package/dist/components/menu-group-heading/MenuGroupHeading.cjs.map +1 -1
  134. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts +3 -3
  135. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts.map +1 -1
  136. package/dist/components/menu-group-heading/MenuGroupHeading.js.map +1 -1
  137. package/dist/components/menu-item/MenuItem.cjs +1 -1
  138. package/dist/components/menu-item/MenuItem.cjs.map +1 -1
  139. package/dist/components/menu-item/MenuItem.d.ts +2 -0
  140. package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
  141. package/dist/components/menu-item/MenuItem.js +29 -28
  142. package/dist/components/menu-item/MenuItem.js.map +1 -1
  143. package/dist/components/message-actions/MessageActions.cjs +1 -1
  144. package/dist/components/message-actions/MessageActions.cjs.map +1 -1
  145. package/dist/components/message-actions/MessageActions.d.ts +26 -2
  146. package/dist/components/message-actions/MessageActions.d.ts.map +1 -1
  147. package/dist/components/message-actions/MessageActions.js +67 -55
  148. package/dist/components/message-actions/MessageActions.js.map +1 -1
  149. package/dist/components/message-header/MessageHeader.cjs.map +1 -1
  150. package/dist/components/message-header/MessageHeader.d.ts +5 -3
  151. package/dist/components/message-header/MessageHeader.d.ts.map +1 -1
  152. package/dist/components/message-header/MessageHeader.js.map +1 -1
  153. package/dist/components/message-separator/MessageSeparator.cjs +1 -1
  154. package/dist/components/message-separator/MessageSeparator.cjs.map +1 -1
  155. package/dist/components/message-separator/MessageSeparator.d.ts +8 -4
  156. package/dist/components/message-separator/MessageSeparator.d.ts.map +1 -1
  157. package/dist/components/message-separator/MessageSeparator.js +16 -14
  158. package/dist/components/message-separator/MessageSeparator.js.map +1 -1
  159. package/dist/components/modal/Modal.cjs +1 -1
  160. package/dist/components/modal/Modal.cjs.map +1 -1
  161. package/dist/components/modal/Modal.css +1 -1
  162. package/dist/components/modal/Modal.d.ts +40 -4
  163. package/dist/components/modal/Modal.d.ts.map +1 -1
  164. package/dist/components/modal/Modal.js +105 -56
  165. package/dist/components/modal/Modal.js.map +1 -1
  166. package/dist/components/modal/Modal.module.scss.cjs +1 -1
  167. package/dist/components/modal/Modal.module.scss.js +14 -12
  168. package/dist/components/modal/Modal.module.scss.js.map +1 -1
  169. package/dist/components/modal-header/ModalHeader.cjs +1 -1
  170. package/dist/components/modal-header/ModalHeader.cjs.map +1 -1
  171. package/dist/components/modal-header/ModalHeader.css +1 -1
  172. package/dist/components/modal-header/ModalHeader.d.ts +16 -1
  173. package/dist/components/modal-header/ModalHeader.d.ts.map +1 -1
  174. package/dist/components/modal-header/ModalHeader.js +72 -57
  175. package/dist/components/modal-header/ModalHeader.js.map +1 -1
  176. package/dist/components/modal-header/ModalHeader.module.scss.cjs +1 -1
  177. package/dist/components/modal-header/ModalHeader.module.scss.js +15 -13
  178. package/dist/components/modal-header/ModalHeader.module.scss.js.map +1 -1
  179. package/dist/components/more-unreads-banner/MoreUnreadsBanner.cjs +1 -1
  180. package/dist/components/more-unreads-banner/MoreUnreadsBanner.cjs.map +1 -1
  181. package/dist/components/more-unreads-banner/MoreUnreadsBanner.d.ts +4 -1
  182. package/dist/components/more-unreads-banner/MoreUnreadsBanner.d.ts.map +1 -1
  183. package/dist/components/more-unreads-banner/MoreUnreadsBanner.js +11 -10
  184. package/dist/components/more-unreads-banner/MoreUnreadsBanner.js.map +1 -1
  185. package/dist/components/new-message-banner/NewMessageBanner.cjs +1 -1
  186. package/dist/components/new-message-banner/NewMessageBanner.cjs.map +1 -1
  187. package/dist/components/new-message-banner/NewMessageBanner.d.ts +15 -3
  188. package/dist/components/new-message-banner/NewMessageBanner.d.ts.map +1 -1
  189. package/dist/components/new-message-banner/NewMessageBanner.js +30 -22
  190. package/dist/components/new-message-banner/NewMessageBanner.js.map +1 -1
  191. package/dist/components/pagination-dots/PaginationDots.cjs +1 -1
  192. package/dist/components/pagination-dots/PaginationDots.cjs.map +1 -1
  193. package/dist/components/pagination-dots/PaginationDots.css +1 -1
  194. package/dist/components/pagination-dots/PaginationDots.d.ts +5 -1
  195. package/dist/components/pagination-dots/PaginationDots.d.ts.map +1 -1
  196. package/dist/components/pagination-dots/PaginationDots.js +22 -19
  197. package/dist/components/pagination-dots/PaginationDots.js.map +1 -1
  198. package/dist/components/pagination-dots/PaginationDots.module.scss.cjs +1 -1
  199. package/dist/components/pagination-dots/PaginationDots.module.scss.js +10 -10
  200. package/dist/components/permalink-preview/PermalinkPreview.cjs +1 -1
  201. package/dist/components/permalink-preview/PermalinkPreview.cjs.map +1 -1
  202. package/dist/components/permalink-preview/PermalinkPreview.d.ts +16 -5
  203. package/dist/components/permalink-preview/PermalinkPreview.d.ts.map +1 -1
  204. package/dist/components/permalink-preview/PermalinkPreview.js +39 -35
  205. package/dist/components/permalink-preview/PermalinkPreview.js.map +1 -1
  206. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.cjs +1 -1
  207. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.cjs.map +1 -1
  208. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.d.ts +8 -1
  209. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.d.ts.map +1 -1
  210. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.js +20 -17
  211. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.js.map +1 -1
  212. package/dist/components/popover-menu/PopoverMenu.cjs +1 -1
  213. package/dist/components/popover-menu/PopoverMenu.cjs.map +1 -1
  214. package/dist/components/popover-menu/PopoverMenu.css +1 -1
  215. package/dist/components/popover-menu/PopoverMenu.d.ts +9 -1
  216. package/dist/components/popover-menu/PopoverMenu.d.ts.map +1 -1
  217. package/dist/components/popover-menu/PopoverMenu.js +39 -28
  218. package/dist/components/popover-menu/PopoverMenu.js.map +1 -1
  219. package/dist/components/popover-menu/PopoverMenu.module.scss.cjs +1 -1
  220. package/dist/components/popover-menu/PopoverMenu.module.scss.js +12 -10
  221. package/dist/components/popover-menu/PopoverMenu.module.scss.js.map +1 -1
  222. package/dist/components/popover-notice/PopoverNotice.cjs +1 -1
  223. package/dist/components/popover-notice/PopoverNotice.cjs.map +1 -1
  224. package/dist/components/popover-notice/PopoverNotice.d.ts +13 -5
  225. package/dist/components/popover-notice/PopoverNotice.d.ts.map +1 -1
  226. package/dist/components/popover-notice/PopoverNotice.js +58 -48
  227. package/dist/components/popover-notice/PopoverNotice.js.map +1 -1
  228. package/dist/components/profile-popover/ProfilePopover.cjs +1 -1
  229. package/dist/components/profile-popover/ProfilePopover.cjs.map +1 -1
  230. package/dist/components/profile-popover/ProfilePopover.d.ts +34 -12
  231. package/dist/components/profile-popover/ProfilePopover.d.ts.map +1 -1
  232. package/dist/components/profile-popover/ProfilePopover.js +122 -106
  233. package/dist/components/profile-popover/ProfilePopover.js.map +1 -1
  234. package/dist/components/progress-bar/ProgressBar.cjs +1 -1
  235. package/dist/components/progress-bar/ProgressBar.cjs.map +1 -1
  236. package/dist/components/progress-bar/ProgressBar.d.ts +4 -3
  237. package/dist/components/progress-bar/ProgressBar.d.ts.map +1 -1
  238. package/dist/components/progress-bar/ProgressBar.js +9 -7
  239. package/dist/components/progress-bar/ProgressBar.js.map +1 -1
  240. package/dist/components/radio/Radio.css +1 -1
  241. package/dist/components/radio/Radio.module.scss.cjs +1 -1
  242. package/dist/components/radio/Radio.module.scss.js +11 -11
  243. package/dist/components/reaction-button/ReactionButton.cjs +1 -1
  244. package/dist/components/reaction-button/ReactionButton.cjs.map +1 -1
  245. package/dist/components/reaction-button/ReactionButton.d.ts +3 -1
  246. package/dist/components/reaction-button/ReactionButton.d.ts.map +1 -1
  247. package/dist/components/reaction-button/ReactionButton.js +20 -18
  248. package/dist/components/reaction-button/ReactionButton.js.map +1 -1
  249. package/dist/components/reactions-row/ReactionsRow.cjs +1 -1
  250. package/dist/components/reactions-row/ReactionsRow.cjs.map +1 -1
  251. package/dist/components/reactions-row/ReactionsRow.d.ts +10 -2
  252. package/dist/components/reactions-row/ReactionsRow.d.ts.map +1 -1
  253. package/dist/components/reactions-row/ReactionsRow.js +33 -28
  254. package/dist/components/reactions-row/ReactionsRow.js.map +1 -1
  255. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs +1 -1
  256. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs.map +1 -1
  257. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts +15 -7
  258. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts.map +1 -1
  259. package/dist/components/right-sidebar-header/RightSidebarHeader.js +23 -19
  260. package/dist/components/right-sidebar-header/RightSidebarHeader.js.map +1 -1
  261. package/dist/components/scrollbar/Scrollbar.cjs +1 -1
  262. package/dist/components/scrollbar/Scrollbar.cjs.map +1 -1
  263. package/dist/components/scrollbar/Scrollbar.css +1 -1
  264. package/dist/components/scrollbar/Scrollbar.d.ts +2 -2
  265. package/dist/components/scrollbar/Scrollbar.d.ts.map +1 -1
  266. package/dist/components/scrollbar/Scrollbar.js +24 -15
  267. package/dist/components/scrollbar/Scrollbar.js.map +1 -1
  268. package/dist/components/scrollbar/Scrollbar.module.scss.cjs +1 -1
  269. package/dist/components/scrollbar/Scrollbar.module.scss.js +4 -4
  270. package/dist/components/scrollbar/simplebar-vendor.css +1 -0
  271. package/dist/components/search-input/SearchInput.cjs +1 -1
  272. package/dist/components/search-input/SearchInput.cjs.map +1 -1
  273. package/dist/components/search-input/SearchInput.d.ts +5 -0
  274. package/dist/components/search-input/SearchInput.d.ts.map +1 -1
  275. package/dist/components/search-input/SearchInput.js +92 -85
  276. package/dist/components/search-input/SearchInput.js.map +1 -1
  277. package/dist/components/search-tip-banner/SearchTipBanner.cjs +1 -1
  278. package/dist/components/search-tip-banner/SearchTipBanner.cjs.map +1 -1
  279. package/dist/components/search-tip-banner/SearchTipBanner.d.ts +8 -5
  280. package/dist/components/search-tip-banner/SearchTipBanner.d.ts.map +1 -1
  281. package/dist/components/search-tip-banner/SearchTipBanner.js +17 -16
  282. package/dist/components/search-tip-banner/SearchTipBanner.js.map +1 -1
  283. package/dist/components/section-notice/SectionNotice.cjs +1 -1
  284. package/dist/components/section-notice/SectionNotice.cjs.map +1 -1
  285. package/dist/components/section-notice/SectionNotice.d.ts +16 -3
  286. package/dist/components/section-notice/SectionNotice.d.ts.map +1 -1
  287. package/dist/components/section-notice/SectionNotice.js +64 -48
  288. package/dist/components/section-notice/SectionNotice.js.map +1 -1
  289. package/dist/components/select/Select.cjs +1 -1
  290. package/dist/components/select/Select.cjs.map +1 -1
  291. package/dist/components/select/Select.d.ts +8 -1
  292. package/dist/components/select/Select.d.ts.map +1 -1
  293. package/dist/components/select/Select.js +81 -79
  294. package/dist/components/select/Select.js.map +1 -1
  295. package/dist/components/spinner/Spinner.cjs.map +1 -1
  296. package/dist/components/spinner/Spinner.css +1 -1
  297. package/dist/components/spinner/Spinner.d.ts +1 -0
  298. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  299. package/dist/components/spinner/Spinner.js.map +1 -1
  300. package/dist/components/spinner/Spinner.module.scss.cjs +1 -1
  301. package/dist/components/spinner/Spinner.module.scss.js +5 -5
  302. package/dist/components/status-badge/StatusBadge.css +1 -1
  303. package/dist/components/status-badge/StatusBadge.module.scss.cjs +1 -1
  304. package/dist/components/status-badge/StatusBadge.module.scss.js +11 -11
  305. package/dist/components/switch/Switch.css +1 -1
  306. package/dist/components/switch/Switch.module.scss.cjs +1 -1
  307. package/dist/components/switch/Switch.module.scss.js +17 -17
  308. package/dist/components/tabs/Tabs.cjs +1 -1
  309. package/dist/components/tabs/Tabs.cjs.map +1 -1
  310. package/dist/components/tabs/Tabs.css +1 -1
  311. package/dist/components/tabs/Tabs.d.ts +14 -3
  312. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  313. package/dist/components/tabs/Tabs.js +62 -53
  314. package/dist/components/tabs/Tabs.js.map +1 -1
  315. package/dist/components/tabs/Tabs.module.scss.cjs +1 -1
  316. package/dist/components/tabs/Tabs.module.scss.js +13 -12
  317. package/dist/components/tabs/Tabs.module.scss.js.map +1 -1
  318. package/dist/components/tabs/index.d.ts +1 -1
  319. package/dist/components/tabs/index.d.ts.map +1 -1
  320. package/dist/components/tag/Tag.cjs +1 -1
  321. package/dist/components/tag/Tag.cjs.map +1 -1
  322. package/dist/components/tag/Tag.d.ts +3 -3
  323. package/dist/components/tag/Tag.d.ts.map +1 -1
  324. package/dist/components/tag/Tag.js +12 -11
  325. package/dist/components/tag/Tag.js.map +1 -1
  326. package/dist/components/thread-footer/ThreadFooter.cjs +1 -1
  327. package/dist/components/thread-footer/ThreadFooter.cjs.map +1 -1
  328. package/dist/components/thread-footer/ThreadFooter.css +1 -1
  329. package/dist/components/thread-footer/ThreadFooter.d.ts +19 -3
  330. package/dist/components/thread-footer/ThreadFooter.d.ts.map +1 -1
  331. package/dist/components/thread-footer/ThreadFooter.js +53 -48
  332. package/dist/components/thread-footer/ThreadFooter.js.map +1 -1
  333. package/dist/components/thread-footer/ThreadFooter.module.scss.cjs +1 -1
  334. package/dist/components/thread-footer/ThreadFooter.module.scss.js +18 -18
  335. package/dist/components/thread-list-item/ThreadListItem.cjs +1 -1
  336. package/dist/components/thread-list-item/ThreadListItem.cjs.map +1 -1
  337. package/dist/components/thread-list-item/ThreadListItem.d.ts +15 -7
  338. package/dist/components/thread-list-item/ThreadListItem.d.ts.map +1 -1
  339. package/dist/components/thread-list-item/ThreadListItem.js +66 -62
  340. package/dist/components/thread-list-item/ThreadListItem.js.map +1 -1
  341. package/dist/components/toast/Toast.cjs +1 -1
  342. package/dist/components/toast/Toast.cjs.map +1 -1
  343. package/dist/components/toast/Toast.d.ts +8 -3
  344. package/dist/components/toast/Toast.d.ts.map +1 -1
  345. package/dist/components/toast/Toast.js +47 -39
  346. package/dist/components/toast/Toast.js.map +1 -1
  347. package/dist/components/tour-point/TourPoint.cjs +1 -1
  348. package/dist/components/tour-point/TourPoint.cjs.map +1 -1
  349. package/dist/components/tour-point/TourPoint.css +1 -1
  350. package/dist/components/tour-point/TourPoint.d.ts +19 -5
  351. package/dist/components/tour-point/TourPoint.d.ts.map +1 -1
  352. package/dist/components/tour-point/TourPoint.js +66 -54
  353. package/dist/components/tour-point/TourPoint.js.map +1 -1
  354. package/dist/components/tour-point/TourPoint.module.scss.cjs +1 -1
  355. package/dist/components/tour-point/TourPoint.module.scss.js +28 -28
  356. package/dist/components/unread-badge/UnreadBadge.css +1 -1
  357. package/dist/components/unread-badge/UnreadBadge.module.scss.cjs +1 -1
  358. package/dist/components/unread-badge/UnreadBadge.module.scss.js +5 -5
  359. package/dist/components/user-avatar/UserAvatar.css +1 -1
  360. package/dist/components/user-avatar/UserAvatar.module.scss.cjs +1 -1
  361. package/dist/components/user-avatar/UserAvatar.module.scss.js +26 -26
  362. package/dist/components/user-avatar-group/UserAvatarGroup.cjs +1 -1
  363. package/dist/components/user-avatar-group/UserAvatarGroup.cjs.map +1 -1
  364. package/dist/components/user-avatar-group/UserAvatarGroup.css +1 -1
  365. package/dist/components/user-avatar-group/UserAvatarGroup.d.ts +8 -1
  366. package/dist/components/user-avatar-group/UserAvatarGroup.d.ts.map +1 -1
  367. package/dist/components/user-avatar-group/UserAvatarGroup.js +22 -18
  368. package/dist/components/user-avatar-group/UserAvatarGroup.js.map +1 -1
  369. package/dist/components/user-avatar-group/UserAvatarGroup.module.scss.cjs +1 -1
  370. package/dist/components/user-avatar-group/UserAvatarGroup.module.scss.js +14 -14
  371. package/dist/hooks/use-modal-focus.cjs +2 -0
  372. package/dist/hooks/use-modal-focus.cjs.map +1 -0
  373. package/dist/hooks/use-modal-focus.d.ts +26 -0
  374. package/dist/hooks/use-modal-focus.d.ts.map +1 -0
  375. package/dist/hooks/use-modal-focus.js +91 -0
  376. package/dist/hooks/use-modal-focus.js.map +1 -0
  377. package/dist/hooks/use-popover-transition.cjs +1 -1
  378. package/dist/hooks/use-popover-transition.cjs.map +1 -1
  379. package/dist/hooks/use-popover-transition.d.ts +6 -4
  380. package/dist/hooks/use-popover-transition.d.ts.map +1 -1
  381. package/dist/hooks/use-popover-transition.js +19 -15
  382. package/dist/hooks/use-popover-transition.js.map +1 -1
  383. package/dist/index.d.ts +1 -0
  384. package/dist/index.d.ts.map +1 -1
  385. package/dist/utils/duration.cjs +2 -0
  386. package/dist/utils/duration.cjs.map +1 -0
  387. package/dist/utils/duration.d.ts +8 -0
  388. package/dist/utils/duration.d.ts.map +1 -0
  389. package/dist/utils/duration.js +11 -0
  390. package/dist/utils/duration.js.map +1 -0
  391. package/dist/utils/props.cjs +2 -0
  392. package/dist/utils/props.cjs.map +1 -0
  393. package/dist/utils/props.d.ts +13 -0
  394. package/dist/utils/props.d.ts.map +1 -0
  395. package/dist/utils/props.js +7 -0
  396. package/dist/utils/props.js.map +1 -0
  397. package/package.json +4 -6
  398. 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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"}