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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/README.md +15 -3
  2. package/dist/compass-ui-standalone.css +270 -276
  3. package/dist/compass-ui.css +293 -290
  4. package/dist/components/action-button/ActionButton.cjs.map +1 -1
  5. package/dist/components/action-button/ActionButton.d.ts +2 -1
  6. package/dist/components/action-button/ActionButton.d.ts.map +1 -1
  7. package/dist/components/action-button/ActionButton.js.map +1 -1
  8. package/dist/components/admin-console-header/AdminConsoleHeader.cjs.map +1 -1
  9. package/dist/components/admin-console-header/AdminConsoleHeader.d.ts +3 -1
  10. package/dist/components/admin-console-header/AdminConsoleHeader.d.ts.map +1 -1
  11. package/dist/components/admin-console-header/AdminConsoleHeader.js.map +1 -1
  12. package/dist/components/admin-panel/AdminPanel.cjs +1 -1
  13. package/dist/components/admin-panel/AdminPanel.cjs.map +1 -1
  14. package/dist/components/admin-panel/AdminPanel.d.ts +13 -6
  15. package/dist/components/admin-panel/AdminPanel.d.ts.map +1 -1
  16. package/dist/components/admin-panel/AdminPanel.js +21 -15
  17. package/dist/components/admin-panel/AdminPanel.js.map +1 -1
  18. package/dist/components/admin-panel-footer/AdminPanelFooter.cjs.map +1 -1
  19. package/dist/components/admin-panel-footer/AdminPanelFooter.d.ts +8 -4
  20. package/dist/components/admin-panel-footer/AdminPanelFooter.d.ts.map +1 -1
  21. package/dist/components/admin-panel-footer/AdminPanelFooter.js.map +1 -1
  22. package/dist/components/admin-panel-header/AdminPanelHeader.cjs +1 -1
  23. package/dist/components/admin-panel-header/AdminPanelHeader.cjs.map +1 -1
  24. package/dist/components/admin-panel-header/AdminPanelHeader.css +1 -1
  25. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts +11 -4
  26. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts.map +1 -1
  27. package/dist/components/admin-panel-header/AdminPanelHeader.js +25 -23
  28. package/dist/components/admin-panel-header/AdminPanelHeader.js.map +1 -1
  29. package/dist/components/admin-panel-header/AdminPanelHeader.module.scss.cjs +1 -1
  30. package/dist/components/admin-panel-header/AdminPanelHeader.module.scss.js +10 -10
  31. package/dist/components/attachment-card/AttachmentCard.cjs +1 -1
  32. package/dist/components/attachment-card/AttachmentCard.cjs.map +1 -1
  33. package/dist/components/attachment-card/AttachmentCard.d.ts +18 -5
  34. package/dist/components/attachment-card/AttachmentCard.d.ts.map +1 -1
  35. package/dist/components/attachment-card/AttachmentCard.js +85 -79
  36. package/dist/components/attachment-card/AttachmentCard.js.map +1 -1
  37. package/dist/components/card-button/CardButton.css +1 -1
  38. package/dist/components/card-button/CardButton.module.scss.cjs +1 -1
  39. package/dist/components/card-button/CardButton.module.scss.js +7 -7
  40. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.cjs +1 -1
  41. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.cjs.map +1 -1
  42. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.d.ts +5 -4
  43. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.d.ts.map +1 -1
  44. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.js +7 -7
  45. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.js.map +1 -1
  46. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs +1 -1
  47. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs.map +1 -1
  48. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts +10 -4
  49. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts.map +1 -1
  50. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js +67 -62
  51. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js.map +1 -1
  52. package/dist/components/checkbox/Checkbox.css +1 -1
  53. package/dist/components/checkbox/Checkbox.module.scss.cjs +1 -1
  54. package/dist/components/checkbox/Checkbox.module.scss.js +10 -10
  55. package/dist/components/chip/Chip.cjs.map +1 -1
  56. package/dist/components/chip/Chip.css +1 -1
  57. package/dist/components/chip/Chip.d.ts +4 -0
  58. package/dist/components/chip/Chip.d.ts.map +1 -1
  59. package/dist/components/chip/Chip.js.map +1 -1
  60. package/dist/components/chip/Chip.module.scss.cjs +1 -1
  61. package/dist/components/chip/Chip.module.scss.js +11 -11
  62. package/dist/components/combobox/Combobox.cjs +1 -1
  63. package/dist/components/combobox/Combobox.cjs.map +1 -1
  64. package/dist/components/combobox/Combobox.css +1 -1
  65. package/dist/components/combobox/Combobox.d.ts +24 -1
  66. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  67. package/dist/components/combobox/Combobox.js +307 -271
  68. package/dist/components/combobox/Combobox.js.map +1 -1
  69. package/dist/components/combobox/Combobox.module.scss.cjs +1 -1
  70. package/dist/components/combobox/Combobox.module.scss.js +28 -26
  71. package/dist/components/combobox/Combobox.module.scss.js.map +1 -1
  72. package/dist/components/date-range-picker/DateRangePicker.cjs +1 -1
  73. package/dist/components/date-range-picker/DateRangePicker.cjs.map +1 -1
  74. package/dist/components/date-range-picker/DateRangePicker.css +1 -1
  75. package/dist/components/date-range-picker/DateRangePicker.d.ts +18 -2
  76. package/dist/components/date-range-picker/DateRangePicker.d.ts.map +1 -1
  77. package/dist/components/date-range-picker/DateRangePicker.js +134 -126
  78. package/dist/components/date-range-picker/DateRangePicker.js.map +1 -1
  79. package/dist/components/date-range-picker/DateRangePicker.module.scss.cjs +1 -1
  80. package/dist/components/date-range-picker/DateRangePicker.module.scss.js +26 -26
  81. package/dist/components/emoji-popover/EmojiPopover.cjs +1 -1
  82. package/dist/components/emoji-popover/EmojiPopover.cjs.map +1 -1
  83. package/dist/components/emoji-popover/EmojiPopover.d.ts +25 -4
  84. package/dist/components/emoji-popover/EmojiPopover.d.ts.map +1 -1
  85. package/dist/components/emoji-popover/EmojiPopover.js +84 -73
  86. package/dist/components/emoji-popover/EmojiPopover.js.map +1 -1
  87. package/dist/components/empty-state/EmptyState.cjs +1 -1
  88. package/dist/components/empty-state/EmptyState.cjs.map +1 -1
  89. package/dist/components/empty-state/EmptyState.d.ts +3 -3
  90. package/dist/components/empty-state/EmptyState.d.ts.map +1 -1
  91. package/dist/components/empty-state/EmptyState.js +11 -9
  92. package/dist/components/empty-state/EmptyState.js.map +1 -1
  93. package/dist/components/error-message/ErrorMessage.cjs +1 -1
  94. package/dist/components/error-message/ErrorMessage.cjs.map +1 -1
  95. package/dist/components/error-message/ErrorMessage.d.ts +3 -3
  96. package/dist/components/error-message/ErrorMessage.d.ts.map +1 -1
  97. package/dist/components/error-message/ErrorMessage.js +10 -9
  98. package/dist/components/error-message/ErrorMessage.js.map +1 -1
  99. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.cjs.map +1 -1
  100. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.d.ts +7 -6
  101. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.d.ts.map +1 -1
  102. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.js.map +1 -1
  103. package/dist/components/global-banner/GlobalBanner.cjs +1 -1
  104. package/dist/components/global-banner/GlobalBanner.cjs.map +1 -1
  105. package/dist/components/global-banner/GlobalBanner.d.ts +10 -5
  106. package/dist/components/global-banner/GlobalBanner.d.ts.map +1 -1
  107. package/dist/components/global-banner/GlobalBanner.js +33 -26
  108. package/dist/components/global-banner/GlobalBanner.js.map +1 -1
  109. package/dist/components/icon-button/IconButton.css +1 -1
  110. package/dist/components/icon-button/IconButton.module.scss.cjs +1 -1
  111. package/dist/components/icon-button/IconButton.module.scss.js +15 -15
  112. package/dist/components/image-preview/ImagePreview.cjs +1 -1
  113. package/dist/components/image-preview/ImagePreview.cjs.map +1 -1
  114. package/dist/components/image-preview/ImagePreview.css +1 -1
  115. package/dist/components/image-preview/ImagePreview.d.ts +12 -1
  116. package/dist/components/image-preview/ImagePreview.d.ts.map +1 -1
  117. package/dist/components/image-preview/ImagePreview.js +25 -20
  118. package/dist/components/image-preview/ImagePreview.js.map +1 -1
  119. package/dist/components/image-preview/ImagePreview.module.scss.cjs +1 -1
  120. package/dist/components/image-preview/ImagePreview.module.scss.js +15 -15
  121. package/dist/components/link-preview/LinkPreview.cjs +1 -1
  122. package/dist/components/link-preview/LinkPreview.cjs.map +1 -1
  123. package/dist/components/link-preview/LinkPreview.d.ts +12 -6
  124. package/dist/components/link-preview/LinkPreview.d.ts.map +1 -1
  125. package/dist/components/link-preview/LinkPreview.js +19 -16
  126. package/dist/components/link-preview/LinkPreview.js.map +1 -1
  127. package/dist/components/mention-badge/MentionBadge.cjs +1 -1
  128. package/dist/components/mention-badge/MentionBadge.cjs.map +1 -1
  129. package/dist/components/mention-badge/MentionBadge.d.ts +3 -1
  130. package/dist/components/mention-badge/MentionBadge.d.ts.map +1 -1
  131. package/dist/components/mention-badge/MentionBadge.js +18 -23
  132. package/dist/components/mention-badge/MentionBadge.js.map +1 -1
  133. package/dist/components/menu-group-heading/MenuGroupHeading.cjs.map +1 -1
  134. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts +3 -3
  135. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts.map +1 -1
  136. package/dist/components/menu-group-heading/MenuGroupHeading.js.map +1 -1
  137. package/dist/components/menu-item/MenuItem.cjs +1 -1
  138. package/dist/components/menu-item/MenuItem.cjs.map +1 -1
  139. package/dist/components/menu-item/MenuItem.d.ts +2 -0
  140. package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
  141. package/dist/components/menu-item/MenuItem.js +29 -28
  142. package/dist/components/menu-item/MenuItem.js.map +1 -1
  143. package/dist/components/message-actions/MessageActions.cjs +1 -1
  144. package/dist/components/message-actions/MessageActions.cjs.map +1 -1
  145. package/dist/components/message-actions/MessageActions.d.ts +26 -2
  146. package/dist/components/message-actions/MessageActions.d.ts.map +1 -1
  147. package/dist/components/message-actions/MessageActions.js +67 -55
  148. package/dist/components/message-actions/MessageActions.js.map +1 -1
  149. package/dist/components/message-header/MessageHeader.cjs.map +1 -1
  150. package/dist/components/message-header/MessageHeader.d.ts +5 -3
  151. package/dist/components/message-header/MessageHeader.d.ts.map +1 -1
  152. package/dist/components/message-header/MessageHeader.js.map +1 -1
  153. package/dist/components/message-separator/MessageSeparator.cjs +1 -1
  154. package/dist/components/message-separator/MessageSeparator.cjs.map +1 -1
  155. package/dist/components/message-separator/MessageSeparator.d.ts +8 -4
  156. package/dist/components/message-separator/MessageSeparator.d.ts.map +1 -1
  157. package/dist/components/message-separator/MessageSeparator.js +16 -14
  158. package/dist/components/message-separator/MessageSeparator.js.map +1 -1
  159. package/dist/components/modal/Modal.cjs +1 -1
  160. package/dist/components/modal/Modal.cjs.map +1 -1
  161. package/dist/components/modal/Modal.css +1 -1
  162. package/dist/components/modal/Modal.d.ts +40 -4
  163. package/dist/components/modal/Modal.d.ts.map +1 -1
  164. package/dist/components/modal/Modal.js +105 -56
  165. package/dist/components/modal/Modal.js.map +1 -1
  166. package/dist/components/modal/Modal.module.scss.cjs +1 -1
  167. package/dist/components/modal/Modal.module.scss.js +14 -12
  168. package/dist/components/modal/Modal.module.scss.js.map +1 -1
  169. package/dist/components/modal-header/ModalHeader.cjs +1 -1
  170. package/dist/components/modal-header/ModalHeader.cjs.map +1 -1
  171. package/dist/components/modal-header/ModalHeader.css +1 -1
  172. package/dist/components/modal-header/ModalHeader.d.ts +16 -1
  173. package/dist/components/modal-header/ModalHeader.d.ts.map +1 -1
  174. package/dist/components/modal-header/ModalHeader.js +72 -57
  175. package/dist/components/modal-header/ModalHeader.js.map +1 -1
  176. package/dist/components/modal-header/ModalHeader.module.scss.cjs +1 -1
  177. package/dist/components/modal-header/ModalHeader.module.scss.js +15 -13
  178. package/dist/components/modal-header/ModalHeader.module.scss.js.map +1 -1
  179. package/dist/components/more-unreads-banner/MoreUnreadsBanner.cjs +1 -1
  180. package/dist/components/more-unreads-banner/MoreUnreadsBanner.cjs.map +1 -1
  181. package/dist/components/more-unreads-banner/MoreUnreadsBanner.d.ts +4 -1
  182. package/dist/components/more-unreads-banner/MoreUnreadsBanner.d.ts.map +1 -1
  183. package/dist/components/more-unreads-banner/MoreUnreadsBanner.js +11 -10
  184. package/dist/components/more-unreads-banner/MoreUnreadsBanner.js.map +1 -1
  185. package/dist/components/new-message-banner/NewMessageBanner.cjs +1 -1
  186. package/dist/components/new-message-banner/NewMessageBanner.cjs.map +1 -1
  187. package/dist/components/new-message-banner/NewMessageBanner.d.ts +15 -3
  188. package/dist/components/new-message-banner/NewMessageBanner.d.ts.map +1 -1
  189. package/dist/components/new-message-banner/NewMessageBanner.js +30 -22
  190. package/dist/components/new-message-banner/NewMessageBanner.js.map +1 -1
  191. package/dist/components/pagination-dots/PaginationDots.cjs +1 -1
  192. package/dist/components/pagination-dots/PaginationDots.cjs.map +1 -1
  193. package/dist/components/pagination-dots/PaginationDots.css +1 -1
  194. package/dist/components/pagination-dots/PaginationDots.d.ts +5 -1
  195. package/dist/components/pagination-dots/PaginationDots.d.ts.map +1 -1
  196. package/dist/components/pagination-dots/PaginationDots.js +22 -19
  197. package/dist/components/pagination-dots/PaginationDots.js.map +1 -1
  198. package/dist/components/pagination-dots/PaginationDots.module.scss.cjs +1 -1
  199. package/dist/components/pagination-dots/PaginationDots.module.scss.js +10 -10
  200. package/dist/components/permalink-preview/PermalinkPreview.cjs +1 -1
  201. package/dist/components/permalink-preview/PermalinkPreview.cjs.map +1 -1
  202. package/dist/components/permalink-preview/PermalinkPreview.d.ts +16 -5
  203. package/dist/components/permalink-preview/PermalinkPreview.d.ts.map +1 -1
  204. package/dist/components/permalink-preview/PermalinkPreview.js +39 -35
  205. package/dist/components/permalink-preview/PermalinkPreview.js.map +1 -1
  206. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.cjs +1 -1
  207. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.cjs.map +1 -1
  208. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.d.ts +8 -1
  209. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.d.ts.map +1 -1
  210. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.js +20 -17
  211. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.js.map +1 -1
  212. package/dist/components/popover-menu/PopoverMenu.cjs +1 -1
  213. package/dist/components/popover-menu/PopoverMenu.cjs.map +1 -1
  214. package/dist/components/popover-menu/PopoverMenu.css +1 -1
  215. package/dist/components/popover-menu/PopoverMenu.d.ts +9 -1
  216. package/dist/components/popover-menu/PopoverMenu.d.ts.map +1 -1
  217. package/dist/components/popover-menu/PopoverMenu.js +39 -28
  218. package/dist/components/popover-menu/PopoverMenu.js.map +1 -1
  219. package/dist/components/popover-menu/PopoverMenu.module.scss.cjs +1 -1
  220. package/dist/components/popover-menu/PopoverMenu.module.scss.js +12 -10
  221. package/dist/components/popover-menu/PopoverMenu.module.scss.js.map +1 -1
  222. package/dist/components/popover-notice/PopoverNotice.cjs +1 -1
  223. package/dist/components/popover-notice/PopoverNotice.cjs.map +1 -1
  224. package/dist/components/popover-notice/PopoverNotice.d.ts +13 -5
  225. package/dist/components/popover-notice/PopoverNotice.d.ts.map +1 -1
  226. package/dist/components/popover-notice/PopoverNotice.js +58 -48
  227. package/dist/components/popover-notice/PopoverNotice.js.map +1 -1
  228. package/dist/components/profile-popover/ProfilePopover.cjs +1 -1
  229. package/dist/components/profile-popover/ProfilePopover.cjs.map +1 -1
  230. package/dist/components/profile-popover/ProfilePopover.d.ts +34 -12
  231. package/dist/components/profile-popover/ProfilePopover.d.ts.map +1 -1
  232. package/dist/components/profile-popover/ProfilePopover.js +122 -106
  233. package/dist/components/profile-popover/ProfilePopover.js.map +1 -1
  234. package/dist/components/progress-bar/ProgressBar.cjs +1 -1
  235. package/dist/components/progress-bar/ProgressBar.cjs.map +1 -1
  236. package/dist/components/progress-bar/ProgressBar.d.ts +4 -3
  237. package/dist/components/progress-bar/ProgressBar.d.ts.map +1 -1
  238. package/dist/components/progress-bar/ProgressBar.js +9 -7
  239. package/dist/components/progress-bar/ProgressBar.js.map +1 -1
  240. package/dist/components/radio/Radio.css +1 -1
  241. package/dist/components/radio/Radio.module.scss.cjs +1 -1
  242. package/dist/components/radio/Radio.module.scss.js +11 -11
  243. package/dist/components/reaction-button/ReactionButton.cjs +1 -1
  244. package/dist/components/reaction-button/ReactionButton.cjs.map +1 -1
  245. package/dist/components/reaction-button/ReactionButton.d.ts +3 -1
  246. package/dist/components/reaction-button/ReactionButton.d.ts.map +1 -1
  247. package/dist/components/reaction-button/ReactionButton.js +20 -18
  248. package/dist/components/reaction-button/ReactionButton.js.map +1 -1
  249. package/dist/components/reactions-row/ReactionsRow.cjs +1 -1
  250. package/dist/components/reactions-row/ReactionsRow.cjs.map +1 -1
  251. package/dist/components/reactions-row/ReactionsRow.d.ts +10 -2
  252. package/dist/components/reactions-row/ReactionsRow.d.ts.map +1 -1
  253. package/dist/components/reactions-row/ReactionsRow.js +33 -28
  254. package/dist/components/reactions-row/ReactionsRow.js.map +1 -1
  255. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs +1 -1
  256. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs.map +1 -1
  257. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts +15 -7
  258. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts.map +1 -1
  259. package/dist/components/right-sidebar-header/RightSidebarHeader.js +23 -19
  260. package/dist/components/right-sidebar-header/RightSidebarHeader.js.map +1 -1
  261. package/dist/components/scrollbar/Scrollbar.cjs +1 -1
  262. package/dist/components/scrollbar/Scrollbar.cjs.map +1 -1
  263. package/dist/components/scrollbar/Scrollbar.css +1 -1
  264. package/dist/components/scrollbar/Scrollbar.d.ts +2 -2
  265. package/dist/components/scrollbar/Scrollbar.d.ts.map +1 -1
  266. package/dist/components/scrollbar/Scrollbar.js +24 -15
  267. package/dist/components/scrollbar/Scrollbar.js.map +1 -1
  268. package/dist/components/scrollbar/Scrollbar.module.scss.cjs +1 -1
  269. package/dist/components/scrollbar/Scrollbar.module.scss.js +4 -4
  270. package/dist/components/scrollbar/simplebar-vendor.css +1 -0
  271. package/dist/components/search-input/SearchInput.cjs +1 -1
  272. package/dist/components/search-input/SearchInput.cjs.map +1 -1
  273. package/dist/components/search-input/SearchInput.d.ts +5 -0
  274. package/dist/components/search-input/SearchInput.d.ts.map +1 -1
  275. package/dist/components/search-input/SearchInput.js +92 -85
  276. package/dist/components/search-input/SearchInput.js.map +1 -1
  277. package/dist/components/search-tip-banner/SearchTipBanner.cjs +1 -1
  278. package/dist/components/search-tip-banner/SearchTipBanner.cjs.map +1 -1
  279. package/dist/components/search-tip-banner/SearchTipBanner.d.ts +8 -5
  280. package/dist/components/search-tip-banner/SearchTipBanner.d.ts.map +1 -1
  281. package/dist/components/search-tip-banner/SearchTipBanner.js +17 -16
  282. package/dist/components/search-tip-banner/SearchTipBanner.js.map +1 -1
  283. package/dist/components/section-notice/SectionNotice.cjs +1 -1
  284. package/dist/components/section-notice/SectionNotice.cjs.map +1 -1
  285. package/dist/components/section-notice/SectionNotice.d.ts +16 -3
  286. package/dist/components/section-notice/SectionNotice.d.ts.map +1 -1
  287. package/dist/components/section-notice/SectionNotice.js +64 -48
  288. package/dist/components/section-notice/SectionNotice.js.map +1 -1
  289. package/dist/components/select/Select.cjs +1 -1
  290. package/dist/components/select/Select.cjs.map +1 -1
  291. package/dist/components/select/Select.d.ts +8 -1
  292. package/dist/components/select/Select.d.ts.map +1 -1
  293. package/dist/components/select/Select.js +81 -79
  294. package/dist/components/select/Select.js.map +1 -1
  295. package/dist/components/spinner/Spinner.cjs.map +1 -1
  296. package/dist/components/spinner/Spinner.css +1 -1
  297. package/dist/components/spinner/Spinner.d.ts +1 -0
  298. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  299. package/dist/components/spinner/Spinner.js.map +1 -1
  300. package/dist/components/spinner/Spinner.module.scss.cjs +1 -1
  301. package/dist/components/spinner/Spinner.module.scss.js +5 -5
  302. package/dist/components/status-badge/StatusBadge.css +1 -1
  303. package/dist/components/status-badge/StatusBadge.module.scss.cjs +1 -1
  304. package/dist/components/status-badge/StatusBadge.module.scss.js +11 -11
  305. package/dist/components/switch/Switch.css +1 -1
  306. package/dist/components/switch/Switch.module.scss.cjs +1 -1
  307. package/dist/components/switch/Switch.module.scss.js +17 -17
  308. package/dist/components/tabs/Tabs.cjs +1 -1
  309. package/dist/components/tabs/Tabs.cjs.map +1 -1
  310. package/dist/components/tabs/Tabs.css +1 -1
  311. package/dist/components/tabs/Tabs.d.ts +14 -3
  312. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  313. package/dist/components/tabs/Tabs.js +62 -53
  314. package/dist/components/tabs/Tabs.js.map +1 -1
  315. package/dist/components/tabs/Tabs.module.scss.cjs +1 -1
  316. package/dist/components/tabs/Tabs.module.scss.js +13 -12
  317. package/dist/components/tabs/Tabs.module.scss.js.map +1 -1
  318. package/dist/components/tabs/index.d.ts +1 -1
  319. package/dist/components/tabs/index.d.ts.map +1 -1
  320. package/dist/components/tag/Tag.cjs +1 -1
  321. package/dist/components/tag/Tag.cjs.map +1 -1
  322. package/dist/components/tag/Tag.d.ts +3 -3
  323. package/dist/components/tag/Tag.d.ts.map +1 -1
  324. package/dist/components/tag/Tag.js +12 -11
  325. package/dist/components/tag/Tag.js.map +1 -1
  326. package/dist/components/thread-footer/ThreadFooter.cjs +1 -1
  327. package/dist/components/thread-footer/ThreadFooter.cjs.map +1 -1
  328. package/dist/components/thread-footer/ThreadFooter.css +1 -1
  329. package/dist/components/thread-footer/ThreadFooter.d.ts +19 -3
  330. package/dist/components/thread-footer/ThreadFooter.d.ts.map +1 -1
  331. package/dist/components/thread-footer/ThreadFooter.js +53 -48
  332. package/dist/components/thread-footer/ThreadFooter.js.map +1 -1
  333. package/dist/components/thread-footer/ThreadFooter.module.scss.cjs +1 -1
  334. package/dist/components/thread-footer/ThreadFooter.module.scss.js +18 -18
  335. package/dist/components/thread-list-item/ThreadListItem.cjs +1 -1
  336. package/dist/components/thread-list-item/ThreadListItem.cjs.map +1 -1
  337. package/dist/components/thread-list-item/ThreadListItem.d.ts +15 -7
  338. package/dist/components/thread-list-item/ThreadListItem.d.ts.map +1 -1
  339. package/dist/components/thread-list-item/ThreadListItem.js +66 -62
  340. package/dist/components/thread-list-item/ThreadListItem.js.map +1 -1
  341. package/dist/components/toast/Toast.cjs +1 -1
  342. package/dist/components/toast/Toast.cjs.map +1 -1
  343. package/dist/components/toast/Toast.d.ts +8 -3
  344. package/dist/components/toast/Toast.d.ts.map +1 -1
  345. package/dist/components/toast/Toast.js +47 -39
  346. package/dist/components/toast/Toast.js.map +1 -1
  347. package/dist/components/tour-point/TourPoint.cjs +1 -1
  348. package/dist/components/tour-point/TourPoint.cjs.map +1 -1
  349. package/dist/components/tour-point/TourPoint.css +1 -1
  350. package/dist/components/tour-point/TourPoint.d.ts +19 -5
  351. package/dist/components/tour-point/TourPoint.d.ts.map +1 -1
  352. package/dist/components/tour-point/TourPoint.js +66 -54
  353. package/dist/components/tour-point/TourPoint.js.map +1 -1
  354. package/dist/components/tour-point/TourPoint.module.scss.cjs +1 -1
  355. package/dist/components/tour-point/TourPoint.module.scss.js +28 -28
  356. package/dist/components/unread-badge/UnreadBadge.css +1 -1
  357. package/dist/components/unread-badge/UnreadBadge.module.scss.cjs +1 -1
  358. package/dist/components/unread-badge/UnreadBadge.module.scss.js +5 -5
  359. package/dist/components/user-avatar/UserAvatar.css +1 -1
  360. package/dist/components/user-avatar/UserAvatar.module.scss.cjs +1 -1
  361. package/dist/components/user-avatar/UserAvatar.module.scss.js +26 -26
  362. package/dist/components/user-avatar-group/UserAvatarGroup.cjs +1 -1
  363. package/dist/components/user-avatar-group/UserAvatarGroup.cjs.map +1 -1
  364. package/dist/components/user-avatar-group/UserAvatarGroup.css +1 -1
  365. package/dist/components/user-avatar-group/UserAvatarGroup.d.ts +8 -1
  366. package/dist/components/user-avatar-group/UserAvatarGroup.d.ts.map +1 -1
  367. package/dist/components/user-avatar-group/UserAvatarGroup.js +22 -18
  368. package/dist/components/user-avatar-group/UserAvatarGroup.js.map +1 -1
  369. package/dist/components/user-avatar-group/UserAvatarGroup.module.scss.cjs +1 -1
  370. package/dist/components/user-avatar-group/UserAvatarGroup.module.scss.js +14 -14
  371. package/dist/hooks/use-modal-focus.cjs +2 -0
  372. package/dist/hooks/use-modal-focus.cjs.map +1 -0
  373. package/dist/hooks/use-modal-focus.d.ts +26 -0
  374. package/dist/hooks/use-modal-focus.d.ts.map +1 -0
  375. package/dist/hooks/use-modal-focus.js +91 -0
  376. package/dist/hooks/use-modal-focus.js.map +1 -0
  377. package/dist/hooks/use-popover-transition.cjs +1 -1
  378. package/dist/hooks/use-popover-transition.cjs.map +1 -1
  379. package/dist/hooks/use-popover-transition.d.ts +6 -4
  380. package/dist/hooks/use-popover-transition.d.ts.map +1 -1
  381. package/dist/hooks/use-popover-transition.js +19 -15
  382. package/dist/hooks/use-popover-transition.js.map +1 -1
  383. package/dist/index.d.ts +1 -0
  384. package/dist/index.d.ts.map +1 -1
  385. package/dist/utils/duration.cjs +2 -0
  386. package/dist/utils/duration.cjs.map +1 -0
  387. package/dist/utils/duration.d.ts +8 -0
  388. package/dist/utils/duration.d.ts.map +1 -0
  389. package/dist/utils/duration.js +11 -0
  390. package/dist/utils/duration.js.map +1 -0
  391. package/dist/utils/props.cjs +2 -0
  392. package/dist/utils/props.cjs.map +1 -0
  393. package/dist/utils/props.d.ts +13 -0
  394. package/dist/utils/props.d.ts.map +1 -0
  395. package/dist/utils/props.js +7 -0
  396. package/dist/utils/props.js.map +1 -0
  397. package/package.json +4 -6
  398. package/dist/node_modules/simplebar-react/dist/simplebar.min.css +0 -1
@@ -1,116 +1,123 @@
1
- import { jsx as s, jsxs as x } from "react/jsx-runtime";
2
- import { forwardRef as Y, useId as B, useRef as D, useState as z, useCallback as i } from "react";
3
- import { toKebab as K } from "../../utils/string.js";
4
- import E from "../icon/Icon.js";
5
- import __tt from "@mattermost/compass-icons/components/magnify.js";const tt=__tt&&__tt.default?__tt.default:__tt;
6
- import __et from "@mattermost/compass-icons/components/close-circle.js";const et=__et&&__et.default?__et.default:__et;
7
- import e from "./SearchInput.module.scss.js";
8
- const st = {
1
+ import { jsx as t, jsxs as z } from "react/jsx-runtime";
2
+ import { forwardRef as P, useId as B, useRef as ee, useState as E, useCallback as n } from "react";
3
+ import { toKebab as se } from "../../utils/string.js";
4
+ import j from "../icon/Icon.js";
5
+ import __te from "@mattermost/compass-icons/components/magnify.js";const te=__te&&__te.default?__te.default:__te;
6
+ import __ae from "@mattermost/compass-icons/components/close-circle.js";const ae=__ae&&__ae.default?__ae.default:__ae;
7
+ import { mergeClassNames as ie } from "../../utils/props.js";
8
+ import s from "./SearchInput.module.scss.js";
9
+ const le = {
9
10
  small: "12",
10
11
  medium: "16",
11
12
  large: "20"
12
- }, at = {
13
+ }, ce = {
13
14
  small: "12",
14
15
  medium: "16",
15
16
  large: "16"
16
- }, dt = Y(
17
+ }, _e = P(
17
18
  function({
18
- className: j = "",
19
- size: d = "medium",
20
- label: f,
21
- invalid: v = !1,
22
- onClear: m,
23
- id: k,
24
- value: h,
25
- defaultValue: N,
26
- placeholder: A,
27
- onFocus: n,
28
- onBlur: u,
19
+ className: k = "",
20
+ size: f = "medium",
21
+ label: h,
22
+ invalid: N = !1,
23
+ onClear: p,
24
+ clearLabel: A = "Clear search",
25
+ clearButtonProps: i,
26
+ id: M,
27
+ value: _,
28
+ defaultValue: b,
29
+ placeholder: V,
30
+ onFocus: u,
31
+ onBlur: d,
29
32
  onChange: a,
30
- disabled: l,
31
- onKeyDown: o,
32
- ...M
33
+ disabled: c,
34
+ onKeyDown: m,
35
+ ...F
33
36
  }, r) {
34
- const V = B(), S = k ?? V, _ = D(null), c = h !== void 0, [F, b] = z(
35
- N ?? ""
36
- ), g = c ? h : F, p = g != null && g !== "", [L, C] = z(!1), O = L || p, T = i(
37
- (t) => {
38
- C(!0), n == null || n(t);
39
- },
40
- [n]
41
- ), Z = i(
42
- (t) => {
43
- C(!1), u == null || u(t);
37
+ const L = B(), g = M ?? L, I = ee(null), l = _ !== void 0, [O, C] = E(
38
+ b ?? ""
39
+ ), S = l ? _ : O, o = S != null && S !== "", [T, x] = E(!1), Z = T || o, U = n(
40
+ (e) => {
41
+ x(!0), u == null || u(e);
44
42
  },
45
43
  [u]
46
- ), P = i(
47
- (t) => {
48
- c || b(t.target.value), a == null || a(t);
44
+ ), $ = n(
45
+ (e) => {
46
+ x(!1), d == null || d(e);
47
+ },
48
+ [d]
49
+ ), q = n(
50
+ (e) => {
51
+ l || C(e.target.value), a == null || a(e);
49
52
  },
50
- [c, a]
51
- ), U = i(
52
- (t) => {
53
- _.current = t, typeof r == "function" ? r(t) : r && (r.current = t);
53
+ [l, a]
54
+ ), w = n(
55
+ (e) => {
56
+ I.current = e, typeof r == "function" ? r(e) : r && (r.current = e);
54
57
  },
55
58
  [r]
56
- ), I = i(() => {
59
+ ), v = n(() => {
57
60
  var R;
58
- if (l) return;
59
- if (m) {
60
- m(), (R = _.current) == null || R.focus();
61
+ if (c) return;
62
+ if (p) {
63
+ p(), (R = I.current) == null || R.focus();
61
64
  return;
62
65
  }
63
- const t = _.current;
64
- t != null && (t.value = "", c || b(""), a == null || a({
65
- target: t,
66
- currentTarget: t
67
- }), t.focus());
68
- }, [l, c, a, m]), $ = i(
69
- (t) => {
70
- o == null || o(t), !(t.defaultPrevented || l) && t.key === "Escape" && p && (t.preventDefault(), I());
66
+ const e = I.current;
67
+ e != null && (e.value = "", l || C(""), a == null || a({
68
+ target: e,
69
+ currentTarget: e
70
+ }), e.focus());
71
+ }, [c, l, a, p]), G = n(
72
+ (e) => {
73
+ m == null || m(e), !(e.defaultPrevented || c) && e.key === "Escape" && o && (e.preventDefault(), v());
71
74
  },
72
- [l, I, p, o]
73
- ), y = p && !l, q = e[`search-input--size-${K(d)}`], w = v ? e["search-input--invalid"] : "", G = f != null && O ? e["search-input--label-floated"] : "", H = e["search-input--has-leading-icon"], J = y ? e["search-input--has-trailing-icon"] : "", Q = st[d], W = at[d], X = [
74
- e["search-input"],
75
- q,
76
- w,
77
- G,
75
+ [c, v, o, m]
76
+ ), y = o && !c, H = s[`search-input--size-${se(f)}`], J = N ? s["search-input--invalid"] : "", Q = h != null && Z ? s["search-input--label-floated"] : "", W = s["search-input--has-leading-icon"], X = y ? s["search-input--has-trailing-icon"] : "", Y = le[f], D = ce[f], K = [
77
+ s["search-input"],
78
78
  H,
79
79
  J,
80
- j
80
+ Q,
81
+ W,
82
+ X,
83
+ k
81
84
  ].filter(Boolean).join(" ");
82
- return /* @__PURE__ */ s("div", { className: X, children: /* @__PURE__ */ x("div", { className: e["search-input__wrapper"], children: [
83
- f != null && /* @__PURE__ */ s("label", { className: e["search-input__label"], htmlFor: S, children: f }),
84
- /* @__PURE__ */ x("div", { className: e["search-input__inner"], children: [
85
- /* @__PURE__ */ s("span", { className: e["search-input__leading-icon"], "aria-hidden": !0, children: /* @__PURE__ */ s(E, { size: Q, glyph: /* @__PURE__ */ s(tt, {}) }) }),
86
- /* @__PURE__ */ s(
85
+ return /* @__PURE__ */ t("div", { className: K, children: /* @__PURE__ */ z("div", { className: s["search-input__wrapper"], children: [
86
+ h != null && /* @__PURE__ */ t("label", { className: s["search-input__label"], htmlFor: g, children: h }),
87
+ /* @__PURE__ */ z("div", { className: s["search-input__inner"], children: [
88
+ /* @__PURE__ */ t("span", { className: s["search-input__leading-icon"], "aria-hidden": !0, children: /* @__PURE__ */ t(j, { size: Y, glyph: /* @__PURE__ */ t(te, {}) }) }),
89
+ /* @__PURE__ */ t(
87
90
  "input",
88
91
  {
89
- ref: U,
90
- id: S,
92
+ ref: w,
93
+ id: g,
91
94
  type: "search",
92
- className: e["search-input__input"],
93
- value: c ? h : void 0,
94
- defaultValue: c ? void 0 : N,
95
- placeholder: A,
96
- disabled: l,
97
- onFocus: T,
98
- onBlur: Z,
99
- onChange: P,
100
- onKeyDown: $,
101
- "aria-invalid": v ? !0 : void 0,
102
- ...M
95
+ className: s["search-input__input"],
96
+ value: l ? _ : void 0,
97
+ defaultValue: l ? void 0 : b,
98
+ placeholder: V,
99
+ disabled: c,
100
+ onFocus: U,
101
+ onBlur: $,
102
+ onChange: q,
103
+ onKeyDown: G,
104
+ "aria-invalid": N ? !0 : void 0,
105
+ ...F
103
106
  }
104
107
  ),
105
- y && /* @__PURE__ */ s("span", { className: e["search-input__trailing-icon"], children: /* @__PURE__ */ s(
108
+ y && /* @__PURE__ */ t("span", { className: s["search-input__trailing-icon"], children: /* @__PURE__ */ t(
106
109
  "button",
107
110
  {
111
+ ...i,
108
112
  type: "button",
109
- className: e["search-input__clear-button"],
110
- onClick: I,
111
- "aria-label": "Clear search",
112
- tabIndex: -1,
113
- children: /* @__PURE__ */ s(E, { size: W, glyph: /* @__PURE__ */ s(et, {}) })
113
+ className: ie(
114
+ s["search-input__clear-button"],
115
+ i == null ? void 0 : i.className
116
+ ),
117
+ onClick: v,
118
+ "aria-label": A,
119
+ tabIndex: (i == null ? void 0 : i.tabIndex) ?? -1,
120
+ children: /* @__PURE__ */ t(j, { size: D, glyph: /* @__PURE__ */ t(ae, {}) })
114
121
  }
115
122
  ) })
116
123
  ] })
@@ -118,6 +125,6 @@ const st = {
118
125
  }
119
126
  );
120
127
  export {
121
- dt as default
128
+ _e as default
122
129
  };
123
130
  //# sourceMappingURL=SearchInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.js","sources":["../../../src/components/search-input/SearchInput.tsx"],"sourcesContent":["import type {\n ChangeEvent,\n InputHTMLAttributes,\n KeyboardEvent,\n ReactNode,\n} from 'react';\nimport { forwardRef, useId, useState, useCallback, useRef } from 'react';\nimport { toKebab } from '@/utils/string';\nimport type { IconSize } from '@/components/icon/Icon';\nimport Icon from '@/components/icon/Icon';\nimport MagnifyIcon from '@mattermost/compass-icons/components/magnify';\nimport CloseCircleIcon from '@mattermost/compass-icons/components/close-circle';\nimport styles from './SearchInput.module.scss';\n\nexport type SearchInputSize = 'small' | 'medium' | 'large';\n\nconst ICON_SIZE_MAP: Record<SearchInputSize, IconSize> = {\n small: '12',\n medium: '16',\n large: '20',\n};\n\nconst CLEAR_ICON_SIZE_MAP: Record<SearchInputSize, IconSize> = {\n small: '12',\n medium: '16',\n large: '16',\n};\n\nexport interface SearchInputProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'type'\n> {\n /** Optional CSS class name. */\n className?: string;\n /** When true, shows invalid/error styling. */\n invalid?: boolean;\n /** Floating label (placeholder-style). Floats above border when filled. */\n label?: ReactNode;\n /** Size variant. Default: Medium. */\n size?: SearchInputSize;\n /** Called when the clear button is pressed. Omit to use built-in clearing. */\n onClear?: () => void;\n}\n\n/**\n * Search Inputs are the entry point to filtering or finding content — global search, channel\n * switcher, member picker, file finder. They look like a text input with a leading magnifier\n * so the affordance is obvious before the user reads a single word.\n */\nconst SearchInput = forwardRef<HTMLInputElement, SearchInputProps>(\n function SearchInput(\n {\n className = '',\n size = 'medium',\n label,\n invalid = false,\n onClear,\n id: idProp,\n value: valueProp,\n defaultValue,\n placeholder,\n onFocus,\n onBlur,\n onChange,\n disabled,\n onKeyDown,\n ...rest\n },\n ref,\n ) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const inputRef = useRef<HTMLInputElement>(null);\n\n const isControlled = valueProp !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = useState(\n defaultValue ?? '',\n );\n const value = isControlled ? (valueProp as string) : uncontrolledValue;\n const hasValue = value != null && value !== '';\n\n const [isFocused, setIsFocused] = useState(false);\n const labelFloated = isFocused || hasValue;\n\n const handleFocus = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(true);\n onFocus?.(e);\n },\n [onFocus],\n );\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(false);\n onBlur?.(e);\n },\n [onBlur],\n );\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) setUncontrolledValue(e.target.value);\n onChange?.(e);\n },\n [isControlled, onChange],\n );\n\n const setInputRef = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n },\n [ref],\n );\n\n const handleClear = useCallback(() => {\n if (disabled) return;\n\n if (onClear) {\n onClear();\n inputRef.current?.focus();\n return;\n }\n\n const input = inputRef.current;\n if (input == null) return;\n\n input.value = '';\n if (!isControlled) setUncontrolledValue('');\n\n onChange?.({\n target: input,\n currentTarget: input,\n } as ChangeEvent<HTMLInputElement>);\n\n input.focus();\n }, [disabled, isControlled, onChange, onClear]);\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(e);\n if (e.defaultPrevented || disabled) return;\n if (e.key === 'Escape' && hasValue) {\n e.preventDefault();\n handleClear();\n }\n },\n [disabled, handleClear, hasValue, onKeyDown],\n );\n\n const showClearButton = hasValue && !disabled;\n\n const sizeClass = styles[`search-input--size-${toKebab(size)}`];\n const invalidClass = invalid ? styles['search-input--invalid'] : '';\n const labelFloatedClass =\n label != null && labelFloated\n ? styles['search-input--label-floated']\n : '';\n const hasLeadingClass = styles['search-input--has-leading-icon'];\n const hasTrailingClass = showClearButton\n ? styles['search-input--has-trailing-icon']\n : '';\n const iconSize = ICON_SIZE_MAP[size];\n const clearIconSize = CLEAR_ICON_SIZE_MAP[size];\n\n const rootClass = [\n styles['search-input'],\n sizeClass,\n invalidClass,\n labelFloatedClass,\n hasLeadingClass,\n hasTrailingClass,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n <div className={styles['search-input__wrapper']}>\n {label != null && (\n <label className={styles['search-input__label']} htmlFor={id}>\n {label}\n </label>\n )}\n <div className={styles['search-input__inner']}>\n <span className={styles['search-input__leading-icon']} aria-hidden>\n <Icon size={iconSize} glyph={<MagnifyIcon />} />\n </span>\n <input\n ref={setInputRef}\n id={id}\n type=\"search\"\n className={styles['search-input__input']}\n value={isControlled ? valueProp : undefined}\n defaultValue={isControlled ? undefined : defaultValue}\n placeholder={placeholder}\n disabled={disabled}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n aria-invalid={invalid ? true : undefined}\n {...rest}\n />\n {showClearButton && (\n <span className={styles['search-input__trailing-icon']}>\n <button\n type=\"button\"\n className={styles['search-input__clear-button']}\n onClick={handleClear}\n aria-label=\"Clear search\"\n tabIndex={-1}\n >\n <Icon size={clearIconSize} glyph={<CloseCircleIcon />} />\n </button>\n </span>\n )}\n </div>\n </div>\n </div>\n );\n },\n);\n\nexport default SearchInput;\n"],"names":["ICON_SIZE_MAP","CLEAR_ICON_SIZE_MAP","SearchInput","forwardRef","className","size","label","invalid","onClear","idProp","valueProp","defaultValue","placeholder","onFocus","onBlur","onChange","disabled","onKeyDown","rest","ref","generatedId","useId","id","inputRef","useRef","isControlled","uncontrolledValue","setUncontrolledValue","useState","value","hasValue","isFocused","setIsFocused","labelFloated","handleFocus","useCallback","e","handleBlur","handleChange","setInputRef","node","handleClear","_a","input","handleKeyDown","showClearButton","sizeClass","styles","toKebab","invalidClass","labelFloatedClass","hasLeadingClass","hasTrailingClass","iconSize","clearIconSize","rootClass","jsx","jsxs","Icon","MagnifyIcon","CloseCircleIcon"],"mappings":"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"}
1
+ {"version":3,"file":"SearchInput.js","sources":["../../../src/components/search-input/SearchInput.tsx"],"sourcesContent":["import type {\n ChangeEvent,\n InputHTMLAttributes,\n KeyboardEvent,\n ReactNode,\n} from 'react';\nimport { forwardRef, useId, useState, useCallback, useRef } from 'react';\nimport { toKebab } from '@/utils/string';\nimport type { IconSize } from '@/components/icon/Icon';\nimport Icon from '@/components/icon/Icon';\nimport MagnifyIcon from '@mattermost/compass-icons/components/magnify';\nimport CloseCircleIcon from '@mattermost/compass-icons/components/close-circle';\nimport type { BuiltInButtonProps } from '@/utils/props';\nimport { mergeClassNames } from '@/utils/props';\nimport styles from './SearchInput.module.scss';\n\nexport type SearchInputSize = 'small' | 'medium' | 'large';\n\nconst ICON_SIZE_MAP: Record<SearchInputSize, IconSize> = {\n small: '12',\n medium: '16',\n large: '20',\n};\n\nconst CLEAR_ICON_SIZE_MAP: Record<SearchInputSize, IconSize> = {\n small: '12',\n medium: '16',\n large: '16',\n};\n\nexport interface SearchInputProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'type'\n> {\n /** Optional CSS class name. */\n className?: string;\n /** When true, shows invalid/error styling. */\n invalid?: boolean;\n /** Floating label (placeholder-style). Floats above border when filled. */\n label?: ReactNode;\n /** Size variant. Default: Medium. */\n size?: SearchInputSize;\n /** Called when the clear button is pressed. Omit to use built-in clearing. */\n onClear?: () => void;\n /** Accessible name for the clear button. Default: \"Clear search\". */\n clearLabel?: string;\n /** Extra attributes for the clear button (e.g. `data-testid`). */\n clearButtonProps?: BuiltInButtonProps;\n}\n\n/**\n * Search Inputs are the entry point to filtering or finding content — global search, channel\n * switcher, member picker, file finder. They look like a text input with a leading magnifier\n * so the affordance is obvious before the user reads a single word.\n */\nconst SearchInput = forwardRef<HTMLInputElement, SearchInputProps>(\n function SearchInput(\n {\n className = '',\n size = 'medium',\n label,\n invalid = false,\n onClear,\n clearLabel = 'Clear search',\n clearButtonProps,\n id: idProp,\n value: valueProp,\n defaultValue,\n placeholder,\n onFocus,\n onBlur,\n onChange,\n disabled,\n onKeyDown,\n ...rest\n },\n ref,\n ) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const inputRef = useRef<HTMLInputElement>(null);\n\n const isControlled = valueProp !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = useState(\n defaultValue ?? '',\n );\n const value = isControlled ? (valueProp as string) : uncontrolledValue;\n const hasValue = value != null && value !== '';\n\n const [isFocused, setIsFocused] = useState(false);\n const labelFloated = isFocused || hasValue;\n\n const handleFocus = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(true);\n onFocus?.(e);\n },\n [onFocus],\n );\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(false);\n onBlur?.(e);\n },\n [onBlur],\n );\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) setUncontrolledValue(e.target.value);\n onChange?.(e);\n },\n [isControlled, onChange],\n );\n\n const setInputRef = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n },\n [ref],\n );\n\n const handleClear = useCallback(() => {\n if (disabled) return;\n\n if (onClear) {\n onClear();\n inputRef.current?.focus();\n return;\n }\n\n const input = inputRef.current;\n if (input == null) return;\n\n input.value = '';\n if (!isControlled) setUncontrolledValue('');\n\n onChange?.({\n target: input,\n currentTarget: input,\n } as ChangeEvent<HTMLInputElement>);\n\n input.focus();\n }, [disabled, isControlled, onChange, onClear]);\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(e);\n if (e.defaultPrevented || disabled) return;\n if (e.key === 'Escape' && hasValue) {\n e.preventDefault();\n handleClear();\n }\n },\n [disabled, handleClear, hasValue, onKeyDown],\n );\n\n const showClearButton = hasValue && !disabled;\n\n const sizeClass = styles[`search-input--size-${toKebab(size)}`];\n const invalidClass = invalid ? styles['search-input--invalid'] : '';\n const labelFloatedClass =\n label != null && labelFloated\n ? styles['search-input--label-floated']\n : '';\n const hasLeadingClass = styles['search-input--has-leading-icon'];\n const hasTrailingClass = showClearButton\n ? styles['search-input--has-trailing-icon']\n : '';\n const iconSize = ICON_SIZE_MAP[size];\n const clearIconSize = CLEAR_ICON_SIZE_MAP[size];\n\n const rootClass = [\n styles['search-input'],\n sizeClass,\n invalidClass,\n labelFloatedClass,\n hasLeadingClass,\n hasTrailingClass,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n <div className={styles['search-input__wrapper']}>\n {label != null && (\n <label className={styles['search-input__label']} htmlFor={id}>\n {label}\n </label>\n )}\n <div className={styles['search-input__inner']}>\n <span className={styles['search-input__leading-icon']} aria-hidden>\n <Icon size={iconSize} glyph={<MagnifyIcon />} />\n </span>\n <input\n ref={setInputRef}\n id={id}\n type=\"search\"\n className={styles['search-input__input']}\n value={isControlled ? valueProp : undefined}\n defaultValue={isControlled ? undefined : defaultValue}\n placeholder={placeholder}\n disabled={disabled}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n aria-invalid={invalid ? true : undefined}\n {...rest}\n />\n {showClearButton && (\n <span className={styles['search-input__trailing-icon']}>\n <button\n {...clearButtonProps}\n type=\"button\"\n className={mergeClassNames(\n styles['search-input__clear-button'],\n clearButtonProps?.className,\n )}\n onClick={handleClear}\n aria-label={clearLabel}\n tabIndex={clearButtonProps?.tabIndex ?? -1}\n >\n <Icon size={clearIconSize} glyph={<CloseCircleIcon />} />\n </button>\n </span>\n )}\n </div>\n </div>\n </div>\n );\n },\n);\n\nexport default SearchInput;\n"],"names":["ICON_SIZE_MAP","CLEAR_ICON_SIZE_MAP","SearchInput","forwardRef","className","size","label","invalid","onClear","clearLabel","clearButtonProps","idProp","valueProp","defaultValue","placeholder","onFocus","onBlur","onChange","disabled","onKeyDown","rest","ref","generatedId","useId","id","inputRef","useRef","isControlled","uncontrolledValue","setUncontrolledValue","useState","value","hasValue","isFocused","setIsFocused","labelFloated","handleFocus","useCallback","handleBlur","handleChange","setInputRef","node","handleClear","_a","input","handleKeyDown","showClearButton","sizeClass","styles","toKebab","invalidClass","labelFloatedClass","hasLeadingClass","hasTrailingClass","iconSize","clearIconSize","rootClass","jsx","jsxs","Icon","MagnifyIcon","mergeClassNames","CloseCircleIcon"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),u=require("../icon-button/IconButton.cjs"),o=require("../icon/Icon.cjs"),d=require("../shortcut-tag/ShortcutTag.cjs"),__h=require("@mattermost/compass-icons/components/close.js"),h=__h?.default??__h,a=require("./SearchTipBanner.module.scss.cjs");function p({prefix:l="Tip: Try",suffix:n="to search this channel",shortcutKeys:r=[{label:"⌘"},{label:"Shift"},{label:"F"}],onDismiss:t,className:s="",children:i}){return e.jsxs("div",{className:[a.default["search-tip-banner"],s].filter(Boolean).join(" "),children:[e.jsx("div",{className:a.default["search-tip-banner__content"],children:i??e.jsxs(e.Fragment,{children:[e.jsx("span",{className:a.default["search-tip-banner__text"],children:l}),e.jsx(d.ShortcutTagGroup,{labels:r.map(c=>c.label),size:"medium"}),e.jsx("span",{className:a.default["search-tip-banner__text"],children:n})]})}),t!=null&&e.jsx(u.default,{"aria-label":"Dismiss tip",size:"small",icon:e.jsx(o.default,{size:"16",glyph:e.jsx(h,{})}),onClick:t})]})}exports.default=p;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),o=require("../icon-button/IconButton.cjs"),d=require("../icon/Icon.cjs"),h=require("../shortcut-tag/ShortcutTag.cjs"),__p=require("@mattermost/compass-icons/components/close.js"),p=__p?.default??__p,a=require("./SearchTipBanner.module.scss.cjs");function b({prefix:l="Tip: Try",suffix:n="to search this channel",shortcutKeys:r=[{label:"⌘"},{label:"Shift"},{label:"F"}],onDismiss:t,dismissLabel:s="Dismiss tip",className:i="",children:c}){return e.jsxs("div",{className:[a.default["search-tip-banner"],i].filter(Boolean).join(" "),children:[e.jsx("div",{className:a.default["search-tip-banner__content"],children:c??e.jsxs(e.Fragment,{children:[e.jsx("span",{className:a.default["search-tip-banner__text"],children:l}),e.jsx(h.ShortcutTagGroup,{labels:r.map(u=>u.label),size:"medium"}),e.jsx("span",{className:a.default["search-tip-banner__text"],children:n})]})}),t!=null&&e.jsx(o.default,{"aria-label":s,size:"small",icon:e.jsx(d.default,{size:"16",glyph:e.jsx(p,{})}),onClick:t})]})}exports.default=b;
2
2
  //# sourceMappingURL=SearchTipBanner.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchTipBanner.cjs","sources":["../../../src/components/search-tip-banner/SearchTipBanner.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport { ShortcutTagGroup } from '@/components/shortcut-tag/ShortcutTag';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './SearchTipBanner.module.scss';\n\nexport interface ShortcutKey {\n label: string;\n}\n\nexport interface SearchTipBannerProps {\n /** Text shown before the shortcut keys. Default: \"Tip: Try\". */\n prefix?: string;\n /** Text shown after the shortcut keys. Default: \"to search this channel\". */\n suffix?: string;\n /** Keyboard shortcut keys to display. */\n shortcutKeys?: ShortcutKey[];\n /** Called when the dismiss button is clicked. */\n onDismiss?: () => void;\n /** Optional CSS class name. */\n className?: string;\n /** Custom content to replace the default tip content. */\n children?: ReactNode;\n}\n\n/**\n * The Search Tip Banner nudges people toward the keyboard shortcut for in-channel search. It\n * appears once a user has scrolled up far enough that they're clearly looking for something,\n * and offers a faster path than scroll-and-skim.\n */\nexport default function SearchTipBanner({\n prefix = 'Tip: Try',\n suffix = 'to search this channel',\n shortcutKeys = [{ label: '⌘' }, { label: 'Shift' }, { label: 'F' }],\n onDismiss,\n className = '',\n children,\n}: SearchTipBannerProps) {\n return (\n <div\n className={[styles['search-tip-banner'], className]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={styles['search-tip-banner__content']}>\n {children ?? (\n <>\n <span className={styles['search-tip-banner__text']}>{prefix}</span>\n <ShortcutTagGroup\n labels={shortcutKeys.map((key) => key.label)}\n size=\"medium\"\n />\n <span className={styles['search-tip-banner__text']}>{suffix}</span>\n </>\n )}\n </div>\n {onDismiss != null && (\n <IconButton\n aria-label=\"Dismiss tip\"\n size=\"small\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["SearchTipBanner","prefix","suffix","shortcutKeys","onDismiss","className","children","jsxs","styles","jsx","Fragment","ShortcutTagGroup","key","IconButton","Icon","CloseIcon"],"mappings":"4WA+BA,SAAwBA,EAAgB,CACtC,OAAAC,EAAS,WACT,OAAAC,EAAS,yBACT,aAAAC,EAAe,CAAC,CAAE,MAAO,KAAO,CAAE,MAAO,SAAW,CAAE,MAAO,IAAK,EAClE,UAAAC,EACA,UAAAC,EAAY,GACZ,SAAAC,CACF,EAAyB,CACvB,OACEC,EAAAA,KAAC,MAAA,CACC,UAAW,CAACC,UAAO,mBAAmB,EAAGH,CAAS,EAC/C,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,SAAA,CAAAI,EAAAA,IAAC,OAAI,UAAWD,EAAAA,QAAO,4BAA4B,EAChD,YACCD,EAAAA,KAAAG,EAAAA,SAAA,CACE,SAAA,CAAAD,MAAC,OAAA,CAAK,UAAWD,EAAAA,QAAO,yBAAyB,EAAI,SAAAP,EAAO,EAC5DQ,EAAAA,IAACE,EAAAA,iBAAA,CACC,OAAQR,EAAa,IAAKS,GAAQA,EAAI,KAAK,EAC3C,KAAK,QAAA,CAAA,QAEN,OAAA,CAAK,UAAWJ,EAAAA,QAAO,yBAAyB,EAAI,SAAAN,CAAA,CAAO,CAAA,CAAA,CAC9D,CAAA,CAEJ,EACCE,GAAa,MACZK,EAAAA,IAACI,EAAAA,QAAA,CACC,aAAW,cACX,KAAK,QACL,WAAOC,UAAA,CAAK,KAAK,KAAK,MAAOL,MAACM,IAAU,EAAI,EAC5C,QAASX,CAAA,CAAA,CACX,CAAA,CAAA,CAIR"}
1
+ {"version":3,"file":"SearchTipBanner.cjs","sources":["../../../src/components/search-tip-banner/SearchTipBanner.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport { ShortcutTagGroup } from '@/components/shortcut-tag/ShortcutTag';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './SearchTipBanner.module.scss';\n\nexport interface ShortcutKey {\n /** Key label (e.g. `⌘`, `Shift`). Kept as `string`: it doubles as the React key. */\n label: string;\n}\n\nexport interface SearchTipBannerProps {\n /** Text shown before the shortcut keys. Default: \"Tip: Try\". Accepts translated nodes. */\n prefix?: ReactNode;\n /** Text shown after the shortcut keys. Default: \"to search this channel\". Accepts translated nodes. */\n suffix?: ReactNode;\n /** Keyboard shortcut keys to display. */\n shortcutKeys?: ShortcutKey[];\n /** Called when the dismiss button is clicked. */\n onDismiss?: () => void;\n /** Accessible name for the dismiss button. Default: \"Dismiss tip\". */\n dismissLabel?: string;\n /** Optional CSS class name. */\n className?: string;\n /** Custom content to replace the default tip content. */\n children?: ReactNode;\n}\n\n/**\n * The Search Tip Banner nudges people toward the keyboard shortcut for in-channel search. It\n * appears once a user has scrolled up far enough that they're clearly looking for something,\n * and offers a faster path than scroll-and-skim.\n */\nexport default function SearchTipBanner({\n prefix = 'Tip: Try',\n suffix = 'to search this channel',\n shortcutKeys = [{ label: '⌘' }, { label: 'Shift' }, { label: 'F' }],\n onDismiss,\n dismissLabel = 'Dismiss tip',\n className = '',\n children,\n}: SearchTipBannerProps) {\n return (\n <div\n className={[styles['search-tip-banner'], className]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={styles['search-tip-banner__content']}>\n {children ?? (\n <>\n <span className={styles['search-tip-banner__text']}>{prefix}</span>\n <ShortcutTagGroup\n labels={shortcutKeys.map((key) => key.label)}\n size=\"medium\"\n />\n <span className={styles['search-tip-banner__text']}>{suffix}</span>\n </>\n )}\n </div>\n {onDismiss != null && (\n <IconButton\n aria-label={dismissLabel}\n size=\"small\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["SearchTipBanner","prefix","suffix","shortcutKeys","onDismiss","dismissLabel","className","children","jsxs","styles","jsx","Fragment","ShortcutTagGroup","key","IconButton","Icon","CloseIcon"],"mappings":"4WAkCA,SAAwBA,EAAgB,CACtC,OAAAC,EAAS,WACT,OAAAC,EAAS,yBACT,aAAAC,EAAe,CAAC,CAAE,MAAO,KAAO,CAAE,MAAO,SAAW,CAAE,MAAO,IAAK,EAClE,UAAAC,EACA,aAAAC,EAAe,cACf,UAAAC,EAAY,GACZ,SAAAC,CACF,EAAyB,CACvB,OACEC,EAAAA,KAAC,MAAA,CACC,UAAW,CAACC,UAAO,mBAAmB,EAAGH,CAAS,EAC/C,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,SAAA,CAAAI,EAAAA,IAAC,OAAI,UAAWD,EAAAA,QAAO,4BAA4B,EAChD,YACCD,EAAAA,KAAAG,EAAAA,SAAA,CACE,SAAA,CAAAD,MAAC,OAAA,CAAK,UAAWD,EAAAA,QAAO,yBAAyB,EAAI,SAAAR,EAAO,EAC5DS,EAAAA,IAACE,EAAAA,iBAAA,CACC,OAAQT,EAAa,IAAKU,GAAQA,EAAI,KAAK,EAC3C,KAAK,QAAA,CAAA,QAEN,OAAA,CAAK,UAAWJ,EAAAA,QAAO,yBAAyB,EAAI,SAAAP,CAAA,CAAO,CAAA,CAAA,CAC9D,CAAA,CAEJ,EACCE,GAAa,MACZM,EAAAA,IAACI,EAAAA,QAAA,CACC,aAAYT,EACZ,KAAK,QACL,WAAOU,UAAA,CAAK,KAAK,KAAK,MAAOL,MAACM,IAAU,EAAI,EAC5C,QAASZ,CAAA,CAAA,CACX,CAAA,CAAA,CAIR"}
@@ -1,16 +1,19 @@
1
1
  import { ReactNode } from 'react';
2
2
  export interface ShortcutKey {
3
+ /** Key label (e.g. `⌘`, `Shift`). Kept as `string`: it doubles as the React key. */
3
4
  label: string;
4
5
  }
5
6
  export interface SearchTipBannerProps {
6
- /** Text shown before the shortcut keys. Default: "Tip: Try". */
7
- prefix?: string;
8
- /** Text shown after the shortcut keys. Default: "to search this channel". */
9
- suffix?: string;
7
+ /** Text shown before the shortcut keys. Default: "Tip: Try". Accepts translated nodes. */
8
+ prefix?: ReactNode;
9
+ /** Text shown after the shortcut keys. Default: "to search this channel". Accepts translated nodes. */
10
+ suffix?: ReactNode;
10
11
  /** Keyboard shortcut keys to display. */
11
12
  shortcutKeys?: ShortcutKey[];
12
13
  /** Called when the dismiss button is clicked. */
13
14
  onDismiss?: () => void;
15
+ /** Accessible name for the dismiss button. Default: "Dismiss tip". */
16
+ dismissLabel?: string;
14
17
  /** Optional CSS class name. */
15
18
  className?: string;
16
19
  /** Custom content to replace the default tip content. */
@@ -21,5 +24,5 @@ export interface SearchTipBannerProps {
21
24
  * appears once a user has scrolled up far enough that they're clearly looking for something,
22
25
  * and offers a faster path than scroll-and-skim.
23
26
  */
24
- export default function SearchTipBanner({ prefix, suffix, shortcutKeys, onDismiss, className, children, }: SearchTipBannerProps): import("react/jsx-runtime").JSX.Element;
27
+ export default function SearchTipBanner({ prefix, suffix, shortcutKeys, onDismiss, dismissLabel, className, children, }: SearchTipBannerProps): import("react/jsx-runtime").JSX.Element;
25
28
  //# sourceMappingURL=SearchTipBanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchTipBanner.d.ts","sourceRoot":"","sources":["../../../src/components/search-tip-banner/SearchTipBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,MAAmB,EACnB,MAAiC,EACjC,YAAmE,EACnE,SAAS,EACT,SAAc,EACd,QAAQ,GACT,EAAE,oBAAoB,2CA6BtB"}
1
+ {"version":3,"file":"SearchTipBanner.d.ts","sourceRoot":"","sources":["../../../src/components/search-tip-banner/SearchTipBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,MAAM,WAAW,WAAW;IAC1B,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,0FAA0F;IAC1F,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,uGAAuG;IACvG,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,yCAAyC;IACzC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,MAAmB,EACnB,MAAiC,EACjC,YAAmE,EACnE,SAAS,EACT,YAA4B,EAC5B,SAAc,EACd,QAAQ,GACT,EAAE,oBAAoB,2CA6BtB"}
@@ -1,39 +1,40 @@
1
- import { jsxs as l, jsx as e, Fragment as m } from "react/jsx-runtime";
2
- import p from "../icon-button/IconButton.js";
3
- import h from "../icon/Icon.js";
4
- import { ShortcutTagGroup as b } from "../shortcut-tag/ShortcutTag.js";
5
- import __f from "@mattermost/compass-icons/components/close.js";const f=__f&&__f.default?__f.default:__f;
1
+ import { jsxs as l, jsx as e, Fragment as p } from "react/jsx-runtime";
2
+ import h from "../icon-button/IconButton.js";
3
+ import b from "../icon/Icon.js";
4
+ import { ShortcutTagGroup as f } from "../shortcut-tag/ShortcutTag.js";
5
+ import __d from "@mattermost/compass-icons/components/close.js";const d=__d&&__d.default?__d.default:__d;
6
6
  import a from "./SearchTipBanner.module.scss.js";
7
- function g({
7
+ function j({
8
8
  prefix: n = "Tip: Try",
9
9
  suffix: i = "to search this channel",
10
10
  shortcutKeys: t = [{ label: "⌘" }, { label: "Shift" }, { label: "F" }],
11
11
  onDismiss: r,
12
- className: s = "",
13
- children: o
12
+ dismissLabel: s = "Dismiss tip",
13
+ className: o = "",
14
+ children: c
14
15
  }) {
15
16
  return /* @__PURE__ */ l(
16
17
  "div",
17
18
  {
18
- className: [a["search-tip-banner"], s].filter(Boolean).join(" "),
19
+ className: [a["search-tip-banner"], o].filter(Boolean).join(" "),
19
20
  children: [
20
- /* @__PURE__ */ e("div", { className: a["search-tip-banner__content"], children: o ?? /* @__PURE__ */ l(m, { children: [
21
+ /* @__PURE__ */ e("div", { className: a["search-tip-banner__content"], children: c ?? /* @__PURE__ */ l(p, { children: [
21
22
  /* @__PURE__ */ e("span", { className: a["search-tip-banner__text"], children: n }),
22
23
  /* @__PURE__ */ e(
23
- b,
24
+ f,
24
25
  {
25
- labels: t.map((c) => c.label),
26
+ labels: t.map((m) => m.label),
26
27
  size: "medium"
27
28
  }
28
29
  ),
29
30
  /* @__PURE__ */ e("span", { className: a["search-tip-banner__text"], children: i })
30
31
  ] }) }),
31
32
  r != null && /* @__PURE__ */ e(
32
- p,
33
+ h,
33
34
  {
34
- "aria-label": "Dismiss tip",
35
+ "aria-label": s,
35
36
  size: "small",
36
- icon: /* @__PURE__ */ e(h, { size: "16", glyph: /* @__PURE__ */ e(f, {}) }),
37
+ icon: /* @__PURE__ */ e(b, { size: "16", glyph: /* @__PURE__ */ e(d, {}) }),
37
38
  onClick: r
38
39
  }
39
40
  )
@@ -42,6 +43,6 @@ function g({
42
43
  );
43
44
  }
44
45
  export {
45
- g as default
46
+ j as default
46
47
  };
47
48
  //# sourceMappingURL=SearchTipBanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchTipBanner.js","sources":["../../../src/components/search-tip-banner/SearchTipBanner.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport { ShortcutTagGroup } from '@/components/shortcut-tag/ShortcutTag';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './SearchTipBanner.module.scss';\n\nexport interface ShortcutKey {\n label: string;\n}\n\nexport interface SearchTipBannerProps {\n /** Text shown before the shortcut keys. Default: \"Tip: Try\". */\n prefix?: string;\n /** Text shown after the shortcut keys. Default: \"to search this channel\". */\n suffix?: string;\n /** Keyboard shortcut keys to display. */\n shortcutKeys?: ShortcutKey[];\n /** Called when the dismiss button is clicked. */\n onDismiss?: () => void;\n /** Optional CSS class name. */\n className?: string;\n /** Custom content to replace the default tip content. */\n children?: ReactNode;\n}\n\n/**\n * The Search Tip Banner nudges people toward the keyboard shortcut for in-channel search. It\n * appears once a user has scrolled up far enough that they're clearly looking for something,\n * and offers a faster path than scroll-and-skim.\n */\nexport default function SearchTipBanner({\n prefix = 'Tip: Try',\n suffix = 'to search this channel',\n shortcutKeys = [{ label: '⌘' }, { label: 'Shift' }, { label: 'F' }],\n onDismiss,\n className = '',\n children,\n}: SearchTipBannerProps) {\n return (\n <div\n className={[styles['search-tip-banner'], className]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={styles['search-tip-banner__content']}>\n {children ?? (\n <>\n <span className={styles['search-tip-banner__text']}>{prefix}</span>\n <ShortcutTagGroup\n labels={shortcutKeys.map((key) => key.label)}\n size=\"medium\"\n />\n <span className={styles['search-tip-banner__text']}>{suffix}</span>\n </>\n )}\n </div>\n {onDismiss != null && (\n <IconButton\n aria-label=\"Dismiss tip\"\n size=\"small\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["SearchTipBanner","prefix","suffix","shortcutKeys","onDismiss","className","children","jsxs","styles","jsx","Fragment","ShortcutTagGroup","key","IconButton","Icon","CloseIcon"],"mappings":";;;;;;AA+BA,SAAwBA,EAAgB;AAAA,EACtC,QAAAC,IAAS;AAAA,EACT,QAAAC,IAAS;AAAA,EACT,cAAAC,IAAe,CAAC,EAAE,OAAO,OAAO,EAAE,OAAO,WAAW,EAAE,OAAO,KAAK;AAAA,EAClE,WAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC;AACF,GAAyB;AACvB,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,CAACC,EAAO,mBAAmB,GAAGH,CAAS,EAC/C,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MAEX,UAAA;AAAA,QAAA,gBAAAI,EAAC,SAAI,WAAWD,EAAO,4BAA4B,GAChD,eACC,gBAAAD,EAAAG,GAAA,EACE,UAAA;AAAA,UAAA,gBAAAD,EAAC,QAAA,EAAK,WAAWD,EAAO,yBAAyB,GAAI,UAAAP,GAAO;AAAA,UAC5D,gBAAAQ;AAAA,YAACE;AAAA,YAAA;AAAA,cACC,QAAQR,EAAa,IAAI,CAACS,MAAQA,EAAI,KAAK;AAAA,cAC3C,MAAK;AAAA,YAAA;AAAA,UAAA;AAAA,4BAEN,QAAA,EAAK,WAAWJ,EAAO,yBAAyB,GAAI,UAAAN,EAAA,CAAO;AAAA,QAAA,EAAA,CAC9D,EAAA,CAEJ;AAAA,QACCE,KAAa,QACZ,gBAAAK;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,cAAW;AAAA,YACX,MAAK;AAAA,YACL,wBAAOC,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAL,EAACM,KAAU,GAAI;AAAA,YAC5C,SAASX;AAAA,UAAA;AAAA,QAAA;AAAA,MACX;AAAA,IAAA;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"SearchTipBanner.js","sources":["../../../src/components/search-tip-banner/SearchTipBanner.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport { ShortcutTagGroup } from '@/components/shortcut-tag/ShortcutTag';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './SearchTipBanner.module.scss';\n\nexport interface ShortcutKey {\n /** Key label (e.g. `⌘`, `Shift`). Kept as `string`: it doubles as the React key. */\n label: string;\n}\n\nexport interface SearchTipBannerProps {\n /** Text shown before the shortcut keys. Default: \"Tip: Try\". Accepts translated nodes. */\n prefix?: ReactNode;\n /** Text shown after the shortcut keys. Default: \"to search this channel\". Accepts translated nodes. */\n suffix?: ReactNode;\n /** Keyboard shortcut keys to display. */\n shortcutKeys?: ShortcutKey[];\n /** Called when the dismiss button is clicked. */\n onDismiss?: () => void;\n /** Accessible name for the dismiss button. Default: \"Dismiss tip\". */\n dismissLabel?: string;\n /** Optional CSS class name. */\n className?: string;\n /** Custom content to replace the default tip content. */\n children?: ReactNode;\n}\n\n/**\n * The Search Tip Banner nudges people toward the keyboard shortcut for in-channel search. It\n * appears once a user has scrolled up far enough that they're clearly looking for something,\n * and offers a faster path than scroll-and-skim.\n */\nexport default function SearchTipBanner({\n prefix = 'Tip: Try',\n suffix = 'to search this channel',\n shortcutKeys = [{ label: '⌘' }, { label: 'Shift' }, { label: 'F' }],\n onDismiss,\n dismissLabel = 'Dismiss tip',\n className = '',\n children,\n}: SearchTipBannerProps) {\n return (\n <div\n className={[styles['search-tip-banner'], className]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={styles['search-tip-banner__content']}>\n {children ?? (\n <>\n <span className={styles['search-tip-banner__text']}>{prefix}</span>\n <ShortcutTagGroup\n labels={shortcutKeys.map((key) => key.label)}\n size=\"medium\"\n />\n <span className={styles['search-tip-banner__text']}>{suffix}</span>\n </>\n )}\n </div>\n {onDismiss != null && (\n <IconButton\n aria-label={dismissLabel}\n size=\"small\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["SearchTipBanner","prefix","suffix","shortcutKeys","onDismiss","dismissLabel","className","children","jsxs","styles","jsx","Fragment","ShortcutTagGroup","key","IconButton","Icon","CloseIcon"],"mappings":";;;;;;AAkCA,SAAwBA,EAAgB;AAAA,EACtC,QAAAC,IAAS;AAAA,EACT,QAAAC,IAAS;AAAA,EACT,cAAAC,IAAe,CAAC,EAAE,OAAO,OAAO,EAAE,OAAO,WAAW,EAAE,OAAO,KAAK;AAAA,EAClE,WAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,WAAAC,IAAY;AAAA,EACZ,UAAAC;AACF,GAAyB;AACvB,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,CAACC,EAAO,mBAAmB,GAAGH,CAAS,EAC/C,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MAEX,UAAA;AAAA,QAAA,gBAAAI,EAAC,SAAI,WAAWD,EAAO,4BAA4B,GAChD,eACC,gBAAAD,EAAAG,GAAA,EACE,UAAA;AAAA,UAAA,gBAAAD,EAAC,QAAA,EAAK,WAAWD,EAAO,yBAAyB,GAAI,UAAAR,GAAO;AAAA,UAC5D,gBAAAS;AAAA,YAACE;AAAA,YAAA;AAAA,cACC,QAAQT,EAAa,IAAI,CAACU,MAAQA,EAAI,KAAK;AAAA,cAC3C,MAAK;AAAA,YAAA;AAAA,UAAA;AAAA,4BAEN,QAAA,EAAK,WAAWJ,EAAO,yBAAyB,GAAI,UAAAP,EAAA,CAAO;AAAA,QAAA,EAAA,CAC9D,EAAA,CAEJ;AAAA,QACCE,KAAa,QACZ,gBAAAM;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,cAAYT;AAAA,YACZ,MAAK;AAAA,YACL,wBAAOU,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAL,EAACM,KAAU,GAAI;AAAA,YAC5C,SAASZ;AAAA,UAAA;AAAA,QAAA;AAAA,MACX;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),r=require("../button/Button.cjs"),p=require("../icon-button/IconButton.cjs"),i=require("../icon/Icon.cjs"),__d=require("@mattermost/compass-icons/components/information-outline.js"),d=__d?.default??__d,__v=require("@mattermost/compass-icons/components/alert-outline.js"),v=__v?.default??__v,__I=require("@mattermost/compass-icons/components/alert-circle-outline.js"),I=__I?.default??__I,__N=require("@mattermost/compass-icons/components/check-circle-outline.js"),N=__N?.default??__N,__g=require("@mattermost/compass-icons/components/close.js"),g=__g?.default??__g,s=require("./SectionNotice.module.scss.cjs"),q={info:e.jsx(i.default,{size:"20",glyph:e.jsx(d,{})}),warning:e.jsx(i.default,{size:"20",glyph:e.jsx(I,{})}),danger:e.jsx(i.default,{size:"20",glyph:e.jsx(v,{})}),success:e.jsx(i.default,{size:"20",glyph:e.jsx(N,{})}),hint:e.jsx(i.default,{size:"20",glyph:e.jsx(d,{})})};function z({className:j="",type:t="info",icon:c,title:f,description:o,primaryButtonLabel:n,onPrimaryAction:x,secondaryButtonLabel:l,onSecondaryAction:h,onDismiss:a}){const _=s.default[`section-notice--type-${t.toLowerCase()}`],m=[s.default["section-notice"],_,j].filter(Boolean).join(" "),u=c!==void 0?c:q[t],C=n!=null||l!=null;return e.jsxs("div",{className:m,children:[e.jsxs("div",{className:s.default["section-notice__content"],children:[u!=null&&e.jsx("span",{className:s.default["section-notice__icon"],"aria-hidden":!0,children:e.jsx(i.IconSlotContext.Provider,{value:{size:"20"},children:u})}),e.jsxs("div",{className:s.default["section-notice__body"],children:[e.jsx("p",{className:s.default["section-notice__title"],children:f}),o!=null&&e.jsx("div",{className:s.default["section-notice__description"],children:o}),C&&e.jsxs("div",{className:s.default["section-notice__actions"],children:[n!=null&&e.jsx(r.default,{emphasis:"primary",size:"small",onClick:x,children:n}),l!=null&&e.jsx(r.default,{emphasis:"secondary",size:"small",onClick:h,children:l})]})]})]}),a!=null&&e.jsx(p.default,{className:s.default["section-notice__dismiss"],"aria-label":"Dismiss",size:"small",icon:e.jsx(i.default,{size:"16",glyph:e.jsx(g,{})}),onClick:a})]})}exports.default=z;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),d=require("../button/Button.cjs"),y=require("../icon-button/IconButton.cjs"),l=require("../icon/Icon.cjs"),__j=require("@mattermost/compass-icons/components/information-outline.js"),j=__j?.default??__j,__O=require("@mattermost/compass-icons/components/alert-outline.js"),O=__O?.default??__O,__S=require("@mattermost/compass-icons/components/alert-circle-outline.js"),S=__S?.default??__S,__k=require("@mattermost/compass-icons/components/check-circle-outline.js"),k=__k?.default??__k,__A=require("@mattermost/compass-icons/components/close.js"),A=__A?.default??__A,b=require("../../utils/props.cjs"),s=require("./SectionNotice.module.scss.cjs"),w={info:e.jsx(l.default,{size:"20",glyph:e.jsx(j,{})}),warning:e.jsx(l.default,{size:"20",glyph:e.jsx(S,{})}),danger:e.jsx(l.default,{size:"20",glyph:e.jsx(O,{})}),success:e.jsx(l.default,{size:"20",glyph:e.jsx(k,{})}),hint:e.jsx(l.default,{size:"20",glyph:e.jsx(j,{})})};function M({className:f="",type:t="info",icon:o,title:x,description:a,primaryButtonLabel:n,onPrimaryAction:h,secondaryButtonLabel:c,onSecondaryAction:_,primaryActionDisabled:m,primaryActionLoading:g,secondaryActionDisabled:C,secondaryActionLoading:N,onDismiss:r,dismissLabel:q="Dismiss",dismissButtonProps:i,...v}){const I=s.default[`section-notice--type-${t.toLowerCase()}`],z=[s.default["section-notice"],I,f].filter(Boolean).join(" "),u=o!==void 0?o:w[t],p=n!=null||c!=null;return e.jsxs("div",{...v,className:z,children:[e.jsxs("div",{className:s.default["section-notice__content"],children:[u!=null&&e.jsx("span",{className:s.default["section-notice__icon"],"aria-hidden":!0,children:e.jsx(l.IconSlotContext.Provider,{value:{size:"20"},children:u})}),e.jsxs("div",{className:s.default["section-notice__body"],children:[e.jsx("p",{className:s.default["section-notice__title"],children:x}),a!=null&&e.jsx("div",{className:s.default["section-notice__description"],children:a}),p&&e.jsxs("div",{className:s.default["section-notice__actions"],children:[n!=null&&e.jsx(d.default,{emphasis:"primary",size:"small",disabled:m,loading:g,onClick:h,children:n}),c!=null&&e.jsx(d.default,{emphasis:"secondary",size:"small",disabled:C,loading:N,onClick:_,children:c})]})]})]}),r!=null&&e.jsx(y.default,{...i,className:b.mergeClassNames(s.default["section-notice__dismiss"],i==null?void 0:i.className),"aria-label":q,size:"small",icon:e.jsx(l.default,{size:"16",glyph:e.jsx(A,{})}),onClick:r})]})}exports.default=M;
2
2
  //# sourceMappingURL=SectionNotice.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SectionNotice.cjs","sources":["../../../src/components/section-notice/SectionNotice.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport Button from '@/components/button/Button';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport { IconSlotContext } from '@/components/icon/Icon';\nimport InformationOutlineIcon from '@mattermost/compass-icons/components/information-outline';\nimport AlertOutlineIcon from '@mattermost/compass-icons/components/alert-outline';\nimport AlertCircleOutlineIcon from '@mattermost/compass-icons/components/alert-circle-outline';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './SectionNotice.module.scss';\n\nexport type SectionNoticeType =\n | 'info'\n | 'warning'\n | 'danger'\n | 'success'\n | 'hint';\n\nexport interface SectionNoticeProps {\n /** Optional CSS class name. */\n className?: string;\n /** Type controls color-coding. Default: Info. */\n type?: SectionNoticeType;\n /** Optional leading icon. When omitted a default type icon is shown. Pass `<Icon glyph={<SomeIcon />} />` — SectionNotice provides the correct size via context. */\n icon?: ReactNode;\n /** Title / headline. Accepts translated nodes (e.g. `<FormattedMessage/>`). */\n title: ReactNode;\n /** Optional body description. */\n description?: ReactNode;\n /** Primary action button label. */\n primaryButtonLabel?: ReactNode;\n /** Primary action callback. */\n onPrimaryAction?: () => void;\n /** Secondary action button label. */\n secondaryButtonLabel?: ReactNode;\n /** Secondary action callback. */\n onSecondaryAction?: () => void;\n /** Called when dismiss (×) button is clicked. When omitted, dismiss button is hidden. */\n onDismiss?: () => void;\n}\n\nconst DEFAULT_ICONS: Record<SectionNoticeType, ReactNode> = {\n info: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n warning: <Icon size=\"20\" glyph={<AlertCircleOutlineIcon />} />,\n danger: <Icon size=\"20\" glyph={<AlertOutlineIcon />} />,\n success: <Icon size=\"20\" glyph={<CheckCircleOutlineIcon />} />,\n hint: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n};\n\n/**\n * A Section Notice is an in-context alert that lives inside a settings page, admin panel, or\n * other content region. Use it to flag important information, report a state change, or\n * surface a problem the user needs to act on — without yanking them out of the flow.\n */\nexport default function SectionNotice({\n className = '',\n type = 'info',\n icon,\n title,\n description,\n primaryButtonLabel,\n onPrimaryAction,\n secondaryButtonLabel,\n onSecondaryAction,\n onDismiss,\n}: SectionNoticeProps) {\n const typeClass = styles[`section-notice--type-${type.toLowerCase()}`];\n\n const rootClass = [styles['section-notice'], typeClass, className]\n .filter(Boolean)\n .join(' ');\n\n const resolvedIcon = icon !== undefined ? icon : DEFAULT_ICONS[type];\n\n const hasActions = primaryButtonLabel != null || secondaryButtonLabel != null;\n\n return (\n <div className={rootClass}>\n <div className={styles['section-notice__content']}>\n {resolvedIcon != null && (\n <span className={styles['section-notice__icon']} aria-hidden>\n <IconSlotContext.Provider value={{ size: '20' }}>\n {resolvedIcon}\n </IconSlotContext.Provider>\n </span>\n )}\n <div className={styles['section-notice__body']}>\n <p className={styles['section-notice__title']}>{title}</p>\n {description != null && (\n <div className={styles['section-notice__description']}>\n {description}\n </div>\n )}\n {hasActions && (\n <div className={styles['section-notice__actions']}>\n {primaryButtonLabel != null && (\n <Button\n emphasis=\"primary\"\n size=\"small\"\n onClick={onPrimaryAction}\n >\n {primaryButtonLabel}\n </Button>\n )}\n {secondaryButtonLabel != null && (\n <Button\n emphasis=\"secondary\"\n size=\"small\"\n onClick={onSecondaryAction}\n >\n {secondaryButtonLabel}\n </Button>\n )}\n </div>\n )}\n </div>\n </div>\n {onDismiss != null && (\n <IconButton\n className={styles['section-notice__dismiss']}\n aria-label=\"Dismiss\"\n size=\"small\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["DEFAULT_ICONS","Icon","jsx","InformationOutlineIcon","AlertCircleOutlineIcon","AlertOutlineIcon","CheckCircleOutlineIcon","SectionNotice","className","type","icon","title","description","primaryButtonLabel","onPrimaryAction","secondaryButtonLabel","onSecondaryAction","onDismiss","typeClass","styles","rootClass","resolvedIcon","hasActions","jsxs","IconSlotContext","Button","IconButton","CloseIcon"],"mappings":"onBA0CMA,EAAsD,CAC1D,WAAOC,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACC,IAAuB,EAAI,EACzD,cAAUF,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACE,IAAuB,EAAI,EAC5D,aAASH,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACG,IAAiB,EAAI,EACrD,cAAUJ,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACI,IAAuB,EAAI,EAC5D,WAAOL,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOC,EAAAA,IAACC,IAAuB,CAAA,CAAI,CAC3D,EAOA,SAAwBI,EAAc,CACpC,UAAAC,EAAY,GACZ,KAAAC,EAAO,OACP,KAAAC,EACA,MAAAC,EACA,YAAAC,EACA,mBAAAC,EACA,gBAAAC,EACA,qBAAAC,EACA,kBAAAC,EACA,UAAAC,CACF,EAAuB,CACrB,MAAMC,EAAYC,EAAAA,QAAO,wBAAwBV,EAAK,YAAA,CAAa,EAAE,EAE/DW,EAAY,CAACD,UAAO,gBAAgB,EAAGD,EAAWV,CAAS,EAC9D,OAAO,OAAO,EACd,KAAK,GAAG,EAELa,EAAeX,IAAS,OAAYA,EAAOV,EAAcS,CAAI,EAE7Da,EAAaT,GAAsB,MAAQE,GAAwB,KAEzE,OACEQ,EAAAA,KAAC,MAAA,CAAI,UAAWH,EACd,SAAA,CAAAG,EAAAA,KAAC,MAAA,CAAI,UAAWJ,EAAAA,QAAO,yBAAyB,EAC7C,SAAA,CAAAE,GAAgB,MACfnB,EAAAA,IAAC,OAAA,CAAK,UAAWiB,EAAAA,QAAO,sBAAsB,EAAG,cAAW,GAC1D,eAACK,kBAAgB,SAAhB,CAAyB,MAAO,CAAE,KAAM,IAAA,EACtC,WACH,EACF,EAEFD,EAAAA,KAAC,MAAA,CAAI,UAAWJ,EAAAA,QAAO,sBAAsB,EAC3C,SAAA,CAAAjB,MAAC,IAAA,CAAE,UAAWiB,EAAAA,QAAO,uBAAuB,EAAI,SAAAR,EAAM,EACrDC,GAAe,MACdV,MAAC,MAAA,CAAI,UAAWiB,EAAAA,QAAO,6BAA6B,EACjD,SAAAP,EACH,EAEDU,GACCC,EAAAA,KAAC,MAAA,CAAI,UAAWJ,UAAO,yBAAyB,EAC7C,SAAA,CAAAN,GAAsB,MACrBX,EAAAA,IAACuB,EAAAA,QAAA,CACC,SAAS,UACT,KAAK,QACL,QAASX,EAER,SAAAD,CAAA,CAAA,EAGJE,GAAwB,MACvBb,EAAAA,IAACuB,EAAAA,QAAA,CACC,SAAS,YACT,KAAK,QACL,QAAST,EAER,SAAAD,CAAA,CAAA,CACH,CAAA,CAEJ,CAAA,CAAA,CAEJ,CAAA,EACF,EACCE,GAAa,MACZf,EAAAA,IAACwB,EAAAA,QAAA,CACC,UAAWP,EAAAA,QAAO,yBAAyB,EAC3C,aAAW,UACX,KAAK,QACL,WAAOlB,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACyB,IAAU,EAAI,EAC5C,QAASV,CAAA,CAAA,CACX,EAEJ,CAEJ"}
1
+ {"version":3,"file":"SectionNotice.cjs","sources":["../../../src/components/section-notice/SectionNotice.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\nimport Button from '@/components/button/Button';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport { IconSlotContext } from '@/components/icon/Icon';\nimport InformationOutlineIcon from '@mattermost/compass-icons/components/information-outline';\nimport AlertOutlineIcon from '@mattermost/compass-icons/components/alert-outline';\nimport AlertCircleOutlineIcon from '@mattermost/compass-icons/components/alert-circle-outline';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport type { BuiltInButtonProps } from '@/utils/props';\nimport { mergeClassNames } from '@/utils/props';\nimport styles from './SectionNotice.module.scss';\n\nexport type SectionNoticeType =\n | 'info'\n | 'warning'\n | 'danger'\n | 'success'\n | 'hint';\n\nexport interface SectionNoticeProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'title'\n> {\n /** Optional CSS class name. */\n className?: string;\n /** Type controls color-coding. Default: Info. */\n type?: SectionNoticeType;\n /** Optional leading icon. When omitted a default type icon is shown. Pass `<Icon glyph={<SomeIcon />} />` — SectionNotice provides the correct size via context. */\n icon?: ReactNode;\n /** Title / headline. Accepts translated nodes (e.g. `<FormattedMessage/>`). */\n title: ReactNode;\n /** Optional body description. */\n description?: ReactNode;\n /** Primary action button label. */\n primaryButtonLabel?: ReactNode;\n /** Primary action callback. */\n onPrimaryAction?: () => void;\n /** Disables the primary action button. */\n primaryActionDisabled?: boolean;\n /** Shows a spinner in the primary action button and disables it. */\n primaryActionLoading?: boolean;\n /** Secondary action button label. */\n secondaryButtonLabel?: ReactNode;\n /** Secondary action callback. */\n onSecondaryAction?: () => void;\n /** Disables the secondary action button. */\n secondaryActionDisabled?: boolean;\n /** Shows a spinner in the secondary action button and disables it. */\n secondaryActionLoading?: boolean;\n /** Called when dismiss (×) button is clicked. When omitted, dismiss button is hidden. */\n onDismiss?: () => void;\n /** Accessible name for the dismiss button. Default: \"Dismiss\". */\n dismissLabel?: string;\n /** Extra attributes for the dismiss button (e.g. `data-testid`). */\n dismissButtonProps?: BuiltInButtonProps;\n}\n\nconst DEFAULT_ICONS: Record<SectionNoticeType, ReactNode> = {\n info: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n warning: <Icon size=\"20\" glyph={<AlertCircleOutlineIcon />} />,\n danger: <Icon size=\"20\" glyph={<AlertOutlineIcon />} />,\n success: <Icon size=\"20\" glyph={<CheckCircleOutlineIcon />} />,\n hint: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n};\n\n/**\n * A Section Notice is an in-context alert that lives inside a settings page, admin panel, or\n * other content region. Use it to flag important information, report a state change, or\n * surface a problem the user needs to act on — without yanking them out of the flow.\n */\nexport default function SectionNotice({\n className = '',\n type = 'info',\n icon,\n title,\n description,\n primaryButtonLabel,\n onPrimaryAction,\n secondaryButtonLabel,\n onSecondaryAction,\n primaryActionDisabled,\n primaryActionLoading,\n secondaryActionDisabled,\n secondaryActionLoading,\n onDismiss,\n dismissLabel = 'Dismiss',\n dismissButtonProps,\n ...rest\n}: SectionNoticeProps) {\n const typeClass = styles[`section-notice--type-${type.toLowerCase()}`];\n\n const rootClass = [styles['section-notice'], typeClass, className]\n .filter(Boolean)\n .join(' ');\n\n const resolvedIcon = icon !== undefined ? icon : DEFAULT_ICONS[type];\n\n const hasActions = primaryButtonLabel != null || secondaryButtonLabel != null;\n\n return (\n <div {...rest} className={rootClass}>\n <div className={styles['section-notice__content']}>\n {resolvedIcon != null && (\n <span className={styles['section-notice__icon']} aria-hidden>\n <IconSlotContext.Provider value={{ size: '20' }}>\n {resolvedIcon}\n </IconSlotContext.Provider>\n </span>\n )}\n <div className={styles['section-notice__body']}>\n <p className={styles['section-notice__title']}>{title}</p>\n {description != null && (\n <div className={styles['section-notice__description']}>\n {description}\n </div>\n )}\n {hasActions && (\n <div className={styles['section-notice__actions']}>\n {primaryButtonLabel != null && (\n <Button\n emphasis=\"primary\"\n size=\"small\"\n disabled={primaryActionDisabled}\n loading={primaryActionLoading}\n onClick={onPrimaryAction}\n >\n {primaryButtonLabel}\n </Button>\n )}\n {secondaryButtonLabel != null && (\n <Button\n emphasis=\"secondary\"\n size=\"small\"\n disabled={secondaryActionDisabled}\n loading={secondaryActionLoading}\n onClick={onSecondaryAction}\n >\n {secondaryButtonLabel}\n </Button>\n )}\n </div>\n )}\n </div>\n </div>\n {onDismiss != null && (\n <IconButton\n {...dismissButtonProps}\n className={mergeClassNames(\n styles['section-notice__dismiss'],\n dismissButtonProps?.className,\n )}\n aria-label={dismissLabel}\n size=\"small\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["DEFAULT_ICONS","Icon","jsx","InformationOutlineIcon","AlertCircleOutlineIcon","AlertOutlineIcon","CheckCircleOutlineIcon","SectionNotice","className","type","icon","title","description","primaryButtonLabel","onPrimaryAction","secondaryButtonLabel","onSecondaryAction","primaryActionDisabled","primaryActionLoading","secondaryActionDisabled","secondaryActionLoading","onDismiss","dismissLabel","dismissButtonProps","rest","typeClass","styles","rootClass","resolvedIcon","hasActions","jsxs","IconSlotContext","Button","IconButton","mergeClassNames","CloseIcon"],"mappings":"upBA2DMA,EAAsD,CAC1D,WAAOC,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACC,IAAuB,EAAI,EACzD,cAAUF,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACE,IAAuB,EAAI,EAC5D,aAASH,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACG,IAAiB,EAAI,EACrD,cAAUJ,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACI,IAAuB,EAAI,EAC5D,WAAOL,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOC,EAAAA,IAACC,IAAuB,CAAA,CAAI,CAC3D,EAOA,SAAwBI,EAAc,CACpC,UAAAC,EAAY,GACZ,KAAAC,EAAO,OACP,KAAAC,EACA,MAAAC,EACA,YAAAC,EACA,mBAAAC,EACA,gBAAAC,EACA,qBAAAC,EACA,kBAAAC,EACA,sBAAAC,EACA,qBAAAC,EACA,wBAAAC,EACA,uBAAAC,EACA,UAAAC,EACA,aAAAC,EAAe,UACf,mBAAAC,EACA,GAAGC,CACL,EAAuB,CACrB,MAAMC,EAAYC,EAAAA,QAAO,wBAAwBjB,EAAK,YAAA,CAAa,EAAE,EAE/DkB,EAAY,CAACD,UAAO,gBAAgB,EAAGD,EAAWjB,CAAS,EAC9D,OAAO,OAAO,EACd,KAAK,GAAG,EAELoB,EAAelB,IAAS,OAAYA,EAAOV,EAAcS,CAAI,EAE7DoB,EAAahB,GAAsB,MAAQE,GAAwB,KAEzE,OACEe,EAAAA,KAAC,MAAA,CAAK,GAAGN,EAAM,UAAWG,EACxB,SAAA,CAAAG,EAAAA,KAAC,MAAA,CAAI,UAAWJ,EAAAA,QAAO,yBAAyB,EAC7C,SAAA,CAAAE,GAAgB,MACf1B,EAAAA,IAAC,OAAA,CAAK,UAAWwB,EAAAA,QAAO,sBAAsB,EAAG,cAAW,GAC1D,eAACK,kBAAgB,SAAhB,CAAyB,MAAO,CAAE,KAAM,IAAA,EACtC,WACH,EACF,EAEFD,EAAAA,KAAC,MAAA,CAAI,UAAWJ,EAAAA,QAAO,sBAAsB,EAC3C,SAAA,CAAAxB,MAAC,IAAA,CAAE,UAAWwB,EAAAA,QAAO,uBAAuB,EAAI,SAAAf,EAAM,EACrDC,GAAe,MACdV,MAAC,MAAA,CAAI,UAAWwB,EAAAA,QAAO,6BAA6B,EACjD,SAAAd,EACH,EAEDiB,GACCC,EAAAA,KAAC,MAAA,CAAI,UAAWJ,UAAO,yBAAyB,EAC7C,SAAA,CAAAb,GAAsB,MACrBX,EAAAA,IAAC8B,EAAAA,QAAA,CACC,SAAS,UACT,KAAK,QACL,SAAUf,EACV,QAASC,EACT,QAASJ,EAER,SAAAD,CAAA,CAAA,EAGJE,GAAwB,MACvBb,EAAAA,IAAC8B,EAAAA,QAAA,CACC,SAAS,YACT,KAAK,QACL,SAAUb,EACV,QAASC,EACT,QAASJ,EAER,SAAAD,CAAA,CAAA,CACH,CAAA,CAEJ,CAAA,CAAA,CAEJ,CAAA,EACF,EACCM,GAAa,MACZnB,EAAAA,IAAC+B,EAAAA,QAAA,CACE,GAAGV,EACJ,UAAWW,EAAAA,gBACTR,EAAAA,QAAO,yBAAyB,EAChCH,GAAA,YAAAA,EAAoB,SAAA,EAEtB,aAAYD,EACZ,KAAK,QACL,WAAOrB,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACiC,IAAU,EAAI,EAC5C,QAASd,CAAA,CAAA,CACX,EAEJ,CAEJ"}
@@ -1,6 +1,7 @@
1
- import { ReactNode } from 'react';
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ import { BuiltInButtonProps } from '../../utils/props';
2
3
  export type SectionNoticeType = 'info' | 'warning' | 'danger' | 'success' | 'hint';
3
- export interface SectionNoticeProps {
4
+ export interface SectionNoticeProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
4
5
  /** Optional CSS class name. */
5
6
  className?: string;
6
7
  /** Type controls color-coding. Default: Info. */
@@ -15,17 +16,29 @@ export interface SectionNoticeProps {
15
16
  primaryButtonLabel?: ReactNode;
16
17
  /** Primary action callback. */
17
18
  onPrimaryAction?: () => void;
19
+ /** Disables the primary action button. */
20
+ primaryActionDisabled?: boolean;
21
+ /** Shows a spinner in the primary action button and disables it. */
22
+ primaryActionLoading?: boolean;
18
23
  /** Secondary action button label. */
19
24
  secondaryButtonLabel?: ReactNode;
20
25
  /** Secondary action callback. */
21
26
  onSecondaryAction?: () => void;
27
+ /** Disables the secondary action button. */
28
+ secondaryActionDisabled?: boolean;
29
+ /** Shows a spinner in the secondary action button and disables it. */
30
+ secondaryActionLoading?: boolean;
22
31
  /** Called when dismiss (×) button is clicked. When omitted, dismiss button is hidden. */
23
32
  onDismiss?: () => void;
33
+ /** Accessible name for the dismiss button. Default: "Dismiss". */
34
+ dismissLabel?: string;
35
+ /** Extra attributes for the dismiss button (e.g. `data-testid`). */
36
+ dismissButtonProps?: BuiltInButtonProps;
24
37
  }
25
38
  /**
26
39
  * A Section Notice is an in-context alert that lives inside a settings page, admin panel, or
27
40
  * other content region. Use it to flag important information, report a state change, or
28
41
  * surface a problem the user needs to act on — without yanking them out of the flow.
29
42
  */
30
- export default function SectionNotice({ className, type, icon, title, description, primaryButtonLabel, onPrimaryAction, secondaryButtonLabel, onSecondaryAction, onDismiss, }: SectionNoticeProps): import("react/jsx-runtime").JSX.Element;
43
+ export default function SectionNotice({ className, type, icon, title, description, primaryButtonLabel, onPrimaryAction, secondaryButtonLabel, onSecondaryAction, primaryActionDisabled, primaryActionLoading, secondaryActionDisabled, secondaryActionLoading, onDismiss, dismissLabel, dismissButtonProps, ...rest }: SectionNoticeProps): import("react/jsx-runtime").JSX.Element;
31
44
  //# sourceMappingURL=SectionNotice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SectionNotice.d.ts","sourceRoot":"","sources":["../../../src/components/section-notice/SectionNotice.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAYvC,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,SAAS,GACT,QAAQ,GACR,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,oKAAoK;IACpK,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,+EAA+E;IAC/E,KAAK,EAAE,SAAS,CAAC;IACjB,iCAAiC;IACjC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,mCAAmC;IACnC,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,qCAAqC;IACrC,oBAAoB,CAAC,EAAE,SAAS,CAAC;IACjC,iCAAiC;IACjC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAUD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,SAAc,EACd,IAAa,EACb,IAAI,EACJ,KAAK,EACL,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,GACV,EAAE,kBAAkB,2CA+DpB"}
1
+ {"version":3,"file":"SectionNotice.d.ts","sourceRoot":"","sources":["../../../src/components/section-notice/SectionNotice.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxD,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,SAAS,GACT,QAAQ,GACR,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAC9C,cAAc,CAAC,cAAc,CAAC,EAC9B,OAAO,CACR;IACC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,oKAAoK;IACpK,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,+EAA+E;IAC/E,KAAK,EAAE,SAAS,CAAC;IACjB,iCAAiC;IACjC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,mCAAmC;IACnC,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAC/B,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,0CAA0C;IAC1C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qCAAqC;IACrC,oBAAoB,CAAC,EAAE,SAAS,CAAC;IACjC,iCAAiC;IACjC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,4CAA4C;IAC5C,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,sEAAsE;IACtE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAUD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,SAAc,EACd,IAAa,EACb,IAAI,EACJ,KAAK,EACL,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,SAAS,EACT,YAAwB,EACxB,kBAAkB,EAClB,GAAG,IAAI,EACR,EAAE,kBAAkB,2CAuEpB"}