@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 +1 @@
1
- ._pagination-dots_1r0u8_2{display:inline-flex;overflow:visible}._pagination-dots--horizontal_1r0u8_6{flex-direction:row;align-items:center}._pagination-dots--vertical_1r0u8_10{flex-direction:column;justify-content:center}._pagination-dots--inverted_1r0u8_14 ._pagination-dots__dot_1r0u8_14{background-color:rgba(var(--sidebar-text-rgb),.4)}._pagination-dots--inverted_1r0u8_14 ._pagination-dots__dot--active_1r0u8_17{background-color:var(--sidebar-text);box-shadow:0 0 0 4px rgba(var(--sidebar-text-rgb),.16)}._pagination-dots--on-primary_1r0u8_21{--focus-ring-color: var(--button-color)}._pagination-dots--on-primary_1r0u8_21 ._pagination-dots__dot_1r0u8_14{background-color:rgba(var(--button-color-rgb),.4)}._pagination-dots--on-primary_1r0u8_21 ._pagination-dots__dot--active_1r0u8_17{background-color:var(--button-color);box-shadow:0 0 0 4px rgba(var(--button-color-rgb),.24)}._pagination-dots__item_1r0u8_31{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;border-radius:var(--radius-full);cursor:pointer;flex-shrink:0;outline:2px solid color-mix(in srgb,var(--focus-ring-color) 0%,transparent);outline-offset:0;transition:outline-color var(--duration-quick) var(--ease-transition),outline-offset var(--duration-quick) var(--ease-transition)}._pagination-dots__item_1r0u8_31:focus-visible{outline-color:var(--focus-ring-color);outline-offset:3px}._pagination-dots__dot_1r0u8_14{display:block;width:6px;height:6px;border-radius:var(--radius-full);background-color:rgba(var(--center-channel-color-rgb),.24);transition:background-color var(--duration-quick) var(--ease-transition),width var(--duration-quick) var(--ease-transition),height var(--duration-quick) var(--ease-transition),box-shadow var(--duration-quick) var(--ease-transition)}._pagination-dots__dot--active_1r0u8_17{background-color:var(--button-bg);box-shadow:0 0 0 4px rgba(var(--button-bg-rgb),.16)}
1
+ ._pagination-dots_1j47i_2{display:inline-flex;overflow:visible}._pagination-dots--horizontal_1j47i_6{flex-direction:row;align-items:center}._pagination-dots--vertical_1j47i_10{flex-direction:column;justify-content:center}._pagination-dots--inverted_1j47i_14 ._pagination-dots__dot_1j47i_14{background-color:rgba(var(--sidebar-text-rgb),.4)}._pagination-dots--inverted_1j47i_14 ._pagination-dots__dot--active_1j47i_17{background-color:var(--sidebar-text);box-shadow:0 0 0 4px rgba(var(--sidebar-text-rgb),.16)}._pagination-dots--on-primary_1j47i_21{--focus-ring-color: var(--button-color)}._pagination-dots--on-primary_1j47i_21 ._pagination-dots__dot_1j47i_14{background-color:rgba(var(--button-color-rgb),.4)}._pagination-dots--on-primary_1j47i_21 ._pagination-dots__dot--active_1j47i_17{background-color:var(--button-color);box-shadow:0 0 0 4px rgba(var(--button-color-rgb),.24)}._pagination-dots__item_1j47i_31{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;border-radius:var(--radius-pill);cursor:pointer;flex-shrink:0;outline:2px solid color-mix(in srgb,var(--focus-ring-color) 0%,transparent);outline-offset:0;transition:outline-color var(--duration-quick) var(--ease-transition),outline-offset var(--duration-quick) var(--ease-transition)}._pagination-dots__item_1j47i_31:focus-visible{outline-color:var(--focus-ring-color);outline-offset:3px}._pagination-dots__dot_1j47i_14{display:block;width:6px;height:6px;border-radius:var(--radius-pill);background-color:rgba(var(--center-channel-color-rgb),.24);transition:background-color var(--duration-quick) var(--ease-transition),width var(--duration-quick) var(--ease-transition),height var(--duration-quick) var(--ease-transition),box-shadow var(--duration-quick) var(--ease-transition)}._pagination-dots__dot--active_1j47i_17{background-color:var(--button-bg);box-shadow:0 0 0 4px rgba(var(--button-bg-rgb),.16)}
@@ -13,11 +13,15 @@ export interface PaginationDotsProps {
13
13
  onPageChange?: (page: number) => void;
14
14
  /** Optional CSS class name. */
15
15
  className?: string;
16
+ /** Accessible name for the dot list. Default: "Pages". */
17
+ label?: string;
18
+ /** Accessible name for each dot. Default: `Page {page}`. */
19
+ formatPageLabel?: (page: number) => string;
16
20
  }
17
21
  /**
18
22
  * Pagination Dots indicate progress through a fixed sequence of steps — most often a
19
23
  * multi-step onboarding flow or a swipeable carousel. One dot per step, the active one
20
24
  * filled, the rest quiet.
21
25
  */
22
- export default function PaginationDots({ pages, activePage, orientation, dotStyle, onPageChange, className, }: PaginationDotsProps): import("react/jsx-runtime").JSX.Element;
26
+ export default function PaginationDots({ pages, activePage, orientation, dotStyle, onPageChange, className, label, formatPageLabel, }: PaginationDotsProps): import("react/jsx-runtime").JSX.Element;
23
27
  //# sourceMappingURL=PaginationDots.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationDots.d.ts","sourceRoot":"","sources":["../../../src/components/pagination-dots/PaginationDots.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG,UAAU,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,qCAAqC;IACrC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,wEAAwE;IACxE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,KAAK,EACL,UAAU,EACV,WAA0B,EAC1B,QAAoB,EACpB,YAAY,EACZ,SAAc,GACf,EAAE,mBAAmB,2CAqDrB"}
1
+ {"version":3,"file":"PaginationDots.d.ts","sourceRoot":"","sources":["../../../src/components/pagination-dots/PaginationDots.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG,UAAU,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,qCAAqC;IACrC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,wEAAwE;IACxE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C;AAID;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,KAAK,EACL,UAAU,EACV,WAA0B,EAC1B,QAAoB,EACpB,YAAY,EACZ,SAAc,EACd,KAAe,EACf,eAAwC,GACzC,EAAE,mBAAmB,2CAqDrB"}
@@ -1,48 +1,51 @@
1
- import { jsx as a } from "react/jsx-runtime";
1
+ import { jsx as n } from "react/jsx-runtime";
2
2
  import t from "./PaginationDots.module.scss.js";
3
- function j({
4
- pages: r,
3
+ const y = (i) => `Page ${i}`;
4
+ function z({
5
+ pages: i,
5
6
  activePage: e,
6
7
  orientation: l = "horizontal",
7
- dotStyle: n = "default",
8
+ dotStyle: s = "default",
8
9
  onPageChange: o,
9
- className: c = ""
10
+ className: c = "",
11
+ label: d = "Pages",
12
+ formatPageLabel: p = y
10
13
  }) {
11
- const d = l === "vertical", p = n === "inverted", m = n === "on-primary", f = d ? t["pagination-dots--vertical"] : t["pagination-dots--horizontal"], v = p ? t["pagination-dots--inverted"] : m ? t["pagination-dots--on-primary"] : "";
12
- return /* @__PURE__ */ a(
14
+ const m = l === "vertical", f = s === "inverted", u = s === "on-primary", v = m ? t["pagination-dots--vertical"] : t["pagination-dots--horizontal"], b = f ? t["pagination-dots--inverted"] : u ? t["pagination-dots--on-primary"] : "";
15
+ return /* @__PURE__ */ n(
13
16
  "div",
14
17
  {
15
18
  className: [
16
19
  t["pagination-dots"],
17
- f,
18
20
  v,
21
+ b,
19
22
  c
20
23
  ].filter(Boolean).join(" "),
21
24
  role: "tablist",
22
- "aria-label": "Pages",
23
- children: Array.from({ length: r }, (b, u) => {
24
- const i = u + 1, s = i === e, _ = [
25
+ "aria-label": d,
26
+ children: Array.from({ length: i }, (j, _) => {
27
+ const a = _ + 1, r = a === e, g = [
25
28
  t["pagination-dots__dot"],
26
- s ? t["pagination-dots__dot--active"] : ""
29
+ r ? t["pagination-dots__dot--active"] : ""
27
30
  ].filter(Boolean).join(" ");
28
- return /* @__PURE__ */ a(
31
+ return /* @__PURE__ */ n(
29
32
  "button",
30
33
  {
31
34
  type: "button",
32
35
  role: "tab",
33
- "aria-selected": s,
34
- "aria-label": `Page ${i}`,
36
+ "aria-selected": r,
37
+ "aria-label": p(a),
35
38
  className: t["pagination-dots__item"],
36
- onClick: () => o == null ? void 0 : o(i),
37
- children: /* @__PURE__ */ a("span", { className: _ })
39
+ onClick: () => o == null ? void 0 : o(a),
40
+ children: /* @__PURE__ */ n("span", { className: g })
38
41
  },
39
- i
42
+ a
40
43
  );
41
44
  })
42
45
  }
43
46
  );
44
47
  }
45
48
  export {
46
- j as default
49
+ z as default
47
50
  };
48
51
  //# sourceMappingURL=PaginationDots.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationDots.js","sources":["../../../src/components/pagination-dots/PaginationDots.tsx"],"sourcesContent":["import styles from './PaginationDots.module.scss';\n\nexport type PaginationDotsOrientation = 'horizontal' | 'vertical';\nexport type PaginationDotsStyle = 'default' | 'inverted' | 'on-primary';\n\nexport interface PaginationDotsProps {\n /** Total number of pages/steps. */\n pages: number;\n /** Currently active page (1-indexed). */\n activePage: number;\n /** Layout orientation. Default: Horizontal. */\n orientation?: PaginationDotsOrientation;\n /** Color style. Default: Default. */\n dotStyle?: PaginationDotsStyle;\n /** Called when a dot is clicked. Receives the 1-indexed page number. */\n onPageChange?: (page: number) => void;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * Pagination Dots indicate progress through a fixed sequence of steps — most often a\n * multi-step onboarding flow or a swipeable carousel. One dot per step, the active one\n * filled, the rest quiet.\n */\nexport default function PaginationDots({\n pages,\n activePage,\n orientation = 'horizontal',\n dotStyle = 'default',\n onPageChange,\n className = '',\n}: PaginationDotsProps) {\n const isVertical = orientation === 'vertical';\n const isInverted = dotStyle === 'inverted';\n const isOnPrimary = dotStyle === 'on-primary';\n\n const orientationClass = isVertical\n ? styles['pagination-dots--vertical']\n : styles['pagination-dots--horizontal'];\n const styleClass = isInverted\n ? styles['pagination-dots--inverted']\n : isOnPrimary\n ? styles['pagination-dots--on-primary']\n : '';\n\n return (\n <div\n className={[\n styles['pagination-dots'],\n orientationClass,\n styleClass,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n role=\"tablist\"\n aria-label=\"Pages\"\n >\n {Array.from({ length: pages }, (_, i) => {\n const page = i + 1;\n const isActive = page === activePage;\n const dotClass = [\n styles['pagination-dots__dot'],\n isActive ? styles['pagination-dots__dot--active'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n key={page}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-label={`Page ${page}`}\n className={styles['pagination-dots__item']}\n onClick={() => onPageChange?.(page)}\n >\n <span className={dotClass} />\n </button>\n );\n })}\n </div>\n );\n}\n"],"names":["PaginationDots","pages","activePage","orientation","dotStyle","onPageChange","className","isVertical","isInverted","isOnPrimary","orientationClass","styles","styleClass","jsx","_","i","page","isActive","dotClass"],"mappings":";;AAyBA,SAAwBA,EAAe;AAAA,EACrC,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,UAAAC,IAAW;AAAA,EACX,cAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAwB;AACtB,QAAMC,IAAaJ,MAAgB,YAC7BK,IAAaJ,MAAa,YAC1BK,IAAcL,MAAa,cAE3BM,IAAmBH,IACrBI,EAAO,2BAA2B,IAClCA,EAAO,6BAA6B,GAClCC,IAAaJ,IACfG,EAAO,2BAA2B,IAClCF,IACEE,EAAO,6BAA6B,IACpC;AAEN,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACTF,EAAO,iBAAiB;AAAA,QACxBD;AAAA,QACAE;AAAA,QACAN;AAAA,MAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MACX,MAAK;AAAA,MACL,cAAW;AAAA,MAEV,UAAA,MAAM,KAAK,EAAE,QAAQL,KAAS,CAACa,GAAGC,MAAM;AACvC,cAAMC,IAAOD,IAAI,GACXE,IAAWD,MAASd,GACpBgB,IAAW;AAAA,UACfP,EAAO,sBAAsB;AAAA,UAC7BM,IAAWN,EAAO,8BAA8B,IAAI;AAAA,QAAA,EAEnD,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,eACE,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,MAAK;AAAA,YACL,MAAK;AAAA,YACL,iBAAeI;AAAA,YACf,cAAY,QAAQD,CAAI;AAAA,YACxB,WAAWL,EAAO,uBAAuB;AAAA,YACzC,SAAS,MAAMN,KAAA,gBAAAA,EAAeW;AAAA,YAE9B,UAAA,gBAAAH,EAAC,QAAA,EAAK,WAAWK,EAAA,CAAU;AAAA,UAAA;AAAA,UARtBF;AAAA,QAAA;AAAA,MAWX,CAAC;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"PaginationDots.js","sources":["../../../src/components/pagination-dots/PaginationDots.tsx"],"sourcesContent":["import styles from './PaginationDots.module.scss';\n\nexport type PaginationDotsOrientation = 'horizontal' | 'vertical';\nexport type PaginationDotsStyle = 'default' | 'inverted' | 'on-primary';\n\nexport interface PaginationDotsProps {\n /** Total number of pages/steps. */\n pages: number;\n /** Currently active page (1-indexed). */\n activePage: number;\n /** Layout orientation. Default: Horizontal. */\n orientation?: PaginationDotsOrientation;\n /** Color style. Default: Default. */\n dotStyle?: PaginationDotsStyle;\n /** Called when a dot is clicked. Receives the 1-indexed page number. */\n onPageChange?: (page: number) => void;\n /** Optional CSS class name. */\n className?: string;\n /** Accessible name for the dot list. Default: \"Pages\". */\n label?: string;\n /** Accessible name for each dot. Default: `Page {page}`. */\n formatPageLabel?: (page: number) => string;\n}\n\nconst defaultFormatPageLabel = (page: number) => `Page ${page}`;\n\n/**\n * Pagination Dots indicate progress through a fixed sequence of steps — most often a\n * multi-step onboarding flow or a swipeable carousel. One dot per step, the active one\n * filled, the rest quiet.\n */\nexport default function PaginationDots({\n pages,\n activePage,\n orientation = 'horizontal',\n dotStyle = 'default',\n onPageChange,\n className = '',\n label = 'Pages',\n formatPageLabel = defaultFormatPageLabel,\n}: PaginationDotsProps) {\n const isVertical = orientation === 'vertical';\n const isInverted = dotStyle === 'inverted';\n const isOnPrimary = dotStyle === 'on-primary';\n\n const orientationClass = isVertical\n ? styles['pagination-dots--vertical']\n : styles['pagination-dots--horizontal'];\n const styleClass = isInverted\n ? styles['pagination-dots--inverted']\n : isOnPrimary\n ? styles['pagination-dots--on-primary']\n : '';\n\n return (\n <div\n className={[\n styles['pagination-dots'],\n orientationClass,\n styleClass,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n role=\"tablist\"\n aria-label={label}\n >\n {Array.from({ length: pages }, (_, i) => {\n const page = i + 1;\n const isActive = page === activePage;\n const dotClass = [\n styles['pagination-dots__dot'],\n isActive ? styles['pagination-dots__dot--active'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n key={page}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-label={formatPageLabel(page)}\n className={styles['pagination-dots__item']}\n onClick={() => onPageChange?.(page)}\n >\n <span className={dotClass} />\n </button>\n );\n })}\n </div>\n );\n}\n"],"names":["defaultFormatPageLabel","page","PaginationDots","pages","activePage","orientation","dotStyle","onPageChange","className","label","formatPageLabel","isVertical","isInverted","isOnPrimary","orientationClass","styles","styleClass","jsx","_","i","isActive","dotClass"],"mappings":";;AAwBA,MAAMA,IAAyB,CAACC,MAAiB,QAAQA,CAAI;AAO7D,SAAwBC,EAAe;AAAA,EACrC,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,UAAAC,IAAW;AAAA,EACX,cAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,OAAAC,IAAQ;AAAA,EACR,iBAAAC,IAAkBV;AACpB,GAAwB;AACtB,QAAMW,IAAaN,MAAgB,YAC7BO,IAAaN,MAAa,YAC1BO,IAAcP,MAAa,cAE3BQ,IAAmBH,IACrBI,EAAO,2BAA2B,IAClCA,EAAO,6BAA6B,GAClCC,IAAaJ,IACfG,EAAO,2BAA2B,IAClCF,IACEE,EAAO,6BAA6B,IACpC;AAEN,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACTF,EAAO,iBAAiB;AAAA,QACxBD;AAAA,QACAE;AAAA,QACAR;AAAA,MAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MACX,MAAK;AAAA,MACL,cAAYC;AAAA,MAEX,UAAA,MAAM,KAAK,EAAE,QAAQN,KAAS,CAACe,GAAGC,MAAM;AACvC,cAAMlB,IAAOkB,IAAI,GACXC,IAAWnB,MAASG,GACpBiB,IAAW;AAAA,UACfN,EAAO,sBAAsB;AAAA,UAC7BK,IAAWL,EAAO,8BAA8B,IAAI;AAAA,QAAA,EAEnD,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,eACE,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,MAAK;AAAA,YACL,MAAK;AAAA,YACL,iBAAeG;AAAA,YACf,cAAYV,EAAgBT,CAAI;AAAA,YAChC,WAAWc,EAAO,uBAAuB;AAAA,YACzC,SAAS,MAAMR,KAAA,gBAAAA,EAAeN;AAAA,YAE9B,UAAA,gBAAAgB,EAAC,QAAA,EAAK,WAAWI,EAAA,CAAU;AAAA,UAAA;AAAA,UARtBpB;AAAA,QAAA;AAAA,MAWX,CAAC;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./PaginationDots.css');const t={"pagination-dots":"_pagination-dots_1r0u8_2","pagination-dots--horizontal":"_pagination-dots--horizontal_1r0u8_6","pagination-dots--vertical":"_pagination-dots--vertical_1r0u8_10","pagination-dots--inverted":"_pagination-dots--inverted_1r0u8_14","pagination-dots__dot":"_pagination-dots__dot_1r0u8_14","pagination-dots__dot--active":"_pagination-dots__dot--active_1r0u8_17","pagination-dots--on-primary":"_pagination-dots--on-primary_1r0u8_21","pagination-dots__item":"_pagination-dots__item_1r0u8_31"};exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./PaginationDots.css');const i={"pagination-dots":"_pagination-dots_1j47i_2","pagination-dots--horizontal":"_pagination-dots--horizontal_1j47i_6","pagination-dots--vertical":"_pagination-dots--vertical_1j47i_10","pagination-dots--inverted":"_pagination-dots--inverted_1j47i_14","pagination-dots__dot":"_pagination-dots__dot_1j47i_14","pagination-dots__dot--active":"_pagination-dots__dot--active_1j47i_17","pagination-dots--on-primary":"_pagination-dots--on-primary_1j47i_21","pagination-dots__item":"_pagination-dots__item_1j47i_31"};exports.default=i;
2
2
  //# sourceMappingURL=PaginationDots.module.scss.cjs.map
@@ -1,14 +1,14 @@
1
- import './PaginationDots.css';const t = {
2
- "pagination-dots": "_pagination-dots_1r0u8_2",
3
- "pagination-dots--horizontal": "_pagination-dots--horizontal_1r0u8_6",
4
- "pagination-dots--vertical": "_pagination-dots--vertical_1r0u8_10",
5
- "pagination-dots--inverted": "_pagination-dots--inverted_1r0u8_14",
6
- "pagination-dots__dot": "_pagination-dots__dot_1r0u8_14",
7
- "pagination-dots__dot--active": "_pagination-dots__dot--active_1r0u8_17",
8
- "pagination-dots--on-primary": "_pagination-dots--on-primary_1r0u8_21",
9
- "pagination-dots__item": "_pagination-dots__item_1r0u8_31"
1
+ import './PaginationDots.css';const i = {
2
+ "pagination-dots": "_pagination-dots_1j47i_2",
3
+ "pagination-dots--horizontal": "_pagination-dots--horizontal_1j47i_6",
4
+ "pagination-dots--vertical": "_pagination-dots--vertical_1j47i_10",
5
+ "pagination-dots--inverted": "_pagination-dots--inverted_1j47i_14",
6
+ "pagination-dots__dot": "_pagination-dots__dot_1j47i_14",
7
+ "pagination-dots__dot--active": "_pagination-dots__dot--active_1j47i_17",
8
+ "pagination-dots--on-primary": "_pagination-dots--on-primary_1j47i_21",
9
+ "pagination-dots__item": "_pagination-dots__item_1j47i_31"
10
10
  };
11
11
  export {
12
- t as default
12
+ i as default
13
13
  };
14
14
  //# sourceMappingURL=PaginationDots.module.scss.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),r=require("react"),N=require("../user-avatar/UserAvatar.cjs"),y=require("../message-header/MessageHeader.cjs"),q=require("../icon/Icon.cjs"),R=require("../icon-button/IconButton.cjs"),__P=require("@mattermost/compass-icons/components/close.js"),P=__P?.default??__P,s=require("./PermalinkPreview.module.scss.cjs"),S=100;function C({authorName:l="Leonard Riley",avatarSrc:p,timestamp:m="10:43 AM",messageText:f="At eu sed tristique gravida et fames vel pellentesque. Urna phasellus integer eu tempor mauris amet sagittis. Mollis risus mi felis magna.",children:v,originalChannel:_="~Desktop App",onDismiss:t,className:x=""}){const[n,h]=r.useState(!1),[d,w]=r.useState(!1),[j,k]=r.useState(0),o=r.useRef(null);r.useEffect(()=>{const i=o.current;if(!i)return;const a=()=>{const u=i.scrollHeight;k(u),w(u>S)};a();const c=new ResizeObserver(a);return c.observe(i),()=>c.disconnect()},[]);const g=[s.default["permalink-preview"],x].filter(Boolean).join(" "),b=[s.default["permalink-preview__body-clip"],d?s.default["permalink-preview__body-clip--truncated"]:"",n?s.default["permalink-preview__body-clip--expanded"]:""].filter(Boolean).join(" ");return e.jsxs("div",{className:g,children:[t!=null&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:s.default["permalink-preview__dismiss-bridge"],"aria-hidden":!0}),e.jsx(R.default,{className:s.default["permalink-preview__dismiss"],size:"x-small",padding:"compact","aria-label":"Remove permalink preview",icon:e.jsx(q.default,{size:"12",glyph:e.jsx(P,{})}),onClick:t})]}),e.jsxs("div",{className:s.default["permalink-preview__card"],children:[e.jsxs("div",{className:s.default["permalink-preview__message"],children:[e.jsxs("div",{className:s.default["permalink-preview__header"],children:[e.jsx(N.default,{src:p,alt:l,size:"24"}),e.jsx(y.default,{username:l,timestamp:m})]}),e.jsxs("div",{className:s.default["permalink-preview__body"],children:[e.jsx("div",{ref:o,className:b,style:{"--permalink-preview-body-height":`${j}px`},children:v??e.jsx("p",{className:s.default["permalink-preview__text"],children:f})}),d&&e.jsx("button",{className:s.default["permalink-preview__show-more"],onClick:i=>{i.stopPropagation(),h(a=>!a)},children:n?"Show less":"Show more"})]})]}),e.jsxs("p",{className:s.default["permalink-preview__origin"],children:["Originally posted in ",_]})]})]})}exports.default=C;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),r=require("react"),P=require("../user-avatar/UserAvatar.cjs"),S=require("../message-header/MessageHeader.cjs"),C=require("../icon/Icon.cjs"),H=require("../icon-button/IconButton.cjs"),__I=require("@mattermost/compass-icons/components/close.js"),I=__I?.default??__I,s=require("./PermalinkPreview.module.scss.cjs"),T=100;function A({authorName:l="Leonard Riley",avatarSrc:p,timestamp:m="10:43 AM",messageText:f="At eu sed tristique gravida et fames vel pellentesque. Urna phasellus integer eu tempor mauris amet sagittis. Mollis risus mi felis magna.",children:v,originalChannel:_="~Desktop App",originalChannelLabel:x,onDismiss:t,dismissLabel:h="Remove permalink preview",showMoreLabel:j="Show more",showLessLabel:w="Show less",className:g=""}){const[n,k]=r.useState(!1),[d,b]=r.useState(!1),[N,y]=r.useState(0),o=r.useRef(null);r.useEffect(()=>{const i=o.current;if(!i)return;const a=()=>{const u=i.scrollHeight;y(u),b(u>T)};a();const c=new ResizeObserver(a);return c.observe(i),()=>c.disconnect()},[]);const q=[s.default["permalink-preview"],g].filter(Boolean).join(" "),R=[s.default["permalink-preview__body-clip"],d?s.default["permalink-preview__body-clip--truncated"]:"",n?s.default["permalink-preview__body-clip--expanded"]:""].filter(Boolean).join(" ");return e.jsxs("div",{className:q,children:[t!=null&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:s.default["permalink-preview__dismiss-bridge"],"aria-hidden":!0}),e.jsx(H.default,{className:s.default["permalink-preview__dismiss"],size:"x-small",padding:"compact","aria-label":h,icon:e.jsx(C.default,{size:"12",glyph:e.jsx(I,{})}),onClick:t})]}),e.jsxs("div",{className:s.default["permalink-preview__card"],children:[e.jsxs("div",{className:s.default["permalink-preview__message"],children:[e.jsxs("div",{className:s.default["permalink-preview__header"],children:[e.jsx(P.default,{src:p,alt:l,size:"24"}),e.jsx(S.default,{username:l,timestamp:m})]}),e.jsxs("div",{className:s.default["permalink-preview__body"],children:[e.jsx("div",{ref:o,className:R,style:{"--permalink-preview-body-height":`${N}px`},children:v??e.jsx("p",{className:s.default["permalink-preview__text"],children:f})}),d&&e.jsx("button",{className:s.default["permalink-preview__show-more"],onClick:i=>{i.stopPropagation(),k(a=>!a)},children:n?w:j})]})]}),e.jsx("p",{className:s.default["permalink-preview__origin"],children:x??e.jsxs(e.Fragment,{children:["Originally posted in ",_]})})]})]})}exports.default=A;
2
2
  //# sourceMappingURL=PermalinkPreview.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"PermalinkPreview.cjs","sources":["../../../src/components/permalink-preview/PermalinkPreview.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport UserAvatar from '@/components/user-avatar/UserAvatar';\nimport MessageHeader from '@/components/message-header/MessageHeader';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './PermalinkPreview.module.scss';\n\n// Keep in sync with max-height in PermalinkPreview.module.scss __body-clip\nconst TRUNCATION_HEIGHT_PX = 100;\n\nexport interface PermalinkPreviewProps {\n /** Sender's display name. */\n authorName?: string;\n /** Avatar image src. */\n avatarSrc: string;\n /** Timestamp label. */\n timestamp?: string;\n /** The quoted message body text. Ignored when `children` is provided. */\n messageText?: string;\n /**\n * Rich content to render in the message body instead of the plain `messageText` string.\n * Use this to embed structured content such as attachment cards or formatted fields.\n * When present, `messageText` is not rendered.\n */\n children?: React.ReactNode;\n /** \"Originally posted in ~Channel\" footer text. */\n originalChannel?: string;\n /** Called when the dismiss control is clicked. Shown on hover when provided. */\n onDismiss?: () => void;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * A Permalink Preview renders an inline card for a message that another message links to.\n * Sender, timestamp, body, and origin channel — enough context to recognise the quoted\n * message without leaving where you are.\n */\nexport default function PermalinkPreview({\n authorName = 'Leonard Riley',\n avatarSrc,\n timestamp = '10:43 AM',\n messageText = 'At eu sed tristique gravida et fames vel pellentesque. Urna phasellus integer eu tempor mauris amet sagittis. Mollis risus mi felis magna.',\n children,\n originalChannel = '~Desktop App',\n onDismiss,\n className = '',\n}: PermalinkPreviewProps) {\n const [isExpanded, setIsExpanded] = useState(false);\n const [needsTruncation, setNeedsTruncation] = useState(false);\n const [bodyHeight, setBodyHeight] = useState(0);\n const clipRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const el = clipRef.current;\n if (!el) return;\n const measure = () => {\n const full = el.scrollHeight;\n setBodyHeight(full);\n setNeedsTruncation(full > TRUNCATION_HEIGHT_PX);\n };\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n const rootClass = [styles['permalink-preview'], className]\n .filter(Boolean)\n .join(' ');\n\n const clipClass = [\n styles['permalink-preview__body-clip'],\n needsTruncation ? styles['permalink-preview__body-clip--truncated'] : '',\n isExpanded ? styles['permalink-preview__body-clip--expanded'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n {onDismiss != null && (\n <>\n <div\n className={styles['permalink-preview__dismiss-bridge']}\n aria-hidden\n />\n <IconButton\n className={styles['permalink-preview__dismiss']}\n size=\"x-small\"\n padding=\"compact\"\n aria-label=\"Remove permalink preview\"\n icon={<Icon size=\"12\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n </>\n )}\n\n <div className={styles['permalink-preview__card']}>\n <div className={styles['permalink-preview__message']}>\n <div className={styles['permalink-preview__header']}>\n <UserAvatar src={avatarSrc} alt={authorName} size=\"24\" />\n <MessageHeader username={authorName} timestamp={timestamp} />\n </div>\n <div className={styles['permalink-preview__body']}>\n <div\n ref={clipRef}\n className={clipClass}\n style={\n {\n '--permalink-preview-body-height': `${bodyHeight}px`,\n } as React.CSSProperties\n }\n >\n {children ?? (\n <p className={styles['permalink-preview__text']}>\n {messageText}\n </p>\n )}\n </div>\n {needsTruncation && (\n <button\n className={styles['permalink-preview__show-more']}\n onClick={(e) => {\n e.stopPropagation();\n setIsExpanded((prev) => !prev);\n }}\n >\n {isExpanded ? 'Show less' : 'Show more'}\n </button>\n )}\n </div>\n </div>\n <p className={styles['permalink-preview__origin']}>\n Originally posted in {originalChannel}\n </p>\n </div>\n </div>\n );\n}\n"],"names":["TRUNCATION_HEIGHT_PX","PermalinkPreview","authorName","avatarSrc","timestamp","messageText","children","originalChannel","onDismiss","className","isExpanded","setIsExpanded","useState","needsTruncation","setNeedsTruncation","bodyHeight","setBodyHeight","clipRef","useRef","useEffect","el","measure","full","ro","rootClass","styles","clipClass","jsxs","Fragment","jsx","IconButton","Icon","CloseIcon","UserAvatar","MessageHeader","e","prev"],"mappings":"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"}
1
+ {"version":3,"file":"PermalinkPreview.cjs","sources":["../../../src/components/permalink-preview/PermalinkPreview.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport UserAvatar from '@/components/user-avatar/UserAvatar';\nimport MessageHeader from '@/components/message-header/MessageHeader';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './PermalinkPreview.module.scss';\n\n// Keep in sync with max-height in PermalinkPreview.module.scss __body-clip\nconst TRUNCATION_HEIGHT_PX = 100;\n\nexport interface PermalinkPreviewProps {\n /** Sender's display name. Kept as `string`: it's also the avatar's alt text. */\n authorName?: string;\n /** Avatar image src. */\n avatarSrc: string;\n /** Timestamp label. */\n timestamp?: React.ReactNode;\n /** The quoted message body text. Ignored when `children` is provided. */\n messageText?: React.ReactNode;\n /**\n * Rich content to render in the message body instead of the plain `messageText` string.\n * Use this to embed structured content such as attachment cards or formatted fields.\n * When present, `messageText` is not rendered.\n */\n children?: React.ReactNode;\n /** \"Originally posted in ~Channel\" footer text. */\n originalChannel?: React.ReactNode;\n /**\n * Full footer line. Default: `Originally posted in {originalChannel}`.\n * Pass a translated node to localize the surrounding copy.\n */\n originalChannelLabel?: React.ReactNode;\n /** Called when the dismiss control is clicked. Shown on hover when provided. */\n onDismiss?: () => void;\n /** Accessible name for the dismiss button. Default: \"Remove permalink preview\". */\n dismissLabel?: string;\n /** Expand toggle text. Default: \"Show more\". */\n showMoreLabel?: React.ReactNode;\n /** Collapse toggle text. Default: \"Show less\". */\n showLessLabel?: React.ReactNode;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * A Permalink Preview renders an inline card for a message that another message links to.\n * Sender, timestamp, body, and origin channel — enough context to recognise the quoted\n * message without leaving where you are.\n */\nexport default function PermalinkPreview({\n authorName = 'Leonard Riley',\n avatarSrc,\n timestamp = '10:43 AM',\n messageText = 'At eu sed tristique gravida et fames vel pellentesque. Urna phasellus integer eu tempor mauris amet sagittis. Mollis risus mi felis magna.',\n children,\n originalChannel = '~Desktop App',\n originalChannelLabel,\n onDismiss,\n dismissLabel = 'Remove permalink preview',\n showMoreLabel = 'Show more',\n showLessLabel = 'Show less',\n className = '',\n}: PermalinkPreviewProps) {\n const [isExpanded, setIsExpanded] = useState(false);\n const [needsTruncation, setNeedsTruncation] = useState(false);\n const [bodyHeight, setBodyHeight] = useState(0);\n const clipRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const el = clipRef.current;\n if (!el) return;\n const measure = () => {\n const full = el.scrollHeight;\n setBodyHeight(full);\n setNeedsTruncation(full > TRUNCATION_HEIGHT_PX);\n };\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n const rootClass = [styles['permalink-preview'], className]\n .filter(Boolean)\n .join(' ');\n\n const clipClass = [\n styles['permalink-preview__body-clip'],\n needsTruncation ? styles['permalink-preview__body-clip--truncated'] : '',\n isExpanded ? styles['permalink-preview__body-clip--expanded'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n {onDismiss != null && (\n <>\n <div\n className={styles['permalink-preview__dismiss-bridge']}\n aria-hidden\n />\n <IconButton\n className={styles['permalink-preview__dismiss']}\n size=\"x-small\"\n padding=\"compact\"\n aria-label={dismissLabel}\n icon={<Icon size=\"12\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n </>\n )}\n\n <div className={styles['permalink-preview__card']}>\n <div className={styles['permalink-preview__message']}>\n <div className={styles['permalink-preview__header']}>\n <UserAvatar src={avatarSrc} alt={authorName} size=\"24\" />\n <MessageHeader username={authorName} timestamp={timestamp} />\n </div>\n <div className={styles['permalink-preview__body']}>\n <div\n ref={clipRef}\n className={clipClass}\n style={\n {\n '--permalink-preview-body-height': `${bodyHeight}px`,\n } as React.CSSProperties\n }\n >\n {children ?? (\n <p className={styles['permalink-preview__text']}>\n {messageText}\n </p>\n )}\n </div>\n {needsTruncation && (\n <button\n className={styles['permalink-preview__show-more']}\n onClick={(e) => {\n e.stopPropagation();\n setIsExpanded((prev) => !prev);\n }}\n >\n {isExpanded ? showLessLabel : showMoreLabel}\n </button>\n )}\n </div>\n </div>\n <p className={styles['permalink-preview__origin']}>\n {originalChannelLabel ?? <>Originally posted in {originalChannel}</>}\n </p>\n </div>\n </div>\n );\n}\n"],"names":["TRUNCATION_HEIGHT_PX","PermalinkPreview","authorName","avatarSrc","timestamp","messageText","children","originalChannel","originalChannelLabel","onDismiss","dismissLabel","showMoreLabel","showLessLabel","className","isExpanded","setIsExpanded","useState","needsTruncation","setNeedsTruncation","bodyHeight","setBodyHeight","clipRef","useRef","useEffect","el","measure","full","ro","rootClass","styles","clipClass","jsxs","Fragment","jsx","IconButton","Icon","CloseIcon","UserAvatar","MessageHeader","e","prev"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import { default as React } from 'react';
2
2
  export interface PermalinkPreviewProps {
3
- /** Sender's display name. */
3
+ /** Sender's display name. Kept as `string`: it's also the avatar's alt text. */
4
4
  authorName?: string;
5
5
  /** Avatar image src. */
6
6
  avatarSrc: string;
7
7
  /** Timestamp label. */
8
- timestamp?: string;
8
+ timestamp?: React.ReactNode;
9
9
  /** The quoted message body text. Ignored when `children` is provided. */
10
- messageText?: string;
10
+ messageText?: React.ReactNode;
11
11
  /**
12
12
  * Rich content to render in the message body instead of the plain `messageText` string.
13
13
  * Use this to embed structured content such as attachment cards or formatted fields.
@@ -15,9 +15,20 @@ export interface PermalinkPreviewProps {
15
15
  */
16
16
  children?: React.ReactNode;
17
17
  /** "Originally posted in ~Channel" footer text. */
18
- originalChannel?: string;
18
+ originalChannel?: React.ReactNode;
19
+ /**
20
+ * Full footer line. Default: `Originally posted in {originalChannel}`.
21
+ * Pass a translated node to localize the surrounding copy.
22
+ */
23
+ originalChannelLabel?: React.ReactNode;
19
24
  /** Called when the dismiss control is clicked. Shown on hover when provided. */
20
25
  onDismiss?: () => void;
26
+ /** Accessible name for the dismiss button. Default: "Remove permalink preview". */
27
+ dismissLabel?: string;
28
+ /** Expand toggle text. Default: "Show more". */
29
+ showMoreLabel?: React.ReactNode;
30
+ /** Collapse toggle text. Default: "Show less". */
31
+ showLessLabel?: React.ReactNode;
21
32
  /** Optional CSS class name. */
22
33
  className?: string;
23
34
  }
@@ -26,5 +37,5 @@ export interface PermalinkPreviewProps {
26
37
  * Sender, timestamp, body, and origin channel — enough context to recognise the quoted
27
38
  * message without leaving where you are.
28
39
  */
29
- export default function PermalinkPreview({ authorName, avatarSrc, timestamp, messageText, children, originalChannel, onDismiss, className, }: PermalinkPreviewProps): import("react/jsx-runtime").JSX.Element;
40
+ export default function PermalinkPreview({ authorName, avatarSrc, timestamp, messageText, children, originalChannel, originalChannelLabel, onDismiss, dismissLabel, showMoreLabel, showLessLabel, className, }: PermalinkPreviewProps): import("react/jsx-runtime").JSX.Element;
30
41
  //# sourceMappingURL=PermalinkPreview.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PermalinkPreview.d.ts","sourceRoot":"","sources":["../../../src/components/permalink-preview/PermalinkPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAW3D,MAAM,WAAW,qBAAqB;IACpC,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,mDAAmD;IACnD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,UAA4B,EAC5B,SAAS,EACT,SAAsB,EACtB,WAA0J,EAC1J,QAAQ,EACR,eAAgC,EAChC,SAAS,EACT,SAAc,GACf,EAAE,qBAAqB,2CA4FvB"}
1
+ {"version":3,"file":"PermalinkPreview.d.ts","sourceRoot":"","sources":["../../../src/components/permalink-preview/PermalinkPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAW3D,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,yEAAyE;IACzE,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,mDAAmD;IACnD,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvC,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,kDAAkD;IAClD,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,UAA4B,EAC5B,SAAS,EACT,SAAsB,EACtB,WAA0J,EAC1J,QAAQ,EACR,eAAgC,EAChC,oBAAoB,EACpB,SAAS,EACT,YAAyC,EACzC,aAA2B,EAC3B,aAA2B,EAC3B,SAAc,GACf,EAAE,qBAAqB,2CA4FvB"}
@@ -1,41 +1,45 @@
1
- import { jsxs as r, Fragment as C, jsx as i } from "react/jsx-runtime";
2
- import { useState as l, useRef as H, useEffect as I } from "react";
3
- import R from "../user-avatar/UserAvatar.js";
4
- import A from "../message-header/MessageHeader.js";
5
- import T from "../icon/Icon.js";
6
- import j from "../icon-button/IconButton.js";
7
- import __z from "@mattermost/compass-icons/components/close.js";const z=__z&&__z.default?__z.default:__z;
1
+ import { jsxs as r, Fragment as v, jsx as i } from "react/jsx-runtime";
2
+ import { useState as l, useRef as T, useEffect as j } from "react";
3
+ import z from "../user-avatar/UserAvatar.js";
4
+ import B from "../message-header/MessageHeader.js";
5
+ import E from "../icon/Icon.js";
6
+ import P from "../icon-button/IconButton.js";
7
+ import __M from "@mattermost/compass-icons/components/close.js";const M=__M&&__M.default?__M.default:__M;
8
8
  import e from "./PermalinkPreview.module.scss.js";
9
- const B = 100;
10
- function G({
9
+ const O = 100;
10
+ function D({
11
11
  authorName: n = "Leonard Riley",
12
- avatarSrc: v,
13
- timestamp: u = "10:43 AM",
14
- messageText: _ = "At eu sed tristique gravida et fames vel pellentesque. Urna phasellus integer eu tempor mauris amet sagittis. Mollis risus mi felis magna.",
15
- children: f,
16
- originalChannel: h = "~Desktop App",
12
+ avatarSrc: u,
13
+ timestamp: _ = "10:43 AM",
14
+ messageText: f = "At eu sed tristique gravida et fames vel pellentesque. Urna phasellus integer eu tempor mauris amet sagittis. Mollis risus mi felis magna.",
15
+ children: h,
16
+ originalChannel: w = "~Desktop App",
17
+ originalChannelLabel: k,
17
18
  onDismiss: o,
18
- className: w = ""
19
+ dismissLabel: g = "Remove permalink preview",
20
+ showMoreLabel: N = "Show more",
21
+ showLessLabel: y = "Show less",
22
+ className: b = ""
19
23
  }) {
20
- const [t, k] = l(!1), [p, g] = l(!1), [N, y] = l(0), m = H(null);
21
- I(() => {
24
+ const [t, x] = l(!1), [p, C] = l(!1), [H, I] = l(0), m = T(null);
25
+ j(() => {
22
26
  const s = m.current;
23
27
  if (!s) return;
24
28
  const a = () => {
25
29
  const d = s.scrollHeight;
26
- y(d), g(d > B);
30
+ I(d), C(d > O);
27
31
  };
28
32
  a();
29
33
  const c = new ResizeObserver(a);
30
34
  return c.observe(s), () => c.disconnect();
31
35
  }, []);
32
- const b = [e["permalink-preview"], w].filter(Boolean).join(" "), x = [
36
+ const R = [e["permalink-preview"], b].filter(Boolean).join(" "), A = [
33
37
  e["permalink-preview__body-clip"],
34
38
  p ? e["permalink-preview__body-clip--truncated"] : "",
35
39
  t ? e["permalink-preview__body-clip--expanded"] : ""
36
40
  ].filter(Boolean).join(" ");
37
- return /* @__PURE__ */ r("div", { className: b, children: [
38
- o != null && /* @__PURE__ */ r(C, { children: [
41
+ return /* @__PURE__ */ r("div", { className: R, children: [
42
+ o != null && /* @__PURE__ */ r(v, { children: [
39
43
  /* @__PURE__ */ i(
40
44
  "div",
41
45
  {
@@ -44,13 +48,13 @@ function G({
44
48
  }
45
49
  ),
46
50
  /* @__PURE__ */ i(
47
- j,
51
+ P,
48
52
  {
49
53
  className: e["permalink-preview__dismiss"],
50
54
  size: "x-small",
51
55
  padding: "compact",
52
- "aria-label": "Remove permalink preview",
53
- icon: /* @__PURE__ */ i(T, { size: "12", glyph: /* @__PURE__ */ i(z, {}) }),
56
+ "aria-label": g,
57
+ icon: /* @__PURE__ */ i(E, { size: "12", glyph: /* @__PURE__ */ i(M, {}) }),
54
58
  onClick: o
55
59
  }
56
60
  )
@@ -58,19 +62,19 @@ function G({
58
62
  /* @__PURE__ */ r("div", { className: e["permalink-preview__card"], children: [
59
63
  /* @__PURE__ */ r("div", { className: e["permalink-preview__message"], children: [
60
64
  /* @__PURE__ */ r("div", { className: e["permalink-preview__header"], children: [
61
- /* @__PURE__ */ i(R, { src: v, alt: n, size: "24" }),
62
- /* @__PURE__ */ i(A, { username: n, timestamp: u })
65
+ /* @__PURE__ */ i(z, { src: u, alt: n, size: "24" }),
66
+ /* @__PURE__ */ i(B, { username: n, timestamp: _ })
63
67
  ] }),
64
68
  /* @__PURE__ */ r("div", { className: e["permalink-preview__body"], children: [
65
69
  /* @__PURE__ */ i(
66
70
  "div",
67
71
  {
68
72
  ref: m,
69
- className: x,
73
+ className: A,
70
74
  style: {
71
- "--permalink-preview-body-height": `${N}px`
75
+ "--permalink-preview-body-height": `${H}px`
72
76
  },
73
- children: f ?? /* @__PURE__ */ i("p", { className: e["permalink-preview__text"], children: _ })
77
+ children: h ?? /* @__PURE__ */ i("p", { className: e["permalink-preview__text"], children: f })
74
78
  }
75
79
  ),
76
80
  p && /* @__PURE__ */ i(
@@ -78,21 +82,21 @@ function G({
78
82
  {
79
83
  className: e["permalink-preview__show-more"],
80
84
  onClick: (s) => {
81
- s.stopPropagation(), k((a) => !a);
85
+ s.stopPropagation(), x((a) => !a);
82
86
  },
83
- children: t ? "Show less" : "Show more"
87
+ children: t ? y : N
84
88
  }
85
89
  )
86
90
  ] })
87
91
  ] }),
88
- /* @__PURE__ */ r("p", { className: e["permalink-preview__origin"], children: [
92
+ /* @__PURE__ */ i("p", { className: e["permalink-preview__origin"], children: k ?? /* @__PURE__ */ r(v, { children: [
89
93
  "Originally posted in ",
90
- h
91
- ] })
94
+ w
95
+ ] }) })
92
96
  ] })
93
97
  ] });
94
98
  }
95
99
  export {
96
- G as default
100
+ D as default
97
101
  };
98
102
  //# sourceMappingURL=PermalinkPreview.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PermalinkPreview.js","sources":["../../../src/components/permalink-preview/PermalinkPreview.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport UserAvatar from '@/components/user-avatar/UserAvatar';\nimport MessageHeader from '@/components/message-header/MessageHeader';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './PermalinkPreview.module.scss';\n\n// Keep in sync with max-height in PermalinkPreview.module.scss __body-clip\nconst TRUNCATION_HEIGHT_PX = 100;\n\nexport interface PermalinkPreviewProps {\n /** Sender's display name. */\n authorName?: string;\n /** Avatar image src. */\n avatarSrc: string;\n /** Timestamp label. */\n timestamp?: string;\n /** The quoted message body text. Ignored when `children` is provided. */\n messageText?: string;\n /**\n * Rich content to render in the message body instead of the plain `messageText` string.\n * Use this to embed structured content such as attachment cards or formatted fields.\n * When present, `messageText` is not rendered.\n */\n children?: React.ReactNode;\n /** \"Originally posted in ~Channel\" footer text. */\n originalChannel?: string;\n /** Called when the dismiss control is clicked. Shown on hover when provided. */\n onDismiss?: () => void;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * A Permalink Preview renders an inline card for a message that another message links to.\n * Sender, timestamp, body, and origin channel — enough context to recognise the quoted\n * message without leaving where you are.\n */\nexport default function PermalinkPreview({\n authorName = 'Leonard Riley',\n avatarSrc,\n timestamp = '10:43 AM',\n messageText = 'At eu sed tristique gravida et fames vel pellentesque. Urna phasellus integer eu tempor mauris amet sagittis. Mollis risus mi felis magna.',\n children,\n originalChannel = '~Desktop App',\n onDismiss,\n className = '',\n}: PermalinkPreviewProps) {\n const [isExpanded, setIsExpanded] = useState(false);\n const [needsTruncation, setNeedsTruncation] = useState(false);\n const [bodyHeight, setBodyHeight] = useState(0);\n const clipRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const el = clipRef.current;\n if (!el) return;\n const measure = () => {\n const full = el.scrollHeight;\n setBodyHeight(full);\n setNeedsTruncation(full > TRUNCATION_HEIGHT_PX);\n };\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n const rootClass = [styles['permalink-preview'], className]\n .filter(Boolean)\n .join(' ');\n\n const clipClass = [\n styles['permalink-preview__body-clip'],\n needsTruncation ? styles['permalink-preview__body-clip--truncated'] : '',\n isExpanded ? styles['permalink-preview__body-clip--expanded'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n {onDismiss != null && (\n <>\n <div\n className={styles['permalink-preview__dismiss-bridge']}\n aria-hidden\n />\n <IconButton\n className={styles['permalink-preview__dismiss']}\n size=\"x-small\"\n padding=\"compact\"\n aria-label=\"Remove permalink preview\"\n icon={<Icon size=\"12\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n </>\n )}\n\n <div className={styles['permalink-preview__card']}>\n <div className={styles['permalink-preview__message']}>\n <div className={styles['permalink-preview__header']}>\n <UserAvatar src={avatarSrc} alt={authorName} size=\"24\" />\n <MessageHeader username={authorName} timestamp={timestamp} />\n </div>\n <div className={styles['permalink-preview__body']}>\n <div\n ref={clipRef}\n className={clipClass}\n style={\n {\n '--permalink-preview-body-height': `${bodyHeight}px`,\n } as React.CSSProperties\n }\n >\n {children ?? (\n <p className={styles['permalink-preview__text']}>\n {messageText}\n </p>\n )}\n </div>\n {needsTruncation && (\n <button\n className={styles['permalink-preview__show-more']}\n onClick={(e) => {\n e.stopPropagation();\n setIsExpanded((prev) => !prev);\n }}\n >\n {isExpanded ? 'Show less' : 'Show more'}\n </button>\n )}\n </div>\n </div>\n <p className={styles['permalink-preview__origin']}>\n Originally posted in {originalChannel}\n </p>\n </div>\n </div>\n );\n}\n"],"names":["TRUNCATION_HEIGHT_PX","PermalinkPreview","authorName","avatarSrc","timestamp","messageText","children","originalChannel","onDismiss","className","isExpanded","setIsExpanded","useState","needsTruncation","setNeedsTruncation","bodyHeight","setBodyHeight","clipRef","useRef","useEffect","el","measure","full","ro","rootClass","styles","clipClass","jsxs","Fragment","jsx","IconButton","Icon","CloseIcon","UserAvatar","MessageHeader","e","prev"],"mappings":"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"}
1
+ {"version":3,"file":"PermalinkPreview.js","sources":["../../../src/components/permalink-preview/PermalinkPreview.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport UserAvatar from '@/components/user-avatar/UserAvatar';\nimport MessageHeader from '@/components/message-header/MessageHeader';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './PermalinkPreview.module.scss';\n\n// Keep in sync with max-height in PermalinkPreview.module.scss __body-clip\nconst TRUNCATION_HEIGHT_PX = 100;\n\nexport interface PermalinkPreviewProps {\n /** Sender's display name. Kept as `string`: it's also the avatar's alt text. */\n authorName?: string;\n /** Avatar image src. */\n avatarSrc: string;\n /** Timestamp label. */\n timestamp?: React.ReactNode;\n /** The quoted message body text. Ignored when `children` is provided. */\n messageText?: React.ReactNode;\n /**\n * Rich content to render in the message body instead of the plain `messageText` string.\n * Use this to embed structured content such as attachment cards or formatted fields.\n * When present, `messageText` is not rendered.\n */\n children?: React.ReactNode;\n /** \"Originally posted in ~Channel\" footer text. */\n originalChannel?: React.ReactNode;\n /**\n * Full footer line. Default: `Originally posted in {originalChannel}`.\n * Pass a translated node to localize the surrounding copy.\n */\n originalChannelLabel?: React.ReactNode;\n /** Called when the dismiss control is clicked. Shown on hover when provided. */\n onDismiss?: () => void;\n /** Accessible name for the dismiss button. Default: \"Remove permalink preview\". */\n dismissLabel?: string;\n /** Expand toggle text. Default: \"Show more\". */\n showMoreLabel?: React.ReactNode;\n /** Collapse toggle text. Default: \"Show less\". */\n showLessLabel?: React.ReactNode;\n /** Optional CSS class name. */\n className?: string;\n}\n\n/**\n * A Permalink Preview renders an inline card for a message that another message links to.\n * Sender, timestamp, body, and origin channel — enough context to recognise the quoted\n * message without leaving where you are.\n */\nexport default function PermalinkPreview({\n authorName = 'Leonard Riley',\n avatarSrc,\n timestamp = '10:43 AM',\n messageText = 'At eu sed tristique gravida et fames vel pellentesque. Urna phasellus integer eu tempor mauris amet sagittis. Mollis risus mi felis magna.',\n children,\n originalChannel = '~Desktop App',\n originalChannelLabel,\n onDismiss,\n dismissLabel = 'Remove permalink preview',\n showMoreLabel = 'Show more',\n showLessLabel = 'Show less',\n className = '',\n}: PermalinkPreviewProps) {\n const [isExpanded, setIsExpanded] = useState(false);\n const [needsTruncation, setNeedsTruncation] = useState(false);\n const [bodyHeight, setBodyHeight] = useState(0);\n const clipRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const el = clipRef.current;\n if (!el) return;\n const measure = () => {\n const full = el.scrollHeight;\n setBodyHeight(full);\n setNeedsTruncation(full > TRUNCATION_HEIGHT_PX);\n };\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n const rootClass = [styles['permalink-preview'], className]\n .filter(Boolean)\n .join(' ');\n\n const clipClass = [\n styles['permalink-preview__body-clip'],\n needsTruncation ? styles['permalink-preview__body-clip--truncated'] : '',\n isExpanded ? styles['permalink-preview__body-clip--expanded'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n {onDismiss != null && (\n <>\n <div\n className={styles['permalink-preview__dismiss-bridge']}\n aria-hidden\n />\n <IconButton\n className={styles['permalink-preview__dismiss']}\n size=\"x-small\"\n padding=\"compact\"\n aria-label={dismissLabel}\n icon={<Icon size=\"12\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n </>\n )}\n\n <div className={styles['permalink-preview__card']}>\n <div className={styles['permalink-preview__message']}>\n <div className={styles['permalink-preview__header']}>\n <UserAvatar src={avatarSrc} alt={authorName} size=\"24\" />\n <MessageHeader username={authorName} timestamp={timestamp} />\n </div>\n <div className={styles['permalink-preview__body']}>\n <div\n ref={clipRef}\n className={clipClass}\n style={\n {\n '--permalink-preview-body-height': `${bodyHeight}px`,\n } as React.CSSProperties\n }\n >\n {children ?? (\n <p className={styles['permalink-preview__text']}>\n {messageText}\n </p>\n )}\n </div>\n {needsTruncation && (\n <button\n className={styles['permalink-preview__show-more']}\n onClick={(e) => {\n e.stopPropagation();\n setIsExpanded((prev) => !prev);\n }}\n >\n {isExpanded ? showLessLabel : showMoreLabel}\n </button>\n )}\n </div>\n </div>\n <p className={styles['permalink-preview__origin']}>\n {originalChannelLabel ?? <>Originally posted in {originalChannel}</>}\n </p>\n </div>\n </div>\n );\n}\n"],"names":["TRUNCATION_HEIGHT_PX","PermalinkPreview","authorName","avatarSrc","timestamp","messageText","children","originalChannel","originalChannelLabel","onDismiss","dismissLabel","showMoreLabel","showLessLabel","className","isExpanded","setIsExpanded","useState","needsTruncation","setNeedsTruncation","bodyHeight","setBodyHeight","clipRef","useRef","useEffect","el","measure","full","ro","rootClass","styles","clipClass","jsxs","Fragment","jsx","IconButton","Icon","CloseIcon","UserAvatar","MessageHeader","e","prev"],"mappings":"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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"),__d=require("@mattermost/compass-icons/components/pin-outline.js"),d=__d?.default??__d,__l=require("@mattermost/compass-icons/components/bookmark-outline.js"),l=__l?.default??__l,a=require("../icon/Icon.cjs"),n=require("./PinnedSavedIndicators.module.scss.cjs");function r({className:s=""}){const i=[n.default["pinned-saved-indicators"],s].filter(Boolean).join(" ");return e.jsxs("div",{className:i,"aria-label":"Pinned and Saved",children:[e.jsxs("div",{className:n.default["pinned-saved-indicators__icons"],children:[e.jsx(a.default,{size:"12",glyph:e.jsx(d,{}),"aria-hidden":!0}),e.jsx(a.default,{size:"12",glyph:e.jsx(l,{}),"aria-hidden":!0})]}),e.jsxs("div",{className:n.default["pinned-saved-indicators__labels"],children:[e.jsx("span",{className:n.default["pinned-saved-indicators__label"],children:"Pinned"}),e.jsx("span",{className:n.default["pinned-saved-indicators__sep"],"aria-hidden":!0,children:"•"}),e.jsx("span",{className:n.default["pinned-saved-indicators__label"],children:"Saved"})]})]})}exports.default=r;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),__t=require("@mattermost/compass-icons/components/pin-outline.js"),t=__t?.default??__t,__c=require("@mattermost/compass-icons/components/bookmark-outline.js"),c=__c?.default??__c,n=require("../icon/Icon.cjs"),a=require("./PinnedSavedIndicators.module.scss.cjs");function o({className:i="","aria-label":s="Pinned and Saved",pinnedLabel:d="Pinned",savedLabel:l="Saved"}){const r=[a.default["pinned-saved-indicators"],i].filter(Boolean).join(" ");return e.jsxs("div",{className:r,"aria-label":s,children:[e.jsxs("div",{className:a.default["pinned-saved-indicators__icons"],children:[e.jsx(n.default,{size:"12",glyph:e.jsx(t,{}),"aria-hidden":!0}),e.jsx(n.default,{size:"12",glyph:e.jsx(c,{}),"aria-hidden":!0})]}),e.jsxs("div",{className:a.default["pinned-saved-indicators__labels"],children:[e.jsx("span",{className:a.default["pinned-saved-indicators__label"],children:d}),e.jsx("span",{className:a.default["pinned-saved-indicators__sep"],"aria-hidden":!0,children:"•"}),e.jsx("span",{className:a.default["pinned-saved-indicators__label"],children:l})]})]})}exports.default=o;
2
2
  //# sourceMappingURL=PinnedSavedIndicators.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"PinnedSavedIndicators.cjs","sources":["../../../src/components/pinned-saved-indicators/PinnedSavedIndicators.tsx"],"sourcesContent":["import PinOutlineIcon from '@mattermost/compass-icons/components/pin-outline';\nimport BookmarkOutlineIcon from '@mattermost/compass-icons/components/bookmark-outline';\nimport Icon from '@/components/icon/Icon';\nimport styles from './PinnedSavedIndicators.module.scss';\n\nexport interface PinnedSavedIndicatorsProps {\n /** Optional CSS class on the root. */\n className?: string;\n}\n\n/**\n * Pinned + Saved row shown above a message when applicable (Patterns — Message).\n */\nexport default function PinnedSavedIndicators({\n className = '',\n}: PinnedSavedIndicatorsProps) {\n const rootClass = [styles['pinned-saved-indicators'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} aria-label=\"Pinned and Saved\">\n <div className={styles['pinned-saved-indicators__icons']}>\n <Icon size=\"12\" glyph={<PinOutlineIcon />} aria-hidden />\n <Icon size=\"12\" glyph={<BookmarkOutlineIcon />} aria-hidden />\n </div>\n <div className={styles['pinned-saved-indicators__labels']}>\n <span className={styles['pinned-saved-indicators__label']}>Pinned</span>\n <span className={styles['pinned-saved-indicators__sep']} aria-hidden>\n •\n </span>\n <span className={styles['pinned-saved-indicators__label']}>Saved</span>\n </div>\n </div>\n );\n}\n"],"names":["PinnedSavedIndicators","className","rootClass","styles","jsxs","jsx","Icon","PinOutlineIcon","BookmarkOutlineIcon"],"mappings":"qWAaA,SAAwBA,EAAsB,CAC5C,UAAAC,EAAY,EACd,EAA+B,CAC7B,MAAMC,EAAY,CAACC,UAAO,yBAAyB,EAAGF,CAAS,EAC5D,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEG,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAW,aAAW,mBACpC,SAAA,CAAAE,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,gCAAgC,EACrD,SAAA,CAAAE,EAAAA,IAACC,EAAAA,QAAA,CAAK,KAAK,KAAK,YAAQC,EAAA,CAAA,CAAe,EAAI,cAAW,EAAA,CAAC,EACvDF,EAAAA,IAACC,EAAAA,SAAK,KAAK,KAAK,MAAOD,EAAAA,IAACG,EAAA,CAAA,CAAoB,EAAI,cAAW,EAAA,CAAC,CAAA,EAC9D,EACAJ,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,iCAAiC,EACtD,SAAA,CAAAE,MAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,gCAAgC,EAAG,SAAA,SAAM,EACjEE,EAAAA,IAAC,QAAK,UAAWF,UAAO,8BAA8B,EAAG,cAAW,GAAC,SAAA,IAErE,QACC,OAAA,CAAK,UAAWA,EAAAA,QAAO,gCAAgC,EAAG,SAAA,OAAA,CAAK,CAAA,CAAA,CAClE,CAAA,EACF,CAEJ"}
1
+ {"version":3,"file":"PinnedSavedIndicators.cjs","sources":["../../../src/components/pinned-saved-indicators/PinnedSavedIndicators.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport PinOutlineIcon from '@mattermost/compass-icons/components/pin-outline';\nimport BookmarkOutlineIcon from '@mattermost/compass-icons/components/bookmark-outline';\nimport Icon from '@/components/icon/Icon';\nimport styles from './PinnedSavedIndicators.module.scss';\n\nexport interface PinnedSavedIndicatorsProps {\n /** Optional CSS class on the root. */\n className?: string;\n /** Accessible name for the row. Default: \"Pinned and Saved\". */\n 'aria-label'?: string;\n /** Default: \"Pinned\". */\n pinnedLabel?: ReactNode;\n /** Default: \"Saved\". */\n savedLabel?: ReactNode;\n}\n\n/**\n * Pinned + Saved row shown above a message when applicable (Patterns — Message).\n */\nexport default function PinnedSavedIndicators({\n className = '',\n 'aria-label': ariaLabel = 'Pinned and Saved',\n pinnedLabel = 'Pinned',\n savedLabel = 'Saved',\n}: PinnedSavedIndicatorsProps) {\n const rootClass = [styles['pinned-saved-indicators'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} aria-label={ariaLabel}>\n <div className={styles['pinned-saved-indicators__icons']}>\n <Icon size=\"12\" glyph={<PinOutlineIcon />} aria-hidden />\n <Icon size=\"12\" glyph={<BookmarkOutlineIcon />} aria-hidden />\n </div>\n <div className={styles['pinned-saved-indicators__labels']}>\n <span className={styles['pinned-saved-indicators__label']}>\n {pinnedLabel}\n </span>\n <span className={styles['pinned-saved-indicators__sep']} aria-hidden>\n •\n </span>\n <span className={styles['pinned-saved-indicators__label']}>\n {savedLabel}\n </span>\n </div>\n </div>\n );\n}\n"],"names":["PinnedSavedIndicators","className","ariaLabel","pinnedLabel","savedLabel","rootClass","styles","jsxs","jsx","Icon","PinOutlineIcon","BookmarkOutlineIcon"],"mappings":"qWAoBA,SAAwBA,EAAsB,CAC5C,UAAAC,EAAY,GACZ,aAAcC,EAAY,mBAC1B,YAAAC,EAAc,SACd,WAAAC,EAAa,OACf,EAA+B,CAC7B,MAAMC,EAAY,CAACC,UAAO,yBAAyB,EAAGL,CAAS,EAC5D,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEM,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAW,aAAYH,EACrC,SAAA,CAAAK,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,gCAAgC,EACrD,SAAA,CAAAE,EAAAA,IAACC,EAAAA,QAAA,CAAK,KAAK,KAAK,YAAQC,EAAA,CAAA,CAAe,EAAI,cAAW,EAAA,CAAC,EACvDF,EAAAA,IAACC,EAAAA,SAAK,KAAK,KAAK,MAAOD,EAAAA,IAACG,EAAA,CAAA,CAAoB,EAAI,cAAW,EAAA,CAAC,CAAA,EAC9D,EACAJ,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,iCAAiC,EACtD,SAAA,CAAAE,MAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,gCAAgC,EACrD,SAAAH,EACH,EACAK,EAAAA,IAAC,QAAK,UAAWF,UAAO,8BAA8B,EAAG,cAAW,GAAC,SAAA,IAErE,QACC,OAAA,CAAK,UAAWA,EAAAA,QAAO,gCAAgC,EACrD,SAAAF,CAAA,CACH,CAAA,CAAA,CACF,CAAA,EACF,CAEJ"}
@@ -1,9 +1,16 @@
1
+ import { ReactNode } from 'react';
1
2
  export interface PinnedSavedIndicatorsProps {
2
3
  /** Optional CSS class on the root. */
3
4
  className?: string;
5
+ /** Accessible name for the row. Default: "Pinned and Saved". */
6
+ 'aria-label'?: string;
7
+ /** Default: "Pinned". */
8
+ pinnedLabel?: ReactNode;
9
+ /** Default: "Saved". */
10
+ savedLabel?: ReactNode;
4
11
  }
5
12
  /**
6
13
  * Pinned + Saved row shown above a message when applicable (Patterns — Message).
7
14
  */
8
- export default function PinnedSavedIndicators({ className, }: PinnedSavedIndicatorsProps): import("react/jsx-runtime").JSX.Element;
15
+ export default function PinnedSavedIndicators({ className, 'aria-label': ariaLabel, pinnedLabel, savedLabel, }: PinnedSavedIndicatorsProps): import("react/jsx-runtime").JSX.Element;
9
16
  //# sourceMappingURL=PinnedSavedIndicators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PinnedSavedIndicators.d.ts","sourceRoot":"","sources":["../../../src/components/pinned-saved-indicators/PinnedSavedIndicators.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,0BAA0B;IACzC,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,SAAc,GACf,EAAE,0BAA0B,2CAoB5B"}
1
+ {"version":3,"file":"PinnedSavedIndicators.d.ts","sourceRoot":"","sources":["../../../src/components/pinned-saved-indicators/PinnedSavedIndicators.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,MAAM,WAAW,0BAA0B;IACzC,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,wBAAwB;IACxB,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,SAAc,EACd,YAAY,EAAE,SAA8B,EAC5C,WAAsB,EACtB,UAAoB,GACrB,EAAE,0BAA0B,2CAwB5B"}
@@ -1,25 +1,28 @@
1
- import { jsxs as n, jsx as i } from "react/jsx-runtime";
2
- import __r from "@mattermost/compass-icons/components/pin-outline.js";const r=__r&&__r.default?__r.default:__r;
3
- import __o from "@mattermost/compass-icons/components/bookmark-outline.js";const o=__o&&__o.default?__o.default:__o;
4
- import a from "../icon/Icon.js";
5
- import e from "./PinnedSavedIndicators.module.scss.js";
6
- function v({
7
- className: d = ""
1
+ import { jsxs as e, jsx as i } from "react/jsx-runtime";
2
+ import __c from "@mattermost/compass-icons/components/pin-outline.js";const c=__c&&__c.default?__c.default:__c;
3
+ import __t from "@mattermost/compass-icons/components/bookmark-outline.js";const t=__t&&__t.default?__t.default:__t;
4
+ import n from "../icon/Icon.js";
5
+ import a from "./PinnedSavedIndicators.module.scss.js";
6
+ function f({
7
+ className: d = "",
8
+ "aria-label": s = "Pinned and Saved",
9
+ pinnedLabel: r = "Pinned",
10
+ savedLabel: l = "Saved"
8
11
  }) {
9
- const s = [e["pinned-saved-indicators"], d].filter(Boolean).join(" ");
10
- return /* @__PURE__ */ n("div", { className: s, "aria-label": "Pinned and Saved", children: [
11
- /* @__PURE__ */ n("div", { className: e["pinned-saved-indicators__icons"], children: [
12
- /* @__PURE__ */ i(a, { size: "12", glyph: /* @__PURE__ */ i(r, {}), "aria-hidden": !0 }),
13
- /* @__PURE__ */ i(a, { size: "12", glyph: /* @__PURE__ */ i(o, {}), "aria-hidden": !0 })
12
+ const o = [a["pinned-saved-indicators"], d].filter(Boolean).join(" ");
13
+ return /* @__PURE__ */ e("div", { className: o, "aria-label": s, children: [
14
+ /* @__PURE__ */ e("div", { className: a["pinned-saved-indicators__icons"], children: [
15
+ /* @__PURE__ */ i(n, { size: "12", glyph: /* @__PURE__ */ i(c, {}), "aria-hidden": !0 }),
16
+ /* @__PURE__ */ i(n, { size: "12", glyph: /* @__PURE__ */ i(t, {}), "aria-hidden": !0 })
14
17
  ] }),
15
- /* @__PURE__ */ n("div", { className: e["pinned-saved-indicators__labels"], children: [
16
- /* @__PURE__ */ i("span", { className: e["pinned-saved-indicators__label"], children: "Pinned" }),
17
- /* @__PURE__ */ i("span", { className: e["pinned-saved-indicators__sep"], "aria-hidden": !0, children: "•" }),
18
- /* @__PURE__ */ i("span", { className: e["pinned-saved-indicators__label"], children: "Saved" })
18
+ /* @__PURE__ */ e("div", { className: a["pinned-saved-indicators__labels"], children: [
19
+ /* @__PURE__ */ i("span", { className: a["pinned-saved-indicators__label"], children: r }),
20
+ /* @__PURE__ */ i("span", { className: a["pinned-saved-indicators__sep"], "aria-hidden": !0, children: "•" }),
21
+ /* @__PURE__ */ i("span", { className: a["pinned-saved-indicators__label"], children: l })
19
22
  ] })
20
23
  ] });
21
24
  }
22
25
  export {
23
- v as default
26
+ f as default
24
27
  };
25
28
  //# sourceMappingURL=PinnedSavedIndicators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PinnedSavedIndicators.js","sources":["../../../src/components/pinned-saved-indicators/PinnedSavedIndicators.tsx"],"sourcesContent":["import PinOutlineIcon from '@mattermost/compass-icons/components/pin-outline';\nimport BookmarkOutlineIcon from '@mattermost/compass-icons/components/bookmark-outline';\nimport Icon from '@/components/icon/Icon';\nimport styles from './PinnedSavedIndicators.module.scss';\n\nexport interface PinnedSavedIndicatorsProps {\n /** Optional CSS class on the root. */\n className?: string;\n}\n\n/**\n * Pinned + Saved row shown above a message when applicable (Patterns — Message).\n */\nexport default function PinnedSavedIndicators({\n className = '',\n}: PinnedSavedIndicatorsProps) {\n const rootClass = [styles['pinned-saved-indicators'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} aria-label=\"Pinned and Saved\">\n <div className={styles['pinned-saved-indicators__icons']}>\n <Icon size=\"12\" glyph={<PinOutlineIcon />} aria-hidden />\n <Icon size=\"12\" glyph={<BookmarkOutlineIcon />} aria-hidden />\n </div>\n <div className={styles['pinned-saved-indicators__labels']}>\n <span className={styles['pinned-saved-indicators__label']}>Pinned</span>\n <span className={styles['pinned-saved-indicators__sep']} aria-hidden>\n •\n </span>\n <span className={styles['pinned-saved-indicators__label']}>Saved</span>\n </div>\n </div>\n );\n}\n"],"names":["PinnedSavedIndicators","className","rootClass","styles","jsxs","jsx","Icon","PinOutlineIcon","BookmarkOutlineIcon"],"mappings":";;;;;AAaA,SAAwBA,EAAsB;AAAA,EAC5C,WAAAC,IAAY;AACd,GAA+B;AAC7B,QAAMC,IAAY,CAACC,EAAO,yBAAyB,GAAGF,CAAS,EAC5D,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAG,EAAC,OAAA,EAAI,WAAWF,GAAW,cAAW,oBACpC,UAAA;AAAA,IAAA,gBAAAE,EAAC,OAAA,EAAI,WAAWD,EAAO,gCAAgC,GACrD,UAAA;AAAA,MAAA,gBAAAE,EAACC,GAAA,EAAK,MAAK,MAAK,yBAAQC,GAAA,CAAA,CAAe,GAAI,eAAW,GAAA,CAAC;AAAA,MACvD,gBAAAF,EAACC,KAAK,MAAK,MAAK,OAAO,gBAAAD,EAACG,GAAA,CAAA,CAAoB,GAAI,eAAW,GAAA,CAAC;AAAA,IAAA,GAC9D;AAAA,IACA,gBAAAJ,EAAC,OAAA,EAAI,WAAWD,EAAO,iCAAiC,GACtD,UAAA;AAAA,MAAA,gBAAAE,EAAC,QAAA,EAAK,WAAWF,EAAO,gCAAgC,GAAG,UAAA,UAAM;AAAA,MACjE,gBAAAE,EAAC,UAAK,WAAWF,EAAO,8BAA8B,GAAG,eAAW,IAAC,UAAA,KAErE;AAAA,wBACC,QAAA,EAAK,WAAWA,EAAO,gCAAgC,GAAG,UAAA,QAAA,CAAK;AAAA,IAAA,EAAA,CAClE;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"PinnedSavedIndicators.js","sources":["../../../src/components/pinned-saved-indicators/PinnedSavedIndicators.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport PinOutlineIcon from '@mattermost/compass-icons/components/pin-outline';\nimport BookmarkOutlineIcon from '@mattermost/compass-icons/components/bookmark-outline';\nimport Icon from '@/components/icon/Icon';\nimport styles from './PinnedSavedIndicators.module.scss';\n\nexport interface PinnedSavedIndicatorsProps {\n /** Optional CSS class on the root. */\n className?: string;\n /** Accessible name for the row. Default: \"Pinned and Saved\". */\n 'aria-label'?: string;\n /** Default: \"Pinned\". */\n pinnedLabel?: ReactNode;\n /** Default: \"Saved\". */\n savedLabel?: ReactNode;\n}\n\n/**\n * Pinned + Saved row shown above a message when applicable (Patterns — Message).\n */\nexport default function PinnedSavedIndicators({\n className = '',\n 'aria-label': ariaLabel = 'Pinned and Saved',\n pinnedLabel = 'Pinned',\n savedLabel = 'Saved',\n}: PinnedSavedIndicatorsProps) {\n const rootClass = [styles['pinned-saved-indicators'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} aria-label={ariaLabel}>\n <div className={styles['pinned-saved-indicators__icons']}>\n <Icon size=\"12\" glyph={<PinOutlineIcon />} aria-hidden />\n <Icon size=\"12\" glyph={<BookmarkOutlineIcon />} aria-hidden />\n </div>\n <div className={styles['pinned-saved-indicators__labels']}>\n <span className={styles['pinned-saved-indicators__label']}>\n {pinnedLabel}\n </span>\n <span className={styles['pinned-saved-indicators__sep']} aria-hidden>\n •\n </span>\n <span className={styles['pinned-saved-indicators__label']}>\n {savedLabel}\n </span>\n </div>\n </div>\n );\n}\n"],"names":["PinnedSavedIndicators","className","ariaLabel","pinnedLabel","savedLabel","rootClass","styles","jsxs","jsx","Icon","PinOutlineIcon","BookmarkOutlineIcon"],"mappings":";;;;;AAoBA,SAAwBA,EAAsB;AAAA,EAC5C,WAAAC,IAAY;AAAA,EACZ,cAAcC,IAAY;AAAA,EAC1B,aAAAC,IAAc;AAAA,EACd,YAAAC,IAAa;AACf,GAA+B;AAC7B,QAAMC,IAAY,CAACC,EAAO,yBAAyB,GAAGL,CAAS,EAC5D,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAM,EAAC,OAAA,EAAI,WAAWF,GAAW,cAAYH,GACrC,UAAA;AAAA,IAAA,gBAAAK,EAAC,OAAA,EAAI,WAAWD,EAAO,gCAAgC,GACrD,UAAA;AAAA,MAAA,gBAAAE,EAACC,GAAA,EAAK,MAAK,MAAK,yBAAQC,GAAA,CAAA,CAAe,GAAI,eAAW,GAAA,CAAC;AAAA,MACvD,gBAAAF,EAACC,KAAK,MAAK,MAAK,OAAO,gBAAAD,EAACG,GAAA,CAAA,CAAoB,GAAI,eAAW,GAAA,CAAC;AAAA,IAAA,GAC9D;AAAA,IACA,gBAAAJ,EAAC,OAAA,EAAI,WAAWD,EAAO,iCAAiC,GACtD,UAAA;AAAA,MAAA,gBAAAE,EAAC,QAAA,EAAK,WAAWF,EAAO,gCAAgC,GACrD,UAAAH,GACH;AAAA,MACA,gBAAAK,EAAC,UAAK,WAAWF,EAAO,8BAA8B,GAAG,eAAW,IAAC,UAAA,KAErE;AAAA,wBACC,QAAA,EAAK,WAAWA,EAAO,gCAAgC,GACrD,UAAAF,EAAA,CACH;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}