@mattermost/compass-ui 0.1.0-alpha.11 → 0.1.0-alpha.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/README.md +15 -3
  2. package/dist/compass-ui-standalone.css +270 -276
  3. package/dist/compass-ui.css +293 -290
  4. package/dist/components/action-button/ActionButton.cjs.map +1 -1
  5. package/dist/components/action-button/ActionButton.d.ts +2 -1
  6. package/dist/components/action-button/ActionButton.d.ts.map +1 -1
  7. package/dist/components/action-button/ActionButton.js.map +1 -1
  8. package/dist/components/admin-console-header/AdminConsoleHeader.cjs.map +1 -1
  9. package/dist/components/admin-console-header/AdminConsoleHeader.d.ts +3 -1
  10. package/dist/components/admin-console-header/AdminConsoleHeader.d.ts.map +1 -1
  11. package/dist/components/admin-console-header/AdminConsoleHeader.js.map +1 -1
  12. package/dist/components/admin-panel/AdminPanel.cjs +1 -1
  13. package/dist/components/admin-panel/AdminPanel.cjs.map +1 -1
  14. package/dist/components/admin-panel/AdminPanel.d.ts +13 -6
  15. package/dist/components/admin-panel/AdminPanel.d.ts.map +1 -1
  16. package/dist/components/admin-panel/AdminPanel.js +21 -15
  17. package/dist/components/admin-panel/AdminPanel.js.map +1 -1
  18. package/dist/components/admin-panel-footer/AdminPanelFooter.cjs.map +1 -1
  19. package/dist/components/admin-panel-footer/AdminPanelFooter.d.ts +8 -4
  20. package/dist/components/admin-panel-footer/AdminPanelFooter.d.ts.map +1 -1
  21. package/dist/components/admin-panel-footer/AdminPanelFooter.js.map +1 -1
  22. package/dist/components/admin-panel-header/AdminPanelHeader.cjs +1 -1
  23. package/dist/components/admin-panel-header/AdminPanelHeader.cjs.map +1 -1
  24. package/dist/components/admin-panel-header/AdminPanelHeader.css +1 -1
  25. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts +11 -4
  26. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts.map +1 -1
  27. package/dist/components/admin-panel-header/AdminPanelHeader.js +25 -23
  28. package/dist/components/admin-panel-header/AdminPanelHeader.js.map +1 -1
  29. package/dist/components/admin-panel-header/AdminPanelHeader.module.scss.cjs +1 -1
  30. package/dist/components/admin-panel-header/AdminPanelHeader.module.scss.js +10 -10
  31. package/dist/components/attachment-card/AttachmentCard.cjs +1 -1
  32. package/dist/components/attachment-card/AttachmentCard.cjs.map +1 -1
  33. package/dist/components/attachment-card/AttachmentCard.d.ts +18 -5
  34. package/dist/components/attachment-card/AttachmentCard.d.ts.map +1 -1
  35. package/dist/components/attachment-card/AttachmentCard.js +85 -79
  36. package/dist/components/attachment-card/AttachmentCard.js.map +1 -1
  37. package/dist/components/card-button/CardButton.css +1 -1
  38. package/dist/components/card-button/CardButton.module.scss.cjs +1 -1
  39. package/dist/components/card-button/CardButton.module.scss.js +7 -7
  40. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.cjs +1 -1
  41. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.cjs.map +1 -1
  42. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.d.ts +5 -4
  43. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.d.ts.map +1 -1
  44. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.js +7 -7
  45. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.js.map +1 -1
  46. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs +1 -1
  47. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs.map +1 -1
  48. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts +10 -4
  49. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts.map +1 -1
  50. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js +64 -60
  51. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js.map +1 -1
  52. package/dist/components/chip/Chip.cjs.map +1 -1
  53. package/dist/components/chip/Chip.css +1 -1
  54. package/dist/components/chip/Chip.d.ts +4 -0
  55. package/dist/components/chip/Chip.d.ts.map +1 -1
  56. package/dist/components/chip/Chip.js.map +1 -1
  57. package/dist/components/chip/Chip.module.scss.cjs +1 -1
  58. package/dist/components/chip/Chip.module.scss.js +11 -11
  59. package/dist/components/combobox/Combobox.cjs +1 -1
  60. package/dist/components/combobox/Combobox.cjs.map +1 -1
  61. package/dist/components/combobox/Combobox.css +1 -1
  62. package/dist/components/combobox/Combobox.d.ts +24 -1
  63. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  64. package/dist/components/combobox/Combobox.js +307 -271
  65. package/dist/components/combobox/Combobox.js.map +1 -1
  66. package/dist/components/combobox/Combobox.module.scss.cjs +1 -1
  67. package/dist/components/combobox/Combobox.module.scss.js +28 -26
  68. package/dist/components/combobox/Combobox.module.scss.js.map +1 -1
  69. package/dist/components/date-range-picker/DateRangePicker.cjs +1 -1
  70. package/dist/components/date-range-picker/DateRangePicker.cjs.map +1 -1
  71. package/dist/components/date-range-picker/DateRangePicker.css +1 -1
  72. package/dist/components/date-range-picker/DateRangePicker.d.ts +18 -2
  73. package/dist/components/date-range-picker/DateRangePicker.d.ts.map +1 -1
  74. package/dist/components/date-range-picker/DateRangePicker.js +134 -126
  75. package/dist/components/date-range-picker/DateRangePicker.js.map +1 -1
  76. package/dist/components/date-range-picker/DateRangePicker.module.scss.cjs +1 -1
  77. package/dist/components/date-range-picker/DateRangePicker.module.scss.js +26 -26
  78. package/dist/components/emoji-popover/EmojiPopover.cjs +1 -1
  79. package/dist/components/emoji-popover/EmojiPopover.cjs.map +1 -1
  80. package/dist/components/emoji-popover/EmojiPopover.d.ts +25 -4
  81. package/dist/components/emoji-popover/EmojiPopover.d.ts.map +1 -1
  82. package/dist/components/emoji-popover/EmojiPopover.js +84 -73
  83. package/dist/components/emoji-popover/EmojiPopover.js.map +1 -1
  84. package/dist/components/empty-state/EmptyState.cjs +1 -1
  85. package/dist/components/empty-state/EmptyState.cjs.map +1 -1
  86. package/dist/components/empty-state/EmptyState.d.ts +3 -3
  87. package/dist/components/empty-state/EmptyState.d.ts.map +1 -1
  88. package/dist/components/empty-state/EmptyState.js +11 -9
  89. package/dist/components/empty-state/EmptyState.js.map +1 -1
  90. package/dist/components/error-message/ErrorMessage.cjs +1 -1
  91. package/dist/components/error-message/ErrorMessage.cjs.map +1 -1
  92. package/dist/components/error-message/ErrorMessage.d.ts +3 -3
  93. package/dist/components/error-message/ErrorMessage.d.ts.map +1 -1
  94. package/dist/components/error-message/ErrorMessage.js +10 -9
  95. package/dist/components/error-message/ErrorMessage.js.map +1 -1
  96. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.cjs.map +1 -1
  97. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.d.ts +7 -6
  98. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.d.ts.map +1 -1
  99. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.js.map +1 -1
  100. package/dist/components/global-banner/GlobalBanner.cjs +1 -1
  101. package/dist/components/global-banner/GlobalBanner.cjs.map +1 -1
  102. package/dist/components/global-banner/GlobalBanner.d.ts +10 -5
  103. package/dist/components/global-banner/GlobalBanner.d.ts.map +1 -1
  104. package/dist/components/global-banner/GlobalBanner.js +33 -26
  105. package/dist/components/global-banner/GlobalBanner.js.map +1 -1
  106. package/dist/components/icon-button/IconButton.css +1 -1
  107. package/dist/components/icon-button/IconButton.module.scss.cjs +1 -1
  108. package/dist/components/icon-button/IconButton.module.scss.js +15 -15
  109. package/dist/components/image-preview/ImagePreview.cjs +1 -1
  110. package/dist/components/image-preview/ImagePreview.cjs.map +1 -1
  111. package/dist/components/image-preview/ImagePreview.css +1 -1
  112. package/dist/components/image-preview/ImagePreview.d.ts +12 -1
  113. package/dist/components/image-preview/ImagePreview.d.ts.map +1 -1
  114. package/dist/components/image-preview/ImagePreview.js +25 -20
  115. package/dist/components/image-preview/ImagePreview.js.map +1 -1
  116. package/dist/components/image-preview/ImagePreview.module.scss.cjs +1 -1
  117. package/dist/components/image-preview/ImagePreview.module.scss.js +15 -15
  118. package/dist/components/link-preview/LinkPreview.cjs +1 -1
  119. package/dist/components/link-preview/LinkPreview.cjs.map +1 -1
  120. package/dist/components/link-preview/LinkPreview.d.ts +12 -6
  121. package/dist/components/link-preview/LinkPreview.d.ts.map +1 -1
  122. package/dist/components/link-preview/LinkPreview.js +19 -16
  123. package/dist/components/link-preview/LinkPreview.js.map +1 -1
  124. package/dist/components/mention-badge/MentionBadge.cjs +1 -1
  125. package/dist/components/mention-badge/MentionBadge.cjs.map +1 -1
  126. package/dist/components/mention-badge/MentionBadge.d.ts +3 -1
  127. package/dist/components/mention-badge/MentionBadge.d.ts.map +1 -1
  128. package/dist/components/mention-badge/MentionBadge.js +18 -23
  129. package/dist/components/mention-badge/MentionBadge.js.map +1 -1
  130. package/dist/components/menu-group-heading/MenuGroupHeading.cjs.map +1 -1
  131. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts +3 -3
  132. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts.map +1 -1
  133. package/dist/components/menu-group-heading/MenuGroupHeading.js.map +1 -1
  134. package/dist/components/menu-item/MenuItem.cjs +1 -1
  135. package/dist/components/menu-item/MenuItem.cjs.map +1 -1
  136. package/dist/components/menu-item/MenuItem.d.ts +2 -0
  137. package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
  138. package/dist/components/menu-item/MenuItem.js +29 -28
  139. package/dist/components/menu-item/MenuItem.js.map +1 -1
  140. package/dist/components/message-actions/MessageActions.cjs +1 -1
  141. package/dist/components/message-actions/MessageActions.cjs.map +1 -1
  142. package/dist/components/message-actions/MessageActions.d.ts +26 -2
  143. package/dist/components/message-actions/MessageActions.d.ts.map +1 -1
  144. package/dist/components/message-actions/MessageActions.js +67 -55
  145. package/dist/components/message-actions/MessageActions.js.map +1 -1
  146. package/dist/components/message-header/MessageHeader.cjs.map +1 -1
  147. package/dist/components/message-header/MessageHeader.d.ts +5 -3
  148. package/dist/components/message-header/MessageHeader.d.ts.map +1 -1
  149. package/dist/components/message-header/MessageHeader.js.map +1 -1
  150. package/dist/components/message-separator/MessageSeparator.cjs +1 -1
  151. package/dist/components/message-separator/MessageSeparator.cjs.map +1 -1
  152. package/dist/components/message-separator/MessageSeparator.d.ts +8 -4
  153. package/dist/components/message-separator/MessageSeparator.d.ts.map +1 -1
  154. package/dist/components/message-separator/MessageSeparator.js +16 -14
  155. package/dist/components/message-separator/MessageSeparator.js.map +1 -1
  156. package/dist/components/modal/Modal.cjs +1 -1
  157. package/dist/components/modal/Modal.cjs.map +1 -1
  158. package/dist/components/modal/Modal.d.ts +17 -3
  159. package/dist/components/modal/Modal.d.ts.map +1 -1
  160. package/dist/components/modal/Modal.js +38 -26
  161. package/dist/components/modal/Modal.js.map +1 -1
  162. package/dist/components/modal-header/ModalHeader.cjs +1 -1
  163. package/dist/components/modal-header/ModalHeader.cjs.map +1 -1
  164. package/dist/components/modal-header/ModalHeader.css +1 -1
  165. package/dist/components/modal-header/ModalHeader.d.ts +16 -1
  166. package/dist/components/modal-header/ModalHeader.d.ts.map +1 -1
  167. package/dist/components/modal-header/ModalHeader.js +72 -57
  168. package/dist/components/modal-header/ModalHeader.js.map +1 -1
  169. package/dist/components/modal-header/ModalHeader.module.scss.cjs +1 -1
  170. package/dist/components/modal-header/ModalHeader.module.scss.js +15 -13
  171. package/dist/components/modal-header/ModalHeader.module.scss.js.map +1 -1
  172. package/dist/components/more-unreads-banner/MoreUnreadsBanner.cjs +1 -1
  173. package/dist/components/more-unreads-banner/MoreUnreadsBanner.cjs.map +1 -1
  174. package/dist/components/more-unreads-banner/MoreUnreadsBanner.d.ts +4 -1
  175. package/dist/components/more-unreads-banner/MoreUnreadsBanner.d.ts.map +1 -1
  176. package/dist/components/more-unreads-banner/MoreUnreadsBanner.js +11 -10
  177. package/dist/components/more-unreads-banner/MoreUnreadsBanner.js.map +1 -1
  178. package/dist/components/new-message-banner/NewMessageBanner.cjs +1 -1
  179. package/dist/components/new-message-banner/NewMessageBanner.cjs.map +1 -1
  180. package/dist/components/new-message-banner/NewMessageBanner.d.ts +15 -3
  181. package/dist/components/new-message-banner/NewMessageBanner.d.ts.map +1 -1
  182. package/dist/components/new-message-banner/NewMessageBanner.js +30 -22
  183. package/dist/components/new-message-banner/NewMessageBanner.js.map +1 -1
  184. package/dist/components/pagination-dots/PaginationDots.cjs +1 -1
  185. package/dist/components/pagination-dots/PaginationDots.cjs.map +1 -1
  186. package/dist/components/pagination-dots/PaginationDots.css +1 -1
  187. package/dist/components/pagination-dots/PaginationDots.d.ts +5 -1
  188. package/dist/components/pagination-dots/PaginationDots.d.ts.map +1 -1
  189. package/dist/components/pagination-dots/PaginationDots.js +22 -19
  190. package/dist/components/pagination-dots/PaginationDots.js.map +1 -1
  191. package/dist/components/pagination-dots/PaginationDots.module.scss.cjs +1 -1
  192. package/dist/components/pagination-dots/PaginationDots.module.scss.js +10 -10
  193. package/dist/components/permalink-preview/PermalinkPreview.cjs +1 -1
  194. package/dist/components/permalink-preview/PermalinkPreview.cjs.map +1 -1
  195. package/dist/components/permalink-preview/PermalinkPreview.d.ts +16 -5
  196. package/dist/components/permalink-preview/PermalinkPreview.d.ts.map +1 -1
  197. package/dist/components/permalink-preview/PermalinkPreview.js +39 -35
  198. package/dist/components/permalink-preview/PermalinkPreview.js.map +1 -1
  199. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.cjs +1 -1
  200. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.cjs.map +1 -1
  201. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.d.ts +8 -1
  202. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.d.ts.map +1 -1
  203. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.js +20 -17
  204. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.js.map +1 -1
  205. package/dist/components/popover-notice/PopoverNotice.cjs +1 -1
  206. package/dist/components/popover-notice/PopoverNotice.cjs.map +1 -1
  207. package/dist/components/popover-notice/PopoverNotice.d.ts +13 -5
  208. package/dist/components/popover-notice/PopoverNotice.d.ts.map +1 -1
  209. package/dist/components/popover-notice/PopoverNotice.js +58 -48
  210. package/dist/components/popover-notice/PopoverNotice.js.map +1 -1
  211. package/dist/components/profile-popover/ProfilePopover.cjs +1 -1
  212. package/dist/components/profile-popover/ProfilePopover.cjs.map +1 -1
  213. package/dist/components/profile-popover/ProfilePopover.d.ts +34 -12
  214. package/dist/components/profile-popover/ProfilePopover.d.ts.map +1 -1
  215. package/dist/components/profile-popover/ProfilePopover.js +122 -106
  216. package/dist/components/profile-popover/ProfilePopover.js.map +1 -1
  217. package/dist/components/progress-bar/ProgressBar.cjs +1 -1
  218. package/dist/components/progress-bar/ProgressBar.cjs.map +1 -1
  219. package/dist/components/progress-bar/ProgressBar.d.ts +4 -3
  220. package/dist/components/progress-bar/ProgressBar.d.ts.map +1 -1
  221. package/dist/components/progress-bar/ProgressBar.js +9 -7
  222. package/dist/components/progress-bar/ProgressBar.js.map +1 -1
  223. package/dist/components/radio/Radio.css +1 -1
  224. package/dist/components/radio/Radio.module.scss.cjs +1 -1
  225. package/dist/components/radio/Radio.module.scss.js +12 -12
  226. package/dist/components/reaction-button/ReactionButton.cjs +1 -1
  227. package/dist/components/reaction-button/ReactionButton.cjs.map +1 -1
  228. package/dist/components/reaction-button/ReactionButton.d.ts +3 -1
  229. package/dist/components/reaction-button/ReactionButton.d.ts.map +1 -1
  230. package/dist/components/reaction-button/ReactionButton.js +20 -18
  231. package/dist/components/reaction-button/ReactionButton.js.map +1 -1
  232. package/dist/components/reactions-row/ReactionsRow.cjs +1 -1
  233. package/dist/components/reactions-row/ReactionsRow.cjs.map +1 -1
  234. package/dist/components/reactions-row/ReactionsRow.d.ts +10 -2
  235. package/dist/components/reactions-row/ReactionsRow.d.ts.map +1 -1
  236. package/dist/components/reactions-row/ReactionsRow.js +33 -28
  237. package/dist/components/reactions-row/ReactionsRow.js.map +1 -1
  238. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs +1 -1
  239. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs.map +1 -1
  240. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts +15 -7
  241. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts.map +1 -1
  242. package/dist/components/right-sidebar-header/RightSidebarHeader.js +23 -19
  243. package/dist/components/right-sidebar-header/RightSidebarHeader.js.map +1 -1
  244. package/dist/components/scrollbar/Scrollbar.cjs +1 -1
  245. package/dist/components/scrollbar/Scrollbar.cjs.map +1 -1
  246. package/dist/components/scrollbar/Scrollbar.css +1 -1
  247. package/dist/components/scrollbar/Scrollbar.d.ts +2 -2
  248. package/dist/components/scrollbar/Scrollbar.d.ts.map +1 -1
  249. package/dist/components/scrollbar/Scrollbar.js +24 -15
  250. package/dist/components/scrollbar/Scrollbar.js.map +1 -1
  251. package/dist/components/scrollbar/Scrollbar.module.scss.cjs +1 -1
  252. package/dist/components/scrollbar/Scrollbar.module.scss.js +4 -4
  253. package/dist/components/scrollbar/simplebar-vendor.css +1 -0
  254. package/dist/components/search-input/SearchInput.cjs +1 -1
  255. package/dist/components/search-input/SearchInput.cjs.map +1 -1
  256. package/dist/components/search-input/SearchInput.d.ts +5 -0
  257. package/dist/components/search-input/SearchInput.d.ts.map +1 -1
  258. package/dist/components/search-input/SearchInput.js +92 -85
  259. package/dist/components/search-input/SearchInput.js.map +1 -1
  260. package/dist/components/search-tip-banner/SearchTipBanner.cjs +1 -1
  261. package/dist/components/search-tip-banner/SearchTipBanner.cjs.map +1 -1
  262. package/dist/components/search-tip-banner/SearchTipBanner.d.ts +8 -5
  263. package/dist/components/search-tip-banner/SearchTipBanner.d.ts.map +1 -1
  264. package/dist/components/search-tip-banner/SearchTipBanner.js +17 -16
  265. package/dist/components/search-tip-banner/SearchTipBanner.js.map +1 -1
  266. package/dist/components/section-notice/SectionNotice.cjs +1 -1
  267. package/dist/components/section-notice/SectionNotice.cjs.map +1 -1
  268. package/dist/components/section-notice/SectionNotice.d.ts +16 -3
  269. package/dist/components/section-notice/SectionNotice.d.ts.map +1 -1
  270. package/dist/components/section-notice/SectionNotice.js +64 -48
  271. package/dist/components/section-notice/SectionNotice.js.map +1 -1
  272. package/dist/components/select/Select.cjs +1 -1
  273. package/dist/components/select/Select.cjs.map +1 -1
  274. package/dist/components/select/Select.d.ts +8 -1
  275. package/dist/components/select/Select.d.ts.map +1 -1
  276. package/dist/components/select/Select.js +81 -79
  277. package/dist/components/select/Select.js.map +1 -1
  278. package/dist/components/spinner/Spinner.cjs.map +1 -1
  279. package/dist/components/spinner/Spinner.css +1 -1
  280. package/dist/components/spinner/Spinner.d.ts +1 -0
  281. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  282. package/dist/components/spinner/Spinner.js.map +1 -1
  283. package/dist/components/spinner/Spinner.module.scss.cjs +1 -1
  284. package/dist/components/spinner/Spinner.module.scss.js +5 -5
  285. package/dist/components/status-badge/StatusBadge.css +1 -1
  286. package/dist/components/status-badge/StatusBadge.module.scss.cjs +1 -1
  287. package/dist/components/status-badge/StatusBadge.module.scss.js +11 -11
  288. package/dist/components/switch/Switch.css +1 -1
  289. package/dist/components/switch/Switch.module.scss.cjs +1 -1
  290. package/dist/components/switch/Switch.module.scss.js +14 -14
  291. package/dist/components/tabs/Tabs.cjs +1 -1
  292. package/dist/components/tabs/Tabs.cjs.map +1 -1
  293. package/dist/components/tabs/Tabs.css +1 -1
  294. package/dist/components/tabs/Tabs.d.ts +11 -3
  295. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  296. package/dist/components/tabs/Tabs.js +56 -53
  297. package/dist/components/tabs/Tabs.js.map +1 -1
  298. package/dist/components/tabs/Tabs.module.scss.cjs +1 -1
  299. package/dist/components/tabs/Tabs.module.scss.js +9 -9
  300. package/dist/components/tag/Tag.cjs +1 -1
  301. package/dist/components/tag/Tag.cjs.map +1 -1
  302. package/dist/components/tag/Tag.d.ts +3 -3
  303. package/dist/components/tag/Tag.d.ts.map +1 -1
  304. package/dist/components/tag/Tag.js +12 -11
  305. package/dist/components/tag/Tag.js.map +1 -1
  306. package/dist/components/thread-footer/ThreadFooter.cjs +1 -1
  307. package/dist/components/thread-footer/ThreadFooter.cjs.map +1 -1
  308. package/dist/components/thread-footer/ThreadFooter.css +1 -1
  309. package/dist/components/thread-footer/ThreadFooter.d.ts +19 -3
  310. package/dist/components/thread-footer/ThreadFooter.d.ts.map +1 -1
  311. package/dist/components/thread-footer/ThreadFooter.js +53 -48
  312. package/dist/components/thread-footer/ThreadFooter.js.map +1 -1
  313. package/dist/components/thread-footer/ThreadFooter.module.scss.cjs +1 -1
  314. package/dist/components/thread-footer/ThreadFooter.module.scss.js +18 -18
  315. package/dist/components/thread-list-item/ThreadListItem.cjs +1 -1
  316. package/dist/components/thread-list-item/ThreadListItem.cjs.map +1 -1
  317. package/dist/components/thread-list-item/ThreadListItem.d.ts +15 -7
  318. package/dist/components/thread-list-item/ThreadListItem.d.ts.map +1 -1
  319. package/dist/components/thread-list-item/ThreadListItem.js +66 -62
  320. package/dist/components/thread-list-item/ThreadListItem.js.map +1 -1
  321. package/dist/components/toast/Toast.cjs +1 -1
  322. package/dist/components/toast/Toast.cjs.map +1 -1
  323. package/dist/components/toast/Toast.d.ts +8 -3
  324. package/dist/components/toast/Toast.d.ts.map +1 -1
  325. package/dist/components/toast/Toast.js +47 -39
  326. package/dist/components/toast/Toast.js.map +1 -1
  327. package/dist/components/tour-point/TourPoint.cjs +1 -1
  328. package/dist/components/tour-point/TourPoint.cjs.map +1 -1
  329. package/dist/components/tour-point/TourPoint.css +1 -1
  330. package/dist/components/tour-point/TourPoint.d.ts +19 -5
  331. package/dist/components/tour-point/TourPoint.d.ts.map +1 -1
  332. package/dist/components/tour-point/TourPoint.js +66 -54
  333. package/dist/components/tour-point/TourPoint.js.map +1 -1
  334. package/dist/components/tour-point/TourPoint.module.scss.cjs +1 -1
  335. package/dist/components/tour-point/TourPoint.module.scss.js +28 -28
  336. package/dist/components/unread-badge/UnreadBadge.css +1 -1
  337. package/dist/components/unread-badge/UnreadBadge.module.scss.cjs +1 -1
  338. package/dist/components/unread-badge/UnreadBadge.module.scss.js +5 -5
  339. package/dist/components/user-avatar/UserAvatar.css +1 -1
  340. package/dist/components/user-avatar/UserAvatar.module.scss.cjs +1 -1
  341. package/dist/components/user-avatar/UserAvatar.module.scss.js +26 -26
  342. package/dist/components/user-avatar-group/UserAvatarGroup.cjs +1 -1
  343. package/dist/components/user-avatar-group/UserAvatarGroup.cjs.map +1 -1
  344. package/dist/components/user-avatar-group/UserAvatarGroup.css +1 -1
  345. package/dist/components/user-avatar-group/UserAvatarGroup.d.ts +8 -1
  346. package/dist/components/user-avatar-group/UserAvatarGroup.d.ts.map +1 -1
  347. package/dist/components/user-avatar-group/UserAvatarGroup.js +22 -18
  348. package/dist/components/user-avatar-group/UserAvatarGroup.js.map +1 -1
  349. package/dist/components/user-avatar-group/UserAvatarGroup.module.scss.cjs +1 -1
  350. package/dist/components/user-avatar-group/UserAvatarGroup.module.scss.js +14 -14
  351. package/dist/index.cjs +1 -1
  352. package/dist/index.d.ts +1 -1
  353. package/dist/index.d.ts.map +1 -1
  354. package/dist/index.js +44 -46
  355. package/dist/index.js.map +1 -1
  356. package/dist/utils/props.cjs +2 -0
  357. package/dist/utils/props.cjs.map +1 -0
  358. package/dist/utils/props.d.ts +13 -0
  359. package/dist/utils/props.d.ts.map +1 -0
  360. package/dist/utils/props.js +7 -0
  361. package/dist/utils/props.js.map +1 -0
  362. package/package.json +1 -9
  363. package/dist/components/team-sidebar/TeamSidebar.cjs +0 -2
  364. package/dist/components/team-sidebar/TeamSidebar.cjs.map +0 -1
  365. package/dist/components/team-sidebar/TeamSidebar.css +0 -1
  366. package/dist/components/team-sidebar/TeamSidebar.d.ts +0 -21
  367. package/dist/components/team-sidebar/TeamSidebar.d.ts.map +0 -1
  368. package/dist/components/team-sidebar/TeamSidebar.js +0 -85
  369. package/dist/components/team-sidebar/TeamSidebar.js.map +0 -1
  370. package/dist/components/team-sidebar/TeamSidebar.module.scss.cjs +0 -2
  371. package/dist/components/team-sidebar/TeamSidebar.module.scss.cjs.map +0 -1
  372. package/dist/components/team-sidebar/TeamSidebar.module.scss.js +0 -13
  373. package/dist/components/team-sidebar/TeamSidebar.module.scss.js.map +0 -1
  374. package/dist/components/team-sidebar/index.cjs +0 -2
  375. package/dist/components/team-sidebar/index.cjs.map +0 -1
  376. package/dist/components/team-sidebar/index.d.ts +0 -3
  377. package/dist/components/team-sidebar/index.d.ts.map +0 -1
  378. package/dist/components/team-sidebar/index.js +0 -5
  379. package/dist/components/team-sidebar/index.js.map +0 -1
  380. package/dist/node_modules/simplebar-react/dist/simplebar.min.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MoreUnreadsBanner.cjs","sources":["../../../src/components/more-unreads-banner/MoreUnreadsBanner.tsx"],"sourcesContent":["import Icon from '@/components/icon/Icon';\nimport ArrowUpIcon from '@mattermost/compass-icons/components/arrow-up';\nimport ArrowDownIcon from '@mattermost/compass-icons/components/arrow-down';\nimport styles from './MoreUnreadsBanner.module.scss';\n\nexport type MoreUnreadsBannerDirection = 'up' | 'down';\nexport type MoreUnreadsBannerSize = 'small' | 'medium' | 'large';\n\nexport interface MoreUnreadsBannerProps {\n /** Optional CSS class name. */\n className?: string;\n /** Arrow direction. Default: Up. */\n direction?: MoreUnreadsBannerDirection;\n /** Size variant. Default: Medium. */\n size?: MoreUnreadsBannerSize;\n /** Callback when the banner is clicked. */\n onClick?: () => void;\n}\n\n/**\n * The More Unreads Banner is the small pill that floats inside the channel sidebar to tell\n * the user there are unread channels above or below the current scroll position. One arrow,\n * one label — clicking it scrolls to the next unread.\n */\nexport default function MoreUnreadsBanner({\n className = '',\n direction = 'up',\n size = 'medium',\n onClick,\n}: MoreUnreadsBannerProps) {\n const sizeClass = styles[`more-unreads-banner--size-${size.toLowerCase()}`];\n\n const rootClass = [styles['more-unreads-banner'], sizeClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button className={rootClass} type=\"button\" onClick={onClick}>\n <span className={styles['more-unreads-banner__icon']} aria-hidden>\n {direction === 'up' ? (\n <Icon size=\"12\" glyph={<ArrowUpIcon />} />\n ) : (\n <Icon size=\"12\" glyph={<ArrowDownIcon />} />\n )}\n </span>\n <span className={styles['more-unreads-banner__label']}>More unreads</span>\n </button>\n );\n}\n"],"names":["MoreUnreadsBanner","className","direction","size","onClick","sizeClass","styles","rootClass","jsx","Icon","ArrowUpIcon","ArrowDownIcon"],"mappings":"wVAwBA,SAAwBA,EAAkB,CACxC,UAAAC,EAAY,GACZ,UAAAC,EAAY,KACZ,KAAAC,EAAO,SACP,QAAAC,CACF,EAA2B,CACzB,MAAMC,EAAYC,EAAAA,QAAO,6BAA6BH,EAAK,YAAA,CAAa,EAAE,EAEpEI,EAAY,CAACD,UAAO,qBAAqB,EAAGD,EAAWJ,CAAS,EACnE,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,cACG,SAAA,CAAO,UAAWM,EAAW,KAAK,SAAS,QAAAH,EAC1C,SAAA,CAAAI,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,2BAA2B,EAAG,cAAW,GAC9D,SAAAJ,IAAc,KACbM,EAAAA,IAACC,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACE,EAAA,CAAA,CAAY,CAAA,CAAI,EAExCF,EAAAA,IAACC,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACG,EAAA,CAAA,CAAc,CAAA,CAAI,EAE9C,QACC,OAAA,CAAK,UAAWL,EAAAA,QAAO,4BAA4B,EAAG,SAAA,cAAA,CAAY,CAAA,EACrE,CAEJ"}
1
+ {"version":3,"file":"MoreUnreadsBanner.cjs","sources":["../../../src/components/more-unreads-banner/MoreUnreadsBanner.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport Icon from '@/components/icon/Icon';\nimport ArrowUpIcon from '@mattermost/compass-icons/components/arrow-up';\nimport ArrowDownIcon from '@mattermost/compass-icons/components/arrow-down';\nimport styles from './MoreUnreadsBanner.module.scss';\n\nexport type MoreUnreadsBannerDirection = 'up' | 'down';\nexport type MoreUnreadsBannerSize = 'small' | 'medium' | 'large';\n\nexport interface MoreUnreadsBannerProps {\n /** Optional CSS class name. */\n className?: string;\n /** Arrow direction. Default: Up. */\n direction?: MoreUnreadsBannerDirection;\n /** Size variant. Default: Medium. */\n size?: MoreUnreadsBannerSize;\n /** Callback when the banner is clicked. */\n onClick?: () => void;\n /** Visible label. Default: \"More unreads\". */\n label?: ReactNode;\n}\n\n/**\n * The More Unreads Banner is the small pill that floats inside the channel sidebar to tell\n * the user there are unread channels above or below the current scroll position. One arrow,\n * one label — clicking it scrolls to the next unread.\n */\nexport default function MoreUnreadsBanner({\n className = '',\n direction = 'up',\n size = 'medium',\n onClick,\n label = 'More unreads',\n}: MoreUnreadsBannerProps) {\n const sizeClass = styles[`more-unreads-banner--size-${size.toLowerCase()}`];\n\n const rootClass = [styles['more-unreads-banner'], sizeClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button className={rootClass} type=\"button\" onClick={onClick}>\n <span className={styles['more-unreads-banner__icon']} aria-hidden>\n {direction === 'up' ? (\n <Icon size=\"12\" glyph={<ArrowUpIcon />} />\n ) : (\n <Icon size=\"12\" glyph={<ArrowDownIcon />} />\n )}\n </span>\n <span className={styles['more-unreads-banner__label']}>{label}</span>\n </button>\n );\n}\n"],"names":["MoreUnreadsBanner","className","direction","size","onClick","label","sizeClass","styles","rootClass","jsx","Icon","ArrowUpIcon","ArrowDownIcon"],"mappings":"wVA2BA,SAAwBA,EAAkB,CACxC,UAAAC,EAAY,GACZ,UAAAC,EAAY,KACZ,KAAAC,EAAO,SACP,QAAAC,EACA,MAAAC,EAAQ,cACV,EAA2B,CACzB,MAAMC,EAAYC,EAAAA,QAAO,6BAA6BJ,EAAK,YAAA,CAAa,EAAE,EAEpEK,EAAY,CAACD,UAAO,qBAAqB,EAAGD,EAAWL,CAAS,EACnE,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,cACG,SAAA,CAAO,UAAWO,EAAW,KAAK,SAAS,QAAAJ,EAC1C,SAAA,CAAAK,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,2BAA2B,EAAG,cAAW,GAC9D,SAAAL,IAAc,KACbO,EAAAA,IAACC,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACE,EAAA,CAAA,CAAY,CAAA,CAAI,EAExCF,EAAAA,IAACC,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACG,EAAA,CAAA,CAAc,CAAA,CAAI,EAE9C,QACC,OAAA,CAAK,UAAWL,EAAAA,QAAO,4BAA4B,EAAI,SAAAF,CAAA,CAAM,CAAA,EAChE,CAEJ"}
@@ -1,3 +1,4 @@
1
+ import { ReactNode } from 'react';
1
2
  export type MoreUnreadsBannerDirection = 'up' | 'down';
2
3
  export type MoreUnreadsBannerSize = 'small' | 'medium' | 'large';
3
4
  export interface MoreUnreadsBannerProps {
@@ -9,11 +10,13 @@ export interface MoreUnreadsBannerProps {
9
10
  size?: MoreUnreadsBannerSize;
10
11
  /** Callback when the banner is clicked. */
11
12
  onClick?: () => void;
13
+ /** Visible label. Default: "More unreads". */
14
+ label?: ReactNode;
12
15
  }
13
16
  /**
14
17
  * The More Unreads Banner is the small pill that floats inside the channel sidebar to tell
15
18
  * the user there are unread channels above or below the current scroll position. One arrow,
16
19
  * one label — clicking it scrolls to the next unread.
17
20
  */
18
- export default function MoreUnreadsBanner({ className, direction, size, onClick, }: MoreUnreadsBannerProps): import("react/jsx-runtime").JSX.Element;
21
+ export default function MoreUnreadsBanner({ className, direction, size, onClick, label, }: MoreUnreadsBannerProps): import("react/jsx-runtime").JSX.Element;
19
22
  //# sourceMappingURL=MoreUnreadsBanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MoreUnreadsBanner.d.ts","sourceRoot":"","sources":["../../../src/components/more-unreads-banner/MoreUnreadsBanner.tsx"],"names":[],"mappings":"AAKA,MAAM,MAAM,0BAA0B,GAAG,IAAI,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,sBAAsB;IACrC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,qCAAqC;IACrC,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,SAAc,EACd,SAAgB,EAChB,IAAe,EACf,OAAO,GACR,EAAE,sBAAsB,2CAmBxB"}
1
+ {"version":3,"file":"MoreUnreadsBanner.d.ts","sourceRoot":"","sources":["../../../src/components/more-unreads-banner/MoreUnreadsBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,MAAM,MAAM,0BAA0B,GAAG,IAAI,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,sBAAsB;IACrC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,qCAAqC;IACrC,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,SAAc,EACd,SAAgB,EAChB,IAAe,EACf,OAAO,EACP,KAAsB,GACvB,EAAE,sBAAsB,2CAmBxB"}
@@ -1,21 +1,22 @@
1
- import { jsxs as l, jsx as r } from "react/jsx-runtime";
1
+ import { jsxs as p, jsx as r } from "react/jsx-runtime";
2
2
  import n from "../icon/Icon.js";
3
- import __p from "@mattermost/compass-icons/components/arrow-up.js";const p=__p&&__p.default?__p.default:__p;
4
- import __u from "@mattermost/compass-icons/components/arrow-down.js";const u=__u&&__u.default?__u.default:__u;
3
+ import __u from "@mattermost/compass-icons/components/arrow-up.js";const u=__u&&__u.default?__u.default:__u;
4
+ import __c from "@mattermost/compass-icons/components/arrow-down.js";const c=__c&&__c.default?__c.default:__c;
5
5
  import e from "./MoreUnreadsBanner.module.scss.js";
6
- function w({
6
+ function y({
7
7
  className: o = "",
8
8
  direction: s = "up",
9
9
  size: a = "medium",
10
- onClick: t
10
+ onClick: t,
11
+ label: i = "More unreads"
11
12
  }) {
12
- const i = e[`more-unreads-banner--size-${a.toLowerCase()}`], m = [e["more-unreads-banner"], i, o].filter(Boolean).join(" ");
13
- return /* @__PURE__ */ l("button", { className: m, type: "button", onClick: t, children: [
14
- /* @__PURE__ */ r("span", { className: e["more-unreads-banner__icon"], "aria-hidden": !0, children: s === "up" ? /* @__PURE__ */ r(n, { size: "12", glyph: /* @__PURE__ */ r(p, {}) }) : /* @__PURE__ */ r(n, { size: "12", glyph: /* @__PURE__ */ r(u, {}) }) }),
15
- /* @__PURE__ */ r("span", { className: e["more-unreads-banner__label"], children: "More unreads" })
13
+ const m = e[`more-unreads-banner--size-${a.toLowerCase()}`], l = [e["more-unreads-banner"], m, o].filter(Boolean).join(" ");
14
+ return /* @__PURE__ */ p("button", { className: l, type: "button", onClick: t, children: [
15
+ /* @__PURE__ */ r("span", { className: e["more-unreads-banner__icon"], "aria-hidden": !0, children: s === "up" ? /* @__PURE__ */ r(n, { size: "12", glyph: /* @__PURE__ */ r(u, {}) }) : /* @__PURE__ */ r(n, { size: "12", glyph: /* @__PURE__ */ r(c, {}) }) }),
16
+ /* @__PURE__ */ r("span", { className: e["more-unreads-banner__label"], children: i })
16
17
  ] });
17
18
  }
18
19
  export {
19
- w as default
20
+ y as default
20
21
  };
21
22
  //# sourceMappingURL=MoreUnreadsBanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MoreUnreadsBanner.js","sources":["../../../src/components/more-unreads-banner/MoreUnreadsBanner.tsx"],"sourcesContent":["import Icon from '@/components/icon/Icon';\nimport ArrowUpIcon from '@mattermost/compass-icons/components/arrow-up';\nimport ArrowDownIcon from '@mattermost/compass-icons/components/arrow-down';\nimport styles from './MoreUnreadsBanner.module.scss';\n\nexport type MoreUnreadsBannerDirection = 'up' | 'down';\nexport type MoreUnreadsBannerSize = 'small' | 'medium' | 'large';\n\nexport interface MoreUnreadsBannerProps {\n /** Optional CSS class name. */\n className?: string;\n /** Arrow direction. Default: Up. */\n direction?: MoreUnreadsBannerDirection;\n /** Size variant. Default: Medium. */\n size?: MoreUnreadsBannerSize;\n /** Callback when the banner is clicked. */\n onClick?: () => void;\n}\n\n/**\n * The More Unreads Banner is the small pill that floats inside the channel sidebar to tell\n * the user there are unread channels above or below the current scroll position. One arrow,\n * one label — clicking it scrolls to the next unread.\n */\nexport default function MoreUnreadsBanner({\n className = '',\n direction = 'up',\n size = 'medium',\n onClick,\n}: MoreUnreadsBannerProps) {\n const sizeClass = styles[`more-unreads-banner--size-${size.toLowerCase()}`];\n\n const rootClass = [styles['more-unreads-banner'], sizeClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button className={rootClass} type=\"button\" onClick={onClick}>\n <span className={styles['more-unreads-banner__icon']} aria-hidden>\n {direction === 'up' ? (\n <Icon size=\"12\" glyph={<ArrowUpIcon />} />\n ) : (\n <Icon size=\"12\" glyph={<ArrowDownIcon />} />\n )}\n </span>\n <span className={styles['more-unreads-banner__label']}>More unreads</span>\n </button>\n );\n}\n"],"names":["MoreUnreadsBanner","className","direction","size","onClick","sizeClass","styles","rootClass","jsx","Icon","ArrowUpIcon","ArrowDownIcon"],"mappings":";;;;;AAwBA,SAAwBA,EAAkB;AAAA,EACxC,WAAAC,IAAY;AAAA,EACZ,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,SAAAC;AACF,GAA2B;AACzB,QAAMC,IAAYC,EAAO,6BAA6BH,EAAK,YAAA,CAAa,EAAE,GAEpEI,IAAY,CAACD,EAAO,qBAAqB,GAAGD,GAAWJ,CAAS,EACnE,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,2BACG,UAAA,EAAO,WAAWM,GAAW,MAAK,UAAS,SAAAH,GAC1C,UAAA;AAAA,IAAA,gBAAAI,EAAC,QAAA,EAAK,WAAWF,EAAO,2BAA2B,GAAG,eAAW,IAC9D,UAAAJ,MAAc,OACb,gBAAAM,EAACC,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAD,EAACE,GAAA,CAAA,CAAY,EAAA,CAAI,IAExC,gBAAAF,EAACC,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAD,EAACG,GAAA,CAAA,CAAc,EAAA,CAAI,GAE9C;AAAA,sBACC,QAAA,EAAK,WAAWL,EAAO,4BAA4B,GAAG,UAAA,eAAA,CAAY;AAAA,EAAA,GACrE;AAEJ;"}
1
+ {"version":3,"file":"MoreUnreadsBanner.js","sources":["../../../src/components/more-unreads-banner/MoreUnreadsBanner.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport Icon from '@/components/icon/Icon';\nimport ArrowUpIcon from '@mattermost/compass-icons/components/arrow-up';\nimport ArrowDownIcon from '@mattermost/compass-icons/components/arrow-down';\nimport styles from './MoreUnreadsBanner.module.scss';\n\nexport type MoreUnreadsBannerDirection = 'up' | 'down';\nexport type MoreUnreadsBannerSize = 'small' | 'medium' | 'large';\n\nexport interface MoreUnreadsBannerProps {\n /** Optional CSS class name. */\n className?: string;\n /** Arrow direction. Default: Up. */\n direction?: MoreUnreadsBannerDirection;\n /** Size variant. Default: Medium. */\n size?: MoreUnreadsBannerSize;\n /** Callback when the banner is clicked. */\n onClick?: () => void;\n /** Visible label. Default: \"More unreads\". */\n label?: ReactNode;\n}\n\n/**\n * The More Unreads Banner is the small pill that floats inside the channel sidebar to tell\n * the user there are unread channels above or below the current scroll position. One arrow,\n * one label — clicking it scrolls to the next unread.\n */\nexport default function MoreUnreadsBanner({\n className = '',\n direction = 'up',\n size = 'medium',\n onClick,\n label = 'More unreads',\n}: MoreUnreadsBannerProps) {\n const sizeClass = styles[`more-unreads-banner--size-${size.toLowerCase()}`];\n\n const rootClass = [styles['more-unreads-banner'], sizeClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button className={rootClass} type=\"button\" onClick={onClick}>\n <span className={styles['more-unreads-banner__icon']} aria-hidden>\n {direction === 'up' ? (\n <Icon size=\"12\" glyph={<ArrowUpIcon />} />\n ) : (\n <Icon size=\"12\" glyph={<ArrowDownIcon />} />\n )}\n </span>\n <span className={styles['more-unreads-banner__label']}>{label}</span>\n </button>\n );\n}\n"],"names":["MoreUnreadsBanner","className","direction","size","onClick","label","sizeClass","styles","rootClass","jsx","Icon","ArrowUpIcon","ArrowDownIcon"],"mappings":";;;;;AA2BA,SAAwBA,EAAkB;AAAA,EACxC,WAAAC,IAAY;AAAA,EACZ,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,SAAAC;AAAA,EACA,OAAAC,IAAQ;AACV,GAA2B;AACzB,QAAMC,IAAYC,EAAO,6BAA6BJ,EAAK,YAAA,CAAa,EAAE,GAEpEK,IAAY,CAACD,EAAO,qBAAqB,GAAGD,GAAWL,CAAS,EACnE,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,2BACG,UAAA,EAAO,WAAWO,GAAW,MAAK,UAAS,SAAAJ,GAC1C,UAAA;AAAA,IAAA,gBAAAK,EAAC,QAAA,EAAK,WAAWF,EAAO,2BAA2B,GAAG,eAAW,IAC9D,UAAAL,MAAc,OACb,gBAAAO,EAACC,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAD,EAACE,GAAA,CAAA,CAAY,EAAA,CAAI,IAExC,gBAAAF,EAACC,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAD,EAACG,GAAA,CAAA,CAAc,EAAA,CAAI,GAE9C;AAAA,sBACC,QAAA,EAAK,WAAWL,EAAO,4BAA4B,GAAI,UAAAF,EAAA,CAAM;AAAA,EAAA,GAChE;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),u=require("../icon/Icon.cjs"),__i=require("@mattermost/compass-icons/components/arrow-down.js"),i=__i?.default??__i,__m=require("@mattermost/compass-icons/components/close.js"),m=__m?.default??__m,s=require("./NewMessageBanner.module.scss.cjs");function c({className:l="",type:n="jump-to-unreads",countLabel:a,onClick:t,onDismiss:r}){const d=s.default[`new-message-banner--type-${n==="jump-to-unreads"?"jump-to-unreads":"new-replies"}`],o=[s.default["new-message-banner"],d,l].filter(Boolean).join(" ");return e.jsxs("div",{className:o,children:[e.jsx("button",{className:s.default["new-message-banner__main"],type:"button",onClick:t,"aria-label":n==="jump-to-unreads"?a!=null?`Jump to unreads, ${a}`:"Jump to unreads":void 0,children:e.jsxs("span",{className:s.default["new-message-banner__left"],children:[e.jsx("span",{className:s.default["new-message-banner__icon"],"aria-hidden":!0,children:e.jsx(u.default,{size:"16",glyph:e.jsx(i,{})})}),e.jsx("span",{className:s.default["new-message-banner__jump-label"],children:n==="jump-to-unreads"?"Jump to unreads":"New replies"})]})}),n==="jump-to-unreads"&&a!=null&&e.jsx("span",{className:s.default["new-message-banner__count"],"aria-hidden":!0,children:a}),r!=null&&e.jsx("button",{className:s.default["new-message-banner__dismiss"],type:"button",onClick:r,"aria-label":"Dismiss",children:e.jsx(u.default,{size:"16",glyph:e.jsx(m,{})})})]})}exports.default=c;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),l=require("../icon/Icon.cjs"),__j=require("@mattermost/compass-icons/components/arrow-down.js"),j=__j?.default??__j,__p=require("@mattermost/compass-icons/components/close.js"),p=__p?.default??__p,s=require("./NewMessageBanner.module.scss.cjs");function g(a,n){if(typeof a=="string")return typeof n=="string"?`${a}, ${n}`:a}function _({className:a="",type:n="jump-to-unreads",countLabel:r,onClick:i,onDismiss:t,jumpLabel:u="Jump to unreads",jumpAriaLabel:o,newRepliesLabel:d="New replies",dismissLabel:c="Dismiss"}){const m=s.default[`new-message-banner--type-${n==="jump-to-unreads"?"jump-to-unreads":"new-replies"}`],f=[s.default["new-message-banner"],m,a].filter(Boolean).join(" ");return e.jsxs("div",{className:f,children:[e.jsx("button",{className:s.default["new-message-banner__main"],type:"button",onClick:i,"aria-label":n==="jump-to-unreads"?o??g(u,r):void 0,children:e.jsxs("span",{className:s.default["new-message-banner__left"],children:[e.jsx("span",{className:s.default["new-message-banner__icon"],"aria-hidden":!0,children:e.jsx(l.default,{size:"16",glyph:e.jsx(j,{})})}),e.jsx("span",{className:s.default["new-message-banner__jump-label"],children:n==="jump-to-unreads"?u:d})]})}),n==="jump-to-unreads"&&r!=null&&e.jsx("span",{className:s.default["new-message-banner__count"],"aria-hidden":!0,children:r}),t!=null&&e.jsx("button",{className:s.default["new-message-banner__dismiss"],type:"button",onClick:t,"aria-label":c,children:e.jsx(l.default,{size:"16",glyph:e.jsx(p,{})})})]})}exports.default=_;
2
2
  //# sourceMappingURL=NewMessageBanner.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NewMessageBanner.cjs","sources":["../../../src/components/new-message-banner/NewMessageBanner.tsx"],"sourcesContent":["import Icon from '@/components/icon/Icon';\nimport ArrowDownIcon from '@mattermost/compass-icons/components/arrow-down';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './NewMessageBanner.module.scss';\n\nexport type NewMessageBannerType = 'jump-to-unreads' | 'new-replies';\n\nexport interface NewMessageBannerProps {\n /** Optional CSS class name. */\n className?: string;\n /** Type controls the layout. Default: JumpToUnreads. */\n type?: NewMessageBannerType;\n /** Unread count label text (e.g. \"21 new messages since Saturday\"). Used in JumpToUnreads type. */\n countLabel?: string;\n /** Called when the banner itself is clicked. */\n onClick?: () => void;\n /** Called when the dismiss (×) button is clicked. */\n onDismiss?: () => void;\n}\n\n/**\n * The New Messages Banner alerts the user that there's fresh activity in the channel they're\n * reading. It floats over the message stream so they can jump to the unread region in one\n * click — or dismiss it if they'd rather keep scrolling.\n */\nexport default function NewMessageBanner({\n className = '',\n type = 'jump-to-unreads',\n countLabel,\n onClick,\n onDismiss,\n}: NewMessageBannerProps) {\n const typeClass =\n styles[\n `new-message-banner--type-${type === 'jump-to-unreads' ? 'jump-to-unreads' : 'new-replies'}`\n ];\n\n const rootClass = [styles['new-message-banner'], typeClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n <button\n className={styles['new-message-banner__main']}\n type=\"button\"\n onClick={onClick}\n aria-label={\n type === 'jump-to-unreads'\n ? countLabel != null\n ? `Jump to unreads, ${countLabel}`\n : 'Jump to unreads'\n : undefined\n }\n >\n <span className={styles['new-message-banner__left']}>\n <span className={styles['new-message-banner__icon']} aria-hidden>\n <Icon size=\"16\" glyph={<ArrowDownIcon />} />\n </span>\n <span className={styles['new-message-banner__jump-label']}>\n {type === 'jump-to-unreads' ? 'Jump to unreads' : 'New replies'}\n </span>\n </span>\n </button>\n {type === 'jump-to-unreads' && countLabel != null && (\n <span className={styles['new-message-banner__count']} aria-hidden>\n {countLabel}\n </span>\n )}\n {onDismiss != null && (\n <button\n className={styles['new-message-banner__dismiss']}\n type=\"button\"\n onClick={onDismiss}\n aria-label=\"Dismiss\"\n >\n <Icon size=\"16\" glyph={<CloseIcon />} />\n </button>\n )}\n </div>\n );\n}\n"],"names":["NewMessageBanner","className","type","countLabel","onClick","onDismiss","typeClass","styles","rootClass","jsxs","jsx","Icon","ArrowDownIcon","CloseIcon"],"mappings":"oVAyBA,SAAwBA,EAAiB,CACvC,UAAAC,EAAY,GACZ,KAAAC,EAAO,kBACP,WAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAA0B,CACxB,MAAMC,EACJC,EAAAA,QACE,4BAA4BL,IAAS,kBAAoB,kBAAoB,aAAa,EAC5F,EAEIM,EAAY,CAACD,UAAO,oBAAoB,EAAGD,EAAWL,CAAS,EAClE,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEQ,EAAAA,KAAC,MAAA,CAAI,UAAWD,EACd,SAAA,CAAAE,EAAAA,IAAC,SAAA,CACC,UAAWH,EAAAA,QAAO,0BAA0B,EAC5C,KAAK,SACL,QAAAH,EACA,aACEF,IAAS,kBACLC,GAAc,KACZ,oBAAoBA,CAAU,GAC9B,kBACF,OAGN,SAAAM,EAAAA,KAAC,OAAA,CAAK,UAAWF,UAAO,0BAA0B,EAChD,SAAA,CAAAG,MAAC,OAAA,CAAK,UAAWH,EAAAA,QAAO,0BAA0B,EAAG,cAAW,GAC9D,SAAAG,EAAAA,IAACC,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACE,EAAA,CAAA,CAAc,EAAI,EAC5C,EACAF,EAAAA,IAAC,QAAK,UAAWH,UAAO,gCAAgC,EACrD,SAAAL,IAAS,kBAAoB,kBAAoB,aAAA,CACpD,CAAA,CAAA,CACF,CAAA,CAAA,EAEDA,IAAS,mBAAqBC,GAAc,MAC3CO,EAAAA,IAAC,OAAA,CAAK,UAAWH,EAAAA,QAAO,2BAA2B,EAAG,cAAW,GAC9D,SAAAJ,CAAA,CACH,EAEDE,GAAa,MACZK,EAAAA,IAAC,SAAA,CACC,UAAWH,EAAAA,QAAO,6BAA6B,EAC/C,KAAK,SACL,QAASF,EACT,aAAW,UAEX,eAACM,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACG,IAAU,CAAA,CAAI,CAAA,CAAA,CACxC,EAEJ,CAEJ"}
1
+ {"version":3,"file":"NewMessageBanner.cjs","sources":["../../../src/components/new-message-banner/NewMessageBanner.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport Icon from '@/components/icon/Icon';\nimport ArrowDownIcon from '@mattermost/compass-icons/components/arrow-down';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './NewMessageBanner.module.scss';\n\nexport type NewMessageBannerType = 'jump-to-unreads' | 'new-replies';\n\nexport interface NewMessageBannerProps {\n /** Optional CSS class name. */\n className?: string;\n /** Type controls the layout. Default: JumpToUnreads. */\n type?: NewMessageBannerType;\n /** Unread count label text (e.g. \"21 new messages since Saturday\"). Used in JumpToUnreads type. Accepts translated nodes. */\n countLabel?: ReactNode;\n /** Called when the banner itself is clicked. */\n onClick?: () => void;\n /** Called when the dismiss (×) button is clicked. */\n onDismiss?: () => void;\n /** Visible label for the JumpToUnreads type. Default: \"Jump to unreads\". */\n jumpLabel?: ReactNode;\n /**\n * Accessible name for the jump button. Default: `{jumpLabel}, {countLabel}`\n * when both are strings. Pass it when either is a translated node.\n */\n jumpAriaLabel?: string;\n /** Visible label for the NewReplies type. Default: \"New replies\". */\n newRepliesLabel?: ReactNode;\n /** Accessible name for the dismiss button. Default: \"Dismiss\". */\n dismissLabel?: string;\n}\n\nfunction defaultJumpAriaLabel(\n jumpLabel: ReactNode,\n countLabel: ReactNode,\n): string | undefined {\n if (typeof jumpLabel !== 'string') return undefined;\n return typeof countLabel === 'string'\n ? `${jumpLabel}, ${countLabel}`\n : jumpLabel;\n}\n\n/**\n * The New Messages Banner alerts the user that there's fresh activity in the channel they're\n * reading. It floats over the message stream so they can jump to the unread region in one\n * click — or dismiss it if they'd rather keep scrolling.\n */\nexport default function NewMessageBanner({\n className = '',\n type = 'jump-to-unreads',\n countLabel,\n onClick,\n onDismiss,\n jumpLabel = 'Jump to unreads',\n jumpAriaLabel,\n newRepliesLabel = 'New replies',\n dismissLabel = 'Dismiss',\n}: NewMessageBannerProps) {\n const typeClass =\n styles[\n `new-message-banner--type-${type === 'jump-to-unreads' ? 'jump-to-unreads' : 'new-replies'}`\n ];\n\n const rootClass = [styles['new-message-banner'], typeClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n <button\n className={styles['new-message-banner__main']}\n type=\"button\"\n onClick={onClick}\n aria-label={\n type === 'jump-to-unreads'\n ? (jumpAriaLabel ?? defaultJumpAriaLabel(jumpLabel, countLabel))\n : undefined\n }\n >\n <span className={styles['new-message-banner__left']}>\n <span className={styles['new-message-banner__icon']} aria-hidden>\n <Icon size=\"16\" glyph={<ArrowDownIcon />} />\n </span>\n <span className={styles['new-message-banner__jump-label']}>\n {type === 'jump-to-unreads' ? jumpLabel : newRepliesLabel}\n </span>\n </span>\n </button>\n {type === 'jump-to-unreads' && countLabel != null && (\n <span className={styles['new-message-banner__count']} aria-hidden>\n {countLabel}\n </span>\n )}\n {onDismiss != null && (\n <button\n className={styles['new-message-banner__dismiss']}\n type=\"button\"\n onClick={onDismiss}\n aria-label={dismissLabel}\n >\n <Icon size=\"16\" glyph={<CloseIcon />} />\n </button>\n )}\n </div>\n );\n}\n"],"names":["defaultJumpAriaLabel","jumpLabel","countLabel","NewMessageBanner","className","type","onClick","onDismiss","jumpAriaLabel","newRepliesLabel","dismissLabel","typeClass","styles","rootClass","jsxs","jsx","Icon","ArrowDownIcon","CloseIcon"],"mappings":"oVAgCA,SAASA,EACPC,EACAC,EACoB,CACpB,GAAI,OAAOD,GAAc,SACzB,OAAO,OAAOC,GAAe,SACzB,GAAGD,CAAS,KAAKC,CAAU,GAC3BD,CACN,CAOA,SAAwBE,EAAiB,CACvC,UAAAC,EAAY,GACZ,KAAAC,EAAO,kBACP,WAAAH,EACA,QAAAI,EACA,UAAAC,EACA,UAAAN,EAAY,kBACZ,cAAAO,EACA,gBAAAC,EAAkB,cAClB,aAAAC,EAAe,SACjB,EAA0B,CACxB,MAAMC,EACJC,EAAAA,QACE,4BAA4BP,IAAS,kBAAoB,kBAAoB,aAAa,EAC5F,EAEIQ,EAAY,CAACD,UAAO,oBAAoB,EAAGD,EAAWP,CAAS,EAClE,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEU,EAAAA,KAAC,MAAA,CAAI,UAAWD,EACd,SAAA,CAAAE,EAAAA,IAAC,SAAA,CACC,UAAWH,EAAAA,QAAO,0BAA0B,EAC5C,KAAK,SACL,QAAAN,EACA,aACED,IAAS,kBACJG,GAAiBR,EAAqBC,EAAWC,CAAU,EAC5D,OAGN,SAAAY,EAAAA,KAAC,OAAA,CAAK,UAAWF,UAAO,0BAA0B,EAChD,SAAA,CAAAG,MAAC,OAAA,CAAK,UAAWH,EAAAA,QAAO,0BAA0B,EAAG,cAAW,GAC9D,SAAAG,EAAAA,IAACC,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACE,EAAA,CAAA,CAAc,EAAI,EAC5C,EACAF,EAAAA,IAAC,QAAK,UAAWH,UAAO,gCAAgC,EACrD,SAAAP,IAAS,kBAAoBJ,EAAYQ,CAAA,CAC5C,CAAA,CAAA,CACF,CAAA,CAAA,EAEDJ,IAAS,mBAAqBH,GAAc,MAC3Ca,EAAAA,IAAC,OAAA,CAAK,UAAWH,EAAAA,QAAO,2BAA2B,EAAG,cAAW,GAC9D,SAAAV,CAAA,CACH,EAEDK,GAAa,MACZQ,EAAAA,IAAC,SAAA,CACC,UAAWH,EAAAA,QAAO,6BAA6B,EAC/C,KAAK,SACL,QAASL,EACT,aAAYG,EAEZ,eAACM,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACG,IAAU,CAAA,CAAI,CAAA,CAAA,CACxC,EAEJ,CAEJ"}
@@ -1,20 +1,32 @@
1
+ import { ReactNode } from 'react';
1
2
  export type NewMessageBannerType = 'jump-to-unreads' | 'new-replies';
2
3
  export interface NewMessageBannerProps {
3
4
  /** Optional CSS class name. */
4
5
  className?: string;
5
6
  /** Type controls the layout. Default: JumpToUnreads. */
6
7
  type?: NewMessageBannerType;
7
- /** Unread count label text (e.g. "21 new messages since Saturday"). Used in JumpToUnreads type. */
8
- countLabel?: string;
8
+ /** Unread count label text (e.g. "21 new messages since Saturday"). Used in JumpToUnreads type. Accepts translated nodes. */
9
+ countLabel?: ReactNode;
9
10
  /** Called when the banner itself is clicked. */
10
11
  onClick?: () => void;
11
12
  /** Called when the dismiss (×) button is clicked. */
12
13
  onDismiss?: () => void;
14
+ /** Visible label for the JumpToUnreads type. Default: "Jump to unreads". */
15
+ jumpLabel?: ReactNode;
16
+ /**
17
+ * Accessible name for the jump button. Default: `{jumpLabel}, {countLabel}`
18
+ * when both are strings. Pass it when either is a translated node.
19
+ */
20
+ jumpAriaLabel?: string;
21
+ /** Visible label for the NewReplies type. Default: "New replies". */
22
+ newRepliesLabel?: ReactNode;
23
+ /** Accessible name for the dismiss button. Default: "Dismiss". */
24
+ dismissLabel?: string;
13
25
  }
14
26
  /**
15
27
  * The New Messages Banner alerts the user that there's fresh activity in the channel they're
16
28
  * reading. It floats over the message stream so they can jump to the unread region in one
17
29
  * click — or dismiss it if they'd rather keep scrolling.
18
30
  */
19
- export default function NewMessageBanner({ className, type, countLabel, onClick, onDismiss, }: NewMessageBannerProps): import("react/jsx-runtime").JSX.Element;
31
+ export default function NewMessageBanner({ className, type, countLabel, onClick, onDismiss, jumpLabel, jumpAriaLabel, newRepliesLabel, dismissLabel, }: NewMessageBannerProps): import("react/jsx-runtime").JSX.Element;
20
32
  //# sourceMappingURL=NewMessageBanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NewMessageBanner.d.ts","sourceRoot":"","sources":["../../../src/components/new-message-banner/NewMessageBanner.tsx"],"names":[],"mappings":"AAKA,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAErE,MAAM,WAAW,qBAAqB;IACpC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,mGAAmG;IACnG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,SAAc,EACd,IAAwB,EACxB,UAAU,EACV,OAAO,EACP,SAAS,GACV,EAAE,qBAAqB,2CAkDvB"}
1
+ {"version":3,"file":"NewMessageBanner.d.ts","sourceRoot":"","sources":["../../../src/components/new-message-banner/NewMessageBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAErE,MAAM,WAAW,qBAAqB;IACpC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,6HAA6H;IAC7H,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAYD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,SAAc,EACd,IAAwB,EACxB,UAAU,EACV,OAAO,EACP,SAAS,EACT,SAA6B,EAC7B,aAAa,EACb,eAA+B,EAC/B,YAAwB,GACzB,EAAE,qBAAqB,2CAgDvB"}
@@ -1,44 +1,52 @@
1
- import { jsxs as o, jsx as e } from "react/jsx-runtime";
2
- import m from "../icon/Icon.js";
3
- import __p from "@mattermost/compass-icons/components/arrow-down.js";const p=__p&&__p.default?__p.default:__p;
4
- import __d from "@mattermost/compass-icons/components/close.js";const d=__d&&__d.default?__d.default:__d;
1
+ import { jsxs as i, jsx as e } from "react/jsx-runtime";
2
+ import l from "../icon/Icon.js";
3
+ import __g from "@mattermost/compass-icons/components/arrow-down.js";const g=__g&&__g.default?__g.default:__g;
4
+ import __w from "@mattermost/compass-icons/components/close.js";const w=__w&&__w.default?__w.default:__w;
5
5
  import n from "./NewMessageBanner.module.scss.js";
6
- function h({
7
- className: l = "",
6
+ function _(a, s) {
7
+ if (typeof a == "string")
8
+ return typeof s == "string" ? `${a}, ${s}` : a;
9
+ }
10
+ function C({
11
+ className: a = "",
8
12
  type: s = "jump-to-unreads",
9
- countLabel: a,
10
- onClick: t,
11
- onDismiss: r
13
+ countLabel: r,
14
+ onClick: m,
15
+ onDismiss: o,
16
+ jumpLabel: t = "Jump to unreads",
17
+ jumpAriaLabel: u,
18
+ newRepliesLabel: d = "New replies",
19
+ dismissLabel: p = "Dismiss"
12
20
  }) {
13
- const i = n[`new-message-banner--type-${s === "jump-to-unreads" ? "jump-to-unreads" : "new-replies"}`], u = [n["new-message-banner"], i, l].filter(Boolean).join(" ");
14
- return /* @__PURE__ */ o("div", { className: u, children: [
21
+ const c = n[`new-message-banner--type-${s === "jump-to-unreads" ? "jump-to-unreads" : "new-replies"}`], f = [n["new-message-banner"], c, a].filter(Boolean).join(" ");
22
+ return /* @__PURE__ */ i("div", { className: f, children: [
15
23
  /* @__PURE__ */ e(
16
24
  "button",
17
25
  {
18
26
  className: n["new-message-banner__main"],
19
27
  type: "button",
20
- onClick: t,
21
- "aria-label": s === "jump-to-unreads" ? a != null ? `Jump to unreads, ${a}` : "Jump to unreads" : void 0,
22
- children: /* @__PURE__ */ o("span", { className: n["new-message-banner__left"], children: [
23
- /* @__PURE__ */ e("span", { className: n["new-message-banner__icon"], "aria-hidden": !0, children: /* @__PURE__ */ e(m, { size: "16", glyph: /* @__PURE__ */ e(p, {}) }) }),
24
- /* @__PURE__ */ e("span", { className: n["new-message-banner__jump-label"], children: s === "jump-to-unreads" ? "Jump to unreads" : "New replies" })
28
+ onClick: m,
29
+ "aria-label": s === "jump-to-unreads" ? u ?? _(t, r) : void 0,
30
+ children: /* @__PURE__ */ i("span", { className: n["new-message-banner__left"], children: [
31
+ /* @__PURE__ */ e("span", { className: n["new-message-banner__icon"], "aria-hidden": !0, children: /* @__PURE__ */ e(l, { size: "16", glyph: /* @__PURE__ */ e(g, {}) }) }),
32
+ /* @__PURE__ */ e("span", { className: n["new-message-banner__jump-label"], children: s === "jump-to-unreads" ? t : d })
25
33
  ] })
26
34
  }
27
35
  ),
28
- s === "jump-to-unreads" && a != null && /* @__PURE__ */ e("span", { className: n["new-message-banner__count"], "aria-hidden": !0, children: a }),
29
- r != null && /* @__PURE__ */ e(
36
+ s === "jump-to-unreads" && r != null && /* @__PURE__ */ e("span", { className: n["new-message-banner__count"], "aria-hidden": !0, children: r }),
37
+ o != null && /* @__PURE__ */ e(
30
38
  "button",
31
39
  {
32
40
  className: n["new-message-banner__dismiss"],
33
41
  type: "button",
34
- onClick: r,
35
- "aria-label": "Dismiss",
36
- children: /* @__PURE__ */ e(m, { size: "16", glyph: /* @__PURE__ */ e(d, {}) })
42
+ onClick: o,
43
+ "aria-label": p,
44
+ children: /* @__PURE__ */ e(l, { size: "16", glyph: /* @__PURE__ */ e(w, {}) })
37
45
  }
38
46
  )
39
47
  ] });
40
48
  }
41
49
  export {
42
- h as default
50
+ C as default
43
51
  };
44
52
  //# sourceMappingURL=NewMessageBanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NewMessageBanner.js","sources":["../../../src/components/new-message-banner/NewMessageBanner.tsx"],"sourcesContent":["import Icon from '@/components/icon/Icon';\nimport ArrowDownIcon from '@mattermost/compass-icons/components/arrow-down';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './NewMessageBanner.module.scss';\n\nexport type NewMessageBannerType = 'jump-to-unreads' | 'new-replies';\n\nexport interface NewMessageBannerProps {\n /** Optional CSS class name. */\n className?: string;\n /** Type controls the layout. Default: JumpToUnreads. */\n type?: NewMessageBannerType;\n /** Unread count label text (e.g. \"21 new messages since Saturday\"). Used in JumpToUnreads type. */\n countLabel?: string;\n /** Called when the banner itself is clicked. */\n onClick?: () => void;\n /** Called when the dismiss (×) button is clicked. */\n onDismiss?: () => void;\n}\n\n/**\n * The New Messages Banner alerts the user that there's fresh activity in the channel they're\n * reading. It floats over the message stream so they can jump to the unread region in one\n * click — or dismiss it if they'd rather keep scrolling.\n */\nexport default function NewMessageBanner({\n className = '',\n type = 'jump-to-unreads',\n countLabel,\n onClick,\n onDismiss,\n}: NewMessageBannerProps) {\n const typeClass =\n styles[\n `new-message-banner--type-${type === 'jump-to-unreads' ? 'jump-to-unreads' : 'new-replies'}`\n ];\n\n const rootClass = [styles['new-message-banner'], typeClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n <button\n className={styles['new-message-banner__main']}\n type=\"button\"\n onClick={onClick}\n aria-label={\n type === 'jump-to-unreads'\n ? countLabel != null\n ? `Jump to unreads, ${countLabel}`\n : 'Jump to unreads'\n : undefined\n }\n >\n <span className={styles['new-message-banner__left']}>\n <span className={styles['new-message-banner__icon']} aria-hidden>\n <Icon size=\"16\" glyph={<ArrowDownIcon />} />\n </span>\n <span className={styles['new-message-banner__jump-label']}>\n {type === 'jump-to-unreads' ? 'Jump to unreads' : 'New replies'}\n </span>\n </span>\n </button>\n {type === 'jump-to-unreads' && countLabel != null && (\n <span className={styles['new-message-banner__count']} aria-hidden>\n {countLabel}\n </span>\n )}\n {onDismiss != null && (\n <button\n className={styles['new-message-banner__dismiss']}\n type=\"button\"\n onClick={onDismiss}\n aria-label=\"Dismiss\"\n >\n <Icon size=\"16\" glyph={<CloseIcon />} />\n </button>\n )}\n </div>\n );\n}\n"],"names":["NewMessageBanner","className","type","countLabel","onClick","onDismiss","typeClass","styles","rootClass","jsxs","jsx","Icon","ArrowDownIcon","CloseIcon"],"mappings":";;;;;AAyBA,SAAwBA,EAAiB;AAAA,EACvC,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AACF,GAA0B;AACxB,QAAMC,IACJC,EACE,4BAA4BL,MAAS,oBAAoB,oBAAoB,aAAa,EAC5F,GAEIM,IAAY,CAACD,EAAO,oBAAoB,GAAGD,GAAWL,CAAS,EAClE,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAQ,EAAC,OAAA,EAAI,WAAWD,GACd,UAAA;AAAA,IAAA,gBAAAE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWH,EAAO,0BAA0B;AAAA,QAC5C,MAAK;AAAA,QACL,SAAAH;AAAA,QACA,cACEF,MAAS,oBACLC,KAAc,OACZ,oBAAoBA,CAAU,KAC9B,oBACF;AAAA,QAGN,UAAA,gBAAAM,EAAC,QAAA,EAAK,WAAWF,EAAO,0BAA0B,GAChD,UAAA;AAAA,UAAA,gBAAAG,EAAC,QAAA,EAAK,WAAWH,EAAO,0BAA0B,GAAG,eAAW,IAC9D,UAAA,gBAAAG,EAACC,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAD,EAACE,GAAA,CAAA,CAAc,GAAI,GAC5C;AAAA,UACA,gBAAAF,EAAC,UAAK,WAAWH,EAAO,gCAAgC,GACrD,UAAAL,MAAS,oBAAoB,oBAAoB,cAAA,CACpD;AAAA,QAAA,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,IAEDA,MAAS,qBAAqBC,KAAc,QAC3C,gBAAAO,EAAC,QAAA,EAAK,WAAWH,EAAO,2BAA2B,GAAG,eAAW,IAC9D,UAAAJ,EAAA,CACH;AAAA,IAEDE,KAAa,QACZ,gBAAAK;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWH,EAAO,6BAA6B;AAAA,QAC/C,MAAK;AAAA,QACL,SAASF;AAAA,QACT,cAAW;AAAA,QAEX,4BAACM,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAD,EAACG,KAAU,EAAA,CAAI;AAAA,MAAA;AAAA,IAAA;AAAA,EACxC,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"NewMessageBanner.js","sources":["../../../src/components/new-message-banner/NewMessageBanner.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport Icon from '@/components/icon/Icon';\nimport ArrowDownIcon from '@mattermost/compass-icons/components/arrow-down';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './NewMessageBanner.module.scss';\n\nexport type NewMessageBannerType = 'jump-to-unreads' | 'new-replies';\n\nexport interface NewMessageBannerProps {\n /** Optional CSS class name. */\n className?: string;\n /** Type controls the layout. Default: JumpToUnreads. */\n type?: NewMessageBannerType;\n /** Unread count label text (e.g. \"21 new messages since Saturday\"). Used in JumpToUnreads type. Accepts translated nodes. */\n countLabel?: ReactNode;\n /** Called when the banner itself is clicked. */\n onClick?: () => void;\n /** Called when the dismiss (×) button is clicked. */\n onDismiss?: () => void;\n /** Visible label for the JumpToUnreads type. Default: \"Jump to unreads\". */\n jumpLabel?: ReactNode;\n /**\n * Accessible name for the jump button. Default: `{jumpLabel}, {countLabel}`\n * when both are strings. Pass it when either is a translated node.\n */\n jumpAriaLabel?: string;\n /** Visible label for the NewReplies type. Default: \"New replies\". */\n newRepliesLabel?: ReactNode;\n /** Accessible name for the dismiss button. Default: \"Dismiss\". */\n dismissLabel?: string;\n}\n\nfunction defaultJumpAriaLabel(\n jumpLabel: ReactNode,\n countLabel: ReactNode,\n): string | undefined {\n if (typeof jumpLabel !== 'string') return undefined;\n return typeof countLabel === 'string'\n ? `${jumpLabel}, ${countLabel}`\n : jumpLabel;\n}\n\n/**\n * The New Messages Banner alerts the user that there's fresh activity in the channel they're\n * reading. It floats over the message stream so they can jump to the unread region in one\n * click — or dismiss it if they'd rather keep scrolling.\n */\nexport default function NewMessageBanner({\n className = '',\n type = 'jump-to-unreads',\n countLabel,\n onClick,\n onDismiss,\n jumpLabel = 'Jump to unreads',\n jumpAriaLabel,\n newRepliesLabel = 'New replies',\n dismissLabel = 'Dismiss',\n}: NewMessageBannerProps) {\n const typeClass =\n styles[\n `new-message-banner--type-${type === 'jump-to-unreads' ? 'jump-to-unreads' : 'new-replies'}`\n ];\n\n const rootClass = [styles['new-message-banner'], typeClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n <button\n className={styles['new-message-banner__main']}\n type=\"button\"\n onClick={onClick}\n aria-label={\n type === 'jump-to-unreads'\n ? (jumpAriaLabel ?? defaultJumpAriaLabel(jumpLabel, countLabel))\n : undefined\n }\n >\n <span className={styles['new-message-banner__left']}>\n <span className={styles['new-message-banner__icon']} aria-hidden>\n <Icon size=\"16\" glyph={<ArrowDownIcon />} />\n </span>\n <span className={styles['new-message-banner__jump-label']}>\n {type === 'jump-to-unreads' ? jumpLabel : newRepliesLabel}\n </span>\n </span>\n </button>\n {type === 'jump-to-unreads' && countLabel != null && (\n <span className={styles['new-message-banner__count']} aria-hidden>\n {countLabel}\n </span>\n )}\n {onDismiss != null && (\n <button\n className={styles['new-message-banner__dismiss']}\n type=\"button\"\n onClick={onDismiss}\n aria-label={dismissLabel}\n >\n <Icon size=\"16\" glyph={<CloseIcon />} />\n </button>\n )}\n </div>\n );\n}\n"],"names":["defaultJumpAriaLabel","jumpLabel","countLabel","NewMessageBanner","className","type","onClick","onDismiss","jumpAriaLabel","newRepliesLabel","dismissLabel","typeClass","styles","rootClass","jsxs","jsx","Icon","ArrowDownIcon","CloseIcon"],"mappings":";;;;;AAgCA,SAASA,EACPC,GACAC,GACoB;AACpB,MAAI,OAAOD,KAAc;AACzB,WAAO,OAAOC,KAAe,WACzB,GAAGD,CAAS,KAAKC,CAAU,KAC3BD;AACN;AAOA,SAAwBE,EAAiB;AAAA,EACvC,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,YAAAH;AAAA,EACA,SAAAI;AAAA,EACA,WAAAC;AAAA,EACA,WAAAN,IAAY;AAAA,EACZ,eAAAO;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,cAAAC,IAAe;AACjB,GAA0B;AACxB,QAAMC,IACJC,EACE,4BAA4BP,MAAS,oBAAoB,oBAAoB,aAAa,EAC5F,GAEIQ,IAAY,CAACD,EAAO,oBAAoB,GAAGD,GAAWP,CAAS,EAClE,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAU,EAAC,OAAA,EAAI,WAAWD,GACd,UAAA;AAAA,IAAA,gBAAAE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWH,EAAO,0BAA0B;AAAA,QAC5C,MAAK;AAAA,QACL,SAAAN;AAAA,QACA,cACED,MAAS,oBACJG,KAAiBR,EAAqBC,GAAWC,CAAU,IAC5D;AAAA,QAGN,UAAA,gBAAAY,EAAC,QAAA,EAAK,WAAWF,EAAO,0BAA0B,GAChD,UAAA;AAAA,UAAA,gBAAAG,EAAC,QAAA,EAAK,WAAWH,EAAO,0BAA0B,GAAG,eAAW,IAC9D,UAAA,gBAAAG,EAACC,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAD,EAACE,GAAA,CAAA,CAAc,GAAI,GAC5C;AAAA,UACA,gBAAAF,EAAC,UAAK,WAAWH,EAAO,gCAAgC,GACrD,UAAAP,MAAS,oBAAoBJ,IAAYQ,EAAA,CAC5C;AAAA,QAAA,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,IAEDJ,MAAS,qBAAqBH,KAAc,QAC3C,gBAAAa,EAAC,QAAA,EAAK,WAAWH,EAAO,2BAA2B,GAAG,eAAW,IAC9D,UAAAV,EAAA,CACH;AAAA,IAEDK,KAAa,QACZ,gBAAAQ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWH,EAAO,6BAA6B;AAAA,QAC/C,MAAK;AAAA,QACL,SAASL;AAAA,QACT,cAAYG;AAAA,QAEZ,4BAACM,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAD,EAACG,KAAU,EAAA,CAAI;AAAA,MAAA;AAAA,IAAA;AAAA,EACxC,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"),t=require("./PaginationDots.module.scss.cjs");function b({pages:s,activePage:l,orientation:r="horizontal",dotStyle:o="default",onPageChange:i,className:d=""}){const c=r==="vertical",u=o==="inverted",f=o==="on-primary",p=c?t.default["pagination-dots--vertical"]:t.default["pagination-dots--horizontal"],m=u?t.default["pagination-dots--inverted"]:f?t.default["pagination-dots--on-primary"]:"";return e.jsx("div",{className:[t.default["pagination-dots"],p,m,d].filter(Boolean).join(" "),role:"tablist","aria-label":"Pages",children:Array.from({length:s},(g,v)=>{const a=v+1,n=a===l,_=[t.default["pagination-dots__dot"],n?t.default["pagination-dots__dot--active"]:""].filter(Boolean).join(" ");return e.jsx("button",{type:"button",role:"tab","aria-selected":n,"aria-label":`Page ${a}`,className:t.default["pagination-dots__item"],onClick:()=>i==null?void 0:i(a),children:e.jsx("span",{className:_})},a)})})}exports.default=b;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),t=require("./PaginationDots.module.scss.cjs"),j=e=>`Page ${e}`;function y({pages:e,activePage:l,orientation:r="horizontal",dotStyle:n="default",onPageChange:i,className:d="",label:c="Pages",formatPageLabel:u=j}){const f=r==="vertical",p=n==="inverted",m=n==="on-primary",v=f?t.default["pagination-dots--vertical"]:t.default["pagination-dots--horizontal"],_=p?t.default["pagination-dots--inverted"]:m?t.default["pagination-dots--on-primary"]:"";return o.jsx("div",{className:[t.default["pagination-dots"],v,_,d].filter(Boolean).join(" "),role:"tablist","aria-label":c,children:Array.from({length:e},(x,b)=>{const a=b+1,s=a===l,g=[t.default["pagination-dots__dot"],s?t.default["pagination-dots__dot--active"]:""].filter(Boolean).join(" ");return o.jsx("button",{type:"button",role:"tab","aria-selected":s,"aria-label":u(a),className:t.default["pagination-dots__item"],onClick:()=>i==null?void 0:i(a),children:o.jsx("span",{className:g})},a)})})}exports.default=y;
2
2
  //# sourceMappingURL=PaginationDots.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationDots.cjs","sources":["../../../src/components/pagination-dots/PaginationDots.tsx"],"sourcesContent":["import styles from './PaginationDots.module.scss';\n\nexport type PaginationDotsOrientation = 'horizontal' | 'vertical';\nexport type PaginationDotsStyle = 'default' | 'inverted' | 'on-primary';\n\nexport interface PaginationDotsProps {\n /** Total number of pages/steps. */\n pages: number;\n /** Currently active page (1-indexed). */\n activePage: number;\n /** Layout orientation. Default: Horizontal. */\n orientation?: PaginationDotsOrientation;\n /** Color style. Default: Default. */\n dotStyle?: PaginationDotsStyle;\n /** Called when a dot is clicked. Receives the 1-indexed page number. */\n onPageChange?: (page: number) => void;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * Pagination Dots indicate progress through a fixed sequence of steps — most often a\n * multi-step onboarding flow or a swipeable carousel. One dot per step, the active one\n * filled, the rest quiet.\n */\nexport default function PaginationDots({\n pages,\n activePage,\n orientation = 'horizontal',\n dotStyle = 'default',\n onPageChange,\n className = '',\n}: PaginationDotsProps) {\n const isVertical = orientation === 'vertical';\n const isInverted = dotStyle === 'inverted';\n const isOnPrimary = dotStyle === 'on-primary';\n\n const orientationClass = isVertical\n ? styles['pagination-dots--vertical']\n : styles['pagination-dots--horizontal'];\n const styleClass = isInverted\n ? styles['pagination-dots--inverted']\n : isOnPrimary\n ? styles['pagination-dots--on-primary']\n : '';\n\n return (\n <div\n className={[\n styles['pagination-dots'],\n orientationClass,\n styleClass,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n role=\"tablist\"\n aria-label=\"Pages\"\n >\n {Array.from({ length: pages }, (_, i) => {\n const page = i + 1;\n const isActive = page === activePage;\n const dotClass = [\n styles['pagination-dots__dot'],\n isActive ? styles['pagination-dots__dot--active'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n key={page}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-label={`Page ${page}`}\n className={styles['pagination-dots__item']}\n onClick={() => onPageChange?.(page)}\n >\n <span className={dotClass} />\n </button>\n );\n })}\n </div>\n );\n}\n"],"names":["PaginationDots","pages","activePage","orientation","dotStyle","onPageChange","className","isVertical","isInverted","isOnPrimary","orientationClass","styles","styleClass","jsx","_","i","page","isActive","dotClass"],"mappings":"+LAyBA,SAAwBA,EAAe,CACrC,MAAAC,EACA,WAAAC,EACA,YAAAC,EAAc,aACd,SAAAC,EAAW,UACX,aAAAC,EACA,UAAAC,EAAY,EACd,EAAwB,CACtB,MAAMC,EAAaJ,IAAgB,WAC7BK,EAAaJ,IAAa,WAC1BK,EAAcL,IAAa,aAE3BM,EAAmBH,EACrBI,EAAAA,QAAO,2BAA2B,EAClCA,EAAAA,QAAO,6BAA6B,EAClCC,EAAaJ,EACfG,UAAO,2BAA2B,EAClCF,EACEE,EAAAA,QAAO,6BAA6B,EACpC,GAEN,OACEE,EAAAA,IAAC,MAAA,CACC,UAAW,CACTF,EAAAA,QAAO,iBAAiB,EACxBD,EACAE,EACAN,CAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EACX,KAAK,UACL,aAAW,QAEV,SAAA,MAAM,KAAK,CAAE,OAAQL,GAAS,CAACa,EAAGC,IAAM,CACvC,MAAMC,EAAOD,EAAI,EACXE,EAAWD,IAASd,EACpBgB,EAAW,CACfP,EAAAA,QAAO,sBAAsB,EAC7BM,EAAWN,EAAAA,QAAO,8BAA8B,EAAI,EAAA,EAEnD,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEE,EAAAA,IAAC,SAAA,CAEC,KAAK,SACL,KAAK,MACL,gBAAeI,EACf,aAAY,QAAQD,CAAI,GACxB,UAAWL,EAAAA,QAAO,uBAAuB,EACzC,QAAS,IAAMN,GAAA,YAAAA,EAAeW,GAE9B,SAAAH,EAAAA,IAAC,OAAA,CAAK,UAAWK,CAAA,CAAU,CAAA,EARtBF,CAAA,CAWX,CAAC,CAAA,CAAA,CAGP"}
1
+ {"version":3,"file":"PaginationDots.cjs","sources":["../../../src/components/pagination-dots/PaginationDots.tsx"],"sourcesContent":["import styles from './PaginationDots.module.scss';\n\nexport type PaginationDotsOrientation = 'horizontal' | 'vertical';\nexport type PaginationDotsStyle = 'default' | 'inverted' | 'on-primary';\n\nexport interface PaginationDotsProps {\n /** Total number of pages/steps. */\n pages: number;\n /** Currently active page (1-indexed). */\n activePage: number;\n /** Layout orientation. Default: Horizontal. */\n orientation?: PaginationDotsOrientation;\n /** Color style. Default: Default. */\n dotStyle?: PaginationDotsStyle;\n /** Called when a dot is clicked. Receives the 1-indexed page number. */\n onPageChange?: (page: number) => void;\n /** Optional CSS class name. */\n className?: string;\n /** Accessible name for the dot list. Default: \"Pages\". */\n label?: string;\n /** Accessible name for each dot. Default: `Page {page}`. */\n formatPageLabel?: (page: number) => string;\n}\n\nconst defaultFormatPageLabel = (page: number) => `Page ${page}`;\n\n/**\n * Pagination Dots indicate progress through a fixed sequence of steps — most often a\n * multi-step onboarding flow or a swipeable carousel. One dot per step, the active one\n * filled, the rest quiet.\n */\nexport default function PaginationDots({\n pages,\n activePage,\n orientation = 'horizontal',\n dotStyle = 'default',\n onPageChange,\n className = '',\n label = 'Pages',\n formatPageLabel = defaultFormatPageLabel,\n}: PaginationDotsProps) {\n const isVertical = orientation === 'vertical';\n const isInverted = dotStyle === 'inverted';\n const isOnPrimary = dotStyle === 'on-primary';\n\n const orientationClass = isVertical\n ? styles['pagination-dots--vertical']\n : styles['pagination-dots--horizontal'];\n const styleClass = isInverted\n ? styles['pagination-dots--inverted']\n : isOnPrimary\n ? styles['pagination-dots--on-primary']\n : '';\n\n return (\n <div\n className={[\n styles['pagination-dots'],\n orientationClass,\n styleClass,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n role=\"tablist\"\n aria-label={label}\n >\n {Array.from({ length: pages }, (_, i) => {\n const page = i + 1;\n const isActive = page === activePage;\n const dotClass = [\n styles['pagination-dots__dot'],\n isActive ? styles['pagination-dots__dot--active'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n key={page}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-label={formatPageLabel(page)}\n className={styles['pagination-dots__item']}\n onClick={() => onPageChange?.(page)}\n >\n <span className={dotClass} />\n </button>\n );\n })}\n </div>\n );\n}\n"],"names":["defaultFormatPageLabel","page","PaginationDots","pages","activePage","orientation","dotStyle","onPageChange","className","label","formatPageLabel","isVertical","isInverted","isOnPrimary","orientationClass","styles","styleClass","jsx","_","i","isActive","dotClass"],"mappings":"+LAwBMA,EAA0BC,GAAiB,QAAQA,CAAI,GAO7D,SAAwBC,EAAe,CACrC,MAAAC,EACA,WAAAC,EACA,YAAAC,EAAc,aACd,SAAAC,EAAW,UACX,aAAAC,EACA,UAAAC,EAAY,GACZ,MAAAC,EAAQ,QACR,gBAAAC,EAAkBV,CACpB,EAAwB,CACtB,MAAMW,EAAaN,IAAgB,WAC7BO,EAAaN,IAAa,WAC1BO,EAAcP,IAAa,aAE3BQ,EAAmBH,EACrBI,EAAAA,QAAO,2BAA2B,EAClCA,EAAAA,QAAO,6BAA6B,EAClCC,EAAaJ,EACfG,UAAO,2BAA2B,EAClCF,EACEE,EAAAA,QAAO,6BAA6B,EACpC,GAEN,OACEE,EAAAA,IAAC,MAAA,CACC,UAAW,CACTF,EAAAA,QAAO,iBAAiB,EACxBD,EACAE,EACAR,CAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EACX,KAAK,UACL,aAAYC,EAEX,SAAA,MAAM,KAAK,CAAE,OAAQN,GAAS,CAACe,EAAGC,IAAM,CACvC,MAAMlB,EAAOkB,EAAI,EACXC,EAAWnB,IAASG,EACpBiB,EAAW,CACfN,EAAAA,QAAO,sBAAsB,EAC7BK,EAAWL,EAAAA,QAAO,8BAA8B,EAAI,EAAA,EAEnD,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEE,EAAAA,IAAC,SAAA,CAEC,KAAK,SACL,KAAK,MACL,gBAAeG,EACf,aAAYV,EAAgBT,CAAI,EAChC,UAAWc,EAAAA,QAAO,uBAAuB,EACzC,QAAS,IAAMR,GAAA,YAAAA,EAAeN,GAE9B,SAAAgB,EAAAA,IAAC,OAAA,CAAK,UAAWI,CAAA,CAAU,CAAA,EARtBpB,CAAA,CAWX,CAAC,CAAA,CAAA,CAGP"}
@@ -1 +1 @@
1
- ._pagination-dots_1r0u8_2{display:inline-flex;overflow:visible}._pagination-dots--horizontal_1r0u8_6{flex-direction:row;align-items:center}._pagination-dots--vertical_1r0u8_10{flex-direction:column;justify-content:center}._pagination-dots--inverted_1r0u8_14 ._pagination-dots__dot_1r0u8_14{background-color:rgba(var(--sidebar-text-rgb),.4)}._pagination-dots--inverted_1r0u8_14 ._pagination-dots__dot--active_1r0u8_17{background-color:var(--sidebar-text);box-shadow:0 0 0 4px rgba(var(--sidebar-text-rgb),.16)}._pagination-dots--on-primary_1r0u8_21{--focus-ring-color: var(--button-color)}._pagination-dots--on-primary_1r0u8_21 ._pagination-dots__dot_1r0u8_14{background-color:rgba(var(--button-color-rgb),.4)}._pagination-dots--on-primary_1r0u8_21 ._pagination-dots__dot--active_1r0u8_17{background-color:var(--button-color);box-shadow:0 0 0 4px rgba(var(--button-color-rgb),.24)}._pagination-dots__item_1r0u8_31{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;border-radius:var(--radius-full);cursor:pointer;flex-shrink:0;outline:2px solid color-mix(in srgb,var(--focus-ring-color) 0%,transparent);outline-offset:0;transition:outline-color var(--duration-quick) var(--ease-transition),outline-offset var(--duration-quick) var(--ease-transition)}._pagination-dots__item_1r0u8_31:focus-visible{outline-color:var(--focus-ring-color);outline-offset:3px}._pagination-dots__dot_1r0u8_14{display:block;width:6px;height:6px;border-radius:var(--radius-full);background-color:rgba(var(--center-channel-color-rgb),.24);transition:background-color var(--duration-quick) var(--ease-transition),width var(--duration-quick) var(--ease-transition),height var(--duration-quick) var(--ease-transition),box-shadow var(--duration-quick) var(--ease-transition)}._pagination-dots__dot--active_1r0u8_17{background-color:var(--button-bg);box-shadow:0 0 0 4px rgba(var(--button-bg-rgb),.16)}
1
+ ._pagination-dots_1j47i_2{display:inline-flex;overflow:visible}._pagination-dots--horizontal_1j47i_6{flex-direction:row;align-items:center}._pagination-dots--vertical_1j47i_10{flex-direction:column;justify-content:center}._pagination-dots--inverted_1j47i_14 ._pagination-dots__dot_1j47i_14{background-color:rgba(var(--sidebar-text-rgb),.4)}._pagination-dots--inverted_1j47i_14 ._pagination-dots__dot--active_1j47i_17{background-color:var(--sidebar-text);box-shadow:0 0 0 4px rgba(var(--sidebar-text-rgb),.16)}._pagination-dots--on-primary_1j47i_21{--focus-ring-color: var(--button-color)}._pagination-dots--on-primary_1j47i_21 ._pagination-dots__dot_1j47i_14{background-color:rgba(var(--button-color-rgb),.4)}._pagination-dots--on-primary_1j47i_21 ._pagination-dots__dot--active_1j47i_17{background-color:var(--button-color);box-shadow:0 0 0 4px rgba(var(--button-color-rgb),.24)}._pagination-dots__item_1j47i_31{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;border-radius:var(--radius-pill);cursor:pointer;flex-shrink:0;outline:2px solid color-mix(in srgb,var(--focus-ring-color) 0%,transparent);outline-offset:0;transition:outline-color var(--duration-quick) var(--ease-transition),outline-offset var(--duration-quick) var(--ease-transition)}._pagination-dots__item_1j47i_31:focus-visible{outline-color:var(--focus-ring-color);outline-offset:3px}._pagination-dots__dot_1j47i_14{display:block;width:6px;height:6px;border-radius:var(--radius-pill);background-color:rgba(var(--center-channel-color-rgb),.24);transition:background-color var(--duration-quick) var(--ease-transition),width var(--duration-quick) var(--ease-transition),height var(--duration-quick) var(--ease-transition),box-shadow var(--duration-quick) var(--ease-transition)}._pagination-dots__dot--active_1j47i_17{background-color:var(--button-bg);box-shadow:0 0 0 4px rgba(var(--button-bg-rgb),.16)}
@@ -13,11 +13,15 @@ export interface PaginationDotsProps {
13
13
  onPageChange?: (page: number) => void;
14
14
  /** Optional CSS class name. */
15
15
  className?: string;
16
+ /** Accessible name for the dot list. Default: "Pages". */
17
+ label?: string;
18
+ /** Accessible name for each dot. Default: `Page {page}`. */
19
+ formatPageLabel?: (page: number) => string;
16
20
  }
17
21
  /**
18
22
  * Pagination Dots indicate progress through a fixed sequence of steps — most often a
19
23
  * multi-step onboarding flow or a swipeable carousel. One dot per step, the active one
20
24
  * filled, the rest quiet.
21
25
  */
22
- export default function PaginationDots({ pages, activePage, orientation, dotStyle, onPageChange, className, }: PaginationDotsProps): import("react/jsx-runtime").JSX.Element;
26
+ export default function PaginationDots({ pages, activePage, orientation, dotStyle, onPageChange, className, label, formatPageLabel, }: PaginationDotsProps): import("react/jsx-runtime").JSX.Element;
23
27
  //# sourceMappingURL=PaginationDots.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationDots.d.ts","sourceRoot":"","sources":["../../../src/components/pagination-dots/PaginationDots.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG,UAAU,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,qCAAqC;IACrC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,wEAAwE;IACxE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,KAAK,EACL,UAAU,EACV,WAA0B,EAC1B,QAAoB,EACpB,YAAY,EACZ,SAAc,GACf,EAAE,mBAAmB,2CAqDrB"}
1
+ {"version":3,"file":"PaginationDots.d.ts","sourceRoot":"","sources":["../../../src/components/pagination-dots/PaginationDots.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG,UAAU,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,qCAAqC;IACrC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,wEAAwE;IACxE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C;AAID;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,KAAK,EACL,UAAU,EACV,WAA0B,EAC1B,QAAoB,EACpB,YAAY,EACZ,SAAc,EACd,KAAe,EACf,eAAwC,GACzC,EAAE,mBAAmB,2CAqDrB"}
@@ -1,48 +1,51 @@
1
- import { jsx as a } from "react/jsx-runtime";
1
+ import { jsx as n } from "react/jsx-runtime";
2
2
  import t from "./PaginationDots.module.scss.js";
3
- function j({
4
- pages: r,
3
+ const y = (i) => `Page ${i}`;
4
+ function z({
5
+ pages: i,
5
6
  activePage: e,
6
7
  orientation: l = "horizontal",
7
- dotStyle: n = "default",
8
+ dotStyle: s = "default",
8
9
  onPageChange: o,
9
- className: c = ""
10
+ className: c = "",
11
+ label: d = "Pages",
12
+ formatPageLabel: p = y
10
13
  }) {
11
- const d = l === "vertical", p = n === "inverted", m = n === "on-primary", f = d ? t["pagination-dots--vertical"] : t["pagination-dots--horizontal"], v = p ? t["pagination-dots--inverted"] : m ? t["pagination-dots--on-primary"] : "";
12
- return /* @__PURE__ */ a(
14
+ const m = l === "vertical", f = s === "inverted", u = s === "on-primary", v = m ? t["pagination-dots--vertical"] : t["pagination-dots--horizontal"], b = f ? t["pagination-dots--inverted"] : u ? t["pagination-dots--on-primary"] : "";
15
+ return /* @__PURE__ */ n(
13
16
  "div",
14
17
  {
15
18
  className: [
16
19
  t["pagination-dots"],
17
- f,
18
20
  v,
21
+ b,
19
22
  c
20
23
  ].filter(Boolean).join(" "),
21
24
  role: "tablist",
22
- "aria-label": "Pages",
23
- children: Array.from({ length: r }, (b, u) => {
24
- const i = u + 1, s = i === e, _ = [
25
+ "aria-label": d,
26
+ children: Array.from({ length: i }, (j, _) => {
27
+ const a = _ + 1, r = a === e, g = [
25
28
  t["pagination-dots__dot"],
26
- s ? t["pagination-dots__dot--active"] : ""
29
+ r ? t["pagination-dots__dot--active"] : ""
27
30
  ].filter(Boolean).join(" ");
28
- return /* @__PURE__ */ a(
31
+ return /* @__PURE__ */ n(
29
32
  "button",
30
33
  {
31
34
  type: "button",
32
35
  role: "tab",
33
- "aria-selected": s,
34
- "aria-label": `Page ${i}`,
36
+ "aria-selected": r,
37
+ "aria-label": p(a),
35
38
  className: t["pagination-dots__item"],
36
- onClick: () => o == null ? void 0 : o(i),
37
- children: /* @__PURE__ */ a("span", { className: _ })
39
+ onClick: () => o == null ? void 0 : o(a),
40
+ children: /* @__PURE__ */ n("span", { className: g })
38
41
  },
39
- i
42
+ a
40
43
  );
41
44
  })
42
45
  }
43
46
  );
44
47
  }
45
48
  export {
46
- j as default
49
+ z as default
47
50
  };
48
51
  //# sourceMappingURL=PaginationDots.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationDots.js","sources":["../../../src/components/pagination-dots/PaginationDots.tsx"],"sourcesContent":["import styles from './PaginationDots.module.scss';\n\nexport type PaginationDotsOrientation = 'horizontal' | 'vertical';\nexport type PaginationDotsStyle = 'default' | 'inverted' | 'on-primary';\n\nexport interface PaginationDotsProps {\n /** Total number of pages/steps. */\n pages: number;\n /** Currently active page (1-indexed). */\n activePage: number;\n /** Layout orientation. Default: Horizontal. */\n orientation?: PaginationDotsOrientation;\n /** Color style. Default: Default. */\n dotStyle?: PaginationDotsStyle;\n /** Called when a dot is clicked. Receives the 1-indexed page number. */\n onPageChange?: (page: number) => void;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * Pagination Dots indicate progress through a fixed sequence of steps — most often a\n * multi-step onboarding flow or a swipeable carousel. One dot per step, the active one\n * filled, the rest quiet.\n */\nexport default function PaginationDots({\n pages,\n activePage,\n orientation = 'horizontal',\n dotStyle = 'default',\n onPageChange,\n className = '',\n}: PaginationDotsProps) {\n const isVertical = orientation === 'vertical';\n const isInverted = dotStyle === 'inverted';\n const isOnPrimary = dotStyle === 'on-primary';\n\n const orientationClass = isVertical\n ? styles['pagination-dots--vertical']\n : styles['pagination-dots--horizontal'];\n const styleClass = isInverted\n ? styles['pagination-dots--inverted']\n : isOnPrimary\n ? styles['pagination-dots--on-primary']\n : '';\n\n return (\n <div\n className={[\n styles['pagination-dots'],\n orientationClass,\n styleClass,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n role=\"tablist\"\n aria-label=\"Pages\"\n >\n {Array.from({ length: pages }, (_, i) => {\n const page = i + 1;\n const isActive = page === activePage;\n const dotClass = [\n styles['pagination-dots__dot'],\n isActive ? styles['pagination-dots__dot--active'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n key={page}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-label={`Page ${page}`}\n className={styles['pagination-dots__item']}\n onClick={() => onPageChange?.(page)}\n >\n <span className={dotClass} />\n </button>\n );\n })}\n </div>\n );\n}\n"],"names":["PaginationDots","pages","activePage","orientation","dotStyle","onPageChange","className","isVertical","isInverted","isOnPrimary","orientationClass","styles","styleClass","jsx","_","i","page","isActive","dotClass"],"mappings":";;AAyBA,SAAwBA,EAAe;AAAA,EACrC,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,UAAAC,IAAW;AAAA,EACX,cAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAwB;AACtB,QAAMC,IAAaJ,MAAgB,YAC7BK,IAAaJ,MAAa,YAC1BK,IAAcL,MAAa,cAE3BM,IAAmBH,IACrBI,EAAO,2BAA2B,IAClCA,EAAO,6BAA6B,GAClCC,IAAaJ,IACfG,EAAO,2BAA2B,IAClCF,IACEE,EAAO,6BAA6B,IACpC;AAEN,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACTF,EAAO,iBAAiB;AAAA,QACxBD;AAAA,QACAE;AAAA,QACAN;AAAA,MAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MACX,MAAK;AAAA,MACL,cAAW;AAAA,MAEV,UAAA,MAAM,KAAK,EAAE,QAAQL,KAAS,CAACa,GAAGC,MAAM;AACvC,cAAMC,IAAOD,IAAI,GACXE,IAAWD,MAASd,GACpBgB,IAAW;AAAA,UACfP,EAAO,sBAAsB;AAAA,UAC7BM,IAAWN,EAAO,8BAA8B,IAAI;AAAA,QAAA,EAEnD,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,eACE,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,MAAK;AAAA,YACL,MAAK;AAAA,YACL,iBAAeI;AAAA,YACf,cAAY,QAAQD,CAAI;AAAA,YACxB,WAAWL,EAAO,uBAAuB;AAAA,YACzC,SAAS,MAAMN,KAAA,gBAAAA,EAAeW;AAAA,YAE9B,UAAA,gBAAAH,EAAC,QAAA,EAAK,WAAWK,EAAA,CAAU;AAAA,UAAA;AAAA,UARtBF;AAAA,QAAA;AAAA,MAWX,CAAC;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"PaginationDots.js","sources":["../../../src/components/pagination-dots/PaginationDots.tsx"],"sourcesContent":["import styles from './PaginationDots.module.scss';\n\nexport type PaginationDotsOrientation = 'horizontal' | 'vertical';\nexport type PaginationDotsStyle = 'default' | 'inverted' | 'on-primary';\n\nexport interface PaginationDotsProps {\n /** Total number of pages/steps. */\n pages: number;\n /** Currently active page (1-indexed). */\n activePage: number;\n /** Layout orientation. Default: Horizontal. */\n orientation?: PaginationDotsOrientation;\n /** Color style. Default: Default. */\n dotStyle?: PaginationDotsStyle;\n /** Called when a dot is clicked. Receives the 1-indexed page number. */\n onPageChange?: (page: number) => void;\n /** Optional CSS class name. */\n className?: string;\n /** Accessible name for the dot list. Default: \"Pages\". */\n label?: string;\n /** Accessible name for each dot. Default: `Page {page}`. */\n formatPageLabel?: (page: number) => string;\n}\n\nconst defaultFormatPageLabel = (page: number) => `Page ${page}`;\n\n/**\n * Pagination Dots indicate progress through a fixed sequence of steps — most often a\n * multi-step onboarding flow or a swipeable carousel. One dot per step, the active one\n * filled, the rest quiet.\n */\nexport default function PaginationDots({\n pages,\n activePage,\n orientation = 'horizontal',\n dotStyle = 'default',\n onPageChange,\n className = '',\n label = 'Pages',\n formatPageLabel = defaultFormatPageLabel,\n}: PaginationDotsProps) {\n const isVertical = orientation === 'vertical';\n const isInverted = dotStyle === 'inverted';\n const isOnPrimary = dotStyle === 'on-primary';\n\n const orientationClass = isVertical\n ? styles['pagination-dots--vertical']\n : styles['pagination-dots--horizontal'];\n const styleClass = isInverted\n ? styles['pagination-dots--inverted']\n : isOnPrimary\n ? styles['pagination-dots--on-primary']\n : '';\n\n return (\n <div\n className={[\n styles['pagination-dots'],\n orientationClass,\n styleClass,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n role=\"tablist\"\n aria-label={label}\n >\n {Array.from({ length: pages }, (_, i) => {\n const page = i + 1;\n const isActive = page === activePage;\n const dotClass = [\n styles['pagination-dots__dot'],\n isActive ? styles['pagination-dots__dot--active'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n key={page}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-label={formatPageLabel(page)}\n className={styles['pagination-dots__item']}\n onClick={() => onPageChange?.(page)}\n >\n <span className={dotClass} />\n </button>\n );\n })}\n </div>\n );\n}\n"],"names":["defaultFormatPageLabel","page","PaginationDots","pages","activePage","orientation","dotStyle","onPageChange","className","label","formatPageLabel","isVertical","isInverted","isOnPrimary","orientationClass","styles","styleClass","jsx","_","i","isActive","dotClass"],"mappings":";;AAwBA,MAAMA,IAAyB,CAACC,MAAiB,QAAQA,CAAI;AAO7D,SAAwBC,EAAe;AAAA,EACrC,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,UAAAC,IAAW;AAAA,EACX,cAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,OAAAC,IAAQ;AAAA,EACR,iBAAAC,IAAkBV;AACpB,GAAwB;AACtB,QAAMW,IAAaN,MAAgB,YAC7BO,IAAaN,MAAa,YAC1BO,IAAcP,MAAa,cAE3BQ,IAAmBH,IACrBI,EAAO,2BAA2B,IAClCA,EAAO,6BAA6B,GAClCC,IAAaJ,IACfG,EAAO,2BAA2B,IAClCF,IACEE,EAAO,6BAA6B,IACpC;AAEN,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACTF,EAAO,iBAAiB;AAAA,QACxBD;AAAA,QACAE;AAAA,QACAR;AAAA,MAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MACX,MAAK;AAAA,MACL,cAAYC;AAAA,MAEX,UAAA,MAAM,KAAK,EAAE,QAAQN,KAAS,CAACe,GAAGC,MAAM;AACvC,cAAMlB,IAAOkB,IAAI,GACXC,IAAWnB,MAASG,GACpBiB,IAAW;AAAA,UACfN,EAAO,sBAAsB;AAAA,UAC7BK,IAAWL,EAAO,8BAA8B,IAAI;AAAA,QAAA,EAEnD,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,eACE,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,MAAK;AAAA,YACL,MAAK;AAAA,YACL,iBAAeG;AAAA,YACf,cAAYV,EAAgBT,CAAI;AAAA,YAChC,WAAWc,EAAO,uBAAuB;AAAA,YACzC,SAAS,MAAMR,KAAA,gBAAAA,EAAeN;AAAA,YAE9B,UAAA,gBAAAgB,EAAC,QAAA,EAAK,WAAWI,EAAA,CAAU;AAAA,UAAA;AAAA,UARtBpB;AAAA,QAAA;AAAA,MAWX,CAAC;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./PaginationDots.css');const t={"pagination-dots":"_pagination-dots_1r0u8_2","pagination-dots--horizontal":"_pagination-dots--horizontal_1r0u8_6","pagination-dots--vertical":"_pagination-dots--vertical_1r0u8_10","pagination-dots--inverted":"_pagination-dots--inverted_1r0u8_14","pagination-dots__dot":"_pagination-dots__dot_1r0u8_14","pagination-dots__dot--active":"_pagination-dots__dot--active_1r0u8_17","pagination-dots--on-primary":"_pagination-dots--on-primary_1r0u8_21","pagination-dots__item":"_pagination-dots__item_1r0u8_31"};exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./PaginationDots.css');const i={"pagination-dots":"_pagination-dots_1j47i_2","pagination-dots--horizontal":"_pagination-dots--horizontal_1j47i_6","pagination-dots--vertical":"_pagination-dots--vertical_1j47i_10","pagination-dots--inverted":"_pagination-dots--inverted_1j47i_14","pagination-dots__dot":"_pagination-dots__dot_1j47i_14","pagination-dots__dot--active":"_pagination-dots__dot--active_1j47i_17","pagination-dots--on-primary":"_pagination-dots--on-primary_1j47i_21","pagination-dots__item":"_pagination-dots__item_1j47i_31"};exports.default=i;
2
2
  //# sourceMappingURL=PaginationDots.module.scss.cjs.map
@@ -1,14 +1,14 @@
1
- import './PaginationDots.css';const t = {
2
- "pagination-dots": "_pagination-dots_1r0u8_2",
3
- "pagination-dots--horizontal": "_pagination-dots--horizontal_1r0u8_6",
4
- "pagination-dots--vertical": "_pagination-dots--vertical_1r0u8_10",
5
- "pagination-dots--inverted": "_pagination-dots--inverted_1r0u8_14",
6
- "pagination-dots__dot": "_pagination-dots__dot_1r0u8_14",
7
- "pagination-dots__dot--active": "_pagination-dots__dot--active_1r0u8_17",
8
- "pagination-dots--on-primary": "_pagination-dots--on-primary_1r0u8_21",
9
- "pagination-dots__item": "_pagination-dots__item_1r0u8_31"
1
+ import './PaginationDots.css';const i = {
2
+ "pagination-dots": "_pagination-dots_1j47i_2",
3
+ "pagination-dots--horizontal": "_pagination-dots--horizontal_1j47i_6",
4
+ "pagination-dots--vertical": "_pagination-dots--vertical_1j47i_10",
5
+ "pagination-dots--inverted": "_pagination-dots--inverted_1j47i_14",
6
+ "pagination-dots__dot": "_pagination-dots__dot_1j47i_14",
7
+ "pagination-dots__dot--active": "_pagination-dots__dot--active_1j47i_17",
8
+ "pagination-dots--on-primary": "_pagination-dots--on-primary_1j47i_21",
9
+ "pagination-dots__item": "_pagination-dots__item_1j47i_31"
10
10
  };
11
11
  export {
12
- t as default
12
+ i as default
13
13
  };
14
14
  //# sourceMappingURL=PaginationDots.module.scss.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),r=require("react"),N=require("../user-avatar/UserAvatar.cjs"),y=require("../message-header/MessageHeader.cjs"),q=require("../icon/Icon.cjs"),R=require("../icon-button/IconButton.cjs"),__P=require("@mattermost/compass-icons/components/close.js"),P=__P?.default??__P,s=require("./PermalinkPreview.module.scss.cjs"),S=100;function C({authorName:l="Leonard Riley",avatarSrc:p,timestamp:m="10:43 AM",messageText:f="At eu sed tristique gravida et fames vel pellentesque. Urna phasellus integer eu tempor mauris amet sagittis. Mollis risus mi felis magna.",children:v,originalChannel:_="~Desktop App",onDismiss:t,className:x=""}){const[n,h]=r.useState(!1),[d,w]=r.useState(!1),[j,k]=r.useState(0),o=r.useRef(null);r.useEffect(()=>{const i=o.current;if(!i)return;const a=()=>{const u=i.scrollHeight;k(u),w(u>S)};a();const c=new ResizeObserver(a);return c.observe(i),()=>c.disconnect()},[]);const g=[s.default["permalink-preview"],x].filter(Boolean).join(" "),b=[s.default["permalink-preview__body-clip"],d?s.default["permalink-preview__body-clip--truncated"]:"",n?s.default["permalink-preview__body-clip--expanded"]:""].filter(Boolean).join(" ");return e.jsxs("div",{className:g,children:[t!=null&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:s.default["permalink-preview__dismiss-bridge"],"aria-hidden":!0}),e.jsx(R.default,{className:s.default["permalink-preview__dismiss"],size:"x-small",padding:"compact","aria-label":"Remove permalink preview",icon:e.jsx(q.default,{size:"12",glyph:e.jsx(P,{})}),onClick:t})]}),e.jsxs("div",{className:s.default["permalink-preview__card"],children:[e.jsxs("div",{className:s.default["permalink-preview__message"],children:[e.jsxs("div",{className:s.default["permalink-preview__header"],children:[e.jsx(N.default,{src:p,alt:l,size:"24"}),e.jsx(y.default,{username:l,timestamp:m})]}),e.jsxs("div",{className:s.default["permalink-preview__body"],children:[e.jsx("div",{ref:o,className:b,style:{"--permalink-preview-body-height":`${j}px`},children:v??e.jsx("p",{className:s.default["permalink-preview__text"],children:f})}),d&&e.jsx("button",{className:s.default["permalink-preview__show-more"],onClick:i=>{i.stopPropagation(),h(a=>!a)},children:n?"Show less":"Show more"})]})]}),e.jsxs("p",{className:s.default["permalink-preview__origin"],children:["Originally posted in ",_]})]})]})}exports.default=C;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),r=require("react"),P=require("../user-avatar/UserAvatar.cjs"),S=require("../message-header/MessageHeader.cjs"),C=require("../icon/Icon.cjs"),H=require("../icon-button/IconButton.cjs"),__I=require("@mattermost/compass-icons/components/close.js"),I=__I?.default??__I,s=require("./PermalinkPreview.module.scss.cjs"),T=100;function A({authorName:l="Leonard Riley",avatarSrc:p,timestamp:m="10:43 AM",messageText:f="At eu sed tristique gravida et fames vel pellentesque. Urna phasellus integer eu tempor mauris amet sagittis. Mollis risus mi felis magna.",children:v,originalChannel:_="~Desktop App",originalChannelLabel:x,onDismiss:t,dismissLabel:h="Remove permalink preview",showMoreLabel:j="Show more",showLessLabel:w="Show less",className:g=""}){const[n,k]=r.useState(!1),[d,b]=r.useState(!1),[N,y]=r.useState(0),o=r.useRef(null);r.useEffect(()=>{const i=o.current;if(!i)return;const a=()=>{const u=i.scrollHeight;y(u),b(u>T)};a();const c=new ResizeObserver(a);return c.observe(i),()=>c.disconnect()},[]);const q=[s.default["permalink-preview"],g].filter(Boolean).join(" "),R=[s.default["permalink-preview__body-clip"],d?s.default["permalink-preview__body-clip--truncated"]:"",n?s.default["permalink-preview__body-clip--expanded"]:""].filter(Boolean).join(" ");return e.jsxs("div",{className:q,children:[t!=null&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:s.default["permalink-preview__dismiss-bridge"],"aria-hidden":!0}),e.jsx(H.default,{className:s.default["permalink-preview__dismiss"],size:"x-small",padding:"compact","aria-label":h,icon:e.jsx(C.default,{size:"12",glyph:e.jsx(I,{})}),onClick:t})]}),e.jsxs("div",{className:s.default["permalink-preview__card"],children:[e.jsxs("div",{className:s.default["permalink-preview__message"],children:[e.jsxs("div",{className:s.default["permalink-preview__header"],children:[e.jsx(P.default,{src:p,alt:l,size:"24"}),e.jsx(S.default,{username:l,timestamp:m})]}),e.jsxs("div",{className:s.default["permalink-preview__body"],children:[e.jsx("div",{ref:o,className:R,style:{"--permalink-preview-body-height":`${N}px`},children:v??e.jsx("p",{className:s.default["permalink-preview__text"],children:f})}),d&&e.jsx("button",{className:s.default["permalink-preview__show-more"],onClick:i=>{i.stopPropagation(),k(a=>!a)},children:n?w:j})]})]}),e.jsx("p",{className:s.default["permalink-preview__origin"],children:x??e.jsxs(e.Fragment,{children:["Originally posted in ",_]})})]})]})}exports.default=A;
2
2
  //# sourceMappingURL=PermalinkPreview.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"PermalinkPreview.cjs","sources":["../../../src/components/permalink-preview/PermalinkPreview.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport UserAvatar from '@/components/user-avatar/UserAvatar';\nimport MessageHeader from '@/components/message-header/MessageHeader';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './PermalinkPreview.module.scss';\n\n// Keep in sync with max-height in PermalinkPreview.module.scss __body-clip\nconst TRUNCATION_HEIGHT_PX = 100;\n\nexport interface PermalinkPreviewProps {\n /** Sender's display name. */\n authorName?: string;\n /** Avatar image src. */\n avatarSrc: string;\n /** Timestamp label. */\n timestamp?: string;\n /** The quoted message body text. Ignored when `children` is provided. */\n messageText?: string;\n /**\n * Rich content to render in the message body instead of the plain `messageText` string.\n * Use this to embed structured content such as attachment cards or formatted fields.\n * When present, `messageText` is not rendered.\n */\n children?: React.ReactNode;\n /** \"Originally posted in ~Channel\" footer text. */\n originalChannel?: string;\n /** Called when the dismiss control is clicked. Shown on hover when provided. */\n onDismiss?: () => void;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * A Permalink Preview renders an inline card for a message that another message links to.\n * Sender, timestamp, body, and origin channel — enough context to recognise the quoted\n * message without leaving where you are.\n */\nexport default function PermalinkPreview({\n authorName = 'Leonard Riley',\n avatarSrc,\n timestamp = '10:43 AM',\n messageText = 'At eu sed tristique gravida et fames vel pellentesque. Urna phasellus integer eu tempor mauris amet sagittis. Mollis risus mi felis magna.',\n children,\n originalChannel = '~Desktop App',\n onDismiss,\n className = '',\n}: PermalinkPreviewProps) {\n const [isExpanded, setIsExpanded] = useState(false);\n const [needsTruncation, setNeedsTruncation] = useState(false);\n const [bodyHeight, setBodyHeight] = useState(0);\n const clipRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const el = clipRef.current;\n if (!el) return;\n const measure = () => {\n const full = el.scrollHeight;\n setBodyHeight(full);\n setNeedsTruncation(full > TRUNCATION_HEIGHT_PX);\n };\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n const rootClass = [styles['permalink-preview'], className]\n .filter(Boolean)\n .join(' ');\n\n const clipClass = [\n styles['permalink-preview__body-clip'],\n needsTruncation ? styles['permalink-preview__body-clip--truncated'] : '',\n isExpanded ? styles['permalink-preview__body-clip--expanded'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n {onDismiss != null && (\n <>\n <div\n className={styles['permalink-preview__dismiss-bridge']}\n aria-hidden\n />\n <IconButton\n className={styles['permalink-preview__dismiss']}\n size=\"x-small\"\n padding=\"compact\"\n aria-label=\"Remove permalink preview\"\n icon={<Icon size=\"12\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n </>\n )}\n\n <div className={styles['permalink-preview__card']}>\n <div className={styles['permalink-preview__message']}>\n <div className={styles['permalink-preview__header']}>\n <UserAvatar src={avatarSrc} alt={authorName} size=\"24\" />\n <MessageHeader username={authorName} timestamp={timestamp} />\n </div>\n <div className={styles['permalink-preview__body']}>\n <div\n ref={clipRef}\n className={clipClass}\n style={\n {\n '--permalink-preview-body-height': `${bodyHeight}px`,\n } as React.CSSProperties\n }\n >\n {children ?? (\n <p className={styles['permalink-preview__text']}>\n {messageText}\n </p>\n )}\n </div>\n {needsTruncation && (\n <button\n className={styles['permalink-preview__show-more']}\n onClick={(e) => {\n e.stopPropagation();\n setIsExpanded((prev) => !prev);\n }}\n >\n {isExpanded ? 'Show less' : 'Show more'}\n </button>\n )}\n </div>\n </div>\n <p className={styles['permalink-preview__origin']}>\n Originally posted in {originalChannel}\n </p>\n </div>\n </div>\n );\n}\n"],"names":["TRUNCATION_HEIGHT_PX","PermalinkPreview","authorName","avatarSrc","timestamp","messageText","children","originalChannel","onDismiss","className","isExpanded","setIsExpanded","useState","needsTruncation","setNeedsTruncation","bodyHeight","setBodyHeight","clipRef","useRef","useEffect","el","measure","full","ro","rootClass","styles","clipClass","jsxs","Fragment","jsx","IconButton","Icon","CloseIcon","UserAvatar","MessageHeader","e","prev"],"mappings":"8aASMA,EAAuB,IA8B7B,SAAwBC,EAAiB,CACvC,WAAAC,EAAa,gBACb,UAAAC,EACA,UAAAC,EAAY,WACZ,YAAAC,EAAc,6IACd,SAAAC,EACA,gBAAAC,EAAkB,eAClB,UAAAC,EACA,UAAAC,EAAY,EACd,EAA0B,CACxB,KAAM,CAACC,EAAYC,CAAa,EAAIC,EAAAA,SAAS,EAAK,EAC5C,CAACC,EAAiBC,CAAkB,EAAIF,EAAAA,SAAS,EAAK,EACtD,CAACG,EAAYC,CAAa,EAAIJ,EAAAA,SAAS,CAAC,EACxCK,EAAUC,EAAAA,OAAuB,IAAI,EAE3CC,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAKH,EAAQ,QACnB,GAAI,CAACG,EAAI,OACT,MAAMC,EAAU,IAAM,CACpB,MAAMC,EAAOF,EAAG,aAChBJ,EAAcM,CAAI,EAClBR,EAAmBQ,EAAOtB,CAAoB,CAChD,EACAqB,EAAA,EACA,MAAME,EAAK,IAAI,eAAeF,CAAO,EACrC,OAAAE,EAAG,QAAQH,CAAE,EACN,IAAMG,EAAG,WAAA,CAClB,EAAG,CAAA,CAAE,EAEL,MAAMC,EAAY,CAACC,UAAO,mBAAmB,EAAGhB,CAAS,EACtD,OAAO,OAAO,EACd,KAAK,GAAG,EAELiB,EAAY,CAChBD,EAAAA,QAAO,8BAA8B,EACrCZ,EAAkBY,EAAAA,QAAO,yCAAyC,EAAI,GACtEf,EAAae,EAAAA,QAAO,wCAAwC,EAAI,EAAA,EAE/D,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEE,EAAAA,KAAC,MAAA,CAAI,UAAWH,EACb,SAAA,CAAAhB,GAAa,MACZmB,EAAAA,KAAAC,EAAAA,SAAA,CACE,SAAA,CAAAC,EAAAA,IAAC,MAAA,CACC,UAAWJ,EAAAA,QAAO,mCAAmC,EACrD,cAAW,EAAA,CAAA,EAEbI,EAAAA,IAACC,EAAAA,QAAA,CACC,UAAWL,EAAAA,QAAO,4BAA4B,EAC9C,KAAK,UACL,QAAQ,UACR,aAAW,2BACX,WAAOM,UAAA,CAAK,KAAK,KAAK,MAAOF,MAACG,IAAU,EAAI,EAC5C,QAASxB,CAAA,CAAA,CACX,EACF,EAGFmB,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,yBAAyB,EAC9C,SAAA,CAAAE,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,4BAA4B,EACjD,SAAA,CAAAE,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,2BAA2B,EAChD,SAAA,CAAAI,MAACI,EAAAA,SAAW,IAAK9B,EAAW,IAAKD,EAAY,KAAK,KAAK,EACvD2B,EAAAA,IAACK,EAAAA,QAAA,CAAc,SAAUhC,EAAY,UAAAE,CAAA,CAAsB,CAAA,EAC7D,EACAuB,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,yBAAyB,EAC9C,SAAA,CAAAI,EAAAA,IAAC,MAAA,CACC,IAAKZ,EACL,UAAWS,EACX,MACE,CACE,kCAAmC,GAAGX,CAAU,IAAA,EAInD,YACCc,EAAAA,IAAC,IAAA,CAAE,UAAWJ,EAAAA,QAAO,yBAAyB,EAC3C,SAAApB,CAAA,CACH,CAAA,CAAA,EAGHQ,GACCgB,EAAAA,IAAC,SAAA,CACC,UAAWJ,EAAAA,QAAO,8BAA8B,EAChD,QAAUU,GAAM,CACdA,EAAE,gBAAA,EACFxB,EAAeyB,GAAS,CAACA,CAAI,CAC/B,EAEC,WAAa,YAAc,WAAA,CAAA,CAC9B,CAAA,CAEJ,CAAA,EACF,EACAT,EAAAA,KAAC,IAAA,CAAE,UAAWF,EAAAA,QAAO,2BAA2B,EAAG,SAAA,CAAA,wBAC3BlB,CAAA,CAAA,CACxB,CAAA,CAAA,CACF,CAAA,EACF,CAEJ"}
1
+ {"version":3,"file":"PermalinkPreview.cjs","sources":["../../../src/components/permalink-preview/PermalinkPreview.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport UserAvatar from '@/components/user-avatar/UserAvatar';\nimport MessageHeader from '@/components/message-header/MessageHeader';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './PermalinkPreview.module.scss';\n\n// Keep in sync with max-height in PermalinkPreview.module.scss __body-clip\nconst TRUNCATION_HEIGHT_PX = 100;\n\nexport interface PermalinkPreviewProps {\n /** Sender's display name. Kept as `string`: it's also the avatar's alt text. */\n authorName?: string;\n /** Avatar image src. */\n avatarSrc: string;\n /** Timestamp label. */\n timestamp?: React.ReactNode;\n /** The quoted message body text. Ignored when `children` is provided. */\n messageText?: React.ReactNode;\n /**\n * Rich content to render in the message body instead of the plain `messageText` string.\n * Use this to embed structured content such as attachment cards or formatted fields.\n * When present, `messageText` is not rendered.\n */\n children?: React.ReactNode;\n /** \"Originally posted in ~Channel\" footer text. */\n originalChannel?: React.ReactNode;\n /**\n * Full footer line. Default: `Originally posted in {originalChannel}`.\n * Pass a translated node to localize the surrounding copy.\n */\n originalChannelLabel?: React.ReactNode;\n /** Called when the dismiss control is clicked. Shown on hover when provided. */\n onDismiss?: () => void;\n /** Accessible name for the dismiss button. Default: \"Remove permalink preview\". */\n dismissLabel?: string;\n /** Expand toggle text. Default: \"Show more\". */\n showMoreLabel?: React.ReactNode;\n /** Collapse toggle text. Default: \"Show less\". */\n showLessLabel?: React.ReactNode;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * A Permalink Preview renders an inline card for a message that another message links to.\n * Sender, timestamp, body, and origin channel — enough context to recognise the quoted\n * message without leaving where you are.\n */\nexport default function PermalinkPreview({\n authorName = 'Leonard Riley',\n avatarSrc,\n timestamp = '10:43 AM',\n messageText = 'At eu sed tristique gravida et fames vel pellentesque. Urna phasellus integer eu tempor mauris amet sagittis. Mollis risus mi felis magna.',\n children,\n originalChannel = '~Desktop App',\n originalChannelLabel,\n onDismiss,\n dismissLabel = 'Remove permalink preview',\n showMoreLabel = 'Show more',\n showLessLabel = 'Show less',\n className = '',\n}: PermalinkPreviewProps) {\n const [isExpanded, setIsExpanded] = useState(false);\n const [needsTruncation, setNeedsTruncation] = useState(false);\n const [bodyHeight, setBodyHeight] = useState(0);\n const clipRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const el = clipRef.current;\n if (!el) return;\n const measure = () => {\n const full = el.scrollHeight;\n setBodyHeight(full);\n setNeedsTruncation(full > TRUNCATION_HEIGHT_PX);\n };\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n const rootClass = [styles['permalink-preview'], className]\n .filter(Boolean)\n .join(' ');\n\n const clipClass = [\n styles['permalink-preview__body-clip'],\n needsTruncation ? styles['permalink-preview__body-clip--truncated'] : '',\n isExpanded ? styles['permalink-preview__body-clip--expanded'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n {onDismiss != null && (\n <>\n <div\n className={styles['permalink-preview__dismiss-bridge']}\n aria-hidden\n />\n <IconButton\n className={styles['permalink-preview__dismiss']}\n size=\"x-small\"\n padding=\"compact\"\n aria-label={dismissLabel}\n icon={<Icon size=\"12\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n </>\n )}\n\n <div className={styles['permalink-preview__card']}>\n <div className={styles['permalink-preview__message']}>\n <div className={styles['permalink-preview__header']}>\n <UserAvatar src={avatarSrc} alt={authorName} size=\"24\" />\n <MessageHeader username={authorName} timestamp={timestamp} />\n </div>\n <div className={styles['permalink-preview__body']}>\n <div\n ref={clipRef}\n className={clipClass}\n style={\n {\n '--permalink-preview-body-height': `${bodyHeight}px`,\n } as React.CSSProperties\n }\n >\n {children ?? (\n <p className={styles['permalink-preview__text']}>\n {messageText}\n </p>\n )}\n </div>\n {needsTruncation && (\n <button\n className={styles['permalink-preview__show-more']}\n onClick={(e) => {\n e.stopPropagation();\n setIsExpanded((prev) => !prev);\n }}\n >\n {isExpanded ? showLessLabel : showMoreLabel}\n </button>\n )}\n </div>\n </div>\n <p className={styles['permalink-preview__origin']}>\n {originalChannelLabel ?? <>Originally posted in {originalChannel}</>}\n </p>\n </div>\n </div>\n );\n}\n"],"names":["TRUNCATION_HEIGHT_PX","PermalinkPreview","authorName","avatarSrc","timestamp","messageText","children","originalChannel","originalChannelLabel","onDismiss","dismissLabel","showMoreLabel","showLessLabel","className","isExpanded","setIsExpanded","useState","needsTruncation","setNeedsTruncation","bodyHeight","setBodyHeight","clipRef","useRef","useEffect","el","measure","full","ro","rootClass","styles","clipClass","jsxs","Fragment","jsx","IconButton","Icon","CloseIcon","UserAvatar","MessageHeader","e","prev"],"mappings":"8aASMA,EAAuB,IAyC7B,SAAwBC,EAAiB,CACvC,WAAAC,EAAa,gBACb,UAAAC,EACA,UAAAC,EAAY,WACZ,YAAAC,EAAc,6IACd,SAAAC,EACA,gBAAAC,EAAkB,eAClB,qBAAAC,EACA,UAAAC,EACA,aAAAC,EAAe,2BACf,cAAAC,EAAgB,YAChB,cAAAC,EAAgB,YAChB,UAAAC,EAAY,EACd,EAA0B,CACxB,KAAM,CAACC,EAAYC,CAAa,EAAIC,EAAAA,SAAS,EAAK,EAC5C,CAACC,EAAiBC,CAAkB,EAAIF,EAAAA,SAAS,EAAK,EACtD,CAACG,EAAYC,CAAa,EAAIJ,EAAAA,SAAS,CAAC,EACxCK,EAAUC,EAAAA,OAAuB,IAAI,EAE3CC,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAKH,EAAQ,QACnB,GAAI,CAACG,EAAI,OACT,MAAMC,EAAU,IAAM,CACpB,MAAMC,EAAOF,EAAG,aAChBJ,EAAcM,CAAI,EAClBR,EAAmBQ,EAAO1B,CAAoB,CAChD,EACAyB,EAAA,EACA,MAAME,EAAK,IAAI,eAAeF,CAAO,EACrC,OAAAE,EAAG,QAAQH,CAAE,EACN,IAAMG,EAAG,WAAA,CAClB,EAAG,CAAA,CAAE,EAEL,MAAMC,EAAY,CAACC,UAAO,mBAAmB,EAAGhB,CAAS,EACtD,OAAO,OAAO,EACd,KAAK,GAAG,EAELiB,EAAY,CAChBD,EAAAA,QAAO,8BAA8B,EACrCZ,EAAkBY,EAAAA,QAAO,yCAAyC,EAAI,GACtEf,EAAae,EAAAA,QAAO,wCAAwC,EAAI,EAAA,EAE/D,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEE,EAAAA,KAAC,MAAA,CAAI,UAAWH,EACb,SAAA,CAAAnB,GAAa,MACZsB,EAAAA,KAAAC,EAAAA,SAAA,CACE,SAAA,CAAAC,EAAAA,IAAC,MAAA,CACC,UAAWJ,EAAAA,QAAO,mCAAmC,EACrD,cAAW,EAAA,CAAA,EAEbI,EAAAA,IAACC,EAAAA,QAAA,CACC,UAAWL,EAAAA,QAAO,4BAA4B,EAC9C,KAAK,UACL,QAAQ,UACR,aAAYnB,EACZ,WAAOyB,UAAA,CAAK,KAAK,KAAK,MAAOF,MAACG,IAAU,EAAI,EAC5C,QAAS3B,CAAA,CAAA,CACX,EACF,EAGFsB,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,yBAAyB,EAC9C,SAAA,CAAAE,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,4BAA4B,EACjD,SAAA,CAAAE,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,2BAA2B,EAChD,SAAA,CAAAI,MAACI,EAAAA,SAAW,IAAKlC,EAAW,IAAKD,EAAY,KAAK,KAAK,EACvD+B,EAAAA,IAACK,EAAAA,QAAA,CAAc,SAAUpC,EAAY,UAAAE,CAAA,CAAsB,CAAA,EAC7D,EACA2B,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,yBAAyB,EAC9C,SAAA,CAAAI,EAAAA,IAAC,MAAA,CACC,IAAKZ,EACL,UAAWS,EACX,MACE,CACE,kCAAmC,GAAGX,CAAU,IAAA,EAInD,YACCc,EAAAA,IAAC,IAAA,CAAE,UAAWJ,EAAAA,QAAO,yBAAyB,EAC3C,SAAAxB,CAAA,CACH,CAAA,CAAA,EAGHY,GACCgB,EAAAA,IAAC,SAAA,CACC,UAAWJ,EAAAA,QAAO,8BAA8B,EAChD,QAAUU,GAAM,CACdA,EAAE,gBAAA,EACFxB,EAAeyB,GAAS,CAACA,CAAI,CAC/B,EAEC,WAAa5B,EAAgBD,CAAA,CAAA,CAChC,CAAA,CAEJ,CAAA,EACF,QACC,IAAA,CAAE,UAAWkB,EAAAA,QAAO,2BAA2B,EAC7C,YAAwBE,EAAAA,KAAAC,EAAAA,SAAA,CAAE,SAAA,CAAA,wBAAsBzB,CAAA,CAAA,CAAgB,CAAA,CACnE,CAAA,CAAA,CACF,CAAA,EACF,CAEJ"}