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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/README.md +15 -3
  2. package/dist/compass-ui-standalone.css +270 -276
  3. package/dist/compass-ui.css +293 -290
  4. package/dist/components/action-button/ActionButton.cjs.map +1 -1
  5. package/dist/components/action-button/ActionButton.d.ts +2 -1
  6. package/dist/components/action-button/ActionButton.d.ts.map +1 -1
  7. package/dist/components/action-button/ActionButton.js.map +1 -1
  8. package/dist/components/admin-console-header/AdminConsoleHeader.cjs.map +1 -1
  9. package/dist/components/admin-console-header/AdminConsoleHeader.d.ts +3 -1
  10. package/dist/components/admin-console-header/AdminConsoleHeader.d.ts.map +1 -1
  11. package/dist/components/admin-console-header/AdminConsoleHeader.js.map +1 -1
  12. package/dist/components/admin-panel/AdminPanel.cjs +1 -1
  13. package/dist/components/admin-panel/AdminPanel.cjs.map +1 -1
  14. package/dist/components/admin-panel/AdminPanel.d.ts +13 -6
  15. package/dist/components/admin-panel/AdminPanel.d.ts.map +1 -1
  16. package/dist/components/admin-panel/AdminPanel.js +21 -15
  17. package/dist/components/admin-panel/AdminPanel.js.map +1 -1
  18. package/dist/components/admin-panel-footer/AdminPanelFooter.cjs.map +1 -1
  19. package/dist/components/admin-panel-footer/AdminPanelFooter.d.ts +8 -4
  20. package/dist/components/admin-panel-footer/AdminPanelFooter.d.ts.map +1 -1
  21. package/dist/components/admin-panel-footer/AdminPanelFooter.js.map +1 -1
  22. package/dist/components/admin-panel-header/AdminPanelHeader.cjs +1 -1
  23. package/dist/components/admin-panel-header/AdminPanelHeader.cjs.map +1 -1
  24. package/dist/components/admin-panel-header/AdminPanelHeader.css +1 -1
  25. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts +11 -4
  26. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts.map +1 -1
  27. package/dist/components/admin-panel-header/AdminPanelHeader.js +25 -23
  28. package/dist/components/admin-panel-header/AdminPanelHeader.js.map +1 -1
  29. package/dist/components/admin-panel-header/AdminPanelHeader.module.scss.cjs +1 -1
  30. package/dist/components/admin-panel-header/AdminPanelHeader.module.scss.js +10 -10
  31. package/dist/components/attachment-card/AttachmentCard.cjs +1 -1
  32. package/dist/components/attachment-card/AttachmentCard.cjs.map +1 -1
  33. package/dist/components/attachment-card/AttachmentCard.d.ts +18 -5
  34. package/dist/components/attachment-card/AttachmentCard.d.ts.map +1 -1
  35. package/dist/components/attachment-card/AttachmentCard.js +85 -79
  36. package/dist/components/attachment-card/AttachmentCard.js.map +1 -1
  37. package/dist/components/card-button/CardButton.css +1 -1
  38. package/dist/components/card-button/CardButton.module.scss.cjs +1 -1
  39. package/dist/components/card-button/CardButton.module.scss.js +7 -7
  40. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.cjs +1 -1
  41. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.cjs.map +1 -1
  42. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.d.ts +5 -4
  43. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.d.ts.map +1 -1
  44. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.js +7 -7
  45. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.js.map +1 -1
  46. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs +1 -1
  47. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs.map +1 -1
  48. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts +10 -4
  49. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts.map +1 -1
  50. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js +64 -60
  51. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js.map +1 -1
  52. package/dist/components/chip/Chip.cjs.map +1 -1
  53. package/dist/components/chip/Chip.css +1 -1
  54. package/dist/components/chip/Chip.d.ts +4 -0
  55. package/dist/components/chip/Chip.d.ts.map +1 -1
  56. package/dist/components/chip/Chip.js.map +1 -1
  57. package/dist/components/chip/Chip.module.scss.cjs +1 -1
  58. package/dist/components/chip/Chip.module.scss.js +11 -11
  59. package/dist/components/combobox/Combobox.cjs +1 -1
  60. package/dist/components/combobox/Combobox.cjs.map +1 -1
  61. package/dist/components/combobox/Combobox.css +1 -1
  62. package/dist/components/combobox/Combobox.d.ts +24 -1
  63. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  64. package/dist/components/combobox/Combobox.js +307 -271
  65. package/dist/components/combobox/Combobox.js.map +1 -1
  66. package/dist/components/combobox/Combobox.module.scss.cjs +1 -1
  67. package/dist/components/combobox/Combobox.module.scss.js +28 -26
  68. package/dist/components/combobox/Combobox.module.scss.js.map +1 -1
  69. package/dist/components/date-range-picker/DateRangePicker.cjs +1 -1
  70. package/dist/components/date-range-picker/DateRangePicker.cjs.map +1 -1
  71. package/dist/components/date-range-picker/DateRangePicker.css +1 -1
  72. package/dist/components/date-range-picker/DateRangePicker.d.ts +18 -2
  73. package/dist/components/date-range-picker/DateRangePicker.d.ts.map +1 -1
  74. package/dist/components/date-range-picker/DateRangePicker.js +134 -126
  75. package/dist/components/date-range-picker/DateRangePicker.js.map +1 -1
  76. package/dist/components/date-range-picker/DateRangePicker.module.scss.cjs +1 -1
  77. package/dist/components/date-range-picker/DateRangePicker.module.scss.js +26 -26
  78. package/dist/components/emoji-popover/EmojiPopover.cjs +1 -1
  79. package/dist/components/emoji-popover/EmojiPopover.cjs.map +1 -1
  80. package/dist/components/emoji-popover/EmojiPopover.d.ts +25 -4
  81. package/dist/components/emoji-popover/EmojiPopover.d.ts.map +1 -1
  82. package/dist/components/emoji-popover/EmojiPopover.js +84 -73
  83. package/dist/components/emoji-popover/EmojiPopover.js.map +1 -1
  84. package/dist/components/empty-state/EmptyState.cjs +1 -1
  85. package/dist/components/empty-state/EmptyState.cjs.map +1 -1
  86. package/dist/components/empty-state/EmptyState.d.ts +3 -3
  87. package/dist/components/empty-state/EmptyState.d.ts.map +1 -1
  88. package/dist/components/empty-state/EmptyState.js +11 -9
  89. package/dist/components/empty-state/EmptyState.js.map +1 -1
  90. package/dist/components/error-message/ErrorMessage.cjs +1 -1
  91. package/dist/components/error-message/ErrorMessage.cjs.map +1 -1
  92. package/dist/components/error-message/ErrorMessage.d.ts +3 -3
  93. package/dist/components/error-message/ErrorMessage.d.ts.map +1 -1
  94. package/dist/components/error-message/ErrorMessage.js +10 -9
  95. package/dist/components/error-message/ErrorMessage.js.map +1 -1
  96. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.cjs.map +1 -1
  97. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.d.ts +7 -6
  98. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.d.ts.map +1 -1
  99. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.js.map +1 -1
  100. package/dist/components/global-banner/GlobalBanner.cjs +1 -1
  101. package/dist/components/global-banner/GlobalBanner.cjs.map +1 -1
  102. package/dist/components/global-banner/GlobalBanner.d.ts +10 -5
  103. package/dist/components/global-banner/GlobalBanner.d.ts.map +1 -1
  104. package/dist/components/global-banner/GlobalBanner.js +33 -26
  105. package/dist/components/global-banner/GlobalBanner.js.map +1 -1
  106. package/dist/components/icon-button/IconButton.css +1 -1
  107. package/dist/components/icon-button/IconButton.module.scss.cjs +1 -1
  108. package/dist/components/icon-button/IconButton.module.scss.js +15 -15
  109. package/dist/components/image-preview/ImagePreview.cjs +1 -1
  110. package/dist/components/image-preview/ImagePreview.cjs.map +1 -1
  111. package/dist/components/image-preview/ImagePreview.css +1 -1
  112. package/dist/components/image-preview/ImagePreview.d.ts +12 -1
  113. package/dist/components/image-preview/ImagePreview.d.ts.map +1 -1
  114. package/dist/components/image-preview/ImagePreview.js +25 -20
  115. package/dist/components/image-preview/ImagePreview.js.map +1 -1
  116. package/dist/components/image-preview/ImagePreview.module.scss.cjs +1 -1
  117. package/dist/components/image-preview/ImagePreview.module.scss.js +15 -15
  118. package/dist/components/link-preview/LinkPreview.cjs +1 -1
  119. package/dist/components/link-preview/LinkPreview.cjs.map +1 -1
  120. package/dist/components/link-preview/LinkPreview.d.ts +12 -6
  121. package/dist/components/link-preview/LinkPreview.d.ts.map +1 -1
  122. package/dist/components/link-preview/LinkPreview.js +19 -16
  123. package/dist/components/link-preview/LinkPreview.js.map +1 -1
  124. package/dist/components/mention-badge/MentionBadge.cjs +1 -1
  125. package/dist/components/mention-badge/MentionBadge.cjs.map +1 -1
  126. package/dist/components/mention-badge/MentionBadge.d.ts +3 -1
  127. package/dist/components/mention-badge/MentionBadge.d.ts.map +1 -1
  128. package/dist/components/mention-badge/MentionBadge.js +18 -23
  129. package/dist/components/mention-badge/MentionBadge.js.map +1 -1
  130. package/dist/components/menu-group-heading/MenuGroupHeading.cjs.map +1 -1
  131. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts +3 -3
  132. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts.map +1 -1
  133. package/dist/components/menu-group-heading/MenuGroupHeading.js.map +1 -1
  134. package/dist/components/menu-item/MenuItem.cjs +1 -1
  135. package/dist/components/menu-item/MenuItem.cjs.map +1 -1
  136. package/dist/components/menu-item/MenuItem.d.ts +2 -0
  137. package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
  138. package/dist/components/menu-item/MenuItem.js +29 -28
  139. package/dist/components/menu-item/MenuItem.js.map +1 -1
  140. package/dist/components/message-actions/MessageActions.cjs +1 -1
  141. package/dist/components/message-actions/MessageActions.cjs.map +1 -1
  142. package/dist/components/message-actions/MessageActions.d.ts +26 -2
  143. package/dist/components/message-actions/MessageActions.d.ts.map +1 -1
  144. package/dist/components/message-actions/MessageActions.js +67 -55
  145. package/dist/components/message-actions/MessageActions.js.map +1 -1
  146. package/dist/components/message-header/MessageHeader.cjs.map +1 -1
  147. package/dist/components/message-header/MessageHeader.d.ts +5 -3
  148. package/dist/components/message-header/MessageHeader.d.ts.map +1 -1
  149. package/dist/components/message-header/MessageHeader.js.map +1 -1
  150. package/dist/components/message-separator/MessageSeparator.cjs +1 -1
  151. package/dist/components/message-separator/MessageSeparator.cjs.map +1 -1
  152. package/dist/components/message-separator/MessageSeparator.d.ts +8 -4
  153. package/dist/components/message-separator/MessageSeparator.d.ts.map +1 -1
  154. package/dist/components/message-separator/MessageSeparator.js +16 -14
  155. package/dist/components/message-separator/MessageSeparator.js.map +1 -1
  156. package/dist/components/modal/Modal.cjs +1 -1
  157. package/dist/components/modal/Modal.cjs.map +1 -1
  158. package/dist/components/modal/Modal.d.ts +17 -3
  159. package/dist/components/modal/Modal.d.ts.map +1 -1
  160. package/dist/components/modal/Modal.js +38 -26
  161. package/dist/components/modal/Modal.js.map +1 -1
  162. package/dist/components/modal-header/ModalHeader.cjs +1 -1
  163. package/dist/components/modal-header/ModalHeader.cjs.map +1 -1
  164. package/dist/components/modal-header/ModalHeader.css +1 -1
  165. package/dist/components/modal-header/ModalHeader.d.ts +16 -1
  166. package/dist/components/modal-header/ModalHeader.d.ts.map +1 -1
  167. package/dist/components/modal-header/ModalHeader.js +72 -57
  168. package/dist/components/modal-header/ModalHeader.js.map +1 -1
  169. package/dist/components/modal-header/ModalHeader.module.scss.cjs +1 -1
  170. package/dist/components/modal-header/ModalHeader.module.scss.js +15 -13
  171. package/dist/components/modal-header/ModalHeader.module.scss.js.map +1 -1
  172. package/dist/components/more-unreads-banner/MoreUnreadsBanner.cjs +1 -1
  173. package/dist/components/more-unreads-banner/MoreUnreadsBanner.cjs.map +1 -1
  174. package/dist/components/more-unreads-banner/MoreUnreadsBanner.d.ts +4 -1
  175. package/dist/components/more-unreads-banner/MoreUnreadsBanner.d.ts.map +1 -1
  176. package/dist/components/more-unreads-banner/MoreUnreadsBanner.js +11 -10
  177. package/dist/components/more-unreads-banner/MoreUnreadsBanner.js.map +1 -1
  178. package/dist/components/new-message-banner/NewMessageBanner.cjs +1 -1
  179. package/dist/components/new-message-banner/NewMessageBanner.cjs.map +1 -1
  180. package/dist/components/new-message-banner/NewMessageBanner.d.ts +15 -3
  181. package/dist/components/new-message-banner/NewMessageBanner.d.ts.map +1 -1
  182. package/dist/components/new-message-banner/NewMessageBanner.js +30 -22
  183. package/dist/components/new-message-banner/NewMessageBanner.js.map +1 -1
  184. package/dist/components/pagination-dots/PaginationDots.cjs +1 -1
  185. package/dist/components/pagination-dots/PaginationDots.cjs.map +1 -1
  186. package/dist/components/pagination-dots/PaginationDots.css +1 -1
  187. package/dist/components/pagination-dots/PaginationDots.d.ts +5 -1
  188. package/dist/components/pagination-dots/PaginationDots.d.ts.map +1 -1
  189. package/dist/components/pagination-dots/PaginationDots.js +22 -19
  190. package/dist/components/pagination-dots/PaginationDots.js.map +1 -1
  191. package/dist/components/pagination-dots/PaginationDots.module.scss.cjs +1 -1
  192. package/dist/components/pagination-dots/PaginationDots.module.scss.js +10 -10
  193. package/dist/components/permalink-preview/PermalinkPreview.cjs +1 -1
  194. package/dist/components/permalink-preview/PermalinkPreview.cjs.map +1 -1
  195. package/dist/components/permalink-preview/PermalinkPreview.d.ts +16 -5
  196. package/dist/components/permalink-preview/PermalinkPreview.d.ts.map +1 -1
  197. package/dist/components/permalink-preview/PermalinkPreview.js +39 -35
  198. package/dist/components/permalink-preview/PermalinkPreview.js.map +1 -1
  199. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.cjs +1 -1
  200. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.cjs.map +1 -1
  201. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.d.ts +8 -1
  202. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.d.ts.map +1 -1
  203. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.js +20 -17
  204. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.js.map +1 -1
  205. package/dist/components/popover-notice/PopoverNotice.cjs +1 -1
  206. package/dist/components/popover-notice/PopoverNotice.cjs.map +1 -1
  207. package/dist/components/popover-notice/PopoverNotice.d.ts +13 -5
  208. package/dist/components/popover-notice/PopoverNotice.d.ts.map +1 -1
  209. package/dist/components/popover-notice/PopoverNotice.js +58 -48
  210. package/dist/components/popover-notice/PopoverNotice.js.map +1 -1
  211. package/dist/components/profile-popover/ProfilePopover.cjs +1 -1
  212. package/dist/components/profile-popover/ProfilePopover.cjs.map +1 -1
  213. package/dist/components/profile-popover/ProfilePopover.d.ts +34 -12
  214. package/dist/components/profile-popover/ProfilePopover.d.ts.map +1 -1
  215. package/dist/components/profile-popover/ProfilePopover.js +122 -106
  216. package/dist/components/profile-popover/ProfilePopover.js.map +1 -1
  217. package/dist/components/progress-bar/ProgressBar.cjs +1 -1
  218. package/dist/components/progress-bar/ProgressBar.cjs.map +1 -1
  219. package/dist/components/progress-bar/ProgressBar.d.ts +4 -3
  220. package/dist/components/progress-bar/ProgressBar.d.ts.map +1 -1
  221. package/dist/components/progress-bar/ProgressBar.js +9 -7
  222. package/dist/components/progress-bar/ProgressBar.js.map +1 -1
  223. package/dist/components/radio/Radio.css +1 -1
  224. package/dist/components/radio/Radio.module.scss.cjs +1 -1
  225. package/dist/components/radio/Radio.module.scss.js +12 -12
  226. package/dist/components/reaction-button/ReactionButton.cjs +1 -1
  227. package/dist/components/reaction-button/ReactionButton.cjs.map +1 -1
  228. package/dist/components/reaction-button/ReactionButton.d.ts +3 -1
  229. package/dist/components/reaction-button/ReactionButton.d.ts.map +1 -1
  230. package/dist/components/reaction-button/ReactionButton.js +20 -18
  231. package/dist/components/reaction-button/ReactionButton.js.map +1 -1
  232. package/dist/components/reactions-row/ReactionsRow.cjs +1 -1
  233. package/dist/components/reactions-row/ReactionsRow.cjs.map +1 -1
  234. package/dist/components/reactions-row/ReactionsRow.d.ts +10 -2
  235. package/dist/components/reactions-row/ReactionsRow.d.ts.map +1 -1
  236. package/dist/components/reactions-row/ReactionsRow.js +33 -28
  237. package/dist/components/reactions-row/ReactionsRow.js.map +1 -1
  238. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs +1 -1
  239. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs.map +1 -1
  240. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts +15 -7
  241. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts.map +1 -1
  242. package/dist/components/right-sidebar-header/RightSidebarHeader.js +23 -19
  243. package/dist/components/right-sidebar-header/RightSidebarHeader.js.map +1 -1
  244. package/dist/components/scrollbar/Scrollbar.cjs +1 -1
  245. package/dist/components/scrollbar/Scrollbar.cjs.map +1 -1
  246. package/dist/components/scrollbar/Scrollbar.css +1 -1
  247. package/dist/components/scrollbar/Scrollbar.d.ts +2 -2
  248. package/dist/components/scrollbar/Scrollbar.d.ts.map +1 -1
  249. package/dist/components/scrollbar/Scrollbar.js +24 -15
  250. package/dist/components/scrollbar/Scrollbar.js.map +1 -1
  251. package/dist/components/scrollbar/Scrollbar.module.scss.cjs +1 -1
  252. package/dist/components/scrollbar/Scrollbar.module.scss.js +4 -4
  253. package/dist/components/scrollbar/simplebar-vendor.css +1 -0
  254. package/dist/components/search-input/SearchInput.cjs +1 -1
  255. package/dist/components/search-input/SearchInput.cjs.map +1 -1
  256. package/dist/components/search-input/SearchInput.d.ts +5 -0
  257. package/dist/components/search-input/SearchInput.d.ts.map +1 -1
  258. package/dist/components/search-input/SearchInput.js +92 -85
  259. package/dist/components/search-input/SearchInput.js.map +1 -1
  260. package/dist/components/search-tip-banner/SearchTipBanner.cjs +1 -1
  261. package/dist/components/search-tip-banner/SearchTipBanner.cjs.map +1 -1
  262. package/dist/components/search-tip-banner/SearchTipBanner.d.ts +8 -5
  263. package/dist/components/search-tip-banner/SearchTipBanner.d.ts.map +1 -1
  264. package/dist/components/search-tip-banner/SearchTipBanner.js +17 -16
  265. package/dist/components/search-tip-banner/SearchTipBanner.js.map +1 -1
  266. package/dist/components/section-notice/SectionNotice.cjs +1 -1
  267. package/dist/components/section-notice/SectionNotice.cjs.map +1 -1
  268. package/dist/components/section-notice/SectionNotice.d.ts +16 -3
  269. package/dist/components/section-notice/SectionNotice.d.ts.map +1 -1
  270. package/dist/components/section-notice/SectionNotice.js +64 -48
  271. package/dist/components/section-notice/SectionNotice.js.map +1 -1
  272. package/dist/components/select/Select.cjs +1 -1
  273. package/dist/components/select/Select.cjs.map +1 -1
  274. package/dist/components/select/Select.d.ts +8 -1
  275. package/dist/components/select/Select.d.ts.map +1 -1
  276. package/dist/components/select/Select.js +81 -79
  277. package/dist/components/select/Select.js.map +1 -1
  278. package/dist/components/spinner/Spinner.cjs.map +1 -1
  279. package/dist/components/spinner/Spinner.css +1 -1
  280. package/dist/components/spinner/Spinner.d.ts +1 -0
  281. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  282. package/dist/components/spinner/Spinner.js.map +1 -1
  283. package/dist/components/spinner/Spinner.module.scss.cjs +1 -1
  284. package/dist/components/spinner/Spinner.module.scss.js +5 -5
  285. package/dist/components/status-badge/StatusBadge.css +1 -1
  286. package/dist/components/status-badge/StatusBadge.module.scss.cjs +1 -1
  287. package/dist/components/status-badge/StatusBadge.module.scss.js +11 -11
  288. package/dist/components/switch/Switch.css +1 -1
  289. package/dist/components/switch/Switch.module.scss.cjs +1 -1
  290. package/dist/components/switch/Switch.module.scss.js +14 -14
  291. package/dist/components/tabs/Tabs.cjs +1 -1
  292. package/dist/components/tabs/Tabs.cjs.map +1 -1
  293. package/dist/components/tabs/Tabs.css +1 -1
  294. package/dist/components/tabs/Tabs.d.ts +11 -3
  295. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  296. package/dist/components/tabs/Tabs.js +56 -53
  297. package/dist/components/tabs/Tabs.js.map +1 -1
  298. package/dist/components/tabs/Tabs.module.scss.cjs +1 -1
  299. package/dist/components/tabs/Tabs.module.scss.js +9 -9
  300. package/dist/components/tag/Tag.cjs +1 -1
  301. package/dist/components/tag/Tag.cjs.map +1 -1
  302. package/dist/components/tag/Tag.d.ts +3 -3
  303. package/dist/components/tag/Tag.d.ts.map +1 -1
  304. package/dist/components/tag/Tag.js +12 -11
  305. package/dist/components/tag/Tag.js.map +1 -1
  306. package/dist/components/thread-footer/ThreadFooter.cjs +1 -1
  307. package/dist/components/thread-footer/ThreadFooter.cjs.map +1 -1
  308. package/dist/components/thread-footer/ThreadFooter.css +1 -1
  309. package/dist/components/thread-footer/ThreadFooter.d.ts +19 -3
  310. package/dist/components/thread-footer/ThreadFooter.d.ts.map +1 -1
  311. package/dist/components/thread-footer/ThreadFooter.js +53 -48
  312. package/dist/components/thread-footer/ThreadFooter.js.map +1 -1
  313. package/dist/components/thread-footer/ThreadFooter.module.scss.cjs +1 -1
  314. package/dist/components/thread-footer/ThreadFooter.module.scss.js +18 -18
  315. package/dist/components/thread-list-item/ThreadListItem.cjs +1 -1
  316. package/dist/components/thread-list-item/ThreadListItem.cjs.map +1 -1
  317. package/dist/components/thread-list-item/ThreadListItem.d.ts +15 -7
  318. package/dist/components/thread-list-item/ThreadListItem.d.ts.map +1 -1
  319. package/dist/components/thread-list-item/ThreadListItem.js +66 -62
  320. package/dist/components/thread-list-item/ThreadListItem.js.map +1 -1
  321. package/dist/components/toast/Toast.cjs +1 -1
  322. package/dist/components/toast/Toast.cjs.map +1 -1
  323. package/dist/components/toast/Toast.d.ts +8 -3
  324. package/dist/components/toast/Toast.d.ts.map +1 -1
  325. package/dist/components/toast/Toast.js +47 -39
  326. package/dist/components/toast/Toast.js.map +1 -1
  327. package/dist/components/tour-point/TourPoint.cjs +1 -1
  328. package/dist/components/tour-point/TourPoint.cjs.map +1 -1
  329. package/dist/components/tour-point/TourPoint.css +1 -1
  330. package/dist/components/tour-point/TourPoint.d.ts +19 -5
  331. package/dist/components/tour-point/TourPoint.d.ts.map +1 -1
  332. package/dist/components/tour-point/TourPoint.js +66 -54
  333. package/dist/components/tour-point/TourPoint.js.map +1 -1
  334. package/dist/components/tour-point/TourPoint.module.scss.cjs +1 -1
  335. package/dist/components/tour-point/TourPoint.module.scss.js +28 -28
  336. package/dist/components/unread-badge/UnreadBadge.css +1 -1
  337. package/dist/components/unread-badge/UnreadBadge.module.scss.cjs +1 -1
  338. package/dist/components/unread-badge/UnreadBadge.module.scss.js +5 -5
  339. package/dist/components/user-avatar/UserAvatar.css +1 -1
  340. package/dist/components/user-avatar/UserAvatar.module.scss.cjs +1 -1
  341. package/dist/components/user-avatar/UserAvatar.module.scss.js +26 -26
  342. package/dist/components/user-avatar-group/UserAvatarGroup.cjs +1 -1
  343. package/dist/components/user-avatar-group/UserAvatarGroup.cjs.map +1 -1
  344. package/dist/components/user-avatar-group/UserAvatarGroup.css +1 -1
  345. package/dist/components/user-avatar-group/UserAvatarGroup.d.ts +8 -1
  346. package/dist/components/user-avatar-group/UserAvatarGroup.d.ts.map +1 -1
  347. package/dist/components/user-avatar-group/UserAvatarGroup.js +22 -18
  348. package/dist/components/user-avatar-group/UserAvatarGroup.js.map +1 -1
  349. package/dist/components/user-avatar-group/UserAvatarGroup.module.scss.cjs +1 -1
  350. package/dist/components/user-avatar-group/UserAvatarGroup.module.scss.js +14 -14
  351. package/dist/index.d.ts +1 -0
  352. package/dist/index.d.ts.map +1 -1
  353. package/dist/utils/props.cjs +2 -0
  354. package/dist/utils/props.cjs.map +1 -0
  355. package/dist/utils/props.d.ts +13 -0
  356. package/dist/utils/props.d.ts.map +1 -0
  357. package/dist/utils/props.js +7 -0
  358. package/dist/utils/props.js.map +1 -0
  359. package/package.json +1 -6
  360. package/dist/node_modules/simplebar-react/dist/simplebar.min.css +0 -1
@@ -1 +1 @@
1
- ._radio_difs7_2{position:relative;display:flex;align-items:center;width:100%;gap:var(--spacing-xs);font-family:var(--font-family-body);color:var(--center-channel-color);cursor:pointer;-webkit-user-select:none;user-select:none}._radio_difs7_2:has(._radio__input_difs7_13:disabled){cursor:not-allowed;color:rgba(var(--center-channel-color-rgb),.56)}._radio__input_difs7_13{position:absolute;left:0;top:50%;transform:translateY(-50%);margin:0;padding:0;opacity:0;overflow:hidden;white-space:nowrap;border:0;cursor:inherit}._radio__input_difs7_13:focus-visible{outline:none}._radio__circle_difs7_33{position:relative;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;background-color:var(--center-channel-bg);border:1px solid rgba(var(--center-channel-color-rgb),.24);border-radius:var(--radius-full);transition:background-color var(--duration-quick) var(--ease-transition),border-color var(--duration-quick) var(--ease-transition),border-width var(--duration-quick) var(--ease-transition),box-shadow var(--duration-quick) var(--ease-transition)}._radio__input_difs7_13:focus-visible~._radio__circle_difs7_33{box-shadow:0 0 0 2px rgba(var(--button-bg-rgb),.56)}._radio_difs7_2:has(._radio__input_difs7_13:not(:disabled)):hover ._radio__circle_difs7_33{border-color:rgba(var(--center-channel-color-rgb),.32)}._radio__input_difs7_13:disabled~._radio__circle_difs7_33{border-color:rgba(var(--center-channel-color-rgb),.16)}._radio__input_difs7_13:checked~._radio__circle_difs7_33{background-color:var(--center-channel-bg);border-width:1px;border-color:var(--button-bg)}._radio__input_difs7_13:checked~._radio__circle_difs7_33 ._radio__dot_difs7_59{background-color:var(--button-bg)}._radio_difs7_2:has(._radio__input_difs7_13:not(:disabled)):hover ._radio__input_difs7_13:checked~._radio__circle_difs7_33{border-color:var(--button-bg)}._radio_difs7_2:has(._radio__input_difs7_13:not(:disabled)):hover ._radio__input_difs7_13:checked~._radio__circle_difs7_33 ._radio__dot_difs7_59{background-color:var(--button-bg)}._radio__input_difs7_13:focus-visible:checked~._radio__circle_difs7_33{border-color:var(--button-bg);box-shadow:0 0 0 2px rgba(var(--button-bg-rgb),.56)}._radio__input_difs7_13:disabled:checked~._radio__circle_difs7_33{background-color:var(--center-channel-bg);border-color:rgba(var(--center-channel-color-rgb),.32);border-width:1px}._radio__input_difs7_13:disabled:checked~._radio__circle_difs7_33 ._radio__dot_difs7_59{background-color:rgba(var(--center-channel-color-rgb),.32)}._radio--invalid_difs7_80 ._radio__circle_difs7_33{border-color:var(--error-text, var(--color-danger))}._radio_difs7_2:has(._radio__input_difs7_13:not(:disabled)):hover._radio--invalid_difs7_80 ._radio__input_difs7_13:not(:checked)~._radio__circle_difs7_33{border-color:var(--error-text, var(--color-danger))}._radio--invalid_difs7_80 ._radio__input_difs7_13:checked~._radio__circle_difs7_33{background-color:var(--center-channel-bg);border-width:1px;border-color:var(--error-text, var(--color-danger))}._radio--invalid_difs7_80 ._radio__input_difs7_13:checked~._radio__circle_difs7_33 ._radio__dot_difs7_59{background-color:var(--error-text, var(--color-danger))}._radio_difs7_2:has(._radio__input_difs7_13:not(:disabled)):hover._radio--invalid_difs7_80 ._radio__input_difs7_13:checked~._radio__circle_difs7_33{border-color:var(--error-text, var(--color-danger))}._radio_difs7_2:has(._radio__input_difs7_13:not(:disabled)):hover._radio--invalid_difs7_80 ._radio__input_difs7_13:checked~._radio__circle_difs7_33 ._radio__dot_difs7_59{background-color:var(--error-text, var(--color-danger))}._radio--invalid_difs7_80 ._radio__input_difs7_13:focus-visible~._radio__circle_difs7_33{box-shadow:0 0 0 2px rgba(var(--error-text-color-rgb, var(--color-danger-rgb)),.56)}._radio--invalid_difs7_80 ._radio__input_difs7_13:focus-visible:checked~._radio__circle_difs7_33{box-shadow:0 0 0 2px rgba(var(--error-text-color-rgb, var(--color-danger-rgb)),.56)}._radio__dot_difs7_59{display:block;border-radius:var(--radius-full);pointer-events:none;transform:scale(.5);transition:transform var(--duration-quick) var(--ease-entrance)}._radio__input_difs7_13:checked~._radio__circle_difs7_33 ._radio__dot_difs7_59{transform:scale(1)}._radio__label_difs7_116{line-height:1}._radio--size-small_difs7_119{gap:var(--spacing-xs)}._radio--size-small_difs7_119 ._radio__input_difs7_13,._radio--size-small_difs7_119 ._radio__circle_difs7_33{width:12px;height:12px}._radio--size-small_difs7_119 ._radio__dot_difs7_59{width:6px;height:6px}._radio--size-small_difs7_119 ._radio__label_difs7_116{font-size:var(--font-size-75);line-height:var(--line-height-75)}._radio--size-medium_difs7_138{gap:var(--spacing-xs)}._radio--size-medium_difs7_138 ._radio__input_difs7_13,._radio--size-medium_difs7_138 ._radio__circle_difs7_33{width:16px;height:16px}._radio--size-medium_difs7_138 ._radio__dot_difs7_59{width:8px;height:8px}._radio--size-medium_difs7_138 ._radio__label_difs7_116{font-size:var(--font-size-100);line-height:var(--line-height-100)}._radio--size-large_difs7_157{gap:var(--spacing-s)}._radio--size-large_difs7_157 ._radio__input_difs7_13,._radio--size-large_difs7_157 ._radio__circle_difs7_33{width:20px;height:20px}._radio--size-large_difs7_157 ._radio__dot_difs7_59{width:10px;height:10px}._radio--size-large_difs7_157 ._radio__label_difs7_116{font-size:var(--font-size-200);line-height:var(--line-height-200)}
1
+ ._radio_11lrl_2{position:relative;display:flex;align-items:center;width:100%;gap:var(--spacing-xs);font-family:var(--font-family-body);color:var(--center-channel-color);cursor:pointer;-webkit-user-select:none;user-select:none}._radio_11lrl_2:has(._radio__input_11lrl_13:disabled){cursor:not-allowed;color:rgba(var(--center-channel-color-rgb),.56)}._radio__input_11lrl_13{position:absolute;left:0;top:50%;transform:translateY(-50%);margin:0;padding:0;opacity:0;overflow:hidden;white-space:nowrap;border:0;cursor:inherit}._radio__input_11lrl_13:focus-visible{outline:none}._radio__circle_11lrl_33{position:relative;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;background-color:var(--center-channel-bg);border:1px solid rgba(var(--center-channel-color-rgb),.24);border-radius:var(--radius-pill);transition:background-color var(--duration-quick) var(--ease-transition),border-color var(--duration-quick) var(--ease-transition),border-width var(--duration-quick) var(--ease-transition),box-shadow var(--duration-quick) var(--ease-transition)}._radio__input_11lrl_13:focus-visible~._radio__circle_11lrl_33{box-shadow:0 0 0 2px rgba(var(--button-bg-rgb),.56)}._radio_11lrl_2:has(._radio__input_11lrl_13:not(:disabled)):hover ._radio__circle_11lrl_33{border-color:rgba(var(--center-channel-color-rgb),.32)}._radio__input_11lrl_13:disabled~._radio__circle_11lrl_33{border-color:rgba(var(--center-channel-color-rgb),.16)}._radio__input_11lrl_13:checked~._radio__circle_11lrl_33{background-color:var(--center-channel-bg);border-width:1px;border-color:var(--button-bg)}._radio__input_11lrl_13:checked~._radio__circle_11lrl_33 ._radio__dot_11lrl_59{background-color:var(--button-bg)}._radio_11lrl_2:has(._radio__input_11lrl_13:not(:disabled)):hover ._radio__input_11lrl_13:checked~._radio__circle_11lrl_33{border-color:var(--button-bg)}._radio_11lrl_2:has(._radio__input_11lrl_13:not(:disabled)):hover ._radio__input_11lrl_13:checked~._radio__circle_11lrl_33 ._radio__dot_11lrl_59{background-color:var(--button-bg)}._radio__input_11lrl_13:focus-visible:checked~._radio__circle_11lrl_33{border-color:var(--button-bg);box-shadow:0 0 0 2px rgba(var(--button-bg-rgb),.56)}._radio__input_11lrl_13:disabled:checked~._radio__circle_11lrl_33{background-color:var(--center-channel-bg);border-color:rgba(var(--center-channel-color-rgb),.32);border-width:1px}._radio__input_11lrl_13:disabled:checked~._radio__circle_11lrl_33 ._radio__dot_11lrl_59{background-color:rgba(var(--center-channel-color-rgb),.32)}._radio--invalid_11lrl_80 ._radio__circle_11lrl_33{border-color:var(--error-text, var(--color-danger))}._radio_11lrl_2:has(._radio__input_11lrl_13:not(:disabled)):hover._radio--invalid_11lrl_80 ._radio__input_11lrl_13:not(:checked)~._radio__circle_11lrl_33{border-color:var(--error-text, var(--color-danger))}._radio--invalid_11lrl_80 ._radio__input_11lrl_13:checked~._radio__circle_11lrl_33{background-color:var(--center-channel-bg);border-width:1px;border-color:var(--error-text, var(--color-danger))}._radio--invalid_11lrl_80 ._radio__input_11lrl_13:checked~._radio__circle_11lrl_33 ._radio__dot_11lrl_59{background-color:var(--error-text, var(--color-danger))}._radio_11lrl_2:has(._radio__input_11lrl_13:not(:disabled)):hover._radio--invalid_11lrl_80 ._radio__input_11lrl_13:checked~._radio__circle_11lrl_33{border-color:var(--error-text, var(--color-danger))}._radio_11lrl_2:has(._radio__input_11lrl_13:not(:disabled)):hover._radio--invalid_11lrl_80 ._radio__input_11lrl_13:checked~._radio__circle_11lrl_33 ._radio__dot_11lrl_59{background-color:var(--error-text, var(--color-danger))}._radio--invalid_11lrl_80 ._radio__input_11lrl_13:focus-visible~._radio__circle_11lrl_33{box-shadow:0 0 0 2px rgba(var(--error-text-color-rgb, var(--color-danger-rgb)),.56)}._radio--invalid_11lrl_80 ._radio__input_11lrl_13:focus-visible:checked~._radio__circle_11lrl_33{box-shadow:0 0 0 2px rgba(var(--error-text-color-rgb, var(--color-danger-rgb)),.56)}._radio__dot_11lrl_59{display:block;border-radius:var(--radius-pill);pointer-events:none;transform:scale(.5);transition:transform var(--duration-quick) var(--ease-entrance)}._radio__input_11lrl_13:checked~._radio__circle_11lrl_33 ._radio__dot_11lrl_59{transform:scale(1)}._radio__label_11lrl_116{line-height:1}._radio--size-small_11lrl_119{gap:var(--spacing-xs)}._radio--size-small_11lrl_119 ._radio__input_11lrl_13,._radio--size-small_11lrl_119 ._radio__circle_11lrl_33{width:12px;height:12px}._radio--size-small_11lrl_119 ._radio__dot_11lrl_59{width:6px;height:6px}._radio--size-small_11lrl_119 ._radio__label_11lrl_116{font-size:var(--font-size-75);line-height:var(--line-height-75)}._radio--size-medium_11lrl_138{gap:var(--spacing-xs)}._radio--size-medium_11lrl_138 ._radio__input_11lrl_13,._radio--size-medium_11lrl_138 ._radio__circle_11lrl_33{width:16px;height:16px}._radio--size-medium_11lrl_138 ._radio__dot_11lrl_59{width:8px;height:8px}._radio--size-medium_11lrl_138 ._radio__label_11lrl_116{font-size:var(--font-size-100);line-height:var(--line-height-100)}._radio--size-large_11lrl_157{gap:var(--spacing-s)}._radio--size-large_11lrl_157 ._radio__input_11lrl_13,._radio--size-large_11lrl_157 ._radio__circle_11lrl_33{width:20px;height:20px}._radio--size-large_11lrl_157 ._radio__dot_11lrl_59{width:10px;height:10px}._radio--size-large_11lrl_157 ._radio__label_11lrl_116{font-size:var(--font-size-200);line-height:var(--line-height-200)}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./Radio.css');const i="_radio_difs7_2",_="_radio__input_difs7_13",d="_radio__circle_difs7_33",o="_radio__dot_difs7_59",a="_radio__label_difs7_116",r={radio:i,radio__input:_,radio__circle:d,radio__dot:o,"radio--invalid":"_radio--invalid_difs7_80",radio__label:a,"radio--size-small":"_radio--size-small_difs7_119","radio--size-medium":"_radio--size-medium_difs7_138","radio--size-large":"_radio--size-large_difs7_157"};exports.default=r;exports.radio=i;exports.radio__circle=d;exports.radio__dot=o;exports.radio__input=_;exports.radio__label=a;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./Radio.css');const _="_radio_11lrl_2",i="_radio__input_11lrl_13",r="_radio__circle_11lrl_33",l="_radio__dot_11lrl_59",o="_radio__label_11lrl_116",a={radio:_,radio__input:i,radio__circle:r,radio__dot:l,"radio--invalid":"_radio--invalid_11lrl_80",radio__label:o,"radio--size-small":"_radio--size-small_11lrl_119","radio--size-medium":"_radio--size-medium_11lrl_138","radio--size-large":"_radio--size-large_11lrl_157"};exports.default=a;exports.radio=_;exports.radio__circle=r;exports.radio__dot=l;exports.radio__input=i;exports.radio__label=o;
2
2
  //# sourceMappingURL=Radio.module.scss.cjs.map
@@ -1,20 +1,20 @@
1
- import './Radio.css';const _ = "_radio_difs7_2", i = "_radio__input_difs7_13", d = "_radio__circle_difs7_33", a = "_radio__dot_difs7_59", o = "_radio__label_difs7_116", r = {
1
+ import './Radio.css';const _ = "_radio_11lrl_2", i = "_radio__input_11lrl_13", r = "_radio__circle_11lrl_33", l = "_radio__dot_11lrl_59", a = "_radio__label_11lrl_116", o = {
2
2
  radio: _,
3
3
  radio__input: i,
4
- radio__circle: d,
5
- radio__dot: a,
6
- "radio--invalid": "_radio--invalid_difs7_80",
7
- radio__label: o,
8
- "radio--size-small": "_radio--size-small_difs7_119",
9
- "radio--size-medium": "_radio--size-medium_difs7_138",
10
- "radio--size-large": "_radio--size-large_difs7_157"
4
+ radio__circle: r,
5
+ radio__dot: l,
6
+ "radio--invalid": "_radio--invalid_11lrl_80",
7
+ radio__label: a,
8
+ "radio--size-small": "_radio--size-small_11lrl_119",
9
+ "radio--size-medium": "_radio--size-medium_11lrl_138",
10
+ "radio--size-large": "_radio--size-large_11lrl_157"
11
11
  };
12
12
  export {
13
- r as default,
13
+ o as default,
14
14
  _ as radio,
15
- d as radio__circle,
16
- a as radio__dot,
15
+ r as radio__circle,
16
+ l as radio__dot,
17
17
  i as radio__input,
18
- o as radio__label
18
+ a as radio__label
19
19
  };
20
20
  //# sourceMappingURL=Radio.module.scss.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react/jsx-runtime"),n=require("react"),t=require("./ReactionButton.module.scss.cjs");function b({emoji:a,count:e,byCurrentUser:i=!1,className:l="",onClick:d,...f}){const o=n.useRef(e),u=n.useRef(void 0),[s,c]=n.useState(null);n.useEffect(()=>(e!==o.current&&(clearTimeout(u.current),c(e>o.current?"up":"down"),o.current=e,u.current=setTimeout(()=>c(null),300)),()=>clearTimeout(u.current)),[e]);const m=[t.default["reaction-button"],i?t.default["reaction-button--mine"]:"",l].filter(Boolean).join(" "),_=[t.default["reaction-button__count"],s==="up"?t.default["reaction-button__count--anim-up"]:"",s==="down"?t.default["reaction-button__count--anim-down"]:""].filter(Boolean).join(" ");return r.jsxs("button",{type:"button",className:m,onClick:d,"aria-label":`${a} ${e} reaction${e!==1?"s":""}`,"aria-pressed":i,...f,children:[r.jsx("span",{className:t.default["reaction-button__emoji"],"aria-hidden":!0,children:a}),r.jsx("span",{className:_,children:e})]})}exports.default=b;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react/jsx-runtime"),o=require("react"),t=require("./ReactionButton.module.scss.cjs"),p=(n,e)=>`${n} ${e} reaction${e!==1?"s":""}`;function R({emoji:n,count:e,byCurrentUser:i=!1,formatLabel:c=p,className:d="",onClick:f,...m}){const u=o.useRef(e),a=o.useRef(void 0),[s,l]=o.useState(null);o.useEffect(()=>(e!==u.current&&(clearTimeout(a.current),l(e>u.current?"up":"down"),u.current=e,a.current=setTimeout(()=>l(null),300)),()=>clearTimeout(a.current)),[e]);const b=[t.default["reaction-button"],i?t.default["reaction-button--mine"]:"",d].filter(Boolean).join(" "),_=[t.default["reaction-button__count"],s==="up"?t.default["reaction-button__count--anim-up"]:"",s==="down"?t.default["reaction-button__count--anim-down"]:""].filter(Boolean).join(" ");return r.jsxs("button",{type:"button",className:b,onClick:f,"aria-label":c(n,e),"aria-pressed":i,...m,children:[r.jsx("span",{className:t.default["reaction-button__emoji"],"aria-hidden":!0,children:n}),r.jsx("span",{className:_,children:e})]})}exports.default=R;
2
2
  //# sourceMappingURL=ReactionButton.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactionButton.cjs","sources":["../../../src/components/reaction-button/ReactionButton.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { ButtonHTMLAttributes } from 'react';\nimport styles from './ReactionButton.module.scss';\n\nexport interface ReactionButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** The emoji character to display. */\n emoji: string;\n /** Number of users who reacted with this emoji. */\n count: number;\n /** Whether the current user has reacted with this emoji. */\n byCurrentUser?: boolean;\n}\n\n/**\n * A single emoji reaction button — shows the emoji, count, and highlights when the current user\n * has reacted. Fires onClick when clicked; the host owns toggle logic.\n *\n * The count animates up or down when the `count` prop changes.\n */\nexport default function ReactionButton({\n emoji,\n count,\n byCurrentUser = false,\n className = '',\n onClick,\n ...rest\n}: ReactionButtonProps) {\n const prevCountRef = useRef(count);\n const timerRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n const [countAnim, setCountAnim] = useState<'up' | 'down' | null>(null);\n\n useEffect(() => {\n if (count !== prevCountRef.current) {\n clearTimeout(timerRef.current);\n setCountAnim(count > prevCountRef.current ? 'up' : 'down');\n prevCountRef.current = count;\n timerRef.current = setTimeout(() => setCountAnim(null), 300);\n }\n return () => clearTimeout(timerRef.current);\n }, [count]);\n\n const rootClass = [\n styles['reaction-button'],\n byCurrentUser ? styles['reaction-button--mine'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const countClass = [\n styles['reaction-button__count'],\n countAnim === 'up' ? styles['reaction-button__count--anim-up'] : '',\n countAnim === 'down' ? styles['reaction-button__count--anim-down'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n type=\"button\"\n className={rootClass}\n onClick={onClick}\n aria-label={`${emoji} ${count} reaction${count !== 1 ? 's' : ''}`}\n aria-pressed={byCurrentUser}\n {...rest}\n >\n <span className={styles['reaction-button__emoji']} aria-hidden>\n {emoji}\n </span>\n <span className={countClass}>{count}</span>\n </button>\n );\n}\n"],"names":["ReactionButton","emoji","count","byCurrentUser","className","onClick","rest","prevCountRef","useRef","timerRef","countAnim","setCountAnim","useState","useEffect","rootClass","styles","countClass","jsxs","jsx"],"mappings":"kNAmBA,SAAwBA,EAAe,CACrC,MAAAC,EACA,MAAAC,EACA,cAAAC,EAAgB,GAChB,UAAAC,EAAY,GACZ,QAAAC,EACA,GAAGC,CACL,EAAwB,CACtB,MAAMC,EAAeC,EAAAA,OAAON,CAAK,EAC3BO,EAAWD,EAAAA,OAAsC,MAAS,EAC1D,CAACE,EAAWC,CAAY,EAAIC,EAAAA,SAA+B,IAAI,EAErEC,EAAAA,UAAU,KACJX,IAAUK,EAAa,UACzB,aAAaE,EAAS,OAAO,EAC7BE,EAAaT,EAAQK,EAAa,QAAU,KAAO,MAAM,EACzDA,EAAa,QAAUL,EACvBO,EAAS,QAAU,WAAW,IAAME,EAAa,IAAI,EAAG,GAAG,GAEtD,IAAM,aAAaF,EAAS,OAAO,GACzC,CAACP,CAAK,CAAC,EAEV,MAAMY,EAAY,CAChBC,EAAAA,QAAO,iBAAiB,EACxBZ,EAAgBY,EAAAA,QAAO,uBAAuB,EAAI,GAClDX,CAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EAELY,EAAa,CACjBD,EAAAA,QAAO,wBAAwB,EAC/BL,IAAc,KAAOK,UAAO,iCAAiC,EAAI,GACjEL,IAAc,OAASK,UAAO,mCAAmC,EAAI,EAAA,EAEpE,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEE,EAAAA,KAAC,SAAA,CACC,KAAK,SACL,UAAWH,EACX,QAAAT,EACA,aAAY,GAAGJ,CAAK,IAAIC,CAAK,YAAYA,IAAU,EAAI,IAAM,EAAE,GAC/D,eAAcC,EACb,GAAGG,EAEJ,SAAA,CAAAY,EAAAA,IAAC,QAAK,UAAWH,UAAO,wBAAwB,EAAG,cAAW,GAC3D,SAAAd,EACH,EACAiB,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAa,SAAAd,CAAA,CAAM,CAAA,CAAA,CAAA,CAG1C"}
1
+ {"version":3,"file":"ReactionButton.cjs","sources":["../../../src/components/reaction-button/ReactionButton.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { ButtonHTMLAttributes } from 'react';\nimport styles from './ReactionButton.module.scss';\n\nexport interface ReactionButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** The emoji character to display. */\n emoji: string;\n /** Number of users who reacted with this emoji. */\n count: number;\n /** Whether the current user has reacted with this emoji. */\n byCurrentUser?: boolean;\n /** Accessible name. Default: `{emoji} {count} reaction(s)`. An explicit `aria-label` still wins. */\n formatLabel?: (emoji: string, count: number) => string;\n}\n\nconst defaultFormatLabel = (emoji: string, count: number) =>\n `${emoji} ${count} reaction${count !== 1 ? 's' : ''}`;\n\n/**\n * A single emoji reaction button — shows the emoji, count, and highlights when the current user\n * has reacted. Fires onClick when clicked; the host owns toggle logic.\n *\n * The count animates up or down when the `count` prop changes.\n */\nexport default function ReactionButton({\n emoji,\n count,\n byCurrentUser = false,\n formatLabel = defaultFormatLabel,\n className = '',\n onClick,\n ...rest\n}: ReactionButtonProps) {\n const prevCountRef = useRef(count);\n const timerRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n const [countAnim, setCountAnim] = useState<'up' | 'down' | null>(null);\n\n useEffect(() => {\n if (count !== prevCountRef.current) {\n clearTimeout(timerRef.current);\n setCountAnim(count > prevCountRef.current ? 'up' : 'down');\n prevCountRef.current = count;\n timerRef.current = setTimeout(() => setCountAnim(null), 300);\n }\n return () => clearTimeout(timerRef.current);\n }, [count]);\n\n const rootClass = [\n styles['reaction-button'],\n byCurrentUser ? styles['reaction-button--mine'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const countClass = [\n styles['reaction-button__count'],\n countAnim === 'up' ? styles['reaction-button__count--anim-up'] : '',\n countAnim === 'down' ? styles['reaction-button__count--anim-down'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n type=\"button\"\n className={rootClass}\n onClick={onClick}\n aria-label={formatLabel(emoji, count)}\n aria-pressed={byCurrentUser}\n {...rest}\n >\n <span className={styles['reaction-button__emoji']} aria-hidden>\n {emoji}\n </span>\n <span className={countClass}>{count}</span>\n </button>\n );\n}\n"],"names":["defaultFormatLabel","emoji","count","ReactionButton","byCurrentUser","formatLabel","className","onClick","rest","prevCountRef","useRef","timerRef","countAnim","setCountAnim","useState","useEffect","rootClass","styles","countClass","jsxs","jsx"],"mappings":"kNAeMA,EAAqB,CAACC,EAAeC,IACzC,GAAGD,CAAK,IAAIC,CAAK,YAAYA,IAAU,EAAI,IAAM,EAAE,GAQrD,SAAwBC,EAAe,CACrC,MAAAF,EACA,MAAAC,EACA,cAAAE,EAAgB,GAChB,YAAAC,EAAcL,EACd,UAAAM,EAAY,GACZ,QAAAC,EACA,GAAGC,CACL,EAAwB,CACtB,MAAMC,EAAeC,EAAAA,OAAOR,CAAK,EAC3BS,EAAWD,EAAAA,OAAsC,MAAS,EAC1D,CAACE,EAAWC,CAAY,EAAIC,EAAAA,SAA+B,IAAI,EAErEC,EAAAA,UAAU,KACJb,IAAUO,EAAa,UACzB,aAAaE,EAAS,OAAO,EAC7BE,EAAaX,EAAQO,EAAa,QAAU,KAAO,MAAM,EACzDA,EAAa,QAAUP,EACvBS,EAAS,QAAU,WAAW,IAAME,EAAa,IAAI,EAAG,GAAG,GAEtD,IAAM,aAAaF,EAAS,OAAO,GACzC,CAACT,CAAK,CAAC,EAEV,MAAMc,EAAY,CAChBC,EAAAA,QAAO,iBAAiB,EACxBb,EAAgBa,EAAAA,QAAO,uBAAuB,EAAI,GAClDX,CAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EAELY,EAAa,CACjBD,EAAAA,QAAO,wBAAwB,EAC/BL,IAAc,KAAOK,UAAO,iCAAiC,EAAI,GACjEL,IAAc,OAASK,UAAO,mCAAmC,EAAI,EAAA,EAEpE,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEE,EAAAA,KAAC,SAAA,CACC,KAAK,SACL,UAAWH,EACX,QAAAT,EACA,aAAYF,EAAYJ,EAAOC,CAAK,EACpC,eAAcE,EACb,GAAGI,EAEJ,SAAA,CAAAY,EAAAA,IAAC,QAAK,UAAWH,UAAO,wBAAwB,EAAG,cAAW,GAC3D,SAAAhB,EACH,EACAmB,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAa,SAAAhB,CAAA,CAAM,CAAA,CAAA,CAAA,CAG1C"}
@@ -6,6 +6,8 @@ export interface ReactionButtonProps extends ButtonHTMLAttributes<HTMLButtonElem
6
6
  count: number;
7
7
  /** Whether the current user has reacted with this emoji. */
8
8
  byCurrentUser?: boolean;
9
+ /** Accessible name. Default: `{emoji} {count} reaction(s)`. An explicit `aria-label` still wins. */
10
+ formatLabel?: (emoji: string, count: number) => string;
9
11
  }
10
12
  /**
11
13
  * A single emoji reaction button — shows the emoji, count, and highlights when the current user
@@ -13,5 +15,5 @@ export interface ReactionButtonProps extends ButtonHTMLAttributes<HTMLButtonElem
13
15
  *
14
16
  * The count animates up or down when the `count` prop changes.
15
17
  */
16
- export default function ReactionButton({ emoji, count, byCurrentUser, className, onClick, ...rest }: ReactionButtonProps): import("react/jsx-runtime").JSX.Element;
18
+ export default function ReactionButton({ emoji, count, byCurrentUser, formatLabel, className, onClick, ...rest }: ReactionButtonProps): import("react/jsx-runtime").JSX.Element;
17
19
  //# sourceMappingURL=ReactionButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactionButton.d.ts","sourceRoot":"","sources":["../../../src/components/reaction-button/ReactionButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAGlD,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAClF,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,KAAK,EACL,KAAK,EACL,aAAqB,EACrB,SAAc,EACd,OAAO,EACP,GAAG,IAAI,EACR,EAAE,mBAAmB,2CA8CrB"}
1
+ {"version":3,"file":"ReactionButton.d.ts","sourceRoot":"","sources":["../../../src/components/reaction-button/ReactionButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAGlD,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAClF,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oGAAoG;IACpG,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACxD;AAKD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,KAAK,EACL,KAAK,EACL,aAAqB,EACrB,WAAgC,EAChC,SAAc,EACd,OAAO,EACP,GAAG,IAAI,EACR,EAAE,mBAAmB,2CA8CrB"}
@@ -1,42 +1,44 @@
1
- import { jsxs as b, jsx as u } from "react/jsx-runtime";
2
- import { useRef as c, useState as _, useEffect as h } from "react";
1
+ import { jsxs as _, jsx as u } from "react/jsx-runtime";
2
+ import { useRef as c, useState as h, useEffect as j } from "react";
3
3
  import e from "./ReactionButton.module.scss.js";
4
- function x({
5
- emoji: r,
4
+ const R = (n, t) => `${n} ${t} reaction${t !== 1 ? "s" : ""}`;
5
+ function C({
6
+ emoji: n,
6
7
  count: t,
7
8
  byCurrentUser: a = !1,
8
- className: l = "",
9
- onClick: m,
10
- ...f
9
+ formatLabel: l = R,
10
+ className: m = "",
11
+ onClick: f,
12
+ ...d
11
13
  }) {
12
- const n = c(t), o = c(void 0), [i, s] = _(null);
13
- h(() => (t !== n.current && (clearTimeout(o.current), s(t > n.current ? "up" : "down"), n.current = t, o.current = setTimeout(() => s(null), 300)), () => clearTimeout(o.current)), [t]);
14
+ const o = c(t), r = c(void 0), [i, s] = h(null);
15
+ j(() => (t !== o.current && (clearTimeout(r.current), s(t > o.current ? "up" : "down"), o.current = t, r.current = setTimeout(() => s(null), 300)), () => clearTimeout(r.current)), [t]);
14
16
  const p = [
15
17
  e["reaction-button"],
16
18
  a ? e["reaction-button--mine"] : "",
17
- l
18
- ].filter(Boolean).join(" "), d = [
19
+ m
20
+ ].filter(Boolean).join(" "), b = [
19
21
  e["reaction-button__count"],
20
22
  i === "up" ? e["reaction-button__count--anim-up"] : "",
21
23
  i === "down" ? e["reaction-button__count--anim-down"] : ""
22
24
  ].filter(Boolean).join(" ");
23
- return /* @__PURE__ */ b(
25
+ return /* @__PURE__ */ _(
24
26
  "button",
25
27
  {
26
28
  type: "button",
27
29
  className: p,
28
- onClick: m,
29
- "aria-label": `${r} ${t} reaction${t !== 1 ? "s" : ""}`,
30
+ onClick: f,
31
+ "aria-label": l(n, t),
30
32
  "aria-pressed": a,
31
- ...f,
33
+ ...d,
32
34
  children: [
33
- /* @__PURE__ */ u("span", { className: e["reaction-button__emoji"], "aria-hidden": !0, children: r }),
34
- /* @__PURE__ */ u("span", { className: d, children: t })
35
+ /* @__PURE__ */ u("span", { className: e["reaction-button__emoji"], "aria-hidden": !0, children: n }),
36
+ /* @__PURE__ */ u("span", { className: b, children: t })
35
37
  ]
36
38
  }
37
39
  );
38
40
  }
39
41
  export {
40
- x as default
42
+ C as default
41
43
  };
42
44
  //# sourceMappingURL=ReactionButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactionButton.js","sources":["../../../src/components/reaction-button/ReactionButton.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { ButtonHTMLAttributes } from 'react';\nimport styles from './ReactionButton.module.scss';\n\nexport interface ReactionButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** The emoji character to display. */\n emoji: string;\n /** Number of users who reacted with this emoji. */\n count: number;\n /** Whether the current user has reacted with this emoji. */\n byCurrentUser?: boolean;\n}\n\n/**\n * A single emoji reaction button — shows the emoji, count, and highlights when the current user\n * has reacted. Fires onClick when clicked; the host owns toggle logic.\n *\n * The count animates up or down when the `count` prop changes.\n */\nexport default function ReactionButton({\n emoji,\n count,\n byCurrentUser = false,\n className = '',\n onClick,\n ...rest\n}: ReactionButtonProps) {\n const prevCountRef = useRef(count);\n const timerRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n const [countAnim, setCountAnim] = useState<'up' | 'down' | null>(null);\n\n useEffect(() => {\n if (count !== prevCountRef.current) {\n clearTimeout(timerRef.current);\n setCountAnim(count > prevCountRef.current ? 'up' : 'down');\n prevCountRef.current = count;\n timerRef.current = setTimeout(() => setCountAnim(null), 300);\n }\n return () => clearTimeout(timerRef.current);\n }, [count]);\n\n const rootClass = [\n styles['reaction-button'],\n byCurrentUser ? styles['reaction-button--mine'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const countClass = [\n styles['reaction-button__count'],\n countAnim === 'up' ? styles['reaction-button__count--anim-up'] : '',\n countAnim === 'down' ? styles['reaction-button__count--anim-down'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n type=\"button\"\n className={rootClass}\n onClick={onClick}\n aria-label={`${emoji} ${count} reaction${count !== 1 ? 's' : ''}`}\n aria-pressed={byCurrentUser}\n {...rest}\n >\n <span className={styles['reaction-button__emoji']} aria-hidden>\n {emoji}\n </span>\n <span className={countClass}>{count}</span>\n </button>\n );\n}\n"],"names":["ReactionButton","emoji","count","byCurrentUser","className","onClick","rest","prevCountRef","useRef","timerRef","countAnim","setCountAnim","useState","useEffect","rootClass","styles","countClass","jsxs","jsx"],"mappings":";;;AAmBA,SAAwBA,EAAe;AAAA,EACrC,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,WAAAC,IAAY;AAAA,EACZ,SAAAC;AAAA,EACA,GAAGC;AACL,GAAwB;AACtB,QAAMC,IAAeC,EAAON,CAAK,GAC3BO,IAAWD,EAAsC,MAAS,GAC1D,CAACE,GAAWC,CAAY,IAAIC,EAA+B,IAAI;AAErE,EAAAC,EAAU,OACJX,MAAUK,EAAa,YACzB,aAAaE,EAAS,OAAO,GAC7BE,EAAaT,IAAQK,EAAa,UAAU,OAAO,MAAM,GACzDA,EAAa,UAAUL,GACvBO,EAAS,UAAU,WAAW,MAAME,EAAa,IAAI,GAAG,GAAG,IAEtD,MAAM,aAAaF,EAAS,OAAO,IACzC,CAACP,CAAK,CAAC;AAEV,QAAMY,IAAY;AAAA,IAChBC,EAAO,iBAAiB;AAAA,IACxBZ,IAAgBY,EAAO,uBAAuB,IAAI;AAAA,IAClDX;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,GAELY,IAAa;AAAA,IACjBD,EAAO,wBAAwB;AAAA,IAC/BL,MAAc,OAAOK,EAAO,iCAAiC,IAAI;AAAA,IACjEL,MAAc,SAASK,EAAO,mCAAmC,IAAI;AAAA,EAAA,EAEpE,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAWH;AAAA,MACX,SAAAT;AAAA,MACA,cAAY,GAAGJ,CAAK,IAAIC,CAAK,YAAYA,MAAU,IAAI,MAAM,EAAE;AAAA,MAC/D,gBAAcC;AAAA,MACb,GAAGG;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAY,EAAC,UAAK,WAAWH,EAAO,wBAAwB,GAAG,eAAW,IAC3D,UAAAd,GACH;AAAA,QACA,gBAAAiB,EAAC,QAAA,EAAK,WAAWF,GAAa,UAAAd,EAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG1C;"}
1
+ {"version":3,"file":"ReactionButton.js","sources":["../../../src/components/reaction-button/ReactionButton.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { ButtonHTMLAttributes } from 'react';\nimport styles from './ReactionButton.module.scss';\n\nexport interface ReactionButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** The emoji character to display. */\n emoji: string;\n /** Number of users who reacted with this emoji. */\n count: number;\n /** Whether the current user has reacted with this emoji. */\n byCurrentUser?: boolean;\n /** Accessible name. Default: `{emoji} {count} reaction(s)`. An explicit `aria-label` still wins. */\n formatLabel?: (emoji: string, count: number) => string;\n}\n\nconst defaultFormatLabel = (emoji: string, count: number) =>\n `${emoji} ${count} reaction${count !== 1 ? 's' : ''}`;\n\n/**\n * A single emoji reaction button — shows the emoji, count, and highlights when the current user\n * has reacted. Fires onClick when clicked; the host owns toggle logic.\n *\n * The count animates up or down when the `count` prop changes.\n */\nexport default function ReactionButton({\n emoji,\n count,\n byCurrentUser = false,\n formatLabel = defaultFormatLabel,\n className = '',\n onClick,\n ...rest\n}: ReactionButtonProps) {\n const prevCountRef = useRef(count);\n const timerRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n const [countAnim, setCountAnim] = useState<'up' | 'down' | null>(null);\n\n useEffect(() => {\n if (count !== prevCountRef.current) {\n clearTimeout(timerRef.current);\n setCountAnim(count > prevCountRef.current ? 'up' : 'down');\n prevCountRef.current = count;\n timerRef.current = setTimeout(() => setCountAnim(null), 300);\n }\n return () => clearTimeout(timerRef.current);\n }, [count]);\n\n const rootClass = [\n styles['reaction-button'],\n byCurrentUser ? styles['reaction-button--mine'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const countClass = [\n styles['reaction-button__count'],\n countAnim === 'up' ? styles['reaction-button__count--anim-up'] : '',\n countAnim === 'down' ? styles['reaction-button__count--anim-down'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n type=\"button\"\n className={rootClass}\n onClick={onClick}\n aria-label={formatLabel(emoji, count)}\n aria-pressed={byCurrentUser}\n {...rest}\n >\n <span className={styles['reaction-button__emoji']} aria-hidden>\n {emoji}\n </span>\n <span className={countClass}>{count}</span>\n </button>\n );\n}\n"],"names":["defaultFormatLabel","emoji","count","ReactionButton","byCurrentUser","formatLabel","className","onClick","rest","prevCountRef","useRef","timerRef","countAnim","setCountAnim","useState","useEffect","rootClass","styles","countClass","jsxs","jsx"],"mappings":";;;AAeA,MAAMA,IAAqB,CAACC,GAAeC,MACzC,GAAGD,CAAK,IAAIC,CAAK,YAAYA,MAAU,IAAI,MAAM,EAAE;AAQrD,SAAwBC,EAAe;AAAA,EACrC,OAAAF;AAAA,EACA,OAAAC;AAAA,EACA,eAAAE,IAAgB;AAAA,EAChB,aAAAC,IAAcL;AAAA,EACd,WAAAM,IAAY;AAAA,EACZ,SAAAC;AAAA,EACA,GAAGC;AACL,GAAwB;AACtB,QAAMC,IAAeC,EAAOR,CAAK,GAC3BS,IAAWD,EAAsC,MAAS,GAC1D,CAACE,GAAWC,CAAY,IAAIC,EAA+B,IAAI;AAErE,EAAAC,EAAU,OACJb,MAAUO,EAAa,YACzB,aAAaE,EAAS,OAAO,GAC7BE,EAAaX,IAAQO,EAAa,UAAU,OAAO,MAAM,GACzDA,EAAa,UAAUP,GACvBS,EAAS,UAAU,WAAW,MAAME,EAAa,IAAI,GAAG,GAAG,IAEtD,MAAM,aAAaF,EAAS,OAAO,IACzC,CAACT,CAAK,CAAC;AAEV,QAAMc,IAAY;AAAA,IAChBC,EAAO,iBAAiB;AAAA,IACxBb,IAAgBa,EAAO,uBAAuB,IAAI;AAAA,IAClDX;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,GAELY,IAAa;AAAA,IACjBD,EAAO,wBAAwB;AAAA,IAC/BL,MAAc,OAAOK,EAAO,iCAAiC,IAAI;AAAA,IACjEL,MAAc,SAASK,EAAO,mCAAmC,IAAI;AAAA,EAAA,EAEpE,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAWH;AAAA,MACX,SAAAT;AAAA,MACA,cAAYF,EAAYJ,GAAOC,CAAK;AAAA,MACpC,gBAAcE;AAAA,MACb,GAAGI;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAY,EAAC,UAAK,WAAWH,EAAO,wBAAwB,GAAG,eAAW,IAC3D,UAAAhB,GACH;AAAA,QACA,gBAAAmB,EAAC,QAAA,EAAK,WAAWF,GAAa,UAAAhB,EAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG1C;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),h=require("../icon-button/IconButton.cjs"),l=require("../icon/Icon.cjs"),w=require("../reaction-button/ReactionButton.cjs"),__p=require("@mattermost/compass-icons/components/check-circle-outline.js"),p=__p?.default??__p,__b=require("@mattermost/compass-icons/components/emoticon-plus-outline.js"),b=__b?.default??__b,a=require("./ReactionsRow.module.scss.cjs"),N=[{emoji:"👍",count:1},{emoji:"😀",count:4},{emoji:"🙌",count:1}];function q({reactions:n=N,showAddReaction:c=!1,acknowledged:i=!1,acknowledgeCount:r=0,currentUserAcknowledged:s=!1,onAddReaction:u,onReactionClick:t,onAcknowledge:d,className:f="",..._}){const j=[a.default["reactions-row"],f].filter(Boolean).join(" ");return e.jsxs("div",{className:j,..._,children:[i&&e.jsxs("button",{type:"button",className:[a.default["reactions-row__ack"],s?a.default["reactions-row__ack--active"]:""].filter(Boolean).join(" "),onClick:d,"aria-pressed":s,"aria-label":"Acknowledge message",children:[e.jsx("span",{className:a.default["reactions-row__ack-icon"],"aria-hidden":!0,children:e.jsx(l.default,{size:"16",glyph:e.jsx(p,{})})}),s?e.jsx("span",{className:a.default["reactions-row__ack-count"],children:r}):e.jsx("span",{className:a.default["reactions-row__ack-label"],children:"Acknowledge"})]}),e.jsxs("div",{className:a.default["reactions-row__buttons"],children:[n.map(({emoji:o,count:m,byCurrentUser:x})=>e.jsx(w.default,{emoji:o,count:m,byCurrentUser:x,onClick:()=>t==null?void 0:t(o)},o)),c&&e.jsx(h.default,{"aria-label":"Add reaction",className:a.default["reactions-row__add-reaction"],size:"x-small",onClick:u,icon:e.jsx(l.default,{size:"16",glyph:e.jsx(b,{})})})]})]})}exports.default=q;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),N=require("../icon-button/IconButton.cjs"),l=require("../icon/Icon.cjs"),q=require("../reaction-button/ReactionButton.cjs"),__g=require("@mattermost/compass-icons/components/check-circle-outline.js"),g=__g?.default??__g,__k=require("@mattermost/compass-icons/components/emoticon-plus-outline.js"),k=__k?.default??__k,a=require("./ReactionsRow.module.scss.cjs"),v=[{emoji:"👍",count:1},{emoji:"😀",count:4},{emoji:"🙌",count:1}];function I({reactions:n=v,showAddReaction:c=!1,acknowledged:r=!1,acknowledgeCount:i=0,currentUserAcknowledged:s=!1,onAddReaction:u,onReactionClick:t,onAcknowledge:d,acknowledgeLabel:f="Acknowledge",acknowledgeAriaLabel:_="Acknowledge message",addReactionLabel:j="Add reaction",formatReactionLabel:m,className:x="",...h}){const w=[a.default["reactions-row"],x].filter(Boolean).join(" ");return e.jsxs("div",{className:w,...h,children:[r&&e.jsxs("button",{type:"button",className:[a.default["reactions-row__ack"],s?a.default["reactions-row__ack--active"]:""].filter(Boolean).join(" "),onClick:d,"aria-pressed":s,"aria-label":_,children:[e.jsx("span",{className:a.default["reactions-row__ack-icon"],"aria-hidden":!0,children:e.jsx(l.default,{size:"16",glyph:e.jsx(g,{})})}),s?e.jsx("span",{className:a.default["reactions-row__ack-count"],children:i}):e.jsx("span",{className:a.default["reactions-row__ack-label"],children:f})]}),e.jsxs("div",{className:a.default["reactions-row__buttons"],children:[n.map(({emoji:o,count:b,byCurrentUser:p})=>e.jsx(q.default,{emoji:o,count:b,byCurrentUser:p,formatLabel:m,onClick:()=>t==null?void 0:t(o)},o)),c&&e.jsx(N.default,{"aria-label":j,className:a.default["reactions-row__add-reaction"],size:"x-small",onClick:u,icon:e.jsx(l.default,{size:"16",glyph:e.jsx(k,{})})})]})]})}exports.default=I;
2
2
  //# sourceMappingURL=ReactionsRow.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactionsRow.cjs","sources":["../../../src/components/reactions-row/ReactionsRow.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport ReactionButton from '@/components/reaction-button/ReactionButton';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport EmoticonPlusOutlineIcon from '@mattermost/compass-icons/components/emoticon-plus-outline';\nimport styles from './ReactionsRow.module.scss';\n\nexport interface ReactionItem {\n emoji: string;\n count: number;\n /** Whether the current user reacted with this emoji. */\n byCurrentUser?: boolean;\n}\n\nexport interface ReactionsRowProps extends HTMLAttributes<HTMLDivElement> {\n /** List of reactions to display. */\n reactions?: ReactionItem[];\n /** Whether to show the add-reaction button. Default: false. */\n showAddReaction?: boolean;\n /** Whether to show the acknowledge button. */\n acknowledged?: boolean;\n /** Acknowledge count. */\n acknowledgeCount?: number;\n /** Whether the current user has acknowledged. Default: false. */\n currentUserAcknowledged?: boolean;\n /** Called when add-reaction is clicked. */\n onAddReaction?: () => void;\n /** Called when a Reaction Button is clicked. */\n onReactionClick?: (emoji: string) => void;\n /** Called when the acknowledge button is clicked. */\n onAcknowledge?: () => void;\n /** Optional CSS class name. */\n className?: string;\n}\n\nconst DEFAULT_REACTIONS: ReactionItem[] = [\n { emoji: '👍', count: 1 },\n { emoji: '😀', count: 4 },\n { emoji: '🙌', count: 1 },\n];\n\n/**\n * Reactions Row is the strip of Reaction Buttons below a message — the lightest weight way to\n * respond, applaud, or acknowledge without adding to the thread. The component handles the\n * count, the \"this is mine\" highlight, and the add-reaction affordance.\n */\nexport default function ReactionsRow({\n reactions = DEFAULT_REACTIONS,\n showAddReaction = false,\n acknowledged = false,\n acknowledgeCount = 0,\n currentUserAcknowledged = false,\n onAddReaction,\n onReactionClick,\n onAcknowledge,\n className = '',\n ...rest\n}: ReactionsRowProps) {\n const rootClass = [styles['reactions-row'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} {...rest}>\n {/* Acknowledge button */}\n {acknowledged && (\n <button\n type=\"button\"\n className={[\n styles['reactions-row__ack'],\n currentUserAcknowledged ? styles['reactions-row__ack--active'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onAcknowledge}\n aria-pressed={currentUserAcknowledged}\n aria-label=\"Acknowledge message\"\n >\n <span className={styles['reactions-row__ack-icon']} aria-hidden>\n <Icon size=\"16\" glyph={<CheckCircleOutlineIcon />} />\n </span>\n {currentUserAcknowledged ? (\n <span className={styles['reactions-row__ack-count']}>\n {acknowledgeCount}\n </span>\n ) : (\n <span className={styles['reactions-row__ack-label']}>\n Acknowledge\n </span>\n )}\n </button>\n )}\n\n {/* Reaction buttons */}\n <div className={styles['reactions-row__buttons']}>\n {reactions.map(({ emoji, count, byCurrentUser }) => (\n <ReactionButton\n key={emoji}\n emoji={emoji}\n count={count}\n byCurrentUser={byCurrentUser}\n onClick={() => onReactionClick?.(emoji)}\n />\n ))}\n\n {/* Add reaction button */}\n {showAddReaction && (\n <IconButton\n aria-label=\"Add reaction\"\n className={styles['reactions-row__add-reaction']}\n size=\"x-small\"\n onClick={onAddReaction}\n icon={<Icon size=\"16\" glyph={<EmoticonPlusOutlineIcon />} />}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["DEFAULT_REACTIONS","ReactionsRow","reactions","showAddReaction","acknowledged","acknowledgeCount","currentUserAcknowledged","onAddReaction","onReactionClick","onAcknowledge","className","rest","rootClass","styles","jsxs","jsx","Icon","CheckCircleOutlineIcon","emoji","count","byCurrentUser","ReactionButton","IconButton","EmoticonPlusOutlineIcon"],"mappings":"scAoCMA,EAAoC,CACxC,CAAE,MAAO,KAAM,MAAO,CAAA,EACtB,CAAE,MAAO,KAAM,MAAO,CAAA,EACtB,CAAE,MAAO,KAAM,MAAO,CAAA,CACxB,EAOA,SAAwBC,EAAa,CACnC,UAAAC,EAAYF,EACZ,gBAAAG,EAAkB,GAClB,aAAAC,EAAe,GACf,iBAAAC,EAAmB,EACnB,wBAAAC,EAA0B,GAC1B,cAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,UAAAC,EAAY,GACZ,GAAGC,CACL,EAAsB,CACpB,MAAMC,EAAY,CAACC,UAAO,eAAe,EAAGH,CAAS,EAClD,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEI,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAY,GAAGD,EAE5B,SAAA,CAAAP,GACCU,EAAAA,KAAC,SAAA,CACC,KAAK,SACL,UAAW,CACTD,EAAAA,QAAO,oBAAoB,EAC3BP,EAA0BO,EAAAA,QAAO,4BAA4B,EAAI,EAAA,EAEhE,OAAO,OAAO,EACd,KAAK,GAAG,EACX,QAASJ,EACT,eAAcH,EACd,aAAW,sBAEX,SAAA,CAAAS,MAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,yBAAyB,EAAG,cAAW,GAC7D,SAAAE,EAAAA,IAACC,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACE,EAAA,CAAA,CAAuB,EAAI,EACrD,EACCX,EACCS,EAAAA,IAAC,OAAA,CAAK,UAAWF,UAAO,0BAA0B,EAC/C,SAAAR,CAAA,CACH,QAEC,OAAA,CAAK,UAAWQ,EAAAA,QAAO,0BAA0B,EAAG,SAAA,aAAA,CAErD,CAAA,CAAA,CAAA,EAMNC,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,wBAAwB,EAC5C,SAAA,CAAAX,EAAU,IAAI,CAAC,CAAE,MAAAgB,EAAO,MAAAC,EAAO,cAAAC,KAC9BL,EAAAA,IAACM,EAAAA,QAAA,CAEC,MAAAH,EACA,MAAAC,EACA,cAAAC,EACA,QAAS,IAAMZ,GAAA,YAAAA,EAAkBU,EAAK,EAJjCA,CAAA,CAMR,EAGAf,GACCY,EAAAA,IAACO,EAAAA,QAAA,CACC,aAAW,eACX,UAAWT,EAAAA,QAAO,6BAA6B,EAC/C,KAAK,UACL,QAASN,EACT,WAAOS,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACQ,IAAwB,CAAA,CAAI,CAAA,CAAA,CAC5D,CAAA,CAEJ,CAAA,EACF,CAEJ"}
1
+ {"version":3,"file":"ReactionsRow.cjs","sources":["../../../src/components/reactions-row/ReactionsRow.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport ReactionButton from '@/components/reaction-button/ReactionButton';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport EmoticonPlusOutlineIcon from '@mattermost/compass-icons/components/emoticon-plus-outline';\nimport styles from './ReactionsRow.module.scss';\n\nexport interface ReactionItem {\n emoji: string;\n count: number;\n /** Whether the current user reacted with this emoji. */\n byCurrentUser?: boolean;\n}\n\nexport interface ReactionsRowProps extends HTMLAttributes<HTMLDivElement> {\n /** List of reactions to display. */\n reactions?: ReactionItem[];\n /** Whether to show the add-reaction button. Default: false. */\n showAddReaction?: boolean;\n /** Whether to show the acknowledge button. */\n acknowledged?: boolean;\n /** Acknowledge count. */\n acknowledgeCount?: number;\n /** Whether the current user has acknowledged. Default: false. */\n currentUserAcknowledged?: boolean;\n /** Called when add-reaction is clicked. */\n onAddReaction?: () => void;\n /** Called when a Reaction Button is clicked. */\n onReactionClick?: (emoji: string) => void;\n /** Called when the acknowledge button is clicked. */\n onAcknowledge?: () => void;\n /** Visible acknowledge button text. Default: \"Acknowledge\". */\n acknowledgeLabel?: ReactNode;\n /** Accessible name for the acknowledge button. Default: \"Acknowledge message\". */\n acknowledgeAriaLabel?: string;\n /** Accessible name for the add-reaction button. Default: \"Add reaction\". */\n addReactionLabel?: string;\n /** Accessible name for each reaction button. Default: `{emoji} {count} reaction(s)`. */\n formatReactionLabel?: (emoji: string, count: number) => string;\n /** Optional CSS class name. */\n className?: string;\n}\n\nconst DEFAULT_REACTIONS: ReactionItem[] = [\n { emoji: '👍', count: 1 },\n { emoji: '😀', count: 4 },\n { emoji: '🙌', count: 1 },\n];\n\n/**\n * Reactions Row is the strip of Reaction Buttons below a message — the lightest weight way to\n * respond, applaud, or acknowledge without adding to the thread. The component handles the\n * count, the \"this is mine\" highlight, and the add-reaction affordance.\n */\nexport default function ReactionsRow({\n reactions = DEFAULT_REACTIONS,\n showAddReaction = false,\n acknowledged = false,\n acknowledgeCount = 0,\n currentUserAcknowledged = false,\n onAddReaction,\n onReactionClick,\n onAcknowledge,\n acknowledgeLabel = 'Acknowledge',\n acknowledgeAriaLabel = 'Acknowledge message',\n addReactionLabel = 'Add reaction',\n formatReactionLabel,\n className = '',\n ...rest\n}: ReactionsRowProps) {\n const rootClass = [styles['reactions-row'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} {...rest}>\n {/* Acknowledge button */}\n {acknowledged && (\n <button\n type=\"button\"\n className={[\n styles['reactions-row__ack'],\n currentUserAcknowledged ? styles['reactions-row__ack--active'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onAcknowledge}\n aria-pressed={currentUserAcknowledged}\n aria-label={acknowledgeAriaLabel}\n >\n <span className={styles['reactions-row__ack-icon']} aria-hidden>\n <Icon size=\"16\" glyph={<CheckCircleOutlineIcon />} />\n </span>\n {currentUserAcknowledged ? (\n <span className={styles['reactions-row__ack-count']}>\n {acknowledgeCount}\n </span>\n ) : (\n <span className={styles['reactions-row__ack-label']}>\n {acknowledgeLabel}\n </span>\n )}\n </button>\n )}\n\n {/* Reaction buttons */}\n <div className={styles['reactions-row__buttons']}>\n {reactions.map(({ emoji, count, byCurrentUser }) => (\n <ReactionButton\n key={emoji}\n emoji={emoji}\n count={count}\n byCurrentUser={byCurrentUser}\n formatLabel={formatReactionLabel}\n onClick={() => onReactionClick?.(emoji)}\n />\n ))}\n\n {/* Add reaction button */}\n {showAddReaction && (\n <IconButton\n aria-label={addReactionLabel}\n className={styles['reactions-row__add-reaction']}\n size=\"x-small\"\n onClick={onAddReaction}\n icon={<Icon size=\"16\" glyph={<EmoticonPlusOutlineIcon />} />}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["DEFAULT_REACTIONS","ReactionsRow","reactions","showAddReaction","acknowledged","acknowledgeCount","currentUserAcknowledged","onAddReaction","onReactionClick","onAcknowledge","acknowledgeLabel","acknowledgeAriaLabel","addReactionLabel","formatReactionLabel","className","rest","rootClass","styles","jsxs","jsx","Icon","CheckCircleOutlineIcon","emoji","count","byCurrentUser","ReactionButton","IconButton","EmoticonPlusOutlineIcon"],"mappings":"scA4CMA,EAAoC,CACxC,CAAE,MAAO,KAAM,MAAO,CAAA,EACtB,CAAE,MAAO,KAAM,MAAO,CAAA,EACtB,CAAE,MAAO,KAAM,MAAO,CAAA,CACxB,EAOA,SAAwBC,EAAa,CACnC,UAAAC,EAAYF,EACZ,gBAAAG,EAAkB,GAClB,aAAAC,EAAe,GACf,iBAAAC,EAAmB,EACnB,wBAAAC,EAA0B,GAC1B,cAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,iBAAAC,EAAmB,cACnB,qBAAAC,EAAuB,sBACvB,iBAAAC,EAAmB,eACnB,oBAAAC,EACA,UAAAC,EAAY,GACZ,GAAGC,CACL,EAAsB,CACpB,MAAMC,EAAY,CAACC,UAAO,eAAe,EAAGH,CAAS,EAClD,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEI,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAY,GAAGD,EAE5B,SAAA,CAAAX,GACCc,EAAAA,KAAC,SAAA,CACC,KAAK,SACL,UAAW,CACTD,EAAAA,QAAO,oBAAoB,EAC3BX,EAA0BW,EAAAA,QAAO,4BAA4B,EAAI,EAAA,EAEhE,OAAO,OAAO,EACd,KAAK,GAAG,EACX,QAASR,EACT,eAAcH,EACd,aAAYK,EAEZ,SAAA,CAAAQ,MAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,yBAAyB,EAAG,cAAW,GAC7D,SAAAE,EAAAA,IAACC,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACE,EAAA,CAAA,CAAuB,EAAI,EACrD,EACCf,EACCa,EAAAA,IAAC,OAAA,CAAK,UAAWF,UAAO,0BAA0B,EAC/C,SAAAZ,CAAA,CACH,QAEC,OAAA,CAAK,UAAWY,EAAAA,QAAO,0BAA0B,EAC/C,SAAAP,CAAA,CACH,CAAA,CAAA,CAAA,EAMNQ,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,wBAAwB,EAC5C,SAAA,CAAAf,EAAU,IAAI,CAAC,CAAE,MAAAoB,EAAO,MAAAC,EAAO,cAAAC,KAC9BL,EAAAA,IAACM,EAAAA,QAAA,CAEC,MAAAH,EACA,MAAAC,EACA,cAAAC,EACA,YAAaX,EACb,QAAS,IAAML,GAAA,YAAAA,EAAkBc,EAAK,EALjCA,CAAA,CAOR,EAGAnB,GACCgB,EAAAA,IAACO,EAAAA,QAAA,CACC,aAAYd,EACZ,UAAWK,EAAAA,QAAO,6BAA6B,EAC/C,KAAK,UACL,QAASV,EACT,WAAOa,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACQ,IAAwB,CAAA,CAAI,CAAA,CAAA,CAC5D,CAAA,CAEJ,CAAA,EACF,CAEJ"}
@@ -1,4 +1,4 @@
1
- import { HTMLAttributes } from 'react';
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
2
  export interface ReactionItem {
3
3
  emoji: string;
4
4
  count: number;
@@ -22,6 +22,14 @@ export interface ReactionsRowProps extends HTMLAttributes<HTMLDivElement> {
22
22
  onReactionClick?: (emoji: string) => void;
23
23
  /** Called when the acknowledge button is clicked. */
24
24
  onAcknowledge?: () => void;
25
+ /** Visible acknowledge button text. Default: "Acknowledge". */
26
+ acknowledgeLabel?: ReactNode;
27
+ /** Accessible name for the acknowledge button. Default: "Acknowledge message". */
28
+ acknowledgeAriaLabel?: string;
29
+ /** Accessible name for the add-reaction button. Default: "Add reaction". */
30
+ addReactionLabel?: string;
31
+ /** Accessible name for each reaction button. Default: `{emoji} {count} reaction(s)`. */
32
+ formatReactionLabel?: (emoji: string, count: number) => string;
25
33
  /** Optional CSS class name. */
26
34
  className?: string;
27
35
  }
@@ -30,5 +38,5 @@ export interface ReactionsRowProps extends HTMLAttributes<HTMLDivElement> {
30
38
  * respond, applaud, or acknowledge without adding to the thread. The component handles the
31
39
  * count, the "this is mine" highlight, and the add-reaction affordance.
32
40
  */
33
- export default function ReactionsRow({ reactions, showAddReaction, acknowledged, acknowledgeCount, currentUserAcknowledged, onAddReaction, onReactionClick, onAcknowledge, className, ...rest }: ReactionsRowProps): import("react/jsx-runtime").JSX.Element;
41
+ export default function ReactionsRow({ reactions, showAddReaction, acknowledged, acknowledgeCount, currentUserAcknowledged, onAddReaction, onReactionClick, onAcknowledge, acknowledgeLabel, acknowledgeAriaLabel, addReactionLabel, formatReactionLabel, className, ...rest }: ReactionsRowProps): import("react/jsx-runtime").JSX.Element;
34
42
  //# sourceMappingURL=ReactionsRow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactionsRow.d.ts","sourceRoot":"","sources":["../../../src/components/reactions-row/ReactionsRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAQ5C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,oCAAoC;IACpC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,gDAAgD;IAChD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,SAA6B,EAC7B,eAAuB,EACvB,YAAoB,EACpB,gBAAoB,EACpB,uBAA+B,EAC/B,aAAa,EACb,eAAe,EACf,aAAa,EACb,SAAc,EACd,GAAG,IAAI,EACR,EAAE,iBAAiB,2CA6DnB"}
1
+ {"version":3,"file":"ReactionsRow.d.ts","sourceRoot":"","sources":["../../../src/components/reactions-row/ReactionsRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,oCAAoC;IACpC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,gDAAgD;IAChD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,kFAAkF;IAClF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wFAAwF;IACxF,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/D,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,SAA6B,EAC7B,eAAuB,EACvB,YAAoB,EACpB,gBAAoB,EACpB,uBAA+B,EAC/B,aAAa,EACb,eAAe,EACf,aAAa,EACb,gBAAgC,EAChC,oBAA4C,EAC5C,gBAAiC,EACjC,mBAAmB,EACnB,SAAc,EACd,GAAG,IAAI,EACR,EAAE,iBAAiB,2CA8DnB"}
@@ -1,30 +1,34 @@
1
- import { jsxs as i, jsx as o } from "react/jsx-runtime";
2
- import N from "../icon-button/IconButton.js";
3
- import t from "../icon/Icon.js";
4
- import b from "../reaction-button/ReactionButton.js";
5
- import __j from "@mattermost/compass-icons/components/check-circle-outline.js";const j=__j&&__j.default?__j.default:__j;
6
- import __k from "@mattermost/compass-icons/components/emoticon-plus-outline.js";const k=__k&&__k.default?__k.default:__k;
1
+ import { jsxs as t, jsx as o } from "react/jsx-runtime";
2
+ import I from "../icon-button/IconButton.js";
3
+ import i from "../icon/Icon.js";
4
+ import x from "../reaction-button/ReactionButton.js";
5
+ import __y from "@mattermost/compass-icons/components/check-circle-outline.js";const y=__y&&__y.default?__y.default:__y;
6
+ import __B from "@mattermost/compass-icons/components/emoticon-plus-outline.js";const B=__B&&__B.default?__B.default:__B;
7
7
  import a from "./ReactionsRow.module.scss.js";
8
- const I = [
8
+ const g = [
9
9
  { emoji: "👍", count: 1 },
10
10
  { emoji: "😀", count: 4 },
11
11
  { emoji: "🙌", count: 1 }
12
12
  ];
13
- function C({
14
- reactions: n = I,
13
+ function T({
14
+ reactions: n = g,
15
15
  showAddReaction: c = !1,
16
16
  acknowledged: l = !1,
17
17
  acknowledgeCount: m = 0,
18
18
  currentUserAcknowledged: e = !1,
19
19
  onAddReaction: p,
20
20
  onReactionClick: s,
21
- onAcknowledge: _,
22
- className: d = "",
23
- ...f
21
+ onAcknowledge: f,
22
+ acknowledgeLabel: _ = "Acknowledge",
23
+ acknowledgeAriaLabel: d = "Acknowledge message",
24
+ addReactionLabel: u = "Add reaction",
25
+ formatReactionLabel: h,
26
+ className: w = "",
27
+ ...N
24
28
  }) {
25
- const u = [a["reactions-row"], d].filter(Boolean).join(" ");
26
- return /* @__PURE__ */ i("div", { className: u, ...f, children: [
27
- l && /* @__PURE__ */ i(
29
+ const b = [a["reactions-row"], w].filter(Boolean).join(" ");
30
+ return /* @__PURE__ */ t("div", { className: b, ...N, children: [
31
+ l && /* @__PURE__ */ t(
28
32
  "button",
29
33
  {
30
34
  type: "button",
@@ -32,40 +36,41 @@ function C({
32
36
  a["reactions-row__ack"],
33
37
  e ? a["reactions-row__ack--active"] : ""
34
38
  ].filter(Boolean).join(" "),
35
- onClick: _,
39
+ onClick: f,
36
40
  "aria-pressed": e,
37
- "aria-label": "Acknowledge message",
41
+ "aria-label": d,
38
42
  children: [
39
- /* @__PURE__ */ o("span", { className: a["reactions-row__ack-icon"], "aria-hidden": !0, children: /* @__PURE__ */ o(t, { size: "16", glyph: /* @__PURE__ */ o(j, {}) }) }),
40
- e ? /* @__PURE__ */ o("span", { className: a["reactions-row__ack-count"], children: m }) : /* @__PURE__ */ o("span", { className: a["reactions-row__ack-label"], children: "Acknowledge" })
43
+ /* @__PURE__ */ o("span", { className: a["reactions-row__ack-icon"], "aria-hidden": !0, children: /* @__PURE__ */ o(i, { size: "16", glyph: /* @__PURE__ */ o(y, {}) }) }),
44
+ e ? /* @__PURE__ */ o("span", { className: a["reactions-row__ack-count"], children: m }) : /* @__PURE__ */ o("span", { className: a["reactions-row__ack-label"], children: _ })
41
45
  ]
42
46
  }
43
47
  ),
44
- /* @__PURE__ */ i("div", { className: a["reactions-row__buttons"], children: [
45
- n.map(({ emoji: r, count: h, byCurrentUser: w }) => /* @__PURE__ */ o(
46
- b,
48
+ /* @__PURE__ */ t("div", { className: a["reactions-row__buttons"], children: [
49
+ n.map(({ emoji: r, count: j, byCurrentUser: k }) => /* @__PURE__ */ o(
50
+ x,
47
51
  {
48
52
  emoji: r,
49
- count: h,
50
- byCurrentUser: w,
53
+ count: j,
54
+ byCurrentUser: k,
55
+ formatLabel: h,
51
56
  onClick: () => s == null ? void 0 : s(r)
52
57
  },
53
58
  r
54
59
  )),
55
60
  c && /* @__PURE__ */ o(
56
- N,
61
+ I,
57
62
  {
58
- "aria-label": "Add reaction",
63
+ "aria-label": u,
59
64
  className: a["reactions-row__add-reaction"],
60
65
  size: "x-small",
61
66
  onClick: p,
62
- icon: /* @__PURE__ */ o(t, { size: "16", glyph: /* @__PURE__ */ o(k, {}) })
67
+ icon: /* @__PURE__ */ o(i, { size: "16", glyph: /* @__PURE__ */ o(B, {}) })
63
68
  }
64
69
  )
65
70
  ] })
66
71
  ] });
67
72
  }
68
73
  export {
69
- C as default
74
+ T as default
70
75
  };
71
76
  //# sourceMappingURL=ReactionsRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactionsRow.js","sources":["../../../src/components/reactions-row/ReactionsRow.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport ReactionButton from '@/components/reaction-button/ReactionButton';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport EmoticonPlusOutlineIcon from '@mattermost/compass-icons/components/emoticon-plus-outline';\nimport styles from './ReactionsRow.module.scss';\n\nexport interface ReactionItem {\n emoji: string;\n count: number;\n /** Whether the current user reacted with this emoji. */\n byCurrentUser?: boolean;\n}\n\nexport interface ReactionsRowProps extends HTMLAttributes<HTMLDivElement> {\n /** List of reactions to display. */\n reactions?: ReactionItem[];\n /** Whether to show the add-reaction button. Default: false. */\n showAddReaction?: boolean;\n /** Whether to show the acknowledge button. */\n acknowledged?: boolean;\n /** Acknowledge count. */\n acknowledgeCount?: number;\n /** Whether the current user has acknowledged. Default: false. */\n currentUserAcknowledged?: boolean;\n /** Called when add-reaction is clicked. */\n onAddReaction?: () => void;\n /** Called when a Reaction Button is clicked. */\n onReactionClick?: (emoji: string) => void;\n /** Called when the acknowledge button is clicked. */\n onAcknowledge?: () => void;\n /** Optional CSS class name. */\n className?: string;\n}\n\nconst DEFAULT_REACTIONS: ReactionItem[] = [\n { emoji: '👍', count: 1 },\n { emoji: '😀', count: 4 },\n { emoji: '🙌', count: 1 },\n];\n\n/**\n * Reactions Row is the strip of Reaction Buttons below a message — the lightest weight way to\n * respond, applaud, or acknowledge without adding to the thread. The component handles the\n * count, the \"this is mine\" highlight, and the add-reaction affordance.\n */\nexport default function ReactionsRow({\n reactions = DEFAULT_REACTIONS,\n showAddReaction = false,\n acknowledged = false,\n acknowledgeCount = 0,\n currentUserAcknowledged = false,\n onAddReaction,\n onReactionClick,\n onAcknowledge,\n className = '',\n ...rest\n}: ReactionsRowProps) {\n const rootClass = [styles['reactions-row'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} {...rest}>\n {/* Acknowledge button */}\n {acknowledged && (\n <button\n type=\"button\"\n className={[\n styles['reactions-row__ack'],\n currentUserAcknowledged ? styles['reactions-row__ack--active'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onAcknowledge}\n aria-pressed={currentUserAcknowledged}\n aria-label=\"Acknowledge message\"\n >\n <span className={styles['reactions-row__ack-icon']} aria-hidden>\n <Icon size=\"16\" glyph={<CheckCircleOutlineIcon />} />\n </span>\n {currentUserAcknowledged ? (\n <span className={styles['reactions-row__ack-count']}>\n {acknowledgeCount}\n </span>\n ) : (\n <span className={styles['reactions-row__ack-label']}>\n Acknowledge\n </span>\n )}\n </button>\n )}\n\n {/* Reaction buttons */}\n <div className={styles['reactions-row__buttons']}>\n {reactions.map(({ emoji, count, byCurrentUser }) => (\n <ReactionButton\n key={emoji}\n emoji={emoji}\n count={count}\n byCurrentUser={byCurrentUser}\n onClick={() => onReactionClick?.(emoji)}\n />\n ))}\n\n {/* Add reaction button */}\n {showAddReaction && (\n <IconButton\n aria-label=\"Add reaction\"\n className={styles['reactions-row__add-reaction']}\n size=\"x-small\"\n onClick={onAddReaction}\n icon={<Icon size=\"16\" glyph={<EmoticonPlusOutlineIcon />} />}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["DEFAULT_REACTIONS","ReactionsRow","reactions","showAddReaction","acknowledged","acknowledgeCount","currentUserAcknowledged","onAddReaction","onReactionClick","onAcknowledge","className","rest","rootClass","styles","jsxs","jsx","Icon","CheckCircleOutlineIcon","emoji","count","byCurrentUser","ReactionButton","IconButton","EmoticonPlusOutlineIcon"],"mappings":";;;;;;;AAoCA,MAAMA,IAAoC;AAAA,EACxC,EAAE,OAAO,MAAM,OAAO,EAAA;AAAA,EACtB,EAAE,OAAO,MAAM,OAAO,EAAA;AAAA,EACtB,EAAE,OAAO,MAAM,OAAO,EAAA;AACxB;AAOA,SAAwBC,EAAa;AAAA,EACnC,WAAAC,IAAYF;AAAA,EACZ,iBAAAG,IAAkB;AAAA,EAClB,cAAAC,IAAe;AAAA,EACf,kBAAAC,IAAmB;AAAA,EACnB,yBAAAC,IAA0B;AAAA,EAC1B,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,GAAsB;AACpB,QAAMC,IAAY,CAACC,EAAO,eAAe,GAAGH,CAAS,EAClD,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAI,EAAC,OAAA,EAAI,WAAWF,GAAY,GAAGD,GAE5B,UAAA;AAAA,IAAAP,KACC,gBAAAU;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAW;AAAA,UACTD,EAAO,oBAAoB;AAAA,UAC3BP,IAA0BO,EAAO,4BAA4B,IAAI;AAAA,QAAA,EAEhE,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,QACX,SAASJ;AAAA,QACT,gBAAcH;AAAA,QACd,cAAW;AAAA,QAEX,UAAA;AAAA,UAAA,gBAAAS,EAAC,QAAA,EAAK,WAAWF,EAAO,yBAAyB,GAAG,eAAW,IAC7D,UAAA,gBAAAE,EAACC,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAD,EAACE,GAAA,CAAA,CAAuB,GAAI,GACrD;AAAA,UACCX,IACC,gBAAAS,EAAC,QAAA,EAAK,WAAWF,EAAO,0BAA0B,GAC/C,UAAAR,EAAA,CACH,sBAEC,QAAA,EAAK,WAAWQ,EAAO,0BAA0B,GAAG,UAAA,cAAA,CAErD;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAMN,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,wBAAwB,GAC5C,UAAA;AAAA,MAAAX,EAAU,IAAI,CAAC,EAAE,OAAAgB,GAAO,OAAAC,GAAO,eAAAC,QAC9B,gBAAAL;AAAA,QAACM;AAAA,QAAA;AAAA,UAEC,OAAAH;AAAA,UACA,OAAAC;AAAA,UACA,eAAAC;AAAA,UACA,SAAS,MAAMZ,KAAA,gBAAAA,EAAkBU;AAAA,QAAK;AAAA,QAJjCA;AAAA,MAAA,CAMR;AAAA,MAGAf,KACC,gBAAAY;AAAA,QAACO;AAAA,QAAA;AAAA,UACC,cAAW;AAAA,UACX,WAAWT,EAAO,6BAA6B;AAAA,UAC/C,MAAK;AAAA,UACL,SAASN;AAAA,UACT,wBAAOS,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAD,EAACQ,KAAwB,EAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IAC5D,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"ReactionsRow.js","sources":["../../../src/components/reactions-row/ReactionsRow.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport ReactionButton from '@/components/reaction-button/ReactionButton';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport EmoticonPlusOutlineIcon from '@mattermost/compass-icons/components/emoticon-plus-outline';\nimport styles from './ReactionsRow.module.scss';\n\nexport interface ReactionItem {\n emoji: string;\n count: number;\n /** Whether the current user reacted with this emoji. */\n byCurrentUser?: boolean;\n}\n\nexport interface ReactionsRowProps extends HTMLAttributes<HTMLDivElement> {\n /** List of reactions to display. */\n reactions?: ReactionItem[];\n /** Whether to show the add-reaction button. Default: false. */\n showAddReaction?: boolean;\n /** Whether to show the acknowledge button. */\n acknowledged?: boolean;\n /** Acknowledge count. */\n acknowledgeCount?: number;\n /** Whether the current user has acknowledged. Default: false. */\n currentUserAcknowledged?: boolean;\n /** Called when add-reaction is clicked. */\n onAddReaction?: () => void;\n /** Called when a Reaction Button is clicked. */\n onReactionClick?: (emoji: string) => void;\n /** Called when the acknowledge button is clicked. */\n onAcknowledge?: () => void;\n /** Visible acknowledge button text. Default: \"Acknowledge\". */\n acknowledgeLabel?: ReactNode;\n /** Accessible name for the acknowledge button. Default: \"Acknowledge message\". */\n acknowledgeAriaLabel?: string;\n /** Accessible name for the add-reaction button. Default: \"Add reaction\". */\n addReactionLabel?: string;\n /** Accessible name for each reaction button. Default: `{emoji} {count} reaction(s)`. */\n formatReactionLabel?: (emoji: string, count: number) => string;\n /** Optional CSS class name. */\n className?: string;\n}\n\nconst DEFAULT_REACTIONS: ReactionItem[] = [\n { emoji: '👍', count: 1 },\n { emoji: '😀', count: 4 },\n { emoji: '🙌', count: 1 },\n];\n\n/**\n * Reactions Row is the strip of Reaction Buttons below a message — the lightest weight way to\n * respond, applaud, or acknowledge without adding to the thread. The component handles the\n * count, the \"this is mine\" highlight, and the add-reaction affordance.\n */\nexport default function ReactionsRow({\n reactions = DEFAULT_REACTIONS,\n showAddReaction = false,\n acknowledged = false,\n acknowledgeCount = 0,\n currentUserAcknowledged = false,\n onAddReaction,\n onReactionClick,\n onAcknowledge,\n acknowledgeLabel = 'Acknowledge',\n acknowledgeAriaLabel = 'Acknowledge message',\n addReactionLabel = 'Add reaction',\n formatReactionLabel,\n className = '',\n ...rest\n}: ReactionsRowProps) {\n const rootClass = [styles['reactions-row'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} {...rest}>\n {/* Acknowledge button */}\n {acknowledged && (\n <button\n type=\"button\"\n className={[\n styles['reactions-row__ack'],\n currentUserAcknowledged ? styles['reactions-row__ack--active'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onAcknowledge}\n aria-pressed={currentUserAcknowledged}\n aria-label={acknowledgeAriaLabel}\n >\n <span className={styles['reactions-row__ack-icon']} aria-hidden>\n <Icon size=\"16\" glyph={<CheckCircleOutlineIcon />} />\n </span>\n {currentUserAcknowledged ? (\n <span className={styles['reactions-row__ack-count']}>\n {acknowledgeCount}\n </span>\n ) : (\n <span className={styles['reactions-row__ack-label']}>\n {acknowledgeLabel}\n </span>\n )}\n </button>\n )}\n\n {/* Reaction buttons */}\n <div className={styles['reactions-row__buttons']}>\n {reactions.map(({ emoji, count, byCurrentUser }) => (\n <ReactionButton\n key={emoji}\n emoji={emoji}\n count={count}\n byCurrentUser={byCurrentUser}\n formatLabel={formatReactionLabel}\n onClick={() => onReactionClick?.(emoji)}\n />\n ))}\n\n {/* Add reaction button */}\n {showAddReaction && (\n <IconButton\n aria-label={addReactionLabel}\n className={styles['reactions-row__add-reaction']}\n size=\"x-small\"\n onClick={onAddReaction}\n icon={<Icon size=\"16\" glyph={<EmoticonPlusOutlineIcon />} />}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["DEFAULT_REACTIONS","ReactionsRow","reactions","showAddReaction","acknowledged","acknowledgeCount","currentUserAcknowledged","onAddReaction","onReactionClick","onAcknowledge","acknowledgeLabel","acknowledgeAriaLabel","addReactionLabel","formatReactionLabel","className","rest","rootClass","styles","jsxs","jsx","Icon","CheckCircleOutlineIcon","emoji","count","byCurrentUser","ReactionButton","IconButton","EmoticonPlusOutlineIcon"],"mappings":";;;;;;;AA4CA,MAAMA,IAAoC;AAAA,EACxC,EAAE,OAAO,MAAM,OAAO,EAAA;AAAA,EACtB,EAAE,OAAO,MAAM,OAAO,EAAA;AAAA,EACtB,EAAE,OAAO,MAAM,OAAO,EAAA;AACxB;AAOA,SAAwBC,EAAa;AAAA,EACnC,WAAAC,IAAYF;AAAA,EACZ,iBAAAG,IAAkB;AAAA,EAClB,cAAAC,IAAe;AAAA,EACf,kBAAAC,IAAmB;AAAA,EACnB,yBAAAC,IAA0B;AAAA,EAC1B,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,kBAAAC,IAAmB;AAAA,EACnB,sBAAAC,IAAuB;AAAA,EACvB,kBAAAC,IAAmB;AAAA,EACnB,qBAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,GAAsB;AACpB,QAAMC,IAAY,CAACC,EAAO,eAAe,GAAGH,CAAS,EAClD,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAI,EAAC,OAAA,EAAI,WAAWF,GAAY,GAAGD,GAE5B,UAAA;AAAA,IAAAX,KACC,gBAAAc;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAW;AAAA,UACTD,EAAO,oBAAoB;AAAA,UAC3BX,IAA0BW,EAAO,4BAA4B,IAAI;AAAA,QAAA,EAEhE,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,QACX,SAASR;AAAA,QACT,gBAAcH;AAAA,QACd,cAAYK;AAAA,QAEZ,UAAA;AAAA,UAAA,gBAAAQ,EAAC,QAAA,EAAK,WAAWF,EAAO,yBAAyB,GAAG,eAAW,IAC7D,UAAA,gBAAAE,EAACC,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAD,EAACE,GAAA,CAAA,CAAuB,GAAI,GACrD;AAAA,UACCf,IACC,gBAAAa,EAAC,QAAA,EAAK,WAAWF,EAAO,0BAA0B,GAC/C,UAAAZ,EAAA,CACH,sBAEC,QAAA,EAAK,WAAWY,EAAO,0BAA0B,GAC/C,UAAAP,EAAA,CACH;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAMN,gBAAAQ,EAAC,OAAA,EAAI,WAAWD,EAAO,wBAAwB,GAC5C,UAAA;AAAA,MAAAf,EAAU,IAAI,CAAC,EAAE,OAAAoB,GAAO,OAAAC,GAAO,eAAAC,QAC9B,gBAAAL;AAAA,QAACM;AAAA,QAAA;AAAA,UAEC,OAAAH;AAAA,UACA,OAAAC;AAAA,UACA,eAAAC;AAAA,UACA,aAAaX;AAAA,UACb,SAAS,MAAML,KAAA,gBAAAA,EAAkBc;AAAA,QAAK;AAAA,QALjCA;AAAA,MAAA,CAOR;AAAA,MAGAnB,KACC,gBAAAgB;AAAA,QAACO;AAAA,QAAA;AAAA,UACC,cAAYd;AAAA,UACZ,WAAWK,EAAO,6BAA6B;AAAA,UAC/C,MAAK;AAAA,UACL,SAASV;AAAA,UACT,wBAAOa,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAD,EAACQ,KAAwB,EAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IAC5D,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),__g=require("@mattermost/compass-icons/components/arrow-back-ios.js"),g=__g?.default??__g,__m=require("@mattermost/compass-icons/components/arrow-collapse.js"),m=__m?.default??__m,__p=require("@mattermost/compass-icons/components/arrow-expand.js"),p=__p?.default??__p,__N=require("@mattermost/compass-icons/components/close.js"),N=__N?.default??__N,s=require("../icon/Icon.cjs"),r=require("../icon-button/IconButton.cjs"),q=require("../tag/Tag.cjs"),a=require("./RightSidebarHeader.module.scss.cjs");function v({title:f,secondaryTitle:i,tag:l,tagType:j="info",leadingIcon:t,onBack:d,onExpand:c,expanded:n=!1,onClose:o,actionLabel:u,onActionClick:_,actionActive:h=!1,className:x=""}){const b=[a.default["right-sidebar-header"],x].filter(Boolean).join(" ");return e.jsxs("div",{className:b,children:[e.jsxs("div",{className:a.default["right-sidebar-header__left"],children:[e.jsxs("div",{className:a.default["right-sidebar-header__primary"],children:[d&&e.jsx(r.default,{className:a.default["right-sidebar-header__back"],size:"small","aria-label":"Back",onClick:d,icon:e.jsx(s.default,{size:"16",glyph:e.jsx(g,{})})}),t&&e.jsx("span",{className:a.default["right-sidebar-header__leading-icon"],children:t}),e.jsx("span",{className:a.default["right-sidebar-header__title"],children:f}),l&&e.jsx("span",{className:a.default["right-sidebar-header__tag"],children:e.jsx(q.default,{label:l,type:j,size:"x-small",casing:"all-caps"})})]}),i&&e.jsx("div",{className:a.default["right-sidebar-header__secondary"],children:e.jsx("span",{className:a.default["right-sidebar-header__secondary-text"],children:i})})]}),e.jsxs("div",{className:a.default["right-sidebar-header__actions"],children:[u&&e.jsx("button",{type:"button",className:[a.default["right-sidebar-header__action"],h?a.default["right-sidebar-header__action--active"]:""].filter(Boolean).join(" "),onClick:_,"aria-pressed":h?!0:void 0,children:u}),c&&e.jsx(r.default,{size:"small","aria-label":n?"Collapse":"Expand",onClick:c,icon:e.jsx(s.default,{size:"16",glyph:n?e.jsx(m,{}):e.jsx(p,{})})}),o&&e.jsx(r.default,{size:"small","aria-label":"Close",onClick:o,icon:e.jsx(s.default,{size:"16",glyph:e.jsx(N,{})})})]})]})}exports.default=v;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),__q=require("@mattermost/compass-icons/components/arrow-back-ios.js"),q=__q?.default??__q,__v=require("@mattermost/compass-icons/components/arrow-collapse.js"),v=__v?.default??__v,__y=require("@mattermost/compass-icons/components/arrow-expand.js"),y=__y?.default??__y,__C=require("@mattermost/compass-icons/components/close.js"),C=__C?.default??__C,s=require("../icon/Icon.cjs"),r=require("../icon-button/IconButton.cjs"),z=require("../tag/Tag.cjs"),a=require("./RightSidebarHeader.module.scss.cjs");function k({title:f,secondaryTitle:i,tag:l,tagType:j="info",leadingIcon:t,onBack:d,backLabel:_="Back",onExpand:c,expanded:n=!1,expandLabel:x="Expand",collapseLabel:b="Collapse",onClose:o,closeLabel:g="Close",actionLabel:u,onActionClick:m,actionActive:h=!1,className:p=""}){const N=[a.default["right-sidebar-header"],p].filter(Boolean).join(" ");return e.jsxs("div",{className:N,children:[e.jsxs("div",{className:a.default["right-sidebar-header__left"],children:[e.jsxs("div",{className:a.default["right-sidebar-header__primary"],children:[d&&e.jsx(r.default,{className:a.default["right-sidebar-header__back"],size:"small","aria-label":_,onClick:d,icon:e.jsx(s.default,{size:"16",glyph:e.jsx(q,{})})}),t&&e.jsx("span",{className:a.default["right-sidebar-header__leading-icon"],children:t}),e.jsx("span",{className:a.default["right-sidebar-header__title"],children:f}),l&&e.jsx("span",{className:a.default["right-sidebar-header__tag"],children:e.jsx(z.default,{label:l,type:j,size:"x-small",casing:"all-caps"})})]}),i&&e.jsx("div",{className:a.default["right-sidebar-header__secondary"],children:e.jsx("span",{className:a.default["right-sidebar-header__secondary-text"],children:i})})]}),e.jsxs("div",{className:a.default["right-sidebar-header__actions"],children:[u&&e.jsx("button",{type:"button",className:[a.default["right-sidebar-header__action"],h?a.default["right-sidebar-header__action--active"]:""].filter(Boolean).join(" "),onClick:m,"aria-pressed":h?!0:void 0,children:u}),c&&e.jsx(r.default,{size:"small","aria-label":n?b:x,onClick:c,icon:e.jsx(s.default,{size:"16",glyph:n?e.jsx(v,{}):e.jsx(y,{})})}),o&&e.jsx(r.default,{size:"small","aria-label":g,onClick:o,icon:e.jsx(s.default,{size:"16",glyph:e.jsx(C,{})})})]})]})}exports.default=k;
2
2
  //# sourceMappingURL=RightSidebarHeader.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"RightSidebarHeader.cjs","sources":["../../../src/components/right-sidebar-header/RightSidebarHeader.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport ArrowBackIosIcon from '@mattermost/compass-icons/components/arrow-back-ios';\nimport ArrowCollapseIcon from '@mattermost/compass-icons/components/arrow-collapse';\nimport ArrowExpandIcon from '@mattermost/compass-icons/components/arrow-expand';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Tag from '@/components/tag/Tag';\nimport type { TagType } from '@/components/tag/Tag';\nimport styles from './RightSidebarHeader.module.scss';\n\nexport interface RightSidebarHeaderProps {\n /** Primary title text. */\n title: string;\n /** Secondary title shown to the right of a vertical divider (e.g. parent channel name). */\n secondaryTitle?: string;\n /** Optional tag rendered next to the title (e.g. \"BETA\"). */\n tag?: string;\n /** Tag visual style. Default: Info. */\n tagType?: TagType;\n /** Optional leading element shown before the title — typically a `UserAvatar` or an icon. When passing an icon, use `<Icon glyph={<SomeIcon />} size=\"20\" />` to align with the title text. */\n leadingIcon?: ReactNode;\n /** When set, shows a back button and calls this on click. */\n onBack?: () => void;\n /** When set, shows an expand/collapse button and calls this on click. */\n onExpand?: () => void;\n /** When true, the expand button shows the collapse icon. Requires `onExpand`. */\n expanded?: boolean;\n /** When set, shows a close button and calls this on click. */\n onClose?: () => void;\n /** Optional inline action label (e.g. \"Follow\"). */\n actionLabel?: string;\n /** Click handler for the action label. */\n onActionClick?: () => void;\n /** When true, the action button shows in its active state. */\n actionActive?: boolean;\n className?: string;\n}\n\nexport default function RightSidebarHeader({\n title,\n secondaryTitle,\n tag,\n tagType = 'info',\n leadingIcon,\n onBack,\n onExpand,\n expanded = false,\n onClose,\n actionLabel,\n onActionClick,\n actionActive = false,\n className = '',\n}: RightSidebarHeaderProps) {\n const rootClass = [styles['right-sidebar-header'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n <div className={styles['right-sidebar-header__left']}>\n <div className={styles['right-sidebar-header__primary']}>\n {onBack && (\n <IconButton\n className={styles['right-sidebar-header__back']}\n size=\"small\"\n aria-label=\"Back\"\n onClick={onBack}\n icon={<Icon size=\"16\" glyph={<ArrowBackIosIcon />} />}\n />\n )}\n {leadingIcon && (\n <span className={styles['right-sidebar-header__leading-icon']}>\n {leadingIcon}\n </span>\n )}\n <span className={styles['right-sidebar-header__title']}>{title}</span>\n {tag && (\n <span className={styles['right-sidebar-header__tag']}>\n <Tag\n label={tag}\n type={tagType}\n size=\"x-small\"\n casing=\"all-caps\"\n />\n </span>\n )}\n </div>\n {secondaryTitle && (\n <div className={styles['right-sidebar-header__secondary']}>\n <span className={styles['right-sidebar-header__secondary-text']}>\n {secondaryTitle}\n </span>\n </div>\n )}\n </div>\n\n <div className={styles['right-sidebar-header__actions']}>\n {actionLabel && (\n <button\n type=\"button\"\n className={[\n styles['right-sidebar-header__action'],\n actionActive\n ? styles['right-sidebar-header__action--active']\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onActionClick}\n aria-pressed={actionActive ? true : undefined}\n >\n {actionLabel}\n </button>\n )}\n {onExpand && (\n <IconButton\n size=\"small\"\n aria-label={expanded ? 'Collapse' : 'Expand'}\n onClick={onExpand}\n icon={\n <Icon\n size=\"16\"\n glyph={expanded ? <ArrowCollapseIcon /> : <ArrowExpandIcon />}\n />\n }\n />\n )}\n {onClose && (\n <IconButton\n size=\"small\"\n aria-label=\"Close\"\n onClick={onClose}\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["RightSidebarHeader","title","secondaryTitle","tag","tagType","leadingIcon","onBack","onExpand","expanded","onClose","actionLabel","onActionClick","actionActive","className","rootClass","styles","jsxs","jsx","IconButton","Icon","ArrowBackIosIcon","Tag","ArrowCollapseIcon","ArrowExpandIcon","CloseIcon"],"mappings":"giBAuCA,SAAwBA,EAAmB,CACzC,MAAAC,EACA,eAAAC,EACA,IAAAC,EACA,QAAAC,EAAU,OACV,YAAAC,EACA,OAAAC,EACA,SAAAC,EACA,SAAAC,EAAW,GACX,QAAAC,EACA,YAAAC,EACA,cAAAC,EACA,aAAAC,EAAe,GACf,UAAAC,EAAY,EACd,EAA4B,CAC1B,MAAMC,EAAY,CAACC,UAAO,sBAAsB,EAAGF,CAAS,EACzD,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEG,EAAAA,KAAC,MAAA,CAAI,UAAWF,EACd,SAAA,CAAAE,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,4BAA4B,EACjD,SAAA,CAAAC,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,+BAA+B,EACnD,SAAA,CAAAT,GACCW,EAAAA,IAACC,EAAAA,QAAA,CACC,UAAWH,EAAAA,QAAO,4BAA4B,EAC9C,KAAK,QACL,aAAW,OACX,QAAST,EACT,WAAOa,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOF,EAAAA,IAACG,IAAiB,CAAA,CAAI,CAAA,CAAA,EAGtDf,GACCY,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,oCAAoC,EACzD,SAAAV,EACH,QAED,OAAA,CAAK,UAAWU,EAAAA,QAAO,6BAA6B,EAAI,SAAAd,EAAM,EAC9DE,GACCc,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,2BAA2B,EACjD,SAAAE,EAAAA,IAACI,EAAAA,QAAA,CACC,MAAOlB,EACP,KAAMC,EACN,KAAK,UACL,OAAO,UAAA,CAAA,CACT,CACF,CAAA,EAEJ,EACCF,GACCe,EAAAA,IAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,iCAAiC,EACtD,SAAAE,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,sCAAsC,EAC3D,WACH,CAAA,CACF,CAAA,EAEJ,EAEAC,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,+BAA+B,EACnD,SAAA,CAAAL,GACCO,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAW,CACTF,EAAAA,QAAO,8BAA8B,EACrCH,EACIG,EAAAA,QAAO,sCAAsC,EAC7C,EAAA,EAEH,OAAO,OAAO,EACd,KAAK,GAAG,EACX,QAASJ,EACT,eAAcC,EAAe,GAAO,OAEnC,SAAAF,CAAA,CAAA,EAGJH,GACCU,EAAAA,IAACC,EAAAA,QAAA,CACC,KAAK,QACL,aAAYV,EAAW,WAAa,SACpC,QAASD,EACT,KACEU,EAAAA,IAACE,EAAAA,QAAA,CACC,KAAK,KACL,MAAOX,EAAWS,MAACK,EAAA,CAAA,CAAkB,QAAMC,EAAA,CAAA,CAAgB,CAAA,CAAA,CAC7D,CAAA,EAILd,GACCQ,EAAAA,IAACC,EAAAA,QAAA,CACC,KAAK,QACL,aAAW,QACX,QAAST,EACT,WAAOU,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOF,EAAAA,IAACO,IAAU,CAAA,CAAI,CAAA,CAAA,CAC9C,CAAA,CAEJ,CAAA,EACF,CAEJ"}
1
+ {"version":3,"file":"RightSidebarHeader.cjs","sources":["../../../src/components/right-sidebar-header/RightSidebarHeader.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport ArrowBackIosIcon from '@mattermost/compass-icons/components/arrow-back-ios';\nimport ArrowCollapseIcon from '@mattermost/compass-icons/components/arrow-collapse';\nimport ArrowExpandIcon from '@mattermost/compass-icons/components/arrow-expand';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Tag from '@/components/tag/Tag';\nimport type { TagType } from '@/components/tag/Tag';\nimport styles from './RightSidebarHeader.module.scss';\n\nexport interface RightSidebarHeaderProps {\n /** Primary title text. Accepts translated nodes (e.g. `<FormattedMessage/>`). */\n title: ReactNode;\n /** Secondary title shown to the right of a vertical divider (e.g. parent channel name). */\n secondaryTitle?: ReactNode;\n /** Optional tag rendered next to the title (e.g. \"BETA\"). */\n tag?: ReactNode;\n /** Tag visual style. Default: Info. */\n tagType?: TagType;\n /** Optional leading element shown before the title — typically a `UserAvatar` or an icon. When passing an icon, use `<Icon glyph={<SomeIcon />} size=\"20\" />` to align with the title text. */\n leadingIcon?: ReactNode;\n /** When set, shows a back button and calls this on click. */\n onBack?: () => void;\n /** Accessible name for the back button. Default: \"Back\". */\n backLabel?: string;\n /** When set, shows an expand/collapse button and calls this on click. */\n onExpand?: () => void;\n /** When true, the expand button shows the collapse icon. Requires `onExpand`. */\n expanded?: boolean;\n /** Accessible name for the expand button while collapsed. Default: \"Expand\". */\n expandLabel?: string;\n /** Accessible name for the expand button while expanded. Default: \"Collapse\". */\n collapseLabel?: string;\n /** When set, shows a close button and calls this on click. */\n onClose?: () => void;\n /** Accessible name for the close button. Default: \"Close\". */\n closeLabel?: string;\n /** Optional inline action label (e.g. \"Follow\"). Accepts translated nodes. */\n actionLabel?: ReactNode;\n /** Click handler for the action label. */\n onActionClick?: () => void;\n /** When true, the action button shows in its active state. */\n actionActive?: boolean;\n className?: string;\n}\n\nexport default function RightSidebarHeader({\n title,\n secondaryTitle,\n tag,\n tagType = 'info',\n leadingIcon,\n onBack,\n backLabel = 'Back',\n onExpand,\n expanded = false,\n expandLabel = 'Expand',\n collapseLabel = 'Collapse',\n onClose,\n closeLabel = 'Close',\n actionLabel,\n onActionClick,\n actionActive = false,\n className = '',\n}: RightSidebarHeaderProps) {\n const rootClass = [styles['right-sidebar-header'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n <div className={styles['right-sidebar-header__left']}>\n <div className={styles['right-sidebar-header__primary']}>\n {onBack && (\n <IconButton\n className={styles['right-sidebar-header__back']}\n size=\"small\"\n aria-label={backLabel}\n onClick={onBack}\n icon={<Icon size=\"16\" glyph={<ArrowBackIosIcon />} />}\n />\n )}\n {leadingIcon && (\n <span className={styles['right-sidebar-header__leading-icon']}>\n {leadingIcon}\n </span>\n )}\n <span className={styles['right-sidebar-header__title']}>{title}</span>\n {tag && (\n <span className={styles['right-sidebar-header__tag']}>\n <Tag\n label={tag}\n type={tagType}\n size=\"x-small\"\n casing=\"all-caps\"\n />\n </span>\n )}\n </div>\n {secondaryTitle && (\n <div className={styles['right-sidebar-header__secondary']}>\n <span className={styles['right-sidebar-header__secondary-text']}>\n {secondaryTitle}\n </span>\n </div>\n )}\n </div>\n\n <div className={styles['right-sidebar-header__actions']}>\n {actionLabel && (\n <button\n type=\"button\"\n className={[\n styles['right-sidebar-header__action'],\n actionActive\n ? styles['right-sidebar-header__action--active']\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onActionClick}\n aria-pressed={actionActive ? true : undefined}\n >\n {actionLabel}\n </button>\n )}\n {onExpand && (\n <IconButton\n size=\"small\"\n aria-label={expanded ? collapseLabel : expandLabel}\n onClick={onExpand}\n icon={\n <Icon\n size=\"16\"\n glyph={expanded ? <ArrowCollapseIcon /> : <ArrowExpandIcon />}\n />\n }\n />\n )}\n {onClose && (\n <IconButton\n size=\"small\"\n aria-label={closeLabel}\n onClick={onClose}\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["RightSidebarHeader","title","secondaryTitle","tag","tagType","leadingIcon","onBack","backLabel","onExpand","expanded","expandLabel","collapseLabel","onClose","closeLabel","actionLabel","onActionClick","actionActive","className","rootClass","styles","jsxs","jsx","IconButton","Icon","ArrowBackIosIcon","Tag","ArrowCollapseIcon","ArrowExpandIcon","CloseIcon"],"mappings":"giBA+CA,SAAwBA,EAAmB,CACzC,MAAAC,EACA,eAAAC,EACA,IAAAC,EACA,QAAAC,EAAU,OACV,YAAAC,EACA,OAAAC,EACA,UAAAC,EAAY,OACZ,SAAAC,EACA,SAAAC,EAAW,GACX,YAAAC,EAAc,SACd,cAAAC,EAAgB,WAChB,QAAAC,EACA,WAAAC,EAAa,QACb,YAAAC,EACA,cAAAC,EACA,aAAAC,EAAe,GACf,UAAAC,EAAY,EACd,EAA4B,CAC1B,MAAMC,EAAY,CAACC,UAAO,sBAAsB,EAAGF,CAAS,EACzD,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEG,EAAAA,KAAC,MAAA,CAAI,UAAWF,EACd,SAAA,CAAAE,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,4BAA4B,EACjD,SAAA,CAAAC,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,+BAA+B,EACnD,SAAA,CAAAb,GACCe,EAAAA,IAACC,EAAAA,QAAA,CACC,UAAWH,EAAAA,QAAO,4BAA4B,EAC9C,KAAK,QACL,aAAYZ,EACZ,QAASD,EACT,WAAOiB,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOF,EAAAA,IAACG,IAAiB,CAAA,CAAI,CAAA,CAAA,EAGtDnB,GACCgB,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,oCAAoC,EACzD,SAAAd,EACH,QAED,OAAA,CAAK,UAAWc,EAAAA,QAAO,6BAA6B,EAAI,SAAAlB,EAAM,EAC9DE,GACCkB,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,2BAA2B,EACjD,SAAAE,EAAAA,IAACI,EAAAA,QAAA,CACC,MAAOtB,EACP,KAAMC,EACN,KAAK,UACL,OAAO,UAAA,CAAA,CACT,CACF,CAAA,EAEJ,EACCF,GACCmB,EAAAA,IAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,iCAAiC,EACtD,SAAAE,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,sCAAsC,EAC3D,WACH,CAAA,CACF,CAAA,EAEJ,EAEAC,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,+BAA+B,EACnD,SAAA,CAAAL,GACCO,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAW,CACTF,EAAAA,QAAO,8BAA8B,EACrCH,EACIG,EAAAA,QAAO,sCAAsC,EAC7C,EAAA,EAEH,OAAO,OAAO,EACd,KAAK,GAAG,EACX,QAASJ,EACT,eAAcC,EAAe,GAAO,OAEnC,SAAAF,CAAA,CAAA,EAGJN,GACCa,EAAAA,IAACC,EAAAA,QAAA,CACC,KAAK,QACL,aAAYb,EAAWE,EAAgBD,EACvC,QAASF,EACT,KACEa,EAAAA,IAACE,EAAAA,QAAA,CACC,KAAK,KACL,MAAOd,EAAWY,MAACK,EAAA,CAAA,CAAkB,QAAMC,EAAA,CAAA,CAAgB,CAAA,CAAA,CAC7D,CAAA,EAILf,GACCS,EAAAA,IAACC,EAAAA,QAAA,CACC,KAAK,QACL,aAAYT,EACZ,QAASD,EACT,WAAOW,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOF,EAAAA,IAACO,IAAU,CAAA,CAAI,CAAA,CAAA,CAC9C,CAAA,CAEJ,CAAA,EACF,CAEJ"}
@@ -1,31 +1,39 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { TagType } from '../tag/Tag';
3
3
  export interface RightSidebarHeaderProps {
4
- /** Primary title text. */
5
- title: string;
4
+ /** Primary title text. Accepts translated nodes (e.g. `<FormattedMessage/>`). */
5
+ title: ReactNode;
6
6
  /** Secondary title shown to the right of a vertical divider (e.g. parent channel name). */
7
- secondaryTitle?: string;
7
+ secondaryTitle?: ReactNode;
8
8
  /** Optional tag rendered next to the title (e.g. "BETA"). */
9
- tag?: string;
9
+ tag?: ReactNode;
10
10
  /** Tag visual style. Default: Info. */
11
11
  tagType?: TagType;
12
12
  /** Optional leading element shown before the title — typically a `UserAvatar` or an icon. When passing an icon, use `<Icon glyph={<SomeIcon />} size="20" />` to align with the title text. */
13
13
  leadingIcon?: ReactNode;
14
14
  /** When set, shows a back button and calls this on click. */
15
15
  onBack?: () => void;
16
+ /** Accessible name for the back button. Default: "Back". */
17
+ backLabel?: string;
16
18
  /** When set, shows an expand/collapse button and calls this on click. */
17
19
  onExpand?: () => void;
18
20
  /** When true, the expand button shows the collapse icon. Requires `onExpand`. */
19
21
  expanded?: boolean;
22
+ /** Accessible name for the expand button while collapsed. Default: "Expand". */
23
+ expandLabel?: string;
24
+ /** Accessible name for the expand button while expanded. Default: "Collapse". */
25
+ collapseLabel?: string;
20
26
  /** When set, shows a close button and calls this on click. */
21
27
  onClose?: () => void;
22
- /** Optional inline action label (e.g. "Follow"). */
23
- actionLabel?: string;
28
+ /** Accessible name for the close button. Default: "Close". */
29
+ closeLabel?: string;
30
+ /** Optional inline action label (e.g. "Follow"). Accepts translated nodes. */
31
+ actionLabel?: ReactNode;
24
32
  /** Click handler for the action label. */
25
33
  onActionClick?: () => void;
26
34
  /** When true, the action button shows in its active state. */
27
35
  actionActive?: boolean;
28
36
  className?: string;
29
37
  }
30
- export default function RightSidebarHeader({ title, secondaryTitle, tag, tagType, leadingIcon, onBack, onExpand, expanded, onClose, actionLabel, onActionClick, actionActive, className, }: RightSidebarHeaderProps): import("react/jsx-runtime").JSX.Element;
38
+ export default function RightSidebarHeader({ title, secondaryTitle, tag, tagType, leadingIcon, onBack, backLabel, onExpand, expanded, expandLabel, collapseLabel, onClose, closeLabel, actionLabel, onActionClick, actionActive, className, }: RightSidebarHeaderProps): import("react/jsx-runtime").JSX.Element;
31
39
  //# sourceMappingURL=RightSidebarHeader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RightSidebarHeader.d.ts","sourceRoot":"","sources":["../../../src/components/right-sidebar-header/RightSidebarHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,MAAM,WAAW,uBAAuB;IACtC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+LAA+L;IAC/L,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,8DAA8D;IAC9D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,KAAK,EACL,cAAc,EACd,GAAG,EACH,OAAgB,EAChB,WAAW,EACX,MAAM,EACN,QAAQ,EACR,QAAgB,EAChB,OAAO,EACP,WAAW,EACX,aAAa,EACb,YAAoB,EACpB,SAAc,GACf,EAAE,uBAAuB,2CAsFzB"}
1
+ {"version":3,"file":"RightSidebarHeader.d.ts","sourceRoot":"","sources":["../../../src/components/right-sidebar-header/RightSidebarHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,KAAK,EAAE,SAAS,CAAC;IACjB,2FAA2F;IAC3F,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,6DAA6D;IAC7D,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+LAA+L;IAC/L,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,8DAA8D;IAC9D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,KAAK,EACL,cAAc,EACd,GAAG,EACH,OAAgB,EAChB,WAAW,EACX,MAAM,EACN,SAAkB,EAClB,QAAQ,EACR,QAAgB,EAChB,WAAsB,EACtB,aAA0B,EAC1B,OAAO,EACP,UAAoB,EACpB,WAAW,EACX,aAAa,EACb,YAAoB,EACpB,SAAc,GACf,EAAE,uBAAuB,2CAsFzB"}