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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/dist/components/action-button/ActionButton.cjs.map +1 -1
  2. package/dist/components/action-button/ActionButton.d.ts +1 -0
  3. package/dist/components/action-button/ActionButton.d.ts.map +1 -1
  4. package/dist/components/action-button/ActionButton.js.map +1 -1
  5. package/dist/components/admin-panel/AdminPanel.cjs.map +1 -1
  6. package/dist/components/admin-panel/AdminPanel.d.ts +1 -0
  7. package/dist/components/admin-panel/AdminPanel.d.ts.map +1 -1
  8. package/dist/components/admin-panel/AdminPanel.js.map +1 -1
  9. package/dist/components/admin-panel-header/AdminPanelHeader.cjs.map +1 -1
  10. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts +1 -0
  11. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts.map +1 -1
  12. package/dist/components/admin-panel-header/AdminPanelHeader.js.map +1 -1
  13. package/dist/components/button/Button.cjs +1 -1
  14. package/dist/components/button/Button.cjs.map +1 -1
  15. package/dist/components/button/Button.d.ts +2 -2
  16. package/dist/components/button/Button.d.ts.map +1 -1
  17. package/dist/components/button/Button.js +24 -24
  18. package/dist/components/button/Button.js.map +1 -1
  19. package/dist/components/button/Button.module.css +1 -1
  20. package/dist/components/button/Button.module.scss.cjs +1 -1
  21. package/dist/components/button/Button.module.scss.js +13 -12
  22. package/dist/components/button/Button.module.scss.js.map +1 -1
  23. package/dist/components/card-button/CardButton.cjs +2 -0
  24. package/dist/components/card-button/CardButton.cjs.map +1 -0
  25. package/dist/components/card-button/CardButton.d.ts +20 -0
  26. package/dist/components/card-button/CardButton.d.ts.map +1 -0
  27. package/dist/components/card-button/CardButton.js +45 -0
  28. package/dist/components/card-button/CardButton.js.map +1 -0
  29. package/dist/components/card-button/CardButton.module.css +1 -0
  30. package/dist/components/card-button/CardButton.module.scss.cjs +2 -0
  31. package/dist/components/card-button/CardButton.module.scss.cjs.map +1 -0
  32. package/dist/components/card-button/CardButton.module.scss.js +13 -0
  33. package/dist/components/card-button/CardButton.module.scss.js.map +1 -0
  34. package/dist/components/card-button/CardButtonGroup.cjs +2 -0
  35. package/dist/components/card-button/CardButtonGroup.cjs.map +1 -0
  36. package/dist/components/card-button/CardButtonGroup.d.ts +13 -0
  37. package/dist/components/card-button/CardButtonGroup.d.ts.map +1 -0
  38. package/dist/components/card-button/CardButtonGroup.js +85 -0
  39. package/dist/components/card-button/CardButtonGroup.js.map +1 -0
  40. package/dist/components/card-button/CardButtonGroup.module.css +1 -0
  41. package/dist/components/card-button/CardButtonGroup.module.scss.cjs +2 -0
  42. package/dist/components/card-button/CardButtonGroup.module.scss.cjs.map +1 -0
  43. package/dist/components/card-button/CardButtonGroup.module.scss.js +7 -0
  44. package/dist/components/card-button/CardButtonGroup.module.scss.js.map +1 -0
  45. package/dist/components/card-button/index.cjs +2 -0
  46. package/dist/components/card-button/index.d.ts +5 -0
  47. package/dist/components/card-button/index.d.ts.map +1 -0
  48. package/dist/components/card-button/index.js +7 -0
  49. package/dist/components/card-button/index.js.map +1 -0
  50. package/dist/components/emoji-button/EmojiButton.cjs +2 -0
  51. package/dist/components/emoji-button/EmojiButton.cjs.map +1 -0
  52. package/dist/components/emoji-button/EmojiButton.d.ts +30 -0
  53. package/dist/components/emoji-button/EmojiButton.d.ts.map +1 -0
  54. package/dist/components/emoji-button/EmojiButton.js +35 -0
  55. package/dist/components/emoji-button/EmojiButton.js.map +1 -0
  56. package/dist/components/emoji-button/EmojiButton.module.css +1 -0
  57. package/dist/components/emoji-button/EmojiButton.module.scss.cjs +2 -0
  58. package/dist/components/emoji-button/EmojiButton.module.scss.cjs.map +1 -0
  59. package/dist/components/emoji-button/EmojiButton.module.scss.js +15 -0
  60. package/dist/components/emoji-button/EmojiButton.module.scss.js.map +1 -0
  61. package/dist/components/emoji-button/index.cjs +2 -0
  62. package/dist/components/emoji-button/index.cjs.map +1 -0
  63. package/dist/components/emoji-button/index.d.ts +3 -0
  64. package/dist/components/emoji-button/index.d.ts.map +1 -0
  65. package/dist/components/emoji-button/index.js +6 -0
  66. package/dist/components/emoji-popover/EmojiPopover.cjs +2 -0
  67. package/dist/components/emoji-popover/EmojiPopover.cjs.map +1 -0
  68. package/dist/components/emoji-popover/EmojiPopover.d.ts +34 -0
  69. package/dist/components/emoji-popover/EmojiPopover.d.ts.map +1 -0
  70. package/dist/components/emoji-popover/EmojiPopover.js +244 -0
  71. package/dist/components/emoji-popover/EmojiPopover.js.map +1 -0
  72. package/dist/components/emoji-popover/EmojiPopover.module.css +1 -0
  73. package/dist/components/emoji-popover/EmojiPopover.module.scss.cjs +2 -0
  74. package/dist/components/emoji-popover/EmojiPopover.module.scss.cjs.map +1 -0
  75. package/dist/components/emoji-popover/EmojiPopover.module.scss.js +27 -0
  76. package/dist/components/emoji-popover/EmojiPopover.module.scss.js.map +1 -0
  77. package/dist/components/{message-reactions → emoji-popover}/index.cjs +1 -1
  78. package/dist/components/emoji-popover/index.cjs.map +1 -0
  79. package/dist/components/emoji-popover/index.d.ts +3 -0
  80. package/dist/components/emoji-popover/index.d.ts.map +1 -0
  81. package/dist/components/emoji-popover/index.js +5 -0
  82. package/dist/components/emoji-popover/index.js.map +1 -0
  83. package/dist/components/global-banner/GlobalBanner.cjs.map +1 -1
  84. package/dist/components/global-banner/GlobalBanner.d.ts +1 -1
  85. package/dist/components/global-banner/GlobalBanner.d.ts.map +1 -1
  86. package/dist/components/global-banner/GlobalBanner.js.map +1 -1
  87. package/dist/components/global-header/GlobalHeader.module.css +1 -1
  88. package/dist/components/global-header/GlobalHeader.module.scss.cjs +1 -1
  89. package/dist/components/global-header/GlobalHeader.module.scss.js +16 -16
  90. package/dist/components/menu-group-heading/MenuGroupHeading.cjs +2 -0
  91. package/dist/components/menu-group-heading/MenuGroupHeading.cjs.map +1 -0
  92. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts +11 -0
  93. package/dist/components/menu-group-heading/MenuGroupHeading.d.ts.map +1 -0
  94. package/dist/components/menu-group-heading/MenuGroupHeading.js +20 -0
  95. package/dist/components/menu-group-heading/MenuGroupHeading.js.map +1 -0
  96. package/dist/components/menu-group-heading/MenuGroupHeading.module.css +1 -0
  97. package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.cjs +2 -0
  98. package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.cjs.map +1 -0
  99. package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.js +8 -0
  100. package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.js.map +1 -0
  101. package/dist/components/menu-group-heading/index.cjs +2 -0
  102. package/dist/components/menu-group-heading/index.cjs.map +1 -0
  103. package/dist/components/menu-group-heading/index.d.ts +3 -0
  104. package/dist/components/menu-group-heading/index.d.ts.map +1 -0
  105. package/dist/components/menu-group-heading/index.js +5 -0
  106. package/dist/components/menu-group-heading/index.js.map +1 -0
  107. package/dist/components/menu-item/MenuItem.cjs.map +1 -1
  108. package/dist/components/menu-item/MenuItem.d.ts +2 -2
  109. package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
  110. package/dist/components/menu-item/MenuItem.js.map +1 -1
  111. package/dist/components/message-separator/MessageSeparator.cjs +1 -1
  112. package/dist/components/message-separator/MessageSeparator.cjs.map +1 -1
  113. package/dist/components/message-separator/MessageSeparator.d.ts +1 -1
  114. package/dist/components/message-separator/MessageSeparator.js +1 -1
  115. package/dist/components/message-separator/MessageSeparator.js.map +1 -1
  116. package/dist/components/modal/Modal.cjs +1 -1
  117. package/dist/components/modal/Modal.cjs.map +1 -1
  118. package/dist/components/modal/Modal.d.ts +43 -11
  119. package/dist/components/modal/Modal.d.ts.map +1 -1
  120. package/dist/components/modal/Modal.js +56 -74
  121. package/dist/components/modal/Modal.js.map +1 -1
  122. package/dist/components/modal/Modal.module.css +1 -1
  123. package/dist/components/modal/Modal.module.scss.cjs +1 -1
  124. package/dist/components/modal/Modal.module.scss.js +12 -25
  125. package/dist/components/modal/Modal.module.scss.js.map +1 -1
  126. package/dist/components/modal/index.d.ts +1 -1
  127. package/dist/components/modal/index.d.ts.map +1 -1
  128. package/dist/components/modal-footer/ModalFooter.cjs +2 -0
  129. package/dist/components/modal-footer/ModalFooter.cjs.map +1 -0
  130. package/dist/components/modal-footer/ModalFooter.d.ts +29 -0
  131. package/dist/components/modal-footer/ModalFooter.d.ts.map +1 -0
  132. package/dist/components/modal-footer/ModalFooter.js +31 -0
  133. package/dist/components/modal-footer/ModalFooter.js.map +1 -0
  134. package/dist/components/modal-footer/ModalFooter.module.css +1 -0
  135. package/dist/components/modal-footer/ModalFooter.module.scss.cjs +2 -0
  136. package/dist/components/modal-footer/ModalFooter.module.scss.cjs.map +1 -0
  137. package/dist/components/modal-footer/ModalFooter.module.scss.js +17 -0
  138. package/dist/components/modal-footer/ModalFooter.module.scss.js.map +1 -0
  139. package/dist/components/modal-footer/index.cjs +2 -0
  140. package/dist/components/modal-footer/index.cjs.map +1 -0
  141. package/dist/components/modal-footer/index.d.ts +3 -0
  142. package/dist/components/modal-footer/index.d.ts.map +1 -0
  143. package/dist/components/modal-footer/index.js +5 -0
  144. package/dist/components/modal-footer/index.js.map +1 -0
  145. package/dist/components/modal-header/ModalHeader.cjs +2 -0
  146. package/dist/components/modal-header/ModalHeader.cjs.map +1 -0
  147. package/dist/components/modal-header/ModalHeader.d.ts +38 -0
  148. package/dist/components/modal-header/ModalHeader.d.ts.map +1 -0
  149. package/dist/components/modal-header/ModalHeader.js +74 -0
  150. package/dist/components/modal-header/ModalHeader.js.map +1 -0
  151. package/dist/components/modal-header/ModalHeader.module.css +1 -0
  152. package/dist/components/modal-header/ModalHeader.module.scss.cjs +2 -0
  153. package/dist/components/modal-header/ModalHeader.module.scss.cjs.map +1 -0
  154. package/dist/components/modal-header/ModalHeader.module.scss.js +19 -0
  155. package/dist/components/modal-header/ModalHeader.module.scss.js.map +1 -0
  156. package/dist/components/modal-header/index.cjs +2 -0
  157. package/dist/components/modal-header/index.cjs.map +1 -0
  158. package/dist/components/modal-header/index.d.ts +3 -0
  159. package/dist/components/modal-header/index.d.ts.map +1 -0
  160. package/dist/components/modal-header/index.js +5 -0
  161. package/dist/components/modal-header/index.js.map +1 -0
  162. package/dist/components/popover-notice/PopoverNotice.cjs.map +1 -1
  163. package/dist/components/popover-notice/PopoverNotice.d.ts +1 -1
  164. package/dist/components/popover-notice/PopoverNotice.d.ts.map +1 -1
  165. package/dist/components/popover-notice/PopoverNotice.js.map +1 -1
  166. package/dist/components/reaction-button/ReactionButton.cjs +2 -0
  167. package/dist/components/reaction-button/ReactionButton.cjs.map +1 -0
  168. package/dist/components/reaction-button/ReactionButton.d.ts +17 -0
  169. package/dist/components/reaction-button/ReactionButton.d.ts.map +1 -0
  170. package/dist/components/reaction-button/ReactionButton.js +42 -0
  171. package/dist/components/reaction-button/ReactionButton.js.map +1 -0
  172. package/dist/components/reaction-button/ReactionButton.module.css +1 -0
  173. package/dist/components/reaction-button/ReactionButton.module.scss.cjs +2 -0
  174. package/dist/components/reaction-button/ReactionButton.module.scss.cjs.map +1 -0
  175. package/dist/components/reaction-button/ReactionButton.module.scss.js +12 -0
  176. package/dist/components/reaction-button/ReactionButton.module.scss.js.map +1 -0
  177. package/dist/components/reaction-button/index.cjs +2 -0
  178. package/dist/components/reaction-button/index.cjs.map +1 -0
  179. package/dist/components/reaction-button/index.d.ts +3 -0
  180. package/dist/components/reaction-button/index.d.ts.map +1 -0
  181. package/dist/components/reaction-button/index.js +5 -0
  182. package/dist/components/reaction-button/index.js.map +1 -0
  183. package/dist/components/reactions-row/ReactionsRow.cjs +2 -0
  184. package/dist/components/reactions-row/ReactionsRow.cjs.map +1 -0
  185. package/dist/components/{message-reactions/MessageReactions.d.ts → reactions-row/ReactionsRow.d.ts} +5 -5
  186. package/dist/components/reactions-row/ReactionsRow.d.ts.map +1 -0
  187. package/dist/components/reactions-row/ReactionsRow.js +71 -0
  188. package/dist/components/reactions-row/ReactionsRow.js.map +1 -0
  189. package/dist/components/reactions-row/ReactionsRow.module.css +1 -0
  190. package/dist/components/reactions-row/ReactionsRow.module.scss.cjs +2 -0
  191. package/dist/components/reactions-row/ReactionsRow.module.scss.cjs.map +1 -0
  192. package/dist/components/reactions-row/ReactionsRow.module.scss.js +14 -0
  193. package/dist/components/reactions-row/ReactionsRow.module.scss.js.map +1 -0
  194. package/dist/components/reactions-row/index.cjs +2 -0
  195. package/dist/components/reactions-row/index.cjs.map +1 -0
  196. package/dist/components/reactions-row/index.d.ts +3 -0
  197. package/dist/components/reactions-row/index.d.ts.map +1 -0
  198. package/dist/components/reactions-row/index.js +5 -0
  199. package/dist/components/reactions-row/index.js.map +1 -0
  200. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs.map +1 -1
  201. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts +1 -1
  202. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts.map +1 -1
  203. package/dist/components/right-sidebar-header/RightSidebarHeader.js.map +1 -1
  204. package/dist/components/section-notice/SectionNotice.cjs.map +1 -1
  205. package/dist/components/section-notice/SectionNotice.d.ts +1 -1
  206. package/dist/components/section-notice/SectionNotice.d.ts.map +1 -1
  207. package/dist/components/section-notice/SectionNotice.js.map +1 -1
  208. package/dist/components/tag/Tag.cjs.map +1 -1
  209. package/dist/components/tag/Tag.d.ts +1 -1
  210. package/dist/components/tag/Tag.d.ts.map +1 -1
  211. package/dist/components/tag/Tag.js.map +1 -1
  212. package/dist/components/text-input/TextInput.cjs.map +1 -1
  213. package/dist/components/text-input/TextInput.d.ts +1 -1
  214. package/dist/components/text-input/TextInput.d.ts.map +1 -1
  215. package/dist/components/text-input/TextInput.js.map +1 -1
  216. package/dist/components/thread-footer/ThreadFooter.module.css +1 -1
  217. package/dist/components/thread-footer/ThreadFooter.module.scss.cjs +1 -1
  218. package/dist/components/thread-footer/ThreadFooter.module.scss.js +19 -19
  219. package/dist/components/tooltip/Tooltip.cjs.map +1 -1
  220. package/dist/components/tooltip/Tooltip.d.ts +1 -1
  221. package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
  222. package/dist/components/tooltip/Tooltip.js.map +1 -1
  223. package/dist/components/tour-point/TourPoint.module.css +1 -1
  224. package/dist/components/tour-point/TourPoint.module.scss.cjs +1 -1
  225. package/dist/components/tour-point/TourPoint.module.scss.js +28 -28
  226. package/dist/index.cjs +1 -1
  227. package/dist/index.css +23 -7
  228. package/dist/index.d.ts +8 -1
  229. package/dist/index.d.ts.map +1 -1
  230. package/dist/index.js +192 -175
  231. package/dist/index.js.map +1 -1
  232. package/package.json +25 -4
  233. package/dist/components/message-reactions/MessageReactions.cjs +0 -2
  234. package/dist/components/message-reactions/MessageReactions.cjs.map +0 -1
  235. package/dist/components/message-reactions/MessageReactions.d.ts.map +0 -1
  236. package/dist/components/message-reactions/MessageReactions.js +0 -85
  237. package/dist/components/message-reactions/MessageReactions.js.map +0 -1
  238. package/dist/components/message-reactions/MessageReactions.module.css +0 -1
  239. package/dist/components/message-reactions/MessageReactions.module.scss.cjs +0 -2
  240. package/dist/components/message-reactions/MessageReactions.module.scss.cjs.map +0 -1
  241. package/dist/components/message-reactions/MessageReactions.module.scss.js +0 -18
  242. package/dist/components/message-reactions/MessageReactions.module.scss.js.map +0 -1
  243. package/dist/components/message-reactions/index.d.ts +0 -3
  244. package/dist/components/message-reactions/index.d.ts.map +0 -1
  245. package/dist/components/message-reactions/index.js +0 -5
  246. /package/dist/components/{message-reactions → card-button}/index.cjs.map +0 -0
  247. /package/dist/components/{message-reactions → emoji-button}/index.js.map +0 -0
@@ -0,0 +1,244 @@
1
+ import { jsxs as n, jsx as o, Fragment as X } from "react/jsx-runtime";
2
+ import { useState as t, useRef as _, useId as Y, useEffect as Z } from "react";
3
+ import __ee from "@mattermost/compass-icons/components/close.js";const ee=__ee&&__ee.default?__ee.default:__ee;
4
+ import oe from "../button/Button.js";
5
+ import ie from "../emoji/Emoji.js";
6
+ import j from "../emoji-button/EmojiButton.js";
7
+ import re from "../empty-state/EmptyState.js";
8
+ import M from "../icon/Icon.js";
9
+ import x from "../icon-button/IconButton.js";
10
+ import O from "../menu-group-heading/MenuGroupHeading.js";
11
+ import ne from "../scrollbar/Scrollbar.js";
12
+ import se from "../search-input/SearchInput.js";
13
+ import le from "../../illustrations/search.svg.js";
14
+ import i from "./EmojiPopover.module.scss.js";
15
+ const P = ["🖐️", "🖐🏻", "🖐🏼", "🖐🏽", "🖐🏾", "🖐🏿"], ae = ["", "🏻", "🏼", "🏽", "🏾", "🏿"], te = /* @__PURE__ */ new Set([
16
+ "👋",
17
+ "🤚",
18
+ "✋",
19
+ "🖐️",
20
+ "🖖",
21
+ "👌",
22
+ "🤌",
23
+ "🤏",
24
+ "✌️",
25
+ "🤞",
26
+ "🫰",
27
+ "🤟",
28
+ "🤘",
29
+ "🤙",
30
+ "👈",
31
+ "👉",
32
+ "👆",
33
+ "👇",
34
+ "☝️",
35
+ "🫵",
36
+ "👍",
37
+ "👎",
38
+ "✊",
39
+ "👊",
40
+ "🤛",
41
+ "🤜",
42
+ "👏",
43
+ "🙌",
44
+ "🫶",
45
+ "👐",
46
+ "🤲",
47
+ "🙏",
48
+ "💅",
49
+ "🤳",
50
+ "💪",
51
+ "🦵",
52
+ "🦶",
53
+ "👂",
54
+ "🦻",
55
+ "👃"
56
+ ]);
57
+ function ce(c, s) {
58
+ return !s || !te.has(c) ? c : c.replace("️", "") + s;
59
+ }
60
+ function Ce({
61
+ className: c = "",
62
+ categories: s,
63
+ shortcodes: m = {},
64
+ defaultQuery: D = "",
65
+ autoFocus: k = !1,
66
+ onEmojiSelect: d,
67
+ onSearch: u,
68
+ onCustomEmojiClick: g,
69
+ customEmojiLabel: H = "Custom emoji"
70
+ }) {
71
+ var R;
72
+ const [l, $] = t(D), [A, F] = t(((R = s[0]) == null ? void 0 : R.id) ?? ""), [N, y] = t(null), [K, I] = t(null), [v, L] = t(0), [a, h] = t(!1), S = _(null), C = `${Y()}-skin-tone-picker`, Q = ae[v], b = _(null), w = _({});
73
+ Z(() => {
74
+ var e;
75
+ k && ((e = S.current) == null || e.focus());
76
+ }, [k]);
77
+ const B = (e) => {
78
+ $(e), u == null || u(e);
79
+ }, q = [...new Set(s.flatMap((e) => e.emojis))], T = l ? q.filter((e) => (m[e] ?? "").includes(l.toLowerCase()) || e === l) : [], f = l ? T.length > 0 ? "search-results" : "empty" : "default";
80
+ function G(e) {
81
+ return m[e] ? `:${m[e]}:` : e;
82
+ }
83
+ function V(e) {
84
+ const r = w.current[e], p = b.current;
85
+ if (!r || !p) return;
86
+ const W = r.getBoundingClientRect().top - p.getBoundingClientRect().top + p.scrollTop;
87
+ p.scrollTo({ top: W, behavior: "smooth" });
88
+ }
89
+ const J = [i["emoji-popover"], c].filter(Boolean).join(" "), U = {
90
+ "aria-label": "",
91
+ width: "80px",
92
+ height: "60px",
93
+ children: /* @__PURE__ */ o(le, {})
94
+ }, E = (e) => {
95
+ const r = ce(e, Q);
96
+ return /* @__PURE__ */ o(
97
+ j,
98
+ {
99
+ emoji: r,
100
+ size: "medium",
101
+ padding: "compact",
102
+ "aria-label": r,
103
+ onMouseEnter: () => {
104
+ y(r), I(e);
105
+ },
106
+ onMouseLeave: () => {
107
+ y(null), I(null);
108
+ },
109
+ onClick: () => d == null ? void 0 : d(r)
110
+ },
111
+ e
112
+ );
113
+ }, z = () => f === "empty" ? /* @__PURE__ */ o(
114
+ re,
115
+ {
116
+ illustration: U,
117
+ title: "No emojis found",
118
+ description: "Try a different search term."
119
+ }
120
+ ) : f === "search-results" ? /* @__PURE__ */ o("div", { className: i["emoji-popover__emoji-list"], children: /* @__PURE__ */ n("div", { className: i["emoji-popover__group"], children: [
121
+ /* @__PURE__ */ o(O, { label: "Search Results" }),
122
+ /* @__PURE__ */ o("div", { className: i["emoji-popover__emoji-row"], children: T.map(E) })
123
+ ] }) }) : /* @__PURE__ */ o("div", { className: i["emoji-popover__emoji-list"], children: s.map((e) => /* @__PURE__ */ n("div", { ref: (r) => {
124
+ w.current[e.id] = r;
125
+ }, className: i["emoji-popover__group"], children: [
126
+ /* @__PURE__ */ o(O, { label: e.label }),
127
+ /* @__PURE__ */ o(
128
+ "div",
129
+ {
130
+ className: [
131
+ i["emoji-popover__emoji-row"],
132
+ e.wrap === !1 ? i["emoji-popover__emoji-row--nowrap"] : ""
133
+ ].filter(Boolean).join(" "),
134
+ children: e.emojis.map(E)
135
+ }
136
+ )
137
+ ] }, e.id)) });
138
+ return /* @__PURE__ */ n("div", { className: J, children: [
139
+ /* @__PURE__ */ n("div", { className: i["emoji-popover__header"], children: [
140
+ /* @__PURE__ */ n("div", { className: i["emoji-popover__header-panels"], children: [
141
+ /* @__PURE__ */ o(
142
+ "div",
143
+ {
144
+ className: [
145
+ i["emoji-popover__header-main"],
146
+ a ? i["emoji-popover__header-main--hidden"] : ""
147
+ ].filter(Boolean).join(" "),
148
+ inert: a,
149
+ "aria-hidden": a || void 0,
150
+ children: /* @__PURE__ */ n("div", { className: i["emoji-popover__search-row"], children: [
151
+ /* @__PURE__ */ o(
152
+ se,
153
+ {
154
+ ref: S,
155
+ placeholder: "Search emojis",
156
+ size: "small",
157
+ className: i["emoji-popover__search-input"],
158
+ value: l,
159
+ onChange: (e) => B(e.target.value),
160
+ onClear: () => B("")
161
+ }
162
+ ),
163
+ !l && /* @__PURE__ */ o(
164
+ j,
165
+ {
166
+ emoji: P[v],
167
+ size: "small",
168
+ "aria-label": "Select skin tone",
169
+ "aria-expanded": a,
170
+ "aria-controls": C,
171
+ onClick: () => h(!0)
172
+ }
173
+ )
174
+ ] })
175
+ }
176
+ ),
177
+ /* @__PURE__ */ n(
178
+ "div",
179
+ {
180
+ id: C,
181
+ className: [
182
+ i["emoji-popover__skin-tone-picker"],
183
+ a ? i["emoji-popover__skin-tone-picker--visible"] : ""
184
+ ].filter(Boolean).join(" "),
185
+ inert: !a,
186
+ "aria-hidden": !a || void 0,
187
+ children: [
188
+ /* @__PURE__ */ o("span", { className: i["emoji-popover__skin-tone-label"], children: "Skin tone" }),
189
+ /* @__PURE__ */ o("div", { className: i["emoji-popover__skin-tone-options"], children: P.map((e, r) => /* @__PURE__ */ o(
190
+ j,
191
+ {
192
+ emoji: e,
193
+ size: "small",
194
+ toggled: v === r,
195
+ "aria-label": r === 0 ? "Default skin tone" : `Skin tone ${r}`,
196
+ onClick: () => {
197
+ L(r), h(!1);
198
+ }
199
+ },
200
+ r
201
+ )) }),
202
+ /* @__PURE__ */ o(
203
+ x,
204
+ {
205
+ size: "small",
206
+ padding: "compact",
207
+ icon: /* @__PURE__ */ o(M, { glyph: /* @__PURE__ */ o(ee, {}), size: "16" }),
208
+ "aria-label": "Close skin tone picker",
209
+ onClick: () => h(!1)
210
+ }
211
+ )
212
+ ]
213
+ }
214
+ )
215
+ ] }),
216
+ !l && /* @__PURE__ */ o("div", { className: i["emoji-popover__categories"], children: s.map((e) => /* @__PURE__ */ o(
217
+ x,
218
+ {
219
+ size: "small",
220
+ padding: "compact",
221
+ icon: /* @__PURE__ */ o(M, { glyph: /* @__PURE__ */ o(e.icon, {}), size: "16" }),
222
+ "aria-label": e.label,
223
+ active: A === e.id,
224
+ onClick: () => {
225
+ F(e.id), V(e.id);
226
+ }
227
+ },
228
+ e.id
229
+ )) })
230
+ ] }),
231
+ /* @__PURE__ */ o("div", { className: i["emoji-popover__scroll-view"], children: f === "empty" ? z() : /* @__PURE__ */ o(ne, { alwaysVisible: !0, ref: b, children: z() }) }),
232
+ /* @__PURE__ */ n("div", { className: i["emoji-popover__footer"], children: [
233
+ /* @__PURE__ */ o("div", { className: i["emoji-popover__footer-preview"], children: N ? /* @__PURE__ */ n(X, { children: [
234
+ /* @__PURE__ */ o(ie, { emoji: N, size: "32" }),
235
+ /* @__PURE__ */ o("span", { className: i["emoji-popover__footer-shortcode"], children: G(K ?? "") })
236
+ ] }) : /* @__PURE__ */ o("span", { className: i["emoji-popover__footer-hint"], children: "Select an Emoji" }) }),
237
+ g && /* @__PURE__ */ o(oe, { emphasis: "tertiary", size: "small", onClick: g, children: H })
238
+ ] })
239
+ ] });
240
+ }
241
+ export {
242
+ Ce as default
243
+ };
244
+ //# sourceMappingURL=EmojiPopover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiPopover.js","sources":["../../../src/components/emoji-popover/EmojiPopover.tsx"],"sourcesContent":["import { useEffect, useId, useRef, useState } from 'react';\nimport type { ComponentType } from 'react';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport Button from '@/components/button/Button';\nimport Emoji from '@/components/emoji/Emoji';\nimport EmojiButton from '@/components/emoji-button/EmojiButton';\nimport EmptyState from '@/components/empty-state/EmptyState';\nimport Icon from '@/components/icon/Icon';\nimport IconButton from '@/components/icon-button/IconButton';\nimport MenuGroupHeading from '@/components/menu-group-heading/MenuGroupHeading';\nimport Scrollbar from '@/components/scrollbar/Scrollbar';\nimport SearchInput from '@/components/search-input/SearchInput';\nimport SearchIllustration from '@/illustrations/search';\nimport styles from './EmojiPopover.module.scss';\n\nexport interface EmojiCategory {\n id: string;\n label: string;\n /** Icon component rendered in the category navigation bar. */\n icon: ComponentType;\n emojis: string[];\n /** When false the row does not wrap (e.g. Recently Used). @default true */\n wrap?: boolean;\n}\n\nexport interface EmojiPopoverProps {\n className?: string;\n /** Emoji categories to display, supplied by the host. */\n categories: EmojiCategory[];\n /** Map of base emoji → shortcode name used for footer display. */\n shortcodes?: Record<string, string>;\n /** Pre-seeds the search field. Useful for static specimen demos. */\n defaultQuery?: string;\n /** Focus the search field on mount. */\n autoFocus?: boolean;\n /** Called with the selected emoji character. */\n onEmojiSelect?: (emoji: string) => void;\n /**\n * Called on every query change. Use this to trigger async custom-emoji\n * searches on the host side; local filtering over `categories` always runs.\n */\n onSearch?: (query: string) => void;\n /** Shows a tertiary button in the footer right. Omit to hide the button. */\n onCustomEmojiClick?: () => void;\n /** Label for the custom emoji button. @default 'Custom emoji' */\n customEmojiLabel?: string;\n}\n\nconst SKIN_TONES = ['🖐️', '🖐🏻', '🖐🏼', '🖐🏽', '🖐🏾', '🖐🏿'];\nconst SKIN_TONE_MODIFIERS = ['', '\\u{1F3FB}', '\\u{1F3FC}', '\\u{1F3FD}', '\\u{1F3FE}', '\\u{1F3FF}'];\n\nconst MODIFIER_BASES = new Set([\n '👋', '🤚', '✋', '🖐️', '🖖', '👌', '🤌', '🤏', '✌️', '🤞', '🫰',\n '🤟', '🤘', '🤙', '👈', '👉', '👆', '👇', '☝️', '🫵', '👍', '👎',\n '✊', '👊', '🤛', '🤜', '👏', '🙌', '🫶', '👐', '🤲', '🙏', '💅',\n '🤳', '💪', '🦵', '🦶', '👂', '🦻', '👃',\n]);\n\nfunction applyModifier(emoji: string, modifier: string): string {\n if (!modifier || !MODIFIER_BASES.has(emoji)) return emoji;\n // Strip VS16 before the modifier so composed sequences render correctly\n return emoji.replace('️', '') + modifier;\n}\n\nexport default function EmojiPopover({\n className = '',\n categories,\n shortcodes = {},\n defaultQuery = '',\n autoFocus = false,\n onEmojiSelect,\n onSearch,\n onCustomEmojiClick,\n customEmojiLabel = 'Custom emoji',\n}: EmojiPopoverProps) {\n const [query, setQuery] = useState(defaultQuery);\n const [activeCategoryId, setActiveCategoryId] = useState(categories[0]?.id ?? '');\n const [hoveredEmoji, setHoveredEmoji] = useState<string | null>(null);\n const [hoveredBase, setHoveredBase] = useState<string | null>(null);\n const [skinToneIndex, setSkinToneIndex] = useState(0);\n const [showSkinTonePicker, setShowSkinTonePicker] = useState(false);\n\n const searchRef = useRef<HTMLInputElement>(null);\n const generatedId = useId();\n const skinTonePickerId = `${generatedId}-skin-tone-picker`;\n const skinToneModifier = SKIN_TONE_MODIFIERS[skinToneIndex];\n const scrollRef = useRef<HTMLDivElement>(null);\n const groupRefs = useRef<Record<string, HTMLDivElement | null>>({});\n\n useEffect(() => {\n if (autoFocus) searchRef.current?.focus();\n }, [autoFocus]);\n\n const handleQueryChange = (next: string) => {\n setQuery(next);\n onSearch?.(next);\n };\n\n const allEmojis = [...new Set(categories.flatMap((c) => c.emojis))];\n const searchResults = query\n ? allEmojis.filter((emoji) => {\n const name = shortcodes[emoji] ?? '';\n return name.includes(query.toLowerCase()) || emoji === query;\n })\n : [];\n\n const computedState = query\n ? searchResults.length > 0 ? 'search-results' : 'empty'\n : 'default';\n\n function getShortcode(emoji: string): string {\n return shortcodes[emoji] ? `:${shortcodes[emoji]}:` : emoji;\n }\n\n function scrollToCategory(id: string) {\n const group = groupRefs.current[id];\n const scroller = scrollRef.current;\n if (!group || !scroller) return;\n const top = group.getBoundingClientRect().top - scroller.getBoundingClientRect().top + scroller.scrollTop;\n scroller.scrollTo({ top, behavior: 'smooth' });\n }\n\n const rootClass = [styles['emoji-popover'], className].filter(Boolean).join(' ');\n\n const emptyIllustration = {\n 'aria-label': '' as const,\n width: '80px',\n height: '60px',\n children: <SearchIllustration />,\n };\n\n const renderEmoji = (emoji: string) => {\n const displayed = applyModifier(emoji, skinToneModifier);\n return (\n <EmojiButton\n key={emoji}\n emoji={displayed}\n size=\"medium\"\n padding=\"compact\"\n aria-label={displayed}\n onMouseEnter={() => { setHoveredEmoji(displayed); setHoveredBase(emoji); }}\n onMouseLeave={() => { setHoveredEmoji(null); setHoveredBase(null); }}\n onClick={() => onEmojiSelect?.(displayed)}\n />\n );\n };\n\n const renderBody = () => {\n if (computedState === 'empty') {\n return (\n <EmptyState\n illustration={emptyIllustration}\n title=\"No emojis found\"\n description=\"Try a different search term.\"\n />\n );\n }\n\n if (computedState === 'search-results') {\n return (\n <div className={styles['emoji-popover__emoji-list']}>\n <div className={styles['emoji-popover__group']}>\n <MenuGroupHeading label=\"Search Results\" />\n <div className={styles['emoji-popover__emoji-row']}>\n {searchResults.map(renderEmoji)}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className={styles['emoji-popover__emoji-list']}>\n {categories.map((cat) => (\n <div key={cat.id} ref={(el) => { groupRefs.current[cat.id] = el; }} className={styles['emoji-popover__group']}>\n <MenuGroupHeading label={cat.label} />\n <div\n className={[\n styles['emoji-popover__emoji-row'],\n cat.wrap === false ? styles['emoji-popover__emoji-row--nowrap'] : '',\n ].filter(Boolean).join(' ')}\n >\n {cat.emojis.map(renderEmoji)}\n </div>\n </div>\n ))}\n </div>\n );\n };\n\n return (\n <div className={rootClass}>\n <div className={styles['emoji-popover__header']}>\n <div className={styles['emoji-popover__header-panels']}>\n <div\n className={[\n styles['emoji-popover__header-main'],\n showSkinTonePicker ? styles['emoji-popover__header-main--hidden'] : '',\n ].filter(Boolean).join(' ')}\n inert={showSkinTonePicker}\n aria-hidden={showSkinTonePicker || undefined}\n >\n <div className={styles['emoji-popover__search-row']}>\n <SearchInput\n ref={searchRef}\n placeholder=\"Search emojis\"\n size=\"small\"\n className={styles['emoji-popover__search-input']}\n value={query}\n onChange={(e) => handleQueryChange(e.target.value)}\n onClear={() => handleQueryChange('')}\n />\n {!query && (\n <EmojiButton\n emoji={SKIN_TONES[skinToneIndex]}\n size=\"small\"\n aria-label=\"Select skin tone\"\n aria-expanded={showSkinTonePicker}\n aria-controls={skinTonePickerId}\n onClick={() => setShowSkinTonePicker(true)}\n />\n )}\n </div>\n </div>\n\n <div\n id={skinTonePickerId}\n className={[\n styles['emoji-popover__skin-tone-picker'],\n showSkinTonePicker ? styles['emoji-popover__skin-tone-picker--visible'] : '',\n ].filter(Boolean).join(' ')}\n inert={!showSkinTonePicker}\n aria-hidden={!showSkinTonePicker || undefined}\n >\n <span className={styles['emoji-popover__skin-tone-label']}>Skin tone</span>\n <div className={styles['emoji-popover__skin-tone-options']}>\n {SKIN_TONES.map((emoji, i) => (\n <EmojiButton\n key={i}\n emoji={emoji}\n size=\"small\"\n toggled={skinToneIndex === i}\n aria-label={i === 0 ? 'Default skin tone' : `Skin tone ${i}`}\n onClick={() => { setSkinToneIndex(i); setShowSkinTonePicker(false); }}\n />\n ))}\n </div>\n <IconButton\n size=\"small\"\n padding=\"compact\"\n icon={<Icon glyph={<CloseIcon />} size=\"16\" />}\n aria-label=\"Close skin tone picker\"\n onClick={() => setShowSkinTonePicker(false)}\n />\n </div>\n </div>\n\n {!query && (\n <div className={styles['emoji-popover__categories']}>\n {categories.map((cat) => (\n <IconButton\n key={cat.id}\n size=\"small\"\n padding=\"compact\"\n icon={<Icon glyph={<cat.icon />} size=\"16\" />}\n aria-label={cat.label}\n active={activeCategoryId === cat.id}\n onClick={() => { setActiveCategoryId(cat.id); scrollToCategory(cat.id); }}\n />\n ))}\n </div>\n )}\n </div>\n\n <div className={styles['emoji-popover__scroll-view']}>\n {computedState === 'empty' ? (\n renderBody()\n ) : (\n <Scrollbar alwaysVisible ref={scrollRef}>{renderBody()}</Scrollbar>\n )}\n </div>\n\n <div className={styles['emoji-popover__footer']}>\n <div className={styles['emoji-popover__footer-preview']}>\n {hoveredEmoji ? (\n <>\n <Emoji emoji={hoveredEmoji} size='32' />\n <span className={styles['emoji-popover__footer-shortcode']}>\n {getShortcode(hoveredBase ?? '')}\n </span>\n </>\n ) : (\n <span className={styles['emoji-popover__footer-hint']}>\n Select an Emoji\n </span>\n )}\n </div>\n {onCustomEmojiClick && (\n <Button emphasis=\"tertiary\" size=\"small\" onClick={onCustomEmojiClick}>\n {customEmojiLabel}\n </Button>\n )}\n </div>\n </div>\n );\n}\n"],"names":["SKIN_TONES","SKIN_TONE_MODIFIERS","MODIFIER_BASES","applyModifier","emoji","modifier","EmojiPopover","className","categories","shortcodes","defaultQuery","autoFocus","onEmojiSelect","onSearch","onCustomEmojiClick","customEmojiLabel","query","setQuery","useState","activeCategoryId","setActiveCategoryId","_a","hoveredEmoji","setHoveredEmoji","hoveredBase","setHoveredBase","skinToneIndex","setSkinToneIndex","showSkinTonePicker","setShowSkinTonePicker","searchRef","useRef","skinTonePickerId","useId","skinToneModifier","scrollRef","groupRefs","useEffect","handleQueryChange","next","allEmojis","c","searchResults","computedState","getShortcode","scrollToCategory","id","group","scroller","top","rootClass","styles","emptyIllustration","SearchIllustration","renderEmoji","displayed","jsx","EmojiButton","renderBody","EmptyState","jsxs","MenuGroupHeading","cat","el","SearchInput","i","IconButton","Icon","CloseIcon","Scrollbar","Fragment","Emoji","Button"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ ._emoji-popover_ffrmi_2{box-sizing:border-box;display:flex;flex-direction:column;width:348px;height:436px;background-color:var(--center-channel-bg);border:1px solid rgba(var(--center-channel-color-rgb),.16);border-radius:var(--radius-s);box-shadow:var(--elevation-4);overflow:hidden}._emoji-popover__header_ffrmi_14{display:flex;flex-direction:column;flex-shrink:0;background-color:var(--center-channel-bg);border-bottom:1px solid rgba(var(--center-channel-color-rgb),.12)}._emoji-popover__search-row_ffrmi_21{display:flex;align-items:center;gap:var(--spacing-xxs);padding:var(--spacing-m) var(--spacing-m) var(--spacing-xxxs)}._emoji-popover__search-input_ffrmi_27{flex:1;min-width:0}._emoji-popover__header-panels_ffrmi_31{position:relative;overflow:hidden}._emoji-popover__header-main_ffrmi_35{transition:transform var(--duration-quick) var(--ease-transition)}._emoji-popover__header-main--hidden_ffrmi_38{transform:translate(-100%)}._emoji-popover__skin-tone-picker_ffrmi_41{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;gap:var(--spacing-s);padding:var(--spacing-xs) var(--spacing-m);transform:translate(100%);transition:transform var(--duration-quick) var(--ease-transition);background-color:var(--center-channel-bg)}._emoji-popover__skin-tone-picker--visible_ffrmi_55{transform:translate(0)}._emoji-popover__skin-tone-label_ffrmi_58{flex-shrink:0;font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);line-height:var(--line-height-75);color:var(--center-channel-color);padding-left:var(--spacing-xxs)}._emoji-popover__skin-tone-options_ffrmi_66{display:flex;flex:1;align-items:center;justify-content:space-between}._emoji-popover__categories_ffrmi_72{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xxs) var(--spacing-m)}._emoji-popover__scroll-view_ffrmi_78{display:flex;flex-direction:column;flex:1;min-height:0}._emoji-popover__scroll-view_ffrmi_78>*{flex:1;min-height:0}._emoji-popover__emoji-list_ffrmi_88{display:flex;flex-direction:column;gap:var(--spacing-xxs);padding:var(--spacing-xxxs) 0}._emoji-popover__group_ffrmi_94{display:flex;flex-direction:column}._emoji-popover__emoji-row_ffrmi_98{display:flex;flex-wrap:wrap;align-items:flex-start;padding:0 var(--spacing-s);gap:0}._emoji-popover__emoji-row--nowrap_ffrmi_105{flex-wrap:nowrap}._emoji-popover__footer_ffrmi_108{display:flex;align-items:center;gap:var(--spacing-xs);height:56px;flex-shrink:0;padding:0 var(--spacing-l);border-top:1px solid rgba(var(--center-channel-color-rgb),.12);background-color:var(--center-channel-bg)}._emoji-popover__footer-preview_ffrmi_118{display:flex;align-items:center;gap:var(--spacing-xs);flex:1;min-width:0}._emoji-popover__footer-hint_ffrmi_125{font-size:var(--font-size-100);font-weight:var(--font-weight-semibold);color:var(--center-channel-color)}._emoji-popover__footer-shortcode_ffrmi_130{font-size:var(--font-size-100);font-weight:var(--font-weight-semibold);color:rgba(var(--center-channel-color-rgb),.72)}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./EmojiPopover.module.css');const o={"emoji-popover":"_emoji-popover_ffrmi_2","emoji-popover__header":"_emoji-popover__header_ffrmi_14","emoji-popover__search-row":"_emoji-popover__search-row_ffrmi_21","emoji-popover__search-input":"_emoji-popover__search-input_ffrmi_27","emoji-popover__header-panels":"_emoji-popover__header-panels_ffrmi_31","emoji-popover__header-main":"_emoji-popover__header-main_ffrmi_35","emoji-popover__header-main--hidden":"_emoji-popover__header-main--hidden_ffrmi_38","emoji-popover__skin-tone-picker":"_emoji-popover__skin-tone-picker_ffrmi_41","emoji-popover__skin-tone-picker--visible":"_emoji-popover__skin-tone-picker--visible_ffrmi_55","emoji-popover__skin-tone-label":"_emoji-popover__skin-tone-label_ffrmi_58","emoji-popover__skin-tone-options":"_emoji-popover__skin-tone-options_ffrmi_66","emoji-popover__categories":"_emoji-popover__categories_ffrmi_72","emoji-popover__scroll-view":"_emoji-popover__scroll-view_ffrmi_78","emoji-popover__emoji-list":"_emoji-popover__emoji-list_ffrmi_88","emoji-popover__group":"_emoji-popover__group_ffrmi_94","emoji-popover__emoji-row":"_emoji-popover__emoji-row_ffrmi_98","emoji-popover__emoji-row--nowrap":"_emoji-popover__emoji-row--nowrap_ffrmi_105","emoji-popover__footer":"_emoji-popover__footer_ffrmi_108","emoji-popover__footer-preview":"_emoji-popover__footer-preview_ffrmi_118","emoji-popover__footer-hint":"_emoji-popover__footer-hint_ffrmi_125","emoji-popover__footer-shortcode":"_emoji-popover__footer-shortcode_ffrmi_130"};exports.default=o;
2
+ //# sourceMappingURL=EmojiPopover.module.scss.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiPopover.module.scss.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import './EmojiPopover.module.css';const o = {
2
+ "emoji-popover": "_emoji-popover_ffrmi_2",
3
+ "emoji-popover__header": "_emoji-popover__header_ffrmi_14",
4
+ "emoji-popover__search-row": "_emoji-popover__search-row_ffrmi_21",
5
+ "emoji-popover__search-input": "_emoji-popover__search-input_ffrmi_27",
6
+ "emoji-popover__header-panels": "_emoji-popover__header-panels_ffrmi_31",
7
+ "emoji-popover__header-main": "_emoji-popover__header-main_ffrmi_35",
8
+ "emoji-popover__header-main--hidden": "_emoji-popover__header-main--hidden_ffrmi_38",
9
+ "emoji-popover__skin-tone-picker": "_emoji-popover__skin-tone-picker_ffrmi_41",
10
+ "emoji-popover__skin-tone-picker--visible": "_emoji-popover__skin-tone-picker--visible_ffrmi_55",
11
+ "emoji-popover__skin-tone-label": "_emoji-popover__skin-tone-label_ffrmi_58",
12
+ "emoji-popover__skin-tone-options": "_emoji-popover__skin-tone-options_ffrmi_66",
13
+ "emoji-popover__categories": "_emoji-popover__categories_ffrmi_72",
14
+ "emoji-popover__scroll-view": "_emoji-popover__scroll-view_ffrmi_78",
15
+ "emoji-popover__emoji-list": "_emoji-popover__emoji-list_ffrmi_88",
16
+ "emoji-popover__group": "_emoji-popover__group_ffrmi_94",
17
+ "emoji-popover__emoji-row": "_emoji-popover__emoji-row_ffrmi_98",
18
+ "emoji-popover__emoji-row--nowrap": "_emoji-popover__emoji-row--nowrap_ffrmi_105",
19
+ "emoji-popover__footer": "_emoji-popover__footer_ffrmi_108",
20
+ "emoji-popover__footer-preview": "_emoji-popover__footer-preview_ffrmi_118",
21
+ "emoji-popover__footer-hint": "_emoji-popover__footer-hint_ffrmi_125",
22
+ "emoji-popover__footer-shortcode": "_emoji-popover__footer-shortcode_ffrmi_130"
23
+ };
24
+ export {
25
+ o as default
26
+ };
27
+ //# sourceMappingURL=EmojiPopover.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiPopover.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./MessageReactions.cjs");exports.MessageReactions=e.default;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./EmojiPopover.cjs");exports.EmojiPopover=e.default;
2
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 EmojiPopover } from './EmojiPopover';
2
+ export type { EmojiPopoverProps, EmojiCategory } from './EmojiPopover';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/emoji-popover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { default as r } from "./EmojiPopover.js";
2
+ export {
3
+ r as EmojiPopover
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":"GlobalBanner.cjs","sources":["../../../src/components/global-banner/GlobalBanner.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport Button from '@/components/button/Button';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './GlobalBanner.module.scss';\n\nexport type GlobalBannerType =\n | 'general'\n | 'warning'\n | 'danger'\n | 'info'\n | 'success';\n\nexport interface GlobalBannerProps {\n /** Optional CSS class name. */\n className?: string;\n /** The message text. */\n message: string;\n /** Optional type for color-coding. Default: General. */\n type?: GlobalBannerType;\n /** Optional leading icon. */\n leadingIcon?: ReactNode;\n /** Label for the optional action button. */\n actionLabel?: string;\n /** Callback when the action button is clicked. */\n onAction?: () => void;\n /** Called when dismiss button is clicked. When omitted, dismiss button is hidden. */\n onDismiss?: () => void;\n}\n\n/**\n * Global Banners sit at the very top of the application and broadcast something every user\n * in the workspace needs to know — a maintenance window, an expiring licence, a connectivity\n * problem, an available update. They span the full width of the app and stay visible until\n * they're dismissed or the condition resolves.\n */\nexport default function GlobalBanner({\n className = '',\n message,\n type = 'general',\n leadingIcon,\n actionLabel,\n onAction,\n onDismiss,\n}: GlobalBannerProps) {\n const typeClass =\n type !== 'general'\n ? styles[`global-banner--type-${type.toLowerCase()}`]\n : '';\n\n const rootClass = [styles['global-banner'], typeClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} role=\"banner\">\n <div className={styles['global-banner__content']}>\n {leadingIcon != null && (\n <span className={styles['global-banner__icon']} aria-hidden>\n {leadingIcon}\n </span>\n )}\n <span className={styles['global-banner__message']}>{message}</span>\n {actionLabel != null && (\n <Button\n className={styles['global-banner__action']}\n appearance=\"default\"\n emphasis=\"tertiary\"\n size=\"x-small\"\n onClick={onAction}\n >\n {actionLabel}\n </Button>\n )}\n </div>\n {onDismiss != null && (\n <IconButton\n className={styles['global-banner__dismiss']}\n aria-label=\"Dismiss\"\n size=\"small\"\n icon={<Icon glyph={<CloseIcon />} size=\"16\" />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["GlobalBanner","className","message","type","leadingIcon","actionLabel","onAction","onDismiss","typeClass","styles","rootClass","jsxs","jsx","Button","IconButton","Icon","CloseIcon"],"mappings":"+VAqCA,SAAwBA,EAAa,CACnC,UAAAC,EAAY,GACZ,QAAAC,EACA,KAAAC,EAAO,UACP,YAAAC,EACA,YAAAC,EACA,SAAAC,EACA,UAAAC,CACF,EAAsB,CACpB,MAAMC,EACJL,IAAS,UACLM,UAAO,uBAAuBN,EAAK,YAAA,CAAa,EAAE,EAClD,GAEAO,EAAY,CAACD,UAAO,eAAe,EAAGD,EAAWP,CAAS,EAC7D,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEU,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAW,KAAK,SAC9B,SAAA,CAAAC,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,wBAAwB,EAC5C,SAAA,CAAAL,GAAe,YACb,OAAA,CAAK,UAAWK,EAAAA,QAAO,qBAAqB,EAAG,cAAW,GACxD,SAAAL,CAAA,CACH,QAED,OAAA,CAAK,UAAWK,EAAAA,QAAO,wBAAwB,EAAI,SAAAP,EAAQ,EAC3DG,GAAe,MACdO,EAAAA,IAACC,EAAAA,QAAA,CACC,UAAWJ,EAAAA,QAAO,uBAAuB,EACzC,WAAW,UACX,SAAS,WACT,KAAK,UACL,QAASH,EAER,SAAAD,CAAA,CAAA,CACH,EAEJ,EACCE,GAAa,MACZK,EAAAA,IAACE,EAAAA,QAAA,CACC,UAAWL,EAAAA,QAAO,wBAAwB,EAC1C,aAAW,UACX,KAAK,QACL,WAAOM,UAAA,CAAK,YAAQC,EAAA,EAAU,EAAI,KAAK,KAAK,EAC5C,QAAST,CAAA,CAAA,CACX,EAEJ,CAEJ"}
1
+ {"version":3,"file":"GlobalBanner.cjs","sources":["../../../src/components/global-banner/GlobalBanner.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport Button from '@/components/button/Button';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './GlobalBanner.module.scss';\n\nexport type GlobalBannerType =\n | 'general'\n | 'warning'\n | 'danger'\n | 'info'\n | 'success';\n\nexport interface GlobalBannerProps {\n /** Optional CSS class name. */\n className?: string;\n /** The message text. */\n message: string;\n /** Optional type for color-coding. Default: General. */\n type?: GlobalBannerType;\n /** Optional leading icon (e.g. `<Icon glyph={<SomeIcon />} size=\"16\" />`). The slot does not resize raw SVG children. */\n leadingIcon?: ReactNode;\n /** Label for the optional action button. */\n actionLabel?: string;\n /** Callback when the action button is clicked. */\n onAction?: () => void;\n /** Called when dismiss button is clicked. When omitted, dismiss button is hidden. */\n onDismiss?: () => void;\n}\n\n/**\n * Global Banners sit at the very top of the application and broadcast something every user\n * in the workspace needs to know — a maintenance window, an expiring licence, a connectivity\n * problem, an available update. They span the full width of the app and stay visible until\n * they're dismissed or the condition resolves.\n */\nexport default function GlobalBanner({\n className = '',\n message,\n type = 'general',\n leadingIcon,\n actionLabel,\n onAction,\n onDismiss,\n}: GlobalBannerProps) {\n const typeClass =\n type !== 'general'\n ? styles[`global-banner--type-${type.toLowerCase()}`]\n : '';\n\n const rootClass = [styles['global-banner'], typeClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} role=\"banner\">\n <div className={styles['global-banner__content']}>\n {leadingIcon != null && (\n <span className={styles['global-banner__icon']} aria-hidden>\n {leadingIcon}\n </span>\n )}\n <span className={styles['global-banner__message']}>{message}</span>\n {actionLabel != null && (\n <Button\n className={styles['global-banner__action']}\n appearance=\"default\"\n emphasis=\"tertiary\"\n size=\"x-small\"\n onClick={onAction}\n >\n {actionLabel}\n </Button>\n )}\n </div>\n {onDismiss != null && (\n <IconButton\n className={styles['global-banner__dismiss']}\n aria-label=\"Dismiss\"\n size=\"small\"\n icon={<Icon glyph={<CloseIcon />} size=\"16\" />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["GlobalBanner","className","message","type","leadingIcon","actionLabel","onAction","onDismiss","typeClass","styles","rootClass","jsxs","jsx","Button","IconButton","Icon","CloseIcon"],"mappings":"+VAqCA,SAAwBA,EAAa,CACnC,UAAAC,EAAY,GACZ,QAAAC,EACA,KAAAC,EAAO,UACP,YAAAC,EACA,YAAAC,EACA,SAAAC,EACA,UAAAC,CACF,EAAsB,CACpB,MAAMC,EACJL,IAAS,UACLM,UAAO,uBAAuBN,EAAK,YAAA,CAAa,EAAE,EAClD,GAEAO,EAAY,CAACD,UAAO,eAAe,EAAGD,EAAWP,CAAS,EAC7D,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEU,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAW,KAAK,SAC9B,SAAA,CAAAC,EAAAA,KAAC,MAAA,CAAI,UAAWF,EAAAA,QAAO,wBAAwB,EAC5C,SAAA,CAAAL,GAAe,YACb,OAAA,CAAK,UAAWK,EAAAA,QAAO,qBAAqB,EAAG,cAAW,GACxD,SAAAL,CAAA,CACH,QAED,OAAA,CAAK,UAAWK,EAAAA,QAAO,wBAAwB,EAAI,SAAAP,EAAQ,EAC3DG,GAAe,MACdO,EAAAA,IAACC,EAAAA,QAAA,CACC,UAAWJ,EAAAA,QAAO,uBAAuB,EACzC,WAAW,UACX,SAAS,WACT,KAAK,UACL,QAASH,EAER,SAAAD,CAAA,CAAA,CACH,EAEJ,EACCE,GAAa,MACZK,EAAAA,IAACE,EAAAA,QAAA,CACC,UAAWL,EAAAA,QAAO,wBAAwB,EAC1C,aAAW,UACX,KAAK,QACL,WAAOM,UAAA,CAAK,YAAQC,EAAA,EAAU,EAAI,KAAK,KAAK,EAC5C,QAAST,CAAA,CAAA,CACX,EAEJ,CAEJ"}
@@ -7,7 +7,7 @@ export interface GlobalBannerProps {
7
7
  message: string;
8
8
  /** Optional type for color-coding. Default: General. */
9
9
  type?: GlobalBannerType;
10
- /** Optional leading icon. */
10
+ /** Optional leading icon (e.g. `<Icon glyph={<SomeIcon />} size="16" />`). The slot does not resize raw SVG children. */
11
11
  leadingIcon?: ReactNode;
12
12
  /** Label for the optional action button. */
13
13
  actionLabel?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalBanner.d.ts","sourceRoot":"","sources":["../../../src/components/global-banner/GlobalBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,SAAS,GACT,QAAQ,GACR,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,SAAc,EACd,OAAO,EACP,IAAgB,EAChB,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,GACV,EAAE,iBAAiB,2CA0CnB"}
1
+ {"version":3,"file":"GlobalBanner.d.ts","sourceRoot":"","sources":["../../../src/components/global-banner/GlobalBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,SAAS,GACT,QAAQ,GACR,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,yHAAyH;IACzH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,SAAc,EACd,OAAO,EACP,IAAgB,EAChB,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,GACV,EAAE,iBAAiB,2CA0CnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalBanner.js","sources":["../../../src/components/global-banner/GlobalBanner.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport Button from '@/components/button/Button';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './GlobalBanner.module.scss';\n\nexport type GlobalBannerType =\n | 'general'\n | 'warning'\n | 'danger'\n | 'info'\n | 'success';\n\nexport interface GlobalBannerProps {\n /** Optional CSS class name. */\n className?: string;\n /** The message text. */\n message: string;\n /** Optional type for color-coding. Default: General. */\n type?: GlobalBannerType;\n /** Optional leading icon. */\n leadingIcon?: ReactNode;\n /** Label for the optional action button. */\n actionLabel?: string;\n /** Callback when the action button is clicked. */\n onAction?: () => void;\n /** Called when dismiss button is clicked. When omitted, dismiss button is hidden. */\n onDismiss?: () => void;\n}\n\n/**\n * Global Banners sit at the very top of the application and broadcast something every user\n * in the workspace needs to know — a maintenance window, an expiring licence, a connectivity\n * problem, an available update. They span the full width of the app and stay visible until\n * they're dismissed or the condition resolves.\n */\nexport default function GlobalBanner({\n className = '',\n message,\n type = 'general',\n leadingIcon,\n actionLabel,\n onAction,\n onDismiss,\n}: GlobalBannerProps) {\n const typeClass =\n type !== 'general'\n ? styles[`global-banner--type-${type.toLowerCase()}`]\n : '';\n\n const rootClass = [styles['global-banner'], typeClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} role=\"banner\">\n <div className={styles['global-banner__content']}>\n {leadingIcon != null && (\n <span className={styles['global-banner__icon']} aria-hidden>\n {leadingIcon}\n </span>\n )}\n <span className={styles['global-banner__message']}>{message}</span>\n {actionLabel != null && (\n <Button\n className={styles['global-banner__action']}\n appearance=\"default\"\n emphasis=\"tertiary\"\n size=\"x-small\"\n onClick={onAction}\n >\n {actionLabel}\n </Button>\n )}\n </div>\n {onDismiss != null && (\n <IconButton\n className={styles['global-banner__dismiss']}\n aria-label=\"Dismiss\"\n size=\"small\"\n icon={<Icon glyph={<CloseIcon />} size=\"16\" />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["GlobalBanner","className","message","type","leadingIcon","actionLabel","onAction","onDismiss","typeClass","styles","rootClass","jsxs","jsx","Button","IconButton","Icon","CloseIcon"],"mappings":";;;;;;AAqCA,SAAwBA,EAAa;AAAA,EACnC,WAAAC,IAAY;AAAA,EACZ,SAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AACF,GAAsB;AACpB,QAAMC,IACJL,MAAS,YACLM,EAAO,uBAAuBN,EAAK,YAAA,CAAa,EAAE,IAClD,IAEAO,IAAY,CAACD,EAAO,eAAe,GAAGD,GAAWP,CAAS,EAC7D,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAU,EAAC,OAAA,EAAI,WAAWD,GAAW,MAAK,UAC9B,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWF,EAAO,wBAAwB,GAC5C,UAAA;AAAA,MAAAL,KAAe,0BACb,QAAA,EAAK,WAAWK,EAAO,qBAAqB,GAAG,eAAW,IACxD,UAAAL,EAAA,CACH;AAAA,wBAED,QAAA,EAAK,WAAWK,EAAO,wBAAwB,GAAI,UAAAP,GAAQ;AAAA,MAC3DG,KAAe,QACd,gBAAAO;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,WAAWJ,EAAO,uBAAuB;AAAA,UACzC,YAAW;AAAA,UACX,UAAS;AAAA,UACT,MAAK;AAAA,UACL,SAASH;AAAA,UAER,UAAAD;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,GAEJ;AAAA,IACCE,KAAa,QACZ,gBAAAK;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,WAAWL,EAAO,wBAAwB;AAAA,QAC1C,cAAW;AAAA,QACX,MAAK;AAAA,QACL,wBAAOM,GAAA,EAAK,yBAAQC,GAAA,EAAU,GAAI,MAAK,MAAK;AAAA,QAC5C,SAAST;AAAA,MAAA;AAAA,IAAA;AAAA,EACX,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"GlobalBanner.js","sources":["../../../src/components/global-banner/GlobalBanner.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport Button from '@/components/button/Button';\nimport IconButton from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport CloseIcon from '@mattermost/compass-icons/components/close';\nimport styles from './GlobalBanner.module.scss';\n\nexport type GlobalBannerType =\n | 'general'\n | 'warning'\n | 'danger'\n | 'info'\n | 'success';\n\nexport interface GlobalBannerProps {\n /** Optional CSS class name. */\n className?: string;\n /** The message text. */\n message: string;\n /** Optional type for color-coding. Default: General. */\n type?: GlobalBannerType;\n /** Optional leading icon (e.g. `<Icon glyph={<SomeIcon />} size=\"16\" />`). The slot does not resize raw SVG children. */\n leadingIcon?: ReactNode;\n /** Label for the optional action button. */\n actionLabel?: string;\n /** Callback when the action button is clicked. */\n onAction?: () => void;\n /** Called when dismiss button is clicked. When omitted, dismiss button is hidden. */\n onDismiss?: () => void;\n}\n\n/**\n * Global Banners sit at the very top of the application and broadcast something every user\n * in the workspace needs to know — a maintenance window, an expiring licence, a connectivity\n * problem, an available update. They span the full width of the app and stay visible until\n * they're dismissed or the condition resolves.\n */\nexport default function GlobalBanner({\n className = '',\n message,\n type = 'general',\n leadingIcon,\n actionLabel,\n onAction,\n onDismiss,\n}: GlobalBannerProps) {\n const typeClass =\n type !== 'general'\n ? styles[`global-banner--type-${type.toLowerCase()}`]\n : '';\n\n const rootClass = [styles['global-banner'], typeClass, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} role=\"banner\">\n <div className={styles['global-banner__content']}>\n {leadingIcon != null && (\n <span className={styles['global-banner__icon']} aria-hidden>\n {leadingIcon}\n </span>\n )}\n <span className={styles['global-banner__message']}>{message}</span>\n {actionLabel != null && (\n <Button\n className={styles['global-banner__action']}\n appearance=\"default\"\n emphasis=\"tertiary\"\n size=\"x-small\"\n onClick={onAction}\n >\n {actionLabel}\n </Button>\n )}\n </div>\n {onDismiss != null && (\n <IconButton\n className={styles['global-banner__dismiss']}\n aria-label=\"Dismiss\"\n size=\"small\"\n icon={<Icon glyph={<CloseIcon />} size=\"16\" />}\n onClick={onDismiss}\n />\n )}\n </div>\n );\n}\n"],"names":["GlobalBanner","className","message","type","leadingIcon","actionLabel","onAction","onDismiss","typeClass","styles","rootClass","jsxs","jsx","Button","IconButton","Icon","CloseIcon"],"mappings":";;;;;;AAqCA,SAAwBA,EAAa;AAAA,EACnC,WAAAC,IAAY;AAAA,EACZ,SAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AACF,GAAsB;AACpB,QAAMC,IACJL,MAAS,YACLM,EAAO,uBAAuBN,EAAK,YAAA,CAAa,EAAE,IAClD,IAEAO,IAAY,CAACD,EAAO,eAAe,GAAGD,GAAWP,CAAS,EAC7D,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAU,EAAC,OAAA,EAAI,WAAWD,GAAW,MAAK,UAC9B,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWF,EAAO,wBAAwB,GAC5C,UAAA;AAAA,MAAAL,KAAe,0BACb,QAAA,EAAK,WAAWK,EAAO,qBAAqB,GAAG,eAAW,IACxD,UAAAL,EAAA,CACH;AAAA,wBAED,QAAA,EAAK,WAAWK,EAAO,wBAAwB,GAAI,UAAAP,GAAQ;AAAA,MAC3DG,KAAe,QACd,gBAAAO;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,WAAWJ,EAAO,uBAAuB;AAAA,UACzC,YAAW;AAAA,UACX,UAAS;AAAA,UACT,MAAK;AAAA,UACL,SAASH;AAAA,UAER,UAAAD;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,GAEJ;AAAA,IACCE,KAAa,QACZ,gBAAAK;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,WAAWL,EAAO,wBAAwB;AAAA,QAC1C,cAAW;AAAA,QACX,MAAK;AAAA,QACL,wBAAOM,GAAA,EAAK,yBAAQC,GAAA,EAAU,GAAI,MAAK,MAAK;AAAA,QAC5C,SAAST;AAAA,MAAA;AAAA,IAAA;AAAA,EACX,GAEJ;AAEJ;"}
@@ -1 +1 @@
1
- ._global-header_r14zh_2{position:relative;display:grid;align-items:center;width:100%;height:40px;padding:0 var(--spacing-xxxxs);background:var(--sidebar-header-bg)}._global-header--channels_r14zh_12{grid-template-columns:max-content minmax(0,1fr) max-content}._global-header--product-only_r14zh_15{grid-template-columns:auto minmax(0,1fr)}._global-header__left_r14zh_18{grid-column:1;grid-row:1;display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xxxs) var(--spacing-xs);flex-shrink:0}._global-header__product_r14zh_27{display:flex;align-items:center;gap:var(--spacing-xxxs);padding:2px 0}._global-header__product-icon_r14zh_33{display:inline-flex;align-items:center;justify-content:center;padding:2px;color:var(--sidebar-text);opacity:.64}._global-header__product-name_r14zh_41{margin:0;font-family:var(--font-family-heading);font-size:var(--font-size-200);font-weight:var(--font-weight-semibold);line-height:var(--line-height-200);color:rgba(var(--sidebar-text-rgb),.64);white-space:nowrap}._global-header__navigator_r14zh_50{display:flex;align-items:center;gap:var(--spacing-xxxs)}._global-header__center_r14zh_55{grid-column:2;grid-row:1;justify-self:center;display:flex;align-items:center;gap:var(--spacing-xxxs);padding:var(--spacing-xxxxs) 0 var(--spacing-xxxxs) var(--spacing-xxxs);min-width:0;width:max-content;max-width:100%}._global-header__search_r14zh_67{display:flex;align-items:center;gap:var(--spacing-xs);width:432px;height:28px;padding:var(--spacing-xs) var(--spacing-m) var(--spacing-xs) var(--spacing-xs);background:rgba(var(--sidebar-text-rgb),.08);border-radius:var(--radius-s);cursor:text;transition:background-color var(--duration-quick) var(--ease-transition)}._global-header__search_r14zh_67:hover{background:rgba(var(--sidebar-text-rgb),.12)}._global-header__search-icon_r14zh_82{display:inline-flex;align-items:center;flex-shrink:0;color:rgba(var(--sidebar-text-rgb),.64)}._global-header__search-input_r14zh_88{flex:1 1 0;min-width:0;margin:0;padding:0;border:0;background:transparent;font-family:var(--font-family-body);font-size:var(--font-size-75);line-height:var(--line-height-75);font-weight:var(--font-weight-regular);letter-spacing:.02em;color:var(--sidebar-text)}._global-header__search-input_r14zh_88:focus{outline:none}._global-header__search-input_r14zh_88::placeholder{color:rgba(var(--sidebar-text-rgb),.64)}._global-header__right_r14zh_108{grid-row:1;display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-xxxs);padding:0 var(--spacing-xs);flex-shrink:0}._global-header--channels_r14zh_12 ._global-header__right_r14zh_108{grid-column:3}._global-header--product-only_r14zh_15 ._global-header__right_r14zh_108{grid-column:2}._global-header__account_r14zh_123{--status-badge-bg: var(--sidebar-header-bg);display:inline-flex;align-items:center;padding:var(--spacing-xxxxs) var(--spacing-xs);background:transparent;border:0;border-radius:var(--radius-s);cursor:pointer;transition:background-color var(--duration-quick) var(--ease-transition)}._global-header__account_r14zh_123:hover{background:rgba(var(--sidebar-text-rgb),.08)}
1
+ ._global-header_11raj_2{position:relative;display:grid;align-items:center;width:100%;height:40px;flex-shrink:0;padding:0 var(--spacing-xxxxs);background:var(--sidebar-header-bg)}._global-header--channels_11raj_13{grid-template-columns:max-content minmax(0,1fr) max-content}._global-header--product-only_11raj_16{grid-template-columns:auto minmax(0,1fr)}._global-header__left_11raj_19{grid-column:1;grid-row:1;display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xxxs) var(--spacing-xs);flex-shrink:0}._global-header__product_11raj_28{display:flex;align-items:center;gap:var(--spacing-xxxs);padding:2px 0}._global-header__product-icon_11raj_34{display:inline-flex;align-items:center;justify-content:center;padding:2px;color:var(--sidebar-text);opacity:.64}._global-header__product-name_11raj_42{margin:0;font-family:var(--font-family-heading);font-size:var(--font-size-200);font-weight:var(--font-weight-semibold);line-height:var(--line-height-200);color:rgba(var(--sidebar-text-rgb),.64);white-space:nowrap}._global-header__navigator_11raj_51{display:flex;align-items:center;gap:var(--spacing-xxxs)}._global-header__center_11raj_56{grid-column:2;grid-row:1;justify-self:center;display:flex;align-items:center;gap:var(--spacing-xxxs);padding:var(--spacing-xxxxs) 0 var(--spacing-xxxxs) var(--spacing-xxxs);min-width:0;width:max-content;max-width:100%}._global-header__search_11raj_68{display:flex;align-items:center;gap:var(--spacing-xs);width:432px;height:28px;padding:var(--spacing-xs) var(--spacing-m) var(--spacing-xs) var(--spacing-xs);background:rgba(var(--sidebar-text-rgb),.08);border-radius:var(--radius-s);cursor:text;transition:background-color var(--duration-quick) var(--ease-transition)}._global-header__search_11raj_68:hover{background:rgba(var(--sidebar-text-rgb),.12)}._global-header__search-icon_11raj_83{display:inline-flex;align-items:center;flex-shrink:0;color:rgba(var(--sidebar-text-rgb),.64)}._global-header__search-input_11raj_89{flex:1 1 0;min-width:0;margin:0;padding:0;border:0;background:transparent;font-family:var(--font-family-body);font-size:var(--font-size-75);line-height:var(--line-height-75);font-weight:var(--font-weight-regular);letter-spacing:.02em;color:var(--sidebar-text)}._global-header__search-input_11raj_89:focus{outline:none}._global-header__search-input_11raj_89::placeholder{color:rgba(var(--sidebar-text-rgb),.64)}._global-header__right_11raj_109{grid-row:1;display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-xxxs);padding:0 var(--spacing-xs);flex-shrink:0}._global-header--channels_11raj_13 ._global-header__right_11raj_109{grid-column:3}._global-header--product-only_11raj_16 ._global-header__right_11raj_109{grid-column:2}._global-header__account_11raj_124{--status-badge-bg: var(--sidebar-header-bg);display:inline-flex;align-items:center;padding:var(--spacing-xxxxs) var(--spacing-xs);background:transparent;border:0;border-radius:var(--radius-s);cursor:pointer;transition:background-color var(--duration-quick) var(--ease-transition)}._global-header__account_11raj_124:hover{background:rgba(var(--sidebar-text-rgb),.08)}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./GlobalHeader.module.css');const _={"global-header":"_global-header_r14zh_2","global-header--channels":"_global-header--channels_r14zh_12","global-header--product-only":"_global-header--product-only_r14zh_15","global-header__left":"_global-header__left_r14zh_18","global-header__product":"_global-header__product_r14zh_27","global-header__product-icon":"_global-header__product-icon_r14zh_33","global-header__product-name":"_global-header__product-name_r14zh_41","global-header__navigator":"_global-header__navigator_r14zh_50","global-header__center":"_global-header__center_r14zh_55","global-header__search":"_global-header__search_r14zh_67","global-header__search-icon":"_global-header__search-icon_r14zh_82","global-header__search-input":"_global-header__search-input_r14zh_88","global-header__right":"_global-header__right_r14zh_108","global-header__account":"_global-header__account_r14zh_123"};exports.default=_;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./GlobalHeader.module.css');const a={"global-header":"_global-header_11raj_2","global-header--channels":"_global-header--channels_11raj_13","global-header--product-only":"_global-header--product-only_11raj_16","global-header__left":"_global-header__left_11raj_19","global-header__product":"_global-header__product_11raj_28","global-header__product-icon":"_global-header__product-icon_11raj_34","global-header__product-name":"_global-header__product-name_11raj_42","global-header__navigator":"_global-header__navigator_11raj_51","global-header__center":"_global-header__center_11raj_56","global-header__search":"_global-header__search_11raj_68","global-header__search-icon":"_global-header__search-icon_11raj_83","global-header__search-input":"_global-header__search-input_11raj_89","global-header__right":"_global-header__right_11raj_109","global-header__account":"_global-header__account_11raj_124"};exports.default=a;
2
2
  //# sourceMappingURL=GlobalHeader.module.scss.cjs.map
@@ -1,20 +1,20 @@
1
- import './GlobalHeader.module.css';const _ = {
2
- "global-header": "_global-header_r14zh_2",
3
- "global-header--channels": "_global-header--channels_r14zh_12",
4
- "global-header--product-only": "_global-header--product-only_r14zh_15",
5
- "global-header__left": "_global-header__left_r14zh_18",
6
- "global-header__product": "_global-header__product_r14zh_27",
7
- "global-header__product-icon": "_global-header__product-icon_r14zh_33",
8
- "global-header__product-name": "_global-header__product-name_r14zh_41",
9
- "global-header__navigator": "_global-header__navigator_r14zh_50",
10
- "global-header__center": "_global-header__center_r14zh_55",
11
- "global-header__search": "_global-header__search_r14zh_67",
12
- "global-header__search-icon": "_global-header__search-icon_r14zh_82",
13
- "global-header__search-input": "_global-header__search-input_r14zh_88",
14
- "global-header__right": "_global-header__right_r14zh_108",
15
- "global-header__account": "_global-header__account_r14zh_123"
1
+ import './GlobalHeader.module.css';const a = {
2
+ "global-header": "_global-header_11raj_2",
3
+ "global-header--channels": "_global-header--channels_11raj_13",
4
+ "global-header--product-only": "_global-header--product-only_11raj_16",
5
+ "global-header__left": "_global-header__left_11raj_19",
6
+ "global-header__product": "_global-header__product_11raj_28",
7
+ "global-header__product-icon": "_global-header__product-icon_11raj_34",
8
+ "global-header__product-name": "_global-header__product-name_11raj_42",
9
+ "global-header__navigator": "_global-header__navigator_11raj_51",
10
+ "global-header__center": "_global-header__center_11raj_56",
11
+ "global-header__search": "_global-header__search_11raj_68",
12
+ "global-header__search-icon": "_global-header__search-icon_11raj_83",
13
+ "global-header__search-input": "_global-header__search-input_11raj_89",
14
+ "global-header__right": "_global-header__right_11raj_109",
15
+ "global-header__account": "_global-header__account_11raj_124"
16
16
  };
17
17
  export {
18
- _ as default
18
+ a as default
19
19
  };
20
20
  //# sourceMappingURL=GlobalHeader.module.scss.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),u=require("./MenuGroupHeading.module.scss.cjs");function i({label:n,className:r="",...a}){return e.jsx("div",{className:[u.default["menu-group-heading"],r].filter(Boolean).join(" "),...a,children:e.jsx("span",{className:u.default["menu-group-heading__label"],children:n})})}exports.default=i;
2
+ //# sourceMappingURL=MenuGroupHeading.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuGroupHeading.cjs","sources":["../../../src/components/menu-group-heading/MenuGroupHeading.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport styles from './MenuGroupHeading.module.scss';\n\nexport interface MenuGroupHeadingProps extends HTMLAttributes<HTMLDivElement> {\n /** The section label text. Rendered in all-caps. */\n label: string;\n}\n\n/**\n * Menu Group Heading is an optional all-caps label that titles a grouped\n * section of Menu Items inside a dropdown or context menu.\n */\nexport default function MenuGroupHeading({\n label,\n className = '',\n ...rest\n}: MenuGroupHeadingProps) {\n return (\n <div\n className={[styles['menu-group-heading'], className]\n .filter(Boolean)\n .join(' ')}\n {...rest}\n >\n <span className={styles['menu-group-heading__label']}>{label}</span>\n </div>\n );\n}\n"],"names":["MenuGroupHeading","label","className","rest","jsx","styles"],"mappings":"iMAYA,SAAwBA,EAAiB,CACvC,MAAAC,EACA,UAAAC,EAAY,GACZ,GAAGC,CACL,EAA0B,CACxB,OACEC,EAAAA,IAAC,MAAA,CACC,UAAW,CAACC,UAAO,oBAAoB,EAAGH,CAAS,EAChD,OAAO,OAAO,EACd,KAAK,GAAG,EACV,GAAGC,EAEJ,eAAC,OAAA,CAAK,UAAWE,EAAAA,QAAO,2BAA2B,EAAI,SAAAJ,CAAA,CAAM,CAAA,CAAA,CAGnE"}
@@ -0,0 +1,11 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export interface MenuGroupHeadingProps extends HTMLAttributes<HTMLDivElement> {
3
+ /** The section label text. Rendered in all-caps. */
4
+ label: string;
5
+ }
6
+ /**
7
+ * Menu Group Heading is an optional all-caps label that titles a grouped
8
+ * section of Menu Items inside a dropdown or context menu.
9
+ */
10
+ export default function MenuGroupHeading({ label, className, ...rest }: MenuGroupHeadingProps): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=MenuGroupHeading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuGroupHeading.d.ts","sourceRoot":"","sources":["../../../src/components/menu-group-heading/MenuGroupHeading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC3E,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,KAAK,EACL,SAAc,EACd,GAAG,IAAI,EACR,EAAE,qBAAqB,2CAWvB"}
@@ -0,0 +1,20 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import n from "./MenuGroupHeading.module.scss.js";
3
+ function s({
4
+ label: r,
5
+ className: a = "",
6
+ ...o
7
+ }) {
8
+ return /* @__PURE__ */ e(
9
+ "div",
10
+ {
11
+ className: [n["menu-group-heading"], a].filter(Boolean).join(" "),
12
+ ...o,
13
+ children: /* @__PURE__ */ e("span", { className: n["menu-group-heading__label"], children: r })
14
+ }
15
+ );
16
+ }
17
+ export {
18
+ s as default
19
+ };
20
+ //# sourceMappingURL=MenuGroupHeading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuGroupHeading.js","sources":["../../../src/components/menu-group-heading/MenuGroupHeading.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport styles from './MenuGroupHeading.module.scss';\n\nexport interface MenuGroupHeadingProps extends HTMLAttributes<HTMLDivElement> {\n /** The section label text. Rendered in all-caps. */\n label: string;\n}\n\n/**\n * Menu Group Heading is an optional all-caps label that titles a grouped\n * section of Menu Items inside a dropdown or context menu.\n */\nexport default function MenuGroupHeading({\n label,\n className = '',\n ...rest\n}: MenuGroupHeadingProps) {\n return (\n <div\n className={[styles['menu-group-heading'], className]\n .filter(Boolean)\n .join(' ')}\n {...rest}\n >\n <span className={styles['menu-group-heading__label']}>{label}</span>\n </div>\n );\n}\n"],"names":["MenuGroupHeading","label","className","rest","jsx","styles"],"mappings":";;AAYA,SAAwBA,EAAiB;AAAA,EACvC,OAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,GAA0B;AACxB,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,CAACC,EAAO,oBAAoB,GAAGH,CAAS,EAChD,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,MACV,GAAGC;AAAA,MAEJ,4BAAC,QAAA,EAAK,WAAWE,EAAO,2BAA2B,GAAI,UAAAJ,EAAA,CAAM;AAAA,IAAA;AAAA,EAAA;AAGnE;"}
@@ -0,0 +1 @@
1
+ ._menu-group-heading_ca9me_2{display:flex;align-items:center;padding:var(--spacing-xxs) var(--spacing-xl);background-color:var(--center-channel-bg);width:100%}._menu-group-heading__label_ca9me_9{font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);line-height:var(--line-height-75);letter-spacing:.05em;text-transform:uppercase;color:rgba(var(--center-channel-color-rgb),.72);width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./MenuGroupHeading.module.css');const e={"menu-group-heading":"_menu-group-heading_ca9me_2","menu-group-heading__label":"_menu-group-heading__label_ca9me_9"};exports.default=e;
2
+ //# sourceMappingURL=MenuGroupHeading.module.scss.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuGroupHeading.module.scss.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import './MenuGroupHeading.module.css';const e = {
2
+ "menu-group-heading": "_menu-group-heading_ca9me_2",
3
+ "menu-group-heading__label": "_menu-group-heading__label_ca9me_9"
4
+ };
5
+ export {
6
+ e as default
7
+ };
8
+ //# sourceMappingURL=MenuGroupHeading.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuGroupHeading.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./MenuGroupHeading.cjs");exports.MenuGroupHeading=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 MenuGroupHeading } from './MenuGroupHeading';
2
+ export type { MenuGroupHeadingProps } from './MenuGroupHeading';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/menu-group-heading/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { default as o } from "./MenuGroupHeading.js";
2
+ export {
3
+ o as MenuGroupHeading
4
+ };
5
+ //# sourceMappingURL=index.js.map