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

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 (268) 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 +7 -5
  16. package/dist/components/button/Button.d.ts.map +1 -1
  17. package/dist/components/button/Button.js +29 -27
  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/chip/Chip.cjs +1 -1
  51. package/dist/components/chip/Chip.cjs.map +1 -1
  52. package/dist/components/chip/Chip.d.ts +4 -2
  53. package/dist/components/chip/Chip.d.ts.map +1 -1
  54. package/dist/components/chip/Chip.js +66 -66
  55. package/dist/components/chip/Chip.js.map +1 -1
  56. package/dist/components/chip/Chip.module.css +1 -1
  57. package/dist/components/chip/Chip.module.scss.cjs +1 -1
  58. package/dist/components/chip/Chip.module.scss.js +12 -12
  59. package/dist/components/emoji-button/EmojiButton.cjs +2 -0
  60. package/dist/components/emoji-button/EmojiButton.cjs.map +1 -0
  61. package/dist/components/emoji-button/EmojiButton.d.ts +30 -0
  62. package/dist/components/emoji-button/EmojiButton.d.ts.map +1 -0
  63. package/dist/components/emoji-button/EmojiButton.js +35 -0
  64. package/dist/components/emoji-button/EmojiButton.js.map +1 -0
  65. package/dist/components/emoji-button/EmojiButton.module.css +1 -0
  66. package/dist/components/emoji-button/EmojiButton.module.scss.cjs +2 -0
  67. package/dist/components/emoji-button/EmojiButton.module.scss.cjs.map +1 -0
  68. package/dist/components/emoji-button/EmojiButton.module.scss.js +15 -0
  69. package/dist/components/emoji-button/EmojiButton.module.scss.js.map +1 -0
  70. package/dist/components/emoji-button/index.cjs +2 -0
  71. package/dist/components/emoji-button/index.cjs.map +1 -0
  72. package/dist/components/emoji-button/index.d.ts +3 -0
  73. package/dist/components/emoji-button/index.d.ts.map +1 -0
  74. package/dist/components/emoji-button/index.js +6 -0
  75. package/dist/components/emoji-popover/EmojiPopover.cjs +2 -0
  76. package/dist/components/emoji-popover/EmojiPopover.cjs.map +1 -0
  77. package/dist/components/emoji-popover/EmojiPopover.d.ts +34 -0
  78. package/dist/components/emoji-popover/EmojiPopover.d.ts.map +1 -0
  79. package/dist/components/emoji-popover/EmojiPopover.js +244 -0
  80. package/dist/components/emoji-popover/EmojiPopover.js.map +1 -0
  81. package/dist/components/emoji-popover/EmojiPopover.module.css +1 -0
  82. package/dist/components/emoji-popover/EmojiPopover.module.scss.cjs +2 -0
  83. package/dist/components/emoji-popover/EmojiPopover.module.scss.cjs.map +1 -0
  84. package/dist/components/emoji-popover/EmojiPopover.module.scss.js +27 -0
  85. package/dist/components/emoji-popover/EmojiPopover.module.scss.js.map +1 -0
  86. package/dist/components/{message-reactions → emoji-popover}/index.cjs +1 -1
  87. package/dist/components/emoji-popover/index.cjs.map +1 -0
  88. package/dist/components/emoji-popover/index.d.ts +3 -0
  89. package/dist/components/emoji-popover/index.d.ts.map +1 -0
  90. package/dist/components/emoji-popover/index.js +5 -0
  91. package/dist/components/emoji-popover/index.js.map +1 -0
  92. package/dist/components/global-banner/GlobalBanner.cjs.map +1 -1
  93. package/dist/components/global-banner/GlobalBanner.d.ts +1 -1
  94. package/dist/components/global-banner/GlobalBanner.d.ts.map +1 -1
  95. package/dist/components/global-banner/GlobalBanner.js.map +1 -1
  96. package/dist/components/global-header/GlobalHeader.module.css +1 -1
  97. package/dist/components/global-header/GlobalHeader.module.scss.cjs +1 -1
  98. package/dist/components/global-header/GlobalHeader.module.scss.js +16 -16
  99. package/dist/components/icon-button/IconButton.cjs +1 -1
  100. package/dist/components/icon-button/IconButton.cjs.map +1 -1
  101. package/dist/components/icon-button/IconButton.d.ts +3 -1
  102. package/dist/components/icon-button/IconButton.d.ts.map +1 -1
  103. package/dist/components/icon-button/IconButton.js +37 -35
  104. package/dist/components/icon-button/IconButton.js.map +1 -1
  105. package/dist/components/menu-group-heading/MenuGroupHeading.cjs +2 -0
  106. package/dist/components/menu-group-heading/MenuGroupHeading.cjs.map +1 -0
  107. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts +11 -0
  108. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts.map +1 -0
  109. package/dist/components/menu-group-heading/MenuGroupHeading.js +20 -0
  110. package/dist/components/menu-group-heading/MenuGroupHeading.js.map +1 -0
  111. package/dist/components/menu-group-heading/MenuGroupHeading.module.css +1 -0
  112. package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.cjs +2 -0
  113. package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.cjs.map +1 -0
  114. package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.js +8 -0
  115. package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.js.map +1 -0
  116. package/dist/components/menu-group-heading/index.cjs +2 -0
  117. package/dist/components/menu-group-heading/index.cjs.map +1 -0
  118. package/dist/components/menu-group-heading/index.d.ts +3 -0
  119. package/dist/components/menu-group-heading/index.d.ts.map +1 -0
  120. package/dist/components/menu-group-heading/index.js +5 -0
  121. package/dist/components/menu-group-heading/index.js.map +1 -0
  122. package/dist/components/menu-item/MenuItem.cjs.map +1 -1
  123. package/dist/components/menu-item/MenuItem.d.ts +2 -2
  124. package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
  125. package/dist/components/menu-item/MenuItem.js.map +1 -1
  126. package/dist/components/message-separator/MessageSeparator.cjs +1 -1
  127. package/dist/components/message-separator/MessageSeparator.cjs.map +1 -1
  128. package/dist/components/message-separator/MessageSeparator.d.ts +1 -1
  129. package/dist/components/message-separator/MessageSeparator.js +1 -1
  130. package/dist/components/message-separator/MessageSeparator.js.map +1 -1
  131. package/dist/components/modal/Modal.cjs +1 -1
  132. package/dist/components/modal/Modal.cjs.map +1 -1
  133. package/dist/components/modal/Modal.d.ts +43 -11
  134. package/dist/components/modal/Modal.d.ts.map +1 -1
  135. package/dist/components/modal/Modal.js +56 -74
  136. package/dist/components/modal/Modal.js.map +1 -1
  137. package/dist/components/modal/Modal.module.css +1 -1
  138. package/dist/components/modal/Modal.module.scss.cjs +1 -1
  139. package/dist/components/modal/Modal.module.scss.js +12 -25
  140. package/dist/components/modal/Modal.module.scss.js.map +1 -1
  141. package/dist/components/modal/index.d.ts +1 -1
  142. package/dist/components/modal/index.d.ts.map +1 -1
  143. package/dist/components/modal-footer/ModalFooter.cjs +2 -0
  144. package/dist/components/modal-footer/ModalFooter.cjs.map +1 -0
  145. package/dist/components/modal-footer/ModalFooter.d.ts +29 -0
  146. package/dist/components/modal-footer/ModalFooter.d.ts.map +1 -0
  147. package/dist/components/modal-footer/ModalFooter.js +31 -0
  148. package/dist/components/modal-footer/ModalFooter.js.map +1 -0
  149. package/dist/components/modal-footer/ModalFooter.module.css +1 -0
  150. package/dist/components/modal-footer/ModalFooter.module.scss.cjs +2 -0
  151. package/dist/components/modal-footer/ModalFooter.module.scss.cjs.map +1 -0
  152. package/dist/components/modal-footer/ModalFooter.module.scss.js +17 -0
  153. package/dist/components/modal-footer/ModalFooter.module.scss.js.map +1 -0
  154. package/dist/components/modal-footer/index.cjs +2 -0
  155. package/dist/components/modal-footer/index.cjs.map +1 -0
  156. package/dist/components/modal-footer/index.d.ts +3 -0
  157. package/dist/components/modal-footer/index.d.ts.map +1 -0
  158. package/dist/components/modal-footer/index.js +5 -0
  159. package/dist/components/modal-footer/index.js.map +1 -0
  160. package/dist/components/modal-header/ModalHeader.cjs +2 -0
  161. package/dist/components/modal-header/ModalHeader.cjs.map +1 -0
  162. package/dist/components/modal-header/ModalHeader.d.ts +38 -0
  163. package/dist/components/modal-header/ModalHeader.d.ts.map +1 -0
  164. package/dist/components/modal-header/ModalHeader.js +74 -0
  165. package/dist/components/modal-header/ModalHeader.js.map +1 -0
  166. package/dist/components/modal-header/ModalHeader.module.css +1 -0
  167. package/dist/components/modal-header/ModalHeader.module.scss.cjs +2 -0
  168. package/dist/components/modal-header/ModalHeader.module.scss.cjs.map +1 -0
  169. package/dist/components/modal-header/ModalHeader.module.scss.js +19 -0
  170. package/dist/components/modal-header/ModalHeader.module.scss.js.map +1 -0
  171. package/dist/components/modal-header/index.cjs +2 -0
  172. package/dist/components/modal-header/index.cjs.map +1 -0
  173. package/dist/components/modal-header/index.d.ts +3 -0
  174. package/dist/components/modal-header/index.d.ts.map +1 -0
  175. package/dist/components/modal-header/index.js +5 -0
  176. package/dist/components/modal-header/index.js.map +1 -0
  177. package/dist/components/popover-notice/PopoverNotice.cjs.map +1 -1
  178. package/dist/components/popover-notice/PopoverNotice.d.ts +1 -1
  179. package/dist/components/popover-notice/PopoverNotice.d.ts.map +1 -1
  180. package/dist/components/popover-notice/PopoverNotice.js.map +1 -1
  181. package/dist/components/reaction-button/ReactionButton.cjs +2 -0
  182. package/dist/components/reaction-button/ReactionButton.cjs.map +1 -0
  183. package/dist/components/reaction-button/ReactionButton.d.ts +17 -0
  184. package/dist/components/reaction-button/ReactionButton.d.ts.map +1 -0
  185. package/dist/components/reaction-button/ReactionButton.js +42 -0
  186. package/dist/components/reaction-button/ReactionButton.js.map +1 -0
  187. package/dist/components/reaction-button/ReactionButton.module.css +1 -0
  188. package/dist/components/reaction-button/ReactionButton.module.scss.cjs +2 -0
  189. package/dist/components/reaction-button/ReactionButton.module.scss.cjs.map +1 -0
  190. package/dist/components/reaction-button/ReactionButton.module.scss.js +12 -0
  191. package/dist/components/reaction-button/ReactionButton.module.scss.js.map +1 -0
  192. package/dist/components/reaction-button/index.cjs +2 -0
  193. package/dist/components/reaction-button/index.cjs.map +1 -0
  194. package/dist/components/reaction-button/index.d.ts +3 -0
  195. package/dist/components/reaction-button/index.d.ts.map +1 -0
  196. package/dist/components/reaction-button/index.js +5 -0
  197. package/dist/components/reaction-button/index.js.map +1 -0
  198. package/dist/components/reactions-row/ReactionsRow.cjs +2 -0
  199. package/dist/components/reactions-row/ReactionsRow.cjs.map +1 -0
  200. package/dist/components/{message-reactions/MessageReactions.d.ts → reactions-row/ReactionsRow.d.ts} +5 -5
  201. package/dist/components/reactions-row/ReactionsRow.d.ts.map +1 -0
  202. package/dist/components/reactions-row/ReactionsRow.js +71 -0
  203. package/dist/components/reactions-row/ReactionsRow.js.map +1 -0
  204. package/dist/components/reactions-row/ReactionsRow.module.css +1 -0
  205. package/dist/components/reactions-row/ReactionsRow.module.scss.cjs +2 -0
  206. package/dist/components/reactions-row/ReactionsRow.module.scss.cjs.map +1 -0
  207. package/dist/components/reactions-row/ReactionsRow.module.scss.js +14 -0
  208. package/dist/components/reactions-row/ReactionsRow.module.scss.js.map +1 -0
  209. package/dist/components/reactions-row/index.cjs +2 -0
  210. package/dist/components/reactions-row/index.cjs.map +1 -0
  211. package/dist/components/reactions-row/index.d.ts +3 -0
  212. package/dist/components/reactions-row/index.d.ts.map +1 -0
  213. package/dist/components/reactions-row/index.js +5 -0
  214. package/dist/components/reactions-row/index.js.map +1 -0
  215. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs.map +1 -1
  216. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts +1 -1
  217. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts.map +1 -1
  218. package/dist/components/right-sidebar-header/RightSidebarHeader.js.map +1 -1
  219. package/dist/components/section-notice/SectionNotice.cjs.map +1 -1
  220. package/dist/components/section-notice/SectionNotice.d.ts +1 -1
  221. package/dist/components/section-notice/SectionNotice.d.ts.map +1 -1
  222. package/dist/components/section-notice/SectionNotice.js.map +1 -1
  223. package/dist/components/spinner/Spinner.cjs +1 -1
  224. package/dist/components/spinner/Spinner.cjs.map +1 -1
  225. package/dist/components/spinner/Spinner.d.ts +1 -1
  226. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  227. package/dist/components/spinner/Spinner.js +17 -17
  228. package/dist/components/spinner/Spinner.js.map +1 -1
  229. package/dist/components/tag/Tag.cjs.map +1 -1
  230. package/dist/components/tag/Tag.d.ts +1 -1
  231. package/dist/components/tag/Tag.d.ts.map +1 -1
  232. package/dist/components/tag/Tag.js.map +1 -1
  233. package/dist/components/text-input/TextInput.cjs.map +1 -1
  234. package/dist/components/text-input/TextInput.d.ts +1 -1
  235. package/dist/components/text-input/TextInput.d.ts.map +1 -1
  236. package/dist/components/text-input/TextInput.js.map +1 -1
  237. package/dist/components/thread-footer/ThreadFooter.module.css +1 -1
  238. package/dist/components/thread-footer/ThreadFooter.module.scss.cjs +1 -1
  239. package/dist/components/thread-footer/ThreadFooter.module.scss.js +19 -19
  240. package/dist/components/tooltip/Tooltip.cjs.map +1 -1
  241. package/dist/components/tooltip/Tooltip.d.ts +1 -1
  242. package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
  243. package/dist/components/tooltip/Tooltip.js.map +1 -1
  244. package/dist/components/tour-point/TourPoint.module.css +1 -1
  245. package/dist/components/tour-point/TourPoint.module.scss.cjs +1 -1
  246. package/dist/components/tour-point/TourPoint.module.scss.js +28 -28
  247. package/dist/index.cjs +1 -1
  248. package/dist/index.css +24 -8
  249. package/dist/index.d.ts +8 -1
  250. package/dist/index.d.ts.map +1 -1
  251. package/dist/index.js +192 -175
  252. package/dist/index.js.map +1 -1
  253. package/package.json +25 -4
  254. package/dist/components/message-reactions/MessageReactions.cjs +0 -2
  255. package/dist/components/message-reactions/MessageReactions.cjs.map +0 -1
  256. package/dist/components/message-reactions/MessageReactions.d.ts.map +0 -1
  257. package/dist/components/message-reactions/MessageReactions.js +0 -85
  258. package/dist/components/message-reactions/MessageReactions.js.map +0 -1
  259. package/dist/components/message-reactions/MessageReactions.module.css +0 -1
  260. package/dist/components/message-reactions/MessageReactions.module.scss.cjs +0 -2
  261. package/dist/components/message-reactions/MessageReactions.module.scss.cjs.map +0 -1
  262. package/dist/components/message-reactions/MessageReactions.module.scss.js +0 -18
  263. package/dist/components/message-reactions/MessageReactions.module.scss.js.map +0 -1
  264. package/dist/components/message-reactions/index.d.ts +0 -3
  265. package/dist/components/message-reactions/index.d.ts.map +0 -1
  266. package/dist/components/message-reactions/index.js +0 -5
  267. /package/dist/components/{message-reactions → card-button}/index.cjs.map +0 -0
  268. /package/dist/components/{message-reactions → emoji-button}/index.js.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalHeader.js","sources":["../../../src/components/modal-header/ModalHeader.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport ArrowLeftIcon from '@mattermost/compass-icons/components/arrow-left';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport styles from './ModalHeader.module.scss';\n\nexport type ModalSubtitlePlacement = 'below' | 'beside';\n\nexport interface ModalHeaderProps {\n className?: string;\n /** Heading text. Omit (with `hideTitle`) for close-only headers. */\n title?: ReactNode;\n /** Optional secondary text — placement controlled by `subtitlePlacement`. */\n subtitle?: ReactNode;\n /**\n * Where the subtitle sits relative to the title.\n * Figma: Subtitle = Below | Beside. Default: `below`.\n */\n subtitlePlacement?: ModalSubtitlePlacement;\n /** When true, title is visually hidden (close-only chrome; keep `title`/`titleId` for a11y). */\n hideTitle?: boolean;\n /** id for the title element — pair with dialog `aria-labelledby`. */\n titleId?: string;\n /** Back arrow before the title. */\n showBackButton?: boolean;\n onBack?: () => void;\n /** Called when the × is clicked. */\n onClose?: () => void;\n /** Show bottom border. Figma: Divider = On. Default: true. */\n divider?: boolean;\n /**\n * Optional control before close (Figma Controls = Button / Small Input / …).\n * Host owns the Button, TextInput, etc.\n */\n headerAction?: ReactNode;\n}\n\n/**\n * Modal Header — title row, optional subtitle (below or beside), optional back,\n * optional header action, and close. Compose into `Modal` or use standalone.\n *\n * @see https://www.figma.com/design/qdm5tKododENqnTvjLovDT/Patterns---Modals?node-id=789-15921\n */\nexport default function ModalHeader({\n className = '',\n title,\n subtitle,\n subtitlePlacement = 'below',\n hideTitle = false,\n titleId,\n showBackButton = false,\n onBack,\n onClose,\n divider = true,\n headerAction,\n}: ModalHeaderProps) {\n const showTitleBlock = !hideTitle && title != null;\n const showSubtitle = showTitleBlock && subtitle != null;\n const beside = subtitlePlacement === 'beside' && showSubtitle;\n\n return (\n <div\n className={[\n styles['modal-header'],\n !divider && styles['modal-header--no-divider'],\n hideTitle && styles['modal-header--close-only'],\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={styles['modal-header__content']}>\n {showTitleBlock ? (\n <div className={styles['modal-header__titles']}>\n <div className={styles['modal-header__primary']}>\n {showBackButton && (\n <IconButton\n aria-label=\"Go back\"\n icon={<Icon glyph={<ArrowLeftIcon />} size=\"20\" />}\n onClick={onBack}\n />\n )}\n <h2 id={titleId} className={styles['modal-header__title']}>\n {title}\n </h2>\n {beside && (\n <div className={styles['modal-header__subtitle-beside']}>\n <span\n className={styles['modal-header__subtitle-divider']}\n aria-hidden\n />\n <p className={styles['modal-header__subtitle']}>{subtitle}</p>\n </div>\n )}\n </div>\n {showSubtitle && !beside && (\n <p className={styles['modal-header__subtitle']}>{subtitle}</p>\n )}\n </div>\n ) : titleId != null && title != null ? (\n <h2 id={titleId} className={styles['modal-header__title-sr']}>\n {title}\n </h2>\n ) : null}\n\n <div className={styles['modal-header__actions']}>\n {headerAction}\n <IconButton\n aria-label=\"Close\"\n className={styles['modal-header__close']}\n icon={<Icon glyph={<CloseIcon />} size=\"20\" />}\n onClick={onClose}\n />\n </div>\n </div>\n </div>\n );\n}\n"],"names":["ModalHeader","className","title","subtitle","subtitlePlacement","hideTitle","titleId","showBackButton","onBack","onClose","divider","headerAction","showTitleBlock","showSubtitle","beside","jsx","styles","jsxs","IconButton","Icon","ArrowLeftIcon","CloseIcon"],"mappings":";;;;;;AA4CA,SAAwBA,EAAY;AAAA,EAClC,WAAAC,IAAY;AAAA,EACZ,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC,IAAoB;AAAA,EACpB,WAAAC,IAAY;AAAA,EACZ,SAAAC;AAAA,EACA,gBAAAC,IAAiB;AAAA,EACjB,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,cAAAC;AACF,GAAqB;AACnB,QAAMC,IAAiB,CAACP,KAAaH,KAAS,MACxCW,IAAeD,KAAkBT,KAAY,MAC7CW,IAASV,MAAsB,YAAYS;AAEjD,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACTC,EAAO,cAAc;AAAA,QACrB,CAACN,KAAWM,EAAO,0BAA0B;AAAA,QAC7CX,KAAaW,EAAO,0BAA0B;AAAA,QAC9Cf;AAAA,MAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MAEX,UAAA,gBAAAgB,EAAC,OAAA,EAAI,WAAWD,EAAO,uBAAuB,GAC3C,UAAA;AAAA,QAAAJ,IACC,gBAAAK,EAAC,OAAA,EAAI,WAAWD,EAAO,sBAAsB,GAC3C,UAAA;AAAA,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,uBAAuB,GAC3C,UAAA;AAAA,YAAAT,KACC,gBAAAQ;AAAA,cAACG;AAAA,cAAA;AAAA,gBACC,cAAW;AAAA,gBACX,wBAAOC,GAAA,EAAK,yBAAQC,GAAA,EAAc,GAAI,MAAK,MAAK;AAAA,gBAChD,SAASZ;AAAA,cAAA;AAAA,YAAA;AAAA,YAGb,gBAAAO,EAAC,QAAG,IAAIT,GAAS,WAAWU,EAAO,qBAAqB,GACrD,UAAAd,GACH;AAAA,YACCY,KACC,gBAAAG,EAAC,OAAA,EAAI,WAAWD,EAAO,+BAA+B,GACpD,UAAA;AAAA,cAAA,gBAAAD;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAWC,EAAO,gCAAgC;AAAA,kBAClD,eAAW;AAAA,gBAAA;AAAA,cAAA;AAAA,gCAEZ,KAAA,EAAE,WAAWA,EAAO,wBAAwB,GAAI,UAAAb,EAAA,CAAS;AAAA,YAAA,EAAA,CAC5D;AAAA,UAAA,GAEJ;AAAA,UACCU,KAAgB,CAACC,KAChB,gBAAAC,EAAC,OAAE,WAAWC,EAAO,wBAAwB,GAAI,UAAAb,EAAA,CAAS;AAAA,QAAA,EAAA,CAE9D,IACEG,KAAW,QAAQJ,KAAS,OAC9B,gBAAAa,EAAC,MAAA,EAAG,IAAIT,GAAS,WAAWU,EAAO,wBAAwB,GACxD,aACH,IACE;AAAA,QAEJ,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,uBAAuB,GAC3C,UAAA;AAAA,UAAAL;AAAA,UACD,gBAAAI;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,cAAW;AAAA,cACX,WAAWF,EAAO,qBAAqB;AAAA,cACvC,wBAAOG,GAAA,EAAK,yBAAQE,GAAA,EAAU,GAAI,MAAK,MAAK;AAAA,cAC5C,SAASZ;AAAA,YAAA;AAAA,UAAA;AAAA,QACX,EAAA,CACF;AAAA,MAAA,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -0,0 +1 @@
1
+ ._modal-header_1aii1_2{display:flex;flex-direction:column;flex-shrink:0;border-bottom:1px solid rgba(var(--center-channel-color-rgb),.12)}._modal-header--no-divider_1aii1_8{border-bottom:none}._modal-header--no-divider_1aii1_8 ._modal-header__content_1aii1_11{padding-bottom:0}._modal-header--close-only_1aii1_14 ._modal-header__content_1aii1_11{justify-content:flex-end}._modal-header__content_1aii1_11{display:flex;align-items:flex-start;gap:10px;width:100%;padding:var(--spacing-xxl) var(--spacing-xxxl)}._modal-header__titles_1aii1_24{display:flex;flex:1 1 auto;flex-direction:column;align-items:flex-start;gap:var(--spacing-m);min-width:0;padding:var(--spacing-xxxxs) 0}._modal-header__primary_1aii1_33{display:flex;align-items:center;gap:var(--spacing-m);width:100%;min-height:var(--line-height-500)}._modal-header__title_1aii1_24{flex:1 1 auto;min-width:0;margin:0;font-family:var(--font-family-heading);font-size:var(--font-size-500);font-weight:var(--font-weight-semibold);line-height:var(--line-height-500);color:var(--center-channel-color)}._modal-header__title-sr_1aii1_50{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}._modal-header__subtitle_1aii1_61{margin:0;font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-regular);line-height:var(--line-height-75);color:rgba(var(--center-channel-color-rgb),.72)}._modal-header__subtitle-beside_1aii1_69{display:flex;flex-shrink:0;align-items:center;gap:var(--spacing-xs)}._modal-header__subtitle-beside_1aii1_69 ._modal-header__subtitle_1aii1_61{line-height:var(--line-height-200);white-space:nowrap}._modal-header__subtitle-divider_1aii1_79{display:block;width:1px;height:var(--line-height-500);background-color:rgba(var(--center-channel-color-rgb),.16)}._modal-header__actions_1aii1_85{display:flex;flex-shrink:0;align-items:center;justify-content:flex-end;gap:7px;height:28px}._modal-header__close_1aii1_93{margin-right:-12px;margin-top:-6px;margin-bottom:-6px}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ModalHeader.module.css');const e={"modal-header":"_modal-header_1aii1_2","modal-header--no-divider":"_modal-header--no-divider_1aii1_8","modal-header__content":"_modal-header__content_1aii1_11","modal-header--close-only":"_modal-header--close-only_1aii1_14","modal-header__titles":"_modal-header__titles_1aii1_24","modal-header__primary":"_modal-header__primary_1aii1_33","modal-header__title":"_modal-header__title_1aii1_24","modal-header__title-sr":"_modal-header__title-sr_1aii1_50","modal-header__subtitle":"_modal-header__subtitle_1aii1_61","modal-header__subtitle-beside":"_modal-header__subtitle-beside_1aii1_69","modal-header__subtitle-divider":"_modal-header__subtitle-divider_1aii1_79","modal-header__actions":"_modal-header__actions_1aii1_85","modal-header__close":"_modal-header__close_1aii1_93"};exports.default=e;
2
+ //# sourceMappingURL=ModalHeader.module.scss.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalHeader.module.scss.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import './ModalHeader.module.css';const e = {
2
+ "modal-header": "_modal-header_1aii1_2",
3
+ "modal-header--no-divider": "_modal-header--no-divider_1aii1_8",
4
+ "modal-header__content": "_modal-header__content_1aii1_11",
5
+ "modal-header--close-only": "_modal-header--close-only_1aii1_14",
6
+ "modal-header__titles": "_modal-header__titles_1aii1_24",
7
+ "modal-header__primary": "_modal-header__primary_1aii1_33",
8
+ "modal-header__title": "_modal-header__title_1aii1_24",
9
+ "modal-header__title-sr": "_modal-header__title-sr_1aii1_50",
10
+ "modal-header__subtitle": "_modal-header__subtitle_1aii1_61",
11
+ "modal-header__subtitle-beside": "_modal-header__subtitle-beside_1aii1_69",
12
+ "modal-header__subtitle-divider": "_modal-header__subtitle-divider_1aii1_79",
13
+ "modal-header__actions": "_modal-header__actions_1aii1_85",
14
+ "modal-header__close": "_modal-header__close_1aii1_93"
15
+ };
16
+ export {
17
+ e as default
18
+ };
19
+ //# sourceMappingURL=ModalHeader.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalHeader.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./ModalHeader.cjs");exports.ModalHeader=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 ModalHeader } from './ModalHeader';
2
+ export type { ModalHeaderProps, ModalSubtitlePlacement } from './ModalHeader';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/modal-header/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { default as d } from "./ModalHeader.js";
2
+ export {
3
+ d as ModalHeader
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":"PopoverNotice.cjs","sources":["../../../src/components/popover-notice/PopoverNotice.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport InformationOutlineIcon from '@mattermost/compass-icons/components/information-outline';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport AlertCircleOutlineIcon from '@mattermost/compass-icons/components/alert-circle-outline';\nimport AlertOutlineIcon from '@mattermost/compass-icons/components/alert-outline';\nimport Button from '@/components/button/Button';\nimport Checkbox from '@/components/checkbox/Checkbox';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport styles from './PopoverNotice.module.scss';\n\nexport type PopoverNoticeVariant = 'info' | 'success' | 'warning' | 'danger';\n\nexport interface PopoverNoticeAction {\n label: string;\n onClick?: () => void;\n emphasis?: 'primary' | 'tertiary';\n}\n\nexport interface PopoverNoticeProps {\n /** Popover title text. */\n title: string;\n /** Body content. */\n children: ReactNode;\n /**\n * Semantic variant — sets the icon and its color automatically.\n * Ignored if `icon` is also provided.\n */\n variant?: PopoverNoticeVariant;\n /** Optional icon shown to the left of the title. Overrides variant icon. */\n icon?: ReactNode;\n /** Action buttons rendered below the body. */\n actions?: PopoverNoticeAction[];\n /** When true, shows a \"Don't show this again\" checkbox. */\n showCheckbox?: boolean;\n /** Checkbox label override. */\n checkboxLabel?: string;\n /** Callback when close button is clicked. */\n onClose?: () => void;\n /** Optional CSS class name. */\n className?: string;\n}\n\nconst VARIANT_ICONS: Record<PopoverNoticeVariant, ReactNode> = {\n info: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n success: <Icon size=\"20\" glyph={<CheckCircleOutlineIcon />} />,\n warning: <Icon size=\"20\" glyph={<AlertCircleOutlineIcon />} />,\n danger: <Icon size=\"20\" glyph={<AlertOutlineIcon />} />,\n};\n\nconst VARIANT_ICON_CLASS: Record<PopoverNoticeVariant, string> = {\n info: styles['popover-notice__icon--info'],\n success: styles['popover-notice__icon--success'],\n warning: styles['popover-notice__icon--warning'],\n danger: styles['popover-notice__icon--danger'],\n};\n\n/**\n * Popover Notice is a small overlay card that surfaces a transient message — a tip, a\n * confirmation, a warning — without taking over the screen. Think of it as a [Section\n * Notice](/components/section-notice) that floats: shorter, dismissable, and gone in five\n * seconds unless the user engages.\n */\nexport default function PopoverNotice({\n title,\n children,\n variant,\n icon,\n actions,\n showCheckbox = false,\n checkboxLabel = \"Don't show this confirmation again\",\n onClose,\n className = '',\n}: PopoverNoticeProps) {\n const rootClass = [styles['popover-notice'], className]\n .filter(Boolean)\n .join(' ');\n\n const resolvedIcon = icon ?? (variant ? VARIANT_ICONS[variant] : null);\n const iconColorClass = !icon && variant ? VARIANT_ICON_CLASS[variant] : '';\n\n return (\n <div className={rootClass}>\n <div className={styles['popover-notice__content']}>\n {resolvedIcon != null && (\n <div\n className={[styles['popover-notice__icon'], iconColorClass]\n .filter(Boolean)\n .join(' ')}\n aria-hidden\n >\n {resolvedIcon}\n </div>\n )}\n\n <div className={styles['popover-notice__body']}>\n <div className={styles['popover-notice__title-row']}>\n <span className={styles['popover-notice__title']}>{title}</span>\n </div>\n\n <div className={styles['popover-notice__description']}>\n {children}\n </div>\n\n {actions && actions.length > 0 && (\n <div className={styles['popover-notice__actions']}>\n {actions.map((action, i) => (\n <Button\n key={i}\n emphasis={action.emphasis ?? 'primary'}\n size=\"small\"\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ))}\n </div>\n )}\n\n {showCheckbox && <Checkbox size=\"medium\">{checkboxLabel}</Checkbox>}\n </div>\n </div>\n\n {onClose && (\n <IconButton\n className={styles['popover-notice__close']}\n aria-label=\"Close\"\n size=\"small\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onClose}\n />\n )}\n </div>\n );\n}\n"],"names":["VARIANT_ICONS","Icon","jsx","InformationOutlineIcon","CheckCircleOutlineIcon","AlertCircleOutlineIcon","AlertOutlineIcon","VARIANT_ICON_CLASS","styles","PopoverNotice","title","children","variant","icon","actions","showCheckbox","checkboxLabel","onClose","className","rootClass","resolvedIcon","iconColorClass","jsxs","action","i","Button","Checkbox","IconButton","CloseIcon"],"mappings":"0pBA4CMA,EAAyD,CAC7D,WAAOC,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACC,IAAuB,EAAI,EACzD,cAAUF,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACE,IAAuB,EAAI,EAC5D,cAAUH,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACG,IAAuB,EAAI,EAC5D,aAASJ,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOC,EAAAA,IAACI,IAAiB,CAAA,CAAI,CACvD,EAEMC,EAA2D,CAC/D,KAAMC,EAAAA,QAAO,4BAA4B,EACzC,QAASA,EAAAA,QAAO,+BAA+B,EAC/C,QAASA,EAAAA,QAAO,+BAA+B,EAC/C,OAAQA,EAAAA,QAAO,8BAA8B,CAC/C,EAQA,SAAwBC,EAAc,CACpC,MAAAC,EACA,SAAAC,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EACA,aAAAC,EAAe,GACf,cAAAC,EAAgB,qCAChB,QAAAC,EACA,UAAAC,EAAY,EACd,EAAuB,CACrB,MAAMC,EAAY,CAACX,UAAO,gBAAgB,EAAGU,CAAS,EACnD,OAAO,OAAO,EACd,KAAK,GAAG,EAELE,EAAeP,IAASD,EAAUZ,EAAcY,CAAO,EAAI,MAC3DS,EAAiB,CAACR,GAAQD,EAAUL,EAAmBK,CAAO,EAAI,GAExE,OACEU,EAAAA,KAAC,MAAA,CAAI,UAAWH,EACd,SAAA,CAAAG,EAAAA,KAAC,MAAA,CAAI,UAAWd,EAAAA,QAAO,yBAAyB,EAC7C,SAAA,CAAAY,GAAgB,MACflB,EAAAA,IAAC,MAAA,CACC,UAAW,CAACM,UAAO,sBAAsB,EAAGa,CAAc,EACvD,OAAO,OAAO,EACd,KAAK,GAAG,EACX,cAAW,GAEV,SAAAD,CAAA,CAAA,EAILE,EAAAA,KAAC,MAAA,CAAI,UAAWd,EAAAA,QAAO,sBAAsB,EAC3C,SAAA,CAAAN,EAAAA,IAAC,MAAA,CAAI,UAAWM,EAAAA,QAAO,2BAA2B,EAChD,SAAAN,EAAAA,IAAC,OAAA,CAAK,UAAWM,EAAAA,QAAO,uBAAuB,EAAI,SAAAE,CAAA,CAAM,EAC3D,QAEC,MAAA,CAAI,UAAWF,EAAAA,QAAO,6BAA6B,EACjD,SAAAG,EACH,EAECG,GAAWA,EAAQ,OAAS,SAC1B,MAAA,CAAI,UAAWN,EAAAA,QAAO,yBAAyB,EAC7C,SAAAM,EAAQ,IAAI,CAACS,EAAQC,IACpBtB,EAAAA,IAACuB,EAAAA,QAAA,CAEC,SAAUF,EAAO,UAAY,UAC7B,KAAK,QACL,QAASA,EAAO,QAEf,SAAAA,EAAO,KAAA,EALHC,CAAA,CAOR,EACH,EAGDT,GAAgBb,EAAAA,IAACwB,UAAA,CAAS,KAAK,SAAU,SAAAV,CAAA,CAAc,CAAA,CAAA,CAC1D,CAAA,EACF,EAECC,GACCf,EAAAA,IAACyB,EAAAA,QAAA,CACC,UAAWnB,EAAAA,QAAO,uBAAuB,EACzC,aAAW,QACX,KAAK,QACL,WAAOP,UAAA,CAAK,KAAK,KAAK,MAAOC,MAAC0B,IAAU,EAAI,EAC5C,QAASX,CAAA,CAAA,CACX,EAEJ,CAEJ"}
1
+ {"version":3,"file":"PopoverNotice.cjs","sources":["../../../src/components/popover-notice/PopoverNotice.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport InformationOutlineIcon from '@mattermost/compass-icons/components/information-outline';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport AlertCircleOutlineIcon from '@mattermost/compass-icons/components/alert-circle-outline';\nimport AlertOutlineIcon from '@mattermost/compass-icons/components/alert-outline';\nimport Button from '@/components/button/Button';\nimport Checkbox from '@/components/checkbox/Checkbox';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport styles from './PopoverNotice.module.scss';\n\nexport type PopoverNoticeVariant = 'info' | 'success' | 'warning' | 'danger';\n\nexport interface PopoverNoticeAction {\n label: string;\n onClick?: () => void;\n emphasis?: 'primary' | 'tertiary';\n}\n\nexport interface PopoverNoticeProps {\n /** Popover title text. */\n title: string;\n /** Body content. */\n children: ReactNode;\n /**\n * Semantic variant — sets the icon and its color automatically.\n * Ignored if `icon` is also provided.\n */\n variant?: PopoverNoticeVariant;\n /** Optional icon shown to the left of the title. Overrides the variant icon. Pass `<Icon glyph={<SomeIcon />} size=\"20\" />` — the slot does not resize raw SVG children. */\n icon?: ReactNode;\n /** Action buttons rendered below the body. */\n actions?: PopoverNoticeAction[];\n /** When true, shows a \"Don't show this again\" checkbox. */\n showCheckbox?: boolean;\n /** Checkbox label override. */\n checkboxLabel?: string;\n /** Callback when close button is clicked. */\n onClose?: () => void;\n /** Optional CSS class name. */\n className?: string;\n}\n\nconst VARIANT_ICONS: Record<PopoverNoticeVariant, ReactNode> = {\n info: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n success: <Icon size=\"20\" glyph={<CheckCircleOutlineIcon />} />,\n warning: <Icon size=\"20\" glyph={<AlertCircleOutlineIcon />} />,\n danger: <Icon size=\"20\" glyph={<AlertOutlineIcon />} />,\n};\n\nconst VARIANT_ICON_CLASS: Record<PopoverNoticeVariant, string> = {\n info: styles['popover-notice__icon--info'],\n success: styles['popover-notice__icon--success'],\n warning: styles['popover-notice__icon--warning'],\n danger: styles['popover-notice__icon--danger'],\n};\n\n/**\n * Popover Notice is a small overlay card that surfaces a transient message — a tip, a\n * confirmation, a warning — without taking over the screen. Think of it as a [Section\n * Notice](/components/section-notice) that floats: shorter, dismissable, and gone in five\n * seconds unless the user engages.\n */\nexport default function PopoverNotice({\n title,\n children,\n variant,\n icon,\n actions,\n showCheckbox = false,\n checkboxLabel = \"Don't show this confirmation again\",\n onClose,\n className = '',\n}: PopoverNoticeProps) {\n const rootClass = [styles['popover-notice'], className]\n .filter(Boolean)\n .join(' ');\n\n const resolvedIcon = icon ?? (variant ? VARIANT_ICONS[variant] : null);\n const iconColorClass = !icon && variant ? VARIANT_ICON_CLASS[variant] : '';\n\n return (\n <div className={rootClass}>\n <div className={styles['popover-notice__content']}>\n {resolvedIcon != null && (\n <div\n className={[styles['popover-notice__icon'], iconColorClass]\n .filter(Boolean)\n .join(' ')}\n aria-hidden\n >\n {resolvedIcon}\n </div>\n )}\n\n <div className={styles['popover-notice__body']}>\n <div className={styles['popover-notice__title-row']}>\n <span className={styles['popover-notice__title']}>{title}</span>\n </div>\n\n <div className={styles['popover-notice__description']}>\n {children}\n </div>\n\n {actions && actions.length > 0 && (\n <div className={styles['popover-notice__actions']}>\n {actions.map((action, i) => (\n <Button\n key={i}\n emphasis={action.emphasis ?? 'primary'}\n size=\"small\"\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ))}\n </div>\n )}\n\n {showCheckbox && <Checkbox size=\"medium\">{checkboxLabel}</Checkbox>}\n </div>\n </div>\n\n {onClose && (\n <IconButton\n className={styles['popover-notice__close']}\n aria-label=\"Close\"\n size=\"small\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onClose}\n />\n )}\n </div>\n );\n}\n"],"names":["VARIANT_ICONS","Icon","jsx","InformationOutlineIcon","CheckCircleOutlineIcon","AlertCircleOutlineIcon","AlertOutlineIcon","VARIANT_ICON_CLASS","styles","PopoverNotice","title","children","variant","icon","actions","showCheckbox","checkboxLabel","onClose","className","rootClass","resolvedIcon","iconColorClass","jsxs","action","i","Button","Checkbox","IconButton","CloseIcon"],"mappings":"0pBA4CMA,EAAyD,CAC7D,WAAOC,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACC,IAAuB,EAAI,EACzD,cAAUF,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACE,IAAuB,EAAI,EAC5D,cAAUH,UAAA,CAAK,KAAK,KAAK,MAAOC,MAACG,IAAuB,EAAI,EAC5D,aAASJ,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOC,EAAAA,IAACI,IAAiB,CAAA,CAAI,CACvD,EAEMC,EAA2D,CAC/D,KAAMC,EAAAA,QAAO,4BAA4B,EACzC,QAASA,EAAAA,QAAO,+BAA+B,EAC/C,QAASA,EAAAA,QAAO,+BAA+B,EAC/C,OAAQA,EAAAA,QAAO,8BAA8B,CAC/C,EAQA,SAAwBC,EAAc,CACpC,MAAAC,EACA,SAAAC,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EACA,aAAAC,EAAe,GACf,cAAAC,EAAgB,qCAChB,QAAAC,EACA,UAAAC,EAAY,EACd,EAAuB,CACrB,MAAMC,EAAY,CAACX,UAAO,gBAAgB,EAAGU,CAAS,EACnD,OAAO,OAAO,EACd,KAAK,GAAG,EAELE,EAAeP,IAASD,EAAUZ,EAAcY,CAAO,EAAI,MAC3DS,EAAiB,CAACR,GAAQD,EAAUL,EAAmBK,CAAO,EAAI,GAExE,OACEU,EAAAA,KAAC,MAAA,CAAI,UAAWH,EACd,SAAA,CAAAG,EAAAA,KAAC,MAAA,CAAI,UAAWd,EAAAA,QAAO,yBAAyB,EAC7C,SAAA,CAAAY,GAAgB,MACflB,EAAAA,IAAC,MAAA,CACC,UAAW,CAACM,UAAO,sBAAsB,EAAGa,CAAc,EACvD,OAAO,OAAO,EACd,KAAK,GAAG,EACX,cAAW,GAEV,SAAAD,CAAA,CAAA,EAILE,EAAAA,KAAC,MAAA,CAAI,UAAWd,EAAAA,QAAO,sBAAsB,EAC3C,SAAA,CAAAN,EAAAA,IAAC,MAAA,CAAI,UAAWM,EAAAA,QAAO,2BAA2B,EAChD,SAAAN,EAAAA,IAAC,OAAA,CAAK,UAAWM,EAAAA,QAAO,uBAAuB,EAAI,SAAAE,CAAA,CAAM,EAC3D,QAEC,MAAA,CAAI,UAAWF,EAAAA,QAAO,6BAA6B,EACjD,SAAAG,EACH,EAECG,GAAWA,EAAQ,OAAS,SAC1B,MAAA,CAAI,UAAWN,EAAAA,QAAO,yBAAyB,EAC7C,SAAAM,EAAQ,IAAI,CAACS,EAAQC,IACpBtB,EAAAA,IAACuB,EAAAA,QAAA,CAEC,SAAUF,EAAO,UAAY,UAC7B,KAAK,QACL,QAASA,EAAO,QAEf,SAAAA,EAAO,KAAA,EALHC,CAAA,CAOR,EACH,EAGDT,GAAgBb,EAAAA,IAACwB,UAAA,CAAS,KAAK,SAAU,SAAAV,CAAA,CAAc,CAAA,CAAA,CAC1D,CAAA,EACF,EAECC,GACCf,EAAAA,IAACyB,EAAAA,QAAA,CACC,UAAWnB,EAAAA,QAAO,uBAAuB,EACzC,aAAW,QACX,KAAK,QACL,WAAOP,UAAA,CAAK,KAAK,KAAK,MAAOC,MAAC0B,IAAU,EAAI,EAC5C,QAASX,CAAA,CAAA,CACX,EAEJ,CAEJ"}
@@ -15,7 +15,7 @@ export interface PopoverNoticeProps {
15
15
  * Ignored if `icon` is also provided.
16
16
  */
17
17
  variant?: PopoverNoticeVariant;
18
- /** Optional icon shown to the left of the title. Overrides variant icon. */
18
+ /** Optional icon shown to the left of the title. Overrides the variant icon. Pass `<Icon glyph={<SomeIcon />} size="20" />` — the slot does not resize raw SVG children. */
19
19
  icon?: ReactNode;
20
20
  /** Action buttons rendered below the body. */
21
21
  actions?: PopoverNoticeAction[];
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverNotice.d.ts","sourceRoot":"","sources":["../../../src/components/popover-notice/PopoverNotice.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAYvC,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,4EAA4E;IAC5E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC,2DAA2D;IAC3D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgBD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,KAAK,EACL,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,OAAO,EACP,YAAoB,EACpB,aAAoD,EACpD,OAAO,EACP,SAAc,GACf,EAAE,kBAAkB,2CA6DpB"}
1
+ {"version":3,"file":"PopoverNotice.d.ts","sourceRoot":"","sources":["../../../src/components/popover-notice/PopoverNotice.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAYvC,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,4KAA4K;IAC5K,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC,2DAA2D;IAC3D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgBD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,KAAK,EACL,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,OAAO,EACP,YAAoB,EACpB,aAAoD,EACpD,OAAO,EACP,SAAc,GACf,EAAE,kBAAkB,2CA6DpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"PopoverNotice.js","sources":["../../../src/components/popover-notice/PopoverNotice.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport InformationOutlineIcon from '@mattermost/compass-icons/components/information-outline';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport AlertCircleOutlineIcon from '@mattermost/compass-icons/components/alert-circle-outline';\nimport AlertOutlineIcon from '@mattermost/compass-icons/components/alert-outline';\nimport Button from '@/components/button/Button';\nimport Checkbox from '@/components/checkbox/Checkbox';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport styles from './PopoverNotice.module.scss';\n\nexport type PopoverNoticeVariant = 'info' | 'success' | 'warning' | 'danger';\n\nexport interface PopoverNoticeAction {\n label: string;\n onClick?: () => void;\n emphasis?: 'primary' | 'tertiary';\n}\n\nexport interface PopoverNoticeProps {\n /** Popover title text. */\n title: string;\n /** Body content. */\n children: ReactNode;\n /**\n * Semantic variant — sets the icon and its color automatically.\n * Ignored if `icon` is also provided.\n */\n variant?: PopoverNoticeVariant;\n /** Optional icon shown to the left of the title. Overrides variant icon. */\n icon?: ReactNode;\n /** Action buttons rendered below the body. */\n actions?: PopoverNoticeAction[];\n /** When true, shows a \"Don't show this again\" checkbox. */\n showCheckbox?: boolean;\n /** Checkbox label override. */\n checkboxLabel?: string;\n /** Callback when close button is clicked. */\n onClose?: () => void;\n /** Optional CSS class name. */\n className?: string;\n}\n\nconst VARIANT_ICONS: Record<PopoverNoticeVariant, ReactNode> = {\n info: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n success: <Icon size=\"20\" glyph={<CheckCircleOutlineIcon />} />,\n warning: <Icon size=\"20\" glyph={<AlertCircleOutlineIcon />} />,\n danger: <Icon size=\"20\" glyph={<AlertOutlineIcon />} />,\n};\n\nconst VARIANT_ICON_CLASS: Record<PopoverNoticeVariant, string> = {\n info: styles['popover-notice__icon--info'],\n success: styles['popover-notice__icon--success'],\n warning: styles['popover-notice__icon--warning'],\n danger: styles['popover-notice__icon--danger'],\n};\n\n/**\n * Popover Notice is a small overlay card that surfaces a transient message — a tip, a\n * confirmation, a warning — without taking over the screen. Think of it as a [Section\n * Notice](/components/section-notice) that floats: shorter, dismissable, and gone in five\n * seconds unless the user engages.\n */\nexport default function PopoverNotice({\n title,\n children,\n variant,\n icon,\n actions,\n showCheckbox = false,\n checkboxLabel = \"Don't show this confirmation again\",\n onClose,\n className = '',\n}: PopoverNoticeProps) {\n const rootClass = [styles['popover-notice'], className]\n .filter(Boolean)\n .join(' ');\n\n const resolvedIcon = icon ?? (variant ? VARIANT_ICONS[variant] : null);\n const iconColorClass = !icon && variant ? VARIANT_ICON_CLASS[variant] : '';\n\n return (\n <div className={rootClass}>\n <div className={styles['popover-notice__content']}>\n {resolvedIcon != null && (\n <div\n className={[styles['popover-notice__icon'], iconColorClass]\n .filter(Boolean)\n .join(' ')}\n aria-hidden\n >\n {resolvedIcon}\n </div>\n )}\n\n <div className={styles['popover-notice__body']}>\n <div className={styles['popover-notice__title-row']}>\n <span className={styles['popover-notice__title']}>{title}</span>\n </div>\n\n <div className={styles['popover-notice__description']}>\n {children}\n </div>\n\n {actions && actions.length > 0 && (\n <div className={styles['popover-notice__actions']}>\n {actions.map((action, i) => (\n <Button\n key={i}\n emphasis={action.emphasis ?? 'primary'}\n size=\"small\"\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ))}\n </div>\n )}\n\n {showCheckbox && <Checkbox size=\"medium\">{checkboxLabel}</Checkbox>}\n </div>\n </div>\n\n {onClose && (\n <IconButton\n className={styles['popover-notice__close']}\n aria-label=\"Close\"\n size=\"small\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onClose}\n />\n )}\n </div>\n );\n}\n"],"names":["VARIANT_ICONS","Icon","jsx","InformationOutlineIcon","CheckCircleOutlineIcon","AlertCircleOutlineIcon","AlertOutlineIcon","VARIANT_ICON_CLASS","styles","PopoverNotice","title","children","variant","icon","actions","showCheckbox","checkboxLabel","onClose","className","rootClass","resolvedIcon","iconColorClass","jsxs","action","i","Button","Checkbox","IconButton","CloseIcon"],"mappings":";;;;;;;;;;;AA4CA,MAAMA,IAAyD;AAAA,EAC7D,wBAAOC,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACC,KAAuB,GAAI;AAAA,EACzD,2BAAUF,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACE,KAAuB,GAAI;AAAA,EAC5D,2BAAUH,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACG,KAAuB,GAAI;AAAA,EAC5D,0BAASJ,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACI,KAAiB,EAAA,CAAI;AACvD,GAEMC,IAA2D;AAAA,EAC/D,MAAMC,EAAO,4BAA4B;AAAA,EACzC,SAASA,EAAO,+BAA+B;AAAA,EAC/C,SAASA,EAAO,+BAA+B;AAAA,EAC/C,QAAQA,EAAO,8BAA8B;AAC/C;AAQA,SAAwBC,EAAc;AAAA,EACpC,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,eAAAC,IAAgB;AAAA,EAChB,SAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAuB;AACrB,QAAMC,IAAY,CAACX,EAAO,gBAAgB,GAAGU,CAAS,EACnD,OAAO,OAAO,EACd,KAAK,GAAG,GAELE,IAAeP,MAASD,IAAUZ,EAAcY,CAAO,IAAI,OAC3DS,IAAiB,CAACR,KAAQD,IAAUL,EAAmBK,CAAO,IAAI;AAExE,SACE,gBAAAU,EAAC,OAAA,EAAI,WAAWH,GACd,UAAA;AAAA,IAAA,gBAAAG,EAAC,OAAA,EAAI,WAAWd,EAAO,yBAAyB,GAC7C,UAAA;AAAA,MAAAY,KAAgB,QACf,gBAAAlB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,CAACM,EAAO,sBAAsB,GAAGa,CAAc,EACvD,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,UACX,eAAW;AAAA,UAEV,UAAAD;AAAA,QAAA;AAAA,MAAA;AAAA,MAIL,gBAAAE,EAAC,OAAA,EAAI,WAAWd,EAAO,sBAAsB,GAC3C,UAAA;AAAA,QAAA,gBAAAN,EAAC,OAAA,EAAI,WAAWM,EAAO,2BAA2B,GAChD,UAAA,gBAAAN,EAAC,QAAA,EAAK,WAAWM,EAAO,uBAAuB,GAAI,UAAAE,EAAA,CAAM,GAC3D;AAAA,0BAEC,OAAA,EAAI,WAAWF,EAAO,6BAA6B,GACjD,UAAAG,GACH;AAAA,QAECG,KAAWA,EAAQ,SAAS,uBAC1B,OAAA,EAAI,WAAWN,EAAO,yBAAyB,GAC7C,UAAAM,EAAQ,IAAI,CAACS,GAAQC,MACpB,gBAAAtB;AAAA,UAACuB;AAAA,UAAA;AAAA,YAEC,UAAUF,EAAO,YAAY;AAAA,YAC7B,MAAK;AAAA,YACL,SAASA,EAAO;AAAA,YAEf,UAAAA,EAAO;AAAA,UAAA;AAAA,UALHC;AAAA,QAAA,CAOR,GACH;AAAA,QAGDT,KAAgB,gBAAAb,EAACwB,GAAA,EAAS,MAAK,UAAU,UAAAV,EAAA,CAAc;AAAA,MAAA,EAAA,CAC1D;AAAA,IAAA,GACF;AAAA,IAECC,KACC,gBAAAf;AAAA,MAACyB;AAAA,MAAA;AAAA,QACC,WAAWnB,EAAO,uBAAuB;AAAA,QACzC,cAAW;AAAA,QACX,MAAK;AAAA,QACL,wBAAOP,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAAC0B,KAAU,GAAI;AAAA,QAC5C,SAASX;AAAA,MAAA;AAAA,IAAA;AAAA,EACX,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"PopoverNotice.js","sources":["../../../src/components/popover-notice/PopoverNotice.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport InformationOutlineIcon from '@mattermost/compass-icons/components/information-outline';\nimport CheckCircleOutlineIcon from '@mattermost/compass-icons/components/check-circle-outline';\nimport AlertCircleOutlineIcon from '@mattermost/compass-icons/components/alert-circle-outline';\nimport AlertOutlineIcon from '@mattermost/compass-icons/components/alert-outline';\nimport Button from '@/components/button/Button';\nimport Checkbox from '@/components/checkbox/Checkbox';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport styles from './PopoverNotice.module.scss';\n\nexport type PopoverNoticeVariant = 'info' | 'success' | 'warning' | 'danger';\n\nexport interface PopoverNoticeAction {\n label: string;\n onClick?: () => void;\n emphasis?: 'primary' | 'tertiary';\n}\n\nexport interface PopoverNoticeProps {\n /** Popover title text. */\n title: string;\n /** Body content. */\n children: ReactNode;\n /**\n * Semantic variant — sets the icon and its color automatically.\n * Ignored if `icon` is also provided.\n */\n variant?: PopoverNoticeVariant;\n /** Optional icon shown to the left of the title. Overrides the variant icon. Pass `<Icon glyph={<SomeIcon />} size=\"20\" />` — the slot does not resize raw SVG children. */\n icon?: ReactNode;\n /** Action buttons rendered below the body. */\n actions?: PopoverNoticeAction[];\n /** When true, shows a \"Don't show this again\" checkbox. */\n showCheckbox?: boolean;\n /** Checkbox label override. */\n checkboxLabel?: string;\n /** Callback when close button is clicked. */\n onClose?: () => void;\n /** Optional CSS class name. */\n className?: string;\n}\n\nconst VARIANT_ICONS: Record<PopoverNoticeVariant, ReactNode> = {\n info: <Icon size=\"20\" glyph={<InformationOutlineIcon />} />,\n success: <Icon size=\"20\" glyph={<CheckCircleOutlineIcon />} />,\n warning: <Icon size=\"20\" glyph={<AlertCircleOutlineIcon />} />,\n danger: <Icon size=\"20\" glyph={<AlertOutlineIcon />} />,\n};\n\nconst VARIANT_ICON_CLASS: Record<PopoverNoticeVariant, string> = {\n info: styles['popover-notice__icon--info'],\n success: styles['popover-notice__icon--success'],\n warning: styles['popover-notice__icon--warning'],\n danger: styles['popover-notice__icon--danger'],\n};\n\n/**\n * Popover Notice is a small overlay card that surfaces a transient message — a tip, a\n * confirmation, a warning — without taking over the screen. Think of it as a [Section\n * Notice](/components/section-notice) that floats: shorter, dismissable, and gone in five\n * seconds unless the user engages.\n */\nexport default function PopoverNotice({\n title,\n children,\n variant,\n icon,\n actions,\n showCheckbox = false,\n checkboxLabel = \"Don't show this confirmation again\",\n onClose,\n className = '',\n}: PopoverNoticeProps) {\n const rootClass = [styles['popover-notice'], className]\n .filter(Boolean)\n .join(' ');\n\n const resolvedIcon = icon ?? (variant ? VARIANT_ICONS[variant] : null);\n const iconColorClass = !icon && variant ? VARIANT_ICON_CLASS[variant] : '';\n\n return (\n <div className={rootClass}>\n <div className={styles['popover-notice__content']}>\n {resolvedIcon != null && (\n <div\n className={[styles['popover-notice__icon'], iconColorClass]\n .filter(Boolean)\n .join(' ')}\n aria-hidden\n >\n {resolvedIcon}\n </div>\n )}\n\n <div className={styles['popover-notice__body']}>\n <div className={styles['popover-notice__title-row']}>\n <span className={styles['popover-notice__title']}>{title}</span>\n </div>\n\n <div className={styles['popover-notice__description']}>\n {children}\n </div>\n\n {actions && actions.length > 0 && (\n <div className={styles['popover-notice__actions']}>\n {actions.map((action, i) => (\n <Button\n key={i}\n emphasis={action.emphasis ?? 'primary'}\n size=\"small\"\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ))}\n </div>\n )}\n\n {showCheckbox && <Checkbox size=\"medium\">{checkboxLabel}</Checkbox>}\n </div>\n </div>\n\n {onClose && (\n <IconButton\n className={styles['popover-notice__close']}\n aria-label=\"Close\"\n size=\"small\"\n icon={<Icon size=\"16\" glyph={<CloseIcon />} />}\n onClick={onClose}\n />\n )}\n </div>\n );\n}\n"],"names":["VARIANT_ICONS","Icon","jsx","InformationOutlineIcon","CheckCircleOutlineIcon","AlertCircleOutlineIcon","AlertOutlineIcon","VARIANT_ICON_CLASS","styles","PopoverNotice","title","children","variant","icon","actions","showCheckbox","checkboxLabel","onClose","className","rootClass","resolvedIcon","iconColorClass","jsxs","action","i","Button","Checkbox","IconButton","CloseIcon"],"mappings":";;;;;;;;;;;AA4CA,MAAMA,IAAyD;AAAA,EAC7D,wBAAOC,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACC,KAAuB,GAAI;AAAA,EACzD,2BAAUF,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACE,KAAuB,GAAI;AAAA,EAC5D,2BAAUH,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACG,KAAuB,GAAI;AAAA,EAC5D,0BAASJ,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAACI,KAAiB,EAAA,CAAI;AACvD,GAEMC,IAA2D;AAAA,EAC/D,MAAMC,EAAO,4BAA4B;AAAA,EACzC,SAASA,EAAO,+BAA+B;AAAA,EAC/C,SAASA,EAAO,+BAA+B;AAAA,EAC/C,QAAQA,EAAO,8BAA8B;AAC/C;AAQA,SAAwBC,EAAc;AAAA,EACpC,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,eAAAC,IAAgB;AAAA,EAChB,SAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAuB;AACrB,QAAMC,IAAY,CAACX,EAAO,gBAAgB,GAAGU,CAAS,EACnD,OAAO,OAAO,EACd,KAAK,GAAG,GAELE,IAAeP,MAASD,IAAUZ,EAAcY,CAAO,IAAI,OAC3DS,IAAiB,CAACR,KAAQD,IAAUL,EAAmBK,CAAO,IAAI;AAExE,SACE,gBAAAU,EAAC,OAAA,EAAI,WAAWH,GACd,UAAA;AAAA,IAAA,gBAAAG,EAAC,OAAA,EAAI,WAAWd,EAAO,yBAAyB,GAC7C,UAAA;AAAA,MAAAY,KAAgB,QACf,gBAAAlB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,CAACM,EAAO,sBAAsB,GAAGa,CAAc,EACvD,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,UACX,eAAW;AAAA,UAEV,UAAAD;AAAA,QAAA;AAAA,MAAA;AAAA,MAIL,gBAAAE,EAAC,OAAA,EAAI,WAAWd,EAAO,sBAAsB,GAC3C,UAAA;AAAA,QAAA,gBAAAN,EAAC,OAAA,EAAI,WAAWM,EAAO,2BAA2B,GAChD,UAAA,gBAAAN,EAAC,QAAA,EAAK,WAAWM,EAAO,uBAAuB,GAAI,UAAAE,EAAA,CAAM,GAC3D;AAAA,0BAEC,OAAA,EAAI,WAAWF,EAAO,6BAA6B,GACjD,UAAAG,GACH;AAAA,QAECG,KAAWA,EAAQ,SAAS,uBAC1B,OAAA,EAAI,WAAWN,EAAO,yBAAyB,GAC7C,UAAAM,EAAQ,IAAI,CAACS,GAAQC,MACpB,gBAAAtB;AAAA,UAACuB;AAAA,UAAA;AAAA,YAEC,UAAUF,EAAO,YAAY;AAAA,YAC7B,MAAK;AAAA,YACL,SAASA,EAAO;AAAA,YAEf,UAAAA,EAAO;AAAA,UAAA;AAAA,UALHC;AAAA,QAAA,CAOR,GACH;AAAA,QAGDT,KAAgB,gBAAAb,EAACwB,GAAA,EAAS,MAAK,UAAU,UAAAV,EAAA,CAAc;AAAA,MAAA,EAAA,CAC1D;AAAA,IAAA,GACF;AAAA,IAECC,KACC,gBAAAf;AAAA,MAACyB;AAAA,MAAA;AAAA,QACC,WAAWnB,EAAO,uBAAuB;AAAA,QACzC,cAAW;AAAA,QACX,MAAK;AAAA,QACL,wBAAOP,GAAA,EAAK,MAAK,MAAK,OAAO,gBAAAC,EAAC0B,KAAU,GAAI;AAAA,QAC5C,SAASX;AAAA,MAAA;AAAA,IAAA;AAAA,EACX,GAEJ;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react/jsx-runtime"),n=require("react"),t=require("./ReactionButton.module.scss.cjs");function b({emoji:a,count:e,byCurrentUser:i=!1,className:l="",onClick:d,...f}){const o=n.useRef(e),u=n.useRef(void 0),[s,c]=n.useState(null);n.useEffect(()=>(e!==o.current&&(clearTimeout(u.current),c(e>o.current?"up":"down"),o.current=e,u.current=setTimeout(()=>c(null),300)),()=>clearTimeout(u.current)),[e]);const m=[t.default["reaction-button"],i?t.default["reaction-button--mine"]:"",l].filter(Boolean).join(" "),_=[t.default["reaction-button__count"],s==="up"?t.default["reaction-button__count--anim-up"]:"",s==="down"?t.default["reaction-button__count--anim-down"]:""].filter(Boolean).join(" ");return r.jsxs("button",{type:"button",className:m,onClick:d,"aria-label":`${a} ${e} reaction${e!==1?"s":""}`,"aria-pressed":i,...f,children:[r.jsx("span",{className:t.default["reaction-button__emoji"],"aria-hidden":!0,children:a}),r.jsx("span",{className:_,children:e})]})}exports.default=b;
2
+ //# sourceMappingURL=ReactionButton.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactionButton.cjs","sources":["../../../src/components/reaction-button/ReactionButton.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { ButtonHTMLAttributes } from 'react';\nimport styles from './ReactionButton.module.scss';\n\nexport interface ReactionButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** The emoji character to display. */\n emoji: string;\n /** Number of users who reacted with this emoji. */\n count: number;\n /** Whether the current user has reacted with this emoji. */\n byCurrentUser?: boolean;\n}\n\n/**\n * A single emoji reaction button — shows the emoji, count, and highlights when the current user\n * has reacted. Fires onClick when clicked; the host owns toggle logic.\n *\n * The count animates up or down when the `count` prop changes.\n */\nexport default function ReactionButton({\n emoji,\n count,\n byCurrentUser = false,\n className = '',\n onClick,\n ...rest\n}: ReactionButtonProps) {\n const prevCountRef = useRef(count);\n const timerRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n const [countAnim, setCountAnim] = useState<'up' | 'down' | null>(null);\n\n useEffect(() => {\n if (count !== prevCountRef.current) {\n clearTimeout(timerRef.current);\n setCountAnim(count > prevCountRef.current ? 'up' : 'down');\n prevCountRef.current = count;\n timerRef.current = setTimeout(() => setCountAnim(null), 300);\n }\n return () => clearTimeout(timerRef.current);\n }, [count]);\n\n const rootClass = [\n styles['reaction-button'],\n byCurrentUser ? styles['reaction-button--mine'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const countClass = [\n styles['reaction-button__count'],\n countAnim === 'up' ? styles['reaction-button__count--anim-up'] : '',\n countAnim === 'down' ? styles['reaction-button__count--anim-down'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n type=\"button\"\n className={rootClass}\n onClick={onClick}\n aria-label={`${emoji} ${count} reaction${count !== 1 ? 's' : ''}`}\n aria-pressed={byCurrentUser}\n {...rest}\n >\n <span className={styles['reaction-button__emoji']} aria-hidden>\n {emoji}\n </span>\n <span className={countClass}>{count}</span>\n </button>\n );\n}\n"],"names":["ReactionButton","emoji","count","byCurrentUser","className","onClick","rest","prevCountRef","useRef","timerRef","countAnim","setCountAnim","useState","useEffect","rootClass","styles","countClass","jsxs","jsx"],"mappings":"kNAmBA,SAAwBA,EAAe,CACrC,MAAAC,EACA,MAAAC,EACA,cAAAC,EAAgB,GAChB,UAAAC,EAAY,GACZ,QAAAC,EACA,GAAGC,CACL,EAAwB,CACtB,MAAMC,EAAeC,EAAAA,OAAON,CAAK,EAC3BO,EAAWD,EAAAA,OAAsC,MAAS,EAC1D,CAACE,EAAWC,CAAY,EAAIC,EAAAA,SAA+B,IAAI,EAErEC,EAAAA,UAAU,KACJX,IAAUK,EAAa,UACzB,aAAaE,EAAS,OAAO,EAC7BE,EAAaT,EAAQK,EAAa,QAAU,KAAO,MAAM,EACzDA,EAAa,QAAUL,EACvBO,EAAS,QAAU,WAAW,IAAME,EAAa,IAAI,EAAG,GAAG,GAEtD,IAAM,aAAaF,EAAS,OAAO,GACzC,CAACP,CAAK,CAAC,EAEV,MAAMY,EAAY,CAChBC,EAAAA,QAAO,iBAAiB,EACxBZ,EAAgBY,EAAAA,QAAO,uBAAuB,EAAI,GAClDX,CAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EAELY,EAAa,CACjBD,EAAAA,QAAO,wBAAwB,EAC/BL,IAAc,KAAOK,UAAO,iCAAiC,EAAI,GACjEL,IAAc,OAASK,UAAO,mCAAmC,EAAI,EAAA,EAEpE,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEE,EAAAA,KAAC,SAAA,CACC,KAAK,SACL,UAAWH,EACX,QAAAT,EACA,aAAY,GAAGJ,CAAK,IAAIC,CAAK,YAAYA,IAAU,EAAI,IAAM,EAAE,GAC/D,eAAcC,EACb,GAAGG,EAEJ,SAAA,CAAAY,EAAAA,IAAC,QAAK,UAAWH,UAAO,wBAAwB,EAAG,cAAW,GAC3D,SAAAd,EACH,EACAiB,EAAAA,IAAC,OAAA,CAAK,UAAWF,EAAa,SAAAd,CAAA,CAAM,CAAA,CAAA,CAAA,CAG1C"}
@@ -0,0 +1,17 @@
1
+ import { ButtonHTMLAttributes } from 'react';
2
+ export interface ReactionButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
3
+ /** The emoji character to display. */
4
+ emoji: string;
5
+ /** Number of users who reacted with this emoji. */
6
+ count: number;
7
+ /** Whether the current user has reacted with this emoji. */
8
+ byCurrentUser?: boolean;
9
+ }
10
+ /**
11
+ * A single emoji reaction button — shows the emoji, count, and highlights when the current user
12
+ * has reacted. Fires onClick when clicked; the host owns toggle logic.
13
+ *
14
+ * The count animates up or down when the `count` prop changes.
15
+ */
16
+ export default function ReactionButton({ emoji, count, byCurrentUser, className, onClick, ...rest }: ReactionButtonProps): import("react/jsx-runtime").JSX.Element;
17
+ //# sourceMappingURL=ReactionButton.d.ts.map
@@ -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":";"}