@mattermost/compass-ui 0.1.0-alpha.6 → 0.1.0-alpha.7

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 (247) hide show
  1. package/dist/components/action-button/ActionButton.cjs.map +1 -1
  2. package/dist/components/action-button/ActionButton.d.ts +1 -0
  3. package/dist/components/action-button/ActionButton.d.ts.map +1 -1
  4. package/dist/components/action-button/ActionButton.js.map +1 -1
  5. package/dist/components/admin-panel/AdminPanel.cjs.map +1 -1
  6. package/dist/components/admin-panel/AdminPanel.d.ts +1 -0
  7. package/dist/components/admin-panel/AdminPanel.d.ts.map +1 -1
  8. package/dist/components/admin-panel/AdminPanel.js.map +1 -1
  9. package/dist/components/admin-panel-header/AdminPanelHeader.cjs.map +1 -1
  10. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts +1 -0
  11. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts.map +1 -1
  12. package/dist/components/admin-panel-header/AdminPanelHeader.js.map +1 -1
  13. package/dist/components/button/Button.cjs +1 -1
  14. package/dist/components/button/Button.cjs.map +1 -1
  15. package/dist/components/button/Button.d.ts +2 -2
  16. package/dist/components/button/Button.d.ts.map +1 -1
  17. package/dist/components/button/Button.js +24 -24
  18. package/dist/components/button/Button.js.map +1 -1
  19. package/dist/components/button/Button.module.css +1 -1
  20. package/dist/components/button/Button.module.scss.cjs +1 -1
  21. package/dist/components/button/Button.module.scss.js +13 -12
  22. package/dist/components/button/Button.module.scss.js.map +1 -1
  23. package/dist/components/card-button/CardButton.cjs +2 -0
  24. package/dist/components/card-button/CardButton.cjs.map +1 -0
  25. package/dist/components/card-button/CardButton.d.ts +20 -0
  26. package/dist/components/card-button/CardButton.d.ts.map +1 -0
  27. package/dist/components/card-button/CardButton.js +45 -0
  28. package/dist/components/card-button/CardButton.js.map +1 -0
  29. package/dist/components/card-button/CardButton.module.css +1 -0
  30. package/dist/components/card-button/CardButton.module.scss.cjs +2 -0
  31. package/dist/components/card-button/CardButton.module.scss.cjs.map +1 -0
  32. package/dist/components/card-button/CardButton.module.scss.js +13 -0
  33. package/dist/components/card-button/CardButton.module.scss.js.map +1 -0
  34. package/dist/components/card-button/CardButtonGroup.cjs +2 -0
  35. package/dist/components/card-button/CardButtonGroup.cjs.map +1 -0
  36. package/dist/components/card-button/CardButtonGroup.d.ts +13 -0
  37. package/dist/components/card-button/CardButtonGroup.d.ts.map +1 -0
  38. package/dist/components/card-button/CardButtonGroup.js +85 -0
  39. package/dist/components/card-button/CardButtonGroup.js.map +1 -0
  40. package/dist/components/card-button/CardButtonGroup.module.css +1 -0
  41. package/dist/components/card-button/CardButtonGroup.module.scss.cjs +2 -0
  42. package/dist/components/card-button/CardButtonGroup.module.scss.cjs.map +1 -0
  43. package/dist/components/card-button/CardButtonGroup.module.scss.js +7 -0
  44. package/dist/components/card-button/CardButtonGroup.module.scss.js.map +1 -0
  45. package/dist/components/card-button/index.cjs +2 -0
  46. package/dist/components/card-button/index.d.ts +5 -0
  47. package/dist/components/card-button/index.d.ts.map +1 -0
  48. package/dist/components/card-button/index.js +7 -0
  49. package/dist/components/card-button/index.js.map +1 -0
  50. package/dist/components/emoji-button/EmojiButton.cjs +2 -0
  51. package/dist/components/emoji-button/EmojiButton.cjs.map +1 -0
  52. package/dist/components/emoji-button/EmojiButton.d.ts +30 -0
  53. package/dist/components/emoji-button/EmojiButton.d.ts.map +1 -0
  54. package/dist/components/emoji-button/EmojiButton.js +35 -0
  55. package/dist/components/emoji-button/EmojiButton.js.map +1 -0
  56. package/dist/components/emoji-button/EmojiButton.module.css +1 -0
  57. package/dist/components/emoji-button/EmojiButton.module.scss.cjs +2 -0
  58. package/dist/components/emoji-button/EmojiButton.module.scss.cjs.map +1 -0
  59. package/dist/components/emoji-button/EmojiButton.module.scss.js +15 -0
  60. package/dist/components/emoji-button/EmojiButton.module.scss.js.map +1 -0
  61. package/dist/components/emoji-button/index.cjs +2 -0
  62. package/dist/components/emoji-button/index.cjs.map +1 -0
  63. package/dist/components/emoji-button/index.d.ts +3 -0
  64. package/dist/components/emoji-button/index.d.ts.map +1 -0
  65. package/dist/components/emoji-button/index.js +6 -0
  66. package/dist/components/emoji-popover/EmojiPopover.cjs +2 -0
  67. package/dist/components/emoji-popover/EmojiPopover.cjs.map +1 -0
  68. package/dist/components/emoji-popover/EmojiPopover.d.ts +34 -0
  69. package/dist/components/emoji-popover/EmojiPopover.d.ts.map +1 -0
  70. package/dist/components/emoji-popover/EmojiPopover.js +244 -0
  71. package/dist/components/emoji-popover/EmojiPopover.js.map +1 -0
  72. package/dist/components/emoji-popover/EmojiPopover.module.css +1 -0
  73. package/dist/components/emoji-popover/EmojiPopover.module.scss.cjs +2 -0
  74. package/dist/components/emoji-popover/EmojiPopover.module.scss.cjs.map +1 -0
  75. package/dist/components/emoji-popover/EmojiPopover.module.scss.js +27 -0
  76. package/dist/components/emoji-popover/EmojiPopover.module.scss.js.map +1 -0
  77. package/dist/components/{message-reactions → emoji-popover}/index.cjs +1 -1
  78. package/dist/components/emoji-popover/index.cjs.map +1 -0
  79. package/dist/components/emoji-popover/index.d.ts +3 -0
  80. package/dist/components/emoji-popover/index.d.ts.map +1 -0
  81. package/dist/components/emoji-popover/index.js +5 -0
  82. package/dist/components/emoji-popover/index.js.map +1 -0
  83. package/dist/components/global-banner/GlobalBanner.cjs.map +1 -1
  84. package/dist/components/global-banner/GlobalBanner.d.ts +1 -1
  85. package/dist/components/global-banner/GlobalBanner.d.ts.map +1 -1
  86. package/dist/components/global-banner/GlobalBanner.js.map +1 -1
  87. package/dist/components/global-header/GlobalHeader.module.css +1 -1
  88. package/dist/components/global-header/GlobalHeader.module.scss.cjs +1 -1
  89. package/dist/components/global-header/GlobalHeader.module.scss.js +16 -16
  90. package/dist/components/menu-group-heading/MenuGroupHeading.cjs +2 -0
  91. package/dist/components/menu-group-heading/MenuGroupHeading.cjs.map +1 -0
  92. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts +11 -0
  93. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts.map +1 -0
  94. package/dist/components/menu-group-heading/MenuGroupHeading.js +20 -0
  95. package/dist/components/menu-group-heading/MenuGroupHeading.js.map +1 -0
  96. package/dist/components/menu-group-heading/MenuGroupHeading.module.css +1 -0
  97. package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.cjs +2 -0
  98. package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.cjs.map +1 -0
  99. package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.js +8 -0
  100. package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.js.map +1 -0
  101. package/dist/components/menu-group-heading/index.cjs +2 -0
  102. package/dist/components/menu-group-heading/index.cjs.map +1 -0
  103. package/dist/components/menu-group-heading/index.d.ts +3 -0
  104. package/dist/components/menu-group-heading/index.d.ts.map +1 -0
  105. package/dist/components/menu-group-heading/index.js +5 -0
  106. package/dist/components/menu-group-heading/index.js.map +1 -0
  107. package/dist/components/menu-item/MenuItem.cjs.map +1 -1
  108. package/dist/components/menu-item/MenuItem.d.ts +2 -2
  109. package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
  110. package/dist/components/menu-item/MenuItem.js.map +1 -1
  111. package/dist/components/message-separator/MessageSeparator.cjs +1 -1
  112. package/dist/components/message-separator/MessageSeparator.cjs.map +1 -1
  113. package/dist/components/message-separator/MessageSeparator.d.ts +1 -1
  114. package/dist/components/message-separator/MessageSeparator.js +1 -1
  115. package/dist/components/message-separator/MessageSeparator.js.map +1 -1
  116. package/dist/components/modal/Modal.cjs +1 -1
  117. package/dist/components/modal/Modal.cjs.map +1 -1
  118. package/dist/components/modal/Modal.d.ts +43 -11
  119. package/dist/components/modal/Modal.d.ts.map +1 -1
  120. package/dist/components/modal/Modal.js +56 -74
  121. package/dist/components/modal/Modal.js.map +1 -1
  122. package/dist/components/modal/Modal.module.css +1 -1
  123. package/dist/components/modal/Modal.module.scss.cjs +1 -1
  124. package/dist/components/modal/Modal.module.scss.js +12 -25
  125. package/dist/components/modal/Modal.module.scss.js.map +1 -1
  126. package/dist/components/modal/index.d.ts +1 -1
  127. package/dist/components/modal/index.d.ts.map +1 -1
  128. package/dist/components/modal-footer/ModalFooter.cjs +2 -0
  129. package/dist/components/modal-footer/ModalFooter.cjs.map +1 -0
  130. package/dist/components/modal-footer/ModalFooter.d.ts +29 -0
  131. package/dist/components/modal-footer/ModalFooter.d.ts.map +1 -0
  132. package/dist/components/modal-footer/ModalFooter.js +31 -0
  133. package/dist/components/modal-footer/ModalFooter.js.map +1 -0
  134. package/dist/components/modal-footer/ModalFooter.module.css +1 -0
  135. package/dist/components/modal-footer/ModalFooter.module.scss.cjs +2 -0
  136. package/dist/components/modal-footer/ModalFooter.module.scss.cjs.map +1 -0
  137. package/dist/components/modal-footer/ModalFooter.module.scss.js +17 -0
  138. package/dist/components/modal-footer/ModalFooter.module.scss.js.map +1 -0
  139. package/dist/components/modal-footer/index.cjs +2 -0
  140. package/dist/components/modal-footer/index.cjs.map +1 -0
  141. package/dist/components/modal-footer/index.d.ts +3 -0
  142. package/dist/components/modal-footer/index.d.ts.map +1 -0
  143. package/dist/components/modal-footer/index.js +5 -0
  144. package/dist/components/modal-footer/index.js.map +1 -0
  145. package/dist/components/modal-header/ModalHeader.cjs +2 -0
  146. package/dist/components/modal-header/ModalHeader.cjs.map +1 -0
  147. package/dist/components/modal-header/ModalHeader.d.ts +38 -0
  148. package/dist/components/modal-header/ModalHeader.d.ts.map +1 -0
  149. package/dist/components/modal-header/ModalHeader.js +74 -0
  150. package/dist/components/modal-header/ModalHeader.js.map +1 -0
  151. package/dist/components/modal-header/ModalHeader.module.css +1 -0
  152. package/dist/components/modal-header/ModalHeader.module.scss.cjs +2 -0
  153. package/dist/components/modal-header/ModalHeader.module.scss.cjs.map +1 -0
  154. package/dist/components/modal-header/ModalHeader.module.scss.js +19 -0
  155. package/dist/components/modal-header/ModalHeader.module.scss.js.map +1 -0
  156. package/dist/components/modal-header/index.cjs +2 -0
  157. package/dist/components/modal-header/index.cjs.map +1 -0
  158. package/dist/components/modal-header/index.d.ts +3 -0
  159. package/dist/components/modal-header/index.d.ts.map +1 -0
  160. package/dist/components/modal-header/index.js +5 -0
  161. package/dist/components/modal-header/index.js.map +1 -0
  162. package/dist/components/popover-notice/PopoverNotice.cjs.map +1 -1
  163. package/dist/components/popover-notice/PopoverNotice.d.ts +1 -1
  164. package/dist/components/popover-notice/PopoverNotice.d.ts.map +1 -1
  165. package/dist/components/popover-notice/PopoverNotice.js.map +1 -1
  166. package/dist/components/reaction-button/ReactionButton.cjs +2 -0
  167. package/dist/components/reaction-button/ReactionButton.cjs.map +1 -0
  168. package/dist/components/reaction-button/ReactionButton.d.ts +17 -0
  169. package/dist/components/reaction-button/ReactionButton.d.ts.map +1 -0
  170. package/dist/components/reaction-button/ReactionButton.js +42 -0
  171. package/dist/components/reaction-button/ReactionButton.js.map +1 -0
  172. package/dist/components/reaction-button/ReactionButton.module.css +1 -0
  173. package/dist/components/reaction-button/ReactionButton.module.scss.cjs +2 -0
  174. package/dist/components/reaction-button/ReactionButton.module.scss.cjs.map +1 -0
  175. package/dist/components/reaction-button/ReactionButton.module.scss.js +12 -0
  176. package/dist/components/reaction-button/ReactionButton.module.scss.js.map +1 -0
  177. package/dist/components/reaction-button/index.cjs +2 -0
  178. package/dist/components/reaction-button/index.cjs.map +1 -0
  179. package/dist/components/reaction-button/index.d.ts +3 -0
  180. package/dist/components/reaction-button/index.d.ts.map +1 -0
  181. package/dist/components/reaction-button/index.js +5 -0
  182. package/dist/components/reaction-button/index.js.map +1 -0
  183. package/dist/components/reactions-row/ReactionsRow.cjs +2 -0
  184. package/dist/components/reactions-row/ReactionsRow.cjs.map +1 -0
  185. package/dist/components/{message-reactions/MessageReactions.d.ts → reactions-row/ReactionsRow.d.ts} +5 -5
  186. package/dist/components/reactions-row/ReactionsRow.d.ts.map +1 -0
  187. package/dist/components/reactions-row/ReactionsRow.js +71 -0
  188. package/dist/components/reactions-row/ReactionsRow.js.map +1 -0
  189. package/dist/components/reactions-row/ReactionsRow.module.css +1 -0
  190. package/dist/components/reactions-row/ReactionsRow.module.scss.cjs +2 -0
  191. package/dist/components/reactions-row/ReactionsRow.module.scss.cjs.map +1 -0
  192. package/dist/components/reactions-row/ReactionsRow.module.scss.js +14 -0
  193. package/dist/components/reactions-row/ReactionsRow.module.scss.js.map +1 -0
  194. package/dist/components/reactions-row/index.cjs +2 -0
  195. package/dist/components/reactions-row/index.cjs.map +1 -0
  196. package/dist/components/reactions-row/index.d.ts +3 -0
  197. package/dist/components/reactions-row/index.d.ts.map +1 -0
  198. package/dist/components/reactions-row/index.js +5 -0
  199. package/dist/components/reactions-row/index.js.map +1 -0
  200. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs.map +1 -1
  201. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts +1 -1
  202. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts.map +1 -1
  203. package/dist/components/right-sidebar-header/RightSidebarHeader.js.map +1 -1
  204. package/dist/components/section-notice/SectionNotice.cjs.map +1 -1
  205. package/dist/components/section-notice/SectionNotice.d.ts +1 -1
  206. package/dist/components/section-notice/SectionNotice.d.ts.map +1 -1
  207. package/dist/components/section-notice/SectionNotice.js.map +1 -1
  208. package/dist/components/tag/Tag.cjs.map +1 -1
  209. package/dist/components/tag/Tag.d.ts +1 -1
  210. package/dist/components/tag/Tag.d.ts.map +1 -1
  211. package/dist/components/tag/Tag.js.map +1 -1
  212. package/dist/components/text-input/TextInput.cjs.map +1 -1
  213. package/dist/components/text-input/TextInput.d.ts +1 -1
  214. package/dist/components/text-input/TextInput.d.ts.map +1 -1
  215. package/dist/components/text-input/TextInput.js.map +1 -1
  216. package/dist/components/thread-footer/ThreadFooter.module.css +1 -1
  217. package/dist/components/thread-footer/ThreadFooter.module.scss.cjs +1 -1
  218. package/dist/components/thread-footer/ThreadFooter.module.scss.js +19 -19
  219. package/dist/components/tooltip/Tooltip.cjs.map +1 -1
  220. package/dist/components/tooltip/Tooltip.d.ts +1 -1
  221. package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
  222. package/dist/components/tooltip/Tooltip.js.map +1 -1
  223. package/dist/components/tour-point/TourPoint.module.css +1 -1
  224. package/dist/components/tour-point/TourPoint.module.scss.cjs +1 -1
  225. package/dist/components/tour-point/TourPoint.module.scss.js +28 -28
  226. package/dist/index.cjs +1 -1
  227. package/dist/index.css +23 -7
  228. package/dist/index.d.ts +8 -1
  229. package/dist/index.d.ts.map +1 -1
  230. package/dist/index.js +192 -175
  231. package/dist/index.js.map +1 -1
  232. package/package.json +25 -4
  233. package/dist/components/message-reactions/MessageReactions.cjs +0 -2
  234. package/dist/components/message-reactions/MessageReactions.cjs.map +0 -1
  235. package/dist/components/message-reactions/MessageReactions.d.ts.map +0 -1
  236. package/dist/components/message-reactions/MessageReactions.js +0 -85
  237. package/dist/components/message-reactions/MessageReactions.js.map +0 -1
  238. package/dist/components/message-reactions/MessageReactions.module.css +0 -1
  239. package/dist/components/message-reactions/MessageReactions.module.scss.cjs +0 -2
  240. package/dist/components/message-reactions/MessageReactions.module.scss.cjs.map +0 -1
  241. package/dist/components/message-reactions/MessageReactions.module.scss.js +0 -18
  242. package/dist/components/message-reactions/MessageReactions.module.scss.js.map +0 -1
  243. package/dist/components/message-reactions/index.d.ts +0 -3
  244. package/dist/components/message-reactions/index.d.ts.map +0 -1
  245. package/dist/components/message-reactions/index.js +0 -5
  246. /package/dist/components/{message-reactions → card-button}/index.cjs.map +0 -0
  247. /package/dist/components/{message-reactions → emoji-button}/index.js.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactionButton.d.ts","sourceRoot":"","sources":["../../../src/components/reaction-button/ReactionButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAGlD,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAClF,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,KAAK,EACL,KAAK,EACL,aAAqB,EACrB,SAAc,EACd,OAAO,EACP,GAAG,IAAI,EACR,EAAE,mBAAmB,2CA8CrB"}
@@ -0,0 +1,42 @@
1
+ import { jsxs as b, jsx as u } from "react/jsx-runtime";
2
+ import { useRef as c, useState as _, useEffect as h } from "react";
3
+ import e from "./ReactionButton.module.scss.js";
4
+ function x({
5
+ emoji: r,
6
+ count: t,
7
+ byCurrentUser: a = !1,
8
+ className: l = "",
9
+ onClick: m,
10
+ ...f
11
+ }) {
12
+ const n = c(t), o = c(void 0), [i, s] = _(null);
13
+ h(() => (t !== n.current && (clearTimeout(o.current), s(t > n.current ? "up" : "down"), n.current = t, o.current = setTimeout(() => s(null), 300)), () => clearTimeout(o.current)), [t]);
14
+ const p = [
15
+ e["reaction-button"],
16
+ a ? e["reaction-button--mine"] : "",
17
+ l
18
+ ].filter(Boolean).join(" "), d = [
19
+ e["reaction-button__count"],
20
+ i === "up" ? e["reaction-button__count--anim-up"] : "",
21
+ i === "down" ? e["reaction-button__count--anim-down"] : ""
22
+ ].filter(Boolean).join(" ");
23
+ return /* @__PURE__ */ b(
24
+ "button",
25
+ {
26
+ type: "button",
27
+ className: p,
28
+ onClick: m,
29
+ "aria-label": `${r} ${t} reaction${t !== 1 ? "s" : ""}`,
30
+ "aria-pressed": a,
31
+ ...f,
32
+ children: [
33
+ /* @__PURE__ */ u("span", { className: e["reaction-button__emoji"], "aria-hidden": !0, children: r }),
34
+ /* @__PURE__ */ u("span", { className: d, children: t })
35
+ ]
36
+ }
37
+ );
38
+ }
39
+ export {
40
+ x as default
41
+ };
42
+ //# sourceMappingURL=ReactionButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactionButton.js","sources":["../../../src/components/reaction-button/ReactionButton.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { ButtonHTMLAttributes } from 'react';\nimport styles from './ReactionButton.module.scss';\n\nexport interface ReactionButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** The emoji character to display. */\n emoji: string;\n /** Number of users who reacted with this emoji. */\n count: number;\n /** Whether the current user has reacted with this emoji. */\n byCurrentUser?: boolean;\n}\n\n/**\n * A single emoji reaction button — shows the emoji, count, and highlights when the current user\n * has reacted. Fires onClick when clicked; the host owns toggle logic.\n *\n * The count animates up or down when the `count` prop changes.\n */\nexport default function ReactionButton({\n emoji,\n count,\n byCurrentUser = false,\n className = '',\n onClick,\n ...rest\n}: ReactionButtonProps) {\n const prevCountRef = useRef(count);\n const timerRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n const [countAnim, setCountAnim] = useState<'up' | 'down' | null>(null);\n\n useEffect(() => {\n if (count !== prevCountRef.current) {\n clearTimeout(timerRef.current);\n setCountAnim(count > prevCountRef.current ? 'up' : 'down');\n prevCountRef.current = count;\n timerRef.current = setTimeout(() => setCountAnim(null), 300);\n }\n return () => clearTimeout(timerRef.current);\n }, [count]);\n\n const rootClass = [\n styles['reaction-button'],\n byCurrentUser ? styles['reaction-button--mine'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const countClass = [\n styles['reaction-button__count'],\n countAnim === 'up' ? styles['reaction-button__count--anim-up'] : '',\n countAnim === 'down' ? styles['reaction-button__count--anim-down'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n type=\"button\"\n className={rootClass}\n onClick={onClick}\n aria-label={`${emoji} ${count} reaction${count !== 1 ? 's' : ''}`}\n aria-pressed={byCurrentUser}\n {...rest}\n >\n <span className={styles['reaction-button__emoji']} aria-hidden>\n {emoji}\n </span>\n <span className={countClass}>{count}</span>\n </button>\n );\n}\n"],"names":["ReactionButton","emoji","count","byCurrentUser","className","onClick","rest","prevCountRef","useRef","timerRef","countAnim","setCountAnim","useState","useEffect","rootClass","styles","countClass","jsxs","jsx"],"mappings":";;;AAmBA,SAAwBA,EAAe;AAAA,EACrC,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,WAAAC,IAAY;AAAA,EACZ,SAAAC;AAAA,EACA,GAAGC;AACL,GAAwB;AACtB,QAAMC,IAAeC,EAAON,CAAK,GAC3BO,IAAWD,EAAsC,MAAS,GAC1D,CAACE,GAAWC,CAAY,IAAIC,EAA+B,IAAI;AAErE,EAAAC,EAAU,OACJX,MAAUK,EAAa,YACzB,aAAaE,EAAS,OAAO,GAC7BE,EAAaT,IAAQK,EAAa,UAAU,OAAO,MAAM,GACzDA,EAAa,UAAUL,GACvBO,EAAS,UAAU,WAAW,MAAME,EAAa,IAAI,GAAG,GAAG,IAEtD,MAAM,aAAaF,EAAS,OAAO,IACzC,CAACP,CAAK,CAAC;AAEV,QAAMY,IAAY;AAAA,IAChBC,EAAO,iBAAiB;AAAA,IACxBZ,IAAgBY,EAAO,uBAAuB,IAAI;AAAA,IAClDX;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,GAELY,IAAa;AAAA,IACjBD,EAAO,wBAAwB;AAAA,IAC/BL,MAAc,OAAOK,EAAO,iCAAiC,IAAI;AAAA,IACjEL,MAAc,SAASK,EAAO,mCAAmC,IAAI;AAAA,EAAA,EAEpE,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAWH;AAAA,MACX,SAAAT;AAAA,MACA,cAAY,GAAGJ,CAAK,IAAIC,CAAK,YAAYA,MAAU,IAAI,MAAM,EAAE;AAAA,MAC/D,gBAAcC;AAAA,MACb,GAAGG;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAY,EAAC,UAAK,WAAWH,EAAO,wBAAwB,GAAG,eAAW,IAC3D,UAAAd,GACH;AAAA,QACA,gBAAAiB,EAAC,QAAA,EAAK,WAAWF,GAAa,UAAAd,EAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG1C;"}
@@ -0,0 +1 @@
1
+ @keyframes _reaction-count-up_15oyo_1{0%{transform:translateY(var(--spacing-xxs));opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _reaction-count-down_15oyo_1{0%{transform:translateY(calc(var(--spacing-xxs) * -1));opacity:0}to{transform:translateY(0);opacity:1}}._reaction-button_15oyo_22{display:inline-flex;align-items:center;gap:var(--spacing-xxxs);padding:var(--spacing-xxxs) var(--spacing-xxs);border:none;border-radius:var(--radius-s);background-color:rgba(var(--center-channel-color-rgb),.08);cursor:pointer;outline:2px solid color-mix(in srgb,var(--focus-ring-color) 0%,transparent);outline-offset:0;transition:background-color var(--duration-quick) var(--ease-transition),box-shadow var(--duration-quick) var(--ease-transition),outline-color var(--duration-quick) var(--ease-transition),outline-offset var(--duration-quick) var(--ease-transition)}._reaction-button_15oyo_22:hover{background-color:rgba(var(--center-channel-color-rgb),.12)}._reaction-button_15oyo_22:focus-visible{outline-color:var(--focus-ring-color);outline-offset:3px}._reaction-button--mine_15oyo_42{background-color:rgba(var(--link-color-rgb),.08);box-shadow:inset 0 0 0 1px var(--link-color)}._reaction-button--mine_15oyo_42:hover{background-color:rgba(var(--link-color-rgb),.12)}._reaction-button--mine_15oyo_42 ._reaction-button__count_15oyo_49{color:var(--link-color)}._reaction-button__emoji_15oyo_52{font-size:var(--font-size-200);line-height:var(--line-height-50)}._reaction-button__count_15oyo_49{font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);line-height:var(--line-height-75);color:rgba(var(--center-channel-color-rgb),.56)}._reaction-button__count--anim-up_15oyo_63{animation:_reaction-count-up_15oyo_1 var(--duration-moderate) var(--ease-entrance)}._reaction-button__count--anim-down_15oyo_66{animation:_reaction-count-down_15oyo_1 var(--duration-moderate) var(--ease-entrance)}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ReactionButton.module.css');const o={"reaction-button":"_reaction-button_15oyo_22","reaction-button--mine":"_reaction-button--mine_15oyo_42","reaction-button__count":"_reaction-button__count_15oyo_49","reaction-button__emoji":"_reaction-button__emoji_15oyo_52","reaction-button__count--anim-up":"_reaction-button__count--anim-up_15oyo_63","reaction-button__count--anim-down":"_reaction-button__count--anim-down_15oyo_66"};exports.default=o;
2
+ //# sourceMappingURL=ReactionButton.module.scss.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactionButton.module.scss.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import './ReactionButton.module.css';const o = {
2
+ "reaction-button": "_reaction-button_15oyo_22",
3
+ "reaction-button--mine": "_reaction-button--mine_15oyo_42",
4
+ "reaction-button__count": "_reaction-button__count_15oyo_49",
5
+ "reaction-button__emoji": "_reaction-button__emoji_15oyo_52",
6
+ "reaction-button__count--anim-up": "_reaction-button__count--anim-up_15oyo_63",
7
+ "reaction-button__count--anim-down": "_reaction-button__count--anim-down_15oyo_66"
8
+ };
9
+ export {
10
+ o as default
11
+ };
12
+ //# sourceMappingURL=ReactionButton.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactionButton.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./ReactionButton.cjs");exports.ReactionButton=t.default;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { default as ReactionButton } from './ReactionButton';
2
+ export type { ReactionButtonProps } from './ReactionButton';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/reaction-button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { default as a } from "./ReactionButton.js";
2
+ export {
3
+ a as ReactionButton
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),h=require("../icon-button/IconButton.cjs"),l=require("../icon/Icon.cjs"),w=require("../reaction-button/ReactionButton.cjs"),__p=require("@mattermost/compass-icons/components/check-circle-outline.js"),p=__p?.default??__p,__b=require("@mattermost/compass-icons/components/emoticon-plus-outline.js"),b=__b?.default??__b,a=require("./ReactionsRow.module.scss.cjs"),N=[{emoji:"👍",count:1},{emoji:"😀",count:4},{emoji:"🙌",count:1}];function q({reactions:n=N,showAddReaction:c=!1,acknowledged:i=!1,acknowledgeCount:r=0,currentUserAcknowledged:s=!1,onAddReaction:u,onReactionClick:t,onAcknowledge:d,className:f="",..._}){const j=[a.default["reactions-row"],f].filter(Boolean).join(" ");return e.jsxs("div",{className:j,..._,children:[i&&e.jsxs("button",{type:"button",className:[a.default["reactions-row__ack"],s?a.default["reactions-row__ack--active"]:""].filter(Boolean).join(" "),onClick:d,"aria-pressed":s,"aria-label":"Acknowledge message",children:[e.jsx("span",{className:a.default["reactions-row__ack-icon"],"aria-hidden":!0,children:e.jsx(l.default,{size:"16",glyph:e.jsx(p,{})})}),s?e.jsx("span",{className:a.default["reactions-row__ack-count"],children:r}):e.jsx("span",{className:a.default["reactions-row__ack-label"],children:"Acknowledge"})]}),e.jsxs("div",{className:a.default["reactions-row__buttons"],children:[n.map(({emoji:o,count:m,byCurrentUser:x})=>e.jsx(w.default,{emoji:o,count:m,byCurrentUser:x,onClick:()=>t==null?void 0:t(o)},o)),c&&e.jsx(h.default,{"aria-label":"Add reaction",className:a.default["reactions-row__add-reaction"],size:"x-small",onClick:u,icon:e.jsx(l.default,{size:"16",glyph:e.jsx(b,{})})})]})]})}exports.default=q;
2
+ //# sourceMappingURL=ReactionsRow.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactionsRow.cjs","sources":["../../../src/components/reactions-row/ReactionsRow.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport ReactionButton from '@/components/reaction-button/ReactionButton';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport EmoticonPlusOutlineIcon from '@mattermost/compass-icons/components/emoticon-plus-outline';\nimport styles from './ReactionsRow.module.scss';\n\nexport interface ReactionItem {\n emoji: string;\n count: number;\n /** Whether the current user reacted with this emoji. */\n byCurrentUser?: boolean;\n}\n\nexport interface ReactionsRowProps extends HTMLAttributes<HTMLDivElement> {\n /** List of reactions to display. */\n reactions?: ReactionItem[];\n /** Whether to show the add-reaction button. Default: false. */\n showAddReaction?: boolean;\n /** Whether to show the acknowledge button. */\n acknowledged?: boolean;\n /** Acknowledge count. */\n acknowledgeCount?: number;\n /** Whether the current user has acknowledged. Default: false. */\n currentUserAcknowledged?: boolean;\n /** Called when add-reaction is clicked. */\n onAddReaction?: () => void;\n /** Called when a Reaction Button is clicked. */\n onReactionClick?: (emoji: string) => void;\n /** Called when the acknowledge button is clicked. */\n onAcknowledge?: () => void;\n /** Optional CSS class name. */\n className?: string;\n}\n\nconst DEFAULT_REACTIONS: ReactionItem[] = [\n { emoji: '👍', count: 1 },\n { emoji: '😀', count: 4 },\n { emoji: '🙌', count: 1 },\n];\n\n/**\n * Reactions Row is the strip of Reaction Buttons below a message — the lightest weight way to\n * respond, applaud, or acknowledge without adding to the thread. The component handles the\n * count, the \"this is mine\" highlight, and the add-reaction affordance.\n */\nexport default function ReactionsRow({\n reactions = DEFAULT_REACTIONS,\n showAddReaction = false,\n acknowledged = false,\n acknowledgeCount = 0,\n currentUserAcknowledged = false,\n onAddReaction,\n onReactionClick,\n onAcknowledge,\n className = '',\n ...rest\n}: ReactionsRowProps) {\n const rootClass = [styles['reactions-row'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} {...rest}>\n {/* Acknowledge button */}\n {acknowledged && (\n <button\n type=\"button\"\n className={[\n styles['reactions-row__ack'],\n currentUserAcknowledged\n ? styles['reactions-row__ack--active']\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onAcknowledge}\n aria-pressed={currentUserAcknowledged}\n aria-label=\"Acknowledge message\"\n >\n <span className={styles['reactions-row__ack-icon']} aria-hidden>\n <Icon size=\"16\" glyph={<CheckCircleOutlineIcon />} />\n </span>\n {currentUserAcknowledged ? (\n <span className={styles['reactions-row__ack-count']}>\n {acknowledgeCount}\n </span>\n ) : (\n <span className={styles['reactions-row__ack-label']}>\n Acknowledge\n </span>\n )}\n </button>\n )}\n\n {/* Reaction buttons */}\n <div className={styles['reactions-row__buttons']}>\n {reactions.map(({ emoji, count, byCurrentUser }) => (\n <ReactionButton\n key={emoji}\n emoji={emoji}\n count={count}\n byCurrentUser={byCurrentUser}\n onClick={() => onReactionClick?.(emoji)}\n />\n ))}\n\n {/* Add reaction button */}\n {showAddReaction && (\n <IconButton\n aria-label=\"Add reaction\"\n className={styles['reactions-row__add-reaction']}\n size=\"x-small\"\n onClick={onAddReaction}\n icon={<Icon size=\"16\" glyph={<EmoticonPlusOutlineIcon />} />}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["DEFAULT_REACTIONS","ReactionsRow","reactions","showAddReaction","acknowledged","acknowledgeCount","currentUserAcknowledged","onAddReaction","onReactionClick","onAcknowledge","className","rest","rootClass","styles","jsxs","jsx","Icon","CheckCircleOutlineIcon","emoji","count","byCurrentUser","ReactionButton","IconButton","EmoticonPlusOutlineIcon"],"mappings":"scAoCMA,EAAoC,CACxC,CAAE,MAAO,KAAM,MAAO,CAAA,EACtB,CAAE,MAAO,KAAM,MAAO,CAAA,EACtB,CAAE,MAAO,KAAM,MAAO,CAAA,CACxB,EAOA,SAAwBC,EAAa,CACnC,UAAAC,EAAYF,EACZ,gBAAAG,EAAkB,GAClB,aAAAC,EAAe,GACf,iBAAAC,EAAmB,EACnB,wBAAAC,EAA0B,GAC1B,cAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,UAAAC,EAAY,GACZ,GAAGC,CACL,EAAsB,CACpB,MAAMC,EAAY,CAACC,UAAO,eAAe,EAAGH,CAAS,EAClD,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEI,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAY,GAAGD,EAE5B,SAAA,CAAAP,GACCU,EAAAA,KAAC,SAAA,CACC,KAAK,SACL,UAAW,CACTD,EAAAA,QAAO,oBAAoB,EAC3BP,EACIO,EAAAA,QAAO,4BAA4B,EACnC,EAAA,EAEH,OAAO,OAAO,EACd,KAAK,GAAG,EACX,QAASJ,EACT,eAAcH,EACd,aAAW,sBAEX,SAAA,CAAAS,MAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,yBAAyB,EAAG,cAAW,GAC7D,SAAAE,EAAAA,IAACC,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACE,EAAA,CAAA,CAAuB,EAAI,EACrD,EACCX,EACCS,EAAAA,IAAC,OAAA,CAAK,UAAWF,UAAO,0BAA0B,EAC/C,SAAAR,CAAA,CACH,QAEC,OAAA,CAAK,UAAWQ,EAAAA,QAAO,0BAA0B,EAAG,SAAA,aAAA,CAErD,CAAA,CAAA,CAAA,EAMNC,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,wBAAwB,EAC5C,SAAA,CAAAX,EAAU,IAAI,CAAC,CAAE,MAAAgB,EAAO,MAAAC,EAAO,cAAAC,KAC9BL,EAAAA,IAACM,EAAAA,QAAA,CAEC,MAAAH,EACA,MAAAC,EACA,cAAAC,EACA,QAAS,IAAMZ,GAAA,YAAAA,EAAkBU,EAAK,EAJjCA,CAAA,CAMR,EAGAf,GACCY,EAAAA,IAACO,EAAAA,QAAA,CACC,aAAW,eACX,UAAWT,EAAAA,QAAO,6BAA6B,EAC/C,KAAK,UACL,QAASN,EACT,WAAOS,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACQ,IAAwB,CAAA,CAAI,CAAA,CAAA,CAC5D,CAAA,CAEJ,CAAA,EACF,CAEJ"}
@@ -5,7 +5,7 @@ export interface ReactionItem {
5
5
  /** Whether the current user reacted with this emoji. */
6
6
  byCurrentUser?: boolean;
7
7
  }
8
- export interface MessageReactionsProps extends HTMLAttributes<HTMLDivElement> {
8
+ export interface ReactionsRowProps extends HTMLAttributes<HTMLDivElement> {
9
9
  /** List of reactions to display. */
10
10
  reactions?: ReactionItem[];
11
11
  /** Whether to show the add-reaction button. Default: false. */
@@ -18,7 +18,7 @@ export interface MessageReactionsProps extends HTMLAttributes<HTMLDivElement> {
18
18
  currentUserAcknowledged?: boolean;
19
19
  /** Called when add-reaction is clicked. */
20
20
  onAddReaction?: () => void;
21
- /** Called when a reaction pill is clicked. */
21
+ /** Called when a Reaction Button is clicked. */
22
22
  onReactionClick?: (emoji: string) => void;
23
23
  /** Called when the acknowledge button is clicked. */
24
24
  onAcknowledge?: () => void;
@@ -26,9 +26,9 @@ export interface MessageReactionsProps extends HTMLAttributes<HTMLDivElement> {
26
26
  className?: string;
27
27
  }
28
28
  /**
29
- * Message Reactions are the row of emoji pills below a message — the lightest weight way to
29
+ * Reactions Row is the strip of Reaction Buttons below a message — the lightest weight way to
30
30
  * respond, applaud, or acknowledge without adding to the thread. The component handles the
31
31
  * count, the "this is mine" highlight, and the add-reaction affordance.
32
32
  */
33
- export default function MessageReactions({ reactions, showAddReaction, acknowledged, acknowledgeCount, currentUserAcknowledged, onAddReaction, onReactionClick, onAcknowledge, className, ...rest }: MessageReactionsProps): import("react/jsx-runtime").JSX.Element;
34
- //# sourceMappingURL=MessageReactions.d.ts.map
33
+ export default function ReactionsRow({ reactions, showAddReaction, acknowledged, acknowledgeCount, currentUserAcknowledged, onAddReaction, onReactionClick, onAcknowledge, className, ...rest }: ReactionsRowProps): import("react/jsx-runtime").JSX.Element;
34
+ //# sourceMappingURL=ReactionsRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactionsRow.d.ts","sourceRoot":"","sources":["../../../src/components/reactions-row/ReactionsRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAQ5C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,oCAAoC;IACpC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,gDAAgD;IAChD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,SAA6B,EAC7B,eAAuB,EACvB,YAAoB,EACpB,gBAAoB,EACpB,uBAA+B,EAC/B,aAAa,EACb,eAAe,EACf,aAAa,EACb,SAAc,EACd,GAAG,IAAI,EACR,EAAE,iBAAiB,2CA+DnB"}
@@ -0,0 +1,71 @@
1
+ import { jsxs as i, jsx as o } from "react/jsx-runtime";
2
+ import N from "../icon-button/IconButton.js";
3
+ import t from "../icon/Icon.js";
4
+ import b from "../reaction-button/ReactionButton.js";
5
+ import __j from "@mattermost/compass-icons/components/check-circle-outline.js";const j=__j&&__j.default?__j.default:__j;
6
+ import __k from "@mattermost/compass-icons/components/emoticon-plus-outline.js";const k=__k&&__k.default?__k.default:__k;
7
+ import a from "./ReactionsRow.module.scss.js";
8
+ const I = [
9
+ { emoji: "👍", count: 1 },
10
+ { emoji: "😀", count: 4 },
11
+ { emoji: "🙌", count: 1 }
12
+ ];
13
+ function C({
14
+ reactions: n = I,
15
+ showAddReaction: c = !1,
16
+ acknowledged: l = !1,
17
+ acknowledgeCount: m = 0,
18
+ currentUserAcknowledged: e = !1,
19
+ onAddReaction: p,
20
+ onReactionClick: s,
21
+ onAcknowledge: _,
22
+ className: d = "",
23
+ ...f
24
+ }) {
25
+ const u = [a["reactions-row"], d].filter(Boolean).join(" ");
26
+ return /* @__PURE__ */ i("div", { className: u, ...f, children: [
27
+ l && /* @__PURE__ */ i(
28
+ "button",
29
+ {
30
+ type: "button",
31
+ className: [
32
+ a["reactions-row__ack"],
33
+ e ? a["reactions-row__ack--active"] : ""
34
+ ].filter(Boolean).join(" "),
35
+ onClick: _,
36
+ "aria-pressed": e,
37
+ "aria-label": "Acknowledge message",
38
+ children: [
39
+ /* @__PURE__ */ o("span", { className: a["reactions-row__ack-icon"], "aria-hidden": !0, children: /* @__PURE__ */ o(t, { size: "16", glyph: /* @__PURE__ */ o(j, {}) }) }),
40
+ e ? /* @__PURE__ */ o("span", { className: a["reactions-row__ack-count"], children: m }) : /* @__PURE__ */ o("span", { className: a["reactions-row__ack-label"], children: "Acknowledge" })
41
+ ]
42
+ }
43
+ ),
44
+ /* @__PURE__ */ i("div", { className: a["reactions-row__buttons"], children: [
45
+ n.map(({ emoji: r, count: h, byCurrentUser: w }) => /* @__PURE__ */ o(
46
+ b,
47
+ {
48
+ emoji: r,
49
+ count: h,
50
+ byCurrentUser: w,
51
+ onClick: () => s == null ? void 0 : s(r)
52
+ },
53
+ r
54
+ )),
55
+ c && /* @__PURE__ */ o(
56
+ N,
57
+ {
58
+ "aria-label": "Add reaction",
59
+ className: a["reactions-row__add-reaction"],
60
+ size: "x-small",
61
+ onClick: p,
62
+ icon: /* @__PURE__ */ o(t, { size: "16", glyph: /* @__PURE__ */ o(k, {}) })
63
+ }
64
+ )
65
+ ] })
66
+ ] });
67
+ }
68
+ export {
69
+ C as default
70
+ };
71
+ //# sourceMappingURL=ReactionsRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactionsRow.js","sources":["../../../src/components/reactions-row/ReactionsRow.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport ReactionButton from '@/components/reaction-button/ReactionButton';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport EmoticonPlusOutlineIcon from '@mattermost/compass-icons/components/emoticon-plus-outline';\nimport styles from './ReactionsRow.module.scss';\n\nexport interface ReactionItem {\n emoji: string;\n count: number;\n /** Whether the current user reacted with this emoji. */\n byCurrentUser?: boolean;\n}\n\nexport interface ReactionsRowProps extends HTMLAttributes<HTMLDivElement> {\n /** List of reactions to display. */\n reactions?: ReactionItem[];\n /** Whether to show the add-reaction button. Default: false. */\n showAddReaction?: boolean;\n /** Whether to show the acknowledge button. */\n acknowledged?: boolean;\n /** Acknowledge count. */\n acknowledgeCount?: number;\n /** Whether the current user has acknowledged. Default: false. */\n currentUserAcknowledged?: boolean;\n /** Called when add-reaction is clicked. */\n onAddReaction?: () => void;\n /** Called when a Reaction Button is clicked. */\n onReactionClick?: (emoji: string) => void;\n /** Called when the acknowledge button is clicked. */\n onAcknowledge?: () => void;\n /** Optional CSS class name. */\n className?: string;\n}\n\nconst DEFAULT_REACTIONS: ReactionItem[] = [\n { emoji: '👍', count: 1 },\n { emoji: '😀', count: 4 },\n { emoji: '🙌', count: 1 },\n];\n\n/**\n * Reactions Row is the strip of Reaction Buttons below a message — the lightest weight way to\n * respond, applaud, or acknowledge without adding to the thread. The component handles the\n * count, the \"this is mine\" highlight, and the add-reaction affordance.\n */\nexport default function ReactionsRow({\n reactions = DEFAULT_REACTIONS,\n showAddReaction = false,\n acknowledged = false,\n acknowledgeCount = 0,\n currentUserAcknowledged = false,\n onAddReaction,\n onReactionClick,\n onAcknowledge,\n className = '',\n ...rest\n}: ReactionsRowProps) {\n const rootClass = [styles['reactions-row'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} {...rest}>\n {/* Acknowledge button */}\n {acknowledged && (\n <button\n type=\"button\"\n className={[\n styles['reactions-row__ack'],\n currentUserAcknowledged\n ? styles['reactions-row__ack--active']\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onAcknowledge}\n aria-pressed={currentUserAcknowledged}\n aria-label=\"Acknowledge message\"\n >\n <span className={styles['reactions-row__ack-icon']} aria-hidden>\n <Icon size=\"16\" glyph={<CheckCircleOutlineIcon />} />\n </span>\n {currentUserAcknowledged ? (\n <span className={styles['reactions-row__ack-count']}>\n {acknowledgeCount}\n </span>\n ) : (\n <span className={styles['reactions-row__ack-label']}>\n Acknowledge\n </span>\n )}\n </button>\n )}\n\n {/* Reaction buttons */}\n <div className={styles['reactions-row__buttons']}>\n {reactions.map(({ emoji, count, byCurrentUser }) => (\n <ReactionButton\n key={emoji}\n emoji={emoji}\n count={count}\n byCurrentUser={byCurrentUser}\n onClick={() => onReactionClick?.(emoji)}\n />\n ))}\n\n {/* Add reaction button */}\n {showAddReaction && (\n <IconButton\n aria-label=\"Add reaction\"\n className={styles['reactions-row__add-reaction']}\n size=\"x-small\"\n onClick={onAddReaction}\n icon={<Icon size=\"16\" glyph={<EmoticonPlusOutlineIcon />} />}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["DEFAULT_REACTIONS","ReactionsRow","reactions","showAddReaction","acknowledged","acknowledgeCount","currentUserAcknowledged","onAddReaction","onReactionClick","onAcknowledge","className","rest","rootClass","styles","jsxs","jsx","Icon","CheckCircleOutlineIcon","emoji","count","byCurrentUser","ReactionButton","IconButton","EmoticonPlusOutlineIcon"],"mappings":";;;;;;;AAoCA,MAAMA,IAAoC;AAAA,EACxC,EAAE,OAAO,MAAM,OAAO,EAAA;AAAA,EACtB,EAAE,OAAO,MAAM,OAAO,EAAA;AAAA,EACtB,EAAE,OAAO,MAAM,OAAO,EAAA;AACxB;AAOA,SAAwBC,EAAa;AAAA,EACnC,WAAAC,IAAYF;AAAA,EACZ,iBAAAG,IAAkB;AAAA,EAClB,cAAAC,IAAe;AAAA,EACf,kBAAAC,IAAmB;AAAA,EACnB,yBAAAC,IAA0B;AAAA,EAC1B,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,GAAsB;AACpB,QAAMC,IAAY,CAACC,EAAO,eAAe,GAAGH,CAAS,EAClD,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAI,EAAC,OAAA,EAAI,WAAWF,GAAY,GAAGD,GAE5B,UAAA;AAAA,IAAAP,KACC,gBAAAU;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAW;AAAA,UACTD,EAAO,oBAAoB;AAAA,UAC3BP,IACIO,EAAO,4BAA4B,IACnC;AAAA,QAAA,EAEH,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,QACX,SAASJ;AAAA,QACT,gBAAcH;AAAA,QACd,cAAW;AAAA,QAEX,UAAA;AAAA,UAAA,gBAAAS,EAAC,QAAA,EAAK,WAAWF,EAAO,yBAAyB,GAAG,eAAW,IAC7D,UAAA,gBAAAE,EAACC,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAD,EAACE,GAAA,CAAA,CAAuB,GAAI,GACrD;AAAA,UACCX,IACC,gBAAAS,EAAC,QAAA,EAAK,WAAWF,EAAO,0BAA0B,GAC/C,UAAAR,EAAA,CACH,sBAEC,QAAA,EAAK,WAAWQ,EAAO,0BAA0B,GAAG,UAAA,cAAA,CAErD;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAMN,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,wBAAwB,GAC5C,UAAA;AAAA,MAAAX,EAAU,IAAI,CAAC,EAAE,OAAAgB,GAAO,OAAAC,GAAO,eAAAC,QAC9B,gBAAAL;AAAA,QAACM;AAAA,QAAA;AAAA,UAEC,OAAAH;AAAA,UACA,OAAAC;AAAA,UACA,eAAAC;AAAA,UACA,SAAS,MAAMZ,KAAA,gBAAAA,EAAkBU;AAAA,QAAK;AAAA,QAJjCA;AAAA,MAAA,CAMR;AAAA,MAGAf,KACC,gBAAAY;AAAA,QAACO;AAAA,QAAA;AAAA,UACC,cAAW;AAAA,UACX,WAAWT,EAAO,6BAA6B;AAAA,UAC/C,MAAK;AAAA,UACL,SAASN;AAAA,UACT,wBAAOS,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAD,EAACQ,KAAwB,EAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IAC5D,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ;"}
@@ -0,0 +1 @@
1
+ ._reactions-row_2mtjp_2{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-xs);padding:var(--spacing-xxxxs) 0}._reactions-row__buttons_2mtjp_9{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-xxxs)}@media(hover:hover)and (pointer:fine){._reactions-row__add-reaction_2mtjp_16{opacity:0;pointer-events:none;transition:opacity var(--duration-quick) var(--ease-transition)}._reactions-row_2mtjp_2:hover ._reactions-row__add-reaction_2mtjp_16,._reactions-row_2mtjp_2:focus-within ._reactions-row__add-reaction_2mtjp_16{opacity:1;pointer-events:auto}}._reactions-row__ack_2mtjp_26{display:inline-flex;align-items:center;gap:var(--spacing-xxxs);padding:var(--spacing-xxxs) var(--spacing-xxs);border:none;border-radius:var(--radius-s);background-color:rgba(var(--color-success-rgb),.12);color:var(--color-success);cursor:pointer;outline:2px solid color-mix(in srgb,var(--color-success) 0%,transparent);outline-offset:0;transition:background-color var(--duration-quick) var(--ease-transition),outline-color var(--duration-quick) var(--ease-transition),outline-offset var(--duration-quick) var(--ease-transition)}._reactions-row__ack_2mtjp_26:hover{background-color:rgba(var(--color-success-rgb),.2)}._reactions-row__ack_2mtjp_26:focus-visible{outline-color:var(--color-success);outline-offset:3px}._reactions-row__ack--active_2mtjp_47{background-color:var(--color-success);color:var(--button-color)}._reactions-row__ack--active_2mtjp_47:hover{background-color:color-mix(in srgb,black 8%,var(--color-success))}._reactions-row__ack-icon_2mtjp_54{display:inline-flex;align-items:center}._reactions-row__ack-count_2mtjp_58,._reactions-row__ack-label_2mtjp_64{font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);line-height:var(--line-height-75)}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ReactionsRow.module.css');const _={"reactions-row":"_reactions-row_2mtjp_2","reactions-row__buttons":"_reactions-row__buttons_2mtjp_9","reactions-row__add-reaction":"_reactions-row__add-reaction_2mtjp_16","reactions-row__ack":"_reactions-row__ack_2mtjp_26","reactions-row__ack--active":"_reactions-row__ack--active_2mtjp_47","reactions-row__ack-icon":"_reactions-row__ack-icon_2mtjp_54","reactions-row__ack-count":"_reactions-row__ack-count_2mtjp_58","reactions-row__ack-label":"_reactions-row__ack-label_2mtjp_64"};exports.default=_;
2
+ //# sourceMappingURL=ReactionsRow.module.scss.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactionsRow.module.scss.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import './ReactionsRow.module.css';const _ = {
2
+ "reactions-row": "_reactions-row_2mtjp_2",
3
+ "reactions-row__buttons": "_reactions-row__buttons_2mtjp_9",
4
+ "reactions-row__add-reaction": "_reactions-row__add-reaction_2mtjp_16",
5
+ "reactions-row__ack": "_reactions-row__ack_2mtjp_26",
6
+ "reactions-row__ack--active": "_reactions-row__ack--active_2mtjp_47",
7
+ "reactions-row__ack-icon": "_reactions-row__ack-icon_2mtjp_54",
8
+ "reactions-row__ack-count": "_reactions-row__ack-count_2mtjp_58",
9
+ "reactions-row__ack-label": "_reactions-row__ack-label_2mtjp_64"
10
+ };
11
+ export {
12
+ _ as default
13
+ };
14
+ //# sourceMappingURL=ReactionsRow.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactionsRow.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./ReactionsRow.cjs");exports.ReactionsRow=e.default;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { default as ReactionsRow } from './ReactionsRow';
2
+ export type { ReactionsRowProps, ReactionItem } from './ReactionsRow';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/reactions-row/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { default as e } from "./ReactionsRow.js";
2
+ export {
3
+ e as ReactionsRow
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1 +1 @@
1
- {"version":3,"file":"RightSidebarHeader.cjs","sources":["../../../src/components/right-sidebar-header/RightSidebarHeader.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport ArrowBackIosIcon from '@mattermost/compass-icons/components/arrow-back-ios';\nimport ArrowExpandIcon from '@mattermost/compass-icons/components/arrow-expand';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Tag from '@/components/tag/Tag';\nimport type { TagType } from '@/components/tag/Tag';\nimport styles from './RightSidebarHeader.module.scss';\n\nexport interface RightSidebarHeaderProps {\n /** Primary title text. */\n title: string;\n /** Secondary title shown to the right of a vertical divider (e.g. parent channel name). */\n secondaryTitle?: string;\n /** Optional tag rendered next to the title (e.g. \"BETA\"). */\n tag?: string;\n /** Tag visual style. Default: Info. */\n tagType?: TagType;\n /** Optional leading element shown before the title — typically a UserAvatar or Icon. */\n leadingIcon?: ReactNode;\n /** When set, shows a back button and calls this on click. */\n onBack?: () => void;\n /** When set, shows an expand button and calls this on click. */\n onExpand?: () => void;\n /** When set, shows a close button and calls this on click. */\n onClose?: () => void;\n /** Optional inline action label (e.g. \"Follow\"). */\n actionLabel?: string;\n /** Click handler for the action label. */\n onActionClick?: () => void;\n /** When true, the action button shows in its active state. */\n actionActive?: boolean;\n className?: string;\n}\n\nexport default function RightSidebarHeader({\n title,\n secondaryTitle,\n tag,\n tagType = 'info',\n leadingIcon,\n onBack,\n onExpand,\n onClose,\n actionLabel,\n onActionClick,\n actionActive = false,\n className = '',\n}: RightSidebarHeaderProps) {\n const rootClass = [styles['right-sidebar-header'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n <div className={styles['right-sidebar-header__left']}>\n <div className={styles['right-sidebar-header__primary']}>\n {onBack && (\n <IconButton\n className={styles['right-sidebar-header__back']}\n size=\"small\"\n aria-label=\"Back\"\n onClick={onBack}\n icon={<Icon size=\"16\" glyph={<ArrowBackIosIcon />} />}\n />\n )}\n {leadingIcon && (\n <span className={styles['right-sidebar-header__leading-icon']}>\n {leadingIcon}\n </span>\n )}\n <span className={styles['right-sidebar-header__title']}>{title}</span>\n {tag && (\n <span className={styles['right-sidebar-header__tag']}>\n <Tag\n label={tag}\n type={tagType}\n size=\"x-small\"\n casing=\"all-caps\"\n />\n </span>\n )}\n </div>\n {secondaryTitle && (\n <div className={styles['right-sidebar-header__secondary']}>\n <span className={styles['right-sidebar-header__secondary-text']}>\n {secondaryTitle}\n </span>\n </div>\n )}\n </div>\n\n <div className={styles['right-sidebar-header__actions']}>\n {actionLabel && (\n <button\n type=\"button\"\n className={[\n styles['right-sidebar-header__action'],\n actionActive\n ? styles['right-sidebar-header__action--active']\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onActionClick}\n aria-pressed={actionActive ? true : undefined}\n >\n {actionLabel}\n </button>\n )}\n {onExpand && (\n <IconButton\n size=\"small\"\n aria-label=\"Expand\"\n onClick={onExpand}\n icon={<Icon size=\"16\" glyph={<ArrowExpandIcon />} />}\n />\n )}\n {onClose && (\n <IconButton\n size=\"small\"\n aria-label=\"Close\"\n onClick={onClose}\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["RightSidebarHeader","title","secondaryTitle","tag","tagType","leadingIcon","onBack","onExpand","onClose","actionLabel","onActionClick","actionActive","className","rootClass","styles","jsxs","jsx","IconButton","Icon","ArrowBackIosIcon","Tag","ArrowExpandIcon","CloseIcon"],"mappings":"+dAoCA,SAAwBA,EAAmB,CACzC,MAAAC,EACA,eAAAC,EACA,IAAAC,EACA,QAAAC,EAAU,OACV,YAAAC,EACA,OAAAC,EACA,SAAAC,EACA,QAAAC,EACA,YAAAC,EACA,cAAAC,EACA,aAAAC,EAAe,GACf,UAAAC,EAAY,EACd,EAA4B,CAC1B,MAAMC,EAAY,CAACC,UAAO,sBAAsB,EAAGF,CAAS,EACzD,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEG,EAAAA,KAAC,MAAA,CAAI,UAAWF,EACd,SAAA,CAAAE,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,4BAA4B,EACjD,SAAA,CAAAC,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,+BAA+B,EACnD,SAAA,CAAAR,GACCU,EAAAA,IAACC,EAAAA,QAAA,CACC,UAAWH,EAAAA,QAAO,4BAA4B,EAC9C,KAAK,QACL,aAAW,OACX,QAASR,EACT,WAAOY,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOF,EAAAA,IAACG,IAAiB,CAAA,CAAI,CAAA,CAAA,EAGtDd,GACCW,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,oCAAoC,EACzD,SAAAT,EACH,QAED,OAAA,CAAK,UAAWS,EAAAA,QAAO,6BAA6B,EAAI,SAAAb,EAAM,EAC9DE,GACCa,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,2BAA2B,EACjD,SAAAE,EAAAA,IAACI,EAAAA,QAAA,CACC,MAAOjB,EACP,KAAMC,EACN,KAAK,UACL,OAAO,UAAA,CAAA,CACT,CACF,CAAA,EAEJ,EACCF,GACCc,EAAAA,IAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,iCAAiC,EACtD,SAAAE,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,sCAAsC,EAC3D,WACH,CAAA,CACF,CAAA,EAEJ,EAEAC,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,+BAA+B,EACnD,SAAA,CAAAL,GACCO,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAW,CACTF,EAAAA,QAAO,8BAA8B,EACrCH,EACIG,EAAAA,QAAO,sCAAsC,EAC7C,EAAA,EAEH,OAAO,OAAO,EACd,KAAK,GAAG,EACX,QAASJ,EACT,eAAcC,EAAe,GAAO,OAEnC,SAAAF,CAAA,CAAA,EAGJF,GACCS,EAAAA,IAACC,EAAAA,QAAA,CACC,KAAK,QACL,aAAW,SACX,QAASV,EACT,WAAOW,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOF,EAAAA,IAACK,IAAgB,CAAA,CAAI,CAAA,CAAA,EAGrDb,GACCQ,EAAAA,IAACC,EAAAA,QAAA,CACC,KAAK,QACL,aAAW,QACX,QAAST,EACT,WAAOU,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOF,EAAAA,IAACM,IAAU,CAAA,CAAI,CAAA,CAAA,CAC9C,CAAA,CAEJ,CAAA,EACF,CAEJ"}
1
+ {"version":3,"file":"RightSidebarHeader.cjs","sources":["../../../src/components/right-sidebar-header/RightSidebarHeader.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport ArrowBackIosIcon from '@mattermost/compass-icons/components/arrow-back-ios';\nimport ArrowExpandIcon from '@mattermost/compass-icons/components/arrow-expand';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Tag from '@/components/tag/Tag';\nimport type { TagType } from '@/components/tag/Tag';\nimport styles from './RightSidebarHeader.module.scss';\n\nexport interface RightSidebarHeaderProps {\n /** Primary title text. */\n title: string;\n /** Secondary title shown to the right of a vertical divider (e.g. parent channel name). */\n secondaryTitle?: string;\n /** Optional tag rendered next to the title (e.g. \"BETA\"). */\n tag?: string;\n /** Tag visual style. Default: Info. */\n tagType?: TagType;\n /** Optional leading element shown before the title — typically a `UserAvatar` or an icon. When passing an icon, use `<Icon glyph={<SomeIcon />} size=\"20\" />` to align with the title text. */\n leadingIcon?: ReactNode;\n /** When set, shows a back button and calls this on click. */\n onBack?: () => void;\n /** When set, shows an expand button and calls this on click. */\n onExpand?: () => void;\n /** When set, shows a close button and calls this on click. */\n onClose?: () => void;\n /** Optional inline action label (e.g. \"Follow\"). */\n actionLabel?: string;\n /** Click handler for the action label. */\n onActionClick?: () => void;\n /** When true, the action button shows in its active state. */\n actionActive?: boolean;\n className?: string;\n}\n\nexport default function RightSidebarHeader({\n title,\n secondaryTitle,\n tag,\n tagType = 'info',\n leadingIcon,\n onBack,\n onExpand,\n onClose,\n actionLabel,\n onActionClick,\n actionActive = false,\n className = '',\n}: RightSidebarHeaderProps) {\n const rootClass = [styles['right-sidebar-header'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n <div className={styles['right-sidebar-header__left']}>\n <div className={styles['right-sidebar-header__primary']}>\n {onBack && (\n <IconButton\n className={styles['right-sidebar-header__back']}\n size=\"small\"\n aria-label=\"Back\"\n onClick={onBack}\n icon={<Icon size=\"16\" glyph={<ArrowBackIosIcon />} />}\n />\n )}\n {leadingIcon && (\n <span className={styles['right-sidebar-header__leading-icon']}>\n {leadingIcon}\n </span>\n )}\n <span className={styles['right-sidebar-header__title']}>{title}</span>\n {tag && (\n <span className={styles['right-sidebar-header__tag']}>\n <Tag\n label={tag}\n type={tagType}\n size=\"x-small\"\n casing=\"all-caps\"\n />\n </span>\n )}\n </div>\n {secondaryTitle && (\n <div className={styles['right-sidebar-header__secondary']}>\n <span className={styles['right-sidebar-header__secondary-text']}>\n {secondaryTitle}\n </span>\n </div>\n )}\n </div>\n\n <div className={styles['right-sidebar-header__actions']}>\n {actionLabel && (\n <button\n type=\"button\"\n className={[\n styles['right-sidebar-header__action'],\n actionActive\n ? styles['right-sidebar-header__action--active']\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onActionClick}\n aria-pressed={actionActive ? true : undefined}\n >\n {actionLabel}\n </button>\n )}\n {onExpand && (\n <IconButton\n size=\"small\"\n aria-label=\"Expand\"\n onClick={onExpand}\n icon={<Icon size=\"16\" glyph={<ArrowExpandIcon />} />}\n />\n )}\n {onClose && (\n <IconButton\n size=\"small\"\n aria-label=\"Close\"\n onClick={onClose}\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["RightSidebarHeader","title","secondaryTitle","tag","tagType","leadingIcon","onBack","onExpand","onClose","actionLabel","onActionClick","actionActive","className","rootClass","styles","jsxs","jsx","IconButton","Icon","ArrowBackIosIcon","Tag","ArrowExpandIcon","CloseIcon"],"mappings":"+dAoCA,SAAwBA,EAAmB,CACzC,MAAAC,EACA,eAAAC,EACA,IAAAC,EACA,QAAAC,EAAU,OACV,YAAAC,EACA,OAAAC,EACA,SAAAC,EACA,QAAAC,EACA,YAAAC,EACA,cAAAC,EACA,aAAAC,EAAe,GACf,UAAAC,EAAY,EACd,EAA4B,CAC1B,MAAMC,EAAY,CAACC,UAAO,sBAAsB,EAAGF,CAAS,EACzD,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEG,EAAAA,KAAC,MAAA,CAAI,UAAWF,EACd,SAAA,CAAAE,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,4BAA4B,EACjD,SAAA,CAAAC,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,+BAA+B,EACnD,SAAA,CAAAR,GACCU,EAAAA,IAACC,EAAAA,QAAA,CACC,UAAWH,EAAAA,QAAO,4BAA4B,EAC9C,KAAK,QACL,aAAW,OACX,QAASR,EACT,WAAOY,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOF,EAAAA,IAACG,IAAiB,CAAA,CAAI,CAAA,CAAA,EAGtDd,GACCW,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,oCAAoC,EACzD,SAAAT,EACH,QAED,OAAA,CAAK,UAAWS,EAAAA,QAAO,6BAA6B,EAAI,SAAAb,EAAM,EAC9DE,GACCa,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,2BAA2B,EACjD,SAAAE,EAAAA,IAACI,EAAAA,QAAA,CACC,MAAOjB,EACP,KAAMC,EACN,KAAK,UACL,OAAO,UAAA,CAAA,CACT,CACF,CAAA,EAEJ,EACCF,GACCc,EAAAA,IAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,iCAAiC,EACtD,SAAAE,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,sCAAsC,EAC3D,WACH,CAAA,CACF,CAAA,EAEJ,EAEAC,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,+BAA+B,EACnD,SAAA,CAAAL,GACCO,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAW,CACTF,EAAAA,QAAO,8BAA8B,EACrCH,EACIG,EAAAA,QAAO,sCAAsC,EAC7C,EAAA,EAEH,OAAO,OAAO,EACd,KAAK,GAAG,EACX,QAASJ,EACT,eAAcC,EAAe,GAAO,OAEnC,SAAAF,CAAA,CAAA,EAGJF,GACCS,EAAAA,IAACC,EAAAA,QAAA,CACC,KAAK,QACL,aAAW,SACX,QAASV,EACT,WAAOW,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOF,EAAAA,IAACK,IAAgB,CAAA,CAAI,CAAA,CAAA,EAGrDb,GACCQ,EAAAA,IAACC,EAAAA,QAAA,CACC,KAAK,QACL,aAAW,QACX,QAAST,EACT,WAAOU,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOF,EAAAA,IAACM,IAAU,CAAA,CAAI,CAAA,CAAA,CAC9C,CAAA,CAEJ,CAAA,EACF,CAEJ"}
@@ -9,7 +9,7 @@ export interface RightSidebarHeaderProps {
9
9
  tag?: string;
10
10
  /** Tag visual style. Default: Info. */
11
11
  tagType?: TagType;
12
- /** Optional leading element shown before the title — typically a UserAvatar or Icon. */
12
+ /** Optional leading element shown before the title — typically a `UserAvatar` or an icon. When passing an icon, use `<Icon glyph={<SomeIcon />} size="20" />` to align with the title text. */
13
13
  leadingIcon?: ReactNode;
14
14
  /** When set, shows a back button and calls this on click. */
15
15
  onBack?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"RightSidebarHeader.d.ts","sourceRoot":"","sources":["../../../src/components/right-sidebar-header/RightSidebarHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,MAAM,WAAW,uBAAuB;IACtC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wFAAwF;IACxF,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,8DAA8D;IAC9D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,KAAK,EACL,cAAc,EACd,GAAG,EACH,OAAgB,EAChB,WAAW,EACX,MAAM,EACN,QAAQ,EACR,OAAO,EACP,WAAW,EACX,aAAa,EACb,YAAoB,EACpB,SAAc,GACf,EAAE,uBAAuB,2CAiFzB"}
1
+ {"version":3,"file":"RightSidebarHeader.d.ts","sourceRoot":"","sources":["../../../src/components/right-sidebar-header/RightSidebarHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,MAAM,WAAW,uBAAuB;IACtC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+LAA+L;IAC/L,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,8DAA8D;IAC9D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,KAAK,EACL,cAAc,EACd,GAAG,EACH,OAAgB,EAChB,WAAW,EACX,MAAM,EACN,QAAQ,EACR,OAAO,EACP,WAAW,EACX,aAAa,EACb,YAAoB,EACpB,SAAc,GACf,EAAE,uBAAuB,2CAiFzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"RightSidebarHeader.js","sources":["../../../src/components/right-sidebar-header/RightSidebarHeader.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport ArrowBackIosIcon from '@mattermost/compass-icons/components/arrow-back-ios';\nimport ArrowExpandIcon from '@mattermost/compass-icons/components/arrow-expand';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Tag from '@/components/tag/Tag';\nimport type { TagType } from '@/components/tag/Tag';\nimport styles from './RightSidebarHeader.module.scss';\n\nexport interface RightSidebarHeaderProps {\n /** Primary title text. */\n title: string;\n /** Secondary title shown to the right of a vertical divider (e.g. parent channel name). */\n secondaryTitle?: string;\n /** Optional tag rendered next to the title (e.g. \"BETA\"). */\n tag?: string;\n /** Tag visual style. Default: Info. */\n tagType?: TagType;\n /** Optional leading element shown before the title — typically a UserAvatar or Icon. */\n leadingIcon?: ReactNode;\n /** When set, shows a back button and calls this on click. */\n onBack?: () => void;\n /** When set, shows an expand button and calls this on click. */\n onExpand?: () => void;\n /** When set, shows a close button and calls this on click. */\n onClose?: () => void;\n /** Optional inline action label (e.g. \"Follow\"). */\n actionLabel?: string;\n /** Click handler for the action label. */\n onActionClick?: () => void;\n /** When true, the action button shows in its active state. */\n actionActive?: boolean;\n className?: string;\n}\n\nexport default function RightSidebarHeader({\n title,\n secondaryTitle,\n tag,\n tagType = 'info',\n leadingIcon,\n onBack,\n onExpand,\n onClose,\n actionLabel,\n onActionClick,\n actionActive = false,\n className = '',\n}: RightSidebarHeaderProps) {\n const rootClass = [styles['right-sidebar-header'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n <div className={styles['right-sidebar-header__left']}>\n <div className={styles['right-sidebar-header__primary']}>\n {onBack && (\n <IconButton\n className={styles['right-sidebar-header__back']}\n size=\"small\"\n aria-label=\"Back\"\n onClick={onBack}\n icon={<Icon size=\"16\" glyph={<ArrowBackIosIcon />} />}\n />\n )}\n {leadingIcon && (\n <span className={styles['right-sidebar-header__leading-icon']}>\n {leadingIcon}\n </span>\n )}\n <span className={styles['right-sidebar-header__title']}>{title}</span>\n {tag && (\n <span className={styles['right-sidebar-header__tag']}>\n <Tag\n label={tag}\n type={tagType}\n size=\"x-small\"\n casing=\"all-caps\"\n />\n </span>\n )}\n </div>\n {secondaryTitle && (\n <div className={styles['right-sidebar-header__secondary']}>\n <span className={styles['right-sidebar-header__secondary-text']}>\n {secondaryTitle}\n </span>\n </div>\n )}\n </div>\n\n <div className={styles['right-sidebar-header__actions']}>\n {actionLabel && (\n <button\n type=\"button\"\n className={[\n styles['right-sidebar-header__action'],\n actionActive\n ? styles['right-sidebar-header__action--active']\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onActionClick}\n aria-pressed={actionActive ? true : undefined}\n >\n {actionLabel}\n </button>\n )}\n {onExpand && (\n <IconButton\n size=\"small\"\n aria-label=\"Expand\"\n onClick={onExpand}\n icon={<Icon size=\"16\" glyph={<ArrowExpandIcon />} />}\n />\n )}\n {onClose && (\n <IconButton\n size=\"small\"\n aria-label=\"Close\"\n onClick={onClose}\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["RightSidebarHeader","title","secondaryTitle","tag","tagType","leadingIcon","onBack","onExpand","onClose","actionLabel","onActionClick","actionActive","className","rootClass","styles","jsxs","jsx","IconButton","Icon","ArrowBackIosIcon","Tag","ArrowExpandIcon","CloseIcon"],"mappings":";;;;;;;;AAoCA,SAAwBA,EAAmB;AAAA,EACzC,OAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,KAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,aAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,WAAAC,IAAY;AACd,GAA4B;AAC1B,QAAMC,IAAY,CAACC,EAAO,sBAAsB,GAAGF,CAAS,EACzD,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAG,EAAC,OAAA,EAAI,WAAWF,GACd,UAAA;AAAA,IAAA,gBAAAE,EAAC,OAAA,EAAI,WAAWD,EAAO,4BAA4B,GACjD,UAAA;AAAA,MAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,+BAA+B,GACnD,UAAA;AAAA,QAAAR,KACC,gBAAAU;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,WAAWH,EAAO,4BAA4B;AAAA,YAC9C,MAAK;AAAA,YACL,cAAW;AAAA,YACX,SAASR;AAAA,YACT,wBAAOY,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAF,EAACG,KAAiB,EAAA,CAAI;AAAA,UAAA;AAAA,QAAA;AAAA,QAGtDd,KACC,gBAAAW,EAAC,QAAA,EAAK,WAAWF,EAAO,oCAAoC,GACzD,UAAAT,GACH;AAAA,0BAED,QAAA,EAAK,WAAWS,EAAO,6BAA6B,GAAI,UAAAb,GAAM;AAAA,QAC9DE,KACC,gBAAAa,EAAC,QAAA,EAAK,WAAWF,EAAO,2BAA2B,GACjD,UAAA,gBAAAE;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,OAAOjB;AAAA,YACP,MAAMC;AAAA,YACN,MAAK;AAAA,YACL,QAAO;AAAA,UAAA;AAAA,QAAA,EACT,CACF;AAAA,MAAA,GAEJ;AAAA,MACCF,KACC,gBAAAc,EAAC,OAAA,EAAI,WAAWF,EAAO,iCAAiC,GACtD,UAAA,gBAAAE,EAAC,QAAA,EAAK,WAAWF,EAAO,sCAAsC,GAC3D,aACH,EAAA,CACF;AAAA,IAAA,GAEJ;AAAA,IAEA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,+BAA+B,GACnD,UAAA;AAAA,MAAAL,KACC,gBAAAO;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAW;AAAA,YACTF,EAAO,8BAA8B;AAAA,YACrCH,IACIG,EAAO,sCAAsC,IAC7C;AAAA,UAAA,EAEH,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,UACX,SAASJ;AAAA,UACT,gBAAcC,IAAe,KAAO;AAAA,UAEnC,UAAAF;AAAA,QAAA;AAAA,MAAA;AAAA,MAGJF,KACC,gBAAAS;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,cAAW;AAAA,UACX,SAASV;AAAA,UACT,wBAAOW,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAF,EAACK,KAAgB,EAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,MAGrDb,KACC,gBAAAQ;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,cAAW;AAAA,UACX,SAAST;AAAA,UACT,wBAAOU,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAF,EAACM,KAAU,EAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IAC9C,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"RightSidebarHeader.js","sources":["../../../src/components/right-sidebar-header/RightSidebarHeader.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport ArrowBackIosIcon from '@mattermost/compass-icons/components/arrow-back-ios';\nimport ArrowExpandIcon from '@mattermost/compass-icons/components/arrow-expand';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Tag from '@/components/tag/Tag';\nimport type { TagType } from '@/components/tag/Tag';\nimport styles from './RightSidebarHeader.module.scss';\n\nexport interface RightSidebarHeaderProps {\n /** Primary title text. */\n title: string;\n /** Secondary title shown to the right of a vertical divider (e.g. parent channel name). */\n secondaryTitle?: string;\n /** Optional tag rendered next to the title (e.g. \"BETA\"). */\n tag?: string;\n /** Tag visual style. Default: Info. */\n tagType?: TagType;\n /** Optional leading element shown before the title — typically a `UserAvatar` or an icon. When passing an icon, use `<Icon glyph={<SomeIcon />} size=\"20\" />` to align with the title text. */\n leadingIcon?: ReactNode;\n /** When set, shows a back button and calls this on click. */\n onBack?: () => void;\n /** When set, shows an expand button and calls this on click. */\n onExpand?: () => void;\n /** When set, shows a close button and calls this on click. */\n onClose?: () => void;\n /** Optional inline action label (e.g. \"Follow\"). */\n actionLabel?: string;\n /** Click handler for the action label. */\n onActionClick?: () => void;\n /** When true, the action button shows in its active state. */\n actionActive?: boolean;\n className?: string;\n}\n\nexport default function RightSidebarHeader({\n title,\n secondaryTitle,\n tag,\n tagType = 'info',\n leadingIcon,\n onBack,\n onExpand,\n onClose,\n actionLabel,\n onActionClick,\n actionActive = false,\n className = '',\n}: RightSidebarHeaderProps) {\n const rootClass = [styles['right-sidebar-header'], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass}>\n <div className={styles['right-sidebar-header__left']}>\n <div className={styles['right-sidebar-header__primary']}>\n {onBack && (\n <IconButton\n className={styles['right-sidebar-header__back']}\n size=\"small\"\n aria-label=\"Back\"\n onClick={onBack}\n icon={<Icon size=\"16\" glyph={<ArrowBackIosIcon />} />}\n />\n )}\n {leadingIcon && (\n <span className={styles['right-sidebar-header__leading-icon']}>\n {leadingIcon}\n </span>\n )}\n <span className={styles['right-sidebar-header__title']}>{title}</span>\n {tag && (\n <span className={styles['right-sidebar-header__tag']}>\n <Tag\n label={tag}\n type={tagType}\n size=\"x-small\"\n casing=\"all-caps\"\n />\n </span>\n )}\n </div>\n {secondaryTitle && (\n <div className={styles['right-sidebar-header__secondary']}>\n <span className={styles['right-sidebar-header__secondary-text']}>\n {secondaryTitle}\n </span>\n </div>\n )}\n </div>\n\n <div className={styles['right-sidebar-header__actions']}>\n {actionLabel && (\n <button\n type=\"button\"\n className={[\n styles['right-sidebar-header__action'],\n actionActive\n ? styles['right-sidebar-header__action--active']\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={onActionClick}\n aria-pressed={actionActive ? true : undefined}\n >\n {actionLabel}\n </button>\n )}\n {onExpand && (\n <IconButton\n size=\"small\"\n aria-label=\"Expand\"\n onClick={onExpand}\n icon={<Icon size=\"16\" glyph={<ArrowExpandIcon />} />}\n />\n )}\n {onClose && (\n <IconButton\n size=\"small\"\n aria-label=\"Close\"\n onClick={onClose}\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["RightSidebarHeader","title","secondaryTitle","tag","tagType","leadingIcon","onBack","onExpand","onClose","actionLabel","onActionClick","actionActive","className","rootClass","styles","jsxs","jsx","IconButton","Icon","ArrowBackIosIcon","Tag","ArrowExpandIcon","CloseIcon"],"mappings":";;;;;;;;AAoCA,SAAwBA,EAAmB;AAAA,EACzC,OAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,KAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,aAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,WAAAC,IAAY;AACd,GAA4B;AAC1B,QAAMC,IAAY,CAACC,EAAO,sBAAsB,GAAGF,CAAS,EACzD,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAG,EAAC,OAAA,EAAI,WAAWF,GACd,UAAA;AAAA,IAAA,gBAAAE,EAAC,OAAA,EAAI,WAAWD,EAAO,4BAA4B,GACjD,UAAA;AAAA,MAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,+BAA+B,GACnD,UAAA;AAAA,QAAAR,KACC,gBAAAU;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,WAAWH,EAAO,4BAA4B;AAAA,YAC9C,MAAK;AAAA,YACL,cAAW;AAAA,YACX,SAASR;AAAA,YACT,wBAAOY,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAF,EAACG,KAAiB,EAAA,CAAI;AAAA,UAAA;AAAA,QAAA;AAAA,QAGtDd,KACC,gBAAAW,EAAC,QAAA,EAAK,WAAWF,EAAO,oCAAoC,GACzD,UAAAT,GACH;AAAA,0BAED,QAAA,EAAK,WAAWS,EAAO,6BAA6B,GAAI,UAAAb,GAAM;AAAA,QAC9DE,KACC,gBAAAa,EAAC,QAAA,EAAK,WAAWF,EAAO,2BAA2B,GACjD,UAAA,gBAAAE;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,OAAOjB;AAAA,YACP,MAAMC;AAAA,YACN,MAAK;AAAA,YACL,QAAO;AAAA,UAAA;AAAA,QAAA,EACT,CACF;AAAA,MAAA,GAEJ;AAAA,MACCF,KACC,gBAAAc,EAAC,OAAA,EAAI,WAAWF,EAAO,iCAAiC,GACtD,UAAA,gBAAAE,EAAC,QAAA,EAAK,WAAWF,EAAO,sCAAsC,GAC3D,aACH,EAAA,CACF;AAAA,IAAA,GAEJ;AAAA,IAEA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,+BAA+B,GACnD,UAAA;AAAA,MAAAL,KACC,gBAAAO;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAW;AAAA,YACTF,EAAO,8BAA8B;AAAA,YACrCH,IACIG,EAAO,sCAAsC,IAC7C;AAAA,UAAA,EAEH,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,UACX,SAASJ;AAAA,UACT,gBAAcC,IAAe,KAAO;AAAA,UAEnC,UAAAF;AAAA,QAAA;AAAA,MAAA;AAAA,MAGJF,KACC,gBAAAS;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,cAAW;AAAA,UACX,SAASV;AAAA,UACT,wBAAOW,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAF,EAACK,KAAgB,EAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,MAGrDb,KACC,gBAAAQ;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,cAAW;AAAA,UACX,SAAST;AAAA,UACT,wBAAOU,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAF,EAACM,KAAU,EAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IAC9C,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SectionNotice.cjs","sources":["../../../src/components/section-notice/SectionNotice.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport Button from '@/components/button/Button';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport InformationOutlineIcon from '@mattermost/compass-icons/components/information-outline';\nimport AlertOutlineIcon from '@mattermost/compass-icons/components/alert-outline';\nimport AlertCircleOutlineIcon from '@mattermost/compass-icons/components/alert-circle-outline';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './SectionNotice.module.scss';\n\nexport type SectionNoticeType =\n | 'info'\n | 'warning'\n | 'danger'\n | 'success'\n | 'hint';\n\nexport interface SectionNoticeProps {\n /** Optional CSS class name. */\n className?: string;\n /** Type controls color-coding. Default: Info. */\n type?: SectionNoticeType;\n /** Optional leading icon. When omitted a default type icon is shown. */\n icon?: ReactNode;\n /** Title / headline text. */\n title: string;\n /** Optional body description. */\n description?: ReactNode;\n /** Primary action button label. */\n primaryButtonLabel?: string;\n /** Primary action callback. */\n onPrimaryAction?: () => void;\n /** Secondary action button label. */\n secondaryButtonLabel?: string;\n /** Secondary action callback. */\n onSecondaryAction?: () => void;\n /** Called when dismiss (×) button is clicked. When omitted, dismiss button is hidden. */\n onDismiss?: () => void;\n}\n\nconst DEFAULT_ICONS: Record<SectionNoticeType, ReactNode> = {\n info: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n warning: <Icon size=\"20\" glyph={<AlertCircleOutlineIcon />} />,\n danger: <Icon size=\"20\" glyph={<AlertOutlineIcon />} />,\n success: <Icon size=\"20\" glyph={<CheckCircleOutlineIcon />} />,\n hint: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n};\n\n/**\n * A Section Notice is an in-context alert that lives inside a settings page, admin panel, or\n * other content region. Use it to flag important information, report a state change, or\n * surface a problem the user needs to act on — without yanking them out of the flow.\n */\nexport default function SectionNotice({\n className = '',\n type = 'info',\n icon,\n title,\n description,\n primaryButtonLabel,\n onPrimaryAction,\n secondaryButtonLabel,\n onSecondaryAction,\n onDismiss,\n}: SectionNoticeProps) {\n const typeClass = styles[`section-notice--type-${type.toLowerCase()}`];\n\n const rootClass = [styles['section-notice'], typeClass, className]\n .filter(Boolean)\n .join(' ');\n\n const resolvedIcon = icon !== undefined ? icon : DEFAULT_ICONS[type];\n\n const hasActions = primaryButtonLabel != null || secondaryButtonLabel != null;\n\n return (\n <div className={rootClass}>\n <div className={styles['section-notice__content']}>\n {resolvedIcon != null && (\n <span className={styles['section-notice__icon']} aria-hidden>\n {resolvedIcon}\n </span>\n )}\n <div className={styles['section-notice__body']}>\n <p className={styles['section-notice__title']}>{title}</p>\n {description != null && (\n <div className={styles['section-notice__description']}>\n {description}\n </div>\n )}\n {hasActions && (\n <div className={styles['section-notice__actions']}>\n {primaryButtonLabel != null && (\n <Button\n emphasis=\"primary\"\n size=\"small\"\n onClick={onPrimaryAction}\n >\n {primaryButtonLabel}\n </Button>\n )}\n {secondaryButtonLabel != null && (\n <Button\n emphasis=\"secondary\"\n size=\"small\"\n onClick={onSecondaryAction}\n >\n {secondaryButtonLabel}\n </Button>\n )}\n </div>\n )}\n </div>\n </div>\n {onDismiss != null && (\n <IconButton\n className={styles['section-notice__dismiss']}\n aria-label=\"Dismiss\"\n size=\"small\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["DEFAULT_ICONS","Icon","jsx","InformationOutlineIcon","AlertCircleOutlineIcon","AlertOutlineIcon","CheckCircleOutlineIcon","SectionNotice","className","type","icon","title","description","primaryButtonLabel","onPrimaryAction","secondaryButtonLabel","onSecondaryAction","onDismiss","typeClass","styles","rootClass","resolvedIcon","hasActions","jsxs","Button","IconButton","CloseIcon"],"mappings":"onBAyCMA,EAAsD,CAC1D,WAAOC,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACC,IAAuB,EAAI,EACzD,cAAUF,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACE,IAAuB,EAAI,EAC5D,aAASH,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACG,IAAiB,EAAI,EACrD,cAAUJ,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACI,IAAuB,EAAI,EAC5D,WAAOL,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOC,EAAAA,IAACC,IAAuB,CAAA,CAAI,CAC3D,EAOA,SAAwBI,EAAc,CACpC,UAAAC,EAAY,GACZ,KAAAC,EAAO,OACP,KAAAC,EACA,MAAAC,EACA,YAAAC,EACA,mBAAAC,EACA,gBAAAC,EACA,qBAAAC,EACA,kBAAAC,EACA,UAAAC,CACF,EAAuB,CACrB,MAAMC,EAAYC,EAAAA,QAAO,wBAAwBV,EAAK,YAAA,CAAa,EAAE,EAE/DW,EAAY,CAACD,UAAO,gBAAgB,EAAGD,EAAWV,CAAS,EAC9D,OAAO,OAAO,EACd,KAAK,GAAG,EAELa,EAAeX,IAAS,OAAYA,EAAOV,EAAcS,CAAI,EAE7Da,EAAaT,GAAsB,MAAQE,GAAwB,KAEzE,OACEQ,EAAAA,KAAC,MAAA,CAAI,UAAWH,EACd,SAAA,CAAAG,EAAAA,KAAC,MAAA,CAAI,UAAWJ,EAAAA,QAAO,yBAAyB,EAC7C,SAAA,CAAAE,GAAgB,YACd,OAAA,CAAK,UAAWF,EAAAA,QAAO,sBAAsB,EAAG,cAAW,GACzD,SAAAE,CAAA,CACH,EAEFE,EAAAA,KAAC,MAAA,CAAI,UAAWJ,EAAAA,QAAO,sBAAsB,EAC3C,SAAA,CAAAjB,MAAC,IAAA,CAAE,UAAWiB,EAAAA,QAAO,uBAAuB,EAAI,SAAAR,EAAM,EACrDC,GAAe,MACdV,MAAC,MAAA,CAAI,UAAWiB,EAAAA,QAAO,6BAA6B,EACjD,SAAAP,EACH,EAEDU,GACCC,EAAAA,KAAC,MAAA,CAAI,UAAWJ,UAAO,yBAAyB,EAC7C,SAAA,CAAAN,GAAsB,MACrBX,EAAAA,IAACsB,EAAAA,QAAA,CACC,SAAS,UACT,KAAK,QACL,QAASV,EAER,SAAAD,CAAA,CAAA,EAGJE,GAAwB,MACvBb,EAAAA,IAACsB,EAAAA,QAAA,CACC,SAAS,YACT,KAAK,QACL,QAASR,EAER,SAAAD,CAAA,CAAA,CACH,CAAA,CAEJ,CAAA,CAAA,CAEJ,CAAA,EACF,EACCE,GAAa,MACZf,EAAAA,IAACuB,EAAAA,QAAA,CACC,UAAWN,EAAAA,QAAO,yBAAyB,EAC3C,aAAW,UACX,KAAK,QACL,WAAOlB,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACwB,IAAU,EAAI,EAC5C,QAAST,CAAA,CAAA,CACX,EAEJ,CAEJ"}
1
+ {"version":3,"file":"SectionNotice.cjs","sources":["../../../src/components/section-notice/SectionNotice.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport Button from '@/components/button/Button';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport InformationOutlineIcon from '@mattermost/compass-icons/components/information-outline';\nimport AlertOutlineIcon from '@mattermost/compass-icons/components/alert-outline';\nimport AlertCircleOutlineIcon from '@mattermost/compass-icons/components/alert-circle-outline';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './SectionNotice.module.scss';\n\nexport type SectionNoticeType =\n | 'info'\n | 'warning'\n | 'danger'\n | 'success'\n | 'hint';\n\nexport interface SectionNoticeProps {\n /** Optional CSS class name. */\n className?: string;\n /** Type controls color-coding. Default: Info. */\n type?: SectionNoticeType;\n /** Optional leading icon. When omitted a default type icon is shown. Pass `<Icon glyph={<SomeIcon />} size=\"20\" />` — the slot does not resize raw SVG children. */\n icon?: ReactNode;\n /** Title / headline text. */\n title: string;\n /** Optional body description. */\n description?: ReactNode;\n /** Primary action button label. */\n primaryButtonLabel?: string;\n /** Primary action callback. */\n onPrimaryAction?: () => void;\n /** Secondary action button label. */\n secondaryButtonLabel?: string;\n /** Secondary action callback. */\n onSecondaryAction?: () => void;\n /** Called when dismiss (×) button is clicked. When omitted, dismiss button is hidden. */\n onDismiss?: () => void;\n}\n\nconst DEFAULT_ICONS: Record<SectionNoticeType, ReactNode> = {\n info: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n warning: <Icon size=\"20\" glyph={<AlertCircleOutlineIcon />} />,\n danger: <Icon size=\"20\" glyph={<AlertOutlineIcon />} />,\n success: <Icon size=\"20\" glyph={<CheckCircleOutlineIcon />} />,\n hint: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n};\n\n/**\n * A Section Notice is an in-context alert that lives inside a settings page, admin panel, or\n * other content region. Use it to flag important information, report a state change, or\n * surface a problem the user needs to act on — without yanking them out of the flow.\n */\nexport default function SectionNotice({\n className = '',\n type = 'info',\n icon,\n title,\n description,\n primaryButtonLabel,\n onPrimaryAction,\n secondaryButtonLabel,\n onSecondaryAction,\n onDismiss,\n}: SectionNoticeProps) {\n const typeClass = styles[`section-notice--type-${type.toLowerCase()}`];\n\n const rootClass = [styles['section-notice'], typeClass, className]\n .filter(Boolean)\n .join(' ');\n\n const resolvedIcon = icon !== undefined ? icon : DEFAULT_ICONS[type];\n\n const hasActions = primaryButtonLabel != null || secondaryButtonLabel != null;\n\n return (\n <div className={rootClass}>\n <div className={styles['section-notice__content']}>\n {resolvedIcon != null && (\n <span className={styles['section-notice__icon']} aria-hidden>\n {resolvedIcon}\n </span>\n )}\n <div className={styles['section-notice__body']}>\n <p className={styles['section-notice__title']}>{title}</p>\n {description != null && (\n <div className={styles['section-notice__description']}>\n {description}\n </div>\n )}\n {hasActions && (\n <div className={styles['section-notice__actions']}>\n {primaryButtonLabel != null && (\n <Button\n emphasis=\"primary\"\n size=\"small\"\n onClick={onPrimaryAction}\n >\n {primaryButtonLabel}\n </Button>\n )}\n {secondaryButtonLabel != null && (\n <Button\n emphasis=\"secondary\"\n size=\"small\"\n onClick={onSecondaryAction}\n >\n {secondaryButtonLabel}\n </Button>\n )}\n </div>\n )}\n </div>\n </div>\n {onDismiss != null && (\n <IconButton\n className={styles['section-notice__dismiss']}\n aria-label=\"Dismiss\"\n size=\"small\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["DEFAULT_ICONS","Icon","jsx","InformationOutlineIcon","AlertCircleOutlineIcon","AlertOutlineIcon","CheckCircleOutlineIcon","SectionNotice","className","type","icon","title","description","primaryButtonLabel","onPrimaryAction","secondaryButtonLabel","onSecondaryAction","onDismiss","typeClass","styles","rootClass","resolvedIcon","hasActions","jsxs","Button","IconButton","CloseIcon"],"mappings":"onBAyCMA,EAAsD,CAC1D,WAAOC,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACC,IAAuB,EAAI,EACzD,cAAUF,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACE,IAAuB,EAAI,EAC5D,aAASH,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACG,IAAiB,EAAI,EACrD,cAAUJ,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACI,IAAuB,EAAI,EAC5D,WAAOL,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOC,EAAAA,IAACC,IAAuB,CAAA,CAAI,CAC3D,EAOA,SAAwBI,EAAc,CACpC,UAAAC,EAAY,GACZ,KAAAC,EAAO,OACP,KAAAC,EACA,MAAAC,EACA,YAAAC,EACA,mBAAAC,EACA,gBAAAC,EACA,qBAAAC,EACA,kBAAAC,EACA,UAAAC,CACF,EAAuB,CACrB,MAAMC,EAAYC,EAAAA,QAAO,wBAAwBV,EAAK,YAAA,CAAa,EAAE,EAE/DW,EAAY,CAACD,UAAO,gBAAgB,EAAGD,EAAWV,CAAS,EAC9D,OAAO,OAAO,EACd,KAAK,GAAG,EAELa,EAAeX,IAAS,OAAYA,EAAOV,EAAcS,CAAI,EAE7Da,EAAaT,GAAsB,MAAQE,GAAwB,KAEzE,OACEQ,EAAAA,KAAC,MAAA,CAAI,UAAWH,EACd,SAAA,CAAAG,EAAAA,KAAC,MAAA,CAAI,UAAWJ,EAAAA,QAAO,yBAAyB,EAC7C,SAAA,CAAAE,GAAgB,YACd,OAAA,CAAK,UAAWF,EAAAA,QAAO,sBAAsB,EAAG,cAAW,GACzD,SAAAE,CAAA,CACH,EAEFE,EAAAA,KAAC,MAAA,CAAI,UAAWJ,EAAAA,QAAO,sBAAsB,EAC3C,SAAA,CAAAjB,MAAC,IAAA,CAAE,UAAWiB,EAAAA,QAAO,uBAAuB,EAAI,SAAAR,EAAM,EACrDC,GAAe,MACdV,MAAC,MAAA,CAAI,UAAWiB,EAAAA,QAAO,6BAA6B,EACjD,SAAAP,EACH,EAEDU,GACCC,EAAAA,KAAC,MAAA,CAAI,UAAWJ,UAAO,yBAAyB,EAC7C,SAAA,CAAAN,GAAsB,MACrBX,EAAAA,IAACsB,EAAAA,QAAA,CACC,SAAS,UACT,KAAK,QACL,QAASV,EAER,SAAAD,CAAA,CAAA,EAGJE,GAAwB,MACvBb,EAAAA,IAACsB,EAAAA,QAAA,CACC,SAAS,YACT,KAAK,QACL,QAASR,EAER,SAAAD,CAAA,CAAA,CACH,CAAA,CAEJ,CAAA,CAAA,CAEJ,CAAA,EACF,EACCE,GAAa,MACZf,EAAAA,IAACuB,EAAAA,QAAA,CACC,UAAWN,EAAAA,QAAO,yBAAyB,EAC3C,aAAW,UACX,KAAK,QACL,WAAOlB,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACwB,IAAU,EAAI,EAC5C,QAAST,CAAA,CAAA,CACX,EAEJ,CAEJ"}
@@ -5,7 +5,7 @@ export interface SectionNoticeProps {
5
5
  className?: string;
6
6
  /** Type controls color-coding. Default: Info. */
7
7
  type?: SectionNoticeType;
8
- /** Optional leading icon. When omitted a default type icon is shown. */
8
+ /** Optional leading icon. When omitted a default type icon is shown. Pass `<Icon glyph={<SomeIcon />} size="20" />` — the slot does not resize raw SVG children. */
9
9
  icon?: ReactNode;
10
10
  /** Title / headline text. */
11
11
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"SectionNotice.d.ts","sourceRoot":"","sources":["../../../src/components/section-notice/SectionNotice.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAWvC,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,SAAS,GACT,QAAQ,GACR,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,wEAAwE;IACxE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,mCAAmC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,qCAAqC;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iCAAiC;IACjC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAUD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,SAAc,EACd,IAAa,EACb,IAAI,EACJ,KAAK,EACL,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,GACV,EAAE,kBAAkB,2CA6DpB"}
1
+ {"version":3,"file":"SectionNotice.d.ts","sourceRoot":"","sources":["../../../src/components/section-notice/SectionNotice.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAWvC,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,SAAS,GACT,QAAQ,GACR,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,oKAAoK;IACpK,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,mCAAmC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,qCAAqC;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iCAAiC;IACjC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAUD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,SAAc,EACd,IAAa,EACb,IAAI,EACJ,KAAK,EACL,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,GACV,EAAE,kBAAkB,2CA6DpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"SectionNotice.js","sources":["../../../src/components/section-notice/SectionNotice.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport Button from '@/components/button/Button';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport InformationOutlineIcon from '@mattermost/compass-icons/components/information-outline';\nimport AlertOutlineIcon from '@mattermost/compass-icons/components/alert-outline';\nimport AlertCircleOutlineIcon from '@mattermost/compass-icons/components/alert-circle-outline';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './SectionNotice.module.scss';\n\nexport type SectionNoticeType =\n | 'info'\n | 'warning'\n | 'danger'\n | 'success'\n | 'hint';\n\nexport interface SectionNoticeProps {\n /** Optional CSS class name. */\n className?: string;\n /** Type controls color-coding. Default: Info. */\n type?: SectionNoticeType;\n /** Optional leading icon. When omitted a default type icon is shown. */\n icon?: ReactNode;\n /** Title / headline text. */\n title: string;\n /** Optional body description. */\n description?: ReactNode;\n /** Primary action button label. */\n primaryButtonLabel?: string;\n /** Primary action callback. */\n onPrimaryAction?: () => void;\n /** Secondary action button label. */\n secondaryButtonLabel?: string;\n /** Secondary action callback. */\n onSecondaryAction?: () => void;\n /** Called when dismiss (×) button is clicked. When omitted, dismiss button is hidden. */\n onDismiss?: () => void;\n}\n\nconst DEFAULT_ICONS: Record<SectionNoticeType, ReactNode> = {\n info: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n warning: <Icon size=\"20\" glyph={<AlertCircleOutlineIcon />} />,\n danger: <Icon size=\"20\" glyph={<AlertOutlineIcon />} />,\n success: <Icon size=\"20\" glyph={<CheckCircleOutlineIcon />} />,\n hint: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n};\n\n/**\n * A Section Notice is an in-context alert that lives inside a settings page, admin panel, or\n * other content region. Use it to flag important information, report a state change, or\n * surface a problem the user needs to act on — without yanking them out of the flow.\n */\nexport default function SectionNotice({\n className = '',\n type = 'info',\n icon,\n title,\n description,\n primaryButtonLabel,\n onPrimaryAction,\n secondaryButtonLabel,\n onSecondaryAction,\n onDismiss,\n}: SectionNoticeProps) {\n const typeClass = styles[`section-notice--type-${type.toLowerCase()}`];\n\n const rootClass = [styles['section-notice'], typeClass, className]\n .filter(Boolean)\n .join(' ');\n\n const resolvedIcon = icon !== undefined ? icon : DEFAULT_ICONS[type];\n\n const hasActions = primaryButtonLabel != null || secondaryButtonLabel != null;\n\n return (\n <div className={rootClass}>\n <div className={styles['section-notice__content']}>\n {resolvedIcon != null && (\n <span className={styles['section-notice__icon']} aria-hidden>\n {resolvedIcon}\n </span>\n )}\n <div className={styles['section-notice__body']}>\n <p className={styles['section-notice__title']}>{title}</p>\n {description != null && (\n <div className={styles['section-notice__description']}>\n {description}\n </div>\n )}\n {hasActions && (\n <div className={styles['section-notice__actions']}>\n {primaryButtonLabel != null && (\n <Button\n emphasis=\"primary\"\n size=\"small\"\n onClick={onPrimaryAction}\n >\n {primaryButtonLabel}\n </Button>\n )}\n {secondaryButtonLabel != null && (\n <Button\n emphasis=\"secondary\"\n size=\"small\"\n onClick={onSecondaryAction}\n >\n {secondaryButtonLabel}\n </Button>\n )}\n </div>\n )}\n </div>\n </div>\n {onDismiss != null && (\n <IconButton\n className={styles['section-notice__dismiss']}\n aria-label=\"Dismiss\"\n size=\"small\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["DEFAULT_ICONS","Icon","jsx","InformationOutlineIcon","AlertCircleOutlineIcon","AlertOutlineIcon","CheckCircleOutlineIcon","SectionNotice","className","type","icon","title","description","primaryButtonLabel","onPrimaryAction","secondaryButtonLabel","onSecondaryAction","onDismiss","typeClass","styles","rootClass","resolvedIcon","hasActions","jsxs","Button","IconButton","CloseIcon"],"mappings":";;;;;;;;;;AAyCA,MAAMA,IAAsD;AAAA,EAC1D,wBAAOC,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACC,KAAuB,GAAI;AAAA,EACzD,2BAAUF,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACE,KAAuB,GAAI;AAAA,EAC5D,0BAASH,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACG,KAAiB,GAAI;AAAA,EACrD,2BAAUJ,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACI,KAAuB,GAAI;AAAA,EAC5D,wBAAOL,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACC,KAAuB,EAAA,CAAI;AAC3D;AAOA,SAAwBI,EAAc;AAAA,EACpC,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,WAAAC;AACF,GAAuB;AACrB,QAAMC,IAAYC,EAAO,wBAAwBV,EAAK,YAAA,CAAa,EAAE,GAE/DW,IAAY,CAACD,EAAO,gBAAgB,GAAGD,GAAWV,CAAS,EAC9D,OAAO,OAAO,EACd,KAAK,GAAG,GAELa,IAAeX,MAAS,SAAYA,IAAOV,EAAcS,CAAI,GAE7Da,IAAaT,KAAsB,QAAQE,KAAwB;AAEzE,SACE,gBAAAQ,EAAC,OAAA,EAAI,WAAWH,GACd,UAAA;AAAA,IAAA,gBAAAG,EAAC,OAAA,EAAI,WAAWJ,EAAO,yBAAyB,GAC7C,UAAA;AAAA,MAAAE,KAAgB,0BACd,QAAA,EAAK,WAAWF,EAAO,sBAAsB,GAAG,eAAW,IACzD,UAAAE,EAAA,CACH;AAAA,MAEF,gBAAAE,EAAC,OAAA,EAAI,WAAWJ,EAAO,sBAAsB,GAC3C,UAAA;AAAA,QAAA,gBAAAjB,EAAC,KAAA,EAAE,WAAWiB,EAAO,uBAAuB,GAAI,UAAAR,GAAM;AAAA,QACrDC,KAAe,QACd,gBAAAV,EAAC,OAAA,EAAI,WAAWiB,EAAO,6BAA6B,GACjD,UAAAP,GACH;AAAA,QAEDU,KACC,gBAAAC,EAAC,OAAA,EAAI,WAAWJ,EAAO,yBAAyB,GAC7C,UAAA;AAAA,UAAAN,KAAsB,QACrB,gBAAAX;AAAA,YAACsB;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,MAAK;AAAA,cACL,SAASV;AAAA,cAER,UAAAD;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJE,KAAwB,QACvB,gBAAAb;AAAA,YAACsB;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,MAAK;AAAA,cACL,SAASR;AAAA,cAER,UAAAD;AAAA,YAAA;AAAA,UAAA;AAAA,QACH,EAAA,CAEJ;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA,GACF;AAAA,IACCE,KAAa,QACZ,gBAAAf;AAAA,MAACuB;AAAA,MAAA;AAAA,QACC,WAAWN,EAAO,yBAAyB;AAAA,QAC3C,cAAW;AAAA,QACX,MAAK;AAAA,QACL,wBAAOlB,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACwB,KAAU,GAAI;AAAA,QAC5C,SAAST;AAAA,MAAA;AAAA,IAAA;AAAA,EACX,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"SectionNotice.js","sources":["../../../src/components/section-notice/SectionNotice.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport Button from '@/components/button/Button';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport InformationOutlineIcon from '@mattermost/compass-icons/components/information-outline';\nimport AlertOutlineIcon from '@mattermost/compass-icons/components/alert-outline';\nimport AlertCircleOutlineIcon from '@mattermost/compass-icons/components/alert-circle-outline';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './SectionNotice.module.scss';\n\nexport type SectionNoticeType =\n | 'info'\n | 'warning'\n | 'danger'\n | 'success'\n | 'hint';\n\nexport interface SectionNoticeProps {\n /** Optional CSS class name. */\n className?: string;\n /** Type controls color-coding. Default: Info. */\n type?: SectionNoticeType;\n /** Optional leading icon. When omitted a default type icon is shown. Pass `<Icon glyph={<SomeIcon />} size=\"20\" />` — the slot does not resize raw SVG children. */\n icon?: ReactNode;\n /** Title / headline text. */\n title: string;\n /** Optional body description. */\n description?: ReactNode;\n /** Primary action button label. */\n primaryButtonLabel?: string;\n /** Primary action callback. */\n onPrimaryAction?: () => void;\n /** Secondary action button label. */\n secondaryButtonLabel?: string;\n /** Secondary action callback. */\n onSecondaryAction?: () => void;\n /** Called when dismiss (×) button is clicked. When omitted, dismiss button is hidden. */\n onDismiss?: () => void;\n}\n\nconst DEFAULT_ICONS: Record<SectionNoticeType, ReactNode> = {\n info: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n warning: <Icon size=\"20\" glyph={<AlertCircleOutlineIcon />} />,\n danger: <Icon size=\"20\" glyph={<AlertOutlineIcon />} />,\n success: <Icon size=\"20\" glyph={<CheckCircleOutlineIcon />} />,\n hint: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n};\n\n/**\n * A Section Notice is an in-context alert that lives inside a settings page, admin panel, or\n * other content region. Use it to flag important information, report a state change, or\n * surface a problem the user needs to act on — without yanking them out of the flow.\n */\nexport default function SectionNotice({\n className = '',\n type = 'info',\n icon,\n title,\n description,\n primaryButtonLabel,\n onPrimaryAction,\n secondaryButtonLabel,\n onSecondaryAction,\n onDismiss,\n}: SectionNoticeProps) {\n const typeClass = styles[`section-notice--type-${type.toLowerCase()}`];\n\n const rootClass = [styles['section-notice'], typeClass, className]\n .filter(Boolean)\n .join(' ');\n\n const resolvedIcon = icon !== undefined ? icon : DEFAULT_ICONS[type];\n\n const hasActions = primaryButtonLabel != null || secondaryButtonLabel != null;\n\n return (\n <div className={rootClass}>\n <div className={styles['section-notice__content']}>\n {resolvedIcon != null && (\n <span className={styles['section-notice__icon']} aria-hidden>\n {resolvedIcon}\n </span>\n )}\n <div className={styles['section-notice__body']}>\n <p className={styles['section-notice__title']}>{title}</p>\n {description != null && (\n <div className={styles['section-notice__description']}>\n {description}\n </div>\n )}\n {hasActions && (\n <div className={styles['section-notice__actions']}>\n {primaryButtonLabel != null && (\n <Button\n emphasis=\"primary\"\n size=\"small\"\n onClick={onPrimaryAction}\n >\n {primaryButtonLabel}\n </Button>\n )}\n {secondaryButtonLabel != null && (\n <Button\n emphasis=\"secondary\"\n size=\"small\"\n onClick={onSecondaryAction}\n >\n {secondaryButtonLabel}\n </Button>\n )}\n </div>\n )}\n </div>\n </div>\n {onDismiss != null && (\n <IconButton\n className={styles['section-notice__dismiss']}\n aria-label=\"Dismiss\"\n size=\"small\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["DEFAULT_ICONS","Icon","jsx","InformationOutlineIcon","AlertCircleOutlineIcon","AlertOutlineIcon","CheckCircleOutlineIcon","SectionNotice","className","type","icon","title","description","primaryButtonLabel","onPrimaryAction","secondaryButtonLabel","onSecondaryAction","onDismiss","typeClass","styles","rootClass","resolvedIcon","hasActions","jsxs","Button","IconButton","CloseIcon"],"mappings":";;;;;;;;;;AAyCA,MAAMA,IAAsD;AAAA,EAC1D,wBAAOC,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACC,KAAuB,GAAI;AAAA,EACzD,2BAAUF,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACE,KAAuB,GAAI;AAAA,EAC5D,0BAASH,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACG,KAAiB,GAAI;AAAA,EACrD,2BAAUJ,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACI,KAAuB,GAAI;AAAA,EAC5D,wBAAOL,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACC,KAAuB,EAAA,CAAI;AAC3D;AAOA,SAAwBI,EAAc;AAAA,EACpC,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,WAAAC;AACF,GAAuB;AACrB,QAAMC,IAAYC,EAAO,wBAAwBV,EAAK,YAAA,CAAa,EAAE,GAE/DW,IAAY,CAACD,EAAO,gBAAgB,GAAGD,GAAWV,CAAS,EAC9D,OAAO,OAAO,EACd,KAAK,GAAG,GAELa,IAAeX,MAAS,SAAYA,IAAOV,EAAcS,CAAI,GAE7Da,IAAaT,KAAsB,QAAQE,KAAwB;AAEzE,SACE,gBAAAQ,EAAC,OAAA,EAAI,WAAWH,GACd,UAAA;AAAA,IAAA,gBAAAG,EAAC,OAAA,EAAI,WAAWJ,EAAO,yBAAyB,GAC7C,UAAA;AAAA,MAAAE,KAAgB,0BACd,QAAA,EAAK,WAAWF,EAAO,sBAAsB,GAAG,eAAW,IACzD,UAAAE,EAAA,CACH;AAAA,MAEF,gBAAAE,EAAC,OAAA,EAAI,WAAWJ,EAAO,sBAAsB,GAC3C,UAAA;AAAA,QAAA,gBAAAjB,EAAC,KAAA,EAAE,WAAWiB,EAAO,uBAAuB,GAAI,UAAAR,GAAM;AAAA,QACrDC,KAAe,QACd,gBAAAV,EAAC,OAAA,EAAI,WAAWiB,EAAO,6BAA6B,GACjD,UAAAP,GACH;AAAA,QAEDU,KACC,gBAAAC,EAAC,OAAA,EAAI,WAAWJ,EAAO,yBAAyB,GAC7C,UAAA;AAAA,UAAAN,KAAsB,QACrB,gBAAAX;AAAA,YAACsB;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,MAAK;AAAA,cACL,SAASV;AAAA,cAER,UAAAD;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJE,KAAwB,QACvB,gBAAAb;AAAA,YAACsB;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,MAAK;AAAA,cACL,SAASR;AAAA,cAER,UAAAD;AAAA,YAAA;AAAA,UAAA;AAAA,QACH,EAAA,CAEJ;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA,GACF;AAAA,IACCE,KAAa,QACZ,gBAAAf;AAAA,MAACuB;AAAA,MAAA;AAAA,QACC,WAAWN,EAAO,yBAAyB;AAAA,QAC3C,cAAW;AAAA,QACX,MAAK;AAAA,QACL,wBAAOlB,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACwB,KAAU,GAAI;AAAA,QAC5C,SAAST;AAAA,MAAA;AAAA,IAAA;AAAA,EACX,GAEJ;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.cjs","sources":["../../../src/components/tag/Tag.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport styles from './Tag.module.scss';\n\nexport type TagType =\n | 'default'\n | 'info'\n | 'info-dim'\n | 'danger'\n | 'success'\n | 'warning';\n\nexport type TagSize = 'small' | 'x-small';\nexport type TagCasing = 'title-case' | 'all-caps';\n\nexport type TagProps = {\n /** Tag label text. */\n label: string;\n /** Semantic colour type. Default: Default. */\n type?: TagType;\n /** Size variant. Default: X-Small. */\n size?: TagSize;\n /** Text casing. Default: Title Case. */\n casing?: TagCasing;\n /** Optional leading icon node. */\n leadingIcon?: ReactNode;\n /** Merged onto the root after variant classes (e.g. layout overrides in a parent row). */\n className?: string;\n};\n\nconst TYPE_CLASS: Record<TagType, string> = {\n default: styles['tag--type-default'],\n info: styles['tag--type-info'],\n 'info-dim': styles['tag--type-info-dim'],\n danger: styles['tag--type-danger'],\n success: styles['tag--type-success'],\n warning: styles['tag--type-warning'],\n};\n\n/**\n * Tags are compact pills that mark something — a role (_BOT_, _GUEST_), a tier\n * (_PROFESSIONAL_), a status (_NEW_, _BETA_), or a category. They're scannable signal: a way\n * to surface a small piece of metadata without spending a sentence on it.\n */\nexport default function Tag({\n label,\n type = 'default',\n size = 'x-small',\n casing = 'title-case',\n leadingIcon,\n className = '',\n}: TagProps) {\n const classes = [\n styles.tag,\n TYPE_CLASS[type],\n size === 'small'\n ? styles['tag--size-small']\n : styles['tag--size-x-small'],\n casing === 'all-caps' ? styles['tag--casing-all-caps'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <span className={classes}>\n {leadingIcon && (\n <span className={styles['tag__icon']} aria-hidden>\n {leadingIcon}\n </span>\n )}\n <span className={styles['tag__label']}>{label}</span>\n </span>\n );\n}\n"],"names":["TYPE_CLASS","styles","Tag","label","type","size","casing","leadingIcon","className","classes","jsxs","jsx"],"mappings":"oLA6BMA,EAAsC,CAC1C,QAASC,EAAAA,QAAO,mBAAmB,EACnC,KAAMA,EAAAA,QAAO,gBAAgB,EAC7B,WAAYA,EAAAA,QAAO,oBAAoB,EACvC,OAAQA,EAAAA,QAAO,kBAAkB,EACjC,QAASA,EAAAA,QAAO,mBAAmB,EACnC,QAASA,EAAAA,QAAO,mBAAmB,CACrC,EAOA,SAAwBC,EAAI,CAC1B,MAAAC,EACA,KAAAC,EAAO,UACP,KAAAC,EAAO,UACP,OAAAC,EAAS,aACT,YAAAC,EACA,UAAAC,EAAY,EACd,EAAa,CACX,MAAMC,EAAU,CACdR,EAAAA,QAAO,IACPD,EAAWI,CAAI,EACfC,IAAS,QACLJ,EAAAA,QAAO,iBAAiB,EACxBA,EAAAA,QAAO,mBAAmB,EAC9BK,IAAW,WAAaL,UAAO,sBAAsB,EAAI,GACzDO,CAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEE,EAAAA,KAAC,OAAA,CAAK,UAAWD,EACd,SAAA,CAAAF,GACCI,EAAAA,IAAC,QAAK,UAAWV,EAAAA,QAAO,UAAc,cAAW,GAC9C,SAAAM,CAAA,CACH,QAED,OAAA,CAAK,UAAWN,EAAAA,QAAO,WAAgB,SAAAE,CAAA,CAAM,CAAA,EAChD,CAEJ"}
1
+ {"version":3,"file":"Tag.cjs","sources":["../../../src/components/tag/Tag.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport styles from './Tag.module.scss';\n\nexport type TagType =\n | 'default'\n | 'info'\n | 'info-dim'\n | 'danger'\n | 'success'\n | 'warning';\n\nexport type TagSize = 'small' | 'x-small';\nexport type TagCasing = 'title-case' | 'all-caps';\n\nexport type TagProps = {\n /** Tag label text. */\n label: string;\n /** Semantic colour type. Default: Default. */\n type?: TagType;\n /** Size variant. Default: X-Small. */\n size?: TagSize;\n /** Text casing. Default: Title Case. */\n casing?: TagCasing;\n /** Raw SVG glyph from `@mattermost/compass-icons` — e.g. `<GlobeIcon size={10} />` for `size=\"x-small\"` or `<GlobeIcon size={12} />` for `size=\"small\"`. Do not wrap in `<Icon>`. */\n leadingIcon?: ReactNode;\n /** Merged onto the root after variant classes (e.g. layout overrides in a parent row). */\n className?: string;\n};\n\nconst TYPE_CLASS: Record<TagType, string> = {\n default: styles['tag--type-default'],\n info: styles['tag--type-info'],\n 'info-dim': styles['tag--type-info-dim'],\n danger: styles['tag--type-danger'],\n success: styles['tag--type-success'],\n warning: styles['tag--type-warning'],\n};\n\n/**\n * Tags are compact pills that mark something — a role (_BOT_, _GUEST_), a tier\n * (_PROFESSIONAL_), a status (_NEW_, _BETA_), or a category. They're scannable signal: a way\n * to surface a small piece of metadata without spending a sentence on it.\n */\nexport default function Tag({\n label,\n type = 'default',\n size = 'x-small',\n casing = 'title-case',\n leadingIcon,\n className = '',\n}: TagProps) {\n const classes = [\n styles.tag,\n TYPE_CLASS[type],\n size === 'small'\n ? styles['tag--size-small']\n : styles['tag--size-x-small'],\n casing === 'all-caps' ? styles['tag--casing-all-caps'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <span className={classes}>\n {leadingIcon && (\n <span className={styles['tag__icon']} aria-hidden>\n {leadingIcon}\n </span>\n )}\n <span className={styles['tag__label']}>{label}</span>\n </span>\n );\n}\n"],"names":["TYPE_CLASS","styles","Tag","label","type","size","casing","leadingIcon","className","classes","jsxs","jsx"],"mappings":"oLA6BMA,EAAsC,CAC1C,QAASC,EAAAA,QAAO,mBAAmB,EACnC,KAAMA,EAAAA,QAAO,gBAAgB,EAC7B,WAAYA,EAAAA,QAAO,oBAAoB,EACvC,OAAQA,EAAAA,QAAO,kBAAkB,EACjC,QAASA,EAAAA,QAAO,mBAAmB,EACnC,QAASA,EAAAA,QAAO,mBAAmB,CACrC,EAOA,SAAwBC,EAAI,CAC1B,MAAAC,EACA,KAAAC,EAAO,UACP,KAAAC,EAAO,UACP,OAAAC,EAAS,aACT,YAAAC,EACA,UAAAC,EAAY,EACd,EAAa,CACX,MAAMC,EAAU,CACdR,EAAAA,QAAO,IACPD,EAAWI,CAAI,EACfC,IAAS,QACLJ,EAAAA,QAAO,iBAAiB,EACxBA,EAAAA,QAAO,mBAAmB,EAC9BK,IAAW,WAAaL,UAAO,sBAAsB,EAAI,GACzDO,CAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEE,EAAAA,KAAC,OAAA,CAAK,UAAWD,EACd,SAAA,CAAAF,GACCI,EAAAA,IAAC,QAAK,UAAWV,EAAAA,QAAO,UAAc,cAAW,GAC9C,SAAAM,CAAA,CACH,QAED,OAAA,CAAK,UAAWN,EAAAA,QAAO,WAAgB,SAAAE,CAAA,CAAM,CAAA,EAChD,CAEJ"}
@@ -11,7 +11,7 @@ export type TagProps = {
11
11
  size?: TagSize;
12
12
  /** Text casing. Default: Title Case. */
13
13
  casing?: TagCasing;
14
- /** Optional leading icon node. */
14
+ /** Raw SVG glyph from `@mattermost/compass-icons` — e.g. `<GlobeIcon size={10} />` for `size="x-small"` or `<GlobeIcon size={12} />` for `size="small"`. Do not wrap in `<Icon>`. */
15
15
  leadingIcon?: ReactNode;
16
16
  /** Merged onto the root after variant classes (e.g. layout overrides in a parent row). */
17
17
  className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../src/components/tag/Tag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,MAAM,OAAO,GACf,SAAS,GACT,MAAM,GACN,UAAU,GACV,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAC1C,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,UAAU,CAAC;AAElD,MAAM,MAAM,QAAQ,GAAG;IACrB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sCAAsC;IACtC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,kCAAkC;IAClC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAWF;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAC1B,KAAK,EACL,IAAgB,EAChB,IAAgB,EAChB,MAAqB,EACrB,WAAW,EACX,SAAc,GACf,EAAE,QAAQ,2CAuBV"}
1
+ {"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../src/components/tag/Tag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,MAAM,OAAO,GACf,SAAS,GACT,MAAM,GACN,UAAU,GACV,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAC1C,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,UAAU,CAAC;AAElD,MAAM,MAAM,QAAQ,GAAG;IACrB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sCAAsC;IACtC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,qLAAqL;IACrL,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAWF;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAC1B,KAAK,EACL,IAAgB,EAChB,IAAgB,EAChB,MAAqB,EACrB,WAAW,EACX,SAAc,GACf,EAAE,QAAQ,2CAuBV"}