@mattermost/compass-ui 0.1.0-alpha.3 → 0.1.0-alpha.5

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 (290) hide show
  1. package/dist/compass-ui-standalone.css +10 -0
  2. package/dist/compass-ui.css +2 -0
  3. package/dist/components/action-button/ActionButton.cjs +1 -1
  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 +22 -12
  8. package/dist/components/action-button/ActionButton.js.map +1 -1
  9. package/dist/components/action-button/ActionButton.module.css +1 -1
  10. package/dist/components/action-button/ActionButton.module.scss.cjs +1 -1
  11. package/dist/components/action-button/ActionButton.module.scss.js +5 -5
  12. package/dist/components/admin-panel/AdminPanel.d.ts +1 -1
  13. package/dist/components/attachment-card/AttachmentCard.cjs +1 -1
  14. package/dist/components/attachment-card/AttachmentCard.cjs.map +1 -1
  15. package/dist/components/attachment-card/AttachmentCard.d.ts +3 -1
  16. package/dist/components/attachment-card/AttachmentCard.d.ts.map +1 -1
  17. package/dist/components/attachment-card/AttachmentCard.js +92 -82
  18. package/dist/components/attachment-card/AttachmentCard.js.map +1 -1
  19. package/dist/components/attachment-card/AttachmentCard.module.css +1 -1
  20. package/dist/components/attachment-card/AttachmentCard.module.scss.cjs +1 -1
  21. package/dist/components/attachment-card/AttachmentCard.module.scss.js +19 -18
  22. package/dist/components/attachment-card/AttachmentCard.module.scss.js.map +1 -1
  23. package/dist/components/button/Button.module.css +1 -1
  24. package/dist/components/button/Button.module.scss.cjs +1 -1
  25. package/dist/components/button/Button.module.scss.js +15 -15
  26. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs +1 -1
  27. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs.map +1 -1
  28. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts +4 -1
  29. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts.map +1 -1
  30. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js +112 -92
  31. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js.map +1 -1
  32. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.css +1 -1
  33. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.cjs +1 -1
  34. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.js +22 -20
  35. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.js.map +1 -1
  36. package/dist/components/channels-sidebar/channelsSidebarModel.d.ts +1 -1
  37. package/dist/components/checkbox/Checkbox.cjs +1 -1
  38. package/dist/components/checkbox/Checkbox.cjs.map +1 -1
  39. package/dist/components/checkbox/Checkbox.d.ts +3 -3
  40. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  41. package/dist/components/checkbox/Checkbox.js +21 -20
  42. package/dist/components/checkbox/Checkbox.js.map +1 -1
  43. package/dist/components/checkbox/Checkbox.module.css +1 -1
  44. package/dist/components/checkbox/Checkbox.module.scss.cjs +1 -1
  45. package/dist/components/checkbox/Checkbox.module.scss.js +7 -7
  46. package/dist/components/chip/Chip.cjs +1 -1
  47. package/dist/components/chip/Chip.cjs.map +1 -1
  48. package/dist/components/chip/Chip.d.ts +3 -5
  49. package/dist/components/chip/Chip.d.ts.map +1 -1
  50. package/dist/components/chip/Chip.js +90 -48
  51. package/dist/components/chip/Chip.js.map +1 -1
  52. package/dist/components/chip/Chip.module.css +1 -1
  53. package/dist/components/chip/Chip.module.scss.cjs +1 -1
  54. package/dist/components/chip/Chip.module.scss.js +9 -9
  55. package/dist/components/chip/ChipGroup.cjs +2 -0
  56. package/dist/components/chip/ChipGroup.cjs.map +1 -0
  57. package/dist/components/chip/ChipGroup.d.ts +16 -0
  58. package/dist/components/chip/ChipGroup.d.ts.map +1 -0
  59. package/dist/components/chip/ChipGroup.js +112 -0
  60. package/dist/components/chip/ChipGroup.js.map +1 -0
  61. package/dist/components/chip/ChipGroup.module.css +1 -0
  62. package/dist/components/chip/ChipGroup.module.scss.cjs +2 -0
  63. package/dist/components/chip/ChipGroup.module.scss.cjs.map +1 -0
  64. package/dist/components/chip/ChipGroup.module.scss.js +7 -0
  65. package/dist/components/chip/ChipGroup.module.scss.js.map +1 -0
  66. package/dist/components/chip/index.cjs +1 -1
  67. package/dist/components/chip/index.d.ts +2 -0
  68. package/dist/components/chip/index.d.ts.map +1 -1
  69. package/dist/components/chip/index.js +4 -2
  70. package/dist/components/chip/index.js.map +1 -1
  71. package/dist/components/combobox/Combobox.cjs +1 -1
  72. package/dist/components/combobox/Combobox.cjs.map +1 -1
  73. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  74. package/dist/components/combobox/Combobox.js +115 -109
  75. package/dist/components/combobox/Combobox.js.map +1 -1
  76. package/dist/components/combobox/Combobox.module.css +1 -1
  77. package/dist/components/combobox/Combobox.module.scss.cjs +1 -1
  78. package/dist/components/combobox/Combobox.module.scss.js +27 -29
  79. package/dist/components/date-range-picker/DateRangePicker.cjs +1 -1
  80. package/dist/components/date-range-picker/DateRangePicker.cjs.map +1 -1
  81. package/dist/components/date-range-picker/DateRangePicker.js +154 -154
  82. package/dist/components/date-range-picker/DateRangePicker.js.map +1 -1
  83. package/dist/components/date-range-picker/DateRangePicker.module.css +1 -1
  84. package/dist/components/date-range-picker/DateRangePicker.module.scss.cjs +1 -1
  85. package/dist/components/date-range-picker/DateRangePicker.module.scss.js +28 -45
  86. package/dist/components/dropdown/Dropdown.cjs +1 -1
  87. package/dist/components/dropdown/Dropdown.cjs.map +1 -1
  88. package/dist/components/dropdown/Dropdown.js +1 -1
  89. package/dist/components/dropdown/Dropdown.js.map +1 -1
  90. package/dist/components/dropdown/Dropdown.module.css +1 -1
  91. package/dist/components/dropdown/Dropdown.module.scss.cjs +1 -1
  92. package/dist/components/dropdown/Dropdown.module.scss.js +15 -16
  93. package/dist/components/empty-state/EmptyState.d.ts +2 -2
  94. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.d.ts +2 -2
  95. package/dist/components/global-banner/GlobalBanner.module.css +1 -1
  96. package/dist/components/global-banner/GlobalBanner.module.scss.cjs +1 -1
  97. package/dist/components/global-banner/GlobalBanner.module.scss.js +10 -10
  98. package/dist/components/icon-button/IconButton.cjs +1 -1
  99. package/dist/components/icon-button/IconButton.cjs.map +1 -1
  100. package/dist/components/icon-button/IconButton.d.ts +1 -1
  101. package/dist/components/icon-button/IconButton.d.ts.map +1 -1
  102. package/dist/components/icon-button/IconButton.js +14 -14
  103. package/dist/components/icon-button/IconButton.js.map +1 -1
  104. package/dist/components/icon-button/IconButton.module.css +1 -1
  105. package/dist/components/icon-button/IconButton.module.scss.cjs +1 -1
  106. package/dist/components/icon-button/IconButton.module.scss.js +15 -15
  107. package/dist/components/image-preview/ImagePreview.cjs +1 -1
  108. package/dist/components/image-preview/ImagePreview.cjs.map +1 -1
  109. package/dist/components/image-preview/ImagePreview.d.ts +2 -1
  110. package/dist/components/image-preview/ImagePreview.d.ts.map +1 -1
  111. package/dist/components/image-preview/ImagePreview.js +70 -52
  112. package/dist/components/image-preview/ImagePreview.js.map +1 -1
  113. package/dist/components/image-preview/ImagePreview.module.css +1 -1
  114. package/dist/components/image-preview/ImagePreview.module.scss.cjs +1 -1
  115. package/dist/components/image-preview/ImagePreview.module.scss.js +15 -15
  116. package/dist/components/menu-item/MenuItem.cjs +1 -1
  117. package/dist/components/menu-item/MenuItem.cjs.map +1 -1
  118. package/dist/components/menu-item/MenuItem.js +11 -11
  119. package/dist/components/menu-item/MenuItem.js.map +1 -1
  120. package/dist/components/menu-item/MenuItem.module.css +1 -1
  121. package/dist/components/menu-item/MenuItem.module.scss.cjs +1 -1
  122. package/dist/components/menu-item/MenuItem.module.scss.js +16 -16
  123. package/dist/components/message/Message.d.ts +1 -1
  124. package/dist/components/message/Message.module.css +1 -1
  125. package/dist/components/message/Message.module.scss.cjs +1 -1
  126. package/dist/components/message/Message.module.scss.js +20 -20
  127. package/dist/components/message-reactions/MessageReactions.module.css +1 -1
  128. package/dist/components/message-reactions/MessageReactions.module.scss.cjs +1 -1
  129. package/dist/components/message-reactions/MessageReactions.module.scss.js +12 -12
  130. package/dist/components/modal/Modal.cjs +1 -1
  131. package/dist/components/modal/Modal.cjs.map +1 -1
  132. package/dist/components/modal/Modal.d.ts +9 -1
  133. package/dist/components/modal/Modal.d.ts.map +1 -1
  134. package/dist/components/modal/Modal.js +30 -20
  135. package/dist/components/modal/Modal.js.map +1 -1
  136. package/dist/components/modal/Modal.module.css +1 -1
  137. package/dist/components/modal/Modal.module.scss.cjs +1 -1
  138. package/dist/components/modal/Modal.module.scss.js +18 -17
  139. package/dist/components/modal/Modal.module.scss.js.map +1 -1
  140. package/dist/components/modal/index.d.ts +1 -1
  141. package/dist/components/modal/index.d.ts.map +1 -1
  142. package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.css +1 -1
  143. package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.scss.cjs +1 -1
  144. package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.scss.js +5 -5
  145. package/dist/components/pagination-dots/PaginationDots.module.css +1 -1
  146. package/dist/components/pagination-dots/PaginationDots.module.scss.cjs +1 -1
  147. package/dist/components/pagination-dots/PaginationDots.module.scss.js +8 -8
  148. package/dist/components/radio/Radio.cjs +1 -1
  149. package/dist/components/radio/Radio.cjs.map +1 -1
  150. package/dist/components/radio/Radio.d.ts +3 -3
  151. package/dist/components/radio/Radio.d.ts.map +1 -1
  152. package/dist/components/radio/Radio.js +11 -11
  153. package/dist/components/radio/Radio.js.map +1 -1
  154. package/dist/components/radio/Radio.module.css +1 -1
  155. package/dist/components/radio/Radio.module.scss.cjs +1 -1
  156. package/dist/components/radio/Radio.module.scss.js +11 -11
  157. package/dist/components/right-sidebar/RightSidebarHeader/RightSidebarHeader.d.ts +1 -1
  158. package/dist/components/search-input/SearchInput.cjs +1 -1
  159. package/dist/components/search-input/SearchInput.cjs.map +1 -1
  160. package/dist/components/search-input/SearchInput.d.ts +2 -0
  161. package/dist/components/search-input/SearchInput.d.ts.map +1 -1
  162. package/dist/components/search-input/SearchInput.js +78 -64
  163. package/dist/components/search-input/SearchInput.js.map +1 -1
  164. package/dist/components/search-input/SearchInput.module.css +1 -1
  165. package/dist/components/search-input/SearchInput.module.scss.cjs +1 -1
  166. package/dist/components/search-input/SearchInput.module.scss.js +16 -23
  167. package/dist/components/search-input/SearchInput.module.scss.js.map +1 -1
  168. package/dist/components/select/Select.cjs +1 -1
  169. package/dist/components/select/Select.cjs.map +1 -1
  170. package/dist/components/select/Select.d.ts.map +1 -1
  171. package/dist/components/select/Select.js +64 -64
  172. package/dist/components/select/Select.js.map +1 -1
  173. package/dist/components/select/Select.module.css +1 -1
  174. package/dist/components/select/Select.module.scss.cjs +1 -1
  175. package/dist/components/select/Select.module.scss.js +24 -26
  176. package/dist/components/switch/Switch.cjs +1 -1
  177. package/dist/components/switch/Switch.cjs.map +1 -1
  178. package/dist/components/switch/Switch.d.ts.map +1 -1
  179. package/dist/components/switch/Switch.js +2 -2
  180. package/dist/components/switch/Switch.js.map +1 -1
  181. package/dist/components/switch/Switch.module.css +1 -1
  182. package/dist/components/switch/Switch.module.scss.cjs +1 -1
  183. package/dist/components/switch/Switch.module.scss.js +15 -15
  184. package/dist/components/tabs/Tabs.cjs +1 -1
  185. package/dist/components/tabs/Tabs.cjs.map +1 -1
  186. package/dist/components/tabs/Tabs.d.ts +4 -0
  187. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  188. package/dist/components/tabs/Tabs.js +47 -31
  189. package/dist/components/tabs/Tabs.js.map +1 -1
  190. package/dist/components/tabs/Tabs.module.css +1 -1
  191. package/dist/components/tabs/Tabs.module.scss.cjs +1 -1
  192. package/dist/components/tabs/Tabs.module.scss.js +8 -7
  193. package/dist/components/tabs/Tabs.module.scss.js.map +1 -1
  194. package/dist/components/tag/Tag.module.css +1 -1
  195. package/dist/components/tag/Tag.module.scss.cjs +1 -1
  196. package/dist/components/tag/Tag.module.scss.js +15 -15
  197. package/dist/components/text-area/TextArea.cjs +1 -1
  198. package/dist/components/text-area/TextArea.cjs.map +1 -1
  199. package/dist/components/text-area/TextArea.d.ts.map +1 -1
  200. package/dist/components/text-area/TextArea.js +57 -56
  201. package/dist/components/text-area/TextArea.js.map +1 -1
  202. package/dist/components/text-area/TextArea.module.css +1 -1
  203. package/dist/components/text-area/TextArea.module.scss.cjs +1 -1
  204. package/dist/components/text-area/TextArea.module.scss.js +12 -17
  205. package/dist/components/text-input/TextInput.cjs +1 -1
  206. package/dist/components/text-input/TextInput.cjs.map +1 -1
  207. package/dist/components/text-input/TextInput.d.ts.map +1 -1
  208. package/dist/components/text-input/TextInput.js +59 -58
  209. package/dist/components/text-input/TextInput.js.map +1 -1
  210. package/dist/components/text-input/TextInput.module.css +1 -1
  211. package/dist/components/text-input/TextInput.module.scss.cjs +1 -1
  212. package/dist/components/text-input/TextInput.module.scss.js +16 -24
  213. package/dist/components/thread-footer/ThreadFooter.cjs +1 -1
  214. package/dist/components/thread-footer/ThreadFooter.cjs.map +1 -1
  215. package/dist/components/thread-footer/ThreadFooter.d.ts +7 -8
  216. package/dist/components/thread-footer/ThreadFooter.d.ts.map +1 -1
  217. package/dist/components/thread-footer/ThreadFooter.js +59 -62
  218. package/dist/components/thread-footer/ThreadFooter.js.map +1 -1
  219. package/dist/components/thread-footer/ThreadFooter.module.css +1 -1
  220. package/dist/components/thread-footer/ThreadFooter.module.scss.cjs +1 -1
  221. package/dist/components/thread-footer/ThreadFooter.module.scss.js +17 -17
  222. package/dist/components/thread-footer/index.d.ts +7 -1
  223. package/dist/components/thread-footer/index.d.ts.map +1 -1
  224. package/dist/components/thread-list-item/ThreadListItem.cjs +1 -1
  225. package/dist/components/thread-list-item/ThreadListItem.cjs.map +1 -1
  226. package/dist/components/thread-list-item/ThreadListItem.d.ts +2 -2
  227. package/dist/components/thread-list-item/ThreadListItem.d.ts.map +1 -1
  228. package/dist/components/thread-list-item/ThreadListItem.js +102 -87
  229. package/dist/components/thread-list-item/ThreadListItem.js.map +1 -1
  230. package/dist/components/thread-list-item/ThreadListItem.module.css +1 -1
  231. package/dist/components/thread-list-item/ThreadListItem.module.scss.cjs +1 -1
  232. package/dist/components/thread-list-item/ThreadListItem.module.scss.js +26 -23
  233. package/dist/components/thread-list-item/ThreadListItem.module.scss.js.map +1 -1
  234. package/dist/components/thread-list-item/index.d.ts +1 -1
  235. package/dist/components/toast/Toast.module.css +1 -1
  236. package/dist/components/toast/Toast.module.scss.cjs +1 -1
  237. package/dist/components/toast/Toast.module.scss.js +6 -6
  238. package/dist/components/tour-point/TourPoint.module.css +1 -1
  239. package/dist/components/tour-point/TourPoint.module.scss.cjs +1 -1
  240. package/dist/components/tour-point/TourPoint.module.scss.js +28 -28
  241. package/dist/hooks/use-anchored-popup-portal.cjs +1 -1
  242. package/dist/hooks/use-anchored-popup-portal.cjs.map +1 -0
  243. package/dist/hooks/use-anchored-popup-portal.d.ts +1 -1
  244. package/dist/hooks/use-anchored-popup-portal.d.ts.map +1 -0
  245. package/dist/hooks/use-anchored-popup-portal.js +1 -1
  246. package/dist/hooks/use-anchored-popup-portal.js.map +1 -0
  247. package/dist/hooks/use-controllable.cjs +1 -1
  248. package/dist/hooks/use-controllable.cjs.map +1 -0
  249. package/dist/hooks/use-controllable.d.ts +1 -1
  250. package/dist/hooks/use-controllable.d.ts.map +1 -0
  251. package/dist/hooks/use-controllable.js +1 -1
  252. package/dist/hooks/{useControllable.cjs.map → use-controllable.js.map} +1 -1
  253. package/dist/hooks/use-exit-animation.cjs +1 -1
  254. package/dist/hooks/use-exit-animation.cjs.map +1 -0
  255. package/dist/hooks/use-exit-animation.d.ts +1 -1
  256. package/dist/hooks/use-exit-animation.d.ts.map +1 -0
  257. package/dist/hooks/use-exit-animation.js +1 -1
  258. package/dist/hooks/use-exit-animation.js.map +1 -0
  259. package/dist/hooks/use-outside-close.cjs +1 -1
  260. package/dist/hooks/use-outside-close.cjs.map +1 -0
  261. package/dist/hooks/use-outside-close.d.ts +1 -1
  262. package/dist/hooks/use-outside-close.d.ts.map +1 -0
  263. package/dist/hooks/use-outside-close.js +1 -1
  264. package/dist/hooks/use-outside-close.js.map +1 -0
  265. package/dist/hooks/use-popover-transition.cjs +1 -1
  266. package/dist/hooks/use-popover-transition.cjs.map +1 -0
  267. package/dist/hooks/use-popover-transition.d.ts +1 -1
  268. package/dist/hooks/use-popover-transition.d.ts.map +1 -0
  269. package/dist/hooks/use-popover-transition.js +1 -1
  270. package/dist/hooks/use-popover-transition.js.map +1 -0
  271. package/dist/index.cjs +1 -1
  272. package/dist/index.css +32 -30
  273. package/dist/index.d.ts +96 -96
  274. package/dist/index.js +156 -154
  275. package/dist/index.js.map +1 -1
  276. package/package.json +12 -12
  277. package/dist/hooks/useAnchoredPopupPortal.cjs.map +0 -1
  278. package/dist/hooks/useAnchoredPopupPortal.d.ts.map +0 -1
  279. package/dist/hooks/useAnchoredPopupPortal.js.map +0 -1
  280. package/dist/hooks/useControllable.d.ts.map +0 -1
  281. package/dist/hooks/useControllable.js.map +0 -1
  282. package/dist/hooks/useExitAnimation.cjs.map +0 -1
  283. package/dist/hooks/useExitAnimation.d.ts.map +0 -1
  284. package/dist/hooks/useExitAnimation.js.map +0 -1
  285. package/dist/hooks/useOutsideClose.cjs.map +0 -1
  286. package/dist/hooks/useOutsideClose.d.ts.map +0 -1
  287. package/dist/hooks/useOutsideClose.js.map +0 -1
  288. package/dist/hooks/usePopoverTransition.cjs.map +0 -1
  289. package/dist/hooks/usePopoverTransition.d.ts.map +0 -1
  290. package/dist/hooks/usePopoverTransition.js.map +0 -1
@@ -1 +1 @@
1
- ._textInput_14l3m_2{display:flex;flex-direction:column;width:100%}._textInput__wrapper_14l3m_7{position:relative;display:flex;flex-direction:column;min-height:0;background-color:var(--center-channel-bg);border-radius:var(--radius-s);box-shadow:inset 0 0 0 1px rgba(var(--center-channel-color-rgb),.16);transition:box-shadow var(--duration-quick) var(--ease-transition);cursor:text}._textInput_14l3m_2:has(._textInput__input_14l3m_18:not(:disabled)):hover:not(:focus-within) ._textInput__wrapper_14l3m_7{box-shadow:inset 0 0 0 1px rgba(var(--center-channel-color-rgb),.24)}._textInput_14l3m_2:has(._textInput__input_14l3m_18:focus-visible) ._textInput__wrapper_14l3m_7{box-shadow:inset 0 0 0 1px var(--button-bg),0 0 0 1px var(--button-bg)}._textInput_14l3m_2:has(._textInput__input_14l3m_18:disabled) ._textInput__wrapper_14l3m_7{background-color:var(--center-channel-bg);opacity:.56;cursor:not-allowed}._textInput__label_14l3m_29{position:absolute;left:var(--spacing-xs);top:50%;padding:0 var(--spacing-xxxs);transform:translateY(-50%);margin:0;font-family:Open Sans,sans-serif;font-size:var(--font-size-75);line-height:var(--line-height-25);font-weight:var(--font-weight-regular);color:rgba(var(--center-channel-color-rgb),.64);background-color:var(--center-channel-bg);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 24px);transition:transform var(--duration-quick) var(--ease-transition),font-size var(--duration-quick) var(--ease-transition),color var(--duration-quick) var(--ease-transition),top var(--duration-quick) var(--ease-transition),left var(--duration-quick) var(--ease-transition)}._textInput--label-floated_14l3m_49 ._textInput__label_14l3m_29{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px;color:rgba(var(--center-channel-color-rgb),.64)}._textInput__inner_14l3m_56{display:flex;align-items:center;flex:1;width:100%;min-width:0;box-sizing:border-box;margin:0;cursor:text}._textInput__input_14l3m_18{flex:1 1 0;width:100%;min-width:0;min-height:100%;margin:0;padding:0;border:0;background:transparent;font-family:Open Sans,sans-serif;font-size:var(--font-size-75);line-height:var(--line-height-25);font-weight:var(--font-weight-regular);color:var(--center-channel-color)}._textInput__input_14l3m_18:focus{outline:none}._textInput__input_14l3m_18::placeholder{color:rgba(var(--center-channel-color-rgb),.64)}._textInput__leadingIcon_14l3m_87,._textInput__trailingIcon_14l3m_87{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(var(--center-channel-color-rgb),.64)}._textInput__leadingIcon_14l3m_87{margin-right:var(--spacing-xs)}._textInput__trailingIcon_14l3m_87{margin-left:var(--spacing-xs)}._textInput__counter_14l3m_100{margin-top:var(--spacing-xxxs);font-family:Open Sans,sans-serif;font-size:var(--font-size-25);line-height:14px;color:rgba(var(--center-channel-color-rgb),.64)}._textInput--size-small_14l3m_107 ._textInput__wrapper_14l3m_7{min-height:32px}._textInput--size-small_14l3m_107 ._textInput__inner_14l3m_56{padding:var(--spacing-xs) var(--spacing-m)}._textInput--size-small_14l3m_107 ._textInput__input_14l3m_18{font-size:var(--font-size-75);line-height:var(--line-height-25)}._textInput--size-small_14l3m_107._textInput--label-floated_14l3m_49 ._textInput__label_14l3m_29{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px}._textInput--size-medium_14l3m_123 ._textInput__wrapper_14l3m_7{min-height:40px}._textInput--size-medium_14l3m_123 ._textInput__inner_14l3m_56{padding:var(--spacing-s) var(--spacing-l)}._textInput--size-medium_14l3m_123 ._textInput__input_14l3m_18{font-size:var(--font-size-100);line-height:var(--line-height-100)}._textInput--size-medium_14l3m_123 ._textInput__label_14l3m_29{font-size:var(--font-size-100);left:var(--spacing-m)}._textInput--size-medium_14l3m_123._textInput--label-floated_14l3m_49 ._textInput__label_14l3m_29{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px}._textInput--size-large_14l3m_143 ._textInput__wrapper_14l3m_7{min-height:48px}._textInput--size-large_14l3m_143 ._textInput__inner_14l3m_56{padding:var(--spacing-m) var(--spacing-l)}._textInput--size-large_14l3m_143 ._textInput__input_14l3m_18{font-size:var(--font-size-200);line-height:var(--line-height-200)}._textInput--size-large_14l3m_143 ._textInput__label_14l3m_29{font-size:var(--font-size-200);line-height:var(--line-height-200);left:var(--spacing-m)}._textInput--size-large_14l3m_143._textInput--label-floated_14l3m_49 ._textInput__label_14l3m_29{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px}._textInput--has-leading-icon_14l3m_164 ._textInput__label_14l3m_29{left:var(--spacing-xxxl)}._textInput--has-leading-icon_14l3m_164._textInput--label-floated_14l3m_49 ._textInput__label_14l3m_29{left:var(--spacing-xs)}._textInput--has-leading-icon_14l3m_164._textInput--size-medium_14l3m_123 ._textInput__label_14l3m_29,._textInput--has-leading-icon_14l3m_164._textInput--size-large_14l3m_143 ._textInput__label_14l3m_29{left:36px}._textInput--has-leading-icon_14l3m_164._textInput--size-medium_14l3m_123._textInput--label-floated_14l3m_49 ._textInput__label_14l3m_29,._textInput--has-leading-icon_14l3m_164._textInput--size-large_14l3m_143._textInput--label-floated_14l3m_49 ._textInput__label_14l3m_29{left:var(--spacing-m)}._textInput_14l3m_2:has(._textInput__input_14l3m_18:focus-visible) ._textInput__label_14l3m_29{color:var(--button-bg)}._textInput_14l3m_2:has(._textInput__label_14l3m_29):not(._textInput--label-floated_14l3m_49) ._textInput__input_14l3m_18::placeholder{color:transparent}._textInput--invalid_14l3m_182 ._textInput__wrapper_14l3m_7{box-shadow:inset 0 0 0 1px var(--error-text, var(--color-danger))}._textInput--invalid_14l3m_182:has(._textInput__input_14l3m_18:focus-visible) ._textInput__wrapper_14l3m_7{box-shadow:inset 0 0 0 1px var(--error-text, var(--color-danger)),0 0 0 1px var(--error-text, var(--color-danger))}._textInput--invalid_14l3m_182 ._textInput__label_14l3m_29{color:var(--error-text, var(--color-danger))}._textInput--invalid_14l3m_182:has(._textInput__input_14l3m_18:focus-visible) ._textInput__label_14l3m_29{color:var(--error-text, var(--color-danger))}
1
+ ._text-input_16ayx_2{display:flex;flex-direction:column;width:100%}._text-input__wrapper_16ayx_7{position:relative;display:flex;flex-direction:column;min-height:0;background-color:var(--center-channel-bg);border-radius:var(--radius-s);box-shadow:inset 0 0 0 1px rgba(var(--center-channel-color-rgb),.16);transition:box-shadow var(--duration-quick) var(--ease-transition);cursor:text}._text-input_16ayx_2:has(._text-input__input_16ayx_18:not(:disabled)):hover:not(:focus-within) ._text-input__wrapper_16ayx_7{box-shadow:inset 0 0 0 1px rgba(var(--center-channel-color-rgb),.24)}._text-input_16ayx_2:has(._text-input__input_16ayx_18:focus-visible) ._text-input__wrapper_16ayx_7{box-shadow:inset 0 0 0 1px var(--focus-ring-color),0 0 0 1px var(--focus-ring-color)}._text-input_16ayx_2:has(._text-input__input_16ayx_18:disabled) ._text-input__wrapper_16ayx_7{background-color:var(--center-channel-bg);opacity:.56;cursor:not-allowed}._text-input__label_16ayx_29{position:absolute;left:var(--spacing-xs);top:50%;padding:0 var(--spacing-xxxs);transform:translateY(-50%);margin:0;font-family:Open Sans,sans-serif;font-size:var(--font-size-75);line-height:var(--line-height-25);font-weight:var(--font-weight-regular);color:rgba(var(--center-channel-color-rgb),.64);background-color:var(--center-channel-bg);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 24px);transition:transform var(--duration-quick) var(--ease-transition),font-size var(--duration-quick) var(--ease-transition),color var(--duration-quick) var(--ease-transition),top var(--duration-quick) var(--ease-transition),left var(--duration-quick) var(--ease-transition)}._text-input--label-floated_16ayx_49 ._text-input__label_16ayx_29{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px;color:rgba(var(--center-channel-color-rgb),.64)}._text-input__inner_16ayx_56{display:flex;align-items:center;flex:1;width:100%;min-width:0;box-sizing:border-box;margin:0;cursor:text}._text-input__input_16ayx_18{flex:1 1 0;width:100%;min-width:0;min-height:100%;margin:0;padding:0;border:0;background:transparent;font-family:Open Sans,sans-serif;font-size:var(--font-size-75);line-height:var(--line-height-25);font-weight:var(--font-weight-regular);color:var(--center-channel-color)}._text-input__input_16ayx_18:focus{outline:none}._text-input__input_16ayx_18::placeholder{color:rgba(var(--center-channel-color-rgb),.64)}._text-input__leading-icon_16ayx_87,._text-input__trailing-icon_16ayx_87{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(var(--center-channel-color-rgb),.64)}._text-input__leading-icon_16ayx_87{margin-right:var(--spacing-xs)}._text-input__trailing-icon_16ayx_87{margin-left:var(--spacing-xs)}._text-input__counter_16ayx_100{margin-top:var(--spacing-xxxs);font-family:Open Sans,sans-serif;font-size:var(--font-size-25);line-height:14px;color:rgba(var(--center-channel-color-rgb),.64)}._text-input--size-small_16ayx_107 ._text-input__wrapper_16ayx_7{min-height:32px}._text-input--size-small_16ayx_107 ._text-input__inner_16ayx_56{padding:var(--spacing-xs) var(--spacing-m)}._text-input--size-small_16ayx_107 ._text-input__input_16ayx_18{font-size:var(--font-size-75);line-height:var(--line-height-25)}._text-input--size-small_16ayx_107._text-input--label-floated_16ayx_49 ._text-input__label_16ayx_29{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px}._text-input--size-medium_16ayx_123 ._text-input__wrapper_16ayx_7{min-height:40px}._text-input--size-medium_16ayx_123 ._text-input__inner_16ayx_56{padding:var(--spacing-s) var(--spacing-l)}._text-input--size-medium_16ayx_123 ._text-input__input_16ayx_18{font-size:var(--font-size-100);line-height:var(--line-height-100)}._text-input--size-medium_16ayx_123 ._text-input__label_16ayx_29{font-size:var(--font-size-100);left:var(--spacing-m)}._text-input--size-medium_16ayx_123._text-input--label-floated_16ayx_49 ._text-input__label_16ayx_29{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px}._text-input--size-large_16ayx_143 ._text-input__wrapper_16ayx_7{min-height:48px}._text-input--size-large_16ayx_143 ._text-input__inner_16ayx_56{padding:var(--spacing-m) var(--spacing-l)}._text-input--size-large_16ayx_143 ._text-input__input_16ayx_18{font-size:var(--font-size-200);line-height:var(--line-height-200)}._text-input--size-large_16ayx_143 ._text-input__label_16ayx_29{font-size:var(--font-size-200);line-height:var(--line-height-200);left:var(--spacing-m)}._text-input--size-large_16ayx_143._text-input--label-floated_16ayx_49 ._text-input__label_16ayx_29{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px}._text-input--has-leading-icon_16ayx_164 ._text-input__label_16ayx_29{left:var(--spacing-xxxl)}._text-input--has-leading-icon_16ayx_164._text-input--label-floated_16ayx_49 ._text-input__label_16ayx_29{left:var(--spacing-xs)}._text-input--has-leading-icon_16ayx_164._text-input--size-medium_16ayx_123 ._text-input__label_16ayx_29,._text-input--has-leading-icon_16ayx_164._text-input--size-large_16ayx_143 ._text-input__label_16ayx_29{left:36px}._text-input--has-leading-icon_16ayx_164._text-input--size-medium_16ayx_123._text-input--label-floated_16ayx_49 ._text-input__label_16ayx_29,._text-input--has-leading-icon_16ayx_164._text-input--size-large_16ayx_143._text-input--label-floated_16ayx_49 ._text-input__label_16ayx_29{left:var(--spacing-m)}._text-input_16ayx_2:has(._text-input__input_16ayx_18:focus-visible) ._text-input__label_16ayx_29{color:var(--button-bg)}._text-input_16ayx_2:has(._text-input__label_16ayx_29):not(._text-input--label-floated_16ayx_49) ._text-input__input_16ayx_18::placeholder{color:transparent}._text-input--invalid_16ayx_182 ._text-input__wrapper_16ayx_7{box-shadow:inset 0 0 0 1px var(--error-text, var(--color-danger))}._text-input--invalid_16ayx_182:has(._text-input__input_16ayx_18:focus-visible) ._text-input__wrapper_16ayx_7{box-shadow:inset 0 0 0 1px var(--error-text, var(--color-danger)),0 0 0 1px var(--error-text, var(--color-danger))}._text-input--invalid_16ayx_182 ._text-input__label_16ayx_29{color:var(--error-text, var(--color-danger))}._text-input--invalid_16ayx_182:has(._text-input__input_16ayx_18:focus-visible) ._text-input__label_16ayx_29{color:var(--error-text, var(--color-danger))}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./TextInput.module.css');const t="_textInput_14l3m_2",_="_textInput__wrapper_14l3m_7",e="_textInput__input_14l3m_18",n="_textInput__label_14l3m_29",u="_textInput__inner_14l3m_56",p="_textInput__leadingIcon_14l3m_87",l="_textInput__trailingIcon_14l3m_87",I="_textInput__counter_14l3m_100",x={textInput:t,textInput__wrapper:_,textInput__input:e,textInput__label:n,"textInput--label-floated":"_textInput--label-floated_14l3m_49",textInput__inner:u,textInput__leadingIcon:p,textInput__trailingIcon:l,textInput__counter:I,"textInput--size-small":"_textInput--size-small_14l3m_107","textInput--size-medium":"_textInput--size-medium_14l3m_123","textInput--size-large":"_textInput--size-large_14l3m_143","textInput--has-leading-icon":"_textInput--has-leading-icon_14l3m_164","textInput--invalid":"_textInput--invalid_14l3m_182"};exports.default=x;exports.textInput=t;exports.textInput__counter=I;exports.textInput__inner=u;exports.textInput__input=e;exports.textInput__label=n;exports.textInput__leadingIcon=p;exports.textInput__trailingIcon=l;exports.textInput__wrapper=_;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./TextInput.module.css');const t={"text-input":"_text-input_16ayx_2","text-input__wrapper":"_text-input__wrapper_16ayx_7","text-input__input":"_text-input__input_16ayx_18","text-input__label":"_text-input__label_16ayx_29","text-input--label-floated":"_text-input--label-floated_16ayx_49","text-input__inner":"_text-input__inner_16ayx_56","text-input__leading-icon":"_text-input__leading-icon_16ayx_87","text-input__trailing-icon":"_text-input__trailing-icon_16ayx_87","text-input__counter":"_text-input__counter_16ayx_100","text-input--size-small":"_text-input--size-small_16ayx_107","text-input--size-medium":"_text-input--size-medium_16ayx_123","text-input--size-large":"_text-input--size-large_16ayx_143","text-input--has-leading-icon":"_text-input--has-leading-icon_16ayx_164","text-input--invalid":"_text-input--invalid_16ayx_182"};exports.default=t;
2
2
  //# sourceMappingURL=TextInput.module.scss.cjs.map
@@ -1,28 +1,20 @@
1
- import './TextInput.module.css';const t = "_textInput_14l3m_2", _ = "_textInput__wrapper_14l3m_7", n = "_textInput__input_14l3m_18", e = "_textInput__label_14l3m_29", p = "_textInput__inner_14l3m_56", u = "_textInput__leadingIcon_14l3m_87", l = "_textInput__trailingIcon_14l3m_87", I = "_textInput__counter_14l3m_100", x = {
2
- textInput: t,
3
- textInput__wrapper: _,
4
- textInput__input: n,
5
- textInput__label: e,
6
- "textInput--label-floated": "_textInput--label-floated_14l3m_49",
7
- textInput__inner: p,
8
- textInput__leadingIcon: u,
9
- textInput__trailingIcon: l,
10
- textInput__counter: I,
11
- "textInput--size-small": "_textInput--size-small_14l3m_107",
12
- "textInput--size-medium": "_textInput--size-medium_14l3m_123",
13
- "textInput--size-large": "_textInput--size-large_14l3m_143",
14
- "textInput--has-leading-icon": "_textInput--has-leading-icon_14l3m_164",
15
- "textInput--invalid": "_textInput--invalid_14l3m_182"
1
+ import './TextInput.module.css';const t = {
2
+ "text-input": "_text-input_16ayx_2",
3
+ "text-input__wrapper": "_text-input__wrapper_16ayx_7",
4
+ "text-input__input": "_text-input__input_16ayx_18",
5
+ "text-input__label": "_text-input__label_16ayx_29",
6
+ "text-input--label-floated": "_text-input--label-floated_16ayx_49",
7
+ "text-input__inner": "_text-input__inner_16ayx_56",
8
+ "text-input__leading-icon": "_text-input__leading-icon_16ayx_87",
9
+ "text-input__trailing-icon": "_text-input__trailing-icon_16ayx_87",
10
+ "text-input__counter": "_text-input__counter_16ayx_100",
11
+ "text-input--size-small": "_text-input--size-small_16ayx_107",
12
+ "text-input--size-medium": "_text-input--size-medium_16ayx_123",
13
+ "text-input--size-large": "_text-input--size-large_16ayx_143",
14
+ "text-input--has-leading-icon": "_text-input--has-leading-icon_16ayx_164",
15
+ "text-input--invalid": "_text-input--invalid_16ayx_182"
16
16
  };
17
17
  export {
18
- x as default,
19
- t as textInput,
20
- I as textInput__counter,
21
- p as textInput__inner,
22
- n as textInput__input,
23
- e as textInput__label,
24
- u as textInput__leadingIcon,
25
- l as textInput__trailingIcon,
26
- _ as textInput__wrapper
18
+ t as default
27
19
  };
28
20
  //# sourceMappingURL=TextInput.module.scss.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),p=require("../user-avatar/UserAvatar.cjs"),c=require("../button/Button.cjs"),N=require("../icon/Icon.cjs"),__b=require("@mattermost/compass-icons/components/reply-outline.js"),b=__b?.default??__b,a=require("./ThreadFooter.module.scss.cjs");function g({replyCount:t=3,avatars:l=[],badge:n="none",following:r=!1,lastReplyTime:i,onReply:h,onFollowToggle:u,hovered:_=!1,className:m="",...j}){const x=[a.default["thread-footer"],m].filter(Boolean).join(" "),o=3,d=l.slice(0,o),f=l.length>o?l.length-o:0;return e.jsx("div",{className:x,...j,children:e.jsxs("div",{className:a.default["thread-footer__inner"],children:[e.jsxs("div",{className:a.default["thread-footer__avatars-group"],children:[n==="unread"&&e.jsx("span",{className:a.default["thread-footer__unread-dot"],"aria-label":"Unread replies"}),n==="mention"&&e.jsx("span",{className:a.default["thread-footer__mention-badge"],children:"@"}),d.length>0&&e.jsxs("div",{className:a.default["thread-footer__avatars"],children:[d.map((s,v)=>e.jsx(p.default,{src:s.src,alt:s.alt,size:"20",className:a.default["thread-footer__avatar"]},v)),f>0&&e.jsxs("span",{className:a.default["thread-footer__avatar-overflow"],children:["+",f]})]}),d.length===0&&e.jsxs("div",{className:a.default["thread-footer__avatars"],children:[[0,1,2].map(s=>e.jsx("span",{className:a.default["thread-footer__avatar-placeholder"]},s)),e.jsx("span",{className:a.default["thread-footer__avatar-overflow"],children:"+2"})]})]}),e.jsxs("div",{className:a.default["thread-footer__buttons"],children:[e.jsx(c.default,{emphasis:"quaternary",size:"x-small",className:[a.default["thread-footer__reply-btn"],_?a.default["thread-footer__reply-btn--hovered"]:""].filter(Boolean).join(" "),onClick:h,"aria-label":`${t} repl${t===1?"y":"ies"}`,leadingIcon:e.jsx(N.default,{size:"12",glyph:e.jsx(b,{})}),children:e.jsxs("span",{className:a.default["thread-footer__btn-label"],children:[t," ",t===1?"reply":"replies"]})}),e.jsx("div",{className:a.default["thread-footer__divider"],"aria-hidden":!0}),e.jsx(c.default,{emphasis:"quaternary",size:"x-small",className:[a.default["thread-footer__follow-btn"],r?a.default["thread-footer__follow-btn--following"]:""].filter(Boolean).join(" "),onClick:u,"aria-pressed":r,"aria-label":r?"Unfollow thread":"Follow thread",children:r?"Following":"Follow"}),r&&i&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:a.default["thread-footer__divider"],"aria-hidden":!0}),e.jsx("span",{className:a.default["thread-footer__last-reply"],children:i})]})]})]})})}exports.default=g;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),u=require("../button/Button.cjs"),j=require("../icon/Icon.cjs"),__x=require("@mattermost/compass-icons/components/reply-outline.js"),x=__x?.default??__x,p=require("../mention-badge/MentionBadge.cjs"),v=require("../user-avatar-group/UserAvatarGroup.cjs"),a=require("./ThreadFooter.module.scss.cjs");function N({replyCount:r=3,avatars:d=[],badge:s="none",mentionCount:l=1,following:t=!1,lastReplyTime:o,onReply:f,onFollowToggle:c,hovered:i=!1,className:h="",..._}){const m=[a.default["thread-footer"],t?a.default["thread-footer--following"]:"",i?a.default["thread-footer--hovered"]:"",h].filter(Boolean).join(" "),n=s==="mention"?`${l} mention${l===1?"":"s"}`:s==="unread"?"Unread replies":void 0;return e.jsx("div",{className:m,..._,children:e.jsxs("div",{className:a.default["thread-footer__inner"],children:[e.jsxs("div",{className:a.default["thread-footer__avatars-group"],children:[n&&e.jsx("span",{className:a.default["thread-footer__status-hint"],children:n}),s==="unread"&&e.jsx("span",{className:a.default["thread-footer__unread-dot"],"aria-hidden":!0}),s==="mention"&&e.jsx("span",{className:a.default["thread-footer__mention-badge"],"aria-hidden":!0,children:e.jsx(p.default,{count:l,location:"channel",size:"medium"})}),d.length>0&&e.jsx(v.default,{avatars:d,max:3,size:"20"})]}),e.jsxs("div",{className:a.default["thread-footer__buttons"],children:[e.jsx(u.default,{emphasis:"quaternary",size:"x-small",className:[a.default["thread-footer__reply-btn"],i?a.default["thread-footer__reply-btn--hovered"]:""].filter(Boolean).join(" "),onClick:f,"aria-label":`${r} repl${r===1?"y":"ies"}`,leadingIcon:e.jsx(j.default,{size:"12",glyph:e.jsx(x,{})}),children:e.jsxs("span",{className:a.default["thread-footer__btn-label"],children:[r," ",r===1?"reply":"replies"]})}),e.jsx("div",{className:a.default["thread-footer__divider"],"aria-hidden":!0}),e.jsx(u.default,{emphasis:"quaternary",size:"x-small",className:[a.default["thread-footer__follow-btn"],t?a.default["thread-footer__follow-btn--following"]:""].filter(Boolean).join(" "),onClick:c,"aria-pressed":t,"aria-label":t?"Unfollow thread":"Follow thread",children:t?"Following":"Follow"}),t&&o&&e.jsxs("div",{className:a.default["thread-footer__last-reply-group"],children:[e.jsx("div",{className:a.default["thread-footer__divider"],"aria-hidden":!0}),e.jsx("span",{className:a.default["thread-footer__last-reply"],children:o})]})]})]})})}exports.default=N;
2
2
  //# sourceMappingURL=ThreadFooter.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadFooter.cjs","sources":["../../../src/components/thread-footer/ThreadFooter.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport UserAvatar from '@/components/user-avatar/UserAvatar';\nimport Button from '@/components/button/Button';\nimport Icon from '@/components/icon/Icon';\nimport ReplyOutlineIcon from '@mattermost/compass-icons/components/reply-outline';\nimport styles from './ThreadFooter.module.scss';\n\nexport type ThreadFooterBadge = 'none' | 'unread' | 'mention';\n\nexport interface AvatarData {\n src: string;\n alt: string;\n}\n\nexport interface ThreadFooterProps extends HTMLAttributes<HTMLDivElement> {\n /** Reply count. Default: 3. */\n replyCount?: number;\n /** Participant avatars (first 3 shown, overflow as +N). */\n avatars?: AvatarData[];\n /** Badge variant. Default: None. */\n badge?: ThreadFooterBadge;\n /** Whether the current user is following the thread. Default: false. */\n following?: boolean;\n /** Last reply timestamp label. Shown when following. */\n lastReplyTime?: string;\n /** Called when Reply is clicked. */\n onReply?: () => void;\n /** Called when Follow/Following is clicked. */\n onFollowToggle?: () => void;\n /** Hover / active state for button highlight. Default: false. */\n hovered?: boolean;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * The Thread Footer is the reply summary bar at the bottom of a message. It shows\n * participants, reply count, follow state, and last-reply time — the information someone\n * needs to decide whether to dive in.\n */\nexport default function ThreadFooter({\n replyCount = 3,\n avatars = [],\n badge = 'none',\n following = false,\n lastReplyTime,\n onReply,\n onFollowToggle,\n hovered = false,\n className = '',\n ...rest\n}: ThreadFooterProps) {\n const rootClass = [styles['thread-footer'], className]\n .filter(Boolean)\n .join(' ');\n\n const MAX_VISIBLE = 3;\n const visibleAvatars = avatars.slice(0, MAX_VISIBLE);\n const overflowCount =\n avatars.length > MAX_VISIBLE ? avatars.length - MAX_VISIBLE : 0;\n\n return (\n <div className={rootClass} {...rest}>\n <div className={styles['thread-footer__inner']}>\n {/* Badge + Avatars */}\n <div className={styles['thread-footer__avatars-group']}>\n {badge === 'unread' && (\n <span\n className={styles['thread-footer__unread-dot']}\n aria-label=\"Unread replies\"\n />\n )}\n {badge === 'mention' && (\n <span className={styles['thread-footer__mention-badge']}>@</span>\n )}\n\n {/* Avatar stack */}\n {visibleAvatars.length > 0 && (\n <div className={styles['thread-footer__avatars']}>\n {visibleAvatars.map((av, i) => (\n <UserAvatar\n key={i}\n src={av.src}\n alt={av.alt}\n size=\"20\"\n className={styles['thread-footer__avatar']}\n />\n ))}\n {overflowCount > 0 && (\n <span className={styles['thread-footer__avatar-overflow']}>\n +{overflowCount}\n </span>\n )}\n </div>\n )}\n\n {/* Placeholder avatars when none provided */}\n {visibleAvatars.length === 0 && (\n <div className={styles['thread-footer__avatars']}>\n {[0, 1, 2].map((i) => (\n <span\n key={i}\n className={styles['thread-footer__avatar-placeholder']}\n />\n ))}\n <span className={styles['thread-footer__avatar-overflow']}>\n +2\n </span>\n </div>\n )}\n </div>\n\n {/* Buttons */}\n <div className={styles['thread-footer__buttons']}>\n {/* Reply button */}\n <Button\n emphasis=\"quaternary\"\n size=\"x-small\"\n className={[\n styles['thread-footer__reply-btn'],\n hovered ? styles['thread-footer__reply-btn--hovered'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onReply}\n aria-label={`${replyCount} repl${replyCount === 1 ? 'y' : 'ies'}`}\n leadingIcon={<Icon size=\"12\" glyph={<ReplyOutlineIcon />} />}\n >\n <span className={styles['thread-footer__btn-label']}>\n {replyCount} {replyCount === 1 ? 'reply' : 'replies'}\n </span>\n </Button>\n\n <div className={styles['thread-footer__divider']} aria-hidden />\n\n {/* Follow / Following button */}\n <Button\n emphasis=\"quaternary\"\n size=\"x-small\"\n className={[\n styles['thread-footer__follow-btn'],\n following ? styles['thread-footer__follow-btn--following'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onFollowToggle}\n aria-pressed={following}\n aria-label={following ? 'Unfollow thread' : 'Follow thread'}\n >\n {following ? 'Following' : 'Follow'}\n </Button>\n\n {/* Last reply time — visible when following */}\n {following && lastReplyTime && (\n <>\n <div className={styles['thread-footer__divider']} aria-hidden />\n <span className={styles['thread-footer__last-reply']}>\n {lastReplyTime}\n </span>\n </>\n )}\n </div>\n </div>\n </div>\n );\n}\n"],"names":["ThreadFooter","replyCount","avatars","badge","following","lastReplyTime","onReply","onFollowToggle","hovered","className","rest","rootClass","styles","MAX_VISIBLE","visibleAvatars","overflowCount","jsx","jsxs","av","i","UserAvatar","Button","Icon","ReplyOutlineIcon","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"ThreadFooter.cjs","sources":["../../../src/components/thread-footer/ThreadFooter.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport Button from '@/components/button/Button';\nimport Icon from '@/components/icon/Icon';\nimport ReplyOutlineIcon from '@mattermost/compass-icons/components/reply-outline';\nimport MentionBadge from '@/components/mention-badge/MentionBadge';\nimport UserAvatarGroup, {\n type UserAvatarGroupItem,\n} from '@/components/user-avatar-group/UserAvatarGroup';\nimport styles from './ThreadFooter.module.scss';\n\nexport type ThreadFooterBadge = 'none' | 'unread' | 'mention';\n\nexport interface ThreadFooterProps extends HTMLAttributes<HTMLDivElement> {\n /** Reply count. Default: 3. */\n replyCount?: number;\n /** Participant avatars. Rendered with User Avatar Group (first 3 shown, overflow as +N). */\n avatars?: UserAvatarGroupItem[];\n /** Badge variant. Default: None. */\n badge?: ThreadFooterBadge;\n /** Shown when `badge` is Mention. Default: 1. */\n mentionCount?: number;\n /** Whether the current user is following the thread. Default: false. */\n following?: boolean;\n /** Last reply timestamp label. Shown on row hover when following. */\n lastReplyTime?: string;\n /** Called when Reply is clicked. */\n onReply?: () => void;\n /** Called when Follow/Following is clicked. */\n onFollowToggle?: () => void;\n /** Hover / active state for button highlight. Default: false. */\n hovered?: boolean;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * The Thread Footer is the reply summary bar at the bottom of a message. It shows\n * participants, reply count, follow state, and last-reply time — the information someone\n * needs to decide whether to dive in.\n */\nexport default function ThreadFooter({\n replyCount = 3,\n avatars = [],\n badge = 'none',\n mentionCount = 1,\n following = false,\n lastReplyTime,\n onReply,\n onFollowToggle,\n hovered = false,\n className = '',\n ...rest\n}: ThreadFooterProps) {\n const rootClass = [\n styles['thread-footer'],\n following ? styles['thread-footer--following'] : '',\n hovered ? styles['thread-footer--hovered'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const badgeStatusHint =\n badge === 'mention'\n ? `${mentionCount} mention${mentionCount === 1 ? '' : 's'}`\n : badge === 'unread'\n ? 'Unread replies'\n : undefined;\n\n return (\n <div className={rootClass} {...rest}>\n <div className={styles['thread-footer__inner']}>\n <div className={styles['thread-footer__avatars-group']}>\n {badgeStatusHint && (\n <span className={styles['thread-footer__status-hint']}>\n {badgeStatusHint}\n </span>\n )}\n {badge === 'unread' && (\n <span\n className={styles['thread-footer__unread-dot']}\n aria-hidden\n />\n )}\n {badge === 'mention' && (\n <span\n className={styles['thread-footer__mention-badge']}\n aria-hidden\n >\n <MentionBadge\n count={mentionCount}\n location=\"channel\"\n size=\"medium\"\n />\n </span>\n )}\n\n {avatars.length > 0 && (\n <UserAvatarGroup avatars={avatars} max={3} size=\"20\" />\n )}\n </div>\n\n {/* Buttons */}\n <div className={styles['thread-footer__buttons']}>\n {/* Reply button */}\n <Button\n emphasis=\"quaternary\"\n size=\"x-small\"\n className={[\n styles['thread-footer__reply-btn'],\n hovered ? styles['thread-footer__reply-btn--hovered'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onReply}\n aria-label={`${replyCount} repl${replyCount === 1 ? 'y' : 'ies'}`}\n leadingIcon={<Icon size=\"12\" glyph={<ReplyOutlineIcon />} />}\n >\n <span className={styles['thread-footer__btn-label']}>\n {replyCount} {replyCount === 1 ? 'reply' : 'replies'}\n </span>\n </Button>\n\n <div className={styles['thread-footer__divider']} aria-hidden />\n\n {/* Follow / Following button */}\n <Button\n emphasis=\"quaternary\"\n size=\"x-small\"\n className={[\n styles['thread-footer__follow-btn'],\n following ? styles['thread-footer__follow-btn--following'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onFollowToggle}\n aria-pressed={following}\n aria-label={following ? 'Unfollow thread' : 'Follow thread'}\n >\n {following ? 'Following' : 'Follow'}\n </Button>\n\n {/* Last reply time — revealed on row hover when following */}\n {following && lastReplyTime && (\n <div className={styles['thread-footer__last-reply-group']}>\n <div className={styles['thread-footer__divider']} aria-hidden />\n <span className={styles['thread-footer__last-reply']}>\n {lastReplyTime}\n </span>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n"],"names":["ThreadFooter","replyCount","avatars","badge","mentionCount","following","lastReplyTime","onReply","onFollowToggle","hovered","className","rest","rootClass","styles","badgeStatusHint","jsx","jsxs","MentionBadge","UserAvatarGroup","Button","Icon","ReplyOutlineIcon"],"mappings":"+ZAwCA,SAAwBA,EAAa,CACnC,WAAAC,EAAa,EACb,QAAAC,EAAU,CAAA,EACV,MAAAC,EAAQ,OACR,aAAAC,EAAe,EACf,UAAAC,EAAY,GACZ,cAAAC,EACA,QAAAC,EACA,eAAAC,EACA,QAAAC,EAAU,GACV,UAAAC,EAAY,GACZ,GAAGC,CACL,EAAsB,CACpB,MAAMC,EAAY,CAChBC,EAAAA,QAAO,eAAe,EACtBR,EAAYQ,EAAAA,QAAO,0BAA0B,EAAI,GACjDJ,EAAUI,EAAAA,QAAO,wBAAwB,EAAI,GAC7CH,CAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EAELI,EACJX,IAAU,UACN,GAAGC,CAAY,WAAWA,IAAiB,EAAI,GAAK,GAAG,GACvDD,IAAU,SACR,iBACA,OAER,OACEY,EAAAA,IAAC,MAAA,CAAI,UAAWH,EAAY,GAAGD,EAC7B,SAAAK,EAAAA,KAAC,MAAA,CAAI,UAAWH,EAAAA,QAAO,sBAAsB,EAC3C,SAAA,CAAAG,EAAAA,KAAC,MAAA,CAAI,UAAWH,EAAAA,QAAO,8BAA8B,EAClD,SAAA,CAAAC,SACE,OAAA,CAAK,UAAWD,EAAAA,QAAO,4BAA4B,EACjD,SAAAC,EACH,EAEDX,IAAU,UACTY,EAAAA,IAAC,OAAA,CACC,UAAWF,EAAAA,QAAO,2BAA2B,EAC7C,cAAW,EAAA,CAAA,EAGdV,IAAU,WACTY,EAAAA,IAAC,OAAA,CACC,UAAWF,EAAAA,QAAO,8BAA8B,EAChD,cAAW,GAEX,SAAAE,EAAAA,IAACE,EAAAA,QAAA,CACC,MAAOb,EACP,SAAS,UACT,KAAK,QAAA,CAAA,CACP,CAAA,EAIHF,EAAQ,OAAS,GAChBa,EAAAA,IAACG,EAAAA,SAAgB,QAAAhB,EAAkB,IAAK,EAAG,KAAK,IAAA,CAAK,CAAA,EAEzD,EAGAc,EAAAA,KAAC,MAAA,CAAI,UAAWH,EAAAA,QAAO,wBAAwB,EAE7C,SAAA,CAAAE,EAAAA,IAACI,EAAAA,QAAA,CACC,SAAS,aACT,KAAK,UACL,UAAW,CACTN,EAAAA,QAAO,0BAA0B,EACjCJ,EAAUI,EAAAA,QAAO,mCAAmC,EAAI,EAAA,EAEvD,OAAO,OAAO,EACd,KAAK,GAAG,EACX,QAASN,EACT,aAAY,GAAGN,CAAU,QAAQA,IAAe,EAAI,IAAM,KAAK,GAC/D,kBAAcmB,UAAA,CAAK,KAAK,KAAK,MAAOL,MAACM,IAAiB,EAAI,EAE1D,SAAAL,EAAAA,KAAC,OAAA,CAAK,UAAWH,UAAO,0BAA0B,EAC/C,SAAA,CAAAZ,EAAW,IAAEA,IAAe,EAAI,QAAU,SAAA,CAAA,CAC7C,CAAA,CAAA,QAGD,MAAA,CAAI,UAAWY,EAAAA,QAAO,wBAAwB,EAAG,cAAW,GAAC,EAG9DE,EAAAA,IAACI,EAAAA,QAAA,CACC,SAAS,aACT,KAAK,UACL,UAAW,CACTN,EAAAA,QAAO,2BAA2B,EAClCR,EAAYQ,EAAAA,QAAO,sCAAsC,EAAI,EAAA,EAE5D,OAAO,OAAO,EACd,KAAK,GAAG,EACX,QAASL,EACT,eAAcH,EACd,aAAYA,EAAY,kBAAoB,gBAE3C,WAAY,YAAc,QAAA,CAAA,EAI5BA,GAAaC,GACZU,EAAAA,KAAC,OAAI,UAAWH,EAAAA,QAAO,iCAAiC,EACtD,SAAA,CAAAE,MAAC,OAAI,UAAWF,EAAAA,QAAO,wBAAwB,EAAG,cAAW,GAAC,QAC7D,OAAA,CAAK,UAAWA,EAAAA,QAAO,2BAA2B,EAChD,SAAAP,CAAA,CACH,CAAA,CAAA,CACF,CAAA,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,CACF,CAEJ"}
@@ -1,19 +1,18 @@
1
1
  import { HTMLAttributes } from 'react';
2
+ import { UserAvatarGroupItem } from '../user-avatar-group/UserAvatarGroup';
2
3
  export type ThreadFooterBadge = 'none' | 'unread' | 'mention';
3
- export interface AvatarData {
4
- src: string;
5
- alt: string;
6
- }
7
4
  export interface ThreadFooterProps extends HTMLAttributes<HTMLDivElement> {
8
5
  /** Reply count. Default: 3. */
9
6
  replyCount?: number;
10
- /** Participant avatars (first 3 shown, overflow as +N). */
11
- avatars?: AvatarData[];
7
+ /** Participant avatars. Rendered with User Avatar Group (first 3 shown, overflow as +N). */
8
+ avatars?: UserAvatarGroupItem[];
12
9
  /** Badge variant. Default: None. */
13
10
  badge?: ThreadFooterBadge;
11
+ /** Shown when `badge` is Mention. Default: 1. */
12
+ mentionCount?: number;
14
13
  /** Whether the current user is following the thread. Default: false. */
15
14
  following?: boolean;
16
- /** Last reply timestamp label. Shown when following. */
15
+ /** Last reply timestamp label. Shown on row hover when following. */
17
16
  lastReplyTime?: string;
18
17
  /** Called when Reply is clicked. */
19
18
  onReply?: () => void;
@@ -29,5 +28,5 @@ export interface ThreadFooterProps extends HTMLAttributes<HTMLDivElement> {
29
28
  * participants, reply count, follow state, and last-reply time — the information someone
30
29
  * needs to decide whether to dive in.
31
30
  */
32
- export default function ThreadFooter({ replyCount, avatars, badge, following, lastReplyTime, onReply, onFollowToggle, hovered, className, ...rest }: ThreadFooterProps): import("react/jsx-runtime").JSX.Element;
31
+ export default function ThreadFooter({ replyCount, avatars, badge, mentionCount, following, lastReplyTime, onReply, onFollowToggle, hovered, className, ...rest }: ThreadFooterProps): import("react/jsx-runtime").JSX.Element;
33
32
  //# sourceMappingURL=ThreadFooter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadFooter.d.ts","sourceRoot":"","sources":["../../../src/components/thread-footer/ThreadFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAO5C,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,oCAAoC;IACpC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,UAAc,EACd,OAAY,EACZ,KAAc,EACd,SAAiB,EACjB,aAAa,EACb,OAAO,EACP,cAAc,EACd,OAAe,EACf,SAAc,EACd,GAAG,IAAI,EACR,EAAE,iBAAiB,2CAkHnB"}
1
+ {"version":3,"file":"ThreadFooter.d.ts","sourceRoot":"","sources":["../../../src/components/thread-footer/ThreadFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAK5C,OAAwB,EACtB,KAAK,mBAAmB,EACzB,MAAM,8CAA8C,CAAC;AAGtD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4FAA4F;IAC5F,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC,oCAAoC;IACpC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,UAAc,EACd,OAAY,EACZ,KAAc,EACd,YAAgB,EAChB,SAAiB,EACjB,aAAa,EACb,OAAO,EACP,cAAc,EACd,OAAe,EACf,SAAc,EACd,GAAG,IAAI,EACR,EAAE,iBAAiB,2CAuGnB"}
@@ -1,103 +1,100 @@
1
- import { jsx as a, jsxs as r, Fragment as g } from "react/jsx-runtime";
2
- import w from "../user-avatar/UserAvatar.js";
3
- import _ from "../button/Button.js";
4
- import y from "../icon/Icon.js";
5
- import __j from "@mattermost/compass-icons/components/reply-outline.js";const j=__j&&__j.default?__j.default:__j;
1
+ import { jsx as r, jsxs as o } from "react/jsx-runtime";
2
+ import c from "../button/Button.js";
3
+ import N from "../icon/Icon.js";
4
+ import __v from "@mattermost/compass-icons/components/reply-outline.js";const v=__v&&__v.default?__v.default:__v;
5
+ import b from "../mention-badge/MentionBadge.js";
6
+ import y from "../user-avatar-group/UserAvatarGroup.js";
6
7
  import e from "./ThreadFooter.module.scss.js";
7
- function U({
8
+ function w({
8
9
  replyCount: t = 3,
9
- avatars: s = [],
10
- badge: d = "none",
11
- following: o = !1,
12
- lastReplyTime: h,
10
+ avatars: l = [],
11
+ badge: s = "none",
12
+ mentionCount: i = 1,
13
+ following: a = !1,
14
+ lastReplyTime: d,
13
15
  onReply: m,
14
16
  onFollowToggle: f,
15
- hovered: p = !1,
16
- className: v = "",
17
- ...N
17
+ hovered: n = !1,
18
+ className: _ = "",
19
+ ...p
18
20
  }) {
19
- const b = [e["thread-footer"], v].filter(Boolean).join(" "), n = 3, i = s.slice(0, n), c = s.length > n ? s.length - n : 0;
20
- return /* @__PURE__ */ a("div", { className: b, ...N, children: /* @__PURE__ */ r("div", { className: e["thread-footer__inner"], children: [
21
- /* @__PURE__ */ r("div", { className: e["thread-footer__avatars-group"], children: [
22
- d === "unread" && /* @__PURE__ */ a(
21
+ const u = [
22
+ e["thread-footer"],
23
+ a ? e["thread-footer--following"] : "",
24
+ n ? e["thread-footer--hovered"] : "",
25
+ _
26
+ ].filter(Boolean).join(" "), h = s === "mention" ? `${i} mention${i === 1 ? "" : "s"}` : s === "unread" ? "Unread replies" : void 0;
27
+ return /* @__PURE__ */ r("div", { className: u, ...p, children: /* @__PURE__ */ o("div", { className: e["thread-footer__inner"], children: [
28
+ /* @__PURE__ */ o("div", { className: e["thread-footer__avatars-group"], children: [
29
+ h && /* @__PURE__ */ r("span", { className: e["thread-footer__status-hint"], children: h }),
30
+ s === "unread" && /* @__PURE__ */ r(
23
31
  "span",
24
32
  {
25
33
  className: e["thread-footer__unread-dot"],
26
- "aria-label": "Unread replies"
34
+ "aria-hidden": !0
27
35
  }
28
36
  ),
29
- d === "mention" && /* @__PURE__ */ a("span", { className: e["thread-footer__mention-badge"], children: "@" }),
30
- i.length > 0 && /* @__PURE__ */ r("div", { className: e["thread-footer__avatars"], children: [
31
- i.map((l, u) => /* @__PURE__ */ a(
32
- w,
33
- {
34
- src: l.src,
35
- alt: l.alt,
36
- size: "20",
37
- className: e["thread-footer__avatar"]
38
- },
39
- u
40
- )),
41
- c > 0 && /* @__PURE__ */ r("span", { className: e["thread-footer__avatar-overflow"], children: [
42
- "+",
43
- c
44
- ] })
45
- ] }),
46
- i.length === 0 && /* @__PURE__ */ r("div", { className: e["thread-footer__avatars"], children: [
47
- [0, 1, 2].map((l) => /* @__PURE__ */ a(
48
- "span",
49
- {
50
- className: e["thread-footer__avatar-placeholder"]
51
- },
52
- l
53
- )),
54
- /* @__PURE__ */ a("span", { className: e["thread-footer__avatar-overflow"], children: "+2" })
55
- ] })
37
+ s === "mention" && /* @__PURE__ */ r(
38
+ "span",
39
+ {
40
+ className: e["thread-footer__mention-badge"],
41
+ "aria-hidden": !0,
42
+ children: /* @__PURE__ */ r(
43
+ b,
44
+ {
45
+ count: i,
46
+ location: "channel",
47
+ size: "medium"
48
+ }
49
+ )
50
+ }
51
+ ),
52
+ l.length > 0 && /* @__PURE__ */ r(y, { avatars: l, max: 3, size: "20" })
56
53
  ] }),
57
- /* @__PURE__ */ r("div", { className: e["thread-footer__buttons"], children: [
58
- /* @__PURE__ */ a(
59
- _,
54
+ /* @__PURE__ */ o("div", { className: e["thread-footer__buttons"], children: [
55
+ /* @__PURE__ */ r(
56
+ c,
60
57
  {
61
58
  emphasis: "quaternary",
62
59
  size: "x-small",
63
60
  className: [
64
61
  e["thread-footer__reply-btn"],
65
- p ? e["thread-footer__reply-btn--hovered"] : ""
62
+ n ? e["thread-footer__reply-btn--hovered"] : ""
66
63
  ].filter(Boolean).join(" "),
67
64
  onClick: m,
68
65
  "aria-label": `${t} repl${t === 1 ? "y" : "ies"}`,
69
- leadingIcon: /* @__PURE__ */ a(y, { size: "12", glyph: /* @__PURE__ */ a(j, {}) }),
70
- children: /* @__PURE__ */ r("span", { className: e["thread-footer__btn-label"], children: [
66
+ leadingIcon: /* @__PURE__ */ r(N, { size: "12", glyph: /* @__PURE__ */ r(v, {}) }),
67
+ children: /* @__PURE__ */ o("span", { className: e["thread-footer__btn-label"], children: [
71
68
  t,
72
69
  " ",
73
70
  t === 1 ? "reply" : "replies"
74
71
  ] })
75
72
  }
76
73
  ),
77
- /* @__PURE__ */ a("div", { className: e["thread-footer__divider"], "aria-hidden": !0 }),
78
- /* @__PURE__ */ a(
79
- _,
74
+ /* @__PURE__ */ r("div", { className: e["thread-footer__divider"], "aria-hidden": !0 }),
75
+ /* @__PURE__ */ r(
76
+ c,
80
77
  {
81
78
  emphasis: "quaternary",
82
79
  size: "x-small",
83
80
  className: [
84
81
  e["thread-footer__follow-btn"],
85
- o ? e["thread-footer__follow-btn--following"] : ""
82
+ a ? e["thread-footer__follow-btn--following"] : ""
86
83
  ].filter(Boolean).join(" "),
87
84
  onClick: f,
88
- "aria-pressed": o,
89
- "aria-label": o ? "Unfollow thread" : "Follow thread",
90
- children: o ? "Following" : "Follow"
85
+ "aria-pressed": a,
86
+ "aria-label": a ? "Unfollow thread" : "Follow thread",
87
+ children: a ? "Following" : "Follow"
91
88
  }
92
89
  ),
93
- o && h && /* @__PURE__ */ r(g, { children: [
94
- /* @__PURE__ */ a("div", { className: e["thread-footer__divider"], "aria-hidden": !0 }),
95
- /* @__PURE__ */ a("span", { className: e["thread-footer__last-reply"], children: h })
90
+ a && d && /* @__PURE__ */ o("div", { className: e["thread-footer__last-reply-group"], children: [
91
+ /* @__PURE__ */ r("div", { className: e["thread-footer__divider"], "aria-hidden": !0 }),
92
+ /* @__PURE__ */ r("span", { className: e["thread-footer__last-reply"], children: d })
96
93
  ] })
97
94
  ] })
98
95
  ] }) });
99
96
  }
100
97
  export {
101
- U as default
98
+ w as default
102
99
  };
103
100
  //# sourceMappingURL=ThreadFooter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadFooter.js","sources":["../../../src/components/thread-footer/ThreadFooter.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport UserAvatar from '@/components/user-avatar/UserAvatar';\nimport Button from '@/components/button/Button';\nimport Icon from '@/components/icon/Icon';\nimport ReplyOutlineIcon from '@mattermost/compass-icons/components/reply-outline';\nimport styles from './ThreadFooter.module.scss';\n\nexport type ThreadFooterBadge = 'none' | 'unread' | 'mention';\n\nexport interface AvatarData {\n src: string;\n alt: string;\n}\n\nexport interface ThreadFooterProps extends HTMLAttributes<HTMLDivElement> {\n /** Reply count. Default: 3. */\n replyCount?: number;\n /** Participant avatars (first 3 shown, overflow as +N). */\n avatars?: AvatarData[];\n /** Badge variant. Default: None. */\n badge?: ThreadFooterBadge;\n /** Whether the current user is following the thread. Default: false. */\n following?: boolean;\n /** Last reply timestamp label. Shown when following. */\n lastReplyTime?: string;\n /** Called when Reply is clicked. */\n onReply?: () => void;\n /** Called when Follow/Following is clicked. */\n onFollowToggle?: () => void;\n /** Hover / active state for button highlight. Default: false. */\n hovered?: boolean;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * The Thread Footer is the reply summary bar at the bottom of a message. It shows\n * participants, reply count, follow state, and last-reply time — the information someone\n * needs to decide whether to dive in.\n */\nexport default function ThreadFooter({\n replyCount = 3,\n avatars = [],\n badge = 'none',\n following = false,\n lastReplyTime,\n onReply,\n onFollowToggle,\n hovered = false,\n className = '',\n ...rest\n}: ThreadFooterProps) {\n const rootClass = [styles['thread-footer'], className]\n .filter(Boolean)\n .join(' ');\n\n const MAX_VISIBLE = 3;\n const visibleAvatars = avatars.slice(0, MAX_VISIBLE);\n const overflowCount =\n avatars.length > MAX_VISIBLE ? avatars.length - MAX_VISIBLE : 0;\n\n return (\n <div className={rootClass} {...rest}>\n <div className={styles['thread-footer__inner']}>\n {/* Badge + Avatars */}\n <div className={styles['thread-footer__avatars-group']}>\n {badge === 'unread' && (\n <span\n className={styles['thread-footer__unread-dot']}\n aria-label=\"Unread replies\"\n />\n )}\n {badge === 'mention' && (\n <span className={styles['thread-footer__mention-badge']}>@</span>\n )}\n\n {/* Avatar stack */}\n {visibleAvatars.length > 0 && (\n <div className={styles['thread-footer__avatars']}>\n {visibleAvatars.map((av, i) => (\n <UserAvatar\n key={i}\n src={av.src}\n alt={av.alt}\n size=\"20\"\n className={styles['thread-footer__avatar']}\n />\n ))}\n {overflowCount > 0 && (\n <span className={styles['thread-footer__avatar-overflow']}>\n +{overflowCount}\n </span>\n )}\n </div>\n )}\n\n {/* Placeholder avatars when none provided */}\n {visibleAvatars.length === 0 && (\n <div className={styles['thread-footer__avatars']}>\n {[0, 1, 2].map((i) => (\n <span\n key={i}\n className={styles['thread-footer__avatar-placeholder']}\n />\n ))}\n <span className={styles['thread-footer__avatar-overflow']}>\n +2\n </span>\n </div>\n )}\n </div>\n\n {/* Buttons */}\n <div className={styles['thread-footer__buttons']}>\n {/* Reply button */}\n <Button\n emphasis=\"quaternary\"\n size=\"x-small\"\n className={[\n styles['thread-footer__reply-btn'],\n hovered ? styles['thread-footer__reply-btn--hovered'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onReply}\n aria-label={`${replyCount} repl${replyCount === 1 ? 'y' : 'ies'}`}\n leadingIcon={<Icon size=\"12\" glyph={<ReplyOutlineIcon />} />}\n >\n <span className={styles['thread-footer__btn-label']}>\n {replyCount} {replyCount === 1 ? 'reply' : 'replies'}\n </span>\n </Button>\n\n <div className={styles['thread-footer__divider']} aria-hidden />\n\n {/* Follow / Following button */}\n <Button\n emphasis=\"quaternary\"\n size=\"x-small\"\n className={[\n styles['thread-footer__follow-btn'],\n following ? styles['thread-footer__follow-btn--following'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onFollowToggle}\n aria-pressed={following}\n aria-label={following ? 'Unfollow thread' : 'Follow thread'}\n >\n {following ? 'Following' : 'Follow'}\n </Button>\n\n {/* Last reply time — visible when following */}\n {following && lastReplyTime && (\n <>\n <div className={styles['thread-footer__divider']} aria-hidden />\n <span className={styles['thread-footer__last-reply']}>\n {lastReplyTime}\n </span>\n </>\n )}\n </div>\n </div>\n </div>\n );\n}\n"],"names":["ThreadFooter","replyCount","avatars","badge","following","lastReplyTime","onReply","onFollowToggle","hovered","className","rest","rootClass","styles","MAX_VISIBLE","visibleAvatars","overflowCount","jsx","jsxs","av","i","UserAvatar","Button","Icon","ReplyOutlineIcon","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"ThreadFooter.js","sources":["../../../src/components/thread-footer/ThreadFooter.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport Button from '@/components/button/Button';\nimport Icon from '@/components/icon/Icon';\nimport ReplyOutlineIcon from '@mattermost/compass-icons/components/reply-outline';\nimport MentionBadge from '@/components/mention-badge/MentionBadge';\nimport UserAvatarGroup, {\n type UserAvatarGroupItem,\n} from '@/components/user-avatar-group/UserAvatarGroup';\nimport styles from './ThreadFooter.module.scss';\n\nexport type ThreadFooterBadge = 'none' | 'unread' | 'mention';\n\nexport interface ThreadFooterProps extends HTMLAttributes<HTMLDivElement> {\n /** Reply count. Default: 3. */\n replyCount?: number;\n /** Participant avatars. Rendered with User Avatar Group (first 3 shown, overflow as +N). */\n avatars?: UserAvatarGroupItem[];\n /** Badge variant. Default: None. */\n badge?: ThreadFooterBadge;\n /** Shown when `badge` is Mention. Default: 1. */\n mentionCount?: number;\n /** Whether the current user is following the thread. Default: false. */\n following?: boolean;\n /** Last reply timestamp label. Shown on row hover when following. */\n lastReplyTime?: string;\n /** Called when Reply is clicked. */\n onReply?: () => void;\n /** Called when Follow/Following is clicked. */\n onFollowToggle?: () => void;\n /** Hover / active state for button highlight. Default: false. */\n hovered?: boolean;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * The Thread Footer is the reply summary bar at the bottom of a message. It shows\n * participants, reply count, follow state, and last-reply time — the information someone\n * needs to decide whether to dive in.\n */\nexport default function ThreadFooter({\n replyCount = 3,\n avatars = [],\n badge = 'none',\n mentionCount = 1,\n following = false,\n lastReplyTime,\n onReply,\n onFollowToggle,\n hovered = false,\n className = '',\n ...rest\n}: ThreadFooterProps) {\n const rootClass = [\n styles['thread-footer'],\n following ? styles['thread-footer--following'] : '',\n hovered ? styles['thread-footer--hovered'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const badgeStatusHint =\n badge === 'mention'\n ? `${mentionCount} mention${mentionCount === 1 ? '' : 's'}`\n : badge === 'unread'\n ? 'Unread replies'\n : undefined;\n\n return (\n <div className={rootClass} {...rest}>\n <div className={styles['thread-footer__inner']}>\n <div className={styles['thread-footer__avatars-group']}>\n {badgeStatusHint && (\n <span className={styles['thread-footer__status-hint']}>\n {badgeStatusHint}\n </span>\n )}\n {badge === 'unread' && (\n <span\n className={styles['thread-footer__unread-dot']}\n aria-hidden\n />\n )}\n {badge === 'mention' && (\n <span\n className={styles['thread-footer__mention-badge']}\n aria-hidden\n >\n <MentionBadge\n count={mentionCount}\n location=\"channel\"\n size=\"medium\"\n />\n </span>\n )}\n\n {avatars.length > 0 && (\n <UserAvatarGroup avatars={avatars} max={3} size=\"20\" />\n )}\n </div>\n\n {/* Buttons */}\n <div className={styles['thread-footer__buttons']}>\n {/* Reply button */}\n <Button\n emphasis=\"quaternary\"\n size=\"x-small\"\n className={[\n styles['thread-footer__reply-btn'],\n hovered ? styles['thread-footer__reply-btn--hovered'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onReply}\n aria-label={`${replyCount} repl${replyCount === 1 ? 'y' : 'ies'}`}\n leadingIcon={<Icon size=\"12\" glyph={<ReplyOutlineIcon />} />}\n >\n <span className={styles['thread-footer__btn-label']}>\n {replyCount} {replyCount === 1 ? 'reply' : 'replies'}\n </span>\n </Button>\n\n <div className={styles['thread-footer__divider']} aria-hidden />\n\n {/* Follow / Following button */}\n <Button\n emphasis=\"quaternary\"\n size=\"x-small\"\n className={[\n styles['thread-footer__follow-btn'],\n following ? styles['thread-footer__follow-btn--following'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onFollowToggle}\n aria-pressed={following}\n aria-label={following ? 'Unfollow thread' : 'Follow thread'}\n >\n {following ? 'Following' : 'Follow'}\n </Button>\n\n {/* Last reply time — revealed on row hover when following */}\n {following && lastReplyTime && (\n <div className={styles['thread-footer__last-reply-group']}>\n <div className={styles['thread-footer__divider']} aria-hidden />\n <span className={styles['thread-footer__last-reply']}>\n {lastReplyTime}\n </span>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n"],"names":["ThreadFooter","replyCount","avatars","badge","mentionCount","following","lastReplyTime","onReply","onFollowToggle","hovered","className","rest","rootClass","styles","badgeStatusHint","jsx","jsxs","MentionBadge","UserAvatarGroup","Button","Icon","ReplyOutlineIcon"],"mappings":"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"}
@@ -1 +1 @@
1
- ._thread-footer_v5ros_2{display:flex;flex-direction:column;align-items:flex-start;padding:var(--spacing-s) var(--spacing-l)}._thread-footer__inner_v5ros_8{display:inline-flex;align-items:center;padding:0 var(--spacing-s);border-radius:var(--radius-s)}._thread-footer__avatars-group_v5ros_14{display:inline-flex;align-items:center;gap:var(--spacing-xxxs);padding-right:var(--spacing-xxxs)}._thread-footer__unread-dot_v5ros_20{display:block;width:8px;height:8px;border-radius:var(--radius-full);background-color:var(--link-color);flex-shrink:0}._thread-footer__mention-badge_v5ros_28{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 var(--spacing-xxxs);border-radius:var(--radius-s);background-color:var(--mention-bg);color:var(--mention-color);font-family:var(--font-family-body);font-size:var(--font-size-25);font-weight:var(--font-weight-semibold);line-height:1}._thread-footer__avatars_v5ros_14{display:inline-flex;align-items:center;padding-right:3px}._thread-footer__avatar_v5ros_14{border:1px solid var(--center-channel-bg);border-radius:var(--radius-full);margin-right:-3px;flex-shrink:0}._thread-footer__avatar-placeholder_v5ros_54{display:block;width:24px;height:24px;border-radius:var(--radius-full);border:1px solid var(--center-channel-bg);background-color:rgba(var(--center-channel-color-rgb),.16);margin-right:-3px;flex-shrink:0}._thread-footer__avatar-overflow_v5ros_64{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full);border:1px solid var(--center-channel-bg);background-color:var(--center-channel-bg);color:rgba(var(--center-channel-color-rgb),.56);font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);margin-right:-3px;flex-shrink:0}._thread-footer__buttons_v5ros_80{display:inline-flex;align-items:center;gap:var(--spacing-xxxxs)}._thread-footer__reply-btn_v5ros_85{display:inline-flex;align-items:center;gap:var(--spacing-xxxs);padding:4.5px var(--spacing-s);border:none;border-radius:var(--radius-s);background-color:transparent;color:rgba(var(--center-channel-color-rgb),.75);cursor:pointer;transition:background-color var(--duration-quick) var(--ease-transition)}._thread-footer__reply-btn_v5ros_85:hover,._thread-footer__reply-btn--hovered_v5ros_97{background-color:rgba(var(--center-channel-color-rgb),.08)}._thread-footer__reply-btn_v5ros_85:focus-visible{outline:2px solid var(--link-color);outline-offset:1px}._thread-footer__btn-icon_v5ros_104{display:inline-flex;align-items:center;flex-shrink:0;color:rgba(var(--center-channel-color-rgb),.75)}._thread-footer__btn-label_v5ros_110{font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);line-height:15px;white-space:nowrap}._thread-footer__divider_v5ros_117{width:1px;height:16px;background-color:rgba(var(--center-channel-color-rgb),.16);flex-shrink:0}._thread-footer__follow-btn_v5ros_123{display:inline-flex;align-items:center;padding:4.5px var(--spacing-s);border:none;border-radius:var(--radius-s);background-color:transparent;color:rgba(var(--center-channel-color-rgb),.75);font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);line-height:15px;white-space:nowrap;cursor:pointer;transition:background-color var(--duration-quick) var(--ease-transition),color var(--duration-quick) var(--ease-transition)}._thread-footer__follow-btn_v5ros_123:hover{background-color:rgba(var(--center-channel-color-rgb),.08)}._thread-footer__follow-btn_v5ros_123:focus-visible{outline:2px solid var(--link-color);outline-offset:1px}._thread-footer__follow-btn--following_v5ros_146{color:var(--link-color);background-color:rgba(var(--link-color-rgb),.08)}._thread-footer__follow-btn--following_v5ros_146:hover{background-color:rgba(var(--link-color-rgb),.12)}._thread-footer__last-reply_v5ros_153{padding:4.5px var(--spacing-s);color:rgba(var(--center-channel-color-rgb),.64);font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-regular);line-height:15px;white-space:nowrap}
1
+ ._thread-footer_953ir_2{--thread-footer-focus-ring-color: var(--focus-ring-color);display:flex;flex-direction:column;align-items:flex-start;padding:var(--spacing-s) var(--spacing-l)}._thread-footer__inner_953ir_9{display:inline-flex;align-items:center;padding:0 var(--spacing-s);border-radius:var(--radius-s)}._thread-footer__avatars-group_953ir_15{display:inline-flex;align-items:center;gap:var(--spacing-xxxs);padding-right:var(--spacing-xxxs)}._thread-footer__status-hint_953ir_21{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}._thread-footer__unread-dot_953ir_32{display:block;width:8px;height:8px;border-radius:var(--radius-full);background-color:var(--link-color);flex-shrink:0}._thread-footer__mention-badge_953ir_40{display:inline-flex;flex-shrink:0}._thread-footer__buttons_953ir_44{display:inline-flex;align-items:center;gap:0}._thread-footer__reply-btn_953ir_49,._thread-footer__follow-btn_953ir_49{--focus-ring-color: var(--thread-footer-focus-ring-color)}._thread-footer_953ir_2 ._thread-footer__reply-btn_953ir_49[class*=button--emphasis-quaternary],._thread-footer_953ir_2 ._thread-footer__follow-btn_953ir_49:not(._thread-footer__follow-btn--following_953ir_52)[class*=button--emphasis-quaternary]{color:rgba(var(--center-channel-color-rgb),.75)}._thread-footer_953ir_2 ._thread-footer__reply-btn_953ir_49[class*=button--emphasis-quaternary]:hover:not(:disabled),._thread-footer_953ir_2 ._thread-footer__follow-btn_953ir_49:not(._thread-footer__follow-btn--following_953ir_52)[class*=button--emphasis-quaternary]:hover:not(:disabled){background-color:rgba(var(--center-channel-color-rgb),.08)}._thread-footer_953ir_2 ._thread-footer__reply-btn--hovered_953ir_58[class*=button--emphasis-quaternary]{background-color:rgba(var(--center-channel-color-rgb),.08)}._thread-footer_953ir_2 ._thread-footer__follow-btn--following_953ir_52[class*=button--emphasis-quaternary]{color:var(--link-color);background-color:rgba(var(--link-color-rgb),.08)}._thread-footer_953ir_2 ._thread-footer__follow-btn--following_953ir_52[class*=button--emphasis-quaternary]:hover:not(:disabled){background-color:rgba(var(--link-color-rgb),.12)}._thread-footer__btn-label_953ir_68{font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);line-height:15px;white-space:nowrap}._thread-footer__divider_953ir_75{box-sizing:border-box;width:1px;min-width:1px;max-width:1px;height:16px;padding:0;margin:0;border:0;background-color:rgba(var(--center-channel-color-rgb),.16);flex-shrink:0;transition:opacity var(--duration-quick) var(--ease-transition)}._thread-footer__buttons_953ir_44:has(._thread-footer__follow-btn--following_953ir_52)>._thread-footer__divider_953ir_75:first-of-type,._thread-footer__buttons_953ir_44:has(._thread-footer__follow-btn--following_953ir_52)>._thread-footer__last-reply-group_953ir_88>._thread-footer__divider_953ir_75{opacity:0}._thread-footer__buttons_953ir_44:not(:has(._thread-footer__follow-btn--following_953ir_52)):has(._thread-footer__reply-btn_953ir_49:hover,._thread-footer__reply-btn--hovered_953ir_58,._thread-footer__reply-btn_953ir_49:focus-visible,._thread-footer__follow-btn_953ir_49:hover,._thread-footer__follow-btn_953ir_49:focus-visible)>._thread-footer__divider_953ir_75:first-of-type{opacity:0}._thread-footer__last-reply-group_953ir_88{display:inline-flex;align-items:center;gap:0;overflow:hidden;max-width:0;opacity:0;transition:max-width var(--duration-quick) var(--ease-transition),opacity var(--duration-quick) var(--ease-transition)}._thread-footer--following_953ir_107:hover ._thread-footer__last-reply-group_953ir_88,._thread-footer--following_953ir_107:focus-within ._thread-footer__last-reply-group_953ir_88,._thread-footer--following_953ir_107._thread-footer--hovered_953ir_107 ._thread-footer__last-reply-group_953ir_88{max-width:10rem;opacity:1}._thread-footer__last-reply_953ir_88{padding:4.5px var(--spacing-s);color:rgba(var(--center-channel-color-rgb),.64);font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-regular);line-height:15px;white-space:nowrap}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ThreadFooter.module.css');const r={"thread-footer":"_thread-footer_v5ros_2","thread-footer__inner":"_thread-footer__inner_v5ros_8","thread-footer__avatars-group":"_thread-footer__avatars-group_v5ros_14","thread-footer__unread-dot":"_thread-footer__unread-dot_v5ros_20","thread-footer__mention-badge":"_thread-footer__mention-badge_v5ros_28","thread-footer__avatars":"_thread-footer__avatars_v5ros_14","thread-footer__avatar":"_thread-footer__avatar_v5ros_14","thread-footer__avatar-placeholder":"_thread-footer__avatar-placeholder_v5ros_54","thread-footer__avatar-overflow":"_thread-footer__avatar-overflow_v5ros_64","thread-footer__buttons":"_thread-footer__buttons_v5ros_80","thread-footer__reply-btn":"_thread-footer__reply-btn_v5ros_85","thread-footer__reply-btn--hovered":"_thread-footer__reply-btn--hovered_v5ros_97","thread-footer__btn-label":"_thread-footer__btn-label_v5ros_110","thread-footer__divider":"_thread-footer__divider_v5ros_117","thread-footer__follow-btn":"_thread-footer__follow-btn_v5ros_123","thread-footer__follow-btn--following":"_thread-footer__follow-btn--following_v5ros_146","thread-footer__last-reply":"_thread-footer__last-reply_v5ros_153"};exports.default=r;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ThreadFooter.module.css');const r={"thread-footer":"_thread-footer_953ir_2","thread-footer__inner":"_thread-footer__inner_953ir_9","thread-footer__avatars-group":"_thread-footer__avatars-group_953ir_15","thread-footer__status-hint":"_thread-footer__status-hint_953ir_21","thread-footer__unread-dot":"_thread-footer__unread-dot_953ir_32","thread-footer__mention-badge":"_thread-footer__mention-badge_953ir_40","thread-footer__buttons":"_thread-footer__buttons_953ir_44","thread-footer__reply-btn":"_thread-footer__reply-btn_953ir_49","thread-footer__follow-btn":"_thread-footer__follow-btn_953ir_49","thread-footer__follow-btn--following":"_thread-footer__follow-btn--following_953ir_52","thread-footer__reply-btn--hovered":"_thread-footer__reply-btn--hovered_953ir_58","thread-footer__btn-label":"_thread-footer__btn-label_953ir_68","thread-footer__divider":"_thread-footer__divider_953ir_75","thread-footer__last-reply-group":"_thread-footer__last-reply-group_953ir_88","thread-footer--following":"_thread-footer--following_953ir_107","thread-footer--hovered":"_thread-footer--hovered_953ir_107","thread-footer__last-reply":"_thread-footer__last-reply_953ir_88"};exports.default=r;
2
2
  //# sourceMappingURL=ThreadFooter.module.scss.cjs.map
@@ -1,21 +1,21 @@
1
1
  import './ThreadFooter.module.css';const r = {
2
- "thread-footer": "_thread-footer_v5ros_2",
3
- "thread-footer__inner": "_thread-footer__inner_v5ros_8",
4
- "thread-footer__avatars-group": "_thread-footer__avatars-group_v5ros_14",
5
- "thread-footer__unread-dot": "_thread-footer__unread-dot_v5ros_20",
6
- "thread-footer__mention-badge": "_thread-footer__mention-badge_v5ros_28",
7
- "thread-footer__avatars": "_thread-footer__avatars_v5ros_14",
8
- "thread-footer__avatar": "_thread-footer__avatar_v5ros_14",
9
- "thread-footer__avatar-placeholder": "_thread-footer__avatar-placeholder_v5ros_54",
10
- "thread-footer__avatar-overflow": "_thread-footer__avatar-overflow_v5ros_64",
11
- "thread-footer__buttons": "_thread-footer__buttons_v5ros_80",
12
- "thread-footer__reply-btn": "_thread-footer__reply-btn_v5ros_85",
13
- "thread-footer__reply-btn--hovered": "_thread-footer__reply-btn--hovered_v5ros_97",
14
- "thread-footer__btn-label": "_thread-footer__btn-label_v5ros_110",
15
- "thread-footer__divider": "_thread-footer__divider_v5ros_117",
16
- "thread-footer__follow-btn": "_thread-footer__follow-btn_v5ros_123",
17
- "thread-footer__follow-btn--following": "_thread-footer__follow-btn--following_v5ros_146",
18
- "thread-footer__last-reply": "_thread-footer__last-reply_v5ros_153"
2
+ "thread-footer": "_thread-footer_953ir_2",
3
+ "thread-footer__inner": "_thread-footer__inner_953ir_9",
4
+ "thread-footer__avatars-group": "_thread-footer__avatars-group_953ir_15",
5
+ "thread-footer__status-hint": "_thread-footer__status-hint_953ir_21",
6
+ "thread-footer__unread-dot": "_thread-footer__unread-dot_953ir_32",
7
+ "thread-footer__mention-badge": "_thread-footer__mention-badge_953ir_40",
8
+ "thread-footer__buttons": "_thread-footer__buttons_953ir_44",
9
+ "thread-footer__reply-btn": "_thread-footer__reply-btn_953ir_49",
10
+ "thread-footer__follow-btn": "_thread-footer__follow-btn_953ir_49",
11
+ "thread-footer__follow-btn--following": "_thread-footer__follow-btn--following_953ir_52",
12
+ "thread-footer__reply-btn--hovered": "_thread-footer__reply-btn--hovered_953ir_58",
13
+ "thread-footer__btn-label": "_thread-footer__btn-label_953ir_68",
14
+ "thread-footer__divider": "_thread-footer__divider_953ir_75",
15
+ "thread-footer__last-reply-group": "_thread-footer__last-reply-group_953ir_88",
16
+ "thread-footer--following": "_thread-footer--following_953ir_107",
17
+ "thread-footer--hovered": "_thread-footer--hovered_953ir_107",
18
+ "thread-footer__last-reply": "_thread-footer__last-reply_953ir_88"
19
19
  };
20
20
  export {
21
21
  r as default
@@ -1,3 +1,9 @@
1
1
  export { default as ThreadFooter } from './ThreadFooter';
2
- export type { ThreadFooterProps, AvatarData } from './ThreadFooter';
2
+ export type { ThreadFooterProps } from './ThreadFooter';
3
+ export type { UserAvatarGroupItem } from '../user-avatar-group/UserAvatarGroup';
4
+ /** @deprecated Use `UserAvatarGroupItem` (`key`, `name`, optional `src`). */
5
+ export interface AvatarData {
6
+ src: string;
7
+ alt: string;
8
+ }
3
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/thread-footer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/thread-footer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb"}
@@ -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/dots-horizontal.js"),g=__g?.default??__g,w=require("react"),b=require("../icon/Icon.cjs"),q=require("../icon-button/IconButton.cjs"),I=require("../tag/Tag.cjs"),T=require("../mention-badge/MentionBadge.cjs"),A=require("../unread-badge/UnreadBadge.cjs"),R=require("../user-avatar-group/UserAvatarGroup.cjs"),t=require("./ThreadListItem.module.scss.cjs"),B=[{key:"leonard",name:"Leonard Riley"},{key:"aiko",name:"Aiko Tan"},{key:"arjun",name:"Arjun Patel"},{key:"marco",name:"Marco Rinaldi"},{key:"sofia",name:"Sofia Bauer"}];function D({active:r=!1,badge:i="none",mentionCount:m=1,authorName:h="Martin Kraft",channelLabel:_="ENTERPRISE TEAM",previewText:f="Do we have a guideline for what minimum width we should support in the system console? I know that…",timestamp:p="5 mins ago",replyCount:d=3,participants:n,threadTitle:o,className:j="",onClick:a,onMenuClick:l}){const c=n===void 0?B:n,x=c.length>0,u=!r&&(i==="unread"||i==="mention"),N=d===1?"1 reply":`${d} replies`,v=[t.default["thread-list-item"],r?t.default["thread-list-item--active"]:"",j].filter(Boolean).join(" "),y=w.useCallback(s=>{a&&(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),a())},[a]);return e.jsxs("div",{className:v,onClick:a,role:a?"button":void 0,tabIndex:a?0:void 0,onKeyDown:a?y:void 0,children:[e.jsx("div",{className:t.default["thread-list-item__thread"],children:e.jsxs("div",{className:t.default["thread-list-item__container"],children:[e.jsxs("div",{className:t.default["thread-list-item__post-content"],children:[e.jsxs("div",{className:t.default["thread-list-item__gutter"],children:[u&&i==="unread"&&e.jsx(A.default,{className:t.default["thread-list-item__unread-badge"],context:"icon-button"}),u&&i==="mention"&&e.jsx("span",{className:t.default["thread-list-item__mention-gutter"],children:e.jsx(T.default,{count:m,location:"channel",size:"medium"})})]}),e.jsx("div",{className:t.default["thread-list-item__post-body"],children:e.jsxs("div",{className:t.default["thread-list-item__post-body-content"],children:[e.jsxs("div",{className:t.default["thread-list-item__name-row"],children:[e.jsxs("div",{className:t.default["thread-list-item__name-group"],children:[e.jsx("span",{className:t.default["thread-list-item__author"],children:h}),e.jsx(I.default,{casing:"all-caps",label:_})]}),e.jsx("span",{className:t.default["thread-list-item__timestamp"],children:p})]}),o!=null&&e.jsx("div",{className:t.default["thread-list-item__title-row"],children:e.jsx("p",{className:t.default["thread-list-item__title"],children:o})}),e.jsx("p",{className:t.default["thread-list-item__preview"],children:f})]})})]}),e.jsx("div",{className:t.default["thread-list-item__replies"],children:e.jsxs("div",{className:t.default["thread-list-item__replies-inner"],children:[x&&e.jsx(R.default,{avatars:c,className:t.default["thread-list-item__avatar-group"],max:3,size:"20"}),e.jsx("span",{className:t.default["thread-list-item__reply-count"],children:N})]})})]})}),e.jsx("div",{className:t.default["thread-list-item__actions"],children:e.jsx("span",{className:t.default["thread-list-item__menu-button"],children:e.jsx(q.default,{"aria-label":"Thread actions",icon:e.jsx(b.default,{size:"16",glyph:e.jsx(g,{})}),padding:"compact",size:"small",style:"default",type:"button",onClick:s=>{s.stopPropagation(),l==null||l(s)}})})})]})}exports.default=D;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),__I=require("@mattermost/compass-icons/components/dots-horizontal.js"),I=__I?.default??__I,q=require("../icon/Icon.cjs"),A=require("../icon-button/IconButton.cjs"),b=require("../tag/Tag.cjs"),R=require("../mention-badge/MentionBadge.cjs"),M=require("../unread-badge/UnreadBadge.cjs"),S=require("../user-avatar-group/UserAvatarGroup.cjs"),t=require("./ThreadListItem.module.scss.cjs"),B=[{key:"leonard",name:"Leonard Riley"},{key:"aiko",name:"Aiko Tan"},{key:"arjun",name:"Arjun Patel"},{key:"marco",name:"Marco Rinaldi"},{key:"sofia",name:"Sofia Bauer"}];function D({active:l=!1,badge:i="none",mentionCount:n=1,authorName:f="Martin Kraft",channelLabel:p="ENTERPRISE TEAM",previewText:j="Do we have a guideline for what minimum width we should support in the system console? I know that…",timestamp:x="5 mins ago",replyCount:d=3,participants:o,threadTitle:u,className:N="",onClick:a,onMenuClick:c}){const m=o===void 0?B:o,v=m.length>0,h=!l&&(i==="unread"||i==="mention"),g=d===1?"1 reply":`${d} replies`,y=[t.default["thread-list-item"],l?t.default["thread-list-item--active"]:"",N].filter(Boolean).join(" "),_=i==="mention"?`${n} mention${n===1?"":"s"}`:i==="unread"?"unread":void 0,w=s=>{const r=window.getSelection();(r==null?void 0:r.type)==="Range"&&r.toString().length>0&&s.currentTarget.contains(r.getRangeAt(0).commonAncestorContainer)||a==null||a()},T=s=>{s.key!=="Enter"&&s.key!==" "||(s.preventDefault(),a==null||a())};return e.jsxs("div",{className:y,children:[e.jsx("div",{className:t.default["thread-list-item__main"],role:a?"button":void 0,tabIndex:a?0:void 0,onClick:a?w:void 0,onKeyDown:a?T:void 0,"aria-current":l?!0:void 0,children:e.jsx("div",{className:t.default["thread-list-item__thread"],children:e.jsxs("div",{className:t.default["thread-list-item__container"],children:[e.jsxs("div",{className:t.default["thread-list-item__post-content"],children:[e.jsxs("div",{className:t.default["thread-list-item__gutter"],children:[h&&i==="unread"&&e.jsx("span",{className:t.default["thread-list-item__unread-gutter"],"aria-hidden":!0,children:e.jsx(M.default,{className:t.default["thread-list-item__unread-badge"],context:"icon-button"})}),h&&i==="mention"&&e.jsx("span",{className:t.default["thread-list-item__mention-gutter"],"aria-hidden":!0,children:e.jsx(R.default,{count:n,location:"channel",size:"medium"})})]}),e.jsx("div",{className:t.default["thread-list-item__post-body"],children:e.jsxs("div",{className:t.default["thread-list-item__post-body-content"],children:[e.jsxs("div",{className:t.default["thread-list-item__name-row"],children:[e.jsxs("div",{className:t.default["thread-list-item__name-group"],children:[e.jsx("span",{className:t.default["thread-list-item__author"],children:f}),e.jsx(b.default,{casing:"all-caps",label:p}),_&&e.jsx("span",{className:t.default["thread-list-item__status-hint"],children:_})]}),e.jsx("span",{className:t.default["thread-list-item__timestamp"],children:x})]}),u!=null&&e.jsx("div",{className:t.default["thread-list-item__title-row"],children:e.jsx("p",{className:t.default["thread-list-item__title"],children:u})}),e.jsx("p",{className:t.default["thread-list-item__preview"],children:j})]})})]}),e.jsx("div",{className:t.default["thread-list-item__replies"],children:e.jsxs("div",{className:t.default["thread-list-item__replies-inner"],children:[v&&e.jsx(S.default,{avatars:m,className:t.default["thread-list-item__avatar-group"],max:3,size:"20"}),e.jsx("span",{className:t.default["thread-list-item__reply-count"],children:g})]})})]})})}),c&&e.jsx("div",{className:t.default["thread-list-item__actions"],children:e.jsx("span",{className:t.default["thread-list-item__menu-button"],children:e.jsx(A.default,{"aria-label":"Thread actions",icon:e.jsx(q.default,{size:"16",glyph:e.jsx(I,{})}),padding:"compact",size:"small",style:"default",type:"button",onClick:s=>{s.stopPropagation(),c(s)}})})})]})}exports.default=D;
2
2
  //# sourceMappingURL=ThreadListItem.cjs.map